From 5d81a9e8d2afc8d2f1dbf9ab29d9248dcb54378a Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Tue, 25 Feb 2020 14:53:39 +0200 Subject: [MTX-3239] Add "cellularMode" value to the radio-query --dynamic Ported "cellularModeStr" function to MTS::IO::CellularRadio class. This function converts integer bitmap to comma-separated list of cellular modes. --- include/mts/MTS_IO_CellularRadio.h | 2 ++ include/mts/MTS_IO_ICellularRadio.h | 2 ++ src/MTS_IO_CellularRadio.cpp | 25 +++++++++++++++++++++++++ 3 files changed, 29 insertions(+) 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..b9ac36f 100644 --- a/include/mts/MTS_IO_ICellularRadio.h +++ b/include/mts/MTS_IO_ICellularRadio.h @@ -267,6 +267,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..299ca19 100644 --- a/src/MTS_IO_CellularRadio.cpp +++ b/src/MTS_IO_CellularRadio.cpp @@ -21,6 +21,7 @@ #include "mts/MTS_IO_CellularRadio.h" #include +#include #include #include @@ -851,6 +852,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()); -- cgit v1.2.3 From 85fc8d9a281b57cc356bf38ca72bd7880e4001d3 Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Tue, 25 Feb 2020 15:27:18 +0200 Subject: [MTX-3239] Add "cellularMode" value to the radio-query --dynamic Added "cellularMode" value to the list dynamic (network stats) params --- include/mts/MTS_IO_ICellularRadio.h | 1 + src/MTS_IO_CellularRadio.cpp | 8 ++++++++ src/MTS_IO_ICellularRadio.cpp | 1 + 3 files changed, 10 insertions(+) diff --git a/include/mts/MTS_IO_ICellularRadio.h b/include/mts/MTS_IO_ICellularRadio.h index b9ac36f..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 diff --git a/src/MTS_IO_CellularRadio.cpp b/src/MTS_IO_CellularRadio.cpp index 299ca19..d50f917 100644 --- a/src/MTS_IO_CellularRadio.cpp +++ b/src/MTS_IO_CellularRadio.cpp @@ -695,6 +695,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) 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 -- cgit v1.2.3 From 0b0059b2f99874133b9cc988ce9279b6a31be6ff Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Tue, 25 Feb 2020 18:28:23 +0200 Subject: [MTX-3239] Add "cellularMode" value to the radio-query --dynamic Removed unneeded include. Changes after code review. --- src/MTS_IO_CellularRadio.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/MTS_IO_CellularRadio.cpp b/src/MTS_IO_CellularRadio.cpp index d50f917..191299b 100644 --- a/src/MTS_IO_CellularRadio.cpp +++ b/src/MTS_IO_CellularRadio.cpp @@ -21,7 +21,6 @@ #include "mts/MTS_IO_CellularRadio.h" #include -#include #include #include -- cgit v1.2.3