summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Hatch <jhatch@multitech.com>2019-10-30 08:43:35 -0500
committerJeff Hatch <jhatch@multitech.com>2019-10-30 08:43:35 -0500
commit7e44d14074eef23a8532f3e1070cdd51779428b1 (patch)
treed508f075ad290866775abb3b6c5e9c6176be9dbd
parent34996ef22c513b5039a7540d180640335db19358 (diff)
parenta6aa97bcb8dc6ff498e6bd6a641ba92716ad1223 (diff)
downloadlibmts-io-7e44d14074eef23a8532f3e1070cdd51779428b1.tar.gz
libmts-io-7e44d14074eef23a8532f3e1070cdd51779428b1.tar.bz2
libmts-io-7e44d14074eef23a8532f3e1070cdd51779428b1.zip
Merge branch 'MTX-3028-3g-4g-mode-switch-fix' into 'master'
Mtx 3028 3g 4g mode switch fix See merge request !5
-rw-r--r--src/MTS_IO_EG95Radio.cpp11
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";