diff options
Diffstat (limited to 'src/MTS_IO_ICellularRadio.cpp')
| -rw-r--r-- | src/MTS_IO_ICellularRadio.cpp | 22 | 
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]; | 
