From 8705a6a510b2737284cb7d9845398db590aebdf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bora=20=C3=96zgen?= Date: Tue, 15 Jun 2021 15:03:57 +0200 Subject: [PATCH] Cellular: Add AT handler buffer size to configuration --- UNITTESTS/stubs/connectivity/CMakeLists.txt | 1 + .../include/cellular/framework/API/ATHandler.h | 10 ++++------ connectivity/cellular/mbed_lib.json | 4 ++++ .../cellular/source/framework/device/ATHandler.cpp | 8 ++++---- .../framework/AT/at_cellularcontext/CMakeLists.txt | 1 + .../framework/AT/at_cellulardevice/CMakeLists.txt | 1 + .../framework/AT/at_cellularinformation/CMakeLists.txt | 1 + .../framework/AT/at_cellularnetwork/CMakeLists.txt | 1 + .../framework/AT/at_cellularsms/CMakeLists.txt | 1 + .../framework/AT/at_cellularstack/CMakeLists.txt | 1 + .../framework/device/athandler/CMakeLists.txt | 1 + .../framework/device/cellularcontext/CMakeLists.txt | 1 + .../framework/device/cellulardevice/CMakeLists.txt | 1 + .../device/cellularstatemachine/CMakeLists.txt | 1 + .../netsocket/CellularNonIPSocket/CMakeLists.txt | 2 +- 15 files changed, 24 insertions(+), 11 deletions(-) diff --git a/UNITTESTS/stubs/connectivity/CMakeLists.txt b/UNITTESTS/stubs/connectivity/CMakeLists.txt index faba2e38e2..4f207f24e0 100644 --- a/UNITTESTS/stubs/connectivity/CMakeLists.txt +++ b/UNITTESTS/stubs/connectivity/CMakeLists.txt @@ -13,6 +13,7 @@ target_compile_definitions(mbed-stubs-connectivity MBED_CONF_LORA_OVER_THE_AIR_ACTIVATION=true MBED_CONF_LORA_AUTOMATIC_UPLINK_MESSAGE=true MBED_CONF_LORA_TX_MAX_SIZE=255 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 MDMTXD=NC MDMRXD=NC ) diff --git a/connectivity/cellular/include/cellular/framework/API/ATHandler.h b/connectivity/cellular/include/cellular/framework/API/ATHandler.h index 5010b9a0e1..6ba6562fbe 100644 --- a/connectivity/cellular/include/cellular/framework/API/ATHandler.h +++ b/connectivity/cellular/include/cellular/framework/API/ATHandler.h @@ -50,8 +50,6 @@ class FileHandle; extern const char *OK; extern const char *CRLF; -#define BUFF_SIZE 32 - /* AT Error types enumeration */ enum DeviceErrorType { DeviceErrorTypeNoError = 0, @@ -114,7 +112,7 @@ public: /** Set callback function for URC * - * @param prefix URC text to look for, e.g. "+CMTI:". Maximum length is BUFF_SIZE. + * @param prefix URC text to look for, e.g. "+CMTI:". Maximum length is MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE. * @param callback function to call on prefix, or 0 to remove callback */ void set_urc_handler(const char *prefix, Callback callback); @@ -601,7 +599,7 @@ private: //Member variables bool _is_fh_usable; // should fit any prefix and int - char _recv_buff[BUFF_SIZE]; + char _recv_buff[MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE]; // reading position size_t _recv_len; // reading length @@ -630,7 +628,7 @@ private: //Member variables size_t _max_resp_length; // prefix set during resp_start and used to try matching possible information responses - char _info_resp_prefix[BUFF_SIZE]; + char _info_resp_prefix[MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE]; bool _debug_on; bool _cmd_start; bool _use_delimiter; @@ -640,7 +638,7 @@ private: //Member variables // eventqueue event id int _event_id; - char _cmd_buffer[BUFF_SIZE]; + char _cmd_buffer[MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE]; }; } // namespace mbed diff --git a/connectivity/cellular/mbed_lib.json b/connectivity/cellular/mbed_lib.json index 616a052f20..c8a24fc2cd 100644 --- a/connectivity/cellular/mbed_lib.json +++ b/connectivity/cellular/mbed_lib.json @@ -44,6 +44,10 @@ "plmn-fallback-auto" : { "help": "If manual PLMN is selected, use mode 4 manual/automatic in AT+COPS to try automatic mode if manual selection fails. Set to null to disable", "value": null + }, + "at-handler-buffer-size" : { + "help": "Size of the AT handler buffer", + "value": 32 } } } diff --git a/connectivity/cellular/source/framework/device/ATHandler.cpp b/connectivity/cellular/source/framework/device/ATHandler.cpp index c504b1f038..a3009e70fc 100644 --- a/connectivity/cellular/source/framework/device/ATHandler.cpp +++ b/connectivity/cellular/source/framework/device/ATHandler.cpp @@ -683,7 +683,7 @@ int32_t ATHandler::read_int() return -1; } - char buff[BUFF_SIZE]; + char buff[MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE]; if (read_string(buff, sizeof(buff)) == 0) { return -1; } @@ -960,7 +960,7 @@ void ATHandler::resp_start(const char *prefix, bool stop) (void)fill_buffer(false); if (prefix) { - MBED_ASSERT(strlen(prefix) < BUFF_SIZE); + MBED_ASSERT(strlen(prefix) < MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE); strcpy(_info_resp_prefix, prefix); // copy prefix so we can later use it without having to provide again for info_resp } @@ -1225,7 +1225,7 @@ void ATHandler::handle_start(const char *cmd, const char *cmd_chr) if (cmd_chr) { cmd_char_len = strlen(cmd_chr); } - MBED_ASSERT((3 + strlen(cmd) + cmd_char_len) < BUFF_SIZE); + MBED_ASSERT((3 + strlen(cmd) + cmd_char_len) < MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE); memcpy(_cmd_buffer + len, cmd, strlen(cmd)); len += strlen(cmd); @@ -1258,7 +1258,7 @@ void ATHandler::cmd_start_stop(const char *cmd, const char *cmd_chr, const char nsapi_error_t ATHandler::at_cmd_str(const char *cmd, const char *cmd_chr, char *resp_buf, size_t buf_size, const char *format, ...) { - MBED_ASSERT(strlen(cmd) < BUFF_SIZE); + MBED_ASSERT(strlen(cmd) < MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE); lock(); handle_start(cmd, cmd_chr); diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt index 5772d7cf45..0daa233d6c 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularcontext/CMakeLists.txt @@ -12,6 +12,7 @@ target_compile_definitions(${TEST_NAME} MBED_CONF_CELLULAR_USE_SMS=1 MBED_CONF_NSAPI_DEFAULT_CELLULAR_APN=NULL MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt index bdf0e68414..e065e68a14 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellulardevice/CMakeLists.txt @@ -18,6 +18,7 @@ target_compile_definitions(${TEST_NAME} MDMRXD=NC MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 MBED_CONF_CELLULAR_USE_SMS=1 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularinformation/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularinformation/CMakeLists.txt index 6a28c2556d..b7a6ec83f7 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularinformation/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularinformation/CMakeLists.txt @@ -10,6 +10,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularnetwork/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularnetwork/CMakeLists.txt index 459172dc62..70d33ecdc0 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularnetwork/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularnetwork/CMakeLists.txt @@ -10,6 +10,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularsms/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularsms/CMakeLists.txt index 3278e53bd1..2f62b64f8d 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularsms/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularsms/CMakeLists.txt @@ -11,6 +11,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 MBED_CONF_CELLULAR_USE_SMS=1 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt index ca26a782c4..79c69ea85a 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/AT/at_cellularstack/CMakeLists.txt @@ -10,6 +10,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/device/athandler/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/device/athandler/CMakeLists.txt index 3b0e7e6ba3..9ea7f08523 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/device/athandler/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/device/athandler/CMakeLists.txt @@ -12,6 +12,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularcontext/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularcontext/CMakeLists.txt index b02db309e4..c774d6ce2e 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularcontext/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularcontext/CMakeLists.txt @@ -18,6 +18,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/device/cellulardevice/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/device/cellulardevice/CMakeLists.txt index 609015a25e..b903eb0868 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/device/cellulardevice/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/device/cellulardevice/CMakeLists.txt @@ -16,6 +16,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt index 2195378184..00d3b3bd42 100644 --- a/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt +++ b/connectivity/cellular/tests/UNITTESTS/framework/device/cellularstatemachine/CMakeLists.txt @@ -17,6 +17,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME} diff --git a/connectivity/netsocket/tests/UNITTESTS/netsocket/CellularNonIPSocket/CMakeLists.txt b/connectivity/netsocket/tests/UNITTESTS/netsocket/CellularNonIPSocket/CMakeLists.txt index 214d1abf44..cc1022d152 100644 --- a/connectivity/netsocket/tests/UNITTESTS/netsocket/CellularNonIPSocket/CMakeLists.txt +++ b/connectivity/netsocket/tests/UNITTESTS/netsocket/CellularNonIPSocket/CMakeLists.txt @@ -11,7 +11,7 @@ target_compile_definitions(${TEST_NAME} DEVICE_SERIAL=1 DEVICE_INTERRUPTIN=1 MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE=115200 - + MBED_CONF_CELLULAR_AT_HANDLER_BUFFER_SIZE=32 ) target_sources(${TEST_NAME}