Compare commits

..

10 Commits

Author SHA1 Message Date
4abbf3abea add custom task 2025-11-16 14:56:08 +01:00
3aeeff52eb gitignore 2025-11-16 14:29:14 +01:00
b232a0d8e1 new defaults ! 2025-11-16 14:27:39 +01:00
ad170a8aa7 work with themes 2025-11-16 14:25:08 +01:00
ef55ef2519 path to double run 2025-11-16 11:40:01 +01:00
430f1c90fd work without theme 2025-11-15 19:47:07 +01:00
1fea5e284d ihm test work 2025-11-15 14:10:40 +01:00
1375e82550 ... 2025-10-31 14:42:33 +01:00
2beca08042 add bh1750 2025-09-17 22:24:26 +02:00
a543836df4 nettoyage 2025-09-05 17:48:54 +02:00
53 changed files with 12324 additions and 7375 deletions

6
.gitignore vendored
View File

@ -1,2 +1,8 @@
build/ build/
managed_components/ managed_components/
build_slave/
CMakeFiles/
esp-idf/
gdbinit/
sdkconfig
sdkconfig.old

23
.vscode/launch.json vendored
View File

@ -16,7 +16,28 @@
"name": "Debug LVGL demo with gdb", "name": "Debug LVGL demo with gdb",
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/bin/rgb_lcd", "program": "${workspaceFolder}/build/rgb_lcd",
"args": [],
"cwd": "${workspaceFolder}",
"stopAtEntry": false,
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb"
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
}
},
{
"name": "Debug ihm with gdb",
"type": "cppdbg",
"request": "launch",
"preLaunchTask": "Build - Build IHM",
"program": "${workspaceFolder}/components/domotic_display/test_host/build/nvs_host_test.elf",
"args": [], "args": [],
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"stopAtEntry": false, "stopAtEntry": false,

View File

@ -1,7 +1,7 @@
{ {
"C_Cpp.intelliSenseEngine": "default", "C_Cpp.intelliSenseEngine": "default",
"idf.espIdfPath": "/home/marc/esp/master/esp-idf", "idf.espIdfPath": "/home/marc/esp/v5.5.1/esp-idf",
"idf.pythonBinPath": "/home/marc/.espressif/python_env/idf5.3_py3.10_env/bin/python", "idf.pythonBinPath": "/home/marc/.espressif/python_env/idf5.5_py3.10_env/bin/python",
"idf.toolsPath": "/home/marc/.espressif", "idf.toolsPath": "/home/marc/.espressif",
"idf.customExtraPaths": "/home/marc/.espressif/tools/xtensa-esp-elf-gdb/14.2_20240403/xtensa-esp-elf-gdb/bin:/home/marc/.espressif/tools/riscv32-esp-elf-gdb/14.2_20240403/riscv32-esp-elf-gdb/bin:/home/marc/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin:/home/marc/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/bin:/home/marc/.espressif/tools/esp32ulp-elf/2.38_20240113/esp32ulp-elf/bin:/home/marc/.espressif/tools/cmake/3.24.0/bin:/home/marc/.espressif/tools/openocd-esp32/v0.12.0-esp32-20240318/openocd-esp32/bin:/home/marc/.espressif/tools/ninja/1.11.1:/home/marc/.espressif/tools/esp-rom-elfs/20240305", "idf.customExtraPaths": "/home/marc/.espressif/tools/xtensa-esp-elf-gdb/14.2_20240403/xtensa-esp-elf-gdb/bin:/home/marc/.espressif/tools/riscv32-esp-elf-gdb/14.2_20240403/riscv32-esp-elf-gdb/bin:/home/marc/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20240530/xtensa-esp-elf/bin:/home/marc/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/bin:/home/marc/.espressif/tools/esp32ulp-elf/2.38_20240113/esp32ulp-elf/bin:/home/marc/.espressif/tools/cmake/3.24.0/bin:/home/marc/.espressif/tools/openocd-esp32/v0.12.0-esp32-20240318/openocd-esp32/bin:/home/marc/.espressif/tools/ninja/1.11.1:/home/marc/.espressif/tools/esp-rom-elfs/20240305",
"idf.customExtraVars": { "idf.customExtraVars": {
@ -12,7 +12,7 @@
"idf.gitPath": "git", "idf.gitPath": "git",
"idf.adapterTargetName": "esp32s3", "idf.adapterTargetName": "esp32s3",
"idf.openOcdConfigs": [ "idf.openOcdConfigs": [
"board/esp32p4-builtin.cfg" "board/esp32p4-ftdi.cfg"
], ],
"idf.flashType": "UART", "idf.flashType": "UART",
"idf.port": "/dev/ttyUSB0", "idf.port": "/dev/ttyUSB0",
@ -108,5 +108,5 @@
"communication.h": "c", "communication.h": "c",
"mqtt_client.h": "c" "mqtt_client.h": "c"
}, },
"idf.pythonInstallPath": "/usr/bin/python3" "idf.pythonInstallPath": "/usr/local/bin/python"
} }

43
.vscode/tasks.json vendored
View File

@ -33,7 +33,7 @@
"isDefault": true "isDefault": true
}, },
"dependsOn": "Build" "dependsOn": "Build"
} },
{ {
"label": "Build - Build project", "label": "Build - Build project",
"type": "shell", "type": "shell",
@ -73,6 +73,47 @@
"isDefault": true "isDefault": true
} }
}, },
{
"label": "Build - Build IHM",
"type": "shell",
"command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py build",
"windows": {
"command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py build",
"options": {
"env": {
"PATH": "${env:PATH};${config:idf.customExtraPaths}"
}
}
},
"options": {
"cwd": "${workspaceFolder}/components/domotic_display/test_host/",
"env": {
"IDF_TARGET": "linux",
"PATH": "${env:PATH}:${config:idf.customExtraPaths}"
}
},
"problemMatcher": [
{
"owner": "cpp",
"fileLocation": [
"autoDetect",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^(.*?):(\\d+):(\\d*):?\\s+(?:fatal\\s+)?(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
],
"group": {
"kind": "build",
"isDefault": true
}
},
{ {
"label": "Set ESP-IDF Target", "label": "Set ESP-IDF Target",
"type": "shell", "type": "shell",

View File

@ -2,20 +2,22 @@
# in this exact order for cmake to work correctly # in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
# "Trim" the build. Include the minimal set of components, main and anything it depends on.
set(COMPONENTS main)
include($ENV{IDF_PATH}/tools/cmake/project.cmake) if($ENV{IDF_TARGET} STREQUAL "esp32p4")
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
if(${IDF_TARGET} STREQUAL "esp32p4") # "Trim" the build. Include the minimal set of components, main and anything it depends on.
set(COMPONENTS main)
set(EXTRA_COMPONENT_DIRS set(EXTRA_COMPONENT_DIRS
/home/marc/esp-dev-kits/examples/esp32-p4-function-ev-board/examples/common_components /home/marc/esp-dev-kits/examples/esp32-p4-function-ev-board/examples/common_components
$ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs $ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs
) )
project(rgb_lcd)
add_link_options("-Wl,--disable-non-contiguous-regions")
else() else()
# PROJECT_PLATFORM_LINUX # PROJECT_PLATFORM_LINUX
# PROJECT_PLATFORM_ESP32 # PROJECT_PLATFORM_ESP32
add_compile_definitions(PROJECT_PLATFORM_LINUX) add_compile_definitions(PROJECT_PLATFORM_LINUX)
set(EXCLUDE_COMPONENTS main driver bh1750 espressif__bh1750 wifi_logger)
set(EXTRA_COMPONENT_DIRS set(EXTRA_COMPONENT_DIRS
$ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs $ENV{IDF_PATH}/examples/protocols/linux_stubs/esp_stubs
@ -23,6 +25,27 @@ else()
"/home/marc/esp-protocols/common_components/linux_compat" "/home/marc/esp-protocols/common_components/linux_compat"
"/home/marc/esp-protocols/components/mdns/tests/host_test/components" "/home/marc/esp-protocols/components/mdns/tests/host_test/components"
) )
project(rgb_lcd)
add_executable(domotic_display
components/domotic_display/ihm.c
# ajoute dautres fichiers si nécessaire
)
# -- FreeRTOS config
add_library(freertos_config INTERFACE)
target_include_directories(freertos_config INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/FreeRTOSConfig
)
add_subdirectory(FreeRTOS/FreeRTOS/Source)
add_subdirectory(components/meteofrance)
add_subdirectory(components/stateManagement)
add_subdirectory(managed_components/lvgl__lvgl)
target_include_directories(domotic_display PRIVATE components/domotic_display/include)
# --- Liens nécessaires ---
target_link_libraries(domotic_display PRIVATE freertos_kernel lvgl m pthread meteofrance)
endif() endif()
project(rgb_lcd)

View File

@ -0,0 +1,15 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 )
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES 5
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 130 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 64 * 1024 ) )
#define configMAX_TASK_NAME_LEN 10
#define configUSE_16_BIT_TICKS 0
#endif /* FREERTOS_CONFIG_H */

8647
compile_commands.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
function (make_font fontSize) function (make_font fontSize)
execute_process(COMMAND podman run -v /home/marc/rgb_lcd/components/domotic_display/fonts:/app -w /app lvfontconv lv_font_conv --bpp 4 --size ${fontSize} --no-compress --font Montserrat-Medium.ttf --symbols "0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/" --format lvgl -o montserrat_medium_${fontSize}.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575) execute_process(COMMAND podman run -v /home/marc/rgb_lcd/components/domotic_display/fonts:/app -w /app lvfontconv lv_font_conv --bpp 4 --size ${fontSize} --no-compress --font Montserrat-Medium.ttf --symbols "0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/-" --format lvgl -o montserrat_medium_${fontSize}.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575)
endfunction() endfunction()
make_font(12) make_font(12)
@ -8,7 +8,7 @@ make_font(24)
idf_component_register(SRC_DIRS . fonts idf_component_register(SRC_DIRS . fonts
INCLUDE_DIRS "include" INCLUDE_DIRS "include"
REQUIRES bsp_extra esp32_p4_function_ev_board meteofrance eventsManager) REQUIRES meteofrance eventsManager lvgl esp32_p4_function_ev_board)
if(${IDF_TARGET} STREQUAL "esp32p4") if(${IDF_TARGET} STREQUAL "esp32p4")

View File

@ -1,7 +1,7 @@
/******************************************************************************* /*******************************************************************************
* Size: 12 px * Size: 12 px
* Bpp: 4 * Bpp: 4
* Opts: --bpp 4 --size 12 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/ --format lvgl -o montserrat_medium_12.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575 * Opts: --bpp 4 --size 12 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/- --format lvgl -o montserrat_medium_12.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575
******************************************************************************/ ******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE #ifdef LV_LVGL_H_INCLUDE_SIMPLE
@ -48,6 +48,9 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+002C "," */ /* U+002C "," */
0x18, 0x4, 0xf1, 0xd, 0x3, 0x80, 0x18, 0x4, 0xf1, 0xd, 0x3, 0x80,
/* U+002D "-" */
0x4f, 0xfd, 0x2, 0x22,
/* U+002E "." */ /* U+002E "." */
0x2a, 0x4, 0xd0, 0x2a, 0x4, 0xd0,
@ -556,79 +559,80 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 49, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = -3}, {.bitmap_index = 49, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 69, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 69, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 89, .adv_w = 44, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = -2}, {.bitmap_index = 89, .adv_w = 44, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 95, .adv_w = 44, .box_w = 3, .box_h = 2, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 95, .adv_w = 74, .box_w = 4, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
{.bitmap_index = 98, .adv_w = 68, .box_w = 6, .box_h = 13, .ofs_x = -1, .ofs_y = -1}, {.bitmap_index = 99, .adv_w = 44, .box_w = 3, .box_h = 2, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 137, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 102, .adv_w = 68, .box_w = 6, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
{.bitmap_index = 173, .adv_w = 71, .box_w = 4, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 141, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 191, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 177, .adv_w = 71, .box_w = 4, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 223, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 195, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 255, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 227, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 291, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 259, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 323, .adv_w = 118, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 295, .adv_w = 110, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 359, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 327, .adv_w = 118, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 391, .adv_w = 124, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 363, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 427, .adv_w = 118, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 395, .adv_w = 124, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 459, .adv_w = 44, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 431, .adv_w = 118, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 470, .adv_w = 141, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 463, .adv_w = 44, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 515, .adv_w = 145, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 474, .adv_w = 141, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 551, .adv_w = 139, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 519, .adv_w = 145, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 592, .adv_w = 159, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 555, .adv_w = 139, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 633, .adv_w = 129, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 596, .adv_w = 159, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 665, .adv_w = 122, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 637, .adv_w = 129, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 697, .adv_w = 148, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 669, .adv_w = 122, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 738, .adv_w = 156, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 701, .adv_w = 148, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 774, .adv_w = 60, .box_w = 2, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 742, .adv_w = 156, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 783, .adv_w = 98, .box_w = 6, .box_h = 9, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 778, .adv_w = 60, .box_w = 2, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 810, .adv_w = 138, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 787, .adv_w = 98, .box_w = 6, .box_h = 9, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 846, .adv_w = 114, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 814, .adv_w = 138, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 878, .adv_w = 183, .box_w = 10, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 850, .adv_w = 114, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 923, .adv_w = 156, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 882, .adv_w = 183, .box_w = 10, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 959, .adv_w = 161, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 927, .adv_w = 156, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1004, .adv_w = 139, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 963, .adv_w = 161, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1040, .adv_w = 161, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 1008, .adv_w = 139, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1100, .adv_w = 140, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1044, .adv_w = 161, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 1136, .adv_w = 119, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1104, .adv_w = 140, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1168, .adv_w = 113, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1140, .adv_w = 119, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1200, .adv_w = 152, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1172, .adv_w = 113, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1236, .adv_w = 137, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 1204, .adv_w = 152, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1281, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1240, .adv_w = 137, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1344, .adv_w = 129, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1285, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1380, .adv_w = 124, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 1348, .adv_w = 129, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1421, .adv_w = 126, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1384, .adv_w = 124, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1457, .adv_w = 115, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1425, .adv_w = 126, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1482, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1461, .adv_w = 115, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1517, .adv_w = 110, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1486, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1542, .adv_w = 131, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1521, .adv_w = 110, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1582, .adv_w = 118, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1546, .adv_w = 131, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1607, .adv_w = 68, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1586, .adv_w = 118, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1632, .adv_w = 132, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 1611, .adv_w = 68, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1672, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1636, .adv_w = 132, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 1707, .adv_w = 54, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1676, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1722, .adv_w = 55, .box_w = 5, .box_h = 13, .ofs_x = -2, .ofs_y = -3}, {.bitmap_index = 1711, .adv_w = 54, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1755, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1726, .adv_w = 55, .box_w = 5, .box_h = 13, .ofs_x = -2, .ofs_y = -3},
{.bitmap_index = 1790, .adv_w = 54, .box_w = 2, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1759, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1800, .adv_w = 203, .box_w = 11, .box_h = 7, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1794, .adv_w = 54, .box_w = 2, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1839, .adv_w = 131, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1804, .adv_w = 203, .box_w = 11, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1864, .adv_w = 122, .box_w = 8, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1843, .adv_w = 131, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1892, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = -3}, {.bitmap_index = 1868, .adv_w = 122, .box_w = 8, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1927, .adv_w = 131, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 1896, .adv_w = 131, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 1967, .adv_w = 79, .box_w = 4, .box_h = 7, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1931, .adv_w = 131, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 1981, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1971, .adv_w = 79, .box_w = 4, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2002, .adv_w = 79, .box_w = 5, .box_h = 9, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1985, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2025, .adv_w = 130, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2006, .adv_w = 79, .box_w = 5, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2050, .adv_w = 107, .box_w = 8, .box_h = 7, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 2029, .adv_w = 130, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2078, .adv_w = 173, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2054, .adv_w = 107, .box_w = 8, .box_h = 7, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2117, .adv_w = 106, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2082, .adv_w = 173, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2142, .adv_w = 107, .box_w = 8, .box_h = 10, .ofs_x = -1, .ofs_y = -3}, {.bitmap_index = 2121, .adv_w = 106, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2182, .adv_w = 100, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2146, .adv_w = 107, .box_w = 8, .box_h = 10, .ofs_x = -1, .ofs_y = -3},
{.bitmap_index = 2203, .adv_w = 80, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 5}, {.bitmap_index = 2186, .adv_w = 100, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2216, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2207, .adv_w = 80, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
{.bitmap_index = 2251, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2220, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2286, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2255, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2321, .adv_w = 130, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2290, .adv_w = 118, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2356, .adv_w = 216, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = -2}, {.bitmap_index = 2325, .adv_w = 130, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2454, .adv_w = 240, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = -1}, {.bitmap_index = 2360, .adv_w = 216, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = -2},
{.bitmap_index = 2537, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2} {.bitmap_index = 2458, .adv_w = 240, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 2541, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2}
}; };
/*--------------------- /*---------------------
@ -637,12 +641,10 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
static const uint8_t glyph_id_ofs_list_0[] = { static const uint8_t glyph_id_ofs_list_0[] = {
0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2,
3, 4, 0, 0, 5, 0, 6, 7, 3, 4
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18
}; };
static const uint16_t unicode_list_3[] = { static const uint16_t unicode_list_4[] = {
0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5 0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5
}; };
@ -650,20 +652,24 @@ static const uint16_t unicode_list_3[] = {
static const lv_font_fmt_txt_cmap_t cmaps[] = static const lv_font_fmt_txt_cmap_t cmaps[] =
{ {
{ {
.range_start = 32, .range_length = 27, .glyph_id_start = 1, .range_start = 32, .range_length = 10, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 27, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 10, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
}, },
{ {
.range_start = 65, .range_length = 26, .glyph_id_start = 20, .range_start = 44, .range_length = 15, .glyph_id_start = 6,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 97, .range_length = 26, .glyph_id_start = 46, .range_start = 65, .range_length = 26, .glyph_id_start = 21,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 176, .range_length = 62662, .glyph_id_start = 72, .range_start = 97, .range_length = 26, .glyph_id_start = 47,
.unicode_list = unicode_list_3, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 176, .range_length = 62662, .glyph_id_start = 73,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
} }
}; };
@ -675,142 +681,152 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
/*Map glyph_ids to kern left classes*/ /*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] = static const uint8_t kern_left_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 0, 8, 9, 10, 11, 12, 5, 7, 8, 0, 9, 10, 11, 12,
13, 14, 7, 15, 16, 17, 18, 19, 13, 14, 15, 8, 16, 17, 18, 19,
20, 21, 22, 23, 23, 24, 25, 26, 20, 21, 22, 23, 24, 24, 25, 26,
23, 23, 19, 27, 28, 29, 30, 31, 27, 24, 24, 20, 28, 29, 30, 31,
24, 32, 32, 33, 34, 35, 36, 37, 32, 25, 33, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 36, 42, 42, 38, 39, 40, 41, 42, 43, 37, 43,
43, 39, 36, 36, 37, 37, 44, 45, 43, 44, 40, 37, 37, 38, 38, 45,
46, 47, 42, 48, 48, 49, 48, 50, 46, 47, 48, 43, 49, 49, 50, 49,
51, 40, 40, 40, 42, 0, 0, 0 51, 52, 41, 41, 41, 43, 0, 0,
0
}; };
/*Map glyph_ids to kern right classes*/ /*Map glyph_ids to kern right classes*/
static const uint8_t kern_right_class_mapping[] = static const uint8_t kern_right_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 8, 9, 10, 11, 12, 7, 5, 7, 8, 9, 10, 11, 12, 13,
13, 14, 15, 16, 17, 18, 19, 18, 8, 14, 15, 16, 17, 18, 19, 20,
18, 18, 19, 18, 18, 20, 18, 18, 19, 19, 19, 20, 19, 19, 21, 19,
18, 18, 19, 18, 19, 18, 21, 22, 19, 19, 19, 20, 19, 20, 19, 22,
23, 24, 24, 25, 26, 27, 28, 29, 23, 24, 25, 25, 26, 27, 28, 29,
30, 30, 30, 0, 30, 29, 31, 32, 30, 31, 31, 31, 0, 31, 30, 32,
29, 29, 33, 33, 30, 33, 30, 33, 33, 30, 30, 34, 34, 31, 34, 31,
34, 35, 36, 37, 37, 38, 37, 39, 34, 35, 36, 37, 38, 38, 39, 38,
40, 30, 30, 30, 36, 0, 0, 0 40, 41, 31, 31, 31, 37, 0, 0,
0
}; };
/*Kern values between classes*/ /*Kern values between classes*/
static const int8_t kern_class_values[] = static const int8_t kern_class_values[] =
{ {
-23, -5, 0, -4, 6, 0, 0, -4, -23, -5, 0, -4, 6, 4, 0, 0,
2, 2, 6, 4, -3, 4, 0, 0, -4, 2, 2, 6, 4, -3, 4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0,
5, 9, 0, 0, -11, -12, 1, 9, -5, 5, 9, 0, 0, -11, 0, -12,
4, 3, -8, 1, 9, 1, 8, 2, 1, 9, 4, 3, -8, 1, 9, 1,
8, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 6, 0, 2, 6, 0, 2, 0, 0, -4, 0, 0,
0, 0, -4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -12, -11, 0, 0,
0, -1, 19, -2, -2, 2, 2, -2,
0, -2, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-12, -11, 0, 0, 0, 19, -2, -2, 0, 0, 0, 0, -12, -7, 0, 0,
2, 2, -2, 0, -2, 2, 0, 0, 0, -1, 1, 0, 1, -3, -2, -4,
1, 0, -2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0, 0, 12,
0, 12, 0, 6, -19, -13, -4, 6, 0, 6, -19, -13, -13, -4, 6, 0,
0, 0, -13, 0, 2, -4, 0, -3, 0, -13, 0, 2, -4, 0, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 9, 0,
0, 1, 0, 0, -2, -4, 0, -1, 1, 0, 0, -2, 1, -4, 0, -1,
-1, -2, 0, 0, -1, 0, 0, 0, -1, -2, 0, 0, -1, 0, 0, 0,
-2, 0, 0, -4, 0, -4, 0, -5, -2, 0, 0, -4, 0, -4, 0, -5,
-6, -6, -4, 0, 0, 0, 0, -2, -6, -6, -4, 0, 0, 0, 0, -2,
0, 0, 2, 0, 1, -2, 0, 1, 0, 0, 2, 0, 1, -2, 0, 1,
2, 0, 0, 0, 2, 2, -1, 0, 2, 0, 0, 0, 2, -1, 2, -1,
0, 0, -4, 0, -1, 0, 0, 0, 0, 0, 0, -4, 0, -1, 0, 0,
1, 0, 0, 2, 0, -1, 0, -2, 0, 1, 0, 0, 2, 0, -1, 0,
0, -3, 0, 0, 0, -2, 0, 0, -2, 0, -3, 0, 0, 0, -2, 0,
0, 0, 0, -1, 1, -1, -1, 0, 0, 0, 0, 0, -1, 1, -1, -1,
-2, -2, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, 0, 0, 0,
-1, -1, 0, -2, -2, 0, 0, 0, 0, 0, -1, -1, 0, -2, -2, 0,
1, 0, 0, 0, 0, -1, 0, -2, 0, 0, 1, 0, 0, 0, 0, -1,
-2, -2, 0, 0, 0, 0, 0, -1, 0, -2, -2, -2, 0, 0, 0, 0,
0, 0, 0, 0, -1, -2, 0, -3, 0, -1, 0, 0, 0, 0, -1, -2,
-6, -6, 0, 0, 4, 5, 0, -5, 0, -3, -6, -6, 0, 0, 4, 2,
-1, -2, 0, -1, -9, 2, -1, 1, 5, 0, -5, -1, -2, 0, -1, -9,
0, 0, 2, 1, -1, -10, 0, -10, 2, -1, 1, 0, 0, 2, 1, -1,
-2, -17, -1, 5, 0, 2, 0, 0, -10, 0, -10, -2, -17, -1, 5, 0,
0, 0, 0, 0, -3, -2, 0, -6, 2, 0, 0, 0, 0, 0, 0, -3,
-2, 0, 0, 0, 0, 0, 0, 0, -2, 0, -6, -2, 0, 0, 0, 0,
-1, -1, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1,
0, 0, 0, -2, 0, -2, 0, -1, -2, 0, 0, 0, 0, 0, 0, -2,
-2, -2, 0, 0, 0, 0, 0, 0, 0, -2, 0, -1, -2, -2, 0, 0,
0, 0, 0, 0, -2, -2, 0, -2,
-4, -1, 0, 0, 2, 2, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0,
1, 0, 0, 0, 0, -2, 0, -2,
-1, -2, 0, 0, 0, 2, 0, -2,
0, 0, 0, 0, -2, -3, 0, -4,
1, 6, 0, 0, -10, -8, -4, 2,
0, -2, -12, -3, 0, -3, 0, -4,
-12, 0, -3, -5, -1, 0, 0, 1,
-1, 2, -1, -7, 0, -10, -5, -4,
-5, -6, -2, -5, 0, -4, -5, 1,
-2, 1, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-1, 0, 0, -1, 0, -2, 0, -3, -2, -2, 0, -2, -4, -1, 0, 0,
-4, -4, -1, 0, 0, 0, 0, -2, 2, 1, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0,
0, 2, 0, 0, 0, 9, 0, 0, 0, 0, -2, 0, -2, -1, -2, 0,
0, 0, 2, 0, -2, 0, 0, 0,
0, -2, -3, 0, -4, 1, 6, 0,
0, -10, -10, -8, -4, 2, 0, -2,
-12, -3, 0, -3, 0, -4, -12, 0,
-3, -5, -1, 0, 0, 1, -1, 2,
-1, -7, 0, -10, -5, -4, -5, -6,
-2, -5, 0, -4, -5, 1, -2, 1,
0, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -1,
0, 0, -1, 0, -2, 0, -3, -4,
-4, -1, 0, 0, 0, 0, -2, 0,
0, 0, 0, 1, -1, 0, 0, 0,
2, 0, 0, 0, 0, 9, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -8, 0, 0, 6, 6, -2, -8, 0, -8, 0, 0, 6, -3, 6, -2,
0, 2, -3, 0, -10, -1, -2, 2, -8, 0, 2, -3, 0, -10, -1, -2,
2, 0, -2, 3, 0, -7, -3, -7, 2, 2, 0, -2, 3, 0, -7, -3,
-6, -8, 0, 0, 0, -1, 0, 0, -7, -6, -8, 0, 0, 0, -1, 0,
0, -1, -1, -2, -5, -6, 0, -18, 0, 0, -1, -1, -2, -5, -6, 0,
0, 0, 0, 0, 1, 0, 0, 0, -18, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, -1, 0, 0, 0, 0, 0, 0, 0, -2,
-2, -3, 0, 0, 0, 0, 0, 0, 0, -1, -2, -3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, 0, -4, 2, 0, 0, 0, 0, 0, 0, 2, -1,
-1, -1, -5, -2, 0, -2, -2, -1, 0, -4, 2, -1, -1, -5, -2, 0,
-3, 0, -3, 0, -1, -2, -1, -1, -2, -2, -1, -3, 0, -3, 0, -1,
-3, -2, 0, -1, 0, -4, 0, 0, -2, -1, -1, -3, -2, 0, -1, 0,
0, -4, 0, -3, 0, -3, -3, 2, -4, 0, 0, 0, -4, 0, -3, 0,
0, -3, 0, 2, -4, -4, 0, -2, -3, -3, 2, 0, -3, 0, 2, -4,
-2, -2, 0, 0, 0, 0, 0, 0, 1, -4, 0, -2, -2, -2, 0, 0,
-2, 0, 0, -3, 0, -2, 0, -4, 0, 0, 0, 0, -2, 0, 0, -3,
-5, -6, -2, 0, 0, 0, 0, 15, 0, -2, 0, -4, -5, -6, -2, 0,
0, 0, 1, 0, 0, -2, 0, 2, 0, 0, 0, 15, 0, 0, 1, 0,
0, 0, 0, 0, 2, 0, -3, 0, 0, -2, 0, 2, 0, 0, 0, 0,
-1, -2, -6, -1, -1, -1, -1, -1, 2, -4, 0, -3, 0, -1, -2, -6,
0, 0, -1, 0, 0, 0, 0, -2, -1, -1, -1, -1, -1, 0, 0, -1,
-2, -2, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -2, -2, -2, 0,
0, -1, -2, -1, -2, -2, -2, 0, -1, 0, -1, 0, 0, 0, -1, -2,
0, 8, 0, -1, -2, -8, -2, 3, -1, -2, -2, -2, 0, 0, 8, 0,
0, 0, -9, -3, 2, -3, 1, 0, -1, -2, 0, -8, -2, 3, 0, 0,
-6, 0, -2, -3, -1, 1, 0, 0, -9, -3, 2, -3, 1, 0, -6, 0,
-3, 0, 0, -4, 0, -3, -2, -3, -2, -3, -1, 1, 0, 0, -3, 0,
-2, -2, 0, -3, 1, -4, -3, 6, 0, -4, 0, -3, -2, -3, -2, -2,
0, 0, 0, 0, 2, 0, 0, 0, 0, -3, 1, -4, -3, 6, 0, 0,
0, 0, 2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -820,146 +836,150 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, 0, 0, 0, 0, 0, 0, -2, 0, -2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-3, 0, 0, 0, 0, -2, 0, 0, 0, -3, 0, 0, 0, 0, -2, 0,
-2, -2, 0, 0, 0, 0, 0, -1, 0, -2, -2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0,
0, 0, 0, 0, 0, 1, -4, 4, 0, 0, 0, 0, 0, 0, -6, 1,
0, -1, -9, 0, 0, -4, -2, 0, -4, 4, 0, -1, -9, 0, 0, -4,
-5, 0, -5, 0, -3, -8, -2, -8, -2, 0, -5, 0, -5, 0, -3, -8,
-7, -9, 0, -2, 0, -4, -2, -1, -2, -8, -7, -9, 0, -2, 0, -4,
-2, -3, -5, -3, -7, -8, -4, -2, -2, -1, -2, -3, -5, -3, -7, -8,
0, 0, 0, 0, 6, 4, -4, -7, -4, -2, 0, 0, 0, 0, 6, -2,
0, 1, -6, 0, -10, -1, -2, 4, 4, -4, -7, 0, 1, -6, 0, -10,
1, 0, -2, 0, -1, -12, -2, -10, -1, -2, 4, 1, 0, -2, 0, -1,
-2, -14, 0, 1, 0, -1, 0, 0, -12, -2, -10, -2, -14, 0, 1, 0,
0, 0, -1, -1, -7, -1, 0, -12, -1, 0, 0, 0, 0, -1, -1, -7,
0, 0, 0, -2, -5, -9, 0, 0, -1, 0, -12, 0, 0, 0, -2, -5,
-1, -3, -6, -2, 0, -1, 0, 0, -1, -9, 0, 0, -1, -3, -6, -2,
-9, -2, 0, -6, 0, -6, -2, -3, 0, -1, 0, 0, -9, -2, 0, -6,
-5, -2, -3, -3, 0, -2, -4, -2, 0, -6, -2, -3, -5, -2, -3, -3,
-4, 0, 1, 0, -1, -6, 0, 4, 0, -2, -4, -2, -4, 0, 1, 0,
0, -3, 0, 2, -4, 8, 0, -2, -1, -6, 0, 4, 0, -3, 0, 2,
-2, -2, 0, 0, 0, 0, 0, 0, -4, 1, 8, 0, -2, -2, -2, 0,
-2, 0, 0, -3, 0, -2, 0, -4,
-5, -6, -2, 0, 0, 0, 0, 15,
0, 0, 1, 0, 0, -2, 0, 2,
0, 0, 0, 0, 0, 0, 0, 0,
0, -1, -4, 0, 0, 0, 0, 0,
0, 0, 0, -2, 0, -2, 0, 0,
-4, -2, 0, -1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 3,
0, -6, 0, 0, 4, 0, 0, -2,
0, -1, 2, 0, -2, 0, -2, -1,
0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0,
-2, -3, 0, 0, 0, 0, 0, 0, -3, 0, -2, 0, -4, -5, -6, -2,
0, 0, 0, 0, -2, -2, 0, -3, 0, 0, 0, 0, 15, 0, 0, 1,
0, 2, -3, 0, -6, -4, -4, 8, 0, 0, -2, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -1,
-4, 0, 0, 0, 0, 0, 0, 0,
0, -2, 0, -2, 0, 0, -4, -2,
0, -1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 3, 0, -6,
0, 0, 4, 3, 0, 0, -2, 0,
-1, 2, 0, -2, 0, -2, -1, 0,
0, 0, 0, 0, -2, 0, 0, -2,
-3, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -2, -2, 0, -3, 0,
2, -3, 0, -6, -6, -4, -4, 8,
3, 2, -17, -1, 4, -2, 0, -2, 3, 2, -17, -1, 4, -2, 0, -2,
-7, 0, -2, -2, -2, 2, -2, -2, -7, 0, -2, -2, -2, 2, -2, -2,
-6, -2, 0, -5, 0, -11, -2, 6, -6, -2, 0, -5, 0, -11, -2, 6,
-2, -7, 1, -2, -6, -6, -2, 8, -2, -7, 1, -2, -6, -6, -2, 8,
0, 0, 0, 2, -7, -8, -5, 6, 0, 0, 0, 2, -7, -4, -8, -5,
0, 1, -14, -2, 2, -3, -1, -4, 6, 0, 1, -14, -2, 2, -3, -1,
-7, -3, -4, -3, -3, -2, 0, 0, -4, -7, -3, -4, -3, -3, -2, 0,
-4, -4, -2, -11, 0, -11, -3, 0, 0, -4, -4, -2, -11, 0, -11, -3,
-7, -11, -1, -6, -3, -6, -5, 5, 0, -7, -11, -1, -6, -3, -6, -5,
0, 0, -2, 0, 0, 3, -6, 2, 5, 0, 0, -2, 0, 0, -3, 3,
0, 0, -10, 0, -2, -4, -3, -1, -6, 2, 0, 0, -10, 0, -2, -4,
-6, -4, -5, 0, -2, -6, -2, -4, -3, -1, -6, -4, -5, 0, -2, -6,
-4, -6, -2, -3, 0, -6, -2, 0, -2, -4, -4, -6, -2, -3, 0, -6,
-2, -4, -4, -5, -5, -7, -2, -4, -2, 0, -2, -4, -4, -5, -5, -7,
0, 0, -2, 1, -7, -4, -6, 6, -2, -4, 0, 0, -2, 1, -7, -6,
-2, 1, -18, -3, 4, -4, -3, -7, -4, -6, 6, -2, 1, -18, -3, 4,
-8, -2, -6, -2, -3, -2, -2, -4, -4, -3, -7, -8, -2, -6, -2, -3,
-6, -1, 0, -12, 0, -12, -4, 5, -2, -2, -4, -6, -1, 0, -12, 0,
-7, -13, -4, -7, -8, -10, -6, 4, -12, -4, 5, -7, -13, -4, -7, -8,
0, 0, 0, 0, 4, 1, -4, 4, -10, -6, 4, 0, 0, 0, 0, 4,
0, 0, -6, -1, 0, -1, 0, 1, -2, 1, -4, 4, 0, 0, -6, -1,
0, 0, -2, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -2, 0,
-2, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0,
0, 0, -1, -1, -2, 0, 0, 0, 0, -2, 0, 0, 0, 0, -1, -1,
-5, 0, 0, 0, 0, 0, 0, -4, -2, 0, 0, 0, -5, 0, 0, 0,
-1, 0, 0, 0, -4, 0, -2, 0, 0, 0, 0, 0, -4, -1, 0, 0,
0, -4, 0, -2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, 0, 0, -4, 0, -2, 0, 0, -4, -5, -3, 0,
-5, -3, 0, 0, -2, 0, 0, -5, 0, -2, 2, 0, 0, -5, -2, -4,
-2, -4, 0, 0, -5, 0, -2, 0, 0, 0, -5, 0, -2, 0, -2, 0,
-2, 0, 0, 0, 0, -16, -4, -8, 0, 0, 0, -16, -4, -8, -2, -7,
-2, -7, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -3, -2, -3, 0, 0, -3, -3, -2, -3, 0, 0,
0, 0, 0, -4, 4, 0, -1, -4, 0, -4, 4, -2, 0, -1, -4, -1,
-1, -3, -4, 0, -2, -1, -1, 1, -3, -4, 0, -2, -1, -1, 1, 0,
0, 0, -1, 0, 0, -17, -2, -3, 0, -1, 0, 0, -17, -2, -3, 0,
0, -4, 0, 0, -1, -2, 0, 0, -4, 0, 0, -1, -2, 0, 0, 0,
0, 0, 1, 0, -1, -3, -1, 3, 0, 1, 0, -1, -3, -1, 3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
-1, -4, 0, 0, 0, 0, 0, -5, -1, -4, 0, 0, 0, 2, 0, 0,
-2, -4, 0, 0, -5, 0, -2, 0, -5, -2, -4, 0, 0, -5, 0, -2,
0, 0, 0, 0, 0, -19, 0, -4, 0, 0, 0, 0, 0, 0, -19, 0,
-7, -10, 0, -3, 0, 0, 0, 0, -4, -7, -10, 0, -3, 0, 0, 0,
0, 0, 0, 0, -2, -3, -1, -3, 0, 0, 0, 0, 0, -2, -3, -1,
3, 0, 0, 6, -2, -6, 2, 9, -3, 3, 0, 0, 6, -2, -2, -6,
3, 4, -5, 2, 8, 2, 6, 4, 2, 9, 3, 4, -5, 2, 8, 2,
6, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, -2,
15, 8, 15, 0, 0, 0, 2, 0,
0, 7, 0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -3,
-16, -2, -2, -8, -9, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -2, 0, -2, 15, 8, 0, 0, 0, 0, 0, 0, 0, 2,
15, 0, 0, 0, 2, 0, 0, 7, -4, 0, -2, 2, 3, 2, -6, 0,
0, 0, 0, 0, 0, 0, 0, -1, 0, -2, 2, 0, 0, 0, 0, 0,
0, -5, 0, -2, -1, -4, 0, -2,
0, -4, -1, 0, -1, -3, 0, -2,
-5, -4, -2, 0, 0, 0, 0, 0,
0, 0, 0, 0, -1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -16, -2, -2, 0, -3, -16, -2, -2, -8, -9, 0,
-8, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2,
0, 0, 0, 0, 2, 0, -2, 2, -2, -2, -2, -8, 1, -1, 1, -1,
3, 2, -6, 0, 0, -2, 2, 0, -5, 0, 4, 0, 2, 1, -8, -2,
0, 0, 0, 0, 0, -5, 0, -2, -5, 0, -3, -7, -4, -5, -8, -7,
-1, -4, 0, -2, 0, -4, -1, 0, 0, -2, -1, -2, -1, 0, -1, -1,
-1, -3, 0, -2, -5, -4, -2, 0, 3, 0, 3, -1, 0, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, -2,
0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, -5, 0, -1, 0, 0,
0, 0, 0, 0, -3, -16, -2, -2,
-8, -9, 0, 0, 0, 0, 0, 10,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -2, -2, -2, -8, 1, -1,
1, -1, -5, 0, 4, 0, 2, 1,
-8, -2, -5, 0, -3, -7, -4, -5,
-8, -7, 0, -2, -1, -2, -1, 0,
-1, -1, 3, 0, 3, -1, 0, 6,
0, 0, 0, 0, 0, 0, 0, -1,
-2, -2, 0, 0, -5, 0, -1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, 0, -2, 0, 0, 0, -2, -2, 0, -2, 0,
0, 0, 0, 0, 2, 0, -3, -4, 0, 0, 0, 2, -2, 0, -3, -4,
-1, 0, -6, -1, -4, -1, -2, 0, -1, 0, -6, -1, -4, -1, -2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0,
0, 0, -2, 0, -2, 0, 0, -1, 0, 0, -2, 0, -2, 0, 0, -1,
0, 0, 0, 0, -6, -6, 1, 2, 0, 0, 0, 0, -6, -2, -6, 1,
2, 0, -5, 1, 3, 1, 6, 1, 2, 2, 0, -5, 1, 3, 1, 6,
-5, 0, -1, 0, -1, -8, 0, 0, 1, -5, 0, -1, 0, -1, -8, 0,
-6, -5, 0, -3, 0, -3, 0, -3, 0, -6, -5, 0, -3, 0, -3, 0,
0, -1, 3, 0, -2, -6, -2, 7, -3, 0, -1, 3, 0, -2, -6, -2,
0, 0, 0, 0, 0, 2, -2, 2, 7, 0, 0, 0, 0, 0, -4, 2,
0, 0, -6, 0, -1, -1, 0, -2, -2, 2, 0, 0, -6, 0, -1, -1,
0, 0, -2, 0, -2, -8, -2, -4, 0, -2, 0, 0, -2, 0, -2, -8,
0, -6, 0, -2, 0, -3, 0, 1, -2, -4, 0, -6, 0, -2, 0, -3,
0, -2, 0, -2, -6, 0, -2, 2, 0, 1, 0, -2, 0, -2, -6, 0,
0, 0, 0, 0, 1, 0, 0, -2, -2, 2, 0, 0, 0, 0, 1, -2,
-1, 0, -2, 0, 0, 0, 0, 0, 0, 0, -2, -1, 0, -2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, 0,
0, 0, 0, 0, -2, -2, 0, 0,
4, 4, 0, 0, -12, -11, 1, 8,
6, 3, -8, 1, 8, 0, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 -2, 0, 0, 0, 0, 0, 0, -2,
-2, 0, 0, 4, 4, 0, 0, -12,
0, -11, 1, 8, 6, 3, -8, 1,
8, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0
}; };
@ -969,8 +989,8 @@ static const lv_font_fmt_txt_kern_classes_t kern_classes =
.class_pair_values = kern_class_values, .class_pair_values = kern_class_values,
.left_class_mapping = kern_left_class_mapping, .left_class_mapping = kern_left_class_mapping,
.right_class_mapping = kern_right_class_mapping, .right_class_mapping = kern_right_class_mapping,
.left_class_cnt = 51, .left_class_cnt = 52,
.right_class_cnt = 40, .right_class_cnt = 41,
}; };
/*-------------------- /*--------------------
@ -992,7 +1012,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.cmaps = cmaps, .cmaps = cmaps,
.kern_dsc = &kern_classes, .kern_dsc = &kern_classes,
.kern_scale = 16, .kern_scale = 16,
.cmap_num = 4, .cmap_num = 5,
.bpp = 4, .bpp = 4,
.kern_classes = 1, .kern_classes = 1,
.bitmap_format = 0, .bitmap_format = 0,

View File

@ -1,7 +1,7 @@
/******************************************************************************* /*******************************************************************************
* Size: 18 px * Size: 18 px
* Bpp: 4 * Bpp: 4
* Opts: --bpp 4 --size 18 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/ --format lvgl -o montserrat_medium_18.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575 * Opts: --bpp 4 --size 18 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/- --format lvgl -o montserrat_medium_18.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575
******************************************************************************/ ******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE #ifdef LV_LVGL_H_INCLUDE_SIMPLE
@ -62,6 +62,9 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
0x1, 0x10, 0xe, 0xf1, 0xf, 0xf2, 0x7, 0xe0, 0x1, 0x10, 0xe, 0xf1, 0xf, 0xf2, 0x7, 0xe0,
0xb, 0x90, 0xe, 0x40, 0xb, 0x90, 0xe, 0x40,
/* U+002D "-" */
0x88, 0x88, 0x7f, 0xff, 0xfe,
/* U+002E "." */ /* U+002E "." */
0x5, 0x60, 0x1f, 0xf2, 0xc, 0xd0, 0x5, 0x60, 0x1f, 0xf2, 0xc, 0xd0,
@ -912,79 +915,80 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 104, .adv_w = 97, .box_w = 5, .box_h = 18, .ofs_x = 1, .ofs_y = -4}, {.bitmap_index = 104, .adv_w = 97, .box_w = 5, .box_h = 18, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 149, .adv_w = 97, .box_w = 5, .box_h = 18, .ofs_x = 0, .ofs_y = -4}, {.bitmap_index = 149, .adv_w = 97, .box_w = 5, .box_h = 18, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 194, .adv_w = 65, .box_w = 4, .box_h = 6, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 194, .adv_w = 65, .box_w = 4, .box_h = 6, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 206, .adv_w = 65, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 206, .adv_w = 110, .box_w = 5, .box_h = 2, .ofs_x = 1, .ofs_y = 4},
{.bitmap_index = 212, .adv_w = 101, .box_w = 8, .box_h = 18, .ofs_x = -1, .ofs_y = -2}, {.bitmap_index = 211, .adv_w = 65, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 284, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 217, .adv_w = 101, .box_w = 8, .box_h = 18, .ofs_x = -1, .ofs_y = -2},
{.bitmap_index = 362, .adv_w = 107, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 289, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 395, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 367, .adv_w = 107, .box_w = 5, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 460, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 400, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 525, .adv_w = 193, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 465, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 603, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 530, .adv_w = 193, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 668, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 608, .adv_w = 165, .box_w = 10, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 740, .adv_w = 172, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 673, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 812, .adv_w = 185, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 745, .adv_w = 172, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 884, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 817, .adv_w = 185, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 956, .adv_w = 65, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 889, .adv_w = 178, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 976, .adv_w = 211, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 961, .adv_w = 65, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1074, .adv_w = 218, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 981, .adv_w = 211, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1152, .adv_w = 208, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1079, .adv_w = 218, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1237, .adv_w = 238, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1157, .adv_w = 208, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1322, .adv_w = 193, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1242, .adv_w = 238, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1394, .adv_w = 183, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1327, .adv_w = 193, .box_w = 11, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1459, .adv_w = 222, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1399, .adv_w = 183, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1544, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1464, .adv_w = 222, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1622, .adv_w = 89, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1549, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1642, .adv_w = 148, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 1627, .adv_w = 89, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1701, .adv_w = 207, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1647, .adv_w = 148, .box_w = 9, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1779, .adv_w = 171, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1706, .adv_w = 207, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1844, .adv_w = 275, .box_w = 15, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1784, .adv_w = 171, .box_w = 10, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1942, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1849, .adv_w = 275, .box_w = 15, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2020, .adv_w = 242, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1947, .adv_w = 234, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2118, .adv_w = 208, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2025, .adv_w = 242, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2196, .adv_w = 242, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 2123, .adv_w = 208, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2316, .adv_w = 209, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2201, .adv_w = 242, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2394, .adv_w = 179, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2321, .adv_w = 209, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2466, .adv_w = 169, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2399, .adv_w = 179, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2538, .adv_w = 228, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2471, .adv_w = 169, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2616, .adv_w = 205, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 2543, .adv_w = 228, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2707, .adv_w = 324, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2621, .adv_w = 205, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2837, .adv_w = 194, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2712, .adv_w = 324, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2915, .adv_w = 186, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 2842, .adv_w = 194, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3000, .adv_w = 189, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 2920, .adv_w = 186, .box_w = 13, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 3078, .adv_w = 172, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3005, .adv_w = 189, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3128, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3083, .adv_w = 172, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3205, .adv_w = 164, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3133, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3255, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3210, .adv_w = 164, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3332, .adv_w = 176, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3260, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3387, .adv_w = 102, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3337, .adv_w = 176, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3436, .adv_w = 199, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4}, {.bitmap_index = 3392, .adv_w = 102, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3513, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3441, .adv_w = 199, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 3583, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3518, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3604, .adv_w = 82, .box_w = 6, .box_h = 18, .ofs_x = -2, .ofs_y = -4}, {.bitmap_index = 3588, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3658, .adv_w = 177, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3609, .adv_w = 82, .box_w = 6, .box_h = 18, .ofs_x = -2, .ofs_y = -4},
{.bitmap_index = 3735, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3663, .adv_w = 177, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3756, .adv_w = 304, .box_w = 17, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3740, .adv_w = 80, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3841, .adv_w = 196, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3761, .adv_w = 304, .box_w = 17, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3891, .adv_w = 183, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3846, .adv_w = 196, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3946, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -4}, {.bitmap_index = 3896, .adv_w = 183, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4023, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4}, {.bitmap_index = 3951, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 4100, .adv_w = 118, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 4028, .adv_w = 196, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = -4},
{.bitmap_index = 4130, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4105, .adv_w = 118, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4175, .adv_w = 119, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4135, .adv_w = 144, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4217, .adv_w = 195, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 4180, .adv_w = 119, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4267, .adv_w = 161, .box_w = 12, .box_h = 10, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 4222, .adv_w = 195, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 4327, .adv_w = 259, .box_w = 17, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4272, .adv_w = 161, .box_w = 12, .box_h = 10, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4412, .adv_w = 159, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4332, .adv_w = 259, .box_w = 17, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4462, .adv_w = 161, .box_w = 12, .box_h = 14, .ofs_x = -1, .ofs_y = -4}, {.bitmap_index = 4417, .adv_w = 159, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4546, .adv_w = 150, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4467, .adv_w = 161, .box_w = 12, .box_h = 14, .ofs_x = -1, .ofs_y = -4},
{.bitmap_index = 4591, .adv_w = 121, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 6}, {.bitmap_index = 4551, .adv_w = 150, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4616, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4596, .adv_w = 121, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 6},
{.bitmap_index = 4693, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4621, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4770, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4698, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4847, .adv_w = 195, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 4775, .adv_w = 176, .box_w = 11, .box_h = 14, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4917, .adv_w = 324, .box_w = 21, .box_h = 19, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 4852, .adv_w = 195, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5117, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -2}, {.bitmap_index = 4922, .adv_w = 324, .box_w = 21, .box_h = 19, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 5313, .adv_w = 288, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -3} {.bitmap_index = 5122, .adv_w = 360, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 5318, .adv_w = 288, .box_w = 18, .box_h = 19, .ofs_x = 0, .ofs_y = -3}
}; };
/*--------------------- /*---------------------
@ -993,12 +997,10 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
static const uint8_t glyph_id_ofs_list_0[] = { static const uint8_t glyph_id_ofs_list_0[] = {
0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2,
3, 4, 0, 0, 5, 0, 6, 7, 3, 4
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18
}; };
static const uint16_t unicode_list_3[] = { static const uint16_t unicode_list_4[] = {
0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5 0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5
}; };
@ -1006,20 +1008,24 @@ static const uint16_t unicode_list_3[] = {
static const lv_font_fmt_txt_cmap_t cmaps[] = static const lv_font_fmt_txt_cmap_t cmaps[] =
{ {
{ {
.range_start = 32, .range_length = 27, .glyph_id_start = 1, .range_start = 32, .range_length = 10, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 27, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 10, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
}, },
{ {
.range_start = 65, .range_length = 26, .glyph_id_start = 20, .range_start = 44, .range_length = 15, .glyph_id_start = 6,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 97, .range_length = 26, .glyph_id_start = 46, .range_start = 65, .range_length = 26, .glyph_id_start = 21,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 176, .range_length = 62662, .glyph_id_start = 72, .range_start = 97, .range_length = 26, .glyph_id_start = 47,
.unicode_list = unicode_list_3, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 176, .range_length = 62662, .glyph_id_start = 73,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
} }
}; };
@ -1031,142 +1037,152 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
/*Map glyph_ids to kern left classes*/ /*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] = static const uint8_t kern_left_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 0, 8, 9, 10, 11, 12, 5, 7, 8, 0, 9, 10, 11, 12,
13, 14, 7, 15, 16, 17, 18, 19, 13, 14, 15, 8, 16, 17, 18, 19,
20, 21, 22, 23, 23, 24, 25, 26, 20, 21, 22, 23, 24, 24, 25, 26,
23, 23, 19, 27, 28, 29, 30, 31, 27, 24, 24, 20, 28, 29, 30, 31,
24, 32, 32, 33, 34, 35, 36, 37, 32, 25, 33, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 36, 42, 42, 38, 39, 40, 41, 42, 43, 37, 43,
43, 39, 36, 36, 37, 37, 44, 45, 43, 44, 40, 37, 37, 38, 38, 45,
46, 47, 42, 48, 48, 49, 48, 50, 46, 47, 48, 43, 49, 49, 50, 49,
51, 40, 40, 40, 42, 0, 0, 0 51, 52, 41, 41, 41, 43, 0, 0,
0
}; };
/*Map glyph_ids to kern right classes*/ /*Map glyph_ids to kern right classes*/
static const uint8_t kern_right_class_mapping[] = static const uint8_t kern_right_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 8, 9, 10, 11, 12, 7, 5, 7, 8, 9, 10, 11, 12, 13,
13, 14, 15, 16, 17, 18, 19, 18, 8, 14, 15, 16, 17, 18, 19, 20,
18, 18, 19, 18, 18, 20, 18, 18, 19, 19, 19, 20, 19, 19, 21, 19,
18, 18, 19, 18, 19, 18, 21, 22, 19, 19, 19, 20, 19, 20, 19, 22,
23, 24, 24, 25, 26, 27, 28, 29, 23, 24, 25, 25, 26, 27, 28, 29,
30, 30, 30, 0, 30, 29, 31, 32, 30, 31, 31, 31, 0, 31, 30, 32,
29, 29, 33, 33, 30, 33, 30, 33, 33, 30, 30, 34, 34, 31, 34, 31,
34, 35, 36, 37, 37, 38, 37, 39, 34, 35, 36, 37, 38, 38, 39, 38,
40, 30, 30, 30, 36, 0, 0, 0 40, 41, 31, 31, 31, 37, 0, 0,
0
}; };
/*Kern values between classes*/ /*Kern values between classes*/
static const int8_t kern_class_values[] = static const int8_t kern_class_values[] =
{ {
-35, -8, 0, -6, 9, 0, 0, -6, -35, -8, 0, -6, 9, 6, 0, 0,
3, 3, 10, 6, -5, 6, 0, 0, -6, 3, 3, 10, 6, -5, 6, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0,
8, 13, 0, 0, -16, -17, 2, 14, -8, 8, 13, 0, 0, -16, 0, -17,
6, 5, -12, 2, 14, 1, 12, 3, 2, 14, 6, 5, -12, 2, 14, 1,
12, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 10, 0, 3, 10, 0, 3, 0, 0, -6, 0, 0,
0, 0, -6, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -11, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -18, -16, 0, 0,
0, -2, 29, -3, -4, 3, 3, -3,
0, -4, 3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-18, -16, 0, 0, 0, 29, -3, -4, 0, 0, 0, 0, -18, -11, 0, 0,
3, 3, -3, 0, -4, 3, 0, 0, 0, -2, 1, 0, 2, -5, -4, -6,
2, 0, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, 0, 0, 0, 0, 17,
0, 17, 0, 10, -28, -20, -6, 9, 0, 10, -28, -20, -20, -6, 9, 0,
0, 0, -19, 0, 3, -7, 0, -4, 0, -19, 0, 3, -7, 0, -4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 14, 0,
0, 2, 0, 0, -3, -6, 0, -1, 2, 0, 0, -3, 2, -6, 0, -1,
-1, -3, 0, 0, -2, 0, 0, 0, -1, -3, 0, 0, -2, 0, 0, 0,
-2, 0, 0, -7, 0, -6, 0, -7, -2, 0, 0, -7, 0, -6, 0, -7,
-10, -10, -5, 0, 0, 0, 0, -2, -10, -10, -5, 0, 0, 0, 0, -2,
0, 0, 3, 0, 2, -3, 0, 1, 0, 0, 3, 0, 2, -3, 0, 1,
3, 0, 0, 0, 3, 3, -1, 0, 3, 0, 0, 0, 3, -2, 3, -1,
0, 0, -5, 0, -1, 0, 0, 0, 0, 0, 0, -5, 0, -1, 0, 0,
1, 0, 0, 4, 0, -2, 0, -3, 0, 1, 0, 0, 4, 0, -2, 0,
0, -5, 0, 0, 0, -3, 0, 0, -3, 0, -5, 0, 0, 0, -3, 0,
0, 0, 0, -1, 1, -2, -2, 0, 0, 0, 0, 0, -1, 1, -2, -2,
-3, -3, 0, 0, 0, 0, 0, 0, 0, -3, -3, 0, 0, 0, 0, 0,
-1, -1, 0, -3, -3, 0, 0, 0, 0, 0, -1, -1, 0, -3, -3, 0,
1, 0, 0, 0, 0, -2, 0, -3, 0, 0, 1, 0, 0, 0, 0, -2,
-3, -3, 0, 0, 0, 0, 0, -2, 0, -3, -3, -3, 0, 0, 0, 0,
0, 0, 0, 0, -2, -4, 0, -4, 0, -2, 0, 0, 0, 0, -2, -4,
-9, -9, 0, 0, 6, 8, 0, -7, 0, -4, -9, -9, 0, 0, 6, 3,
-1, -3, 0, -1, -14, 3, -2, 2, 8, 0, -7, -1, -3, 0, -1, -14,
0, 0, 3, 1, -2, -15, 0, -15, 3, -2, 2, 0, 0, 3, 1, -2,
-2, -25, -2, 8, 0, 4, 0, 0, -15, 0, -15, -2, -25, -2, 8, 0,
0, 0, 1, 0, -5, -4, 0, -9, 4, 0, 0, 0, 0, 1, 0, -5,
-3, 0, 0, 0, 0, 0, 0, 0, -4, 0, -9, -3, 0, 0, 0, 0,
-1, -1, 0, -1, -4, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, -1,
0, 0, 0, -3, 0, -3, 0, -2, -4, 0, 0, 0, 0, 0, 0, -3,
-3, -2, 0, 0, 0, 0, 0, 0, 0, -3, 0, -2, -3, -2, 0, 0,
0, 0, 0, 0, -2, -2, 0, -3,
-6, -2, 0, 0, 3, 3, 0, 0,
0, 0, 0, 0, -2, 0, 0, 0,
2, 0, 0, 0, 0, -3, 0, -3,
-2, -3, 0, 0, 0, 2, 0, -2,
0, 0, 0, 0, -3, -4, 0, -5,
1, 9, 0, 0, -15, -12, -6, 3,
0, -2, -19, -5, 0, -5, 0, -6,
-18, 0, -5, -8, -2, 0, 0, 1,
-1, 2, -2, -11, 0, -14, -7, -6,
-7, -9, -3, -8, -1, -5, -8, 2,
-3, 1, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-1, 0, 0, -1, 0, -3, 0, -5, -2, -2, 0, -3, -6, -2, 0, 0,
-6, -6, -1, 0, 0, 0, 0, -2, 3, 1, 3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, -2, 0, 0, 0, -2, 0, 0, 0, 2, 0, 0,
0, 3, 0, 0, 0, 14, 0, 0, 0, 0, -3, 0, -3, -2, -3, 0,
0, 0, 2, 0, -2, 0, 0, 0,
0, -3, -4, 0, -5, 1, 9, 0,
0, -15, -14, -12, -6, 3, 0, -2,
-19, -5, 0, -5, 0, -6, -18, 0,
-5, -8, -2, 0, 0, 1, -1, 2,
-2, -11, 0, -14, -7, -6, -7, -9,
-3, -8, -1, -5, -8, 2, -3, 1,
0, 0, 3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -1,
0, 0, -1, 0, -3, 0, -5, -6,
-6, -1, 0, 0, 0, 0, -2, 0,
0, 0, 0, 1, -2, 0, 0, 0,
3, 0, 0, 0, 0, 14, 0, 0,
0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -12, 0, 0, 10, 9, -2, -12, 0, -12, 0, 0, 10, -5, 9, -2,
0, 3, -4, 0, -14, -1, -4, 3, -12, 0, 3, -4, 0, -14, -1, -4,
4, 0, -3, 4, 0, -10, -4, -11, 3, 4, 0, -3, 4, 0, -10, -4,
-10, -12, 0, 0, 0, -1, 0, 0, -11, -10, -12, 0, 0, 0, -1, 0,
0, -1, -1, -3, -8, -10, -1, -27, 0, 0, -1, -1, -3, -8, -10, -1,
0, 0, 0, 0, 1, 0, 0, 0, -27, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -3, 0, -1, 0, 0, 0, 0, 0, 0, 0, -3,
-3, -4, 0, 0, 0, 0, 0, 0, 0, -1, -3, -4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 4, 0, -6, 3, 0, 0, 0, 0, 0, 0, 4, -1,
-2, -1, -7, -3, 0, -4, -3, -2, 0, -6, 3, -2, -1, -7, -3, 0,
-5, 0, -4, 0, -1, -2, -1, -2, -4, -3, -2, -5, 0, -4, 0, -1,
-5, -3, 0, -2, 0, -6, 0, 0, -2, -1, -2, -5, -3, 0, -2, 0,
0, -6, 0, -5, 0, -5, -5, 3, -6, 0, 0, 0, -6, 0, -5, 0,
0, -5, 0, 3, -6, -6, 0, -3, -5, -5, 3, 0, -5, 0, 3, -6,
-3, -3, 0, 0, 0, 0, 0, 0, 2, -6, 0, -3, -3, -3, 0, 0,
-3, 0, 0, -4, 0, -3, 0, -6, 0, 0, 0, 0, -3, 0, 0, -4,
-7, -9, -2, 0, 0, 0, 0, 23, 0, -3, 0, -6, -7, -9, -2, 0,
0, 0, 1, 0, 0, -4, 0, 3, 0, 0, 0, 23, 0, 0, 1, 0,
0, 0, 0, 0, 3, 0, -4, 0, 0, -4, 0, 3, 0, 0, 0, 0,
-2, -3, -9, -2, -2, -2, -1, -2, 3, -6, 0, -4, 0, -2, -3, -9,
0, 0, -1, 0, 0, 0, 0, -3, -2, -2, -2, -1, -2, 0, 0, -1,
-2, -2, 0, -2, 0, -2, 0, 0, 0, 0, 0, 0, -3, -2, -2, 0,
0, -2, -3, -2, -3, -3, -3, 0, -2, 0, -2, 0, 0, 0, -2, -3,
0, 12, 0, -2, -3, -12, -4, 4, -2, -3, -3, -3, 0, 0, 12, 0,
0, 0, -14, -5, 3, -5, 2, 0, -2, -3, 0, -12, -4, 4, 0, 0,
-9, 0, -2, -4, -1, 1, 0, 0, -14, -5, 3, -5, 2, 0, -9, 0,
-5, 0, 0, -5, 0, -5, -3, -4, -2, -4, -1, 1, 0, 0, -5, 0,
-3, -3, 0, -5, 1, -5, -5, 9, 0, -5, 0, -5, -3, -4, -3, -3,
0, 0, 0, 0, 3, 0, 0, 0, 0, -5, 1, -5, -5, 9, 0, 0,
0, 0, 3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -1176,146 +1192,150 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, -2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -3, 0, 0, 0, 0, 0, 0, -2, 0, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-4, 0, 0, 0, 0, -4, 0, 0, 0, -4, 0, 0, 0, 0, -4, 0,
-3, -3, 0, 0, 0, 0, 0, -1, 0, -3, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, 0, -1, 0, 0, 0, 0, 0, -2, 0,
0, 0, 0, 0, 0, 2, -6, 6, 0, 0, 0, 0, 0, 0, -10, 2,
1, -2, -14, 0, 0, -6, -3, 0, -6, 6, 1, -2, -14, 0, 0, -6,
-8, 0, -7, 0, -4, -12, -3, -12, -3, 0, -8, 0, -7, 0, -4, -12,
-11, -14, 0, -4, 0, -7, -3, -1, -3, -12, -11, -14, 0, -4, 0, -7,
-3, -5, -8, -5, -11, -12, -7, -3, -3, -1, -3, -5, -8, -5, -11, -12,
0, 0, 0, 0, 9, 6, -6, -11, -7, -3, 0, 0, 0, 0, 9, -3,
0, 1, -9, 0, -14, -2, -3, 6, 6, -6, -11, 0, 1, -9, 0, -14,
1, 0, -4, 0, -2, -19, -3, -15, -2, -3, 6, 1, 0, -4, 0, -2,
-3, -21, 0, 1, 0, -2, 0, 0, -19, -3, -15, -3, -21, 0, 1, 0,
0, 0, -1, -2, -11, -2, 0, -19, -2, 0, 0, 0, 0, -1, -2, -11,
0, 0, 0, -3, -8, -14, 0, 0, -2, 0, -19, 0, 0, 0, -3, -8,
-1, -4, -9, -3, 0, -2, 0, 0, -1, -14, 0, 0, -1, -4, -9, -3,
-13, -3, 0, -10, 0, -9, -2, -5, 0, -2, 0, 0, -13, -3, 0, -10,
-7, -3, -5, -4, 0, -3, -5, -3, 0, -9, -2, -5, -7, -3, -5, -4,
-5, 0, 1, 0, -2, -10, 0, 6, 0, -3, -5, -3, -5, 0, 1, 0,
0, -5, 0, 3, -6, 12, 0, -3, -2, -10, 0, 6, 0, -5, 0, 3,
-3, -3, 0, 0, 0, 0, 0, 0, -6, 2, 12, 0, -3, -3, -3, 0,
-3, 0, 0, -4, 0, -3, 0, -6,
-7, -9, -2, 0, 0, 0, 0, 23,
0, 0, 1, 0, 0, -4, 0, 3,
0, 0, 0, 0, 0, 0, 0, 0,
0, -2, -6, 0, 0, 0, 0, 0,
0, 0, 0, -3, 0, -3, 0, 0,
-6, -3, 0, -1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 4,
0, -9, 0, 0, 6, 0, 0, -3,
0, -2, 3, 0, -3, 0, -3, -1,
0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0,
-4, -4, 0, 0, 0, 0, 0, 0, -4, 0, -3, 0, -6, -7, -9, -2,
0, 0, 0, 0, -3, -3, 0, -4, 0, 0, 0, 0, 23, 0, 0, 1,
0, 2, -5, 0, -9, -6, -6, 12, 0, 0, -4, 0, 3, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, -2,
-6, 0, 0, 0, 0, 0, 0, 0,
0, -3, 0, -3, 0, 0, -6, -3,
0, -1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 4, 0, -9,
0, 0, 6, 5, 0, 0, -3, 0,
-2, 3, 0, -3, 0, -3, -1, 0,
0, 0, 0, 0, -3, 0, 0, -4,
-4, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -3, -3, 0, -4, 0,
2, -5, 0, -9, -10, -6, -6, 12,
5, 3, -25, -2, 6, -3, 0, -3, 5, 3, -25, -2, 6, -3, 0, -3,
-10, 0, -3, -3, -3, 3, -4, -2, -10, 0, -3, -3, -3, 3, -4, -2,
-9, -2, 0, -8, 0, -16, -4, 8, -9, -2, 0, -8, 0, -16, -4, 8,
-4, -11, 1, -4, -10, -10, -3, 12, -4, -11, 1, -4, -10, -10, -3, 12,
0, 0, 0, 2, -11, -12, -7, 9, 0, 0, 0, 2, -11, -7, -12, -7,
0, 1, -21, -2, 3, -5, -2, -7, 9, 0, 1, -21, -2, 3, -5, -2,
-11, -4, -6, -4, -4, -2, 0, 0, -7, -11, -4, -6, -4, -4, -2, 0,
-7, -6, -3, -16, 0, -16, -4, 0, 0, -7, -6, -3, -16, 0, -16, -4,
-10, -17, -1, -9, -5, -10, -8, 8, 0, -10, -17, -1, -9, -5, -10, -8,
0, 0, -3, 0, 0, 5, -10, 3, 8, 0, 0, -3, 0, 0, -5, 5,
0, 0, -15, 0, -3, -6, -5, -2, -10, 3, 0, 0, -15, 0, -3, -6,
-10, -7, -7, 0, -4, -9, -3, -7, -5, -2, -10, -7, -7, 0, -4, -9,
-5, -9, -3, -5, 0, -9, -3, 0, -3, -7, -5, -9, -3, -5, 0, -9,
-3, -6, -7, -8, -8, -11, -4, -6, -3, 0, -3, -6, -7, -8, -8, -11,
0, 0, -3, 2, -11, -6, -10, 10, -4, -6, 0, 0, -3, 2, -11, -9,
-3, 1, -27, -5, 6, -6, -5, -11, -6, -10, 10, -3, 1, -27, -5, 6,
-12, -3, -9, -3, -4, -2, -3, -6, -6, -5, -11, -12, -3, -9, -3, -4,
-9, -1, 0, -19, 0, -17, -7, 7, -2, -3, -6, -9, -1, 0, -19, 0,
-11, -20, -6, -10, -12, -14, -10, 6, -17, -7, 7, -11, -20, -6, -10, -12,
0, 0, 0, 0, 6, 2, -5, 6, -14, -10, 6, 0, 0, 0, 0, 6,
0, 0, -9, -1, 0, -1, 0, 1, -3, 2, -5, 6, 0, 0, -9, -1,
0, 0, -2, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -2, 0,
-3, 0, 0, 1, 0, -3, 0, 0, 0, 0, 0, 0, -3, 0, 0, 1,
0, 0, -2, -2, -3, 0, 0, 0, 0, -3, 0, 0, 0, 0, -2, -2,
-8, 0, 0, 0, 0, 0, 0, -6, -3, 0, 0, 0, -8, 0, 0, 0,
-1, 0, 0, 0, -6, 0, -3, 0, 0, 0, 0, 0, -6, -1, 0, 0,
0, -6, 0, -3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, 0, 0, -5, 0, -3, 0, 0, -5, -8, -4, 0,
-8, -4, 0, 0, -3, 0, 0, -8, 0, -3, 3, 0, 0, -8, -3, -7,
-3, -7, 0, 0, -8, 0, -3, 0, 0, 0, -8, 0, -3, 0, -3, 0,
-3, 0, 0, 0, 0, -23, -5, -12, 0, 0, 0, -23, -5, -12, -3, -10,
-3, -10, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, -5, -2, -5, 0, 0, -4, -5, -2, -5, 0, 0,
0, 0, 0, -6, 6, 0, -2, -7, 0, -6, 6, -3, 0, -2, -7, -2,
-2, -5, -5, 0, -3, -1, -2, 2, -5, -5, 0, -3, -1, -2, 2, 0,
0, 0, -1, 0, 0, -25, -2, -4, 0, -1, 0, 0, -25, -2, -4, 0,
0, -6, 0, 0, -2, -2, 0, 0, -6, 0, 0, -2, -2, 0, 0, 0,
0, 0, 2, 0, -2, -5, -2, 5, 0, 2, 0, -2, -5, -2, 5, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
-2, -6, 0, 0, 0, 0, 0, -8, -2, -6, 0, 0, 0, 3, 0, 0,
-3, -6, 0, 0, -8, 0, -3, 0, -8, -3, -6, 0, 0, -8, 0, -3,
0, 0, 0, 0, 0, -28, 0, -6, 0, 0, 0, 0, 0, 0, -28, 0,
-11, -14, 0, -4, 0, 0, 0, 0, -6, -11, -14, 0, -4, 0, 0, 0,
0, 0, 0, 0, -3, -4, -1, -4, 0, 0, 0, 0, 0, -3, -4, -1,
5, 0, 0, 9, -3, -9, 3, 14, -4, 5, 0, 0, 9, -3, -3, -9,
5, 6, -8, 3, 12, 3, 8, 6, 3, 14, 5, 6, -8, 3, 12, 3,
8, 6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -3, 0, -2,
23, 12, 23, 0, 0, 0, 3, 0,
0, 11, 0, 0, 0, 0, 0, 0,
0, 0, -2, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -5,
-24, -3, -2, -12, -14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -3, 0, -2, 23, 12, 0, 0, 0, 0, 0, 0, 0, 3,
23, 0, 0, 0, 3, 0, 0, 11, -7, 0, -3, 2, 5, 3, -9, 0,
0, 0, 0, 0, 0, 0, 0, -2, -1, -2, 3, 0, 0, 0, 0, 0,
0, -7, 0, -3, -2, -6, 0, -3,
0, -6, -2, 0, -2, -5, 0, -3,
-8, -6, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -5, -24, -3, -2, 0, -5, -24, -3, -2, -12, -14, 0,
-12, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3,
0, 0, 0, 0, 3, 0, -3, 2, -3, -3, -3, -12, 1, -2, 1, -2,
5, 3, -9, 0, -1, -2, 3, 0, -8, 1, 6, 1, 2, 1, -12, -3,
0, 0, 0, 0, 0, -7, 0, -3, -7, 0, -5, -11, -5, -8, -12, -11,
-2, -6, 0, -3, 0, -6, -2, 0, 0, -2, -2, -3, -2, 0, -2, -1,
-2, -5, 0, -3, -8, -6, -3, 0, 4, 0, 4, -2, 0, 9, 0, 0,
0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, -2, -3,
0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, -8, 0, -1, 0, 0,
0, 0, 0, 0, -5, -24, -3, -2,
-12, -14, 0, 0, 0, 0, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -3, -3, -3, -12, 1, -2,
1, -2, -8, 1, 6, 1, 2, 1,
-12, -3, -7, 0, -5, -11, -5, -8,
-12, -11, 0, -2, -2, -3, -2, 0,
-2, -1, 4, 0, 4, -2, 0, 9,
0, 0, 0, 0, 0, 0, 0, -2,
-3, -3, 0, 0, -8, 0, -1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -3, 0, -4, 0, 0, 0, -3, -3, 0, -4, 0,
0, 0, 0, 0, 3, 0, -5, -5, 0, 0, 0, 3, -3, 0, -5, -5,
-2, 0, -8, -2, -6, -2, -3, 0, -2, 0, -8, -2, -6, -2, -3, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0,
0, 0, -4, 0, -3, 0, 0, -1, 0, 0, -4, 0, -3, 0, 0, -1,
0, 0, 0, 0, -10, -9, 2, 3, 0, 0, 0, 0, -10, -4, -9, 2,
3, -1, -8, 2, 4, 2, 9, 2, 3, 3, -1, -8, 2, 4, 2, 9,
-8, 0, -2, 0, -2, -12, 0, 0, 2, -8, 0, -2, 0, -2, -12, 0,
-9, -8, 0, -5, 0, -4, 0, -4, 0, -9, -8, 0, -5, 0, -4, 0,
0, -2, 4, 0, -2, -9, -3, 11, -4, 0, -2, 4, 0, -2, -9, -3,
0, 0, 0, 0, 0, 3, -3, 2, 11, 0, 0, 0, 0, 0, -7, 3,
0, 0, -10, 0, -2, -1, 0, -3, -3, 2, 0, 0, -10, 0, -2, -1,
0, 0, -2, 0, -3, -12, -3, -6, 0, -3, 0, 0, -2, 0, -3, -12,
0, -9, 0, -3, 0, -5, 0, 2, -3, -6, 0, -9, 0, -3, 0, -5,
0, -3, 0, -3, -9, 0, -3, 3, 0, 2, 0, -3, 0, -3, -9, 0,
0, 0, 0, 0, 1, 0, 0, -3, -3, 3, 0, 0, 0, 0, 1, -4,
-2, 0, -3, 0, 0, 0, 0, 0, 0, 0, -3, -2, 0, -3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -2, 0, 0,
0, 0, 1, 0, -3, -3, 0, 0,
7, 6, 0, 0, -18, -16, 1, 12,
9, 5, -12, 2, 12, 0, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 -2, 0, 0, 0, 0, 1, 0, -3,
-3, 0, 0, 7, 6, 0, 0, -18,
0, -16, 1, 12, 9, 5, -12, 2,
12, 0, 11, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0
}; };
@ -1325,8 +1345,8 @@ static const lv_font_fmt_txt_kern_classes_t kern_classes =
.class_pair_values = kern_class_values, .class_pair_values = kern_class_values,
.left_class_mapping = kern_left_class_mapping, .left_class_mapping = kern_left_class_mapping,
.right_class_mapping = kern_right_class_mapping, .right_class_mapping = kern_right_class_mapping,
.left_class_cnt = 51, .left_class_cnt = 52,
.right_class_cnt = 40, .right_class_cnt = 41,
}; };
/*-------------------- /*--------------------
@ -1348,7 +1368,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.cmaps = cmaps, .cmaps = cmaps,
.kern_dsc = &kern_classes, .kern_dsc = &kern_classes,
.kern_scale = 16, .kern_scale = 16,
.cmap_num = 4, .cmap_num = 5,
.bpp = 4, .bpp = 4,
.kern_classes = 1, .kern_classes = 1,
.bitmap_format = 0, .bitmap_format = 0,

View File

@ -1,7 +1,7 @@
/******************************************************************************* /*******************************************************************************
* Size: 24 px * Size: 24 px
* Bpp: 4 * Bpp: 4
* Opts: --bpp 4 --size 24 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/ --format lvgl -o montserrat_medium_24.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575 * Opts: --bpp 4 --size 24 --no-compress --font Montserrat-Medium.ttf --symbols 0123456789.°éèûCABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz %,'():ê/- --format lvgl -o montserrat_medium_24.c --font fa-solid-900.ttf --range 61461,0xf0c2,0xf575
******************************************************************************/ ******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE #ifdef LV_LVGL_H_INCLUDE_SIMPLE
@ -78,6 +78,10 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
0x3b, 0x80, 0xcf, 0xf3, 0xaf, 0xf3, 0xf, 0xe0, 0x3b, 0x80, 0xcf, 0xf3, 0xaf, 0xf3, 0xf, 0xe0,
0x1f, 0x90, 0x5f, 0x40, 0x9e, 0x0, 0x1f, 0x90, 0x5f, 0x40, 0x9e, 0x0,
/* U+002D "-" */
0x0, 0x0, 0x0, 0xa, 0xff, 0xff, 0xfd, 0xaf,
0xff, 0xff, 0xd0,
/* U+002E "." */ /* U+002E "." */
0x4, 0x10, 0x9f, 0xf1, 0xdf, 0xf4, 0x6f, 0xb0, 0x4, 0x10, 0x9f, 0xf1, 0xdf, 0xf4, 0x6f, 0xb0,
@ -1354,79 +1358,80 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 181, .adv_w = 129, .box_w = 6, .box_h = 23, .ofs_x = 2, .ofs_y = -5}, {.bitmap_index = 181, .adv_w = 129, .box_w = 6, .box_h = 23, .ofs_x = 2, .ofs_y = -5},
{.bitmap_index = 250, .adv_w = 130, .box_w = 6, .box_h = 23, .ofs_x = 0, .ofs_y = -5}, {.bitmap_index = 250, .adv_w = 130, .box_w = 6, .box_h = 23, .ofs_x = 0, .ofs_y = -5},
{.bitmap_index = 319, .adv_w = 87, .box_w = 4, .box_h = 7, .ofs_x = 1, .ofs_y = -4}, {.bitmap_index = 319, .adv_w = 87, .box_w = 4, .box_h = 7, .ofs_x = 1, .ofs_y = -4},
{.bitmap_index = 333, .adv_w = 87, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 333, .adv_w = 147, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 6},
{.bitmap_index = 341, .adv_w = 135, .box_w = 11, .box_h = 23, .ofs_x = -1, .ofs_y = -2}, {.bitmap_index = 344, .adv_w = 87, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 468, .adv_w = 256, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 352, .adv_w = 135, .box_w = 11, .box_h = 23, .ofs_x = -1, .ofs_y = -2},
{.bitmap_index = 587, .adv_w = 142, .box_w = 7, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 479, .adv_w = 256, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 647, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 598, .adv_w = 142, .box_w = 7, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 758, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 658, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 869, .adv_w = 257, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 769, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1005, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 880, .adv_w = 257, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1116, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1016, .adv_w = 220, .box_w = 13, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1235, .adv_w = 230, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1127, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1354, .adv_w = 247, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1246, .adv_w = 230, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1473, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 1365, .adv_w = 247, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1592, .adv_w = 87, .box_w = 4, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1484, .adv_w = 237, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1618, .adv_w = 281, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 1603, .adv_w = 87, .box_w = 4, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1780, .adv_w = 291, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 1629, .adv_w = 281, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1908, .adv_w = 278, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 1791, .adv_w = 291, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2044, .adv_w = 317, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 1919, .adv_w = 278, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2189, .adv_w = 257, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2055, .adv_w = 317, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2300, .adv_w = 244, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2200, .adv_w = 257, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2411, .adv_w = 296, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 2311, .adv_w = 244, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2547, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2422, .adv_w = 296, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2675, .adv_w = 119, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2558, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2701, .adv_w = 197, .box_w = 11, .box_h = 17, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 2686, .adv_w = 119, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 2795, .adv_w = 276, .box_w = 16, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2712, .adv_w = 197, .box_w = 11, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2931, .adv_w = 228, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2806, .adv_w = 276, .box_w = 16, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3042, .adv_w = 367, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 2942, .adv_w = 228, .box_w = 13, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3204, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 3053, .adv_w = 367, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3332, .adv_w = 323, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 3215, .adv_w = 312, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3494, .adv_w = 277, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 3343, .adv_w = 323, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 3622, .adv_w = 323, .box_w = 19, .box_h = 20, .ofs_x = 1, .ofs_y = -3}, {.bitmap_index = 3505, .adv_w = 277, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 3812, .adv_w = 279, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 3633, .adv_w = 323, .box_w = 19, .box_h = 20, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 3940, .adv_w = 238, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3823, .adv_w = 279, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 4059, .adv_w = 225, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 3951, .adv_w = 238, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4178, .adv_w = 304, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 4070, .adv_w = 225, .box_w = 14, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4306, .adv_w = 273, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 4189, .adv_w = 304, .box_w = 15, .box_h = 17, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 4468, .adv_w = 432, .box_w = 27, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4317, .adv_w = 273, .box_w = 19, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 4698, .adv_w = 258, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 4479, .adv_w = 432, .box_w = 27, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4834, .adv_w = 248, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 4709, .adv_w = 258, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 4979, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 4845, .adv_w = 248, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 5107, .adv_w = 230, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 4990, .adv_w = 252, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5185, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 5118, .adv_w = 230, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5311, .adv_w = 219, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 5196, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5389, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 5322, .adv_w = 219, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5515, .adv_w = 235, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 5400, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5600, .adv_w = 136, .box_w = 10, .box_h = 18, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 5526, .adv_w = 235, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 5690, .adv_w = 265, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, {.bitmap_index = 5611, .adv_w = 136, .box_w = 10, .box_h = 18, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 5816, .adv_w = 262, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 5701, .adv_w = 265, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 5933, .adv_w = 107, .box_w = 4, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 5827, .adv_w = 262, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 5969, .adv_w = 109, .box_w = 9, .box_h = 23, .ofs_x = -3, .ofs_y = -5}, {.bitmap_index = 5944, .adv_w = 107, .box_w = 4, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 6073, .adv_w = 237, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 5980, .adv_w = 109, .box_w = 9, .box_h = 23, .ofs_x = -3, .ofs_y = -5},
{.bitmap_index = 6190, .adv_w = 107, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 6084, .adv_w = 237, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6217, .adv_w = 406, .box_w = 22, .box_h = 13, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 6201, .adv_w = 107, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6360, .adv_w = 262, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 6228, .adv_w = 406, .box_w = 22, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6445, .adv_w = 244, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 6371, .adv_w = 262, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6536, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = -5}, {.bitmap_index = 6456, .adv_w = 244, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 6662, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, {.bitmap_index = 6547, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 2, .ofs_y = -5},
{.bitmap_index = 6788, .adv_w = 157, .box_w = 8, .box_h = 13, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 6673, .adv_w = 262, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = -5},
{.bitmap_index = 6840, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 6799, .adv_w = 157, .box_w = 8, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 6918, .adv_w = 159, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 6851, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 6998, .adv_w = 260, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 6929, .adv_w = 159, .box_w = 10, .box_h = 16, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7083, .adv_w = 215, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0}, {.bitmap_index = 7009, .adv_w = 260, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 7181, .adv_w = 345, .box_w = 22, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 7094, .adv_w = 215, .box_w = 15, .box_h = 13, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 7324, .adv_w = 212, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 7192, .adv_w = 345, .box_w = 22, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7409, .adv_w = 215, .box_w = 15, .box_h = 18, .ofs_x = -1, .ofs_y = -5}, {.bitmap_index = 7335, .adv_w = 212, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7544, .adv_w = 200, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, {.bitmap_index = 7420, .adv_w = 215, .box_w = 15, .box_h = 18, .ofs_x = -1, .ofs_y = -5},
{.bitmap_index = 7622, .adv_w = 161, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 9}, {.bitmap_index = 7555, .adv_w = 200, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 7662, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 7633, .adv_w = 161, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = 9},
{.bitmap_index = 7779, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 7673, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 7896, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, {.bitmap_index = 7790, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 8013, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, {.bitmap_index = 7907, .adv_w = 235, .box_w = 13, .box_h = 18, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 8130, .adv_w = 432, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -3}, {.bitmap_index = 8024, .adv_w = 260, .box_w = 13, .box_h = 18, .ofs_x = 2, .ofs_y = 0},
{.bitmap_index = 8480, .adv_w = 480, .box_w = 30, .box_h = 22, .ofs_x = 0, .ofs_y = -2}, {.bitmap_index = 8141, .adv_w = 432, .box_w = 28, .box_h = 25, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 8810, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3} {.bitmap_index = 8491, .adv_w = 480, .box_w = 30, .box_h = 22, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 8821, .adv_w = 384, .box_w = 24, .box_h = 24, .ofs_x = 0, .ofs_y = -3}
}; };
/*--------------------- /*---------------------
@ -1435,12 +1440,10 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
static const uint8_t glyph_id_ofs_list_0[] = { static const uint8_t glyph_id_ofs_list_0[] = {
0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2,
3, 4, 0, 0, 5, 0, 6, 7, 3, 4
8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18
}; };
static const uint16_t unicode_list_3[] = { static const uint16_t unicode_list_4[] = {
0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5 0x0, 0x38, 0x39, 0x3a, 0x4b, 0xef65, 0xf012, 0xf4c5
}; };
@ -1448,20 +1451,24 @@ static const uint16_t unicode_list_3[] = {
static const lv_font_fmt_txt_cmap_t cmaps[] = static const lv_font_fmt_txt_cmap_t cmaps[] =
{ {
{ {
.range_start = 32, .range_length = 27, .glyph_id_start = 1, .range_start = 32, .range_length = 10, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 27, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_0, .list_length = 10, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
}, },
{ {
.range_start = 65, .range_length = 26, .glyph_id_start = 20, .range_start = 44, .range_length = 15, .glyph_id_start = 6,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 97, .range_length = 26, .glyph_id_start = 46, .range_start = 65, .range_length = 26, .glyph_id_start = 21,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}, },
{ {
.range_start = 176, .range_length = 62662, .glyph_id_start = 72, .range_start = 97, .range_length = 26, .glyph_id_start = 47,
.unicode_list = unicode_list_3, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
},
{
.range_start = 176, .range_length = 62662, .glyph_id_start = 73,
.unicode_list = unicode_list_4, .glyph_id_ofs_list = NULL, .list_length = 8, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
} }
}; };
@ -1473,142 +1480,152 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
/*Map glyph_ids to kern left classes*/ /*Map glyph_ids to kern left classes*/
static const uint8_t kern_left_class_mapping[] = static const uint8_t kern_left_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 0, 8, 9, 10, 11, 12, 5, 7, 8, 0, 9, 10, 11, 12,
13, 14, 7, 15, 16, 17, 18, 19, 13, 14, 15, 8, 16, 17, 18, 19,
20, 21, 22, 23, 23, 24, 25, 26, 20, 21, 22, 23, 24, 24, 25, 26,
23, 23, 19, 27, 28, 29, 30, 31, 27, 24, 24, 20, 28, 29, 30, 31,
24, 32, 32, 33, 34, 35, 36, 37, 32, 25, 33, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 36, 42, 42, 38, 39, 40, 41, 42, 43, 37, 43,
43, 39, 36, 36, 37, 37, 44, 45, 43, 44, 40, 37, 37, 38, 38, 45,
46, 47, 42, 48, 48, 49, 48, 50, 46, 47, 48, 43, 49, 49, 50, 49,
51, 40, 40, 40, 42, 0, 0, 0 51, 52, 41, 41, 41, 43, 0, 0,
0
}; };
/*Map glyph_ids to kern right classes*/ /*Map glyph_ids to kern right classes*/
static const uint8_t kern_right_class_mapping[] = static const uint8_t kern_right_class_mapping[] =
{ {
0, 0, 1, 2, 3, 4, 5, 5, 0, 0, 1, 2, 3, 4, 5, 6,
6, 7, 8, 9, 10, 11, 12, 7, 5, 7, 8, 9, 10, 11, 12, 13,
13, 14, 15, 16, 17, 18, 19, 18, 8, 14, 15, 16, 17, 18, 19, 20,
18, 18, 19, 18, 18, 20, 18, 18, 19, 19, 19, 20, 19, 19, 21, 19,
18, 18, 19, 18, 19, 18, 21, 22, 19, 19, 19, 20, 19, 20, 19, 22,
23, 24, 24, 25, 26, 27, 28, 29, 23, 24, 25, 25, 26, 27, 28, 29,
30, 30, 30, 0, 30, 29, 31, 32, 30, 31, 31, 31, 0, 31, 30, 32,
29, 29, 33, 33, 30, 33, 30, 33, 33, 30, 30, 34, 34, 31, 34, 31,
34, 35, 36, 37, 37, 38, 37, 39, 34, 35, 36, 37, 38, 38, 39, 38,
40, 30, 30, 30, 36, 0, 0, 0 40, 41, 31, 31, 31, 37, 0, 0,
0
}; };
/*Kern values between classes*/ /*Kern values between classes*/
static const int8_t kern_class_values[] = static const int8_t kern_class_values[] =
{ {
-46, -10, 0, -8, 12, 0, 0, -8, -46, -10, 0, -8, 12, 8, 0, 0,
4, 4, 13, 8, -7, 8, 0, 0, -8, 4, 4, 13, 8, -7, 8, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0,
10, 17, 0, 0, -21, -23, 3, 18, -10, 10, 17, 0, 0, -21, 0, -23,
8, 7, -15, 3, 19, 1, 16, 4, 3, 18, 8, 7, -15, 3, 19, 1,
16, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 8, 0, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 13, 0, 4, 13, 0, 4, 0, 0, -8, 0, 0,
0, 0, -8, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -24, -21, 0, 0,
0, -3, 38, -5, -5, 4, 4, -3,
0, -5, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-24, -21, 0, 0, 0, 38, -5, -5, 0, 0, 0, 0, -24, -14, 0, 0,
4, 4, -3, 0, -5, 4, 0, 0, 0, -3, 1, 0, 3, -7, -5, -8,
3, 0, -4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0, 23,
0, 23, 0, 13, -37, -26, -8, 12, 0, 13, -37, -26, -26, -8, 12, 0,
0, 0, -26, 0, 5, -9, 0, -6, 0, -26, 0, 5, -9, 0, -6, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 18, 0,
0, 3, 0, 0, -5, -8, 0, -1, 3, 0, 0, -5, 3, -8, 0, -1,
-1, -4, 0, 0, -3, 0, 0, 0, -1, -4, 0, 0, -3, 0, 0, 0,
-3, 0, 0, -9, 0, -8, 0, -10, -3, 0, 0, -9, 0, -8, 0, -10,
-13, -13, -7, 0, 0, 0, 0, -3, -13, -13, -7, 0, 0, 0, 0, -3,
0, 0, 4, 0, 3, -4, 0, 1, 0, 0, 4, 0, 3, -4, 0, 1,
4, 0, 0, 0, 4, 4, -1, 0, 4, 0, 0, 0, 4, -3, 4, -1,
0, 0, -7, 0, -1, 0, 0, 0, 0, 0, 0, -7, 0, -1, 0, 0,
1, 0, 0, 5, 0, -3, 0, -5, 0, 1, 0, 0, 5, 0, -3, 0,
0, -7, 0, 0, 0, -4, 0, 0, -5, 0, -7, 0, 0, 0, -4, 0,
0, 0, 0, -1, 1, -3, -3, 0, 0, 0, 0, 0, -1, 1, -3, -3,
-4, -4, 0, 0, 0, 0, 0, 0, 0, -4, -4, 0, 0, 0, 0, 0,
-2, -2, 0, -4, -5, 0, 0, 0, 0, 0, -2, -2, 0, -4, -5, 0,
1, 0, 0, 0, 0, -3, 0, -4, 0, 0, 1, 0, 0, 0, 0, -3,
-4, -4, 0, 0, 0, 0, 0, -2, 0, -4, -4, -4, 0, 0, 0, 0,
0, 0, 0, 0, -3, -5, 0, -6, 0, -2, 0, 0, 0, 0, -3, -5,
-12, -12, 0, 0, 8, 10, 0, -10, 0, -6, -12, -12, 0, 0, 8, 4,
-1, -5, 0, -1, -18, 4, -3, 3, 10, 0, -10, -1, -5, 0, -1, -18,
0, 0, 4, 1, -3, -20, 0, -20, 4, -3, 3, 0, 0, 4, 1, -3,
-3, -33, -3, 11, 0, 5, 0, 0, -20, 0, -20, -3, -33, -3, 11, 0,
0, 0, 1, 0, -7, -5, 0, -12, 5, 0, 0, 0, 0, 1, 0, -7,
-4, 0, 0, 0, 0, 0, 0, 0, -5, 0, -12, -4, 0, 0, 0, 0,
-2, -2, 0, -2, -5, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, -2,
0, 0, 0, -4, 0, -4, 0, -3, -5, 0, 0, 0, 0, 0, 0, -4,
-5, -3, 0, 0, 0, 0, 0, 0, 0, -4, 0, -3, -5, -3, 0, 0,
0, 0, 0, 0, -3, -3, 0, -5,
-8, -3, 0, 0, 4, 4, 0, 0,
0, 0, 0, 0, -3, 0, 0, 0,
3, 0, 0, 0, 0, -4, 0, -4,
-3, -5, 0, 0, 0, 3, 0, -3,
0, 0, 0, 0, -4, -6, 0, -7,
1, 12, 0, 0, -20, -16, -8, 4,
0, -3, -25, -7, 0, -7, 0, -8,
-25, 0, -7, -10, -3, 0, 0, 2,
-1, 3, -3, -15, 0, -19, -9, -8,
-9, -12, -5, -10, -1, -7, -10, 2,
-4, 1, 0, 0, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-2, 0, 0, -1, 0, -4, 0, -7, -3, -3, 0, -5, -8, -3, 0, 0,
-8, -8, -1, 0, 0, 0, 0, -3, 4, 2, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2, -2, 0, 0, 0, -3, 0, 0, 0, 3, 0, 0,
0, 4, 0, 0, 0, 18, 0, 0, 0, 0, -4, 0, -4, -3, -5, 0,
0, 0, 3, 0, -3, 0, 0, 0,
0, -4, -6, 0, -7, 1, 12, 0,
0, -20, -19, -16, -8, 4, 0, -3,
-25, -7, 0, -7, 0, -8, -25, 0,
-7, -10, -3, 0, 0, 2, -1, 3,
-3, -15, 0, -19, -9, -8, -9, -12,
-5, -10, -1, -7, -10, 2, -4, 1,
0, 0, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -2,
0, 0, -1, 0, -4, 0, -7, -8,
-8, -1, 0, 0, 0, 0, -3, 0,
0, 0, 0, 2, -2, 0, 0, 0,
4, 0, 0, 0, 0, 18, 0, 0,
0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -17, 0, 0, 13, 12, -3, -16, 0, -17, 0, 0, 13, -7, 12, -3,
0, 4, -6, 0, -19, -2, -5, 4, -16, 0, 4, -6, 0, -19, -2, -5,
5, 0, -4, 6, 0, -13, -6, -14, 4, 5, 0, -4, 6, 0, -13, -6,
-13, -16, 0, 0, 0, -2, 0, 0, -14, -13, -16, 0, 0, 0, -2, 0,
0, -2, -2, -4, -10, -13, -1, -36, 0, 0, -2, -2, -4, -10, -13, -1,
0, 0, 0, 0, 1, 0, 0, 0, -36, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -4, 0, -2, 0, 0, 0, 0, 0, 0, 0, -4,
-4, -6, 0, 0, 0, 0, 0, 0, 0, -2, -4, -6, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 5, 0, -8, 4, 0, 0, 0, 0, 0, 0, 5, -1,
-3, -1, -10, -4, 0, -5, -4, -3, 0, -8, 4, -3, -1, -10, -4, 0,
-7, 0, -6, 0, -1, -3, -1, -3, -5, -4, -3, -7, 0, -6, 0, -1,
-7, -5, 0, -3, 0, -8, 0, 0, -3, -1, -3, -7, -5, 0, -3, 0,
0, -8, 0, -7, 0, -7, -7, 4, -8, 0, 0, 0, -8, 0, -7, 0,
0, -7, 0, 5, -8, -8, 0, -4, -7, -7, 4, 0, -7, 0, 5, -8,
-4, -5, 0, 0, 0, 0, 0, 0, 3, -8, 0, -4, -4, -5, 0, 0,
-4, 0, 0, -6, 0, -4, 0, -8, 0, 0, 0, 0, -4, 0, 0, -6,
-10, -12, -3, 0, 0, 0, 0, 31, 0, -4, 0, -8, -10, -12, -3, 0,
0, 0, 2, 0, 0, -5, 0, 4, 0, 0, 0, 31, 0, 0, 2, 0,
0, 0, 0, 0, 4, 0, -5, 0, 0, -5, 0, 4, 0, 0, 0, 0,
-3, -5, -12, -3, -3, -3, -1, -3, 4, -8, 0, -5, 0, -3, -5, -12,
0, 0, -1, 0, 0, 0, 0, -4, -3, -3, -3, -1, -3, 0, 0, -1,
-3, -3, 0, -3, 0, -3, 0, 0, 0, 0, 0, 0, -4, -3, -3, 0,
0, -3, -5, -3, -3, -5, -3, 0, -3, 0, -3, 0, 0, 0, -3, -5,
0, 15, 0, -3, -4, -16, -5, 6, -3, -3, -5, -3, 0, 0, 15, 0,
0, 0, -18, -7, 4, -7, 3, 0, -3, -4, 0, -16, -5, 6, 0, 0,
-12, 0, -3, -6, -1, 2, 0, 0, -18, -7, 4, -7, 3, 0, -12, 0,
-7, 0, 0, -7, 0, -7, -4, -6, -3, -6, -1, 2, 0, 0, -7, 0,
-4, -4, 0, -7, 2, -7, -7, 12, 0, -7, 0, -7, -4, -6, -4, -4,
0, 0, 0, 0, 4, 0, 0, 0, 0, -7, 2, -7, -7, 12, 0, 0,
0, 0, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -1618,146 +1635,150 @@ static const int8_t kern_class_values[] =
0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, -3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, -4, 0, 0, 0, 0, 0, 0, -3, 0, -4, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-6, 0, 0, 0, 0, -5, 0, 0, 0, -6, 0, 0, 0, 0, -5, 0,
-4, -4, 0, 0, 0, 0, 0, -2, 0, -4, -4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -3, 0, 0, -2, 0, 0, 0, 0, 0, -3, 0,
0, 0, 0, 0, 0, 3, -8, 8, 0, 0, 0, 0, 0, 0, -13, 3,
1, -3, -18, 0, 0, -8, -4, 0, -8, 8, 1, -3, -18, 0, 0, -8,
-11, 0, -10, 0, -6, -17, -4, -15, -4, 0, -11, 0, -10, 0, -6, -17,
-15, -18, 0, -5, 0, -9, -4, -1, -4, -15, -15, -18, 0, -5, 0, -9,
-4, -7, -10, -7, -14, -16, -9, -4, -4, -1, -4, -7, -10, -7, -14, -16,
0, 0, 0, 0, 12, 8, -8, -14, -9, -4, 0, 0, 0, 0, 12, -3,
0, 1, -12, 0, -19, -3, -4, 8, 8, -8, -14, 0, 1, -12, 0, -19,
1, 0, -5, 0, -3, -25, -5, -20, -3, -4, 8, 1, 0, -5, 0, -3,
-4, -28, 0, 1, 0, -3, 0, 0, -25, -5, -20, -4, -28, 0, 1, 0,
0, 0, -2, -3, -15, -3, 0, -25, -3, 0, 0, 0, 0, -2, -3, -15,
0, 0, 0, -3, -11, -18, 0, 0, -3, 0, -25, 0, 0, 0, -3, -11,
-2, -6, -12, -4, 0, -3, 0, 0, -1, -18, 0, 0, -2, -6, -12, -4,
-17, -4, 0, -13, 0, -12, -3, -7, 0, -3, 0, 0, -17, -4, 0, -13,
-10, -4, -7, -6, 0, -5, -7, -4, 0, -12, -3, -7, -10, -4, -7, -6,
-7, 0, 2, 0, -3, -13, 0, 8, 0, -5, -7, -4, -7, 0, 2, 0,
0, -7, 0, 5, -8, 16, 0, -4, -3, -13, 0, 8, 0, -7, 0, 5,
-4, -5, 0, 0, 0, 0, 0, 0, -8, 3, 16, 0, -4, -4, -5, 0,
-4, 0, 0, -6, 0, -4, 0, -8,
-10, -12, -3, 0, 0, 0, 0, 31,
0, 0, 2, 0, 0, -5, 0, 4,
0, 0, 0, 0, 0, 0, 0, 0,
0, -3, -8, 0, 0, 0, 0, 0,
0, 0, 0, -4, 0, -4, 0, 0,
-8, -4, 0, -2, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0, 0, 6,
0, -12, 0, 0, 8, 0, 0, -4,
0, -3, 4, 0, -4, 0, -4, -2,
0, 0, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0,
-5, -6, 0, 0, 0, 0, 0, 0, -6, 0, -4, 0, -8, -10, -12, -3,
0, 0, 0, 0, -4, -4, 0, -6, 0, 0, 0, 0, 31, 0, 0, 2,
0, 3, -6, 0, -12, -8, -8, 15, 0, 0, -5, 0, 4, 0, 0, 0,
0, 0, -1, 0, 0, 0, 0, -3,
-8, 0, 0, 0, 0, 0, 0, 0,
0, -4, 0, -4, 0, 0, -8, -4,
0, -2, 0, 0, 0, 0, 0, 0,
2, 0, 0, 0, 0, 6, 0, -12,
0, 0, 8, 7, 0, 0, -4, 0,
-3, 4, 0, -4, 0, -4, -2, 0,
0, 0, 0, 0, -4, 0, 0, -5,
-6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -4, -4, 0, -6, 0,
3, -6, 0, -12, -13, -8, -8, 15,
7, 4, -33, -3, 8, -4, 0, -4, 7, 4, -33, -3, 8, -4, 0, -4,
-13, 0, -4, -4, -3, 4, -5, -3, -13, 0, -4, -4, -3, 4, -5, -3,
-12, -3, 0, -11, 0, -21, -5, 11, -12, -3, 0, -11, 0, -21, -5, 11,
-5, -15, 1, -5, -13, -13, -4, 15, -5, -15, 1, -5, -13, -13, -4, 15,
0, 0, 0, 3, -14, -15, -10, 12, 0, 0, 0, 3, -14, -9, -15, -10,
0, 1, -28, -3, 4, -7, -3, -9, 12, 0, 1, -28, -3, 4, -7, -3,
-14, -6, -8, -6, -6, -3, 0, 0, -9, -14, -6, -8, -6, -6, -3, 0,
-9, -8, -4, -21, 0, -21, -5, 0, 0, -9, -8, -4, -21, 0, -21, -5,
-13, -22, -1, -12, -7, -13, -11, 10, 0, -13, -22, -1, -12, -7, -13, -11,
0, 0, -3, 0, 0, 7, -13, 4, 10, 0, 0, -3, 0, 0, -7, 7,
0, 0, -20, 0, -4, -8, -7, -3, -13, 4, 0, 0, -20, 0, -4, -8,
-13, -9, -10, 0, -5, -12, -4, -9, -7, -3, -13, -9, -10, 0, -5, -12,
-7, -12, -4, -7, 0, -12, -4, 0, -4, -9, -7, -12, -4, -7, 0, -12,
-4, -8, -9, -10, -11, -15, -5, -8, -4, 0, -4, -8, -9, -10, -11, -15,
0, 0, -5, 2, -14, -8, -13, 13, -5, -8, 0, 0, -5, 2, -14, -12,
-4, 2, -36, -7, 8, -8, -7, -14, -8, -13, 13, -4, 2, -36, -7, 8,
-16, -5, -12, -4, -6, -3, -4, -8, -8, -7, -14, -16, -5, -12, -4, -6,
-12, -1, 0, -25, 0, -23, -9, 9, -3, -4, -8, -12, -1, 0, -25, 0,
-15, -26, -8, -13, -16, -19, -13, 8, -23, -9, 9, -15, -26, -8, -13, -16,
0, 0, 0, 0, 8, 3, -7, 8, -19, -13, 8, 0, 0, 0, 0, 8,
0, 0, -12, -1, 0, -1, 0, 1, -5, 3, -7, 8, 0, 0, -12, -1,
0, 0, -3, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, -3, 0,
-4, 0, 0, 1, 0, -5, 0, 0, 0, 0, 0, 0, -4, 0, 0, 1,
0, 0, -3, -3, -5, 0, 0, 0, 0, -5, 0, 0, 0, 0, -3, -3,
-11, 0, 0, 0, 0, 0, 0, -8, -5, 0, 0, 0, -11, 0, 0, 0,
-2, 0, 0, 0, -8, 0, -5, 0, 0, 0, 0, 0, -8, -2, 0, 0,
0, -8, 0, -5, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, 0, 0, -7, 0, -4, 0, 0, -7, -10, -6, 0,
-10, -6, 0, 0, -5, 0, 0, -10, 0, -5, 4, 0, 0, -10, -4, -9,
-4, -9, 0, 0, -10, 0, -4, 0, 0, 0, -10, 0, -4, 0, -4, 0,
-4, 0, 0, 0, 0, -31, -7, -15, 0, 0, 0, -31, -7, -15, -4, -14,
-4, -14, 0, -2, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -6, -7, -3, -7, 0, 0, -6, -7, -3, -7, 0, 0,
0, 0, 0, -8, 8, 0, -3, -9, 0, -8, 8, -4, 0, -3, -9, -3,
-3, -7, -7, 0, -5, -2, -3, 3, -7, -7, 0, -5, -2, -3, 3, 0,
0, 0, -1, 0, 0, -34, -3, -5, 0, -1, 0, 0, -34, -3, -5, 0,
0, -8, 0, 0, -3, -3, 0, 0, -8, 0, 0, -3, -3, 0, 0, 0,
0, 0, 3, 0, -3, -7, -3, 7, 0, 3, 0, -3, -7, -3, 7, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0,
-3, -8, 0, 0, 0, 0, 0, -10, -3, -8, 0, 0, 0, 4, 0, 0,
-4, -8, 0, 0, -11, 0, -4, 0, -10, -4, -8, 0, 0, -11, 0, -4,
0, 0, 0, 0, 0, -37, 0, -8, 0, 0, 0, 0, 0, 0, -37, 0,
-14, -19, 0, -6, 0, 0, 0, 0, -8, -14, -19, 0, -6, 0, 0, 0,
0, 0, 0, 0, -4, -6, -2, -6, 0, 0, 0, 0, 0, -4, -6, -2,
7, 0, 0, 12, -4, -12, 5, 19, -6, 7, 0, 0, 12, -4, -4, -12,
7, 8, -10, 5, 16, 5, 11, 8, 5, 19, 7, 8, -10, 5, 16, 5,
11, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -4, 0, -3,
31, 17, 31, 0, 0, 0, 4, 0,
0, 14, 0, 0, 0, 0, 0, 0,
0, 0, -3, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, -6,
-32, -5, -3, -16, -19, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -4, 0, -3, 31, 17, 0, 0, 0, 0, 0, 0, 0, 4,
31, 0, 0, 0, 4, 0, 0, 14, -9, 0, -4, 3, 7, 4, -12, 0,
0, 0, 0, 0, 0, 0, 0, -3, -1, -3, 4, 0, 0, 0, 0, 0,
0, -10, 0, -3, -3, -8, 0, -4,
0, -8, -3, 0, -3, -7, 0, -4,
-11, -8, -5, 0, 0, 0, 0, 0,
0, 0, 0, 0, -3, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -6, -32, -5, -3, 0, -6, -32, -5, -3, -16, -19, 0,
-16, -19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5,
0, 0, 0, 0, 4, 0, -4, 3, -3, -4, -3, -15, 1, -2, 1, -3,
7, 4, -12, 0, -1, -3, 4, 0, -10, 1, 8, 1, 3, 1, -15, -5,
0, 0, 0, 0, 0, -10, 0, -3, -9, 0, -6, -15, -7, -10, -16, -15,
-3, -8, 0, -4, 0, -8, -3, 0, 0, -3, -3, -5, -3, 0, -3, -1,
-3, -7, 0, -4, -11, -8, -5, 0, 6, 0, 6, -3, 0, 12, 0, 0,
0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, -3, -4,
0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -10, 0, -2, 0, 0,
0, 0, 0, 0, -6, -32, -5, -3,
-16, -19, 0, 0, 0, 0, 0, 19,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, -5, -3, -4, -15, 1, -2,
1, -3, -10, 1, 8, 1, 3, 1,
-15, -5, -9, 0, -6, -15, -7, -10,
-16, -15, 0, -3, -3, -5, -3, 0,
-3, -1, 6, 0, 6, -3, 0, 12,
0, 0, 0, 0, 0, 0, 0, -3,
-4, -4, 0, 0, -10, 0, -2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -4, -4, 0, -5, 0, 0, 0, -4, -4, 0, -5, 0,
0, 0, 0, 0, 4, 0, -7, -7, 0, 0, 0, 4, -4, 0, -7, -7,
-3, 0, -11, -3, -8, -3, -5, 0, -3, 0, -11, -3, -8, -3, -5, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0,
0, 0, -5, 0, -4, 0, 0, -2, 0, 0, -5, 0, -4, 0, 0, -2,
0, 0, 0, 0, -13, -12, 3, 4, 0, 0, 0, 0, -13, -5, -12, 3,
4, -1, -11, 3, 6, 3, 12, 3, 4, 4, -1, -11, 3, 6, 3, 12,
-10, 0, -3, 0, -3, -15, 0, 0, 3, -10, 0, -3, 0, -3, -15, 0,
-12, -10, 0, -7, 0, -6, 0, -6, 0, -12, -10, 0, -7, 0, -6, 0,
0, -3, 6, 0, -3, -12, -4, 14, -6, 0, -3, 6, 0, -3, -12, -4,
0, 0, 0, 0, 0, 4, -4, 3, 14, 0, 0, 0, 0, 0, -9, 4,
0, 0, -13, 0, -3, -1, 0, -4, -4, 3, 0, 0, -13, 0, -3, -1,
0, 0, -3, 0, -3, -16, -5, -8, 0, -4, 0, 0, -3, 0, -3, -16,
0, -12, 0, -4, 0, -7, 0, 2, -5, -8, 0, -12, 0, -4, 0, -7,
0, -4, 0, -4, -12, 0, -4, 4, 0, 2, 0, -4, 0, -4, -12, 0,
0, 0, 0, 0, 1, 0, 0, -5, -4, 4, 0, 0, 0, 0, 1, -5,
-3, 0, -5, 0, 0, 0, 0, 0, 0, 0, -5, -3, 0, -5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, -3, 0, 0,
0, 0, 1, 0, -4, -4, 0, 0,
9, 8, 0, 0, -24, -22, 1, 17,
12, 7, -15, 3, 16, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 -3, 0, 0, 0, 0, 1, 0, -4,
-4, 0, 0, 9, 8, 0, 0, -24,
0, -22, 1, 17, 12, 7, -15, 3,
16, 0, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0
}; };
@ -1767,8 +1788,8 @@ static const lv_font_fmt_txt_kern_classes_t kern_classes =
.class_pair_values = kern_class_values, .class_pair_values = kern_class_values,
.left_class_mapping = kern_left_class_mapping, .left_class_mapping = kern_left_class_mapping,
.right_class_mapping = kern_right_class_mapping, .right_class_mapping = kern_right_class_mapping,
.left_class_cnt = 51, .left_class_cnt = 52,
.right_class_cnt = 40, .right_class_cnt = 41,
}; };
/*-------------------- /*--------------------
@ -1790,7 +1811,7 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
.cmaps = cmaps, .cmaps = cmaps,
.kern_dsc = &kern_classes, .kern_dsc = &kern_classes,
.kern_scale = 16, .kern_scale = 16,
.cmap_num = 4, .cmap_num = 5,
.bpp = 4, .bpp = 4,
.kern_classes = 1, .kern_classes = 1,
.bitmap_format = 0, .bitmap_format = 0,

View File

@ -1,15 +1,12 @@
#include "bsp/display.h"
#include "bsp_board_extra.h"
#include "lv_theme_domotic.h"
#include "esp_lvgl_port.h"
#include "ihm.h" #include "ihm.h"
#include "misc/lv_types.h" #include "misc/lv_types.h"
#include "esp_log.h" #include "esp_log.h"
#include "string.h" #include "string.h"
#include "meteofrance.h" #include "meteofrance.h"
#include "bsp/esp-bsp.h"
#include "cJSON.h" #include "cJSON.h"
#include "eventsManager.h" #include "eventsManager.h"
#include "bsp/esp-bsp.h"
#include "lvgl_private.h"
#define upEvent "monter" #define upEvent "monter"
@ -45,7 +42,6 @@ static lv_subject_t wifiStatus;
LV_IMAGE_DECLARE(wifi_ok); LV_IMAGE_DECLARE(wifi_ok);
LV_IMAGE_DECLARE(wifi_ko); 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_LOGV(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject)); ESP_LOGV(TAG, "On passe dans le callback de chgt de statut; %li", lv_subject_get_int(subject));
@ -101,7 +97,7 @@ lv_obj_t* lblEtatMachine;
void drawIhm(void *xIHMEventQueueParam) { void drawIhm(void *xIHMEventQueueParam) {
QueueHandle_t xIHMEventQueue = (QueueHandle_t)xIHMEventQueueParam; QueueHandle_t xIHMEventQueue = (QueueHandle_t)xIHMEventQueueParam;
init_display(); init_display_ihm();
lv_subject_init_int(&wifiStatus, 0); lv_subject_init_int(&wifiStatus, 0);
lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL); lv_subject_add_observer_obj(&wifiStatus, wifiStatus_obs_cb, NULL, NULL);
@ -136,7 +132,7 @@ void drawIhm(void *xIHMEventQueueParam) {
break; break;
case IHM_EVT_OTA_PROGRESS: case IHM_EVT_OTA_PROGRESS:
setOTAProgress((int)xReceivedEvent->pvData); //setOTAProgress((int)xReceivedEvent->pvData);
break; break;
case IHM_EVT_HUMID_TEMP: case IHM_EVT_HUMID_TEMP:
@ -233,7 +229,8 @@ static void event_handler(lv_event_t *e)
} }
void init_display(){ void init_display_ihm(){
/*
lvgl_port_cfg_t lvgl_cfg = ESP_LVGL_PORT_INIT_CONFIG(); lvgl_port_cfg_t lvgl_cfg = ESP_LVGL_PORT_INIT_CONFIG();
lvgl_cfg.task_priority=15; lvgl_cfg.task_priority=15;
bsp_display_cfg_t cfg = { bsp_display_cfg_t cfg = {
@ -252,6 +249,7 @@ void init_display(){
bsp_display_backlight_on(); bsp_display_backlight_on();
bsp_display_brightness_set(50); bsp_display_brightness_set(50);
*/
mainState.display_init=true; mainState.display_init=true;
} }
@ -326,9 +324,6 @@ void app_main_display()
lv_subject_init_pointer(&forecastH3Subj, &d1); lv_subject_init_pointer(&forecastH3Subj, &d1);
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 */
//lv_subject_init_string(&dateHeureSubj, dateHeureStr, NULL, 64, "--"); //lv_subject_init_string(&dateHeureSubj, dateHeureStr, NULL, 64, "--");
lv_style_init(&no_padding); lv_style_init(&no_padding);
@ -422,7 +417,7 @@ void meteo_obs_cb(lv_observer_t *observer, lv_subject_t *subject)
ESP_LOGI(TAG, "On passe dans le callback de chgt de statut meteo; %li", lv_subject_get_int(subject)); ESP_LOGI(TAG, "On passe dans le callback de chgt de statut meteo; %li", lv_subject_get_int(subject));
if (display_lock("meteo_obs_cb")) if (display_lock("meteo_obs_cb"))
{ {
lv_obj_t *meteoSt = observer->target; lv_obj_t *meteoSt = lv_observer_get_target(observer);
switch (lv_subject_get_int(subject)) switch (lv_subject_get_int(subject))
{ {
case 0: case 0:
@ -455,7 +450,7 @@ static void weatherdata_obs_cb(lv_observer_t *observer, lv_subject_t *subject)
// char buff[40] = {}; // char buff[40] = {};
// sprintf(buff,"%s %.1f %.1f", data->previsions.desc, data->previsions.min, data->previsions.max); // sprintf(buff,"%s %.1f %.1f", data->previsions.desc, data->previsions.min, data->previsions.max);
if(data->isValid){ if(data->isValid){
lv_obj_t *parent = (lv_obj_t *)(observer->target); lv_obj_t *parent = (lv_obj_t *)(lv_observer_get_target(observer));
lv_obj_t *datefld = lv_obj_get_child(parent, 0); lv_obj_t *datefld = lv_obj_get_child(parent, 0);
lv_obj_t *desc_icon = lv_obj_get_child(parent, 1); lv_obj_t *desc_icon = lv_obj_get_child(parent, 1);
lv_obj_t *temps = lv_obj_get_child(parent, 2); lv_obj_t *temps = lv_obj_get_child(parent, 2);
@ -484,7 +479,7 @@ static void weatherdataH_obs_cb(lv_observer_t *observer, lv_subject_t *subject)
sprintf(buff,"%.1f", data->previsions.value); sprintf(buff,"%.1f", data->previsions.value);
ESP_LOGV(TAG, "On a recu [%s]", buff); ESP_LOGV(TAG, "On a recu [%s]", buff);
lv_obj_t *parent = (lv_obj_t *)(observer->target); lv_obj_t *parent = (lv_obj_t *)(lv_observer_get_target(observer));
lv_obj_t *datefld = lv_obj_get_child(parent, 0); lv_obj_t *datefld = lv_obj_get_child(parent, 0);
lv_obj_t *temp_desc_icon = lv_obj_get_child(parent, 1); lv_obj_t *temp_desc_icon = lv_obj_get_child(parent, 1);
showMeteoIcon(data->previsions.icon, temp_desc_icon, 1); showMeteoIcon(data->previsions.icon, temp_desc_icon, 1);
@ -690,7 +685,7 @@ void btnRestart_cb(lv_event_t * e){
lv_event_code_t code = lv_event_get_code(e); lv_event_code_t code = lv_event_get_code(e);
if(code == LV_EVENT_CLICKED) { if(code == LV_EVENT_CLICKED) {
esp_restart(); //esp_restart();
} }
} }
@ -713,7 +708,7 @@ static void log_event_handler(lv_event_t * e)
static lv_style_t style_lbvValue; static lv_style_t style_lbvValue;
static lv_style_t style_btn; static lv_style_t style_btn;
#define MIN(a,b) ((a) < (b) ? (a) : (b))
static void draw_event_cb(lv_event_t * e) static void draw_event_cb(lv_event_t * e)
{ {
lv_draw_task_t * draw_task = lv_event_get_draw_task(e); lv_draw_task_t * draw_task = lv_event_get_draw_task(e);
@ -1020,11 +1015,70 @@ void draw_tabVolets(lv_obj_t* parent)
} }
} }
/*Will be called when the styles of the base theme are already added
to add new styles*/
static void new_theme_apply_cb(lv_theme_t * th, lv_obj_t * obj)
{
LV_UNUSED(th);
if(lv_obj_check_type(obj, &lv_button_class)) {
lv_obj_add_style(obj, &style_btn, 0);
}
}
lv_theme_t * lv_theme_create(void)
{
lv_theme_t * theme = lv_zalloc(sizeof(*theme));
LV_ASSERT_MALLOC(theme);
return theme;
}
void lv_theme_copy(lv_theme_t * dst, const lv_theme_t * src)
{
if(!dst || !src) {
LV_LOG_WARN("Refusing to copy null themes");
return;
}
lv_memcpy(dst, src, sizeof(*src));
}
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
/* Dessin IHM */ /* Dessin IHM */
/* ------------------------------------------------------------ */ /* ------------------------------------------------------------ */
LV_FONT_DECLARE(montserrat_medium_12);
LV_FONT_DECLARE(montserrat_medium_18);
LV_FONT_DECLARE(montserrat_medium_24);
void draw_ihm() void draw_ihm()
{ {
lv_display_t * display = lv_display_get_default();
/*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);
/* 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 */
lv_theme_t * th_act = lv_display_get_theme(NULL);
lv_theme_t * th_new = lv_theme_create();
lv_theme_copy(th_new, th_act);
th_new->font_small=&montserrat_medium_12;
th_new->font_normal=&montserrat_medium_18;
th_new->font_large=&montserrat_medium_24;
//lv_theme_default_deinit();
//lv_theme_default_init(display,lv_palette_main(LV_PALETTE_GREEN),lv_palette_darken(LV_PALETTE_GREEN,3),false,&montserrat_medium_12);
lv_theme_set_parent(th_new, th_act);
/*Set the style apply callback for the new theme*/
lv_theme_set_apply_cb(th_new, new_theme_apply_cb);
/*Assign the new theme to the current display*/
lv_display_set_theme(display, th_new);
lv_subject_init_string(&tempExtSubj, tempExtStr, NULL, 6, "--"); lv_subject_init_string(&tempExtSubj, tempExtStr, NULL, 6, "--");
lv_subject_init_string(&tempIntSubj, tempIntStr, NULL, 6, "--"); lv_subject_init_string(&tempIntSubj, tempIntStr, NULL, 6, "--");
lv_subject_init_string(&hauteurCuveSubj, hauteurCuveStr, NULL, 9, "--"); lv_subject_init_string(&hauteurCuveSubj, hauteurCuveStr, NULL, 9, "--");
@ -1033,6 +1087,8 @@ void draw_ihm()
// keys.clear(); // keys.clear();
lv_obj_clean(lv_scr_act()); lv_obj_clean(lv_scr_act());
//Create a Tab view object //Create a Tab view object
tabview = lv_tabview_create(lv_screen_active()); tabview = lv_tabview_create(lv_screen_active());
lv_tabview_set_tab_bar_position(tabview, LV_DIR_LEFT); lv_tabview_set_tab_bar_position(tabview, LV_DIR_LEFT);
@ -1059,14 +1115,14 @@ void draw_ihm()
// lv_obj_set_style_bg_color(tab2b, lv_palette_lighten(LV_PALETTE_AMBER, 3), 0); // lv_obj_set_style_bg_color(tab2b, lv_palette_lighten(LV_PALETTE_AMBER, 3), 0);
lv_obj_set_style_bg_opa(tabVolets, LV_OPA_COVER, 0); lv_obj_set_style_bg_opa(tabVolets, LV_OPA_COVER, 0);
lv_style_init(&style_btn); //lv_style_init(&style_btn);
// lv_style_set_bg_color(&style_btn, lv_color_hex(0x115588)); // lv_style_set_bg_color(&style_btn, lv_color_hex(0x115588));
// lv_style_set_bg_opa(&style_btn, LV_OPA_50); // lv_style_set_bg_opa(&style_btn, LV_OPA_50);
// lv_style_set_border_width(&style_btn, 2); // lv_style_set_border_width(&style_btn, 2);
// lv_style_set_border_color(&style_btn, lv_color_black()); // lv_style_set_border_color(&style_btn, lv_color_black());
lv_style_set_width(&style_btn, 80); //lv_style_set_width(&style_btn, 80);
lv_style_set_height(&style_btn, 100); //lv_style_set_height(&style_btn, 100);
// Un style pour les conteneurs (température, cuve ...) // Un style pour les conteneurs (température, cuve ...)
lv_style_init(&style_container); lv_style_init(&style_container);

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
HostUrl=about:internet

View File

@ -1,3 +0,0 @@
[ZoneTransfer]
ZoneId=3
HostUrl=about:internet

View File

@ -1,12 +1,11 @@
#pragma once #pragma once
#include "meteofrance.h" #include "meteofrance.h"
#include "esp_lvgl_port.h" #include "lvgl.h"
#include "bsp/esp-bsp.h"
void app_main_display(); void app_main_display();
void app_ota_display(); void app_ota_display();
void setOTAProgress(int value); void setOTAProgress(int value);
void init_display(); void init_display_ihm();
bool display_lock(const char *TAG); bool display_lock(const char *TAG);

View File

@ -13,7 +13,7 @@ extern "C" {
/********************* /*********************
* INCLUDES * INCLUDES
*********************/ *********************/
#include "esp_lvgl_port.h" #include "lvgl.h"
/********************* /*********************
* DEFINES * DEFINES

View File

@ -9,7 +9,6 @@
*********************/ *********************/
#if LV_USE_THEME_SIMPLE_DOMOTIC #if LV_USE_THEME_SIMPLE_DOMOTIC
#include "lv_theme_domotic.h" #include "lv_theme_domotic.h"
#include "esp_lvgl_port.h"
/********************* /*********************
* DEFINES * DEFINES
*********************/ *********************/

View File

@ -0,0 +1,29 @@
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(COMPONENTS main)
# This test app doesn't require FreeRTOS, using mock instead
list(APPEND EXTRA_COMPONENT_DIRS
"$ENV{IDF_PATH}/tools/mocks/freertos/"
"$ENV{IDF_PATH}/tools/mocks/esp_timer"
../../meteofrance
../../stateManagement
../../eventsManager
)
idf_build_set_property(COMPILE_DEFINITIONS "NO_DEBUG_STORAGE" APPEND)
project(nvs_host_test)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/coverage_report/index.html"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMAND gcovr --root $ENV{IDF_PATH}/components/nvs_flash --html-details
--exclude ${CMAKE_CURRENT_SOURCE_DIR}/managed_components/*
-o ${CMAKE_CURRENT_BINARY_DIR}/coverage_report/index.html ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generate coverage report"
)
add_custom_target(coverage
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
DEPENDS "coverage_report/index.html"
)

View File

@ -0,0 +1,17 @@
dependencies:
idf:
source:
type: idf
version: 5.5.1
lvgl/lvgl:
component_hash: 17e68bfd21f0edf4c3ee838e2273da840bf3930e5dbc3bfa6c1190c3aed41f9f
dependencies: []
source:
registry_url: https://components.espressif.com/
type: service
version: 9.4.0
direct_dependencies:
- lvgl/lvgl
manifest_hash: b69f67d8253596e504fba179d3e69969cb4958216d37d471849a023add797535
target: linux
version: 2.0.0

View File

@ -0,0 +1,5 @@
dependencies:
lvgl/lvgl:
version: 9.4.0
#espressif/esp32_p4_function_ev_board:
# version: "4.1.*"

View File

@ -0,0 +1,34 @@
set(LV_BUILD_USE_KCONFIG ON)
idf_component_register(SRCS
"test_ihm.c"
"../../ihm.c"
"driver_backends.c"
"sdl.c"
"../../fonts/montserrat_medium_12.c"
"../../fonts/montserrat_medium_18.c"
"../../fonts/montserrat_medium_24.c"
INCLUDE_DIRS
"../../include"
WHOLE_ARCHIVE
REQUIRES lvgl meteofrance)
message("Including SDL2 support")
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 REQUIRED sdl2)
pkg_check_modules(SDL2_IMAGE REQUIRED SDL2_image)
list(APPEND PKG_CONFIG_LIB ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES})
list(APPEND PKG_CONFIG_INC ${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS})
target_compile_options(${COMPONENT_LIB} PUBLIC --coverage -DLV_LVGL_H_INCLUDE_SIMPLE)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${PKG_CONFIG_LIB} --coverage)
target_include_directories(${COMPONENT_LIB} PRIVATE ${CMAKE_SOURCE_DIR}/mock ${PKG_CONFIG_INC})
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
target_compile_options(${COMPONENT_LIB} PRIVATE -std=gnu++20)
endif()
# Currently 'main' for IDF_TARGET=linux is defined in freertos component.
# Since we are using a freertos mock here, need to let Catch2 provide 'main'.
#target_link_libraries(${COMPONENT_LIB} PRIVATE Catch2WithMain)

View File

@ -0,0 +1,97 @@
/**
* @file backends.h
*
* Interface for abstration layer of a device backend
*
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*
*/
#ifndef BACKENDS_H
#define BACKENDS_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/* Prototype of the display initialization functions */
typedef lv_display_t *(*display_init_t)(void);
/* Prototype of the run loop */
typedef void (*run_loop_t)(void);
/* Represents a display driver handle */
typedef struct {
display_init_t init_display; /* The display creation/initialization function */
run_loop_t run_loop; /* The run loop of the driver handle */
lv_display_t *display; /* The LVGL display that was created */
} display_backend_t;
/* Prototype for the initialization of an indev driver backend */
typedef lv_indev_t *(*indev_init_t)(lv_display_t *display);
/* Represents an indev driver backend */
typedef struct {
indev_init_t init_indev;
} indev_backend_t;
/* Regroup all different types of driver backend */
typedef union {
display_backend_t *display;
indev_backend_t *indev;
} backend_handle_t;
/* Define each type of driver backend */
typedef enum {
BACKEND_DISPLAY,
BACKEND_INDEV
} backend_type_t;
/* Driver backend descriptor */
typedef struct {
backend_handle_t *handle;
char *name;
backend_type_t type;
} backend_t;
/* Prototype used to register a backend */
typedef int (*backend_init_t)(backend_t *);
/**********************
* GLOBAL PROTOTYPES
**********************/
/* Graphics backends */
int backend_init_fbdev(backend_t *backend);
int backend_init_drm(backend_t *backend);
int backend_init_sdl(backend_t *backend);
int backend_init_glfw3(backend_t *backend);
int backend_init_wayland(backend_t *backend);
int backend_init_x11(backend_t *backend);
/* Input device driver backends */
int backend_init_evdev(backend_t *backend);
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*BACKEND_H*/

View File

@ -0,0 +1,281 @@
/**
* @file driver_backends.c
*
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*/
/*********************
* INCLUDES
*********************/
#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include "lvgl.h"
#include "simulator_util.h"
#include "simulator_settings.h"
#include "driver_backends.h"
#include "backends.h"
/*********************
* DEFINES
*********************/
/* Catch configuration errors at compile time - checks if no backend was selected */
#if LV_USE_SDL == 0 && \
LV_USE_WAYLAND == 0 && \
LV_USE_LINUX_DRM == 0 && \
LV_USE_GLFW == 0 && \
LV_USE_X11 == 0 && \
LV_USE_LINUX_FBDEV == 0
#endif
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/* The default backend is the one that will end up at index 0
* To add support for a new driver backend add the declaration
* and append an entry to the available_backends array
*/
backend_init_t available_backends[] = {
#if LV_USE_LINUX_FBDEV
backend_init_fbdev,
#endif
#if LV_USE_LINUX_DRM
backend_init_drm,
#endif
backend_init_sdl,
#if LV_USE_WAYLAND
backend_init_wayland,
#endif
#if LV_USE_X11
backend_init_x11,
#endif
#if LV_USE_GLFW
backend_init_glfw3,
#endif
#if LV_USE_EVDEV
backend_init_evdev,
#endif
NULL /* Sentinel */
};
/* Contains the backend descriptors */
static backend_t *backends[sizeof(available_backends) / sizeof(available_backends[0])];
/* Set once the user selects a backend - or it is set to the default backend */
static backend_t *sel_display_backend = NULL;
/**********************
* GLOBAL VARIABLES
**********************/
/* Contains global simulator settings common to each backend */
simulator_settings_t settings;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
void driver_backends_register(void)
{
int i;
backend_init_t init_backend;
backend_t *b;
i = 0;
if (backends[i] != NULL) {
/* backends are already registered - leave */
return;
}
while ((init_backend = available_backends[i]) != NULL) {
b = malloc(sizeof(backend_t));
LV_ASSERT_NULL(b);
b->handle = malloc(sizeof(backend_handle_t));
init_backend = available_backends[i];
LV_ASSERT_NULL(init_backend);
init_backend(b);
backends[i] = b;
i++;
}
}
int driver_backends_init_backend(char *backend_name)
{
backend_t *b;
int i;
display_backend_t *dispb;
indev_backend_t *indevb;
if (backends[0] == NULL) {
LV_LOG_ERROR("Please call driver_backends_register first");
return -1;
}
if (backend_name == NULL) {
/*
* Set default display backend - which is the first defined
* item in available_backends array
*/
LV_ASSERT_NULL(backends[0]);
b = backends[0];
if (b->type != BACKEND_DISPLAY) {
LV_LOG_ERROR("The default backend: %s is not a display driver backend", b->name);
return -1;
}
backend_name = backends[0]->name;
}
i = 0;
while ((b = backends[i]) != NULL) {
/* Check if such a backend exists */
if (strcmp(b->name, backend_name) == 0) {
if (b->type == BACKEND_DISPLAY) {
/* Initialize the display */
dispb = b->handle->display;
LV_ASSERT_NULL(dispb->init_display);
dispb->display = dispb->init_display();
if (dispb->display == NULL) {
LV_LOG_ERROR("Failed to init display with %s backend", b->name);
return -1;
}
sel_display_backend = b;
LV_LOG_INFO("Initialized %s display backend", b->name);
break;
} else if (b->type == BACKEND_INDEV) {
/* Initialize input device */
indevb = b->handle->indev;
LV_ASSERT_NULL(indevb->init_indev);
/* The display driver backend - has to be initialized first */
if (sel_display_backend == NULL) {
LV_LOG_ERROR(
"Failed to init indev backend: %s - display needs to be initialized",
b->name);
return -1;
}
LV_LOG_INFO("Initialized %s indev backend", b->name);
dispb = sel_display_backend->handle->display;
LV_ASSERT_NULL(dispb->display);
indevb->init_indev(dispb->display);
break;
}
}
i++;
}
return 0;
}
int driver_backends_print_supported(void)
{
int i;
backend_t *b;
i = 0;
if (backends[i] == NULL) {
LV_LOG_ERROR("Please call driver_backends_register first");
return -1;
}
b = backends[i];
fprintf(stdout, "Default backend: %s\n", b->name);
fprintf(stdout, "Supported backends: ");
while ((b = backends[i++]) != NULL) {
fprintf(stdout, "%s ", b->name);
}
fprintf(stdout, "\n");
return 0;
}
int driver_backends_is_supported(char *backend_name)
{
char c;
backend_t *b;
char *name = backend_name;
int i = 0;
while ((c = *backend_name) != '\0') {
*backend_name = toupper(c);
backend_name++;
}
while ((b = backends[i++]) != NULL) {
if (strcmp(b->name, name) == 0) {
return 1;
}
}
return 0;
}
void driver_backends_run_loop(void)
{
display_backend_t *dispb;
if (sel_display_backend != NULL && sel_display_backend->handle->display != NULL) {
dispb = sel_display_backend->handle->display;
dispb->run_loop();
} else {
LV_LOG_ERROR("No backend has been selected - initialize the backend first");
}
}
/**********************
* STATIC FUNCTIONS
**********************/

View File

@ -0,0 +1,93 @@
/**
* @file driver_backends.h
*
* provides an abstration to support multiple graphical
* driver backends at the same time whitout recompiling everything
* each time
*
* E.g: this means LVGL can be compiled with both SDL or X11
*
* - see backend.h for the details on the interface.
* - see the files in display_backends directory for examples
* on how to use each driver
*
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*/
#ifndef DRIVER_BACKENDS_H
#define DRIVER_BACKENDS_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/*
* Register all available backends
* This function must be called first before any other
* function
*/
void driver_backends_register(void);
/**
* Initialize the specified backend
* @description in case of a display driver backend
* - create the lv_display, in case of a indev driver backend
* create an input device
*
* @param backend_name the name of the backend to initialize FBDEV,DRM etc
* @return 0 on success, -1 on error
*/
int driver_backends_init_backend(char *backend_name);
/**
* @brief Checks if a backend exists and is supported
* @param backend_name the backend name to check
* @return 1 is supported, 0 not supported or invalid name
*/
int driver_backends_is_supported(char *backend_name);
/**
* @brief Print supported backends
* @description Prints a list of supported backends
*
* @return -1 if an error occurred, 0 on success
*/
int driver_backends_print_supported(void);
/**
* @brief Enter the run loop
* @description enter the run loop of the selected backend
*/
void driver_backends_run_loop(void);
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*DRIVER_BACKENDS_H*/

View File

@ -0,0 +1,5 @@
dependencies:
lvgl/lvgl:
version: 9.4.0
#espressif/esp32_p4_function_ev_board:
# version: "4.1.*"

View File

@ -0,0 +1,115 @@
/**
* @file sdl.c
*
* The backend for the SDL simulator
*
* Based on the original file from the repository
*
* - Move to a separate file
* 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*
*/
/*********************
* INCLUDES
*********************/
#include <unistd.h>
#include <stdlib.h>
#include <stdbool.h>
#include "lvgl.h"
#include "simulator_util.h"
#include "simulator_settings.h"
#include "backends.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* EXTERNAL VARIABLES
**********************/
extern simulator_settings_t settings;
/**********************
* STATIC PROTOTYPES
**********************/
static void run_loop_sdl(void);
static lv_display_t *init_sdl(void);
/**********************
* STATIC VARIABLES
**********************/
static char *backend_name = "SDL";
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Register the backend
* @param backend the backend descriptor
* @description configures the descriptor
*/
int backend_init_sdl(backend_t *backend)
{
LV_ASSERT_NULL(backend);
backend->handle->display = malloc(sizeof(display_backend_t));
LV_ASSERT_NULL(backend->handle->display);
backend->handle->display->init_display = init_sdl;
backend->handle->display->run_loop = run_loop_sdl;
backend->name = backend_name;
backend->type = BACKEND_DISPLAY;
return 0;
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Initialize the SDL display driver
*
* @return the LVGL display
*/
static lv_display_t *init_sdl(void)
{
lv_display_t *disp;
disp = lv_sdl_window_create(settings.window_width, settings.window_height);
if (disp == NULL) {
return NULL;
}
return disp;
}
/**
* The run loop of the SDL driver
*/
static void run_loop_sdl(void)
{
uint32_t idle_time;
/* Handle LVGL tasks */
while (true) {
/* Returns the time to the next timer execution */
idle_time = lv_timer_handler();
usleep(idle_time * 1000);
}
}

View File

@ -0,0 +1,53 @@
/**
* @file simulator_settings.h
*
* global simulator settings
*
* The simulator settings is a global variable defined in
* simulator_settings.c
*
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*
*/
#ifndef SIMULATOR_SETTINGS_H
#define SIMULATOR_SETTINGS_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
typedef struct {
uint32_t window_width;
uint32_t window_height;
bool maximize;
bool fullscreen;
} simulator_settings_t;
/**********************
* GLOBAL PROTOTYPES
**********************/
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*SIMULATOR_SETTINGS_H*/

View File

@ -0,0 +1,66 @@
/**
* @file simulator_util.c
*
* Utility functions
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Based on the original file from the repo
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*
*/
/*********************
* INCLUDES
*********************/
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
const char *getenv_default(const char *name, const char *default_val)
{
const char* value = getenv(name);
return value ? value : default_val;
}
void die(const char *msg, ...)
{
va_list args;
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
exit(EXIT_FAILURE);
}
/**********************
* STATIC FUNCTIONS
**********************/

View File

@ -0,0 +1,62 @@
/**
* @file simulator_util.h
*
* simulator_util.h - Header file for the utility functions
* used by the simulator
*
* Copyright (c) 2025 EDGEMTech Ltd.
*
* Author: EDGEMTech Ltd, Erik Tagirov (erik.tagirov@edgemtech.ch)
*/
#ifndef SIMULATOR_UTIL_H
#define SIMULATOR_UTIL_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#include <stdarg.h>
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* @description Wrapper around getenv(3), allowing to set a default value
* @param name The name of the environment variable
* @param dflt The default value to set if the variable is not present.
* @return default value or value of environment variable.
*/
const char *getenv_default(const char *name, const char *default_val);
/**
* @description Centralized exit point, called due to an error
* @param msg The message to display on stderr before killing the program
* @param ... Values for the format string.
*/
void die(const char *msg, ...);
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*SIMULATOR_UTIL_H*/

View File

@ -0,0 +1,137 @@
#define LV_USE_SDL 1
#include <stdio.h>
#include "esp_wifi.h"
#include "ihm.h"
#include "mqtt_client.h"
#include "backends.h"
#include <unistd.h>
#include "driver_backends.h"
#include "simulator_util.h"
#include "simulator_settings.h"
esp_mqtt_client_handle_t client;
/* contains the name of the selected backend if user
* has specified one on the command line */
static char *selected_backend;
/* Global simulator settings, defined in lv_linux_backend.c */
extern simulator_settings_t settings;
void die(const char *msg, ...)
{
va_list args;
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
exit(EXIT_FAILURE);
}
/**
* @brief Print LVGL version
*/
static void print_lvgl_version(void)
{
fprintf(stdout, "%d.%d.%d-%s\n",
LVGL_VERSION_MAJOR,
LVGL_VERSION_MINOR,
LVGL_VERSION_PATCH,
LVGL_VERSION_INFO);
}
/**
* @brief Print usage information
*/
static void print_usage(void)
{
fprintf(stdout, "\nlvglsim [-V] [-B] [-b backend_name] [-W window_width] [-H window_height]\n\n");
fprintf(stdout, "-V print LVGL version\n");
fprintf(stdout, "-B list supported backends\n");
}
/**
* @brief Configure simulator
* @description process arguments recieved by the program to select
* appropriate options
* @param argc the count of arguments in argv
* @param argv The arguments
*/
static void configure_simulator(int argc, char **argv)
{
int opt = 0;
selected_backend = NULL;
driver_backends_register();
const char *env_w = getenv("LV_SIM_WINDOW_WIDTH");
const char *env_h = getenv("LV_SIM_WINDOW_HEIGHT");
/* Default values */
settings.window_width = atoi(env_w ? env_w : "1024");
settings.window_height = atoi(env_h ? env_h : "600");
/* Parse the command-line options. */
while ((opt = getopt (argc, argv, "b:fmW:H:BVh")) != -1) {
switch (opt) {
case 'h':
print_usage();
exit(EXIT_SUCCESS);
break;
case 'V':
print_lvgl_version();
exit(EXIT_SUCCESS);
break;
case 'B':
driver_backends_print_supported();
exit(EXIT_SUCCESS);
break;
case 'b':
if (driver_backends_is_supported(optarg) == 0) {
die("error no such backend: %s\n", optarg);
}
selected_backend = strdup(optarg);
break;
case 'W':
settings.window_width = atoi(optarg);
break;
case 'H':
settings.window_height = atoi(optarg);
break;
case ':':
print_usage();
die("Option -%c requires an argument.\n", optopt);
break;
case '?':
print_usage();
die("Unknown option -%c.\n", optopt);
}
}
}
int main(int argc, char const *argv[])
{
/* code */
printf("hello\n");
init_display_ihm();
/* Initialize LVGL. */
lv_init();
configure_simulator(argc, argv);
/* Initialize the configured backend */
if (driver_backends_init_backend(selected_backend) == -1) {
die("Failed to initialize display backend");
}
lv_sdl_mouse_create();
lv_sdl_keyboard_create();
lv_sdl_mousewheel_create();
lv_sdl_mousewheel_create();
draw_ihm();
/* Enter the run loop of the selected backend */
driver_backends_run_loop();
return 0;
}

View File

@ -0,0 +1,6 @@
int bsp_display_lock(int arg){
return 1;
}
void bsp_display_unlock(){
}

View File

@ -0,0 +1,29 @@
#define BIT0 0x00000001
#define WIFI_CONNECTED_BIT BIT0
typedef enum {
WIFI_EVENT_WIFI_READY = 0, /**< WiFi ready */
WIFI_EVENT_SCAN_DONE, /**< finish scanning AP */
WIFI_EVENT_STA_START, /**< station start */
WIFI_EVENT_STA_STOP, /**< station stop */
WIFI_EVENT_STA_CONNECTED, /**< station connected to AP */
WIFI_EVENT_STA_DISCONNECTED, /**< station disconnected from AP */
WIFI_EVENT_STA_AUTHMODE_CHANGE, /**< the auth mode of AP connected by station changed */
WIFI_EVENT_STA_GOT_IP, /**< station got IP from connected AP */
WIFI_EVENT_STA_WPS_ER_SUCCESS, /**< station wps succeeds in enrollee mode */
WIFI_EVENT_STA_WPS_ER_FAILED, /**< station wps fails in enrollee mode */
WIFI_EVENT_STA_WPS_ER_TIMEOUT, /**< station wps timeout in enrollee mode */
WIFI_EVENT_STA_WPS_ER_PIN, /**< station wps pin code in enrollee mode */
WIFI_EVENT_AP_START, /**< soft-AP start */
WIFI_EVENT_AP_STOP, /**< soft-AP stop */
WIFI_EVENT_AP_STACONNECTED, /**< a station connected to soft-AP */
WIFI_EVENT_AP_STADISCONNECTED, /**< a station disconnected from soft-AP */
WIFI_EVENT_AP_PROBEREQRECVED, /**< Receive probe request packet in soft-AP interface */
WIFI_EVENT_AP_STA_GOT_IP6, /**< station or ap interface v6IP addr is preferred */
WIFI_EVENT_ETH_START, /**< ethernet start */
WIFI_EVENT_ETH_STOP, /**< ethernet stop */
WIFI_EVENT_ETH_CONNECTED, /**< ethernet phy link up */
WIFI_EVENT_ETH_DISCONNECTED, /**< ethernet phy link down */
WIFI_EVENT_ETH_GOT_IP, /**< ethernet got IP from connected AP */
WIFI_EVENT_MAX
} wifi_event_id_t;

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,9 @@
#include <stdbool.h> #include <stdbool.h>
#include "freertos/FreeRTOS.h" #include "freertos/FreeRTOS.h"
#define BIT0 0x00000001
#define WIFI_CONNECTED_BIT BIT0
typedef enum eIHMEvent_t{ typedef enum eIHMEvent_t{
IHM_EVT_WIFI_STATUS, IHM_EVT_WIFI_STATUS,
IHM_EVT_TIME_SETTED, IHM_EVT_TIME_SETTED,
@ -19,7 +22,6 @@ typedef struct IHM_EVENT
bool bNeedToFreeData; // ← Important ! bool bNeedToFreeData; // ← Important !
} xIHMEvent_t; } xIHMEvent_t;
#define WIFI_CONNECTED_BIT BIT0
typedef enum domo_events{ typedef enum domo_events{
EVT_WIFI_CONNECTED, EVT_WIFI_CONNECTED,
EVT_TIME_SETTED, EVT_TIME_SETTED,

View File

@ -1,3 +1,11 @@
IF(ESP_PLATFORM)
idf_component_register(SRCS "meteofrance.c" idf_component_register(SRCS "meteofrance.c"
INCLUDE_DIRS "include" INCLUDE_DIRS "include"
REQUIRES json esp_http_client esp-tls stateManagement) REQUIRES json esp_http_client esp-tls stateManagement eventsManager)
else()
add_library(meteofrance SHARED
meteofrance.c)
target_include_directories(meteofrance PUBLIC ./include)
target_link_libraries(meteofrance PRIVATE stateManagement FreeRTOS freertos_kernel)
endif()

View File

@ -11,8 +11,6 @@
#include "meteofrance.h" #include "meteofrance.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h" #include "esp_system.h"
#include "esp_log.h" #include "esp_log.h"

View File

@ -1,2 +1,9 @@
IF(ESP_PLATFORM)
idf_component_register(SRCS "stateManagement.c" idf_component_register(SRCS "stateManagement.c"
INCLUDE_DIRS "include") INCLUDE_DIRS "include")
else()
add_library(stateManagement STATIC
stateManagement.c
)
target_include_directories(stateManagement PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
endif()

View File

@ -1,6 +1,11 @@
#include <stdio.h> #include <stdio.h>
#include "stateManagement.h" #include "stateManagement.h"
struct state mainState={
.wifi_init=false,
.display_init=false
};
void func(void) void func(void)
{ {

View File

@ -7,7 +7,6 @@ dependencies:
require: private require: private
version: '>=1.0.0,<2.0.0' version: '>=1.0.0,<2.0.0'
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=5.0' version: '>=5.0'
source: source:
@ -18,7 +17,6 @@ dependencies:
component_hash: 327091394b9ef5c2cd395a960ab70ae64479e0a8831cbd9925e38895fad93719 component_hash: 327091394b9ef5c2cd395a960ab70ae64479e0a8831cbd9925e38895fad93719
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=4.1.0' version: '>=4.1.0'
source: source:
@ -29,18 +27,22 @@ dependencies:
component_hash: cbb76089dc2c5749f7b470e2e70aedc44c9da519e04eb9a67d4c7ec275229e53 component_hash: cbb76089dc2c5749f7b470e2e70aedc44c9da519e04eb9a67d4c7ec275229e53
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=4.1.0' version: '>=4.1.0'
source: source:
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
type: service type: service
version: 1.0.3 version: 1.0.3
espressif/bh1750:
dependencies: []
source:
path: /home/marc/rgb_lcd/components/espressif__bh1750
type: local
version: 1.0.3
espressif/cmake_utilities: espressif/cmake_utilities:
component_hash: 351350613ceafba240b761b4ea991e0f231ac7a9f59a9ee901f751bddc0bb18f component_hash: 351350613ceafba240b761b4ea991e0f231ac7a9f59a9ee901f751bddc0bb18f
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=4.1' version: '>=4.1'
source: source:
@ -48,20 +50,19 @@ dependencies:
type: service type: service
version: 0.5.3 version: 0.5.3
espressif/eppp_link: espressif/eppp_link:
component_hash: c2fd9c57ac14a68a62c9d9cdeec39a2b265abc16779196ce2c9f5000c9a4dd8b component_hash: 41f6519edda527ec6a0553c872ebaf8fc6d3812523c9d4c8d1660ad21c720abe
dependencies: dependencies:
- name: espressif/esp_serial_slave_link - name: espressif/esp_serial_slave_link
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
require: private require: private
version: ^1.1.0 version: ^1.1.0
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=5.2' version: '>=5.2'
source: source:
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
type: service type: service
version: 0.2.0 version: 1.1.3
espressif/esp32_p4_function_ev_board: espressif/esp32_p4_function_ev_board:
component_hash: 1e0436b3d220275d6b7930330b1a9b828fedf0dbc81006531e592b059842641e component_hash: 1e0436b3d220275d6b7930330b1a9b828fedf0dbc81006531e592b059842641e
dependencies: dependencies:
@ -102,7 +103,6 @@ dependencies:
component_hash: 014948481bda426cd46714f297fe1891711246c62bea288863a8cc8cf13ef1f0 component_hash: 014948481bda426cd46714f297fe1891711246c62bea288863a8cc8cf13ef1f0
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=4.0' version: '>=4.0'
source: source:
@ -110,7 +110,7 @@ dependencies:
type: service type: service
version: 1.2.0 version: 1.2.0
espressif/esp_hosted: espressif/esp_hosted:
component_hash: fba52659b7d0256b0f6bd497ebce2492bf93506d797935a292f0fd864e364e47 component_hash: a19249042b9987097f89e682ec05d7fad1bd2186e7b758363a2ddb5787ef7d98
dependencies: dependencies:
- name: idf - name: idf
require: private require: private
@ -118,9 +118,9 @@ dependencies:
source: source:
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
type: service type: service
version: 2.0.1 version: 2.6.5
espressif/esp_lcd_ek79007: espressif/esp_lcd_ek79007:
component_hash: 07c1afab7e9fd4dd2fd06ff9245e65327c5bbd5485efec199496e19a9304d47b component_hash: 8005700b7f10c7136b6e2a3f19a48f972aa1d13ed107ed298574e8d24d17ea83
dependencies: dependencies:
- name: espressif/cmake_utilities - name: espressif/cmake_utilities
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
@ -134,9 +134,9 @@ dependencies:
type: service type: service
targets: targets:
- esp32p4 - esp32p4
version: 1.0.2 version: 1.0.4
espressif/esp_lcd_ili9881c: espressif/esp_lcd_ili9881c:
component_hash: f4f374226b62baf13f735864e8fae58e17c537df34d598e059f6caad4761ef65 component_hash: eb9ba0484d1d14171b69e5d192716fb1cdd6ef068aa4014dc3202486e124498e
dependencies: dependencies:
- name: idf - name: idf
require: private require: private
@ -146,12 +146,11 @@ dependencies:
type: service type: service
targets: targets:
- esp32p4 - esp32p4
version: 1.0.1 version: 1.0.2
espressif/esp_lcd_touch: espressif/esp_lcd_touch:
component_hash: 779b4ba2464a3ae85681e4b860caa5fdc35801458c23f3039ee761bae7f442a4 component_hash: 779b4ba2464a3ae85681e4b860caa5fdc35801458c23f3039ee761bae7f442a4
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=4.4.2' version: '>=4.4.2'
source: source:
@ -187,18 +186,17 @@ dependencies:
type: service type: service
version: 2.6.0 version: 2.6.0
espressif/esp_serial_slave_link: espressif/esp_serial_slave_link:
component_hash: 8c534b7d4986ca0e4c41db71f559492b795ab862f1d15359d7993034696b7bcc component_hash: ac1776806de0a6e371c84e87898bb983e19ce62aa7f1e2e5c4a3b0234a575d2c
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=5.0' version: '>=5.0'
source: source:
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
type: service type: service
version: 1.1.0 version: 1.1.2
espressif/esp_wifi_remote: espressif/esp_wifi_remote:
component_hash: 6448c379c1dceef7f0dedd30635006118e8b768be884f3804d4a94930556e08c component_hash: 20393ed850b2cb40cadcf369b4c852ef5af49e2d89e58774d968c57b0c436fd3
dependencies: dependencies:
- name: espressif/eppp_link - name: espressif/eppp_link
registry_url: https://components.espressif.com registry_url: https://components.espressif.com
@ -216,13 +214,13 @@ dependencies:
source: source:
registry_url: https://components.espressif.com/ registry_url: https://components.espressif.com/
type: service type: service
version: 0.9.2 version: 0.14.4
idf: idf:
source: source:
type: idf type: idf
version: 5.5.0 version: 5.5.1
joltwallet/littlefs: joltwallet/littlefs:
component_hash: e1dbe782be5aa58e879fe9f22bee60e5ff68acbfe3793d92a2e730c27374c787 component_hash: 1808d73e99168f6f3c26dd31799a248484762b3a320ec4962dec11a145f4277f
dependencies: dependencies:
- name: idf - name: idf
require: private require: private
@ -230,28 +228,28 @@ dependencies:
source: source:
registry_url: https://components.espressif.com/ registry_url: https://components.espressif.com/
type: service type: service
version: 1.19.2 version: 1.20.3
lvgl/lvgl: lvgl/lvgl:
component_hash: 2409fdc84e9766d2a18afd84b051aef3f838348136cdb1c10ac2e8bcdb012bf6 component_hash: 17e68bfd21f0edf4c3ee838e2273da840bf3930e5dbc3bfa6c1190c3aed41f9f
dependencies: [] dependencies: []
source: source:
registry_url: https://components.espressif.com/ registry_url: https://components.espressif.com/
type: service type: service
version: 9.2.0 version: 9.4.0
suda-morris/am2302_rmt: suda-morris/am2302_rmt:
component_hash: b46dd8c20dee72654e8ea4a43b16e8a93e984a6c10426392a4b8486fed50ca93 component_hash: 890df8ebfec652eb9f8e1d612959f00a951dbe9241335e5e335fc7fb1468ea32
dependencies: dependencies:
- name: idf - name: idf
registry_url: https://components.espressif.com
require: private require: private
version: '>=5.0' version: '>=5.1'
source: source:
registry_url: https://components.espressif.com/ registry_url: https://components.espressif.com/
type: service type: service
version: 1.0.0 version: 1.1.0
direct_dependencies: direct_dependencies:
- chmorgan/esp-audio-player - chmorgan/esp-audio-player
- chmorgan/esp-file-iterator - chmorgan/esp-file-iterator
- espressif/bh1750
- espressif/esp32_p4_function_ev_board - espressif/esp32_p4_function_ev_board
- espressif/esp_lcd_touch_gt911 - espressif/esp_lcd_touch_gt911
- espressif/esp_lvgl_port - espressif/esp_lvgl_port
@ -260,6 +258,6 @@ direct_dependencies:
- joltwallet/littlefs - joltwallet/littlefs
- lvgl/lvgl - lvgl/lvgl
- suda-morris/am2302_rmt - suda-morris/am2302_rmt
manifest_hash: fc9086d177c610d5a3ed802c7e759df686413041315e1f9bed4bca07bf42740f manifest_hash: de62997a910937d24e39c015fd99bd1079849ba3ce9ed3906a52bae461cf5834
target: esp32p4 target: esp32p4
version: 2.0.0 version: 2.0.0

View File

@ -1,6 +0,0 @@
target remote :3333
set remote hardware-watchpoint-limit 2
mon reset halt
maintenance flush register-cache
thb app_main
c

4
kconfigs_projbuild.in Normal file
View File

@ -0,0 +1,4 @@
source "/home/marc/esp/v5.5.1/esp-idf/components/esp_app_format/Kconfig.projbuild"
source "/home/marc/esp/v5.5.1/esp-idf/components/esp_rom/Kconfig.projbuild"
source "/home/marc/esp/v5.5.1/esp-idf/components/partition_table/Kconfig.projbuild"
source "/home/marc/rgb_lcd/components/protocol_examples_common/Kconfig.projbuild"

View File

@ -3,7 +3,7 @@ set(EXTRA_COMPONENT_DIRS ../components)
set(comps heap nvs_flash meteofrance esp_netif image_downloader fatfs protocol_examples_common mqtt domotic_display ) set(comps heap nvs_flash meteofrance esp_netif image_downloader fatfs protocol_examples_common mqtt domotic_display )
if(${IDF_TARGET} STREQUAL "esp32p4") if(${IDF_TARGET} STREQUAL "esp32p4")
list(APPEND comps sdmmc vfs littlefs wifi_logger app_update esp_https_ota espcoredump esp_http_server esp_wifi) list(APPEND comps bsp_extra esp32_p4_function_ev_board sdmmc vfs littlefs wifi_logger app_update esp_https_ota espcoredump esp_http_server esp_wifi )
endif() endif()
idf_component_register(SRC_DIRS . idf_component_register(SRC_DIRS .
INCLUDE_DIRS "." INCLUDE_DIRS "."

View File

@ -26,19 +26,19 @@ void splitIt(char *payload, unsigned int length, float *datas)
char *saveptr1; char *saveptr1;
token = strtok_r(payload, sep, &saveptr1); token = strtok_r(payload, sep, &saveptr1);
datas[0] = atoff(token); datas[0] = atof(token);
ESP_LOGE(TAG,"%f",datas[0]); ESP_LOGE(TAG,"%f",datas[0]);
token = strtok_r(NULL, sep, &saveptr1); token = strtok_r(NULL, sep, &saveptr1);
datas[1] = atoff(token); datas[1] = atof(token);
ESP_LOGE(TAG,"%f",datas[1]); ESP_LOGE(TAG,"%f",datas[1]);
token = strtok_r(NULL, sep, &saveptr1); token = strtok_r(NULL, sep, &saveptr1);
datas[2] = atoff(token); datas[2] = atof(token);
ESP_LOGE(TAG,"%f",datas[2]); ESP_LOGE(TAG,"%f",datas[2]);
token = strtok_r(NULL, sep, &saveptr1); token = strtok_r(NULL, sep, &saveptr1);
datas[3] = atoff(token); datas[3] = atof(token);
ESP_LOGE(TAG,"%f",datas[3]); ESP_LOGE(TAG,"%f",datas[3]);
} }

View File

@ -1,18 +1,18 @@
dependencies: dependencies:
espressif/bh1750: "^1.0.3" espressif/bh1750: ^1.0.3
espressif/esp_wifi_remote: espressif/esp_wifi_remote:
rules: rules:
- if: target in ["esp32p4"] - if: target in ["esp32p4"]
version: "0.14.4" version: 0.14.4
suda-morris/am2302_rmt: suda-morris/am2302_rmt:
version: "^1.0.0" version: ^1.0.0
rules: rules:
- if: target in ["esp32p4"] - if: target in ["esp32p4"]
joltwallet/littlefs: joltwallet/littlefs:
rules: rules:
- if: target in ["esp32p4"] - if: target in ["esp32p4"]
version: "^1.14.8" version: ^1.14.8
esp_lcd_touch_gt911: esp_lcd_touch_gt911:
rules: rules:
- if: target in ["esp32p4"] - if: target in ["esp32p4"]
@ -21,8 +21,9 @@ dependencies:
- if: target in ["esp32p4"] - if: target in ["esp32p4"]
version: 2.6.0 version: 2.6.0
idf: idf:
version: '5.5.*' version: 5.5.*
lvgl/lvgl: lvgl/lvgl:
version: 9.2.0 version: 9.4.0
#espressif/esp32_p4_function_ev_board: #espressif/esp32_p4_function_ev_board:
# version: "4.1.*" # version: "4.1.*"
espressif/esp32_p4_function_ev_board: '*'

51
main/images/mqtt_ko.c Normal file
View File

@ -0,0 +1,51 @@
#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,
};

116
main/images/mqtt_ok.c Normal file
View File

@ -0,0 +1,116 @@
#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,
};

49
main/images/wifi_ko.c Normal file
View File

@ -0,0 +1,49 @@
#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,
};

48
main/images/wifi_ok.c Normal file
View File

@ -0,0 +1,48 @@
#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,
};

View File

@ -82,6 +82,29 @@ extern lv_subject_t tempExtSubj;
extern lv_subject_t hauteurCuveSubj; extern lv_subject_t hauteurCuveSubj;
extern lv_subject_t hauteurCuveEvolSubj; extern lv_subject_t hauteurCuveEvolSubj;
void init_display(){
lvgl_port_cfg_t lvgl_cfg = ESP_LVGL_PORT_INIT_CONFIG();
lvgl_cfg.task_priority=15;
bsp_display_cfg_t cfg = {
.lvgl_port_cfg = lvgl_cfg,
.buffer_size = 1024*600,//BSP_LCD_DRAW_BUFF_SIZE,
.double_buffer = 1,
.flags = {
.buff_dma = false,
.buff_spiram = false,
.sw_rotate = true
}
};
ESP_LOGE(TAG,"On demarre le display");
lv_display_t *dsp = bsp_display_start_with_config(&cfg);
//bsp_display_rotate(dsp,LV_DISP_ROTATION_180);
bsp_display_backlight_on();
bsp_display_brightness_set(50);
mainState.display_init=true;
}
/** /**
* @brief i2c master initialization * @brief i2c master initialization
*/ */
@ -881,7 +904,7 @@ void app_main(void)
startEvtManager(); startEvtManager();
//init_display(); init_display();
const esp_timer_create_args_t periodic_timer_args = { const esp_timer_create_args_t periodic_timer_args = {
.callback = &presence_timer_callback, .callback = &presence_timer_callback,
/* name is optional, but may help identify the timer when debugging */ /* name is optional, but may help identify the timer when debugging */

3135
sdkconfig

File diff suppressed because it is too large Load Diff

View File

@ -1,18 +1,15 @@
# This file was generated using idf.py save-defconfig. It can be edited manually. # This file was generated using idf.py save-defconfig. It can be edited manually.
# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration # Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Minimal Configuration
# #
CONFIG_IDF_TARGET="esp32p4" CONFIG_IDF_TARGET="esp32p4"
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_EXAMPLE_ENABLE_CAM_SENSOR_PIC_VFLIP=n CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_EXAMPLE_ENABLE_CAM_SENSOR_PIC_HFLIP=n
CONFIG_COMPILER_OPTIMIZATION_PERF=y
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
CONFIG_SPIRAM=y CONFIG_SPIRAM=y
CONFIG_SPIRAM_SPEED_200M=y CONFIG_SPIRAM_SPEED_200M=y
CONFIG_SPIRAM_XIP_FROM_PSRAM=y CONFIG_SPIRAM_XIP_FROM_PSRAM=y
CONFIG_SPIRAM_USE_CAPS_ALLOC=y
CONFIG_CACHE_L2_CACHE_256KB=y CONFIG_CACHE_L2_CACHE_256KB=y
CONFIG_CACHE_L2_CACHE_LINE_128B=y CONFIG_CACHE_L2_CACHE_LINE_128B=y
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
@ -22,58 +19,22 @@ CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=n CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM=n
CONFIG_VFS_MAX_COUNT=15 CONFIG_VFS_MAX_COUNT=15
CONFIG_ESP_BROOKESIA_LOG_STYLE_STD=y
CONFIG_ESP_BROOKESIA_MEMORY_USE_CUSTOM=y
CONFIG_BSP_LCD_DPI_BUFFER_NUMS=2 CONFIG_BSP_LCD_DPI_BUFFER_NUMS=2
CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y
CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y
CONFIG_CAMERA_SC2336=y CONFIG_BSP_LCD_COLOR_FORMAT_RGB888=y
CONFIG_CAMERA_SC2336_MIPI_RAW10_1280x720_60FPS=y
CONFIG_CAMERA_SC2336_CUSTOMIZED_IPA_JSON_CONFIGURATION_FILE=y
CONFIG_CAMERA_SC2336_CUSTOMIZED_IPA_JSON_CONFIGURATION_FILE_PATH="components/apps/camera/sc2336_custom.json"
CONFIG_ESP_VIDEO_ENABLE_DVP_VIDEO_DEVICE=n
CONFIG_ESP_VIDEO_ENABLE_ISP_PIPELINE_CONTROLLER=y
CONFIG_LV_COLOR_SCREEN_TRANSP=y
CONFIG_LV_MEM_CUSTOM=y
CONFIG_LV_MEM_CUSTOM_INCLUDE="esp_heap_caps.h"
CONFIG_LV_MEMCPY_MEMSET_STD=y
CONFIG_LV_CIRCLE_CACHE_SIZE=10
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_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_MALLOC=y
CONFIG_LV_USE_CLIB_STRING=y
CONFIG_LV_USE_CLIB_SPRINTF=y CONFIG_LV_USE_CLIB_SPRINTF=y
CONFIG_LV_BUILD_EXAMPLES=n CONFIG_LV_DEF_REFR_PERIOD=10
CONFIG_LV_USE_DRAW_SW_COMPLEX_GRADIENTS=y
#Necessaire pour lire les fichiers depuis littlefs CONFIG_LV_USE_LOG=y
CONFIG_LV_LOG_PRINTF=y
CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y
CONFIG_LV_USE_PRIVATE_API=y
CONFIG_LV_FONT_MONTSERRAT_40=y
CONFIG_LV_USE_FS_STDIO=y CONFIG_LV_USE_FS_STDIO=y
CONFIG_LV_FS_STDIO_LETTER=65 CONFIG_LV_FS_STDIO_LETTER=65
CONFIG_LV_FS_STDIO_PATH=""
CONFIG_LV_FS_STDIO_CACHE_SIZE=0
# Necessaire pour lire le png
CONFIG_LV_USE_LODEPNG=y CONFIG_LV_USE_LODEPNG=y
CONFIG_LV_BUILD_EXAMPLES=n
CONFIG_LV_FONT_MONTSERRAT_40=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y
# Important pour la fluidité des animations
CONFIG_LV_DEF_REFR_PERIOD=10
#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
#Specifique P4
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y

View File

@ -27,5 +27,21 @@ CONFIG_LV_USE_OBSERVER=n
CONFIG_LV_USE_SYSMON=n CONFIG_LV_USE_SYSMON=n
CONFIG_LV_USE_PERF_MONITOR=n CONFIG_LV_USE_PERF_MONITOR=n
#Permet d'afficher des dégradés corrects
CONFIG_BSP_LCD_COLOR_FORMAT_RGB888=y
#on active les logs
CONFIG_LV_USE_LOG=y
CONFIG_LV_LOG_LEVEL_WARN=y
CONFIG_LV_LOG_LEVEL=2
CONFIG_LV_LOG_PRINTF=y
CONFIG_LV_LOG_USE_TIMESTAMP=y
CONFIG_LV_LOG_USE_FILE_LINE=y
#Specifique P4
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
CONFIG_SPIRAM_USE_MALLOC=y
CONFIG_LV_USE_OBSERVER=y
# CONFIG_LV_BUILD_EXAMPLES is not set # CONFIG_LV_BUILD_EXAMPLES is not set

File diff suppressed because it is too large Load Diff