diff options
-rw-r--r-- | src/MTS_IO_EG95Radio.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/MTS_IO_EG95Radio.cpp b/src/MTS_IO_EG95Radio.cpp index aff53d2..f1c040a 100644 --- a/src/MTS_IO_EG95Radio.cpp +++ b/src/MTS_IO_EG95Radio.cpp @@ -58,18 +58,17 @@ ICellularRadio::CODE EG95Radio::getSupportedCellularModes(CELLULAR_MODES &networ ICellularRadio::CODE EG95Radio::setCellularMode(CELLULAR_MODES networks) { std::string prefNet; - unsigned int prefOnly = 0; + unsigned int prefOnly = 0, prefCount = 0; for (int i = sizeof(networks)*CHAR_BIT-1; i>=0; --i){ switch (1<<i & networks) { - case ICellularRadio::CELLULAR_MODE_2G: prefNet += "01" ; prefOnly = 1; break; - case ICellularRadio::CELLULAR_MODE_3G: prefNet += "0302"; prefOnly = 2; break; - case ICellularRadio::CELLULAR_MODE_4G: prefNet += "04" ; prefOnly = 3; break; - default: printError("Unhandled preferred network flag."); + case ICellularRadio::CELLULAR_MODE_2G: prefNet += "01" ; prefOnly = 1; prefCount++; break; + case ICellularRadio::CELLULAR_MODE_3G: prefNet += "0302"; prefOnly = 2; prefCount++; break; + case ICellularRadio::CELLULAR_MODE_4G: prefNet += "04" ; prefOnly = 3; prefCount++; break; } } std::string sCmd; - if (prefNet.size() == 2) { // *g-only + if (prefCount == 1) { // *g-only sCmd = "AT+QCFG=\"nwscanmode\"," + std::to_string(prefOnly); } else { // preferred sCmd = "AT+QCFG=\"nwscanmode\",0"; |