// // Created by xemon on 30.11.22. // #ifndef UVEOS_ON_NATION_ERAGLONASSUVEOS_ECALLPROVIDER_H #define UVEOS_ON_NATION_ERAGLONASSUVEOS_ECALLPROVIDER_H #include "stdint.h" #include "stdbool.h" typedef bool (*sendEcallCall)( void *env, uint8_t *msd, size_t msdLength, char *phoneNumber, size_t phoneNumberLength, eEcallActivationType activationType, eEcallTestMode testMode ); typedef bool (*setNewMsd)( void *env, uint8_t *msd, size_t msdLength ); typedef bool (*eraGlonassEcallProviderCall)(void *env); typedef struct { void *env; void *smsEnv; setNewMsd settingNewMsd; sendEcallCall ecall; eraGlonassEcallProviderCall isDialing; eraGlonassEcallProviderCall isMsdSent; eraGlonassEcallProviderCall isMsdReSent; eraGlonassEcallProviderCall isActiveOut; eraGlonassEcallProviderCall isActiveInp; eraGlonassEcallProviderCall hangup; eraGlonassEcallProviderCall hangupEcl; eraGlonassEcallProviderCall prepHenUp; eraGlonassEcallProviderCall resetUrcNetReg; // eraGlonassEcallProviderCall isNetReg; void (*checkSms)(void *env); void (*delSms)(void *env); bool (*isNetworkReg) (void *env, uint32_t state, bool mode); bool (*isNetworkState) (void *env, uint16_t time); bool (*isNetReg) (void *env); } tEraGlonassEcallProvider; #define EraGlonassEcallProvider_SettingNewMsd(ENV, MSD, MSD_LEN) (ENV)->settingNewMsd((ENV)->env,MSD, MSD_LEN) #define EraGlonassEcallProvider_Ecall(ENV, MSD, MSD_LEN, PHONE, PHONE_LEN, ACTIVATION, MODE) (ENV)->ecall((ENV)->env,MSD, MSD_LEN, PHONE, PHONE_LEN, ACTIVATION, MODE) #define EraGlonassEcallProvider_IsDialing(ENV) (ENV)->isDialing((ENV)->env) #define EraGlonassEcallProvider_IsMsdSent(ENV) (ENV)->isMsdSent((ENV)->env) #define EraGlonassEcallProvider_IsMsdReSent(ENV) (ENV)->isMsdReSent((ENV)->env) #define EraGlonassEcallProvider_IsActiveOut(ENV) (ENV)->isActiveOut((ENV)->env) #define EraGlonassEcallProvider_IsActiveInput(ENV) (ENV)->isActiveInp((ENV)->env) #define EraGlonassEcallProvider_Hangup(ENV) (ENV)->hangup((ENV)->env) #define EraGlonassEcallProvider_HangupEcl(ENV) (ENV)->hangupEcl((ENV)->env) #define EraGlonassEcallProvider_PrepHangup(ENV) (ENV)->prepHenUp((ENV)->env) #define EraGlonassEcallProvider_CheckSms(ENV) (ENV)->checkSms((ENV)->smsEnv) #define EraGlonassEcallProvider_DelSms(ENV) (ENV)->delSms((ENV)->smsEnv) #define EraGlonassEcallProvider_CheckNetState(ENV, TIME) (ENV)->isNetworkState((ENV)->env,TIME) #define EraGlonassEcallProvider_NetRegistration(ENV, MODE) (ENV)->isNetworkReg((ENV)->env,0,MODE) #define EraGlonassEcallProvider_IsNetReg(ENV) (ENV)->isNetReg((ENV)->env) #define EraGlonassEcallProvider_ResetUrcNetReg(ENV) (ENV)->isNetReg((ENV)->env) #endif //UVEOS_ON_NATION_ERAGLONASSUVEOS_ECALLPROVIDER_H