/* * Copyright (C) 2015 by Multi-Tech Systems * * This file is part of libmts-io. * * libmts-io is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * libmts-io is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with libmts-io. If not, see . * */ /*! \file MTS_IO_LE910Radio.cpp \brief A brief description \date Nov 6, 2014 \author sgodinez A more elaborate description */ #include #include using namespace MTS::IO; LE910Radio::LE910Radio(const std::string& sLE910Model, const std::string& sPort) : TelitRadio(sLE910Model, sPort) { } LE910Radio::CODE LE910Radio::setRxDiversity(const Json::Value& jArgs) { /* Command string for LAT1,LVW2,LEU1 radios: "AT#RXDIV=" */ /* Setting needs to append ",1" to the 0/1 value */ if (jArgs["enabled"].asString() != "1" && jArgs["enabled"].asString() != "0") { return FAILURE; } std::string sCmd = "AT#RXDIV="; sCmd += jArgs["enabled"].asString(); sCmd += ",1"; return sendBasicCommand(sCmd); } LE910Radio::CODE LE910Radio::getModemLocation(std::string& sLocation) { const std::string& whitespace = " \t"; printTrace("LE910Radio getModemLocation"); std::string sCmd("AT$GPSACP"); std::string sResult = sendCommand(sCmd); if (sResult.find("$GPSACP: ") == std::string::npos) { printDebug("AT$GPSACP command returned unexpected response: [%s]", sResult.c_str()); return FAILURE; } printDebug("modem reply: [%s]", sResult.c_str()); size_t start = sResult.find(':'); if (start==std::string::npos){ start = 0; } else { start++; } start = sResult.find_first_not_of(whitespace, start); size_t stop = sResult.find('\n', start); sLocation = sResult.substr(start, stop - start - 1); printDebug("function reply: [%s]", sLocation.c_str()); return SUCCESS; }