From ae8479c77e9cd65dab92fe487492ddb0108be8b7 Mon Sep 17 00:00:00 2001 From: Tomas Rezucha Date: Fri, 2 Sep 2022 09:14:38 +0200 Subject: [PATCH 1/2] esp_modem: Expose set_error_cb method --- components/esp_modem/idf_component.yml | 2 +- components/esp_modem/include/cxx_include/esp_modem_dte.hpp | 6 ++++++ .../esp_modem/include/cxx_include/esp_modem_terminal.hpp | 1 + components/esp_modem/src/esp_modem_dte.cpp | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/components/esp_modem/idf_component.yml b/components/esp_modem/idf_component.yml index 798dd7d17..3ec8477f1 100644 --- a/components/esp_modem/idf_component.yml +++ b/components/esp_modem/idf_component.yml @@ -1,4 +1,4 @@ -version: "0.1.19" +version: "0.1.20" description: esp modem url: https://github.com/espressif/esp-protocols/tree/master/components/esp_modem dependencies: diff --git a/components/esp_modem/include/cxx_include/esp_modem_dte.hpp b/components/esp_modem/include/cxx_include/esp_modem_dte.hpp index 17b48f51e..2b8ab5f5a 100644 --- a/components/esp_modem/include/cxx_include/esp_modem_dte.hpp +++ b/components/esp_modem/include/cxx_include/esp_modem_dte.hpp @@ -75,6 +75,12 @@ public: */ void set_read_cb(std::function f); + /** + * @brief Sets DTE error callback + * @param f Function to be called on DTE error + */ + void set_error_cb(std::function f); + /** * @brief Sets the DTE to desired mode (Command/Data/Cmux) * @param m Desired operation mode diff --git a/components/esp_modem/include/cxx_include/esp_modem_terminal.hpp b/components/esp_modem/include/cxx_include/esp_modem_terminal.hpp index d3ccb9e9b..24bcd7d1c 100644 --- a/components/esp_modem/include/cxx_include/esp_modem_terminal.hpp +++ b/components/esp_modem/include/cxx_include/esp_modem_terminal.hpp @@ -41,6 +41,7 @@ enum class terminal_error { BUFFER_OVERFLOW, CHECKSUM_ERROR, UNEXPECTED_CONTROL_FLOW, + DEVICE_GONE, }; /** diff --git a/components/esp_modem/src/esp_modem_dte.cpp b/components/esp_modem/src/esp_modem_dte.cpp index 55e940978..0bbe83b1b 100644 --- a/components/esp_modem/src/esp_modem_dte.cpp +++ b/components/esp_modem/src/esp_modem_dte.cpp @@ -155,6 +155,12 @@ void DTE::set_read_cb(std::function f) }); } +void DTE::set_error_cb(std::function f) +{ + data_term->set_error_cb(f); + command_term->set_error_cb(f); +} + int DTE::read(uint8_t **d, size_t len) { auto data_to_read = std::min(len, buffer.size); From 98bf3efeb6833fb078e2a9b765b4fa017c4bbfd9 Mon Sep 17 00:00:00 2001 From: Tomas Rezucha Date: Fri, 2 Sep 2022 10:02:34 +0200 Subject: [PATCH 2/2] esp_modem: Fix format warnings Closes https://github.com/espressif/esp-protocols/issues/79 --- components/esp_modem/CMakeLists.txt | 2 -- components/esp_modem/src/esp_modem_netif.cpp | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/components/esp_modem/CMakeLists.txt b/components/esp_modem/CMakeLists.txt index 404b74a22..10d39577c 100644 --- a/components/esp_modem/CMakeLists.txt +++ b/components/esp_modem/CMakeLists.txt @@ -47,5 +47,3 @@ if(${target} STREQUAL "linux") # This is needed for ESP_LOGx() macros, as integer formats differ on ESP32(..) and x64 set_target_properties(${COMPONENT_LIB} PROPERTIES COMPILE_FLAGS -Wno-format) endif() - -target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") diff --git a/components/esp_modem/src/esp_modem_netif.cpp b/components/esp_modem/src/esp_modem_netif.cpp index 263f09b99..fa731f145 100644 --- a/components/esp_modem/src/esp_modem_netif.cpp +++ b/components/esp_modem/src/esp_modem_netif.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include #include "cxx_include/esp_modem_netif.hpp" @@ -28,7 +29,7 @@ void Netif::on_ppp_changed(void *arg, esp_event_base_t event_base, { auto *ppp = static_cast(arg); if (event_id < NETIF_PP_PHASE_OFFSET) { - ESP_LOGI("esp_modem_netif", "PPP state changed event %d", event_id); + ESP_LOGI("esp_modem_netif", "PPP state changed event %" PRId32, event_id); // only notify the modem on state/error events, ignoring phase transitions ppp->signal.set(PPP_EXIT); }