summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-06-16 12:29:16 +0300
committerSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-06-16 12:29:16 +0300
commit24c00df883e38873d192fdb46b5d2a963b65ffd0 (patch)
treeb484875143075c9af4b62940760f054a39080e46
parentff6e2d6a828d26db31832f7fa3eb3c5789332421 (diff)
downloadradio-query-24c00df883e38873d192fdb46b5d2a963b65ffd0.tar.gz
radio-query-24c00df883e38873d192fdb46b5d2a963b65ffd0.tar.bz2
radio-query-24c00df883e38873d192fdb46b5d2a963b65ffd0.zip
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.
-rw-r--r--main.cpp17
1 files changed, 16 insertions, 1 deletions
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");
}