summaryrefslogtreecommitdiff
path: root/src/MTS_IO_CellularRadio.cpp
diff options
context:
space:
mode:
authorJeff Hatch <jhatch@multitech.com>2015-10-30 07:59:24 -0500
committerJeff Hatch <jhatch@multitech.com>2015-10-30 08:05:16 -0500
commitab4c686299497450542adac99d2355cf5967e18f (patch)
tree793501eaed4129cda75593c9ebbdea90428213be /src/MTS_IO_CellularRadio.cpp
parentb04660d92099a1e1f1db3aa4d710c662e074b7bf (diff)
downloadlibmts-io-ab4c686299497450542adac99d2355cf5967e18f.tar.gz
libmts-io-ab4c686299497450542adac99d2355cf5967e18f.tar.bz2
libmts-io-ab4c686299497450542adac99d2355cf5967e18f.zip
[IN001479] Radio Status updates are misconfigured when Cellular connection is active
-Fix Tower and Service display values on dashboard and Radio status pages. -Fix issue with intermittent timeout when radio-query doing #RFSTS AT command. -Add table for LTE Engineering Details on Radio Status page
Diffstat (limited to 'src/MTS_IO_CellularRadio.cpp')
-rw-r--r--src/MTS_IO_CellularRadio.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/MTS_IO_CellularRadio.cpp b/src/MTS_IO_CellularRadio.cpp
index 129a3ae..2a92e15 100644
--- a/src/MTS_IO_CellularRadio.cpp
+++ b/src/MTS_IO_CellularRadio.cpp
@@ -525,6 +525,7 @@ CellularRadio::CODE CellularRadio::getService(std::string& sService) {
case 1: sService = "EGPRS"; break;
case 2: sService = "WCDMA"; break;
case 3: sService = "HSDPA"; break;
+ case 4: sService = "LTE"; break;
default: sService = VALUE_UNKNOWN; break;
}
@@ -932,11 +933,11 @@ CellularRadio::CODE CellularRadio::getNetworkStatus(Json::Value& jData) {
std::string sValue;
const uint32_t GSM_NETWORK_FORMAT = 14;
const uint32_t WCDMA_NETWORK_FORMAT = 19;
- const uint32_t LTE_NETWORK_FORMAT = 16;
+ const uint32_t LTE_NETWORK_FORMAT = 17;
printTrace("%s| Get Network Status", m_sName.c_str());
std::string sCmd("AT#RFSTS");
- std::string sResult = sendCommand(sCmd);
+ std::string sResult = sendCommand(sCmd, DEFAULT_BAIL_STRINGS, 200);
if (sResult.find("#RFSTS:") == std::string::npos) {
printDebug("%s| Network Status command returned unexpected response: [%s][%s]", m_sName.c_str(), sCmd.c_str(), sResult.c_str());
return FAILURE;
@@ -1019,24 +1020,25 @@ CellularRadio::CODE CellularRadio::getNetworkStatus(Json::Value& jData) {
} else if(vParts.size() >= LTE_NETWORK_FORMAT) {
Json::Value jDebug;
- //Parse as WCDMA Network Format
+ //Parse as LTE Network Format
jDebug["rsrp"] = vParts[2];
jDebug[KEY_RSSIDBM] = vParts[3];
jDebug["rsrq"] = vParts[4];
jData["tac"] = vParts[5];
- jDebug[KEY_TXPWR] = vParts[6];
+ jData[KEY_RAC] = vParts[6];
+ jDebug[KEY_TXPWR] = vParts[7];
//Odd empty index at 7
jData[KEY_DRX] = vParts[8];
jDebug[KEY_MM] = vParts[9];
jDebug["rrc"] = vParts[10];
- jDebug[KEY_CID] = vParts[11];
+ jData[KEY_CID] = vParts[11];
jData[KEY_IMSI] = MTS::Text::strip(vParts[12], '"');
jData[KEY_NETWORK] = MTS::Text::strip(vParts[13], '"');
- if(MTS::Text::parse(iValue, vParts[13]) && convertServiceDomainToString((SERVICEDOMAIN)iValue, sValue) == SUCCESS) {
+ if(MTS::Text::parse(iValue, vParts[14]) && convertServiceDomainToString((SERVICEDOMAIN)iValue, sValue) == SUCCESS) {
jDebug[KEY_SD] = sValue;
}
//Ignoring Active Set Values