Skip to content

Commit 6f426e5

Browse files
committed
Merge branch 'feat/test_qoi' into 'master'
feat: update asset manage component and image decode Closes AEG-1769, AEG-1787, AEG-1812 See merge request ae_group/esp-iot-solution!1060
2 parents aff99b9 + 7d13f85 commit 6f426e5

File tree

116 files changed

+5914
-1204
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+5914
-1204
lines changed

.github/workflows/upload_component.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ jobs:
4545
components/display/lcd/esp_lcd_usb_display;
4646
components/display/lcd_touch/esp_lcd_touch_spd2010;
4747
components/display/lcd_touch/esp_lcd_touch_st7123;
48-
components/display/tools/esp_lv_spng;
48+
components/display/tools/esp_lv_decoder;
49+
components/display/tools/esp_lv_fs;
4950
components/display/tools/esp_mmap_assets;
5051
components/elf_loader;
5152
components/keyboard_button;

.gitlab/ci/build.yml

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
- "**/build*/bootloader/*.bin"
2929
- "**/build*/bootloader/*.elf"
3030
- "**/build*/partition_table/*.bin"
31-
- "**/build*/mmap_build/*.bin"
31+
- "**/build*/mmap_build/**/*.bin"
3232
- "**/build*/**/*.bin"
3333
- size_info.txt
3434
expire_in: 1 week
@@ -517,17 +517,6 @@ build_example_lvgl_freetype:
517517
EXAMPLE_TARGET: esp32s3
518518
EXAMPLE_DIR: examples/hmi/lvgl_freetype
519519

520-
build_example_lvgl_spng:
521-
extends:
522-
- .build_examples_template
523-
- .rules:build:example_lvgl_spng
524-
parallel:
525-
matrix:
526-
- IMAGE: espressif/idf:release-v5.1
527-
variables:
528-
EXAMPLE_TARGET: esp32c3
529-
EXAMPLE_DIR: examples/hmi/lvgl_spng
530-
531520
build_example_motor_bldc_fan_rainmaker:
532521
extends:
533522
- .build_examples_template
@@ -586,6 +575,16 @@ build_example_ota_simple_ota_example:
586575
EXAMPLE_DIR: examples/ota/simple_ota_example
587576
WARNING_STR: "1/2 app partitions are too small"
588577

578+
build_example_perf_benchmark:
579+
extends:
580+
- .build_examples_template
581+
- .rules:build:example_perf_benchmark
582+
parallel:
583+
matrix:
584+
- IMAGE: espressif/idf:release-v5.3
585+
variables:
586+
EXAMPLE_DIR: examples/hmi/perf_benchmark
587+
589588
build_example_screen:
590589
extends:
591590
- .build_examples_template
@@ -1047,6 +1046,28 @@ build_components_display_lcd_touch_esp_lcd_touch_st7123_test_apps:
10471046
variables:
10481047
EXAMPLE_DIR: components/display/lcd_touch/esp_lcd_touch_st7123/test_apps
10491048

1049+
build_components_display_tools_esp_lv_decoder_test_apps:
1050+
extends:
1051+
- .build_examples_template
1052+
- .rules:build:components_display_tools_esp_lv_decoder_test_apps
1053+
parallel:
1054+
matrix:
1055+
- IMAGE: espressif/idf:release-v5.1
1056+
- IMAGE: espressif/idf:release-v5.0
1057+
variables:
1058+
EXAMPLE_DIR: components/display/tools/esp_lv_decoder/test_apps
1059+
1060+
build_components_display_tools_esp_lv_fs_test_apps:
1061+
extends:
1062+
- .build_examples_template
1063+
- .rules:build:components_display_tools_esp_lv_fs_test_apps
1064+
parallel:
1065+
matrix:
1066+
- IMAGE: espressif/idf:release-v5.1
1067+
- IMAGE: espressif/idf:release-v5.0
1068+
variables:
1069+
EXAMPLE_DIR: components/display/tools/esp_lv_fs/test_apps
1070+
10501071
build_components_display_tools_esp_mmap_assets_test_apps:
10511072
extends:
10521073
- .build_examples_template

