From e09f54c6b6fe35dc022fcea66935f5269866bff1 Mon Sep 17 00:00:00 2001 From: Andrii Pientsov Date: Fri, 10 Jul 2020 15:40:48 +0300 Subject: MTX-3404 mPower Oct20: Delta Radio Firmware Upgrade - L4E1 - libmts-io support --- include/mts/MTS_IO_LE910C4EURadio.h | 1 + include/mts/MTS_IO_TelitRadio.h | 50 ++++++++++++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mts/MTS_IO_LE910C4EURadio.h b/include/mts/MTS_IO_LE910C4EURadio.h index e872df3..a0d6baa 100644 --- a/include/mts/MTS_IO_LE910C4EURadio.h +++ b/include/mts/MTS_IO_LE910C4EURadio.h @@ -35,6 +35,7 @@ namespace MTS { virtual ~LE910C4EURadio(){}; protected: + FOTA_GROUP getFotaGroup() override; private: diff --git a/include/mts/MTS_IO_TelitRadio.h b/include/mts/MTS_IO_TelitRadio.h index bd542f1..07a95de 100644 --- a/include/mts/MTS_IO_TelitRadio.h +++ b/include/mts/MTS_IO_TelitRadio.h @@ -44,6 +44,10 @@ namespace MTS { CODE getSupportedCellularModes(CELLULAR_MODES &networks) override; CODE setCellularMode(CELLULAR_MODES networks) override; + CODE updateFumoLocal(int fd, UpdateCb& stepCb) override; + CODE fumoLocalInject(int fd, UpdateCb& stepCb) override; + CODE fumoLocalApply(UpdateCb& stepCb) override; + protected: TelitRadio(const std::string& sName, const std::string& sRadioPort); @@ -53,10 +57,54 @@ namespace MTS { CODE getIsSimInserted(bool& bData) override; CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk) override; + enum FOTA_GROUP : uint8_t { + VALUE_GROUP_A = 0, + VALUE_GROUP_B, + VALUE_GROUP_C, + VALUE_GROUP_D, + VALUE_UNKNOWN + }; + + virtual FOTA_GROUP getFotaGroup(); + virtual CODE uploadFile(int fd, UpdateCb& stepCb); + private: virtual CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk, const std::string& sLockStatus); ICellularRadio::CODE wdsList(std::set &wds); + + // private variable to save old firmware versions during FOTA + std::string m_sTelitFirmware; + + static const size_t FILE_CHUNK_SIZE; + static const std::string CMD_ABORT_UPLOAD; + + CODE getTelitFirmware(std::string& sFirmware); + + CODE startFileUpload(); + CODE abortFileUpload(); + + static inline void callNextStep(UpdateCb& stepCb, const char* csMessage); + static inline void callNextStep(UpdateCb& stepCb, const std::string& sMessage); + + static CODE getFileSize(int fd, size_t& nBytes, size_t& nFileChunks); + static CODE readChunk(int fd, char* pChunk, size_t dChunkSize, size_t& nReadBytes); + CODE fumoWaitRadioBooted(UpdateCb& stepCb); + CODE fumoCheckNewFirmware(UpdateCb& stepCb); + }; } } -#endif + +void MTS::IO::TelitRadio::callNextStep(ICellularRadio::UpdateCb& stepCb, const char* csMessage) { + if (stepCb) { + stepCb(Json::Value(csMessage)); + } +} + +void MTS::IO::TelitRadio::callNextStep(ICellularRadio::UpdateCb& stepCb, const std::string& sMessage) { + if (stepCb) { + stepCb(Json::Value(sMessage)); + } +} + +#endif /* MTS_IO_TELITRADIO_H_ */ -- cgit v1.2.3 From ccd41677d998134ff501a8d6ac3a154dcaca9321 Mon Sep 17 00:00:00 2001 From: Andrii Pientsov Date: Mon, 13 Jul 2020 15:29:38 +0300 Subject: MTX-3404 Code Review --- include/mts/MTS_IO_CellularRadio.h | 4 ++++ include/mts/MTS_IO_QuectelRadio.h | 3 --- include/mts/MTS_IO_TelitRadio.h | 12 +++++------- 3 files changed, 9 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h index e3941c3..6b23986 100644 --- a/include/mts/MTS_IO_CellularRadio.h +++ b/include/mts/MTS_IO_CellularRadio.h @@ -217,6 +217,10 @@ namespace MTS { std::string m_sRadioType; }; + static const size_t FILE_CHUNK_SIZE = 1024; + static CODE getFileSize(int fd, size_t& nBytes, size_t& nFileChunks); + static CODE readChunk(int fd, char* pChunk, size_t dChunkSize, size_t& nReadBytes); + private: std::string m_sName; std::string m_sRadioPort; diff --git a/include/mts/MTS_IO_QuectelRadio.h b/include/mts/MTS_IO_QuectelRadio.h index d8228cb..2121f7c 100644 --- a/include/mts/MTS_IO_QuectelRadio.h +++ b/include/mts/MTS_IO_QuectelRadio.h @@ -67,7 +67,6 @@ namespace MTS { // private variable to save old firmware versions during FOTA std::string m_sQuectelFirmware; - static const size_t FILE_CHUNK_SIZE; static const std::string CMD_ABORT_UPLOAD; static const std::string VALUE_MTS_DELTA_NAME; static const std::string VALUE_MTS_DELTA_PATH; @@ -85,8 +84,6 @@ namespace MTS { static uint16_t getQuectelChecksum(const void* data, size_t nBytes); static inline void updateQuectelChecksum(uint16_t& iChecksum, uint16_t iNewFragment); static inline uint16_t bytesToUint16(uint8_t high, uint8_t low); - static CODE getFileSize(int fd, size_t& nBytes, size_t& nFileChunks); - static CODE readChunk(int fd, char* pChunk, size_t dChunkSize, size_t& nReadBytes); CODE fumoWaitUpgradeFinished(UpdateCb& stepCb); CODE fumoWaitNewFirmware(UpdateCb& stepCb); }; diff --git a/include/mts/MTS_IO_TelitRadio.h b/include/mts/MTS_IO_TelitRadio.h index 07a95de..fdf8a20 100644 --- a/include/mts/MTS_IO_TelitRadio.h +++ b/include/mts/MTS_IO_TelitRadio.h @@ -66,7 +66,8 @@ namespace MTS { }; virtual FOTA_GROUP getFotaGroup(); - virtual CODE uploadFile(int fd, UpdateCb& stepCb); + virtual CODE fumoWriteGroupsABD(int fd, UpdateCb& stepCb); + //virtual CODE fumoWriteGroupC(int fd, UpdateCb& stepCb); private: virtual CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk, const std::string& sLockStatus); @@ -75,20 +76,17 @@ namespace MTS { // private variable to save old firmware versions during FOTA std::string m_sTelitFirmware; - static const size_t FILE_CHUNK_SIZE; static const std::string CMD_ABORT_UPLOAD; CODE getTelitFirmware(std::string& sFirmware); - CODE startFileUpload(); - CODE abortFileUpload(); + CODE startWrite(); + CODE abortWrite(); static inline void callNextStep(UpdateCb& stepCb, const char* csMessage); static inline void callNextStep(UpdateCb& stepCb, const std::string& sMessage); - static CODE getFileSize(int fd, size_t& nBytes, size_t& nFileChunks); - static CODE readChunk(int fd, char* pChunk, size_t dChunkSize, size_t& nReadBytes); - CODE fumoWaitRadioBooted(UpdateCb& stepCb); + CODE fumoWaitUpgradeFinished(UpdateCb& stepCb); CODE fumoCheckNewFirmware(UpdateCb& stepCb); }; -- cgit v1.2.3 From 8186f98913c55191b5a3610d19c8580c6a86c2f4 Mon Sep 17 00:00:00 2001 From: Andrii Pientsov Date: Wed, 15 Jul 2020 13:49:59 +0300 Subject: MTX-3404 Code Review --- include/mts/MTS_IO_CellularRadio.h | 4 ++-- include/mts/MTS_IO_QuectelRadio.h | 1 + include/mts/MTS_IO_TelitRadio.h | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h index 6b23986..57a4de6 100644 --- a/include/mts/MTS_IO_CellularRadio.h +++ b/include/mts/MTS_IO_CellularRadio.h @@ -217,8 +217,8 @@ namespace MTS { std::string m_sRadioType; }; - static const size_t FILE_CHUNK_SIZE = 1024; - static CODE getFileSize(int fd, size_t& nBytes, size_t& nFileChunks); + static CODE getFileSize(int fd, size_t& nBytes); + static CODE sizeToChunks(const size_t nBytes, const size_t chunkSize, size_t& nChunks); static CODE readChunk(int fd, char* pChunk, size_t dChunkSize, size_t& nReadBytes); private: diff --git a/include/mts/MTS_IO_QuectelRadio.h b/include/mts/MTS_IO_QuectelRadio.h index 2121f7c..6e7372b 100644 --- a/include/mts/MTS_IO_QuectelRadio.h +++ b/include/mts/MTS_IO_QuectelRadio.h @@ -67,6 +67,7 @@ namespace MTS { // private variable to save old firmware versions during FOTA std::string m_sQuectelFirmware; + static const size_t FILE_CHUNK_SIZE; static const std::string CMD_ABORT_UPLOAD; static const std::string VALUE_MTS_DELTA_NAME; static const std::string VALUE_MTS_DELTA_PATH; diff --git a/include/mts/MTS_IO_TelitRadio.h b/include/mts/MTS_IO_TelitRadio.h index fdf8a20..a3425f9 100644 --- a/include/mts/MTS_IO_TelitRadio.h +++ b/include/mts/MTS_IO_TelitRadio.h @@ -76,6 +76,7 @@ namespace MTS { // private variable to save old firmware versions during FOTA std::string m_sTelitFirmware; + static const size_t FILE_CHUNK_SIZE; static const std::string CMD_ABORT_UPLOAD; CODE getTelitFirmware(std::string& sFirmware); -- cgit v1.2.3