diff options
Diffstat (limited to 'include/mts/MTS_IO_SequansRadio.h')
| -rw-r--r-- | include/mts/MTS_IO_SequansRadio.h | 83 | 
1 files changed, 83 insertions, 0 deletions
| diff --git a/include/mts/MTS_IO_SequansRadio.h b/include/mts/MTS_IO_SequansRadio.h new file mode 100644 index 0000000..11f2c91 --- /dev/null +++ b/include/mts/MTS_IO_SequansRadio.h @@ -0,0 +1,83 @@ +/* + * 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 <http://www.gnu.org/licenses/>. + * + */ + +#ifndef MTS_IO_SEQUANSRADIO +#define MTS_IO_SEQUANSRADIO + +#include <mts/MTS_IO_CellularRadio.h> + +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<std::string> getRegistrationCommands() override; + +            protected: +                SequansRadio(const std::string& sName, const std::string& sRadioPort); + +                CODE getIsSimInserted(bool& bData) override; +                CODE getSimLockAttempts(int& iAttemptsPin, int& iAttemptsPuk) override; + +                const std::vector<std::string>& getDiagCommands(bool bIsSimReady = true) 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 */ | 
