summaryrefslogtreecommitdiff
path: root/src/MTS_IO_ICellularRadio.cpp
diff options
context:
space:
mode:
authorJeff Hatch <jhatch@multitech.com>2020-08-11 09:23:04 -0500
committerJeff Hatch <jhatch@multitech.com>2020-08-11 09:23:04 -0500
commitd154933f6a6220e7298260d5084f6516806406b6 (patch)
tree3e85c3ee1e6b9958dcc095e8e60770c30f73e43f /src/MTS_IO_ICellularRadio.cpp
parent79925bf7853896834ace6788b9bc7d6edcd78301 (diff)
parentb32dbb2c5f12fbacf598edb812acab816068de00 (diff)
downloadlibmts-io-d154933f6a6220e7298260d5084f6516806406b6.tar.gz
libmts-io-d154933f6a6220e7298260d5084f6516806406b6.tar.bz2
libmts-io-d154933f6a6220e7298260d5084f6516806406b6.zip
Merge branch 'sk/l4g1-delta-fwu' into 'master'
Quectel EG25-G Delta Radio Firmware Upgrade support - libmts-io implementation See merge request !33
Diffstat (limited to 'src/MTS_IO_ICellularRadio.cpp')
-rw-r--r--src/MTS_IO_ICellularRadio.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/MTS_IO_ICellularRadio.cpp b/src/MTS_IO_ICellularRadio.cpp
index 9dbfad1..73737c7 100644
--- a/src/MTS_IO_ICellularRadio.cpp
+++ b/src/MTS_IO_ICellularRadio.cpp
@@ -376,6 +376,28 @@ std::string MTS::IO::ICellularRadio::sendCommand(MTS::AutoPtr<MTS::IO::Connectio
return "";
}
+ return waitResponse(apIo, isNeedMoreData, timeoutMillis);
+}
+
+std::string MTS::IO::ICellularRadio::waitResponse(MTS::AutoPtr<MTS::IO::Connection>& apIo, const std::vector<std::string>& vBail, int32_t timeoutMillis) {
+ IsNeedMoreData isNeedMoreData = [&vBail](const std::string&, const std::string& allData)->bool {
+ for(size_t i = 0; i < vBail.size(); i++) {
+ const std::string& sBail = vBail[i];
+ if(sBail.size() > 0) {
+ if(allData.find(sBail) != std::string::npos) {
+ //Return when bail string is found
+ printTrace("RADIO| Found bail string [%s]", sBail.c_str());
+ return false;
+ }
+ }
+ }
+ return true;
+ };
+
+ return waitResponse(apIo, isNeedMoreData, timeoutMillis);
+}
+
+std::string MTS::IO::ICellularRadio::waitResponse(MTS::AutoPtr<MTS::IO::Connection>& apIo, MTS::IO::ICellularRadio::IsNeedMoreData& isNeedMoreData, int32_t timeoutMillis) {
bool done = false;
const uint32_t capacity = 1024;
char buffer[capacity];