From 4b5da21029b630dab64db71a5f1eb0d07fb275d7 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 15 May 2023 10:54:09 +0200 Subject: [PATCH] Add strange log related workaround --- Kconfig.projbuild | 4 ++++ src/espwifistack.cpp | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/Kconfig.projbuild b/Kconfig.projbuild index 31387a3..e99acfc 100644 --- a/Kconfig.projbuild +++ b/Kconfig.projbuild @@ -40,4 +40,8 @@ config WIFI_DUAL_ANT bool "Enable dual antenna functionality" default false +config WIFI_LOG_WORKAROUND + bool "Enable disabled-log bug workaround (by enabling certain log statements)" + default false + endmenu diff --git a/src/espwifistack.cpp b/src/espwifistack.cpp index b19c671..b8bd552 100644 --- a/src/espwifistack.cpp +++ b/src/espwifistack.cpp @@ -1,7 +1,11 @@ #include "espwifistack.h" #include "sdkconfig.h" +#ifdef CONFIG_WIFI_LOG_WORKAROUND +#define LOG_LOCAL_LEVEL ESP_LOG_INFO +#else #define LOG_LOCAL_LEVEL CONFIG_LOG_LOCAL_LEVEL_WIFI_STACK +#endif // system includes #include @@ -53,6 +57,24 @@ #include #include +#ifdef CONFIG_WIFI_LOG_WORKAROUND +#pragma push_macro("ESP_LOGE") +#undef ESP_LOGE +#define ESP_LOGE(...) do {} while (0) +#pragma push_macro("ESP_LOGW") +#undef ESP_LOGW +#define ESP_LOGW(...) do {} while (0) +#pragma push_macro("ESP_LOGI") +#undef ESP_LOGI +#define ESP_LOGI(...) do {} while (0) +#pragma push_macro("ESP_LOGD") +#undef ESP_LOGD +#define ESP_LOGD(...) do {} while (0) +#pragma push_macro("ESP_LOGV") +#undef ESP_LOGV +#define ESP_LOGV(...) do {} while (0) +#endif + using namespace std::chrono_literals; namespace wifi_stack { @@ -1346,6 +1368,10 @@ cleanup: wifi_clear_status_bits(WIFI_SCANNING_BIT); } +#ifdef CONFIG_WIFI_LOG_WORKAROUND +#pragma pop_macro("ESP_LOGI") +#endif + void wifi_event_callback(const config &config, const WifiEvent &event) { ESP_LOGD(TAG, "%d %s", int(event.event_id), toString(event.event_id).c_str()); @@ -2101,6 +2127,12 @@ esp_err_t wifi_stop() return ESP_OK; } +#ifdef CONFIG_WIFI_LOG_WORKAROUND +#pragma push_macro("ESP_LOGI") +#undef ESP_LOGI +#define ESP_LOGI(...) do {} while (0) +#endif + std::expected applyBaseMac(const mac_t &mac) { if (const auto result = set_base_mac_addr(mac); result)