From 24c00df883e38873d192fdb46b5d2a963b65ffd0 Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Tue, 16 Jun 2020 12:29:16 +0300 Subject: GP-654: Add SIM card-based carrier detection This commit adds implementation of the SIM-based carrier detection. The goal for this implementation is to replace various places in the firmware that previously relied on the ICCID-based carrier detection, provide some layer of abstraction and forward compatibility for such places. It is particularly useful for fwSwitch radios with AUTO firmware selection capability. --- main.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index d0da2a2..414a3a8 100644 --- a/main.cpp +++ b/main.cpp @@ -87,6 +87,7 @@ const uint32_t OPT_LOCATION = 0x00010000; const uint32_t OPT_FIRMWAREBUILD = 0x00020000; const uint32_t OPT_SIM_STATUS = 0x00040000; const uint32_t OPT_RADIO_CODE = 0x00080000; +const uint32_t OPT_MTS_SIM_CARRIER = 0x00100000; const uint32_t OPT_SUMMARY_STATIC = 0x01000000; const uint32_t OPT_SUMMARY_NETWORK = 0x02000000; @@ -321,6 +322,12 @@ int main(int argc, char** argv) { printf("%s", sValue.c_str()); } } + } else if (g_iOptions & OPT_MTS_SIM_CARRIER) { + std::string sValue; + result = g_apRadio->getMtsSimCarrierCode(sValue); + if (result == ICellularRadio::SUCCESS) { + printf("%s", sValue.c_str()); + } } if (g_bIstty && result == ICellularRadio::CODE::SUCCESS) @@ -532,6 +539,12 @@ Json::Value getStaticData() { } jData[MTS::IO::ICellularRadio::KEY_SUPPORTED_CELL_MODES] = sSupportedCellModes; + std::string sCarrierCode(ICellularRadio::VALUE_UNKNOWN); + if(g_apRadio->getMtsSimCarrierCode(sCarrierCode) != ICellularRadio::SUCCESS) { + printWarning("SIM carrier information not found"); + } + jData[MTS::IO::ICellularRadio::KEY_MTS_SIM_CARRIER_CODE] = sCarrierCode; + return jData; } @@ -584,6 +597,7 @@ void parseOptions(int argc, char** argv) { { "dynamic", no_argument, &iOption, OPT_SUMMARY_NETWORK }, { "cellular-mode",no_argument, &iOption, OPT_CELL_MODE }, { "supported-cellular-modes", no_argument, &iOption, OPT_SUPPORTED_CELL_MODE }, + { "mts-sim-carrier-code", no_argument, &iOption, OPT_MTS_SIM_CARRIER }, { 0, 0, 0, 0 } }; /* getopt_long stores the option index here. */ @@ -692,9 +706,10 @@ void printHelp(const std::string& sApp) { printf("\t--sim-status\n"); printf("\t--cellular-mode\n"); printf("\t--supported-cellular-modes\n"); + printf("\t--mts-sim-carrier-code\n"); // Applicable for LTE910-NA1 dual FW images only // printf("\t--active-firmware\n"); printf("\n"); printf("\tSupported Radios:\n"); - printf("\t\tHE910, GE910, DE910, CE910, LE910, ME910\n"); + printf("\t\tHE910, GE910, DE910, CE910, LE910, ME910, EG95\n"); } -- cgit v1.2.3