From 471672f4f6e9085ea93536508d908c75f9c74421 Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Fri, 28 May 2021 15:47:24 +0300 Subject: [GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 Added an ability to read the PLMN ID (MCC/MNC combination) of the home carrier from the SIM. --- main.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index c82a3ae..427de5e 100644 --- a/main.cpp +++ b/main.cpp @@ -90,7 +90,8 @@ const uint32_t OPT_SIM_STATUS = 0x00040000; const uint32_t OPT_RADIO_CODE = 0x00080000; const uint32_t OPT_SIM_CARRIER_CODE = 0x00100000; const uint32_t OPT_VENDORFIRMWARE = 0x00200000; -const uint32_t OPT_UE_MODE_OF_OPERATION = 0x00400000; +const uint32_t OPT_UE_MODE_OF_OPERATION= 0x00400000; +const uint32_t OPT_SIM_MCC_MNC = 0x00800000; const uint32_t OPT_SUMMARY_STATIC = 0x01000000; const uint32_t OPT_SUMMARY_NETWORK = 0x02000000; @@ -338,17 +339,22 @@ int main(int argc, char** argv) { if (result == ICellularRadio::SUCCESS) { printf("%s", sValue.c_str()); } - } - else if (g_iOptions & OPT_UE_MODE_OF_OPERATION) { + } else if (g_iOptions & OPT_UE_MODE_OF_OPERATION) { std::string sValue; ICellularRadio::UE_MODES_OF_OPERATION mode; result = g_apRadio->getUeModeOfOperation(mode); if (result == ICellularRadio::SUCCESS) { result = g_apRadio->convertUeModeToString(mode, sValue); - if(result == ICellularRadio::SUCCESS) { + if (result == ICellularRadio::SUCCESS) { printf("%s", sValue.c_str()); } } + } else if (g_iOptions & OPT_SIM_MCC_MNC) { + std::string sValue; + result = g_apRadio->getSimMccMnc(sValue); + if (result == ICellularRadio::SUCCESS) { + printf("%s", sValue.c_str()); + } } if (g_bIstty && result == ICellularRadio::CODE::SUCCESS) @@ -576,6 +582,12 @@ Json::Value getStaticData() { } jData[MTS::IO::ICellularRadio::KEY_SIM_CARRIER_CODE] = sCarrierCode; + std::string sCarrierId(ICellularRadio::VALUE_UNKNOWN); + if(g_apRadio->getSimMccMnc(sCarrierId) != ICellularRadio::SUCCESS) { + printWarning("SIM carrier MCC/MNC information not found"); + } + jData[MTS::IO::ICellularRadio::KEY_SIM_MCC_MNC] = sCarrierId; + return jData; } @@ -631,6 +643,7 @@ void parseOptions(int argc, char** argv) { { "supported-cellular-modes", no_argument, &iOption, OPT_SUPPORTED_CELL_MODE }, { "sim-carrier-code", no_argument, &iOption, OPT_SIM_CARRIER_CODE }, { "ue-mode-of-operation", no_argument,&iOption, OPT_UE_MODE_OF_OPERATION }, + { "sim-mcc-mnc", no_argument, &iOption, OPT_SIM_MCC_MNC }, { 0, 0, 0, 0 } }; /* getopt_long stores the option index here. */ @@ -742,6 +755,7 @@ void printHelp(const std::string& sApp) { printf("\t--supported-cellular-modes\n"); printf("\t--sim-carrier-code\n"); printf("\t--ue-mode-of-operation\n"); + printf("\t--sim-mcc-mnc\n"); // Applicable for LTE910-NA1 dual FW images only // printf("\t--active-firmware\n"); printf("\n"); -- cgit v1.2.3 From aca0bbf5f1b0b0c9d0fc72272ac6d6254f64802f Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Mon, 31 May 2021 16:50:27 +0300 Subject: [GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 Moved MCC and MNC values to the separate fields in the radio-query output after a code review. --- main.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/main.cpp b/main.cpp index 427de5e..ee30668 100644 --- a/main.cpp +++ b/main.cpp @@ -350,10 +350,13 @@ int main(int argc, char** argv) { } } } else if (g_iOptions & OPT_SIM_MCC_MNC) { - std::string sValue; - result = g_apRadio->getSimMccMnc(sValue); + std::string sMcc, sMnc; + Json::Value jValue; + result = g_apRadio->getSimMccMnc(sMcc, sMnc); if (result == ICellularRadio::SUCCESS) { - printf("%s", sValue.c_str()); + jValue[MTS::IO::ICellularRadio::KEY_SIM_MCC] = sMcc; + jValue[MTS::IO::ICellularRadio::KEY_SIM_MNC] = sMnc; + printf("%s", jValue.toStyledString().c_str()); } } @@ -582,11 +585,13 @@ Json::Value getStaticData() { } jData[MTS::IO::ICellularRadio::KEY_SIM_CARRIER_CODE] = sCarrierCode; - std::string sCarrierId(ICellularRadio::VALUE_UNKNOWN); - if(g_apRadio->getSimMccMnc(sCarrierId) != ICellularRadio::SUCCESS) { + std::string sSimMcc(ICellularRadio::VALUE_UNKNOWN); + std::string sSimMnc(ICellularRadio::VALUE_UNKNOWN); + if(g_apRadio->getSimMccMnc(sSimMcc, sSimMnc) != ICellularRadio::SUCCESS) { printWarning("SIM carrier MCC/MNC information not found"); } - jData[MTS::IO::ICellularRadio::KEY_SIM_MCC_MNC] = sCarrierId; + jData[MTS::IO::ICellularRadio::KEY_SIM_MCC] = sSimMcc; + jData[MTS::IO::ICellularRadio::KEY_SIM_MNC] = sSimMnc; return jData; } -- cgit v1.2.3