From 77a59eb45a2b7355dd9e2d21abd34d44212d46d2 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 19 Feb 2023 15:46:55 +0200 Subject: [PATCH 1/3] moved to idf5 --- CMakeLists.txt | 7 +++++-- include/NetTransport.h | 7 ++++--- include/romfs.h | 2 +- src/HTTPPrintSystem.c | 6 ++++-- src/HTTPServer.c | 2 ++ src/MQTT.c | 18 +++++++++++++----- src/MQTTSysHandler.c | 1 + src/OTA.c | 3 +++ src/WebGUIAppMain.c | 4 ++-- src/WiFiTransport.c | 1 + src/romfs.c | 2 ++ 11 files changed, 38 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e0d58de..2ee29d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ idf_component_register( "src/MQTT.c" "src/MQTTSysHandler.c" "src/OTA.c" - "src/mDNS.c" +# "src/mDNS.c" INCLUDE_DIRS "." "include" @@ -55,7 +55,10 @@ idf_component_register( mqtt esp_https_ota app_update - mdns +# mdns + esp_wifi + esp_http_server + esp_eth EMBED_FILES "upload_script.html" EMBED_TXTFILES ca_cert.pem diff --git a/include/NetTransport.h b/include/NetTransport.h index 38f4b2f..e736e51 100644 --- a/include/NetTransport.h +++ b/include/NetTransport.h @@ -30,6 +30,7 @@ #include "mqtt_client.h" #include "esp_netif.h" #include "esp_log.h" +#include "esp_wifi_types.h" typedef struct { @@ -46,9 +47,9 @@ typedef struct //#define DEFAULT_FALLBACK_DNS "8.8.8.8" -QueueHandle_t MQTT1MessagesQueueHandle; -QueueHandle_t MQTT2MessagesQueueHandle; -EventGroupHandle_t transport_event_group; +//QueueHandle_t MQTT1MessagesQueueHandle; +//QueueHandle_t MQTT2MessagesQueueHandle; +//EventGroupHandle_t transport_event_group; wifi_ap_record_t* GetWiFiAPRecord(uint8_t n); diff --git a/include/romfs.h b/include/romfs.h index 2374ac5..81fb98b 100644 --- a/include/romfs.h +++ b/include/romfs.h @@ -28,7 +28,7 @@ #include "libespfs/espfs_format.h" #include "libespfs/vfs.h" -espfs_fs_t *fs; + void init_rom_fs(const char *root); #endif /* COMPONENTS_WEB_GUI_APPLICATION_INCLUDE_ROMFS_H_ */ diff --git a/src/HTTPPrintSystem.c b/src/HTTPPrintSystem.c index d62da8f..d3a46fa 100644 --- a/src/HTTPPrintSystem.c +++ b/src/HTTPPrintSystem.c @@ -33,6 +33,8 @@ static const char *TAG = "HTTPServerPrint"; +extern espfs_fs_t *fs; + typedef enum { IP, @@ -122,11 +124,11 @@ static void HTTPPrint_time(char *VarData, void *arg) { time_t now; time(&now); - snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", (uint32_t) now); + snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", (int) now); } static void HTTPPrint_uptime(char *VarData, void *arg) { - snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", GetUpTime()); + snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", (int)GetUpTime()); } static void HTTPPrint_status_fail(char *VarData, void *arg) diff --git a/src/HTTPServer.c b/src/HTTPServer.c index aaf8c8b..80bc246 100644 --- a/src/HTTPServer.c +++ b/src/HTTPServer.c @@ -24,6 +24,8 @@ #include "HTTPServer.h" #include "sdkconfig.h" +extern espfs_fs_t *fs; + const char GZIP_SIGN[] = { 0x1f, 0x8b, 0x08 }; static esp_err_t GETHandler(httpd_req_t *req); diff --git a/src/MQTT.c b/src/MQTT.c index 7fdf8fa..6193ae3 100644 --- a/src/MQTT.c +++ b/src/MQTT.c @@ -24,6 +24,7 @@ #include "NetTransport.h" #include "MQTT.h" + #define MQTT_DEBUG_MODE 1 #define MQTT_MESSAGE_BUFER_LENTH 5 //size of mqtt queue @@ -31,6 +32,9 @@ #if CONFIG_WEBGUIAPP_MQTT_ENABLE +QueueHandle_t MQTT1MessagesQueueHandle; +QueueHandle_t MQTT2MessagesQueueHandle; + static SemaphoreHandle_t xSemaphoreMQTTHandle = NULL; static StaticSemaphore_t xSemaphoreMQTTBuf; static StaticQueue_t xStaticMQTT1MessagesQueue; @@ -105,7 +109,7 @@ static void mqtt_system_event_handler(int idx, void *handler_args, esp_event_bas { xSemaphoreTake(xSemaphoreMQTTHandle, pdMS_TO_TICKS(1000)); #if MQTT_DEBUG_MODE > 0 - ESP_LOGI(TAG, "Event dispatched from event loop base=%s, event_id=%d", base, event_id); + ESP_LOGI(TAG, "Event dispatched from event loop base=%s, event_id=%d", base, (int)event_id); #endif esp_mqtt_event_handle_t event = event_data; esp_mqtt_client_handle_t client = event->client; @@ -284,13 +288,17 @@ static void start_mqtt() itoa(GetSysConf()->mqttStation[i].ServerPort, tmp, 10); strcat(url, ":"); strcat(url, tmp); - mqtt_cfg.uri = url; - mqtt_cfg.username = GetSysConf()->mqttStation[i].UserName; - mqtt_cfg.password = GetSysConf()->mqttStation[i].UserPass; + //mqtt_cfg.uri = url; + mqtt_cfg.broker.address.uri = url; + //mqtt_cfg.username = GetSysConf()->mqttStation[i].UserName; + mqtt_cfg.credentials.username = GetSysConf()->mqttStation[i].UserName; + //mqtt_cfg.password = GetSysConf()->mqttStation[i].UserPass; + mqtt_cfg.credentials.authentication.password = GetSysConf()->mqttStation[i].UserPass; strcpy(tmp, GetSysConf()->mqttStation[i].ClientID); strcat(tmp, "-"); strcat(tmp, GetSysConf()->ID); - mqtt_cfg.client_id = tmp; + //mqtt_cfg.client_id = tmp; + mqtt_cfg.credentials.client_id = tmp; mqtt[i].is_connected = false; mqtt[i].mqtt_index = i; //mqtt_cfg.user_context = (void*) &mqtt[i]; diff --git a/src/MQTTSysHandler.c b/src/MQTTSysHandler.c index 4089162..5e8ce89 100644 --- a/src/MQTTSysHandler.c +++ b/src/MQTTSysHandler.c @@ -51,6 +51,7 @@ #include "romfs.h" #include "HTTPServer.h" +extern espfs_fs_t *fs; #define PANEL_MESSAGE_LENGTH 32 //base message length, mainly depended by radio requirements #define MAX_JSON_MESSAGE 256 //max size of mqtt message to publish diff --git a/src/OTA.c b/src/OTA.c index 1235589..dd1fdbc 100644 --- a/src/OTA.c +++ b/src/OTA.c @@ -73,6 +73,9 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) case HTTP_EVENT_DISCONNECTED: ESP_LOGD(TAG, "HTTP_EVENT_DISCONNECTED"); break; + case HTTP_EVENT_REDIRECT: + ESP_LOGD(TAG, "HTTP_EVENT_REDIRECT"); + break; } return ESP_OK; } diff --git a/src/WebGUIAppMain.c b/src/WebGUIAppMain.c index 23b7a9f..a2087c1 100644 --- a/src/WebGUIAppMain.c +++ b/src/WebGUIAppMain.c @@ -173,7 +173,7 @@ esp_err_t WebGuiAppInit(void) static void InitSysIO(void) { #if (MAIN_FUNCTIONAL_BUTTON_GPIO >= 0) - gpio_pad_select_gpio(MAIN_FUNCTIONAL_BUTTON_GPIO); + esp_rom_gpio_pad_select_gpio(MAIN_FUNCTIONAL_BUTTON_GPIO); gpio_set_direction(MAIN_FUNCTIONAL_BUTTON_GPIO, GPIO_MODE_INPUT); gpio_set_pull_mode(MAIN_FUNCTIONAL_BUTTON_GPIO, GPIO_PULLUP_ONLY); gpio_pullup_en(MAIN_FUNCTIONAL_BUTTON_GPIO); @@ -241,7 +241,7 @@ static void ResetSysConfig(SYS_CONFIG *Conf) UINT32_VAL d; GetChipId((uint8_t*) d.v); - snprintf(Conf->SN, 11, "%010u", swap(d.Val)); + snprintf(Conf->SN, 11, "%010d", (int)swap(d.Val)); memcpy(Conf->NetBIOSName, CONFIG_WEBGUIAPP_HOSTNAME, sizeof(CONFIG_WEBGUIAPP_HOSTNAME)); diff --git a/src/WiFiTransport.c b/src/WiFiTransport.c index cb211ab..cebebda 100644 --- a/src/WiFiTransport.c +++ b/src/WiFiTransport.c @@ -32,6 +32,7 @@ #include "NetTransport.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" +#include "esp_mac.h" esp_netif_t *sta_netif; esp_netif_t *ap_netif; diff --git a/src/romfs.c b/src/romfs.c index 76c75f3..8c53e43 100644 --- a/src/romfs.c +++ b/src/romfs.c @@ -23,6 +23,8 @@ #include "romfs.h" +espfs_fs_t *fs; + extern const uint8_t espfs_bin[]; espfs_fs_t *fs; espfs_config_t espfs_config = { From 3db70720885c0dced4b43bf8a28bcd68436d6799 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 20 Feb 2023 19:17:23 +0200 Subject: [PATCH 2/3] i2c default GPIOs set separately for esp32 and esp32S3 chips --- Kconfig | 54 ++++++++++++++++++++++++++++-------------------- extlibs/libespfs | 2 +- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/Kconfig b/Kconfig index 9baaa32..f3f2c7f 100644 --- a/Kconfig +++ b/Kconfig @@ -1,4 +1,18 @@ menu "WebGUIApp" + + + config GPIO_RANGE_MIN + int + default 0 + + config GPIO_RANGE_MAX + int + default 36 if IDF_TARGET_ESP32 + default 46 if IDF_TARGET_ESP32S2 + default 19 if IDF_TARGET_ESP32C3 + default 48 if IDF_TARGET_ESP32S3 + + config APP_PROJECT_VER string "Device firmware version" default "0.0.0.0000" @@ -101,7 +115,9 @@ menu "WebGUIApp" Set enabled SPI bus if WEBGUIAPP_SPI_ENABLE - + + + config SPI_HOST int "SPI Host Number" range 0 2 @@ -111,22 +127,25 @@ menu "WebGUIApp" config SPI_SCLK_GPIO int "SPI SCLK GPIO number" - range 0 33 - default 18 + range GPIO_RANGE_MIN GPIO_RANGE_MAX + default 18 if IDF_TARGET_ESP32 + default 36 if IDF_TARGET_ESP32S3 help Set the GPIO number used by SPI SCLK. config SPI_MOSI_GPIO int "SPI MOSI GPIO number" - range 0 33 - default 23 + range GPIO_RANGE_MIN GPIO_RANGE_MAX + default 23 if IDF_TARGET_ESP32 + default 35 if IDF_TARGET_ESP32S3 help Set the GPIO number used by SPI MOSI. config SPI_MISO_GPIO int "SPI MISO GPIO number" - range 0 33 - default 19 + range GPIO_RANGE_MIN GPIO_RANGE_MAX + default 19 if IDF_TARGET_ESP32 + default 37 if IDF_TARGET_ESP32S3 help Set the GPIO number used by SPI MISO. @@ -151,13 +170,15 @@ menu "WebGUIApp" config I2C_SCL_GPIO int "I2C SCL GPIO number" - range 0 34 - default 22 + range GPIO_RANGE_MIN GPIO_RANGE_MAX + default 22 if IDF_TARGET_ESP32 + default 15 if IDF_TARGET_ESP32S3 config I2C_SDA_GPIO int "I2C SDA GPIO number" - range 0 34 - default 21 + range GPIO_RANGE_MIN GPIO_RANGE_MAX + default 21 if IDF_TARGET_ESP32 + default 16 if IDF_TARGET_ESP32S3 config I2C_CLOCK int "I2C clock" @@ -260,17 +281,6 @@ menu "WebGUIApp" config WEBGUIAPP_ETHERNET_DHCP_DEFAULT bool "Default Ethernet DHCP client on" default n - - config GPIO_RANGE_MIN - int - default 0 - - config GPIO_RANGE_MAX - int - default 36 if IDF_TARGET_ESP32 - default 46 if IDF_TARGET_ESP32S2 - default 19 if IDF_TARGET_ESP32C3 - default 48 if IDF_TARGET_ESP32S3 config USE_INTERNAL_ETHERNET depends on IDF_TARGET_ESP32 diff --git a/extlibs/libespfs b/extlibs/libespfs index a646e3e..5342a39 160000 --- a/extlibs/libespfs +++ b/extlibs/libespfs @@ -1 +1 @@ -Subproject commit a646e3ee0594ec2301e9b3fe6373ea274eb39e39 +Subproject commit 5342a39a179a4dddede680615bf4694755d2a59d From 999045ebd7aaace36b9ee5d518aa96aab0408793 Mon Sep 17 00:00:00 2001 From: Bogdan Pilyugin Date: Thu, 9 Mar 2023 15:24:12 +0200 Subject: [PATCH 3/3] fix serial number cuculation --- extlibs/libespfs | 2 +- src/WebGUIAppMain.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extlibs/libespfs b/extlibs/libespfs index 5342a39..03ff681 160000 --- a/extlibs/libespfs +++ b/extlibs/libespfs @@ -1 +1 @@ -Subproject commit 5342a39a179a4dddede680615bf4694755d2a59d +Subproject commit 03ff681a61cb03a43c6f008601a6e6090e9df2bd diff --git a/src/WebGUIAppMain.c b/src/WebGUIAppMain.c index a2087c1..855a39e 100644 --- a/src/WebGUIAppMain.c +++ b/src/WebGUIAppMain.c @@ -241,7 +241,7 @@ static void ResetSysConfig(SYS_CONFIG *Conf) UINT32_VAL d; GetChipId((uint8_t*) d.v); - snprintf(Conf->SN, 11, "%010d", (int)swap(d.Val)); + snprintf(Conf->SN, 11, "%010u", (unsigned int)swap(d.Val)); memcpy(Conf->NetBIOSName, CONFIG_WEBGUIAPP_HOSTNAME, sizeof(CONFIG_WEBGUIAPP_HOSTNAME));