summaryrefslogtreecommitdiff
path: root/src/MTS_IO_CellularRadio.cpp
AgeCommit message (Collapse)AuthorFiles
2022-04-18Update MODBUS slave feature, Rogers Certification issue1.0.28andrii.davydenko1
2022-04-18[MTX-4206] mPower R.6.0: Making Telit and Quectel radios data-only on AT&T ↵Mykola Salomatin1
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-29[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Fixed the `CellularRadio::getCarrier` implementation to use MCC/MNC combination from the SIM intead of the serving cell. Historically the implementation used MCC/MNC data from the cell that is currently serving the device and provides the registration. This MCC/MNC code is different from those of the home network in case of a roaming - the network/carrier that provided the SIM is different from the one who serves the device at the moment. The more correct way to determine home carrier for GSM/UMTS/LTE devices is to read first 5 or 6 digits of the SIM IMSI than encode the carrier. This commit updates the implementation to use SIM IMSI as a source of truth for the home network/carrier code.
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 Kostiuk1
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.salomatin1
GP-1111 Refactoring after review
2021-04-15[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin1
GP-1111 Refactoring common functions, telit and quectel functions related to CEMODE switching
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.shyshkin1
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-19[IN:4046] MTR-MNG2 Dashboard has blank Cellular Mode.Serhii Kostiuk1
This commit contains the following changes: - mark all GSM modes as 2G (EGPRS/EDGE is also 2G/GSM); - mark NB-IoT and CAT M1 as 4G/LTE. Those changes allow to correctly display 4G modes for MNG2 and 2G modes for all radios.
2020-08-06Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Added waitResponse overloads to the public interface of ICellularRadio.
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-16Add vendor firmware versionAndrii Pientsov1
2020-07-15MTX-3404 Code ReviewAndrii Pientsov1
2020-07-13MTX-3404 Code ReviewAndrii Pientsov1
2020-07-03Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
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-06-30Merge remote-tracking branch 'origin/master' into sk/quectel-delta-fwuSerhii Kostiuk1
2020-06-16[GP-654] Add SIM card-based carrier detectionSerhii Kostiuk1
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 Kostiuk1
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-02[GP-651] LNA7: Allow to start the OMA DM procedure when it is requiredSerhii Kostiuk1
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.
2020-05-30Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Initial implementation of the delta firmware image upload for Quectel radios.
2020-05-30Quectel Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Declared base interface and added stub implementation for the Delta Radio Firmware Upgrade support in libmts-io.
2020-05-12[IN:4033] MTCDTIP-L4N1 does not provide No SIM message.Serhii Kostiuk1
Allowed to interpret "AT+CPIN: ERROR" as "SIM card not detected" for cases when something is inserted in the SIM card slot but the SIM card itself is either removed, damaged or not responding for some other reason.
2020-02-25[MTX-3239] Add "cellularMode" value to the radio-query --dynamicSerhii Kostiuk1
Removed unneeded include. Changes after code review.
2020-02-25[MTX-3239] Add "cellularMode" value to the radio-query --dynamicSerhii Kostiuk1
Added "cellularMode" value to the list dynamic (network stats) params
2020-02-25[MTX-3239] Add "cellularMode" value to the radio-query --dynamicSerhii Kostiuk1
Ported "cellularModeStr" function to MTS::IO::CellularRadio class. This function converts integer bitmap to comma-separated list of cellular modes.
2020-02-13Commands CREG, CGREG and CEREG should be utilized to get registered statusAndrii Pientsov1
2019-09-11Add ME910 models to devices that use CGREG for registration checkJeff Hatch1
2019-08-08MTX-2891 mpower 2-3-4g: error messages printed with printErrorMaksym Telychko1
2019-08-05MTX-2898 mpower 2-3-4g: quectel methods for set-cellular-mode and common ↵Maksym Telychko1
methods for get-cellular-mode
2019-07-18[MTR-MTQ] Namespace-related usage improvementsSerhii Kostiuk1
Restored full qualification of the ICellularRadio::CODE object type for all files that used full qualification before (effectively, for all source files and only one header file). This commit partially reverses 53efcef2e2f521135b323e194c45f1d9fa7b5d5d.
2019-07-18[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
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.
2019-07-15[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
Cleanup: Removed a comment for a function whose implementation was moved to the radio-specific classes
2019-07-15[MTX-2886] MTR_MTQ - radio-cmd shows invalid message on valid SIM PINSerhii Kostiuk1
Fixed the timeouts for several AT commands, including SIM-related commands
2019-07-05[MTX-2886] MTR_MTQ - radio-cmd shows invalid message on valid SIM PINSerhii Kostiuk1
Added a timeout of 5 seconds for the SIM PIN unlock command
2019-06-22[MTS-MTQ] SIM status and PIN unlock proceduresSerhii Kostiuk1
Added common implementations for CellularRadio::unlockSimCard and CellularRadio::getSimLockStatus
2019-06-22[MTS-MTQ] SIM status and PIN unlock proceduresSerhii Kostiuk1
Added a common implementation for the CellularRadio::getSimStatusSummary method
2019-06-13Merge branch 'quectel-radio' into quectel-specificSerhii Kostiuk1
Ported the recent changes made by Maksym
2019-06-12[MTS-MTQ] refactoring: using full qualified names for constsMaksym Telychko1
2019-06-11[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
Moved Telit-specific conversion between RSSI and dBm into the TelitRadio class. Quectel has MOSTLY the same conversion logic but in the case of TD-SCDMA the RSSI values may be uncompatible.
2019-06-11[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
Converted the following functions to protected virtual functions: - CellularRadio::queryLteLac - CellularRadio::setCGREG - CellularRadio::queryCGREGstring Those functions are handy to fetch LAC in LTE mode for both Quectel and Telit radios. Also fixed comments and debug messages for the mentioned functions.
2019-06-11[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
Removed Telit-specific implementation of the getCarrierFromFirmware and getHardwareVersionFromFirmware out of the QuectelRadio class. BTW, it's still present in the TelitRadio class.
2019-06-11[MTS-MTQ] QuectelRadio implementationSerhii Kostiuk1
Moved CellularRadio::getNetwork implementation to the TelitRadio::getNetwork as Quectel radio doesn't have a AT#RFSTS command that returns the needed field.
2019-06-11[MTS-MTQ] refactoring: performance optimizationMaksym Telychko1
strings replaced by const-char pointer
2019-06-10[MTS-MTQ] refactoring: static function moved to ICellularRadioMaksym Telychko1
2019-06-08[MTS-MTQ] refactoring: telit radio implementationMaksym Telychko1
leave telit specific code in telit class. move common code to cellular radio class.
2019-06-06[MTS-MTQ] refactoring: added quectel empty classes, CellularRadio moved to ↵Maksym Telychko1
TelitRadio
2019-04-02Fix some Radio Status values for MNG2 radio1.0.18Jeff Hatch1
2019-03-21Add support for L4E1 and L4N1 radios1.0.17David Marcaccini1
2019-03-08Add support for the ME910C1-WW Radio1.0.15David Marcaccini1