nt9856x/code/application/sifarsdk/component/AtCommand/include/IAtCommand.h

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