From 9fa6a0fbbf651e4db88611147e61de7c555bbb25 Mon Sep 17 00:00:00 2001
From: Stephan Hadinger
Date: Sat, 5 Mar 2022 22:56:24 +0100
Subject: [PATCH] LVGL Splash screen and ``SetOption135 1`` to disable splash
screen
---
CHANGELOG.md | 1 +
lib/libesp32/berry/generate/be_const_strtab.h | 29 +
.../berry/generate/be_const_strtab_def.h | 2182 +++++++++--------
.../berry/generate/be_fixed_display.h | 9 +-
.../berry/generate/be_fixed_lv_tasmota.h | 19 +-
.../berry_tasmota/src/be_display_lib.cpp | 3 +
.../berry_tasmota/src/be_lv_tasmota_lib.c | 514 +++-
.../berry_tasmota/src/embedded/lv_tasmota.be | 109 +-
tasmota/settings.h | 2 +-
tasmota/xdrv_52_3_berry_display.ino | 10 +
tasmota/xdrv_52_3_berry_lvgl.ino | 11 +
tasmota/xdrv_54_lvgl.ino | 2 +-
tasmota/xdsp_02_ssd1306.ino | 14 +-
tasmota/xdsp_04_ili9341.ino | 14 +-
tasmota/xdsp_05_epaper_29.ino | 16 +-
tasmota/xdsp_06_epaper_42.ino | 14 +-
tasmota/xdsp_07_sh1106.ino | 14 +-
tasmota/xdsp_09_SSD1351.ino | 12 +-
tasmota/xdsp_10_RA8876.ino | 12 +-
tasmota/xdsp_12_ST7789.ino | 12 +-
tasmota/xdsp_14_SSD1331.ino | 14 +-
tasmota/xdsp_16_esp32_epaper_47.ino | 10 +-
tasmota/xdsp_17_universal.ino | 4 +-
23 files changed, 1842 insertions(+), 1185 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ba8690562..d3a8ac753 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
- NeoPool commands ``NPpHMin``, ``NPpHMax``, ``NPpH``, ``NPRedox``, ``NPHydrolysis``, ``NPIonization``, ``NPChlorine`` and ``NPControl`` (#15015)
- NeoPool system voltages display
- Full DS3231 integration and synchronisation when using UBX (=GPS), NTP or manual time
+- LVGL Splash screen and ``SetOption135 1`` to disable splash screen
### Changed
- Extent number of pulsetimers from 8 to 32 (#8266)
diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h
index 684ebbdce..0c7767650 100644
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ b/lib/libesp32/berry/generate/be_const_strtab.h
@@ -1,5 +1,7 @@
extern const bcstring be_const_str_;
extern const bcstring be_const_str_AES_GCM;
+extern const bcstring be_const_str_ALIGN_BOTTOM_MID;
+extern const bcstring be_const_str_ALIGN_LEFT_MID;
extern const bcstring be_const_str_AXP192;
extern const bcstring be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range;
extern const bcstring be_const_str_AudioFileSource;
@@ -98,6 +100,7 @@ extern const bcstring be_const_str_SERIAL_8O2;
extern const bcstring be_const_str_SK6812_GRBW;
extern const bcstring be_const_str_STATE_DEFAULT;
extern const bcstring be_const_str_TAP_X3A_X20Loaded_X20Tasmota_X20App_X20_X27_X25s_X27;
+extern const bcstring be_const_str_TASMOTA;
extern const bcstring be_const_str_Tasmota;
extern const bcstring be_const_str_Tele;
extern const bcstring be_const_str_Trigger;
@@ -220,6 +223,7 @@ extern const bcstring be_const_str__request_from;
extern const bcstring be_const_str__rules;
extern const bcstring be_const_str__settings_def;
extern const bcstring be_const_str__settings_ptr;
+extern const bcstring be_const_str__splash;
extern const bcstring be_const_str__t;
extern const bcstring be_const_str__timers;
extern const bcstring be_const_str__write;
@@ -348,6 +352,7 @@ extern const bcstring be_const_str_decrypt;
extern const bcstring be_const_str_def;
extern const bcstring be_const_str_deg;
extern const bcstring be_const_str_deinit;
+extern const bcstring be_const_str_del;
extern const bcstring be_const_str_delay;
extern const bcstring be_const_str_delete_all_configs;
extern const bcstring be_const_str_depower;
@@ -357,6 +362,7 @@ extern const bcstring be_const_str_detect;
extern const bcstring be_const_str_detected_X20on_X20bus;
extern const bcstring be_const_str_digital_read;
extern const bcstring be_const_str_digital_write;
+extern const bcstring be_const_str_dim;
extern const bcstring be_const_str_dimmer;
extern const bcstring be_const_str_dirty;
extern const bcstring be_const_str_discover;
@@ -443,6 +449,7 @@ extern const bcstring be_const_str_get_current_module_name;
extern const bcstring be_const_str_get_current_module_path;
extern const bcstring be_const_str_get_free_heap;
extern const bcstring be_const_str_get_height;
+extern const bcstring be_const_str_get_hor_res;
extern const bcstring be_const_str_get_input_power_status;
extern const bcstring be_const_str_get_light;
extern const bcstring be_const_str_get_log;
@@ -486,6 +493,7 @@ extern const bcstring be_const_str_id;
extern const bcstring be_const_str_id_X20must_X20be_X20of_X20type_X20_X27int_X27;
extern const bcstring be_const_str_if;
extern const bcstring be_const_str_imax;
+extern const bcstring be_const_str_img;
extern const bcstring be_const_str_imin;
extern const bcstring be_const_str_import;
extern const bcstring be_const_str_init;
@@ -524,6 +532,7 @@ extern const bcstring be_const_str_json_fdump_map;
extern const bcstring be_const_str_k;
extern const bcstring be_const_str_keys;
extern const bcstring be_const_str_kv;
+extern const bcstring be_const_str_label;
extern const bcstring be_const_str_last_modified;
extern const bcstring be_const_str_leds;
extern const bcstring be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032;
@@ -590,6 +599,7 @@ extern const bcstring be_const_str_now;
extern const bcstring be_const_str_null_cb;
extern const bcstring be_const_str_number;
extern const bcstring be_const_str_o;
+extern const bcstring be_const_str_obj;
extern const bcstring be_const_str_obj_class_create_obj;
extern const bcstring be_const_str_obj_event_base;
extern const bcstring be_const_str_offset;
@@ -608,6 +618,7 @@ extern const bcstring be_const_str_path;
extern const bcstring be_const_str_pc;
extern const bcstring be_const_str_pc_abs;
extern const bcstring be_const_str_pc_rel;
+extern const bcstring be_const_str_pct;
extern const bcstring be_const_str_percentage;
extern const bcstring be_const_str_persist;
extern const bcstring be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map;
@@ -650,6 +661,8 @@ extern const bcstring be_const_str_readline;
extern const bcstring be_const_str_real;
extern const bcstring be_const_str_reapply;
extern const bcstring be_const_str_redirect;
+extern const bcstring be_const_str_refr_now;
+extern const bcstring be_const_str_refr_pos;
extern const bcstring be_const_str_refr_size;
extern const bcstring be_const_str_register_button_encoder;
extern const bcstring be_const_str_register_obj;
@@ -692,6 +705,7 @@ extern const bcstring be_const_str_save;
extern const bcstring be_const_str_save_before_restart;
extern const bcstring be_const_str_scale_uint;
extern const bcstring be_const_str_scan;
+extern const bcstring be_const_str_scr_act;
extern const bcstring be_const_str_screenshot;
extern const bcstring be_const_str_search;
extern const bcstring be_const_str_sec;
@@ -701,6 +715,7 @@ extern const bcstring be_const_str_send;
extern const bcstring be_const_str_send_multicast;
extern const bcstring be_const_str_serial;
extern const bcstring be_const_str_set;
+extern const bcstring be_const_str_set_align;
extern const bcstring be_const_str_set_alternate;
extern const bcstring be_const_str_set_auth;
extern const bcstring be_const_str_set_bits_per_sample;
@@ -729,19 +744,29 @@ extern const bcstring be_const_str_set_pwm;
extern const bcstring be_const_str_set_rate;
extern const bcstring be_const_str_set_reachable;
extern const bcstring be_const_str_set_rgb;
+extern const bcstring be_const_str_set_size;
extern const bcstring be_const_str_set_style_bg_color;
+extern const bcstring be_const_str_set_style_border_width;
+extern const bcstring be_const_str_set_style_img_recolor;
+extern const bcstring be_const_str_set_style_img_recolor_opa;
extern const bcstring be_const_str_set_style_line_color;
+extern const bcstring be_const_str_set_style_pad_all;
extern const bcstring be_const_str_set_style_pad_right;
+extern const bcstring be_const_str_set_style_radius;
+extern const bcstring be_const_str_set_style_text_color;
extern const bcstring be_const_str_set_style_text_font;
+extern const bcstring be_const_str_set_tasmota_logo;
extern const bcstring be_const_str_set_text;
extern const bcstring be_const_str_set_time;
extern const bcstring be_const_str_set_timeouts;
extern const bcstring be_const_str_set_timer;
+extern const bcstring be_const_str_set_user_data;
extern const bcstring be_const_str_set_useragent;
extern const bcstring be_const_str_set_width;
extern const bcstring be_const_str_set_x;
extern const bcstring be_const_str_set_xy;
extern const bcstring be_const_str_set_y;
+extern const bcstring be_const_str_set_zoom;
extern const bcstring be_const_str_setbits;
extern const bcstring be_const_str_seti;
extern const bcstring be_const_str_setitem;
@@ -758,10 +783,14 @@ extern const bcstring be_const_str_sinh;
extern const bcstring be_const_str_size;
extern const bcstring be_const_str_skip;
extern const bcstring be_const_str_solidified;
+extern const bcstring be_const_str_splash;
+extern const bcstring be_const_str_splash_init;
+extern const bcstring be_const_str_splash_remove;
extern const bcstring be_const_str_split;
extern const bcstring be_const_str_sqrt;
extern const bcstring be_const_str_srand;
extern const bcstring be_const_str_start;
+extern const bcstring be_const_str_started;
extern const bcstring be_const_str_state;
extern const bcstring be_const_str_static;
extern const bcstring be_const_str_stop;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
index db2613da1..468626270 100644
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ b/lib/libesp32/berry/generate/be_const_strtab_def.h
@@ -1,763 +1,792 @@
-be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_SERIAL_7O1);
-be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_SK6812_GRBW);
-be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_close);
-be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29);
-be_define_const_str(_X22, "\"", 655135397u, 0, 1, &be_const_str__X3Cp_X3E_X3Cform_X20id_X3Dzip_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20);
-be_define_const_str(_X22_X3A, "\":", 399167565u, 0, 2, &be_const_str_wifi);
-be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str__fl);
-be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_COLOR_BLACK);
-be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_begin);
-be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_issubclass);
-be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_ismethod);
-be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_unsubscribe);
-be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str_compress);
-be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_remove_cmd);
-be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, &be_const_str__ptr);
-be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str___iterator__);
-be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_add_fast_loop);
-be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str_full_state);
-be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032);
-be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str__X2Flights_X2F);
-be_define_const_str(_X2C, ",", 688690635u, 0, 1, NULL);
-be_define_const_str(_X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D, ",\"AXP192\":{\"VBusVoltage\":%.3f,\"VBusCurrent\":%.1f,\"BattVoltage\":%.3f,\"BattCurrent\":%.1f,\"Temperature\":%.1f}", 2598755376u, 0, 106, &be_const_str_set_percentage);
-be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_contains);
-be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_lvgl_event_dispatch);
-be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str__X3A);
+be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker);
+be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_ALIGN_LEFT_MID);
+be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_close);
+be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_url_encode);
+be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_SERIAL_6E1);
+be_define_const_str(_X22, "\"", 655135397u, 0, 1, &be_const_str_argument_X20must_X20be_X20a_X20list);
+be_define_const_str(_X22_X3A, "\":", 399167565u, 0, 2, &be_const_str_lv_wifi_arcs_icon);
+be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str__X2Etapp);
+be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str__def);
+be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_srand);
+be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str__fl);
+be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_h);
+be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_c);
+be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str_AudioFileSourceFS);
+be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_arch);
+be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, &be_const_str_SERIAL_7O1);
+be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_SERIAL_5O2);
+be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27);
+be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__X3E_X3D);
+be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str__dirty);
+be_define_const_str(_X2B, "+", 772578730u, 0, 1, NULL);
+be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_duration);
+be_define_const_str(_X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D, ",\"AXP192\":{\"VBusVoltage\":%.3f,\"VBusCurrent\":%.1f,\"BattVoltage\":%.3f,\"BattCurrent\":%.1f,\"Temperature\":%.1f}", 2598755376u, 0, 106, NULL);
+be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_module);
+be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_SERIAL_8O2);
+be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str__X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E);
be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, NULL);
-be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_POST);
-be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, NULL);
-be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_HTTP_POST);
-be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_add_driver);
-be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_response_append);
-be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str_a);
-be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, NULL);
-be_define_const_str(_X2F, "/", 705468254u, 0, 1, NULL);
-be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str_assert);
-be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_reset_search);
-be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_SERIAL_8E1);
-be_define_const_str(_X2Flights_X2F, "/lights/", 2370247908u, 0, 8, &be_const_str_WS2812_GRB);
-be_define_const_str(_X2Fstate_X2F, "/state/", 4226179876u, 0, 7, &be_const_str_DIMMER);
-be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_I2C_X3A);
-be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_CFG_X3A_X20loaded_X20_X20);
-be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_toptr);
-be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_lv_wifi_bars_icon);
-be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_AudioOutput);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_animate);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str_publish);
-be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_full_state);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, NULL);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "