summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsdesai <sdesai@multitech.com>2023-03-20 14:32:37 -0500
committersdesai <sdesai@multitech.com>2023-03-20 14:32:37 -0500
commit8fce7442bbc63b744905f9febc21aad9cf5074fd (patch)
tree2e78f36932d43d1eaa2b7c3f49f9349c9573d557 /src
parent050834e3cdd0f5f56ba15b09ca568ac6312c7699 (diff)
downloadlibmts-io-8fce7442bbc63b744905f9febc21aad9cf5074fd.tar.gz
libmts-io-8fce7442bbc63b744905f9febc21aad9cf5074fd.tar.bz2
libmts-io-8fce7442bbc63b744905f9febc21aad9cf5074fd.zip
Support Portal Case #5086148: use Cellular Radio timeas alternative to GPS or NTP
Diffstat (limited to 'src')
-rw-r--r--src/MTS_IO_CellularRadio.cpp2
-rw-r--r--src/MTS_IO_QuectelRadio.cpp28
-rw-r--r--src/MTS_IO_SequansRadio.cpp26
-rw-r--r--src/MTS_IO_TelitRadio.cpp37
4 files changed, 38 insertions, 55 deletions
diff --git a/src/MTS_IO_CellularRadio.cpp b/src/MTS_IO_CellularRadio.cpp
index 8cdaf44..0b90b55 100644
--- a/src/MTS_IO_CellularRadio.cpp
+++ b/src/MTS_IO_CellularRadio.cpp
@@ -580,7 +580,7 @@ ICellularRadio::CODE CellularRadio::getTime(std::string& sDate, std::string& sTi
std::vector<std::string> vTimeParts;
std::string sSign = "+";
- if(getTimeUTC() == FAILURE) {
+ if(setTimeFormat() == FAILURE) {
printWarning("%s| Unable to set Time Parameters for radio [%s]", m_sName.c_str());
return FAILURE;;
}
diff --git a/src/MTS_IO_QuectelRadio.cpp b/src/MTS_IO_QuectelRadio.cpp
index 655fb38..760cf6d 100644
--- a/src/MTS_IO_QuectelRadio.cpp
+++ b/src/MTS_IO_QuectelRadio.cpp
@@ -1676,27 +1676,25 @@ const std::vector<std::string>& QuectelRadio::getDiagCommands(bool) {
return vCommands;
}
-ICellularRadio::CODE QuectelRadio::getTimeUTC(void) {
- printTrace("%s| Get Time in UTC", getName().c_str());
-
+ICellularRadio::CODE QuectelRadio::setTimeFormat(void) {
+ printTrace("%s| Set standard time format", getName().c_str());
+ ICellularRadio::CODE rc;
// Set year format in YYYY first, in case it is in YY format to get accurate year
std::string sCmdCSDF("AT+CSDF=1,2");
- std::string sRes = sendCommand(sCmdCSDF);
- size_t endr = sRes.find(ICellularRadio::RSP_OK);
+ rc = sendBasicCommand(sCmdCSDF);
- if (endr == std::string::npos) {
- printWarning("%s| Unable to set year format for radio using command [%s]", getName().c_str(), sCmdCSDF.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
- // Set command enables/disables the automatic time zone update
- std::string sCmdCTZU("AT+CTZU=1");
- sRes = sendCommand(sCmdCTZU);
- size_t endc = sRes.find(ICellularRadio::RSP_OK);
+ // Set command enables the automatic time zone update
+ std::string sCmdCTZU("AT+CTZU=3");
+ rc = sendBasicCommand(sCmdCTZU);
- if (endc == std::string::npos) {
- printWarning("%s| Unable to set automatic time zone update for radio using command [%s]", getName().c_str(), sCmdCTZU.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
return SUCCESS;
} \ No newline at end of file
diff --git a/src/MTS_IO_SequansRadio.cpp b/src/MTS_IO_SequansRadio.cpp
index 33bd068..31c736f 100644
--- a/src/MTS_IO_SequansRadio.cpp
+++ b/src/MTS_IO_SequansRadio.cpp
@@ -569,27 +569,25 @@ const std::vector<std::string>& SequansRadio::getDiagCommands(bool) {
return vCommands;
}
-ICellularRadio::CODE SequansRadio::getTimeUTC(void) {
- printTrace("%s| Get Time in UTC", getName().c_str());
-
+ICellularRadio::CODE SequansRadio::setTimeFormat() {
+ printTrace("%s| Set standard time format", getName().c_str());
+ ICellularRadio::CODE rc;
// Set year format in YYYY first, in case it is in YY format to get accurate year
std::string sCmdCSDF("AT+CSDF=1,2");
- std::string sRes = sendCommand(sCmdCSDF);
- size_t endr = sRes.find(ICellularRadio::RSP_OK);
+ rc = sendBasicCommand(sCmdCSDF);
- if (endr == std::string::npos) {
- printWarning("%s| Unable to set year format for radio using command [%s]", getName().c_str(), sCmdCSDF.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
- // Set year format in YYYY first, in case it is in YY format to get accurate year
+ // Set command enables the automatic time zone update
std::string sCmdCTZU("AT+CTZU=1");
- sRes = sendCommand(sCmdCTZU);
- size_t endc = sRes.find(ICellularRadio::RSP_OK);
+ rc = sendBasicCommand(sCmdCTZU);
- if (endc == std::string::npos) {
- printWarning("%s| Unable to set automatic time zone update for radio using command [%s]", getName().c_str(), sCmdCTZU.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
return SUCCESS;
} \ No newline at end of file
diff --git a/src/MTS_IO_TelitRadio.cpp b/src/MTS_IO_TelitRadio.cpp
index 2c50208..261fd34 100644
--- a/src/MTS_IO_TelitRadio.cpp
+++ b/src/MTS_IO_TelitRadio.cpp
@@ -1213,38 +1213,25 @@ const std::vector<std::string>& TelitRadio::getDiagCommands(bool) {
return vCommands;
}
-ICellularRadio::CODE TelitRadio::getTimeUTC(void) {
- printTrace("%s| Get Time in UTC", getName().c_str());
-
+ICellularRadio::CODE TelitRadio::setTimeFormat(void) {
+ printTrace("%s| Set standard time format", getName().c_str());
+ ICellularRadio::CODE rc;
// Set year format in YYYY first, in case it is in YY format to get accurate year
std::string sCmdCSDF("AT+CSDF=1,2");
- std::string sRes = sendCommand(sCmdCSDF);
- size_t endr = sRes.find(ICellularRadio::RSP_OK);
+ rc = sendBasicCommand(sCmdCSDF);
- if (endr == std::string::npos) {
- printWarning("%s| Unable to set year format for radio using command [%s]", getName().c_str(), sCmdCSDF.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
- // Set command enables/disables the automatic time zone update via NITZ.
+ // Set command enables the automatic time zone update
std::string sCmdCTZU("AT+CTZU=1");
- sRes = sendCommand(sCmdCTZU);
- size_t endc = sRes.find(ICellularRadio::RSP_OK);
-
- if (endc == std::string::npos) {
- printWarning("%s| Unable to set year format for radio using command [%s]", getName().c_str(), sCmdCTZU.c_str());
- return FAILURE;
- }
-
- //Enables/disables the automatic date/time updating and the
- //Full Network Name applying. It enables also the #NITZ URC in the format.
- std::string sCmdNITZ("AT#NITZ");
- sRes = sendCommand(sCmdNITZ);
- size_t endn = sRes.find(ICellularRadio::RSP_OK);
+ rc = sendBasicCommand(sCmdCTZU);
- if (endn == std::string::npos) {
- printWarning("%s| Unable to set automatic time zone update for radio using command [%s]", getName().c_str(), sCmdNITZ.c_str());
- return FAILURE;
+ if (rc != SUCCESS) {
+ printError("%s| Failed to set diversity for WCDMA network mode: [%d]", getName().c_str(), rc);
+ return rc;
}
return SUCCESS;
} \ No newline at end of file