summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrodion.shyshkin <rodion.shyshkin@globallogic.com>2021-03-31 20:49:08 +0300
committerrodion.shyshkin <rodion.shyshkin@globallogic.com>2021-03-31 20:49:08 +0300
commit285cee922e229cb1bbd704e6227dbbb3756bd889 (patch)
tree2c0547033ed3e6a030594476ee37c3bb2fb15beb /include
parentad6b4d51ac469d4e7300fd74d1ada87b1caece93 (diff)
downloadlibmts-io-285cee922e229cb1bbd704e6227dbbb3756bd889.tar.gz
libmts-io-285cee922e229cb1bbd704e6227dbbb3756bd889.tar.bz2
libmts-io-285cee922e229cb1bbd704e6227dbbb3756bd889.zip
[GP-1111] mPower R. Apr 2021: +CEMODE shall be set to CEMODE=2 - libmts-io 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.
Diffstat (limited to 'include')
-rw-r--r--include/mts/MTS_IO_CellularRadio.h4
-rw-r--r--include/mts/MTS_IO_ICellularRadio.h12
-rw-r--r--include/mts/MTS_IO_LE910Radio.h3
3 files changed, 19 insertions, 0 deletions
diff --git a/include/mts/MTS_IO_CellularRadio.h b/include/mts/MTS_IO_CellularRadio.h
index 2b03d8f..d0f7a14 100644
--- a/include/mts/MTS_IO_CellularRadio.h
+++ b/include/mts/MTS_IO_CellularRadio.h
@@ -134,6 +134,10 @@ namespace MTS {
virtual std::string waitResponse(IsNeedMoreData& isNeedMoreData,
int32_t timeoutMillis = 100) override;
+ CODE setUeModeOfOperation(UE_MODES_OF_OPERATION newmode) override;
+ CODE getUeModeOfOperation(UE_MODES_OF_OPERATION& newmode) override;
+ CODE convertUeModeToString(UE_MODES_OF_OPERATION mode, std::string &string) override;
+
protected:
CellularRadio(const std::string& sName, const std::string& sRadioPort);
diff --git a/include/mts/MTS_IO_ICellularRadio.h b/include/mts/MTS_IO_ICellularRadio.h
index 61ffd20..b84d4b8 100644
--- a/include/mts/MTS_IO_ICellularRadio.h
+++ b/include/mts/MTS_IO_ICellularRadio.h
@@ -68,6 +68,14 @@ namespace MTS {
CELLULAR_MODE_5G = 1 << 3 // 5G
};
+ enum UE_MODES_OF_OPERATION : uint8_t {
+ UNKNOWN_MODE = 0, // current mode of operation is not available
+ PS_MODE1, // only EPS (LTE) services are allowed, the usage is “voice centric”
+ PS_MODE2, // only EPS (LTE) services are allowed, the usage is “data centric”
+ CS_PS_MODE1, // both EPS and non-EPS services are allowed, the usage is “voice centric”
+ CS_PS_MODE2 // both EPS and non-EPS services are allowed, the usage is “data centric”
+ };
+
static CODE convertModelToType(const std::string& sModel, std::string& sType);
static CODE convertModelToMtsShortCode(const std::string& sModel, std::string& sCode, ICellularRadio *radioObj = NULL);
static CODE convertServiceDomainToString(SERVICEDOMAIN eSd, std::string& sSd);
@@ -562,6 +570,10 @@ namespace MTS {
virtual std::string waitResponse(IsNeedMoreData& isNeedMoreData,
int32_t timeoutMillis = 100) = 0;
+
+ virtual CODE setUeModeOfOperation(UE_MODES_OF_OPERATION newmode) = 0;
+ virtual CODE getUeModeOfOperation(UE_MODES_OF_OPERATION& newmode) = 0;
+ virtual CODE convertUeModeToString(UE_MODES_OF_OPERATION mode, std::string& string) = 0;
};
}
}
diff --git a/include/mts/MTS_IO_LE910Radio.h b/include/mts/MTS_IO_LE910Radio.h
index 35e704d..e8a0dec 100644
--- a/include/mts/MTS_IO_LE910Radio.h
+++ b/include/mts/MTS_IO_LE910Radio.h
@@ -45,6 +45,9 @@ namespace MTS {
CODE setRxDiversity(const Json::Value& jArgs);
CODE getModemLocation(std::string& sLocation);
+ CODE setUeModeOfOperation(UE_MODES_OF_OPERATION newmode) override;
+ CODE getUeModeOfOperation(UE_MODES_OF_OPERATION &newmode) override;
+
protected:
private: