diff options
author | Serhii Kostiuk <serhii.o.kostiuk@globallogic.com> | 2020-08-04 10:20:54 +0300 |
---|---|---|
committer | Serhii Kostiuk <serhii.o.kostiuk@globallogic.com> | 2020-08-04 12:32:04 +0300 |
commit | 1afb3c7bb338eba0410f85be8e5eaf192a7c4857 (patch) | |
tree | a5ad26622f3a5dd43c7fa1dfbdc865b9c0cbc345 /include | |
parent | 64d8e39ac05a89acfb9173fad05d0aab948032c6 (diff) | |
download | libmts-io-1afb3c7bb338eba0410f85be8e5eaf192a7c4857.tar.gz libmts-io-1afb3c7bb338eba0410f85be8e5eaf192a7c4857.tar.bz2 libmts-io-1afb3c7bb338eba0410f85be8e5eaf192a7c4857.zip |
Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementation
During testing with L4G1 device I discovered some inconsistencies in behaviour between
EG25-G device and EG95 devices (EG95-NA and EG95-E).
EG25-G device that I have on hands does not allow to perform downgrades using delta images.
When there is an attempt to apply a downgrade delta image it behaves as the following:
- radio prints `OK`
- radio prints `+QIND: "FOTA",502`
- radio is not rebooted
While EG95 radios always reboot at least once to apply the firmware image. Even if it is not valid.
Also I noticed that detach from the serial bus may take more than 10 seconds in some rare cases.
Thus we need to wait not a fixed amount of time but until the radio actually detaches from the bus.
This commit attempts to address the findings described above.
Diffstat (limited to 'include')
-rw-r--r-- | include/mts/MTS_IO_QuectelRadio.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/mts/MTS_IO_QuectelRadio.h b/include/mts/MTS_IO_QuectelRadio.h index 58e3d25..0f24db8 100644 --- a/include/mts/MTS_IO_QuectelRadio.h +++ b/include/mts/MTS_IO_QuectelRadio.h @@ -86,6 +86,9 @@ namespace MTS { CODE fumoWaitUpgradeFinished(UpdateCb& stepCb); CODE fumoWaitNewFirmware(UpdateCb& stepCb); + /// Parse error code in early FUMO URC result received before the first attempt to flash the firmware + std::string getFumoEarlyErrorCode(const std::string& sRadioInput); + /// Get value from container by its index, use default value if not found. Non-template version. const std::string& getByIndex(const std::vector<std::string>& vector, size_t index, const std::string& defaultValue) { if (index >= vector.size()) { |