summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorFiles
2023-04-26Fix tabs vs spaces in the latest changesHEAD1.0.35masterSerhii Kostiuk2
This commit does not chanhe any code except whitespace characters. Please look for the previous commits if you run `git blame`. Good places to continue the search via git blame: - 33ed089d4b59bd79ae35f626ea6fc3da20c2edb9 - the commit before time changes; - 582634c91a778dba7047a69b5559f849d03be112 - the time changes commit before the merge.
2023-03-30Commit merge with master on libmts-io mirrorjeff5
2023-03-27Support Portal Case #5086148: use Cellular Radio time as alternative to GPS ↵sdesai2
or NTP
2023-03-24Support Portal Case #5086148: use Cellular Radio time as alternative to GPS ↵sdesai1
or NTP
2023-03-23Support Portal Case #5086148: use Cellular Radio time as alternative to GPS ↵sdesai3
or NTP
2023-03-23Support Portal Case #5086148: use Cellular Radio time as alternative to GPS ↵sdesai4
or NTP
2023-03-20Support Portal Case #5086148: use Cellular Radio timeas alternative to GPS ↵sdesai5
or NTP
2023-03-15GP-139:Support Portal Case #5086148: use Cellular Radio timeas alternative ↵sdesai4
to GPS or NTP
2023-02-27[GP-1597] mPower R.6.3.X: Cellular Provider Profiles - LTE AuthenticationYevhen Mykhno5
2023-01-31[GP-1733] mPower R.6.3.X: L6G1 Support - libmts-io, radio-cmd, radio-queryYevhen Mykhno3
Implementing CB610L radio modem support
2023-01-31[GP-1733] mPower R.6.3.X: L6G1 Support - libmts-io, radio-cmd, radio-queryYevhen Mykhno10
- function getRegistrationCommands() implemented as pure virtual and overrided for every base radio model - minor indentation fixes - function getSimStatusSummary(Json::Value& jData) changed to process radio modems that do not have separate commands for the SIM presence check - function getManufacturer(std::string& sManufacturer) changed: AT command changet to 'AT+CGMI' - src/MTS_IO_QuectelRadio.cpp -- comments correction
2022-12-19[GP-1195] Cellular debugging - add a querySerhii Kostiuk5
Define the set of debugging AT commands and a function to execute such commands. The function executes the commands one-by-one end returns raw command outputs. To be used by radio-query --diagnostics.
2022-11-07[MTX-4694][GP-1791] MTCAP3 mPower R.6.1.X: LNA7D support - APN setup ↵Andrii Davydenko2
behavior when provider is Verizon Implement getting the CGDCONT from the modem Implement setting the CGDCONT to the modem
2022-06-08[MTX-4503] mPower R.6.0.X: Remove Verizon FOTA feature from the code GP-1610Yevhen Mykhno1
2022-05-04[MTX-4445] mPower R.6.0.X: MTCAP3: LNA7D - cellular radio support GP-1548Mykola Salomatin3
setRxDiversity command moved to common class for Quectel radios - QuectelRadio.cpp. Add LNA7D radio support. LNA7D radio supports only 3g and 4g network modes. Add new command for enabling/disabling diversity. Retained backward compatibility with the old diversity command.
2022-04-18Update MODBUS slave feature, Rogers Certification issueandrii.davydenko4
2021-09-29[MTX-4206] mPower R.6.0: Making Telit and Quectel radios data-only on AT&T ↵Mykola Salomatin4
network. GP-1364 Add 2 functions for Telit and Quectel modems: - disableVoiceSupport: disable voice support (IMS and CSFB) and enable SMS only registration flag. - getVoiceSupport: get voice support configuration for the current radio.
2021-05-31[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Switched to the separate fields for SIM MCC and SIM MNC after a code review.
2021-05-29[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Extended the implementation of "getSimCarrierCode" to detect the carrier (home network) based on the MCC/MNC combination. Historically mPower used ICCIDs to detect the carrier and apply the carrier-specific settings. ICCIDs are known for Verizon and AT&T, but the list of known ICCIDs is not exhaustive. This change allows the firmware to detect more AT&T SIM cards by using the MCC/MNC combinations (PLMN IDs) when ICCID is not recognized. Limitation: The SIM shall be relatively new and report its MNC length, otherwise MCC/MNC can't be determined and so the carrier code.
2021-05-29[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk3
Added an ability to read the PLMN ID (MCC/MNC combination) of the home carrier from the SIM. SIM PLMN ID is a part of the IMSI that contains identifier of the home network. PLMN ID in turn consists of 3-digit MCC (country code) and 2-or-3-digit MNC (network code). The length of the MNC is stored in the SIM Elementary File called "Administrative Data" (EFad for short). The purpose of the new functions is to extract PLMN ID from the SIM if this information is available.
2021-04-16[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin4
GP-1111 Refactoring after review
2021-04-15[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin3
GP-1111 Refactoring common functions, telit and quectel functions related to CEMODE switching
2021-04-15[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin2
GP-1111 Added CEMODE switching support for Quectel radios
2021-03-31[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - libmts-io ↵rodion.shyshkin1
for Telit Changes after a code review.
2021-03-31[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - libmts-io ↵rodion.shyshkin2
for Telit Changes after a code review
2021-03-31[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - libmts-io ↵rodion.shyshkin3
for Telit Adding an ability to set UE mode of operation to libmts-io. There was added two clear virtual methods in iCellularRadio, correct implementation for them for Telit LTE modems and implementation with error messages for all other.
2020-08-07Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Small improvements in code comments.
2020-08-07Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
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.
2020-08-06Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk2
Added waitResponse overloads to the public interface of ICellularRadio.
2020-08-06Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Refactored MTS::IO::ICellularRadio::sendCommand. Moved response waiting code to the MTS::IO::ICellularRadio::waitResponse function. **Motivation** In many places in the modern libmts-io implementation there are cases when we need to wait for some response from the radio without executing or sending any commands. Such places may wait for some URC messages, acknowledge strings during data transmission and so on. One way to handle such cases is to use `sendCommand` with `cmd` argument set to an empty string. It generally works but according to POSIX: "If count is zero and fd refers to a file other than a regular file, the results are not specified." The other way to handle such cases is to use `isNeedMoreData` callback of `sendCommand` function to analyze all the data on the fly. But this approach may not work for data transfers when `sendCommand` and its std::string argument may not be used to store binary data with null characters within. This commit moves the "wait for the radio to answer" part to the separate function which allows reusablity of such a code.
2020-08-04Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
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.
2020-07-28[GP-759] Added delta radio firmware upgrade support for Telit LE910C4-NFSerhii Kostiuk1
2020-07-23Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Added more strict handling for comma-separated data in URC messages to prevent out-of-bounds reads.
2020-07-22Telit Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
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.
2020-07-17Code reviewAndrii Pientsov2
2020-07-17Code reviewAndrii Pientsov2
2020-07-16Add vendor firmware versionAndrii Pientsov4
2020-07-15MTX-3404 Code ReviewAndrii Pientsov3
2020-07-13MTX-3404 Code ReviewAndrii Pientsov3
2020-07-10MTX-3404 mPower Oct20: Delta Radio Firmware Upgrade - L4E1 - libmts-io supportAndrii Pientsov2
2020-07-03Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Implemented firmware version check detection.
2020-07-03Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Simplified usage of step callbacks in the QuectelRadio class. Refactored existing function to use a wrapper and preven repetitive checks.
2020-07-03Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk3
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
2020-07-03WIP: Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Initial implementation of the "Apply delta firmware" step. Requires cleanup.
2020-06-30Merge remote-tracking branch 'origin/master' into sk/quectel-delta-fwuSerhii Kostiuk3
2020-06-30Merge remote-tracking branch 'origin/master' into sk/quectel-delta-fwuSerhii Kostiuk6
2020-06-25[MTX-3489] mPower Oct20: Porting "LNA7 Intermediate Release" changesSerhii Kostiuk3
Merged all the changes from the intermediate release to master.
2020-06-16[GP-654] Add SIM card-based carrier detectionSerhii Kostiuk2
Changes after a code review: - renamed "MTS Carrier Code" to the "Carrier Code"; - fixed descriptions for the new field and methods.
2020-06-16GP-654: Add SIM card-based carrier detectionSerhii Kostiuk2
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.
2020-06-11Merge branch 'ms/MTX-3444_L4G1_support_implementation' into 'master' Jeff Hatch4
[MTX-3444] mPower Oct20: L4G1 libmts-io support See merge request !23