.gitlab/ci/rules.yml

Lines changed: 51 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,12 @@
133133
.patterns-components_display_screen: &patterns-components_display_screen
134134
- "components/display/screen/**/*"
135135

136-
.patterns-components_display_tools_esp_lv_spng: &patterns-components_display_tools_esp_lv_spng
137-
- "components/display/tools/esp_lv_spng/**/*"
136+
.patterns-components_display_tools_esp_lv_decoder: &patterns-components_display_tools_esp_lv_decoder
137+
- "components/display/tools/esp_lv_decoder/**/*"
138+
- "components/tools/cmake_utilities/package_manager.cmake"
139+
140+
.patterns-components_display_tools_esp_lv_fs: &patterns-components_display_tools_esp_lv_fs
141+
- "components/display/tools/esp_lv_fs/**/*"
138142
- "components/tools/cmake_utilities/package_manager.cmake"
139143

140144
.patterns-components_display_tools_esp_mmap_assets: &patterns-components_display_tools_esp_mmap_assets
@@ -328,7 +332,8 @@
328332
- "components/button/include/iot_button.h"
329333
- "components/display/screen/interface_driver/scr_interface_driver.h"
330334
- "components/display/screen/screen_driver.h"
331-
- "components/display/tools/esp_lv_spng/include/esp_lv_spng.h"
335+
- "components/display/tools/esp_lv_decoder/include/esp_lv_decoder.h"
336+
- "components/display/tools/esp_lv_fs/include/esp_lv_fs.h"
332337
- "components/display/tools/esp_mmap_assets/include/esp_mmap_assets.h"
333338
- "components/display/touch_panel/touch_panel.h"
334339
- "components/i2c_bus/include/i2c_bus.h"
@@ -460,9 +465,6 @@
460465
.patterns-example_lvgl_freetype: &patterns-example_lvgl_freetype
461466
- "examples/hmi/lvgl_freetype/**/*"
462467

463-
.patterns-example_lvgl_spng: &patterns-example_lvgl_spng
464-
- "examples/hmi/lvgl_spng/**/*"
465-
466468
.patterns-example_motor_bldc_fan_rainmaker: &patterns-example_motor_bldc_fan_rainmaker
467469
- "examples/motor/bldc_fan_rainmaker/**/*"
468470

@@ -481,6 +483,9 @@
481483
.patterns-example_ota_simple_ota_example: &patterns-example_ota_simple_ota_example
482484
- "examples/ota/simple_ota_example/**/*"
483485

486+
.patterns-example_perf_benchmark: &patterns-example_perf_benchmark
487+
- "examples/hmi/perf_benchmark/**/*"
488+
484489
.patterns-example_screen: &patterns-example_screen
485490
- "examples/screen/**/*"
486491

@@ -994,20 +999,6 @@
994999
- <<: *if-dev-push
9951000
changes: *patterns-components_display_tools_esp_mmap_assets
9961001

997-
.rules:build:example_lvgl_spng:
998-
rules:
999-
- <<: *if-protected
1000-
- <<: *if-label-build
1001-
- <<: *if-trigger-job
1002-
- <<: *if-dev-push
1003-
changes: *patterns-build_system
1004-
- <<: *if-dev-push
1005-
changes: *patterns-example_lvgl_spng
1006-
- <<: *if-dev-push
1007-
changes: *patterns-components_display_tools_esp_mmap_assets
1008-
- <<: *if-dev-push
1009-
changes: *patterns-components_display_tools_esp_lv_spng
1010-
10111002
.rules:build:example_motor_bldc_fan_rainmaker:
10121003
rules:
10131004
- <<: *if-protected
@@ -1082,6 +1073,22 @@
10821073
- <<: *if-dev-push
10831074
changes: *patterns-example_ota_simple_ota_example
10841075

