summaryrefslogtreecommitdiff
path: root/src/MTS_IO_LE910Radio.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/MTS_IO_LE910Radio.cpp')
-rw-r--r--src/MTS_IO_LE910Radio.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/MTS_IO_LE910Radio.cpp b/src/MTS_IO_LE910Radio.cpp
index ba03c5e..2f1debb 100644
--- a/src/MTS_IO_LE910Radio.cpp
+++ b/src/MTS_IO_LE910Radio.cpp
@@ -165,3 +165,68 @@ ICellularRadio::CODE LE910Radio::getUeModeOfOperation(ICellularRadio::UE_MODES_O
return rc;
}
+const std::vector<std::string>& LE910Radio::getDiagCommands(bool bIsSimReady) {
+ // Declare as static to initialize only when used, but cache the results.
+ const static std::vector<std::string> vCommands {
+ // Radio model and firmware:
+ "AT+CGMI", "AT+CGMM", "AT+CGMR", "AT#SWPKGV", "AT#CFVR",
+
+ // Current operator profile on the radio side:
+ "AT#FWSWITCH?", "AT+CGSN",
+
+ // SIM card information:
+ "AT#SIMDET?", "AT#CCID", "AT+CPIN?", "AT#PCT",
+
+ // Operating mode of the radio:
+ "AT+CFUN?",
+
+ // Low-level network settings:
+ "AT+WS46?", "AT#RXDIV", "AT#CALLDISA?", "AT+CEMODE?",
+
+ // Data connection configuration:
+ "AT+CGDCONT?", "AT#PDPAUTH?",
+
+ // Registration and connection to the tower:
+ "AT+CIND?", "AT+CSQ", "AT+COPS?", "AT+CREG?", "AT+CGREG?", "AT+CEREG?",
+ "AT#RFSTS", "AT#PSNT?", "AT#MONI",
+
+ // Data connection status:
+ "AT+CGACT?", "AT+CGCONTRDP=1", "AT+CGCONTRDP=2", "AT+CGCONTRDP=3"
+ };
+
+ const static std::vector<std::string> vSimLockedCommands {
+ // Radio model and firmware:
+ "AT+CGMI", "AT+CGMM", "AT+CGMR", "AT#SWPKGV", "AT#CFVR",
+
+ // Current operator profile on the radio side:
+ "AT#FWSWITCH?", "AT+CGSN",
+
+ // SIM card information:
+ "AT#SIMDET?", "AT#CCID", "AT+CPIN?", "AT#PCT",
+
+ // Operating mode of the radio:
+ "AT+CFUN?",
+
+ // Low-level network settings:
+ "AT+WS46?", "AT#RXDIV", "AT#CALLDISA?", "AT+CEMODE?",
+
+ // Data connection configuration:
+ "AT+CGDCONT?", "AT#PDPAUTH?",
+
+ // Registration and connection to the tower.
+ // The same set of commands, but AT#RFSTS is replaced with a dummy command.
+ "AT+CIND?", "AT+CSQ", "AT+COPS?", "AT+CREG?", "AT+CGREG?", "AT+CEREG?",
+ "AT#RFSTS_IGNORED", "AT#PSNT?", "AT#MONI",
+
+ // Data connection status:
+ "AT+CGACT?", "AT+CGCONTRDP=1", "AT+CGCONTRDP=2", "AT+CGCONTRDP=3"
+ };
+
+ // Ignore AT#RFSTS on LE910 radios (mostly legacy ones like LAT1 and LEU1) if
+ // the SIM card is locked by PIN or PUK. Telit Support Portal Case #5069697.
+ if (bIsSimReady) {
+ return vCommands;
+ } else {
+ return vSimLockedCommands;
+ }
+}