summaryrefslogtreecommitdiff
path: root/src/MTS_IO_TelitRadio.cpp
diff options
context:
space:
mode:
authorAndrii Pientsov <andrii.pientsov@globallogic.com>2020-07-17 10:03:48 +0300
committerAndrii Pientsov <andrii.pientsov@globallogic.com>2020-07-17 10:03:48 +0300
commita05854f5d389f67001b7ecc4cda62c7320433349 (patch)
treecc8db0cad51bf284d708d2cd24dbe07eff2ef60c /src/MTS_IO_TelitRadio.cpp
parent1986b67d54e8e6a3f8176f5b4cb78786ac3ee496 (diff)
downloadlibmts-io-a05854f5d389f67001b7ecc4cda62c7320433349.tar.gz
libmts-io-a05854f5d389f67001b7ecc4cda62c7320433349.tar.bz2
libmts-io-a05854f5d389f67001b7ecc4cda62c7320433349.zip
Code review
Diffstat (limited to 'src/MTS_IO_TelitRadio.cpp')
-rw-r--r--src/MTS_IO_TelitRadio.cpp34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/MTS_IO_TelitRadio.cpp b/src/MTS_IO_TelitRadio.cpp
index 8d762be..599c71e 100644
--- a/src/MTS_IO_TelitRadio.cpp
+++ b/src/MTS_IO_TelitRadio.cpp
@@ -51,6 +51,36 @@ bool TelitRadio::resetRadio(uint32_t iTimeoutMillis) {
return false;
}
+ICellularRadio::CODE TelitRadio::getFirmwareBuild(std::string& sFirmwareBuild) {
+ std::string sCmd("AT#CFVR");
+
+ std::string sResult = sendCommand(sCmd);
+
+ size_t end = sResult.find(ICellularRadio::RSP_OK);
+ if (end == std::string::npos) {
+ printWarning("%s| Unable to get firmware build number [%s]",
+ getName().c_str(),
+ sCmd.c_str());
+ return FAILURE;
+ }
+
+ size_t start = sResult.find("#CFVR:");
+ if (start == std::string::npos) {
+ printWarning("%s| Command returned unexpected response [%s]",
+ getName().c_str(),
+ sCmd.c_str());
+ return FAILURE;
+ }
+
+ start += sizeof("#CFVR:");
+
+ sFirmwareBuild = MTS::Text::trim(sResult.substr(start, end-start));
+ if(sFirmwareBuild.size() == 0) {
+ printWarning("%s| Firmware Build Version is empty", getName().c_str());
+ return FAILURE;
+ }
+ return SUCCESS;
+}
ICellularRadio::CODE TelitRadio::getModel(std::string& sModel) {
printTrace("%s| Get Model", getName().c_str());
@@ -953,11 +983,11 @@ ICellularRadio::CODE TelitRadio::getVendorFirmware(std::string& sVendorFirmware)
if (pos != std::string::npos) {
// Found
std::vector<std::string> vLine = MTS::Text::split(sResult, "\r");
- if(vLine[1].size() == 0) {
+ sVendorFirmware = MTS::Text::trim(vLine[1]);
+ if(sVendorFirmware.size() == 0) {
printWarning("%s| Unable to get firmware from radio using command [%s]", getName().c_str(), sCmd.c_str());
rc = FAILURE;
} else {
- sVendorFirmware = MTS::Text::trim(vLine[1]);
rc = SUCCESS;
}
break;