1076+
.rules:build:example_perf_benchmark:
1077+
rules:
1078+
- <<: *if-protected
1079+
- <<: *if-label-build
1080+
- <<: *if-trigger-job
1081+
- <<: *if-dev-push
1082+
changes: *patterns-build_system
1083+
- <<: *if-dev-push
1084+
changes: *patterns-example_perf_benchmark
1085+
- <<: *if-dev-push
1086+
changes: *patterns-components_display_tools_esp_mmap_assets
1087+
- <<: *if-dev-push
1088+
changes: *patterns-components_display_tools_esp_lv_decoder
1089+
- <<: *if-dev-push
1090+
changes: *patterns-components_display_tools_esp_lv_fs
1091+
10851092
.rules:build:example_screen:
10861093
rules:
10871094
- <<: *if-protected
@@ -1737,6 +1744,30 @@
17371744
- <<: *if-dev-push
17381745
changes: *patterns-components_display_screen
17391746

1747+
.rules:build:components_display_tools_esp_lv_decoder_test_apps:
1748+
rules:
1749+
- <<: *if-protected
1750+
- <<: *if-label-build
1751+
- <<: *if-label-target_test
1752+
- <<: *if-trigger-job
1753+
- <<: *if-dev-push
1754+
changes: *patterns-build_system
1755+
- <<: *if-dev-push
1756+
changes: *patterns-components_display_tools_esp_lv_decoder
1757+
1758+
.rules:build:components_display_tools_esp_lv_fs_test_apps:
1759+
rules:
1760+
- <<: *if-protected
1761+
- <<: *if-label-build
1762+
- <<: *if-label-target_test
1763+
- <<: *if-trigger-job
1764+
- <<: *if-dev-push
1765+
changes: *patterns-build_system
1766+
- <<: *if-dev-push
1767+
changes: *patterns-components_display_tools_esp_lv_fs
1768+
- <<: *if-dev-push
1769+
changes: *patterns-components_display_tools_esp_mmap_assets
1770+
17401771
.rules:build:components_display_tools_esp_mmap_assets_test_apps:
17411772
rules:
17421773
- <<: *if-protected

.gitlab/ci/target_test.yml

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,62 @@ components_test_esp_lcd_st77903_rgb:
431431
TEST_FOLDER: components/display/lcd/esp_lcd_st77903_rgb
432432
TEST_ENV: esp32_s3_lcd_ev_board
433433

434+
components_test_esp_lv_decoder:
435+
extends:
436+
- .pytest_template
437+
- .rules:build:components_display_tools_esp_lv_decoder_test_apps
438+
needs:
439+
- job: "build_components_display_tools_esp_lv_decoder_test_apps"
440+
artifacts: true
441+
optional: false
442+
parallel:
443+
matrix:
444+
- IDF_TARGET: esp32
445+
IDF_VERSION: "5.1"
446+
ENV_TAG: generic
447+
- IDF_TARGET: esp32c3
448+
IDF_VERSION: "5.1"
449+
ENV_TAG: generic
450+
- IDF_TARGET: esp32s3
451+
IDF_VERSION: "5.1"
452+
ENV_TAG: generic
453+
tags:
454+
- ${IDF_TARGET}
455+
- ${ENV_TAG}
456+
image: $DOCKER_TARGET_TEST_v5_1_ENV_IMAGE
457+
variables:
458+
TEST_TARGET: ${IDF_TARGET}
459+
TEST_FOLDER: components/display/tools/esp_lv_decoder
460+
TEST_ENV: ${ENV_TAG}
461+
462+
components_test_esp_lv_fs:
463+
extends:
464+
- .pytest_template
465+
- .rules:build:components_display_tools_esp_lv_fs_test_apps
466+
needs:
467+
- job: "build_components_display_tools_esp_lv_fs_test_apps"
468+
artifacts: true
469+
optional: false
470+
parallel:
471+
matrix:
472+
- IDF_TARGET: esp32
473+
IDF_VERSION: "5.0"
474+
ENV_TAG: generic
475+
- IDF_TARGET: esp32c3
476+
IDF_VERSION: "5.1"
477+
ENV_TAG: generic
478+
- IDF_TARGET: esp32s3
479+
IDF_VERSION: "5.1"
480+
ENV_TAG: generic
481+
tags:
482+
- ${IDF_TARGET}
483+
- ${ENV_TAG}
484+
image: $DOCKER_TARGET_TEST_v5_1_ENV_IMAGE
485+
variables:
486+
TEST_TARGET: ${IDF_TARGET}
487+
TEST_FOLDER: components/display/tools/esp_lv_fs
488+
TEST_ENV: ${ENV_TAG}
489+
434490
components_test_esp_mmap_assets:
435491
extends:
436492
- .pytest_template
@@ -441,12 +497,15 @@ components_test_esp_mmap_assets:
441497
optional: false
442498
parallel:
443499
matrix:
444-
- IDF_TARGET: esp32s3
500+
- IDF_TARGET: esp32
445501
IDF_VERSION: "5.1"
446-
ENV_TAG: "esp32_s3_lcd_ev_board"
502+
ENV_TAG: generic
503+
- IDF_TARGET: esp32c3
504+
IDF_VERSION: "5.1"
505+
ENV_TAG: generic
447506
- IDF_TARGET: esp32s3
448-
IDF_VERSION: "5.0"
449-
ENV_TAG: "esp32_s3_lcd_ev_board"
507+
IDF_VERSION: "5.1"
508+
ENV_TAG: generic
450509
tags:
451510
- ${IDF_TARGET}
452511
- ${ENV_TAG}
@@ -681,6 +740,43 @@ components_test_ntc_driver:
681740
TEST_FOLDER: components/sensors/ntc_driver
682741
TEST_ENV: ${ENV_TAG}
683742

