Age | Commit message (Collapse) | Author | Files |
|
GP-1111
Refactoring after review
|
|
GP-1111
Added CEMODE switching support for Quectel radios
|
|
Small improvements in code comments.
|
|
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.
|
|
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.
|
|
Added more strict handling for comma-separated data in URC messages to prevent out-of-bounds reads.
|
|
|
|
|
|
|
|
|
|
Implemented firmware version check detection.
|
|
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.
|
|
|
|
|
|
Merged all the changes from the intermediate release to master.
|
|
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.
|
|
|
|
Use get/setCellularMode instead
Revert of commits:
4ef332ec707946a3cf2a55473d05dfc9af3d4b11
[MTS-MTQ] network radio mode switch: refactoring method name
143feb6a4587817d28c77e4df3a1b594b855f5e5
[MTS-MTQ] RAT mode switch: implementation for telit and quectel
|
|
|
|
|
|
Refactored the CellularRadio class to include base stub implementation
for the "CellularRadio::getCarrierFromFirmware" and
"CellularRadio::getHardwareVersionFromFirmware" methods.
From now assuming that those two possibilities are not supported
by the modem until otherwise specified (i.e. until the method
implementation was overridden in derived class).
This change was implemented after a code review.
|
|
|
|
|
|
Added Quectel-specific implementation of the CellularRadio::getIsSimInserted and
CellularRadio::getSimLockAttempts utility methods
|
|
RAT - Radio Access Technology
|
|
Added the full implementation of QuectelRadio class.
Ported the changes from a local branch to the new libmts-io architecture.
|
|
TelitRadio
|