EraGlonassUveos/Inc/EraGlonassUveos_EcallProvid...

68 lines
2.2 KiB
C

//
// 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