From 4406eb9f3b7ac797c78dab7352dc62dc3669c140 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Wed, 5 Jan 2022 09:50:38 +0100 Subject: [PATCH] Berry specific moved to berry_tasmota --- lib/libesp32/berry/default/be_i2s_audio_lib.c | 113 - lib/libesp32/berry/default/be_modtab.c | 2 + lib/libesp32/berry/gen.sh | 2 +- lib/libesp32/berry/generate/be_const_strtab.h | 9 + .../berry/generate/be_const_strtab_def.h | 1929 +++++++++-------- .../be_fixed_be_class_audio_opus_decoder.h | 20 + .../generate/be_fixed_be_class_audio_output.h | 13 +- lib/libesp32/berry/library.json | 4 +- .../berry_mapping/src/be_class_wrapper.c | 40 +- lib/libesp32/berry_mapping/src/be_mapping.h | 2 +- .../include/be_ctypes.h | 0 lib/libesp32/berry_tasmota/library.json | 17 + .../src}/be_animate_lib.c | 0 .../berry_tasmota/src/be_audio_opus_lib.c | 88 + .../src}/be_autoconf_lib.c | 0 .../src}/be_crypto_lib.c | 4 +- .../default => berry_tasmota/src}/be_ctypes.c | 4 +- .../src}/be_display_lib.c | 0 .../src}/be_driverlib.c | 0 .../src}/be_energy_ctypes_definitions.c | 0 .../src}/be_energylib.c | 0 .../src}/be_flash_lib.c | 2 +- .../src}/be_gpio_lib.c | 2 +- .../src}/be_i2c_axp192_lib.c | 0 .../src}/be_i2c_driverlib.c | 0 .../berry_tasmota/src/be_i2s_audio_lib.cpp | 245 +++ .../src}/be_leds_animator_lib.c | 0 .../src}/be_leds_lib.c | 0 .../src}/be_leds_ntv_lib.c | 0 .../src}/be_light_lib.c | 2 +- .../src}/be_lv_tasmota_lib.c | 2 +- .../src}/be_lvgl_clock_icon_lib.c | 0 .../src}/be_lvgl_signal_arcs_lib.c | 0 .../src}/be_lvgl_signal_bars_lib.c | 0 .../src}/be_lvgl_wifi_arcs_icon_lib.c | 0 .../src}/be_lvgl_wifi_arcs_lib.c | 0 .../src}/be_lvgl_wifi_bars_icon_lib.c | 0 .../src}/be_lvgl_wifi_bars_lib.c | 0 .../src}/be_md5_lib.c | 2 +- .../berry_tasmota/src/be_modtab_tasmota.c | 2 + .../src}/be_onewire_lib.c | 2 +- .../src}/be_path_tasmota_lib.c | 2 +- .../src}/be_persist_lib.c | 0 .../default => berry_tasmota/src}/be_port.cpp | 0 .../src}/be_python_compat.c | 0 .../default => berry_tasmota/src}/be_re_lib.c | 0 .../src}/be_serial_lib.c | 2 +- .../src}/be_tapp_lib.c | 0 .../src}/be_tasmotalib.c | 3 +- .../src}/be_tcpclient_lib.c | 2 +- .../src}/be_timer_class.c | 0 .../src}/be_udp_lib.cpp | 2 +- .../src}/be_unishox_lib.c | 0 .../src}/be_webclient_lib.c | 2 +- .../src}/be_webserver_lib.c | 2 +- .../src}/be_wirelib.c | 2 +- .../berry_tasmota/src/berry_tasmota.h | 8 + .../src}/embedded/Animate.be | 0 .../src}/embedded/Driver.be | 0 .../src}/embedded/Tasmota.be | 0 .../src}/embedded/Wire.be | 0 .../src}/embedded/autoconf.be | 0 .../src}/embedded/i2c_axp192.be | 0 .../src}/embedded/i2c_driver.be | 0 .../src}/embedded/leds.be | 0 .../src}/embedded/leds_animator.be | 0 .../src}/embedded/lv_clock_icon.be | 0 .../src}/embedded/lv_signal_arcs.be | 0 .../src}/embedded/lv_signal_bars.be | 0 .../src}/embedded/lv_tasmota.be | 0 .../src}/embedded/openhasp.be | 0 .../src}/embedded/openhasp/demo-all.jsonl | 0 .../src}/embedded/openhasp/demo1.jsonl | 0 .../src}/embedded/openhasp/demo2.jsonl | 0 .../src}/embedded/openhasp/demo3.jsonl | 0 .../src}/embedded/persist.be | 0 .../src}/embedded/tapp.be | 0 .../src}/embedded/test_crypto.be | 0 .../src}/static_block.hpp | 0 tasmota/xdrv_52_3_berry_tasmota.ino | 10 + tasmota/xdrv_52_9_berry.ino | 4 + 81 files changed, 1441 insertions(+), 1104 deletions(-) delete mode 100644 lib/libesp32/berry/default/be_i2s_audio_lib.c create mode 100644 lib/libesp32/berry/generate/be_fixed_be_class_audio_opus_decoder.h rename lib/libesp32/{berry => berry_tasmota}/include/be_ctypes.h (100%) create mode 100644 lib/libesp32/berry_tasmota/library.json rename lib/libesp32/{berry/default => berry_tasmota/src}/be_animate_lib.c (100%) create mode 100644 lib/libesp32/berry_tasmota/src/be_audio_opus_lib.c rename lib/libesp32/{berry/default => berry_tasmota/src}/be_autoconf_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_crypto_lib.c (92%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_ctypes.c (99%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_display_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_driverlib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_energy_ctypes_definitions.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_energylib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_flash_lib.c (93%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_gpio_lib.c (95%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_i2c_axp192_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_i2c_driverlib.c (100%) create mode 100644 lib/libesp32/berry_tasmota/src/be_i2s_audio_lib.cpp rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_animator_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_leds_ntv_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_light_lib.c (91%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lv_tasmota_lib.c (98%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_clock_icon_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_signal_arcs_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_signal_bars_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_arcs_icon_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_arcs_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_bars_icon_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_lvgl_wifi_bars_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_md5_lib.c (98%) create mode 100644 lib/libesp32/berry_tasmota/src/be_modtab_tasmota.c rename lib/libesp32/{berry/default => berry_tasmota/src}/be_onewire_lib.c (96%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_path_tasmota_lib.c (97%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_persist_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_port.cpp (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_python_compat.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_re_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_serial_lib.c (96%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tapp_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tasmotalib.c (99%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_tcpclient_lib.c (95%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_timer_class.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_udp_lib.cpp (98%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_unishox_lib.c (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_webclient_lib.c (96%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_webserver_lib.c (97%) rename lib/libesp32/{berry/default => berry_tasmota/src}/be_wirelib.c (98%) create mode 100644 lib/libesp32/berry_tasmota/src/berry_tasmota.h rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Animate.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Driver.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Tasmota.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/Wire.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/autoconf.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/i2c_axp192.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/i2c_driver.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/leds.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/leds_animator.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_clock_icon.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_signal_arcs.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_signal_bars.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/lv_tasmota.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo-all.jsonl (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo1.jsonl (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo2.jsonl (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/openhasp/demo3.jsonl (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/persist.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/tapp.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/embedded/test_crypto.be (100%) rename lib/libesp32/{berry/default => berry_tasmota/src}/static_block.hpp (100%) diff --git a/lib/libesp32/berry/default/be_i2s_audio_lib.c b/lib/libesp32/berry/default/be_i2s_audio_lib.c deleted file mode 100644 index ef8720b23..000000000 --- a/lib/libesp32/berry/default/be_i2s_audio_lib.c +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************** - * Tasmota I2S audio classes - * - * - *******************************************************************/ -#include "be_constobj.h" - -#ifdef USE_I2S -#ifdef USE_I2S_AUDIO_BERRY - -extern int i2s_output_i2s_init(bvm *vm); -extern int i2s_output_i2s_deinit(bvm *vm); -extern int i2s_output_i2s_stop(bvm *vm); - -extern int i2s_generator_wav_init(bvm *vm); -extern int i2s_generator_wav_deinit(bvm *vm); -extern int i2s_generator_wav_begin(bvm *vm); -extern int i2s_generator_wav_loop(bvm *vm); -extern int i2s_generator_wav_stop(bvm *vm); -extern int i2s_generator_wav_isrunning(bvm *vm); - -extern int i2s_generator_mp3_init(bvm *vm); -extern int i2s_generator_mp3_deinit(bvm *vm); -extern int i2s_generator_mp3_begin(bvm *vm); -extern int i2s_generator_mp3_loop(bvm *vm); -extern int i2s_generator_mp3_stop(bvm *vm); -extern int i2s_generator_mp3_isrunning(bvm *vm); - -#ifdef USE_UFILESYS -extern int i2s_file_source_fs_init(bvm *vm); -extern int i2s_file_source_fs_deinit(bvm *vm); -#endif // USE_UFILESYS - - -#include "../generate/be_fixed_be_class_audio_output.h" -#include "../generate/be_fixed_be_class_audio_output_i2s.h" -#include "../generate/be_fixed_be_class_audio_generator.h" -#include "../generate/be_fixed_be_class_audio_generator_wav.h" -#include "../generate/be_fixed_be_class_audio_generator_mp3.h" -#include "../generate/be_fixed_be_class_audio_file_source.h" -#include "../generate/be_fixed_be_class_audio_file_source_fs.h" - -void be_load_driver_audio_lib(bvm *vm) { - be_pushntvclass(vm, &be_class_audio_output); - be_setglobal(vm, "AudioOutput"); - be_pop(vm, 1); - - be_pushntvclass(vm, &be_class_audio_output_i2s); - be_setglobal(vm, "AudioOutputI2S"); - be_pop(vm, 1); - - be_pushntvclass(vm, &be_class_audio_generator_wav); - be_setglobal(vm, "AudioGeneratorWAV"); - be_pop(vm, 1); - - be_pushntvclass(vm, &be_class_audio_generator_mp3); - be_setglobal(vm, "AudioGeneratorMP3"); - be_pop(vm, 1); - -#ifdef USE_UFILESYS - be_pushntvclass(vm, &be_class_audio_file_source_fs); - be_setglobal(vm, "AudioFileSourceFS"); - be_pop(vm, 1); -#endif // USE_UFILESYS -} - -/* @const_object_info_begin - -class be_class_audio_output (scope: global, name: AudioOutput) { - .p, var -} - -class be_class_audio_generator (scope: global, name: AudioGenerator) { - .p, var -} - -class be_class_audio_file_source (scope: global, name: AudioFileSource) { - .p, var -} - -class be_class_audio_output_i2s (scope: global, name: AudioOutputI2S, super: be_class_audio_output) { - init, func(i2s_output_i2s_init) - deinit, func(i2s_output_i2s_deinit) - stop, func(i2s_output_i2s_stop) -} - -class be_class_audio_generator_wav (scope: global, name: AudioGeneratorWAV, super: be_class_audio_generator) { - init, func(i2s_generator_wav_init) - deinit, func(i2s_generator_wav_deinit) - begin, func(i2s_generator_wav_begin) - loop, func(i2s_generator_wav_loop) - stop, func(i2s_generator_wav_stop) - isrunning, func(i2s_generator_wav_isrunning) -} - -class be_class_audio_generator_mp3 (scope: global, name: AudioGeneratorMP3, super: be_class_audio_generator) { - init, func(i2s_generator_mp3_init) - deinit, func(i2s_generator_mp3_deinit) - begin, func(i2s_generator_mp3_begin) - loop, func(i2s_generator_mp3_loop) - stop, func(i2s_generator_mp3_stop) - isrunning, func(i2s_generator_mp3_isrunning) -} - -class be_class_audio_file_source_fs (scope: global, name: AudioFileSourceFS, super: be_class_audio_file_source) { - init, func(i2s_file_source_fs_init) - deinit, func(i2s_file_source_fs_deinit) -} - -@const_object_info_end */ - -#endif // USE_I2S_AUDIO_BERRY -#endif // USE_I2S \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c index dd11c8461..05a882028 100644 --- a/lib/libesp32/berry/default/be_modtab.c +++ b/lib/libesp32/berry/default/be_modtab.c @@ -159,6 +159,7 @@ extern void be_load_ctypes_energy_definitions_lib(bvm *vm); #ifdef USE_I2S_AUDIO_BERRY extern void be_load_driver_audio_lib(bvm *vm); +extern void be_load_driver_audio_opus_decoder(bvm *vm); #endif #ifdef USE_LVGL @@ -214,6 +215,7 @@ BERRY_API void be_load_custom_libs(bvm *vm) #endif // USE_WS2812 #ifdef USE_I2S_AUDIO_BERRY be_load_driver_audio_lib(vm); + be_load_driver_audio_opus_decoder(vm); #endif #ifdef USE_LVGL // LVGL diff --git a/lib/libesp32/berry/gen.sh b/lib/libesp32/berry/gen.sh index e52d74a28..f845935b8 100755 --- a/lib/libesp32/berry/gen.sh +++ b/lib/libesp32/berry/gen.sh @@ -1,2 +1,2 @@ #!/bin/bash -python3 tools/pycoc/main.py -o generate src default ../berry_mapping/src ../../libesp32_lvgl/lv_berry/src ../../libesp32_lvgl/lv_berry/generate -c default/berry_conf.h +python3 tools/pycoc/main.py -o generate src default ../berry_tasmota/src ../berry_mapping/src ../../libesp32_lvgl/lv_berry/src ../../libesp32_lvgl/lv_berry/generate -c default/berry_conf.h diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h index 8006a587a..459d1e002 100644 --- a/lib/libesp32/berry/generate/be_const_strtab.h +++ b/lib/libesp32/berry/generate/be_const_strtab.h @@ -51,6 +51,7 @@ extern const bcstring be_const_str_MD5; extern const bcstring be_const_str_None; extern const bcstring be_const_str_OPTION_A; extern const bcstring be_const_str_OneWire; +extern const bcstring be_const_str_OpusDecoder; extern const bcstring be_const_str_PART_MAIN; extern const bcstring be_const_str_POST; extern const bcstring be_const_str_Parameter_X20error; @@ -281,6 +282,9 @@ extern const bcstring be_const_str_connect; extern const bcstring be_const_str_connected; extern const bcstring be_const_str_connection_error; extern const bcstring be_const_str_constructor_cb; +extern const bcstring be_const_str_consume_mono; +extern const bcstring be_const_str_consume_silence; +extern const bcstring be_const_str_consume_stereo; extern const bcstring be_const_str_contains; extern const bcstring be_const_str_content_button; extern const bcstring be_const_str_content_flush; @@ -305,6 +309,7 @@ extern const bcstring be_const_str_ctypes_bytes_dyn; extern const bcstring be_const_str_dac_voltage; extern const bcstring be_const_str_day; extern const bcstring be_const_str_debug; +extern const bcstring be_const_str_decode; extern const bcstring be_const_str_decompress; extern const bcstring be_const_str_decrypt; extern const bcstring be_const_str_def; @@ -628,11 +633,14 @@ extern const bcstring be_const_str_serial; extern const bcstring be_const_str_set; 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; extern const bcstring be_const_str_set_bri; +extern const bcstring be_const_str_set_channels; extern const bcstring be_const_str_set_chg_current; extern const bcstring be_const_str_set_dc_voltage; extern const bcstring be_const_str_set_dcdc_enable; extern const bcstring be_const_str_set_first_time; +extern const bcstring be_const_str_set_gain; extern const bcstring be_const_str_set_height; extern const bcstring be_const_str_set_ldo_enable; extern const bcstring be_const_str_set_ldo_voltage; @@ -641,6 +649,7 @@ extern const bcstring be_const_str_set_matrix_pixel_color; extern const bcstring be_const_str_set_percentage; extern const bcstring be_const_str_set_pixel_color; extern const bcstring be_const_str_set_power; +extern const bcstring be_const_str_set_rate; extern const bcstring be_const_str_set_style_bg_color; extern const bcstring be_const_str_set_style_line_color; extern const bcstring be_const_str_set_style_pad_right; diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h index 73f596f1e..70d96bc94 100644 --- a/lib/libesp32/berry/generate/be_const_strtab_def.h +++ b/lib/libesp32/berry/generate/be_const_strtab_def.h @@ -1,740 +1,749 @@ -be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_target_search); -be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X2D_X2D_X3A_X2D_X2D); -be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str__drivers); -be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, NULL); -be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_COLOR_WHITE); -be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_gamma); -be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_f); -be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__available); -be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_public_key); -be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_get_object_from_ptr); -be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, NULL); +be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_begin_multicast); +be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_file); +be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_widget_group_def); +be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B); +be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_clear); +be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_PART_MAIN); +be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, NULL); +be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_call); +be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, NULL); +be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_read_bytes); +be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_SERIAL_8O1); be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, NULL); -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_content_flush); -be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_introspect); -be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_pixel_count); -be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, NULL); -be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_counters); -be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_AudioFileSource); -be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_json_fdump_any); -be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_can_show); -be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_read13); -be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, NULL); -be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_cb_obj); -be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_group_def); -be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_rule); -be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str__request_from); -be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_strptime); -be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_begin); -be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_b); -be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_draw_arc); -be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem); -be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str_get_temp); -be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_web_add_main_button); +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_return_X20code_X3D_X25i); +be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_scan); +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__energy); +be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_add); +be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_asin); +be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_fromptr); +be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_math); +be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29); +be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_set_style_bg_color); +be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_gamma8); +be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, NULL); +be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_ctypes_bytes_dyn); +be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_AudioOutput); +be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, NULL); +be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_pi); +be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str__write); +be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_OpusDecoder); +be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, NULL); +be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str__persist_X2Ejson); +be_define_const_str(_X2F, "/", 705468254u, 0, 1, NULL); be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, NULL); -be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_tag); -be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str__settings_ptr); -be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_sqrt); -be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_SERIAL_6E2); -be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "

", 3546571739u, 0, 11, &be_const_str_keys); -be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "

", 1863865923u, 0, 16, &be_const_str__global_def); -be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_OPTION_A); -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_draw_line); -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_POST); -be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "
", 842307168u, 0, 77, &be_const_str_web_add_management_button); +be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_json_fdump_map); +be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_detected_X20on_X20bus); +be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_SERIAL_6N1); +be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_MD5); +be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "

", 3546571739u, 0, 11, &be_const_str_cb_event_closure); +be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "

", 1863865923u, 0, 16, &be_const_str_True); +be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str__request_from); +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_add_header); +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_arg_name); +be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "
", 842307168u, 0, 77, &be_const_str_connection_error); be_define_const_str(_X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29, "Choose a device configuration:
", 1336654704u, 0, 49, &be_const_str_bri); -be_define_const_str(_X3Clambda_X3E, "", 607256038u, 0, 8, &be_const_str_is_first_time); -be_define_const_str(_X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, " Current auto-configuration", 4212500780u, 0, 82, &be_const_str_HTTP_GET); -be_define_const_str(_X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, " Select new auto-configuration", 1926223891u, 0, 80, &be_const_str_remote_port); -be_define_const_str(_X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, "", 510303524u, 0, 30, &be_const_str__anonymous_); -be_define_const_str(_X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, "", 3994619755u, 0, 54, &be_const_str_tr); -be_define_const_str(_X3Cp_X20style_X3D_X27width_X3A340px_X3B_X27_X3E_X3Cb_X3EException_X3A_X3C_X2Fb_X3E_X3Cbr_X3E_X27_X25s_X27_X3Cbr_X3E_X25s_X3C_X2Fp_X3E, "

Exception:
'%s'
%s

", 4252565082u, 0, 59, &be_const_str_shared_key); -be_define_const_str(_X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "

", 2052843416u, 0, 25, &be_const_str_register_button_encoder); -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_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "

", 452285201u, 0, 120, &be_const_str_due); -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, "

 (This feature requires an internet connection)

", 2719266486u, 0, 74, NULL); -be_define_const_str(_X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E, "

Current configuration:

%s

", 4115655761u, 0, 46, NULL); -be_define_const_str(_X3Cselect_X20name_X3D_X27zip_X27_X3E, "", 4247924536u, 0, 19, &be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s); +be_define_const_str(_X3D, "=", 940354920u, 0, 1, &be_const_str_set_first_time); +be_define_const_str(_X3D_X3C_X3E_X21, "=<>!", 2664470277u, 0, 4, &be_const_str__global_addr); +be_define_const_str(_X3D_X3D, "==", 2431966415u, 0, 2, NULL); +be_define_const_str(_X3E, ">", 990687777u, 0, 1, &be_const_str_class); +be_define_const_str(_X3E_X3D, ">=", 284975636u, 0, 2, &be_const_str_scale_uint); +be_define_const_str(_X3F, "?", 973910158u, 0, 1, &be_const_str_web_add_button); +be_define_const_str(AES_GCM, "AES_GCM", 3832208678u, 0, 7, &be_const_str_value); +be_define_const_str(AXP192, "AXP192", 757230128u, 0, 6, NULL); +be_define_const_str(Animate_X20pc_X20is_X20out_X20of_X20range, "Animate pc is out of range", 1854929421u, 0, 26, &be_const_str_arch); +be_define_const_str(AudioFileSource, "AudioFileSource", 2959980058u, 0, 15, NULL); +be_define_const_str(AudioFileSourceFS, "AudioFileSourceFS", 1839147653u, 0, 17, NULL); +be_define_const_str(AudioGenerator, "AudioGenerator", 1839297342u, 0, 14, &be_const_str_widget_ctor_cb); +be_define_const_str(AudioGeneratorMP3, "AudioGeneratorMP3", 2199818488u, 0, 17, &be_const_str_register_button_encoder); +be_define_const_str(AudioGeneratorWAV, "AudioGeneratorWAV", 2746509368u, 0, 17, &be_const_str_atleast1); +be_define_const_str(AudioOutput, "AudioOutput", 3257792048u, 0, 11, &be_const_str__buffer); be_define_const_str(AudioOutputI2S, "AudioOutputI2S", 638031784u, 0, 14, NULL); -be_define_const_str(Auto_X2Dconfiguration, "Auto-configuration", 1665006109u, 0, 18, NULL); -be_define_const_str(BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, "BRY: ERROR, bad json: ", 2715135809u, 0, 22, &be_const_str_CFG_X3A_X20loading_X20); -be_define_const_str(BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, "BRY: Exception> '%s' - %s", 2246990964u, 0, 25, &be_const_str_seti); -be_define_const_str(BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29, "BRY: could not save compiled file %s (%s)", 736659787u, 0, 41, NULL); -be_define_const_str(BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, "BRY: failed to load _persist.json", 2991913445u, 0, 33, NULL); -be_define_const_str(BUTTON_CONFIGURATION, "BUTTON_CONFIGURATION", 70820856u, 0, 20, &be_const_str_invalidate); -be_define_const_str(CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, "CFG: 'init.bat' done, restarting", 1569670677u, 0, 32, &be_const_str_push_path); -be_define_const_str(CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, "CFG: Exception> '%s' - %s", 1228874553u, 0, 25, &be_const_str_event_cb); -be_define_const_str(CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29, "CFG: could not run %s (%s - %s)", 1428829580u, 0, 31, &be_const_str_lv_wifi_bars_icon); -be_define_const_str(CFG_X3A_X20downloading_X20_X27_X25s_X27, "CFG: downloading '%s'", 589480701u, 0, 21, NULL); -be_define_const_str(CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27, "CFG: exception '%s' - '%s'", 4095407913u, 0, 26, &be_const_str__debug_present); -be_define_const_str(CFG_X3A_X20loaded_X20_X20, "CFG: loaded ", 3710273538u, 0, 13, &be_const_str_count); -be_define_const_str(CFG_X3A_X20loaded_X20_X27_X25s_X27, "CFG: loaded '%s'", 1699028828u, 0, 16, &be_const_str_animate); -be_define_const_str(CFG_X3A_X20loading_X20, "CFG: loading ", 4010361503u, 0, 13, NULL); -be_define_const_str(CFG_X3A_X20loading_X20_X27_X25s_X27, "CFG: loading '%s'", 2285306097u, 0, 17, &be_const_str_SK6812_GRBW); -be_define_const_str(CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29, "CFG: multiple autoconf files found, aborting ('%s' + '%s')", 197663371u, 0, 58, &be_const_str_write_file); -be_define_const_str(CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found, "CFG: no '*.autoconf' file found", 127493957u, 0, 31, &be_const_str_internal_error); -be_define_const_str(CFG_X3A_X20ran_X20_X20, "CFG: ran ", 3579570472u, 0, 10, &be_const_str_couldn_X27t_X20not_X20initialize_X20noepixelbus); -be_define_const_str(CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, "CFG: removed file '%s'", 2048602473u, 0, 22, &be_const_str_list); -be_define_const_str(CFG_X3A_X20removing_X20autoconf_X20files, "CFG: removing autoconf files", 4014704970u, 0, 28, &be_const_str_add_anim); -be_define_const_str(CFG_X3A_X20removing_X20first_X20time_X20marker, "CFG: removing first time marker", 2125556683u, 0, 31, NULL); -be_define_const_str(CFG_X3A_X20return_code_X3D_X25i, "CFG: return_code=%i", 2059897320u, 0, 19, NULL); -be_define_const_str(CFG_X3A_X20running_X20, "CFG: running ", 2478334534u, 0, 13, &be_const_str_rtc); -be_define_const_str(CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem, "CFG: skipping 'display.ini' because already present in file-system", 3965549264u, 0, 66, &be_const_str_set_matrix_pixel_color); -be_define_const_str(COLOR_BLACK, "COLOR_BLACK", 264427940u, 0, 11, &be_const_str_SERIAL_7E2); -be_define_const_str(COLOR_WHITE, "COLOR_WHITE", 2536871270u, 0, 11, &be_const_str_codedump); -be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, &be_const_str_base_class); -be_define_const_str(EVENT_DRAW_MAIN, "EVENT_DRAW_MAIN", 1955620614u, 0, 15, &be_const_str_SERIAL_8E1); -be_define_const_str(EVENT_DRAW_PART_BEGIN, "EVENT_DRAW_PART_BEGIN", 3391865024u, 0, 21, &be_const_str__begin_transmission); -be_define_const_str(EVENT_DRAW_PART_END, "EVENT_DRAW_PART_END", 3301625292u, 0, 19, &be_const_str_imin); -be_define_const_str(False, "False", 2541049336u, 0, 5, &be_const_str_lower); -be_define_const_str(GET, "GET", 2531704439u, 0, 3, &be_const_str_set_time); -be_define_const_str(HTTP_GET, "HTTP_GET", 1722467738u, 0, 8, &be_const_str_find_key_i); -be_define_const_str(HTTP_POST, "HTTP_POST", 1999554144u, 0, 9, NULL); -be_define_const_str(I2C_X3A, "I2C:", 813483371u, 0, 4, &be_const_str_p2); -be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, NULL); -be_define_const_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback, "LVG: call to unsupported callback", 504176819u, 0, 33, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf); -be_define_const_str(Leds, "Leds", 2709245275u, 0, 4, &be_const_str_editable); -be_define_const_str(MD5, "MD5", 1935726387u, 0, 3, NULL); -be_define_const_str(None, "None", 810547195u, 0, 4, &be_const_str_connect); -be_define_const_str(OPTION_A, "OPTION_A", 1133299440u, 0, 8, &be_const_str_pin); -be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str_SERIAL_7O2); -be_define_const_str(PART_MAIN, "PART_MAIN", 2473491508u, 0, 9, &be_const_str_remove_cmd); -be_define_const_str(POST, "POST", 1929554311u, 0, 4, &be_const_str_function); -be_define_const_str(Parameter_X20error, "Parameter error", 3840042038u, 0, 15, &be_const_str__dirty); -be_define_const_str(RES_OK, "RES_OK", 1233817284u, 0, 6, &be_const_str__t); -be_define_const_str(Restart_X201, "Restart 1", 3504455855u, 0, 9, NULL); -be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_display); -be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, NULL); -be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, &be_const_str_tomap); -be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, &be_const_str_True); -be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, &be_const_str_v); -be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, &be_const_str__read); -be_define_const_str(SERIAL_6E1, "SERIAL_6E1", 334249486u, 0, 10, &be_const_str_add); -be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, &be_const_str_content_button); -be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, &be_const_str_SERIAL_8N1); -be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str__class); -be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str_settings); -be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, NULL); -be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_width); -be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str_get_pixel_color); +be_define_const_str(Auto_X2Dconfiguration, "Auto-configuration", 1665006109u, 0, 18, &be_const_str_resolvecmnd); +be_define_const_str(BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, "BRY: ERROR, bad json: ", 2715135809u, 0, 22, NULL); +be_define_const_str(BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, "BRY: Exception> '%s' - %s", 2246990964u, 0, 25, &be_const_str_set_useragent); +be_define_const_str(BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29, "BRY: could not save compiled file %s (%s)", 736659787u, 0, 41, &be_const_str_autorun); +be_define_const_str(BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, "BRY: failed to load _persist.json", 2991913445u, 0, 33, &be_const_str_char); +be_define_const_str(BUTTON_CONFIGURATION, "BUTTON_CONFIGURATION", 70820856u, 0, 20, NULL); +be_define_const_str(CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, "CFG: 'init.bat' done, restarting", 1569670677u, 0, 32, &be_const_str_CFG_X3A_X20loading_X20); +be_define_const_str(CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, "CFG: Exception> '%s' - %s", 1228874553u, 0, 25, &be_const_str_is_running); +be_define_const_str(CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29, "CFG: could not run %s (%s - %s)", 1428829580u, 0, 31, NULL); +be_define_const_str(CFG_X3A_X20downloading_X20_X27_X25s_X27, "CFG: downloading '%s'", 589480701u, 0, 21, &be_const_str_percentage); +be_define_const_str(CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27, "CFG: exception '%s' - '%s'", 4095407913u, 0, 26, &be_const_str_SK6812_GRBW); +be_define_const_str(CFG_X3A_X20loaded_X20_X20, "CFG: loaded ", 3710273538u, 0, 13, &be_const_str_attrdump); +be_define_const_str(CFG_X3A_X20loaded_X20_X27_X25s_X27, "CFG: loaded '%s'", 1699028828u, 0, 16, &be_const_str_cosh); +be_define_const_str(CFG_X3A_X20loading_X20, "CFG: loading ", 4010361503u, 0, 13, &be_const_str_push_path); +be_define_const_str(CFG_X3A_X20loading_X20_X27_X25s_X27, "CFG: loading '%s'", 2285306097u, 0, 17, &be_const_str_static); +be_define_const_str(CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29, "CFG: multiple autoconf files found, aborting ('%s' + '%s')", 197663371u, 0, 58, NULL); +be_define_const_str(CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found, "CFG: no '*.autoconf' file found", 127493957u, 0, 31, NULL); +be_define_const_str(CFG_X3A_X20ran_X20_X20, "CFG: ran ", 3579570472u, 0, 10, &be_const_str__settings_ptr); +be_define_const_str(CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, "CFG: removed file '%s'", 2048602473u, 0, 22, &be_const_str_content_send); +be_define_const_str(CFG_X3A_X20removing_X20autoconf_X20files, "CFG: removing autoconf files", 4014704970u, 0, 28, &be_const_str_font_montserrat); +be_define_const_str(CFG_X3A_X20removing_X20first_X20time_X20marker, "CFG: removing first time marker", 2125556683u, 0, 31, &be_const_str_json_fdump_any); +be_define_const_str(CFG_X3A_X20return_code_X3D_X25i, "CFG: return_code=%i", 2059897320u, 0, 19, &be_const_str__dirty); +be_define_const_str(CFG_X3A_X20running_X20, "CFG: running ", 2478334534u, 0, 13, &be_const_str_COLOR_BLACK); +be_define_const_str(CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem, "CFG: skipping 'display.ini' because already present in file-system", 3965549264u, 0, 66, &be_const_str_chars_in_string); +be_define_const_str(COLOR_BLACK, "COLOR_BLACK", 264427940u, 0, 11, &be_const_str_ceil); +be_define_const_str(COLOR_WHITE, "COLOR_WHITE", 2536871270u, 0, 11, &be_const_str_WS2812); +be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, &be_const_str_LVG_X3A_X20call_X20to_X20unsupported_X20callback); +be_define_const_str(EVENT_DRAW_MAIN, "EVENT_DRAW_MAIN", 1955620614u, 0, 15, &be_const_str_connected); +be_define_const_str(EVENT_DRAW_PART_BEGIN, "EVENT_DRAW_PART_BEGIN", 3391865024u, 0, 21, &be_const_str_find_key_i); +be_define_const_str(EVENT_DRAW_PART_END, "EVENT_DRAW_PART_END", 3301625292u, 0, 19, &be_const_str_classof); +be_define_const_str(False, "False", 2541049336u, 0, 5, &be_const_str_copy); +be_define_const_str(GET, "GET", 2531704439u, 0, 3, &be_const_str_call_native); +be_define_const_str(HTTP_GET, "HTTP_GET", 1722467738u, 0, 8, &be_const_str_widget_event_cb); +be_define_const_str(HTTP_POST, "HTTP_POST", 1999554144u, 0, 9, &be_const_str__); +be_define_const_str(I2C_X3A, "I2C:", 813483371u, 0, 4, &be_const_str_map); +be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, &be_const_str_get_cb_list); +be_define_const_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback, "LVG: call to unsupported callback", 504176819u, 0, 33, &be_const_str__rules); +be_define_const_str(Leds, "Leds", 2709245275u, 0, 4, &be_const_str_web_add_config_button); +be_define_const_str(MD5, "MD5", 1935726387u, 0, 3, &be_const_str_pow); +be_define_const_str(None, "None", 810547195u, 0, 4, &be_const_str_POST); +be_define_const_str(OPTION_A, "OPTION_A", 1133299440u, 0, 8, NULL); +be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str_files); +be_define_const_str(OpusDecoder, "OpusDecoder", 3618742074u, 0, 11, &be_const_str_cb_do_nothing); +be_define_const_str(PART_MAIN, "PART_MAIN", 2473491508u, 0, 9, &be_const_str_get_switch); +be_define_const_str(POST, "POST", 1929554311u, 0, 4, &be_const_str_gc); +be_define_const_str(Parameter_X20error, "Parameter error", 3840042038u, 0, 15, &be_const_str__X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); +be_define_const_str(RES_OK, "RES_OK", 1233817284u, 0, 6, &be_const_str_decrypt); +be_define_const_str(Restart_X201, "Restart 1", 3504455855u, 0, 9, &be_const_str_SERIAL_5N2); +be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_set_style_text_font); +be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, &be_const_str__anonymous_); +be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, &be_const_str__archive); +be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, &be_const_str_get_string); +be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, &be_const_str_add_driver); +be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, NULL); +be_define_const_str(SERIAL_6E1, "SERIAL_6E1", 334249486u, 0, 10, &be_const_str_pop_path); +be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, &be_const_str_select); +be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, NULL); +be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str_every_100ms); +be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str_cmd_res); +be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, &be_const_str_get_object_from_ptr); +be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_wire1); +be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str__p); be_define_const_str(SERIAL_7N1, "SERIAL_7N1", 1891060246u, 0, 10, NULL); -be_define_const_str(SERIAL_7N2, "SERIAL_7N2", 1874282627u, 0, 10, &be_const_str_constructor_cb); -be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, &be_const_str_input); -be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, &be_const_str_get_current_module_name); -be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str_delay); -be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, &be_const_str_get_power); -be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_char); -be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_int); -be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, &be_const_str_wd); -be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, NULL); -be_define_const_str(SK6812_GRBW, "SK6812_GRBW", 81157857u, 0, 11, &be_const_str_event); -be_define_const_str(STATE_DEFAULT, "STATE_DEFAULT", 712406428u, 0, 13, &be_const_str__error); -be_define_const_str(TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, "TAP: found Tasmota App '%s'", 2643152398u, 0, 27, &be_const_str__ptr); -be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_set_useragent); -be_define_const_str(Tele, "Tele", 1329980653u, 0, 4, &be_const_str_cb_event_closure); -be_define_const_str(Timer, "Timer", 3948127682u, 0, 5, &be_const_str__energy); -be_define_const_str(True, "True", 3453902341u, 0, 4, &be_const_str__settings_def); +be_define_const_str(SERIAL_7N2, "SERIAL_7N2", 1874282627u, 0, 10, &be_const_str_b); +be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, &be_const_str_dirty); +be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, &be_const_str_send_multicast); +be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str_members); +be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, &be_const_str_widget_struct_default); +be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_clock_icon); +be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_coord_arr); +be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, &be_const_str_format); +be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, &be_const_str_get_height); +be_define_const_str(SK6812_GRBW, "SK6812_GRBW", 81157857u, 0, 11, &be_const_str_animators); +be_define_const_str(STATE_DEFAULT, "STATE_DEFAULT", 712406428u, 0, 13, &be_const_str___lower__); +be_define_const_str(TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, "TAP: found Tasmota App '%s'", 2643152398u, 0, 27, &be_const_str_fromstring); +be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_line_dsc); +be_define_const_str(Tele, "Tele", 1329980653u, 0, 4, &be_const_str_set_y); +be_define_const_str(Timer, "Timer", 3948127682u, 0, 5, NULL); +be_define_const_str(True, "True", 3453902341u, 0, 4, &be_const_str_connect); be_define_const_str(Unknown_X20command, "Unknown command", 1830905432u, 0, 15, NULL); -be_define_const_str(WS2812, "WS2812", 3539741218u, 0, 6, &be_const_str_connected); -be_define_const_str(WS2812_GRB, "WS2812_GRB", 1736405692u, 0, 10, &be_const_str__timers); -be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, &be_const_str_udp); -be_define_const_str(_X5B, "[", 3725336506u, 0, 1, &be_const_str_check_privileged_access); -be_define_const_str(_X5D, "]", 3624670792u, 0, 1, &be_const_str_get_vbus_current); -be_define_const_str(_, "_", 3658226030u, 0, 1, &be_const_str_set_ldo_voltage); -be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_open); -be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_w); -be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_digital_write); -be_define_const_str(_anonymous_, "_anonymous_", 1957281476u, 0, 11, &be_const_str_ceil); -be_define_const_str(_archive, "_archive", 4004559404u, 0, 8, NULL); -be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str_assert); -be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, &be_const_str_name); -be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str__X7B); -be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_gen_cb); -be_define_const_str(_class, "_class", 2732146350u, 0, 6, &be_const_str_chars_in_string); -be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, &be_const_str_isnan); -be_define_const_str(_debug_present, "_debug_present", 4063411725u, 0, 14, &be_const_str_argument_X20must_X20be_X20a_X20list); -be_define_const_str(_def, "_def", 1985022181u, 0, 4, &be_const_str_exists); -be_define_const_str(_dirty, "_dirty", 283846766u, 0, 6, &be_const_str_load_freetype_font); -be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str_ctor); -be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, NULL); -be_define_const_str(_energy, "_energy", 535372070u, 0, 7, &be_const_str_get_coords); -be_define_const_str(_error, "_error", 1132109656u, 0, 6, NULL); -be_define_const_str(_filename, "_filename", 1430813195u, 0, 9, NULL); -be_define_const_str(_global_addr, "_global_addr", 533766721u, 0, 12, NULL); -be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, NULL); -be_define_const_str(_lvgl, "_lvgl", 2689219483u, 0, 5, &be_const_str_ins_goto); -be_define_const_str(_p, "_p", 1594591802u, 0, 2, &be_const_str_lvgl_event_dispatch); -be_define_const_str(_persist_X2Ejson, "_persist.json", 2008425138u, 0, 13, &be_const_str_compile); -be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, NULL); -be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_tan); -be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, NULL); -be_define_const_str(_rules, "_rules", 4266217105u, 0, 6, &be_const_str_has); -be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, &be_const_str_hour); -be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, NULL); -be_define_const_str(_t, "_t", 1527481326u, 0, 2, &be_const_str_write8); -be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, NULL); -be_define_const_str(_write, "_write", 2215462825u, 0, 6, &be_const_str__X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); -be_define_const_str(a, "a", 3826002220u, 0, 1, &be_const_str_classname); -be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_list_handlers); -be_define_const_str(acos, "acos", 1006755615u, 0, 4, &be_const_str_animators); -be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_read32); -be_define_const_str(add_anim, "add_anim", 3980662668u, 0, 8, NULL); -be_define_const_str(add_cmd, "add_cmd", 3361630879u, 0, 7, &be_const_str_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj); -be_define_const_str(add_driver, "add_driver", 1654458371u, 0, 10, &be_const_str_widget_destructor); -be_define_const_str(add_handler, "add_handler", 2055124119u, 0, 11, &be_const_str_arg_size); -be_define_const_str(add_header, "add_header", 927130612u, 0, 10, NULL); -be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, &be_const_str_h); -be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_copy); -be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_local); -be_define_const_str(alternate, "alternate", 1140253277u, 0, 9, &be_const_str_ctypes_bytes_dyn); +be_define_const_str(WS2812, "WS2812", 3539741218u, 0, 6, &be_const_str_lv_event); +be_define_const_str(WS2812_GRB, "WS2812_GRB", 1736405692u, 0, 10, &be_const_str_refr_size); +be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, &be_const_str_web_send_decimal); +be_define_const_str(_X5B, "[", 3725336506u, 0, 1, &be_const_str_area); +be_define_const_str(_X5D, "]", 3624670792u, 0, 1, &be_const_str_asstring); +be_define_const_str(_, "_", 3658226030u, 0, 1, NULL); +be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_abs); +be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_get_alternate); +be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_push); +be_define_const_str(_anonymous_, "_anonymous_", 1957281476u, 0, 11, &be_const_str_available); +be_define_const_str(_archive, "_archive", 4004559404u, 0, 8, &be_const_str_get_pixel_color); +be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str_content_send_style); +be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, NULL); +be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str_get_current_module_name); +be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_ctypes_bytes); +be_define_const_str(_class, "_class", 2732146350u, 0, 6, &be_const_str_battery_present); +be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, &be_const_str_draw_line); +be_define_const_str(_debug_present, "_debug_present", 4063411725u, 0, 14, NULL); +be_define_const_str(_def, "_def", 1985022181u, 0, 4, NULL); +be_define_const_str(_dirty, "_dirty", 283846766u, 0, 6, NULL); +be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str_floor); +be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, &be_const_str_dac_voltage); +be_define_const_str(_energy, "_energy", 535372070u, 0, 7, &be_const_str_counters); +be_define_const_str(_error, "_error", 1132109656u, 0, 6, &be_const_str_int); +be_define_const_str(_filename, "_filename", 1430813195u, 0, 9, &be_const_str_content_flush); +be_define_const_str(_global_addr, "_global_addr", 533766721u, 0, 12, &be_const_str_gen_cb); +be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, &be_const_str_assert); +be_define_const_str(_lvgl, "_lvgl", 2689219483u, 0, 5, &be_const_str_atan); +be_define_const_str(_p, "_p", 1594591802u, 0, 2, &be_const_str_height_def); +be_define_const_str(_persist_X2Ejson, "_persist.json", 2008425138u, 0, 13, &be_const_str_gamma); +be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, &be_const_str_isinstance); +be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_create_custom_widget); +be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, &be_const_str_set_auth); +be_define_const_str(_rules, "_rules", 4266217105u, 0, 6, &be_const_str_depower); +be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, &be_const_str_read_sensors); +be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, &be_const_str_enabled); +be_define_const_str(_t, "_t", 1527481326u, 0, 2, &be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus); +be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, &be_const_str_add_anim); +be_define_const_str(_write, "_write", 2215462825u, 0, 6, &be_const_str_acos); +be_define_const_str(a, "a", 3826002220u, 0, 1, &be_const_str_web_add_main_button); +be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_byte); +be_define_const_str(acos, "acos", 1006755615u, 0, 4, NULL); +be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032); +be_define_const_str(add_anim, "add_anim", 3980662668u, 0, 8, &be_const_str_back_forth); +be_define_const_str(add_cmd, "add_cmd", 3361630879u, 0, 7, &be_const_str_h); +be_define_const_str(add_driver, "add_driver", 1654458371u, 0, 10, &be_const_str_fromb64); +be_define_const_str(add_handler, "add_handler", 2055124119u, 0, 11, &be_const_str_display_X2Eini); +be_define_const_str(add_header, "add_header", 927130612u, 0, 10, &be_const_str_contains); +be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, &be_const_str_reset_search); +be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_pin_mode); +be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_remove_cmd); +be_define_const_str(alternate, "alternate", 1140253277u, 0, 9, &be_const_str_out_X20of_X20range); be_define_const_str(animate, "animate", 3885786800u, 0, 7, NULL); -be_define_const_str(animators, "animators", 279858213u, 0, 9, &be_const_str_fromb64); -be_define_const_str(arch, "arch", 2952804297u, 0, 4, &be_const_str_bus); -be_define_const_str(area, "area", 2601460036u, 0, 4, &be_const_str_ins_ramp); -be_define_const_str(arg, "arg", 1047474471u, 0, 3, &be_const_str_get_battery_chargin_status); -be_define_const_str(arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj, "arg must be a subclass of lv_obj", 1641882079u, 0, 32, &be_const_str_math); +be_define_const_str(animators, "animators", 279858213u, 0, 9, &be_const_str_get_battery_chargin_status); +be_define_const_str(arch, "arch", 2952804297u, 0, 4, &be_const_str_get_aps_voltage); +be_define_const_str(area, "area", 2601460036u, 0, 4, &be_const_str_kv); +be_define_const_str(arg, "arg", 1047474471u, 0, 3, &be_const_str_json_fdump_list); +be_define_const_str(arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj, "arg must be a subclass of lv_obj", 1641882079u, 0, 32, &be_const_str_gamma10); be_define_const_str(arg_name, "arg_name", 1345046155u, 0, 8, NULL); -be_define_const_str(arg_size, "arg_size", 3310243257u, 0, 8, NULL); -be_define_const_str(argument_X20must_X20be_X20a_X20list, "argument must be a list", 3056915661u, 0, 23, &be_const_str_clear_first_time); +be_define_const_str(arg_size, "arg_size", 3310243257u, 0, 8, &be_const_str_get_free_heap); +be_define_const_str(argument_X20must_X20be_X20a_X20list, "argument must be a list", 3056915661u, 0, 23, &be_const_str_every_second); be_define_const_str(as, "as", 1579491469u, 67, 2, NULL); -be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_get_cb_list); -be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_read8); -be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, NULL); -be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_hs2rgb); -be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_loop); -be_define_const_str(atleast1, "atleast1", 1956331672u, 0, 8, &be_const_str_remove_driver); -be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_battery_present); -be_define_const_str(autoexec, "autoexec", 3676861891u, 0, 8, &be_const_str_exec_cmd); -be_define_const_str(autorun, "autorun", 1447527407u, 0, 7, &be_const_str_fromptr); -be_define_const_str(available, "available", 1727918744u, 0, 9, &be_const_str_digital_read); -be_define_const_str(b, "b", 3876335077u, 0, 1, &be_const_str_lv_signal_bars); -be_define_const_str(back_forth, "back_forth", 2665042062u, 0, 10, &be_const_str_get_style_pad_right); -be_define_const_str(base_class, "base_class", 1107737279u, 0, 10, &be_const_str_get_string); -be_define_const_str(battery_present, "battery_present", 3588397058u, 0, 15, &be_const_str_register_obj); -be_define_const_str(begin, "begin", 1748273790u, 0, 5, &be_const_str_cos); -be_define_const_str(begin_multicast, "begin_multicast", 57647915u, 0, 15, &be_const_str_min); -be_define_const_str(bool, "bool", 3365180733u, 0, 4, &be_const_str_set_height); +be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_check_privileged_access); +be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_create_matrix); +be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, &be_const_str_set_timeouts); +be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_redirect); +be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_collect); +be_define_const_str(atleast1, "atleast1", 1956331672u, 0, 8, NULL); +be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, NULL); +be_define_const_str(autoexec, "autoexec", 3676861891u, 0, 8, NULL); +be_define_const_str(autorun, "autorun", 1447527407u, 0, 7, &be_const_str_search); +be_define_const_str(available, "available", 1727918744u, 0, 9, &be_const_str_tob64); +be_define_const_str(b, "b", 3876335077u, 0, 1, NULL); +be_define_const_str(back_forth, "back_forth", 2665042062u, 0, 10, &be_const_str_listdir); +be_define_const_str(base_class, "base_class", 1107737279u, 0, 10, &be_const_str_open); +be_define_const_str(battery_present, "battery_present", 3588397058u, 0, 15, NULL); +be_define_const_str(begin, "begin", 1748273790u, 0, 5, &be_const_str_resp_cmnd_str); +be_define_const_str(begin_multicast, "begin_multicast", 57647915u, 0, 15, &be_const_str_resp_cmnd_done); +be_define_const_str(bool, "bool", 3365180733u, 0, 4, &be_const_str_v); be_define_const_str(break, "break", 3378807160u, 58, 5, NULL); -be_define_const_str(bri, "bri", 2112284244u, 0, 3, &be_const_str_memory); -be_define_const_str(bus, "bus", 1607822841u, 0, 3, NULL); -be_define_const_str(button_pressed, "button_pressed", 1694209616u, 0, 14, &be_const_str_calldepth); -be_define_const_str(byte, "byte", 1683620383u, 0, 4, NULL); -be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, &be_const_str_eth); -be_define_const_str(c, "c", 3859557458u, 0, 1, &be_const_str_fromstring); -be_define_const_str(call, "call", 3018949801u, 0, 4, &be_const_str_get_height); -be_define_const_str(call_native, "call_native", 1389147405u, 0, 11, &be_const_str_floor); -be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_cb); -be_define_const_str(can_show, "can_show", 960091187u, 0, 8, &be_const_str_lv_wifi_arcs_icon); -be_define_const_str(cb, "cb", 1428787088u, 0, 2, &be_const_str_get_percentage); -be_define_const_str(cb_do_nothing, "cb_do_nothing", 1488730702u, 0, 13, &be_const_str_web_send); -be_define_const_str(cb_event_closure, "cb_event_closure", 3828267325u, 0, 16, &be_const_str_content_stop); -be_define_const_str(cb_obj, "cb_obj", 1195696482u, 0, 6, &be_const_str_print); -be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_lv_extra); -be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_depower); -be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, NULL); -be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, &be_const_str_montserrat_font); +be_define_const_str(bri, "bri", 2112284244u, 0, 3, NULL); +be_define_const_str(bus, "bus", 1607822841u, 0, 3, &be_const_str_content_start); +be_define_const_str(button_pressed, "button_pressed", 1694209616u, 0, 14, NULL); +be_define_const_str(byte, "byte", 1683620383u, 0, 4, &be_const_str_response_append); +be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, &be_const_str_cb); +be_define_const_str(c, "c", 3859557458u, 0, 1, NULL); +be_define_const_str(call, "call", 3018949801u, 0, 4, &be_const_str_tele); +be_define_const_str(call_native, "call_native", 1389147405u, 0, 11, NULL); +be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, NULL); +be_define_const_str(can_show, "can_show", 960091187u, 0, 8, &be_const_str_min); +be_define_const_str(cb, "cb", 1428787088u, 0, 2, &be_const_str_yield); +be_define_const_str(cb_do_nothing, "cb_do_nothing", 1488730702u, 0, 13, &be_const_str_target); +be_define_const_str(cb_event_closure, "cb_event_closure", 3828267325u, 0, 16, NULL); +be_define_const_str(cb_obj, "cb_obj", 1195696482u, 0, 6, NULL); +be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_reset); +be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_content_button); +be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, &be_const_str_event_send); +be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, NULL); be_define_const_str(class, "class", 2872970239u, 57, 5, NULL); -be_define_const_str(class_init_obj, "class_init_obj", 178410604u, 0, 14, &be_const_str_x1); -be_define_const_str(classname, "classname", 1998589948u, 0, 9, NULL); -be_define_const_str(classof, "classof", 1796577762u, 0, 7, &be_const_str_exec_rules); -be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_get_width); -be_define_const_str(clear_first_time, "clear_first_time", 632769909u, 0, 16, &be_const_str_r); -be_define_const_str(clear_to, "clear_to", 3528002130u, 0, 8, &be_const_str_geti); +be_define_const_str(class_init_obj, "class_init_obj", 178410604u, 0, 14, &be_const_str_string); +be_define_const_str(classname, "classname", 1998589948u, 0, 9, &be_const_str_lv_wifi_bars_icon); +be_define_const_str(classof, "classof", 1796577762u, 0, 7, &be_const_str_lv_solidified); +be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_get_style_pad_right); +be_define_const_str(clear_first_time, "clear_first_time", 632769909u, 0, 16, &be_const_str__X7B_X7D); +be_define_const_str(clear_to, "clear_to", 3528002130u, 0, 8, &be_const_str_cos); be_define_const_str(clock_icon, "clock_icon", 544669651u, 0, 10, NULL); -be_define_const_str(close, "close", 667630371u, 0, 5, NULL); -be_define_const_str(closure, "closure", 1548407746u, 0, 7, &be_const_str_widget_event_cb); +be_define_const_str(close, "close", 667630371u, 0, 5, &be_const_str_hour); +be_define_const_str(closure, "closure", 1548407746u, 0, 7, &be_const_str_delay); be_define_const_str(cmd, "cmd", 4136785899u, 0, 3, NULL); -be_define_const_str(cmd_res, "cmd_res", 921166762u, 0, 7, &be_const_str_deinit); -be_define_const_str(code, "code", 4180765940u, 0, 4, &be_const_str_cosh); -be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, &be_const_str_isrunning); -be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_get_style_bg_color); -be_define_const_str(color, "color", 1031692888u, 0, 5, NULL); -be_define_const_str(compile, "compile", 1000265118u, 0, 7, &be_const_str_connection_error); -be_define_const_str(compress, "compress", 2818084237u, 0, 8, &be_const_str_tostring); -be_define_const_str(concat, "concat", 4124019837u, 0, 6, NULL); -be_define_const_str(connect, "connect", 2866859257u, 0, 7, NULL); -be_define_const_str(connected, "connected", 1424938192u, 0, 9, NULL); -be_define_const_str(connection_error, "connection_error", 1358926260u, 0, 16, &be_const_str_kv); +be_define_const_str(cmd_res, "cmd_res", 921166762u, 0, 7, &be_const_str_write8); +be_define_const_str(code, "code", 4180765940u, 0, 4, NULL); +be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, &be_const_str_range); +be_define_const_str(collect, "collect", 2399039025u, 0, 7, NULL); +be_define_const_str(color, "color", 1031692888u, 0, 5, &be_const_str_exp); +be_define_const_str(compile, "compile", 1000265118u, 0, 7, NULL); +be_define_const_str(compress, "compress", 2818084237u, 0, 8, NULL); +be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_remote_ip); +be_define_const_str(connect, "connect", 2866859257u, 0, 7, &be_const_str_srand); +be_define_const_str(connected, "connected", 1424938192u, 0, 9, &be_const_str_continue); +be_define_const_str(connection_error, "connection_error", 1358926260u, 0, 16, &be_const_str_load_freetype_font); be_define_const_str(constructor_cb, "constructor_cb", 2489105297u, 0, 14, NULL); -be_define_const_str(contains, "contains", 1825239352u, 0, 8, NULL); -be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, &be_const_str_widget_struct_default); -be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, NULL); -be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, &be_const_str_lv_wifi_arcs); -be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, &be_const_str_wifi_bars_icon); -be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, &be_const_str_wire1); -be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, &be_const_str_from_to); +be_define_const_str(consume_mono, "consume_mono", 3577563453u, 0, 12, NULL); +be_define_const_str(consume_silence, "consume_silence", 1445390925u, 0, 15, NULL); +be_define_const_str(consume_stereo, "consume_stereo", 1834661098u, 0, 14, &be_const_str_id); +be_define_const_str(contains, "contains", 1825239352u, 0, 8, &be_const_str_get_style_line_color); +be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, &be_const_str_engine); +be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, &be_const_str_due); +be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, &be_const_str_editable); +be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, NULL); +be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, &be_const_str_content_stop); +be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, &be_const_str_readline); be_define_const_str(continue, "continue", 2977070660u, 59, 8, NULL); -be_define_const_str(coord_arr, "coord_arr", 4189963658u, 0, 9, &be_const_str_lv_solidified); -be_define_const_str(copy, "copy", 3848464964u, 0, 4, NULL); -be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_every_100ms); -be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_path); -be_define_const_str(couldn_X27t_X20not_X20initialize_X20noepixelbus, "couldn't not initialize noepixelbus", 2536490812u, 0, 35, &be_const_str_write_gpio); -be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_font_montserrat); -be_define_const_str(counters, "counters", 4095866864u, 0, 8, &be_const_str_detect); -be_define_const_str(create_custom_widget, "create_custom_widget", 1140594778u, 0, 20, &be_const_str_show); -be_define_const_str(create_matrix, "create_matrix", 3528185923u, 0, 13, &be_const_str_tcpclient); -be_define_const_str(create_segment, "create_segment", 3863522719u, 0, 14, NULL); -be_define_const_str(ctor, "ctor", 375399343u, 0, 4, &be_const_str_get_aps_voltage); -be_define_const_str(ctypes_bytes, "ctypes_bytes", 3879019703u, 0, 12, &be_const_str_lv_coord_arr); -be_define_const_str(ctypes_bytes_dyn, "ctypes_bytes_dyn", 915205307u, 0, 16, &be_const_str_draw_line_dsc); -be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_except); -be_define_const_str(day, "day", 3830391293u, 0, 3, &be_const_str_i2c_enabled); -be_define_const_str(debug, "debug", 1483009432u, 0, 5, &be_const_str_isinstance); -be_define_const_str(decompress, "decompress", 2887031650u, 0, 10, &be_const_str_rand); -be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, &be_const_str_lv_point_arr); +be_define_const_str(coord_arr, "coord_arr", 4189963658u, 0, 9, &be_const_str_lv_event_cb); +be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_digital_read); +be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_imax); +be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_udp); +be_define_const_str(couldn_X27t_X20not_X20initialize_X20noepixelbus, "couldn't not initialize noepixelbus", 2536490812u, 0, 35, &be_const_str_hex); +be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_decompress); +be_define_const_str(counters, "counters", 4095866864u, 0, 8, &be_const_str_set_alternate); +be_define_const_str(create_custom_widget, "create_custom_widget", 1140594778u, 0, 20, &be_const_str_toptr); +be_define_const_str(create_matrix, "create_matrix", 3528185923u, 0, 13, &be_const_str_set_time); +be_define_const_str(create_segment, "create_segment", 3863522719u, 0, 14, &be_const_str_get_warning_level); +be_define_const_str(ctor, "ctor", 375399343u, 0, 4, &be_const_str_getbits); +be_define_const_str(ctypes_bytes, "ctypes_bytes", 3879019703u, 0, 12, NULL); +be_define_const_str(ctypes_bytes_dyn, "ctypes_bytes_dyn", 915205307u, 0, 16, NULL); +be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_get_bat_voltage); +be_define_const_str(day, "day", 3830391293u, 0, 3, &be_const_str__X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); +be_define_const_str(debug, "debug", 1483009432u, 0, 5, &be_const_str_while); +be_define_const_str(decode, "decode", 3007678287u, 0, 6, &be_const_str_read13); +be_define_const_str(decompress, "decompress", 2887031650u, 0, 10, &be_const_str_lv_obj_class); +be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, &be_const_str_set_percentage); be_define_const_str(def, "def", 3310976652u, 55, 3, NULL); -be_define_const_str(deg, "deg", 3327754271u, 0, 3, NULL); -be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_item); -be_define_const_str(del, "del", 3478752842u, 0, 3, &be_const_str_set_width); -be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_for); -be_define_const_str(delete_all_configs, "delete_all_configs", 2382067578u, 0, 18, NULL); +be_define_const_str(deg, "deg", 3327754271u, 0, 3, &be_const_str_make_cb); +be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_destructor_cb); +be_define_const_str(del, "del", 3478752842u, 0, 3, NULL); +be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_widget_width_def); +be_define_const_str(delete_all_configs, "delete_all_configs", 2382067578u, 0, 18, &be_const_str_get_light); be_define_const_str(depower, "depower", 3563819571u, 0, 7, NULL); -be_define_const_str(deregister_obj, "deregister_obj", 3909966993u, 0, 14, &be_const_str_true); +be_define_const_str(deregister_obj, "deregister_obj", 3909966993u, 0, 14, NULL); be_define_const_str(destructor_cb, "destructor_cb", 1930283190u, 0, 13, NULL); -be_define_const_str(detect, "detect", 8884370u, 0, 6, &be_const_str_set_first_time); -be_define_const_str(detected_X20on_X20bus, "detected on bus", 1432002650u, 0, 15, NULL); -be_define_const_str(digital_read, "digital_read", 3585496928u, 0, 12, NULL); -be_define_const_str(digital_write, "digital_write", 3435877979u, 0, 13, &be_const_str_widget_cb); -be_define_const_str(dirty, "dirty", 2667581083u, 0, 5, &be_const_str_erase); -be_define_const_str(display, "display", 1164572437u, 0, 7, &be_const_str_iter); -be_define_const_str(display_X2Eini, "display.ini", 2646174001u, 0, 11, &be_const_str_is_running); +be_define_const_str(detect, "detect", 8884370u, 0, 6, &be_const_str_name); +be_define_const_str(detected_X20on_X20bus, "detected on bus", 1432002650u, 0, 15, &be_const_str_preinit); +be_define_const_str(digital_read, "digital_read", 3585496928u, 0, 12, &be_const_str_lv_); +be_define_const_str(digital_write, "digital_write", 3435877979u, 0, 13, &be_const_str_pixel_size); +be_define_const_str(dirty, "dirty", 2667581083u, 0, 5, &be_const_str_set_text); +be_define_const_str(display, "display", 1164572437u, 0, 7, &be_const_str_event_cb); +be_define_const_str(display_X2Eini, "display.ini", 2646174001u, 0, 11, NULL); be_define_const_str(do, "do", 1646057492u, 65, 2, NULL); -be_define_const_str(draw_arc, "draw_arc", 1828251676u, 0, 8, &be_const_str_lv_point); -be_define_const_str(draw_line, "draw_line", 1634465686u, 0, 9, NULL); -be_define_const_str(draw_line_dsc, "draw_line_dsc", 4220676203u, 0, 13, &be_const_str_exec_tele); -be_define_const_str(draw_line_dsc_init, "draw_line_dsc_init", 3866693646u, 0, 18, &be_const_str_enabled); -be_define_const_str(due, "due", 3895530293u, 0, 3, &be_const_str_get_free_heap); +be_define_const_str(draw_arc, "draw_arc", 1828251676u, 0, 8, NULL); +be_define_const_str(draw_line, "draw_line", 1634465686u, 0, 9, &be_const_str_run_deferred); +be_define_const_str(draw_line_dsc, "draw_line_dsc", 4220676203u, 0, 13, &be_const_str_tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29); +be_define_const_str(draw_line_dsc_init, "draw_line_dsc_init", 3866693646u, 0, 18, &be_const_str_false); +be_define_const_str(due, "due", 3895530293u, 0, 3, &be_const_str_get_bat_current); be_define_const_str(dump, "dump", 3663001223u, 0, 4, NULL); -be_define_const_str(duration, "duration", 799079693u, 0, 8, &be_const_str_get_input_power_status); -be_define_const_str(editable, "editable", 60532369u, 0, 8, NULL); -be_define_const_str(elements_X20must_X20be_X20a_X20lv_point, "elements must be a lv_point", 1415796524u, 0, 27, &be_const_str_every_50ms); +be_define_const_str(duration, "duration", 799079693u, 0, 8, &be_const_str_function); +be_define_const_str(editable, "editable", 60532369u, 0, 8, &be_const_str_get_vbus_voltage); +be_define_const_str(elements_X20must_X20be_X20a_X20lv_point, "elements must be a lv_point", 1415796524u, 0, 27, NULL); be_define_const_str(elif, "elif", 3232090307u, 51, 4, NULL); -be_define_const_str(else, "else", 3183434736u, 52, 4, &be_const_str_nil); -be_define_const_str(enabled, "enabled", 49525662u, 0, 7, &be_const_str_webclient); -be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, NULL); +be_define_const_str(else, "else", 3183434736u, 52, 4, NULL); +be_define_const_str(enabled, "enabled", 49525662u, 0, 7, NULL); +be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, &be_const_str_find_op); be_define_const_str(end, "end", 1787721130u, 56, 3, NULL); -be_define_const_str(energy_struct, "energy_struct", 1655792843u, 0, 13, &be_const_str_set_style_bg_color); -be_define_const_str(engine, "engine", 3993360443u, 0, 6, &be_const_str_reset_search); -be_define_const_str(erase, "erase", 1010949589u, 0, 5, &be_const_str_widget_event_impl); +be_define_const_str(energy_struct, "energy_struct", 1655792843u, 0, 13, &be_const_str_lv_wifi_arcs_icon); +be_define_const_str(engine, "engine", 3993360443u, 0, 6, &be_const_str_f); +be_define_const_str(erase, "erase", 1010949589u, 0, 5, &be_const_str_internal_error); be_define_const_str(escape, "escape", 2652972038u, 0, 6, NULL); -be_define_const_str(eth, "eth", 2191266556u, 0, 3, &be_const_str_find); +be_define_const_str(eth, "eth", 2191266556u, 0, 3, NULL); be_define_const_str(event, "event", 4264611999u, 0, 5, NULL); -be_define_const_str(event_cb, "event_cb", 3128698017u, 0, 8, &be_const_str_percentage); -be_define_const_str(event_send, "event_send", 598925582u, 0, 10, &be_const_str_remove_rule); -be_define_const_str(every_100ms, "every_100ms", 1546407804u, 0, 11, NULL); -be_define_const_str(every_50ms, "every_50ms", 2383884008u, 0, 10, &be_const_str_insert); -be_define_const_str(every_second, "every_second", 2075451465u, 0, 12, NULL); +be_define_const_str(event_cb, "event_cb", 3128698017u, 0, 8, NULL); +be_define_const_str(event_send, "event_send", 598925582u, 0, 10, &be_const_str_publish_result); +be_define_const_str(every_100ms, "every_100ms", 1546407804u, 0, 11, &be_const_str_path); +be_define_const_str(every_50ms, "every_50ms", 2383884008u, 0, 10, &be_const_str_tomap); +be_define_const_str(every_second, "every_second", 2075451465u, 0, 12, &be_const_str_persist); be_define_const_str(except, "except", 950914032u, 69, 6, NULL); -be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, &be_const_str_flush); -be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, NULL); +be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, NULL); +be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, &be_const_str_introspect); be_define_const_str(exec_tele, "exec_tele", 1020751601u, 0, 9, &be_const_str_get); -be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_make_cb); +be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_remove_timer); be_define_const_str(exp, "exp", 1923516200u, 0, 3, NULL); -be_define_const_str(f, "f", 3809224601u, 0, 1, &be_const_str_tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29); +be_define_const_str(f, "f", 3809224601u, 0, 1, NULL); be_define_const_str(false, "false", 184981848u, 62, 5, NULL); -be_define_const_str(file, "file", 2867484483u, 0, 4, &be_const_str_leds); -be_define_const_str(file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27, "file extension is not '.be' or '.bec'", 3095719639u, 0, 37, &be_const_str_font_seg7); -be_define_const_str(files, "files", 1055342736u, 0, 5, &be_const_str_reapply); -be_define_const_str(find, "find", 3186656602u, 0, 4, NULL); -be_define_const_str(find_key_i, "find_key_i", 850136726u, 0, 10, &be_const_str_json_append); -be_define_const_str(find_op, "find_op", 3766713376u, 0, 7, &be_const_str_if); -be_define_const_str(finish, "finish", 1494643858u, 0, 6, &be_const_str_break); -be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_issubclass); -be_define_const_str(flush, "flush", 3002334877u, 0, 5, &be_const_str_json_fdump_map); -be_define_const_str(font_montserrat, "font_montserrat", 3790091262u, 0, 15, &be_const_str_resp_cmnd_str); -be_define_const_str(font_seg7, "font_seg7", 1551771835u, 0, 9, &be_const_str_ins_time); +be_define_const_str(file, "file", 2867484483u, 0, 4, &be_const_str_read); +be_define_const_str(file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27, "file extension is not '.be' or '.bec'", 3095719639u, 0, 37, &be_const_str_sqrt); +be_define_const_str(files, "files", 1055342736u, 0, 5, NULL); +be_define_const_str(find, "find", 3186656602u, 0, 4, &be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E); +be_define_const_str(find_key_i, "find_key_i", 850136726u, 0, 10, NULL); +be_define_const_str(find_op, "find_op", 3766713376u, 0, 7, &be_const_str_set_ldo_voltage); +be_define_const_str(finish, "finish", 1494643858u, 0, 6, &be_const_str_get_width); +be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_real); +be_define_const_str(flush, "flush", 3002334877u, 0, 5, NULL); +be_define_const_str(font_montserrat, "font_montserrat", 3790091262u, 0, 15, &be_const_str_has_arg); +be_define_const_str(font_seg7, "font_seg7", 1551771835u, 0, 9, NULL); be_define_const_str(for, "for", 2901640080u, 54, 3, NULL); -be_define_const_str(format, "format", 3114108242u, 0, 6, NULL); +be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_lv_extra); be_define_const_str(from_to, "from_to", 21625507u, 0, 7, NULL); -be_define_const_str(fromb64, "fromb64", 2717019639u, 0, 7, &be_const_str_read_sensors); -be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, NULL); -be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, &be_const_str_get_switch); -be_define_const_str(function, "function", 2664841801u, 0, 8, &be_const_str_member); -be_define_const_str(gamma, "gamma", 3492353034u, 0, 5, NULL); +be_define_const_str(fromb64, "fromb64", 2717019639u, 0, 7, &be_const_str_reverse); +be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, &be_const_str_get_size); +be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, &be_const_str_ip); +be_define_const_str(function, "function", 2664841801u, 0, 8, &be_const_str_light); +be_define_const_str(gamma, "gamma", 3492353034u, 0, 5, &be_const_str_set_style_line_color); be_define_const_str(gamma10, "gamma10", 3472052483u, 0, 7, NULL); -be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_lv_obj_class); +be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_get_temp); be_define_const_str(gc, "gc", 1042313471u, 0, 2, NULL); -be_define_const_str(gen_cb, "gen_cb", 3245227551u, 0, 6, &be_const_str_module); -be_define_const_str(get, "get", 1410115415u, 0, 3, NULL); -be_define_const_str(get_alternate, "get_alternate", 1450148894u, 0, 13, &be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032); -be_define_const_str(get_aps_voltage, "get_aps_voltage", 2293036435u, 0, 15, &be_const_str_point); -be_define_const_str(get_bat_charge_current, "get_bat_charge_current", 1385293050u, 0, 22, &be_const_str_init_draw_line_dsc); -be_define_const_str(get_bat_current, "get_bat_current", 1912106073u, 0, 15, &be_const_str_millis); +be_define_const_str(gen_cb, "gen_cb", 3245227551u, 0, 6, &be_const_str_get_bri); +be_define_const_str(get, "get", 1410115415u, 0, 3, &be_const_str_remote_port); +be_define_const_str(get_alternate, "get_alternate", 1450148894u, 0, 13, &be_const_str_get_coords); +be_define_const_str(get_aps_voltage, "get_aps_voltage", 2293036435u, 0, 15, NULL); +be_define_const_str(get_bat_charge_current, "get_bat_charge_current", 1385293050u, 0, 22, &be_const_str_gpio); +be_define_const_str(get_bat_current, "get_bat_current", 1912106073u, 0, 15, &be_const_str_widget_height_def); be_define_const_str(get_bat_power, "get_bat_power", 3067374853u, 0, 13, NULL); -be_define_const_str(get_bat_voltage, "get_bat_voltage", 706676538u, 0, 15, &be_const_str_scan); -be_define_const_str(get_battery_chargin_status, "get_battery_chargin_status", 2233241571u, 0, 26, &be_const_str_widget_height_def); -be_define_const_str(get_bri, "get_bri", 2041809895u, 0, 7, &be_const_str_json_fdump_list); -be_define_const_str(get_cb_list, "get_cb_list", 1605319182u, 0, 11, &be_const_str_set_chg_current); -be_define_const_str(get_coords, "get_coords", 1044089006u, 0, 10, &be_const_str_global); -be_define_const_str(get_current_module_name, "get_current_module_name", 2379270740u, 0, 23, &be_const_str_nan); -be_define_const_str(get_current_module_path, "get_current_module_path", 3206673408u, 0, 23, &be_const_str_preinit); -be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, &be_const_str_minute); -be_define_const_str(get_height, "get_height", 3571755523u, 0, 10, &be_const_str_light); -be_define_const_str(get_input_power_status, "get_input_power_status", 4102829177u, 0, 22, &be_const_str_time_dump); +be_define_const_str(get_bat_voltage, "get_bat_voltage", 706676538u, 0, 15, &be_const_str_write_gpio); +be_define_const_str(get_battery_chargin_status, "get_battery_chargin_status", 2233241571u, 0, 26, &be_const_str_millis); +be_define_const_str(get_bri, "get_bri", 2041809895u, 0, 7, &be_const_str_strptime); +be_define_const_str(get_cb_list, "get_cb_list", 1605319182u, 0, 11, &be_const_str_state); +be_define_const_str(get_coords, "get_coords", 1044089006u, 0, 10, &be_const_str_on); +be_define_const_str(get_current_module_name, "get_current_module_name", 2379270740u, 0, 23, &be_const_str_isnan); +be_define_const_str(get_current_module_path, "get_current_module_path", 3206673408u, 0, 23, &be_const_str_lv_clock_icon); +be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, NULL); +be_define_const_str(get_height, "get_height", 3571755523u, 0, 10, NULL); +be_define_const_str(get_input_power_status, "get_input_power_status", 4102829177u, 0, 22, NULL); be_define_const_str(get_light, "get_light", 381930476u, 0, 9, NULL); -be_define_const_str(get_object_from_ptr, "get_object_from_ptr", 2345019201u, 0, 19, &be_const_str_persist); -be_define_const_str(get_option, "get_option", 2123730033u, 0, 10, &be_const_str_init); +be_define_const_str(get_object_from_ptr, "get_object_from_ptr", 2345019201u, 0, 19, NULL); +be_define_const_str(get_option, "get_option", 2123730033u, 0, 10, &be_const_str_input); be_define_const_str(get_percentage, "get_percentage", 2880483992u, 0, 14, NULL); -be_define_const_str(get_pixel_color, "get_pixel_color", 337490048u, 0, 15, &be_const_str_sys); -be_define_const_str(get_power, "get_power", 3009799377u, 0, 9, NULL); -be_define_const_str(get_size, "get_size", 2803644713u, 0, 8, &be_const_str_widget_instance_size); -be_define_const_str(get_string, "get_string", 4195847969u, 0, 10, NULL); -be_define_const_str(get_style_bg_color, "get_style_bg_color", 964794381u, 0, 18, NULL); -be_define_const_str(get_style_line_color, "get_style_line_color", 805371932u, 0, 20, NULL); -be_define_const_str(get_style_pad_right, "get_style_pad_right", 3150287466u, 0, 19, &be_const_str_target); -be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, &be_const_str_lv_event_cb); -be_define_const_str(get_temp, "get_temp", 3370919486u, 0, 8, &be_const_str_web_add_handler); -be_define_const_str(get_vbus_current, "get_vbus_current", 1205347942u, 0, 16, &be_const_str_param); -be_define_const_str(get_vbus_voltage, "get_vbus_voltage", 2398210401u, 0, 16, NULL); -be_define_const_str(get_warning_level, "get_warning_level", 1737834441u, 0, 17, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson); -be_define_const_str(get_width, "get_width", 3293417300u, 0, 9, NULL); -be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, &be_const_str_the_X20second_X20argument_X20is_X20not_X20a_X20function); -be_define_const_str(geti, "geti", 2381006490u, 0, 4, &be_const_str_rotate); +be_define_const_str(get_pixel_color, "get_pixel_color", 337490048u, 0, 15, &be_const_str_is_first_time); +be_define_const_str(get_power, "get_power", 3009799377u, 0, 9, &be_const_str_init); +be_define_const_str(get_size, "get_size", 2803644713u, 0, 8, NULL); +be_define_const_str(get_string, "get_string", 4195847969u, 0, 10, &be_const_str_stop); +be_define_const_str(get_style_bg_color, "get_style_bg_color", 964794381u, 0, 18, &be_const_str_time_dump); +be_define_const_str(get_style_line_color, "get_style_line_color", 805371932u, 0, 20, &be_const_str_set_rate); +be_define_const_str(get_style_pad_right, "get_style_pad_right", 3150287466u, 0, 19, &be_const_str_pin_used); +be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, &be_const_str_set_width); +be_define_const_str(get_temp, "get_temp", 3370919486u, 0, 8, NULL); +be_define_const_str(get_vbus_current, "get_vbus_current", 1205347942u, 0, 16, &be_const_str_local); +be_define_const_str(get_vbus_voltage, "get_vbus_voltage", 2398210401u, 0, 16, &be_const_str_tostring); +be_define_const_str(get_warning_level, "get_warning_level", 1737834441u, 0, 17, NULL); +be_define_const_str(get_width, "get_width", 3293417300u, 0, 9, &be_const_str_obj_class_create_obj); +be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, NULL); +be_define_const_str(geti, "geti", 2381006490u, 0, 4, &be_const_str_pop); be_define_const_str(global, "global", 503252654u, 0, 6, NULL); -be_define_const_str(gpio, "gpio", 2638155258u, 0, 4, &be_const_str_line_dsc); -be_define_const_str(group_def, "group_def", 1524213328u, 0, 9, &be_const_str_super); -be_define_const_str(h, "h", 3977000791u, 0, 1, &be_const_str_setbits); +be_define_const_str(gpio, "gpio", 2638155258u, 0, 4, &be_const_str_set_dc_voltage); +be_define_const_str(group_def, "group_def", 1524213328u, 0, 9, &be_const_str_offset); +be_define_const_str(h, "h", 3977000791u, 0, 1, &be_const_str_setmember); be_define_const_str(has, "has", 3988721635u, 0, 3, NULL); -be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, &be_const_str_io_error); -be_define_const_str(height_def, "height_def", 2348238838u, 0, 10, NULL); -be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_zip); -be_define_const_str(hour, "hour", 3053661199u, 0, 4, NULL); -be_define_const_str(hs2rgb, "hs2rgb", 1040816349u, 0, 6, NULL); -be_define_const_str(https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf, "https://raw.githubusercontent.com/tasmota/autoconf/main/%s/%s.autoconf", 2743526309u, 0, 70, &be_const_str_set_bri); +be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, &be_const_str__X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); +be_define_const_str(height_def, "height_def", 2348238838u, 0, 10, &be_const_str_memory); +be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_k); +be_define_const_str(hour, "hour", 3053661199u, 0, 4, &be_const_str_screenshot); +be_define_const_str(hs2rgb, "hs2rgb", 1040816349u, 0, 6, &be_const_str_point_arr); +be_define_const_str(https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf, "https://raw.githubusercontent.com/tasmota/autoconf/main/%s/%s.autoconf", 2743526309u, 0, 70, &be_const_str_lv_signal_bars); be_define_const_str(https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson, "https://raw.githubusercontent.com/tasmota/autoconf/main/%s_manifest.json", 3657552045u, 0, 72, NULL); be_define_const_str(i2c_enabled, "i2c_enabled", 218388101u, 0, 11, NULL); -be_define_const_str(id, "id", 926444256u, 0, 2, &be_const_str_to_gamma); +be_define_const_str(id, "id", 926444256u, 0, 2, &be_const_str_wifi_arcs); be_define_const_str(if, "if", 959999494u, 50, 2, NULL); -be_define_const_str(imax, "imax", 3084515410u, 0, 4, NULL); -be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_json_fdump); +be_define_const_str(imax, "imax", 3084515410u, 0, 4, &be_const_str_write); +be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_read32); be_define_const_str(import, "import", 288002260u, 66, 6, NULL); -be_define_const_str(init, "init", 380752755u, 0, 4, NULL); +be_define_const_str(init, "init", 380752755u, 0, 4, &be_const_str_strftime); be_define_const_str(init_draw_line_dsc, "init_draw_line_dsc", 2507936040u, 0, 18, NULL); -be_define_const_str(input, "input", 4191711099u, 0, 5, NULL); -be_define_const_str(ins_goto, "ins_goto", 1342843963u, 0, 8, NULL); -be_define_const_str(ins_ramp, "ins_ramp", 1068049360u, 0, 8, &be_const_str_set_style_line_color); -be_define_const_str(ins_time, "ins_time", 2980245553u, 0, 8, NULL); -be_define_const_str(insert, "insert", 3332609576u, 0, 6, &be_const_str_lv_event); -be_define_const_str(instance, "instance", 193386898u, 0, 8, NULL); -be_define_const_str(instance_size, "instance_size", 4280269518u, 0, 13, &be_const_str_sec); -be_define_const_str(int, "int", 2515107422u, 0, 3, &be_const_str_on); -be_define_const_str(internal_error, "internal_error", 2519158169u, 0, 14, &be_const_str_stop); -be_define_const_str(introspect, "introspect", 164638290u, 0, 10, &be_const_str_reset); -be_define_const_str(invalidate, "invalidate", 2649734928u, 0, 10, &be_const_str_pop); -be_define_const_str(io_error, "io_error", 1970281036u, 0, 8, &be_const_str_set_dcdc_enable); -be_define_const_str(ip, "ip", 1261996636u, 0, 2, &be_const_str_top); +be_define_const_str(input, "input", 4191711099u, 0, 5, &be_const_str_read24); +be_define_const_str(ins_goto, "ins_goto", 1342843963u, 0, 8, &be_const_str_try_rule); +be_define_const_str(ins_ramp, "ins_ramp", 1068049360u, 0, 8, &be_const_str_pin); +be_define_const_str(ins_time, "ins_time", 2980245553u, 0, 8, &be_const_str_log); +be_define_const_str(insert, "insert", 3332609576u, 0, 6, NULL); +be_define_const_str(instance, "instance", 193386898u, 0, 8, &be_const_str_param); +be_define_const_str(instance_size, "instance_size", 4280269518u, 0, 13, &be_const_str_do); +be_define_const_str(int, "int", 2515107422u, 0, 3, NULL); +be_define_const_str(internal_error, "internal_error", 2519158169u, 0, 14, &be_const_str_month); +be_define_const_str(introspect, "introspect", 164638290u, 0, 10, &be_const_str_sec); +be_define_const_str(invalidate, "invalidate", 2649734928u, 0, 10, &be_const_str_publish); +be_define_const_str(io_error, "io_error", 1970281036u, 0, 8, NULL); +be_define_const_str(ip, "ip", 1261996636u, 0, 2, &be_const_str_register_obj); be_define_const_str(is_dirty, "is_dirty", 418034110u, 0, 8, NULL); -be_define_const_str(is_first_time, "is_first_time", 275242384u, 0, 13, NULL); -be_define_const_str(is_running, "is_running", 2226847261u, 0, 10, &be_const_str_readline); -be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, &be_const_str_signal_bars); -be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, &be_const_str_lv_wifi_bars); -be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, &be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E); -be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, NULL); -be_define_const_str(item, "item", 2671260646u, 0, 4, NULL); -be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_load); -be_define_const_str(json, "json", 916562499u, 0, 4, &be_const_str_redirect); +be_define_const_str(is_first_time, "is_first_time", 275242384u, 0, 13, &be_const_str_x1); +be_define_const_str(is_running, "is_running", 2226847261u, 0, 10, NULL); +be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, &be_const_str_set_channels); +be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, &be_const_str_update); +be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, &be_const_str_round_start); +be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, &be_const_str_set_bri); +be_define_const_str(item, "item", 2671260646u, 0, 4, &be_const_str_log10); +be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E); +be_define_const_str(json, "json", 916562499u, 0, 4, NULL); be_define_const_str(json_append, "json_append", 3002019284u, 0, 11, NULL); -be_define_const_str(json_fdump, "json_fdump", 1694216580u, 0, 10, &be_const_str_reverse_gamma10); -be_define_const_str(json_fdump_any, "json_fdump_any", 3348629385u, 0, 14, NULL); -be_define_const_str(json_fdump_list, "json_fdump_list", 3903879853u, 0, 15, NULL); -be_define_const_str(json_fdump_map, "json_fdump_map", 4091954653u, 0, 14, &be_const_str_lv_obj); -be_define_const_str(k, "k", 3993778410u, 0, 1, &be_const_str_write_bytes); -be_define_const_str(keys, "keys", 4182378701u, 0, 4, NULL); -be_define_const_str(kv, "kv", 1497177492u, 0, 2, &be_const_str_matrix); -be_define_const_str(last_modified, "last_modified", 772177145u, 0, 13, &be_const_str_return); -be_define_const_str(leds, "leds", 558858555u, 0, 4, &be_const_str_lv); -be_define_const_str(length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032, "length in bits must be between 0 and 32", 2584509128u, 0, 39, &be_const_str_tob64); -be_define_const_str(light, "light", 3801947695u, 0, 5, &be_const_str_resize); -be_define_const_str(line_dsc, "line_dsc", 4094490978u, 0, 8, NULL); -be_define_const_str(list, "list", 217798785u, 0, 4, &be_const_str_upper); -be_define_const_str(list_handlers, "list_handlers", 593774371u, 0, 13, &be_const_str_unknown_X20instruction); +be_define_const_str(json_fdump, "json_fdump", 1694216580u, 0, 10, NULL); +be_define_const_str(json_fdump_any, "json_fdump_any", 3348629385u, 0, 14, &be_const_str_leds); +be_define_const_str(json_fdump_list, "json_fdump_list", 3903879853u, 0, 15, &be_const_str_value_error); +be_define_const_str(json_fdump_map, "json_fdump_map", 4091954653u, 0, 14, &be_const_str_page_autoconf_mgr); +be_define_const_str(k, "k", 3993778410u, 0, 1, NULL); +be_define_const_str(keys, "keys", 4182378701u, 0, 4, &be_const_str_resp_cmnd_error); +be_define_const_str(kv, "kv", 1497177492u, 0, 2, &be_const_str_rand); +be_define_const_str(last_modified, "last_modified", 772177145u, 0, 13, &be_const_str_p2); +be_define_const_str(leds, "leds", 558858555u, 0, 4, &be_const_str_url_encode); +be_define_const_str(length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032, "length in bits must be between 0 and 32", 2584509128u, 0, 39, &be_const_str_signal_bars); +be_define_const_str(light, "light", 3801947695u, 0, 5, NULL); +be_define_const_str(line_dsc, "line_dsc", 4094490978u, 0, 8, &be_const_str_nan); +be_define_const_str(list, "list", 217798785u, 0, 4, &be_const_str_sin); +be_define_const_str(list_handlers, "list_handlers", 593774371u, 0, 13, NULL); be_define_const_str(listdir, "listdir", 2005220720u, 0, 7, NULL); be_define_const_str(load, "load", 3859241449u, 0, 4, NULL); -be_define_const_str(load_freetype_font, "load_freetype_font", 2368447592u, 0, 18, &be_const_str_quality); -be_define_const_str(load_templates, "load_templates", 3513870133u, 0, 14, NULL); -be_define_const_str(local, "local", 2621662984u, 0, 5, &be_const_str_wire); -be_define_const_str(log, "log", 1062293841u, 0, 3, NULL); -be_define_const_str(log10, "log10", 2346846000u, 0, 5, NULL); -be_define_const_str(loop, "loop", 3723446379u, 0, 4, &be_const_str_return_X20code_X3D_X25i); -be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_round_start); -be_define_const_str(lv, "lv", 1529997255u, 0, 2, &be_const_str_strip); +be_define_const_str(load_freetype_font, "load_freetype_font", 2368447592u, 0, 18, NULL); +be_define_const_str(load_templates, "load_templates", 3513870133u, 0, 14, &be_const_str_module); +be_define_const_str(local, "local", 2621662984u, 0, 5, NULL); +be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_solidified); +be_define_const_str(log10, "log10", 2346846000u, 0, 5, &be_const_str_lv_point); +be_define_const_str(loop, "loop", 3723446379u, 0, 4, &be_const_str_wifi_bars); +be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_set_x); +be_define_const_str(lv, "lv", 1529997255u, 0, 2, &be_const_str_pc_abs); be_define_const_str(lv_, "lv_", 663721032u, 0, 3, NULL); be_define_const_str(lv_clock_icon, "lv_clock_icon", 3257216210u, 0, 13, NULL); -be_define_const_str(lv_coord_arr, "lv_coord_arr", 1197238601u, 0, 12, &be_const_str_wifi_bars); -be_define_const_str(lv_event, "lv_event", 2434089968u, 0, 8, &be_const_str_set_alternate); -be_define_const_str(lv_event_cb, "lv_event_cb", 2480731016u, 0, 11, NULL); -be_define_const_str(lv_extra, "lv_extra", 399561998u, 0, 8, &be_const_str_lv_signal_arcs); -be_define_const_str(lv_module_init, "lv_module_init", 1133027755u, 0, 14, &be_const_str_screenshot); -be_define_const_str(lv_obj, "lv_obj", 4257833149u, 0, 6, &be_const_str_valuer_error); -be_define_const_str(lv_obj_class, "lv_obj_class", 4039656294u, 0, 12, NULL); -be_define_const_str(lv_point, "lv_point", 4120221790u, 0, 8, &be_const_str_p1); -be_define_const_str(lv_point_arr, "lv_point_arr", 3959768858u, 0, 12, &be_const_str_yield); +be_define_const_str(lv_coord_arr, "lv_coord_arr", 1197238601u, 0, 12, NULL); +be_define_const_str(lv_event, "lv_event", 2434089968u, 0, 8, NULL); +be_define_const_str(lv_event_cb, "lv_event_cb", 2480731016u, 0, 11, &be_const_str_save_before_restart); +be_define_const_str(lv_extra, "lv_extra", 399561998u, 0, 8, NULL); +be_define_const_str(lv_module_init, "lv_module_init", 1133027755u, 0, 14, NULL); +be_define_const_str(lv_obj, "lv_obj", 4257833149u, 0, 6, &be_const_str_tolower); +be_define_const_str(lv_obj_class, "lv_obj_class", 4039656294u, 0, 12, &be_const_str_set_light); +be_define_const_str(lv_point, "lv_point", 4120221790u, 0, 8, &be_const_str_lv_wifi_bars); +be_define_const_str(lv_point_arr, "lv_point_arr", 3959768858u, 0, 12, NULL); be_define_const_str(lv_signal_arcs, "lv_signal_arcs", 2839156988u, 0, 14, NULL); -be_define_const_str(lv_signal_bars, "lv_signal_bars", 3513972559u, 0, 14, &be_const_str_remove_timer); -be_define_const_str(lv_solidified, "lv_solidified", 2274121310u, 0, 13, &be_const_str_publish); -be_define_const_str(lv_wifi_arcs, "lv_wifi_arcs", 2082091963u, 0, 12, &be_const_str_reverse); -be_define_const_str(lv_wifi_arcs_icon, "lv_wifi_arcs_icon", 1507982909u, 0, 17, &be_const_str_srand); -be_define_const_str(lv_wifi_bars, "lv_wifi_bars", 2109539196u, 0, 12, &be_const_str_resp_cmnd_failed); -be_define_const_str(lv_wifi_bars_icon, "lv_wifi_bars_icon", 2805815540u, 0, 17, NULL); -be_define_const_str(lvgl_event_dispatch, "lvgl_event_dispatch", 2104396622u, 0, 19, NULL); -be_define_const_str(make_cb, "make_cb", 71252785u, 0, 7, NULL); -be_define_const_str(map, "map", 3751997361u, 0, 3, NULL); +be_define_const_str(lv_signal_bars, "lv_signal_bars", 3513972559u, 0, 14, &be_const_str_stop_iteration); +be_define_const_str(lv_solidified, "lv_solidified", 2274121310u, 0, 13, &be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map); +be_define_const_str(lv_wifi_arcs, "lv_wifi_arcs", 2082091963u, 0, 12, &be_const_str_r); +be_define_const_str(lv_wifi_arcs_icon, "lv_wifi_arcs_icon", 1507982909u, 0, 17, &be_const_str_signal_arcs); +be_define_const_str(lv_wifi_bars, "lv_wifi_bars", 2109539196u, 0, 12, NULL); +be_define_const_str(lv_wifi_bars_icon, "lv_wifi_bars_icon", 2805815540u, 0, 17, &be_const_str_public_key); +be_define_const_str(lvgl_event_dispatch, "lvgl_event_dispatch", 2104396622u, 0, 19, &be_const_str_if); +be_define_const_str(make_cb, "make_cb", 71252785u, 0, 7, &be_const_str_widget_cb); +be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_valuer_error); be_define_const_str(math, "math", 4001929615u, 0, 4, NULL); -be_define_const_str(matrix, "matrix", 365099244u, 0, 6, &be_const_str_members); +be_define_const_str(matrix, "matrix", 365099244u, 0, 6, &be_const_str_pc); be_define_const_str(member, "member", 719708611u, 0, 6, NULL); -be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_skip); -be_define_const_str(memory, "memory", 2229924270u, 0, 6, &be_const_str_widget_dtor_impl); -be_define_const_str(millis, "millis", 1214679063u, 0, 6, &be_const_str_width_def); +be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_page_autoconf_ctl); +be_define_const_str(memory, "memory", 2229924270u, 0, 6, NULL); +be_define_const_str(millis, "millis", 1214679063u, 0, 6, &be_const_str_serial); be_define_const_str(min, "min", 3381609815u, 0, 3, NULL); be_define_const_str(minute, "minute", 954666857u, 0, 6, NULL); -be_define_const_str(module, "module", 3617558685u, 0, 6, &be_const_str_read_bytes); -be_define_const_str(month, "month", 3598321157u, 0, 5, &be_const_str_pixels_buffer); -be_define_const_str(montserrat_font, "montserrat_font", 1819065874u, 0, 15, NULL); -be_define_const_str(name, "name", 2369371622u, 0, 4, NULL); -be_define_const_str(nan, "nan", 797905850u, 0, 3, &be_const_str_setitem); +be_define_const_str(module, "module", 3617558685u, 0, 6, NULL); +be_define_const_str(month, "month", 3598321157u, 0, 5, &be_const_str_widget_instance_size); +be_define_const_str(montserrat_font, "montserrat_font", 1819065874u, 0, 15, &be_const_str_wire); +be_define_const_str(name, "name", 2369371622u, 0, 4, &be_const_str_rotate); +be_define_const_str(nan, "nan", 797905850u, 0, 3, NULL); be_define_const_str(nil, "nil", 228849900u, 63, 3, NULL); -be_define_const_str(no_X20GPIO_X20specified_X20for_X20neopixelbus, "no GPIO specified for neopixelbus", 42078528u, 0, 33, &be_const_str_running); +be_define_const_str(no_X20GPIO_X20specified_X20for_X20neopixelbus, "no GPIO specified for neopixelbus", 42078528u, 0, 33, &be_const_str_remove_driver); be_define_const_str(null_cb, "null_cb", 2333536460u, 0, 7, NULL); -be_define_const_str(number, "number", 467038368u, 0, 6, &be_const_str_page_autoconf_ctl); -be_define_const_str(obj_class_create_obj, "obj_class_create_obj", 3304390632u, 0, 20, &be_const_str_wifi_arcs_icon); -be_define_const_str(obj_event_base, "obj_event_base", 1624064363u, 0, 14, &be_const_str_set_text); -be_define_const_str(offset, "offset", 348705738u, 0, 6, NULL); -be_define_const_str(offseta, "offseta", 1663383089u, 0, 7, &be_const_str_sinh); -be_define_const_str(on, "on", 1630810064u, 0, 2, &be_const_str_pc); -be_define_const_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, "onsubmit='return confirm(\"This will cause a restart.\");'>", 232646018u, 0, 57, &be_const_str_range); -be_define_const_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, "onsubmit='return confirm(\"This will change the current configuration and cause a restart.\");'>", 3792412559u, 0, 94, &be_const_str_elif); +be_define_const_str(number, "number", 467038368u, 0, 6, NULL); +be_define_const_str(obj_class_create_obj, "obj_class_create_obj", 3304390632u, 0, 20, NULL); +be_define_const_str(obj_event_base, "obj_event_base", 1624064363u, 0, 14, &be_const_str_elif); +be_define_const_str(offset, "offset", 348705738u, 0, 6, &be_const_str_end); +be_define_const_str(offseta, "offseta", 1663383089u, 0, 7, &be_const_str_setbits); +be_define_const_str(on, "on", 1630810064u, 0, 2, &be_const_str_pc_rel); +be_define_const_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, "onsubmit='return confirm(\"This will cause a restart.\");'>", 232646018u, 0, 57, &be_const_str__X7D); +be_define_const_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, "onsubmit='return confirm(\"This will change the current configuration and cause a restart.\");'>", 3792412559u, 0, 94, NULL); be_define_const_str(open, "open", 3546203337u, 0, 4, NULL); be_define_const_str(out_X20of_X20range, "out of range", 2236631477u, 0, 12, NULL); -be_define_const_str(p1, "p1", 2689521274u, 0, 2, &be_const_str_y); -be_define_const_str(p2, "p2", 2672743655u, 0, 2, &be_const_str_pow); -be_define_const_str(page_autoconf_ctl, "page_autoconf_ctl", 2453381496u, 0, 17, &be_const_str_size); -be_define_const_str(page_autoconf_mgr, "page_autoconf_mgr", 3643937031u, 0, 17, &be_const_str_split); -be_define_const_str(param, "param", 1309554226u, 0, 5, &be_const_str_readbytes); -be_define_const_str(path, "path", 2223459638u, 0, 4, &be_const_str_pop_path); -be_define_const_str(pc, "pc", 1313756516u, 0, 2, &be_const_str__X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); -be_define_const_str(pc_abs, "pc_abs", 920256495u, 0, 6, &be_const_str_tele); +be_define_const_str(p1, "p1", 2689521274u, 0, 2, NULL); +be_define_const_str(p2, "p2", 2672743655u, 0, 2, NULL); +be_define_const_str(page_autoconf_ctl, "page_autoconf_ctl", 2453381496u, 0, 17, NULL); +be_define_const_str(page_autoconf_mgr, "page_autoconf_mgr", 3643937031u, 0, 17, NULL); +be_define_const_str(param, "param", 1309554226u, 0, 5, &be_const_str_write_bytes); +be_define_const_str(path, "path", 2223459638u, 0, 4, NULL); +be_define_const_str(pc, "pc", 1313756516u, 0, 2, NULL); +be_define_const_str(pc_abs, "pc_abs", 920256495u, 0, 6, NULL); be_define_const_str(pc_rel, "pc_rel", 991921176u, 0, 6, NULL); -be_define_const_str(percentage, "percentage", 2538831285u, 0, 10, &be_const_str_x); +be_define_const_str(percentage, "percentage", 2538831285u, 0, 10, NULL); be_define_const_str(persist, "persist", 3917083779u, 0, 7, NULL); -be_define_const_str(persist_X2E_p_X20is_X20not_X20a_X20map, "persist._p is not a map", 1176528732u, 0, 23, &be_const_str__X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); -be_define_const_str(pi, "pi", 1213090802u, 0, 2, &be_const_str_scale_uint); -be_define_const_str(pin, "pin", 1866532500u, 0, 3, &be_const_str_tanh); -be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, &be_const_str_run_bat); -be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, NULL); -be_define_const_str(pixel_count, "pixel_count", 2439130743u, 0, 11, NULL); -be_define_const_str(pixel_size, "pixel_size", 2209135785u, 0, 10, &be_const_str_read); +be_define_const_str(persist_X2E_p_X20is_X20not_X20a_X20map, "persist._p is not a map", 1176528732u, 0, 23, &be_const_str_def); +be_define_const_str(pi, "pi", 1213090802u, 0, 2, &be_const_str_try); +be_define_const_str(pin, "pin", 1866532500u, 0, 3, &be_const_str_quality); +be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, NULL); +be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, &be_const_str_settings); +be_define_const_str(pixel_count, "pixel_count", 2439130743u, 0, 11, &be_const_str_widget_dtor_cb); +be_define_const_str(pixel_size, "pixel_size", 2209135785u, 0, 10, NULL); be_define_const_str(pixels_buffer, "pixels_buffer", 1229555807u, 0, 13, NULL); -be_define_const_str(point, "point", 414084241u, 0, 5, &be_const_str_select); -be_define_const_str(point_arr, "point_arr", 1140859857u, 0, 9, NULL); +be_define_const_str(point, "point", 414084241u, 0, 5, NULL); +be_define_const_str(point_arr, "point_arr", 1140859857u, 0, 9, &be_const_str_start); be_define_const_str(pop, "pop", 1362321360u, 0, 3, NULL); be_define_const_str(pop_path, "pop_path", 2403243998u, 0, 8, NULL); -be_define_const_str(pow, "pow", 1479764693u, 0, 3, NULL); -be_define_const_str(preinit, "preinit", 2722007100u, 0, 7, &be_const_str_save_before_restart); -be_define_const_str(print, "print", 372738696u, 0, 5, NULL); -be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, NULL); +be_define_const_str(pow, "pow", 1479764693u, 0, 3, &be_const_str_unknown_X20instruction); +be_define_const_str(preinit, "preinit", 2722007100u, 0, 7, NULL); +be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_except); +be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, &be_const_str_save); be_define_const_str(publish, "publish", 264247304u, 0, 7, NULL); -be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, NULL); +be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, &be_const_str_run); be_define_const_str(push, "push", 2272264157u, 0, 4, NULL); be_define_const_str(push_path, "push_path", 1155254157u, 0, 9, NULL); -be_define_const_str(quality, "quality", 2597670950u, 0, 7, &be_const_str_refr_size); -be_define_const_str(r, "r", 4144776981u, 0, 1, NULL); +be_define_const_str(quality, "quality", 2597670950u, 0, 7, &be_const_str_seti); +be_define_const_str(r, "r", 4144776981u, 0, 1, &be_const_str__X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); be_define_const_str(rad, "rad", 1358899048u, 0, 3, NULL); be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL); -be_define_const_str(rand, "rand", 2711325910u, 0, 4, &be_const_str_send_multicast); -be_define_const_str(range, "range", 4208725202u, 0, 5, &be_const_str_web_add_console_button); -be_define_const_str(read, "read", 3470762949u, 0, 4, &be_const_str_seg7_font); -be_define_const_str(read12, "read12", 4291076970u, 0, 6, NULL); -be_define_const_str(read13, "read13", 12887293u, 0, 6, &be_const_str_search); +be_define_const_str(rand, "rand", 2711325910u, 0, 4, &be_const_str_readbytes); +be_define_const_str(range, "range", 4208725202u, 0, 5, NULL); +be_define_const_str(read, "read", 3470762949u, 0, 4, NULL); +be_define_const_str(read12, "read12", 4291076970u, 0, 6, &be_const_str_else); +be_define_const_str(read13, "read13", 12887293u, 0, 6, &be_const_str_tcpclient); be_define_const_str(read24, "read24", 1808533811u, 0, 6, NULL); -be_define_const_str(read32, "read32", 1741276240u, 0, 6, &be_const_str_set_pixel_color); +be_define_const_str(read32, "read32", 1741276240u, 0, 6, &be_const_str_skip); be_define_const_str(read8, "read8", 2802788167u, 0, 5, NULL); be_define_const_str(read_bytes, "read_bytes", 3576733173u, 0, 10, NULL); be_define_const_str(read_sensors, "read_sensors", 892689201u, 0, 12, NULL); be_define_const_str(readbytes, "readbytes", 2716426756u, 0, 9, NULL); be_define_const_str(readline, "readline", 1212709927u, 0, 8, NULL); -be_define_const_str(real, "real", 3604983901u, 0, 4, &be_const_str_resp_cmnd_error); +be_define_const_str(real, "real", 3604983901u, 0, 4, NULL); be_define_const_str(reapply, "reapply", 3778939332u, 0, 7, NULL); -be_define_const_str(redirect, "redirect", 389758641u, 0, 8, &be_const_str_response_append); -be_define_const_str(refr_size, "refr_size", 1958144468u, 0, 9, &be_const_str_write); -be_define_const_str(register_button_encoder, "register_button_encoder", 2811301550u, 0, 23, NULL); -be_define_const_str(register_obj, "register_obj", 3982614770u, 0, 12, NULL); -be_define_const_str(remote_ip, "remote_ip", 2953154693u, 0, 9, &be_const_str_start); +be_define_const_str(redirect, "redirect", 389758641u, 0, 8, &be_const_str_seg7_font); +be_define_const_str(refr_size, "refr_size", 1958144468u, 0, 9, &be_const_str_tanh); +be_define_const_str(register_button_encoder, "register_button_encoder", 2811301550u, 0, 23, &be_const_str_tan); +be_define_const_str(register_obj, "register_obj", 3982614770u, 0, 12, &be_const_str_set_matrix_pixel_color); +be_define_const_str(remote_ip, "remote_ip", 2953154693u, 0, 9, NULL); be_define_const_str(remote_port, "remote_port", 2163585967u, 0, 11, NULL); -be_define_const_str(remove, "remove", 3683784189u, 0, 6, &be_const_str_url_encode); -be_define_const_str(remove_cmd, "remove_cmd", 3832315702u, 0, 10, &be_const_str_tasmota); +be_define_const_str(remove, "remove", 3683784189u, 0, 6, NULL); +be_define_const_str(remove_cmd, "remove_cmd", 3832315702u, 0, 10, NULL); be_define_const_str(remove_driver, "remove_driver", 1030243768u, 0, 13, NULL); -be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, &be_const_str_web_sensor); +be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, &be_const_str_setitem); be_define_const_str(remove_timer, "remove_timer", 4141472215u, 0, 12, NULL); -be_define_const_str(reset, "reset", 1695364032u, 0, 5, &be_const_str_resp_cmnd); -be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, &be_const_str_set_style_text_font); -be_define_const_str(resize, "resize", 3514612129u, 0, 6, &be_const_str__X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_X26deg_X3BC_X7Be_X7D); +be_define_const_str(reset, "reset", 1695364032u, 0, 5, NULL); +be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, &be_const_str_send); +be_define_const_str(resize, "resize", 3514612129u, 0, 6, NULL); be_define_const_str(resolvecmnd, "resolvecmnd", 993361485u, 0, 11, NULL); be_define_const_str(resp_cmnd, "resp_cmnd", 2869459626u, 0, 9, NULL); -be_define_const_str(resp_cmnd_done, "resp_cmnd_done", 2601874875u, 0, 14, &be_const_str_set_ldo_enable); +be_define_const_str(resp_cmnd_done, "resp_cmnd_done", 2601874875u, 0, 14, NULL); be_define_const_str(resp_cmnd_error, "resp_cmnd_error", 2404088863u, 0, 15, &be_const_str_widget_ctor_impl); -be_define_const_str(resp_cmnd_failed, "resp_cmnd_failed", 2136281562u, 0, 16, NULL); +be_define_const_str(resp_cmnd_failed, "resp_cmnd_failed", 2136281562u, 0, 16, &be_const_str_run_bat); be_define_const_str(resp_cmnd_str, "resp_cmnd_str", 737845590u, 0, 13, NULL); be_define_const_str(response_append, "response_append", 450346371u, 0, 15, NULL); be_define_const_str(return, "return", 2246981567u, 60, 6, NULL); -be_define_const_str(return_X20code_X3D_X25i, "return code=%i", 2127454401u, 0, 14, &be_const_str_serial); -be_define_const_str(reverse, "reverse", 558918661u, 0, 7, &be_const_str_set_timer); -be_define_const_str(reverse_gamma10, "reverse_gamma10", 739112262u, 0, 15, NULL); -be_define_const_str(rotate, "rotate", 2784296202u, 0, 6, &be_const_str_false); -be_define_const_str(round_end, "round_end", 985288225u, 0, 9, &be_const_str_sin); -be_define_const_str(round_start, "round_start", 2949484384u, 0, 11, &be_const_str_import); -be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, NULL); -be_define_const_str(rule, "rule", 4230889683u, 0, 4, &be_const_str_y1); -be_define_const_str(run, "run", 718098122u, 0, 3, NULL); -be_define_const_str(run_bat, "run_bat", 2536903298u, 0, 7, &be_const_str_setrange); +be_define_const_str(return_X20code_X3D_X25i, "return code=%i", 2127454401u, 0, 14, NULL); +be_define_const_str(reverse, "reverse", 558918661u, 0, 7, NULL); +be_define_const_str(reverse_gamma10, "reverse_gamma10", 739112262u, 0, 15, &be_const_str_web_send); +be_define_const_str(rotate, "rotate", 2784296202u, 0, 6, NULL); +be_define_const_str(round_end, "round_end", 985288225u, 0, 9, NULL); +be_define_const_str(round_start, "round_start", 2949484384u, 0, 11, &be_const_str_web_add_console_button); +be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, &be_const_str_break); +be_define_const_str(rule, "rule", 4230889683u, 0, 4, &be_const_str_set); +be_define_const_str(run, "run", 718098122u, 0, 3, &be_const_str_tasmota); +be_define_const_str(run_bat, "run_bat", 2536903298u, 0, 7, &be_const_str_var); be_define_const_str(run_deferred, "run_deferred", 371594696u, 0, 12, NULL); -be_define_const_str(running, "running", 343848780u, 0, 7, &be_const_str_save); +be_define_const_str(running, "running", 343848780u, 0, 7, &be_const_str_str); be_define_const_str(save, "save", 3439296072u, 0, 4, NULL); -be_define_const_str(save_before_restart, "save_before_restart", 1253239338u, 0, 19, &be_const_str_set_dc_voltage); -be_define_const_str(scale_uint, "scale_uint", 3090811094u, 0, 10, &be_const_str_set_percentage); +be_define_const_str(save_before_restart, "save_before_restart", 1253239338u, 0, 19, NULL); +be_define_const_str(scale_uint, "scale_uint", 3090811094u, 0, 10, NULL); be_define_const_str(scan, "scan", 3974641896u, 0, 4, NULL); -be_define_const_str(screenshot, "screenshot", 3894592561u, 0, 10, &be_const_str_set); -be_define_const_str(search, "search", 2150836393u, 0, 6, &be_const_str_solidified); -be_define_const_str(sec, "sec", 3139892658u, 0, 3, NULL); +be_define_const_str(screenshot, "screenshot", 3894592561u, 0, 10, NULL); +be_define_const_str(search, "search", 2150836393u, 0, 6, NULL); +be_define_const_str(sec, "sec", 3139892658u, 0, 3, &be_const_str_show); be_define_const_str(seg7_font, "seg7_font", 4099690689u, 0, 9, NULL); -be_define_const_str(select, "select", 297952813u, 0, 6, NULL); +be_define_const_str(select, "select", 297952813u, 0, 6, &be_const_str_the_X20second_X20argument_X20is_X20not_X20a_X20function); be_define_const_str(send, "send", 1919010991u, 0, 4, NULL); be_define_const_str(send_multicast, "send_multicast", 812185870u, 0, 14, NULL); be_define_const_str(serial, "serial", 3687697785u, 0, 6, NULL); be_define_const_str(set, "set", 3324446467u, 0, 3, NULL); -be_define_const_str(set_alternate, "set_alternate", 1709680562u, 0, 13, &be_const_str_set_style_pad_right); -be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, &be_const_str_def); -be_define_const_str(set_bri, "set_bri", 2789118779u, 0, 7, NULL); -be_define_const_str(set_chg_current, "set_chg_current", 336304386u, 0, 15, NULL); +be_define_const_str(set_alternate, "set_alternate", 1709680562u, 0, 13, &be_const_str_shared_key); +be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, NULL); +be_define_const_str(set_bits_per_sample, "set_bits_per_sample", 3747657551u, 0, 19, &be_const_str_tag); +be_define_const_str(set_bri, "set_bri", 2789118779u, 0, 7, &be_const_str_set_height); +be_define_const_str(set_channels, "set_channels", 1370190620u, 0, 12, &be_const_str_set_style_pad_right); +be_define_const_str(set_chg_current, "set_chg_current", 336304386u, 0, 15, &be_const_str_super); be_define_const_str(set_dc_voltage, "set_dc_voltage", 2181981936u, 0, 14, NULL); be_define_const_str(set_dcdc_enable, "set_dcdc_enable", 1594690786u, 0, 15, NULL); -be_define_const_str(set_first_time, "set_first_time", 3111247550u, 0, 14, NULL); -be_define_const_str(set_height, "set_height", 1080207399u, 0, 10, NULL); +be_define_const_str(set_first_time, "set_first_time", 3111247550u, 0, 14, &be_const_str_zip); +be_define_const_str(set_gain, "set_gain", 3847781975u, 0, 8, NULL); +be_define_const_str(set_height, "set_height", 1080207399u, 0, 10, &be_const_str_type); be_define_const_str(set_ldo_enable, "set_ldo_enable", 2916502041u, 0, 14, NULL); be_define_const_str(set_ldo_voltage, "set_ldo_voltage", 4090501160u, 0, 15, NULL); -be_define_const_str(set_light, "set_light", 3176076152u, 0, 9, &be_const_str_time_str); -be_define_const_str(set_matrix_pixel_color, "set_matrix_pixel_color", 1197149462u, 0, 22, &be_const_str_widget_struct_by_class); -be_define_const_str(set_percentage, "set_percentage", 2952022724u, 0, 14, NULL); -be_define_const_str(set_pixel_color, "set_pixel_color", 1275248356u, 0, 15, NULL); -be_define_const_str(set_power, "set_power", 549820893u, 0, 9, &be_const_str_strftime); +be_define_const_str(set_light, "set_light", 3176076152u, 0, 9, NULL); +be_define_const_str(set_matrix_pixel_color, "set_matrix_pixel_color", 1197149462u, 0, 22, NULL); +be_define_const_str(set_percentage, "set_percentage", 2952022724u, 0, 14, &be_const_str_w); +be_define_const_str(set_pixel_color, "set_pixel_color", 1275248356u, 0, 15, &be_const_str_widget_constructor); +be_define_const_str(set_power, "set_power", 549820893u, 0, 9, NULL); +be_define_const_str(set_rate, "set_rate", 1154016838u, 0, 8, NULL); be_define_const_str(set_style_bg_color, "set_style_bg_color", 1689513089u, 0, 18, NULL); -be_define_const_str(set_style_line_color, "set_style_line_color", 3665238976u, 0, 20, &be_const_str_wire_scan); -be_define_const_str(set_style_pad_right, "set_style_pad_right", 3314069054u, 0, 19, &be_const_str_do); +be_define_const_str(set_style_line_color, "set_style_line_color", 3665238976u, 0, 20, &be_const_str_widget_struct_by_class); +be_define_const_str(set_style_pad_right, "set_style_pad_right", 3314069054u, 0, 19, &be_const_str_for); be_define_const_str(set_style_text_font, "set_style_text_font", 1028590019u, 0, 19, NULL); be_define_const_str(set_text, "set_text", 1849641155u, 0, 8, NULL); -be_define_const_str(set_time, "set_time", 900236405u, 0, 8, NULL); -be_define_const_str(set_timeouts, "set_timeouts", 3732850900u, 0, 12, NULL); -be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, NULL); -be_define_const_str(set_useragent, "set_useragent", 612237244u, 0, 13, &be_const_str_widget_editable); -be_define_const_str(set_width, "set_width", 484671920u, 0, 9, NULL); +be_define_const_str(set_time, "set_time", 900236405u, 0, 8, &be_const_str_widget_event_impl); +be_define_const_str(set_timeouts, "set_timeouts", 3732850900u, 0, 12, &be_const_str_setrange); +be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, &be_const_str_sinh); +be_define_const_str(set_useragent, "set_useragent", 612237244u, 0, 13, NULL); +be_define_const_str(set_width, "set_width", 484671920u, 0, 9, &be_const_str_time_str); be_define_const_str(set_x, "set_x", 1849400772u, 0, 5, NULL); -be_define_const_str(set_y, "set_y", 1866178391u, 0, 5, &be_const_str_widget_dtor_cb); +be_define_const_str(set_y, "set_y", 1866178391u, 0, 5, &be_const_str_target_search); be_define_const_str(setbits, "setbits", 2762408167u, 0, 7, NULL); be_define_const_str(seti, "seti", 1500556254u, 0, 4, NULL); be_define_const_str(setitem, "setitem", 1554834596u, 0, 7, NULL); be_define_const_str(setmember, "setmember", 1432909441u, 0, 9, NULL); be_define_const_str(setrange, "setrange", 3794019032u, 0, 8, NULL); -be_define_const_str(settings, "settings", 1745255176u, 0, 8, NULL); -be_define_const_str(shared_key, "shared_key", 2200833624u, 0, 10, &be_const_str_widget_width_def); +be_define_const_str(settings, "settings", 1745255176u, 0, 8, &be_const_str_webserver); +be_define_const_str(shared_key, "shared_key", 2200833624u, 0, 10, &be_const_str_sys); be_define_const_str(show, "show", 2840060476u, 0, 4, NULL); be_define_const_str(signal_arcs, "signal_arcs", 1505996127u, 0, 11, NULL); be_define_const_str(signal_bars, "signal_bars", 3181573600u, 0, 11, NULL); be_define_const_str(sin, "sin", 3761252941u, 0, 3, NULL); -be_define_const_str(sinh, "sinh", 282220607u, 0, 4, NULL); -be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_state); -be_define_const_str(skip, "skip", 1097563074u, 0, 4, &be_const_str_else); -be_define_const_str(solidified, "solidified", 3257553487u, 0, 10, &be_const_str_class); -be_define_const_str(split, "split", 2276994531u, 0, 5, &be_const_str_raise); +be_define_const_str(sinh, "sinh", 282220607u, 0, 4, &be_const_str_strip); +be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_webclient); +be_define_const_str(skip, "skip", 1097563074u, 0, 4, NULL); +be_define_const_str(solidified, "solidified", 3257553487u, 0, 10, NULL); +be_define_const_str(split, "split", 2276994531u, 0, 5, NULL); be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, NULL); be_define_const_str(srand, "srand", 465518633u, 0, 5, NULL); be_define_const_str(start, "start", 1697318111u, 0, 5, NULL); -be_define_const_str(state, "state", 2016490230u, 0, 5, &be_const_str_write_bit); +be_define_const_str(state, "state", 2016490230u, 0, 5, NULL); be_define_const_str(static, "static", 3532702267u, 71, 6, NULL); -be_define_const_str(stop, "stop", 3411225317u, 0, 4, &be_const_str_tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29); +be_define_const_str(stop, "stop", 3411225317u, 0, 4, NULL); be_define_const_str(stop_iteration, "stop_iteration", 4173793901u, 0, 14, NULL); -be_define_const_str(str, "str", 3259748752u, 0, 3, &be_const_str_string); +be_define_const_str(str, "str", 3259748752u, 0, 3, NULL); be_define_const_str(strftime, "strftime", 187738851u, 0, 8, NULL); -be_define_const_str(string, "string", 398550328u, 0, 6, &be_const_str_update); -be_define_const_str(strip, "strip", 4246411473u, 0, 5, &be_const_str_type); +be_define_const_str(string, "string", 398550328u, 0, 6, &be_const_str_widget_editable); +be_define_const_str(strip, "strip", 4246411473u, 0, 5, NULL); be_define_const_str(strptime, "strptime", 1277910361u, 0, 8, NULL); -be_define_const_str(super, "super", 4152230356u, 0, 5, &be_const_str_year); -be_define_const_str(sys, "sys", 3277365014u, 0, 3, NULL); -be_define_const_str(tag, "tag", 2516003219u, 0, 3, NULL); +be_define_const_str(super, "super", 4152230356u, 0, 5, NULL); +be_define_const_str(sys, "sys", 3277365014u, 0, 3, &be_const_str_web_add_management_button); +be_define_const_str(tag, "tag", 2516003219u, 0, 3, &be_const_str_width_def); be_define_const_str(tan, "tan", 2633446552u, 0, 3, NULL); be_define_const_str(tanh, "tanh", 153638352u, 0, 4, NULL); -be_define_const_str(target, "target", 845187144u, 0, 6, &be_const_str_web_add_button); +be_define_const_str(target, "target", 845187144u, 0, 6, &be_const_str_year); be_define_const_str(target_search, "target_search", 1947846553u, 0, 13, NULL); be_define_const_str(tasmota, "tasmota", 424643812u, 0, 7, NULL); be_define_const_str(tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29, "tasmota.get_light() is deprecated, use light.get()", 3525753647u, 0, 50, NULL); be_define_const_str(tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29, "tasmota.set_light() is deprecated, use light.set()", 2124937871u, 0, 50, NULL); -be_define_const_str(tcpclient, "tcpclient", 3828797983u, 0, 9, &be_const_str_static); +be_define_const_str(tcpclient, "tcpclient", 3828797983u, 0, 9, NULL); be_define_const_str(tele, "tele", 3474458061u, 0, 4, NULL); -be_define_const_str(the_X20second_X20argument_X20is_X20not_X20a_X20function, "the second argument is not a function", 3954574469u, 0, 37, &be_const_str_widget_group_def); -be_define_const_str(time_dump, "time_dump", 3330410747u, 0, 9, NULL); +be_define_const_str(the_X20second_X20argument_X20is_X20not_X20a_X20function, "the second argument is not a function", 3954574469u, 0, 37, NULL); +be_define_const_str(time_dump, "time_dump", 3330410747u, 0, 9, &be_const_str_write_file); be_define_const_str(time_reached, "time_reached", 2075136773u, 0, 12, NULL); be_define_const_str(time_str, "time_str", 2613827612u, 0, 8, NULL); be_define_const_str(to_gamma, "to_gamma", 1597139862u, 0, 8, NULL); be_define_const_str(tob64, "tob64", 373777640u, 0, 5, NULL); -be_define_const_str(tolower, "tolower", 1042520049u, 0, 7, &be_const_str__X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); +be_define_const_str(tolower, "tolower", 1042520049u, 0, 7, NULL); be_define_const_str(tomap, "tomap", 612167626u, 0, 5, NULL); be_define_const_str(top, "top", 2802900028u, 0, 3, NULL); be_define_const_str(toptr, "toptr", 3379847454u, 0, 5, NULL); -be_define_const_str(tostring, "tostring", 2299708645u, 0, 8, NULL); -be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, &be_const_str_web_send_decimal); +be_define_const_str(tostring, "tostring", 2299708645u, 0, 8, &be_const_str_return); +be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, NULL); be_define_const_str(tr, "tr", 1195724803u, 0, 2, NULL); be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, NULL); be_define_const_str(true, "true", 1303515621u, 61, 4, NULL); be_define_const_str(try, "try", 2887626766u, 68, 3, NULL); -be_define_const_str(try_rule, "try_rule", 1986449405u, 0, 8, NULL); +be_define_const_str(try_rule, "try_rule", 1986449405u, 0, 8, &be_const_str_x); be_define_const_str(type, "type", 1361572173u, 0, 4, NULL); -be_define_const_str(udp, "udp", 1253872004u, 0, 3, &be_const_str__X7D); -be_define_const_str(unknown_X20instruction, "unknown instruction", 1093911841u, 0, 19, NULL); +be_define_const_str(udp, "udp", 1253872004u, 0, 3, NULL); +be_define_const_str(unknown_X20instruction, "unknown instruction", 1093911841u, 0, 19, &be_const_str_wifi_bars_icon); be_define_const_str(update, "update", 672109684u, 0, 6, NULL); be_define_const_str(upper, "upper", 176974407u, 0, 5, NULL); be_define_const_str(url_encode, "url_encode", 528392145u, 0, 10, NULL); be_define_const_str(v, "v", 4077666505u, 0, 1, NULL); -be_define_const_str(value, "value", 1113510858u, 0, 5, NULL); -be_define_const_str(value_error, "value_error", 773297791u, 0, 11, NULL); -be_define_const_str(valuer_error, "valuer_error", 2567947105u, 0, 12, &be_const_str_as); +be_define_const_str(value, "value", 1113510858u, 0, 5, &be_const_str_web_sensor); +be_define_const_str(value_error, "value_error", 773297791u, 0, 11, &be_const_str_y1); +be_define_const_str(valuer_error, "valuer_error", 2567947105u, 0, 12, NULL); be_define_const_str(var, "var", 2317739966u, 64, 3, NULL); be_define_const_str(w, "w", 4060888886u, 0, 1, NULL); -be_define_const_str(wd, "wd", 1531424278u, 0, 2, &be_const_str_end); -be_define_const_str(web_add_button, "web_add_button", 3537875058u, 0, 14, NULL); +be_define_const_str(wd, "wd", 1531424278u, 0, 2, NULL); +be_define_const_str(web_add_button, "web_add_button", 3537875058u, 0, 14, &be_const_str_wifi_arcs_icon); be_define_const_str(web_add_config_button, "web_add_config_button", 639674325u, 0, 21, NULL); be_define_const_str(web_add_console_button, "web_add_console_button", 3481436192u, 0, 22, NULL); -be_define_const_str(web_add_handler, "web_add_handler", 3990174962u, 0, 15, &be_const_str_widget_constructor); -be_define_const_str(web_add_main_button, "web_add_main_button", 3960367664u, 0, 19, &be_const_str_wifi_arcs); +be_define_const_str(web_add_handler, "web_add_handler", 3990174962u, 0, 15, NULL); +be_define_const_str(web_add_main_button, "web_add_main_button", 3960367664u, 0, 19, &be_const_str_import); be_define_const_str(web_add_management_button, "web_add_management_button", 2738877186u, 0, 25, NULL); be_define_const_str(web_send, "web_send", 2989941448u, 0, 8, NULL); -be_define_const_str(web_send_decimal, "web_send_decimal", 1407210204u, 0, 16, &be_const_str_webserver); -be_define_const_str(web_sensor, "web_sensor", 2900096972u, 0, 10, &be_const_str_var); +be_define_const_str(web_send_decimal, "web_send_decimal", 1407210204u, 0, 16, NULL); +be_define_const_str(web_sensor, "web_sensor", 2900096972u, 0, 10, NULL); be_define_const_str(webclient, "webclient", 4076389146u, 0, 9, NULL); -be_define_const_str(webserver, "webserver", 1572454038u, 0, 9, &be_const_str_widget_ctor_cb); +be_define_const_str(webserver, "webserver", 1572454038u, 0, 9, NULL); be_define_const_str(while, "while", 231090382u, 53, 5, NULL); -be_define_const_str(widget_cb, "widget_cb", 2763583055u, 0, 9, NULL); +be_define_const_str(widget_cb, "widget_cb", 2763583055u, 0, 9, &be_const_str_widget_destructor); be_define_const_str(widget_constructor, "widget_constructor", 2543785934u, 0, 18, NULL); -be_define_const_str(widget_ctor_cb, "widget_ctor_cb", 876007560u, 0, 14, NULL); +be_define_const_str(widget_ctor_cb, "widget_ctor_cb", 876007560u, 0, 14, &be_const_str_wifi); be_define_const_str(widget_ctor_impl, "widget_ctor_impl", 194252479u, 0, 16, NULL); be_define_const_str(widget_destructor, "widget_destructor", 4207388345u, 0, 17, NULL); be_define_const_str(widget_dtor_cb, "widget_dtor_cb", 3151545845u, 0, 14, NULL); -be_define_const_str(widget_dtor_impl, "widget_dtor_impl", 520430610u, 0, 16, NULL); -be_define_const_str(widget_editable, "widget_editable", 3821793286u, 0, 15, &be_const_str_wire2); +be_define_const_str(widget_dtor_impl, "widget_dtor_impl", 520430610u, 0, 16, &be_const_str_wire_scan); +be_define_const_str(widget_editable, "widget_editable", 3821793286u, 0, 15, NULL); be_define_const_str(widget_event, "widget_event", 1951408186u, 0, 12, NULL); be_define_const_str(widget_event_cb, "widget_event_cb", 1508466754u, 0, 15, NULL); be_define_const_str(widget_event_impl, "widget_event_impl", 2178430561u, 0, 17, NULL); @@ -742,27 +751,27 @@ be_define_const_str(widget_group_def, "widget_group_def", 1246968785u, 0, 16, NU be_define_const_str(widget_height_def, "widget_height_def", 3131667813u, 0, 17, NULL); be_define_const_str(widget_instance_size, "widget_instance_size", 2055354779u, 0, 20, NULL); be_define_const_str(widget_struct_by_class, "widget_struct_by_class", 3806373842u, 0, 22, NULL); -be_define_const_str(widget_struct_default, "widget_struct_default", 781673633u, 0, 21, NULL); +be_define_const_str(widget_struct_default, "widget_struct_default", 781673633u, 0, 21, &be_const_str_width); be_define_const_str(widget_width_def, "widget_width_def", 3986078862u, 0, 16, NULL); be_define_const_str(width, "width", 2508680735u, 0, 5, NULL); be_define_const_str(width_def, "width_def", 1143717879u, 0, 9, NULL); -be_define_const_str(wifi, "wifi", 120087624u, 0, 4, NULL); +be_define_const_str(wifi, "wifi", 120087624u, 0, 4, &be_const_str_nil); be_define_const_str(wifi_arcs, "wifi_arcs", 3838492904u, 0, 9, NULL); be_define_const_str(wifi_arcs_icon, "wifi_arcs_icon", 767180544u, 0, 14, NULL); be_define_const_str(wifi_bars, "wifi_bars", 653141243u, 0, 9, NULL); be_define_const_str(wifi_bars_icon, "wifi_bars_icon", 3641522557u, 0, 14, NULL); -be_define_const_str(wire, "wire", 4082753944u, 0, 4, NULL); +be_define_const_str(wire, "wire", 4082753944u, 0, 4, &be_const_str_write_bit); be_define_const_str(wire1, "wire1", 3212721419u, 0, 5, NULL); -be_define_const_str(wire2, "wire2", 3229499038u, 0, 5, &be_const_str_try); +be_define_const_str(wire2, "wire2", 3229499038u, 0, 5, NULL); be_define_const_str(wire_scan, "wire_scan", 2671275880u, 0, 9, NULL); be_define_const_str(write, "write", 3190202204u, 0, 5, NULL); be_define_const_str(write8, "write8", 3133991532u, 0, 6, NULL); be_define_const_str(write_bit, "write_bit", 2660990436u, 0, 9, NULL); be_define_const_str(write_bytes, "write_bytes", 1227543792u, 0, 11, NULL); -be_define_const_str(write_file, "write_file", 3177658879u, 0, 10, NULL); +be_define_const_str(write_file, "write_file", 3177658879u, 0, 10, &be_const_str_zero); be_define_const_str(write_gpio, "write_gpio", 2267940334u, 0, 10, NULL); be_define_const_str(x, "x", 4245442695u, 0, 1, NULL); -be_define_const_str(x1, "x1", 274927234u, 0, 2, NULL); +be_define_const_str(x1, "x1", 274927234u, 0, 2, &be_const_str__X7B); be_define_const_str(y, "y", 4228665076u, 0, 1, NULL); be_define_const_str(y1, "y1", 2355101727u, 0, 2, NULL); be_define_const_str(year, "year", 2927578396u, 0, 4, NULL); @@ -779,388 +788,392 @@ be_define_const_str(_X7B_X7D, "{}", 1415952421u, 0, 2, NULL); be_define_const_str(_X7D, "}", 4161554600u, 0, 1, NULL); static const bstring* const m_string_table[] = { - (const bstring *)&be_const_str_files, - (const bstring *)&be_const_str_clock_icon, - NULL, - NULL, - (const bstring *)&be_const_str_cb_do_nothing, - (const bstring *)&be_const_str_content_start, - (const bstring *)&be_const_str__persist_X2Ejson, - NULL, - (const bstring *)&be_const_str_button_pressed, - (const bstring *)&be_const_str_deregister_obj, - (const bstring *)&be_const_str_rad, - (const bstring *)&be_const_str_gamma10, - (const bstring *)&be_const_str__X25s_X2Eautoconf, - (const bstring *)&be_const_str__X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, - (const bstring *)&be_const_str_OneWire, - (const bstring *)&be_const_str_cmd, - NULL, - (const bstring *)&be_const_str_gc, - (const bstring *)&be_const_str_pin_used, - NULL, - NULL, - (const bstring *)&be_const_str_page_autoconf_mgr, - (const bstring *)&be_const_str_height_def, - (const bstring *)&be_const_str_alternate, - (const bstring *)&be_const_str_publish_result, - (const bstring *)&be_const_str_Auto_X2Dconfiguration, - (const bstring *)&be_const_str__X2Etapp, - (const bstring *)&be_const_str__ccmd, - (const bstring *)&be_const_str__X2B, - (const bstring *)&be_const_str__X3A, (const bstring *)&be_const_str_delete_all_configs, - NULL, - (const bstring *)&be_const_str_get_light, - (const bstring *)&be_const_str_collect, - (const bstring *)&be_const_str_STATE_DEFAULT, - (const bstring *)&be_const_str__filename, - (const bstring *)&be_const_str_pc_rel, - (const bstring *)&be_const_str_traceback, - (const bstring *)&be_const_str_lv_clock_icon, - (const bstring *)&be_const_str_SERIAL_6N1, - (const bstring *)&be_const_str_cmd_res, - (const bstring *)&be_const_str_LVG_X3A_X20call_X20to_X20unsupported_X20callback, - (const bstring *)&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, - (const bstring *)&be_const_str_add_rule, - (const bstring *)&be_const_str__buffer, - (const bstring *)&be_const_str_web_add_config_button, - (const bstring *)&be_const_str__X2Elen, - NULL, - (const bstring *)&be_const_str_wifi, - (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, - (const bstring *)&be_const_str__X2F, - (const bstring *)&be_const_str__X3E, - (const bstring *)&be_const_str__X2Fac, - (const bstring *)&be_const_str_month, - (const bstring *)&be_const_str_asin, - NULL, - (const bstring *)&be_const_str_hex, - NULL, - (const bstring *)&be_const_str_CFG_X3A_X20ran_X20_X20, - (const bstring *)&be_const_str_try_rule, - (const bstring *)&be_const_str_obj_class_create_obj, - (const bstring *)&be_const_str_arg_name, - (const bstring *)&be_const_str_Unknown_X20command, - (const bstring *)&be_const_str__X3D_X3C_X3E_X21, - (const bstring *)&be_const_str__X5D, - (const bstring *)&be_const_str__X2F_X3Frst_X3D, - (const bstring *)&be_const_str__X3Cp_X20style_X3D_X27width_X3A340px_X3B_X27_X3E_X3Cb_X3EException_X3A_X3C_X2Fb_X3E_X3Cbr_X3E_X27_X25s_X27_X3Cbr_X3E_X25s_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_byte, - (const bstring *)&be_const_str_clear, - NULL, - (const bstring *)&be_const_str_SERIAL_6O1, - NULL, - (const bstring *)&be_const_str__X23, - (const bstring *)&be_const_str_create_matrix, - (const bstring *)&be_const_str_AES_GCM, - NULL, - (const bstring *)&be_const_str_find_op, - (const bstring *)&be_const_str__X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str__X2Eautoconf, - (const bstring *)&be_const_str_, - (const bstring *)&be_const_str_event_send, - (const bstring *)&be_const_str_SERIAL_8E2, - (const bstring *)&be_const_str_while, - (const bstring *)&be_const_str_getbits, - (const bstring *)&be_const_str_classof, - NULL, - (const bstring *)&be_const_str_Timer, - (const bstring *)&be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, - NULL, - (const bstring *)&be_const_str_Restart_X201, - (const bstring *)&be_const_str_number, - (const bstring *)&be_const_str__X2Ep, - (const bstring *)&be_const_str_addr, - (const bstring *)&be_const_str_atan2, - (const bstring *)&be_const_str_Tasmota, - NULL, - NULL, - (const bstring *)&be_const_str__lvgl, - (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27, - (const bstring *)&be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, - (const bstring *)&be_const_str_color, - NULL, - (const bstring *)&be_const_str_draw_line_dsc_init, - (const bstring *)&be_const_str__global_addr, - NULL, - (const bstring *)&be_const_str_MD5, - (const bstring *)&be_const_str_finish, - (const bstring *)&be_const_str___upper__, - (const bstring *)&be_const_str_destructor_cb, - (const bstring *)&be_const_str_get_bat_power, - (const bstring *)&be_const_str___lower__, - (const bstring *)&be_const_str_add_handler, - (const bstring *)&be_const_str__X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, - (const bstring *)&be_const_str_day, - (const bstring *)&be_const_str_log10, - (const bstring *)&be_const_str_compress, - (const bstring *)&be_const_str_AXP192, - (const bstring *)&be_const_str___iterator__, - NULL, - NULL, - (const bstring *)&be_const_str_toupper, - (const bstring *)&be_const_str_display_X2Eini, - (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, - (const bstring *)&be_const_str_CFG_X3A_X20loading_X20_X27_X25s_X27, - (const bstring *)&be_const_str_PART_MAIN, - NULL, - (const bstring *)&be_const_str_instance_size, - (const bstring *)&be_const_str_Tele, - (const bstring *)&be_const_str_SERIAL_8N2, - (const bstring *)&be_const_str_every_second, - (const bstring *)&be_const_str_is_dirty, - (const bstring *)&be_const_str_energy_struct, - (const bstring *)&be_const_str_k, - (const bstring *)&be_const_str_value_error, - (const bstring *)&be_const_str_code, - NULL, - (const bstring *)&be_const_str_allocated, - (const bstring *)&be_const_str_offseta, - NULL, (const bstring *)&be_const_str__X2E, - (const bstring *)&be_const_str_Parameter_X20error, - (const bstring *)&be_const_str__X2E_X2E, - (const bstring *)&be_const_str_debug, - (const bstring *)&be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29, - (const bstring *)&be_const_str_toptr, - (const bstring *)&be_const_str_add_cmd, - (const bstring *)&be_const_str_pin_mode, - (const bstring *)&be_const_str_concat, - (const bstring *)&be_const_str__X2Ebe, + (const bstring *)&be_const_str_get_current_module_path, NULL, - (const bstring *)&be_const_str_SERIAL_6N2, - (const bstring *)&be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, - NULL, - (const bstring *)&be_const_str_atan, - (const bstring *)&be_const_str_area, - (const bstring *)&be_const_str_I2C_X3A, - (const bstring *)&be_const_str_gamma8, - (const bstring *)&be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29, - (const bstring *)&be_const_str__X2Ew, - (const bstring *)&be_const_str_get_option, - NULL, - (const bstring *)&be_const_str_dump, - (const bstring *)&be_const_str__X3D, - (const bstring *)&be_const_str__def, - (const bstring *)&be_const_str_CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29, - (const bstring *)&be_const_str_resolvecmnd, - (const bstring *)&be_const_str_ip, - (const bstring *)&be_const_str_duration, - (const bstring *)&be_const_str_EVENT_DRAW_PART_END, - (const bstring *)&be_const_str_real, - (const bstring *)&be_const_str_elements_X20must_X20be_X20a_X20lv_point, - (const bstring *)&be_const_str__X2502d_X25s_X2502d, - (const bstring *)&be_const_str__X3Clambda_X3E, - (const bstring *)&be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, - (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X20, - (const bstring *)&be_const_str_SERIAL_5E1, - (const bstring *)&be_const_str_c, - (const bstring *)&be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27, - (const bstring *)&be_const_str_bytes, - NULL, - (const bstring *)&be_const_str_read12, - (const bstring *)&be_const_str_get_bri, - (const bstring *)&be_const_str_AudioOutput, - (const bstring *)&be_const_str_arg, - (const bstring *)&be_const_str_add_header, - (const bstring *)&be_const_str_out_X20of_X20range, - (const bstring *)&be_const_str_set_auth, - (const bstring *)&be_const_str_file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27, - (const bstring *)&be_const_str__archive, - (const bstring *)&be_const_str__X23init_X2Ebat, - (const bstring *)&be_const_str_create_custom_widget, - (const bstring *)&be_const_str_get_size, - (const bstring *)&be_const_str_EVENT_DRAW_MAIN, - (const bstring *)&be_const_str__X23autoexec_X2Ebe, - NULL, - (const bstring *)&be_const_str_json, - (const bstring *)&be_const_str_widget_event, - (const bstring *)&be_const_str_SERIAL_7E1, - (const bstring *)&be_const_str__cmd, - (const bstring *)&be_const_str_SERIAL_5O1, - NULL, - (const bstring *)&be_const_str_bool, - (const bstring *)&be_const_str_contains, - NULL, - (const bstring *)&be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, - (const bstring *)&be_const_str_Leds, - (const bstring *)&be_const_str_escape, - (const bstring *)&be_const_str_tolower, - (const bstring *)&be_const_str_instance, - (const bstring *)&be_const_str_remote_ip, - (const bstring *)&be_const_str__X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E, - (const bstring *)&be_const_str_content_send_style, - NULL, - (const bstring *)&be_const_str_pixel_size, - (const bstring *)&be_const_str_CFG_X3A_X20running_X20, - (const bstring *)&be_const_str_obj_event_base, - NULL, - (const bstring *)&be_const_str_create_segment, - (const bstring *)&be_const_str_get_style_line_color, - (const bstring *)&be_const_str_arch, - (const bstring *)&be_const_str__X5B, - (const bstring *)&be_const_str__X3D_X3D, - (const bstring *)&be_const_str_dac_voltage, - NULL, - (const bstring *)&be_const_str_format, - NULL, - (const bstring *)&be_const_str__X3Cselect_X20name_X3D_X27zip_X27_X3E, - (const bstring *)&be_const_str_CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found, - (const bstring *)&be_const_str_encrypt, - (const bstring *)&be_const_str_round_end, - (const bstring *)&be_const_str_available, - (const bstring *)&be_const_str_get_warning_level, - (const bstring *)&be_const_str_atleast1, - (const bstring *)&be_const_str_engine, - (const bstring *)&be_const_str_CFG_X3A_X20removing_X20autoconf_X20files, - NULL, - (const bstring *)&be_const_str__X28_X29, - (const bstring *)&be_const_str_set_power, - (const bstring *)&be_const_str_AudioGeneratorMP3, - NULL, - (const bstring *)&be_const_str_set_x, - (const bstring *)&be_const_str__rules, - (const bstring *)&be_const_str__, - (const bstring *)&be_const_str_acos, - (const bstring *)&be_const_str__X2Esize, + (const bstring *)&be_const_str_get_percentage, + (const bstring *)&be_const_str_pixel_count, + (const bstring *)&be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem, + (const bstring *)&be_const_str_argument_X20must_X20be_X20a_X20list, + (const bstring *)&be_const_str_SERIAL_7O2, (const bstring *)&be_const_str_SERIAL_7N2, - (const bstring *)&be_const_str_get_bat_voltage, - (const bstring *)&be_const_str_send, - (const bstring *)&be_const_str__X21_X3D_X3D, - (const bstring *)&be_const_str__X2F_X2Eautoconf, - (const bstring *)&be_const_str_TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, - (const bstring *)&be_const_str__X3C, - (const bstring *)&be_const_str__X3C_X3D, - (const bstring *)&be_const_str_abs, - (const bstring *)&be_const_str_I2C_Driver, - (const bstring *)&be_const_str_get_bat_current, - (const bstring *)&be_const_str_imax, - (const bstring *)&be_const_str_last_modified, - (const bstring *)&be_const_str__X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_call, - (const bstring *)&be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range, - (const bstring *)&be_const_str__X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, - (const bstring *)&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_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_SERIAL_5E2, - (const bstring *)&be_const_str__X2Ep2, - (const bstring *)&be_const_str_Wire, - NULL, - (const bstring *)&be_const_str__X26lt_X3BNone_X26gt_X3B, - (const bstring *)&be_const_str_begin_multicast, - (const bstring *)&be_const_str_gpio, - (const bstring *)&be_const_str_setmember, - (const bstring *)&be_const_str_listdir, - NULL, - (const bstring *)&be_const_str_class_init_obj, - (const bstring *)&be_const_str_deg, - (const bstring *)&be_const_str_id, - (const bstring *)&be_const_str_load_templates, - (const bstring *)&be_const_str_get_alternate, - (const bstring *)&be_const_str_signal_arcs, - (const bstring *)&be_const_str_False, - (const bstring *)&be_const_str_SERIAL_8O2, - (const bstring *)&be_const_str_lv_, - (const bstring *)&be_const_str_None, - (const bstring *)&be_const_str_run_deferred, - (const bstring *)&be_const_str_CFG_X3A_X20downloading_X20_X27_X25s_X27, - (const bstring *)&be_const_str_WS2812, - (const bstring *)&be_const_str__X23autoexec_X2Ebat, - (const bstring *)&be_const_str_BUTTON_CONFIGURATION, - (const bstring *)&be_const_str__write, - NULL, - (const bstring *)&be_const_str_point_arr, - (const bstring *)&be_const_str_AudioOutputI2S, - (const bstring *)&be_const_str__X0A, - (const bstring *)&be_const_str_HTTP_POST, - (const bstring *)&be_const_str_SERIAL_5N2, - (const bstring *)&be_const_str__X23display_X2Eini, - (const bstring *)&be_const_str_file, - (const bstring *)&be_const_str_closure, - (const bstring *)&be_const_str_GET, - NULL, - (const bstring *)&be_const_str_content_send, - (const bstring *)&be_const_str__X3E_X3D, - (const bstring *)&be_const_str_SERIAL_7O1, - (const bstring *)&be_const_str__X23preinit_X2Ebe, - (const bstring *)&be_const_str_stop_iteration, - (const bstring *)&be_const_str_CFG_X3A_X20return_code_X3D_X25i, - (const bstring *)&be_const_str_dirty, - (const bstring *)&be_const_str_COLOR_BLACK, - (const bstring *)&be_const_str_remove, - (const bstring *)&be_const_str_SERIAL_5O2, - (const bstring *)&be_const_str_time_reached, - (const bstring *)&be_const_str_back_forth, - (const bstring *)&be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker, - (const bstring *)&be_const_str__p, - (const bstring *)&be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, - NULL, - (const bstring *)&be_const_str_push, - (const bstring *)&be_const_str__X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, - NULL, - (const bstring *)&be_const_str_del, - (const bstring *)&be_const_str__X2Ebec, - (const bstring *)&be_const_str_WS2812_GRB, - NULL, - (const bstring *)&be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus, - (const bstring *)&be_const_str_autoexec, - (const bstring *)&be_const_str_set_light, - (const bstring *)&be_const_str_resp_cmnd_done, - (const bstring *)&be_const_str_decompress, - (const bstring *)&be_const_str_set_y, - (const bstring *)&be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map, - (const bstring *)&be_const_str__X7B_X7D, - (const bstring *)&be_const_str_null_cb, - (const bstring *)&be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, - (const bstring *)&be_const_str_SERIAL_7N1, - (const bstring *)&be_const_str_ctypes_bytes, - (const bstring *)&be_const_str_RES_OK, - (const bstring *)&be_const_str_SERIAL_6O2, - (const bstring *)&be_const_str_EVENT_DRAW_PART_BEGIN, - (const bstring *)&be_const_str__X2C, + (const bstring *)&be_const_str_instance_size, + (const bstring *)&be_const_str_SERIAL_5E1, (const bstring *)&be_const_str__X3F, - (const bstring *)&be_const_str_EC_C25519, - (const bstring *)&be_const_str_asstring, NULL, - (const bstring *)&be_const_str_attrdump, - (const bstring *)&be_const_str_close, + (const bstring *)&be_const_str__X2Fac, NULL, - (const bstring *)&be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_value, - (const bstring *)&be_const_str_lv_module_init, - (const bstring *)&be_const_str_pi, - (const bstring *)&be_const_str_CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, - (const bstring *)&be_const_str_set_timeouts, + NULL, + (const bstring *)&be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf, + (const bstring *)&be_const_str__X23display_X2Eini, + (const bstring *)&be_const_str__X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_X26deg_X3BC_X7Be_X7D, + (const bstring *)&be_const_str_every_50ms, + (const bstring *)&be_const_str_SERIAL_8E2, + (const bstring *)&be_const_str_allocated, + (const bstring *)&be_const_str_issubclass, + (const bstring *)&be_const_str_lv_point_arr, + (const bstring *)&be_const_str__X2C, + (const bstring *)&be_const_str_Parameter_X20error, + (const bstring *)&be_const_str_add_handler, + (const bstring *)&be_const_str_compile, + (const bstring *)&be_const_str_lv_obj, + (const bstring *)&be_const_str_wd, + (const bstring *)&be_const_str__X3D_X3C_X3E_X21, + (const bstring *)&be_const_str__X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E, + (const bstring *)&be_const_str__X2Ep, + (const bstring *)&be_const_str_SERIAL_7E2, + (const bstring *)&be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, + (const bstring *)&be_const_str__X3D, + (const bstring *)&be_const_str_set_ldo_enable, + (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, + (const bstring *)&be_const_str_get_bat_power, + (const bstring *)&be_const_str_get_vbus_current, + (const bstring *)&be_const_str_remove, + (const bstring *)&be_const_str_resp_cmnd_failed, + (const bstring *)&be_const_str_file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27, + (const bstring *)&be_const_str_TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, + (const bstring *)&be_const_str_Leds, + NULL, + (const bstring *)&be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27, + NULL, + (const bstring *)&be_const_str_hs2rgb, + (const bstring *)&be_const_str_is_dirty, + (const bstring *)&be_const_str__X2E_X2E, + (const bstring *)&be_const_str_lv_signal_arcs, + (const bstring *)&be_const_str_last_modified, + (const bstring *)&be_const_str_AudioGeneratorMP3, + (const bstring *)&be_const_str__def, + (const bstring *)&be_const_str_EVENT_DRAW_PART_END, (const bstring *)&be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, - (const bstring *)&be_const_str__X2Ep1, - (const bstring *)&be_const_str_zero, - (const bstring *)&be_const_str_coord_arr, - (const bstring *)&be_const_str_map, - (const bstring *)&be_const_str_str, + (const bstring *)&be_const_str_draw_arc, NULL, - (const bstring *)&be_const_str_offset, + (const bstring *)&be_const_str_Unknown_X20command, + (const bstring *)&be_const_str_point, + NULL, + (const bstring *)&be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str__X3C_X3D, + (const bstring *)&be_const_str_list_handlers, + NULL, + (const bstring *)&be_const_str__X2F_X3Frst_X3D, + (const bstring *)&be_const_str_RES_OK, + (const bstring *)&be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range, + (const bstring *)&be_const_str_matrix, + (const bstring *)&be_const_str_SERIAL_6E2, + (const bstring *)&be_const_str_null_cb, (const bstring *)&be_const_str__X20, - (const bstring *)&be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, - (const bstring *)&be_const_str_get_vbus_voltage, - (const bstring *)&be_const_str__end_transmission, + (const bstring *)&be_const_str_web_add_handler, + (const bstring *)&be_const_str_CFG_X3A_X20downloading_X20_X27_X25s_X27, + NULL, + (const bstring *)&be_const_str___iterator__, + (const bstring *)&be_const_str__read, + (const bstring *)&be_const_str_Restart_X201, + (const bstring *)&be_const_str_set_dcdc_enable, + (const bstring *)&be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str__t, + (const bstring *)&be_const_str_time_reached, + (const bstring *)&be_const_str_encrypt, + (const bstring *)&be_const_str_alternate, + (const bstring *)&be_const_str_json_append, + (const bstring *)&be_const_str__X3D_X3D, + NULL, + (const bstring *)&be_const_str__X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, + (const bstring *)&be_const_str_I2C_Driver, + (const bstring *)&be_const_str_energy_struct, + (const bstring *)&be_const_str_codedump, + (const bstring *)&be_const_str_lv_module_init, + (const bstring *)&be_const_str_group_def, + NULL, + (const bstring *)&be_const_str_SERIAL_8N2, + (const bstring *)&be_const_str_exec_cmd, + (const bstring *)&be_const_str_finish, + NULL, + NULL, + (const bstring *)&be_const_str_arg_size, + (const bstring *)&be_const_str_COLOR_WHITE, + (const bstring *)&be_const_str_json, + (const bstring *)&be_const_str_AudioOutputI2S, + (const bstring *)&be_const_str_from_to, + (const bstring *)&be_const_str_lower, + (const bstring *)&be_const_str__filename, + (const bstring *)&be_const_str_geti, + (const bstring *)&be_const_str__X23autoexec_X2Ebat, + (const bstring *)&be_const_str_exec_rules, + (const bstring *)&be_const_str_raise, + (const bstring *)&be_const_str_STATE_DEFAULT, + (const bstring *)&be_const_str_None, + (const bstring *)&be_const_str__X3Cselect_X20name_X3D_X27zip_X27_X3E, + (const bstring *)&be_const_str_exists, + (const bstring *)&be_const_str_couldn_X27t_X20not_X20initialize_X20noepixelbus, + (const bstring *)&be_const_str_load, + (const bstring *)&be_const_str_isrunning, + (const bstring *)&be_const_str_resize, + (const bstring *)&be_const_str_SERIAL_6O1, + (const bstring *)&be_const_str_bus, + (const bstring *)&be_const_str_OneWire, + (const bstring *)&be_const_str__X2502d_X25s_X2502d, + (const bstring *)&be_const_str__X3Cp_X20style_X3D_X27width_X3A340px_X3B_X27_X3E_X3Cb_X3EException_X3A_X3C_X2Fb_X3E_X3Cbr_X3E_X27_X25s_X27_X3Cbr_X3E_X25s_X3C_X2Fp_X3E, + NULL, + (const bstring *)&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, + (const bstring *)&be_const_str_ins_goto, + (const bstring *)&be_const_str_bytes, + (const bstring *)&be_const_str_day, + (const bstring *)&be_const_str_reapply, + (const bstring *)&be_const_str_keys, + (const bstring *)&be_const_str_Wire, + (const bstring *)&be_const_str_SERIAL_8O2, + (const bstring *)&be_const_str_rad, + (const bstring *)&be_const_str_consume_mono, + (const bstring *)&be_const_str_deinit, + (const bstring *)&be_const_str__X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, + (const bstring *)&be_const_str_CFG_X3A_X20return_code_X3D_X25i, (const bstring *)&be_const_str_BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, - (const bstring *)&be_const_str_clear_to, + NULL, + (const bstring *)&be_const_str_decode, + (const bstring *)&be_const_str__X2Ep1, + (const bstring *)&be_const_str__X3A, + (const bstring *)&be_const_str__begin_transmission, (const bstring *)&be_const_str_CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29, NULL, - (const bstring *)&be_const_str__X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, - (const bstring *)&be_const_str_SERIAL_8O1, - (const bstring *)&be_const_str_AudioFileSourceFS, + (const bstring *)&be_const_str_flush, + NULL, + (const bstring *)&be_const_str_obj_event_base, + (const bstring *)&be_const_str_widget_event, + NULL, + NULL, + (const bstring *)&be_const_str_set_timer, + (const bstring *)&be_const_str_to_gamma, + NULL, + (const bstring *)&be_const_str__X2B, + (const bstring *)&be_const_str__X2Ebec, + (const bstring *)&be_const_str_resp_cmnd, + (const bstring *)&be_const_str_lv, + (const bstring *)&be_const_str_closure, + (const bstring *)&be_const_str_as, + (const bstring *)&be_const_str_instance, + NULL, + (const bstring *)&be_const_str__X2Ew, + NULL, + (const bstring *)&be_const_str__X2Elen, + (const bstring *)&be_const_str_dump, + (const bstring *)&be_const_str__ptr, + (const bstring *)&be_const_str_rule, + (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27, + (const bstring *)&be_const_str_concat, + (const bstring *)&be_const_str_SERIAL_5O2, + (const bstring *)&be_const_str_constructor_cb, + (const bstring *)&be_const_str_code, + (const bstring *)&be_const_str_cmd, + (const bstring *)&be_const_str_OPTION_A, + (const bstring *)&be_const_str_lv_coord_arr, + (const bstring *)&be_const_str_class_init_obj, + (const bstring *)&be_const_str__debug_present, + (const bstring *)&be_const_str_toupper, + NULL, + (const bstring *)&be_const_str_count, + (const bstring *)&be_const_str_pixels_buffer, + (const bstring *)&be_const_str_set_pixel_color, + (const bstring *)&be_const_str_close, + (const bstring *)&be_const_str__X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, + (const bstring *)&be_const_str___upper__, + (const bstring *)&be_const_str__X3Clambda_X3E, + (const bstring *)&be_const_str_SERIAL_7E1, + (const bstring *)&be_const_str_SERIAL_5E2, + (const bstring *)&be_const_str__X3E, + (const bstring *)&be_const_str_cb_obj, + NULL, (const bstring *)&be_const_str_AudioGenerator, - (const bstring *)&be_const_str__X21_X3D, - (const bstring *)&be_const_str_decrypt, - (const bstring *)&be_const_str_pc_abs, + (const bstring *)&be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker, + (const bstring *)&be_const_str_detect, + (const bstring *)&be_const_str_get_input_power_status, + (const bstring *)&be_const_str__X3E_X3D, + (const bstring *)&be_const_str_lv_wifi_arcs, + NULL, + NULL, + (const bstring *)&be_const_str_number, + (const bstring *)&be_const_str_GET, + (const bstring *)&be_const_str__X2F, + (const bstring *)&be_const_str__X2D_X2D_X3A_X2D_X2D, + (const bstring *)&be_const_str_calldepth, + (const bstring *)&be_const_str_CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, + NULL, + (const bstring *)&be_const_str_round_end, + (const bstring *)&be_const_str_montserrat_font, + (const bstring *)&be_const_str_SERIAL_7O1, + (const bstring *)&be_const_str_c, + (const bstring *)&be_const_str_true, + (const bstring *)&be_const_str__X2Eautoconf, + (const bstring *)&be_const_str__X3C, + (const bstring *)&be_const_str__X26lt_X3BNone_X26gt_X3B, + (const bstring *)&be_const_str_iter, + (const bstring *)&be_const_str_CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29, + (const bstring *)&be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson, + (const bstring *)&be_const_str__class, + (const bstring *)&be_const_str__lvgl, + (const bstring *)&be_const_str__end_transmission, + (const bstring *)&be_const_str_draw_line_dsc, + (const bstring *)&be_const_str__X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, + (const bstring *)&be_const_str_tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29, + (const bstring *)&be_const_str_init_draw_line_dsc, + NULL, + (const bstring *)&be_const_str_get_bat_charge_current, + (const bstring *)&be_const_str_i2c_enabled, + NULL, + (const bstring *)&be_const_str_EC_C25519, + (const bstring *)&be_const_str_p1, + (const bstring *)&be_const_str_exec_tele, + (const bstring *)&be_const_str_False, + (const bstring *)&be_const_str_deg, (const bstring *)&be_const_str_a, - (const bstring *)&be_const_str_add_driver + (const bstring *)&be_const_str_I2C_X3A, + (const bstring *)&be_const_str_elements_X20must_X20be_X20a_X20lv_point, + (const bstring *)&be_const_str_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj, + (const bstring *)&be_const_str_top, + (const bstring *)&be_const_str__drivers, + (const bstring *)&be_const_str_remove_rule, + NULL, + (const bstring *)&be_const_str_WS2812_GRB, + (const bstring *)&be_const_str_tr, + (const bstring *)&be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str_bool, + (const bstring *)&be_const_str_SERIAL_8E1, + (const bstring *)&be_const_str_AudioFileSourceFS, + (const bstring *)&be_const_str__X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str_duration, + (const bstring *)&be_const_str__X23, + (const bstring *)&be_const_str__X2F_X2Eautoconf, + NULL, + (const bstring *)&be_const_str_split, + (const bstring *)&be_const_str_clear_to, + (const bstring *)&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_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str_draw_line_dsc_init, + NULL, + (const bstring *)&be_const_str_lvgl_event_dispatch, + (const bstring *)&be_const_str_set_gain, + (const bstring *)&be_const_str__X2Ebe, + (const bstring *)&be_const_str_deregister_obj, + (const bstring *)&be_const_str_EVENT_DRAW_MAIN, + (const bstring *)&be_const_str_CFG_X3A_X20loading_X20_X27_X25s_X27, + (const bstring *)&be_const_str_running, + (const bstring *)&be_const_str__X21_X3D, + (const bstring *)&be_const_str__X28_X29, + (const bstring *)&be_const_str_get_option, + (const bstring *)&be_const_str_button_pressed, + (const bstring *)&be_const_str_set_power, + NULL, + (const bstring *)&be_const_str_can_show, + (const bstring *)&be_const_str__X25s_X2Eautoconf, + (const bstring *)&be_const_str_SERIAL_6O2, + (const bstring *)&be_const_str_color, + (const bstring *)&be_const_str__settings_def, + NULL, + (const bstring *)&be_const_str_clear_first_time, + (const bstring *)&be_const_str_ins_ramp, + (const bstring *)&be_const_str_Auto_X2Dconfiguration, + (const bstring *)&be_const_str_CFG_X3A_X20running_X20, + (const bstring *)&be_const_str_get_style_bg_color, + (const bstring *)&be_const_str_consume_stereo, + (const bstring *)&be_const_str_Tele, + (const bstring *)&be_const_str_print, + NULL, + (const bstring *)&be_const_str_animate, + (const bstring *)&be_const_str_event, + (const bstring *)&be_const_str_io_error, + (const bstring *)&be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29, + (const bstring *)&be_const_str_imin, + (const bstring *)&be_const_str_arg, + (const bstring *)&be_const_str_Tasmota, + (const bstring *)&be_const_str_, + (const bstring *)&be_const_str_size, + (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, + (const bstring *)&be_const_str_Timer, + (const bstring *)&be_const_str_SERIAL_8N1, + (const bstring *)&be_const_str_read12, + (const bstring *)&be_const_str_upper, + (const bstring *)&be_const_str__X2Esize, + (const bstring *)&be_const_str_ctor, + (const bstring *)&be_const_str_widget_dtor_impl, + (const bstring *)&be_const_str_read8, + (const bstring *)&be_const_str_SERIAL_5N1, + (const bstring *)&be_const_str__global_def, + (const bstring *)&be_const_str__X5B, + (const bstring *)&be_const_str_base_class, + (const bstring *)&be_const_str_EVENT_DRAW_PART_BEGIN, + (const bstring *)&be_const_str_CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found, + (const bstring *)&be_const_str__X23preinit_X2Ebe, + (const bstring *)&be_const_str_create_segment, + (const bstring *)&be_const_str_AXP192, + NULL, + (const bstring *)&be_const_str__X21_X3D_X3D, + (const bstring *)&be_const_str_loop, + (const bstring *)&be_const_str_del, + (const bstring *)&be_const_str_add_cmd, + (const bstring *)&be_const_str_insert, + (const bstring *)&be_const_str__ccmd, + (const bstring *)&be_const_str__error, + (const bstring *)&be_const_str__X23init_X2Ebat, + (const bstring *)&be_const_str_HTTP_GET, + NULL, + (const bstring *)&be_const_str_reverse_gamma10, + (const bstring *)&be_const_str_SERIAL_5O1, + (const bstring *)&be_const_str_classname, + (const bstring *)&be_const_str_set_bits_per_sample, + (const bstring *)&be_const_str_y, + (const bstring *)&be_const_str_compress, + (const bstring *)&be_const_str_invalidate, + (const bstring *)&be_const_str_atan2, + (const bstring *)&be_const_str_CFG_X3A_X20removing_X20autoconf_X20files, + (const bstring *)&be_const_str_consume_silence, + (const bstring *)&be_const_str_addr, + (const bstring *)&be_const_str__X0A, + (const bstring *)&be_const_str_eth, + (const bstring *)&be_const_str_list, + (const bstring *)&be_const_str_AES_GCM, + (const bstring *)&be_const_str_erase, + (const bstring *)&be_const_str_AudioFileSource, + (const bstring *)&be_const_str_minute, + (const bstring *)&be_const_str__timers, + (const bstring *)&be_const_str__X2Ep2, + (const bstring *)&be_const_str_bri, + (const bstring *)&be_const_str_autoexec, + (const bstring *)&be_const_str_BUTTON_CONFIGURATION, + (const bstring *)&be_const_str_load_templates, + (const bstring *)&be_const_str_item, + (const bstring *)&be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, + (const bstring *)&be_const_str_rtc, + NULL, + NULL, + (const bstring *)&be_const_str_ins_time, + (const bstring *)&be_const_str_HTTP_POST, + (const bstring *)&be_const_str_font_seg7, + (const bstring *)&be_const_str_json_fdump, + NULL, + (const bstring *)&be_const_str__X2Etapp, + (const bstring *)&be_const_str_display, + NULL, + (const bstring *)&be_const_str__X23autoexec_X2Ebe, + (const bstring *)&be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, + (const bstring *)&be_const_str_member, + (const bstring *)&be_const_str_begin, + (const bstring *)&be_const_str__X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str_wire2, + NULL, + (const bstring *)&be_const_str_SERIAL_6N2, + (const bstring *)&be_const_str_digital_write, + (const bstring *)&be_const_str_set_chg_current, + (const bstring *)&be_const_str_traceback, + (const bstring *)&be_const_str_escape, + (const bstring *)&be_const_str_add_rule, + (const bstring *)&be_const_str__cmd, + NULL, + (const bstring *)&be_const_str_find, + (const bstring *)&be_const_str_offseta, + (const bstring *)&be_const_str__X5D, + NULL }; static const struct bconststrtab m_const_string_table = { - .size = 378, - .count = 779, + .size = 382, + .count = 788, .table = m_string_table }; diff --git a/lib/libesp32/berry/generate/be_fixed_be_class_audio_opus_decoder.h b/lib/libesp32/berry/generate/be_fixed_be_class_audio_opus_decoder.h new file mode 100644 index 000000000..cf6611e28 --- /dev/null +++ b/lib/libesp32/berry/generate/be_fixed_be_class_audio_opus_decoder.h @@ -0,0 +1,20 @@ +#include "be_constobj.h" + +static be_define_const_map_slots(be_class_audio_opus_decoder_map) { + { be_const_key(deinit, -1), be_const_func(be_audio_opus_decoder_deinit) }, + { be_const_key(decode, 2), be_const_func(be_audio_opus_decoder_decode) }, + { be_const_key(_X2Ep, -1), be_const_var(0) }, + { be_const_key(init, 1), be_const_func(be_audio_opus_decoder_init) }, +}; + +static be_define_const_map( + be_class_audio_opus_decoder_map, + 4 +); + +BE_EXPORT_VARIABLE be_define_const_class( + be_class_audio_opus_decoder, + 1, + NULL, + OpusDecoder +); diff --git a/lib/libesp32/berry/generate/be_fixed_be_class_audio_output.h b/lib/libesp32/berry/generate/be_fixed_be_class_audio_output.h index 192ee0677..7cf34b574 100644 --- a/lib/libesp32/berry/generate/be_fixed_be_class_audio_output.h +++ b/lib/libesp32/berry/generate/be_fixed_be_class_audio_output.h @@ -1,12 +1,23 @@ #include "be_constobj.h" static be_define_const_map_slots(be_class_audio_output_map) { + { be_const_key(set_bits_per_sample, -1), be_const_func(be_audio_output_set_bits_per_sample) }, + { be_const_key(flush, -1), be_const_func(be_audio_output_flush) }, + { be_const_key(consume_stereo, -1), be_const_func(be_audio_output_consume_stereo) }, + { be_const_key(init, -1), be_const_func(be_audio_output_init) }, + { be_const_key(consume_mono, -1), be_const_func(be_audio_output_consume_mono) }, + { be_const_key(stop, -1), be_const_func(be_audio_output_stop) }, + { be_const_key(begin, -1), be_const_func(be_audio_output_begin) }, { be_const_key(_X2Ep, -1), be_const_var(0) }, + { be_const_key(set_channels, -1), be_const_func(be_audio_output_set_channels) }, + { be_const_key(consume_silence, 4), be_const_func(be_audio_output_consume_silence) }, + { be_const_key(set_rate, 2), be_const_func(be_audio_output_set_rate) }, + { be_const_key(set_gain, 0), be_const_func(be_audio_output_set_gain) }, }; static be_define_const_map( be_class_audio_output_map, - 1 + 12 ); BE_EXPORT_VARIABLE be_define_const_class( diff --git a/lib/libesp32/berry/library.json b/lib/libesp32/berry/library.json index 901800fca..38df6e3fc 100644 --- a/lib/libesp32/berry/library.json +++ b/lib/libesp32/berry/library.json @@ -17,14 +17,16 @@ "frameworks": "arduino", "platforms": "espressif32", "build": { + "includeDir": "generate", "srcFilter": [ "+<*.c>", "+<../default/*.c>", "+<../default/*.cpp>", "+<../default/*.hpp>", + "+<../generate/*.h>", "+<*.cpp>", "+<*.h>" ], "flags": [ "-I$PROJECT_DIR/tasmota", "-DCOMPILE_BERRY_LIB" ] } -} \ No newline at end of file +} diff --git a/lib/libesp32/berry_mapping/src/be_class_wrapper.c b/lib/libesp32/berry_mapping/src/be_class_wrapper.c index ef8decaea..625723ae5 100644 --- a/lib/libesp32/berry_mapping/src/be_class_wrapper.c +++ b/lib/libesp32/berry_mapping/src/be_class_wrapper.c @@ -138,6 +138,7 @@ int be_find_global_or_module_member(bvm *vm, const char * name) { * 'i' be_int * 'b' be_bool * 's' be_str + * '&' bytes() object, pointer to buffer returned, and size passed with an additional (size_t*) argument * * - arg_type: optionally check the types of input arguments, or throw an error * string of argument types, '[' indicates that the following parameters are optional @@ -145,8 +146,10 @@ int be_find_global_or_module_member(bvm *vm, const char * name) { * 'i' be_int * 'b' be_bool * 's' be_string + * 'f' be_real (float) * 'c' C callback - * '-' ignore and don't send to C function + * '-': skip argument and ignore + * '~': send the length of the previous bytes() buffer (or raise an exception if no length known) * 'lv_obj' be_instance of type or subtype * '^lv_event_cb' callback of a named class - will call `_lvgl.gen_cb(arg_type, closure, self)` and expects a callback address in return * @@ -276,27 +279,33 @@ intptr_t be_convert_single_elt(bvm *vm, int idx, const char * arg_type, int *buf // - '.': any argument (no check) // - '-': skip argument and ignore // - '~': send the length of the previous bytes() buffer (or raise an exception if no length known) +// - if return type is '&' (bytes), an implicit additional parameter is passed as (size_t*) to return the length in bytes // // - a class name surroungded by parenthesis // - '(lv_button)' -> lv_button class or derived // - '[lv_event_cb]' -> callback type, still prefixed with '^' to mark that it is cb // -void be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, intptr_t p[8]) { +// Returns the number of parameters sent to the function +// +int be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, intptr_t p[8]) { bbool arg_type_check = (arg_type != NULL); // is type checking activated - int32_t arg_idx = 0; // position in arg_type string - bbool arg_optional = bfalse; // are remaining types optional? + int32_t arg_idx = 0; // position in arg_type string + bbool arg_optional = bfalse; // are remaining types optional? char type_short_name[32]; uint32_t p_idx = 0; // index in p[], is incremented with each parameter except '-' int32_t buf_len = -1; // stores the length of a bytes() buffer to be used as '~' attribute + + // special case when no parameters are passed but all are optional + if (NULL != arg_type && arg_type[arg_idx] == '[') { + arg_optional = btrue; + arg_idx++; + } + for (uint32_t i = 0; i < argc; i++) { type_short_name[0] = 0; // clear string // extract individual type if (NULL != arg_type) { - if (arg_type[arg_idx] == '[' || arg_type[arg_idx] == ']') { // '[' is a marker that following parameters are optional and default to NULL - arg_optional = btrue; - arg_idx++; - } switch (arg_type[arg_idx]) { case '-': arg_idx++; @@ -333,6 +342,10 @@ void be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, arg_type = NULL; // stop iterations break; } + if (arg_type[arg_idx] == '[' || arg_type[arg_idx] == ']') { // '[' is a marker that following parameters are optional and default to NULL + arg_optional = btrue; + arg_idx++; + } } // AddLog(LOG_LEVEL_INFO, ">> be_call_c_func arg %i, type %s", i, arg_type_check ? type_short_name : ""); p[p_idx] = be_convert_single_elt(vm, i + arg_start, arg_type_check ? type_short_name : NULL, &buf_len); @@ -353,6 +366,7 @@ void be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, if (!arg_optional && arg_type != NULL && arg_type[arg_idx] != 0) { be_raisef(vm, "value_error", "Missing arguments, remaining type '%s'", &arg_type[arg_idx]); } + return p_idx; } // @@ -420,8 +434,12 @@ int be_call_c_func(bvm *vm, void * func, const char * return_type, const char * } } - fn_any_callable f = (fn_any_callable) func; - be_check_arg_type(vm, arg_start, arg_count, arg_type, p); + fn_any_callable f = (fn_any_callable) func; // when returning a bytes buffer, this holds the length of the buffer, while the return value of the function is `void*` + size_t return_len = 0; + int c_args = be_check_arg_type(vm, arg_start, arg_count, arg_type, p); + if (return_type != NULL && return_type[0] == '&') { + if (c_args < 8) { p[c_args] = (intptr_t) &return_len; } + } intptr_t ret = 0; if (f) ret = (*f)(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]); // berry_log_C("be_call_c_func '%s' -> '%s': (%i,%i,%i,%i,%i,%i) -> %i", return_type, arg_type, p[0], p[1], p[2], p[3], p[4], p[5], ret); @@ -438,7 +456,7 @@ int be_call_c_func(bvm *vm, void * func, const char * return_type, const char * case 'i': be_pushint(vm, ret); break; case 'b': be_pushbool(vm, ret); break; case 's': be_pushstring(vm, (const char*) ret); break; - case 'c': be_pushint(vm, ret); break; // TODO missing 'c' general callback type + case '&': be_pushbytes(vm, (void*) ret, return_len); break; default: be_raise(vm, "internal_error", "Unsupported return type"); break; } be_return(vm); diff --git a/lib/libesp32/berry_mapping/src/be_mapping.h b/lib/libesp32/berry_mapping/src/be_mapping.h index 3ba14660a..6264e1ebb 100644 --- a/lib/libesp32/berry_mapping/src/be_mapping.h +++ b/lib/libesp32/berry_mapping/src/be_mapping.h @@ -57,7 +57,7 @@ extern int be_find_global_or_module_member(bvm *vm, const char * cl_name); extern bbool be_const_member(bvm *vm, const be_const_member_t * definitions, size_t def_len); extern intptr_t be_convert_single_elt(bvm *vm, int idx, const char * arg_type, int *len); -extern void be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, intptr_t p[8]);; +extern int be_check_arg_type(bvm *vm, int arg_start, int argc, const char * arg_type, intptr_t p[8]); extern int be_call_c_func(bvm *vm, void * func, const char * return_type, const char * arg_type); #ifdef __cplusplus diff --git a/lib/libesp32/berry/include/be_ctypes.h b/lib/libesp32/berry_tasmota/include/be_ctypes.h similarity index 100% rename from lib/libesp32/berry/include/be_ctypes.h rename to lib/libesp32/berry_tasmota/include/be_ctypes.h diff --git a/lib/libesp32/berry_tasmota/library.json b/lib/libesp32/berry_tasmota/library.json new file mode 100644 index 000000000..e506ce7b6 --- /dev/null +++ b/lib/libesp32/berry_tasmota/library.json @@ -0,0 +1,17 @@ +{ + "name": "Berry Tasmota mapping", + "version": "1.0", + "description": "Mapping of Tasmota features to Berry", + "license": "MIT", + "homepage": "https://github.com/arendst/Tasmota", + "frameworks": "arduino", + "platforms": "espressif32", + "authors": + { + "name": "Stephan Hadinger", + "maintainer": true + }, + "build": { + "flags": [ "-I$PROJECT_DIR/include", "-includetasmota_options.h" ] + } + } \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_animate_lib.c b/lib/libesp32/berry_tasmota/src/be_animate_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_animate_lib.c rename to lib/libesp32/berry_tasmota/src/be_animate_lib.c diff --git a/lib/libesp32/berry_tasmota/src/be_audio_opus_lib.c b/lib/libesp32/berry_tasmota/src/be_audio_opus_lib.c new file mode 100644 index 000000000..19253b0d3 --- /dev/null +++ b/lib/libesp32/berry_tasmota/src/be_audio_opus_lib.c @@ -0,0 +1,88 @@ +/******************************************************************** + * Tasmota I2S audio classes + * + * + *******************************************************************/ +#include "be_constobj.h" + +#ifdef USE_I2S +#ifdef USE_I2S_AUDIO_BERRY + +#include "libopus/opus.h" +#include "be_mapping.h" + +// Tasmota Logging +extern void tasmota_log_C(uint32_t loglevel, const char * berry_buf, ...); +enum LoggingLevels {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE}; + +// init(freq:int, channels:int) +void *be_audio_opus_decoder_init_ntv(int freq, int channels) { + if (freq <= 0) { freq = 16000; } + if (channels <= 0) { channels = 1; } + int opus_size = opus_decoder_get_size(channels); // get size for n channel + tasmota_log_C(LOG_LEVEL_DEBUG, "AUD: allocated %i bytes for Opus decoder", opus_size); + void * buf = BE_EXPLICIT_MALLOC(opus_size); + if (!buf) { berry_log_C("OPUS: out of memory"); } + + int err = opus_decoder_init((OpusDecoder*)buf, freq, channels); + if (err) { berry_log_C("OPUS: opus_encoder_init error=%i", err); } + + return buf; +} +int32_t be_audio_opus_decoder_init(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_opus_decoder_init_ntv, "+.p", "i[i]"); +} + +// deinit() +void *be_audio_opus_decoder_deinit_ntv(OpusDecoder* buf) { + if (buf) BE_EXPLICIT_FREE(buf); + return NULL; +} +int32_t be_audio_opus_decoder_deinit(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_opus_decoder_deinit_ntv, "", "."); +} + + +// decode(payload:bytes) -> pcm:bytes() +int32_t be_audio_opus_decoder_decode(struct bvm *vm) { + int32_t argc = be_top(vm); + be_call_c_func(vm, NULL, NULL, ".(bytes)"); + + OpusDecoder* st = (OpusDecoder*) be_convert_single_elt(vm, 1, NULL, NULL); // get value of '.p' + size_t frames_len; + const uint8_t * opus_frame = be_tobytes(vm, 2, &frames_len); + + int samples = opus_decoder_get_nb_samples(st, opus_frame, frames_len); + // tasmota_log_C(LOG_LEVEL_DEBUG, "AUD: frame contains %i samples", samples); + + // allocate a buffer for the content + void * pcm = be_pushbytes(vm, NULL, samples * 2); + + int ret = opus_decode(st, opus_frame, frames_len, pcm, samples, 0); + if (ret != samples) { be_raisef(vm, "internal_error", "wrong number of frames %i (supposed to be %i", ret, samples); } + + be_return(vm); +} + +#include "be_fixed_be_class_audio_opus_decoder.h" + +void be_load_driver_audio_opus_decoder(bvm *vm) { + be_pushntvclass(vm, &be_class_audio_opus_decoder); + be_setglobal(vm, "OpusDecoder"); + be_pop(vm, 1); +} + +/* @const_object_info_begin + +class be_class_audio_opus_decoder (scope: global, name: OpusDecoder) { + .p, var + init, func(be_audio_opus_decoder_init) + deinit, func(be_audio_opus_decoder_deinit) + + decode, func(be_audio_opus_decoder_decode) +} + +@const_object_info_end */ + +#endif // USE_I2S_AUDIO_BERRY +#endif // USE_I2S \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_autoconf_lib.c b/lib/libesp32/berry_tasmota/src/be_autoconf_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_autoconf_lib.c rename to lib/libesp32/berry_tasmota/src/be_autoconf_lib.c diff --git a/lib/libesp32/berry/default/be_crypto_lib.c b/lib/libesp32/berry_tasmota/src/be_crypto_lib.c similarity index 92% rename from lib/libesp32/berry/default/be_crypto_lib.c rename to lib/libesp32/berry_tasmota/src/be_crypto_lib.c index 04a10b28e..03173ec0c 100644 --- a/lib/libesp32/berry/default/be_crypto_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_crypto_lib.c @@ -17,8 +17,8 @@ extern int m_aes_gcm_tag(bvm *vm); extern int m_ec_c25519_pubkey(bvm *vm); extern int m_ec_c25519_sharedkey(bvm *vm); -#include "../generate/be_fixed_be_class_aes_gcm.h" -#include "../generate/be_fixed_be_class_ec_c25519.h" +#include "be_fixed_be_class_aes_gcm.h" +#include "be_fixed_be_class_ec_c25519.h" void be_load_crypto_lib(bvm *vm) { // insert the class GCM in module AES diff --git a/lib/libesp32/berry/default/be_ctypes.c b/lib/libesp32/berry_tasmota/src/be_ctypes.c similarity index 99% rename from lib/libesp32/berry/default/be_ctypes.c rename to lib/libesp32/berry_tasmota/src/be_ctypes.c index 18e655d8b..5bd8f309d 100644 --- a/lib/libesp32/berry/default/be_ctypes.c +++ b/lib/libesp32/berry_tasmota/src/be_ctypes.c @@ -462,8 +462,8 @@ int be_ctypes_dyn_init(bvm *vm) { BE_EXPORT_VARIABLE extern const bclass be_class_bytes; -#include "../generate/be_fixed_be_class_ctypes.h" -#include "../generate/be_fixed_be_class_ctypes_dyn.h" +#include "be_fixed_be_class_ctypes.h" +#include "be_fixed_be_class_ctypes_dyn.h" void be_load_ctypes_lib(bvm *vm) { be_pushntvclass(vm, &be_class_ctypes); diff --git a/lib/libesp32/berry/default/be_display_lib.c b/lib/libesp32/berry_tasmota/src/be_display_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_display_lib.c rename to lib/libesp32/berry_tasmota/src/be_display_lib.c diff --git a/lib/libesp32/berry/default/be_driverlib.c b/lib/libesp32/berry_tasmota/src/be_driverlib.c similarity index 100% rename from lib/libesp32/berry/default/be_driverlib.c rename to lib/libesp32/berry_tasmota/src/be_driverlib.c diff --git a/lib/libesp32/berry/default/be_energy_ctypes_definitions.c b/lib/libesp32/berry_tasmota/src/be_energy_ctypes_definitions.c similarity index 100% rename from lib/libesp32/berry/default/be_energy_ctypes_definitions.c rename to lib/libesp32/berry_tasmota/src/be_energy_ctypes_definitions.c diff --git a/lib/libesp32/berry/default/be_energylib.c b/lib/libesp32/berry_tasmota/src/be_energylib.c similarity index 100% rename from lib/libesp32/berry/default/be_energylib.c rename to lib/libesp32/berry_tasmota/src/be_energylib.c diff --git a/lib/libesp32/berry/default/be_flash_lib.c b/lib/libesp32/berry_tasmota/src/be_flash_lib.c similarity index 93% rename from lib/libesp32/berry/default/be_flash_lib.c rename to lib/libesp32/berry_tasmota/src/be_flash_lib.c index 539805d5d..cbce3ce47 100644 --- a/lib/libesp32/berry/default/be_flash_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_flash_lib.c @@ -18,4 +18,4 @@ module flash (scope: global) { erase, func(p_flash_erase) } @const_object_info_end */ -#include "../generate/be_fixed_flash.h" +#include "be_fixed_flash.h" diff --git a/lib/libesp32/berry/default/be_gpio_lib.c b/lib/libesp32/berry_tasmota/src/be_gpio_lib.c similarity index 95% rename from lib/libesp32/berry/default/be_gpio_lib.c rename to lib/libesp32/berry_tasmota/src/be_gpio_lib.c index 3f0b2b3ed..3ada8347f 100644 --- a/lib/libesp32/berry/default/be_gpio_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_gpio_lib.c @@ -31,4 +31,4 @@ module gpio (scope: global) { pin, func(gp_pin) } @const_object_info_end */ -#include "../generate/be_fixed_gpio.h" +#include "be_fixed_gpio.h" diff --git a/lib/libesp32/berry/default/be_i2c_axp192_lib.c b/lib/libesp32/berry_tasmota/src/be_i2c_axp192_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_i2c_axp192_lib.c rename to lib/libesp32/berry_tasmota/src/be_i2c_axp192_lib.c diff --git a/lib/libesp32/berry/default/be_i2c_driverlib.c b/lib/libesp32/berry_tasmota/src/be_i2c_driverlib.c similarity index 100% rename from lib/libesp32/berry/default/be_i2c_driverlib.c rename to lib/libesp32/berry_tasmota/src/be_i2c_driverlib.c diff --git a/lib/libesp32/berry_tasmota/src/be_i2s_audio_lib.cpp b/lib/libesp32/berry_tasmota/src/be_i2s_audio_lib.cpp new file mode 100644 index 000000000..0b0d08919 --- /dev/null +++ b/lib/libesp32/berry_tasmota/src/be_i2s_audio_lib.cpp @@ -0,0 +1,245 @@ +/******************************************************************** + * Tasmota I2S audio classes + * + * + *******************************************************************/ +#include "be_constobj.h" + +#ifdef USE_I2S +#ifdef USE_I2S_AUDIO_BERRY + +#include "be_mapping.h" +#include "AudioOutput.h" + +extern "C" void berry_log_C(const char * berry_buf, ...); + +extern "C" { + extern int i2s_output_i2s_init(bvm *vm); + extern int i2s_output_i2s_deinit(bvm *vm); + extern int i2s_output_i2s_stop(bvm *vm); + + extern int i2s_generator_wav_init(bvm *vm); + extern int i2s_generator_wav_deinit(bvm *vm); + extern int i2s_generator_wav_begin(bvm *vm); + extern int i2s_generator_wav_loop(bvm *vm); + extern int i2s_generator_wav_stop(bvm *vm); + extern int i2s_generator_wav_isrunning(bvm *vm); + + extern int i2s_generator_mp3_init(bvm *vm); + extern int i2s_generator_mp3_deinit(bvm *vm); + extern int i2s_generator_mp3_begin(bvm *vm); + extern int i2s_generator_mp3_loop(bvm *vm); + extern int i2s_generator_mp3_stop(bvm *vm); + extern int i2s_generator_mp3_isrunning(bvm *vm); + +#ifdef USE_UFILESYS + extern int i2s_file_source_fs_init(bvm *vm); + extern int i2s_file_source_fs_deinit(bvm *vm); +#endif // USE_UFILESYS +} + +// AudioOutput.set_rate(rate_hz:int) -> bool +AudioOutput* be_audio_output_init_ntv(void) { + return new AudioOutput(); +} +int32_t be_audio_output_init(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_init_ntv, "+.p", ""); +} + +// AudioOutput.set_rate(rate_hz:int) -> bool +int be_audio_output_set_rate_ntv(AudioOutput* out, int hz) { + return out->SetRate(hz); +} +int32_t be_audio_output_set_rate(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_set_rate_ntv, "b", ".i"); +} + +// AudioOutput.set_bits_per_sample(bits_per_sample:int) -> bool +int be_audio_output_set_bits_per_sample_ntv(AudioOutput* out, int bps) { + return out->SetBitsPerSample(bps); +} +int32_t be_audio_output_set_bits_per_sample(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_set_bits_per_sample_ntv, "b", ".i"); +} + +// AudioOutput.set_channels(channels:int) -> bool +int be_audio_output_set_channels_ntv(AudioOutput* out, int channels) { + return out->SetChannels(channels); +} +int32_t be_audio_output_set_channels(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_set_channels_ntv, "b", ".i"); +} + +// AudioOutput.set_gain(gain:real) -> bool +int be_audio_output_set_gain_ntv(AudioOutput* out, float gain) { + return out->SetGain(gain); +} +int32_t be_audio_output_set_gain(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_set_gain_ntv, "b", ".f"); +} + +// AudioOutput.begin() -> bool +int be_audio_output_begin_ntv(AudioOutput* out) { + return out->begin(); +} +int32_t be_audio_output_begin(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_begin_ntv, "b", "."); +} +// AudioOutput.stop() -> bool +int be_audio_output_stop_ntv(AudioOutput* out) { + return out->stop(); +} +int32_t be_audio_output_stop(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_stop_ntv, "b", "."); +} +// AudioOutput.flush() -> bool +void be_audio_output_flush_ntv(AudioOutput* out) { + out->flush(); +} +int32_t be_audio_output_flush(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_flush_ntv, "", "."); +} + +// AudioOutput.consume_mono(bytes) -> int +int be_audio_output_consume_mono_ntv(AudioOutput* out, uint16_t *pcm, int bytes_len, int index) { + int pcm_len = bytes_len / 2; + int n; + // berry_log_C("be_audio_output_consume_mono_ntv out=%p pcm=%p bytes_len=%i index=%i", out, pcm, bytes_len, index); + for (n = 0; index + n < pcm_len; n++) { + int16_t ms[2]; + ms[AudioOutput::LEFTCHANNEL] = ms[AudioOutput::RIGHTCHANNEL] = pcm[index + n]; + if (!out->ConsumeSample(ms)) { break; } + } + return n; +} +int32_t be_audio_output_consume_mono(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_consume_mono_ntv, "i", ".(bytes)~i"); +} + +// AudioOutput.consume_stereo(bytes) -> int +int be_audio_output_consume_stereo_ntv(AudioOutput* out, uint16_t *pcm, int bytes_len, int index) { + int pcm_len = bytes_len / 4; // 2 samples LEFT+RIGHT of 2 bytes each + int n; + // berry_log_C("be_audio_output_consume_stereo_ntv out=%p pcm=%p bytes_len=%i index=%i", out, pcm, bytes_len, index); + for (n = 0; index + n < pcm_len; n++) { + int16_t ms[2]; + ms[AudioOutput::LEFTCHANNEL] = pcm[index + n + n]; + ms[AudioOutput::RIGHTCHANNEL] = pcm[index + n + n + 1]; + if (!out->ConsumeSample(ms)) { break; } + } + return n; +} +int32_t be_audio_output_consume_stereo(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_consume_stereo_ntv, "i", ".(bytes)~i"); +} + +// AudioOutput.consume_silence() -> int, push silence frames +int be_audio_output_consume_silence_ntv(AudioOutput* out) { + int n = 0; + int16_t ms[2] = {0, 0}; + while (true) { + if (!out->ConsumeSample(ms)) { break; } + n++; + } + return n; +} +int32_t be_audio_output_consume_silence(struct bvm *vm) { + return be_call_c_func(vm, (void*) &be_audio_output_consume_silence_ntv, "i", "."); +} + +extern "C" { + +#include "be_fixed_be_class_audio_output.h" +#include "be_fixed_be_class_audio_output_i2s.h" +#include "be_fixed_be_class_audio_generator.h" +#include "be_fixed_be_class_audio_generator_wav.h" +#include "be_fixed_be_class_audio_generator_mp3.h" +#include "be_fixed_be_class_audio_file_source.h" +#include "be_fixed_be_class_audio_file_source_fs.h" + + void be_load_driver_audio_lib(bvm *vm) { + be_pushntvclass(vm, &be_class_audio_output); + be_setglobal(vm, "AudioOutput"); + be_pop(vm, 1); + + be_pushntvclass(vm, &be_class_audio_output_i2s); + be_setglobal(vm, "AudioOutputI2S"); + be_pop(vm, 1); + + be_pushntvclass(vm, &be_class_audio_generator_wav); + be_setglobal(vm, "AudioGeneratorWAV"); + be_pop(vm, 1); + + be_pushntvclass(vm, &be_class_audio_generator_mp3); + be_setglobal(vm, "AudioGeneratorMP3"); + be_pop(vm, 1); + + #ifdef USE_UFILESYS + be_pushntvclass(vm, &be_class_audio_file_source_fs); + be_setglobal(vm, "AudioFileSourceFS"); + be_pop(vm, 1); + #endif // USE_UFILESYS + } +} + +/* @const_object_info_begin + +class be_class_audio_output (scope: global, name: AudioOutput) { + .p, var + init, func(be_audio_output_init) + + begin, func(be_audio_output_begin) + stop, func(be_audio_output_stop) + flush, func(be_audio_output_flush) + + consume_mono, func(be_audio_output_consume_mono) + consume_stereo, func(be_audio_output_consume_stereo) + consume_silence, func(be_audio_output_consume_silence) + + set_rate, func(be_audio_output_set_rate) + set_bits_per_sample, func(be_audio_output_set_bits_per_sample) + set_channels, func(be_audio_output_set_channels) + set_gain, func(be_audio_output_set_gain) +} + +class be_class_audio_generator (scope: global, name: AudioGenerator) { + .p, var +} + +class be_class_audio_file_source (scope: global, name: AudioFileSource) { + .p, var +} + +class be_class_audio_output_i2s (scope: global, name: AudioOutputI2S, super: be_class_audio_output) { + init, func(i2s_output_i2s_init) + deinit, func(i2s_output_i2s_deinit) + stop, func(i2s_output_i2s_stop) +} + +class be_class_audio_generator_wav (scope: global, name: AudioGeneratorWAV, super: be_class_audio_generator) { + init, func(i2s_generator_wav_init) + deinit, func(i2s_generator_wav_deinit) + begin, func(i2s_generator_wav_begin) + loop, func(i2s_generator_wav_loop) + stop, func(i2s_generator_wav_stop) + isrunning, func(i2s_generator_wav_isrunning) +} + +class be_class_audio_generator_mp3 (scope: global, name: AudioGeneratorMP3, super: be_class_audio_generator) { + init, func(i2s_generator_mp3_init) + deinit, func(i2s_generator_mp3_deinit) + begin, func(i2s_generator_mp3_begin) + loop, func(i2s_generator_mp3_loop) + stop, func(i2s_generator_mp3_stop) + isrunning, func(i2s_generator_mp3_isrunning) +} + +class be_class_audio_file_source_fs (scope: global, name: AudioFileSourceFS, super: be_class_audio_file_source) { + init, func(i2s_file_source_fs_init) + deinit, func(i2s_file_source_fs_deinit) +} + +@const_object_info_end */ + +#endif // USE_I2S_AUDIO_BERRY +#endif // USE_I2S \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_leds_animator_lib.c b/lib/libesp32/berry_tasmota/src/be_leds_animator_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_leds_animator_lib.c rename to lib/libesp32/berry_tasmota/src/be_leds_animator_lib.c diff --git a/lib/libesp32/berry/default/be_leds_lib.c b/lib/libesp32/berry_tasmota/src/be_leds_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_leds_lib.c rename to lib/libesp32/berry_tasmota/src/be_leds_lib.c diff --git a/lib/libesp32/berry/default/be_leds_ntv_lib.c b/lib/libesp32/berry_tasmota/src/be_leds_ntv_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_leds_ntv_lib.c rename to lib/libesp32/berry_tasmota/src/be_leds_ntv_lib.c diff --git a/lib/libesp32/berry/default/be_light_lib.c b/lib/libesp32/berry_tasmota/src/be_light_lib.c similarity index 91% rename from lib/libesp32/berry/default/be_light_lib.c rename to lib/libesp32/berry_tasmota/src/be_light_lib.c index 6d020eca8..cb0393411 100644 --- a/lib/libesp32/berry/default/be_light_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_light_lib.c @@ -23,6 +23,6 @@ module light (scope: global) { reverse_gamma10, func(l_rev_gamma10) } @const_object_info_end */ -#include "../generate/be_fixed_light.h" +#include "be_fixed_light.h" #endif // USE_LIGHT \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_lv_tasmota_lib.c b/lib/libesp32/berry_tasmota/src/be_lv_tasmota_lib.c similarity index 98% rename from lib/libesp32/berry/default/be_lv_tasmota_lib.c rename to lib/libesp32/berry_tasmota/src/be_lv_tasmota_lib.c index d69affbd9..6da172c6a 100644 --- a/lib/libesp32/berry/default/be_lv_tasmota_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_lv_tasmota_lib.c @@ -111,6 +111,6 @@ module lv_tasmota (scope: global) { load_freetype_font, func(lv0_load_freetype_font) } @const_object_info_end */ -#include "../generate/be_fixed_lv_tasmota.h" +#include "be_fixed_lv_tasmota.h" #endif // USE_LVGL \ No newline at end of file diff --git a/lib/libesp32/berry/default/be_lvgl_clock_icon_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_clock_icon_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_clock_icon_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_clock_icon_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_signal_arcs_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_signal_arcs_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_signal_arcs_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_signal_arcs_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_signal_bars_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_signal_bars_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_signal_bars_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_signal_bars_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_icon_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_wifi_arcs_icon_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_wifi_arcs_icon_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_wifi_arcs_icon_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_wifi_arcs_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_wifi_arcs_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_wifi_arcs_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_bars_icon_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_wifi_bars_icon_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_wifi_bars_icon_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_wifi_bars_icon_lib.c diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_bars_lib.c b/lib/libesp32/berry_tasmota/src/be_lvgl_wifi_bars_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_lvgl_wifi_bars_lib.c rename to lib/libesp32/berry_tasmota/src/be_lvgl_wifi_bars_lib.c diff --git a/lib/libesp32/berry/default/be_md5_lib.c b/lib/libesp32/berry_tasmota/src/be_md5_lib.c similarity index 98% rename from lib/libesp32/berry/default/be_md5_lib.c rename to lib/libesp32/berry_tasmota/src/be_md5_lib.c index 2db161a0b..baa200747 100644 --- a/lib/libesp32/berry/default/be_md5_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_md5_lib.c @@ -81,7 +81,7 @@ int32_t m_md5_finish(struct bvm *vm) { be_return(vm); } -#include "../generate/be_fixed_be_class_md5.h" +#include "be_fixed_be_class_md5.h" void be_load_md5_lib(bvm *vm) { be_pushntvclass(vm, &be_class_md5); diff --git a/lib/libesp32/berry_tasmota/src/be_modtab_tasmota.c b/lib/libesp32/berry_tasmota/src/be_modtab_tasmota.c new file mode 100644 index 000000000..b2a6be29e --- /dev/null +++ b/lib/libesp32/berry_tasmota/src/be_modtab_tasmota.c @@ -0,0 +1,2 @@ +// TODO + diff --git a/lib/libesp32/berry/default/be_onewire_lib.c b/lib/libesp32/berry_tasmota/src/be_onewire_lib.c similarity index 96% rename from lib/libesp32/berry/default/be_onewire_lib.c rename to lib/libesp32/berry_tasmota/src/be_onewire_lib.c index 838e6ccf9..e43fcf7c1 100644 --- a/lib/libesp32/berry/default/be_onewire_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_onewire_lib.c @@ -24,7 +24,7 @@ extern int b_onewire_reset_search(bvm *vm); extern int b_onewire_target_search(bvm *vm); extern int b_onewire_search(bvm *vm); -#include "../generate/be_fixed_be_class_tasmota_onewire.h" +#include "be_fixed_be_class_tasmota_onewire.h" void be_load_onewirelib(bvm *vm) { be_pushntvclass(vm, &be_class_tasmota_onewire); diff --git a/lib/libesp32/berry/default/be_path_tasmota_lib.c b/lib/libesp32/berry_tasmota/src/be_path_tasmota_lib.c similarity index 97% rename from lib/libesp32/berry/default/be_path_tasmota_lib.c rename to lib/libesp32/berry_tasmota/src/be_path_tasmota_lib.c index 81711a053..0350edf12 100644 --- a/lib/libesp32/berry/default/be_path_tasmota_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_path_tasmota_lib.c @@ -67,4 +67,4 @@ module path (scope: global, file: tasmota_path) { remove, func(m_path_remove) } @const_object_info_end */ -#include "../generate/be_fixed_tasmota_path.h" +#include "be_fixed_tasmota_path.h" diff --git a/lib/libesp32/berry/default/be_persist_lib.c b/lib/libesp32/berry_tasmota/src/be_persist_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_persist_lib.c rename to lib/libesp32/berry_tasmota/src/be_persist_lib.c diff --git a/lib/libesp32/berry/default/be_port.cpp b/lib/libesp32/berry_tasmota/src/be_port.cpp similarity index 100% rename from lib/libesp32/berry/default/be_port.cpp rename to lib/libesp32/berry_tasmota/src/be_port.cpp diff --git a/lib/libesp32/berry/default/be_python_compat.c b/lib/libesp32/berry_tasmota/src/be_python_compat.c similarity index 100% rename from lib/libesp32/berry/default/be_python_compat.c rename to lib/libesp32/berry_tasmota/src/be_python_compat.c diff --git a/lib/libesp32/berry/default/be_re_lib.c b/lib/libesp32/berry_tasmota/src/be_re_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_re_lib.c rename to lib/libesp32/berry_tasmota/src/be_re_lib.c diff --git a/lib/libesp32/berry/default/be_serial_lib.c b/lib/libesp32/berry_tasmota/src/be_serial_lib.c similarity index 96% rename from lib/libesp32/berry/default/be_serial_lib.c rename to lib/libesp32/berry_tasmota/src/be_serial_lib.c index 4f1c4b577..1a5f6fd96 100644 --- a/lib/libesp32/berry/default/be_serial_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_serial_lib.c @@ -17,7 +17,7 @@ extern int b_serial_read(bvm *vm); extern int b_serial_available(bvm *vm); extern int b_serial_flush(bvm *vm); -#include "../generate/be_fixed_be_class_tasmota_serial.h" +#include "be_fixed_be_class_tasmota_serial.h" void be_load_serial_lib(bvm *vm) { be_pushntvclass(vm, &be_class_tasmota_serial); diff --git a/lib/libesp32/berry/default/be_tapp_lib.c b/lib/libesp32/berry_tasmota/src/be_tapp_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_tapp_lib.c rename to lib/libesp32/berry_tasmota/src/be_tapp_lib.c diff --git a/lib/libesp32/berry/default/be_tasmotalib.c b/lib/libesp32/berry_tasmota/src/be_tasmotalib.c similarity index 99% rename from lib/libesp32/berry/default/be_tasmotalib.c rename to lib/libesp32/berry_tasmota/src/be_tasmotalib.c index 6539b0de3..5c7d15058 100644 --- a/lib/libesp32/berry/default/be_tasmotalib.c +++ b/lib/libesp32/berry_tasmota/src/be_tasmotalib.c @@ -31,6 +31,7 @@ extern int l_delay(bvm *vm); extern int l_scaleuint(bvm *vm); extern int l_logInfo(bvm *vm); extern int l_save(bvm *vm); +extern int t_random_byte(bvm *vm); extern int l_read_sensors(bvm *vm); @@ -1973,7 +1974,7 @@ be_local_closure(Tasmota_get_light, /* name */ ); /*******************************************************************/ -#include "../generate/be_fixed_be_class_tasmota.h" +#include "be_fixed_be_class_tasmota.h" // Class definition diff --git a/lib/libesp32/berry/default/be_tcpclient_lib.c b/lib/libesp32/berry_tasmota/src/be_tcpclient_lib.c similarity index 95% rename from lib/libesp32/berry/default/be_tcpclient_lib.c rename to lib/libesp32/berry_tasmota/src/be_tcpclient_lib.c index b39db458e..246436058 100644 --- a/lib/libesp32/berry/default/be_tcpclient_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_tcpclient_lib.c @@ -20,7 +20,7 @@ extern int wc_tcp_write(bvm *vm); extern int wc_tcp_read(bvm *vm); extern int wc_tcp_readbytes(bvm *vm); -#include "../generate/be_fixed_be_class_tcpclient.h" +#include "be_fixed_be_class_tcpclient.h" void be_load_tcpclient_lib(bvm *vm) { be_pushntvclass(vm, &be_class_tcpclient); diff --git a/lib/libesp32/berry/default/be_timer_class.c b/lib/libesp32/berry_tasmota/src/be_timer_class.c similarity index 100% rename from lib/libesp32/berry/default/be_timer_class.c rename to lib/libesp32/berry_tasmota/src/be_timer_class.c diff --git a/lib/libesp32/berry/default/be_udp_lib.cpp b/lib/libesp32/berry_tasmota/src/be_udp_lib.cpp similarity index 98% rename from lib/libesp32/berry/default/be_udp_lib.cpp rename to lib/libesp32/berry_tasmota/src/be_udp_lib.cpp index e9c0a0cb5..042962952 100644 --- a/lib/libesp32/berry/default/be_udp_lib.cpp +++ b/lib/libesp32/berry_tasmota/src/be_udp_lib.cpp @@ -116,7 +116,7 @@ extern "C" { } } - #include "../generate/be_fixed_be_class_udp.h" + #include "be_fixed_be_class_udp.h" void be_load_udp_lib(bvm *vm) { be_pushntvclass(vm, &be_class_udp); diff --git a/lib/libesp32/berry/default/be_unishox_lib.c b/lib/libesp32/berry_tasmota/src/be_unishox_lib.c similarity index 100% rename from lib/libesp32/berry/default/be_unishox_lib.c rename to lib/libesp32/berry_tasmota/src/be_unishox_lib.c diff --git a/lib/libesp32/berry/default/be_webclient_lib.c b/lib/libesp32/berry_tasmota/src/be_webclient_lib.c similarity index 96% rename from lib/libesp32/berry/default/be_webclient_lib.c rename to lib/libesp32/berry_tasmota/src/be_webclient_lib.c index 0e4b66e90..b95740f76 100644 --- a/lib/libesp32/berry/default/be_webclient_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_webclient_lib.c @@ -24,7 +24,7 @@ extern int wc_getstring(bvm *vm); extern int wc_writefile(bvm *vm); extern int wc_getsize(bvm *vm); -#include "../generate/be_fixed_be_class_webclient.h" +#include "be_fixed_be_class_webclient.h" void be_load_webclient_lib(bvm *vm) { be_pushntvclass(vm, &be_class_webclient); diff --git a/lib/libesp32/berry/default/be_webserver_lib.c b/lib/libesp32/berry_tasmota/src/be_webserver_lib.c similarity index 97% rename from lib/libesp32/berry/default/be_webserver_lib.c rename to lib/libesp32/berry_tasmota/src/be_webserver_lib.c index 0f3e45d05..c14e9efd3 100644 --- a/lib/libesp32/berry/default/be_webserver_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_webserver_lib.c @@ -50,6 +50,6 @@ module webserver (scope: global) { has_arg, func(w_webserver_has_arg) } @const_object_info_end */ -#include "../generate/be_fixed_webserver.h" +#include "be_fixed_webserver.h" #endif // USE_WEBSERVER diff --git a/lib/libesp32/berry/default/be_wirelib.c b/lib/libesp32/berry_tasmota/src/be_wirelib.c similarity index 98% rename from lib/libesp32/berry/default/be_wirelib.c rename to lib/libesp32/berry_tasmota/src/be_wirelib.c index 38f345553..6dd1fd6a8 100644 --- a/lib/libesp32/berry/default/be_wirelib.c +++ b/lib/libesp32/berry_tasmota/src/be_wirelib.c @@ -118,7 +118,7 @@ be_local_closure(read_bytes, /* name */ /*******************************************************************/ -#include "../generate/be_fixed_be_class_tasmota_wire.h" +#include "be_fixed_be_class_tasmota_wire.h" void be_load_wirelib(bvm *vm) { be_pushntvclass(vm, &be_class_tasmota_wire); diff --git a/lib/libesp32/berry_tasmota/src/berry_tasmota.h b/lib/libesp32/berry_tasmota/src/berry_tasmota.h new file mode 100644 index 000000000..372a32b1e --- /dev/null +++ b/lib/libesp32/berry_tasmota/src/berry_tasmota.h @@ -0,0 +1,8 @@ +// force include of module by including this file + +#ifndef __BERRY_TASMOTA__ +#define __BERRY_TASMOTA__ + + + +#endif // __BERRY_TASMOTA__ diff --git a/lib/libesp32/berry/default/embedded/Animate.be b/lib/libesp32/berry_tasmota/src/embedded/Animate.be similarity index 100% rename from lib/libesp32/berry/default/embedded/Animate.be rename to lib/libesp32/berry_tasmota/src/embedded/Animate.be diff --git a/lib/libesp32/berry/default/embedded/Driver.be b/lib/libesp32/berry_tasmota/src/embedded/Driver.be similarity index 100% rename from lib/libesp32/berry/default/embedded/Driver.be rename to lib/libesp32/berry_tasmota/src/embedded/Driver.be diff --git a/lib/libesp32/berry/default/embedded/Tasmota.be b/lib/libesp32/berry_tasmota/src/embedded/Tasmota.be similarity index 100% rename from lib/libesp32/berry/default/embedded/Tasmota.be rename to lib/libesp32/berry_tasmota/src/embedded/Tasmota.be diff --git a/lib/libesp32/berry/default/embedded/Wire.be b/lib/libesp32/berry_tasmota/src/embedded/Wire.be similarity index 100% rename from lib/libesp32/berry/default/embedded/Wire.be rename to lib/libesp32/berry_tasmota/src/embedded/Wire.be diff --git a/lib/libesp32/berry/default/embedded/autoconf.be b/lib/libesp32/berry_tasmota/src/embedded/autoconf.be similarity index 100% rename from lib/libesp32/berry/default/embedded/autoconf.be rename to lib/libesp32/berry_tasmota/src/embedded/autoconf.be diff --git a/lib/libesp32/berry/default/embedded/i2c_axp192.be b/lib/libesp32/berry_tasmota/src/embedded/i2c_axp192.be similarity index 100% rename from lib/libesp32/berry/default/embedded/i2c_axp192.be rename to lib/libesp32/berry_tasmota/src/embedded/i2c_axp192.be diff --git a/lib/libesp32/berry/default/embedded/i2c_driver.be b/lib/libesp32/berry_tasmota/src/embedded/i2c_driver.be similarity index 100% rename from lib/libesp32/berry/default/embedded/i2c_driver.be rename to lib/libesp32/berry_tasmota/src/embedded/i2c_driver.be diff --git a/lib/libesp32/berry/default/embedded/leds.be b/lib/libesp32/berry_tasmota/src/embedded/leds.be similarity index 100% rename from lib/libesp32/berry/default/embedded/leds.be rename to lib/libesp32/berry_tasmota/src/embedded/leds.be diff --git a/lib/libesp32/berry/default/embedded/leds_animator.be b/lib/libesp32/berry_tasmota/src/embedded/leds_animator.be similarity index 100% rename from lib/libesp32/berry/default/embedded/leds_animator.be rename to lib/libesp32/berry_tasmota/src/embedded/leds_animator.be diff --git a/lib/libesp32/berry/default/embedded/lv_clock_icon.be b/lib/libesp32/berry_tasmota/src/embedded/lv_clock_icon.be similarity index 100% rename from lib/libesp32/berry/default/embedded/lv_clock_icon.be rename to lib/libesp32/berry_tasmota/src/embedded/lv_clock_icon.be diff --git a/lib/libesp32/berry/default/embedded/lv_signal_arcs.be b/lib/libesp32/berry_tasmota/src/embedded/lv_signal_arcs.be similarity index 100% rename from lib/libesp32/berry/default/embedded/lv_signal_arcs.be rename to lib/libesp32/berry_tasmota/src/embedded/lv_signal_arcs.be diff --git a/lib/libesp32/berry/default/embedded/lv_signal_bars.be b/lib/libesp32/berry_tasmota/src/embedded/lv_signal_bars.be similarity index 100% rename from lib/libesp32/berry/default/embedded/lv_signal_bars.be rename to lib/libesp32/berry_tasmota/src/embedded/lv_signal_bars.be diff --git a/lib/libesp32/berry/default/embedded/lv_tasmota.be b/lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be similarity index 100% rename from lib/libesp32/berry/default/embedded/lv_tasmota.be rename to lib/libesp32/berry_tasmota/src/embedded/lv_tasmota.be diff --git a/lib/libesp32/berry/default/embedded/openhasp.be b/lib/libesp32/berry_tasmota/src/embedded/openhasp.be similarity index 100% rename from lib/libesp32/berry/default/embedded/openhasp.be rename to lib/libesp32/berry_tasmota/src/embedded/openhasp.be diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo-all.jsonl b/lib/libesp32/berry_tasmota/src/embedded/openhasp/demo-all.jsonl similarity index 100% rename from lib/libesp32/berry/default/embedded/openhasp/demo-all.jsonl rename to lib/libesp32/berry_tasmota/src/embedded/openhasp/demo-all.jsonl diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo1.jsonl b/lib/libesp32/berry_tasmota/src/embedded/openhasp/demo1.jsonl similarity index 100% rename from lib/libesp32/berry/default/embedded/openhasp/demo1.jsonl rename to lib/libesp32/berry_tasmota/src/embedded/openhasp/demo1.jsonl diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo2.jsonl b/lib/libesp32/berry_tasmota/src/embedded/openhasp/demo2.jsonl similarity index 100% rename from lib/libesp32/berry/default/embedded/openhasp/demo2.jsonl rename to lib/libesp32/berry_tasmota/src/embedded/openhasp/demo2.jsonl diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo3.jsonl b/lib/libesp32/berry_tasmota/src/embedded/openhasp/demo3.jsonl similarity index 100% rename from lib/libesp32/berry/default/embedded/openhasp/demo3.jsonl rename to lib/libesp32/berry_tasmota/src/embedded/openhasp/demo3.jsonl diff --git a/lib/libesp32/berry/default/embedded/persist.be b/lib/libesp32/berry_tasmota/src/embedded/persist.be similarity index 100% rename from lib/libesp32/berry/default/embedded/persist.be rename to lib/libesp32/berry_tasmota/src/embedded/persist.be diff --git a/lib/libesp32/berry/default/embedded/tapp.be b/lib/libesp32/berry_tasmota/src/embedded/tapp.be similarity index 100% rename from lib/libesp32/berry/default/embedded/tapp.be rename to lib/libesp32/berry_tasmota/src/embedded/tapp.be diff --git a/lib/libesp32/berry/default/embedded/test_crypto.be b/lib/libesp32/berry_tasmota/src/embedded/test_crypto.be similarity index 100% rename from lib/libesp32/berry/default/embedded/test_crypto.be rename to lib/libesp32/berry_tasmota/src/embedded/test_crypto.be diff --git a/lib/libesp32/berry/default/static_block.hpp b/lib/libesp32/berry_tasmota/src/static_block.hpp similarity index 100% rename from lib/libesp32/berry/default/static_block.hpp rename to lib/libesp32/berry_tasmota/src/static_block.hpp diff --git a/tasmota/xdrv_52_3_berry_tasmota.ino b/tasmota/xdrv_52_3_berry_tasmota.ino index fdff25f1e..6279e4877 100644 --- a/tasmota/xdrv_52_3_berry_tasmota.ino +++ b/tasmota/xdrv_52_3_berry_tasmota.ino @@ -618,6 +618,16 @@ extern "C" { if (len+3 > LOGSZ) { strcat(log_data, "..."); } // Actual data is more berry_log(log_data); } + + void tasmota_log_C(int32_t loglevel, const char * berry_buf, ...) { + va_list arg; + va_start(arg, berry_buf); + char* log_data = ext_vsnprintf_malloc_P(berry_buf, arg); + va_end(arg); + if (log_data == nullptr) { return; } + AddLogData(loglevel, log_data); + free(log_data); + } } #endif // USE_BERRY diff --git a/tasmota/xdrv_52_9_berry.ino b/tasmota/xdrv_52_9_berry.ino index b48281fde..7ce662a2a 100644 --- a/tasmota/xdrv_52_9_berry.ino +++ b/tasmota/xdrv_52_9_berry.ino @@ -23,6 +23,7 @@ #define XDRV_52 52 #include +#include "berry_tasmota.h" #include "be_vm.h" #include "ZipReadFS.h" @@ -727,6 +728,7 @@ bool Xdrv52(uint8_t function) BrLoad("autoexec.be"); // run autoexec.be at first tick, so we know all modules are initialized berry.autoexec_done = true; } + callBerryEventDispatcher(PSTR("every_50ms"), nullptr, 0, nullptr); break; // Berry wide commands and events @@ -737,7 +739,9 @@ bool Xdrv52(uint8_t function) result = callBerryRule(nullptr, true); break; case FUNC_MQTT_DATA: +{int32_t now = millis(); result = callBerryEventDispatcher(PSTR("mqtt_data"), XdrvMailbox.topic, 0, XdrvMailbox.data, XdrvMailbox.data_len); +AddLog(LOG_LEVEL_INFO, ">>>: mqtt_data ms = %i", millis()-now);} break; case FUNC_COMMAND: result = DecodeCommand(kBrCommands, BerryCommand);