From 299cdad5b7addc1c740adf06b3da305feb98867d Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Wed, 20 Apr 2022 15:42:39 +0200 Subject: [PATCH 01/32] Added compiler.warning_flags to platform.txt --- platform.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform.txt b/platform.txt index d587ee9e6c6..58633861816 100644 --- a/platform.txt +++ b/platform.txt @@ -86,9 +86,9 @@ build.extra_flags.esp32c3=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build. # Compile Flags compiler.cpreprocessor.flags={compiler.cpreprocessor.flags.{build.mcu}} "-I{compiler.sdk.path}/{build.memory_type}/include" -compiler.c.flags={compiler.c.flags.{build.mcu}} -compiler.cpp.flags={compiler.cpp.flags.{build.mcu}} -compiler.S.flags={compiler.S.flags.{build.mcu}} +compiler.c.flags={compiler.c.flags.{build.mcu}} {compiler.warning_flags} +compiler.cpp.flags={compiler.cpp.flags.{build.mcu}} {compiler.warning_flags} +compiler.S.flags={compiler.S.flags.{build.mcu}} {compiler.warning_flags} compiler.c.elf.flags={compiler.c.elf.flags.{build.mcu}} compiler.c.elf.libs={compiler.c.elf.libs.{build.mcu}} compiler.ar.flags={compiler.ar.flags.{build.mcu}} From f309f1641a1328766904e3340f7e483ddc87dc76 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Wed, 20 Apr 2022 15:56:15 +0200 Subject: [PATCH 02/32] Removed unused variables --- cores/esp32/esp32-hal-i2c-slave.c | 1 - libraries/WiFiClientSecure/src/esp_crt_bundle.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index e73a6db642c..9fe9e2415a3 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -695,7 +695,6 @@ static void i2c_slave_isr_handler(void* arg) uint32_t activeInt = i2c_ll_get_intsts_mask(i2c->dev); i2c_ll_clr_intsts_mask(i2c->dev, activeInt); uint8_t rx_fifo_len = i2c_ll_get_rxfifo_cnt(i2c->dev); - uint8_t tx_fifo_len = SOC_I2C_FIFO_LEN - i2c_ll_get_txfifo_len(i2c->dev); bool slave_rw = i2c_ll_slave_rw(i2c->dev); if(activeInt & I2C_RXFIFO_WM_INT_ENA){ // RX FiFo Full diff --git a/libraries/WiFiClientSecure/src/esp_crt_bundle.c b/libraries/WiFiClientSecure/src/esp_crt_bundle.c index 747f86239d5..9a555b218d0 100644 --- a/libraries/WiFiClientSecure/src/esp_crt_bundle.c +++ b/libraries/WiFiClientSecure/src/esp_crt_bundle.c @@ -22,8 +22,6 @@ #define BUNDLE_HEADER_OFFSET 2 #define CRT_HEADER_OFFSET 4 -static const char *TAG = "esp-x509-crt-bundle"; - /* a dummy certificate so that * cacert_ptr passes non-NULL check during handshake */ static mbedtls_x509_crt s_dummy_crt; From 69f411330eb49c24d3a1fbda6bde81ac5ddcb80c Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 08:17:27 +0200 Subject: [PATCH 03/32] Moved uart_dev_t *hw definitions to satisfy compiler warning --- cores/esp32/esp32-hal-uart.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 80030b8fabc..a2f6ea4c918 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -538,8 +538,6 @@ void uartStartDetectBaudrate(uart_t *uart) { return; } - uart_dev_t *hw = UART_LL_GET_HW(uart->num); - #ifdef CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 requires further testing @@ -555,6 +553,7 @@ void uartStartDetectBaudrate(uart_t *uart) { //hw->conf0.autobaud_en = 1; #elif CONFIG_IDF_TARGET_ESP32S3 #else + uart_dev_t *hw = UART_LL_GET_HW(uart->num); hw->auto_baud.glitch_filt = 0x08; hw->auto_baud.en = 0; hw->auto_baud.en = 1; @@ -571,7 +570,6 @@ uartDetectBaudrate(uart_t *uart) #ifndef CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 requires further testing - Baud rate detection returns wrong values static bool uartStateDetectingBaudrate = false; - uart_dev_t *hw = UART_LL_GET_HW(uart->num); if(!uartStateDetectingBaudrate) { uartStartDetectBaudrate(uart); @@ -592,6 +590,7 @@ uartDetectBaudrate(uart_t *uart) //hw->conf0.autobaud_en = 0; #elif CONFIG_IDF_TARGET_ESP32S3 #else + uart_dev_t *hw = UART_LL_GET_HW(uart->num); hw->auto_baud.en = 0; #endif uartStateDetectingBaudrate = false; // Initialize for the next round From 885016cab282e50b11597525a8f1bea37e3353b1 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 12:22:20 +0200 Subject: [PATCH 04/32] Removed unused function in WiFiScan.cpp --- libraries/WiFi/src/WiFiScan.cpp | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/libraries/WiFi/src/WiFiScan.cpp b/libraries/WiFi/src/WiFiScan.cpp index f34badb16dc..af897996051 100644 --- a/libraries/WiFi/src/WiFiScan.cpp +++ b/libraries/WiFi/src/WiFiScan.cpp @@ -42,33 +42,6 @@ extern "C" { #include "lwip/err.h" } -static const char * cipher_str(int cipher) -{ - switch (cipher) { - case WIFI_CIPHER_TYPE_NONE: - return ("NONE"); - break; - case WIFI_CIPHER_TYPE_WEP40: - return ("WEP40"); - break; - case WIFI_CIPHER_TYPE_WEP104: - return ("WEP104"); - break; - case WIFI_CIPHER_TYPE_TKIP: - return ("TKIP"); - break; - case WIFI_CIPHER_TYPE_CCMP: - return ("CCMP"); - break; - case WIFI_CIPHER_TYPE_TKIP_CCMP: - return ("TKIP_CCMP"); - break; - default: - break; - } - return ("UNKNOWN"); -} - bool WiFiScanClass::_scanAsync = false; uint32_t WiFiScanClass::_scanStarted = 0; uint32_t WiFiScanClass::_scanTimeout = 10000; From e6bdde4c86fb0fe323fe2ef63cbb6caaa9520296 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 12:24:30 +0200 Subject: [PATCH 05/32] Wrapped auth_mode_str in #if... --- libraries/WiFi/src/WiFiGeneric.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 5d31341481a..b3b2eca271e 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -195,6 +195,7 @@ esp_err_t set_esp_interface_dns(esp_interface_t interface, IPAddress main_dns=IP return ESP_OK; } +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE static const char * auth_mode_str(int authmode) { switch (authmode) { @@ -221,6 +222,7 @@ static const char * auth_mode_str(int authmode) } return ("UNKNOWN"); } +#endif static char default_hostname[32] = {0,}; static const char * get_esp_netif_hostname(){ From 5c3076fd4a8a596ea4acfa2f985b2671fe13ccc2 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 12:34:48 +0200 Subject: [PATCH 06/32] Moved tinyusb_interface_names definition inside function --- cores/esp32/esp32-hal-tinyusb.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index c34af2a9ef6..3d2805fba29 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -646,12 +646,11 @@ static void usb_device_task(void *param) { /* * PUBLIC API * */ -static const char *tinyusb_interface_names[USB_INTERFACE_MAX] = {"MSC", "DFU", "HID", "VENDOR", "CDC", "MIDI", "CUSTOM"}; - static bool tinyusb_is_initialized = false; esp_err_t tinyusb_enable_interface(tinyusb_interface_t interface, uint16_t descriptor_len, tinyusb_descriptor_cb_t cb) { + const char *tinyusb_interface_names[USB_INTERFACE_MAX] = {"MSC", "DFU", "HID", "VENDOR", "CDC", "MIDI", "CUSTOM"}; if(tinyusb_is_initialized){ log_e("TinyUSB has already started! Interface %s not enabled", (interface >= USB_INTERFACE_MAX)?"":tinyusb_interface_names[interface]); return ESP_FAIL; From 195165207d2e2f650b88691fea0f4d21f933b2bc Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 12:35:33 +0200 Subject: [PATCH 07/32] Removed unused variables from USBHIDKeyboard.cpp --- libraries/USB/src/USBHIDKeyboard.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/USB/src/USBHIDKeyboard.cpp b/libraries/USB/src/USBHIDKeyboard.cpp index d7cd5e5e2b1..3ebf47580e0 100644 --- a/libraries/USB/src/USBHIDKeyboard.cpp +++ b/libraries/USB/src/USBHIDKeyboard.cpp @@ -274,7 +274,6 @@ size_t USBHIDKeyboard::releaseRaw(uint8_t k) // call release(), releaseAll(), or otherwise clear the report and resend. size_t USBHIDKeyboard::press(uint8_t k) { - uint8_t i; if (k >= 0x88) { // it's a non-printing key (not a modifier) k = k - 0x88; } else if (k >= 0x80) { // it's a modifier key @@ -298,7 +297,6 @@ size_t USBHIDKeyboard::press(uint8_t k) // it shouldn't be repeated any more. size_t USBHIDKeyboard::release(uint8_t k) { - uint8_t i; if (k >= 0x88) { // it's a non-printing key (not a modifier) k = k - 0x88; } else if (k >= 0x80) { // it's a modifier key From a642825be09f3682a6446736a94f04af3b47c085 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 14:17:47 +0200 Subject: [PATCH 08/32] Removed unused variables + vars used only in logs are wrapped --- libraries/WiFi/src/WiFiGeneric.cpp | 92 ++++++++++++++++++------------ 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index b3b2eca271e..58a02736b27 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -288,24 +288,32 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev log_v("STA Stopped"); arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_STOP; } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_AUTHMODE_CHANGE) { - wifi_event_sta_authmode_change_t * event = (wifi_event_sta_authmode_change_t*)event_data; - log_v("STA Auth Mode Changed: From: %s, To: %s", auth_mode_str(event->old_mode), auth_mode_str(event->new_mode)); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_sta_authmode_change_t * event = (wifi_event_sta_authmode_change_t*)event_data; + log_v("STA Auth Mode Changed: From: %s, To: %s", auth_mode_str(event->old_mode), auth_mode_str(event->new_mode)); + #endif arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE; memcpy(&arduino_event.event_info.wifi_sta_authmode_change, event_data, sizeof(wifi_event_sta_authmode_change_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) { - wifi_event_sta_connected_t * event = (wifi_event_sta_connected_t*)event_data; - log_v("STA Connected: SSID: %s, BSSID: " MACSTR ", Channel: %u, Auth: %s", event->ssid, MAC2STR(event->bssid), event->channel, auth_mode_str(event->authmode)); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_sta_connected_t * event = (wifi_event_sta_connected_t*)event_data; + log_v("STA Connected: SSID: %s, BSSID: " MACSTR ", Channel: %u, Auth: %s", event->ssid, MAC2STR(event->bssid), event->channel, auth_mode_str(event->authmode)); + #endif arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_CONNECTED; memcpy(&arduino_event.event_info.wifi_sta_connected, event_data, sizeof(wifi_event_sta_connected_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { - wifi_event_sta_disconnected_t * event = (wifi_event_sta_disconnected_t*)event_data; - log_v("STA Disconnected: SSID: %s, BSSID: " MACSTR ", Reason: %u", event->ssid, MAC2STR(event->bssid), event->reason); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_sta_disconnected_t * event = (wifi_event_sta_disconnected_t*)event_data; + log_v("STA Disconnected: SSID: %s, BSSID: " MACSTR ", Reason: %u", event->ssid, MAC2STR(event->bssid), event->reason); + #endif arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_DISCONNECTED; memcpy(&arduino_event.event_info.wifi_sta_disconnected, event_data, sizeof(wifi_event_sta_disconnected_t)); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { - ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; - log_v("STA Got %sIP:" IPSTR, event->ip_changed?"New ":"Same ", IP2STR(&event->ip_info.ip)); - arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_GOT_IP; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; + log_v("STA Got %sIP:" IPSTR, event->ip_changed?"New ":"Same ", IP2STR(&event->ip_info.ip)); + #endif + arduino_event.event_id = ARDUINO_EVENT_WIFI_STA_GOT_IP; memcpy(&arduino_event.event_info.got_ip, event_data, sizeof(ip_event_got_ip_t)); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_LOST_IP) { log_v("STA IP Lost"); @@ -315,8 +323,10 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev * SCAN * */ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_SCAN_DONE) { - wifi_event_sta_scan_done_t * event = (wifi_event_sta_scan_done_t*)event_data; - log_v("SCAN Done: ID: %u, Status: %u, Results: %u", event->scan_id, event->status, event->number); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_sta_scan_done_t * event = (wifi_event_sta_scan_done_t*)event_data; + log_v("SCAN Done: ID: %u, Status: %u, Results: %u", event->scan_id, event->status, event->number); + #endif arduino_event.event_id = ARDUINO_EVENT_WIFI_SCAN_DONE; memcpy(&arduino_event.event_info.wifi_scan_done, event_data, sizeof(wifi_event_sta_scan_done_t)); @@ -330,24 +340,32 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev log_v("AP Stopped"); arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STOP; } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_PROBEREQRECVED) { - wifi_event_ap_probe_req_rx_t * event = (wifi_event_ap_probe_req_rx_t*)event_data; - log_v("AP Probe Request: RSSI: %d, MAC: " MACSTR, event->rssi, MAC2STR(event->mac)); - arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_ap_probe_req_rx_t * event = (wifi_event_ap_probe_req_rx_t*)event_data; + log_v("AP Probe Request: RSSI: %d, MAC: " MACSTR, event->rssi, MAC2STR(event->mac)); + #endif + arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED; memcpy(&arduino_event.event_info.wifi_ap_probereqrecved, event_data, sizeof(wifi_event_ap_probe_req_rx_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STACONNECTED) { - wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; - log_v("AP Station Connected: MAC: " MACSTR ", AID: %d", MAC2STR(event->mac), event->aid); - arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STACONNECTED; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; + log_v("AP Station Connected: MAC: " MACSTR ", AID: %d", MAC2STR(event->mac), event->aid); + #endif + arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STACONNECTED; memcpy(&arduino_event.event_info.wifi_ap_staconnected, event_data, sizeof(wifi_event_ap_staconnected_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STADISCONNECTED) { - wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; - log_v("AP Station Disconnected: MAC: " MACSTR ", AID: %d", MAC2STR(event->mac), event->aid); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; + log_v("AP Station Disconnected: MAC: " MACSTR ", AID: %d", MAC2STR(event->mac), event->aid); + #endif arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STADISCONNECTED; memcpy(&arduino_event.event_info.wifi_ap_stadisconnected, event_data, sizeof(wifi_event_ap_stadisconnected_t)); } else if (event_base == IP_EVENT && event_id == IP_EVENT_AP_STAIPASSIGNED) { - ip_event_ap_staipassigned_t * event = (ip_event_ap_staipassigned_t*)event_data; - log_v("AP Station IP Assigned:" IPSTR, IP2STR(&event->ip)); - arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + ip_event_ap_staipassigned_t * event = (ip_event_ap_staipassigned_t*)event_data; + log_v("AP Station IP Assigned:" IPSTR, IP2STR(&event->ip)); + #endif + arduino_event.event_id = ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED; memcpy(&arduino_event.event_info.wifi_ap_staipassigned, event_data, sizeof(ip_event_ap_staipassigned_t)); /* @@ -355,7 +373,6 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev * */ } else if (event_base == ETH_EVENT && event_id == ETHERNET_EVENT_CONNECTED) { log_v("Ethernet Link Up"); - esp_eth_handle_t eth_handle = *(esp_eth_handle_t *)event_data; arduino_event.event_id = ARDUINO_EVENT_ETH_CONNECTED; memcpy(&arduino_event.event_info.eth_connected, event_data, sizeof(esp_eth_handle_t)); } else if (event_base == ETH_EVENT && event_id == ETHERNET_EVENT_DISCONNECTED) { @@ -368,9 +385,11 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev log_v("Ethernet Stopped"); arduino_event.event_id = ARDUINO_EVENT_ETH_STOP; } else if (event_base == IP_EVENT && event_id == IP_EVENT_ETH_GOT_IP) { - ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; - log_v("Ethernet got %sip:" IPSTR, event->ip_changed?"new":"", IP2STR(&event->ip_info.ip)); - arduino_event.event_id = ARDUINO_EVENT_ETH_GOT_IP; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; + log_v("Ethernet got %sip:" IPSTR, event->ip_changed?"new":"", IP2STR(&event->ip_info.ip)); + #endif + arduino_event.event_id = ARDUINO_EVENT_ETH_GOT_IP; memcpy(&arduino_event.event_info.got_ip, event_data, sizeof(ip_event_got_ip_t)); /* @@ -395,13 +414,11 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_WPS_ER_SUCCESS) { arduino_event.event_id = ARDUINO_EVENT_WPS_ER_SUCCESS; } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_WPS_ER_FAILED) { - wifi_event_sta_wps_fail_reason_t * event = (wifi_event_sta_wps_fail_reason_t*)event_data; arduino_event.event_id = ARDUINO_EVENT_WPS_ER_FAILED; memcpy(&arduino_event.event_info.wps_fail_reason, event_data, sizeof(wifi_event_sta_wps_fail_reason_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_WPS_ER_TIMEOUT) { arduino_event.event_id = ARDUINO_EVENT_WPS_ER_TIMEOUT; } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_WPS_ER_PIN) { - wifi_event_sta_wps_er_pin_t * event = (wifi_event_sta_wps_er_pin_t*)event_data; arduino_event.event_id = ARDUINO_EVENT_WPS_ER_PIN; memcpy(&arduino_event.event_info.wps_er_pin, event_data, sizeof(wifi_event_sta_wps_er_pin_t)); } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_WPS_ER_PBC_OVERLAP) { @@ -411,7 +428,6 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev * FTM * */ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_FTM_REPORT) { - wifi_event_ftm_report_t * event = (wifi_event_ftm_report_t*)event_data; arduino_event.event_id = ARDUINO_EVENT_WIFI_FTM_REPORT; memcpy(&arduino_event.event_info.wifi_ftm_report, event_data, sizeof(wifi_event_ftm_report_t)); @@ -426,8 +442,10 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev log_v("SC Found Channel"); arduino_event.event_id = ARDUINO_EVENT_SC_FOUND_CHANNEL; } else if (event_base == SC_EVENT && event_id == SC_EVENT_GOT_SSID_PSWD) { - smartconfig_event_got_ssid_pswd_t *event = (smartconfig_event_got_ssid_pswd_t *)event_data; - log_v("SC: SSID: %s, Password: %s", (const char *)event->ssid, (const char *)event->password); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR + smartconfig_event_got_ssid_pswd_t *event = (smartconfig_event_got_ssid_pswd_t *)event_data; + log_v("SC: SSID: %s, Password: %s", (const char *)event->ssid, (const char *)event->password); + #endif arduino_event.event_id = ARDUINO_EVENT_SC_GOT_SSID_PSWD; memcpy(&arduino_event.event_info.sc_got_ssid_pswd, event_data, sizeof(smartconfig_event_got_ssid_pswd_t)); @@ -452,13 +470,17 @@ static void _arduino_event_cb(void* arg, esp_event_base_t event_base, int32_t ev wifi_prov_mgr_deinit(); arduino_event.event_id = ARDUINO_EVENT_PROV_END; } else if (event_base == WIFI_PROV_EVENT && event_id == WIFI_PROV_CRED_RECV) { - wifi_sta_config_t *event = (wifi_sta_config_t *)event_data; - log_v("Provisioned Credentials: SSID: %s, Password: %s", (const char *) event->ssid, (const char *) event->password); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE + wifi_sta_config_t *event = (wifi_sta_config_t *)event_data; + log_v("Provisioned Credentials: SSID: %s, Password: %s", (const char *) event->ssid, (const char *) event->password); + #endif arduino_event.event_id = ARDUINO_EVENT_PROV_CRED_RECV; memcpy(&arduino_event.event_info.prov_cred_recv, event_data, sizeof(wifi_sta_config_t)); } else if (event_base == WIFI_PROV_EVENT && event_id == WIFI_PROV_CRED_FAIL) { - wifi_prov_sta_fail_reason_t *reason = (wifi_prov_sta_fail_reason_t *)event_data; - log_e("Provisioning Failed: Reason : %s", (*reason == WIFI_PROV_STA_AUTH_ERROR)?"Authentication Failed":"AP Not Found"); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR + wifi_prov_sta_fail_reason_t *reason = (wifi_prov_sta_fail_reason_t *)event_data; + log_e("Provisioning Failed: Reason : %s", (*reason == WIFI_PROV_STA_AUTH_ERROR)?"Authentication Failed":"AP Not Found"); + #endif arduino_event.event_id = ARDUINO_EVENT_PROV_CRED_FAIL; memcpy(&arduino_event.event_info.prov_fail_reason, event_data, sizeof(wifi_prov_sta_fail_reason_t)); } else if (event_base == WIFI_PROV_EVENT && event_id == WIFI_PROV_CRED_SUCCESS) { From 1aaa72b08617543b87b54e0c532d355f2e925e16 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Thu, 21 Apr 2022 18:24:43 +0200 Subject: [PATCH 09/32] Wrapped tinyusb_interface_names in #if --- cores/esp32/esp32-hal-tinyusb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index 3d2805fba29..8bf9932d2e4 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -646,11 +646,13 @@ static void usb_device_task(void *param) { /* * PUBLIC API * */ +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_ERROR + const char *tinyusb_interface_names[USB_INTERFACE_MAX] = {"MSC", "DFU", "HID", "VENDOR", "CDC", "MIDI", "CUSTOM"}; +#endif static bool tinyusb_is_initialized = false; esp_err_t tinyusb_enable_interface(tinyusb_interface_t interface, uint16_t descriptor_len, tinyusb_descriptor_cb_t cb) { - const char *tinyusb_interface_names[USB_INTERFACE_MAX] = {"MSC", "DFU", "HID", "VENDOR", "CDC", "MIDI", "CUSTOM"}; if(tinyusb_is_initialized){ log_e("TinyUSB has already started! Interface %s not enabled", (interface >= USB_INTERFACE_MAX)?"":tinyusb_interface_names[interface]); return ESP_FAIL; From 4b1f7ee09d1bfd508ec8340705111a1da781ee38 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 08:31:26 +0200 Subject: [PATCH 10/32] Wrapped variable which is used only in log into #if --- libraries/USB/src/USBHID.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/USB/src/USBHID.cpp b/libraries/USB/src/USBHID.cpp index cf66d661319..a5bdb2d6739 100644 --- a/libraries/USB/src/USBHID.cpp +++ b/libraries/USB/src/USBHID.cpp @@ -42,7 +42,9 @@ static bool tinyusb_hid_is_initialized = false; static uint8_t tinyusb_loaded_hid_devices_num = 0; static uint16_t tinyusb_hid_device_descriptor_len = 0; static uint8_t * tinyusb_hid_device_descriptor = NULL; -static const char * tinyusb_hid_device_report_types[4] = {"INVALID", "INPUT", "OUTPUT", "FEATURE"}; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG + static const char * tinyusb_hid_device_report_types[4] = {"INVALID", "INPUT", "OUTPUT", "FEATURE"}; +#endif static bool tinyusb_enable_hid_device(uint16_t descriptor_len, USBHIDDevice * device){ if(tinyusb_hid_is_initialized){ From 791600455f3acf59a974073b6cb0829335fcd611 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 08:36:12 +0200 Subject: [PATCH 11/32] Removed unused static function --- libraries/WiFiProv/src/WiFiProv.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/libraries/WiFiProv/src/WiFiProv.cpp b/libraries/WiFiProv/src/WiFiProv.cpp index e5a7dc21eec..d5a2cb0e4c3 100644 --- a/libraries/WiFiProv/src/WiFiProv.cpp +++ b/libraries/WiFiProv/src/WiFiProv.cpp @@ -66,15 +66,6 @@ static void get_device_service_name(prov_scheme_t prov_scheme, char *service_nam #endif } -static esp_err_t custom_prov_data_handler(uint32_t session_id, const uint8_t *inbuf, ssize_t inlen, uint8_t **outbuf, ssize_t *outlen, void *priv_data){ - if (inbuf) { - log_d("Received data: %.*s", inlen, (char *)inbuf); - } - *outbuf = NULL; - *outlen = 0; - return ESP_OK; -} - void WiFiProvClass :: beginProvision(prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, wifi_prov_security_t security, const char * pop, const char *service_name, const char *service_key, uint8_t * uuid) { bool provisioned = false; From 06fdaa12ae41bb6249e0ae58cf1fba379320568e Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 09:45:24 +0200 Subject: [PATCH 12/32] Fixed return variable init and expected value --- .../WiFi/examples/WiFiScanDualAntenna/WiFiScanDualAntenna.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/WiFi/examples/WiFiScanDualAntenna/WiFiScanDualAntenna.ino b/libraries/WiFi/examples/WiFiScanDualAntenna/WiFiScanDualAntenna.ino index 344778ff3df..029f95d2205 100644 --- a/libraries/WiFi/examples/WiFiScanDualAntenna/WiFiScanDualAntenna.ino +++ b/libraries/WiFi/examples/WiFiScanDualAntenna/WiFiScanDualAntenna.ino @@ -18,7 +18,7 @@ void setup() { - bool err = ESP_FAIL; + bool err = false; Serial.begin(115200); // Set WiFi to station mode and disconnect from an AP if it was previously connected @@ -36,7 +36,7 @@ void setup() * https://docs.espressif.com/projects/arduino-esp32/en/latest/api/wifi.html */ - if(err == ESP_FAIL) { + if(err == false) { Serial.println("Dual Antenna configuration failed!"); } else { Serial.println("Dual Antenna configuration successfuly done!"); From 5c67334ab2b3d883c858fb7913489cfcb3f26fa5 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 12:03:34 +0200 Subject: [PATCH 13/32] Pointer dereference fix in example --- libraries/USB/examples/HIDVendor/HIDVendor.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/USB/examples/HIDVendor/HIDVendor.ino b/libraries/USB/examples/HIDVendor/HIDVendor.ino index 01b91596026..e6d413d9608 100644 --- a/libraries/USB/examples/HIDVendor/HIDVendor.ino +++ b/libraries/USB/examples/HIDVendor/HIDVendor.ino @@ -20,7 +20,7 @@ static void vendorEventCallback(void* arg, esp_event_base_t event_base, int32_t case ARDUINO_USB_HID_VENDOR_SET_FEATURE_EVENT: Serial.printf("HID VENDOR SET FEATURE: len:%u\n", data->len); for(uint16_t i=0; ilen; i++){ - Serial.printf("0x%02X ",data->buffer); + Serial.printf("0x%02X ",*(data->buffer)); } Serial.println(); break; From ec3f189fcfe03babe768b8faac63c8794d1bba73 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 12:16:07 +0200 Subject: [PATCH 14/32] Enumeration fix --- .../examples/ResetReason/ResetReason.ino | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/libraries/ESP32/examples/ResetReason/ResetReason.ino b/libraries/ESP32/examples/ResetReason/ResetReason.ino index 608edde31e0..e7ee421db2e 100644 --- a/libraries/ESP32/examples/ResetReason/ResetReason.ino +++ b/libraries/ESP32/examples/ResetReason/ResetReason.ino @@ -34,21 +34,21 @@ void print_reset_reason(RESET_REASON reason) { switch ( reason) { - case 1 : Serial.println ("POWERON_RESET");break; /**<1, Vbat power on reset*/ - case 3 : Serial.println ("SW_RESET");break; /**<3, Software reset digital core*/ - case 4 : Serial.println ("OWDT_RESET");break; /**<4, Legacy watch dog reset digital core*/ - case 5 : Serial.println ("DEEPSLEEP_RESET");break; /**<5, Deep Sleep reset digital core*/ - case 6 : Serial.println ("SDIO_RESET");break; /**<6, Reset by SLC module, reset digital core*/ - case 7 : Serial.println ("TG0WDT_SYS_RESET");break; /**<7, Timer Group0 Watch dog reset digital core*/ - case 8 : Serial.println ("TG1WDT_SYS_RESET");break; /**<8, Timer Group1 Watch dog reset digital core*/ - case 9 : Serial.println ("RTCWDT_SYS_RESET");break; /**<9, RTC Watch dog Reset digital core*/ - case 10 : Serial.println ("INTRUSION_RESET");break; /**<10, Instrusion tested to reset CPU*/ - case 11 : Serial.println ("TGWDT_CPU_RESET");break; /**<11, Time Group reset CPU*/ - case 12 : Serial.println ("SW_CPU_RESET");break; /**<12, Software reset CPU*/ - case 13 : Serial.println ("RTCWDT_CPU_RESET");break; /**<13, RTC Watch dog Reset CPU*/ - case 14 : Serial.println ("EXT_CPU_RESET");break; /**<14, for APP CPU, reseted by PRO CPU*/ - case 15 : Serial.println ("RTCWDT_BROWN_OUT_RESET");break;/**<15, Reset when the vdd voltage is not stable*/ - case 16 : Serial.println ("RTCWDT_RTC_RESET");break; /**<16, RTC Watch dog reset digital core and rtc module*/ + case POWERON_RESET : Serial.println ("POWERON_RESET");break; /**<1, Vbat power on reset*/ + case SW_RESET : Serial.println ("SW_RESET");break; /**<3, Software reset digital core*/ + case OWDT_RESET : Serial.println ("OWDT_RESET");break; /**<4, Legacy watch dog reset digital core*/ + case DEEPSLEEP_RESET : Serial.println ("DEEPSLEEP_RESET");break; /**<5, Deep Sleep reset digital core*/ + case SDIO_RESET : Serial.println ("SDIO_RESET");break; /**<6, Reset by SLC module, reset digital core*/ + case TG0WDT_SYS_RESET : Serial.println ("TG0WDT_SYS_RESET");break; /**<7, Timer Group0 Watch dog reset digital core*/ + case TG1WDT_SYS_RESET : Serial.println ("TG1WDT_SYS_RESET");break; /**<8, Timer Group1 Watch dog reset digital core*/ + case RTCWDT_SYS_RESET : Serial.println ("RTCWDT_SYS_RESET");break; /**<9, RTC Watch dog Reset digital core*/ + case INTRUSION_RESET : Serial.println ("INTRUSION_RESET");break; /**<10, Instrusion tested to reset CPU*/ + case TGWDT_CPU_RESET : Serial.println ("TGWDT_CPU_RESET");break; /**<11, Time Group reset CPU*/ + case SW_CPU_RESET : Serial.println ("SW_CPU_RESET");break; /**<12, Software reset CPU*/ + case RTCWDT_CPU_RESET : Serial.println ("RTCWDT_CPU_RESET");break; /**<13, RTC Watch dog Reset CPU*/ + case EXT_CPU_RESET : Serial.println ("EXT_CPU_RESET");break; /**<14, for APP CPU, reseted by PRO CPU*/ + case RTCWDT_BROWN_OUT_RESET : Serial.println ("RTCWDT_BROWN_OUT_RESET");break; /**<15, Reset when the vdd voltage is not stable*/ + case RTCWDT_RTC_RESET : Serial.println ("RTCWDT_RTC_RESET");break; /**<16, RTC Watch dog reset digital core and rtc module*/ default : Serial.println ("NO_MEAN"); } } @@ -57,21 +57,21 @@ void verbose_print_reset_reason(RESET_REASON reason) { switch ( reason) { - case 1 : Serial.println ("Vbat power on reset");break; - case 3 : Serial.println ("Software reset digital core");break; - case 4 : Serial.println ("Legacy watch dog reset digital core");break; - case 5 : Serial.println ("Deep Sleep reset digital core");break; - case 6 : Serial.println ("Reset by SLC module, reset digital core");break; - case 7 : Serial.println ("Timer Group0 Watch dog reset digital core");break; - case 8 : Serial.println ("Timer Group1 Watch dog reset digital core");break; - case 9 : Serial.println ("RTC Watch dog Reset digital core");break; - case 10 : Serial.println ("Instrusion tested to reset CPU");break; - case 11 : Serial.println ("Time Group reset CPU");break; - case 12 : Serial.println ("Software reset CPU");break; - case 13 : Serial.println ("RTC Watch dog Reset CPU");break; - case 14 : Serial.println ("for APP CPU, reseted by PRO CPU");break; - case 15 : Serial.println ("Reset when the vdd voltage is not stable");break; - case 16 : Serial.println ("RTC Watch dog reset digital core and rtc module");break; + case POWERON_RESET : Serial.println ("Vbat power on reset");break; + case SW_RESET : Serial.println ("Software reset digital core");break; + case OWDT_RESET : Serial.println ("Legacy watch dog reset digital core");break; + case DEEPSLEEP_RESET : Serial.println ("Deep Sleep reset digital core");break; + case SDIO_RESET : Serial.println ("Reset by SLC module, reset digital core");break; + case TG0WDT_SYS_RESET : Serial.println ("Timer Group0 Watch dog reset digital core");break; + case TG1WDT_SYS_RESET : Serial.println ("Timer Group1 Watch dog reset digital core");break; + case RTCWDT_SYS_RESET : Serial.println ("RTC Watch dog Reset digital core");break; + case INTRUSION_RESET : Serial.println ("Instrusion tested to reset CPU");break; + case TGWDT_CPU_RESET : Serial.println ("Time Group reset CPU");break; + case SW_CPU_RESET : Serial.println ("Software reset CPU");break; + case RTCWDT_CPU_RESET : Serial.println ("RTC Watch dog Reset CPU");break; + case EXT_CPU_RESET : Serial.println ("for APP CPU, reseted by PRO CPU");break; + case RTCWDT_BROWN_OUT_RESET : Serial.println ("Reset when the vdd voltage is not stable");break; + case RTCWDT_RTC_RESET : Serial.println ("RTC Watch dog reset digital core and rtc module");break; default : Serial.println ("NO_MEAN"); } } From 80c76218e21169376d60c8d37e153beaad62a364 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 12:39:25 +0200 Subject: [PATCH 15/32] Added err log messages --- libraries/Wire/src/Wire.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index bc06ba5483a..686a3903ee0 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -374,6 +374,9 @@ size_t TwoWire::requestFrom(uint16_t address, size_t size, bool sendStop) rxIndex = 0; rxLength = 0; err = i2cWriteReadNonStop(num, address, txBuffer, txLength, rxBuffer, size, _timeOutMillis, &rxLength); + if(err){ + log_e("i2cWriteReadNonStop returned Error %d", err); + } } else { #if !CONFIG_DISABLE_HAL_LOCKS //acquire lock @@ -385,6 +388,9 @@ size_t TwoWire::requestFrom(uint16_t address, size_t size, bool sendStop) rxIndex = 0; rxLength = 0; err = i2cRead(num, address, rxBuffer, size, _timeOutMillis, &rxLength); + if(err){ + log_e("i2cRead returned Error %d", err); + } } #if !CONFIG_DISABLE_HAL_LOCKS //release lock From 17763bd23dadf8eb1ce6d2166e1a9b04bda1e94a Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 13:22:18 +0200 Subject: [PATCH 16/32] Revert "Enumeration fix" This reverts commit ec3f189fcfe03babe768b8faac63c8794d1bba73. --- .../examples/ResetReason/ResetReason.ino | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/libraries/ESP32/examples/ResetReason/ResetReason.ino b/libraries/ESP32/examples/ResetReason/ResetReason.ino index e7ee421db2e..608edde31e0 100644 --- a/libraries/ESP32/examples/ResetReason/ResetReason.ino +++ b/libraries/ESP32/examples/ResetReason/ResetReason.ino @@ -34,21 +34,21 @@ void print_reset_reason(RESET_REASON reason) { switch ( reason) { - case POWERON_RESET : Serial.println ("POWERON_RESET");break; /**<1, Vbat power on reset*/ - case SW_RESET : Serial.println ("SW_RESET");break; /**<3, Software reset digital core*/ - case OWDT_RESET : Serial.println ("OWDT_RESET");break; /**<4, Legacy watch dog reset digital core*/ - case DEEPSLEEP_RESET : Serial.println ("DEEPSLEEP_RESET");break; /**<5, Deep Sleep reset digital core*/ - case SDIO_RESET : Serial.println ("SDIO_RESET");break; /**<6, Reset by SLC module, reset digital core*/ - case TG0WDT_SYS_RESET : Serial.println ("TG0WDT_SYS_RESET");break; /**<7, Timer Group0 Watch dog reset digital core*/ - case TG1WDT_SYS_RESET : Serial.println ("TG1WDT_SYS_RESET");break; /**<8, Timer Group1 Watch dog reset digital core*/ - case RTCWDT_SYS_RESET : Serial.println ("RTCWDT_SYS_RESET");break; /**<9, RTC Watch dog Reset digital core*/ - case INTRUSION_RESET : Serial.println ("INTRUSION_RESET");break; /**<10, Instrusion tested to reset CPU*/ - case TGWDT_CPU_RESET : Serial.println ("TGWDT_CPU_RESET");break; /**<11, Time Group reset CPU*/ - case SW_CPU_RESET : Serial.println ("SW_CPU_RESET");break; /**<12, Software reset CPU*/ - case RTCWDT_CPU_RESET : Serial.println ("RTCWDT_CPU_RESET");break; /**<13, RTC Watch dog Reset CPU*/ - case EXT_CPU_RESET : Serial.println ("EXT_CPU_RESET");break; /**<14, for APP CPU, reseted by PRO CPU*/ - case RTCWDT_BROWN_OUT_RESET : Serial.println ("RTCWDT_BROWN_OUT_RESET");break; /**<15, Reset when the vdd voltage is not stable*/ - case RTCWDT_RTC_RESET : Serial.println ("RTCWDT_RTC_RESET");break; /**<16, RTC Watch dog reset digital core and rtc module*/ + case 1 : Serial.println ("POWERON_RESET");break; /**<1, Vbat power on reset*/ + case 3 : Serial.println ("SW_RESET");break; /**<3, Software reset digital core*/ + case 4 : Serial.println ("OWDT_RESET");break; /**<4, Legacy watch dog reset digital core*/ + case 5 : Serial.println ("DEEPSLEEP_RESET");break; /**<5, Deep Sleep reset digital core*/ + case 6 : Serial.println ("SDIO_RESET");break; /**<6, Reset by SLC module, reset digital core*/ + case 7 : Serial.println ("TG0WDT_SYS_RESET");break; /**<7, Timer Group0 Watch dog reset digital core*/ + case 8 : Serial.println ("TG1WDT_SYS_RESET");break; /**<8, Timer Group1 Watch dog reset digital core*/ + case 9 : Serial.println ("RTCWDT_SYS_RESET");break; /**<9, RTC Watch dog Reset digital core*/ + case 10 : Serial.println ("INTRUSION_RESET");break; /**<10, Instrusion tested to reset CPU*/ + case 11 : Serial.println ("TGWDT_CPU_RESET");break; /**<11, Time Group reset CPU*/ + case 12 : Serial.println ("SW_CPU_RESET");break; /**<12, Software reset CPU*/ + case 13 : Serial.println ("RTCWDT_CPU_RESET");break; /**<13, RTC Watch dog Reset CPU*/ + case 14 : Serial.println ("EXT_CPU_RESET");break; /**<14, for APP CPU, reseted by PRO CPU*/ + case 15 : Serial.println ("RTCWDT_BROWN_OUT_RESET");break;/**<15, Reset when the vdd voltage is not stable*/ + case 16 : Serial.println ("RTCWDT_RTC_RESET");break; /**<16, RTC Watch dog reset digital core and rtc module*/ default : Serial.println ("NO_MEAN"); } } @@ -57,21 +57,21 @@ void verbose_print_reset_reason(RESET_REASON reason) { switch ( reason) { - case POWERON_RESET : Serial.println ("Vbat power on reset");break; - case SW_RESET : Serial.println ("Software reset digital core");break; - case OWDT_RESET : Serial.println ("Legacy watch dog reset digital core");break; - case DEEPSLEEP_RESET : Serial.println ("Deep Sleep reset digital core");break; - case SDIO_RESET : Serial.println ("Reset by SLC module, reset digital core");break; - case TG0WDT_SYS_RESET : Serial.println ("Timer Group0 Watch dog reset digital core");break; - case TG1WDT_SYS_RESET : Serial.println ("Timer Group1 Watch dog reset digital core");break; - case RTCWDT_SYS_RESET : Serial.println ("RTC Watch dog Reset digital core");break; - case INTRUSION_RESET : Serial.println ("Instrusion tested to reset CPU");break; - case TGWDT_CPU_RESET : Serial.println ("Time Group reset CPU");break; - case SW_CPU_RESET : Serial.println ("Software reset CPU");break; - case RTCWDT_CPU_RESET : Serial.println ("RTC Watch dog Reset CPU");break; - case EXT_CPU_RESET : Serial.println ("for APP CPU, reseted by PRO CPU");break; - case RTCWDT_BROWN_OUT_RESET : Serial.println ("Reset when the vdd voltage is not stable");break; - case RTCWDT_RTC_RESET : Serial.println ("RTC Watch dog reset digital core and rtc module");break; + case 1 : Serial.println ("Vbat power on reset");break; + case 3 : Serial.println ("Software reset digital core");break; + case 4 : Serial.println ("Legacy watch dog reset digital core");break; + case 5 : Serial.println ("Deep Sleep reset digital core");break; + case 6 : Serial.println ("Reset by SLC module, reset digital core");break; + case 7 : Serial.println ("Timer Group0 Watch dog reset digital core");break; + case 8 : Serial.println ("Timer Group1 Watch dog reset digital core");break; + case 9 : Serial.println ("RTC Watch dog Reset digital core");break; + case 10 : Serial.println ("Instrusion tested to reset CPU");break; + case 11 : Serial.println ("Time Group reset CPU");break; + case 12 : Serial.println ("Software reset CPU");break; + case 13 : Serial.println ("RTC Watch dog Reset CPU");break; + case 14 : Serial.println ("for APP CPU, reseted by PRO CPU");break; + case 15 : Serial.println ("Reset when the vdd voltage is not stable");break; + case 16 : Serial.println ("RTC Watch dog reset digital core and rtc module");break; default : Serial.println ("NO_MEAN"); } } From 188fef7baf8ec1f2145c06bce43ba69d30730033 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 13:24:57 +0200 Subject: [PATCH 17/32] Changed data type in example --- libraries/ESP32/examples/ResetReason/ResetReason.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/ESP32/examples/ResetReason/ResetReason.ino b/libraries/ESP32/examples/ResetReason/ResetReason.ino index 608edde31e0..2ccf7107d03 100644 --- a/libraries/ESP32/examples/ResetReason/ResetReason.ino +++ b/libraries/ESP32/examples/ResetReason/ResetReason.ino @@ -30,7 +30,7 @@ #define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */ -void print_reset_reason(RESET_REASON reason) +void print_reset_reason(int reason) { switch ( reason) { @@ -53,7 +53,7 @@ void print_reset_reason(RESET_REASON reason) } } -void verbose_print_reset_reason(RESET_REASON reason) +void verbose_print_reset_reason(int reason) { switch ( reason) { From 5f2f2e9378c2ed31a69320a4f396b15b8b6d04b7 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 13:29:31 +0200 Subject: [PATCH 18/32] Removed unused variable from TouchButtonV2 example --- libraries/ESP32/examples/Touch/TouchButtonV2/TouchButtonV2.ino | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/ESP32/examples/Touch/TouchButtonV2/TouchButtonV2.ino b/libraries/ESP32/examples/Touch/TouchButtonV2/TouchButtonV2.ino index 640fd2d3b59..9c489c2597c 100644 --- a/libraries/ESP32/examples/Touch/TouchButtonV2/TouchButtonV2.ino +++ b/libraries/ESP32/examples/Touch/TouchButtonV2/TouchButtonV2.ino @@ -30,8 +30,6 @@ void setup() { } void loop() { - static uint32_t count = 0; - if (touch1detected) { touch1detected = false; if (touchInterruptGetLastStatus(T1)) { From e228fb4a569de28810e6e159ad2441a2577236e1 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Fri, 22 Apr 2022 14:00:38 +0200 Subject: [PATCH 19/32] Wraped variables in #if; commented unused function --- .../Camera/CameraWebServer/app_httpd.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index 420d5251224..1724b277208 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -113,6 +113,7 @@ static ra_filter_t *ra_filter_init(ra_filter_t *filter, size_t sample_size) return filter; } +/* unused function triggers error static int ra_filter_run(ra_filter_t *filter, int value) { if (!filter->values) @@ -130,6 +131,7 @@ static int ra_filter_run(ra_filter_t *filter, int value) } return filter->sum / filter->count; } +*/ #if CONFIG_ESP_FACE_DETECT_ENABLED #if CONFIG_ESP_FACE_RECOGNITION_ENABLED @@ -290,7 +292,9 @@ static esp_err_t bmp_handler(httpd_req_t *req) { camera_fb_t *fb = NULL; esp_err_t res = ESP_OK; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint64_t fr_start = esp_timer_get_time(); +#endif fb = esp_camera_fb_get(); if (!fb) { @@ -319,7 +323,9 @@ static esp_err_t bmp_handler(httpd_req_t *req) } res = httpd_resp_send(req, (const char *)buf, buf_len); free(buf); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint64_t fr_end = esp_timer_get_time(); +#endif ESP_LOGI(TAG, "BMP: %llums, %uB", (uint64_t)((fr_end - fr_start) / 1000), buf_len); return res; } @@ -343,7 +349,9 @@ static esp_err_t capture_handler(httpd_req_t *req) { camera_fb_t *fb = NULL; esp_err_t res = ESP_OK; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_start = esp_timer_get_time(); +#endif #ifdef CONFIG_LED_ILLUMINATOR_ENABLED enable_led(true); @@ -378,10 +386,14 @@ static esp_err_t capture_handler(httpd_req_t *req) if (!detection_enabled || fb->width > 400) { #endif +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO size_t fb_len = 0; +#endif if (fb->format == PIXFORMAT_JPEG) { +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fb_len = fb->len; +#endif res = httpd_resp_send(req, (const char *)fb->buf, fb->len); } else @@ -389,10 +401,14 @@ static esp_err_t capture_handler(httpd_req_t *req) jpg_chunking_t jchunk = {req, 0}; res = frame2jpg_cb(fb, 80, jpg_encode_stream, &jchunk) ? ESP_OK : ESP_FAIL; httpd_resp_send_chunk(req, NULL, 0); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fb_len = jchunk.len; +#endif } esp_camera_fb_return(fb); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_end = esp_timer_get_time(); +#endif ESP_LOGI(TAG, "JPG: %uB %ums", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start) / 1000)); return res; #if CONFIG_ESP_FACE_DETECT_ENABLED @@ -570,7 +586,9 @@ static esp_err_t stream_handler(httpd_req_t *req) { if (net_boxes) { +#if CONFIG_ESP_FACE_DETECT_ENABLED detected = true; +#endif #if CONFIG_ESP_FACE_RECOGNITION_ENABLED if (recognition_enabled) { @@ -645,7 +663,9 @@ static esp_err_t stream_handler(httpd_req_t *req) int64_t frame_time = fr_end - last_frame; last_frame = fr_end; frame_time /= 1000; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint32_t avg_frame_time = ra_filter_run(&ra_filter, frame_time); +#endif ESP_LOGI(TAG, "MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)" #if CONFIG_ESP_FACE_DETECT_ENABLED ", %u+%u+%u+%u=%u %s%d" From 8808b9dc0387fb659379cf0e5863eb4e88e4b431 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 13:39:14 +0200 Subject: [PATCH 20/32] Wraped variables in #if; commented unused function --- .../Camera/CameraWebServer/app_httpd.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index fb3978846a7..635f7036a4a 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -148,6 +148,7 @@ static ra_filter_t *ra_filter_init(ra_filter_t *filter, size_t sample_size) return filter; } +/* unused function triggers error static int ra_filter_run(ra_filter_t *filter, int value) { if (!filter->values) @@ -165,6 +166,7 @@ static int ra_filter_run(ra_filter_t *filter, int value) } return filter->sum / filter->count; } +*/ #if CONFIG_ESP_FACE_DETECT_ENABLED #if CONFIG_ESP_FACE_RECOGNITION_ENABLED @@ -294,7 +296,9 @@ static esp_err_t bmp_handler(httpd_req_t *req) { camera_fb_t *fb = NULL; esp_err_t res = ESP_OK; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint64_t fr_start = esp_timer_get_time(); +#endif fb = esp_camera_fb_get(); if (!fb) { @@ -323,7 +327,9 @@ static esp_err_t bmp_handler(httpd_req_t *req) } res = httpd_resp_send(req, (const char *)buf, buf_len); free(buf); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint64_t fr_end = esp_timer_get_time(); +#endif ESP_LOGI(TAG, "BMP: %llums, %uB", (uint64_t)((fr_end - fr_start) / 1000), buf_len); return res; } @@ -347,7 +353,9 @@ static esp_err_t capture_handler(httpd_req_t *req) { camera_fb_t *fb = NULL; esp_err_t res = ESP_OK; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_start = esp_timer_get_time(); +#endif #ifdef CONFIG_LED_ILLUMINATOR_ENABLED enable_led(true); @@ -382,10 +390,14 @@ static esp_err_t capture_handler(httpd_req_t *req) if (!detection_enabled || fb->width > 400) { #endif +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO size_t fb_len = 0; +#endif if (fb->format == PIXFORMAT_JPEG) { +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fb_len = fb->len; +#endif res = httpd_resp_send(req, (const char *)fb->buf, fb->len); } else @@ -393,10 +405,14 @@ static esp_err_t capture_handler(httpd_req_t *req) jpg_chunking_t jchunk = {req, 0}; res = frame2jpg_cb(fb, 80, jpg_encode_stream, &jchunk) ? ESP_OK : ESP_FAIL; httpd_resp_send_chunk(req, NULL, 0); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fb_len = jchunk.len; +#endif } esp_camera_fb_return(fb); +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_end = esp_timer_get_time(); +#endif ESP_LOGI(TAG, "JPG: %uB %ums", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start) / 1000)); return res; #if CONFIG_ESP_FACE_DETECT_ENABLED @@ -721,7 +737,9 @@ static esp_err_t stream_handler(httpd_req_t *req) int64_t frame_time = fr_end - last_frame; last_frame = fr_end; frame_time /= 1000; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint32_t avg_frame_time = ra_filter_run(&ra_filter, frame_time); +#endif ESP_LOGI(TAG, "MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)" #if CONFIG_ESP_FACE_DETECT_ENABLED ", %u+%u+%u+%u=%u %s%d" From c7155cf2642694029762fcb552c539ca0c517e56 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 14:13:08 +0200 Subject: [PATCH 21/32] Fixed issues detected as warnings but treated as errors by CI --- .../Camera/CameraWebServer/app_httpd.cpp | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index 635f7036a4a..f150d1601d5 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -441,7 +441,9 @@ static esp_err_t capture_handler(httpd_req_t *req) rfb.data = fb->buf; rfb.bytes_per_pixel = 2; rfb.format = FB_RGB565; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO detected = true; +#endif draw_face_boxes(&rfb, &results, face_id); } s = fmt2jpg_cb(fb->buf, fb->len, fb->width, fb->height, PIXFORMAT_RGB565, 90, jpg_encode_stream, &jchunk); @@ -484,7 +486,9 @@ static esp_err_t capture_handler(httpd_req_t *req) #endif if (results.size() > 0) { +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO detected = true; +#endif #if CONFIG_ESP_FACE_RECOGNITION_ENABLED if (recognition_enabled) { face_id = run_face_recognition(&rfb, &results); @@ -502,8 +506,9 @@ static esp_err_t capture_handler(httpd_req_t *req) httpd_resp_send_500(req); return ESP_FAIL; } - +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_end = esp_timer_get_time(); +#endif ESP_LOGI(TAG, "FACE: %uB %ums %s%d", (uint32_t)(jchunk.len), (uint32_t)((fr_end - fr_start) / 1000), detected ? "DETECTED " : "", face_id); return res; #endif @@ -518,7 +523,9 @@ static esp_err_t stream_handler(httpd_req_t *req) uint8_t *_jpg_buf = NULL; char *part_buf[128]; #if CONFIG_ESP_FACE_DETECT_ENABLED - bool detected = false; + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO + bool detected = false; + #endif int face_id = 0; int64_t fr_start = 0; int64_t fr_ready = 0; @@ -560,7 +567,9 @@ static esp_err_t stream_handler(httpd_req_t *req) while (true) { #if CONFIG_ESP_FACE_DETECT_ENABLED + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO detected = false; + #endif face_id = 0; #endif @@ -624,7 +633,9 @@ static esp_err_t stream_handler(httpd_req_t *req) rfb.data = fb->buf; rfb.bytes_per_pixel = 2; rfb.format = FB_RGB565; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO detected = true; +#endif draw_face_boxes(&rfb, &results, face_id); } s = fmt2jpg(fb->buf, fb->len, fb->width, fb->height, PIXFORMAT_RGB565, 80, &_jpg_buf, &_jpg_buf_len); @@ -673,7 +684,9 @@ static esp_err_t stream_handler(httpd_req_t *req) fr_recognize = fr_face; if (results.size() > 0) { +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO detected = true; +#endif #if CONFIG_ESP_FACE_RECOGNITION_ENABLED if (recognition_enabled) { face_id = run_face_recognition(&rfb, &results); @@ -726,7 +739,7 @@ static esp_err_t stream_handler(httpd_req_t *req) } int64_t fr_end = esp_timer_get_time(); -#if CONFIG_ESP_FACE_DETECT_ENABLED +#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t ready_time = (fr_ready - fr_start) / 1000; int64_t face_time = (fr_face - fr_ready) / 1000; int64_t recognize_time = (fr_recognize - fr_face) / 1000; @@ -735,7 +748,6 @@ static esp_err_t stream_handler(httpd_req_t *req) #endif int64_t frame_time = fr_end - last_frame; - last_frame = fr_end; frame_time /= 1000; #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint32_t avg_frame_time = ra_filter_run(&ra_filter, frame_time); @@ -761,7 +773,6 @@ static esp_err_t stream_handler(httpd_req_t *req) enable_led(false); #endif - last_frame = 0; return res; } From f3c39a6f3d6d9210f17795569001f8d8e83a007e Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 14:23:38 +0200 Subject: [PATCH 22/32] Added empty default statement in switch --- libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino b/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino index 55012e413c6..2efec0fc9b2 100644 --- a/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino +++ b/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino @@ -31,6 +31,7 @@ void sysProvEvent(arduino_event_t *sys_event) printQR(service_name, pop, "softap"); #endif break; + default; } } From 821ee3386b241610539d34949903af0022ff948e Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 14:32:35 +0200 Subject: [PATCH 23/32] Wrapped conditionally used variables --- .../examples/Camera/CameraWebServer/app_httpd.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index f150d1601d5..c07915e95a1 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -385,7 +385,9 @@ static esp_err_t capture_handler(httpd_req_t *req) size_t out_len, out_width, out_height; uint8_t *out_buf; bool s; +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO bool detected = false; +#endif int face_id = 0; if (!detection_enabled || fb->width > 400) { @@ -525,10 +527,10 @@ static esp_err_t stream_handler(httpd_req_t *req) #if CONFIG_ESP_FACE_DETECT_ENABLED #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO bool detected = false; + int64_t fr_ready = 0; #endif int face_id = 0; int64_t fr_start = 0; - int64_t fr_ready = 0; int64_t fr_face = 0; int64_t fr_recognize = 0; int64_t fr_encode = 0; @@ -585,7 +587,9 @@ static esp_err_t stream_handler(httpd_req_t *req) _timestamp.tv_usec = fb->timestamp.tv_usec; #if CONFIG_ESP_FACE_DETECT_ENABLED fr_start = esp_timer_get_time(); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_ready = fr_start; + #endif fr_face = fr_start; fr_encode = fr_start; fr_recognize = fr_start; @@ -617,7 +621,9 @@ static esp_err_t stream_handler(httpd_req_t *req) && !recognition_enabled #endif ){ +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_ready = esp_timer_get_time(); +#endif #if TWO_STAGE std::list &candidates = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); std::list &results = s2.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}, candidates); @@ -664,7 +670,9 @@ static esp_err_t stream_handler(httpd_req_t *req) ESP_LOGE(TAG, "to rgb888 failed"); res = ESP_FAIL; } else { +#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_ready = esp_timer_get_time(); +#endif fb_data_t rfb; rfb.width = out_width; From a156a4777d5a8f104818976d6eae344760ad5672 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 14:48:12 +0200 Subject: [PATCH 24/32] More wrapping of conditionally used variables --- .../Camera/CameraWebServer/app_httpd.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index c07915e95a1..8c6e7c5d0ce 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -528,13 +528,12 @@ static esp_err_t stream_handler(httpd_req_t *req) #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO bool detected = false; int64_t fr_ready = 0; + int64_t fr_recognize = 0; + int64_t fr_encode = 0; #endif int face_id = 0; int64_t fr_start = 0; int64_t fr_face = 0; - int64_t fr_recognize = 0; - int64_t fr_encode = 0; - size_t out_len = 0, out_width = 0, out_height = 0; uint8_t *out_buf = NULL; bool s = false; @@ -589,10 +588,10 @@ static esp_err_t stream_handler(httpd_req_t *req) fr_start = esp_timer_get_time(); #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_ready = fr_start; - #endif - fr_face = fr_start; fr_encode = fr_start; fr_recognize = fr_start; + #endif + fr_face = fr_start; if (!detection_enabled || fb->width > 400) { #endif @@ -631,7 +630,9 @@ static esp_err_t stream_handler(httpd_req_t *req) std::list &results = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); #endif fr_face = esp_timer_get_time(); +#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_recognize = fr_face; +#endif if (results.size() > 0) { fb_data_t rfb; rfb.width = fb->width; @@ -651,7 +652,9 @@ static esp_err_t stream_handler(httpd_req_t *req) ESP_LOGE(TAG, "fmt2jpg failed"); res = ESP_FAIL; } +#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_encode = esp_timer_get_time(); +#endif } else { out_len = fb->width * fb->height * 3; @@ -689,7 +692,9 @@ static esp_err_t stream_handler(httpd_req_t *req) #endif fr_face = esp_timer_get_time(); +#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_recognize = fr_face; +#endif if (results.size() > 0) { #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO @@ -698,7 +703,9 @@ static esp_err_t stream_handler(httpd_req_t *req) #if CONFIG_ESP_FACE_RECOGNITION_ENABLED if (recognition_enabled) { face_id = run_face_recognition(&rfb, &results); + #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_recognize = esp_timer_get_time(); + #endif } #endif draw_face_boxes(&rfb, &results, face_id); @@ -709,7 +716,9 @@ static esp_err_t stream_handler(httpd_req_t *req) ESP_LOGE(TAG, "fmt2jpg failed"); res = ESP_FAIL; } +#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO fr_encode = esp_timer_get_time(); +#endif } } } From c04e00de36ee363eca64902dabd255a18eec6d71 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Mon, 25 Apr 2022 15:04:22 +0200 Subject: [PATCH 25/32] Added forgotten colon after default statement --- libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino b/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino index 2efec0fc9b2..1d17959aa45 100644 --- a/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino +++ b/libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino @@ -31,7 +31,7 @@ void sysProvEvent(arduino_event_t *sys_event) printQR(service_name, pop, "softap"); #endif break; - default; + default:; } } From a6ae2b8dab323ba188956633ecb6b18fbd9323db Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Tue, 26 Apr 2022 11:48:05 +0200 Subject: [PATCH 26/32] Fixed RainMaker --- CMakeLists.txt | 2 ++ libraries/RainMaker/src/RMakerQR.cpp | 21 +++++++++++++++++++++ libraries/RainMaker/src/RMakerQR.h | 16 ++-------------- libraries/RainMaker/src/RMakerUtils.cpp | 12 ++++++++++++ libraries/RainMaker/src/RMakerUtils.h | 12 +++--------- 5 files changed, 40 insertions(+), 23 deletions(-) create mode 100644 libraries/RainMaker/src/RMakerQR.cpp create mode 100644 libraries/RainMaker/src/RMakerUtils.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b0300fc743..8eb8f4e45ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,6 +95,8 @@ set(LIBRARY_SRCS libraries/RainMaker/src/RMakerParam.cpp libraries/RainMaker/src/RMakerDevice.cpp libraries/RainMaker/src/RMakerType.cpp + libraries/RainMaker/src/RMakerQR.cpp + libraries/RainMaker/src/RMakerUtils.cpp libraries/SD_MMC/src/SD_MMC.cpp libraries/SD/src/SD.cpp libraries/SD/src/sd_diskio.cpp diff --git a/libraries/RainMaker/src/RMakerQR.cpp b/libraries/RainMaker/src/RMakerQR.cpp new file mode 100644 index 00000000000..7f94f70383f --- /dev/null +++ b/libraries/RainMaker/src/RMakerQR.cpp @@ -0,0 +1,21 @@ +#include "RMakerQR.h" +#ifdef CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK +void printQR(const char *name, const char *pop, const char *transport) +{ + if (!name || !pop || !transport) { + log_w("Cannot generate QR code payload. Data missing."); + return; + } + char payload[150]; + snprintf(payload, sizeof(payload), "{\"ver\":\"%s\",\"name\":\"%s\"" \ + ",\"pop\":\"%s\",\"transport\":\"%s\"}", + PROV_QR_VERSION, name, pop, transport); + if(Serial){ + Serial.printf("Scan this QR code from the ESP RainMaker phone app.\n"); + } + qrcode_display(payload); + if(Serial){ + Serial.printf("If QR code is not visible, copy paste the below URL in a browser.\n%s?data=%s\n", QRCODE_BASE_URL, payload); + } +} +#endif \ No newline at end of file diff --git a/libraries/RainMaker/src/RMakerQR.h b/libraries/RainMaker/src/RMakerQR.h index 7b666557fcd..cb282a2e9d4 100644 --- a/libraries/RainMaker/src/RMakerQR.h +++ b/libraries/RainMaker/src/RMakerQR.h @@ -14,24 +14,12 @@ #pragma once #include "sdkconfig.h" #ifdef CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK +#include "RMaker.h" #include "esp_system.h" #include #define PROV_QR_VERSION "v1" #define QRCODE_BASE_URL "https://rainmaker.espressif.com/qrcode.html" -static void printQR(const char *name, const char *pop, const char *transport) -{ - if (!name || !pop || !transport) { - log_w("Cannot generate QR code payload. Data missing."); - return; - } - char payload[150]; - snprintf(payload, sizeof(payload), "{\"ver\":\"%s\",\"name\":\"%s\"" \ - ",\"pop\":\"%s\",\"transport\":\"%s\"}", - PROV_QR_VERSION, name, pop, transport); - Serial.printf("Scan this QR code from the ESP RainMaker phone app.\n"); - qrcode_display(payload); - Serial.printf("If QR code is not visible, copy paste the below URL in a browser.\n%s?data=%s\n", QRCODE_BASE_URL, payload); -} +void printQR(const char *name, const char *pop, const char *transport); #endif \ No newline at end of file diff --git a/libraries/RainMaker/src/RMakerUtils.cpp b/libraries/RainMaker/src/RMakerUtils.cpp new file mode 100644 index 00000000000..1d800b72df8 --- /dev/null +++ b/libraries/RainMaker/src/RMakerUtils.cpp @@ -0,0 +1,12 @@ +#include "RMakerUtils.h" +#ifdef CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK +void RMakerFactoryReset(int seconds) +{ + esp_rmaker_factory_reset(0, seconds); +} + +void RMakerWiFiReset(int seconds) +{ + esp_rmaker_wifi_reset(0, seconds); +} +#endif \ No newline at end of file diff --git a/libraries/RainMaker/src/RMakerUtils.h b/libraries/RainMaker/src/RMakerUtils.h index 710b0e9a8a4..17b7533d6be 100644 --- a/libraries/RainMaker/src/RMakerUtils.h +++ b/libraries/RainMaker/src/RMakerUtils.h @@ -14,16 +14,10 @@ #pragma once #include "sdkconfig.h" #ifdef CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK +#include "RMaker.h" #include "esp_system.h" #include -static void RMakerFactoryReset(int seconds) -{ - esp_rmaker_factory_reset(0, seconds); -} - -static void RMakerWiFiReset(int seconds) -{ - esp_rmaker_wifi_reset(0, seconds); -} +void RMakerFactoryReset(int seconds); +void RMakerWiFiReset(int seconds); #endif \ No newline at end of file From a2315bfb7e082278ebc3df9058952fe890e8e4df Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Tue, 26 Apr 2022 14:50:07 +0200 Subject: [PATCH 27/32] Conditional variable fix --- .../ESP32/examples/Camera/CameraWebServer/app_httpd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index 8c6e7c5d0ce..a4dcb507445 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -530,10 +530,10 @@ static esp_err_t stream_handler(httpd_req_t *req) int64_t fr_ready = 0; int64_t fr_recognize = 0; int64_t fr_encode = 0; + int64_t fr_face = 0; #endif int face_id = 0; int64_t fr_start = 0; - int64_t fr_face = 0; size_t out_len = 0, out_width = 0, out_height = 0; uint8_t *out_buf = NULL; bool s = false; @@ -590,8 +590,8 @@ static esp_err_t stream_handler(httpd_req_t *req) fr_ready = fr_start; fr_encode = fr_start; fr_recognize = fr_start; - #endif fr_face = fr_start; + #endif if (!detection_enabled || fb->width > 400) { #endif @@ -629,8 +629,8 @@ static esp_err_t stream_handler(httpd_req_t *req) #else std::list &results = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); #endif - fr_face = esp_timer_get_time(); #if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO + fr_face = esp_timer_get_time(); fr_recognize = fr_face; #endif if (results.size() > 0) { @@ -691,8 +691,8 @@ static esp_err_t stream_handler(httpd_req_t *req) std::list &results = s1.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}); #endif - fr_face = esp_timer_get_time(); #if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO + fr_face = esp_timer_get_time(); fr_recognize = fr_face; #endif From 85de1846f143beef662db69cd96f35880d04c5d2 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Tue, 26 Apr 2022 15:11:49 +0200 Subject: [PATCH 28/32] Conditional variable fix 2 --- libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index a4dcb507445..d0a0fd59432 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -531,9 +531,9 @@ static esp_err_t stream_handler(httpd_req_t *req) int64_t fr_recognize = 0; int64_t fr_encode = 0; int64_t fr_face = 0; + int64_t fr_start = 0; #endif int face_id = 0; - int64_t fr_start = 0; size_t out_len = 0, out_width = 0, out_height = 0; uint8_t *out_buf = NULL; bool s = false; @@ -585,8 +585,8 @@ static esp_err_t stream_handler(httpd_req_t *req) _timestamp.tv_sec = fb->timestamp.tv_sec; _timestamp.tv_usec = fb->timestamp.tv_usec; #if CONFIG_ESP_FACE_DETECT_ENABLED - fr_start = esp_timer_get_time(); #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO + fr_start = esp_timer_get_time(); fr_ready = fr_start; fr_encode = fr_start; fr_recognize = fr_start; From 59fb92fa3fae77885ececd74479b8f66d924145b Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Tue, 26 Apr 2022 15:25:48 +0200 Subject: [PATCH 29/32] Removed unused variable --- libraries/I2S/src/I2S.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/I2S/src/I2S.cpp b/libraries/I2S/src/I2S.cpp index 393052c136f..78dc5c202df 100644 --- a/libraries/I2S/src/I2S.cpp +++ b/libraries/I2S/src/I2S.cpp @@ -988,7 +988,6 @@ void I2SClass::_post_read_data_fix(void *input, size_t *size){ // bytes_written - number of bytes used from original buffer // actual_bytes_written - number of bytes written by i2s_write after fix void I2SClass::_fix_and_write(void *output, size_t size, size_t *bytes_written, size_t *actual_bytes_written){ - long start = millis(); ulong src_ptr = 0; uint8_t* buff = NULL; size_t buff_size = size; From d8865baebb5a1e442a6357c932522274b7b245b6 Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Tue, 26 Apr 2022 15:46:12 +0200 Subject: [PATCH 30/32] Added defaults in switches --- .../RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino | 1 + libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino | 1 + 2 files changed, 2 insertions(+) diff --git a/libraries/RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino b/libraries/RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino index 37eda40134b..b571f4f5dac 100644 --- a/libraries/RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino +++ b/libraries/RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino @@ -50,6 +50,7 @@ void sysProvEvent(arduino_event_t *sys_event) Serial.printf("\nConnected to Wi-Fi!\n"); digitalWrite(gpio_led, true); break; + default:; } } diff --git a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino index e486bd200fb..257f1d045c3 100644 --- a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino +++ b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino @@ -29,6 +29,7 @@ void sysProvEvent(arduino_event_t *sys_event) printQR(service_name, pop, "softap"); #endif break; + default:; } } From 552795fe3dbd391cc818c523578f4bf68619484b Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Wed, 4 May 2022 13:52:27 +0200 Subject: [PATCH 31/32] Added #if around variable used only by log_i --- libraries/BluetoothSerial/src/BluetoothSerial.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/BluetoothSerial/src/BluetoothSerial.cpp b/libraries/BluetoothSerial/src/BluetoothSerial.cpp index ea72f787ebf..09ef2aeb180 100644 --- a/libraries/BluetoothSerial/src/BluetoothSerial.cpp +++ b/libraries/BluetoothSerial/src/BluetoothSerial.cpp @@ -973,10 +973,12 @@ bool BluetoothSerial::connect(uint8_t remoteAddress[], int channel, esp_spp_sec_ log_i("master : remoteAddress"); xEventGroupClearBits(_spp_event_group, SPP_CLOSED); if (channel > 0) { +#if (ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO) char bda_str[18]; log_i("spp connect to remote %s channel %d", bda2str(_peer_bd_addr, bda_str, sizeof(bda_str)), channel); +#endif if(esp_spp_connect(sec_mask, role, channel, _peer_bd_addr) != ESP_OK ) { log_e("spp connect failed"); return false; From d68c66f2620dcda9c0f9f1d64aac5d66aed1d2cc Mon Sep 17 00:00:00 2001 From: Tomas Pilny Date: Wed, 4 May 2022 16:04:33 +0200 Subject: [PATCH 32/32] Commented unused functions --- libraries/Ethernet/src/ETH.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 86c804fd6e5..857b204a86c 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -57,24 +57,25 @@ extern void tcpipInit(); static eth_clock_mode_t eth_clock_mode = ETH_CLK_MODE; #if CONFIG_ETH_RMII_CLK_INPUT +/* static void emac_config_apll_clock(void) { - /* apll_freq = xtal_freq * (4 + sdm2 + sdm1/256 + sdm0/65536)/((o_div + 2) * 2) */ + // apll_freq = xtal_freq * (4 + sdm2 + sdm1/256 + sdm0/65536)/((o_div + 2) * 2) rtc_xtal_freq_t rtc_xtal_freq = rtc_clk_xtal_freq_get(); switch (rtc_xtal_freq) { case RTC_XTAL_FREQ_40M: // Recommended - /* 50 MHz = 40MHz * (4 + 6) / (2 * (2 + 2) = 50.000 */ - /* sdm0 = 0, sdm1 = 0, sdm2 = 6, o_div = 2 */ + // 50 MHz = 40MHz * (4 + 6) / (2 * (2 + 2) = 50.000 + // sdm0 = 0, sdm1 = 0, sdm2 = 6, o_div = 2 rtc_clk_apll_enable(true, 0, 0, 6, 2); break; case RTC_XTAL_FREQ_26M: - /* 50 MHz = 26MHz * (4 + 15 + 118 / 256 + 39/65536) / ((3 + 2) * 2) = 49.999992 */ - /* sdm0 = 39, sdm1 = 118, sdm2 = 15, o_div = 3 */ + // 50 MHz = 26MHz * (4 + 15 + 118 / 256 + 39/65536) / ((3 + 2) * 2) = 49.999992 + // sdm0 = 39, sdm1 = 118, sdm2 = 15, o_div = 3 rtc_clk_apll_enable(true, 39, 118, 15, 3); break; case RTC_XTAL_FREQ_24M: - /* 50 MHz = 24MHz * (4 + 12 + 255 / 256 + 255/65536) / ((2 + 2) * 2) = 49.499977 */ - /* sdm0 = 255, sdm1 = 255, sdm2 = 12, o_div = 2 */ + // 50 MHz = 24MHz * (4 + 12 + 255 / 256 + 255/65536) / ((2 + 2) * 2) = 49.499977 + // sdm0 = 255, sdm1 = 255, sdm2 = 12, o_div = 2 rtc_clk_apll_enable(true, 255, 255, 12, 2); break; default: // Assume we have a 40M xtal @@ -82,8 +83,10 @@ static void emac_config_apll_clock(void) break; } } +*/ #endif +/* static esp_err_t on_lowlevel_init_done(esp_eth_handle_t eth_handle){ #if CONFIG_IDF_TARGET_ESP32 if(eth_clock_mode > ETH_CLOCK_GPIO17_OUT){ @@ -168,7 +171,7 @@ static esp_err_t on_lowlevel_init_done(esp_eth_handle_t eth_handle){ #endif return ESP_OK; } - +*/ /**