From 9f9ff956c90c7e52a9938c92958257622685a891 Mon Sep 17 00:00:00 2001 From: marc Date: Thu, 24 Apr 2025 07:46:46 +0200 Subject: [PATCH 1/6] conditional_comps --- main/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 39c1c1e..f7f29e5 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,8 +1,14 @@ set(EXTRA_COMPONENT_DIRS ../components) +set(comps heap nvs_flash meteofrance communication esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota ) + +if(${IDF_TARGET} STREQUAL "esp32p4") + list(APPEND comps bsp_extra esp32_p4_function_ev_board) +endif() + idf_component_register(SRC_DIRS . fonts INCLUDE_DIRS "." - REQUIRES heap nvs_flash meteofrance communication esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota bsp_extra esp32_p4_function_ev_board + REQUIRES ${comps} EMBED_TXTFILES ${project_dir}/main/ca_cert.pem) From ae2288f039cd647eac94b84270f819e989ff03f1 Mon Sep 17 00:00:00 2001 From: marc Date: Thu, 24 Apr 2025 07:47:46 +0200 Subject: [PATCH 2/6] separation ihm --- components/communication/communication.c | 84 ++------- .../communication/include/communication.h | 10 +- main/ihm.c | 53 ------ main/main.c | 169 +++++++++++++++++- main/obtain_time.c | 4 +- sdkconfig | 4 +- 6 files changed, 192 insertions(+), 132 deletions(-) diff --git a/components/communication/communication.c b/components/communication/communication.c index 131d183..45e4bc7 100644 --- a/components/communication/communication.c +++ b/components/communication/communication.c @@ -1,6 +1,5 @@ #include "communication.h" #include "esp_log.h" -#include "esp_lvgl_port.h" #include "mqtt_client.h" #include "bsp/esp-bsp.h" #include "stateManagement.h" @@ -324,40 +323,8 @@ static EventGroupHandle_t s_wifi_event_group; #define ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_WPA2_PSK static int s_retry_num = 0; +wifi_callback cb; -static lv_subject_t wifiStatus; -LV_IMAGE_DECLARE(wifi_ok); -LV_IMAGE_DECLARE(wifi_ko); - -static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject); - - -static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) -{ - ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); - bsp_display_lock(0); - lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2); - if(lv_obj_check_type(wifiSt, &lv_image_class)){ - switch (lv_subject_get_int(subject)) - { - case 0: - lv_image_set_src(wifiSt,&wifi_ko); - break; - case 1: - lv_image_set_src(wifiSt,&wifi_ok); - break; - default: - break; - } - }else{ - ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); - } - bsp_display_unlock(); - //int32_t prev_v = lv_subject_get_previous_int(subject); - //int32_t cur_v = lv_subject_get_int(subject); - - //lv_obj_t * btn = lv_observer_get_target(observer); -} static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) { @@ -367,11 +334,6 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t e } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) { esp_wifi_connect(); @@ -382,25 +344,21 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t e { xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); } + cb(DISCONNECTED); ESP_LOGI(TAG, "connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 1"); - lv_subject_set_int(&wifiStatus,1); - lvgl_port_unlock(); - } ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); - mainState.wifi_init=true; } } -void wifi_init_sta(void) +void wifi_init_sta(wifi_callback callback) { - s_wifi_event_group = xEventGroupCreate(); + cb=callback; + //s_wifi_event_group = xEventGroupCreate(); ESP_ERROR_CHECK(esp_netif_init()); @@ -442,48 +400,32 @@ void wifi_init_sta(void) ESP_ERROR_CHECK(esp_wifi_start()); ESP_LOGI(TAG, "wifi_init_sta finished."); - lv_subject_init_int(&wifiStatus,0); - lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); - - /* Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum - * number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) */ + /* + // Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum + // number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) EventBits_t bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT | WIFI_FAIL_BIT, pdFALSE, pdFALSE, portMAX_DELAY); - /* xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually - * happened. */ + // xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually + // happened. if (bits & WIFI_CONNECTED_BIT) { - ESP_LOGI(TAG, "connected to ap SSID:%s", EXAMPLE_ESP_WIFI_SSID); - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 1"); - lv_subject_set_int(&wifiStatus,1); - lvgl_port_unlock(); - } + cb(CONNECTED); } else if (bits & WIFI_FAIL_BIT) { + cb(CONNECT_FAIL); ESP_LOGI(TAG, "Failed to connect to SSID:%s, password:%s", EXAMPLE_ESP_WIFI_SSID, EXAMPLE_ESP_WIFI_PASS); - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } } else { ESP_LOGE(TAG, "UNEXPECTED EVENT"); - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } - } + */ } diff --git a/components/communication/include/communication.h b/components/communication/include/communication.h index aa115e7..0727cc0 100644 --- a/components/communication/include/communication.h +++ b/components/communication/include/communication.h @@ -1,2 +1,10 @@ void mqtt_app_start(void); -void wifi_init_sta(void); \ No newline at end of file +typedef enum wifi_evt{ + CONNECTED, + CONNECT_FAIL, + DISCONNECTED, + GOT_IP +} wifi_evt; +typedef void (*wifi_callback)(wifi_evt evt); +void wifi_init_sta(wifi_callback cb); + diff --git a/main/ihm.c b/main/ihm.c index a4643ea..6241165 100644 --- a/main/ihm.c +++ b/main/ihm.c @@ -123,10 +123,6 @@ void app_main_display() lv_subject_init_pointer(&forecastH2Subj, &d1); lv_subject_init_pointer(&forecastH3Subj, &d1); - on_weather_data_retrieval(weather_data_retreived); - on_weather_data_retrieval_start(weather_data_retreived_start); - initialise_weather_data_retrieval(600000); - ESP_LOGW(TAG, "Weather data retrieval initialized"); lv_theme_t * th = lv_theme_domotic_init(lv_display_get_default()); lv_display_set_theme(lv_disp_get_default(), th); /* Assign theme to display */ @@ -845,56 +841,7 @@ void draw_ihm() lv_obj_set_flex_flow(tabMeteo, LV_FLEX_FLOW_COLUMN); } -void weather_data_retreived_start() -{ - //if (display_lock("weather_data_retreived_start")) - //{ - //ESP_LOGE(TAG,"Mutex obtenu dans weather_data_retreived_start"); - lv_subject_set_int(&meteoStatus, 1); - ESP_LOGE(TAG,"Subject setted weather_data_retreived_start"); - //display_unlock("weather_data_retreived_start"); - //}else{ - // ESP_LOGE(TAG,"Impossible d'obtenir le mutex dans weather_data_retreived_start"); - //} -} -void weather_data_retreived(struct meteodailyforecast_data dailyDatas[3], struct meteoforecast_data datas[3]) -{ - -/* ESP_LOGE(TAG, "debut debug"); - printf("%lld\n", datas[0].datetime); - printf("%s\n", datas[0].previsions.desc); - printf("%f\n", datas[0].previsions.value); - printf("%lld\n", datas[1].datetime); - printf("%s\n", datas[1].previsions.desc); - printf("%f\n", datas[1].previsions.value); - printf("%lld\n", datas[2].datetime); - printf("%s\n", datas[2].previsions.desc); - printf("%f\n", datas[2].previsions.value); - ESP_LOGE(TAG, "fin debug"); -*/ - if (display_lock("weather_data_retreived")) - { - ESP_LOGV("MeteoFrance", "------------------------------------- Set des subjects J --------------------------------"); - // Prévisions des 3 prochains jours - lv_subject_set_pointer(&forecastD1Subj, &dailyDatas[0]); - lv_subject_set_pointer(&forecastD2Subj, &dailyDatas[1]); - lv_subject_set_pointer(&forecastD3Subj, &dailyDatas[2]); - - ESP_LOGV("MeteoFrance", "------------------------------------- Set des subjects H--------------------------------"); - // Prévisions des 3 prochains jours - ESP_LOGV("MeteoFrance", "Pointeur %lli", datas[0].datetime); - lv_subject_set_pointer(&forecastH1Subj, &datas[0]); - lv_subject_set_pointer(&forecastH2Subj, &datas[1]); - lv_subject_set_pointer(&forecastH3Subj, &datas[2]); - - lv_subject_set_int(&meteoStatus, 0); - display_unlock("weather_data_retreived"); - ESP_LOGV(TAG, "------------------------------------- Fin Set des subjects --------------------------------"); - }else{ - ESP_LOGE(TAG, "Impossible d'obtenir le mutex dans weather_data_retreived"); - } -} void log_cb(lv_log_level_t level, const char * buf){ ESP_LOGE(TAG, "%s",buf); } diff --git a/main/main.c b/main/main.c index a6aba0d..32c2c4a 100644 --- a/main/main.c +++ b/main/main.c @@ -51,6 +51,65 @@ static const char *TAG = "domoTic"; extern esp_mqtt_client_handle_t client; +typedef enum domo_events{ + WIFI_CONNECTED, + TIME_SETTED +} domo_events; + +static EventGroupHandle_t hevt; +#define WIFI_RDY 0b0001 + +static lv_subject_t wifiStatus; +LV_IMAGE_DECLARE(wifi_ok); +LV_IMAGE_DECLARE(wifi_ko); + +static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject); + + +static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) +{ + ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); + bsp_display_lock(0); + lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2); + if(lv_obj_check_type(wifiSt, &lv_image_class)){ + switch (lv_subject_get_int(subject)) + { + case 0: + lv_image_set_src(wifiSt,&wifi_ko); + break; + case 1: + lv_image_set_src(wifiSt,&wifi_ok); + break; + default: + break; + } + }else{ + ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); + } + bsp_display_unlock(); + //int32_t prev_v = lv_subject_get_previous_int(subject); + //int32_t cur_v = lv_subject_get_int(subject); + + //lv_obj_t * btn = lv_observer_get_target(observer); +} + +void send_event(domo_events evt){ + switch(evt){ + case WIFI_CONNECTED: + xEventGroupSetBits(hevt,WIFI_RDY); + start_wifi_logger(); + wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR } + ESP_LOGI(TAG, "connected to ap SSID"); + if(lvgl_port_lock(0)){ + ESP_LOGE(TAG,"Statut Wifi 1"); + lv_subject_set_int(&wifiStatus,1); + lvgl_port_unlock(); + } + break; + case TIME_SETTED: + break; + } +} struct state mainState={ .wifi_init=false, @@ -238,8 +297,105 @@ void alloc_fail(size_t size, uint32_t caps, const char * function_name){ } +void wifi_cb(wifi_evt evt){ + switch(evt){ + case CONNECTED: + send_event(WIFI_CONNECTED); + case DISCONNECTED: + if(lvgl_port_lock(0)){ + ESP_LOGE(TAG,"Statut Wifi 0"); + lv_subject_set_int(&wifiStatus,0); + lvgl_port_unlock(); + } + break; + case GOT_IP: + if(lvgl_port_lock(0)){ + ESP_LOGE(TAG,"Statut Wifi 1"); + lv_subject_set_int(&wifiStatus,1); + lvgl_port_unlock(); + } + break; + case CONNECT_FAIL: + if(lvgl_port_lock(0)){ + ESP_LOGE(TAG,"Statut Wifi 0"); + lv_subject_set_int(&wifiStatus,0); + lvgl_port_unlock(); + } + break; + default: + if(lvgl_port_lock(0)){ + ESP_LOGE(TAG,"Statut Wifi 0"); + lv_subject_set_int(&wifiStatus,0); + lvgl_port_unlock(); + } + break; + } + +} + +extern lv_subject_t forecastD1Subj; +extern lv_subject_t forecastD2Subj; +extern lv_subject_t forecastD3Subj; +extern lv_subject_t forecastH1Subj; +extern lv_subject_t forecastH2Subj; +extern lv_subject_t forecastH3Subj; +extern lv_subject_t meteoStatus; + +void weather_data_retreived(struct meteodailyforecast_data dailyDatas[3], struct meteoforecast_data datas[3]) +{ + +/* ESP_LOGE(TAG, "debut debug"); + printf("%lld\n", datas[0].datetime); + printf("%s\n", datas[0].previsions.desc); + printf("%f\n", datas[0].previsions.value); + printf("%lld\n", datas[1].datetime); + printf("%s\n", datas[1].previsions.desc); + printf("%f\n", datas[1].previsions.value); + printf("%lld\n", datas[2].datetime); + printf("%s\n", datas[2].previsions.desc); + printf("%f\n", datas[2].previsions.value); + ESP_LOGE(TAG, "fin debug"); +*/ + if (display_lock("weather_data_retreived")) + { + ESP_LOGV("MeteoFrance", "------------------------------------- Set des subjects J --------------------------------"); + // Prévisions des 3 prochains jours + lv_subject_set_pointer(&forecastD1Subj, &dailyDatas[0]); + lv_subject_set_pointer(&forecastD2Subj, &dailyDatas[1]); + lv_subject_set_pointer(&forecastD3Subj, &dailyDatas[2]); + + ESP_LOGV("MeteoFrance", "------------------------------------- Set des subjects H--------------------------------"); + // Prévisions des 3 prochains jours + ESP_LOGV("MeteoFrance", "Pointeur %lli", datas[0].datetime); + lv_subject_set_pointer(&forecastH1Subj, &datas[0]); + lv_subject_set_pointer(&forecastH2Subj, &datas[1]); + lv_subject_set_pointer(&forecastH3Subj, &datas[2]); + + lv_subject_set_int(&meteoStatus, 0); + display_unlock("weather_data_retreived"); + ESP_LOGV(TAG, "------------------------------------- Fin Set des subjects --------------------------------"); + }else{ + ESP_LOGE(TAG, "Impossible d'obtenir le mutex dans weather_data_retreived"); + } +} + +void weather_data_retreived_start() +{ + //if (display_lock("weather_data_retreived_start")) + //{ + //ESP_LOGE(TAG,"Mutex obtenu dans weather_data_retreived_start"); + lv_subject_set_int(&meteoStatus, 1); + ESP_LOGE(TAG,"Subject setted weather_data_retreived_start"); + //display_unlock("weather_data_retreived_start"); + //}else{ + // ESP_LOGE(TAG,"Impossible d'obtenir le mutex dans weather_data_retreived_start"); + //} +} + + void app_main(void) { + printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size()); printf("Free heap size: %" PRIu32 " bytes\n", esp_get_free_heap_size()); heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); @@ -324,14 +480,21 @@ void app_main(void) printf("8 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); ESP_LOGI(TAG, "ESP_WIFI_MODE_STA"); - wifi_init_sta(); - //start_wifi_logger(); - //wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR + + lv_subject_init_int(&wifiStatus,0); + lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); + wifi_init_sta(wifi_cb); + // esp_log_level_set("tcp_handler", ESP_LOG_NONE); printf("8b - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); printf("9 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); + on_weather_data_retrieval(weather_data_retreived); + on_weather_data_retrieval_start(weather_data_retreived_start); + initialise_weather_data_retrieval(600000); + ESP_LOGW(TAG, "Weather data retrieval initialized"); + time_t now; struct tm timeinfo; time(&now); diff --git a/main/obtain_time.c b/main/obtain_time.c index 88f89a9..45796b1 100644 --- a/main/obtain_time.c +++ b/main/obtain_time.c @@ -17,8 +17,6 @@ void time_sync_notification_cb(struct timeval *tv) char strftime_buf[64]; // Set timezone to Eastern Standard Time and print local time - setenv("TZ", "CET-1CEST,M3.5.0,M10.5.0/3", 1); - tzset(); time_t now; struct tm timeinfo; localtime_r(&now, &timeinfo); @@ -44,6 +42,8 @@ void updateTime(void *pvParameter) while (1) { time(&now); + setenv("TZ", "CET-1CEST,M3.5.0,M10.5.0/3", 1); + tzset(); struct tm timeinfo = {0}; localtime_r(&now, &timeinfo); sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min); diff --git a/sdkconfig b/sdkconfig index a9e9305..664de92 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1041,7 +1041,7 @@ CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # ESP HTTPS OTA # # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set -CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA @@ -2921,7 +2921,7 @@ CONFIG_STACK_CHECK_NONE=y # CONFIG_EVENT_LOOP_PROFILING is not set CONFIG_POST_EVENTS_FROM_ISR=y CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -CONFIG_OTA_ALLOW_HTTP=y +# CONFIG_OTA_ALLOW_HTTP is not set CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 CONFIG_MAIN_TASK_STACK_SIZE=3584 From be6c9a1dd1422506795c3fe62babeb55c0676113 Mon Sep 17 00:00:00 2001 From: marc Date: Fri, 25 Apr 2025 00:06:10 +0200 Subject: [PATCH 3/6] debut evt group --- .vscode/settings.json | 3 +- CMakeLists.txt | 2 + components/communication/CMakeLists.txt | 11 - components/communication/images/mqtt_ko.c | 51 -- components/communication/images/mqtt_ok.c | 116 ---- components/communication/images/wifi_ko.c | 49 -- .../images/wifi_ko_orig.png:Zone.Identifier | 4 - components/communication/images/wifi_ok.c | 48 -- .../communication/include/communication.h | 10 - components/meteofrance/meteofrance.c | 5 +- main/CMakeLists.txt | 8 +- .../communication => main}/communication.c | 161 +---- main/ihm.c | 41 +- .../communication => main}/images/mqtt_ko.png | Bin .../communication => main}/images/mqtt_ok.png | Bin .../communication => main}/images/wifi_ko.png | Bin .../images/wifi_ko_orig.png | Bin .../communication => main}/images/wifi_ok.png | Bin .../images/wifi_ok_orig.png | Bin main/include/communication.h | 27 + main/main.c | 220 +++++-- main/main.h | 2 +- main/obtain_time.c | 30 +- sdkconfig | 13 +- sdkconfig.defaults | 8 + sdkconfig.old | 570 +++++++++++++----- 26 files changed, 705 insertions(+), 674 deletions(-) delete mode 100644 components/communication/CMakeLists.txt delete mode 100644 components/communication/images/mqtt_ko.c delete mode 100644 components/communication/images/mqtt_ok.c delete mode 100644 components/communication/images/wifi_ko.c delete mode 100644 components/communication/images/wifi_ko_orig.png:Zone.Identifier delete mode 100644 components/communication/images/wifi_ok.c delete mode 100644 components/communication/include/communication.h rename {components/communication => main}/communication.c (65%) rename {components/communication => main}/images/mqtt_ko.png (100%) rename {components/communication => main}/images/mqtt_ok.png (100%) rename {components/communication => main}/images/wifi_ko.png (100%) rename {components/communication => main}/images/wifi_ko_orig.png (100%) rename {components/communication => main}/images/wifi_ok.png (100%) rename {components/communication => main}/images/wifi_ok_orig.png (100%) create mode 100644 main/include/communication.h diff --git a/.vscode/settings.json b/.vscode/settings.json index d20075a..ab44ca4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -104,7 +104,8 @@ "am2302_rmt.h": "c", "bsp_board_extra.h": "c", "display.h": "c", - "statemanagement.h": "c" + "statemanagement.h": "c", + "communication.h": "c" }, "idf.pythonInstallPath": "/usr/local/bin/python" } diff --git a/CMakeLists.txt b/CMakeLists.txt index 5bbbbe7..b9867c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,10 @@ set(COMPONENTS main) include($ENV{IDF_PATH}/tools/cmake/project.cmake) +if(${IDF_TARGET} STREQUAL "esp32p4") set(EXTRA_COMPONENT_DIRS /home/marc/esp-dev-kits/examples/esp32-p4-function-ev-board/examples/common_components ) +endif() project(rgb_lcd) diff --git a/components/communication/CMakeLists.txt b/components/communication/CMakeLists.txt deleted file mode 100644 index 7e08db0..0000000 --- a/components/communication/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -idf_component_register(SRCS "communication.c" - INCLUDE_DIRS "include" - REQUIRES mqtt esp32_p4_function_ev_board esp_wifi esp32_p4_function_ev_board stateManagement) - - - lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE") - lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE") - lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE") - lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE") - - lvgl_port_add_images(${COMPONENT_LIB} "images/") diff --git a/components/communication/images/mqtt_ko.c b/components/communication/images/mqtt_ko.c deleted file mode 100644 index 5be5ac8..0000000 --- a/components/communication/images/mqtt_ko.c +++ /dev/null @@ -1,51 +0,0 @@ - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) -#include "lvgl.h" -#elif defined(LV_BUILD_TEST) -#include "../lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_MQTT_KO -#define LV_ATTRIBUTE_MQTT_KO -#endif - -static const -LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_MQTT_KO -uint8_t mqtt_ko_map[] = { - - 0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x39,0x39,0x39,0xff,0xaa,0xa9,0xaa,0xff,0xed,0xed,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xf1,0xf1,0xff,0x83,0x83,0x83,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xe8, - 0xb5,0xb3,0xb5,0xfd,0xaa,0xaa,0xaa,0xff,0x8d,0x8d,0x8d,0xff,0x3f,0x3d,0x3f,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x27,0x21,0x27,0xff,0xb6,0xb6,0xb6,0xff,0xfa,0xfa,0xfa,0xff,0xf9,0xf9,0xf9,0xff,0xc3,0xc3,0xc3,0xff,0x4d,0x4d,0x4d,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdd,0xdd,0xdd,0xff,0x9d,0x9c,0x9d,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x6d,0x6d,0x6d,0xff,0xbd,0xbd,0xbd,0xff,0xb5,0xb5,0xb5,0xff,0x5f,0x5f,0x5f,0xff,0x01,0x01,0x01,0xff,0x00,0x00,0x00,0xff, - 0xe7,0xe7,0xe7,0xff,0xee,0xee,0xee,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xec,0xec,0xff,0x81,0x7f,0x81,0xfe,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x23,0x22,0x23,0xff,0x16,0x16,0x16,0xff,0x01,0x01,0x01,0xff,0x17,0x17,0x17,0xff,0x6a,0x68,0x6a,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x3e,0x3c,0x3e,0xff,0x98,0x97,0x98,0xff,0xd9,0xd8,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xff,0xad,0xac,0xad,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x05,0x05,0x05,0xff,0xd2,0xd2,0xd2,0xff,0xf5,0xf4,0xf5,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x72,0x71,0x72,0xff,0xe2,0xe2,0xe2,0xff,0xc4,0xc4,0xc4,0xff,0x7f,0x7f,0x7f,0xff,0x09,0x09,0x09,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x3b,0x3b,0x3b,0xff,0xf7,0xf7,0xf7,0xff,0xff,0xff,0xff,0xff, - 0xe7,0xe7,0xe7,0xff,0xcf,0xce,0xcf,0xfe,0xa9,0xa9,0xa9,0xff,0x4f,0x4f,0x4f,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x10,0x09,0x10,0xff,0x6a,0x6a,0x6a,0xff,0x38,0x38,0x38,0xff,0x00,0x00,0x00,0xff,0x04,0x04,0x04,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xa7,0xa6,0xa7,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0xf5,0xf5,0xff,0x94,0x94,0x94,0xff,0x1e,0x1e,0x1e,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x12,0x12,0x12,0xff,0xc2,0xc2,0xc2,0xff,0x8d,0x8c,0x8d,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xe4,0xe3,0xe4,0xfe, - 0xc5,0xc3,0xc5,0xfe,0xd5,0xd5,0xd5,0xff,0xf0,0xef,0xf0,0xff,0xc7,0xc7,0xc7,0xff,0xb6,0xb6,0xb6,0xff,0x5a,0x5a,0x5a,0xff,0x01,0x01,0x01,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xaf,0xae,0xaf,0xff,0xfd,0xfd,0xfd,0xff,0xed,0xec,0xed,0xff,0x20,0x17,0x20,0xfe,0x00,0x00,0x00,0xff,0x92,0x90,0x92,0xfe, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x19,0x19,0x19,0xff,0x66,0x65,0x66,0xff,0x30,0x30,0x30,0xff,0x03,0x03,0x03,0xff,0x02,0x02,0x02,0xff,0x05,0x05,0x05,0xff,0x00,0x00,0x00,0xff,0x69,0x67,0x69,0xff,0xfb,0xfb,0xfb,0xff,0xff,0xff,0xff,0xff,0xa5,0xa4,0xa5,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x02,0x02,0x02,0xff,0x04,0x04,0x04,0xff,0x4a,0x4a,0x4a,0xff,0xa3,0xa2,0xa3,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xcb,0xcb,0xcb,0xff,0xff,0xff,0xff,0xff,0xe7,0xe6,0xe7,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x63,0x63,0x63,0xff,0xe6,0xe6,0xe6,0xff,0xfb,0xfa,0xfb,0xff,0x51,0x50,0x51,0xff,0x00,0x00,0x00,0xff,0x7c,0x7c,0x7c,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x5d,0x5b,0x5d,0xff,0x00,0x00,0x00,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x16,0x09,0x16,0xfe,0xf3,0xf2,0xf3,0xff,0xff,0xff,0xff,0xff,0xb7,0xb6,0xb7,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xf6,0xf6,0xf6,0xff,0xff,0xff,0xff,0xff,0xa0,0x9f,0xa0,0xff,0x00,0x00,0x00,0xff, - 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xc6,0xc5,0xc6,0xff,0xff,0xff,0xff,0xff,0xda,0xd9,0xda,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xe1,0xe1,0xe1,0xff,0xff,0xff,0xff,0xff,0xbc,0xbb,0xbc,0xfe,0x00,0x00,0x00,0xff, - 0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xaa,0xaa,0xaa,0xff,0xff,0xff,0xff,0xff,0xe7,0xe7,0xe7,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xcb,0xcb,0xcb,0xff,0xff,0xff,0xff,0xff,0xcb,0xcb,0xcb,0xff,0x00,0x00,0x00,0xe0, - -}; - -const lv_image_dsc_t mqtt_ko = { - .header.magic = LV_IMAGE_HEADER_MAGIC, - .header.cf = LV_COLOR_FORMAT_ARGB8888, - .header.flags = 0, - .header.w = 15, - .header.h = 15, - .header.stride = 60, - .data_size = sizeof(mqtt_ko_map), - .data = mqtt_ko_map, -}; - diff --git a/components/communication/images/mqtt_ok.c b/components/communication/images/mqtt_ok.c deleted file mode 100644 index d122976..0000000 --- a/components/communication/images/mqtt_ok.c +++ /dev/null @@ -1,116 +0,0 @@ - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) -#include "lvgl.h" -#elif defined(LV_BUILD_TEST) -#include "../lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_MQTT_OK -#define LV_ATTRIBUTE_MQTT_OK -#endif - -static const -LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_MQTT_OK -uint8_t mqtt_ok_map[] = { - - 0x66,0x00,0x66,0xe0,0xc1,0xb3,0xc1,0xfd,0x99,0x7f,0x99,0xfe,0xe7,0xe3,0xe7,0xfe, - 0x6a,0x17,0x6a,0xfe,0x68,0x0a,0x68,0xfe,0xd6,0xce,0xd6,0xfe,0xe8,0xe3,0xe8,0xfe, - 0xa5,0x90,0xa5,0xfe,0xce,0xc3,0xce,0xfe,0xcf,0xc5,0xcf,0xfe,0xf5,0xf3,0xf5,0xfe, - 0x66,0x00,0x66,0xe1,0xc6,0xbb,0xc6,0xfe,0xff,0xff,0xff,0xff,0x66,0x00,0x66,0xff, - 0xd3,0xcb,0xd3,0xff,0xb8,0xaa,0xb8,0xff,0xfb,0xfa,0xfb,0xff,0x72,0x38,0x72,0xff, - 0xc2,0xb6,0xc2,0xff,0xb8,0xa9,0xb8,0xff,0x72,0x39,0x72,0xff,0x74,0x3c,0x74,0xff, - 0xeb,0xe7,0xeb,0xff,0xfc,0xfb,0xfc,0xff,0xea,0xe7,0xea,0xff,0x9f,0x87,0x9f,0xff, - 0xf7,0xf5,0xf7,0xff,0x9d,0x85,0x9d,0xff,0xfe,0xfe,0xfe,0xff,0xfc,0xfc,0xfc,0xff, - 0xf3,0xf1,0xf3,0xff,0xb5,0xa6,0xb5,0xff,0xef,0xed,0xef,0xff,0xe6,0xe2,0xe6,0xff, - 0xee,0xeb,0xee,0xff,0xf2,0xf0,0xf2,0xff,0xdc,0xd6,0xdc,0xff,0xc5,0xb9,0xc5,0xff, - 0xfa,0xf8,0xfa,0xff,0x74,0x3d,0x74,0xff,0x9e,0x86,0x9e,0xff,0x86,0x61,0x86,0xff, - 0xe2,0xdd,0xe2,0xff,0x8e,0x6f,0x8e,0xff,0xa3,0x8d,0xa3,0xff,0x6c,0x21,0x6c,0xff, - 0xae,0x9c,0xae,0xff,0xb4,0xa4,0xb4,0xff,0xfe,0xfd,0xfe,0xff,0xde,0xd8,0xde,0xff, - 0x83,0x5b,0x83,0xff,0x7c,0x4f,0x7c,0xff,0xee,0xec,0xee,0xff,0xaa,0x97,0xaa,0xff, - 0xf0,0xee,0xf0,0xff,0xc9,0xbe,0xc9,0xff,0xa4,0x8f,0xa4,0xff,0xea,0xe6,0xea,0xff, - 0xc5,0xba,0xc5,0xff,0x90,0x71,0x90,0xff,0xfb,0xfb,0xfb,0xff,0xc9,0xbf,0xc9,0xff, - 0x68,0x10,0x68,0xff,0x7f,0x53,0x7f,0xff,0xef,0xec,0xef,0xff,0xe8,0xe4,0xe8,0xff, - 0xcb,0xc1,0xcb,0xff,0xe3,0xde,0xe3,0xff,0xb0,0x9f,0xb0,0xff,0x7d,0x50,0x7d,0xff, - 0x8a,0x68,0x8a,0xff,0xdf,0xd9,0xdf,0xff,0xe5,0xe1,0xe5,0xff,0xf7,0xf6,0xf7,0xff, - 0x96,0x7c,0x96,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - 0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00, - - 0x00,0x0f,0x0f,0x0f,0x0f,0x16,0x11,0x22,0x0e,0x0e,0x20,0x1d,0x0f,0x0f,0x00, - 0x01,0x11,0x2e,0x29,0x0f,0x0f,0x0f,0x2f,0x14,0x12,0x0e,0x1f,0x15,0x0f,0x0f, - 0x0e,0x0e,0x0e,0x0e,0x2c,0x30,0x0f,0x0f,0x0f,0x2d,0x25,0x0e,0x0e,0x11,0x0f, - 0x1a,0x38,0x0e,0x0e,0x0e,0x0e,0x36,0x02,0x0f,0x0f,0x17,0x23,0x0e,0x1e,0x1b, - 0x0f,0x0f,0x17,0x37,0x33,0x0e,0x0e,0x0e,0x3c,0x0f,0x0f,0x13,0x24,0x0e,0x1c, - 0x0f,0x0f,0x0f,0x0f,0x0f,0x3d,0x18,0x0e,0x0e,0x10,0x0f,0x0f,0x2b,0x12,0x0e, - 0x18,0x06,0x15,0x35,0x0f,0x0f,0x40,0x10,0x0e,0x0e,0x39,0x0f,0x0f,0x21,0x0e, - 0x0e,0x0e,0x0e,0x12,0x3f,0x16,0x0f,0x0f,0x10,0x0e,0x0e,0x3a,0x0f,0x0f,0x07, - 0x09,0x26,0x28,0x0e,0x0e,0x03,0x41,0x0f,0x0f,0x45,0x0e,0x42,0x04,0x0f,0x08, - 0x0f,0x0f,0x13,0x27,0x32,0x0e,0x43,0x13,0x0f,0x48,0x19,0x0e,0x31,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f,0x2a,0x3e,0x0e,0x44,0x0f,0x0f,0x10,0x0e,0x3b,0x0f,0x0f, - 0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x0e,0x19,0x47,0x0f,0x4c,0x0e,0x0e,0x34,0x0f, - 0x0f,0x0f,0x0f,0x0f,0x0f,0x05,0x0b,0x0e,0x14,0x0f,0x0f,0x4b,0x0e,0x46,0x0f, - 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0e,0x49,0x0f,0x0f,0x4a,0x0e,0x0d,0x0f, - 0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x11,0x0e,0x1a,0x0f,0x0f,0x10,0x0e,0x10,0x0c, - -}; - -const lv_image_dsc_t mqtt_ok = { - .header.magic = LV_IMAGE_HEADER_MAGIC, - .header.cf = LV_COLOR_FORMAT_I8, - .header.flags = 0, - .header.w = 15, - .header.h = 15, - .header.stride = 15, - .data_size = sizeof(mqtt_ok_map), - .data = mqtt_ok_map, -}; - diff --git a/components/communication/images/wifi_ko.c b/components/communication/images/wifi_ko.c deleted file mode 100644 index 41929a3..0000000 --- a/components/communication/images/wifi_ko.c +++ /dev/null @@ -1,49 +0,0 @@ - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) -#include "lvgl.h" -#elif defined(LV_BUILD_TEST) -#include "../lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_WIFI_KO -#define LV_ATTRIBUTE_WIFI_KO -#endif - -static const -LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_WIFI_KO -uint8_t wifi_ko_map[] = { - - 0xfe,0xfe,0xfe,0xff,0xfc,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0xf5,0xf5,0xf5,0xff,0xa5,0xa5,0xa5,0xff,0x4d,0x4d,0x4d,0xff,0x1a,0x1a,0x1a,0xff,0x00,0x00,0x00,0xff,0x79,0x79,0x79,0xff,0xff,0xff,0xff,0xff,0x5a,0x5a,0x5a,0xff,0x30,0x30,0x30,0xff,0xff,0xff,0xff,0xff,0x78,0x78,0x78,0xff,0x10,0x10,0x10,0xff, - 0xfd,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xa0,0xa0,0xa0,0xff,0x18,0x18,0x18,0xff,0x00,0x00,0x00,0xff,0x06,0x06,0x06,0xff,0x2e,0x2e,0x2e,0xff,0x3d,0x3d,0x3d,0xff,0xa5,0xa5,0xa5,0xff,0xff,0xff,0xff,0xff,0x89,0x89,0x89,0xff,0x00,0x00,0x00,0xff,0x2b,0x2b,0x2b,0xff,0x03,0x03,0x03,0xff,0x3c,0x3c,0x3c,0xff, - 0xf6,0xf6,0xf6,0xff,0x57,0x57,0x57,0xff,0x00,0x00,0x00,0xff,0x23,0x23,0x23,0xff,0xa5,0xa5,0xa5,0xff,0xfa,0xfa,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0x4b,0x4b,0x4b,0xff,0x00,0x00,0x00,0xff,0x1a,0x1a,0x1a,0xff,0xe0,0xe0,0xe0,0xff, - 0x3a,0x3a,0x3a,0xff,0x00,0x00,0x00,0xff,0x77,0x77,0x77,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xbb,0xbb,0xbb,0xff,0x68,0x68,0x68,0xff,0x36,0x36,0x36,0xff,0x9e,0x9e,0x9e,0xff,0xff,0xff,0xff,0xff,0x80,0x80,0x80,0xff,0x00,0x00,0x00,0xff,0x2d,0x2d,0x2d,0xff,0x03,0x03,0x03,0xff,0x32,0x32,0x32,0xff, - 0x60,0x60,0x60,0xff,0x8f,0x8f,0x8f,0xff,0xff,0xff,0xff,0xff,0xc4,0xc4,0xc4,0xff,0x23,0x23,0x23,0xff,0x00,0x00,0x00,0xff,0x05,0x05,0x05,0xff,0x00,0x00,0x00,0xff,0x84,0x84,0x84,0xff,0xff,0xff,0xff,0xff,0x6a,0x6a,0x6a,0xff,0x46,0x46,0x46,0xff,0xff,0xff,0xff,0xff,0x88,0x88,0x88,0xff,0x27,0x27,0x27,0xff, - 0xfc,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0xab,0xab,0xab,0xff,0x00,0x00,0x00,0xff,0x10,0x10,0x10,0xff,0x96,0x96,0x96,0xff,0xf7,0xf7,0xf7,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xf8,0xf8,0xf8,0xff,0xff,0xff,0xff,0xff,0x8d,0x8d,0x8d,0xff,0x29,0x29,0x29,0xff,0xe6,0xe6,0xe6,0xff,0xff,0xff,0xff,0xff,0xba,0xba,0xba,0xff,0x7d,0x7d,0x7d,0xff,0x83,0x83,0x83,0xff,0xc7,0xc7,0xc7,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xfd,0xff,0xfd,0xfd,0xfd,0xff,0xfd,0xfd,0xfd,0xff,0xfe,0xfe,0xfe,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xd4,0xd4,0xd4,0xff,0x24,0x24,0x24,0xff,0x00,0x00,0x00,0xff,0x02,0x02,0x02,0xff,0x01,0x01,0x01,0xff,0x00,0x00,0x00,0xff,0x4d,0x4d,0x4d,0xff,0xef,0xef,0xef,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0x3c,0x3c,0x3c,0xff,0x01,0x01,0x01,0xff,0x9a,0x9a,0x9a,0xff,0xf0,0xf0,0xf0,0xff,0xe5,0xe5,0xe5,0xff,0x74,0x74,0x74,0xff,0x00,0x00,0x00,0xff,0x83,0x83,0x83,0xff,0xff,0xff,0xff,0xff,0xfb,0xfb,0xfb,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xca,0xca,0xca,0xff,0xd2,0xd2,0xd2,0xff,0xff,0xff,0xff,0xff,0xc2,0xc2,0xc2,0xff,0xd4,0xd4,0xd4,0xff,0xff,0xff,0xff,0xff,0xc3,0xc3,0xc3,0xff,0xe3,0xe3,0xe3,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0x83,0x83,0x83,0xff,0x00,0x00,0x00,0xff,0x02,0x02,0x02,0xff,0xbc,0xbc,0xbc,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xf9,0xf9,0xff,0xff,0xff,0xff,0xff,0x54,0x54,0x54,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x94,0x94,0x94,0xff,0xff,0xff,0xff,0xff,0xfa,0xfa,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xca,0xca,0xca,0xff,0x1e,0x1e,0x1e,0xff,0x40,0x40,0x40,0xff,0xee,0xee,0xee,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - -}; - -const lv_image_dsc_t wifi_ko = { - .header.magic = LV_IMAGE_HEADER_MAGIC, - .header.cf = LV_COLOR_FORMAT_ARGB8888, - .header.flags = 0, - .header.w = 15, - .header.h = 13, - .header.stride = 60, - .data_size = sizeof(wifi_ko_map), - .data = wifi_ko_map, -}; - diff --git a/components/communication/images/wifi_ko_orig.png:Zone.Identifier b/components/communication/images/wifi_ko_orig.png:Zone.Identifier deleted file mode 100644 index 8437b5e..0000000 --- a/components/communication/images/wifi_ko_orig.png:Zone.Identifier +++ /dev/null @@ -1,4 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=https://www.flaticon.com/free-icon/wifi_10179082?term=wifi&page=1&position=72&origin=tag&related_id=10179082 -HostUrl=https://www.flaticon.com/download/icon/10179082?icon_id=10179082&author=4014&team=4014&keyword=Wifi&pack=10178962&style=black+outline&style_id=1369&format=png&color=%23000000&colored=1&size=512&selection=1&type=standard&token=03AFcWeA4RyxIf4QsrIC4tHTqrKilxyFhDaeCELUJ5y2sh5Z335A3k8sZtFRKbUkQjtMRnLVYnKYcv-jzbF73QhCKZMOKukL3s8JLvWQvNyitg0AK2yFN9cm6zn8bhADDZASUE7dAtq2wzDW9Q4xndpF9QSqs7esAvmn7a7sFjD5RF2nbQLj8tSNkchXBvh9Tqfr_3-4FOMk7yNRwUNWUGRHYa_7HL8k24iA_UjL7hDHY21uNBBwEbwmsOtQSMiFog7JBJ7c6QimbJuJFvUq2OaDOvp3XRh0QwfgMzIZR-0eSwHUTNZK0ZvfR-78QJFjvMEOjIZWwvLabNeJk1twjloLXxYWT-VKxk1jRjHxAGVUGH3wm7YSMlgMScDjLDH0ysTezlCo3YIyuFdPSNadc5Y8bLmhc84f0f0YnKzjVLS4YwUO5rLMrG5jx7hvUEuWzny7mWE9N2QstAIC7OTEWRUU9tA2TS_NPlg8yl5YU5KTcgUIojGXyOe4grWD-4TYgKW_Uzu6sQ2iHZWPYWQf3rNjX4GWTHcpDgD3ccNgzb8HeXhQdYE1Rf9W9WAA_amhHnPYZmatQSy9mHCnb80FjnYcbKUwcRMD2hQbPGzF78YqKH5smnThi8V_gsXZvfG8pb6RKfSzf-CK05fKRcvCgr6D-P7dN67GtxrvCt_If3c_X329lw8FYZuGJFHBb5aDgpcVieIOECR6afx2JMb-aesRBEZDNSXuQ7haFyHe_XcD4jqksyCslN3akqmyAx72i3Lg1t7tqEQCFGY_4WsWjHYB2LgwZIss2anRN7Gddg7p4G4fC1sKfSGRCZMIHfutZv0phQNI6OoYGnC8I3dxkW__w1trG7NCWw04Zb4sUpHnqEFpO2ujdoApltxHdcaCPkjT_ojghjjwws_MZZBbBaetGp7B3mYNYiTX0MDtNaYfU6GnP4v3t9mnEKZxfkhMadPW2lcdSc5wDLSXjftxrPOwUUSpS39QHQ7Y-o4L3X0-cedUnrAdjEPH-3i6UfAuDtinqKomkoxlUnGjHvwyDQn-27tWB_EM7X8qdkMu2B3iYpUGTSI6Fr62m2CQjwEI5TPs_556kkMgqKttVmt4pPiI_Imt8w9uPINaqUdR-0AunFKB87KeRLvJK1i6JIPzEAc-SnABc8ohW4m6ngwC3I3dr80nLIwsZo8x9v_p3y2A8DkQPlXPHsUEpBqbM6ZM-Mq1ZK_E0IB-cdbwGTy6zV8JSSOANd6aj3pi7Lmt_sF1VhGPTivI7LJBT5nVW5ypnyz157iL5xbIOa9M6MbB1KtqNPRBcg1W3blhQ3DrczffVuZSoJlcPWXD6lZRAsgPkUR3PHzR2O7QdT4HM8XShoPoIswr6p74yWrO9nTasKVVCu_zL_ea1lR4NwYX10-5hB_hLewEI-Dg03R__kIeU0MNkyWkjajD7Vzn1EBWAJvbeNW73TapaiFWepy7874EQpwZw7_bNK6Qb4L7niaYyG8aGahsgtWl4CuxCJWVqo31MnAUM-j2lXSDk6zZRhZL9N7zGW_vVD7nGOVWFGIh40s-2KytHFI7WImqmiCmTEZZ9wXeRf_6qb_7OcJ8UOePwcaqL6XaNDpCeIzkF5ImSyuLbWLM9GWQGP97kpUXgO_q3FMvYaVJcOcGpZpRU3VFFbvqFVC2LEWcUqaD7SuEZvZS-VGjfVh8cNWocZ3IC_QqNu6-zGjDgpuIIuJBOh_tKy-iERl11U_GOl4ThytbKk4jOJtYFNDkNuN9TIJZqlVCYoNd6VPrnS46GrvrM7wj-LZffmuR9rVQpuxt_zrNyavPzuHbPCEkXDbhZL9ecqJkWy3b5E5V-dQoDSvDbHVxsbMZHwWflmbffCH6uf7fJvlGUNnu3LmOVUq-WuDK5invepzjtGDqOjxTeXmcGqnzvPDuoeQ8SkM04-zzk8HALtK0dRU1_Yk8gFOJOYz2ZPqWoDWoDYZml4QOo&search=wifi diff --git a/components/communication/images/wifi_ok.c b/components/communication/images/wifi_ok.c deleted file mode 100644 index feb8269..0000000 --- a/components/communication/images/wifi_ok.c +++ /dev/null @@ -1,48 +0,0 @@ - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) -#include "lvgl.h" -#elif defined(LV_BUILD_TEST) -#include "../lvgl.h" -#else -#include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_WIFI_OK -#define LV_ATTRIBUTE_WIFI_OK -#endif - -static const -LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_WIFI_OK -uint8_t wifi_ok_map[] = { - - 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xbb,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x8c,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x29,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x9d,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x2f, - 0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xed,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x9e,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xfb, - 0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xf9,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x57, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0x8b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - -}; - -const lv_image_dsc_t wifi_ok = { - .header.magic = LV_IMAGE_HEADER_MAGIC, - .header.cf = LV_COLOR_FORMAT_ARGB8888, - .header.flags = 0, - .header.w = 15, - .header.h = 12, - .header.stride = 60, - .data_size = sizeof(wifi_ok_map), - .data = wifi_ok_map, -}; - diff --git a/components/communication/include/communication.h b/components/communication/include/communication.h deleted file mode 100644 index 0727cc0..0000000 --- a/components/communication/include/communication.h +++ /dev/null @@ -1,10 +0,0 @@ -void mqtt_app_start(void); -typedef enum wifi_evt{ - CONNECTED, - CONNECT_FAIL, - DISCONNECTED, - GOT_IP -} wifi_evt; -typedef void (*wifi_callback)(wifi_evt evt); -void wifi_init_sta(wifi_callback cb); - diff --git a/components/meteofrance/meteofrance.c b/components/meteofrance/meteofrance.c index 873e7cb..12e5a62 100644 --- a/components/meteofrance/meteofrance.c +++ b/components/meteofrance/meteofrance.c @@ -23,7 +23,6 @@ #include "esp_http_client.h" #include "esp_tls.h" #include "stateManagement.h" - static const char *TAG = "MeteoFrance"; /* Constants that aren't configurable in menuconfig @@ -172,7 +171,7 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) break; case HTTP_EVENT_DISCONNECTED: ESP_LOGI(TAG, "HTTP_EVENT_DISCONNECTED"); - int mbedtls_err = 0; + /*int mbedtls_err = 0; esp_err_t err = esp_tls_get_and_clear_last_error((esp_tls_error_handle_t)evt->data, &mbedtls_err, NULL); if (err != 0) { @@ -184,7 +183,7 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) free(output_buffer); output_buffer = NULL; } - output_len = 0; + output_len = 0;*/ break; case HTTP_EVENT_REDIRECT: ESP_LOGD(TAG, "HTTP_EVENT_REDIRECT"); diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index f7f29e5..d4bf1fe 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,6 +1,6 @@ set(EXTRA_COMPONENT_DIRS ../components) -set(comps heap nvs_flash meteofrance communication esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota ) +set(comps heap nvs_flash meteofrance esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota mqtt) if(${IDF_TARGET} STREQUAL "esp32p4") list(APPEND comps bsp_extra esp32_p4_function_ev_board) @@ -17,6 +17,12 @@ set_source_files_properties( "-DLV_LVGL_H_INCLUDE_SIMPLE;-Wno-format;-DLV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(montserrat_medium_12) LV_FONT_DECLARE(montserrat_medium_18) LV_FONT_DECLARE(montserrat_medium_24)" ) +lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE") +lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE") +lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE") +lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE") + lvgl_port_add_images(${COMPONENT_LIB} "images/") + littlefs_create_partition_image(littlefs images_meteo FLASH_IN_PROJECT) \ No newline at end of file diff --git a/components/communication/communication.c b/main/communication.c similarity index 65% rename from components/communication/communication.c rename to main/communication.c index 45e4bc7..02fe390 100644 --- a/components/communication/communication.c +++ b/main/communication.c @@ -1,71 +1,15 @@ -#include "communication.h" +#include "include/communication.h" #include "esp_log.h" #include "mqtt_client.h" -#include "bsp/esp-bsp.h" #include "stateManagement.h" +#include "esp_wifi.h" +#include "esp_log.h" + esp_mqtt_client_handle_t client; -lv_subject_t mqttStatus; - -extern lv_subject_t tempIntSubj; -extern lv_subject_t tempExtSubj; -extern lv_subject_t hauteurCuveSubj; -extern lv_subject_t hauteurCuveEvolSubj; static const char *TAG = "domo_mqtt"; -char *upEvent = "monter"; -char *downEvent = "descendre"; - -char *topicTempExt = "house/temp/282A802600008059"; -char *topicHauteurCuve = "house/cuve/hauteur"; -char *topicTempInt = "house/temp/287DCF1E00008020"; -char *topicHauteurCuveEvol = "house/cuve/hauteurEvol"; -char *topicdomoticCommand = "domotic/cmd"; -char *topicTest = "test"; - -LV_IMAGE_DECLARE(mqtt_ok); -LV_IMAGE_DECLARE(mqtt_ko); - -static void mqttStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject); - -static void mqttStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) -{ - ESP_LOGV(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); - if(lvgl_port_lock(0)){ - lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),3); - if(lv_obj_check_type(wifiSt, &lv_image_class)){ - switch (lv_subject_get_int(subject)) - { - case 0: - lv_image_set_src(wifiSt,&mqtt_ko); - break; - case 1: - lv_image_set_src(wifiSt,&mqtt_ok); - break; - case 2: - lv_color_t color = lv_color_make(255, 0, 0); - lv_obj_set_style_image_recolor_opa(wifiSt, 125, 0); - lv_obj_set_style_image_recolor(wifiSt, color, 0); - vTaskDelay(2000 / portTICK_PERIOD_MS); - - break; - case 3: - lv_obj_set_style_image_recolor_opa(wifiSt, 0, 0); - break; - default: - break; - } - }else{ - ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); - } - lvgl_port_unlock(); - } - //int32_t prev_v = lv_subject_get_previous_int(subject); - //int32_t cur_v = lv_subject_get_int(subject); - - //lv_obj_t * btn = lv_observer_get_target(observer); -} static void log_error_if_nonzero(const char *message, int error_code) { @@ -98,6 +42,8 @@ void splitIt(char *payload, unsigned int length, float *datas) ESP_LOGE(TAG,"%f",datas[3]); } +mqtt_callback mqttcb; + /* * @brief Event handler registered to receive MQTT events * @@ -117,11 +63,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ switch ((esp_mqtt_event_id_t)event_id) { case MQTT_EVENT_CONNECTED: - if(lvgl_port_lock(50)){ - ESP_LOGV(TAG,"Statut mqttStatus 1"); - lv_subject_set_int(&mqttStatus,1); - lvgl_port_unlock(); - } + mqttcb(MQTT_CONNECTED,NULL); ESP_LOGI(TAG, "MQTT_EVENT_CONNECTED"); //msg_id = esp_mqtt_client_publish(client, "/topic/qos1", "data_3", 0, 1, 0); //ESP_LOGI(TAG, "sent publish successful, msg_id=%d", msg_id); @@ -151,11 +93,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ //ESP_LOGI(TAG, "sent unsubscribe successful, msg_id=%d", msg_id); break; case MQTT_EVENT_DISCONNECTED: - if(lvgl_port_lock(50)){ - ESP_LOGE(TAG,"Statut mqttStatus 0"); - lv_subject_set_int(&mqttStatus,0); - lvgl_port_unlock(); - } + mqttcb(MQTT_DISCONNECTED,NULL); ESP_LOGI(TAG, "MQTT_EVENT_DISCONNECTED"); break; @@ -171,72 +109,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ ESP_LOGI(TAG, "MQTT_EVENT_PUBLISHED, msg_id=%d", event->msg_id); break; case MQTT_EVENT_DATA: - lv_subject_set_int(&mqttStatus,2); - ESP_LOGD(TAG, "\nMQTT_EVENT_DATA"); - ESP_LOGD(TAG, "TOPIC=%.*s\n", event->topic_len, event->topic); - ESP_LOGD(TAG, "DATA=%.*s\n", event->data_len, event->data); - if (strncmp(event->topic, topicTempExt, 27) == 0) - { - if(lvgl_port_lock(50)){ - // on retransforme en float pour ne garder que la partie entiere de la température - float temp = strtof(event->data, NULL); - char buff[5]; - sprintf(buff,"%.1f",temp); - lv_subject_copy_string(&tempExtSubj, buff); - lvgl_port_unlock(); - } - } - else if (strncmp(event->topic, topicTempInt, 27) == 0) - { - if(lvgl_port_lock(0)){ - // on retransforme en float pour ne garder que la partie entiere de la température - float temp = strtof(event->data, NULL); - char buff[5]; - sprintf(buff,"%.1f",temp); - lv_subject_copy_string(&tempIntSubj, buff); - lvgl_port_unlock(); - } - } - else if (strncmp(event->topic, topicHauteurCuveEvol, 22) == 0) - { - /* float datas[4] = {}; - splitIt(event->data, event->data_len, datas); - ser1->y_points[0] = 130 - (int)datas[0]; - ser1->y_points[1] = 130 - (int)datas[1]; - ser1->y_points[2] = 130 - (int)datas[2]; - ser1->y_points[3] = 130 - (int)datas[3]; - lvgl_port_lock(0); - lv_chart_refresh(chart); - lvgl_port_unlock(); - */ - - // lv_subject_copy_string(&hauteurCuveEvolSubj, event->data); - } - else if (strncmp(event->topic, topicHauteurCuve, 18) == 0) - { - if (lvgl_port_lock(50)){ - float temp = strtof(event->data, NULL); - char buff[5]; - sprintf(buff,"%.0f",temp); - lv_subject_copy_string(&hauteurCuveSubj, buff); - lvgl_port_unlock(); - } - }else if (strncmp(event->topic, topicTest, 4) == 0){ - ESP_LOGD(TAG,"Msg reecu sur test"); - }else if (strncmp(event->topic, topicdomoticCommand, 11) == 0){ - if(strncmp(event->data,"restart",7)==0){ - ESP_LOGI(TAG," Commande 'restart' recue"); - esp_restart(); - } - } - else - { - ESP_LOGE(TAG, "None match :-( %s", event->topic); - } - if (lvgl_port_lock(50)){ - lv_subject_set_int(&mqttStatus,3); - lvgl_port_unlock(); - } + mqttcb(MQTT_DATA_RECEIVED, event); break; case MQTT_EVENT_ERROR: ESP_LOGI(TAG, "MQTT_EVENT_ERROR"); @@ -253,13 +126,11 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ break; } } -void mqtt_app_start(void) +void mqtt_app_start(mqtt_callback callback) { - lv_subject_init_int(&mqttStatus,-1); - lv_subject_add_observer_obj(&mqttStatus, mqttStatus_obs_cb, NULL, NULL); - + mqttcb=callback; esp_mqtt_client_config_t mqtt_cfg = { .broker.address.uri = "mqtt://192.168.0.10", .network.timeout_ms = 1000}; @@ -301,9 +172,6 @@ void mqtt_app_start(void) esp_mqtt_client_start(client); } -#include "esp_wifi.h" -#include "esp_log.h" -#include "esp_lvgl_port.h" /* FreeRTOS event group to signal when we are connected*/ static EventGroupHandle_t s_wifi_event_group; @@ -342,9 +210,9 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t e } else { - xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); + //xEventGroupSetBits(s_wifi_event_group, WIFI_FAIL_BIT); } - cb(DISCONNECTED); + cb(WIFI_DISCONNECTED); ESP_LOGI(TAG, "connect to the AP fail"); } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) @@ -352,7 +220,8 @@ static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t e ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data; ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); s_retry_num = 0; - xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + cb(WIFI_CONNECTED); + //xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); } } void wifi_init_sta(wifi_callback callback) diff --git a/main/ihm.c b/main/ihm.c index 6241165..4591967 100644 --- a/main/ihm.c +++ b/main/ihm.c @@ -8,11 +8,10 @@ #include "string.h" #include "meteofrance.h" #include "main.h" +#include "bsp/esp-bsp.h" - -extern char *upEvent; -extern char *downEvent; -extern esp_mqtt_client_handle_t client; +#define upEvent "monter" +#define downEvent "descendre" lv_subject_t dateHeureSubj; lv_obj_t *lblTempInt2; @@ -39,6 +38,8 @@ char dateHeureStr[30]; static lv_style_t no_padding; static const char *TAG = "IHM"; + + void draw_time(char* dateHeure){ if(display_lock("updateTime")){ lv_subject_copy_string(&dateHeureSubj, dateHeure); @@ -53,6 +54,7 @@ void draw_temp(char * tempHumid){ } } + static void event_handler(lv_event_t *e) { lv_event_code_t code = lv_event_get_code(e); @@ -66,7 +68,7 @@ static void event_handler(lv_event_t *e) break; case LV_EVENT_CLICKED: ESP_LOGI(TAG, "%s was clicked\n", evtData); - esp_mqtt_client_publish(client, "volets", evtData, 0, 0, 0); + //esp_mqtt_client_publish(client, "volets", evtData, 0, 0, 0); break; case LV_EVENT_LONG_PRESSED: LV_LOG_USER("%s was long pressed\n", evtData); @@ -110,6 +112,7 @@ void app_main_display() struct dailyforecast_prev p; lv_strcpy(p.desc, ""); d.previsions = p; + d.isValid=false; lv_subject_init_pointer(&forecastD1Subj, &d); lv_subject_init_pointer(&forecastD2Subj, &d); lv_subject_init_pointer(&forecastD3Subj, &d); @@ -119,6 +122,7 @@ void app_main_display() lv_strcpy(p1.desc, ""); d1.previsions = p1; + d1.isValid=false; lv_subject_init_pointer(&forecastH1Subj, &d1); lv_subject_init_pointer(&forecastH2Subj, &d1); lv_subject_init_pointer(&forecastH3Subj, &d1); @@ -247,25 +251,26 @@ static lv_style_t style_container; static void weatherdata_obs_cb(lv_observer_t *observer, lv_subject_t *subject) { - ESP_LOGE(TAG, "CB meteo jour declenché"); // Retrieve weatherdata const struct meteodailyforecast_data *data = subject->value.pointer; + ESP_LOGE(TAG, "CB meteo jour declenché. Meteo valide : %i", data->isValid); // printffd(data); // char buff[40] = {}; // sprintf(buff,"%s %.1f %.1f", data->previsions.desc, data->previsions.min, data->previsions.max); + if(data->isValid){ + lv_obj_t *parent = (lv_obj_t *)(observer->target); + lv_obj_t *datefld = lv_obj_get_child(parent, 0); + lv_obj_t *desc_icon = lv_obj_get_child(parent, 1); + lv_obj_t *temps = lv_obj_get_child(parent, 2); + showMeteoIcon(data->previsions.icon, desc_icon, 0); + char buffer[80]; + dtToString(data->datetime, buffer); - lv_obj_t *parent = (lv_obj_t *)(observer->target); - lv_obj_t *datefld = lv_obj_get_child(parent, 0); - lv_obj_t *desc_icon = lv_obj_get_child(parent, 1); - lv_obj_t *temps = lv_obj_get_child(parent, 2); - showMeteoIcon(data->previsions.icon, desc_icon, 0); - char buffer[80]; - dtToString(data->datetime, buffer); - - lv_label_set_text(datefld, buffer); - lv_label_set_text(lv_obj_get_child(desc_icon, 1), data->previsions.desc); - lv_label_set_text_fmt(lv_obj_get_child(temps, 0), "%.1f°C", data->previsions.max); - lv_label_set_text_fmt(lv_obj_get_child(temps, 1), "%.1f°C", data->previsions.min); + lv_label_set_text(datefld, buffer); + lv_label_set_text(lv_obj_get_child(desc_icon, 1), data->previsions.desc); + lv_label_set_text_fmt(lv_obj_get_child(temps, 0), "%.1f°C", data->previsions.max); + lv_label_set_text_fmt(lv_obj_get_child(temps, 1), "%.1f°C", data->previsions.min); + } } // Callback pour mettre à jour une météo horaire diff --git a/components/communication/images/mqtt_ko.png b/main/images/mqtt_ko.png similarity index 100% rename from components/communication/images/mqtt_ko.png rename to main/images/mqtt_ko.png diff --git a/components/communication/images/mqtt_ok.png b/main/images/mqtt_ok.png similarity index 100% rename from components/communication/images/mqtt_ok.png rename to main/images/mqtt_ok.png diff --git a/components/communication/images/wifi_ko.png b/main/images/wifi_ko.png similarity index 100% rename from components/communication/images/wifi_ko.png rename to main/images/wifi_ko.png diff --git a/components/communication/images/wifi_ko_orig.png b/main/images/wifi_ko_orig.png similarity index 100% rename from components/communication/images/wifi_ko_orig.png rename to main/images/wifi_ko_orig.png diff --git a/components/communication/images/wifi_ok.png b/main/images/wifi_ok.png similarity index 100% rename from components/communication/images/wifi_ok.png rename to main/images/wifi_ok.png diff --git a/components/communication/images/wifi_ok_orig.png b/main/images/wifi_ok_orig.png similarity index 100% rename from components/communication/images/wifi_ok_orig.png rename to main/images/wifi_ok_orig.png diff --git a/main/include/communication.h b/main/include/communication.h new file mode 100644 index 0000000..b438fd4 --- /dev/null +++ b/main/include/communication.h @@ -0,0 +1,27 @@ +#pragma once +#include "mqtt_client.h" +typedef enum wifi_evt{ + WIFI_CONNECTED, + WIFI_CONNECT_FAIL, + WIFI_DISCONNECTED, + WIFI_GOT_IP +} wifi_evt; +typedef enum mqtt_evt{ + MQTT_CONNECTED, + MQTT_CONNECT_FAIL, + MQTT_DISCONNECTED, + MQTT_DATA_RECEIVED +} mqtt_evt; +typedef void (*wifi_callback)(wifi_evt evt); +typedef void (*mqtt_callback)(mqtt_evt evt, esp_mqtt_event_handle_t evt_data); +void wifi_init_sta(wifi_callback cb); +void mqtt_app_start(mqtt_callback cb); + + +#define topicTempExt "house/temp/282A802600008059" +#define topicHauteurCuve "house/cuve/hauteur" +#define topicTempInt "house/temp/287DCF1E00008020" +#define topicHauteurCuveEvol "house/cuve/hauteurEvol" +#define topicdomoticCommand "domotic/cmd" +#define topicTest "test" + diff --git a/main/main.c b/main/main.c index 32c2c4a..5faa7b1 100644 --- a/main/main.c +++ b/main/main.c @@ -27,7 +27,7 @@ #include "wifi_logger.h" #include "obtain_time.h" #include "image_downloader.h" -#include "communication.h" +#include "include/communication.h" #include "stateManagement.h" #include "am2302_rmt.h" @@ -52,8 +52,8 @@ static const char *TAG = "domoTic"; extern esp_mqtt_client_handle_t client; typedef enum domo_events{ - WIFI_CONNECTED, - TIME_SETTED + EVT_WIFI_CONNECTED, + EVT_TIME_SETTED } domo_events; static EventGroupHandle_t hevt; @@ -92,21 +92,121 @@ static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) //lv_obj_t * btn = lv_observer_get_target(observer); } +lv_subject_t mqttStatus; + +extern lv_subject_t tempIntSubj; +extern lv_subject_t tempExtSubj; +extern lv_subject_t hauteurCuveSubj; +extern lv_subject_t hauteurCuveEvolSubj; + +void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){ + switch (evt) + { + case MQTT_CONNECTED: + if(lvgl_port_lock(50)){ + ESP_LOGV(TAG,"Statut mqttStatus 1"); + lv_subject_set_int(&mqttStatus,1); + lvgl_port_unlock(); + } + break; + case MQTT_DISCONNECTED: + if(lvgl_port_lock(50)){ + ESP_LOGE(TAG,"Statut mqttStatus 0"); + lv_subject_set_int(&mqttStatus,0); + lvgl_port_unlock(); + } + break; + case MQTT_DATA_RECEIVED: + lv_subject_set_int(&mqttStatus,2); + ESP_LOGD(TAG, "\nMQTT_EVENT_DATA"); + ESP_LOGD(TAG, "TOPIC=%.*s\n", event->topic_len, event->topic); + ESP_LOGD(TAG, "DATA=%.*s\n", event->data_len, event->data); + if (strncmp(event->topic, topicTempExt, 27) == 0) + { + if(lvgl_port_lock(50)){ + // on retransforme en float pour ne garder que la partie entiere de la température + float temp = strtof(event->data, NULL); + char buff[5]; + sprintf(buff,"%.1f",temp); + lv_subject_copy_string(&tempExtSubj, buff); + + lvgl_port_unlock(); + } + } + else if (strncmp(event->topic, topicTempInt, 27) == 0) + { + if(lvgl_port_lock(0)){ + // on retransforme en float pour ne garder que la partie entiere de la température + float temp = strtof(event->data, NULL); + char buff[5]; + sprintf(buff,"%.1f",temp); + lv_subject_copy_string(&tempIntSubj, buff); + lvgl_port_unlock(); + } + } + else if (strncmp(event->topic, topicHauteurCuveEvol, 22) == 0) + { + /* float datas[4] = {}; + splitIt(event->data, event->data_len, datas); + ser1->y_points[0] = 130 - (int)datas[0]; + ser1->y_points[1] = 130 - (int)datas[1]; + ser1->y_points[2] = 130 - (int)datas[2]; + ser1->y_points[3] = 130 - (int)datas[3]; + lvgl_port_lock(0); + lv_chart_refresh(chart); + lvgl_port_unlock(); + */ + + // lv_subject_copy_string(&hauteurCuveEvolSubj, event->data); + } + else if (strncmp(event->topic, topicHauteurCuve, 18) == 0) + { + if (lvgl_port_lock(50)){ + float temp = strtof(event->data, NULL); + char buff[5]; + sprintf(buff,"%.0f",temp); + lv_subject_copy_string(&hauteurCuveSubj, buff); + lvgl_port_unlock(); + } + }else if (strncmp(event->topic, topicTest, 4) == 0){ + ESP_LOGD(TAG,"Msg reecu sur test"); + }else if (strncmp(event->topic, topicdomoticCommand, 11) == 0){ + if(strncmp(event->data,"restart",7)==0){ + ESP_LOGI(TAG," Commande 'restart' recue"); + esp_restart(); + } + } + else + { + ESP_LOGE(TAG, "None match :-( %s", event->topic); + } + if (lvgl_port_lock(50)){ + lv_subject_set_int(&mqttStatus,3); + lvgl_port_unlock(); + } + + break; + default: + break; + } +} + +extern EventGroupHandle_t domotic_event_group; void send_event(domo_events evt){ + ESP_LOGE(TAG,"On est dans l'event handler %i", evt); switch(evt){ - case WIFI_CONNECTED: - xEventGroupSetBits(hevt,WIFI_RDY); - start_wifi_logger(); - wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR } + case EVT_WIFI_CONNECTED: + xEventGroupSetBits(domotic_event_group, WIFI_CONNECTED_BIT); ESP_LOGI(TAG, "connected to ap SSID"); if(lvgl_port_lock(0)){ ESP_LOGE(TAG,"Statut Wifi 1"); lv_subject_set_int(&wifiStatus,1); lvgl_port_unlock(); } + break; - case TIME_SETTED: + case EVT_TIME_SETTED: break; } } @@ -297,25 +397,29 @@ void alloc_fail(size_t size, uint32_t caps, const char * function_name){ } + void wifi_cb(wifi_evt evt){ + ESP_LOGE(TAG,"On est dans wifi_cb %i", evt); switch(evt){ - case CONNECTED: + case WIFI_CONNECTED: + mainState.wifi_init=true; send_event(WIFI_CONNECTED); - case DISCONNECTED: + break; + case WIFI_DISCONNECTED: if(lvgl_port_lock(0)){ ESP_LOGE(TAG,"Statut Wifi 0"); lv_subject_set_int(&wifiStatus,0); lvgl_port_unlock(); } break; - case GOT_IP: + case WIFI_GOT_IP: if(lvgl_port_lock(0)){ ESP_LOGE(TAG,"Statut Wifi 1"); lv_subject_set_int(&wifiStatus,1); lvgl_port_unlock(); } break; - case CONNECT_FAIL: + case WIFI_CONNECT_FAIL: if(lvgl_port_lock(0)){ ESP_LOGE(TAG,"Statut Wifi 0"); lv_subject_set_int(&wifiStatus,0); @@ -392,10 +496,52 @@ void weather_data_retreived_start() //} } +LV_IMAGE_DECLARE(mqtt_ok); +LV_IMAGE_DECLARE(mqtt_ko); + +static void mqttStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) +{ + ESP_LOGV(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); + if(lvgl_port_lock(0)){ + lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),3); + if(lv_obj_check_type(wifiSt, &lv_image_class)){ + switch (lv_subject_get_int(subject)) + { + case 0: + lv_image_set_src(wifiSt,&mqtt_ko); + break; + case 1: + lv_image_set_src(wifiSt,&mqtt_ok); + break; + case 2: + lv_color_t color = lv_color_make(255, 0, 0); + lv_obj_set_style_image_recolor_opa(wifiSt, 125, 0); + lv_obj_set_style_image_recolor(wifiSt, color, 0); + vTaskDelay(2000 / portTICK_PERIOD_MS); + + break; + case 3: + lv_obj_set_style_image_recolor_opa(wifiSt, 0, 0); + break; + default: + break; + } + }else{ + ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); + } + lvgl_port_unlock(); + } + //int32_t prev_v = lv_subject_get_previous_int(subject); + //int32_t cur_v = lv_subject_get_int(subject); + + //lv_obj_t * btn = lv_observer_get_target(observer); +} + void app_main(void) { + domotic_event_group = xEventGroupCreate(); printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size()); printf("Free heap size: %" PRIu32 " bytes\n", esp_get_free_heap_size()); heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); @@ -484,17 +630,35 @@ void app_main(void) lv_subject_init_int(&wifiStatus,0); lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); wifi_init_sta(wifi_cb); - // - esp_log_level_set("tcp_handler", ESP_LOG_NONE); + + on_weather_data_retrieval(weather_data_retreived); + on_weather_data_retrieval_start(weather_data_retreived_start); + ESP_LOGW(TAG, "Weather data retrieval initialized"); + initialise_weather_data_retrieval(600000); + TaskHandle_t xHandle = NULL; + BaseType_t ret1; + ret1 = xTaskCreate(&imgdwn, "imageDownload_task", 3 * 1024, NULL, 5, &xHandle); + if (ret1 != pdPASS) + { + ESP_LOGE(TAG, "Impossiblke de creer la tache imageDownload_task %i", ret1); + } + + BaseType_t ret2 = xTaskCreate(&updateTime, "updateTimeTask", 3 * 1024, NULL, 5, NULL); + if (ret2 != pdPASS) + { + ESP_LOGE(TAG, "Impossiblke de creer la tache updateTimeTask %i", ret2); + } + mqtt_app_start(mqtt_cb); + start_wifi_logger(); + wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR } + + + //esp_log_level_set("tcp_handler", ESP_LOG_NONE); printf("8b - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); printf("9 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - on_weather_data_retrieval(weather_data_retreived); - on_weather_data_retrieval_start(weather_data_retreived_start); - initialise_weather_data_retrieval(600000); - ESP_LOGW(TAG, "Weather data retrieval initialized"); - + time_t now; struct tm timeinfo; time(&now); @@ -514,21 +678,6 @@ void app_main(void) printf("11. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - ESP_LOGW(TAG, "On telecharge l'image cuve"); - TaskHandle_t xHandle = NULL; - BaseType_t ret1; - - ret1 = xTaskCreate(&imgdwn, "imageDownload_task", 3 * 1024, NULL, 5, &xHandle); - if (ret1 != pdPASS) - { - ESP_LOGE(TAG, "Impossiblke de creer la tache imageDownload_task %i", ret1); - } - - BaseType_t ret2 = xTaskCreate(&updateTime, "updateTimeTask", 3 * 1024, NULL, 5, NULL); - if (ret2 != pdPASS) - { - ESP_LOGE(TAG, "Impossiblke de creer la tache updateTimeTask %i", ret2); - } printf("12. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); // Show LVGL objects @@ -539,7 +688,8 @@ void app_main(void) ESP_LOGE(TAG,"Impossible d'obtenir le mutex pour draw_ihm"); } - mqtt_app_start(); + lv_subject_init_int(&mqttStatus,-1); + lv_subject_add_observer_obj(&mqttStatus, mqttStatus_obs_cb, NULL, NULL); diff --git a/main/main.h b/main/main.h index 0856623..0cf725f 100644 --- a/main/main.h +++ b/main/main.h @@ -1,2 +1,2 @@ #pragma once -#include "mqtt_client.h" +#define WIFI_CONNECTED_BIT BIT0 diff --git a/main/obtain_time.c b/main/obtain_time.c index 45796b1..df0bea4 100644 --- a/main/obtain_time.c +++ b/main/obtain_time.c @@ -4,6 +4,7 @@ #include "obtain_time.h" #include "esp_lvgl_port.h" #include "ihm.h" +#include "main.h" static const char *TAG = "sntp"; extern lv_subject_t dateHeureSubj; @@ -19,24 +20,41 @@ void time_sync_notification_cb(struct timeval *tv) // Set timezone to Eastern Standard Time and print local time time_t now; struct tm timeinfo; - localtime_r(&now, &timeinfo); - strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); time(&now); localtime_r(&now, &timeinfo); + //strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); + sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min); + localtime_r(&now, &timeinfo); + draw_time(strftime_buf); } void obtain_time() { - ESP_LOGI(TAG, "Initializing and starting SNTP"); - esp_sntp_config_t config = ESP_NETIF_SNTP_DEFAULT_CONFIG("pool.ntp.org"); - config.sync_cb = time_sync_notification_cb; // Note: This is only needed if we want - esp_netif_sntp_init(&config); } +/* FreeRTOS event group to signal when we are connected*/ +EventGroupHandle_t domotic_event_group; + void updateTime(void *pvParameter) { + // Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum + // number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) + EventBits_t bits = xEventGroupWaitBits(domotic_event_group, + WIFI_CONNECTED_BIT, + pdFALSE, + pdFALSE, + portMAX_DELAY); + if (bits & WIFI_CONNECTED_BIT) + { + ESP_LOGI(TAG, "Initializing and starting SNTP"); + esp_sntp_config_t config = ESP_NETIF_SNTP_DEFAULT_CONFIG("pool.ntp.org"); + config.sync_cb = time_sync_notification_cb; // Note: This is only needed if we want + esp_netif_sntp_init(&config); + } + + char strftime_buf[64]; time_t now = 0; while (1) diff --git a/sdkconfig b/sdkconfig index 664de92..80de773 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1240,7 +1240,7 @@ CONFIG_SPIRAM_BOOT_INIT=y CONFIG_SPIRAM_USE_MALLOC=y CONFIG_SPIRAM_MEMTEST=y CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384 -CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y +# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 # CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set # CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set @@ -1371,7 +1371,6 @@ CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_CACHE_TX_BUFFER_NUM=32 CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y @@ -1683,7 +1682,6 @@ CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 CONFIG_LWIP_TCP_OVERSIZE_MSS=y # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -# CONFIG_LWIP_WND_SCALE is not set CONFIG_LWIP_TCP_RTO_TIME=1500 # end of TCP @@ -2398,9 +2396,9 @@ CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y CONFIG_WIFI_RMT_STATIC_RX_BUFFER_NUM=10 CONFIG_WIFI_RMT_DYNAMIC_RX_BUFFER_NUM=32 CONFIG_WIFI_RMT_STATIC_TX_BUFFER=y +# CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER is not set CONFIG_WIFI_RMT_TX_BUFFER_TYPE=0 CONFIG_WIFI_RMT_STATIC_TX_BUFFER_NUM=16 -CONFIG_WIFI_RMT_CACHE_TX_BUFFER_NUM=32 CONFIG_WIFI_RMT_STATIC_RX_MGMT_BUFFER=y # CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUFFER is not set CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUF=0 @@ -2410,7 +2408,6 @@ CONFIG_WIFI_RMT_AMPDU_TX_ENABLED=y CONFIG_WIFI_RMT_TX_BA_WIN=6 CONFIG_WIFI_RMT_AMPDU_RX_ENABLED=y CONFIG_WIFI_RMT_RX_BA_WIN=6 -# CONFIG_WIFI_RMT_AMSDU_TX_ENABLED is not set CONFIG_WIFI_RMT_NVS_ENABLED=y CONFIG_WIFI_RMT_SOFTAP_BEACON_MAX_LEN=752 CONFIG_WIFI_RMT_MGMT_SBUF_NUM=32 @@ -2634,7 +2631,7 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" # CONFIG_LV_ENABLE_GLOBAL_CUSTOM is not set CONFIG_LV_CACHE_DEF_SIZE=0 CONFIG_LV_IMAGE_HEADER_CACHE_DEF_CNT=0 -CONFIG_LV_GRADIENT_MAX_STOPS=50 +CONFIG_LV_GRADIENT_MAX_STOPS=2 CONFIG_LV_COLOR_MIX_ROUND_OFS=128 # CONFIG_LV_OBJ_STYLE_CACHE is not set # CONFIG_LV_USE_OBJ_ID is not set @@ -2832,7 +2829,7 @@ CONFIG_LV_USE_LODEPNG=y # CONFIG_LV_USE_PROFILER is not set CONFIG_LV_USE_MONKEY=y # CONFIG_LV_USE_GRIDNAV is not set -CONFIG_LV_USE_FRAGMENT=y +# CONFIG_LV_USE_FRAGMENT is not set # CONFIG_LV_USE_IMGFONT is not set CONFIG_LV_USE_OBSERVER=y # CONFIG_LV_USE_IME_PINYIN is not set @@ -2953,7 +2950,6 @@ CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y @@ -3056,7 +3052,6 @@ CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 6401c38..2c812f8 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -76,3 +76,11 @@ CONFIG_LV_FS_STDIO_CACHE_SIZE=0 # Necessaire pour lire le png CONFIG_LV_USE_LODEPNG=y +#Dégradés +CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS=y + +#Necessaire pour compiler avec les struct internes +CONFIG_LV_USE_PRIVATE_API=y + +CONFIG_SPIRAM_USE_MALLOC=y + diff --git a/sdkconfig.old b/sdkconfig.old index cebf5df..315e2ae 100644 --- a/sdkconfig.old +++ b/sdkconfig.old @@ -1,6 +1,6 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.3.1 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Configuration # CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 @@ -14,6 +14,8 @@ CONFIG_SOC_GDMA_SUPPORTED=y CONFIG_SOC_AHB_GDMA_SUPPORTED=y CONFIG_SOC_GPTIMER_SUPPORTED=y CONFIG_SOC_LCDCAM_SUPPORTED=y +CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y +CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y CONFIG_SOC_MCPWM_SUPPORTED=y CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y CONFIG_SOC_CACHE_SUPPORT_WRAP=y @@ -119,6 +121,7 @@ CONFIG_SOC_GPIO_OUT_RANGE_MAX=48 CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000 CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y @@ -133,6 +136,7 @@ CONFIG_SOC_I2C_SUPPORT_RTC=y CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y +CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_2=y CONFIG_SOC_I2S_SUPPORTS_XTAL=y @@ -146,6 +150,7 @@ CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 CONFIG_SOC_I2S_SUPPORTS_TDM=y CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y +CONFIG_SOC_LEDC_TIMER_NUM=4 CONFIG_SOC_LEDC_CHANNEL_NUM=8 CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=14 CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y @@ -189,6 +194,10 @@ CONFIG_SOC_LCD_RGB_PANELS=1 CONFIG_SOC_LCD_I80_BUS_WIDTH=16 CONFIG_SOC_LCD_RGB_DATA_WIDTH=16 CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y +CONFIG_SOC_LCDCAM_I80_NUM_BUSES=1 +CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16 +CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1 +CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16 CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128 CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549 CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128 @@ -295,6 +304,7 @@ CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y CONFIG_SOC_PM_CPU_RETENTION_BY_RTCCNTL=y CONFIG_SOC_PM_MODEM_RETENTION_BY_BACKUPDMA=y +CONFIG_SOC_PM_MODEM_PD_BY_SW=y CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y @@ -331,6 +341,7 @@ CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y +CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y CONFIG_SOC_COEX_HW_PTI=y CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y @@ -355,10 +366,11 @@ CONFIG_SOC_ULP_HAS_ADC=y CONFIG_SOC_PHY_COMBO_MODULE=y CONFIG_IDF_CMAKE=y CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_XTENSA=y CONFIG_IDF_TARGET_ARCH="xtensa" CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="5.3.1" +CONFIG_IDF_INIT_VERSION="5.4.0" CONFIG_IDF_TARGET_ESP32S3=y CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009 @@ -390,6 +402,10 @@ CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set + +# +# Log +# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -398,6 +414,14 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format +# end of Log + # # Serial Flash Configurations # @@ -438,7 +462,7 @@ CONFIG_APP_COMPILE_TIME_DATE=y # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 # end of Application manager CONFIG_ESP_ROM_HAS_CRC_LE=y @@ -468,6 +492,7 @@ CONFIG_ESP_ROM_HAS_CACHE_WRITEBACK_BUG=y CONFIG_ESP_ROM_HAS_SW_FLOAT=y CONFIG_ESP_ROM_HAS_VERSION=y CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y # # Boot ROM Behavior @@ -494,7 +519,6 @@ CONFIG_ESPTOOLPY_FLASHMODE="dio" CONFIG_ESPTOOLPY_FLASHFREQ_80M=y # CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set @@ -521,6 +545,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 # CONFIG_PARTITION_TABLE_SINGLE_APP is not set # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set # CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" @@ -594,13 +619,14 @@ CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y # # Compiler options # -CONFIG_COMPILER_OPTIMIZATION_DEBUG=y +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +CONFIG_COMPILER_OPTIMIZATION_PERF=y # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set @@ -611,14 +637,18 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set # CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set # CONFIG_COMPILER_DUMP_RTL_FILES is not set CONFIG_COMPILER_RT_LIB_GCCLIB=y CONFIG_COMPILER_RT_LIB_NAME="gcc" # CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y +# CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options # @@ -723,13 +753,13 @@ CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y # CONFIG_ESP_COEX_ENABLED=y # CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set +# CONFIG_ESP_COEX_GPIO_DEBUG is not set # end of Wireless Coexistence # # Common ESP-related # CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -CONFIG_ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y # end of Common ESP-related # @@ -752,6 +782,7 @@ CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y # # CONFIG_I2C_ISR_IRAM_SAFE is not set # CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set # end of ESP-Driver:I2C Configurations # @@ -852,6 +883,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client # @@ -859,6 +891,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y # # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA # @@ -879,6 +912,12 @@ CONFIG_ESP_REV_MIN_FULL=0 # CONFIG_ESP32S3_REV_MAX_FULL=99 CONFIG_ESP_REV_MAX_FULL=99 +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 + +# +# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99) +# # end of Chip revision # @@ -945,33 +984,32 @@ CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y # end of Hardware Settings # -# LCD and Touch Panel +# ESP-Driver:LCD Controller Configurations # - -# -# LCD Touch Drivers are maintained in the IDF Component Registry -# - -# -# LCD Peripheral Configuration -# -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 # CONFIG_LCD_ENABLE_DEBUG_LOG is not set # CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set # CONFIG_LCD_RGB_RESTART_IN_VSYNC is not set -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel +# end of ESP-Driver:LCD Controller Configurations + +# +# ESP-MM: Memory Management Configurations +# +# CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set +# end of ESP-MM: Memory Management Configurations # # ESP NETIF Adapter # CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y # CONFIG_ESP_NETIF_LOOPBACK is not set CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set # CONFIG_ESP_NETIF_L2_TAP is not set # CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set # end of ESP NETIF Adapter # @@ -995,12 +1033,14 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY # # Power Management # # CONFIG_PM_ENABLE is not set +# CONFIG_PM_SLP_IRAM_OPT is not set CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y # end of Power Management @@ -1013,29 +1053,30 @@ CONFIG_SPIRAM=y # # SPI RAM config # -# CONFIG_SPIRAM_MODE_QUAD is not set -CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_MODE_QUAD=y +# CONFIG_SPIRAM_MODE_OCT is not set CONFIG_SPIRAM_TYPE_AUTO=y +# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set +# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set # CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set -CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y CONFIG_SPIRAM_CLK_IO=30 CONFIG_SPIRAM_CS_IO=26 -# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set -# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set -# CONFIG_SPIRAM_RODATA is not set -CONFIG_SPIRAM_SPEED_80M=y -# CONFIG_SPIRAM_SPEED_40M is not set -CONFIG_SPIRAM_SPEED=80 -# CONFIG_SPIRAM_ECC_ENABLE is not set +CONFIG_SPIRAM_XIP_FROM_PSRAM=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +# CONFIG_SPIRAM_SPEED_120M is not set +# CONFIG_SPIRAM_SPEED_80M is not set +CONFIG_SPIRAM_SPEED_40M=y +CONFIG_SPIRAM_SPEED=40 CONFIG_SPIRAM_BOOT_INIT=y +# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set # CONFIG_SPIRAM_USE_MEMMAP is not set -# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set -CONFIG_SPIRAM_USE_MALLOC=y +CONFIG_SPIRAM_USE_CAPS_ALLOC=y +# CONFIG_SPIRAM_USE_MALLOC is not set CONFIG_SPIRAM_MEMTEST=y -CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384 # CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set -CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768 -CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y +# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set +# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set # end of SPI RAM config # end of ESP PSRAM @@ -1045,13 +1086,18 @@ CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set # end of ESP Ringbuf +# +# ESP Security Specific +# +# end of ESP Security Specific + # # ESP System Settings # # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 # # Cache config @@ -1073,9 +1119,9 @@ CONFIG_ESP32S3_DATA_CACHE_SIZE=0x8000 CONFIG_ESP32S3_DATA_CACHE_8WAYS=y CONFIG_ESP32S3_DCACHE_ASSOCIATED_WAYS=8 # CONFIG_ESP32S3_DATA_CACHE_LINE_16B is not set -# CONFIG_ESP32S3_DATA_CACHE_LINE_32B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y -CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=64 +CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y +# CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set +CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 # end of Cache config # @@ -1092,10 +1138,9 @@ CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=64 CONFIG_ESP32S3_TRACEMEM_RESERVE_DRAM=0x0 # end of Trace memory -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y +# CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT is not set # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y @@ -1107,8 +1152,8 @@ CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y # end of Memory protection CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4608 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=30000 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y # CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set @@ -1188,10 +1233,10 @@ CONFIG_ESP_TIMER_IMPL_SYSTIMER=y CONFIG_ESP_WIFI_ENABLED=y CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER=y -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_CACHE_TX_BUFFER_NUM=32 +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y # CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 @@ -1201,15 +1246,14 @@ CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP_WIFI_TX_BA_WIN=6 CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP_WIFI_RX_BA_WIN=6 -# CONFIG_ESP_WIFI_AMSDU_TX_ENABLED is not set CONFIG_ESP_WIFI_NVS_ENABLED=y CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y # CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -# CONFIG_ESP_WIFI_IRAM_OPT is not set +CONFIG_ESP_WIFI_IRAM_OPT=y # CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set -# CONFIG_ESP_WIFI_RX_IRAM_OPT is not set +CONFIG_ESP_WIFI_RX_IRAM_OPT=y CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP_WIFI_ENABLE_SAE_PK=y CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y @@ -1221,16 +1265,18 @@ CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 # CONFIG_ESP_WIFI_FTM_ENABLE is not set CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y # CONFIG_ESP_WIFI_GCMP_SUPPORT is not set -# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set +CONFIG_ESP_WIFI_GMAC_SUPPORT=y CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# CONFIG_ESP_WIFI_EAP_TLS1_3 is not set # CONFIG_ESP_WIFI_WAPI_PSK is not set # CONFIG_ESP_WIFI_SUITE_B_192 is not set # CONFIG_ESP_WIFI_11KV_SUPPORT is not set # CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# CONFIG_ESP_WIFI_ENABLE_ROAMING_APP is not set # CONFIG_ESP_WIFI_DPP_SUPPORT is not set # CONFIG_ESP_WIFI_11R_SUPPORT is not set # CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set @@ -1252,8 +1298,8 @@ CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y # FAT Filesystem support # CONFIG_FATFS_VOLUME_COUNT=2 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_NONE is not set +CONFIG_FATFS_LFN_HEAP=y # CONFIG_FATFS_LFN_STACK is not set # CONFIG_FATFS_SECTOR_512 is not set CONFIG_FATFS_SECTOR_4096=y @@ -1280,11 +1326,17 @@ CONFIG_FATFS_CODEPAGE_437=y # CONFIG_FATFS_CODEPAGE_949 is not set # CONFIG_FATFS_CODEPAGE_950 is not set CONFIG_FATFS_CODEPAGE=437 +CONFIG_FATFS_MAX_LFN=255 +CONFIG_FATFS_API_ENCODING_ANSI_OEM=y +# CONFIG_FATFS_API_ENCODING_UTF_8 is not set CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y # CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 # CONFIG_FATFS_IMMEDIATE_FSYNC is not set # CONFIG_FATFS_USE_LABEL is not set @@ -1310,6 +1362,7 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 # CONFIG_FREERTOS_USE_TICK_HOOK is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" # CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set # CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set @@ -1320,16 +1373,19 @@ CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +CONFIG_FREERTOS_USE_TRACE_FACILITY=y +CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y # CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y +CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U32=y +# CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is not set # CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set # end of Kernel # # Port # -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set @@ -1337,14 +1393,22 @@ CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=1536 CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +# CONFIG_FREERTOS_FPU_IN_ISR is not set CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y # CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y +CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set # end of Port +# +# Extra +# +# CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM is not set +# end of Extra + CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y @@ -1365,6 +1429,7 @@ CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 CONFIG_HAL_WDT_USE_ROM_IMPL=y CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y +# CONFIG_HAL_ECDSA_GEN_SIG_CM is not set # end of Hardware Abstraction Layer (HAL) and Low Level (LL) # @@ -1383,7 +1448,11 @@ CONFIG_HEAP_TRACING_OFF=y # end of Heap memory debugging # -# Log output +# Log +# + +# +# Log Level # # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set @@ -1392,15 +1461,33 @@ CONFIG_LOG_DEFAULT_LEVEL_INFO=y # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set CONFIG_LOG_DEFAULT_LEVEL=3 -# CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT is not set -CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=4 +CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# # CONFIG_LOG_MASTER_LEVEL is not set -CONFIG_LOG_COLORS=y +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# +# CONFIG_LOG_COLORS is not set CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output +# end of Format +# end of Log # # LWIP @@ -1439,6 +1526,8 @@ CONFIG_LWIP_ESP_MLDV6_REPORT=y CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set @@ -1453,6 +1542,7 @@ CONFIG_LWIP_DHCPS=y CONFIG_LWIP_DHCPS_LEASE_UNIT=60 CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server # CONFIG_LWIP_AUTOIP is not set @@ -1511,9 +1601,24 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_LWIP_PPP_SUPPORT is not set CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +CONFIG_LWIP_PPP_SUPPORT=y +CONFIG_LWIP_PPP_ENABLE_IPV4=y +CONFIG_LWIP_PPP_ENABLE_IPV6=y +# CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT is not set +# CONFIG_LWIP_PPP_PAP_SUPPORT is not set +# CONFIG_LWIP_PPP_CHAP_SUPPORT is not set +# CONFIG_LWIP_PPP_MSCHAP_SUPPORT is not set +# CONFIG_LWIP_PPP_MPPE_SUPPORT is not set +CONFIG_LWIP_PPP_SERVER_SUPPORT=y +CONFIG_LWIP_PPP_VJ_HEADER_COMPRESSION=y +# CONFIG_LWIP_ENABLE_LCP_ECHO is not set +# CONFIG_LWIP_PPP_DEBUG_ON is not set +# CONFIG_LWIP_USE_EXTERNAL_MBEDTLS is not set # CONFIG_LWIP_SLIP_SUPPORT is not set # @@ -1543,8 +1648,10 @@ CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 # # DNS # +CONFIG_LWIP_DNS_MAX_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1568,8 +1675,10 @@ CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y -# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set +# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set +CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y # CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set # end of Hooks @@ -1617,7 +1726,7 @@ CONFIG_MBEDTLS_CMAC_C=y CONFIG_MBEDTLS_HARDWARE_AES=y CONFIG_MBEDTLS_AES_USE_INTERRUPT=y CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 -# CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER is not set +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y CONFIG_MBEDTLS_HARDWARE_MPI=y # CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y @@ -1631,6 +1740,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y CONFIG_MBEDTLS_SHA512_C=y +# CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set @@ -1684,6 +1794,8 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y # end of Certificates CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y # CONFIG_MBEDTLS_DHM_C is not set CONFIG_MBEDTLS_ECDH_C=y CONFIG_MBEDTLS_ECDSA_C=y @@ -1701,12 +1813,13 @@ CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y +# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set # CONFIG_MBEDTLS_POLY1305_C is not set # CONFIG_MBEDTLS_CHACHA20_C is not set # CONFIG_MBEDTLS_HKDF_C is not set # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y # end of mbedTLS # @@ -1714,23 +1827,15 @@ CONFIG_MBEDTLS_ERROR_STRINGS=y # CONFIG_MQTT_PROTOCOL_311=y # CONFIG_MQTT_PROTOCOL_5 is not set -# CONFIG_MQTT_TRANSPORT_SSL is not set -# CONFIG_MQTT_TRANSPORT_WEBSOCKET is not set +CONFIG_MQTT_TRANSPORT_SSL=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -CONFIG_MQTT_USE_CUSTOM_CONFIG=y -CONFIG_MQTT_TCP_DEFAULT_PORT=1883 -CONFIG_MQTT_BUFFER_SIZE=100 -CONFIG_MQTT_TASK_STACK_SIZE=4096 -# CONFIG_MQTT_DISABLE_API_LOCKS is not set -CONFIG_MQTT_TASK_PRIORITY=5 -CONFIG_MQTT_POLL_READ_TIMEOUT_MS=10000 -CONFIG_MQTT_EVENT_QUEUE_SIZE=1 +# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -CONFIG_MQTT_OUTBOX_DATA_ON_EXTERNAL_MEMORY=y # CONFIG_MQTT_CUSTOM_OUTBOX is not set -CONFIG_MQTT_OUTBOX_EXPIRED_TIMEOUT_MS=30000 # end of ESP-MQTT Configurations # @@ -1757,6 +1862,7 @@ CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y # CONFIG_NVS_ENCRYPTION is not set # CONFIG_NVS_ASSERT_ERROR_CHECK is not set # CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set # end of NVS # @@ -1804,9 +1910,9 @@ CONFIG_SPI_FLASH_HPM_AUTO=y CONFIG_SPI_FLASH_HPM_ON=y CONFIG_SPI_FLASH_HPM_DC_AUTO=y # CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set -CONFIG_SPI_FLASH_SUSPEND_QVL_SUPPORTED=y # CONFIG_SPI_FLASH_AUTO_SUSPEND is not set CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 +# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -1873,13 +1979,15 @@ CONFIG_VFS_SUPPORT_SELECT=y CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y # CONFIG_VFS_SELECT_IN_RAM is not set CONFIG_VFS_SUPPORT_TERMIOS=y -CONFIG_VFS_MAX_COUNT=8 +CONFIG_VFS_MAX_COUNT=15 # # Host File System I/O (Semihosting) # CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y # end of Virtual file system # @@ -1893,20 +2001,38 @@ CONFIG_WL_SECTOR_SIZE=4096 # # WiFi Logger configuration # -# CONFIG_TRANSPORT_PROTOCOL_UDP is not set -CONFIG_TRANSPORT_PROTOCOL_TCP=y +CONFIG_TRANSPORT_PROTOCOL_UDP=y +# CONFIG_TRANSPORT_PROTOCOL_TCP is not set # CONFIG_TRANSPORT_PROTOCOL_WEBSOCKET is not set -CONFIG_ROUTE_ESP_IDF_API_LOGS_TO_WIFI=y -CONFIG_SERVER_IP_ADDRESS="192.168.0.28" +# CONFIG_ROUTE_ESP_IDF_API_LOGS_TO_WIFI is not set +CONFIG_SERVER_IP_ADDRESS="192.168.0.10" CONFIG_SERVER_PORT=9999 CONFIG_MESSAGE_QUEUE_SIZE=1000 CONFIG_BUFFER_SIZE=512 # end of WiFi Logger configuration +# +# Audio playback +# +CONFIG_AUDIO_PLAYER_ENABLE_MP3=y +CONFIG_AUDIO_PLAYER_ENABLE_WAV=y +CONFIG_AUDIO_PLAYER_LOG_LEVEL=0 +# end of Audio playback + +# +# eppp_link +# +CONFIG_EPPP_LINK_USES_LWIP=y +CONFIG_EPPP_LINK_DEVICE_UART=y +# CONFIG_EPPP_LINK_DEVICE_SPI is not set +# CONFIG_EPPP_LINK_DEVICE_SDIO is not set +CONFIG_EPPP_LINK_CONN_MAX_RETRY=6 +# end of eppp_link + # # ESP LCD TOUCH # -CONFIG_ESP_LCD_TOUCH_MAX_POINTS=1 +CONFIG_ESP_LCD_TOUCH_MAX_POINTS=5 CONFIG_ESP_LCD_TOUCH_MAX_BUTTONS=1 # end of ESP LCD TOUCH @@ -1916,6 +2042,93 @@ CONFIG_ESP_LCD_TOUCH_MAX_BUTTONS=1 # CONFIG_ESP_WS_CLIENT_ENABLE_DYNAMIC_BUFFER is not set # end of ESP WebSocket client +# +# Wi-Fi Remote +# +CONFIG_ESP_WIFI_REMOTE_ENABLED=y +CONFIG_SLAVE_IDF_TARGET_ESP32=y +# CONFIG_SLAVE_IDF_TARGET_ESP32S2 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32C3 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32S3 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32C2 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32C6 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32C5 is not set +# CONFIG_SLAVE_IDF_TARGET_ESP32C61 is not set +CONFIG_SLAVE_SOC_WIFI_SUPPORTED=y +CONFIG_SLAVE_SOC_WIFI_WAPI_SUPPORT=y +CONFIG_SLAVE_SOC_WIFI_CSI_SUPPORT=y +CONFIG_SLAVE_SOC_WIFI_MESH_SUPPORT=y +CONFIG_SLAVE_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y +CONFIG_SLAVE_SOC_WIFI_NAN_SUPPORT=y +CONFIG_SLAVE_IDF_TARGET_ARCH_XTENSA=y +CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y +# CONFIG_ESP_WIFI_REMOTE_LIBRARY_EPPP is not set + +# +# Wi-Fi configuration +# +CONFIG_WIFI_RMT_STATIC_RX_BUFFER_NUM=10 +CONFIG_WIFI_RMT_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_WIFI_RMT_STATIC_TX_BUFFER is not set +CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER=y +CONFIG_WIFI_RMT_TX_BUFFER_TYPE=1 +CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER_NUM=32 +CONFIG_WIFI_RMT_STATIC_RX_MGMT_BUFFER=y +# CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUFFER is not set +CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUF=0 +CONFIG_WIFI_RMT_RX_MGMT_BUF_NUM_DEF=5 +# CONFIG_WIFI_RMT_CSI_ENABLED is not set +CONFIG_WIFI_RMT_AMPDU_TX_ENABLED=y +CONFIG_WIFI_RMT_TX_BA_WIN=6 +CONFIG_WIFI_RMT_AMPDU_RX_ENABLED=y +CONFIG_WIFI_RMT_RX_BA_WIN=6 +CONFIG_WIFI_RMT_NVS_ENABLED=y +CONFIG_WIFI_RMT_TASK_PINNED_TO_CORE_0=y +# CONFIG_WIFI_RMT_TASK_PINNED_TO_CORE_1 is not set +CONFIG_WIFI_RMT_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_WIFI_RMT_MGMT_SBUF_NUM=32 +CONFIG_WIFI_RMT_IRAM_OPT=y +# CONFIG_WIFI_RMT_EXTRA_IRAM_OPT is not set +CONFIG_WIFI_RMT_RX_IRAM_OPT=y +CONFIG_WIFI_RMT_ENABLE_WPA3_SAE=y +CONFIG_WIFI_RMT_ENABLE_SAE_PK=y +CONFIG_WIFI_RMT_SOFTAP_SAE_SUPPORT=y +CONFIG_WIFI_RMT_ENABLE_WPA3_OWE_STA=y +# CONFIG_WIFI_RMT_SLP_IRAM_OPT is not set +CONFIG_WIFI_RMT_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +CONFIG_WIFI_RMT_SLP_DEFAULT_MAX_ACTIVE_TIME=10 +CONFIG_WIFI_RMT_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 +CONFIG_WIFI_RMT_STA_DISCONNECTED_PM_ENABLE=y +CONFIG_WIFI_RMT_GMAC_SUPPORT=y +CONFIG_WIFI_RMT_SOFTAP_SUPPORT=y +# CONFIG_WIFI_RMT_SLP_BEACON_LOST_OPT is not set +CONFIG_WIFI_RMT_ESPNOW_MAX_ENCRYPT_NUM=7 +# CONFIG_WIFI_RMT_NAN_ENABLE is not set +CONFIG_WIFI_RMT_MBEDTLS_CRYPTO=y +CONFIG_WIFI_RMT_MBEDTLS_TLS_CLIENT=y +# CONFIG_WIFI_RMT_EAP_TLS1_3 is not set +# CONFIG_WIFI_RMT_WAPI_PSK is not set +# CONFIG_WIFI_RMT_11KV_SUPPORT is not set +# CONFIG_WIFI_RMT_MBO_SUPPORT is not set +# CONFIG_WIFI_RMT_ENABLE_ROAMING_APP is not set +# CONFIG_WIFI_RMT_DPP_SUPPORT is not set +# CONFIG_WIFI_RMT_11R_SUPPORT is not set +# CONFIG_WIFI_RMT_WPS_SOFTAP_REGISTRAR is not set + +# +# WPS Configuration Options +# +# CONFIG_WIFI_RMT_WPS_STRICT is not set +# CONFIG_WIFI_RMT_WPS_PASSPHRASE is not set +# end of WPS Configuration Options + +# CONFIG_WIFI_RMT_DEBUG_PRINT is not set +# CONFIG_WIFI_RMT_TESTING_OPTIONS is not set +CONFIG_WIFI_RMT_ENTERPRISE_SUPPORT=y +# CONFIG_WIFI_RMT_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi configuration +# end of Wi-Fi Remote + # # LittleFS # @@ -1940,7 +2153,9 @@ CONFIG_LITTLEFS_MTIME_USE_SECONDS=y # CONFIG_LITTLEFS_MALLOC_STRATEGY_DISABLE is not set CONFIG_LITTLEFS_MALLOC_STRATEGY_DEFAULT=y # CONFIG_LITTLEFS_MALLOC_STRATEGY_INTERNAL is not set +# CONFIG_LITTLEFS_MALLOC_STRATEGY_SPIRAM is not set CONFIG_LITTLEFS_ASSERTS=y +# CONFIG_LITTLEFS_MMAP_PARTITION is not set # end of LittleFS # @@ -1963,17 +2178,20 @@ CONFIG_LV_COLOR_DEPTH=16 # # Memory Settings # -# CONFIG_LV_USE_BUILTIN_MALLOC is not set -CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_BUILTIN_MALLOC=y +# CONFIG_LV_USE_CLIB_MALLOC is not set # CONFIG_LV_USE_MICROPYTHON_MALLOC is not set # CONFIG_LV_USE_RTTHREAD_MALLOC is not set # CONFIG_LV_USE_CUSTOM_MALLOC is not set CONFIG_LV_USE_BUILTIN_STRING=y # CONFIG_LV_USE_CLIB_STRING is not set # CONFIG_LV_USE_CUSTOM_STRING is not set -# CONFIG_LV_USE_BUILTIN_SPRINTF is not set -CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_BUILTIN_SPRINTF=y +# CONFIG_LV_USE_CLIB_SPRINTF is not set # CONFIG_LV_USE_CUSTOM_SPRINTF is not set +CONFIG_LV_MEM_SIZE_KILOBYTES=64 +CONFIG_LV_MEM_POOL_EXPAND_SIZE_KILOBYTES=0 +CONFIG_LV_MEM_ADR=0x0 # end of Memory Settings # @@ -2009,15 +2227,15 @@ CONFIG_LV_DRAW_SW_SUPPORT_RGB565A8=y CONFIG_LV_DRAW_SW_SUPPORT_RGB888=y CONFIG_LV_DRAW_SW_SUPPORT_XRGB8888=y CONFIG_LV_DRAW_SW_SUPPORT_ARGB8888=y -# CONFIG_LV_DRAW_SW_SUPPORT_L8 is not set -# CONFIG_LV_DRAW_SW_SUPPORT_AL88 is not set -# CONFIG_LV_DRAW_SW_SUPPORT_A8 is not set -# CONFIG_LV_DRAW_SW_SUPPORT_I1 is not set +CONFIG_LV_DRAW_SW_SUPPORT_L8=y +CONFIG_LV_DRAW_SW_SUPPORT_AL88=y +CONFIG_LV_DRAW_SW_SUPPORT_A8=y +CONFIG_LV_DRAW_SW_SUPPORT_I1=y CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1 # CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set -CONFIG_LV_USE_NATIVE_HELIUM_ASM=y +# CONFIG_LV_USE_NATIVE_HELIUM_ASM is not set CONFIG_LV_DRAW_SW_COMPLEX=y -# CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS is not set +CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS=y CONFIG_LV_DRAW_SW_SHADOW_CACHE_SIZE=0 CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4 CONFIG_LV_DRAW_SW_ASM_NONE=y @@ -2040,26 +2258,7 @@ CONFIG_LV_USE_DRAW_SW_ASM=0 # # Logging # -CONFIG_LV_USE_LOG=y -# CONFIG_LV_LOG_LEVEL_TRACE is not set -# CONFIG_LV_LOG_LEVEL_INFO is not set -CONFIG_LV_LOG_LEVEL_WARN=y -# CONFIG_LV_LOG_LEVEL_ERROR is not set -# CONFIG_LV_LOG_LEVEL_USER is not set -# CONFIG_LV_LOG_LEVEL_NONE is not set -CONFIG_LV_LOG_LEVEL=2 -CONFIG_LV_LOG_PRINTF=y -# CONFIG_LV_LOG_USE_TIMESTAMP is not set -CONFIG_LV_LOG_USE_FILE_LINE=y -# CONFIG_LV_LOG_TRACE_MEM is not set -# CONFIG_LV_LOG_TRACE_TIMER is not set -CONFIG_LV_LOG_TRACE_INDEV=y -# CONFIG_LV_LOG_TRACE_DISP_REFR is not set -# CONFIG_LV_LOG_TRACE_EVENT is not set -# CONFIG_LV_LOG_TRACE_OBJ_CREATE is not set -# CONFIG_LV_LOG_TRACE_LAYOUT is not set -# CONFIG_LV_LOG_TRACE_ANIM is not set -CONFIG_LV_LOG_TRACE_CACHE=y +# CONFIG_LV_USE_LOG is not set # end of Logging # @@ -2067,7 +2266,7 @@ CONFIG_LV_LOG_TRACE_CACHE=y # CONFIG_LV_USE_ASSERT_NULL=y CONFIG_LV_USE_ASSERT_MALLOC=y -CONFIG_LV_USE_ASSERT_STYLE=y +# CONFIG_LV_USE_ASSERT_STYLE is not set # CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set # CONFIG_LV_USE_ASSERT_OBJ is not set CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" @@ -2103,7 +2302,7 @@ CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1 CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y # CONFIG_LV_USE_FLOAT is not set # CONFIG_LV_USE_MATRIX is not set -# CONFIG_LV_USE_PRIVATE_API is not set +CONFIG_LV_USE_PRIVATE_API=y # end of Compiler Settings # @@ -2113,27 +2312,27 @@ CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y # # Enable built-in fonts # -# CONFIG_LV_FONT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_MONTSERRAT_10 is not set -# CONFIG_LV_FONT_MONTSERRAT_12 is not set +CONFIG_LV_FONT_MONTSERRAT_8=y +CONFIG_LV_FONT_MONTSERRAT_10=y +CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_14=y -# CONFIG_LV_FONT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_MONTSERRAT_38 is not set +CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y +CONFIG_LV_FONT_MONTSERRAT_20=y +CONFIG_LV_FONT_MONTSERRAT_22=y +CONFIG_LV_FONT_MONTSERRAT_24=y +CONFIG_LV_FONT_MONTSERRAT_26=y +CONFIG_LV_FONT_MONTSERRAT_28=y +CONFIG_LV_FONT_MONTSERRAT_30=y +CONFIG_LV_FONT_MONTSERRAT_32=y +CONFIG_LV_FONT_MONTSERRAT_34=y +CONFIG_LV_FONT_MONTSERRAT_36=y +CONFIG_LV_FONT_MONTSERRAT_38=y CONFIG_LV_FONT_MONTSERRAT_40=y -# CONFIG_LV_FONT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_MONTSERRAT_48 is not set +CONFIG_LV_FONT_MONTSERRAT_42=y +CONFIG_LV_FONT_MONTSERRAT_44=y +CONFIG_LV_FONT_MONTSERRAT_46=y +CONFIG_LV_FONT_MONTSERRAT_48=y # CONFIG_LV_FONT_MONTSERRAT_28_COMPRESSED is not set # CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set # CONFIG_LV_FONT_SIMSUN_14_CJK is not set @@ -2179,7 +2378,7 @@ CONFIG_LV_USE_FONT_PLACEHOLDER=y # CONFIG_LV_TXT_ENC_UTF8=y # CONFIG_LV_TXT_ENC_ASCII is not set -CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)]}" +CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)}" CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0 # CONFIG_LV_USE_BIDI is not set # CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set @@ -2194,7 +2393,11 @@ CONFIG_LV_USE_ARC=y CONFIG_LV_USE_BAR=y CONFIG_LV_USE_BUTTON=y CONFIG_LV_USE_BUTTONMATRIX=y -# CONFIG_LV_USE_CALENDAR is not set +CONFIG_LV_USE_CALENDAR=y +# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set +CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y +CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y +# CONFIG_LV_USE_CALENDAR_CHINESE is not set CONFIG_LV_USE_CANVAS=y CONFIG_LV_USE_CHART=y CONFIG_LV_USE_CHECKBOX=y @@ -2282,12 +2485,11 @@ CONFIG_LV_USE_LODEPNG=y # Others # # CONFIG_LV_USE_SNAPSHOT is not set -CONFIG_LV_USE_SYSMON=y -# CONFIG_LV_USE_PERF_MONITOR is not set +# CONFIG_LV_USE_SYSMON is not set # CONFIG_LV_USE_PROFILER is not set -# CONFIG_LV_USE_MONKEY is not set +CONFIG_LV_USE_MONKEY=y # CONFIG_LV_USE_GRIDNAV is not set -CONFIG_LV_USE_FRAGMENT=y +# CONFIG_LV_USE_FRAGMENT is not set # CONFIG_LV_USE_IMGFONT is not set CONFIG_LV_USE_OBSERVER=y # CONFIG_LV_USE_IME_PINYIN is not set @@ -2319,17 +2521,19 @@ CONFIG_LV_USE_OBSERVER=y # # Examples # -# CONFIG_LV_BUILD_EXAMPLES is not set +CONFIG_LV_BUILD_EXAMPLES=y # end of Examples # # Demos # -# CONFIG_LV_USE_DEMO_WIDGETS is not set +CONFIG_LV_USE_DEMO_WIDGETS=y # CONFIG_LV_USE_DEMO_KEYPAD_AND_ENCODER is not set +CONFIG_LV_USE_DEMO_BENCHMARK=y # CONFIG_LV_USE_DEMO_RENDER is not set # CONFIG_LV_USE_DEMO_SCROLL is not set -# CONFIG_LV_USE_DEMO_STRESS is not set +CONFIG_LV_USE_DEMO_STRESS=y +# CONFIG_LV_USE_DEMO_TRANSFORM is not set # CONFIG_LV_USE_DEMO_MUSIC is not set # CONFIG_LV_USE_DEMO_FLEX_LAYOUT is not set # CONFIG_LV_USE_DEMO_MULTILANG is not set @@ -2337,7 +2541,7 @@ CONFIG_LV_USE_OBSERVER=y # end of LVGL configuration # end of Component config -# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set +CONFIG_IDF_EXPERIMENTAL_FEATURES=y # Deprecated options for backward compatibility # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set @@ -2356,9 +2560,9 @@ CONFIG_FLASHMODE_QIO=y # CONFIG_FLASHMODE_DIO is not set # CONFIG_FLASHMODE_DOUT is not set CONFIG_MONITOR_BAUD=115200 -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y @@ -2397,12 +2601,12 @@ CONFIG_ESP32S3_SPIRAM_SUPPORT=y CONFIG_DEFAULT_PSRAM_CLK_IO=30 CONFIG_DEFAULT_PSRAM_CS_IO=26 # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set -# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160 is not set -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y -CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=240 +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160=y +# CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=160 CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=4608 -CONFIG_MAIN_TASK_STACK_SIZE=30000 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 CONFIG_CONSOLE_UART_DEFAULT=y # CONFIG_CONSOLE_UART_CUSTOM is not set # CONFIG_CONSOLE_UART_NONE is not set @@ -2445,10 +2649,10 @@ CONFIG_TIMER_TASK_STACK_SIZE=3584 CONFIG_ESP32_WIFI_ENABLED=y CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 # CONFIG_ESP32_WIFI_CSI_ENABLED is not set CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 @@ -2456,14 +2660,13 @@ CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_RX_BA_WIN=6 -# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set CONFIG_ESP32_WIFI_NVS_ENABLED=y CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y # CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 -# CONFIG_ESP32_WIFI_IRAM_OPT is not set -# CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y CONFIG_WPA_MBEDTLS_CRYPTO=y @@ -2482,6 +2685,7 @@ CONFIG_TIMER_TASK_PRIORITY=1 CONFIG_TIMER_TASK_STACK_DEPTH=2048 CONFIG_TIMER_QUEUE_LENGTH=10 # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set +# CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY is not set # CONFIG_HAL_ASSERTION_SILIENT is not set # CONFIG_L2_TO_L3_COPY is not set CONFIG_ESP_GRATUITOUS_ARP=y @@ -2504,7 +2708,13 @@ CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set # CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF -# CONFIG_PPP_SUPPORT is not set +CONFIG_PPP_SUPPORT=y +# CONFIG_PPP_NOTIFY_PHASE_SUPPORT is not set +# CONFIG_PPP_PAP_SUPPORT is not set +# CONFIG_PPP_CHAP_SUPPORT is not set +# CONFIG_PPP_MSCHAP_SUPPORT is not set +# CONFIG_PPP_MPPE_SUPPORT is not set +# CONFIG_PPP_DEBUG_ON is not set CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y # CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set @@ -2525,4 +2735,34 @@ CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y CONFIG_SUPPORT_TERMIOS=y CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_CSI_ENABLED is not set +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=6 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK is not set +# CONFIG_WPA_SUITE_B_192 is not set +# CONFIG_WPA_11KV_SUPPORT is not set +# CONFIG_WPA_MBO_SUPPORT is not set +# CONFIG_WPA_DPP_SUPPORT is not set +# CONFIG_WPA_11R_SUPPORT is not set +# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_WPA_WPS_STRICT is not set +# CONFIG_WPA_DEBUG_PRINT is not set +# CONFIG_WPA_TESTING_OPTIONS is not set # End of deprecated options From d0e336a4ee585bc76194eaccb4b5719b27146020 Mon Sep 17 00:00:00 2001 From: marc Date: Fri, 25 Apr 2025 23:40:25 +0200 Subject: [PATCH 4/6] evtGroup & notif & multi-target --- CMakeLists.txt | 12 +- .../image_downloader/image_downloader.c | 56 +++++--- .../include/image_downloader.h | 2 +- components/meteofrance/include/meteofrance.h | 2 +- components/meteofrance/meteofrance.c | 135 ++++++++++-------- main/CMakeLists.txt | 18 +-- main/idf_component.yml | 33 +++-- main/ihm.c | 13 +- main/main.c | 37 ++--- main/obtain_time.c | 2 - main/obtain_time.h | 4 +- sdkconfig | 127 ++++++++-------- sdkconfig.defaults | 41 +++--- sdkconfig.defaults.esp32p4 | 31 ++++ 14 files changed, 283 insertions(+), 230 deletions(-) create mode 100644 sdkconfig.defaults.esp32p4 diff --git a/CMakeLists.txt b/CMakeLists.txt index b9867c4..abbeaaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,9 +8,15 @@ set(COMPONENTS main) include($ENV{IDF_PATH}/tools/cmake/project.cmake) if(${IDF_TARGET} STREQUAL "esp32p4") -set(EXTRA_COMPONENT_DIRS - /home/marc/esp-dev-kits/examples/esp32-p4-function-ev-board/examples/common_components - ) + set(EXTRA_COMPONENT_DIRS + /home/marc/esp-dev-kits/examples/esp32-p4-function-ev-board/examples/common_components + $ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs + ) +else() + set(EXTRA_COMPONENT_DIRS + $ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs + ) + endif() project(rgb_lcd) diff --git a/components/image_downloader/image_downloader.c b/components/image_downloader/image_downloader.c index bf7ac53..790f1dd 100644 --- a/components/image_downloader/image_downloader.c +++ b/components/image_downloader/image_downloader.c @@ -14,11 +14,8 @@ #include "esp_event.h" #include "esp_log.h" #include "esp_timer.h" -#include "lwip/err.h" -#include "lwip/sys.h" -// HTTP Client + time +// HTTP Client #include "esp_http_client.h" -#include "esp_sntp.h" #include #include @@ -127,15 +124,15 @@ esp_err_t _http_event_handler_id(esp_http_client_event_t *evt) case HTTP_EVENT_ON_FINISH: // Do not draw if it's a redirect (302) if (esp_http_client_get_status_code(evt->client) == 200) { - printf("%li bytes read from %s\nIMG_BUF size: %li\n", img_buf_pos, IMGDWN_URL, img_buf_pos); + printf("%"PRIu32" bytes read from %s\nIMG_BUF size: %"PRIu32"\n", img_buf_pos, IMGDWN_URL, img_buf_pos); //drawBufJpeg(source_buf, 0, 0); create_file_app(source_buf,img_buf_pos); //function which opens and records data to spiffs file time_download = (esp_timer_get_time()-startTime)/1000; - ESP_LOGI("www-dw", "%li ms - download", time_download); + ESP_LOGI("www-dw", "%"PRIu32" ms - download", time_download); // Refresh display //display.update(); - ESP_LOGI("total", "%li ms - total time spent\n", time_download+time_decomp+time_render); + ESP_LOGI("total", "%"PRIu32" ms - total time spent\n", time_download+time_decomp+time_render); } else { printf("HTTP on finish got status code: %d\n", esp_http_client_get_status_code(evt->client)); } @@ -168,7 +165,7 @@ static void download(void) esp_err_t err = esp_http_client_perform(client); if (err == ESP_OK) { - ESP_LOGI(TAG, "\nIMAGE URL: %s\n\nHTTP GET Status = %d, content_length = %lli\n", + ESP_LOGI(TAG, "\nIMAGE URL: %s\n\nHTTP GET Status = %d, content_length = %"PRIi64"\n", IMGDWN_URL, esp_http_client_get_status_code(client), esp_http_client_get_content_length(client)); @@ -180,25 +177,40 @@ static void download(void) //printf("Go to sleep %d minutes\n", CONFIG_DEEPSLEEP_MINUTES_AFTER_RENDER); esp_http_client_cleanup(client); - vTaskDelay(3600000 / portTICK_PERIOD_MS); //deepsleep(); } -void imgdwn(void *pvParameter) { +void imgdwn(void *domotic_event_group) { - ESP_LOGE(TAG, "beginning"); + while(1){ + // Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum + // number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) + EventBits_t bits = xEventGroupWaitBits(domotic_event_group, + BIT0, + pdFALSE, + pdFALSE, + portMAX_DELAY); + if (bits & BIT0) + { + ESP_LOGE(TAG, "beginning"); - // Should be big enough to allocate the JPEG file size, width * height should suffice - source_buf = (uint8_t *)heap_caps_malloc(IMGDWN_HEIGHT * IMGDWN_WIDTH, MALLOC_CAP_SPIRAM); - if (source_buf == NULL) { - ESP_LOGE(TAG, "Initial alloc source_buf failed!"); - } - printf("Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); + // Should be big enough to allocate the JPEG file size, width * height should suffice + source_buf = (uint8_t *)heap_caps_malloc(IMGDWN_HEIGHT * IMGDWN_WIDTH, MALLOC_CAP_SPIRAM); + if (source_buf == NULL) { + ESP_LOGE(TAG, "Initial alloc source_buf failed!"); + } + printf("Free heap after buffers allocation: %"PRIu16"\n", xPortGetFreeHeapSize()); + + download(); + + heap_caps_free(source_buf); + printf("Free heap after buffers allocation: %"PRIu16"\n", xPortGetFreeHeapSize()); + vTaskDelay(3600000 / portTICK_PERIOD_MS); + + }else{ + vTaskDelay(5000 / portTICK_PERIOD_MS); + } + } - download(); - - heap_caps_free(source_buf); - printf("Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - } \ No newline at end of file diff --git a/components/image_downloader/include/image_downloader.h b/components/image_downloader/include/image_downloader.h index 6af9130..62d814a 100644 --- a/components/image_downloader/include/image_downloader.h +++ b/components/image_downloader/include/image_downloader.h @@ -1,2 +1,2 @@ -void imgdwn(); +void imgdwn(void* evtGroup); #pragma once diff --git a/components/meteofrance/include/meteofrance.h b/components/meteofrance/include/meteofrance.h index dcae367..02ddbae 100644 --- a/components/meteofrance/include/meteofrance.h +++ b/components/meteofrance/include/meteofrance.h @@ -60,5 +60,5 @@ void printff(struct meteoforecast_data *tmp); void on_weather_data_retrieval(weather_data_callback data_retreived_cb); void on_weather_data_retrieval_start(weather_data_callback data_retreived_cb); -void initialise_weather_data_retrieval(unsigned long retreival_period); +void initialise_weather_data_retrieval(unsigned long retreival_period, void* evtGroup); diff --git a/components/meteofrance/meteofrance.c b/components/meteofrance/meteofrance.c index 12e5a62..cf30e09 100644 --- a/components/meteofrance/meteofrance.c +++ b/components/meteofrance/meteofrance.c @@ -128,7 +128,11 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) if (evt->user_data) { // The last byte in evt->user_data is kept for the NULL character in case of out-of-bound access. - copy_len = MIN(evt->data_len, (MAX_HTTP_OUTPUT_BUFFER - output_len)); + if(evt->data_len<(MAX_HTTP_OUTPUT_BUFFER - output_len)){ + copy_len = evt->data_len; + }else{ + copy_len=(MAX_HTTP_OUTPUT_BUFFER - output_len); + } if (copy_len) { memcpy(evt->user_data + output_len, evt->data, copy_len); @@ -148,7 +152,11 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) return ESP_FAIL; } } - copy_len = MIN(evt->data_len, (content_len - output_len)); + if(evt->data_len<(content_len - output_len)){ + copy_len = evt->data_len; + }else{ + copy_len=(content_len - output_len); + } if (copy_len) { memcpy(output_buffer + output_len, evt->data, copy_len); @@ -314,69 +322,74 @@ static bool process_response_body(const char *body) return true; } -static void http_request_task(void *pvParameter) +static void http_request_task(void* domotic_event_group) { while (1) { - if(!mainState.wifi_init){ - //On attend le wifi - ESP_LOGI(TAG, "Pas de wifi on attend 5 secondes"); - vTaskDelay(10000 / portTICK_PERIOD_MS); + ESP_LOGE(TAG,"En attente connexion wifi"); + // Waiting until either the connection is established (WIFI_CONNECTED_BIT). + EventBits_t bits = xEventGroupWaitBits(domotic_event_group, + BIT0, + pdTRUE, + pdFALSE, + portMAX_DELAY); + if (bits & BIT0){ + ESP_LOGE(TAG,"connexion wifi ok"); + ESP_LOGV(TAG, "Début recup méteo --------------------------"); + weather.data_retreived_cb_start(NULL); + char *local_response_buffer = heap_caps_malloc((MAX_HTTP_OUTPUT_BUFFER + 1) * (sizeof(char)), MALLOC_CAP_SPIRAM); + // char local_response_buffer[MAX_HTTP_OUTPUT_BUFFER + 1] = {0}; + /** + * NOTE: All the configuration parameters for http_client must be spefied either in URL or as host and path parameters. + * If host and path parameters are not set, query parameter will be ignored. In such cases, + * query parameter should be specified in URL. + * + * If URL as well as host and path parameters are specified, values of host and path will be considered. + */ + esp_http_client_config_t config = { + .host = WEB_SERVER, + .port = WEB_PORT, + .path = WEB_URL, + .query = WEB_QUERY, + .event_handler = _http_event_handler, + .user_data = local_response_buffer, // Pass address of local buffer to get response + .disable_auto_redirect = true, + }; + esp_http_client_handle_t client = esp_http_client_init(&config); + char url[50]; + esp_http_client_get_url(client, url, 50); + ESP_LOGV(TAG, "%s", url); + // GET + esp_err_t err = esp_http_client_perform(client); + if (err == ESP_OK) + { + ESP_LOGV(TAG, "HTTP GET Status = %d, content_length = %" PRId64, + esp_http_client_get_status_code(client), + esp_http_client_get_content_length(client)); + } + else + { + ESP_LOGE(TAG, "HTTP GET request failed: %s", esp_err_to_name(err)); + } + // ESP_LOGE(TAG, "%s",local_response_buffer); + + process_response_body(local_response_buffer); + heap_caps_free(local_response_buffer); + esp_http_client_cleanup(client); + if(dailydatas->isValid){ + ESP_LOGV(TAG, "Données valides on appelle le cb"); + weather.data_retreived_cb(dailydatas, forecastdatas); + vTaskDelay(weather.retreival_period / portTICK_PERIOD_MS); + }else{ + //Ca a échoué on recommence dans 30 secondes + ESP_LOGI(TAG, "Données non valides on attend avant de retenter"); + vTaskDelay(30000 / portTICK_PERIOD_MS); + } }else{ - ESP_LOGV(TAG, "Début recup méteo --------------------------"); - weather.data_retreived_cb_start(NULL); - char *local_response_buffer = heap_caps_malloc((MAX_HTTP_OUTPUT_BUFFER + 1) * (sizeof(char)), MALLOC_CAP_SPIRAM); - // char local_response_buffer[MAX_HTTP_OUTPUT_BUFFER + 1] = {0}; - /** - * NOTE: All the configuration parameters for http_client must be spefied either in URL or as host and path parameters. - * If host and path parameters are not set, query parameter will be ignored. In such cases, - * query parameter should be specified in URL. - * - * If URL as well as host and path parameters are specified, values of host and path will be considered. - */ - esp_http_client_config_t config = { - .host = WEB_SERVER, - .port = WEB_PORT, - .path = WEB_URL, - .query = WEB_QUERY, - .event_handler = _http_event_handler, - .user_data = local_response_buffer, // Pass address of local buffer to get response - .disable_auto_redirect = true, - }; - esp_http_client_handle_t client = esp_http_client_init(&config); - char url[50]; - esp_http_client_get_url(client, url, 50); - ESP_LOGV(TAG, "%s", url); - // GET - esp_err_t err = esp_http_client_perform(client); - if (err == ESP_OK) - { - ESP_LOGV(TAG, "HTTP GET Status = %d, content_length = %" PRId64, - esp_http_client_get_status_code(client), - esp_http_client_get_content_length(client)); + ESP_LOGI(TAG, "Wifi non connecté"); } - else - { - ESP_LOGE(TAG, "HTTP GET request failed: %s", esp_err_to_name(err)); - } - // ESP_LOGE(TAG, "%s",local_response_buffer); - - process_response_body(local_response_buffer); - heap_caps_free(local_response_buffer); - esp_http_client_cleanup(client); - if(dailydatas->isValid){ - ESP_LOGV(TAG, "Données valides on appelle le cb"); - weather.data_retreived_cb(dailydatas, forecastdatas); - vTaskDelay(weather.retreival_period / portTICK_PERIOD_MS); - }else{ - //Ca a échoué on recommence dans 30 secondes - ESP_LOGI(TAG, "Données non valides on attend avant de retenter"); - vTaskDelay(30000 / portTICK_PERIOD_MS); - } - } - } } @@ -390,7 +403,7 @@ void on_weather_data_retrieval_start(weather_data_callback data_retreived_cb_sta weather.data_retreived_cb_start = data_retreived_cb_start; } -void initialise_weather_data_retrieval(unsigned long retreival_period) +void initialise_weather_data_retrieval(unsigned long retreival_period, void* domotic_event_group) { weather.retreival_period = retreival_period; @@ -398,9 +411,9 @@ void initialise_weather_data_retrieval(unsigned long retreival_period) // http_client_on_process_chunk(&http_client, process_chunk); // http_client_on_disconnected(&http_client, disconnected); TaskHandle_t xHandle = NULL; - BaseType_t ret1 = xTaskCreate(&http_request_task, "http_meteof", 5 * 1024, NULL, 5, &xHandle); + BaseType_t ret1 = xTaskCreatePinnedToCore(&http_request_task, "http_meteof", 5 * 1024, domotic_event_group, 5, &xHandle, 1); if(ret1!=pdPASS ){ - ESP_LOGE(TAG, "Impossible de creer la tache %i", ret1); + ESP_LOGE(TAG, "Impossible de creer la tache %"PRIi16, ret1); } ESP_LOGI(TAG, "HTTP request task started"); } diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index d4bf1fe..376263e 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -1,9 +1,9 @@ set(EXTRA_COMPONENT_DIRS ../components) -set(comps heap nvs_flash meteofrance esp_netif image_downloader fatfs sdmmc vfs littlefs wifi_logger protocol_examples_common app_update esp_https_ota mqtt) +set(comps heap nvs_flash meteofrance esp_netif image_downloader fatfs protocol_examples_common mqtt esp_wifi) if(${IDF_TARGET} STREQUAL "esp32p4") - list(APPEND comps bsp_extra esp32_p4_function_ev_board) + list(APPEND comps bsp_extra esp32_p4_function_ev_board sdmmc vfs littlefs wifi_logger app_update esp_https_ota) endif() idf_component_register(SRC_DIRS . fonts @@ -17,12 +17,14 @@ set_source_files_properties( "-DLV_LVGL_H_INCLUDE_SIMPLE;-Wno-format;-DLV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(montserrat_medium_12) LV_FONT_DECLARE(montserrat_medium_18) LV_FONT_DECLARE(montserrat_medium_24)" ) -lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE") -lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE") -lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE") -lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE") +if(${IDF_TARGET} STREQUAL "esp32p4") + lvgl_port_create_c_image("images/wifi_ok.png" "images/" "ARGB8888" "NONE") + lvgl_port_create_c_image("images/wifi_ko.png" "images/" "ARGB8888" "NONE") + lvgl_port_create_c_image("images/mqtt_ok.png" "images/" "AUTO" "NONE") + lvgl_port_create_c_image("images/mqtt_ko.png" "images/" "ARGB8888" "NONE") + lvgl_port_add_images(${COMPONENT_LIB} "images/") + littlefs_create_partition_image(littlefs images_meteo FLASH_IN_PROJECT) +endif() -lvgl_port_add_images(${COMPONENT_LIB} "images/") -littlefs_create_partition_image(littlefs images_meteo FLASH_IN_PROJECT) \ No newline at end of file diff --git a/main/idf_component.yml b/main/idf_component.yml index 24dedb3..8bf5277 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -1,24 +1,27 @@ dependencies: - espressif/esp_wifi_remote: "0.8.5" - #espressif/esp32_p4_function_ev_board: "^4.1.1" - suda-morris/am2302_rmt: "^1.0.0" - espressif/esp_websocket_client: "^1.3.0" - joltwallet/littlefs: ^1.14.8 + espressif/esp_wifi_remote: + rules: + - if: target in ["esp32p4"] + version: "0.8.5" + + suda-morris/am2302_rmt: + version: "^1.0.0" + rules: + - if: target in ["esp32p4"] + joltwallet/littlefs: + rules: + - if: target in ["esp32p4"] + version: "^1.14.8" esp_lcd_touch_gt911: - version: ^1 + rules: + - if: target in ["esp32p4"] esp_lvgl_port: + rules: + - if: target in ["esp32p4"] version: 2.5.0 idf: version: '5.4.*' lvgl/lvgl: version: 9.2.0 #espressif/esp32_p4_function_ev_board: - # version: "4.1.*" - - chmorgan/esp-audio-player: - version: "1.0.*" - public: true - - chmorgan/esp-file-iterator: - version: "1.0.0" - public: true + # version: "4.1.*" \ No newline at end of file diff --git a/main/ihm.c b/main/ihm.c index 4591967..e495bf2 100644 --- a/main/ihm.c +++ b/main/ihm.c @@ -81,9 +81,20 @@ static void event_handler(lv_event_t *e) } } + void init_display(){ + lvgl_port_cfg_t cfgLVGL = { + .task_priority = 4, + .task_stack = 7168, + .task_affinity = 1, // On se met sur le core 1 + .task_max_sleep_ms = 500, + .timer_period_ms = 5, + }; + + bsp_display_cfg_t cfg = { - .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + //.lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .lvgl_port_cfg = cfgLVGL, .buffer_size = BSP_LCD_DRAW_BUFF_SIZE, .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE, .flags = { diff --git a/main/main.c b/main/main.c index 5faa7b1..1eaf035 100644 --- a/main/main.c +++ b/main/main.c @@ -18,11 +18,6 @@ #include "main.h" #include "ihm.h" -// OTA -#include "esp_ota_ops.h" -#include "esp_http_client.h" -#include "esp_https_ota.h" - // Includes personnels #include "wifi_logger.h" #include "obtain_time.h" @@ -191,7 +186,7 @@ void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){ } } -extern EventGroupHandle_t domotic_event_group; +EventGroupHandle_t domotic_event_group; void send_event(domo_events evt){ ESP_LOGE(TAG,"On est dans l'event handler %i", evt); @@ -279,6 +274,7 @@ void mount_sd_card() extern char *days[7]; extern char *months[12]; +/* esp_err_t _ota_http_event_handler(esp_http_client_event_t *evt) { switch (evt->event_id) { @@ -309,10 +305,12 @@ esp_err_t _ota_http_event_handler(esp_http_client_event_t *evt) } return ESP_OK; } +*/ extern const uint8_t server_cert_pem_start[] asm("_binary_ca_cert_pem_start"); extern const uint8_t server_cert_pem_end[] asm("_binary_ca_cert_pem_end"); +/* void simple_ota_example_task(void *pvParameter) { ESP_LOGI(TAG, "Starting OTA example task"); @@ -356,7 +354,6 @@ void simple_ota_example_task(void *pvParameter) #ifdef CONFIG_EXAMPLE_SKIP_COMMON_NAME_CHECK config.skip_cert_common_name_check = true; #endif - esp_https_ota_config_t ota_config = { .http_config = &config, }; @@ -371,10 +368,12 @@ void simple_ota_example_task(void *pvParameter) while (1) { vTaskDelay(1000 / portTICK_PERIOD_MS); } + } +*/ - am2302_handle_t sensor = NULL; +am2302_handle_t sensor = NULL; void readTempHumid(void *pvParameter) { @@ -634,21 +633,25 @@ void app_main(void) on_weather_data_retrieval(weather_data_retreived); on_weather_data_retrieval_start(weather_data_retreived_start); ESP_LOGW(TAG, "Weather data retrieval initialized"); - initialise_weather_data_retrieval(600000); + initialise_weather_data_retrieval(600000, domotic_event_group); TaskHandle_t xHandle = NULL; BaseType_t ret1; - ret1 = xTaskCreate(&imgdwn, "imageDownload_task", 3 * 1024, NULL, 5, &xHandle); + ret1 = xTaskCreate(&imgdwn, "imageDownload_task", 3 * 1024, domotic_event_group, 5, &xHandle); if (ret1 != pdPASS) { ESP_LOGE(TAG, "Impossiblke de creer la tache imageDownload_task %i", ret1); } + /* Tache updateTime */ BaseType_t ret2 = xTaskCreate(&updateTime, "updateTimeTask", 3 * 1024, NULL, 5, NULL); if (ret2 != pdPASS) { ESP_LOGE(TAG, "Impossiblke de creer la tache updateTimeTask %i", ret2); } + /* Tache updateTime - FIN*/ + mqtt_app_start(mqtt_cb); + start_wifi_logger(); wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR } @@ -659,20 +662,6 @@ void app_main(void) printf("9 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - time_t now; - struct tm timeinfo; - time(&now); - localtime_r(&now, &timeinfo); - // Is time set? If not, tm_year will be (1970 - 1900). - if (timeinfo.tm_year < (2016 - 1900)) - { - ESP_LOGI(TAG, "Time is not set yet. Connecting to WiFi and getting time over NTP."); - obtain_time(); - // update 'now' variable with current time - time(&now); - } - - printf("10. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); diff --git a/main/obtain_time.c b/main/obtain_time.c index df0bea4..34955e6 100644 --- a/main/obtain_time.c +++ b/main/obtain_time.c @@ -33,8 +33,6 @@ void obtain_time() } -/* FreeRTOS event group to signal when we are connected*/ -EventGroupHandle_t domotic_event_group; void updateTime(void *pvParameter) { diff --git a/main/obtain_time.h b/main/obtain_time.h index 38ad1ac..30fe5c3 100644 --- a/main/obtain_time.h +++ b/main/obtain_time.h @@ -1,3 +1,5 @@ +#pragma once void obtain_time(); void updateTime(void *pvParameter); -#pragma once + +extern EventGroupHandle_t domotic_event_group; diff --git a/sdkconfig b/sdkconfig index 80de773..6079b10 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1213,6 +1213,7 @@ CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # # CONFIG_PM_ENABLE is not set # CONFIG_PM_SLP_IRAM_OPT is not set +CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y # CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set # end of Power Management @@ -1369,8 +1370,8 @@ CONFIG_ESP_TIMER_IMPL_SYSTIMER=y # CONFIG_ESP_HOST_WIFI_ENABLED is not set CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y @@ -1381,11 +1382,13 @@ CONFIG_ESP_WIFI_NVS_ENABLED=y CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 CONFIG_ESP_WIFI_IRAM_OPT=y +CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=y CONFIG_ESP_WIFI_RX_IRAM_OPT=y CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y CONFIG_ESP_WIFI_ENABLE_SAE_PK=y CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_ESP_WIFI_SLP_IRAM_OPT=y CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 @@ -2357,12 +2360,6 @@ CONFIG_ESP_LCD_TOUCH_MAX_POINTS=5 CONFIG_ESP_LCD_TOUCH_MAX_BUTTONS=1 # end of ESP LCD TOUCH -# -# ESP WebSocket client -# -# CONFIG_ESP_WS_CLIENT_ENABLE_DYNAMIC_BUFFER is not set -# end of ESP WebSocket client - # # Wi-Fi Remote # @@ -2395,10 +2392,10 @@ CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y # CONFIG_WIFI_RMT_STATIC_RX_BUFFER_NUM=10 CONFIG_WIFI_RMT_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_WIFI_RMT_STATIC_TX_BUFFER=y -# CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER is not set -CONFIG_WIFI_RMT_TX_BUFFER_TYPE=0 -CONFIG_WIFI_RMT_STATIC_TX_BUFFER_NUM=16 +# CONFIG_WIFI_RMT_STATIC_TX_BUFFER is not set +CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER=y +CONFIG_WIFI_RMT_TX_BUFFER_TYPE=1 +CONFIG_WIFI_RMT_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_WIFI_RMT_STATIC_RX_MGMT_BUFFER=y # CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUFFER is not set CONFIG_WIFI_RMT_DYNAMIC_RX_MGMT_BUF=0 @@ -2412,13 +2409,13 @@ CONFIG_WIFI_RMT_NVS_ENABLED=y CONFIG_WIFI_RMT_SOFTAP_BEACON_MAX_LEN=752 CONFIG_WIFI_RMT_MGMT_SBUF_NUM=32 CONFIG_WIFI_RMT_IRAM_OPT=y -# CONFIG_WIFI_RMT_EXTRA_IRAM_OPT is not set +CONFIG_WIFI_RMT_EXTRA_IRAM_OPT=y CONFIG_WIFI_RMT_RX_IRAM_OPT=y CONFIG_WIFI_RMT_ENABLE_WPA3_SAE=y CONFIG_WIFI_RMT_ENABLE_SAE_PK=y CONFIG_WIFI_RMT_SOFTAP_SAE_SUPPORT=y CONFIG_WIFI_RMT_ENABLE_WPA3_OWE_STA=y -# CONFIG_WIFI_RMT_SLP_IRAM_OPT is not set +CONFIG_WIFI_RMT_SLP_IRAM_OPT=y CONFIG_WIFI_RMT_SLP_DEFAULT_MIN_ACTIVE_TIME=50 CONFIG_WIFI_RMT_SLP_DEFAULT_MAX_ACTIVE_TIME=10 CONFIG_WIFI_RMT_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 @@ -2512,8 +2509,8 @@ CONFIG_LV_USE_CLIB_MALLOC=y # CONFIG_LV_USE_MICROPYTHON_MALLOC is not set # CONFIG_LV_USE_RTTHREAD_MALLOC is not set # CONFIG_LV_USE_CUSTOM_MALLOC is not set -CONFIG_LV_USE_BUILTIN_STRING=y -# CONFIG_LV_USE_CLIB_STRING is not set +# CONFIG_LV_USE_BUILTIN_STRING is not set +CONFIG_LV_USE_CLIB_STRING=y # CONFIG_LV_USE_CUSTOM_STRING is not set # CONFIG_LV_USE_BUILTIN_SPRINTF is not set CONFIG_LV_USE_CLIB_SPRINTF=y @@ -2523,7 +2520,7 @@ CONFIG_LV_USE_CLIB_SPRINTF=y # # HAL Settings # -CONFIG_LV_DEF_REFR_PERIOD=33 +CONFIG_LV_DEF_REFR_PERIOD=10 CONFIG_LV_DPI_DEF=130 # end of HAL Settings @@ -2584,26 +2581,7 @@ CONFIG_LV_USE_DRAW_SW_ASM=0 # # Logging # -CONFIG_LV_USE_LOG=y -# CONFIG_LV_LOG_LEVEL_TRACE is not set -# CONFIG_LV_LOG_LEVEL_INFO is not set -# CONFIG_LV_LOG_LEVEL_WARN is not set -CONFIG_LV_LOG_LEVEL_ERROR=y -# CONFIG_LV_LOG_LEVEL_USER is not set -# CONFIG_LV_LOG_LEVEL_NONE is not set -CONFIG_LV_LOG_LEVEL=3 -CONFIG_LV_LOG_PRINTF=y -# CONFIG_LV_LOG_USE_TIMESTAMP is not set -# CONFIG_LV_LOG_USE_FILE_LINE is not set -# CONFIG_LV_LOG_TRACE_MEM is not set -# CONFIG_LV_LOG_TRACE_TIMER is not set -# CONFIG_LV_LOG_TRACE_INDEV is not set -# CONFIG_LV_LOG_TRACE_DISP_REFR is not set -# CONFIG_LV_LOG_TRACE_EVENT is not set -# CONFIG_LV_LOG_TRACE_OBJ_CREATE is not set -# CONFIG_LV_LOG_TRACE_LAYOUT is not set -# CONFIG_LV_LOG_TRACE_ANIM is not set -# CONFIG_LV_LOG_TRACE_CACHE is not set +# CONFIG_LV_USE_LOG is not set # end of Logging # @@ -2611,7 +2589,7 @@ CONFIG_LV_LOG_PRINTF=y # CONFIG_LV_USE_ASSERT_NULL=y CONFIG_LV_USE_ASSERT_MALLOC=y -CONFIG_LV_USE_ASSERT_STYLE=y +# CONFIG_LV_USE_ASSERT_STYLE is not set # CONFIG_LV_USE_ASSERT_MEM_INTEGRITY is not set # CONFIG_LV_USE_ASSERT_OBJ is not set CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" @@ -2659,12 +2637,12 @@ CONFIG_LV_USE_PRIVATE_API=y # # CONFIG_LV_FONT_MONTSERRAT_8 is not set # CONFIG_LV_FONT_MONTSERRAT_10 is not set -CONFIG_LV_FONT_MONTSERRAT_12=y +# CONFIG_LV_FONT_MONTSERRAT_12 is not set CONFIG_LV_FONT_MONTSERRAT_14=y -CONFIG_LV_FONT_MONTSERRAT_16=y -CONFIG_LV_FONT_MONTSERRAT_18=y -CONFIG_LV_FONT_MONTSERRAT_20=y -CONFIG_LV_FONT_MONTSERRAT_22=y +# CONFIG_LV_FONT_MONTSERRAT_16 is not set +# CONFIG_LV_FONT_MONTSERRAT_18 is not set +# CONFIG_LV_FONT_MONTSERRAT_20 is not set +# CONFIG_LV_FONT_MONTSERRAT_22 is not set # CONFIG_LV_FONT_MONTSERRAT_24 is not set # CONFIG_LV_FONT_MONTSERRAT_26 is not set # CONFIG_LV_FONT_MONTSERRAT_28 is not set @@ -2733,41 +2711,46 @@ CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0 # Widget Usage # CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y -# CONFIG_LV_USE_ANIMIMG is not set -# CONFIG_LV_USE_ARC is not set +CONFIG_LV_USE_ANIMIMG=y +CONFIG_LV_USE_ARC=y CONFIG_LV_USE_BAR=y CONFIG_LV_USE_BUTTON=y CONFIG_LV_USE_BUTTONMATRIX=y -# CONFIG_LV_USE_CALENDAR is not set +CONFIG_LV_USE_CALENDAR=y +# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set +CONFIG_LV_USE_CALENDAR_HEADER_ARROW=y +CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=y +# CONFIG_LV_USE_CALENDAR_CHINESE is not set CONFIG_LV_USE_CANVAS=y CONFIG_LV_USE_CHART=y CONFIG_LV_USE_CHECKBOX=y -# CONFIG_LV_USE_DROPDOWN is not set +CONFIG_LV_USE_DROPDOWN=y CONFIG_LV_USE_IMAGE=y CONFIG_LV_USE_IMAGEBUTTON=y -# CONFIG_LV_USE_KEYBOARD is not set +CONFIG_LV_USE_KEYBOARD=y CONFIG_LV_USE_LABEL=y CONFIG_LV_LABEL_TEXT_SELECTION=y CONFIG_LV_LABEL_LONG_TXT_HINT=y CONFIG_LV_LABEL_WAIT_CHAR_COUNT=3 -# CONFIG_LV_USE_LED is not set -# CONFIG_LV_USE_LINE is not set -# CONFIG_LV_USE_LIST is not set -# CONFIG_LV_USE_MENU is not set -# CONFIG_LV_USE_MSGBOX is not set +CONFIG_LV_USE_LED=y +CONFIG_LV_USE_LINE=y +CONFIG_LV_USE_LIST=y +CONFIG_LV_USE_MENU=y +CONFIG_LV_USE_MSGBOX=y CONFIG_LV_USE_ROLLER=y -# CONFIG_LV_USE_SCALE is not set +CONFIG_LV_USE_SCALE=y CONFIG_LV_USE_SLIDER=y -# CONFIG_LV_USE_SPAN is not set -# CONFIG_LV_USE_SPINBOX is not set -# CONFIG_LV_USE_SPINNER is not set +CONFIG_LV_USE_SPAN=y +CONFIG_LV_SPAN_SNIPPET_STACK_SIZE=64 +CONFIG_LV_USE_SPINBOX=y +CONFIG_LV_USE_SPINNER=y CONFIG_LV_USE_SWITCH=y CONFIG_LV_USE_TEXTAREA=y CONFIG_LV_TEXTAREA_DEF_PWD_SHOW_TIME=1500 -# CONFIG_LV_USE_TABLE is not set +CONFIG_LV_USE_TABLE=y CONFIG_LV_USE_TABVIEW=y -# CONFIG_LV_USE_TILEVIEW is not set -# CONFIG_LV_USE_WIN is not set +CONFIG_LV_USE_TILEVIEW=y +CONFIG_LV_USE_WIN=y # end of Widget Usage # @@ -2825,9 +2808,20 @@ CONFIG_LV_USE_LODEPNG=y # Others # # CONFIG_LV_USE_SNAPSHOT is not set -# CONFIG_LV_USE_SYSMON is not set +CONFIG_LV_USE_SYSMON=y +CONFIG_LV_USE_PERF_MONITOR=y +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_TOP_RIGHT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_LEFT is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_MID is not set +CONFIG_LV_PERF_MONITOR_ALIGN_BOTTOM_RIGHT=y +# CONFIG_LV_PERF_MONITOR_ALIGN_LEFT_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_RIGHT_MID is not set +# CONFIG_LV_PERF_MONITOR_ALIGN_CENTER is not set +# CONFIG_LV_USE_PERF_MONITOR_LOG_MODE is not set # CONFIG_LV_USE_PROFILER is not set -CONFIG_LV_USE_MONKEY=y +# CONFIG_LV_USE_MONKEY is not set # CONFIG_LV_USE_GRIDNAV is not set # CONFIG_LV_USE_FRAGMENT is not set # CONFIG_LV_USE_IMGFONT is not set @@ -2872,7 +2866,6 @@ CONFIG_LV_USE_OBSERVER=y # CONFIG_LV_USE_DEMO_RENDER is not set # CONFIG_LV_USE_DEMO_SCROLL is not set # CONFIG_LV_USE_DEMO_STRESS is not set -# CONFIG_LV_USE_DEMO_TRANSFORM is not set # CONFIG_LV_USE_DEMO_MUSIC is not set # CONFIG_LV_USE_DEMO_FLEX_LAYOUT is not set # CONFIG_LV_USE_DEMO_MULTILANG is not set @@ -2948,8 +2941,8 @@ CONFIG_IPC_TASK_STACK_SIZE=1024 CONFIG_TIMER_TASK_STACK_SIZE=3584 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y @@ -3050,8 +3043,8 @@ CONFIG_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD=80 CONFIG_TO_WIFI_DATA_THROTTLE_LOW_THRESHOLD=60 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 2c812f8..769b6cf 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -42,31 +42,14 @@ CONFIG_LV_LAYER_SIMPLE_BUF_SIZE=102400 CONFIG_LV_IMG_CACHE_DEF_SIZE=20 CONFIG_LV_GRAD_CACHE_DEF_SIZE=10240 CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y -CONFIG_LV_FONT_MONTSERRAT_8=y -CONFIG_LV_FONT_MONTSERRAT_10=y -CONFIG_LV_FONT_MONTSERRAT_12=y -CONFIG_LV_FONT_MONTSERRAT_16=y -CONFIG_LV_FONT_MONTSERRAT_18=y -CONFIG_LV_FONT_MONTSERRAT_20=y -CONFIG_LV_FONT_MONTSERRAT_22=y -CONFIG_LV_FONT_MONTSERRAT_24=y -CONFIG_LV_FONT_MONTSERRAT_26=y -CONFIG_LV_FONT_MONTSERRAT_28=y -CONFIG_LV_FONT_MONTSERRAT_30=y -CONFIG_LV_FONT_MONTSERRAT_32=y -CONFIG_LV_FONT_MONTSERRAT_34=y -CONFIG_LV_FONT_MONTSERRAT_36=y -CONFIG_LV_FONT_MONTSERRAT_38=y -CONFIG_LV_FONT_MONTSERRAT_40=y -CONFIG_LV_FONT_MONTSERRAT_42=y -CONFIG_LV_FONT_MONTSERRAT_44=y -CONFIG_LV_FONT_MONTSERRAT_46=y -CONFIG_LV_FONT_MONTSERRAT_48=y -CONFIG_LV_USE_MONKEY=y -CONFIG_LV_USE_DEMO_WIDGETS=y -CONFIG_LV_USE_DEMO_BENCHMARK=y -CONFIG_LV_USE_DEMO_STRESS=y +CONFIG_LV_USE_MONKEY=n +CONFIG_LV_USE_DEMO_WIDGETS=n +CONFIG_LV_USE_DEMO_BENCHMARK=n +CONFIG_LV_USE_DEMO_STRESS=n CONFIG_IDF_EXPERIMENTAL_FEATURES=y +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_BUILD_EXAMPLES=n #Necessaire pour lire les fichiers depuis littlefs CONFIG_LV_USE_FS_STDIO=y @@ -76,6 +59,11 @@ CONFIG_LV_FS_STDIO_CACHE_SIZE=0 # Necessaire pour lire le png CONFIG_LV_USE_LODEPNG=y +CONFIG_LV_FONT_MONTSERRAT_40=y + +# Important pour la fluidité des animations +CONFIG_LV_DEF_REFR_PERIOD=10 + #Dégradés CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS=y @@ -84,3 +72,8 @@ CONFIG_LV_USE_PRIVATE_API=y CONFIG_SPIRAM_USE_MALLOC=y +#Specifique P4 +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + + + diff --git a/sdkconfig.defaults.esp32p4 b/sdkconfig.defaults.esp32p4 new file mode 100644 index 0000000..707186f --- /dev/null +++ b/sdkconfig.defaults.esp32p4 @@ -0,0 +1,31 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y +CONFIG_FREERTOS_HZ=1000 + +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y +CONFIG_LV_DEF_REFR_PERIOD=10 + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + +# Performance monitor +CONFIG_LV_USE_OBSERVER=y +CONFIG_LV_USE_SYSMON=y +CONFIG_LV_USE_PERF_MONITOR=y + + +# CONFIG_LV_BUILD_EXAMPLES is not set From 38530b799cca0983681c645eced9a1eb641848bc Mon Sep 17 00:00:00 2001 From: marc Date: Sat, 26 Apr 2025 01:10:40 +0200 Subject: [PATCH 5/6] 1ere implem queue IHM --- components/meteofrance/meteofrance.c | 2 +- main/communication.c | 14 ++- main/ihm.c | 78 ++++++++++++++ main/ihm.h | 14 +++ main/include/communication.h | 2 +- main/main.c | 146 +++++---------------------- main/main.h | 5 + main/obtain_time.c | 9 +- 8 files changed, 138 insertions(+), 132 deletions(-) diff --git a/components/meteofrance/meteofrance.c b/components/meteofrance/meteofrance.c index cf30e09..def69d0 100644 --- a/components/meteofrance/meteofrance.c +++ b/components/meteofrance/meteofrance.c @@ -330,7 +330,7 @@ static void http_request_task(void* domotic_event_group) // Waiting until either the connection is established (WIFI_CONNECTED_BIT). EventBits_t bits = xEventGroupWaitBits(domotic_event_group, BIT0, - pdTRUE, + pdFALSE, pdFALSE, portMAX_DELAY); if (bits & BIT0){ diff --git a/main/communication.c b/main/communication.c index 02fe390..efa5c71 100644 --- a/main/communication.c +++ b/main/communication.c @@ -126,7 +126,7 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ break; } } -void mqtt_app_start(mqtt_callback callback) +void mqtt_app_start(mqtt_callback callback, EventGroupHandle_t domotic_event_group) { @@ -169,7 +169,17 @@ void mqtt_app_start(mqtt_callback callback) client = esp_mqtt_client_init(&mqtt_cfg); /* The last argument may be used to pass data to the event handler, in this example mqtt_event_handler */ esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); - esp_mqtt_client_start(client); + // Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum + // number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above) + EventBits_t bits = xEventGroupWaitBits(domotic_event_group, + BIT0, + pdFALSE, + pdFALSE, + portMAX_DELAY); + if (bits & BIT0) + { + esp_mqtt_client_start(client); + } } diff --git a/main/ihm.c b/main/ihm.c index e495bf2..50576bf 100644 --- a/main/ihm.c +++ b/main/ihm.c @@ -37,7 +37,85 @@ char dateHeureStr[30]; static lv_style_t no_padding; static const char *TAG = "IHM"; +static lv_subject_t wifiStatus; +LV_IMAGE_DECLARE(wifi_ok); +LV_IMAGE_DECLARE(wifi_ko); + + +static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) +{ + ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); + bsp_display_lock(0); + if(lv_layer_top()!=NULL && lv_obj_get_child_cnt(lv_layer_top())){ + lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2); + if(lv_obj_check_type(wifiSt, &lv_image_class)){ + switch (lv_subject_get_int(subject)) + { + case 0: + lv_image_set_src(wifiSt,&wifi_ko); + break; + case 1: + lv_image_set_src(wifiSt,&wifi_ok); + break; + default: + break; + } + }else{ + ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); + } + }else{ + ESP_LOGI(TAG,"Pour le moment l'icone de statut n'existe pas"); + } + + bsp_display_unlock(); + //int32_t prev_v = lv_subject_get_previous_int(subject); + //int32_t cur_v = lv_subject_get_int(subject); + + //lv_obj_t * btn = lv_observer_get_target(observer); +} + +void drawIhm(void *xIHMEventQueue){ + + init_display(); + + lv_subject_init_int(&wifiStatus,0); + lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); + + display_lock("app_main"); + app_main_display(); + display_unlock("app_main"); + // Show LVGL objects + if(display_lock("draw_ihm")){ + draw_ihm(); + display_unlock("draw_ihm"); + }else{ + ESP_LOGE(TAG,"Impossible d'obtenir le mutex pour draw_ihm"); + } + + while (1) + { + xIPStackEvent_t xReceivedEvent; + // On cree une queue qui va permettre de recevoir les informations a afficher + xQueueReceive(xIHMEventQueue,&xReceivedEvent, portMAX_DELAY ); + switch (xReceivedEvent.eEventType) + { + case IHM_EVT_WIFI_STATUS: + ESP_LOGE(TAG, "On a recu un evt wifi"); + lv_subject_set_int(&wifiStatus, (int)xReceivedEvent.pvData); + break; + case IHM_EVT_TIME_SETTED: + ESP_LOGE(TAG, "On a recu un evt timesetted"); + draw_time(xReceivedEvent.pvData); + break; + default: + ESP_LOGE(TAG, "Evt inconnu"); + break; + }; + vTaskDelay(5/portTICK_PERIOD_MS); + } + +} void draw_time(char* dateHeure){ diff --git a/main/ihm.h b/main/ihm.h index d1bf8d7..67dc6ae 100644 --- a/main/ihm.h +++ b/main/ihm.h @@ -30,3 +30,17 @@ void tabChgEvt(lv_event_t *event); void draw_tabCuve(lv_obj_t * parent); void draw_tabHome(lv_obj_t * parent); void draw_tabSettings(lv_obj_t * parent); + +typedef enum eIHMEvent_t{ + IHM_EVT_WIFI_STATUS, + IHM_EVT_TIME_SETTED +} eIHMEvent_t; + +typedef struct IP_TASK_COMMANDS +{ + eIHMEvent_t eEventType; /* Tells the receiving task what the event is. */ + void *pvData; /* Holds or points to any data associated with the event. */ +} xIPStackEvent_t; + + +void drawIhm(void *pvParameter); diff --git a/main/include/communication.h b/main/include/communication.h index b438fd4..77004f2 100644 --- a/main/include/communication.h +++ b/main/include/communication.h @@ -15,7 +15,7 @@ typedef enum mqtt_evt{ typedef void (*wifi_callback)(wifi_evt evt); typedef void (*mqtt_callback)(mqtt_evt evt, esp_mqtt_event_handle_t evt_data); void wifi_init_sta(wifi_callback cb); -void mqtt_app_start(mqtt_callback cb); +void mqtt_app_start(mqtt_callback cb, EventGroupHandle_t evtGroup); #define topicTempExt "house/temp/282A802600008059" diff --git a/main/main.c b/main/main.c index 1eaf035..89baa5a 100644 --- a/main/main.c +++ b/main/main.c @@ -46,47 +46,18 @@ static const char *TAG = "domoTic"; extern esp_mqtt_client_handle_t client; -typedef enum domo_events{ - EVT_WIFI_CONNECTED, - EVT_TIME_SETTED -} domo_events; -static EventGroupHandle_t hevt; + #define WIFI_RDY 0b0001 -static lv_subject_t wifiStatus; -LV_IMAGE_DECLARE(wifi_ok); -LV_IMAGE_DECLARE(wifi_ko); + +EventGroupHandle_t domotic_event_group; +QueueHandle_t ihm_queue; static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject); -static void wifiStatus_obs_cb(lv_observer_t * observer, lv_subject_t * subject) -{ - ESP_LOGE(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); - bsp_display_lock(0); - lv_obj_t * wifiSt = lv_obj_get_child(lv_obj_get_child(lv_layer_top(), 0),2); - if(lv_obj_check_type(wifiSt, &lv_image_class)){ - switch (lv_subject_get_int(subject)) - { - case 0: - lv_image_set_src(wifiSt,&wifi_ko); - break; - case 1: - lv_image_set_src(wifiSt,&wifi_ok); - break; - default: - break; - } - }else{ - ESP_LOGE(TAG, "L'objet recuip en semble pas etre du bon type"); - } - bsp_display_unlock(); - //int32_t prev_v = lv_subject_get_previous_int(subject); - //int32_t cur_v = lv_subject_get_int(subject); - //lv_obj_t * btn = lv_observer_get_target(observer); -} lv_subject_t mqttStatus; extern lv_subject_t tempIntSubj; @@ -186,22 +157,27 @@ void mqtt_cb(mqtt_evt evt, esp_mqtt_event_handle_t event){ } } -EventGroupHandle_t domotic_event_group; -void send_event(domo_events evt){ +void send_event(domo_events evt, void* pDatas){ ESP_LOGE(TAG,"On est dans l'event handler %i", evt); switch(evt){ case EVT_WIFI_CONNECTED: xEventGroupSetBits(domotic_event_group, WIFI_CONNECTED_BIT); ESP_LOGI(TAG, "connected to ap SSID"); - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 1"); - lv_subject_set_int(&wifiStatus,1); - lvgl_port_unlock(); - } - + xIPStackEvent_t evt = { + .eEventType = IHM_EVT_WIFI_STATUS, + .pvData = (void *)true + }; + if(xQueueSendToFront( ihm_queue, ( void * ) &evt, ( TickType_t ) 10 ) != pdPASS){ + ESP_LOGE(TAG, "La queue est pleine"); + }; break; case EVT_TIME_SETTED: + xIPStackEvent_t m = { + .eEventType = IHM_EVT_TIME_SETTED, + .pvData = pDatas + }; + xQueueSendToFront(ihm_queue,&m,5); break; } } @@ -402,35 +378,19 @@ void wifi_cb(wifi_evt evt){ switch(evt){ case WIFI_CONNECTED: mainState.wifi_init=true; - send_event(WIFI_CONNECTED); + send_event(WIFI_CONNECTED,NULL); break; case WIFI_DISCONNECTED: - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } + mainState.wifi_init=true; + send_event(WIFI_DISCONNECTED,NULL); break; case WIFI_GOT_IP: - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 1"); - lv_subject_set_int(&wifiStatus,1); - lvgl_port_unlock(); - } + mainState.wifi_init=true; + send_event(WIFI_CONNECTED,NULL); break; case WIFI_CONNECT_FAIL: - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } break; default: - if(lvgl_port_lock(0)){ - ESP_LOGE(TAG,"Statut Wifi 0"); - lv_subject_set_int(&wifiStatus,0); - lvgl_port_unlock(); - } break; } @@ -541,37 +501,14 @@ void app_main(void) { domotic_event_group = xEventGroupCreate(); - printf("Minimum free heap size: %" PRIu32 " bytes\n", esp_get_minimum_free_heap_size()); - printf("Free heap size: %" PRIu32 " bytes\n", esp_get_free_heap_size()); - heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); - heap_caps_register_failed_alloc_callback(alloc_fail); - - printf("1- Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); + ihm_queue = xQueueCreate(10,sizeof(xIPStackEvent_t)); esp_log_level_set("wifi", ESP_LOG_ERROR); esp_log_level_set(TAG, ESP_LOG_VERBOSE); - printf("2- Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - //mount_sd_card(); bsp_sdcard_mount(); - - - //lv_log_register_print_cb(log_cb); - // LCD HW initialization - //ESP_ERROR_CHECK(app_lcd_init()); - - printf("4 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - // Touch initialization - //ESP_ERROR_CHECK(app_touch_init()); - - printf("5 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - // LVGL initialization - //ESP_ERROR_CHECK(app_lvgl_init()); - - printf("6 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - ESP_LOGI(TAG, "Initializing LittleFS"); esp_vfs_littlefs_conf_t conflfs = { @@ -608,12 +545,8 @@ void app_main(void) // On affiche au plus tot l'ecran de démarrage // ESP_ERROR_CHECK(esp_lcd_panel_mirror(lcd_panel,true,true)); - init_display(); - display_lock("app_main"); - app_main_display(); - display_unlock("app_main"); + xTaskCreatePinnedToCore(&drawIhm,"ihm_task",10000,ihm_queue,10,NULL,0); - printf("7 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); // Initialize NVS esp_err_t ret = nvs_flash_init(); if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) @@ -623,11 +556,8 @@ void app_main(void) } ESP_ERROR_CHECK(ret); - printf("8 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); ESP_LOGI(TAG, "ESP_WIFI_MODE_STA"); - lv_subject_init_int(&wifiStatus,0); - lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); wifi_init_sta(wifi_cb); on_weather_data_retrieval(weather_data_retreived); @@ -650,38 +580,14 @@ void app_main(void) } /* Tache updateTime - FIN*/ - mqtt_app_start(mqtt_cb); + mqtt_app_start(mqtt_cb, domotic_event_group); start_wifi_logger(); wifi_log_e("test", "%s %d %f", "hello world wifi logger", 43, 45.341223242); // write log over wifi with log level -> ERROR } - - //esp_log_level_set("tcp_handler", ESP_LOG_NONE); - printf("8b - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - - printf("9 - Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - - - printf("10. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - heap_caps_print_heap_info(MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); - - - printf("11. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - - printf("12. Free heap after buffers allocation: %d\n", xPortGetFreeHeapSize()); - // Show LVGL objects - if(display_lock("draw_ihm")){ - draw_ihm(); - display_unlock("draw_ihm"); - }else{ - ESP_LOGE(TAG,"Impossible d'obtenir le mutex pour draw_ihm"); - } - lv_subject_init_int(&mqttStatus,-1); lv_subject_add_observer_obj(&mqttStatus, mqttStatus_obs_cb, NULL, NULL); - - // Configuration de la sonde Temp/Humid. am2302_config_t am2302_config = { .gpio_num = AM2302_GPIO, @@ -690,8 +596,6 @@ void app_main(void) .clk_src = RMT_CLK_SRC_DEFAULT, }; ESP_ERROR_CHECK(am2302_new_sensor_rmt(&am2302_config, &rmt_config, &sensor)); - - xTaskCreate(&readTempHumid, "read_temp_task", 8192, NULL, 5, NULL); //xTaskCreate(&simple_ota_example_task, "ota_example_task", 8192, NULL, 5, NULL); diff --git a/main/main.h b/main/main.h index 0cf725f..fdd80bd 100644 --- a/main/main.h +++ b/main/main.h @@ -1,2 +1,7 @@ #pragma once #define WIFI_CONNECTED_BIT BIT0 +typedef enum domo_events{ + EVT_WIFI_CONNECTED, + EVT_TIME_SETTED +} domo_events; +void send_event(domo_events evt, void* pDatas); diff --git a/main/obtain_time.c b/main/obtain_time.c index 34955e6..a237bcc 100644 --- a/main/obtain_time.c +++ b/main/obtain_time.c @@ -25,7 +25,7 @@ void time_sync_notification_cb(struct timeval *tv) //strftime(strftime_buf, sizeof(strftime_buf), "%c", &timeinfo); sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min); localtime_r(&now, &timeinfo); - draw_time(strftime_buf); + send_event(EVT_TIME_SETTED,&strftime_buf); } void obtain_time() @@ -63,12 +63,7 @@ void updateTime(void *pvParameter) struct tm timeinfo = {0}; localtime_r(&now, &timeinfo); sprintf(strftime_buf, "%s %d %s %02d:%02d", days[timeinfo.tm_wday], timeinfo.tm_mday, months[timeinfo.tm_mon], timeinfo.tm_hour, timeinfo.tm_min); - draw_time(strftime_buf); - /* - lv_obj_refr_size(lv_obj_get_child(lv_obj_get_child(lv_layer_top(),0),0)); - lv_obj_refr_size(lv_obj_get_child(lv_layer_top(),0)); - lvgl_port_unlock(); - }*/ + send_event(EVT_TIME_SETTED,&strftime_buf); vTaskDelay(60000 / portTICK_PERIOD_MS); } } From 98eb5bc66bfe2b9c4a4da59e7cd373d1946179db Mon Sep 17 00:00:00 2001 From: marc Date: Sat, 26 Apr 2025 21:17:39 +0200 Subject: [PATCH 6/6] =?UTF-8?q?luminosit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/ihm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/ihm.c b/main/ihm.c index 50576bf..61217ec 100644 --- a/main/ihm.c +++ b/main/ihm.c @@ -185,9 +185,9 @@ void init_display(){ lv_display_t *dsp = bsp_display_start_with_config(&cfg); //bsp_display_rotate(dsp,LV_DISP_ROTATION_180); - bsp_display_brightness_set(50); bsp_display_backlight_on(); - mainState.display_init=true; + bsp_display_brightness_set(30); + mainState.display_init=true; }