143 lines
3.7 KiB
C++
143 lines
3.7 KiB
C++
#ifndef I_AT_COMMAND_H
|
|
#define I_AT_COMMAND_H
|
|
#include "VReturnCode.h"
|
|
#include <memory>
|
|
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<VAtTask> &task) {}
|
|
};
|
|
class IAtCommand
|
|
{
|
|
public:
|
|
IAtCommand() = default;
|
|
virtual ~IAtCommand() = default;
|
|
static std::shared_ptr<IAtCommand> &GetInstance(std::shared_ptr<IAtCommand> *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<VAtOwner> &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
|