#ifndef I_AT_COMMAND_H #define I_AT_COMMAND_H #include "VReturnCode.h" #include enum class AtInitSimResult { SIM_INIT_OK = 0, SIM_INIT_INSERTED, SIM_INIT_NOT_INSERTED, SIM_INIT_NOT_SUPPORT_MOBILE_NETWORK, SIM_INIT_END }; enum class AtNetGeneration { NET_2G = 0, NET_3G, NET_4G, END }; enum class AtRegisterNetworkResult { SUCCEED = 0, FAILED, ERROR_REG_NET, FAILED_NOT_SUPPORT, FAILED_NO_SIGNAL, END }; enum class AtConfigNetApnResult { SUCCEED = 0, FAILED, END }; enum class AtSimTpye { SF_SIM_MEGA = 0, // normal mega sim, use in abroad SF_SIM_MEGA_IOT, // special mega sim, only use in T110 SF_SIM_OTHER, // other sim SF_SIM_BUTT, END }; enum class AtSignalLevel { LEVEL_0 = 0, LEVEL_1 = 2, LEVEL_2 = 3, LEVEL_3 = 4, END }; class AtSimInitData { public: AtSimInitData() { mResult = AtInitSimResult::SIM_INIT_END; mType = AtSimTpye::END; } ~AtSimInitData() { } AtInitSimResult mResult; std::string mIMEI; std::string mModuleSubVersion; std::string mIccid; AtSimTpye mType; }; class NetworkRegisterResult { public: NetworkRegisterResult() { result = AtRegisterNetworkResult::END; mGeneration = AtNetGeneration::END; mSimSignal = 0; mSignalLevel = AtSignalLevel::END; } ~NetworkRegisterResult() { } AtRegisterNetworkResult result; AtNetGeneration mGeneration; std::string mServiceProvider; unsigned char mSimSignal; AtSignalLevel mSignalLevel; }; class AtNetApnConfigData { public: AtNetApnConfigData(const AtConfigNetApnResult &result) : mResult(result) { } ~AtNetApnConfigData() { } const AtConfigNetApnResult mResult; }; class VAtTask { public: VAtTask() = default; virtual ~VAtTask() = default; }; class AtDeviceMessage { public: AtDeviceMessage() { mPdp = 0; } ~AtDeviceMessage() { } unsigned int mPdp; }; class VAtOwner { public: VAtOwner() = default; virtual ~VAtOwner() = default; virtual void GetDeviceMessage(AtDeviceMessage &message) {} virtual void AtFinishInitSimCard(const AtSimInitData &data) {} virtual void AtFinishRegisterNetwork(const NetworkRegisterResult &data) {} virtual void AtFinishNetApnConfig(const AtNetApnConfigData &data) {} virtual void WriteAtCommand(const std::shared_ptr &task) {} }; class IAtCommand { public: IAtCommand() = default; virtual ~IAtCommand() = default; static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr); virtual RETURN_CODE Init(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE UnInit(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE SimInit(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE AtRegisterNetworkManual(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE AtNetApnConfig(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE SetOwner(std::shared_ptr &Owner) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } virtual RETURN_CODE MqttKeepAlive(void) { return VReturnCode::NewCode(VReturnCodeDefine::NOT_OK_VIRTUAL_FUNCTION); } }; bool CreateAtCommandModule(void); #endif // !I_AT_COMMAND_H