summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Hatch <jhatch@multitech.com>2020-02-25 10:40:01 -0600
committerJeff Hatch <jhatch@multitech.com>2020-02-25 10:40:01 -0600
commit36201df0d08daeeb64bb3923da789025a277a4ef (patch)
treee06153349d380256059021e177107eee407ee002
parentcdd3fbe0f999546b3f39843f6f742f185781edd7 (diff)
parent0b0059b2f99874133b9cc988ce9279b6a31be6ff (diff)
downloadlibmts-io-36201df0d08daeeb64bb3923da789025a277a4ef.tar.gz
libmts-io-36201df0d08daeeb64bb3923da789025a277a4ef.tar.bz2
libmts-io-36201df0d08daeeb64bb3923da789025a277a4ef.zip
Merge branch 'sk/MTX-3239-dynamic-cell-mode' into 'master'
[MTX-3239] Add "cellularMode" value to the radio-query --dynamic See merge request !12
-rw-r--r--include/mts/MTS_IO_CellularRadio.h2
-rw-r--r--include/mts/MTS_IO_ICellularRadio.h3
-rw-r--r--src/MTS_IO_CellularRadio.cpp32
-rw-r--r--src/MTS_IO_ICellularRadio.cpp1
4 files changed, 38 insertions, 0 deletions
diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h
index 4b53382..56506af 100644
--- a/include/mts/MTS_IO_CellularRadio.h
+++ b/include/mts/MTS_IO_CellularRadio.h
@@ -78,6 +78,8 @@ namespace MTS {
CODE getRegistration(REGISTRATION& eRegistration) override;
CODE convertRegistrationToString(REGISTRATION eRegistration, std::string& sRegistration) override;
+ CODE convertCellModesToString(CELLULAR_MODES eCellModes, std::string& sCellModes) override;
+
CODE unlockSimCard(const Json::Value& jArgs) override;
CODE getMipProfile(Json::Value& jMipProfile) override;
diff --git a/include/mts/MTS_IO_ICellularRadio.h b/include/mts/MTS_IO_ICellularRadio.h
index f03bd2e..58d5076 100644
--- a/include/mts/MTS_IO_ICellularRadio.h
+++ b/include/mts/MTS_IO_ICellularRadio.h
@@ -133,6 +133,7 @@ namespace MTS {
static const char *KEY_ROAMING; //!< Indicates whether or not using Home Network
static const char *KEY_DATETIME; //!< Date and Time from tower
static const char *KEY_SERVICE; //!< Service Connection Type [GPRS, EGPRS, WCDMA, HSDPA, 1xRTT, EVDO]
+ static const char *KEY_CELL_MODE; //!< Specifies the cellular mode that is currently used by the modem [2g, 3g, 4g]
static const char *KEY_NETWORK; //!< Cellular Service Provider
static const char *KEY_NETWORK_REG; //!< Network Registration
static const char *KEY_CID; //!< Cellular ID (Tower) in HEX
@@ -267,6 +268,8 @@ namespace MTS {
virtual CODE getRegistration(REGISTRATION& eRegistration) = 0;
virtual CODE convertRegistrationToString(REGISTRATION eRegistration, std::string& sRegistration) = 0;
+ virtual CODE convertCellModesToString(CELLULAR_MODES eCellModes, std::string& sCellModes) = 0;
+
/**
* @brief unlockSimCard - unlock the SIM card using PIN code provided
*
diff --git a/src/MTS_IO_CellularRadio.cpp b/src/MTS_IO_CellularRadio.cpp
index 8bdd00e..191299b 100644
--- a/src/MTS_IO_CellularRadio.cpp
+++ b/src/MTS_IO_CellularRadio.cpp
@@ -694,6 +694,14 @@ void CellularRadio::getCommonNetworkStats(Json::Value& jData) {
jData[ICellularRadio::KEY_NETWORK_REG] = sNetworkReg;
}
}
+
+ std::string sCurrentCellMode;
+ CELLULAR_MODES eModes;
+ if (getCellularMode(eModes) == SUCCESS) {
+ if (convertCellModesToString(eModes, sCurrentCellMode) == SUCCESS) {
+ jData[ICellularRadio::KEY_CELL_MODE] = sCurrentCellMode;
+ }
+ }
}
ICellularRadio::CODE CellularRadio::getSimLockStatus(std::string& sData)
@@ -851,6 +859,30 @@ ICellularRadio::CODE CellularRadio::convertRegistrationToString(REGISTRATION eRe
return eCode;
}
+ICellularRadio::CODE CellularRadio::convertCellModesToString(ICellularRadio::CELLULAR_MODES eCellModes, std::string& sCellModes) {
+ std::string sResult;
+
+ if (eCellModes & CELLULAR_MODE_2G) {
+ sResult += "2g,";
+ }
+ if (eCellModes & CELLULAR_MODE_3G) {
+ sResult += "3g,";
+ }
+ if (eCellModes & CELLULAR_MODE_4G) {
+ sResult += "4g,";
+ }
+ if (eCellModes & CELLULAR_MODE_5G) {
+ sResult += "5g,";
+ }
+
+ if (!sResult.empty()) {
+ sResult.pop_back(); // remove trailing comma
+ }
+
+ sCellModes = sResult;
+ return SUCCESS;
+}
+
ICellularRadio::CODE CellularRadio::unlockSimCard(const Json::Value& jArgs) {
printTrace("%s| Unlock the SIM card using PIN code", m_sName.c_str());
diff --git a/src/MTS_IO_ICellularRadio.cpp b/src/MTS_IO_ICellularRadio.cpp
index 339294d..53c8faa 100644
--- a/src/MTS_IO_ICellularRadio.cpp
+++ b/src/MTS_IO_ICellularRadio.cpp
@@ -55,6 +55,7 @@ const char *MTS::IO::ICellularRadio::KEY_SUPPORTED_CELL_MODES = "supportedCellul
const char *MTS::IO::ICellularRadio::KEY_ROAMING = "roaming"; //!< Indicates whether or not using Home Network
const char *MTS::IO::ICellularRadio::KEY_DATETIME = "datetime"; //!< Date and Time from tower
const char *MTS::IO::ICellularRadio::KEY_SERVICE = "service"; //!< Service Connection Type [GPRS, EGPRS, WCDMA, HSDPA, 1xRTT, EVDO]
+const char *MTS::IO::ICellularRadio::KEY_CELL_MODE = "cellularMode"; //!< Specifies the cellular mode that is currently used by the modem [2g, 3g, 4g]
const char *MTS::IO::ICellularRadio::KEY_NETWORK = "network"; //!< Cellular Service Provider
const char *MTS::IO::ICellularRadio::KEY_NETWORK_REG = "netreg"; //!< Network Registration
const char *MTS::IO::ICellularRadio::KEY_CID = "cid"; //!< Cellular ID = Tower in HEX