From 829dcfc28567025994c13a75a733fccd55c034f6 Mon Sep 17 00:00:00 2001 From: marc Date: Sun, 16 Nov 2025 21:03:18 +0100 Subject: [PATCH] cards --- .gitignore | 1 + components/domotic_display/CMakeLists.txt | 1 + .../domotic_display/fonts/Roboto-Medium.ttf | Bin 0 -> 146132 bytes .../domotic_display/fonts/roboto_medium_36.c | 2780 +++++++++++++++++ components/domotic_display/ihm.c | 56 +- components/domotic_display/include/ihm.h | 2 + .../test_host/main/CMakeLists.txt | 1 + .../domotic_display/test_host/sdkconfig | 1047 ------- .../test_host/sdkconfig.defaults | 11 + 9 files changed, 2846 insertions(+), 1053 deletions(-) create mode 100644 components/domotic_display/fonts/Roboto-Medium.ttf create mode 100644 components/domotic_display/fonts/roboto_medium_36.c delete mode 100644 components/domotic_display/test_host/sdkconfig create mode 100644 components/domotic_display/test_host/sdkconfig.defaults diff --git a/.gitignore b/.gitignore index 40cd6eb..69e62ca 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ esp-idf/ gdbinit/ sdkconfig sdkconfig.old +components/domotic_display/test_host/sdkconfig diff --git a/components/domotic_display/CMakeLists.txt b/components/domotic_display/CMakeLists.txt index 9d79160..e8ea730 100644 --- a/components/domotic_display/CMakeLists.txt +++ b/components/domotic_display/CMakeLists.txt @@ -5,6 +5,7 @@ endfunction() make_font(12) make_font(18) make_font(24) +execute_process(COMMAND podman run -v /home/marc/rgb_lcd/components/domotic_display/fonts:/app -w /app lvfontconv lv_font_conv --bpp 4 --size 36 --no-compress --font Roboto-Medium.ttf --symbols "0123456789.°àéèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/-" --format lvgl -o roboto_medium_36.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575) idf_component_register(SRC_DIRS . fonts INCLUDE_DIRS "include" diff --git a/components/domotic_display/fonts/Roboto-Medium.ttf b/components/domotic_display/fonts/Roboto-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d629e984895d8ff4442fe7bdce1ed4dc754730ca GIT binary patch literal 146132 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 hce{O|Y87xI^By(5{0= 8 +static const lv_font_fmt_txt_dsc_t font_dsc = { +#else +static lv_font_fmt_txt_dsc_t font_dsc = { +#endif + .glyph_bitmap = glyph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = &kern_pairs, + .kern_scale = 16, + .cmap_num = 5, + .bpp = 4, + .kern_classes = 0, + .bitmap_format = 0, +#if LVGL_VERSION_MAJOR == 8 + .cache = &cache +#endif +}; + + + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +#if LVGL_VERSION_MAJOR >= 8 +const lv_font_t roboto_medium_36 = { +#else +lv_font_t roboto_medium_36 = { +#endif + .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ + .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ + .line_height = 41, /*The maximum line height required by the font*/ + .base_line = 9, /*Baseline measured from the bottom of the line*/ +#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +#endif +#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 + .underline_position = -3, + .underline_thickness = 2, +#endif + .dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9 + .fallback = NULL, +#endif + .user_data = NULL, +}; + + + +#endif /*#if ROBOTO_MEDIUM_36*/ + diff --git a/components/domotic_display/ihm.c b/components/domotic_display/ihm.c index 8f70d67..ef41717 100644 --- a/components/domotic_display/ihm.c +++ b/components/domotic_display/ihm.c @@ -1049,6 +1049,7 @@ void lv_theme_copy(lv_theme_t * dst, const lv_theme_t * src) LV_FONT_DECLARE(montserrat_medium_12); LV_FONT_DECLARE(montserrat_medium_18); LV_FONT_DECLARE(montserrat_medium_24); +LV_FONT_DECLARE(roboto_medium_36); void draw_ihm() { @@ -1056,9 +1057,9 @@ void draw_ihm() /*Initialize the styles*/ lv_style_init(&style_btn); - lv_style_set_bg_color(&style_btn, lv_palette_main(LV_PALETTE_GREEN)); - lv_style_set_border_color(&style_btn, lv_palette_darken(LV_PALETTE_GREEN, 3)); - lv_style_set_border_width(&style_btn, 3); + //lv_style_set_bg_color(&style_btn, lv_palette_main(LV_PALETTE_GREEN)); + //lv_style_set_border_color(&style_btn, lv_palette_darken(LV_PALETTE_GREEN, 3)); + //lv_style_set_border_width(&style_btn, 3); /* Initialize the new theme with the current theme as its parent * The user is responsible for freeing the theme when it's no longer needed */ @@ -1086,8 +1087,11 @@ void draw_ihm() // keys.clear(); lv_obj_clean(lv_scr_act()); - - + lv_obj_set_flex_flow(lv_scr_act(),LV_FLEX_FLOW_ROW); + create_card("Météo"); + create_card("Volets"); + create_card("Machine à laver"); + return; //Create a Tab view object tabview = lv_tabview_create(lv_screen_active()); @@ -1151,8 +1155,48 @@ void draw_ihm() lv_obj_set_flex_flow(tabVolets, LV_FLEX_FLOW_ROW); lv_obj_set_flex_flow(tabMeteo, LV_FLEX_FLOW_COLUMN); - } +} +void create_card(char *lbl) +{ + lv_color_t base = LV_COLOR_MAKE(0xff, 0xff, 0xff); + lv_color_t accent = LV_COLOR_MAKE(0xcc, 0x00, 0x00); + + static lv_style_t objstyle; + static lv_style_t txtstyle; + lv_style_init(&objstyle); + lv_style_init(&txtstyle); + lv_style_set_bg_color(&objstyle, accent); + lv_style_set_outline_color(&objstyle, accent); + + lv_style_set_text_color(&txtstyle, accent); + lv_style_set_line_color(&txtstyle, accent); + lv_style_set_text_font(&txtstyle, &roboto_medium_36); + // if(icon_img_dsc == NULL) return; + lv_obj_t *app_card = lv_obj_create(lv_screen_active()); + lv_obj_remove_style_all(app_card); + lv_obj_set_size(app_card, 300, 180); + lv_obj_set_style_radius(app_card, 20, 0); + lv_obj_set_style_bg_opa(app_card, 16 * 255 / 100, 0); + lv_obj_set_style_pad_all(app_card, 24, 0); + lv_obj_add_style(app_card, &objstyle, 0); + // lv_obj_add_event_cb(app_card, app_card_click_cb, LV_EVENT_CLICKED, (void *)((lv_uintptr_t)app_cb)); + + lv_obj_t *label = lv_label_create(app_card); + lv_label_set_text(label, lbl); + lv_obj_set_align(label, LV_ALIGN_BOTTOM_LEFT); + lv_obj_add_style(label, &txtstyle, 0); + + lv_obj_t *icon = lv_image_create(app_card); + // lv_obj_set_size(icon, icon_img_dsc->header.w, icon_img_dsc->header.h); + lv_image_set_inner_align(icon, LV_IMAGE_ALIGN_CENTER); + // lv_image_set_src(icon, icon_img_dsc); + lv_obj_set_style_bg_opa(icon, LV_OPA_COVER, 0); + lv_obj_set_style_bg_color(icon, lv_color_white(), 0); + lv_obj_set_style_radius(icon, LV_COORD_MAX, 0); + // lv_obj_add_style(icon, &c->styles[STYLE_COLOR_ACCENT][STYLE_TYPE_A8_IMG], 0); + lv_obj_add_flag(icon, LV_OBJ_FLAG_EVENT_BUBBLE); +} void log_cb(lv_log_level_t level, const char * buf){ ESP_LOGE(TAG, "%s",buf); diff --git a/components/domotic_display/include/ihm.h b/components/domotic_display/include/ihm.h index 4edc63b..1d31b14 100644 --- a/components/domotic_display/include/ihm.h +++ b/components/domotic_display/include/ihm.h @@ -18,6 +18,8 @@ void showMeteoIcon(const char *icon, lv_obj_t *desc_icon, int childNr); void draw_tabVolets(); void draw_ihm(); +void create_card(); + void weather_data_retreived_start(); void weather_data_retreived(meteodailyforecast_data dailyDatas[3], meteoforecast_data datas[3]); diff --git a/components/domotic_display/test_host/main/CMakeLists.txt b/components/domotic_display/test_host/main/CMakeLists.txt index 2704830..4a2acb8 100644 --- a/components/domotic_display/test_host/main/CMakeLists.txt +++ b/components/domotic_display/test_host/main/CMakeLists.txt @@ -7,6 +7,7 @@ idf_component_register(SRCS "../../fonts/montserrat_medium_12.c" "../../fonts/montserrat_medium_18.c" "../../fonts/montserrat_medium_24.c" + "../../fonts/roboto_medium_36.c" INCLUDE_DIRS "../../include" WHOLE_ARCHIVE diff --git a/components/domotic_display/test_host/sdkconfig b/components/domotic_display/test_host/sdkconfig deleted file mode 100644 index f517b62..0000000 --- a/components/domotic_display/test_host/sdkconfig +++ /dev/null @@ -1,1047 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration -# -CONFIG_SOC_EFUSE_SUPPORTED=y -CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y -CONFIG_SOC_CPU_CORES_NUM=1 -CONFIG_SOC_GPIO_IN_RANGE_MAX=65535 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=65535 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y -CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_USB_JTAG=y -CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y -CONFIG_SOC_EFUSE_DIS_ICACHE=y -CONFIG_SOC_SECURE_BOOT_V2_RSA=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 -CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TOOLCHAIN="gcc" -CONFIG_IDF_TOOLCHAIN_GCC=y -CONFIG_IDF_TARGET="linux" -CONFIG_IDF_INIT_VERSION="5.5.1" -CONFIG_IDF_TARGET_LINUX=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0xFFFF - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_RAM=y -CONFIG_APP_BUILD_GENERATE_BINARIES=y -# CONFIG_APP_BUILD_TYPE_PURE_RAM_APP is not set -# CONFIG_APP_REPRODUCIBLE_BUILD is not set -# CONFIG_APP_NO_BLOBS is not set -# end of Build type - -CONFIG_ESP_ROM_USB_OTG_NUM=-1 -CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 -CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y -CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y - -# -# Boot ROM Behavior -# -CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y -# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set -# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set -# end of Boot ROM Behavior - -# -# Compiler options -# -CONFIG_COMPILER_OPTIMIZATION_DEBUG=y -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -# CONFIG_COMPILER_OPTIMIZATION_PERF is not set -# 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 -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -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_HOST=y -CONFIG_COMPILER_RT_LIB_NAME="" -# CONFIG_COMPILER_STATIC_ANALYZER is not set -# end of Compiler options - -# -# Component config -# - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set -# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y -# end of ESP-TLS - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# ESP HTTP client -# -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 - -# -# Hardware Settings -# - -# -# Chip revision -# -CONFIG_ESP_REV_MIN_FULL=0 -CONFIG_ESP_REV_MAX_FULL=999 -CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 -CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=999 -# end of Chip revision - -# -# MAC Config -# -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set -# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0 -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# end of Sleep Config - -# -# RTC Clock Config -# - -# -# Peripheral Control -# -# CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM is not set -CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y -# end of Peripheral Control - -# -# Main XTAL Config -# -CONFIG_ESP_BRINGUP_BYPASS_CPU_CLK_SETTING=y -CONFIG_ESP_BRINGUP_BYPASS_RANDOM_SETTING=y -CONFIG_ESP_INTR_IN_IRAM=y -# end of Hardware Settings - -# -# ESP-ROM -# -CONFIG_ESP_ROM_PRINT_IN_IRAM=y -# end of ESP-ROM - -# -# ESP System Settings -# -CONFIG_ESP_SYSTEM_IN_IRAM=y -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 - -# -# Memory protection -# -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -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_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_TASK_WDT_EN=y -CONFIG_ESP_TASK_WDT_INIT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP_DEBUG_OCDAWARE=y -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_ENABLE=y -CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# FreeRTOS -# - -# -# Kernel -# -CONFIG_FREERTOS_HZ=1000 -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -# end of Kernel - -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_UNICORE=y -CONFIG_FREERTOS_NUMBER_OF_CORES=1 -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_USE_HOOKS is not set -# CONFIG_HEAP_TASK_TRACKING is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set -# end of Heap memory debugging - -# -# Log -# -CONFIG_LOG_VERSION_1=y -# CONFIG_LOG_VERSION_2 is not set -CONFIG_LOG_VERSION=1 - -# -# Log Level -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set -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=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 - -# -# Level Settings -# -# CONFIG_LOG_MASTER_LEVEL is not set -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 Format - -# -# Settings -# -CONFIG_LOG_MODE_TEXT_EN=y -CONFIG_LOG_MODE_TEXT=y -# end of Settings - -CONFIG_LOG_IN_IRAM=y -# end of Log - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v3.x related -# -# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set -CONFIG_MBEDTLS_PKCS7_C=y -# end of mbedTLS v3.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -# CONFIG_MBEDTLS_CMAC_C is not set -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA1_C=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 -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -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 -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -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 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 -# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set -# end of mbedTLS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -# CONFIG_MQTT_PROTOCOL_5 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 is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# MMU Config -# -CONFIG_MMU_PAGE_SIZE_64KB=y -CONFIG_MMU_PAGE_MODE="64KB" -CONFIG_MMU_PAGE_SIZE=0x10000 -# end of MMU Config - -# -# Main Flash configuration -# - -# -# SPI Flash behavior when brownout -# -CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y -CONFIG_SPI_FLASH_BROWNOUT_RESET=y -# end of SPI Flash behavior when brownout - -# -# Optional and Experimental Features (READ DOCS FIRST) -# - -# -# Features here require specific hardware (READ DOCS FIRST!) -# -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set -CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED=y -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -# CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_GD_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set -# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# TCP Transport -# - -# -# Websocket -# -CONFIG_WS_TRANSPORT=y -CONFIG_WS_BUFFER_SIZE=1024 -# CONFIG_WS_DYNAMIC_BUFFER is not set -# end of Websocket -# end of TCP Transport - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -# CONFIG_UNITY_ENABLE_COLOR is not set -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set -# end of Unity unit testing library - -# -# LVGL configuration -# -# CONFIG_LV_CONF_SKIP is not set -# CONFIG_LV_CONF_MINIMAL is not set - -# -# Color Settings -# -# CONFIG_LV_COLOR_DEPTH_32 is not set -# CONFIG_LV_COLOR_DEPTH_24 is not set -CONFIG_LV_COLOR_DEPTH_16=y -# CONFIG_LV_COLOR_DEPTH_8 is not set -# CONFIG_LV_COLOR_DEPTH_1 is not set -CONFIG_LV_COLOR_DEPTH=16 -# end of Color Settings - -# -# Memory Settings -# -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=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 - -# -# HAL Settings -# -CONFIG_LV_DEF_REFR_PERIOD=33 -CONFIG_LV_DPI_DEF=130 -# end of HAL Settings - -# -# Operating System (OS) -# -CONFIG_LV_OS_NONE=y -# CONFIG_LV_OS_PTHREAD is not set -# CONFIG_LV_OS_FREERTOS is not set -# CONFIG_LV_OS_CMSIS_RTOS2 is not set -# CONFIG_LV_OS_RTTHREAD is not set -# CONFIG_LV_OS_WINDOWS is not set -# CONFIG_LV_OS_MQX is not set -# CONFIG_LV_OS_SDL2 is not set -# CONFIG_LV_OS_CUSTOM is not set -# end of Operating System (OS) - -# -# Rendering Configuration -# -CONFIG_LV_DRAW_BUF_STRIDE_ALIGN=1 -CONFIG_LV_DRAW_BUF_ALIGN=4 -CONFIG_LV_DRAW_LAYER_SIMPLE_BUF_SIZE=24576 -CONFIG_LV_DRAW_LAYER_MAX_MEMORY=0 -CONFIG_LV_USE_DRAW_SW=y -CONFIG_LV_DRAW_SW_SUPPORT_RGB565=y -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_ARGB8888_PREMULTIPLIED=y -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_I1_LUM_THRESHOLD=127 -CONFIG_LV_DRAW_SW_DRAW_UNIT_CNT=1 -# CONFIG_LV_USE_DRAW_ARM2D_SYNC is not set -# 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_DRAW_SW_SHADOW_CACHE_SIZE=0 -CONFIG_LV_DRAW_SW_CIRCLE_CACHE_SIZE=4 -CONFIG_LV_DRAW_SW_ASM_NONE=y -# CONFIG_LV_DRAW_SW_ASM_NEON is not set -# CONFIG_LV_DRAW_SW_ASM_HELIUM is not set -# CONFIG_LV_DRAW_SW_ASM_CUSTOM is not set -CONFIG_LV_USE_DRAW_SW_ASM=0 -# CONFIG_LV_USE_PXP is not set -# CONFIG_LV_USE_G2D is not set -# CONFIG_LV_USE_DRAW_DAVE2D is not set -# CONFIG_LV_USE_DRAW_SDL is not set -# CONFIG_LV_USE_DRAW_VG_LITE is not set -# CONFIG_LV_USE_VECTOR_GRAPHIC is not set -# CONFIG_LV_USE_DRAW_DMA2D is not set -# CONFIG_LV_USE_PPA is not set -# CONFIG_LV_USE_DRAW_EVE is not set -# end of Rendering Configuration - -# -# Feature Configuration -# - -# -# Logging -# -# CONFIG_LV_USE_LOG is not set -# end of Logging - -# -# Asserts -# -CONFIG_LV_USE_ASSERT_NULL=y -CONFIG_LV_USE_ASSERT_MALLOC=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" -# end of Asserts - -# -# Debug -# -# CONFIG_LV_USE_REFR_DEBUG is not set -# CONFIG_LV_USE_LAYER_DEBUG is not set -# CONFIG_LV_USE_PARALLEL_DRAW_DEBUG is not set -# end of Debug - -# -# Others -# -# 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=2 -CONFIG_LV_COLOR_MIX_ROUND_OFS=128 -# CONFIG_LV_OBJ_STYLE_CACHE is not set -# CONFIG_LV_USE_OBJ_ID is not set -# CONFIG_LV_USE_OBJ_NAME is not set -# CONFIG_LV_USE_OBJ_PROPERTY is not set -# end of Others -# end of Feature Configuration - -# -# Compiler Settings -# -# CONFIG_LV_BIG_ENDIAN_SYSTEM is not set -CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE=1 -# CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM is not set -# CONFIG_LV_USE_FLOAT is not set -# CONFIG_LV_USE_MATRIX is not set -# CONFIG_LV_USE_PRIVATE_API is not set -# end of Compiler Settings - -# -# Font Usage -# - -# -# 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_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_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_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_14_CJK is not set -# CONFIG_LV_FONT_SOURCE_HAN_SANS_SC_16_CJK is not set -# CONFIG_LV_FONT_UNSCII_8 is not set -# CONFIG_LV_FONT_UNSCII_16 is not set -# end of Enable built-in fonts - -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_8 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_10 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_12 is not set -CONFIG_LV_FONT_DEFAULT_MONTSERRAT_14=y -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_16 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_20 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_22 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_24 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_30 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_34 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_36 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_38 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_40 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_42 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_44 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_46 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_48 is not set -# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_28_COMPRESSED is not set -# CONFIG_LV_FONT_DEFAULT_DEJAVU_16_PERSIAN_HEBREW is not set -# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_14_CJK is not set -# CONFIG_LV_FONT_DEFAULT_SOURCE_HAN_SANS_SC_16_CJK is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_8 is not set -# CONFIG_LV_FONT_DEFAULT_UNSCII_16 is not set -# CONFIG_LV_FONT_FMT_TXT_LARGE is not set -# CONFIG_LV_USE_FONT_COMPRESSED is not set -CONFIG_LV_USE_FONT_PLACEHOLDER=y - -# -# Enable static fonts -# -# end of Enable static fonts -# end of Font Usage - -# -# Text Settings -# -CONFIG_LV_TXT_ENC_UTF8=y -# CONFIG_LV_TXT_ENC_ASCII is not set -CONFIG_LV_TXT_BREAK_CHARS=" ,.;:-_)}" -CONFIG_LV_TXT_LINE_BREAK_LONG_LEN=0 -CONFIG_LV_TXT_COLOR_CMD="#" -# CONFIG_LV_USE_BIDI is not set -# CONFIG_LV_USE_ARABIC_PERSIAN_CHARS is not set -# end of Text Settings - -# -# Widget Usage -# -CONFIG_LV_WIDGETS_HAS_DEFAULT_VALUE=y -CONFIG_LV_USE_ANIMIMG=y -CONFIG_LV_USE_ARC=y -CONFIG_LV_USE_ARCLABEL=y -CONFIG_LV_USE_BAR=y -CONFIG_LV_USE_BUTTON=y -CONFIG_LV_USE_BUTTONMATRIX=y -CONFIG_LV_USE_CALENDAR=y -# CONFIG_LV_CALENDAR_WEEK_STARTS_MONDAY is not set - -# -# Days name configuration -# -CONFIG_LV_MONDAY_STR="Mo" -CONFIG_LV_TUESDAY_STR="Tu" -CONFIG_LV_WEDNESDAY_STR="We" -CONFIG_LV_THURSDAY_STR="Th" -CONFIG_LV_FRIDAY_STR="Fr" -CONFIG_LV_SATURDAY_STR="Sa" -CONFIG_LV_SUNDAY_STR="Su" -# end of Days name configuration - -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=y -CONFIG_LV_USE_IMAGE=y -CONFIG_LV_USE_IMAGEBUTTON=y -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=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=y -CONFIG_LV_USE_SLIDER=y -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=y -CONFIG_LV_USE_TABVIEW=y -CONFIG_LV_USE_TILEVIEW=y -CONFIG_LV_USE_WIN=y -# end of Widget Usage - -# -# Themes -# -CONFIG_LV_USE_THEME_DEFAULT=y -# CONFIG_LV_THEME_DEFAULT_DARK is not set -CONFIG_LV_THEME_DEFAULT_GROW=y -CONFIG_LV_THEME_DEFAULT_TRANSITION_TIME=80 -CONFIG_LV_USE_THEME_SIMPLE=y -# CONFIG_LV_USE_THEME_MONO is not set -# end of Themes - -# -# Layouts -# -CONFIG_LV_USE_FLEX=y -CONFIG_LV_USE_GRID=y -# end of Layouts - -# -# 3rd Party Libraries -# -CONFIG_LV_FS_DEFAULT_DRIVER_LETTER=0 -# CONFIG_LV_USE_FS_STDIO is not set -# CONFIG_LV_USE_FS_POSIX is not set -# CONFIG_LV_USE_FS_WIN32 is not set -# CONFIG_LV_USE_FS_FATFS is not set -# CONFIG_LV_USE_FS_MEMFS is not set -# CONFIG_LV_USE_FS_LITTLEFS is not set -# CONFIG_LV_USE_FS_ARDUINO_ESP_LITTLEFS is not set -# CONFIG_LV_USE_FS_ARDUINO_SD is not set -# CONFIG_LV_USE_FS_UEFI is not set -# CONFIG_LV_USE_FS_FROGFS is not set -# CONFIG_LV_USE_LODEPNG is not set -# CONFIG_LV_USE_LIBPNG is not set -# CONFIG_LV_USE_BMP is not set -# CONFIG_LV_USE_TJPGD is not set -# CONFIG_LV_USE_LIBJPEG_TURBO is not set -# CONFIG_LV_USE_GIF is not set -# CONFIG_LV_BIN_DECODER_RAM_LOAD is not set -# CONFIG_LV_USE_RLE is not set -# CONFIG_LV_USE_QRCODE is not set -# CONFIG_LV_USE_BARCODE is not set -# CONFIG_LV_USE_FREETYPE is not set -# CONFIG_LV_USE_TINY_TTF is not set -# CONFIG_LV_USE_RLOTTIE is not set -# CONFIG_LV_USE_THORVG is not set -# CONFIG_LV_USE_LZ4 is not set -# CONFIG_LV_USE_FFMPEG is not set -# end of 3rd Party Libraries - -# -# Others -# -# CONFIG_LV_USE_SNAPSHOT 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_GRIDNAV is not set -# 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 -# CONFIG_LV_USE_FILE_EXPLORER is not set -# CONFIG_LV_USE_FONT_MANAGER is not set -# CONFIG_LV_USE_TEST is not set -# CONFIG_LV_USE_TRANSLATION is not set -# CONFIG_LV_USE_XML is not set -# CONFIG_LV_USE_COLOR_FILTER is not set -CONFIG_LVGL_VERSION_MAJOR=9 -CONFIG_LVGL_VERSION_MINOR=4 -CONFIG_LVGL_VERSION_PATCH=0 -# end of Others - -# -# Devices -# -CONFIG_LV_USE_SDL=y -CONFIG_LV_SDL_INCLUDE_PATH="SDL2/SDL.h" -# CONFIG_LV_SDL_RENDER_MODE_PARTIAL is not set -CONFIG_LV_SDL_RENDER_MODE_DIRECT=y -# CONFIG_LV_SDL_RENDER_MODE_FULL is not set -CONFIG_LV_SDL_SINGLE_BUFFER=y -# CONFIG_LV_SDL_DOUBLE_BUFFER is not set -CONFIG_LV_SDL_BUFFER_COUNT=1 -CONFIG_LV_SDL_ACCELERATED=y -# CONFIG_LV_SDL_FULLSCREEN is not set -CONFIG_LV_SDL_DIRECT_EXIT=y -CONFIG_LV_SDL_MOUSEWHEEL_MODE_ENCODER=y -# CONFIG_LV_SDL_MOUSEWHEEL_MODE_CROWN is not set -CONFIG_LV_SDL_MOUSEWHEEL_MODE=0 -# CONFIG_LV_USE_X11 is not set -# CONFIG_LV_USE_WAYLAND is not set -# CONFIG_LV_USE_LINUX_FBDEV is not set -# CONFIG_LV_USE_NUTTX is not set -# CONFIG_LV_USE_LINUX_DRM is not set -# CONFIG_LV_USE_TFT_ESPI is not set -# CONFIG_LV_USE_LOVYAN_GFX is not set -# CONFIG_LV_USE_EVDEV is not set -# CONFIG_LV_USE_LIBINPUT is not set -# CONFIG_LV_USE_ST7735 is not set -# CONFIG_LV_USE_ST7789 is not set -# CONFIG_LV_USE_ST7796 is not set -# CONFIG_LV_USE_ILI9341 is not set -# CONFIG_LV_USE_GENERIC_MIPI is not set -# CONFIG_LV_USE_NXP_ELCDIF is not set -# CONFIG_LV_USE_RENESAS_GLCDC is not set -# CONFIG_LV_USE_ST_LTDC is not set -# CONFIG_LV_USE_FT81X is not set -# CONFIG_LV_USE_UEFI is not set -# CONFIG_LV_USE_OPENGLES is not set -# CONFIG_LV_USE_QNX is not set -# end of Devices - -# -# Examples -# -# CONFIG_LV_BUILD_EXAMPLES is not set -# end of Examples - -# -# Demos -# -# CONFIG_LV_BUILD_DEMOS is not set -# end of Demos -# end of LVGL configuration -# end of Component config - -# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set - -# Deprecated options for backward compatibility -CONFIG_APP_BUILD_TYPE_ELF_RAM=y -# CONFIG_NO_BLOBS is not set -CONFIG_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y -# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set -# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set -CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y -# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set -CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_CXX_EXCEPTIONS is not set -CONFIG_STACK_CHECK_NONE=y -# CONFIG_STACK_CHECK_NORM is not set -# CONFIG_STACK_CHECK_STRONG is not set -# CONFIG_STACK_CHECK_ALL is not set -# CONFIG_WARN_WRITE_STRINGS is not set -# CONFIG_EVENT_LOOP_PROFILING is not set -CONFIG_POST_EVENTS_FROM_ISR=y -CONFIG_POST_EVENTS_FROM_IRAM_ISR=y -# CONFIG_ESP_SYSTEM_PD_FLASH is not set -# CONFIG_PERIPH_CTRL_FUNC_IN_IRAM is not set -CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 -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 -# CONFIG_ESP_CONSOLE_UART_NONE is not set -CONFIG_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_CONSOLE_UART_BAUDRATE=115200 -CONFIG_INT_WDT=y -CONFIG_INT_WDT_TIMEOUT_MS=300 -CONFIG_TASK_WDT=y -CONFIG_ESP_TASK_WDT=y -# CONFIG_TASK_WDT_PANIC is not set -CONFIG_TASK_WDT_TIMEOUT_S=5 -CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set -CONFIG_IPC_TASK_STACK_SIZE=1024 -# CONFIG_HAL_ASSERTION_SILIENT is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS is not set -# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set -CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=y -# End of deprecated options diff --git a/components/domotic_display/test_host/sdkconfig.defaults b/components/domotic_display/test_host/sdkconfig.defaults new file mode 100644 index 0000000..ee58559 --- /dev/null +++ b/components/domotic_display/test_host/sdkconfig.defaults @@ -0,0 +1,11 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Minimal Configuration +# +CONFIG_IDF_TARGET="linux" +CONFIG_LV_CONF_SKIP=n +CONFIG_LV_USE_LOG=y +CONFIG_LV_LOG_PRINTF=y +CONFIG_LV_FONT_MONTSERRAT_40=y +CONFIG_LV_USE_SDL=y +CONFIG_LV_BUILD_EXAMPLES=n +CONFIG_LV_BUILD_DEMOS=n