summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-07-03 17:59:47 +0300
committerSerhii Kostiuk <serhii.o.kostiuk@globallogic.com>2020-07-03 18:17:10 +0300
commit2c3296b5239b5d27f5df4d61a9609ace6d70904f (patch)
treebf2d5e5c9a897af56868f4a793943b302fc288cc /include
parentd1798ea6a82c46b43e4caf27148189f34cc44ca5 (diff)
downloadlibmts-io-2c3296b5239b5d27f5df4d61a9609ace6d70904f.tar.gz
libmts-io-2c3296b5239b5d27f5df4d61a9609ace6d70904f.tar.bz2
libmts-io-2c3296b5239b5d27f5df4d61a9609ace6d70904f.zip
Quectel Delta Radio Firmware Upgrade support - libmts-io implementation
Started code cleanup before finishing the procedure. Renamed functions related to the delta radio firmware upgrade to follow established patterns: - uploadDeltaFirmwareFile -> fumoLocalInject - applyDeltaFirmwareFile -> fumoLocalApply - removeDeltaFirmwareFile -> fumoLocalCleanup - new function: updateFumoLocal - encapsulates all the magic for radios that may not support separate stages for the delta upload and delta apply
Diffstat (limited to 'include')
-rw-r--r--include/mts/MTS_IO_CellularRadio.h7
-rw-r--r--include/mts/MTS_IO_ICellularRadio.h55
-rw-r--r--include/mts/MTS_IO_QuectelRadio.h12
3 files changed, 45 insertions, 29 deletions
diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h
index e65e7cd..e3941c3 100644
--- a/include/mts/MTS_IO_CellularRadio.h
+++ b/include/mts/MTS_IO_CellularRadio.h
@@ -99,9 +99,10 @@ namespace MTS {
CODE updateDc(const Json::Value& jArgs, UpdateCb& stepCb) override;
CODE updatePrl(const Json::Value& jArgs, UpdateCb& stepCb) override;
CODE updateFumo(const Json::Value& jArgs, UpdateCb& stepCb) override;
- CODE uploadDeltaFirmwareFile(int fd, UpdateCb& stepCb) override;
- CODE removeDeltaFirmwareFile() override;
- CODE applyDeltaFirmwareFile(UpdateCb& stepCb) override;
+ CODE updateFumoLocal(int fd, UpdateCb& stepCb) override;
+ CODE fumoLocalInject(int fd, UpdateCb& stepCb) override;
+ CODE fumoLocalApply(UpdateCb& stepCb) override;
+ CODE fumoLocalCleanup() override;
CODE resetHfa(const Json::Value& jArgs, UpdateCb& stepCb) override;
CODE activate(const Json::Value& jArgs, UpdateCb& stepCb) override;
CODE startOmaDm(UpdateCb& stepCb) override;
diff --git a/include/mts/MTS_IO_ICellularRadio.h b/include/mts/MTS_IO_ICellularRadio.h
index 3259041..e1edbcd 100644
--- a/include/mts/MTS_IO_ICellularRadio.h
+++ b/include/mts/MTS_IO_ICellularRadio.h
@@ -429,54 +429,69 @@ namespace MTS {
virtual CODE updateFumo(const Json::Value& jArgs, UpdateCb& stepCb) = 0;
/**
- * @brief uploadDeltaFirmwareFile - upload delta file to the radio's internal memory.
+ * @brief updateFumoLocal - Performs the radio firmware upgrade using local firmware image.
*
- * This command uploads (injects) the whole delta firmware image to some place that
- * can be later used by the radio to perform the Delta Radio Firmware Upgrade.
- *
- * This delta firmware image is NOT validated on the firmware image upload step.
+ * This command uploads (injects) the whole delta firmware image to the radio, performs the
+ * upgrade and waits for it to complete.
*
- * @param fd - file sescriptor of a file that shall be uploaded to the radio.
- * @param stepCb - the callback to receive status updates during the upload.
- * @return CODE::SUCCESS when the file was successfully uploaded,
+ * @param fd - file descriptor of a file that shall be injected to the radio.
+ * @param stepCb - callback to receive status updates during the firmware upgrade.
+ * @return CODE::SUCCESS when the firmware upgrade was successful,
* CODE::INVALID_ARGS when the file can't be opened for reading,
+ * CODE::FAILURE when upgrade failed on the radio side,
* CODE::NOT_APPLICABLE when not supported by this radio,
* CODE::ERROR otherwise.
*/
- virtual CODE uploadDeltaFirmwareFile(int fd, UpdateCb& stepCb) = 0;
+ virtual CODE updateFumoLocal(int fd, UpdateCb& stepCb) = 0;
/**
- * @brief removeDeltaFirmwareFile - remove the delta file from the radio's internal memory.
+ * @brief fumoLocalInject - upload delta file to the radio's internal memory.
*
- * This command allows to remove the old delta firmware image from the radio's internal
- * memory for cases when it's no longer needed.
+ * This command uploads (injects) the whole delta firmware image to some place that
+ * can be later used by the radio to perform the Delta Radio Firmware Upgrade.
+ *
+ * This delta firmware image is NOT validated on the firmware image upload step.
*
* @param fd - file sescriptor of a file that shall be uploaded to the radio.
- * @return CODE::SUCCESS when the file was successfully deleted,
- * CODE::FAILURE when the file can't be deleted (i.e. no such file),
+ * @param stepCb - callback to receive status updates during the upload.
+ * @return CODE::SUCCESS when the file was successfully uploaded,
+ * CODE::INVALID_ARGS when the file can't be opened for reading,
* CODE::NOT_APPLICABLE when not supported by this radio,
* CODE::ERROR otherwise.
*/
- virtual CODE removeDeltaFirmwareFile() = 0;
+ virtual CODE fumoLocalInject(int fd, UpdateCb& stepCb) = 0;
/**
- * @brief applyDeltaFirmwareFile - apply the delta file that was previously uploaded.
+ * @brief fumoLocalApply - apply the delta file that was previously uploaded.
*
* This commands initializes and tracks the progress of the delta firmware upgrade
* procedure using the delta firmware image file that was previously uploaded
- * into internal radio's memory.
+ * into internal memory of the radio.
*
- * See ICellularRadio::removeDeltaFirmwareFile to upload the file and prepare
+ * See ICellularRadio::fumoLocalInject to upload the file and prepare
* for the upgrade.
*
- * @param fd - file sescriptor of a file that shall be uploaded to the radio.
+ * @param fd - file descriptor of a file that shall be uploaded to the radio.
* @param stepCb - the callback to receive status updates during the upgrade.
+ * @return CODE::SUCCESS when the firmware upgrade was successful,
+ * CODE::FAILURE when upgrade failed on the radio side,
+ * CODE::NOT_APPLICABLE when not supported by this radio,
+ * CODE::ERROR otherwise.
+ */
+ virtual CODE fumoLocalApply(UpdateCb& stepCb) = 0;
+
+ /**
+ * @brief fumoLocalCleanup - remove the delta file from the radio's internal memory.
+ *
+ * This command allows to remove the old delta firmware image from the radio's internal
+ * memory for cases when it's no longer needed.
+ *
* @return CODE::SUCCESS when the file was successfully deleted,
* CODE::FAILURE when the file can't be deleted (i.e. no such file),
* CODE::NOT_APPLICABLE when not supported by this radio,
* CODE::ERROR otherwise.
*/
- virtual CODE applyDeltaFirmwareFile(UpdateCb& stepCb) = 0;
+ virtual CODE fumoLocalCleanup() = 0;
/*
* jArgs = {
diff --git a/include/mts/MTS_IO_QuectelRadio.h b/include/mts/MTS_IO_QuectelRadio.h
index cb455d8..b805ed8 100644
--- a/include/mts/MTS_IO_QuectelRadio.h
+++ b/include/mts/MTS_IO_QuectelRadio.h
@@ -45,9 +45,10 @@ namespace MTS {
CODE setCellularMode(CELLULAR_MODES networks) override;
- CODE uploadDeltaFirmwareFile(int fd, UpdateCb& stepCb) override;
- CODE removeDeltaFirmwareFile() override;
- CODE applyDeltaFirmwareFile(UpdateCb& stepCb) override;
+ CODE updateFumoLocal(int fd, UpdateCb& stepCb) override;
+ CODE fumoLocalInject(int fd, UpdateCb& stepCb) override;
+ CODE fumoLocalCleanup() override;
+ CODE fumoLocalApply(UpdateCb& stepCb) override;
protected:
QuectelRadio(const std::string& sName, const std::string& sRadioPort);
@@ -76,9 +77,8 @@ namespace MTS {
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 waitApplyDeltaFirmware(UpdateCb& stepCb);
- CODE waitFotaFinish(UpdateCb& stepCb);
- CODE waitNewFirmware(UpdateCb& stepCb);
+ CODE fumoWaitUpgradeFinished(UpdateCb& stepCb);
+ CODE fumoWaitNewFirmware(UpdateCb& stepCb);
};
}
}