diff options
Diffstat (limited to 'src/MTS_IO_LE910Radio.cpp')
| -rw-r--r-- | src/MTS_IO_LE910Radio.cpp | 65 | 
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; +    } +} | 
