summaryrefslogtreecommitdiff
path: root/include/mts
diff options
context:
space:
mode:
authorSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-08-06 14:47:49 +0300
committerSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-08-07 15:52:22 +0300
commitc1a58778eecd0115d746afbca1079683b244b672 (patch)
tree63bbc35791b58032391186480d61a88f399a8d3b /include/mts
parente1855057708468bc5383d948be70da7179730231 (diff)
downloadlibmts-io-c1a58778eecd0115d746afbca1079683b244b672.tar.gz
libmts-io-c1a58778eecd0115d746afbca1079683b244b672.tar.bz2
libmts-io-c1a58778eecd0115d746afbca1079683b244b672.zip
Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementation
During testing I discrovered that EG25-G radio may lose some data during transmission over Serial AT interface or just freezes and stops responding over Serial AT interface. When ACK mode is not used, the radio may either return an error: ``` Expected: [+QFUPL: 24312545,fa6b], Actual: [+QFUPL: 17124608,b907 +CME ERROR: 409 // Fail to write the file ] ``` Or it may just freeze on modem_at1 interface and stop responding to AT commands: ``` 8:0:34:32|TRACE|RADIO| Sending command [AT] 8:0:34:133|DEBUG|RESULT: 8:0:34:133|DEBUG|Shutting Down ``` This commit implements an alternative, ACK mode for data transmission to prevent data losses. Data is sent in chunks and the device waits for ACK string from the radio for each chunk.
Diffstat (limited to 'include/mts')
-rw-r--r--include/mts/MTS_IO_QuectelRadio.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/mts/MTS_IO_QuectelRadio.h b/include/mts/MTS_IO_QuectelRadio.h
index 0f24db8..5199b40 100644
--- a/include/mts/MTS_IO_QuectelRadio.h
+++ b/include/mts/MTS_IO_QuectelRadio.h
@@ -73,7 +73,7 @@ namespace MTS {
static const std::string VALUE_MTS_DELTA_NAME;
static const std::string VALUE_MTS_DELTA_PATH;
- CODE startFileUpload(const std::string& sTargetFilename, size_t nBytes);
+ CODE startFileUpload(const std::string& sTargetFilename, size_t nBytes, uint16_t uRxTimeout = 5, bool bAckEnabled = false);
CODE abortFileUpload();
static inline void callNextStep(UpdateCb& stepCb, const char* csMessage);