// // 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, bool blocReg ); 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 isActive; eraGlonassEcallProviderCall hangup; void (*checkSms)(void *env); bool (*isNetworkReg) (void *env, uint32_t state, bool mode); bool (*isNetworkState) (void *env, uint16_t time); void *ShutdownEnv; void (*CheckShutdown)(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, BLOCREG) (ENV)->ecall((ENV)->env,MSD, MSD_LEN, PHONE, PHONE_LEN, ACTIVATION, MODE, BLOCREG) #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_IsActive(ENV) (ENV)->isActive((ENV)->env) #define EraGlonassEcallProvider_Hangup(ENV) (ENV)->hangup((ENV)->env) #define EraGlonassEcallProvider_CheckSms(ENV) (ENV)->checkSms((ENV)->smsEnv) #define EraGlonassEcallProvider_CheckNetState(ENV, TIME) (ENV)->isNetworkState((ENV)->env,TIME) #define EraGlonassEcallProvider_CheckShutdownIsBattary(ENV) (ENV)->CheckShutdown((ENV)->ShutdownEnv) #define EraGlonassEcallProvider_NetRegistration(ENV, MODE) (ENV)->isNetworkReg((ENV)->env,0,MODE) #endif //UVEOS_ON_NATION_ERAGLONASSUVEOS_ECALLPROVIDER_H