summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJeff Hatch <jhatch@multitech.com>2021-06-02 14:55:50 -0500
committerJeff Hatch <jhatch@multitech.com>2021-06-02 14:55:50 -0500
commit8eb97c149a08f6ec9d938be53868ee426895bf0e (patch)
treefed63fa776088659855a9ae3b2c7f5d221ec3a25 /include
parentbcd5443bcfff3e17ee120c305bbfd0ce2c812b21 (diff)
parentbc2875140ba6a91eaeab8e9626a212986dcf5d4d (diff)
downloadlibmts-io-8eb97c149a08f6ec9d938be53868ee426895bf0e.tar.gz
libmts-io-8eb97c149a08f6ec9d938be53868ee426895bf0e.tar.bz2
libmts-io-8eb97c149a08f6ec9d938be53868ee426895bf0e.zip
Merge branch 'sk/GP-1111-carrier-detection' into 'master' 1.0.26
[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 See merge request !40
Diffstat (limited to 'include')
-rw-r--r--include/mts/MTS_IO_CdmaRadio.h3
-rw-r--r--include/mts/MTS_IO_CellularRadio.h36
-rw-r--r--include/mts/MTS_IO_ICellularRadio.h16
3 files changed, 55 insertions, 0 deletions
diff --git a/include/mts/MTS_IO_CdmaRadio.h b/include/mts/MTS_IO_CdmaRadio.h
index 7cdba02..3b23937 100644
--- a/include/mts/MTS_IO_CdmaRadio.h
+++ b/include/mts/MTS_IO_CdmaRadio.h
@@ -75,6 +75,9 @@ namespace MTS {
virtual CODE getNetworkStatus(Json::Value& jData);
+ CODE getSimMccMnc(std::string& sMccMnc) override;
+ CODE getSimMccMnc(std::string& sMcc, std::string& sMnc) override;
+
protected:
CdmaRadio(const std::string& sName, const std::string& sRadioPort);
diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h
index 7e7454b..daefcd1 100644
--- a/include/mts/MTS_IO_CellularRadio.h
+++ b/include/mts/MTS_IO_CellularRadio.h
@@ -137,6 +137,9 @@ namespace MTS {
CODE setUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION mode) override;
CODE getUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION& mode) override;
+ CODE getSimMccMnc(std::string& sMccMnc) override;
+ CODE getSimMccMnc(std::string& sMcc, std::string& sMnc) override;
+
protected:
CellularRadio(const std::string& sName, const std::string& sRadioPort);
@@ -182,6 +185,39 @@ namespace MTS {
//! Get carrier code based on the SIM card ID (ICCID)
virtual CODE getSimCarrierCode(const std::string& sIccid, std::string& sCarrierCode);
+ //! Get carrier code based on the SIM MCC/MNC
+ virtual CODE getSimCarrierCode(const std::string& sMcc, const std::string& sMnc, std::string& sCarrierCode);
+
+ /**
+ * @brief simAccessReadBinary - Read a string of bytes from the SIM Elementary File.
+ * Please see ETSI TS 102 221 v16.4.0 and ETSI TS 127 007 v16.6.0 for the details.
+ *
+ * @param iFiledId - identifier of the Elementary File to read from.
+ * @param iP1 - offset (ETSI TS 102 221 v16.4.0, Section 11.1.3.2).
+ * @param iP2 - offset low (ETSI TS 102 221 v16.4.0, Section 11.1.3.2).
+ * @param iLe - number of bytes to be read (ETSI TS 102 221 v16.4.0, Section 11.1.3.2).
+ * @param sResult - container for the hex-encoded result string,
+ * example for EFpnn: "004F474F21FFFFFFFFFFFFFFFFFFFFFFFF".
+ * @return CODE::SUCCESS when the read is completed successfully,
+ * CODE::NOT_APPLICABLE when the modem doesn't support this feature,
+ * CODE::NO_RESPONSE when the modem doesn't respond,
+ * CODE::ERROR when the radio returns "ERROR" (SIM card removed, SIM card locked etc),
+ * CODE::FAILURE otherwise (unexpected response, no data in SIM etc).
+ */
+ virtual CODE simAccessReadBinary(uint16_t iFiledId, uint8_t iP1, uint8_t iP2, uint8_t iLe, std::string& sResult);
+
+ /**
+ * @brief getSimMncLength - Read the length of the MNC from SIM EFad.
+ * Please see ETSI TS 131 102 V16.4.0, Section 4.2.18 for the details.
+ *
+ * @param iLength - container for the number of digits in SIM MNC.
+ * @return CODE::SUCCESS when the read is completed successfully,
+ * CODE::NOT_APPLICABLE when the modem doesn't support this feature,
+ * CODE::NO_RESPONSE when the modem doesn't respond,
+ * CODE::ERROR when the radio returns "ERROR" (SIM card removed, SIM card locked etc),
+ * CODE::FAILURE otherwise (unexpected response, no data in SIM etc).
+ */
+ virtual CODE getSimMncLength(uint8_t& iLength);
void initMipProfile(Json::Value& jData);
bool splitAndAssign(const std::string& sLine, const std::string& sKey, Json::Value& jParent, const std::string& sJsonKey, Json::ValueType eType = Json::ValueType::stringValue);
diff --git a/include/mts/MTS_IO_ICellularRadio.h b/include/mts/MTS_IO_ICellularRadio.h
index e638e8b..58329c4 100644
--- a/include/mts/MTS_IO_ICellularRadio.h
+++ b/include/mts/MTS_IO_ICellularRadio.h
@@ -151,6 +151,8 @@ namespace MTS {
static const char *KEY_MSL; //!< Master Subsidy Lock
static const char *KEY_SUPPORTED_CELL_MODES; //!< Comma-separated list of all supported cellular modes (2g,3g,4g)
static const char *KEY_SIM_CARRIER_CODE; //!< Unique carrier identifier based on the SIM card information.
+ static const char *KEY_SIM_MCC; //!< MCC of the home network from the SIM.
+ static const char *KEY_SIM_MNC; //!< MNC of the home network from the SIM.
//Network Status Data
@@ -576,6 +578,20 @@ namespace MTS {
virtual CODE setUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION mode) = 0;
virtual CODE getUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION& mode) = 0;
+
+ /**
+ * @brief getSimMccMnc - get MCC/MNC (PLMN code) of the home network from the SIM.
+ *
+ * @param sPlmnId - a string to be filled with the MCC/MNC combination,
+ * example: "310410" (for AT&T), "90118" (for WMS).
+ * @return CODE::SUCCESS when fetched successfully,
+ * CODE::NOT_APPLICABLE when the modem doesn't support this feature,
+ * CODE::NO_RESPONSE when the modem doesn't respond,
+ * CODE::ERROR when the radio returns "ERROR" (SIM card removed, SIM card locked etc),
+ * CODE::FAILURE otherwise (unexpected response, no data in SIM etc).
+ */
+ virtual CODE getSimMccMnc(std::string& sMccMnc) = 0;
+ virtual CODE getSimMccMnc(std::string& sMcc, std::string& sMnc) = 0;
};
}
}