CoretechR / OMOTE

Open Source Remote Using ESP32 and LVGL
https://hackaday.io/project/191752
GNU General Public License v3.0
1.02k stars 114 forks source link

Add platform io sim #31

Closed MatthewColvin closed 10 months ago

MatthewColvin commented 11 months ago

Taking the recent development from master via a merge along with adding a target for the simulator in platform IO and updating the build jobs to reflect this change.

Left the old sim in place for now because the new sim still has some issues specifically the colors are wrong...

There is also some development/clean up of the hardwareInterface in this PR.

MatthewColvin commented 11 months ago

Hey @CoretechR are you wanting to review this before a merge?

I think this lays a pretty good base to start working on. Probably could use more flushing out before we take it to the main branch but I don't want this project to get too unweidely

CoretechR commented 11 months ago

@MatthewColvin Absolutely, I'll try it out on my hardware and then merge it. Thank you!

CoretechR commented 11 months ago

I can't get this to compile. IT seems like there is an includ error with the HardwareRevX.hpp This is the output:

Processing esp32 (platform: espressif32; board: esp32dev; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.3.2) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:
 - framework-arduinoespressif32 @ 3.20009.0 (2.0.9)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 45 compatible libraries
Scanning dependencies...
Dependency Graph
|-- lvgl @ 8.3.9
|-- SparkFun LIS3DH Arduino Library @ 1.0.3
|-- IRremoteESP8266 @ 2.8.6
|-- Adafruit FT6206 Library @ 1.0.6
|-- TFT_eSPI @ 2.5.31
|-- PubSubClient @ 2.8.0
|-- Wire @ 2.0.0
|-- WiFi @ 2.0.0
|-- SPI @ 2.0.0
|-- Keypad @ 3.1.1
|-- Preferences @ 2.0.0
Building in release mode
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_disp.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_event.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_group.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_indev.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_indev_scroll.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_class.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_draw.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_pos.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_scroll.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_style.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_style_gen.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_obj_tree.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_refr.c.o
Compiling .pio\build\esp32\libcc5\lvgl\core\lv_theme.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\arm2d\lv_gpu_arm2d.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_arc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_img.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_label.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_layer.c.o
.pio/libdeps/esp32/lvgl/src/core/lv_obj.c: In function 'lv_init':
.pio/libdeps/esp32/lvgl/src/core/lv_obj.c:152:18: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     char * txt = "Á";
                  ^~~~
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_line.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_mask.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_rect.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_transform.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_draw_triangle.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_img_buf.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_img_cache.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\lv_img_decoder.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\pxp\lv_draw_pxp.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\pxp\lv_draw_pxp_blend.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\pxp\lv_gpu_nxp_pxp.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\pxp\lv_gpu_nxp_pxp_osa.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_draw_vglite.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_draw_vglite_arc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_draw_vglite_blend.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_draw_vglite_line.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_draw_vglite_rect.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_vglite_buf.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\nxp\vglite\lv_vglite_utils.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\renesas\lv_gpu_d2_draw_label.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\renesas\lv_gpu_d2_ra6m3.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_arc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_bg.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_composite.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_img.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_label.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_layer.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_line.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_mask.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_polygon.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_rect.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_stack_blur.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_texture_cache.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sdl\lv_draw_sdl_utils.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\stm32_dma2d\lv_gpu_stm32_dma2d.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_arc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_blend.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_dither.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_gradient.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_img.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_layer.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_letter.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_line.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_polygon.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_rect.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\sw\lv_draw_sw_transform.c.o
Compiling .pio\build\esp32\libcc5\lvgl\draw\swm341_dma2d\lv_gpu_swm341_dma2d.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\layouts\flex\lv_flex.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\layouts\grid\lv_grid.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\bmp\lv_bmp.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\ffmpeg\lv_ffmpeg.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\freetype\lv_freetype.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\fsdrv\lv_fs_fatfs.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\fsdrv\lv_fs_posix.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\fsdrv\lv_fs_stdio.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\fsdrv\lv_fs_win32.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\gif\gifdec.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\gif\lv_gif.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\png\lodepng.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\png\lv_png.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\qrcode\lv_qrcode.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\qrcode\qrcodegen.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\rlottie\lv_rlottie.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\sjpg\lv_sjpg.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\libs\sjpg\tjpgd.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\lv_extra.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\fragment\lv_fragment.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\fragment\lv_fragment_manager.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\gridnav\lv_gridnav.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\ime\lv_ime_pinyin.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\imgfont\lv_imgfont.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\monkey\lv_monkey.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\msg\lv_msg.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\others\snapshot\lv_snapshot.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\themes\basic\lv_theme_basic.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\themes\default\lv_theme_default.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\themes\mono\lv_theme_mono.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\animimg\lv_animimg.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\calendar\lv_calendar.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\calendar\lv_calendar_header_arrow.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\calendar\lv_calendar_header_dropdown.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\chart\lv_chart.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\colorwheel\lv_colorwheel.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\imgbtn\lv_imgbtn.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\keyboard\lv_keyboard.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\led\lv_led.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\list\lv_list.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\menu\lv_menu.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\meter\lv_meter.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\msgbox\lv_msgbox.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\span\lv_span.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\spinbox\lv_spinbox.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\spinner\lv_spinner.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\tabview\lv_tabview.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\tileview\lv_tileview.c.o
Compiling .pio\build\esp32\libcc5\lvgl\extra\widgets\win\lv_win.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_dejavu_16_persian_hebrew.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_fmt_txt.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_loader.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_10.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_12.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_12_subpx.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_14.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_16.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_18.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_20.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_22.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_24.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_26.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_28.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_28_compressed.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_30.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_32.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_34.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_36.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_38.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_40.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_42.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_44.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_46.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_48.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_montserrat_8.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_simsun_16_cjk.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_unscii_16.c.o
Compiling .pio\build\esp32\libcc5\lvgl\font\lv_font_unscii_8.c.o
Compiling .pio\build\esp32\libcc5\lvgl\hal\lv_hal_disp.c.o
Compiling .pio\build\esp32\libcc5\lvgl\hal\lv_hal_indev.c.o
Compiling .pio\build\esp32\libcc5\lvgl\hal\lv_hal_tick.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_anim.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_anim_timeline.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_area.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_async.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_bidi.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_color.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_fs.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_gc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_ll.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_log.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_lru.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_math.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_mem.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_printf.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_style.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_style_gen.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_templ.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_timer.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_tlsf.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_txt.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_txt_ap.c.o
Compiling .pio\build\esp32\libcc5\lvgl\misc\lv_utils.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_arc.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_bar.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_btn.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_btnmatrix.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_canvas.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_checkbox.c.o
Compiling .pio\build\esp32\libcc5\lvgl\widgets\lv_dropdown.c.o
.pio/libdeps/esp32/lvgl/src/hal/lv_hal_tick.c: In function 'lv_tick_get':
<command-line>: error: expected expression before '/' token
.pio/libdeps/esp32/lvgl/src/hal/lv_hal_tick.c:77:12: note: in expansion of macro 'LV_TICK_CUSTOM_SYS_TIME_EXPR'
     return LV_TICK_CUSTOM_SYS_TIME_EXPR;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
*** [.pio\build\esp32\libcc5\lvgl\hal\lv_hal_tick.c.o] Error 1
.pio/libdeps/esp32/lvgl/src/widgets/lv_checkbox.c: In function 'lv_checkbox_constructor':
.pio/libdeps/esp32/lvgl/src/widgets/lv_checkbox.c:125:13: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
     cb->txt = "Check box";
             ^
MatthewColvin commented 11 months ago

Hey @CoretechR Sorry I converted lv_config to be within the ini and the escape characters broke the windows builds. I added a windows build to Actions for HW :) And fixed the issue of course.

CoretechR commented 10 months ago

Thanks for fixing this so fast! I committed some small changes. I hope it's OK if I do it this way. The UI now looks exactly like the main branch. I tried to get the preferences (saving settings in flash) to work but wasn't successful.

MatthewColvin commented 10 months ago

@CoretechR Yeah those changes look good to me :)

@bittnert and I have been working closely and hope to sync up this weekend to take elements of his work (dividing HW components into small chunks) and my work (allowing sim and Hardware to run same UI code) and smash that all together on top the abstraction branch somehow.

I feel like its coming along pretty well :)

Dark1886 commented 10 months ago

I can now build this commit with the simulator and the hardware without issues.