743+
example_test_perf_benchmark:
744+
extends:
745+
- .pytest_template
746+
- .rules:build:example_perf_benchmark
747+
needs:
748+
- job: "build_example_perf_benchmark"
749+
artifacts: true
750+
optional: false
751+
parallel:
752+
matrix:
753+
- IDF_TARGET: esp32
754+
IDF_VERSION: "5.3"
755+
ENV_TAG: generic
756+
- IDF_TARGET: esp32c3
757+
IDF_VERSION: "5.3"
758+
ENV_TAG: generic
759+
- IDF_TARGET: esp32s3
760+
IDF_VERSION: "5.3"
761+
ENV_TAG: generic
762+
tags:
763+
- ${IDF_TARGET}
764+
- ${ENV_TAG}
765+
image: $DOCKER_TARGET_TEST_v5_1_ENV_IMAGE
766+
variables:
767+
TEST_TARGET: ${IDF_TARGET}
768+
TEST_FOLDER: examples/hmi/perf_benchmark
769+
TEST_ENV: ${ENV_TAG}
770+
artifacts:
771+
when: always
772+
paths:
773+
- XUNIT_RESULT.xml
774+
- "**/**/**/dut.log"
775+
- pytest_embedded_log/
776+
reports:
777+
junit: XUNIT_RESULT.xml
778+
expire_in: 4 days
779+
684780
tools_test_cmake_utilities:
685781
extends:
686782
- .pytest_template

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ The registered components in ESP-IoT-Solution are listed below:
8181
| [esp_lcd_touch_spd2010](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010/badge.svg)](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010) |
8282
| [esp_lcd_touch_st7123](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123/badge.svg)](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123) |
8383
| [keyboard_button](https://components.espressif.com/components/espressif/keyboard_button) | [![Component Registry](https://components.espressif.com/components/espressif/keyboard_button/badge.svg)](https://components.espressif.com/components/espressif/keyboard_button) |
84-
| [esp_lv_spng](https://components.espressif.com/components/espressif/esp_lv_spng) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_spng/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_spng) |
84+
| [esp_lv_decoder](https://components.espressif.com/components/espressif/esp_lv_decoder) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_decoder/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_decoder) |
85+
| [esp_lv_fs](https://components.espressif.com/components/espressif/esp_lv_fs) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_fs/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_fs) |
8586
| [esp_mmap_assets](https://components.espressif.com/components/espressif/esp_mmap_assets) | [![Component Registry](https://components.espressif.com/components/espressif/esp_mmap_assets/badge.svg)](https://components.espressif.com/components/espressif/esp_mmap_assets) |
8687
| [esp_msc_ota](https://components.espressif.com/components/espressif/esp_msc_ota) | [![Component Registry](https://components.espressif.com/components/espressif/esp_msc_ota/badge.svg)](https://components.espressif.com/components/espressif/esp_msc_ota) |
8788
| [esp_simplefoc](https://components.espressif.com/components/espressif/esp_simplefoc) | [![Component Registry](https://components.espressif.com/components/espressif/esp_simplefoc/badge.svg)](https://components.espressif.com/components/espressif/esp_simplefoc) |

README_CN.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ ESP-IoT-Solution 中注册的组件如下:
8181
| [esp_lcd_touch_spd2010](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010/badge.svg)](https://components.espressif.com/components/espressif/esp_lcd_touch_spd2010) |
8282
| [esp_lcd_touch_st7123](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123/badge.svg)](https://components.espressif.com/components/espressif/esp_lcd_touch_st7123) |
8383
| [keyboard_button](https://components.espressif.com/components/espressif/keyboard_button) | [![Component Registry](https://components.espressif.com/components/espressif/keyboard_button/badge.svg)](https://components.espressif.com/components/espressif/keyboard_button) |
84-
| [esp_lv_spng](https://components.espressif.com/components/espressif/esp_lv_spng) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_spng/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_spng) |
84+
| [esp_lv_decoder](https://components.espressif.com/components/espressif/esp_lv_decoder) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_decoder/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_decoder) |
85+
| [esp_lv_fs](https://components.espressif.com/components/espressif/esp_lv_fs) | [![Component Registry](https://components.espressif.com/components/espressif/esp_lv_fs/badge.svg)](https://components.espressif.com/components/espressif/esp_lv_fs) |
8586
| [esp_mmap_assets](https://components.espressif.com/components/espressif/esp_mmap_assets) | [![Component Registry](https://components.espressif.com/components/espressif/esp_mmap_assets/badge.svg)](https://components.espressif.com/components/espressif/esp_mmap_assets) |
8687
| [esp_msc_ota](https://components.espressif.com/components/espressif/esp_msc_ota) | [![Component Registry](https://components.espressif.com/components/espressif/esp_msc_ota/badge.svg)](https://components.espressif.com/components/espressif/esp_msc_ota) |
8788
| [esp_simplefoc](https://components.espressif.com/components/espressif/esp_simplefoc) | [![Component Registry](https://components.espressif.com/components/espressif/esp_simplefoc/badge.svg)](https://components.espressif.com/components/espressif/esp_simplefoc) |

components/.build-rules.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ components/display/lcd_touch/esp_lcd_touch_st7123/test_apps:
146146
enable:
147147
- if: INCLUDE_DEFAULT == 1
148148

149+
components/display/tools/esp_lv_decoder/test_apps:
150+
enable:
151+
- if: IDF_TARGET in ["esp32","esp32s2","esp32s3"] and (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 0)
152+
- if: IDF_TARGET in ["esp32","esp32s2","esp32s3","esp32c3","esp32c6", "esp32p4"] and (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 1)
153+
149154
components/keyboard_button/test_apps:
150155
enable:
151156
- if: INCLUDE_DEFAULT == 1
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# ChangeLog
2+
3+
## v0.1.2 (2024-10-18)
4+
5+
* Added support for parsing split PNG images from the filesystem.
6+
* Added support for JPG and QOI formats.
7+
8+
## v0.1.1 (2024-07-31)
9+
10+
* Added support for parsing standard PNG images form filesystem.
11+
12+
## v0.1.0 Initial Version (2024-06-27)
13+
14+
* Added support for parsing split PNG images from variable.
15+
* Added support for parsing standard PNG images from variable.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
idf_component_register(
2+
SRCS "esp_lv_decoder.c"
3+
INCLUDE_DIRS "include"
4+
PRIV_INCLUDE_DIRS "priv_include"
5+
)
6+
7+
include(package_manager)
8+
cu_pkg_define_version(${CMAKE_CURRENT_LIST_DIR})

0 commit comments

Comments
 (0)