/* * Copyright (C) 2019 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 . * */ #ifndef MTS_IO_TELITRADIO_H_ #define MTS_IO_TELITRADIO_H_ #include namespace MTS { namespace IO { class TelitRadio : public CellularRadio { public: bool resetRadio(uint32_t iTimeoutMillis = 5000) override; CODE getModel(std::string& sModel) override; CODE getIccid(std::string& sIccid) override; CODE getService(std::string& sService) override; CODE getNetwork(std::string& sNetwork) override; CODE getNetworkStatus(Json::Value& jData) override; CODE convertSignalStrengthTodBm(const int32_t& iRssi, int32_t& dBm) override; CODE convertdBmToSignalStrength(const int32_t& dBm, int32_t& iRssi) override; CODE setMdn(const Json::Value& jArgs) override; CODE getSupportedCellularModes(CELLULAR_MODES &networks) override; CODE setCellularMode(CELLULAR_MODES networks) override; protected: TelitRadio(const std::string& sName, const std::string& sRadioPort); bool getCarrierFromFirmware(const std::string& sFirmware, std::string& sCarrier) override; bool getHardwareVersionFromFirmware(const std::string& sFirmware, std::string& sHardware) override; CODE getIsSimInserted(bool& bData) override; CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk) override; private: virtual CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk, const std::string& sLockStatus); static ICellularRadio::CELLULAR_MODES preferredNetwork(CELLULAR_MODES prefNetwork, int wds); }; } } #endif