diff options
Diffstat (limited to 'src/MTS_IO_TelitRadio.cpp')
-rw-r--r-- | src/MTS_IO_TelitRadio.cpp | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/src/MTS_IO_TelitRadio.cpp b/src/MTS_IO_TelitRadio.cpp index 599c71e..a82004c 100644 --- a/src/MTS_IO_TelitRadio.cpp +++ b/src/MTS_IO_TelitRadio.cpp @@ -82,6 +82,50 @@ ICellularRadio::CODE TelitRadio::getFirmwareBuild(std::string& sFirmwareBuild) { return SUCCESS; } +ICellularRadio::CODE TelitRadio::getVendorFirmware(std::string& sVendorFirmware) { + printTrace("%s| Get Telit-specific firmware version", getName().c_str()); + ICellularRadio::CODE rc = FAILURE; + sVendorFirmware = ICellularRadio::VALUE_NOT_SUPPORTED; + std::string sFirmware; + std::string sFirmwareBuild; + std::string sCmd("AT#SWPKGV"); + std::string sResult = sendCommand(sCmd); + size_t pos = sResult.find(ICellularRadio::RSP_OK); + + do { + + if (pos != std::string::npos) { + // Found + std::vector<std::string> vLine = MTS::Text::split(sResult, "\r"); + 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 { + rc = SUCCESS; + } + break; + } + + // Not Found. Then we will use "AT+CGMR" + "AT#CFVR" + rc = getFirmware(sFirmware); + if (rc != SUCCESS){ + break; + } + + rc = getFirmwareBuild(sFirmwareBuild); + if (rc != SUCCESS){ + break; + } + + sVendorFirmware = sFirmware + "," + sFirmwareBuild; + + } while (false); + + + return rc; +} + ICellularRadio::CODE TelitRadio::getModel(std::string& sModel) { printTrace("%s| Get Model", getName().c_str()); //Always returns SUCCESS because the model should be m_sName @@ -968,50 +1012,6 @@ ICellularRadio::CODE TelitRadio::abortWrite() { return sendBasicCommand(CMD_ABORT_UPLOAD, 2000, 0x00); } -ICellularRadio::CODE TelitRadio::getVendorFirmware(std::string& sVendorFirmware) { - printTrace("%s| Get Telit-specific firmware version", getName().c_str()); - ICellularRadio::CODE rc = FAILURE; - sVendorFirmware = ICellularRadio::VALUE_NOT_SUPPORTED; - std::string sFirmware; - std::string sFirmwareBuild; - std::string sCmd("AT#SWPKGV"); - std::string sResult = sendCommand(sCmd); - size_t pos = sResult.find(ICellularRadio::RSP_OK); - - do { - - if (pos != std::string::npos) { - // Found - std::vector<std::string> vLine = MTS::Text::split(sResult, "\r"); - 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 { - rc = SUCCESS; - } - break; - } - - // Not Found. Then we will use "AT+CGMR" + "AT#CFVR" - rc = getFirmware(sFirmware); - if (rc != SUCCESS){ - break; - } - - rc = getFirmwareBuild(sFirmwareBuild); - if (rc != SUCCESS){ - break; - } - - sVendorFirmware = sFirmware + "," + sFirmwareBuild; - - } while (false); - - - return rc; -} - ICellularRadio::CODE TelitRadio::fumoWaitUpgradeFinished(ICellularRadio::UpdateCb& stepCb) { const uint32_t duAttachTimeout = 300000; // wait for 300 seconds for the radio to attach const uint32_t duUrcTimeout = 60 * 1000; // wait for 1 minutes for the next URC message |