summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2023-01-31[GP-1733] mPower R.6.3.X: L6G1 Support - libmts-io, radio-cmd, radio-queryYevhen Mykhno10
Implementing CB610L radio modem support
2023-01-31[GP-1733] mPower R.6.3.X: L6G1 Support - libmts-io, radio-cmd, radio-queryYevhen Mykhno22
- 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
2023-01-10Merge branch 'sk/vzw/plmn-table-fix' into 'master' John Klug2
MCC/MNC Table Update for Verizon and AT&T See merge request !52
2023-01-06MCC/MNC Table Update for Verizon and AT&TSerhii Kostiuk2
- 31030 - AT&T - from UBX-13001820 - R13; - 310590 - Verizon - from UBX-13001820 - R13; - 310650 - Cisco Jasper MVNO in AT&T network - from UBX-13001820 - R13; - 310890 - Verizon - from UBX-13001820 - R13; - 311270 - Verizon - from VZ_REQ_LTEB13NAC_12084129, IMS SIM; - 311480 - Verizon - from VZ_REQ_LTEB13NAC_12084129, IMS SIM; - 312770 - Verizon - from the output of AT#FWPLS? on a 5SG1 radio.
2022-12-28Merge branch 'sk/GP-1195/cell-diag' into 'master' Jeff Hatch9
[GP-1195] Cellular debugging - add a query See merge request !51
2022-12-19[GP-1195] Cellular debugging - add a querySerhii Kostiuk9
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-12-19LE910: Do not exetute #RFSTS if the SIM card is PUK-lockedSerhii Kostiuk1
Executing AT#RFSTS while the SIM card is locked by PIN or PUK causes a deadlock in the legacy LE910 (LAT1, LEU1, LVW2) firmware. Avoid executing AT#RFSTS if the SIM card is locked by PUK.
2022-11-07Merge branch 'ad/MTX-4694/apn-setup-behavior-for-vzw' into 'master' Jeff Hatch4
[MTX-4694][GP-1791] MTCAP3 mPower R.6.1.X: LNA7D support - APN setup behavior wh… See merge request !50
2022-11-07[MTX-4694][GP-1791] MTCAP3 mPower R.6.1.X: LNA7D support - APN setup ↵Andrii Davydenko4
behavior when provider is Verizon Implement getting the CGDCONT from the modem Implement setting the CGDCONT to the modem
2022-06-17Merge branch 'ym/MTX-4503_remove_verizon_fota_feature' into 'master' Jeff Hatch2
[MTX-4503] mPower R.6.0.X: Remove Verizon FOTA feature from the code GP-1610 See merge request !49
2022-06-08[MTX-4503] mPower R.6.0.X: Remove Verizon FOTA feature from the code GP-1610Yevhen Mykhno2
2022-05-04Merge branch 'ms/MTX-4445_LNA7D_Cellular_radio_support' into 'master' Jeff Hatch7
[MTX-4445] mPower R.6.0.X: MTCAP3: LNA7D - cellular radio support GP-1548 See merge request !48
2022-05-04[MTX-4445] mPower R.6.0.X: MTCAP3: LNA7D - cellular radio support GP-1548Mykola Salomatin7
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-21[MTX-4445] mPower R.6.0.X: MTCAP3: LNA7D - cellular radio support GP-1548Mykola Salomatin1
Fix LNA7D delta radio firmware upgrade issue (handling double radio reset).
2022-04-18Update MODBUS slave feature, Rogers Certification issueandrii.davydenko13
2021-09-29[MTX-4206] mPower R.6.0: Making Telit and Quectel radios data-only on AT&T ↵Mykola Salomatin8
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-06-02Merge branch 'sk/GP-1111-carrier-detection' into 'master' 1.0.26Jeff Hatch10
[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 See merge request !40
2021-05-31[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
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
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 Kostiuk2
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 Kostiuk6
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-05-27[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Added three additional MCC/MNC combinations for the FirstNet networks. Those combinations were discovered on a 5SG1 radio in the output of `AT#FWPLS=0,0`.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk3
Added the 'Carrier Code' field to the MCC/MNC table. The new field is supposed to be a constant Multitech-specific indentifier that is constant between the firmware versions and does not necessarily depends on a carrier name. In particular the new field is needed to detect when there is an AT&T SIM card inserted and 'UE mode of operation' shall be set to CS/PS mode 2.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Added one lost MCC/MNC entry for the FirstNet network (PLMN ID 313100) and removed a duplicate MCC/MNC entry for PLMN ID 344930.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Added AT&T-related MCC/MNC values that were discovered from the AT+COPN output: - 33490 - discovered on 5SG1, L4E1, L4G1 and LEU7; - 901044 - discovered on 5SG1, L4E1 and L4G1; - 90118 - discovered on H5 and LNA3.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Updated the MCC/MNC table for AT&T using the document from ITU (https://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.212B-2018-PDF-E.pdf). Notable changes: - filled empty carrier names for a bunch of MCC/MNC combinations; - changed the carrier for PLMN ID "310280" from "T-Mobile" to "AT&T Wireless Inc."; - added 7 new PLMN IDs that correspond to AT&T in various countries.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Sorted the MCC/MNC table by PLMN ID to simplify its maintenance. The content and the format are not changed, only the order of items in the table.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Restored the original table of MCC/MNC values that was used to populate the `MTS_IO_MccMncTable.cpp` file. This step is required to extend the format of MCC/MNC table with additional fields and re-generate the file based on new data instead of changing all the lines by hand. Also added a script that restores the MCC/MNC table from a CPP file.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Extended `create-mcc-mnc-table.py` to support writing the resulting CPP code directly to the target file: - refactoring: renamed `print_cpp_mcc_mnc_table` to `print_cpp_mcc_mnc_create_table` to better represent its purpose - printing the body of `MccMncTable::createTable()`; - refactoring: grouped all the `print_cpp_*` functions to the single `print_cpp` function; - new feature: printing the code directly to the target file without using stdout; printing to stdout is used by default for compatibility reasons.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Extended `create-mcc-mnc-table.py` for CSV support: - refactoring: renamed the 'network' variable to 'carrier' as it's named 'carrier' in the CPP code; - new feature: added support of command-line arguments to select the source between the website and CSV; the website is used by default for compatibility reasons.
2021-05-24[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Removed MCCs that are not listed by ITU.
2021-05-21[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Refactored the `create-mcc-mnc-table.py` script to support generating `MTS_IO_MccMncTable.cpp` from the website and (in the future) csv files. The previous script contained a lot of logic related to generating the MCC/MNC tables in C++ code: 1) printing constant data - functions, comments, etc; 2) formatting and printing the lines with MCC/MNC data; 3) converting MCC and MNC values to unique integers (hashes); 4) parsing the data from the website. The updated implementation of the script have separated step 4 from all the other steps which allows to extend the MCC/MNC building logic with loading MCC/MNC values from a `csv` file in the future. The behaviour of the script is NOT changed during refactoring. Both the old and the new version of the script generate exactly the same code when started on the same source data (website).
2021-05-21[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk1
Ported the "generate_mcc_mnc_cpp.py" script to Python 3. Python 2 is not supported anymore and is not included to the modern distributions of Linux. The transformation is made mainly by `2to3` without refactoring and with only minimal changes required to support Python 3.
2021-05-18[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2Serhii Kostiuk2
Fixed carrier MCC/MNC table lookup for networks with two-digit conuntry codes. The original MCC/MNC population script used the following encoding for MCC/MNC values: - MCC - interpret the original value as hex; - 2-digit MNC - append "f" and interpret the resulting value as hex; - 3-digit MNC - interpret the original value as hex. So during lookup the system shall also use this conversion logic before querying the information from the table.
2021-04-16Merge branch 'ms/MTX-3998_quectel_set_cemode_2' into 'master' 1.0.25Jeff Hatch8
[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - GP-1111 See merge request !38
2021-04-16[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin8
GP-1111 Refactoring after review
2021-04-15[MTX-3998] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - Quectel - ↵mykola.salomatin7
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.salomatin4
GP-1111 Added CEMODE switching support for Quectel radios
2021-03-31Merge branch 'rs/GP-1111-cemode-for-telit' into 'master' 1.0.24Jeff Hatch6
[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - libmts-io for Telit See merge request !37
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.shyshkin4
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.shyshkin5
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.
2021-03-08Merge branch 'jsoncpp_update' into 'master' 1.0.23Jeff Hatch1
Allow building against jsoncpp 1.9.2 See merge request !35
2021-03-07Allow building agains jsoncpp 1.9.2Mykyta Dorokhin1
2020-08-25Merge branch 'sk/IN4046-mng2-cell-mode-fix' into 'master' 1.0.22Jeff Hatch1
[IN:4046] MTR-MNG2 Dashboard has blank Cellular Mode. See merge request !34
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-11Merge branch 'sk/l4g1-delta-fwu' into 'master' Jeff Hatch6
Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementation See merge request !33
2020-08-07Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk2
Small improvements in code comments.
2020-08-07Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
Switched from `sendCommand` with empty command argument to `waitResponse` for URC analysis. Sending empty string to the serial interface is undefined behaviour according to the POSIX standart. More of it, we don't need to execute `write` on file descriptor to wait for URC messages. It was more like a hack than something that was actually required. This commit removes the hack and replaces it with a proper waiting for a response.
2020-08-07Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementationSerhii Kostiuk1
This commit fixes additional issue discrovered after implementation of ACK mode. When a single 1024 bytes long chunk of data is sent to the radio - the radio reports that it received nothing. Which is a lie according to Wireshark USB logs, data is actually sent over USB and looks like radio acknowledged it in USB packet. This issue is reproducible when chunk size is set to 1024 or 512 bytes. This issue is not reproducible with chunk size of 256 bytes. When 1025 or 2048 bytes are sent to the radio - all bytes are received just fine and we get an ACK string for each 1024 bytes of data. This commit allows to send 2048 bytes long chunks of data, wait for two ACK strings from the radio and finish transmission successfully.