/* * Copyright (C) 2023 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_SEQUANSRADIO #define MTS_IO_SEQUANSRADIO #include namespace MTS { namespace IO { class SequansRadio : public CellularRadio { public: bool resetRadio(uint32_t iTimeoutMillis = 5000) override; CODE getVendorFirmware(std::string& sVendorFirmware) 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& iDBm) override; CODE convertdBmToSignalStrength(const int32_t& dBm, int32_t& iRssi) override; CODE setMdn(const Json::Value& jArgs) override; CODE setUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION mode) override; CODE getUeModeOfOperation(ICellularRadio::UE_MODES_OF_OPERATION& mode) override; CODE setRxDiversity(const Json::Value& jArgs) override; const std::vector getRegistrationCommands() override; protected: SequansRadio(const std::string& sName, const std::string& sRadioPort); CODE getIsSimInserted(bool& bData) override; CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk) override; std::vector getSupportedPdpContextAuthTypes() const override; CODE isPdpContextAuthSupported(bool& isSupported) override; CODE fillPdpContextAuthFields(Json::Value& jData) override; CODE setPdpContextAuth(const PdpContextInfo& pdpContext) override; const std::vector& getDiagCommands(bool bIsSimReady = true) override; CODE setTimeFormat() override; private: /* * @brief getSimLockAttemptsByType - get the number of remaining attempts to * enter the specified SIM password type * * @param sType - SIM password type, "SIM PIN", "SIM PUK", "SIM PIN2" or "SIM PUK2". * @param iAttempts - the number of remaining attempts for this password type. * @return CODE::SUCCESS when fetched successfully, * CODE::NOT_APPLICABLE when the modem doesn't support this feature, * CODE::NO_RESPONSE when the modem doesn't respond, * CODE::ERROR when the radio returns "ERROR" (SIM card removed, etc), * CODE::FAILURE otherwise (modem is inaccessible, etc). */ CODE getSimLockAttemptsByType(const std::string& sType, int& iAttempts); CODE getNetworkStatusSQN(Json::Value& jData, Json::Value& jDebug); CODE getNetworkStatusSignal(Json::Value& jData, Json::Value& jDebug); CODE getNetworkStatusTxPower(Json::Value& jData, Json::Value& jDebug); }; } } #endif /* MTS_IO_SEQUANSRADIO */