Age | Commit message (Collapse) | Author | Files |
|
|
|
- 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
|
|
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.
|
|
behavior when provider is Verizon
Implement getting the CGDCONT from the modem
Implement setting the CGDCONT to the modem
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
GP-1111
Refactoring after review
|
|
GP-1111
Refactoring common functions, telit and quectel functions related to CEMODE switching
|
|
for Telit
Changes after a code review
|
|
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.
|
|
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.
|
|
Added waitResponse overloads to the public interface of ICellularRadio.
|
|
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.
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
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 stub implementation for the Delta Radio
Firmware Upgrade support in libmts-io.
|
|
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.
|
|
Removed unneeded include. Changes after code review.
|
|
Added "cellularMode" value to the list dynamic (network stats) params
|
|
Ported "cellularModeStr" function to MTS::IO::CellularRadio class. This function
converts integer bitmap to comma-separated list of cellular modes.
|
|
|
|
|
|
|
|
methods for get-cellular-mode
|
|
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.
|
|
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.
|
|
Cleanup: Removed a comment for a function whose implementation was moved
to the radio-specific classes
|
|
Fixed the timeouts for several AT commands, including SIM-related commands
|
|
Added a timeout of 5 seconds for the SIM PIN unlock command
|
|
Added common implementations for CellularRadio::unlockSimCard and
CellularRadio::getSimLockStatus
|
|
Added a common implementation for the CellularRadio::getSimStatusSummary method
|
|
Ported the recent changes made by Maksym
|
|
|
|
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.
|
|
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.
|
|
Removed Telit-specific implementation of the getCarrierFromFirmware and
getHardwareVersionFromFirmware out of the QuectelRadio class.
BTW, it's still present in the TelitRadio class.
|
|
Moved CellularRadio::getNetwork implementation to the TelitRadio::getNetwork as
Quectel radio doesn't have a AT#RFSTS command that returns the needed field.
|
|
strings replaced by const-char pointer
|
|
|
|
leave telit specific code in telit class.
move common code to cellular radio class.
|