From f08acdcc78c366903aa55758b6eb8e79d8a2a61c Mon Sep 17 00:00:00 2001 From: Adam Dobrowolski Date: Wed, 3 Mar 2021 14:10:36 +0100 Subject: [PATCH] [EGD-6079] Moved at factory from header to cpp file - data moved to std::initializer_list no issue warned with tools - GCC tools do not warn issues with memory now --- module-cellular/CMakeLists.txt | 1 + module-cellular/Modem/ATCommon.cpp | 2 + module-cellular/Modem/ATStream.cpp | 6 +- module-cellular/Modem/ATURCStream.cpp | 2 + module-cellular/Modem/BaseChannel.hpp | 3 + module-cellular/Modem/TS0710/TS0710.cpp | 2 + module-cellular/at/ATFactory.hpp | 13 ++ module-cellular/at/Cmd.hpp | 6 +- module-cellular/at/Commands.hpp | 135 +----------------- module-cellular/at/Constants.hpp | 13 ++ module-cellular/at/src/ATFactory.cpp | 124 ++++++++++++++++ .../service-cellular/NetworkSettings.cpp | 1 + .../service-cellular/PacketData.cpp | 2 +- .../service-cellular/QMBNManager.cpp | 1 + .../service-cellular/ServiceCellular.cpp | 4 +- module-services/service-cellular/SimCard.cpp | 2 + .../service-cellular/checkSmsCenter.cpp | 1 + .../requests/CallBarringRequest.cpp | 1 + .../requests/CallForwardingRequest.cpp | 1 + .../service-cellular/requests/CallRequest.cpp | 1 + .../requests/CallWaitingRequest.cpp | 1 + .../service-cellular/requests/ClipRequest.cpp | 1 + .../service-cellular/requests/ClirRequest.cpp | 1 + .../service-cellular/requests/ColpRequest.cpp | 1 + .../service-cellular/requests/ImeiRequest.cpp | 1 + .../requests/PasswordRegistrationRequest.cpp | 1 + .../requests/PinChangeRequest.cpp | 2 + .../service-cellular/requests/Request.cpp | 1 + .../requests/SupplementaryServicesRequest.cpp | 1 + .../service-cellular/requests/UssdRequest.cpp | 1 + .../requests/RejectRequest.hpp | 1 + .../service-cellular/requests/Request.hpp | 1 + module-utils/Utils.hpp | 1 - 33 files changed, 194 insertions(+), 141 deletions(-) create mode 100644 module-cellular/at/ATFactory.hpp create mode 100644 module-cellular/at/Constants.hpp create mode 100644 module-cellular/at/src/ATFactory.cpp diff --git a/module-cellular/CMakeLists.txt b/module-cellular/CMakeLists.txt index d4d567c891e44b02886d202c3ada81f5f99ebc1b..78e18e9047daf805a23e32923136e9e322325eca 100644 --- a/module-cellular/CMakeLists.txt +++ b/module-cellular/CMakeLists.txt @@ -40,6 +40,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/at/src/UrcFactory.cpp ${CMAKE_CURRENT_SOURCE_DIR}/at/src/Commands.cpp ${CMAKE_CURRENT_SOURCE_DIR}/at/src/Cmd.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/at/src/ATFactory.cpp ${CMAKE_CURRENT_SOURCE_DIR}/at/response.cpp ${CMAKE_CURRENT_SOURCE_DIR}/at/cmd/src/CSCA.cpp ${CMAKE_CURRENT_SOURCE_DIR}/at/cmd/src/QECCNUM.cpp diff --git a/module-cellular/Modem/ATCommon.cpp b/module-cellular/Modem/ATCommon.cpp index 04d5b31e9e1ad351a53b4b32cf07e96b2f6123a9..94b3f7ec8a428a7714010e64b6967826ed1708c6 100644 --- a/module-cellular/Modem/ATCommon.cpp +++ b/module-cellular/Modem/ATCommon.cpp @@ -2,6 +2,7 @@ // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "ATCommon.hpp" +#include #include "time/ScopedTime.hpp" #include #include @@ -11,6 +12,7 @@ #include // for PRIu32 #include #include "ATStream.hpp" +#include using namespace at; diff --git a/module-cellular/Modem/ATStream.cpp b/module-cellular/Modem/ATStream.cpp index 2921fdaf61a8fb5d4ed1e6422b4b6440a802b4a0..52ee9162d02735fb5e28270e1be7d234676860f0 100644 --- a/module-cellular/Modem/ATStream.cpp +++ b/module-cellular/Modem/ATStream.cpp @@ -1,9 +1,9 @@ // Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - +#include #include "ATStream.hpp" - #include "ATCommon.hpp" + namespace at { @@ -211,4 +211,4 @@ namespace at isATReady = false; errcode = 0; } -} // namespace at \ No newline at end of file +} // namespace at diff --git a/module-cellular/Modem/ATURCStream.cpp b/module-cellular/Modem/ATURCStream.cpp index 009333f311d5b259503f6456ba13e949040ab209..cc8a18909d3b26b776a914cdb2bf360973419f18 100644 --- a/module-cellular/Modem/ATURCStream.cpp +++ b/module-cellular/Modem/ATURCStream.cpp @@ -5,6 +5,8 @@ #include "ATCommon.hpp" #include +#include + namespace at { diff --git a/module-cellular/Modem/BaseChannel.hpp b/module-cellular/Modem/BaseChannel.hpp index 7582844b5882dd32ee59368320c249b15ee45f1e..21da4d4c61e8883c11884a56b6d858d027255e06 100644 --- a/module-cellular/Modem/BaseChannel.hpp +++ b/module-cellular/Modem/BaseChannel.hpp @@ -7,9 +7,12 @@ #include #include #include +#include namespace at { + struct Cmd; + class BaseChannel { public: diff --git a/module-cellular/Modem/TS0710/TS0710.cpp b/module-cellular/Modem/TS0710/TS0710.cpp index 7cadf971f3880a68f7bced5b10b9641323402bdf..34e8175c9d0f0fc7fccb4f3edd7638fda0060715 100644 --- a/module-cellular/Modem/TS0710/TS0710.cpp +++ b/module-cellular/Modem/TS0710/TS0710.cpp @@ -2,6 +2,8 @@ // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "TS0710.h" +#include +#include #include "bsp/cellular/bsp_cellular.hpp" #include "projdefs.h" #include diff --git a/module-cellular/at/ATFactory.hpp b/module-cellular/at/ATFactory.hpp new file mode 100644 index 0000000000000000000000000000000000000000..6532d46d6a5b4f09531df2a5b742062cb33729fc --- /dev/null +++ b/module-cellular/at/ATFactory.hpp @@ -0,0 +1,13 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#pragma once + +#include "Commands.hpp" +#include + +namespace at +{ + struct Cmd; + auto factory(AT at) -> const Cmd &; +} // namespace at diff --git a/module-cellular/at/Cmd.hpp b/module-cellular/at/Cmd.hpp index 0b7686f5e0267009007defdbd5d6903f31f75d51..74f8168c43cf0dbe6260dee0fa63ad3538ed7b2f 100644 --- a/module-cellular/at/Cmd.hpp +++ b/module-cellular/at/Cmd.hpp @@ -6,16 +6,12 @@ #include #include #include +#include namespace at { - using namespace std::chrono_literals; - struct Cmd; - /// if you've checked it's ok - or it was at least 300 in code somewhere, take this - const auto default_timeout = 300ms; - namespace cmd { enum class Modifier diff --git a/module-cellular/at/Commands.hpp b/module-cellular/at/Commands.hpp index ad2c163246bb7cda430146626f4ad430fa23c4a6..34adab94bd37e45844744114cff79c20134708f5 100644 --- a/module-cellular/at/Commands.hpp +++ b/module-cellular/at/Commands.hpp @@ -3,27 +3,16 @@ #pragma once -/// This file goal is to provide one place to store all at commands, with their respectable timeouts if these have - -#include "Result.hpp" -#include -#include -#include -#include -#include "Cmd.hpp" -#include "cmd/CSCA.hpp" #include +#include +#include namespace at { - - using namespace std::chrono_literals; - const auto default_doc_timeout = 5000ms; /// if unsure - take this - const auto default_long_doc_timeout = 15000ms; - - /// at::Cmd structure with command, it's timeout and some runtime data + /// These are commands we use in our code with + /// at::Cmd structure which consists of: /// { command, timeout, last : {sent, response, status } } - + /// /// doc is: per Quectel_EC25&EC21_AT_Commands_Manual_V1.3.pdf enum class AT { @@ -139,120 +128,6 @@ namespace at QEEC, /// Echo cancellation parameters }; - // below timeouts are defined in Quectel_EC25&EC21_AT_Commands_Manual_V1.3.pdf - inline auto factory(AT at) -> const Cmd & - { - static const std::map fact{ - {AT::AT, {"AT", 100ms}}, - {AT::ECHO_OFF, {"ATE0"}}, - {AT::FACTORY_RESET, {"AT&F"}}, - {AT::SW_INFO, {"ATI\r", default_doc_timeout}}, - {AT::FLOW_CTRL_ON, {"AT+IFC=2,2\r\n", 500ms}}, - {AT::FLOW_CTRL_OFF, {"AT+IFC=0,0", 500ms}}, - {AT::URC_NOTIF_CHANNEL, {"AT+QCFG=\"cmux/urcport\",1"}}, - {AT::RI_PIN_AUTO_CALL, {"AT+QCFG=\"urc/ri/ring\",\"auto\""}}, - {AT::RI_PIN_OFF_CALL, {"AT+QCFG=\"urc/ri/ring\",\"off\""}}, - {AT::RI_PIN_PULSE_SMS, {"AT+QCFG=\"urc/ri/smsincoming\",\"pulse\",450"}}, - {AT::RI_PIN_OFF_SMS, {"AT+QCFG=\"urc/ri/smsincoming\",\"off\""}}, - {AT::RI_PIN_PULSE_OTHER, {"AT+QCFG=\"urc/ri/other\",\"pulse\""}}, - {AT::URC_DELAY_ON, {"AT+QCFG=\"urc/delay\",1"}}, - {AT::URC_UART1, {"AT+QURCCFG=\"urcport\",\"uart1\""}}, - {AT::AT_PIN_READY_LOGIC, {"AT+QCFG=\"apready\",1,1,200"}}, - {AT::URC_NOTIF_SIGNAL, {"AT+QINDCFG=\"csq\",1"}}, - {AT::CRC_ON, {"AT+CRC=1"}}, - {AT::CALLER_NUMBER_PRESENTATION, {"AT+CLIP=1", 18000ms}}, - {AT::SMS_TEXT_FORMAT, {"AT+CMGF=1"}}, - {AT::SMS_UCSC2, {"AT+CSCS=\"UCS2\""}}, - {AT::SMS_GSM, {"AT+CSCS=\"GSM\""}}, - {AT::QSCLK_ON, {"AT+QSCLK=1", 3000ms}}, - {AT::QDAI, {"AT+QDAI?"}}, - {AT::QDAI_INIT, {"AT+QDAI=1,0,0,3,0,1,1,1"}}, - {AT::SET_URC_CHANNEL, {"AT+QCFG=\"cmux/urcport\",2", default_doc_timeout}}, - {AT::CSQ, {"AT+CSQ", default_doc_timeout}}, - {AT::CLCC, {"AT+CLCC", default_doc_timeout}}, - {AT::CMGD, {"AT+CMGD=", default_doc_timeout}}, - {AT::CNUM, {"AT+CNUM"}}, - {AT::CIMI, {"AT+CIMI"}}, - {AT::QCMGR, {"AT+QCMGR=", 2000ms}}, - {AT::ATH, {"ATH", 90000ms}}, - {AT::ATA, {"ATA", 90000ms}}, - {AT::ATD, {"ATD"}}, - {AT::IPR, {"AT+IPR="}}, - {AT::CMUX, {"AT+CMUX="}}, - {AT::CFUN, {"AT+CFUN=", default_long_doc_timeout}}, - {AT::CFUN_RESET, {"AT+CFUN=1,1", default_long_doc_timeout}}, - {AT::CFUN_MIN_FUNCTIONALITY, {"AT+CFUN=0", default_long_doc_timeout}}, - {AT::CFUN_FULL_FUNCTIONALITY, {"AT+CFUN=1", default_long_doc_timeout}}, - {AT::CFUN_DISABLE_TRANSMITTING, {"AT+CFUN=4", default_long_doc_timeout}}, - {AT::CMGS, {"AT+CMGS=\"", 120s}}, // verified in docs - {AT::QCMGS, {"AT+QCMGS=\"", 120s}}, // verified in docs - {AT::CREG, {"AT+CREG?", default_doc_timeout}}, - {AT::QNWINFO, {"AT+QNWINFO"}}, - {AT::COPS, {"AT+COPS", 180000ms}}, - {AT::QSIMSTAT, {"AT+QSIMSTAT?"}}, - {AT::SIM_DET, {"AT+QSIMDET?"}}, - {AT::SIM_DET_ON, {"AT+QSIMDET=1,0"}}, - {AT::SIMSTAT_ON, {"AT+QSIMSTAT=1"}}, - {AT::SET_SCANMODE, {"AT+QCFG=\"nwscanmode\","}}, - {AT::GET_SCANMODE, {"AT+QCFG=\"nwscanmode\""}}, - {AT::QGMR, {"AT+QGMR"}}, - {AT::STORE_SETTINGS_ATW, {"AT&W"}}, - {AT::CEER, {"AT+CEER"}}, - {AT::QIGETERROR, {"AT+QIGETERROR"}}, - {AT::VTS, {"AT+VTS="}}, - {AT::QLDTMF, {"AT+QLDTMF=1,"}}, - {AT::CUSD_OPEN_SESSION, {"AT+CUSD=1"}}, - {AT::CUSD_CLOSE_SESSION, {"AT+CUSD=2"}}, - {AT::CUSD_SEND, {"AT+CUSD=1,"}}, - {AT::SET_SMS_STORAGE, {"AT+CPMS=\"SM\",\"SM\",\"SM\"", 300ms}}, - {AT::CPIN, {"AT+CPIN=", default_timeout}}, - {AT::GET_CPIN, {"AT+CPIN?", default_timeout}}, - {AT::QPINC, {"AT+QPINC=", default_timeout}}, - {AT::CLCK, {"AT+CLCK=", default_timeout}}, - {AT::CPWD, {"AT+CPWD=", default_timeout}}, - {AT::ENABLE_TIME_ZONE_UPDATE, {"AT+CTZU=3"}}, - {AT::SET_TIME_ZONE_REPORTING, {"AT+CTZR=2"}}, - {AT::DISABLE_TIME_ZONE_UPDATE, {"AT+CTZU=0"}}, - {AT::DISABLE_TIME_ZONE_REPORTING, {"AT+CTZR=0"}}, - {AT::ENABLE_NETWORK_REGISTRATION_URC, {"AT+CREG=2"}}, - {AT::SET_SMS_TEXT_MODE_UCS2, {"AT+CSMP=17,167,0,8"}}, - {AT::LIST_MESSAGES, {"AT+CMGL=\"ALL\"", default_doc_timeout}}, - {AT::GET_IMEI, {"AT+GSN", default_doc_timeout}}, - {AT::CCFC, {"AT+CCFC=", default_doc_timeout}}, - {AT::CCWA, {"AT+CCWA=", default_doc_timeout}}, - {AT::CCWA_GET, {"AT+CCWA?", default_doc_timeout}}, - {AT::CHLD, {"AT+CHLD=\"", default_doc_timeout}}, - {AT::CLIP, {"AT+CLIP=", default_long_doc_timeout}}, - {AT::CLIP_GET, {"AT+CLIP?", default_long_doc_timeout}}, - {AT::CLIR, {"AT+CLIR=", default_long_doc_timeout}}, - {AT::CLIR_GET, {"AT+CLIR?", default_long_doc_timeout}}, - {AT::CLIR_RESET, {"AT+CLIR=0", default_long_doc_timeout}}, - {AT::CLIR_ENABLE, {"AT+CLIR=1", default_long_doc_timeout}}, - {AT::CLIR_DISABLE, {"AT+CLIR=2", default_long_doc_timeout}}, - {AT::COLP, {"AT+COLP", default_long_doc_timeout}}, - {AT::COLP_GET, {"AT+COLP?", default_long_doc_timeout}}, - {AT::COLP_ENABLE, {"AT+COLP=1", default_long_doc_timeout}}, - {AT::COLP_DISABLE, {"AT+COLP=0", default_long_doc_timeout}}, - {AT::CSSN, {"AT+CSSN=\"", default_doc_timeout}}, - {AT::QICSGP, {"AT+QICSGP", default_timeout}}, - {AT::QIACT, {"AT+QIACT", 150000ms}}, - {AT::QIDEACT, {"AT+QIDEACT", 40000ms}}, - {AT::QRXGAIN, {"AT+QRXGAIN=40000", default_timeout}}, - {AT::CLVL, {"AT+CLVL=3", default_timeout}}, - {AT::QMIC, {"AT+QMIC=15000,15000", default_timeout}}, - {AT::QEEC, {"AT+QEEC=", 3000ms}}, - {AT::QNVFR, {"AT+QNVFR=", default_long_doc_timeout}}, - {AT::QNVFW, {"AT+QNVFW=", default_long_doc_timeout}}, - {AT::QMBNCFG, {"AT+QMBNCFG=", default_long_doc_timeout}}, - {AT::QCFG_IMS, {"AT+QCFG=\"ims\"", default_timeout}}}; - - if (fact.count(at) != 0u) { - return fact.at(at); - } - LOG_ERROR("NO SUCH AT COMMAND DEFINED: %d", static_cast(at)); - return fact.at(AT::AT); - } - enum class commadsSet { modemInit, diff --git a/module-cellular/at/Constants.hpp b/module-cellular/at/Constants.hpp new file mode 100644 index 0000000000000000000000000000000000000000..d21a537269979ec9a88640517df9e1fe38bf71a7 --- /dev/null +++ b/module-cellular/at/Constants.hpp @@ -0,0 +1,13 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#pragma once + +#include + +namespace at +{ + constexpr std::chrono::milliseconds default_timeout{300}; /// if you've checked that it's ok + constexpr std::chrono::milliseconds default_doc_timeout{5000}; /// if unsure - take this + constexpr std::chrono::milliseconds default_long_doc_timeout{15000}; /// long timeout from docs +} // namespace at diff --git a/module-cellular/at/src/ATFactory.cpp b/module-cellular/at/src/ATFactory.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d9e61175d83bc25cc9ac62629a913e60f8ac4395 --- /dev/null +++ b/module-cellular/at/src/ATFactory.cpp @@ -0,0 +1,124 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "ATFactory.hpp" +#include "cmd/CSCA.hpp" + +namespace at +{ + using namespace std::chrono_literals; + + std::initializer_list> initializer = { + {AT::AT, {"AT", 100ms}}, + {AT::ECHO_OFF, {"ATE0"}}, + {AT::FACTORY_RESET, {"AT&F"}}, + {AT::SW_INFO, {"ATI\r", default_doc_timeout}}, + {AT::FLOW_CTRL_ON, {"AT+IFC=2,2\r\n", 500ms}}, + {AT::FLOW_CTRL_OFF, {"AT+IFC=0,0", 500ms}}, + {AT::URC_NOTIF_CHANNEL, {"AT+QCFG=\"cmux/urcport\",1"}}, + {AT::RI_PIN_AUTO_CALL, {"AT+QCFG=\"urc/ri/ring\",\"auto\""}}, + {AT::RI_PIN_OFF_CALL, {"AT+QCFG=\"urc/ri/ring\",\"off\""}}, + {AT::RI_PIN_PULSE_SMS, {"AT+QCFG=\"urc/ri/smsincoming\",\"pulse\",450"}}, + {AT::RI_PIN_OFF_SMS, {"AT+QCFG=\"urc/ri/smsincoming\",\"off\""}}, + {AT::RI_PIN_PULSE_OTHER, {"AT+QCFG=\"urc/ri/other\",\"pulse\""}}, + {AT::URC_DELAY_ON, {"AT+QCFG=\"urc/delay\",1"}}, + {AT::URC_UART1, {"AT+QURCCFG=\"urcport\",\"uart1\""}}, + {AT::AT_PIN_READY_LOGIC, {"AT+QCFG=\"apready\",1,1,200"}}, + {AT::URC_NOTIF_SIGNAL, {"AT+QINDCFG=\"csq\",1"}}, + {AT::CRC_ON, {"AT+CRC=1"}}, + {AT::CALLER_NUMBER_PRESENTATION, {"AT+CLIP=1", 18000ms}}, + {AT::SMS_TEXT_FORMAT, {"AT+CMGF=1"}}, + {AT::SMS_UCSC2, {"AT+CSCS=\"UCS2\""}}, + {AT::SMS_GSM, {"AT+CSCS=\"GSM\""}}, + {AT::QSCLK_ON, {"AT+QSCLK=1", 3000ms}}, + {AT::QDAI, {"AT+QDAI?"}}, + {AT::QDAI_INIT, {"AT+QDAI=1,0,0,3,0,1,1,1"}}, + {AT::SET_URC_CHANNEL, {"AT+QCFG=\"cmux/urcport\",2", default_doc_timeout}}, + {AT::CSQ, {"AT+CSQ", default_doc_timeout}}, + {AT::CLCC, {"AT+CLCC", default_doc_timeout}}, + {AT::CMGD, {"AT+CMGD=", default_doc_timeout}}, + {AT::CNUM, {"AT+CNUM"}}, + {AT::CIMI, {"AT+CIMI"}}, + {AT::QCMGR, {"AT+QCMGR=", 2000ms}}, + {AT::ATH, {"ATH", 90000ms}}, + {AT::ATA, {"ATA", 90000ms}}, + {AT::ATD, {"ATD"}}, + {AT::IPR, {"AT+IPR="}}, + {AT::CMUX, {"AT+CMUX="}}, + {AT::CFUN, {"AT+CFUN=", default_long_doc_timeout}}, + {AT::CFUN_RESET, {"AT+CFUN=1,1", default_long_doc_timeout}}, + {AT::CFUN_MIN_FUNCTIONALITY, {"AT+CFUN=0", default_long_doc_timeout}}, + {AT::CFUN_FULL_FUNCTIONALITY, {"AT+CFUN=1", default_long_doc_timeout}}, + {AT::CFUN_DISABLE_TRANSMITTING, {"AT+CFUN=4", default_long_doc_timeout}}, + {AT::CMGS, {"AT+CMGS=\"", 120s}}, // verified in docs + {AT::QCMGS, {"AT+QCMGS=\"", 120s}}, // verified in docs + {AT::CREG, {"AT+CREG?", default_doc_timeout}}, + {AT::QNWINFO, {"AT+QNWINFO"}}, + {AT::COPS, {"AT+COPS", 180000ms}}, + {AT::QSIMSTAT, {"AT+QSIMSTAT?"}}, + {AT::SIM_DET, {"AT+QSIMDET?"}}, + {AT::SIM_DET_ON, {"AT+QSIMDET=1,0"}}, + {AT::SIMSTAT_ON, {"AT+QSIMSTAT=1"}}, + {AT::SET_SCANMODE, {"AT+QCFG=\"nwscanmode\","}}, + {AT::GET_SCANMODE, {"AT+QCFG=\"nwscanmode\""}}, + {AT::QGMR, {"AT+QGMR"}}, + {AT::STORE_SETTINGS_ATW, {"AT&W"}}, + {AT::CEER, {"AT+CEER"}}, + {AT::QIGETERROR, {"AT+QIGETERROR"}}, + {AT::VTS, {"AT+VTS="}}, + {AT::QLDTMF, {"AT+QLDTMF=1,"}}, + {AT::CUSD_OPEN_SESSION, {"AT+CUSD=1"}}, + {AT::CUSD_CLOSE_SESSION, {"AT+CUSD=2"}}, + {AT::CUSD_SEND, {"AT+CUSD=1,"}}, + {AT::SET_SMS_STORAGE, {"AT+CPMS=\"SM\",\"SM\",\"SM\"", 300ms}}, + {AT::CPIN, {"AT+CPIN=", default_timeout}}, + {AT::GET_CPIN, {"AT+CPIN?", default_timeout}}, + {AT::QPINC, {"AT+QPINC=", default_timeout}}, + {AT::CLCK, {"AT+CLCK=", default_timeout}}, + {AT::CPWD, {"AT+CPWD=", default_timeout}}, + {AT::ENABLE_TIME_ZONE_UPDATE, {"AT+CTZU=3"}}, + {AT::SET_TIME_ZONE_REPORTING, {"AT+CTZR=2"}}, + {AT::DISABLE_TIME_ZONE_UPDATE, {"AT+CTZU=0"}}, + {AT::DISABLE_TIME_ZONE_REPORTING, {"AT+CTZR=0"}}, + {AT::ENABLE_NETWORK_REGISTRATION_URC, {"AT+CREG=2"}}, + {AT::SET_SMS_TEXT_MODE_UCS2, {"AT+CSMP=17,167,0,8"}}, + {AT::LIST_MESSAGES, {"AT+CMGL=\"ALL\"", default_doc_timeout}}, + {AT::GET_IMEI, {"AT+GSN", default_doc_timeout}}, + {AT::CCFC, {"AT+CCFC=", default_doc_timeout}}, + {AT::CCWA, {"AT+CCWA=", default_doc_timeout}}, + {AT::CCWA_GET, {"AT+CCWA?", default_doc_timeout}}, + {AT::CHLD, {"AT+CHLD=\"", default_doc_timeout}}, + {AT::CLIP, {"AT+CLIP=", default_long_doc_timeout}}, + {AT::CLIP_GET, {"AT+CLIP?", default_long_doc_timeout}}, + {AT::CLIR, {"AT+CLIR=", default_long_doc_timeout}}, + {AT::CLIR_GET, {"AT+CLIR?", default_long_doc_timeout}}, + {AT::CLIR_RESET, {"AT+CLIR=0", default_long_doc_timeout}}, + {AT::CLIR_ENABLE, {"AT+CLIR=1", default_long_doc_timeout}}, + {AT::CLIR_DISABLE, {"AT+CLIR=2", default_long_doc_timeout}}, + {AT::COLP, {"AT+COLP", default_long_doc_timeout}}, + {AT::COLP_GET, {"AT+COLP?", default_long_doc_timeout}}, + {AT::COLP_ENABLE, {"AT+COLP=1", default_long_doc_timeout}}, + {AT::COLP_DISABLE, {"AT+COLP=0", default_long_doc_timeout}}, + {AT::CSSN, {"AT+CSSN=\"", default_doc_timeout}}, + {AT::QICSGP, {"AT+QICSGP", default_timeout}}, + {AT::QIACT, {"AT+QIACT", 150000ms}}, + {AT::QIDEACT, {"AT+QIDEACT", 40000ms}}, + {AT::QRXGAIN, {"AT+QRXGAIN=40000", default_timeout}}, + {AT::CLVL, {"AT+CLVL=3", default_timeout}}, + {AT::QMIC, {"AT+QMIC=15000,15000", default_timeout}}, + {AT::QEEC, {"AT+QEEC=", 3000ms}}, + {AT::QNVFR, {"AT+QNVFR=", default_long_doc_timeout}}, + {AT::QNVFW, {"AT+QNVFW=", default_long_doc_timeout}}, + {AT::QMBNCFG, {"AT+QMBNCFG=", default_long_doc_timeout}}, + {AT::QCFG_IMS, {"AT+QCFG=\"ims\"", default_timeout}}}; + + auto factory(AT at) -> const Cmd & + { + static auto fact = std::map(initializer); + if (fact.count(at) != 0u) { + return fact.at(at); + } + LOG_ERROR("no such at command defined: %d", static_cast(at)); + return fact.at(AT::AT); + } +} // namespace at diff --git a/module-services/service-cellular/NetworkSettings.cpp b/module-services/service-cellular/NetworkSettings.cpp index 4f385bf81d23de4c6fa7505875b3c088f514fee6..502587a67b1f996fae56374e6e8224d50cfdb3ea 100644 --- a/module-services/service-cellular/NetworkSettings.cpp +++ b/module-services/service-cellular/NetworkSettings.cpp @@ -4,6 +4,7 @@ #include "NetworkSettings.hpp" #include "QMBNManager.hpp" #include +#include std::string NetworkSettings::getCurrentOperator() const { diff --git a/module-services/service-cellular/PacketData.cpp b/module-services/service-cellular/PacketData.cpp index 1688e75ad434f8af0f723dca53ce6e63d92f3ed1..448b8f28420f4a7c38413ad962e569b9eaa516d2 100644 --- a/module-services/service-cellular/PacketData.cpp +++ b/module-services/service-cellular/PacketData.cpp @@ -6,9 +6,9 @@ #include #include #include - #include #include +#include namespace at { namespace response diff --git a/module-services/service-cellular/QMBNManager.cpp b/module-services/service-cellular/QMBNManager.cpp index 9c265cef3c0c243829d6760fe9b7252fb0c45def..a59e958e1ddcb7ef5ac774e9289b79fc769b4afa 100644 --- a/module-services/service-cellular/QMBNManager.cpp +++ b/module-services/service-cellular/QMBNManager.cpp @@ -4,6 +4,7 @@ #include "QMBNManager.hpp" #include "Utils.hpp" #include "response.hpp" +#include namespace at { diff --git a/module-services/service-cellular/ServiceCellular.cpp b/module-services/service-cellular/ServiceCellular.cpp index c06f7a84b753f8f1fc4a5a25a3fa0f015a164aec..3c6066baae991de6c1f66f73b8e082a57cb0c4fd 100644 --- a/module-services/service-cellular/ServiceCellular.cpp +++ b/module-services/service-cellular/ServiceCellular.cpp @@ -23,10 +23,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -93,7 +95,7 @@ const char *ServiceCellular::serviceName = "ServiceCellular"; -inline constexpr auto cellularStack = 25000UL; +inline constexpr auto cellularStack = 8000; using namespace cellular; diff --git a/module-services/service-cellular/SimCard.cpp b/module-services/service-cellular/SimCard.cpp index b6da77323c5eb6885463694586f8fd15fa33ba27..905e43816bc0700e7484ae540b5312a762d2fe5d 100644 --- a/module-services/service-cellular/SimCard.cpp +++ b/module-services/service-cellular/SimCard.cpp @@ -7,6 +7,8 @@ #include "Result.hpp" #include "UrcCpin.hpp" //for Cpin parseState #include "UrcFactory.hpp" +#include +#include SimCardResult SimCard::convertErrorFromATResult(const at::Result atres) const { diff --git a/module-services/service-cellular/checkSmsCenter.cpp b/module-services/service-cellular/checkSmsCenter.cpp index c28b9760801ff60eb6f2116717df83ec4f25dc54..3f581e66155daab425fe0c5373efe4d8dedd60d0 100644 --- a/module-services/service-cellular/checkSmsCenter.cpp +++ b/module-services/service-cellular/checkSmsCenter.cpp @@ -3,6 +3,7 @@ #include "checkSmsCenter.hpp" #include "Modem/BaseChannel.hpp" +#include [[nodiscard]] bool checkSmsCenter(at::BaseChannel &channel) { diff --git a/module-services/service-cellular/requests/CallBarringRequest.cpp b/module-services/service-cellular/requests/CallBarringRequest.cpp index 26fce3be87a7d88feb3881604ae58d0ddc27c569..e0ea9a6fe265df91f0be2f10154807b45d36d7f9 100644 --- a/module-services/service-cellular/requests/CallBarringRequest.cpp +++ b/module-services/service-cellular/requests/CallBarringRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/CallBarringRequest.hpp" diff --git a/module-services/service-cellular/requests/CallForwardingRequest.cpp b/module-services/service-cellular/requests/CallForwardingRequest.cpp index 5732735d639d3359dccc8439cdb86f33b1e4daa0..fb54390306db2f72e0114c5ec766d62e91f2c23d 100644 --- a/module-services/service-cellular/requests/CallForwardingRequest.cpp +++ b/module-services/service-cellular/requests/CallForwardingRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/CallForwardingRequest.hpp" diff --git a/module-services/service-cellular/requests/CallRequest.cpp b/module-services/service-cellular/requests/CallRequest.cpp index f485577d83c62c4a29ff37646061b0136a8248c1..330f42c61aba5a72fbfba35b50f73daddb40381f 100644 --- a/module-services/service-cellular/requests/CallRequest.cpp +++ b/module-services/service-cellular/requests/CallRequest.cpp @@ -8,6 +8,7 @@ #include #include "service-cellular/requests/CallRequest.hpp" +#include namespace cellular { diff --git a/module-services/service-cellular/requests/CallWaitingRequest.cpp b/module-services/service-cellular/requests/CallWaitingRequest.cpp index c62c3a39cdb1f6782f11aaf7f36da46ad81b6cd1..9925d83c010990afc11e6e9f88fb6c6804aa8664 100644 --- a/module-services/service-cellular/requests/CallWaitingRequest.cpp +++ b/module-services/service-cellular/requests/CallWaitingRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/CallWaitingRequest.hpp" diff --git a/module-services/service-cellular/requests/ClipRequest.cpp b/module-services/service-cellular/requests/ClipRequest.cpp index 3d37fea2495419fd363e75b13fae5fc1193b6427..9611f445aeed72b7e568f213c85fde4c309b90c1 100644 --- a/module-services/service-cellular/requests/ClipRequest.cpp +++ b/module-services/service-cellular/requests/ClipRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/ClipRequest.hpp" diff --git a/module-services/service-cellular/requests/ClirRequest.cpp b/module-services/service-cellular/requests/ClirRequest.cpp index d20583c99baca8a3aa88772f27da454b943ff764..b0b46b52c1454015b2c90078a6b9f599a653d569 100644 --- a/module-services/service-cellular/requests/ClirRequest.cpp +++ b/module-services/service-cellular/requests/ClirRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/ClirRequest.hpp" diff --git a/module-services/service-cellular/requests/ColpRequest.cpp b/module-services/service-cellular/requests/ColpRequest.cpp index 7555ea44e2687f706e09edca263242c91fdbc2c8..e17b63531ced09d8fd0b3248834847bd32a70086 100644 --- a/module-services/service-cellular/requests/ColpRequest.cpp +++ b/module-services/service-cellular/requests/ColpRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/ColpRequest.hpp" diff --git a/module-services/service-cellular/requests/ImeiRequest.cpp b/module-services/service-cellular/requests/ImeiRequest.cpp index 18da04bfe9f8a30681886fd3e4a22115c458acae..f122df7db51e64c3c1827f3d5389ebd6b5f199f0 100644 --- a/module-services/service-cellular/requests/ImeiRequest.cpp +++ b/module-services/service-cellular/requests/ImeiRequest.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "service-cellular/requests/ImeiRequest.hpp" diff --git a/module-services/service-cellular/requests/PasswordRegistrationRequest.cpp b/module-services/service-cellular/requests/PasswordRegistrationRequest.cpp index 18126759e9a6f09d3e3803f7e0f9bc38483442e2..adf4d88050022a0ca59e3f71c3d17e275fc6c3dd 100644 --- a/module-services/service-cellular/requests/PasswordRegistrationRequest.cpp +++ b/module-services/service-cellular/requests/PasswordRegistrationRequest.cpp @@ -5,6 +5,7 @@ #include #include +#include #include "service-cellular/requests/PasswordRegistrationRequest.hpp" #include "service-cellular/requests/CallBarringRequest.hpp" // for barringServiceToFacility map diff --git a/module-services/service-cellular/requests/PinChangeRequest.cpp b/module-services/service-cellular/requests/PinChangeRequest.cpp index c755616075b08e3699112cbdeb7cd61e55848475..ff8126b49fe11a6e2df564f3c274f485cc1e70f5 100644 --- a/module-services/service-cellular/requests/PinChangeRequest.cpp +++ b/module-services/service-cellular/requests/PinChangeRequest.cpp @@ -5,8 +5,10 @@ #include #include +#include #include "service-cellular/requests/PinChangeRequest.hpp" +#include namespace { diff --git a/module-services/service-cellular/requests/Request.cpp b/module-services/service-cellular/requests/Request.cpp index 3699a9cbe406cc15ecb7ebcd5ea89b7723ed1424..2f45a236e8428f7f186053b0b92967951a505a75 100644 --- a/module-services/service-cellular/requests/Request.cpp +++ b/module-services/service-cellular/requests/Request.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "service-cellular/requests/Request.hpp" diff --git a/module-services/service-cellular/requests/SupplementaryServicesRequest.cpp b/module-services/service-cellular/requests/SupplementaryServicesRequest.cpp index 27ea1d37eb74910b3b3f2550a8e6f1367947e84c..64d3533053afadd95d75cd250cd1ef9df9211ee0 100644 --- a/module-services/service-cellular/requests/SupplementaryServicesRequest.cpp +++ b/module-services/service-cellular/requests/SupplementaryServicesRequest.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "service-cellular/requests/SupplementaryServicesRequest.hpp" #include "service-cellular/requests/CallForwardingRequest.hpp" diff --git a/module-services/service-cellular/requests/UssdRequest.cpp b/module-services/service-cellular/requests/UssdRequest.cpp index 7fa44befa3904bda650e879bf3be18c815f6e0f7..1803b6e11d13c1f4cbb379a37c1e1d10b1e91b40 100644 --- a/module-services/service-cellular/requests/UssdRequest.cpp +++ b/module-services/service-cellular/requests/UssdRequest.cpp @@ -9,6 +9,7 @@ #include #include "service-cellular/requests/UssdRequest.hpp" +#include namespace cellular { diff --git a/module-services/service-cellular/service-cellular/requests/RejectRequest.hpp b/module-services/service-cellular/service-cellular/requests/RejectRequest.hpp index f4ed42b3e025491c193f196f152c2c66e11bc11a..c42603159d997be70e25eb878024c54392016bee 100644 --- a/module-services/service-cellular/service-cellular/requests/RejectRequest.hpp +++ b/module-services/service-cellular/service-cellular/requests/RejectRequest.hpp @@ -4,6 +4,7 @@ #pragma once #include +#include #include "service-cellular/RequestHandler.hpp" #include "service-cellular/requests/Request.hpp" diff --git a/module-services/service-cellular/service-cellular/requests/Request.hpp b/module-services/service-cellular/service-cellular/requests/Request.hpp index 0e546824e67f31af8beaafc07c6b3e5a8f15a8b8..1ffca208f22efba25762927a02460098bd629b64 100644 --- a/module-services/service-cellular/service-cellular/requests/Request.hpp +++ b/module-services/service-cellular/service-cellular/requests/Request.hpp @@ -6,6 +6,7 @@ #include #include #include "service-cellular/RequestHandler.hpp" +#include namespace cellular { diff --git a/module-utils/Utils.hpp b/module-utils/Utils.hpp index 7c082377af604ad8c5fd68de197365fe0a740fc4..e052c855947efb34189ad868e9200410b64d1400 100644 --- a/module-utils/Utils.hpp +++ b/module-utils/Utils.hpp @@ -4,7 +4,6 @@ #pragma once #include "i18n/i18n.hpp" #include // std::find_if_not -#include #include #include #include