summaryrefslogtreecommitdiff
path: root/include/mts/MTS_IO_TelitRadio.h
diff options
context:
space:
mode:
authorMaksym Telychko <maksym.telychko@globallogic.com>2019-06-08 00:23:57 +0300
committerMaksym Telychko <maksym.telychko@globallogic.com>2019-06-08 00:23:57 +0300
commit596f8f8393bf837d73e0a62c87d52557d9191f96 (patch)
tree0bd5ed794ed423b18aeade28b4f3ffd13d0d0e84 /include/mts/MTS_IO_TelitRadio.h
parent9f1b5b16547536196dde8e9296debbae924bfb2c (diff)
downloadlibmts-io-596f8f8393bf837d73e0a62c87d52557d9191f96.tar.gz
libmts-io-596f8f8393bf837d73e0a62c87d52557d9191f96.tar.bz2
libmts-io-596f8f8393bf837d73e0a62c87d52557d9191f96.zip
[MTS-MTQ] refactoring: telit radio implementation
leave telit specific code in telit class. move common code to cellular radio class.
Diffstat (limited to 'include/mts/MTS_IO_TelitRadio.h')
-rw-r--r--include/mts/MTS_IO_TelitRadio.h290
1 files changed, 8 insertions, 282 deletions
diff --git a/include/mts/MTS_IO_TelitRadio.h b/include/mts/MTS_IO_TelitRadio.h
index 621bfb4..0c95f98 100644
--- a/include/mts/MTS_IO_TelitRadio.h
+++ b/include/mts/MTS_IO_TelitRadio.h
@@ -21,305 +21,31 @@
#ifndef MTS_IO_TELITRADIO_H_
#define MTS_IO_TELITRADIO_H_
-#include <string>
-#include <vector>
-
-#include <json/json.h>
-
#include <mts/MTS_IO_CellularRadio.h>
-#include <mts/MTS_IO_SerialConnection.h>
-#include <mts/MTS_NonCopyable.h>
-#include <mts/MTS_AutoPtr.h>
-#include <mts/MTS_Stdint.h>
namespace MTS {
namespace IO {
class TelitRadio : public CellularRadio {
-
public:
- virtual ~TelitRadio();
-
- virtual bool initialize(uint32_t iTimeoutMillis = 5000);
- virtual bool resetRadio(uint32_t iTimeoutMillis = 5000);
- virtual bool resetConnection(uint32_t iTimeoutMillis = 5000);
- virtual void shutdown();
-
- const std::string& getName() const;
-
- virtual CODE getModel(std::string& sModel);
-
- virtual CODE getFirmware(std::string& sFirmware);
- virtual CODE getFirmwareBuild(std::string& sFirmwareBuild);
- virtual CODE getHardware(std::string& sHardware);
- virtual CODE getManufacturer(std::string& sManufacturer);
- virtual CODE getImei(std::string& sImei);
- virtual CODE getMeid(std::string& sMeid);
- virtual CODE getImsi(std::string& sImsi);
- virtual CODE getSimStatus(std::string& sSimStatus);
- virtual CODE getIccid(std::string& sIccid);
- virtual CODE getService(std::string& sService);
- virtual CODE getLac(std::string& sLac);
- virtual CODE getMdn(std::string& sMdn);
- virtual CODE getMsid(std::string& sMsid);
- virtual CODE getType(std::string& sType);
- virtual CODE getCarrier(std::string& sCarrier);
- virtual CODE getNetwork(std::string& sNetwork);
- virtual CODE getTower(std::string& sTower);
- virtual CODE getTime(std::string& sDate, std::string& sTime, std::string& sTimeZone);
- virtual CODE getRoaming(bool& bRoaming);
-
- virtual CODE getSignalStrength(int32_t& iRssi);
- virtual CODE getModemLocation(std::string& sLocation);
- virtual CODE convertSignalStrengthTodBm(const int32_t& iRssi, int32_t& dBm);
- virtual CODE convertdBmToSignalStrength(const int32_t& dBm, int32_t& iRssi);
-
- virtual CODE getRegistration(REGISTRATION& eRegistration);
- virtual CODE convertRegistrationToString(REGISTRATION eRegistration, std::string& sRegistration);
-
- //! Gather details of the radio's Mobile IP Profile
- /*!
- \param Json::Value object that will be populated with MIP data
- \return Returns result code of gathering MIP
- */
- virtual CODE getMipProfile(Json::Value& jMipProfile);
-
- /*
- * jArgs = {
- * "msl" : "Master Subsidy Lock (Aeris, Sprint): STRING"
- * }
- */
- virtual CODE validateMsl(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "mdn" : "Mobile Directory Number : STRING",
- * "msl" : "[OPTIONAL] Master Subsidy Lock (Aeris, Sprint): STRING"
- * }
- */
- virtual CODE setMdn(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "msid" : "Mobil Station ID (MSID) aka MIN aka MSIN : STRING",
- * "msl" : "[OPTIONAL] Master Subsidy Lock (Aeris, Sprint): STRING"
- * }
- */
- virtual CODE setMsid(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "activeProfile" : "Set active profile: STRING"
- * }
- */
- virtual CODE setMipActiveProfile(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "nai" : "Network Access Identifier : STRING"
- * }
- */
- virtual CODE setMipNai(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "homeIp" : "Home Address : STRING"
- * }
- */
- virtual CODE setMipHomeIp(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "primaryHa" : "Primary Home Agent : STRING"
- * }
- */
- virtual CODE setMipPrimaryHa(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "secondaryHa" : "Secondary Home Agent : STRING"
- * }
- */
- virtual CODE setMipSecondaryHa(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "mnAaaSpi" : "Mobile Node Authentication, Authorization, and Accounting Server Security Parameter Index : STRING"
- * }
- */
- virtual CODE setMipMnAaaSpi(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "mnHaSpi" : "Mobile Node Home Agent Security Server Parameter Index : STRING"
- * }
- */
- virtual CODE setMipMnHaSpi(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "revTun" : "[DESCRIPTION] : STRING"
- * }
- */
- virtual CODE setMipRevTun(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "mnAaaSs" : "Mobile Node Authentication, Authorization, and Accounting Server Shared Secret : STRING"
- * }
- */
- virtual CODE setMipMnAaaSs(const Json::Value& jArgs);
-
- /*
- * jArgs = {
- * "mnHaSs" : "Mobile Node Home Agent Shared Secret : STRING"
- * }
- */
- virtual CODE setMipMnHaSs(const Json::Value& jArgs);
-
- /*
- * jArgs = null
- */
- virtual CODE updateDc(const Json::Value& jArgs, UpdateCb& stepCb);
-
- /*
- * jArgs = null
- */
- virtual CODE updatePrl(const Json::Value& jArgs, UpdateCb& stepCb);
-
- /*
- * jArgs = null
- */
- virtual CODE updateFumo(const Json::Value& jArgs, UpdateCb& stepCb);
-
- /*
- * jArgs = {
- * "msl" : "Master Subsidy Lock (Sprint): STRING"
- * }
- */
- virtual CODE resetHfa(const Json::Value& jArgs, UpdateCb& stepCb);
-
- /*
- * jArgs = {
- * "mdn" : "Mobile Directory Number (Aeris): STRING"
- * "msid" : "Mobile Station ID (Aeris): STRING"
- * }
- */
- virtual CODE activate(const Json::Value& jArgs, UpdateCb& stepCb);
+ bool resetRadio(uint32_t iTimeoutMillis = 5000) override;
- /*
- * jArgs = {
- * "enabled" : "RX Diversity Enabled ("0" or "1"): STRING"
- * }
- */
- virtual CODE setRxDiversity(const Json::Value& jArgs)=0;
- /*
- * jArgs = {
- * "fwid" : "Firmware Image To Be Enabled: STRING"
- * }
- */
- virtual CODE setActiveFirmware(const Json::Value& jArgs);
- virtual CODE getActiveFirmware(std::string& sFwId);
-
- virtual CODE getEcho(bool& bEnabled);
- virtual CODE setEcho(bool bEnabled = true);
-
- virtual CODE getStaticInformation(Json::Value& jData);
- virtual CODE getNetworkStatus(Json::Value& jData);
-
- virtual CODE sendBasicCommand(const std::string& sCmd, int32_t timeoutMillis = 100, const char& ESC = CR);
-
- virtual std::string sendCommand(const std::string& sCmd,
- const std::vector<std::string>& vBail = DEFAULT_BAIL_STRINGS,
- int32_t timeoutMillis = 100,
- const char& ESC = CR);
-
-
- static std::string sendCommand(MTS::AutoPtr<MTS::IO::Connection>& apIo,
- const std::string& sCmd,
- const std::vector<std::string>& vBail = DEFAULT_BAIL_STRINGS,
- int32_t timeoutMillis = 100,
- const char& ESC = CR);
-
- virtual std::string sendCommand(const std::string& sCmd,
- IsNeedMoreData& isNeedMoreData,
- int32_t timeoutMillis = 100,
- const char& ESC = CR);
-
- static std::string sendCommand(MTS::AutoPtr<MTS::IO::Connection>& apIo,
- const std::string& sCmd,
- IsNeedMoreData& isNeedMoreData,
- int32_t timeoutMillis = 100,
- const char& ESC = CR);
-
- static CODE test(MTS::AutoPtr<MTS::IO::Connection>& apIo, uint32_t timeoutSeconds = 30);
-
- static std::string extractModelFromResult(const std::string& sResult);
- static std::string getCodeAsString(CODE code);
+ CODE getModel(std::string& sModel) override;
+ CODE getIccid(std::string& sIccid) override;
+ CODE getService(std::string& sService) override;
+ CODE getNetworkStatus(Json::Value& jData) override;
+ CODE setMdn(const Json::Value& jArgs) override;
protected:
-
TelitRadio(const std::string& sName, const std::string& sRadioPort);
- virtual bool getCarrierFromFirmware(const std::string& sFirmware, std::string& sCarrier);
- virtual bool getHardwareVersionFromFirmware(const std::string& sFirmware, std::string& sHardware);
-
- virtual void getCommonNetworkStats(Json::Value& jData);
-
- void initMipProfile(Json::Value& jData);
-
- bool splitAndAssign(const std::string& sLine, const std::string& sKey, Json::Value& jParent, const std::string& sJsonKey, Json::ValueType eType = Json::ValueType::stringValue);
-
-
+ bool getCarrierFromFirmware(const std::string& sFirmware, std::string& sCarrier) override;
+ bool getHardwareVersionFromFirmware(const std::string& sFirmware, std::string& sHardware) override;
private:
- class RadioBandMap : public MTS::NonCopyable {
- public:
- RadioBandMap()
- {
- m_sChannel = TelitRadio::VALUE_UNKNOWN;
- m_iChannel = 0;
- m_sRadioType = TelitRadio::VALUE_UNKNOWN;
- }
-
- RadioBandMap(const std::string &channel, const std::string &radioType) :
- m_sChannel(channel),
- m_sRadioType(radioType)
- {
- m_iChannel = strtol(m_sChannel.c_str(), NULL, 10);
- }
-
- virtual ~RadioBandMap() {}
-
- const char *getRadioBandName();
- const char *getRadioBandName(const std::string &channel, const std::string &radioType);
-
- private:
-
- const char *getLTEBand(const int channel);
- const char *getCDMABand(const int channel);
- const char *getGSMBand(const int channel);
-
- std::string m_sChannel;
- int m_iChannel;
- std::string m_sRadioType;
- };
-
- std::string m_sName;
- std::string m_sRadioPort;
- std::string m_sFirmware;
- std::string m_sCarrier;
- MTS::AutoPtr<MTS::IO::Connection> m_apIo;
-
- bool m_bEchoEnabled;
- bool m_bEnableEchoOnClose;
-
std::string queryLteLac();
std::string queryCGREGstring();
void setCGREG(std::string value);
};
}
}
-
-
-
#endif