Age | Commit message (Collapse) | Author | Files |
|
CellularRadio::resetConnection implementations disables serial echo on connection reset.
Serial echo is disabled using ATE0 command, radio may handle it and return an OK response.
During testing I discovered that EG25 radio does not return an OK response in 100ms
(default timeout time) and this OK response may conflict with successive AT commands.
This commit adds a simple "AT" command to be executed before getVendorFirmware to "eat"
all the data accumulated in the buffer.
|
|
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.
|
|
Delta Radio Firmware Upgrade implementation uses file management commands for Quectel radios.
Radio behaviour for +QFLST output on EG25 radios is different that on EG95:
- EG95 radios list all files on UFS _with_ "UFS:" prefix;
- EG25 radios list all files on UFS _without_ "UFS:" prefix.
This commit allows to handle both formats of +QFLST output to check file presense.
|
|
Increased the maximum delay for AT#OTAUPW response to 10 seconds.
In some cases 1 second is too short for the radio to start accepting the injected firmware.
|
|
|
|
Quectel Delta Radio Firmware Upgrade support - libmts-io implementation
See merge request !31
|
|
During testing it was discovered that rarely CellularRadio::sendCommand implementation
returns not one line with URC output but multiple lines.
It happened once during testing and development. But is likely to happen again under
increased CPU load and/or when CPU does not keep pace with the serial data flow.
|
|
Added more strict handling for comma-separated data in URC messages to prevent out-of-bounds reads.
|
|
Delta Radio Firmware Upgrade support: LEU7 and L4E1
See merge request !30
|
|
During testing it was discovered that the radio is detached for 4 minutes 40 seconds while
the upgrade is in progress. This was too close to the time limit of 5 minutes set before.
This commit increases attach timeout to 6 minutes to be on the safe side.
|
|
Changes after code review:
1. Handle cases when the number of bytes written is different from the number of bytes requested to transfer.
2. Use fstat instead of lseek to determine the firmware size.
3. Renamed TelitRadio::startWrite and TelitRadio::abortWrite functions to better represent their applicability scope.
|
|
Fixed Quectel checksum calculation algorithm to correctly handle odd file sizes.
|
|
Add vendor firmware version
See merge request !29
|
|
|
|
|
|
|
|
MTX-3404 mPower Oct20: Delta Radio Firmware Upgrade - L4E1 - libmts-io support
See merge request !28
|
|
|
|
|
|
|
|
|
|
Quectel Delta Radio Firmware Upgrade support - libmts-io implementation
See merge request !27
|
|
Small fixes and improvements.
1. Fixed casing for the "FUMO Error: timeout, radio is not responding" message.
All error messages passed to the status callback shall start with "FUMO Error:"
2. Removed extra carriage return for the "abortFileUpload" command.
Passing "+++\r" instead of the "+++" to the radio works for Quectel but cause
issues for Telit.
At the same time Quectel specificly requires to
"Do not input any character within 1s after “+++” has been inputted."
in their FILE manual. Possibly, "any character" includes carriage return.
3. Fixed a typo: "lenght" -> "length"
|
|
Quectel Delta Radio Firmware Upgrade support - libmts-io implementation
See merge request !26
|
|
Fixed message format for FUMO Done and FUMO Error messages.
The original code with "FUMO done" ("done" lowercase) and "FUMO error" ("error" lowercase)
was copied from the ME910C1-WW implementation. At the same time other places of the code
use Title Case for "Done", "Error" and "Info" messages.
This commit fixes the last bunch of messages in the QuectelRadio Delta FWU implementation to
use Title Case. This simplifies handling in various scripts and other components.
|
|
Fixed format of FILE upload log messages.
|
|
Implemented firmware version check detection.
|
|
Cleanup for the printouts and status messages.
|
|
Simplified usage of step callbacks in the QuectelRadio class.
Refactored existing function to use a wrapper and preven repetitive checks.
|
|
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
|
|
Initial implementation of the "Apply delta firmware" step. Requires cleanup.
|
|
|
|
[MTX-3489] mPower Oct20: Porting "LNA7 Intermediate Release" changes
See merge request !25
|
|
|
|
Merged all the changes from the intermediate release to master.
|
|
[GP-654] Add SIM card-based carrier detection
See merge request !24
|
|
Changes after a code review:
- renamed "MTS Carrier Code" to the "Carrier Code";
- fixed descriptions for the new field and methods.
|
|
This commit adds implementation of the SIM-based carrier detection.
The goal for this implementation is to replace various places in the firmware
that previously relied on the ICCID-based carrier detection, provide some layer
of abstraction and forward compatibility for such places.
It is particularly useful for fwSwitch radios with AUTO firmware selection capability.
|
|
[MTX-3444] mPower Oct20: L4G1 libmts-io support
See merge request !23
|
|
Restore mtx 3262 single instance guard
See merge request !21
|
|
[GP-651] LNA7: Allow to start the OMA DM procedure when it is required
See merge request !22
|
|
Fixed totally invalid string formatting for the stepCb argument.
The previous implementation caused Json::Value to select the following constructor:
```Value(const char* begin, const char* end); ///< Copy all, incl zeroes.```
Which, of course, resulted in OOM violations. Oops.
|
|
Fixes after a code review:
- increased timeout from 60 to 160 seconds for "Abnormal" cases;
- added hanlding for the "DME Abnormal" URC;
- added "kill OMA DM" logic for the timeout case.
|
|
Vs/mtx 3251/modem does not work
See merge request !20
|
|
Fixed AT+QODM parameters. AT+QODM parameters are case-sensitive.
|
|
This commits adds support for the Quectel-specific OMA DM commands.
This allows to trigger OMA DM procedure om Verizon to fetch the corrent APN
values and other settings from the network.
Expected radio output on success:
```
+QODM: "DME",0,DM Start
+QODM: "DME",0,DM End
```
Other +QODM URC codes are also possible according to information from Quectel forum:
https://forums.quectel.com/t/what-is-the-meaning-of-qodm-fumo-report-failed/2444/5.
But only "DM Start" and "DM End" responses are expected, supported and treated
as correct in the libmts-io.
|
|
Initial implementation of the delta firmware image upload for Quectel radios.
|
|
Declared base interface and added started implementation for the QuectelRadio class.
Implemented file listing (file status check) and file removal logic.
|
|
Declared base interface and added stub implementation for the Delta Radio
Firmware Upgrade support in libmts-io.
|
|
|