diff options
author | mykola.salomatin <mykola.salomatin@globallogic.com> | 2021-04-15 20:47:36 +0300 |
---|---|---|
committer | mykola.salomatin <mykola.salomatin@globallogic.com> | 2021-04-15 20:47:36 +0300 |
commit | 6cab1e29fc2031a76c87e49c3bcdd7c5db8f40dc (patch) | |
tree | bbb704819781eb1f57648adb4dde434376fc0018 /src/MTS_IO_LE910Radio.cpp | |
parent | 67a991ff3d772d2f81cb9907e1a710a88436f7c7 (diff) | |
download | libmts-io-6cab1e29fc2031a76c87e49c3bcdd7c5db8f40dc.tar.gz libmts-io-6cab1e29fc2031a76c87e49c3bcdd7c5db8f40dc.tar.bz2 libmts-io-6cab1e29fc2031a76c87e49c3bcdd7c5db8f40dc.zip |
[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - GP-1111
Refactoring common functions, telit and quectel functions related to CEMODE switching
Diffstat (limited to 'src/MTS_IO_LE910Radio.cpp')
-rw-r--r-- | src/MTS_IO_LE910Radio.cpp | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/src/MTS_IO_LE910Radio.cpp b/src/MTS_IO_LE910Radio.cpp index 764ac5e..74cf5c1 100644 --- a/src/MTS_IO_LE910Radio.cpp +++ b/src/MTS_IO_LE910Radio.cpp @@ -78,51 +78,55 @@ ICellularRadio::CODE LE910Radio::getModemLocation(std::string& sLocation) { return SUCCESS; } -ICellularRadio::CODE LE910Radio::setUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION newmode) { - uint8_t iValue; +ICellularRadio::CODE LE910Radio::setUeModeOfOperation(UE_MODES_OF_OPERATION mode) { + printTrace("%s| Set UE Mode Of Operation", getName().c_str()); - switch (newmode) { + std::string sValue; + + switch (mode) { case UE_MODES_OF_OPERATION::PS_MODE1: - iValue = 3; + sValue = "3"; break; case UE_MODES_OF_OPERATION::PS_MODE2: - iValue = 0; + sValue = "0"; break; case UE_MODES_OF_OPERATION::CS_PS_MODE1: - iValue = 1; + sValue = "1"; break; case UE_MODES_OF_OPERATION::CS_PS_MODE2: - iValue = 2; + sValue = "2"; break; default: - printTrace("Set UE Mode Of Operation: invalid argument"); - return CODE::INVALID_ARGS; + printError("%s| Set UE Mode Of Operation: invalid argument", getName().c_str()); + return INVALID_ARGS; } const int dTimeout = 1000; // ms - const std::string sCommand = "AT+CEMODE=" + MTS::Text::format(iValue); + const std::string sCommand = "AT+CEMODE=" + sValue; return sendBasicCommand(sCommand, dTimeout); } -ICellularRadio::CODE LE910Radio::getUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION& newmode) { +ICellularRadio::CODE LE910Radio::getUeModeOfOperation(UE_MODES_OF_OPERATION& mode) { + printTrace("%s| Get UE Mode Of Operation", getName().c_str()); + const std::string sCommand = "AT+CEMODE?"; const int dTimeout = 1000; // ms std::string sResult = sendCommand(sCommand, ICellularRadio::DEFAULT_BAIL_STRINGS, dTimeout); - printTrace("Got response from the radio: %s", sResult.c_str()); + printTrace("%s| Got response from the radio: %s", getName().c_str(), sResult.c_str()); size_t end = sResult.rfind(ICellularRadio::RSP_OK); if (std::string::npos == end) { - printWarning("Unable to get UE Mode Of Operation from radio using command [%s]", sCommand.c_str()); - return CODE::FAILURE; + printError("%s| Unable to get UE Mode Of Operation from radio using command [%s]", getName().c_str(), sCommand.c_str()); + return FAILURE; } const std::string sLabel = "+CEMODE: "; size_t start = sResult.find(sLabel); if (std::string::npos == start) { - printWarning("Unable to get UE Mode Of Operation from radio using command [%s]", sCommand.c_str()); - return CODE::FAILURE; + printError("%s| Unable to get UE Mode Of Operation from radio using command [%s]", getName().c_str(), sCommand.c_str()); + return FAILURE; } start += sLabel.length(); @@ -130,32 +134,32 @@ ICellularRadio::CODE LE910Radio::getUeModeOfOperation(ICellularRadio::UE_MODES_O uint8_t uiValue; if (!MTS::Text::parse(uiValue, sValue)) { - printWarning("Unable to parse CEMODE from response [%s]", sResult.c_str()); - return CODE::FAILURE; + printError("%s| Unable to parse CEMODE from response [%s]", getName().c_str(), sResult.c_str()); + return FAILURE; } CODE rc; switch (uiValue) { case 0: - newmode = ICellularRadio::UE_MODES_OF_OPERATION::PS_MODE2; - rc = CODE::SUCCESS; + mode = UE_MODES_OF_OPERATION::PS_MODE2; + rc = SUCCESS; break; case 1: - newmode = ICellularRadio::UE_MODES_OF_OPERATION::CS_PS_MODE1; - rc = CODE::SUCCESS; + mode = UE_MODES_OF_OPERATION::CS_PS_MODE1; + rc = SUCCESS; break; case 2: - newmode = ICellularRadio::UE_MODES_OF_OPERATION::CS_PS_MODE2; - rc = CODE::SUCCESS; + mode = UE_MODES_OF_OPERATION::CS_PS_MODE2; + rc = SUCCESS; break; case 3: - newmode = ICellularRadio::UE_MODES_OF_OPERATION::PS_MODE1; - rc = CODE::SUCCESS; + mode = UE_MODES_OF_OPERATION::PS_MODE1; + rc = SUCCESS; break; default: - printWarning("Unable to parse CEMODE from response [%s]", sResult.c_str()); - newmode = ICellularRadio::UE_MODES_OF_OPERATION::UNKNOWN_MODE; - rc = CODE::FAILURE; + printError("%s| Unable to parse CEMODE from response [%s]", getName().c_str(), sResult.c_str()); + mode = UE_MODES_OF_OPERATION::UNKNOWN_MODE; + rc = FAILURE; break; } return rc; |