From b4e9468bbbfd905e8539c0aca178d92002227c3f Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sun, 12 Dec 2021 18:56:11 +0100 Subject: [PATCH] Berry mapping step 1 --- lib/libesp32/Berry/default/be_modtab.c | 8 + lib/libesp32/Berry/default/be_tasmotalib.c | 105 +- lib/libesp32/Berry/default/berry_conf.h | 10 +- .../Berry/default/embedded/Tasmota.be | 24 +- lib/libesp32/Berry/gen.sh | 2 + lib/libesp32/Berry/generate/be_const_strtab.h | 6 +- .../Berry/generate/be_const_strtab_def.h | 1805 ++++++++--------- .../generate/be_fixed_be_class_tasmota.h | 155 +- lib/libesp32/Berry/generate/be_fixed_cb.h | 18 + lib/libesp32/Berry/src/be_exec.c | 5 +- lib/libesp32/Berry/src/be_gc.c | 10 +- lib/libesp32/Berry/src/be_vm.c | 6 +- lib/libesp32/Berry/src/be_vm.h | 2 - lib/libesp32/Berry/src/berry.h | 1 + lib/libesp32/berry_mapping/library.json | 17 + lib/libesp32/berry_mapping/src/be_cb_module.c | 171 ++ lib/libesp32/berry_mapping/src/be_mapping.h | 10 + tasmota/xdrv_52_0_berry_struct.ino | 1 + tasmota/xdrv_52_1_berry_native.ino | 114 +- tasmota/xdrv_52_3_berry_tasmota.ino | 38 +- tasmota/xdrv_52_9_berry.ino | 94 +- 21 files changed, 1267 insertions(+), 1335 deletions(-) create mode 100755 lib/libesp32/Berry/gen.sh create mode 100644 lib/libesp32/Berry/generate/be_fixed_cb.h create mode 100644 lib/libesp32/berry_mapping/library.json create mode 100644 lib/libesp32/berry_mapping/src/be_cb_module.c create mode 100644 lib/libesp32/berry_mapping/src/be_mapping.h diff --git a/lib/libesp32/Berry/default/be_modtab.c b/lib/libesp32/Berry/default/be_modtab.c index 47db8b24e..934400bbb 100644 --- a/lib/libesp32/Berry/default/be_modtab.c +++ b/lib/libesp32/Berry/default/be_modtab.c @@ -23,6 +23,10 @@ be_extern_native_module(solidify); be_extern_native_module(introspect); be_extern_native_module(strict); +/* Berry extensions */ +#include "be_mapping.h" +be_extern_native_module(cb); + /* Tasmota specific */ be_extern_native_module(python_compat); be_extern_native_module(re); @@ -85,6 +89,10 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = { #if BE_USE_STRICT_MODULE &be_native_module(strict), #endif + + /* Berry extensions */ + &be_native_module(cb), + /* user-defined modules register start */ &be_native_module(python_compat), diff --git a/lib/libesp32/Berry/default/be_tasmotalib.c b/lib/libesp32/Berry/default/be_tasmotalib.c index e117bae70..6539b0de3 100644 --- a/lib/libesp32/Berry/default/be_tasmotalib.c +++ b/lib/libesp32/Berry/default/be_tasmotalib.c @@ -16,7 +16,6 @@ extern int l_arch(bvm *vm); extern int l_publish(bvm *vm); extern int l_publish_result(bvm *vm); extern int l_cmd(bvm *vm); -extern int l_get_cb(bvm *vm); extern int l_getoption(bvm *vm); extern int l_millis(bvm *vm); extern int l_timereached(bvm *vm); @@ -384,7 +383,7 @@ be_local_closure(Tasmota_try_rule, /* name */ ********************************************************************/ be_local_closure(Tasmota_gen_cb, /* name */ be_nested_proto( - 7, /* nstack */ + 6, /* nstack */ 2, /* argc */ 0, /* varg */ 0, /* has upvals */ @@ -392,52 +391,18 @@ be_local_closure(Tasmota_gen_cb, /* name */ 0, /* has sup protos */ NULL, /* no sub protos */ 1, /* has constants */ - ( &(const bvalue[ 7]) { /* constants */ - /* K0 */ be_nested_str(_cb), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str(find), - /* K3 */ be_nested_str(_get_cb), - /* K4 */ be_nested_str(stop_iteration), - /* K5 */ be_nested_str(internal_error), - /* K6 */ be_nested_str(No_X20callback_X20available), + ( &(const bvalue[ 2]) { /* constants */ + /* K0 */ be_nested_str(cb), + /* K1 */ be_nested_str(gen_cb), }), &be_const_str_gen_cb, &be_const_str_solidified, - ( &(const binstruction[34]) { /* code */ - 0x88080100, // 0000 GETMBR R2 R0 K0 - 0x4C0C0000, // 0001 LDNIL R3 - 0x1C080403, // 0002 EQ R2 R2 R3 - 0x780A0002, // 0003 JMPF R2 #0007 - 0x60080013, // 0004 GETGBL R2 G19 - 0x7C080000, // 0005 CALL R2 0 - 0x90020002, // 0006 SETMBR R0 K0 R2 - 0x60080010, // 0007 GETGBL R2 G16 - 0x540E0012, // 0008 LDINT R3 19 - 0x400E0203, // 0009 CONNECT R3 K1 R3 - 0x7C080200, // 000A CALL R2 1 - 0xA8020010, // 000B EXBLK 0 #001D - 0x5C0C0400, // 000C MOVE R3 R2 - 0x7C0C0000, // 000D CALL R3 0 - 0x88100100, // 000E GETMBR R4 R0 K0 - 0x8C100902, // 000F GETMET R4 R4 K2 - 0x5C180600, // 0010 MOVE R6 R3 - 0x7C100400, // 0011 CALL R4 2 - 0x4C140000, // 0012 LDNIL R5 - 0x1C100805, // 0013 EQ R4 R4 R5 - 0x78120006, // 0014 JMPF R4 #001C - 0x88100100, // 0015 GETMBR R4 R0 K0 - 0x98100601, // 0016 SETIDX R4 R3 R1 - 0x8C100103, // 0017 GETMET R4 R0 K3 - 0x5C180600, // 0018 MOVE R6 R3 - 0x7C100400, // 0019 CALL R4 2 - 0xA8040001, // 001A EXBLK 1 1 - 0x80040800, // 001B RET 1 R4 - 0x7001FFEE, // 001C JMP #000C - 0x58080004, // 001D LDCONST R2 K4 - 0xAC080200, // 001E CATCH R2 1 0 - 0xB0080000, // 001F RAISE 2 R0 R0 - 0xB0060B06, // 0020 RAISE 1 K5 K6 - 0x80000000, // 0021 RET 0 + ( &(const binstruction[ 5]) { /* code */ + 0xA40A0000, // 0000 IMPORT R2 K0 + 0x8C0C0501, // 0001 GETMET R3 R2 K1 + 0x5C140200, // 0002 MOVE R5 R1 + 0x7C0C0400, // 0003 CALL R3 2 + 0x80040600, // 0004 RET 1 R3 }) ) ); @@ -1605,53 +1570,6 @@ be_local_closure(Tasmota_exec_rules, /* name */ /*******************************************************************/ -/******************************************************************** -** Solidified function: cb_dispatch -********************************************************************/ -be_local_closure(Tasmota_cb_dispatch, /* name */ - be_nested_proto( - 12, /* nstack */ - 6, /* argc */ - 0, /* varg */ - 0, /* has upvals */ - NULL, /* no upvals */ - 0, /* has sup protos */ - NULL, /* no sub protos */ - 1, /* has constants */ - ( &(const bvalue[ 3]) { /* constants */ - /* K0 */ be_nested_str(_cb), - /* K1 */ be_const_int(0), - /* K2 */ be_nested_str(find), - }), - &be_const_str_cb_dispatch, - &be_const_str_solidified, - ( &(const binstruction[20]) { /* code */ - 0x88180100, // 0000 GETMBR R6 R0 K0 - 0x4C1C0000, // 0001 LDNIL R7 - 0x1C180C07, // 0002 EQ R6 R6 R7 - 0x781A0000, // 0003 JMPF R6 #0005 - 0x80060200, // 0004 RET 1 K1 - 0x88180100, // 0005 GETMBR R6 R0 K0 - 0x8C180D02, // 0006 GETMET R6 R6 K2 - 0x5C200200, // 0007 MOVE R8 R1 - 0x7C180400, // 0008 CALL R6 2 - 0x4C1C0000, // 0009 LDNIL R7 - 0x201C0C07, // 000A NE R7 R6 R7 - 0x781E0006, // 000B JMPF R7 #0013 - 0x5C1C0C00, // 000C MOVE R7 R6 - 0x5C200400, // 000D MOVE R8 R2 - 0x5C240600, // 000E MOVE R9 R3 - 0x5C280800, // 000F MOVE R10 R4 - 0x5C2C0A00, // 0010 MOVE R11 R5 - 0x7C1C0800, // 0011 CALL R7 4 - 0x80040E00, // 0012 RET 1 R7 - 0x80060200, // 0013 RET 1 K1 - }) - ) -); -/*******************************************************************/ - - /******************************************************************** ** Solidified function: hs2rgb ********************************************************************/ @@ -2072,7 +1990,6 @@ class be_class_tasmota (scope: global, name: Tasmota) { _timers, var _ccmd, var _drivers, var - _cb, var wire1, var wire2, var global, var @@ -2094,7 +2011,6 @@ class be_class_tasmota (scope: global, name: Tasmota) { publish, func(l_publish) publish_result, func(l_publish_result) _cmd, func(l_cmd) - _get_cb, func(l_get_cb) get_option, func(l_getoption) millis, func(l_millis) time_reached, func(l_timereached) @@ -2155,7 +2071,6 @@ class be_class_tasmota (scope: global, name: Tasmota) { hs2rgb, closure(Tasmota_hs2rgb_closure) - cb_dispatch, closure(Tasmota_cb_dispatch_closure) gen_cb, closure(Tasmota_gen_cb_closure) get_light, closure(Tasmota_get_light_closure) diff --git a/lib/libesp32/Berry/default/berry_conf.h b/lib/libesp32/Berry/default/berry_conf.h index d2284ac31..607a9c612 100644 --- a/lib/libesp32/Berry/default/berry_conf.h +++ b/lib/libesp32/Berry/default/berry_conf.h @@ -65,20 +65,14 @@ **/ #define BE_DEBUG_VAR_INFO 0 -/* Macro: BE_USE_OBSERVABILITY_HOOK - * Use the obshook function to report low-level actions. - * Default: 0 - **/ -#define BE_USE_OBSERVABILITY_HOOK 1 - -/* Macro: BE_USE_OBSERVABILITY_HOOK +/* Macro: BE_USE_PERF_COUNTERS * Use the obshook function to report low-level actions. * Default: 0 **/ #define BE_USE_PERF_COUNTERS 1 /* Macro: BE_VM_OBSERVABILITY_SAMPLING - * If BE_USE_OBSERVABILITY_HOOK == 1 and BE_USE_PERF_COUNTERS == 1 + * If BE_USE_PERF_COUNTERS == 1 * then the observability hook is called regularly in the VM loop * allowing to stop infinite loops or too-long running code. * The value is a power of 2. diff --git a/lib/libesp32/Berry/default/embedded/Tasmota.be b/lib/libesp32/Berry/default/embedded/Tasmota.be index 3305d57ff..22752a47d 100644 --- a/lib/libesp32/Berry/default/embedded/Tasmota.be +++ b/lib/libesp32/Berry/default/embedded/Tasmota.be @@ -21,7 +21,6 @@ class Tasmota var _timers var _ccmd var _drivers - var _cb var wire1 var wire2 var cmd_res # store the command result, nil if disables, true if capture enabled, contains return value @@ -520,28 +519,11 @@ class Tasmota end end - - #- dispatch callback number n, with parameters v0,v1,v2,v3 -# - def cb_dispatch(n,v0,v1,v2,v3) - if self._cb == nil return 0 end - var f = self._cb.find(n) - if f != nil - return f(v0,v1,v2,v3) - end - return 0 - end - #- generate a new C callback and record the associated Berry closure -# def gen_cb(f) - if self._cb == nil self._cb = {} end # create map if not already initialized - for i:0..19 - if self._cb.find(i) == nil - #- free slot -# - self._cb[i] = f - return self._get_cb(i) - end - end - raise "internal_error", "No callback available" + # DEPRECATED + import cb + return cb.gen_cb(f) end #- convert hue/sat to rgb -# diff --git a/lib/libesp32/Berry/gen.sh b/lib/libesp32/Berry/gen.sh new file mode 100755 index 000000000..303a62c95 --- /dev/null +++ b/lib/libesp32/Berry/gen.sh @@ -0,0 +1,2 @@ +#!/bin/bash +python3 tools/pycoc/main.py -o generate src default ../berry_mapping/src -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 9692c8508..50198eb8f 100644 --- a/lib/libesp32/Berry/generate/be_const_strtab.h +++ b/lib/libesp32/Berry/generate/be_const_strtab.h @@ -48,7 +48,6 @@ extern const bcstring be_const_str_I2C_X3A; extern const bcstring be_const_str_LVG_X3A_X20call_X20to_X20unsupported_X20callback; extern const bcstring be_const_str_Leds; extern const bcstring be_const_str_MD5; -extern const bcstring be_const_str_No_X20callback_X20available; extern const bcstring be_const_str_None; extern const bcstring be_const_str_OPTION_A; extern const bcstring be_const_str_OneWire; @@ -175,7 +174,6 @@ extern const bcstring be_const_str__archive; extern const bcstring be_const_str__available; extern const bcstring be_const_str__begin_transmission; extern const bcstring be_const_str__buffer; -extern const bcstring be_const_str__cb; extern const bcstring be_const_str__ccmd; extern const bcstring be_const_str__class; extern const bcstring be_const_str__cmd; @@ -187,7 +185,6 @@ extern const bcstring be_const_str__end_transmission; extern const bcstring be_const_str__energy; extern const bcstring be_const_str__error; extern const bcstring be_const_str__filename; -extern const bcstring be_const_str__get_cb; extern const bcstring be_const_str__global_addr; extern const bcstring be_const_str__global_def; extern const bcstring be_const_str__lvgl; @@ -250,7 +247,7 @@ extern const bcstring be_const_str_call; extern const bcstring be_const_str_call_native; extern const bcstring be_const_str_calldepth; extern const bcstring be_const_str_can_show; -extern const bcstring be_const_str_cb_dispatch; +extern const bcstring be_const_str_cb; extern const bcstring be_const_str_cb_do_nothing; extern const bcstring be_const_str_cb_event_closure; extern const bcstring be_const_str_cb_obj; @@ -384,6 +381,7 @@ extern const bcstring be_const_str_get_bat_power; extern const bcstring be_const_str_get_bat_voltage; extern const bcstring be_const_str_get_battery_chargin_status; extern const bcstring be_const_str_get_bri; +extern const bcstring be_const_str_get_cb_list; extern const bcstring be_const_str_get_coords; extern const bcstring be_const_str_get_current_module_name; extern const bcstring be_const_str_get_current_module_path; diff --git a/lib/libesp32/Berry/generate/be_const_strtab_def.h b/lib/libesp32/Berry/generate/be_const_strtab_def.h index 44676a35e..4c195c96b 100644 --- a/lib/libesp32/Berry/generate/be_const_strtab_def.h +++ b/lib/libesp32/Berry/generate/be_const_strtab_def.h @@ -1,636 +1,634 @@ -be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_True); -be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_i2c_enabled); -be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_add_cmd); -be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str__X23autoexec_X2Ebe); -be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str__X2Ew); -be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_No_X20callback_X20available); -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_assert); -be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_code); -be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str__X2502d_X25s_X2502d); -be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str__timers); -be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str__X3D_X3C_X3E_X21); -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_get_object_from_ptr); -be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_RES_OK); -be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_hs2rgb); -be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__X2Fac); -be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, NULL); -be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_lower); -be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_SERIAL_7O1); -be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str__X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E); -be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_search); -be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str__debug_present); -be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str_false); -be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_Tasmota); -be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_CFG_X3A_X20downloading_X20_X27_X25s_X27); -be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str__X3Cselect_X20name_X3D_X27zip_X27_X3E); -be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, NULL); -be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str__t); -be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29); -be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_is_first_time); -be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str__X7B); -be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str_clear); -be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_SERIAL_7O2); -be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27); -be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_SERIAL_7N2); -be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_WS2812); -be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_AudioFileSourceFS); -be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_digital_write); -be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "

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

", 1863865923u, 0, 16, &be_const_str_rule); -be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_set_chg_current); -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_find_op); -be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, NULL); -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_get_current_module_path); -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_delay); -be_define_const_str(_X3Clambda_X3E, "", 607256038u, 0, 8, &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); -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_CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29); -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_CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29); -be_define_const_str(_X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, "", 510303524u, 0, 30, &be_const_str_write); -be_define_const_str(_X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, "", 3994619755u, 0, 54, &be_const_str_None); -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_classof); -be_define_const_str(_X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "

", 2052843416u, 0, 25, &be_const_str_button_pressed); +be_define_const_str(, "", 2166136261u, 0, 0, NULL); +be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_Unknown_X20command); +be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str_geti); +be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_asstring); +be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_type); +be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found); +be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_arg_size); +be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str_file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27); +be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str___lower__); +be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_SERIAL_7O2); +be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_SERIAL_8O2); +be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str_yield); +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__global_def); +be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_every_second); +be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_add_driver); +be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str_rand); +be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29); +be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str_gpio); +be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_add_cmd); +be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_AudioOutputI2S); +be_define_const_str(_X2E, ".", 722245873u, 0, 1, NULL); +be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str__X2Ep2); +be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, NULL); +be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_sinh); +be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str__debug_present); +be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, NULL); +be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_COLOR_WHITE); +be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, &be_const_str_sin); +be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_json_fdump_map); +be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str__X2Fac); +be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, NULL); +be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str_member); +be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_None); +be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str_set_dc_voltage); +be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_AES_GCM); +be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_get_current_module_path); +be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_json_fdump); +be_define_const_str(_X3C, "<", 957132539u, 0, 1, NULL); +be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "

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

", 1863865923u, 0, 16, NULL); +be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_HTTP_POST); +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_Wire); +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_color); +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_set_power); +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_bus); +be_define_const_str(_X3Clambda_X3E, "", 607256038u, 0, 8, &be_const_str_point); +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_get_warning_level); +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_get_vbus_current); +be_define_const_str(_X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, "", 510303524u, 0, 30, &be_const_str_cb_event_closure); +be_define_const_str(_X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, "", 3994619755u, 0, 54, NULL); +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_arg); +be_define_const_str(_X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "

", 2052843416u, 0, 25, &be_const_str_area); 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, NULL); -be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "

 (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, &be_const_str_exec_tele); -be_define_const_str(_X3Cselect_X20name_X3D_X27zip_X27_X3E, "", 4247924536u, 0, 19, &be_const_str_find_key_i); +be_define_const_str(_X3D, "=", 940354920u, 0, 1, &be_const_str_listdir); +be_define_const_str(_X3D_X3C_X3E_X21, "=<>!", 2664470277u, 0, 4, &be_const_str_shared_key); +be_define_const_str(_X3D_X3D, "==", 2431966415u, 0, 2, &be_const_str_json_append); +be_define_const_str(_X3E, ">", 990687777u, 0, 1, &be_const_str_battery_present); +be_define_const_str(_X3E_X3D, ">=", 284975636u, 0, 2, &be_const_str_get_style_pad_right); +be_define_const_str(_X3F, "?", 973910158u, 0, 1, &be_const_str_redirect); +be_define_const_str(AES_GCM, "AES_GCM", 3832208678u, 0, 7, &be_const_str_clear_to); +be_define_const_str(AXP192, "AXP192", 757230128u, 0, 6, &be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29); +be_define_const_str(Animate_X20pc_X20is_X20out_X20of_X20range, "Animate pc is out of range", 1854929421u, 0, 26, &be_const_str_detected_X20on_X20bus); +be_define_const_str(AudioFileSource, "AudioFileSource", 2959980058u, 0, 15, &be_const_str_a); +be_define_const_str(AudioFileSourceFS, "AudioFileSourceFS", 1839147653u, 0, 17, &be_const_str_ip); +be_define_const_str(AudioGenerator, "AudioGenerator", 1839297342u, 0, 14, NULL); +be_define_const_str(AudioGeneratorMP3, "AudioGeneratorMP3", 2199818488u, 0, 17, &be_const_str_remove_cmd); +be_define_const_str(AudioGeneratorWAV, "AudioGeneratorWAV", 2746509368u, 0, 17, &be_const_str_SERIAL_7E1); +be_define_const_str(AudioOutput, "AudioOutput", 3257792048u, 0, 11, &be_const_str_wire); 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_fromptr); -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_SERIAL_6N2); -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, &be_const_str_set_time); -be_define_const_str(BUTTON_CONFIGURATION, "BUTTON_CONFIGURATION", 70820856u, 0, 20, &be_const_str_files); -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_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27); -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_COLOR_BLACK); -be_define_const_str(CFG_X3A_X20downloading_X20_X27_X25s_X27, "CFG: downloading '%s'", 589480701u, 0, 21, &be_const_str_floor); -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_get_option); -be_define_const_str(CFG_X3A_X20loaded_X20_X20, "CFG: loaded ", 3710273538u, 0, 13, &be_const_str_delete_all_configs); -be_define_const_str(CFG_X3A_X20loaded_X20_X27_X25s_X27, "CFG: loaded '%s'", 1699028828u, 0, 16, NULL); -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, NULL); -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_get_free_heap); -be_define_const_str(CFG_X3A_X20ran_X20_X20, "CFG: ran ", 3579570472u, 0, 10, &be_const_str_contains); -be_define_const_str(CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, "CFG: removed file '%s'", 2048602473u, 0, 22, &be_const_str_SERIAL_8E2); -be_define_const_str(CFG_X3A_X20removing_X20autoconf_X20files, "CFG: removing autoconf files", 4014704970u, 0, 28, &be_const_str_get_bat_charge_current); -be_define_const_str(CFG_X3A_X20removing_X20first_X20time_X20marker, "CFG: removing first time marker", 2125556683u, 0, 31, &be_const_str__lvgl); -be_define_const_str(CFG_X3A_X20return_code_X3D_X25i, "CFG: return_code=%i", 2059897320u, 0, 19, &be_const_str_OPTION_A); -be_define_const_str(CFG_X3A_X20running_X20, "CFG: running ", 2478334534u, 0, 13, NULL); -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, NULL); -be_define_const_str(COLOR_BLACK, "COLOR_BLACK", 264427940u, 0, 11, NULL); -be_define_const_str(COLOR_WHITE, "COLOR_WHITE", 2536871270u, 0, 11, &be_const_str__energy); -be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, &be_const_str_gc); -be_define_const_str(EVENT_DRAW_MAIN, "EVENT_DRAW_MAIN", 1955620614u, 0, 15, &be_const_str_SERIAL_5E2); -be_define_const_str(EVENT_DRAW_PART_BEGIN, "EVENT_DRAW_PART_BEGIN", 3391865024u, 0, 21, &be_const_str_available); -be_define_const_str(EVENT_DRAW_PART_END, "EVENT_DRAW_PART_END", 3301625292u, 0, 19, &be_const_str_chars_in_string); -be_define_const_str(False, "False", 2541049336u, 0, 5, &be_const_str_set_style_line_color); -be_define_const_str(GET, "GET", 2531704439u, 0, 3, &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(HTTP_GET, "HTTP_GET", 1722467738u, 0, 8, &be_const_str_I2C_Driver); -be_define_const_str(HTTP_POST, "HTTP_POST", 1999554144u, 0, 9, &be_const_str_imin); -be_define_const_str(I2C_X3A, "I2C:", 813483371u, 0, 4, &be_const_str_read24); -be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, &be_const_str_addr); -be_define_const_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback, "LVG: call to unsupported callback", 504176819u, 0, 33, &be_const_str_cb_dispatch); -be_define_const_str(Leds, "Leds", 2709245275u, 0, 4, &be_const_str_arg_name); +be_define_const_str(Auto_X2Dconfiguration, "Auto-configuration", 1665006109u, 0, 18, &be_const_str_Tasmota); +be_define_const_str(BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, "BRY: ERROR, bad json: ", 2715135809u, 0, 22, &be_const_str_I2C_X3A); +be_define_const_str(BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, "BRY: Exception> '%s' - %s", 2246990964u, 0, 25, NULL); +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_bri); +be_define_const_str(BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, "BRY: failed to load _persist.json", 2991913445u, 0, 33, &be_const_str_target); +be_define_const_str(BUTTON_CONFIGURATION, "BUTTON_CONFIGURATION", 70820856u, 0, 20, &be_const_str_SERIAL_5O1); +be_define_const_str(CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, "CFG: 'init.bat' done, restarting", 1569670677u, 0, 32, &be_const_str_delay); +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__p); +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_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj); +be_define_const_str(CFG_X3A_X20downloading_X20_X27_X25s_X27, "CFG: downloading '%s'", 589480701u, 0, 21, &be_const_str_add_header); +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_Tele); +be_define_const_str(CFG_X3A_X20loaded_X20_X20, "CFG: loaded ", 3710273538u, 0, 13, NULL); +be_define_const_str(CFG_X3A_X20loaded_X20_X27_X25s_X27, "CFG: loaded '%s'", 1699028828u, 0, 16, &be_const_str_fromb64); +be_define_const_str(CFG_X3A_X20loading_X20, "CFG: loading ", 4010361503u, 0, 13, &be_const_str_floor); +be_define_const_str(CFG_X3A_X20loading_X20_X27_X25s_X27, "CFG: loading '%s'", 2285306097u, 0, 17, &be_const_str_Timer); +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_content_stop); +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_byte); +be_define_const_str(CFG_X3A_X20ran_X20_X20, "CFG: ran ", 3579570472u, 0, 10, &be_const_str_draw_line_dsc_init); +be_define_const_str(CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, "CFG: removed file '%s'", 2048602473u, 0, 22, &be_const_str_pixel_size); +be_define_const_str(CFG_X3A_X20removing_X20autoconf_X20files, "CFG: removing autoconf files", 4014704970u, 0, 28, &be_const_str_issubclass); +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, &be_const_str_get_option); +be_define_const_str(CFG_X3A_X20running_X20, "CFG: running ", 2478334534u, 0, 13, &be_const_str_get_vbus_voltage); +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_create_custom_widget); +be_define_const_str(COLOR_BLACK, "COLOR_BLACK", 264427940u, 0, 11, &be_const_str_SERIAL_6N2); +be_define_const_str(COLOR_WHITE, "COLOR_WHITE", 2536871270u, 0, 11, &be_const_str_wd); +be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, &be_const_str__filename); +be_define_const_str(EVENT_DRAW_MAIN, "EVENT_DRAW_MAIN", 1955620614u, 0, 15, &be_const_str_from_to); +be_define_const_str(EVENT_DRAW_PART_BEGIN, "EVENT_DRAW_PART_BEGIN", 3391865024u, 0, 21, NULL); +be_define_const_str(EVENT_DRAW_PART_END, "EVENT_DRAW_PART_END", 3301625292u, 0, 19, &be_const_str_set_pixel_color); +be_define_const_str(False, "False", 2541049336u, 0, 5, &be_const_str_get_style_line_color); +be_define_const_str(GET, "GET", 2531704439u, 0, 3, &be_const_str_SERIAL_5N1); +be_define_const_str(HTTP_GET, "HTTP_GET", 1722467738u, 0, 8, &be_const_str_dac_voltage); +be_define_const_str(HTTP_POST, "HTTP_POST", 1999554144u, 0, 9, &be_const_str_widget_event_impl); +be_define_const_str(I2C_X3A, "I2C:", 813483371u, 0, 4, &be_const_str_WS2812); +be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, &be_const_str_SERIAL_5O2); +be_define_const_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback, "LVG: call to unsupported callback", 504176819u, 0, 33, &be_const_str__end_transmission); +be_define_const_str(Leds, "Leds", 2709245275u, 0, 4, &be_const_str_display_X2Eini); be_define_const_str(MD5, "MD5", 1935726387u, 0, 3, NULL); -be_define_const_str(No_X20callback_X20available, "No callback available", 633786138u, 0, 21, &be_const_str_gpio); -be_define_const_str(None, "None", 810547195u, 0, 4, &be_const_str_SERIAL_5E1); -be_define_const_str(OPTION_A, "OPTION_A", 1133299440u, 0, 8, &be_const_str_init_draw_line_dsc); -be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str_Timer); -be_define_const_str(PART_MAIN, "PART_MAIN", 2473491508u, 0, 9, &be_const_str_STATE_DEFAULT); -be_define_const_str(POST, "POST", 1929554311u, 0, 4, NULL); +be_define_const_str(None, "None", 810547195u, 0, 4, &be_const_str_day); +be_define_const_str(OPTION_A, "OPTION_A", 1133299440u, 0, 8, &be_const_str_isnan); +be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str_is_first_time); +be_define_const_str(PART_MAIN, "PART_MAIN", 2473491508u, 0, 9, &be_const_str__ccmd); +be_define_const_str(POST, "POST", 1929554311u, 0, 4, &be_const_str_getbits); be_define_const_str(Parameter_X20error, "Parameter error", 3840042038u, 0, 15, NULL); -be_define_const_str(RES_OK, "RES_OK", 1233817284u, 0, 6, &be_const_str_bri); -be_define_const_str(Restart_X201, "Restart 1", 3504455855u, 0, 9, &be_const_str_min); -be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_zero); -be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, &be_const_str_lv_obj_class); -be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, &be_const_str_ins_ramp); -be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, NULL); -be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, &be_const_str_flush); -be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, NULL); +be_define_const_str(RES_OK, "RES_OK", 1233817284u, 0, 6, &be_const_str_k); +be_define_const_str(Restart_X201, "Restart 1", 3504455855u, 0, 9, &be_const_str_year); +be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_SERIAL_8N1); +be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, &be_const_str_SERIAL_8N2); +be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, NULL); +be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, &be_const_str_read_sensors); +be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, &be_const_str_return); +be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, &be_const_str__t); be_define_const_str(SERIAL_6E1, "SERIAL_6E1", 334249486u, 0, 10, NULL); -be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, NULL); -be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, &be_const_str_char); -be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str_matrix); -be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str_atleast1); -be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, &be_const_str_content_send); -be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_stop_iteration); -be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str_copy); -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_elif); -be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, &be_const_str_init); -be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, &be_const_str_global); -be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str_scan); -be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, &be_const_str_deregister_obj); -be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_resp_cmnd_done); -be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_sys); -be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, &be_const_str_get_vbus_current); -be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, &be_const_str_gamma10); -be_define_const_str(SK6812_GRBW, "SK6812_GRBW", 81157857u, 0, 11, NULL); -be_define_const_str(STATE_DEFAULT, "STATE_DEFAULT", 712406428u, 0, 13, &be_const_str_classname); -be_define_const_str(TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, "TAP: found Tasmota App '%s'", 2643152398u, 0, 27, NULL); -be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_top); -be_define_const_str(Tele, "Tele", 1329980653u, 0, 4, &be_const_str_exists); -be_define_const_str(Timer, "Timer", 3948127682u, 0, 5, &be_const_str_del); -be_define_const_str(True, "True", 3453902341u, 0, 4, &be_const_str_real); -be_define_const_str(Unknown_X20command, "Unknown command", 1830905432u, 0, 15, &be_const_str_get_percentage); -be_define_const_str(WS2812, "WS2812", 3539741218u, 0, 6, &be_const_str_finish); -be_define_const_str(WS2812_GRB, "WS2812_GRB", 1736405692u, 0, 10, &be_const_str_tasmota); -be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, &be_const_str__begin_transmission); -be_define_const_str(_X5B, "[", 3725336506u, 0, 1, NULL); -be_define_const_str(_X5D, "]", 3624670792u, 0, 1, NULL); -be_define_const_str(_, "_", 3658226030u, 0, 1, NULL); -be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_pixel_count); -be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_pin_mode); -be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_engine); -be_define_const_str(_anonymous_, "_anonymous_", 1957281476u, 0, 11, &be_const_str_get_light); -be_define_const_str(_archive, "_archive", 4004559404u, 0, 8, &be_const_str_cosh); -be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str_is_running); -be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, &be_const_str_lv_event_cb); -be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str_every_50ms); -be_define_const_str(_cb, "_cb", 4043300367u, 0, 3, NULL); -be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_animators); -be_define_const_str(_class, "_class", 2732146350u, 0, 6, &be_const_str__X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); -be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, NULL); -be_define_const_str(_debug_present, "_debug_present", 4063411725u, 0, 14, &be_const_str_call_native); +be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, &be_const_str_digital_write); +be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, &be_const_str__X5D); +be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str__settings_def); +be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str_couldn_X27t_X20not_X20initialize_X20noepixelbus); +be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, &be_const_str_deregister_obj); +be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_call); +be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str_global); +be_define_const_str(SERIAL_7N1, "SERIAL_7N1", 1891060246u, 0, 10, &be_const_str_encrypt); +be_define_const_str(SERIAL_7N2, "SERIAL_7N2", 1874282627u, 0, 10, &be_const_str_alternate); +be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, NULL); +be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, &be_const_str_arch); +be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str__available); +be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, NULL); +be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_imin); +be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_gen_cb); +be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, &be_const_str_return_X20code_X3D_X25i); +be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, &be_const_str_tag); +be_define_const_str(SK6812_GRBW, "SK6812_GRBW", 81157857u, 0, 11, &be_const_str_item); +be_define_const_str(STATE_DEFAULT, "STATE_DEFAULT", 712406428u, 0, 13, &be_const_str_pop); +be_define_const_str(TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, "TAP: found Tasmota App '%s'", 2643152398u, 0, 27, &be_const_str_closure); +be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_dump); +be_define_const_str(Tele, "Tele", 1329980653u, 0, 4, &be_const_str_f); +be_define_const_str(Timer, "Timer", 3948127682u, 0, 5, &be_const_str_check_privileged_access); +be_define_const_str(True, "True", 3453902341u, 0, 4, &be_const_str_hs2rgb); +be_define_const_str(Unknown_X20command, "Unknown command", 1830905432u, 0, 15, &be_const_str_map); +be_define_const_str(WS2812, "WS2812", 3539741218u, 0, 6, NULL); +be_define_const_str(WS2812_GRB, "WS2812_GRB", 1736405692u, 0, 10, NULL); +be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, NULL); +be_define_const_str(_X5B, "[", 3725336506u, 0, 1, &be_const_str_get_object_from_ptr); +be_define_const_str(_X5D, "]", 3624670792u, 0, 1, &be_const_str_x1); +be_define_const_str(_, "_", 3658226030u, 0, 1, &be_const_str_widget_struct_by_class); +be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_asin); +be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_public_key); +be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_class_init_obj); +be_define_const_str(_anonymous_, "_anonymous_", 1957281476u, 0, 11, &be_const_str_matrix); +be_define_const_str(_archive, "_archive", 4004559404u, 0, 8, &be_const_str_isrunning); +be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str_setitem); +be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, NULL); +be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str_seti); +be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_enabled); +be_define_const_str(_class, "_class", 2732146350u, 0, 6, &be_const_str__dirty); +be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, &be_const_str_nan); +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, &be_const_str_get_coords); -be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str__write); -be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, NULL); -be_define_const_str(_energy, "_energy", 535372070u, 0, 7, &be_const_str_quality); -be_define_const_str(_error, "_error", 1132109656u, 0, 6, &be_const_str__ptr); -be_define_const_str(_filename, "_filename", 1430813195u, 0, 9, &be_const_str_set_text); -be_define_const_str(_get_cb, "_get_cb", 1448849122u, 0, 7, &be_const_str_find); -be_define_const_str(_global_addr, "_global_addr", 533766721u, 0, 12, &be_const_str_display_X2Eini); -be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, &be_const_str_get_warning_level); -be_define_const_str(_lvgl, "_lvgl", 2689219483u, 0, 5, &be_const_str_get_height); -be_define_const_str(_p, "_p", 1594591802u, 0, 2, &be_const_str_format); -be_define_const_str(_persist_X2Ejson, "_persist.json", 2008425138u, 0, 13, &be_const_str_value); -be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, &be_const_str_rtc); -be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_is_dirty); -be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, NULL); +be_define_const_str(_dirty, "_dirty", 283846766u, 0, 6, &be_const_str_content_start); +be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str_del); +be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, &be_const_str_math); +be_define_const_str(_energy, "_energy", 535372070u, 0, 7, &be_const_str_reduce); +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, &be_const_str_add_rule); +be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, &be_const_str_destructor_cb); +be_define_const_str(_lvgl, "_lvgl", 2689219483u, 0, 5, NULL); +be_define_const_str(_p, "_p", 1594591802u, 0, 2, &be_const_str_scan); +be_define_const_str(_persist_X2Ejson, "_persist.json", 2008425138u, 0, 13, NULL); +be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, NULL); +be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_calldepth); +be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, &be_const_str_set_x); be_define_const_str(_rules, "_rules", 4266217105u, 0, 6, NULL); -be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, &be_const_str_set); -be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, &be_const_str_remove_cmd); -be_define_const_str(_t, "_t", 1527481326u, 0, 2, &be_const_str_draw_line_dsc_init); -be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, &be_const_str_eth); -be_define_const_str(_write, "_write", 2215462825u, 0, 6, &be_const_str_v); -be_define_const_str(a, "a", 3826002220u, 0, 1, &be_const_str_add); -be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_get_aps_voltage); -be_define_const_str(acos, "acos", 1006755615u, 0, 4, &be_const_str_lv); -be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_bytes); -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, NULL); -be_define_const_str(add_header, "add_header", 927130612u, 0, 10, &be_const_str_couldn_X27t_X20not_X20initialize_X20noepixelbus); -be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, &be_const_str_resp_cmnd_error); -be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_battery_present); -be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_create_custom_widget); -be_define_const_str(alternate, "alternate", 1140253277u, 0, 9, &be_const_str_out_X20of_X20range); -be_define_const_str(animate, "animate", 3885786800u, 0, 7, &be_const_str_set_ldo_voltage); -be_define_const_str(animators, "animators", 279858213u, 0, 9, &be_const_str_read_bytes); -be_define_const_str(arch, "arch", 2952804297u, 0, 4, &be_const_str_arg_size); -be_define_const_str(area, "area", 2601460036u, 0, 4, &be_const_str_draw_arc); -be_define_const_str(arg, "arg", 1047474471u, 0, 3, &be_const_str_page_autoconf_mgr); -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_create_segment); -be_define_const_str(arg_name, "arg_name", 1345046155u, 0, 8, &be_const_str_has); +be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, &be_const_str_offseta); +be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, &be_const_str_event_send); +be_define_const_str(_t, "_t", 1527481326u, 0, 2, &be_const_str_resolvecmnd); +be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, &be_const_str_add); +be_define_const_str(_write, "_write", 2215462825u, 0, 6, &be_const_str_read12); +be_define_const_str(a, "a", 3826002220u, 0, 1, &be_const_str_get_string); +be_define_const_str(abs, "abs", 709362235u, 0, 3, NULL); +be_define_const_str(acos, "acos", 1006755615u, 0, 4, &be_const_str_def); +be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_zero); +be_define_const_str(add_anim, "add_anim", 3980662668u, 0, 8, &be_const_str_content_flush); +be_define_const_str(add_cmd, "add_cmd", 3361630879u, 0, 7, NULL); +be_define_const_str(add_driver, "add_driver", 1654458371u, 0, 10, &be_const_str_atan2); +be_define_const_str(add_header, "add_header", 927130612u, 0, 10, &be_const_str_set_percentage); +be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, &be_const_str_call_native); +be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_create_matrix); +be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_toptr); +be_define_const_str(alternate, "alternate", 1140253277u, 0, 9, NULL); +be_define_const_str(animate, "animate", 3885786800u, 0, 7, &be_const_str_function); +be_define_const_str(animators, "animators", 279858213u, 0, 9, &be_const_str_traceback); +be_define_const_str(arch, "arch", 2952804297u, 0, 4, NULL); +be_define_const_str(area, "area", 2601460036u, 0, 4, &be_const_str_find); +be_define_const_str(arg, "arg", 1047474471u, 0, 3, NULL); +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_as); +be_define_const_str(arg_name, "arg_name", 1345046155u, 0, 8, &be_const_str_widget_height_def); be_define_const_str(arg_size, "arg_size", 3310243257u, 0, 8, NULL); be_define_const_str(as, "as", 1579491469u, 67, 2, NULL); -be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_destructor_cb); -be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_member); -be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, &be_const_str_invalidate); -be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_fromb64); -be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_millis); -be_define_const_str(atleast1, "atleast1", 1956331672u, 0, 8, &be_const_str_connected); -be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_counters); -be_define_const_str(autoexec, "autoexec", 3676861891u, 0, 8, NULL); -be_define_const_str(autorun, "autorun", 1447527407u, 0, 7, &be_const_str_return); -be_define_const_str(available, "available", 1727918744u, 0, 9, &be_const_str_fromstring); -be_define_const_str(b, "b", 3876335077u, 0, 1, &be_const_str_display); -be_define_const_str(back_forth, "back_forth", 2665042062u, 0, 10, &be_const_str_dac_voltage); -be_define_const_str(base_class, "base_class", 1107737279u, 0, 10, NULL); -be_define_const_str(battery_present, "battery_present", 3588397058u, 0, 15, &be_const_str_run_bat); -be_define_const_str(begin, "begin", 1748273790u, 0, 5, &be_const_str_gamma8); -be_define_const_str(bool, "bool", 3365180733u, 0, 4, &be_const_str_set_power); +be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_get_current_module_name); +be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_display); +be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, &be_const_str_get_temp); +be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_publish); +be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_json_fdump_list); +be_define_const_str(atleast1, "atleast1", 1956331672u, 0, 8, &be_const_str_exp); +be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_cb_do_nothing); +be_define_const_str(autoexec, "autoexec", 3676861891u, 0, 8, &be_const_str_cmd_res); +be_define_const_str(autorun, "autorun", 1447527407u, 0, 7, &be_const_str_log); +be_define_const_str(available, "available", 1727918744u, 0, 9, NULL); +be_define_const_str(b, "b", 3876335077u, 0, 1, &be_const_str_get_bri); +be_define_const_str(back_forth, "back_forth", 2665042062u, 0, 10, &be_const_str_debug); +be_define_const_str(base_class, "base_class", 1107737279u, 0, 10, &be_const_str_is_running); +be_define_const_str(battery_present, "battery_present", 3588397058u, 0, 15, NULL); +be_define_const_str(begin, "begin", 1748273790u, 0, 5, &be_const_str_char); +be_define_const_str(bool, "bool", 3365180733u, 0, 4, &be_const_str_log10); be_define_const_str(break, "break", 3378807160u, 58, 5, NULL); -be_define_const_str(bri, "bri", 2112284244u, 0, 3, &be_const_str_cos); -be_define_const_str(bus, "bus", 1607822841u, 0, 3, &be_const_str_get_vbus_voltage); -be_define_const_str(button_pressed, "button_pressed", 1694209616u, 0, 14, &be_const_str_insert); -be_define_const_str(byte, "byte", 1683620383u, 0, 4, NULL); -be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, NULL); -be_define_const_str(c, "c", 3859557458u, 0, 1, &be_const_str_decrypt); -be_define_const_str(call, "call", 3018949801u, 0, 4, NULL); -be_define_const_str(call_native, "call_native", 1389147405u, 0, 11, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson); -be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_event_send); -be_define_const_str(can_show, "can_show", 960091187u, 0, 8, &be_const_str_ctypes_bytes_dyn); -be_define_const_str(cb_dispatch, "cb_dispatch", 1741510499u, 0, 11, &be_const_str_set_bri); -be_define_const_str(cb_do_nothing, "cb_do_nothing", 1488730702u, 0, 13, NULL); -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, &be_const_str_rotate); -be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_set_width); -be_define_const_str(char, "char", 2823553821u, 0, 4, NULL); -be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, &be_const_str_kv); -be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, &be_const_str_group_def); +be_define_const_str(bri, "bri", 2112284244u, 0, 3, &be_const_str_set_style_pad_right); +be_define_const_str(bus, "bus", 1607822841u, 0, 3, &be_const_str_minute); +be_define_const_str(button_pressed, "button_pressed", 1694209616u, 0, 14, &be_const_str_editable); +be_define_const_str(byte, "byte", 1683620383u, 0, 4, &be_const_str_set_timeouts); +be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, &be_const_str_read); +be_define_const_str(c, "c", 3859557458u, 0, 1, &be_const_str_state); +be_define_const_str(call, "call", 3018949801u, 0, 4, &be_const_str_get_coords); +be_define_const_str(call_native, "call_native", 1389147405u, 0, 11, &be_const_str_read8); +be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str__X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); +be_define_const_str(can_show, "can_show", 960091187u, 0, 8, &be_const_str_month); +be_define_const_str(cb, "cb", 1428787088u, 0, 2, &be_const_str_get_bat_voltage); +be_define_const_str(cb_do_nothing, "cb_do_nothing", 1488730702u, 0, 13, &be_const_str_contains); +be_define_const_str(cb_event_closure, "cb_event_closure", 3828267325u, 0, 16, &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(cb_obj, "cb_obj", 1195696482u, 0, 6, NULL); +be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, NULL); +be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_every_50ms); +be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, &be_const_str_draw_line_dsc); +be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, &be_const_str_solidified); 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_set_useragent); +be_define_const_str(class_init_obj, "class_init_obj", 178410604u, 0, 14, NULL); be_define_const_str(classname, "classname", 1998589948u, 0, 9, NULL); -be_define_const_str(classof, "classof", 1796577762u, 0, 7, NULL); +be_define_const_str(classof, "classof", 1796577762u, 0, 7, &be_const_str_gamma); be_define_const_str(clear, "clear", 1550717474u, 0, 5, NULL); -be_define_const_str(clear_first_time, "clear_first_time", 632769909u, 0, 16, &be_const_str_read); -be_define_const_str(clear_to, "clear_to", 3528002130u, 0, 8, &be_const_str_geti); -be_define_const_str(close, "close", 667630371u, 0, 5, &be_const_str_depower); -be_define_const_str(closure, "closure", 1548407746u, 0, 7, &be_const_str_param); -be_define_const_str(cmd, "cmd", 4136785899u, 0, 3, &be_const_str_input); +be_define_const_str(clear_first_time, "clear_first_time", 632769909u, 0, 16, &be_const_str_get_power); +be_define_const_str(clear_to, "clear_to", 3528002130u, 0, 8, &be_const_str_tanh); +be_define_const_str(close, "close", 667630371u, 0, 5, &be_const_str_write_bit); +be_define_const_str(closure, "closure", 1548407746u, 0, 7, &be_const_str_cmd); +be_define_const_str(cmd, "cmd", 4136785899u, 0, 3, &be_const_str_get_switch); be_define_const_str(cmd_res, "cmd_res", 921166762u, 0, 7, NULL); -be_define_const_str(code, "code", 4180765940u, 0, 4, &be_const_str_null_cb); -be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, NULL); -be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_json_fdump_any); -be_define_const_str(color, "color", 1031692888u, 0, 5, &be_const_str_has_arg); -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, NULL); -be_define_const_str(connect, "connect", 2866859257u, 0, 7, NULL); -be_define_const_str(connected, "connected", 1424938192u, 0, 9, &be_const_str_debug); -be_define_const_str(connection_error, "connection_error", 1358926260u, 0, 16, &be_const_str_json_fdump); -be_define_const_str(constructor_cb, "constructor_cb", 2489105297u, 0, 14, &be_const_str_minute); +be_define_const_str(code, "code", 4180765940u, 0, 4, &be_const_str_group_def); +be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, &be_const_str_members); +be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_file); +be_define_const_str(color, "color", 1031692888u, 0, 5, &be_const_str_get_width); +be_define_const_str(compile, "compile", 1000265118u, 0, 7, &be_const_str_ctypes_bytes); +be_define_const_str(compress, "compress", 2818084237u, 0, 8, &be_const_str_find_op); +be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_widget_dtor_impl); +be_define_const_str(connect, "connect", 2866859257u, 0, 7, &be_const_str_stop); +be_define_const_str(connected, "connected", 1424938192u, 0, 9, &be_const_str_obj_event_base); +be_define_const_str(connection_error, "connection_error", 1358926260u, 0, 16, &be_const_str_wifi); +be_define_const_str(constructor_cb, "constructor_cb", 2489105297u, 0, 14, &be_const_str_round_start); be_define_const_str(contains, "contains", 1825239352u, 0, 8, &be_const_str_deinit); -be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, &be_const_str_pixels_buffer); -be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, &be_const_str_leds); -be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, &be_const_str_load); -be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, &be_const_str_read8); -be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf); -be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, NULL); +be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, &be_const_str_write); +be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, NULL); +be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, NULL); +be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, &be_const_str_is_dirty); +be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, NULL); +be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, &be_const_str_line_dsc); be_define_const_str(continue, "continue", 2977070660u, 59, 8, NULL); -be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_json_append); -be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_count); -be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_set_percentage); +be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_rad); +be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_start); +be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_h); be_define_const_str(couldn_X27t_X20not_X20initialize_X20noepixelbus, "couldn't not initialize noepixelbus", 2536490812u, 0, 35, NULL); -be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_every_100ms); -be_define_const_str(counters, "counters", 4095866864u, 0, 8, &be_const_str_on); -be_define_const_str(create_custom_widget, "create_custom_widget", 1140594778u, 0, 20, &be_const_str_instance); -be_define_const_str(create_matrix, "create_matrix", 3528185923u, 0, 13, &be_const_str_dirty); -be_define_const_str(create_segment, "create_segment", 3863522719u, 0, 14, &be_const_str_exec_cmd); -be_define_const_str(ctor, "ctor", 375399343u, 0, 4, &be_const_str_tcpclient); +be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_web_add_console_button); +be_define_const_str(counters, "counters", 4095866864u, 0, 8, &be_const_str_save); +be_define_const_str(create_custom_widget, "create_custom_widget", 1140594778u, 0, 20, &be_const_str_quality); +be_define_const_str(create_matrix, "create_matrix", 3528185923u, 0, 13, &be_const_str_y1); +be_define_const_str(create_segment, "create_segment", 3863522719u, 0, 14, &be_const_str_open); +be_define_const_str(ctor, "ctor", 375399343u, 0, 4, &be_const_str_push); 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, &be_const_str_time_dump); -be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_reverse_gamma10); -be_define_const_str(day, "day", 3830391293u, 0, 3, &be_const_str_duration); -be_define_const_str(debug, "debug", 1483009432u, 0, 5, &be_const_str_str); -be_define_const_str(decompress, "decompress", 2887031650u, 0, 10, &be_const_str_imax); -be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, &be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E); +be_define_const_str(ctypes_bytes_dyn, "ctypes_bytes_dyn", 915205307u, 0, 16, &be_const_str_reapply); +be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_time_reached); +be_define_const_str(day, "day", 3830391293u, 0, 3, &be_const_str_every_100ms); +be_define_const_str(debug, "debug", 1483009432u, 0, 5, &be_const_str_exec_rules); +be_define_const_str(decompress, "decompress", 2887031650u, 0, 10, NULL); +be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, NULL); be_define_const_str(def, "def", 3310976652u, 55, 3, NULL); -be_define_const_str(deg, "deg", 3327754271u, 0, 3, &be_const_str_set_y); -be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_tan); -be_define_const_str(del, "del", 3478752842u, 0, 3, &be_const_str_range); -be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_shared_key); -be_define_const_str(delete_all_configs, "delete_all_configs", 2382067578u, 0, 18, &be_const_str_get_bat_voltage); -be_define_const_str(depower, "depower", 3563819571u, 0, 7, &be_const_str_get_battery_chargin_status); -be_define_const_str(deregister_obj, "deregister_obj", 3909966993u, 0, 14, &be_const_str_strip); -be_define_const_str(destructor_cb, "destructor_cb", 1930283190u, 0, 13, &be_const_str_state); -be_define_const_str(detect, "detect", 8884370u, 0, 6, &be_const_str_hex); -be_define_const_str(detected_X20on_X20bus, "detected on bus", 1432002650u, 0, 15, &be_const_str_nan); +be_define_const_str(deg, "deg", 3327754271u, 0, 3, NULL); +be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, NULL); +be_define_const_str(del, "del", 3478752842u, 0, 3, NULL); +be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_run_deferred); +be_define_const_str(delete_all_configs, "delete_all_configs", 2382067578u, 0, 18, &be_const_str_wire1); +be_define_const_str(depower, "depower", 3563819571u, 0, 7, &be_const_str_get_bat_charge_current); +be_define_const_str(deregister_obj, "deregister_obj", 3909966993u, 0, 14, &be_const_str_get_alternate); +be_define_const_str(destructor_cb, "destructor_cb", 1930283190u, 0, 13, &be_const_str_p2); +be_define_const_str(detect, "detect", 8884370u, 0, 6, NULL); +be_define_const_str(detected_X20on_X20bus, "detected on bus", 1432002650u, 0, 15, &be_const_str_run); 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_set_style_text_font); -be_define_const_str(dirty, "dirty", 2667581083u, 0, 5, NULL); -be_define_const_str(display, "display", 1164572437u, 0, 7, NULL); -be_define_const_str(display_X2Eini, "display.ini", 2646174001u, 0, 11, &be_const_str_function); +be_define_const_str(digital_write, "digital_write", 3435877979u, 0, 13, &be_const_str_gamma8); +be_define_const_str(dirty, "dirty", 2667581083u, 0, 5, &be_const_str_pop_path); +be_define_const_str(display, "display", 1164572437u, 0, 7, &be_const_str_finish); +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_io_error); -be_define_const_str(draw_line, "draw_line", 1634465686u, 0, 9, &be_const_str_item); -be_define_const_str(draw_line_dsc, "draw_line_dsc", 4220676203u, 0, 13, &be_const_str_energy_struct); +be_define_const_str(draw_arc, "draw_arc", 1828251676u, 0, 8, &be_const_str_hour); +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_widget_instance_size); be_define_const_str(draw_line_dsc_init, "draw_line_dsc_init", 3866693646u, 0, 18, NULL); -be_define_const_str(due, "due", 3895530293u, 0, 3, &be_const_str_pow); +be_define_const_str(due, "due", 3895530293u, 0, 3, NULL); be_define_const_str(dump, "dump", 3663001223u, 0, 4, NULL); -be_define_const_str(duration, "duration", 799079693u, 0, 8, &be_const_str_time_reached); -be_define_const_str(editable, "editable", 60532369u, 0, 8, &be_const_str_resize); +be_define_const_str(duration, "duration", 799079693u, 0, 8, &be_const_str_rotate); +be_define_const_str(editable, "editable", 60532369u, 0, 8, &be_const_str_kv); be_define_const_str(elif, "elif", 3232090307u, 51, 4, NULL); be_define_const_str(else, "else", 3183434736u, 52, 4, NULL); -be_define_const_str(enabled, "enabled", 49525662u, 0, 7, &be_const_str_widget_width_def); -be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, &be_const_str_introspect); -be_define_const_str(end, "end", 1787721130u, 56, 3, NULL); +be_define_const_str(enabled, "enabled", 49525662u, 0, 7, &be_const_str_write_file); +be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, &be_const_str_static); +be_define_const_str(end, "end", 1787721130u, 56, 3, &be_const_str_try); be_define_const_str(energy_struct, "energy_struct", 1655792843u, 0, 13, NULL); -be_define_const_str(engine, "engine", 3993360443u, 0, 6, &be_const_str_obj_event_base); -be_define_const_str(erase, "erase", 1010949589u, 0, 5, &be_const_str_lv_obj); -be_define_const_str(escape, "escape", 2652972038u, 0, 6, &be_const_str_path); -be_define_const_str(eth, "eth", 2191266556u, 0, 3, &be_const_str_set_pixel_color); -be_define_const_str(event, "event", 4264611999u, 0, 5, &be_const_str_issubclass); -be_define_const_str(event_cb, "event_cb", 3128698017u, 0, 8, &be_const_str_get_power); -be_define_const_str(event_send, "event_send", 598925582u, 0, 10, &be_const_str_lvgl_event_dispatch); -be_define_const_str(every_100ms, "every_100ms", 1546407804u, 0, 11, &be_const_str_web_send_decimal); -be_define_const_str(every_50ms, "every_50ms", 2383884008u, 0, 10, &be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032); -be_define_const_str(every_second, "every_second", 2075451465u, 0, 12, &be_const_str_serial); +be_define_const_str(engine, "engine", 3993360443u, 0, 6, &be_const_str_widget_destructor); +be_define_const_str(erase, "erase", 1010949589u, 0, 5, &be_const_str_tolower); +be_define_const_str(escape, "escape", 2652972038u, 0, 6, &be_const_str_hex); +be_define_const_str(eth, "eth", 2191266556u, 0, 3, NULL); +be_define_const_str(event, "event", 4264611999u, 0, 5, &be_const_str_set_width); +be_define_const_str(event_cb, "event_cb", 3128698017u, 0, 8, &be_const_str_height_def); +be_define_const_str(event_send, "event_send", 598925582u, 0, 10, &be_const_str_gamma10); +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_page_autoconf_mgr); +be_define_const_str(every_second, "every_second", 2075451465u, 0, 12, &be_const_str_list); be_define_const_str(except, "except", 950914032u, 69, 6, NULL); -be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, &be_const_str__X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); -be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, &be_const_str_write8); -be_define_const_str(exec_tele, "exec_tele", 1020751601u, 0, 9, NULL); -be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_get_bat_power); -be_define_const_str(exp, "exp", 1923516200u, 0, 3, &be_const_str_listdir); -be_define_const_str(f, "f", 3809224601u, 0, 1, NULL); +be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, &be_const_str_light); +be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, &be_const_str_reverse); +be_define_const_str(exec_tele, "exec_tele", 1020751601u, 0, 9, &be_const_str_has); +be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_setbits); +be_define_const_str(exp, "exp", 1923516200u, 0, 3, &be_const_str_tasmota); +be_define_const_str(f, "f", 3809224601u, 0, 1, &be_const_str_input); be_define_const_str(false, "false", 184981848u, 62, 5, NULL); be_define_const_str(file, "file", 2867484483u, 0, 4, NULL); -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_hour); -be_define_const_str(files, "files", 1055342736u, 0, 5, &be_const_str_page_autoconf_ctl); +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, NULL); +be_define_const_str(files, "files", 1055342736u, 0, 5, &be_const_str_param); 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_w); +be_define_const_str(find_key_i, "find_key_i", 850136726u, 0, 10, &be_const_str_pin); be_define_const_str(find_op, "find_op", 3766713376u, 0, 7, NULL); -be_define_const_str(finish, "finish", 1494643858u, 0, 6, &be_const_str_isinstance); -be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_get_style_bg_color); +be_define_const_str(finish, "finish", 1494643858u, 0, 6, NULL); +be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_local); be_define_const_str(flush, "flush", 3002334877u, 0, 5, NULL); be_define_const_str(for, "for", 2901640080u, 54, 3, NULL); -be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_pi); -be_define_const_str(from_to, "from_to", 21625507u, 0, 7, &be_const_str_static); +be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_memory); +be_define_const_str(from_to, "from_to", 21625507u, 0, 7, &be_const_str_load); be_define_const_str(fromb64, "fromb64", 2717019639u, 0, 7, NULL); -be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, &be_const_str_set_style_bg_color); -be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, &be_const_str_publish); -be_define_const_str(function, "function", 2664841801u, 0, 8, NULL); -be_define_const_str(gamma, "gamma", 3492353034u, 0, 5, &be_const_str_isnan); -be_define_const_str(gamma10, "gamma10", 3472052483u, 0, 7, NULL); -be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_memory); -be_define_const_str(gc, "gc", 1042313471u, 0, 2, &be_const_str_tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29); +be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, NULL); +be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, &be_const_str_get_input_power_status); +be_define_const_str(function, "function", 2664841801u, 0, 8, &be_const_str_tostring); +be_define_const_str(gamma, "gamma", 3492353034u, 0, 5, &be_const_str_widget_struct_default); +be_define_const_str(gamma10, "gamma10", 3472052483u, 0, 7, &be_const_str_get_free_heap); +be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_resp_cmnd); +be_define_const_str(gc, "gc", 1042313471u, 0, 2, NULL); be_define_const_str(gen_cb, "gen_cb", 3245227551u, 0, 6, NULL); -be_define_const_str(get, "get", 1410115415u, 0, 3, NULL); -be_define_const_str(get_alternate, "get_alternate", 1450148894u, 0, 13, &be_const_str_scale_uint); +be_define_const_str(get, "get", 1410115415u, 0, 3, &be_const_str__X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_XB0C_X7Be_X7D); +be_define_const_str(get_alternate, "get_alternate", 1450148894u, 0, 13, NULL); 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_read12); +be_define_const_str(get_bat_charge_current, "get_bat_charge_current", 1385293050u, 0, 22, &be_const_str_pi); be_define_const_str(get_bat_current, "get_bat_current", 1912106073u, 0, 15, NULL); -be_define_const_str(get_bat_power, "get_bat_power", 3067374853u, 0, 13, &be_const_str_json_fdump_list); -be_define_const_str(get_bat_voltage, "get_bat_voltage", 706676538u, 0, 15, &be_const_str_save_before_restart); -be_define_const_str(get_battery_chargin_status, "get_battery_chargin_status", 2233241571u, 0, 26, &be_const_str_split); -be_define_const_str(get_bri, "get_bri", 2041809895u, 0, 7, &be_const_str_math); -be_define_const_str(get_coords, "get_coords", 1044089006u, 0, 10, &be_const_str_get_temp); -be_define_const_str(get_current_module_name, "get_current_module_name", 2379270740u, 0, 23, &be_const_str_get_width); +be_define_const_str(get_bat_power, "get_bat_power", 3067374853u, 0, 13, &be_const_str_ins_time); +be_define_const_str(get_bat_voltage, "get_bat_voltage", 706676538u, 0, 15, NULL); +be_define_const_str(get_battery_chargin_status, "get_battery_chargin_status", 2233241571u, 0, 26, NULL); +be_define_const_str(get_bri, "get_bri", 2041809895u, 0, 7, &be_const_str_page_autoconf_ctl); +be_define_const_str(get_cb_list, "get_cb_list", 1605319182u, 0, 11, &be_const_str_offset); +be_define_const_str(get_coords, "get_coords", 1044089006u, 0, 10, &be_const_str_upper); +be_define_const_str(get_current_module_name, "get_current_module_name", 2379270740u, 0, 23, NULL); be_define_const_str(get_current_module_path, "get_current_module_path", 3206673408u, 0, 23, NULL); -be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, &be_const_str_push); -be_define_const_str(get_height, "get_height", 3571755523u, 0, 10, &be_const_str_ins_goto); -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, &be_const_str_setitem); -be_define_const_str(get_object_from_ptr, "get_object_from_ptr", 2345019201u, 0, 19, &be_const_str_log); +be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, &be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus); +be_define_const_str(get_height, "get_height", 3571755523u, 0, 10, &be_const_str_obj_class_create_obj); +be_define_const_str(get_input_power_status, "get_input_power_status", 4102829177u, 0, 22, &be_const_str_get_style_bg_color); +be_define_const_str(get_light, "get_light", 381930476u, 0, 9, &be_const_str_unknown_X20instruction); +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, NULL); 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, NULL); -be_define_const_str(get_power, "get_power", 3009799377u, 0, 9, &be_const_str_open); -be_define_const_str(get_size, "get_size", 2803644713u, 0, 8, NULL); -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, &be_const_str_r); -be_define_const_str(get_style_line_color, "get_style_line_color", 805371932u, 0, 20, &be_const_str_time_str); +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_tomap); +be_define_const_str(get_string, "get_string", 4195847969u, 0, 10, &be_const_str_remove_driver); +be_define_const_str(get_style_bg_color, "get_style_bg_color", 964794381u, 0, 18, &be_const_str_number); +be_define_const_str(get_style_line_color, "get_style_line_color", 805371932u, 0, 20, &be_const_str_ins_ramp); be_define_const_str(get_style_pad_right, "get_style_pad_right", 3150287466u, 0, 19, NULL); -be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, &be_const_str_isrunning); -be_define_const_str(get_tasmota, "get_tasmota", 334356779u, 0, 11, &be_const_str_getbits); +be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, &be_const_str_set_y); +be_define_const_str(get_tasmota, "get_tasmota", 334356779u, 0, 11, &be_const_str_imax); 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_while); -be_define_const_str(get_vbus_voltage, "get_vbus_voltage", 2398210401u, 0, 16, &be_const_str_return_X20code_X3D_X25i); -be_define_const_str(get_warning_level, "get_warning_level", 1737834441u, 0, 17, &be_const_str_map); -be_define_const_str(get_width, "get_width", 3293417300u, 0, 9, NULL); -be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, &be_const_str_tag); -be_define_const_str(geti, "geti", 2381006490u, 0, 4, &be_const_str_k); -be_define_const_str(global, "global", 503252654u, 0, 6, &be_const_str_widget_constructor); -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_web_send); -be_define_const_str(h, "h", 3977000791u, 0, 1, &be_const_str_value_error); -be_define_const_str(has, "has", 3988721635u, 0, 3, NULL); -be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, &be_const_str_rad); -be_define_const_str(height_def, "height_def", 2348238838u, 0, 10, &be_const_str_wire2); -be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_register_obj); -be_define_const_str(hour, "hour", 3053661199u, 0, 4, &be_const_str_widget_ctor_impl); -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, NULL); -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, &be_const_str_keys); -be_define_const_str(id, "id", 926444256u, 0, 2, &be_const_str_print); +be_define_const_str(get_vbus_current, "get_vbus_current", 1205347942u, 0, 16, &be_const_str_tele); +be_define_const_str(get_vbus_voltage, "get_vbus_voltage", 2398210401u, 0, 16, &be_const_str_toupper); +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_readbytes); +be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, &be_const_str_has_arg); +be_define_const_str(geti, "geti", 2381006490u, 0, 4, NULL); +be_define_const_str(global, "global", 503252654u, 0, 6, NULL); +be_define_const_str(gpio, "gpio", 2638155258u, 0, 4, &be_const_str_strptime); +be_define_const_str(group_def, "group_def", 1524213328u, 0, 9, NULL); +be_define_const_str(h, "h", 3977000791u, 0, 1, &be_const_str_init); +be_define_const_str(has, "has", 3988721635u, 0, 3, &be_const_str_pow); +be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, &be_const_str__X7D); +be_define_const_str(height_def, "height_def", 2348238838u, 0, 10, &be_const_str_set_height); +be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson); +be_define_const_str(hour, "hour", 3053661199u, 0, 4, &be_const_str_pixel_count); +be_define_const_str(hs2rgb, "hs2rgb", 1040816349u, 0, 6, &be_const_str_path); +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_pc_abs); +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, &be_const_str_int); +be_define_const_str(i2c_enabled, "i2c_enabled", 218388101u, 0, 11, NULL); +be_define_const_str(id, "id", 926444256u, 0, 2, &be_const_str_x); 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_members); +be_define_const_str(imax, "imax", 3084515410u, 0, 4, &be_const_str_resize); +be_define_const_str(imin, "imin", 2714127864u, 0, 4, NULL); 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_draw_line_dsc, "init_draw_line_dsc", 2507936040u, 0, 18, &be_const_str_pop); -be_define_const_str(input, "input", 4191711099u, 0, 5, &be_const_str_json); +be_define_const_str(init, "init", 380752755u, 0, 4, &be_const_str_pc_rel); +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, &be_const_str_reset); 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_wire_scan); -be_define_const_str(ins_time, "ins_time", 2980245553u, 0, 8, &be_const_str_target_search); -be_define_const_str(insert, "insert", 3332609576u, 0, 6, NULL); -be_define_const_str(instance, "instance", 193386898u, 0, 8, NULL); +be_define_const_str(ins_ramp, "ins_ramp", 1068049360u, 0, 8, &be_const_str_stop_iteration); +be_define_const_str(ins_time, "ins_time", 2980245553u, 0, 8, NULL); +be_define_const_str(insert, "insert", 3332609576u, 0, 6, &be_const_str_lvgl_event_dispatch); +be_define_const_str(instance, "instance", 193386898u, 0, 8, &be_const_str_set_matrix_pixel_color); be_define_const_str(instance_size, "instance_size", 4280269518u, 0, 13, NULL); -be_define_const_str(int, "int", 2515107422u, 0, 3, NULL); -be_define_const_str(internal_error, "internal_error", 2519158169u, 0, 14, &be_const_str_offseta); -be_define_const_str(introspect, "introspect", 164638290u, 0, 10, &be_const_str_widget_dtor_impl); -be_define_const_str(invalidate, "invalidate", 2649734928u, 0, 10, &be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus); -be_define_const_str(io_error, "io_error", 1970281036u, 0, 8, &be_const_str_readbytes); -be_define_const_str(ip, "ip", 1261996636u, 0, 2, &be_const_str_super); -be_define_const_str(is_dirty, "is_dirty", 418034110u, 0, 8, &be_const_str_rand); -be_define_const_str(is_first_time, "is_first_time", 275242384u, 0, 13, &be_const_str_local); -be_define_const_str(is_running, "is_running", 2226847261u, 0, 10, &be_const_str_reverse); -be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, NULL); -be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, NULL); -be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, &be_const_str_refr_size); -be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, NULL); -be_define_const_str(item, "item", 2671260646u, 0, 4, &be_const_str_widget_editable); -be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_class); +be_define_const_str(int, "int", 2515107422u, 0, 3, &be_const_str_set_style_text_font); +be_define_const_str(internal_error, "internal_error", 2519158169u, 0, 14, &be_const_str_width_def); +be_define_const_str(introspect, "introspect", 164638290u, 0, 10, &be_const_str_preinit); +be_define_const_str(invalidate, "invalidate", 2649734928u, 0, 10, NULL); +be_define_const_str(io_error, "io_error", 1970281036u, 0, 8, NULL); +be_define_const_str(ip, "ip", 1261996636u, 0, 2, NULL); +be_define_const_str(is_dirty, "is_dirty", 418034110u, 0, 8, &be_const_str_on); +be_define_const_str(is_first_time, "is_first_time", 275242384u, 0, 13, &be_const_str_persist); +be_define_const_str(is_running, "is_running", 2226847261u, 0, 10, &be_const_str__X7B_X7D); +be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, &be_const_str_last_modified); +be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, &be_const_str_iter); +be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, NULL); +be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, &be_const_str_setmember); +be_define_const_str(item, "item", 2671260646u, 0, 4, &be_const_str_json_fdump_any); +be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_name); 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_nil); -be_define_const_str(json_fdump_any, "json_fdump_any", 3348629385u, 0, 14, &be_const_str_pixel_size); -be_define_const_str(json_fdump_list, "json_fdump_list", 3903879853u, 0, 15, &be_const_str_json_fdump_map); -be_define_const_str(json_fdump_map, "json_fdump_map", 4091954653u, 0, 14, &be_const_str_select); -be_define_const_str(k, "k", 3993778410u, 0, 1, &be_const_str_set_auth); -be_define_const_str(keys, "keys", 4182378701u, 0, 4, NULL); -be_define_const_str(kv, "kv", 1497177492u, 0, 2, &be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map); +be_define_const_str(json_append, "json_append", 3002019284u, 0, 11, &be_const_str_import); +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, NULL); +be_define_const_str(json_fdump_list, "json_fdump_list", 3903879853u, 0, 15, &be_const_str_millis); +be_define_const_str(json_fdump_map, "json_fdump_map", 4091954653u, 0, 14, &be_const_str_save_before_restart); +be_define_const_str(k, "k", 3993778410u, 0, 1, &be_const_str_keys); +be_define_const_str(keys, "keys", 4182378701u, 0, 4, &be_const_str_min); +be_define_const_str(kv, "kv", 1497177492u, 0, 2, NULL); be_define_const_str(last_modified, "last_modified", 772177145u, 0, 13, NULL); -be_define_const_str(leds, "leds", 558858555u, 0, 4, &be_const_str__X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); -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_lv_event); +be_define_const_str(leds, "leds", 558858555u, 0, 4, &be_const_str_elif); +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_false); be_define_const_str(light, "light", 3801947695u, 0, 5, NULL); -be_define_const_str(line_dsc, "line_dsc", 4094490978u, 0, 8, &be_const_str_offset); +be_define_const_str(line_dsc, "line_dsc", 4094490978u, 0, 8, &be_const_str_print); be_define_const_str(list, "list", 217798785u, 0, 4, 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_templates, "load_templates", 3513870133u, 0, 14, NULL); -be_define_const_str(local, "local", 2621662984u, 0, 5, &be_const_str_round_start); -be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_read_sensors); -be_define_const_str(log10, "log10", 2346846000u, 0, 5, NULL); -be_define_const_str(loop, "loop", 3723446379u, 0, 4, NULL); -be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_end); -be_define_const_str(lv, "lv", 1529997255u, 0, 2, &be_const_str_x); -be_define_const_str(lv_event, "lv_event", 2434089968u, 0, 8, &be_const_str_remove_rule); -be_define_const_str(lv_event_cb, "lv_event_cb", 2480731016u, 0, 11, &be_const_str_run_deferred); -be_define_const_str(lv_obj, "lv_obj", 4257833149u, 0, 6, &be_const_str_traceback); +be_define_const_str(load_templates, "load_templates", 3513870133u, 0, 14, &be_const_str_set_bri); +be_define_const_str(local, "local", 2621662984u, 0, 5, NULL); +be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_the_X20second_X20argument_X20is_X20not_X20a_X20function); +be_define_const_str(log10, "log10", 2346846000u, 0, 5, &be_const_str_web_add_handler); +be_define_const_str(loop, "loop", 3723446379u, 0, 4, &be_const_str_continue); +be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_push_path); +be_define_const_str(lv, "lv", 1529997255u, 0, 2, NULL); +be_define_const_str(lv_event, "lv_event", 2434089968u, 0, 8, &be_const_str_set_timer); +be_define_const_str(lv_event_cb, "lv_event_cb", 2480731016u, 0, 11, &be_const_str_try_rule); +be_define_const_str(lv_obj, "lv_obj", 4257833149u, 0, 6, NULL); be_define_const_str(lv_obj_class, "lv_obj_class", 4039656294u, 0, 12, NULL); -be_define_const_str(lvgl_event_dispatch, "lvgl_event_dispatch", 2104396622u, 0, 19, &be_const_str_set_matrix_pixel_color); -be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_redirect); -be_define_const_str(math, "math", 4001929615u, 0, 4, NULL); -be_define_const_str(matrix, "matrix", 365099244u, 0, 6, NULL); -be_define_const_str(member, "member", 719708611u, 0, 6, NULL); -be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_target); -be_define_const_str(memory, "memory", 2229924270u, 0, 6, &be_const_str_resp_cmnd_str); -be_define_const_str(millis, "millis", 1214679063u, 0, 6, NULL); -be_define_const_str(min, "min", 3381609815u, 0, 3, &be_const_str_widget_cb); +be_define_const_str(lvgl_event_dispatch, "lvgl_event_dispatch", 2104396622u, 0, 19, &be_const_str_rule); +be_define_const_str(map, "map", 3751997361u, 0, 3, NULL); +be_define_const_str(math, "math", 4001929615u, 0, 4, &be_const_str_widget_event_cb); +be_define_const_str(matrix, "matrix", 365099244u, 0, 6, &be_const_str_pixels_buffer); +be_define_const_str(member, "member", 719708611u, 0, 6, &be_const_str_web_add_management_button); +be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_remove_rule); +be_define_const_str(memory, "memory", 2229924270u, 0, 6, NULL); +be_define_const_str(millis, "millis", 1214679063u, 0, 6, &be_const_str_module); +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_percentage); -be_define_const_str(month, "month", 3598321157u, 0, 5, NULL); +be_define_const_str(module, "module", 3617558685u, 0, 6, &be_const_str_setrange); +be_define_const_str(month, "month", 3598321157u, 0, 5, &be_const_str_web_send); be_define_const_str(name, "name", 2369371622u, 0, 4, NULL); -be_define_const_str(nan, "nan", 797905850u, 0, 3, NULL); +be_define_const_str(nan, "nan", 797905850u, 0, 3, &be_const_str_size); 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_number); -be_define_const_str(null_cb, "null_cb", 2333536460u, 0, 7, &be_const_str_public_key); -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, &be_const_str_write_bytes); +be_define_const_str(no_X20GPIO_X20specified_X20for_X20neopixelbus, "no GPIO specified for neopixelbus", 42078528u, 0, 33, NULL); +be_define_const_str(null_cb, "null_cb", 2333536460u, 0, 7, NULL); +be_define_const_str(number, "number", 467038368u, 0, 6, &be_const_str_range); +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, NULL); -be_define_const_str(offset, "offset", 348705738u, 0, 6, &be_const_str_sec); +be_define_const_str(offset, "offset", 348705738u, 0, 6, &be_const_str_web_add_button); be_define_const_str(offseta, "offseta", 1663383089u, 0, 7, NULL); -be_define_const_str(on, "on", 1630810064u, 0, 2, NULL); -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, NULL); -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_sqrt); -be_define_const_str(open, "open", 3546203337u, 0, 4, NULL); +be_define_const_str(on, "on", 1630810064u, 0, 2, &be_const_str_webclient); +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_wire2); +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_srand); +be_define_const_str(open, "open", 3546203337u, 0, 4, &be_const_str_search); 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_widget_event_cb); -be_define_const_str(p2, "p2", 2672743655u, 0, 2, NULL); -be_define_const_str(page_autoconf_ctl, "page_autoconf_ctl", 2453381496u, 0, 17, &be_const_str_pc_rel); -be_define_const_str(page_autoconf_mgr, "page_autoconf_mgr", 3643937031u, 0, 17, &be_const_str_reduce); -be_define_const_str(param, "param", 1309554226u, 0, 5, &be_const_str_set_dcdc_enable); -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_zip); -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_web_add_config_button); +be_define_const_str(p1, "p1", 2689521274u, 0, 2, NULL); +be_define_const_str(p2, "p2", 2672743655u, 0, 2, &be_const_str_set_alternate); +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, &be_const_str_write8); +be_define_const_str(param, "param", 1309554226u, 0, 5, &be_const_str_resp_cmnd_error); +be_define_const_str(path, "path", 2223459638u, 0, 4, &be_const_str_real); +be_define_const_str(pc, "pc", 1313756516u, 0, 2, &be_const_str_nil); +be_define_const_str(pc_abs, "pc_abs", 920256495u, 0, 6, &be_const_str_set); +be_define_const_str(pc_rel, "pc_rel", 991921176u, 0, 6, &be_const_str_web_add_config_button); +be_define_const_str(percentage, "percentage", 2538831285u, 0, 10, &be_const_str_tcpclient); 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_publish_result); -be_define_const_str(pi, "pi", 1213090802u, 0, 2, &be_const_str_set_alternate); -be_define_const_str(pin, "pin", 1866532500u, 0, 3, &be_const_str_running); -be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, &be_const_str_set_first_time); -be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, &be_const_str_reapply); +be_define_const_str(persist_X2E_p_X20is_X20not_X20a_X20map, "persist._p is not a map", 1176528732u, 0, 23, NULL); +be_define_const_str(pi, "pi", 1213090802u, 0, 2, NULL); +be_define_const_str(pin, "pin", 1866532500u, 0, 3, NULL); +be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, &be_const_str_set_ldo_voltage); +be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, &be_const_str_set_auth); be_define_const_str(pixel_count, "pixel_count", 2439130743u, 0, 11, NULL); 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_setmember); -be_define_const_str(pop, "pop", 1362321360u, 0, 3, NULL); +be_define_const_str(point, "point", 414084241u, 0, 5, NULL); +be_define_const_str(pop, "pop", 1362321360u, 0, 3, &be_const_str_resp_cmnd_failed); 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, NULL); -be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_else); -be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, &be_const_str_continue); -be_define_const_str(publish, "publish", 264247304u, 0, 7, &be_const_str_web_add_main_button); -be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, &be_const_str_set_x); -be_define_const_str(push, "push", 2272264157u, 0, 4, &be_const_str_stop); +be_define_const_str(pow, "pow", 1479764693u, 0, 3, &be_const_str_seg7_font); +be_define_const_str(preinit, "preinit", 2722007100u, 0, 7, &be_const_str_widget_ctor_cb); +be_define_const_str(print, "print", 372738696u, 0, 5, NULL); +be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, &be_const_str_read32); +be_define_const_str(publish, "publish", 264247304u, 0, 7, NULL); +be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, &be_const_str_skip); +be_define_const_str(push, "push", 2272264157u, 0, 4, &be_const_str_width); be_define_const_str(push_path, "push_path", 1155254157u, 0, 9, NULL); -be_define_const_str(quality, "quality", 2597670950u, 0, 7, NULL); -be_define_const_str(r, "r", 4144776981u, 0, 1, &be_const_str_tele); -be_define_const_str(rad, "rad", 1358899048u, 0, 3, NULL); +be_define_const_str(quality, "quality", 2597670950u, 0, 7, &be_const_str_else); +be_define_const_str(r, "r", 4144776981u, 0, 1, &be_const_str_set_light); +be_define_const_str(rad, "rad", 1358899048u, 0, 3, &be_const_str_set_ldo_enable); be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL); be_define_const_str(rand, "rand", 2711325910u, 0, 4, NULL); -be_define_const_str(range, "range", 4208725202u, 0, 5, &be_const_str_web_add_handler); +be_define_const_str(range, "range", 4208725202u, 0, 5, &be_const_str_reverse_gamma10); be_define_const_str(read, "read", 3470762949u, 0, 4, NULL); be_define_const_str(read12, "read12", 4291076970u, 0, 6, NULL); -be_define_const_str(read13, "read13", 12887293u, 0, 6, &be_const_str_set_timer); +be_define_const_str(read13, "read13", 12887293u, 0, 6, NULL); be_define_const_str(read24, "read24", 1808533811u, 0, 6, NULL); -be_define_const_str(read32, "read32", 1741276240u, 0, 6, &be_const_str_break); -be_define_const_str(read8, "read8", 2802788167u, 0, 5, &be_const_str_readline); -be_define_const_str(read_bytes, "read_bytes", 3576733173u, 0, 10, &be_const_str_type); -be_define_const_str(read_sensors, "read_sensors", 892689201u, 0, 12, NULL); -be_define_const_str(readbytes, "readbytes", 2716426756u, 0, 9, &be_const_str_show); -be_define_const_str(readline, "readline", 1212709927u, 0, 8, &be_const_str_solidified); -be_define_const_str(real, "real", 3604983901u, 0, 4, &be_const_str__X7B_X7D); +be_define_const_str(read32, "read32", 1741276240u, 0, 6, NULL); +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, &be_const_str_round_end); +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, NULL); be_define_const_str(reapply, "reapply", 3778939332u, 0, 7, NULL); -be_define_const_str(redirect, "redirect", 389758641u, 0, 8, NULL); -be_define_const_str(reduce, "reduce", 2002030311u, 0, 6, NULL); -be_define_const_str(refr_size, "refr_size", 1958144468u, 0, 9, NULL); -be_define_const_str(register_obj, "register_obj", 3982614770u, 0, 12, NULL); +be_define_const_str(redirect, "redirect", 389758641u, 0, 8, &be_const_str_rtc); +be_define_const_str(reduce, "reduce", 2002030311u, 0, 6, &be_const_str_sec); +be_define_const_str(refr_size, "refr_size", 1958144468u, 0, 9, &be_const_str_target_search); +be_define_const_str(register_obj, "register_obj", 3982614770u, 0, 12, &be_const_str_sys); 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, &be_const_str_string); -be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, NULL); +be_define_const_str(remove_driver, "remove_driver", 1030243768u, 0, 13, &be_const_str_tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29); +be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, &be_const_str_except); be_define_const_str(remove_timer, "remove_timer", 4141472215u, 0, 12, NULL); be_define_const_str(reset, "reset", 1695364032u, 0, 5, NULL); -be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, &be_const_str_widget_destructor); +be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, NULL); 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, &be_const_str_web_add_management_button); -be_define_const_str(resp_cmnd_done, "resp_cmnd_done", 2601874875u, 0, 14, &be_const_str_raise); +be_define_const_str(resp_cmnd, "resp_cmnd", 2869459626u, 0, 9, &be_const_str_widget_editable); +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, NULL); -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_set_chg_current); 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(response_append, "response_append", 450346371u, 0, 15, &be_const_str_set_first_time); 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_set_ldo_enable); -be_define_const_str(reverse, "reverse", 558918661u, 0, 7, &be_const_str_sin); -be_define_const_str(reverse_gamma10, "reverse_gamma10", 739112262u, 0, 15, &be_const_str_to_gamma); +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, NULL); 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_wire); -be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, &be_const_str_settings); -be_define_const_str(rule, "rule", 4230889683u, 0, 4, NULL); -be_define_const_str(run, "run", 718098122u, 0, 3, NULL); -be_define_const_str(run_bat, "run_bat", 2536903298u, 0, 7, NULL); +be_define_const_str(round_end, "round_end", 985288225u, 0, 9, &be_const_str_strftime); +be_define_const_str(round_start, "round_start", 2949484384u, 0, 11, &be_const_str_sqrt); +be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, NULL); +be_define_const_str(rule, "rule", 4230889683u, 0, 4, &be_const_str_settings); +be_define_const_str(run, "run", 718098122u, 0, 3, &be_const_str_set_style_line_color); +be_define_const_str(run_bat, "run_bat", 2536903298u, 0, 7, &be_const_str_valuer_error); be_define_const_str(run_deferred, "run_deferred", 371594696u, 0, 12, NULL); -be_define_const_str(running, "running", 343848780u, 0, 7, NULL); -be_define_const_str(save, "save", 3439296072u, 0, 4, &be_const_str_tanh); +be_define_const_str(running, "running", 343848780u, 0, 7, &be_const_str_string); +be_define_const_str(save, "save", 3439296072u, 0, 4, NULL); 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, &be_const_str_set_style_pad_right); -be_define_const_str(scan, "scan", 3974641896u, 0, 4, &be_const_str_set_dc_voltage); +be_define_const_str(scale_uint, "scale_uint", 3090811094u, 0, 10, &be_const_str_widget_group_def); +be_define_const_str(scan, "scan", 3974641896u, 0, 4, NULL); be_define_const_str(search, "search", 2150836393u, 0, 6, NULL); be_define_const_str(sec, "sec", 3139892658u, 0, 3, NULL); -be_define_const_str(seg7_font, "seg7_font", 4099690689u, 0, 9, NULL); +be_define_const_str(seg7_font, "seg7_font", 4099690689u, 0, 9, &be_const_str_set_useragent); be_define_const_str(select, "select", 297952813u, 0, 6, NULL); -be_define_const_str(serial, "serial", 3687697785u, 0, 6, &be_const_str_url_encode); +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_widget_struct_by_class); -be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, NULL); -be_define_const_str(set_bri, "set_bri", 2789118779u, 0, 7, &be_const_str_wire1); +be_define_const_str(set_alternate, "set_alternate", 1709680562u, 0, 13, &be_const_str_widget_event); +be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, &be_const_str_update); +be_define_const_str(set_bri, "set_bri", 2789118779u, 0, 7, &be_const_str_str); be_define_const_str(set_chg_current, "set_chg_current", 336304386u, 0, 15, NULL); -be_define_const_str(set_dc_voltage, "set_dc_voltage", 2181981936u, 0, 14, &be_const_str_toupper); -be_define_const_str(set_dcdc_enable, "set_dcdc_enable", 1594690786u, 0, 15, &be_const_str_tomap); -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, &be_const_str_width_def); +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, &be_const_str_class); +be_define_const_str(set_first_time, "set_first_time", 3111247550u, 0, 14, &be_const_str_tan); +be_define_const_str(set_height, "set_height", 1080207399u, 0, 10, NULL); 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, &be_const_str_tob64); -be_define_const_str(set_light, "set_light", 3176076152u, 0, 9, &be_const_str_setrange); +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, 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, NULL); +be_define_const_str(set_percentage, "set_percentage", 2952022724u, 0, 14, &be_const_str__X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); 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_widget_height_def); +be_define_const_str(set_power, "set_power", 549820893u, 0, 9, &be_const_str_v); 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, NULL); be_define_const_str(set_style_pad_right, "set_style_pad_right", 3314069054u, 0, 19, NULL); -be_define_const_str(set_style_text_font, "set_style_text_font", 1028590019u, 0, 19, NULL); +be_define_const_str(set_style_text_font, "set_style_text_font", 1028590019u, 0, 19, &be_const_str_widget_ctor_impl); 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, &be_const_str_import); -be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, NULL); +be_define_const_str(set_time, "set_time", 900236405u, 0, 8, &be_const_str_if); +be_define_const_str(set_timeouts, "set_timeouts", 3732850900u, 0, 12, NULL); +be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, &be_const_str_for); 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__X7D); -be_define_const_str(set_x, "set_x", 1849400772u, 0, 5, &be_const_str_def); -be_define_const_str(set_y, "set_y", 1866178391u, 0, 5, NULL); -be_define_const_str(setbits, "setbits", 2762408167u, 0, 7, NULL); +be_define_const_str(set_width, "set_width", 484671920u, 0, 9, NULL); +be_define_const_str(set_x, "set_x", 1849400772u, 0, 5, &be_const_str_var); +be_define_const_str(set_y, "set_y", 1866178391u, 0, 5, &be_const_str_raise); +be_define_const_str(setbits, "setbits", 2762408167u, 0, 7, &be_const_str_super); 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, &be_const_str_strptime); +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_wifi); -be_define_const_str(show, "show", 2840060476u, 0, 4, &be_const_str_y); -be_define_const_str(sin, "sin", 3761252941u, 0, 3, NULL); -be_define_const_str(sinh, "sinh", 282220607u, 0, 4, &be_const_str_tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29); -be_define_const_str(size, "size", 597743964u, 0, 4, NULL); -be_define_const_str(skip, "skip", 1097563074u, 0, 4, NULL); +be_define_const_str(shared_key, "shared_key", 2200833624u, 0, 10, NULL); +be_define_const_str(show, "show", 2840060476u, 0, 4, NULL); +be_define_const_str(sin, "sin", 3761252941u, 0, 3, &be_const_str_widget_constructor); +be_define_const_str(sinh, "sinh", 282220607u, 0, 4, NULL); +be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_top); +be_define_const_str(skip, "skip", 1097563074u, 0, 4, &be_const_str_tr); be_define_const_str(solidified, "solidified", 3257553487u, 0, 10, NULL); -be_define_const_str(split, "split", 2276994531u, 0, 5, &be_const_str_strftime); -be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, NULL); +be_define_const_str(split, "split", 2276994531u, 0, 5, &be_const_str__X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); +be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, &be_const_str_widget_cb); 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, NULL); @@ -641,43 +639,43 @@ 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, NULL); be_define_const_str(strip, "strip", 4246411473u, 0, 5, NULL); -be_define_const_str(strptime, "strptime", 1277910361u, 0, 8, &be_const_str_unknown_X20instruction); -be_define_const_str(super, "super", 4152230356u, 0, 5, &be_const_str_year); +be_define_const_str(strptime, "strptime", 1277910361u, 0, 8, &be_const_str_wire_scan); +be_define_const_str(super, "super", 4152230356u, 0, 5, NULL); be_define_const_str(sys, "sys", 3277365014u, 0, 3, NULL); -be_define_const_str(tag, "tag", 2516003219u, 0, 3, &be_const_str_widget_instance_size); +be_define_const_str(tag, "tag", 2516003219u, 0, 3, NULL); 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, NULL); -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(tanh, "tanh", 153638352u, 0, 4, &be_const_str__X7B); +be_define_const_str(target, "target", 845187144u, 0, 6, &be_const_str_widget_width_def); +be_define_const_str(target_search, "target_search", 1947846553u, 0, 13, &be_const_str_url_encode); +be_define_const_str(tasmota, "tasmota", 424643812u, 0, 7, &be_const_str_value_error); +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, &be_const_str_while); 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, NULL); -be_define_const_str(tele, "tele", 3474458061u, 0, 4, NULL); +be_define_const_str(tele, "tele", 3474458061u, 0, 4, &be_const_str_time_dump); 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, NULL); -be_define_const_str(time_reached, "time_reached", 2075136773u, 0, 12, NULL); -be_define_const_str(time_str, "time_str", 2613827612u, 0, 8, &be_const_str__X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_XB0C_X7Be_X7D); -be_define_const_str(to_gamma, "to_gamma", 1597139862u, 0, 8, NULL); +be_define_const_str(time_reached, "time_reached", 2075136773u, 0, 12, &be_const_str__X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D); +be_define_const_str(time_str, "time_str", 2613827612u, 0, 8, NULL); +be_define_const_str(to_gamma, "to_gamma", 1597139862u, 0, 8, &be_const_str_value); be_define_const_str(tob64, "tob64", 373777640u, 0, 5, NULL); 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, NULL); +be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, &be_const_str_webserver); be_define_const_str(tr, "tr", 1195724803u, 0, 2, NULL); -be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, &be_const_str_as); +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, &be_const_str_widget_dtor_cb); +be_define_const_str(try_rule, "try_rule", 1986449405u, 0, 8, NULL); be_define_const_str(type, "type", 1361572173u, 0, 4, NULL); -be_define_const_str(unknown_X20instruction, "unknown instruction", 1093911841u, 0, 19, &be_const_str_widget_event_impl); +be_define_const_str(unknown_X20instruction, "unknown instruction", 1093911841u, 0, 19, NULL); 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, &be_const_str_valuer_error); -be_define_const_str(value, "value", 1113510858u, 0, 5, &be_const_str_web_add_button); +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, NULL); be_define_const_str(var, "var", 2317739966u, 64, 3, NULL); @@ -688,21 +686,21 @@ be_define_const_str(web_add_config_button, "web_add_config_button", 639674325u, 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, NULL); be_define_const_str(web_add_main_button, "web_add_main_button", 3960367664u, 0, 19, NULL); -be_define_const_str(web_add_management_button, "web_add_management_button", 2738877186u, 0, 25, &be_const_str_webclient); +be_define_const_str(web_add_management_button, "web_add_management_button", 2738877186u, 0, 25, &be_const_str_do); 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, NULL); -be_define_const_str(web_sensor, "web_sensor", 2900096972u, 0, 10, &be_const_str_do); +be_define_const_str(web_sensor, "web_sensor", 2900096972u, 0, 10, &be_const_str_write_gpio); be_define_const_str(webclient, "webclient", 4076389146u, 0, 9, NULL); 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, &be_const_str_width); -be_define_const_str(widget_constructor, "widget_constructor", 2543785934u, 0, 18, &be_const_str_yield); -be_define_const_str(widget_ctor_cb, "widget_ctor_cb", 876007560u, 0, 14, &be_const_str_for); -be_define_const_str(widget_ctor_impl, "widget_ctor_impl", 194252479u, 0, 16, &be_const_str_write_file); +be_define_const_str(widget_cb, "widget_cb", 2763583055u, 0, 9, NULL); +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_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_try); +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); @@ -716,15 +714,15 @@ 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(wire, "wire", 4082753944u, 0, 4, NULL); -be_define_const_str(wire1, "wire1", 3212721419u, 0, 5, NULL); +be_define_const_str(wire1, "wire1", 3212721419u, 0, 5, &be_const_str_true); 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, &be_const_str_except); +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_gpio, "write_gpio", 2267940334u, 0, 10, &be_const_str_if); +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(y, "y", 4228665076u, 0, 1, NULL); @@ -732,7 +730,7 @@ be_define_const_str(y1, "y1", 2355101727u, 0, 2, NULL); be_define_const_str(year, "year", 2927578396u, 0, 4, NULL); be_define_const_str(yield, "yield", 1821831854u, 0, 5, NULL); be_define_const_str(zero, "zero", 2339366755u, 0, 4, NULL); -be_define_const_str(zip, "zip", 2877453236u, 0, 3, &be_const_str__X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D); +be_define_const_str(zip, "zip", 2877453236u, 0, 3, NULL); be_define_const_str(_X7B, "{", 4262220314u, 0, 1, NULL); be_define_const_str(_X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D, "{s}Batt Current{m}%.1f mA{e}", 866537156u, 0, 28, NULL); be_define_const_str(_X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D, "{s}Batt Voltage{m}%.3f V{e}", 3184308199u, 0, 27, NULL); @@ -743,370 +741,369 @@ 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__X3D, - (const bstring *)&be_const_str_point, - (const bstring *)&be_const_str_run, + (const bstring *)&be_const_str__X3E_X3D, + (const bstring *)&be_const_str_run_bat, NULL, - (const bstring *)&be_const_str_class_init_obj, - (const bstring *)&be_const_str_try_rule, - (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_setbits, - (const bstring *)&be_const_str_AXP192, - (const bstring *)&be_const_str_tolower, - (const bstring *)&be_const_str__X2B, - (const bstring *)&be_const_str_I2C_X3A, - (const bstring *)&be_const_str_exec_rules, - (const bstring *)&be_const_str_read13, - (const bstring *)&be_const_str__X2F, - (const bstring *)&be_const_str_pc_abs, - (const bstring *)&be_const_str__error, - (const bstring *)&be_const_str__X23autoexec_X2Ebat, - (const bstring *)&be_const_str__X23, - (const bstring *)&be_const_str__X2Ep, - (const bstring *)&be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, + NULL, + (const bstring *)&be_const_str_io_error, + (const bstring *)&be_const_str_depower, + (const bstring *)&be_const_str_SERIAL_6O1, + (const bstring *)&be_const_str_STATE_DEFAULT, (const bstring *)&be_const_str_SERIAL_6N1, - (const bstring *)&be_const_str_cb_do_nothing, - (const bstring *)&be_const_str_CFG_X3A_X20loading_X20, - (const bstring *)&be_const_str_HTTP_POST, - (const bstring *)&be_const_str__rules, + (const bstring *)&be_const_str_Auto_X2Dconfiguration, + (const bstring *)&be_const_str_decrypt, + (const bstring *)&be_const_str_insert, NULL, + (const bstring *)&be_const_str__X3D, + (const bstring *)&be_const_str_write_bytes, NULL, - NULL, - (const bstring *)&be_const_str_the_X20second_X20argument_X20is_X20not_X20a_X20function, - (const bstring *)&be_const_str_begin, - (const bstring *)&be_const_str_POST, - (const bstring *)&be_const_str_web_add_console_button, - (const bstring *)&be_const_str__X2F_X2Eautoconf, - NULL, - (const bstring *)&be_const_str__filename, - (const bstring *)&be_const_str_write_bit, - (const bstring *)&be_const_str_SERIAL_5O1, - (const bstring *)&be_const_str_AES_GCM, - (const bstring *)&be_const_str_set_height, - (const bstring *)&be_const_str__end_transmission, - (const bstring *)&be_const_str__X2D_X2D_X3A_X2D_X2D, - (const bstring *)&be_const_str_cb_obj, - (const bstring *)&be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker, - (const bstring *)&be_const_str__archive, - (const bstring *)&be_const_str_module, - (const bstring *)&be_const_str_SERIAL_7N1, - (const bstring *)&be_const_str_sinh, - (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_SERIAL_6O2, - (const bstring *)&be_const_str_detected_X20on_X20bus, - (const bstring *)&be_const_str_response_append, - (const bstring *)&be_const_str_WS2812_GRB, - (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_get_bri, - NULL, - (const bstring *)&be_const_str_arch, - NULL, - (const bstring *)&be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_connection_error, - (const bstring *)&be_const_str_, - (const bstring *)&be_const_str_calldepth, - (const bstring *)&be_const_str___iterator__, - (const bstring *)&be_const_str__X2Esize, - (const bstring *)&be_const_str_widget_group_def, - (const bstring *)&be_const_str_resp_cmnd, - (const bstring *)&be_const_str__X2Ep2, - (const bstring *)&be_const_str_get_switch, - (const bstring *)&be_const_str_clear_first_time, - NULL, + (const bstring *)&be_const_str_running, + (const bstring *)&be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E, + (const bstring *)&be_const_str_read_bytes, + (const bstring *)&be_const_str_draw_arc, + (const bstring *)&be_const_str__X20, + (const bstring *)&be_const_str_event, + (const bstring *)&be_const_str_SERIAL_5E2, + (const bstring *)&be_const_str_SERIAL_6E1, + (const bstring *)&be_const_str_leds, + (const bstring *)&be_const_str__lvgl, + (const bstring *)&be_const_str_zip, (const bstring *)&be_const_str_EC_C25519, - (const bstring *)&be_const_str_save, - NULL, - NULL, - (const bstring *)&be_const_str_SERIAL_8N1, - (const bstring *)&be_const_str_ip, - (const bstring *)&be_const_str_alternate, - (const bstring *)&be_const_str_compile, - (const bstring *)&be_const_str_file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27, - (const bstring *)&be_const_str_animate, - (const bstring *)&be_const_str__X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, - NULL, - (const bstring *)&be_const_str_SERIAL_8O2, - (const bstring *)&be_const_str__X25s_X2Eautoconf, - NULL, - (const bstring *)&be_const_str__dirty, - (const bstring *)&be_const_str_y1, - (const bstring *)&be_const_str_remove_driver, - (const bstring *)&be_const_str_get_string, - (const bstring *)&be_const_str_CFG_X3A_X20removing_X20autoconf_X20files, - (const bstring *)&be_const_str_autoexec, - (const bstring *)&be_const_str_get_style_line_color, - (const bstring *)&be_const_str_bool, - (const bstring *)&be_const_str_write_gpio, - (const bstring *)&be_const_str__X3D_X3D, - (const bstring *)&be_const_str_id, - (const bstring *)&be_const_str_SERIAL_5N2, - NULL, - (const bstring *)&be_const_str_persist, - (const bstring *)&be_const_str_set_timeouts, - NULL, - (const bstring *)&be_const_str_AudioGenerator, - (const bstring *)&be_const_str_byte, - (const bstring *)&be_const_str_EVENT_DRAW_PART_BEGIN, - (const bstring *)&be_const_str_collect, - (const bstring *)&be_const_str_widget_event, - (const bstring *)&be_const_str_SERIAL_6E2, - (const bstring *)&be_const_str_add_anim, - (const bstring *)&be_const_str_erase, - (const bstring *)&be_const_str___lower__, - (const bstring *)&be_const_str_arg, - (const bstring *)&be_const_str_CFG_X3A_X20ran_X20_X20, - (const bstring *)&be_const_str_srand, - (const bstring *)&be_const_str_skip, - (const bstring *)&be_const_str_Leds, - NULL, - (const bstring *)&be_const_str__X23init_X2Ebat, - (const bstring *)&be_const_str__X3Clambda_X3E, - (const bstring *)&be_const_str_GET, - (const bstring *)&be_const_str_widget_ctor_cb, - (const bstring *)&be_const_str__global_addr, - (const bstring *)&be_const_str_OneWire, + (const bstring *)&be_const_str_COLOR_BLACK, + (const bstring *)&be_const_str_readline, (const bstring *)&be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_update, NULL, - NULL, - NULL, - (const bstring *)&be_const_str_AudioOutput, - NULL, - (const bstring *)&be_const_str_decompress, - NULL, - (const bstring *)&be_const_str_EVENT_DRAW_PART_END, (const bstring *)&be_const_str_load_templates, - (const bstring *)&be_const_str_get_alternate, - (const bstring *)&be_const_str_acos, - (const bstring *)&be_const_str__X2Elen, - (const bstring *)&be_const_str_constructor_cb, - (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X20, + (const bstring *)&be_const_str_get, + (const bstring *)&be_const_str_POST, + (const bstring *)&be_const_str___iterator__, + (const bstring *)&be_const_str_AudioGeneratorMP3, + (const bstring *)&be_const_str__energy, + (const bstring *)&be_const_str__rules, + (const bstring *)&be_const_str_break, + (const bstring *)&be_const_str__X2F_X2Eautoconf, + (const bstring *)&be_const_str_content_button, + (const bstring *)&be_const_str_copy, + (const bstring *)&be_const_str_get_aps_voltage, + (const bstring *)&be_const_str_AXP192, + (const bstring *)&be_const_str_select, + (const bstring *)&be_const_str_autoexec, + (const bstring *)&be_const_str__X0A, + (const bstring *)&be_const_str_available, NULL, - (const bstring *)&be_const_str_get_current_module_name, - (const bstring *)&be_const_str__X2Ebec, - (const bstring *)&be_const_str__settings_ptr, - (const bstring *)&be_const_str_dump, + (const bstring *)&be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, + (const bstring *)&be_const_str_gc, + (const bstring *)&be_const_str_CFG_X3A_X20loading_X20_X27_X25s_X27, + (const bstring *)&be_const_str__X21_X3D_X3D, + (const bstring *)&be_const_str_split, + (const bstring *)&be_const_str_lower, + (const bstring *)&be_const_str__X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E, + (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_base_class, + (const bstring *)&be_const_str_connected, + (const bstring *)&be_const_str_instance, + NULL, + (const bstring *)&be_const_str__X2Etapp, + (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_attrdump, + (const bstring *)&be_const_str_EVENT_DRAW_MAIN, + (const bstring *)&be_const_str__request_from, + (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_acos, + (const bstring *)&be_const_str_get_light, + (const bstring *)&be_const_str_resp_cmnd_str, + NULL, + (const bstring *)&be_const_str_CFG_X3A_X20removing_X20autoconf_X20files, + NULL, + (const bstring *)&be_const_str_w, + (const bstring *)&be_const_str_draw_line, + NULL, + (const bstring *)&be_const_str_strip, + (const bstring *)&be_const_str_format, + (const bstring *)&be_const_str_Leds, + (const bstring *)&be_const_str_exec_tele, + (const bstring *)&be_const_str_chars_in_string, + (const bstring *)&be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem, + NULL, + (const bstring *)&be_const_str_widget_dtor_cb, + (const bstring *)&be_const_str_invalidate, + (const bstring *)&be_const_str__X3A, + NULL, + (const bstring *)&be_const_str_out_X20of_X20range, + NULL, + (const bstring *)&be_const_str_lv_event_cb, + (const bstring *)&be_const_str_LVG_X3A_X20call_X20to_X20unsupported_X20callback, + (const bstring *)&be_const_str_escape, + (const bstring *)&be_const_str_event_cb, + (const bstring *)&be_const_str_init_draw_line_dsc, + NULL, + (const bstring *)&be_const_str_isinstance, + (const bstring *)&be_const_str_exists, + (const bstring *)&be_const_str_HTTP_GET, + (const bstring *)&be_const_str_clear_first_time, + (const bstring *)&be_const_str__X2Eautoconf, + (const bstring *)&be_const_str_clear, + (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, + (const bstring *)&be_const_str_SERIAL_7N1, + (const bstring *)&be_const_str_get_percentage, + (const bstring *)&be_const_str_SERIAL_7O1, + (const bstring *)&be_const_str_remove, + (const bstring *)&be_const_str_set_time, + (const bstring *)&be_const_str_get_size, + (const bstring *)&be_const_str_remove_timer, + (const bstring *)&be_const_str__X23autoexec_X2Ebat, + (const bstring *)&be_const_str__X2D_X2D_X3A_X2D_X2D, + (const bstring *)&be_const_str_due, + (const bstring *)&be_const_str__X2C, + (const bstring *)&be_const_str_instance_size, + (const bstring *)&be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range, + (const bstring *)&be_const_str_cb, + (const bstring *)&be_const_str_resp_cmnd_done, + NULL, + (const bstring *)&be_const_str_energy_struct, NULL, (const bstring *)&be_const_str__drivers, + (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_tob64, + (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_CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29, + (const bstring *)&be_const_str__X3C, + (const bstring *)&be_const_str_y, + (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_files, + (const bstring *)&be_const_str__X2Ew, + (const bstring *)&be_const_str_assert, + (const bstring *)&be_const_str_bytes, + (const bstring *)&be_const_str__X23, + (const bstring *)&be_const_str_abs, + (const bstring *)&be_const_str__X2E_X2E, + (const bstring *)&be_const_str__global_addr, + (const bstring *)&be_const_str_connect, + (const bstring *)&be_const_str__settings_ptr, + NULL, + (const bstring *)&be_const_str_CFG_X3A_X20ran_X20_X20, + (const bstring *)&be_const_str_BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, + NULL, + (const bstring *)&be_const_str__X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, + (const bstring *)&be_const_str_i2c_enabled, + (const bstring *)&be_const_str_ctypes_bytes_dyn, + (const bstring *)&be_const_str_CFG_X3A_X20loading_X20, + NULL, + NULL, + (const bstring *)&be_const_str_refr_size, + (const bstring *)&be_const_str_content_send_style, + NULL, + NULL, + (const bstring *)&be_const_str_begin, + (const bstring *)&be_const_str_c, + (const bstring *)&be_const_str_ins_goto, + (const bstring *)&be_const_str__buffer, + (const bstring *)&be_const_str_concat, + (const bstring *)&be_const_str_percentage, + NULL, + (const bstring *)&be_const_str_SERIAL_5N2, + NULL, + NULL, + (const bstring *)&be_const_str_SK6812_GRBW, + (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__X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E, + NULL, + NULL, + (const bstring *)&be_const_str_lv_obj, + (const bstring *)&be_const_str___upper__, + (const bstring *)&be_const_str_Restart_X201, + NULL, + (const bstring *)&be_const_str_introspect, + (const bstring *)&be_const_str__X23autoexec_X2Ebe, + (const bstring *)&be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27, + (const bstring *)&be_const_str_bool, + (const bstring *)&be_const_str_PART_MAIN, + (const bstring *)&be_const_str_back_forth, + (const bstring *)&be_const_str_lv_obj_class, + (const bstring *)&be_const_str_TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27, + (const bstring *)&be_const_str_GET, + (const bstring *)&be_const_str_deg, (const bstring *)&be_const_str__X28_X29, NULL, - (const bstring *)&be_const_str__X2Ebe, - (const bstring *)&be_const_str_content_start, - (const bstring *)&be_const_str__class, - (const bstring *)&be_const_str_h, - (const bstring *)&be_const_str_Unknown_X20command, - (const bstring *)&be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, - (const bstring *)&be_const_str_p1, - NULL, - NULL, - (const bstring *)&be_const_str_b, - (const bstring *)&be_const_str_Parameter_X20error, - (const bstring *)&be_const_str_event, - (const bstring *)&be_const_str_read32, - (const bstring *)&be_const_str_f, - (const bstring *)&be_const_str_resp_cmnd_failed, - (const bstring *)&be_const_str_create_matrix, - (const bstring *)&be_const_str_SERIAL_7E2, - (const bstring *)&be_const_str_resolvecmnd, - (const bstring *)&be_const_str_draw_line, - (const bstring *)&be_const_str_autorun, - (const bstring *)&be_const_str__X2Eautoconf, - (const bstring *)&be_const_str_editable, - NULL, - NULL, - NULL, - (const bstring *)&be_const_str__X3A, - (const bstring *)&be_const_str_EVENT_DRAW_MAIN, - (const bstring *)&be_const_str_remove_timer, - (const bstring *)&be_const_str_Wire, - (const bstring *)&be_const_str__X3E, - (const bstring *)&be_const_str__X26lt_X3BNone_X26gt_X3B, - (const bstring *)&be_const_str__X3C, - (const bstring *)&be_const_str_pin, - (const bstring *)&be_const_str__def, - (const bstring *)&be_const_str_int, - (const bstring *)&be_const_str_atan2, - (const bstring *)&be_const_str_AudioOutputI2S, - (const bstring *)&be_const_str_last_modified, - (const bstring *)&be_const_str_get_style_pad_right, - (const bstring *)&be_const_str__settings_def, - (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27, - (const bstring *)&be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, - NULL, - (const bstring *)&be_const_str_start, - (const bstring *)&be_const_str_reset, - (const bstring *)&be_const_str__X2E, - (const bstring *)&be_const_str__X21_X3D_X3D, - (const bstring *)&be_const_str__X2C, (const bstring *)&be_const_str__X23preinit_X2Ebe, - (const bstring *)&be_const_str_month, - (const bstring *)&be_const_str_instance_size, - (const bstring *)&be_const_str__X20, - (const bstring *)&be_const_str_exp, - (const bstring *)&be_const_str_bus, - (const bstring *)&be_const_str_cmd_res, - (const bstring *)&be_const_str_draw_line_dsc, - (const bstring *)&be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, - (const bstring *)&be_const_str_tostring, - (const bstring *)&be_const_str_var, - (const bstring *)&be_const_str_upper, - (const bstring *)&be_const_str_color, - (const bstring *)&be_const_str_internal_error, - (const bstring *)&be_const_str_encrypt, - (const bstring *)&be_const_str__X21_X3D, - NULL, - NULL, - (const bstring *)&be_const_str_CFG_X3A_X20running_X20, - (const bstring *)&be_const_str_Restart_X201, - (const bstring *)&be_const_str_BUTTON_CONFIGURATION, - NULL, - (const bstring *)&be_const_str_HTTP_GET, - (const bstring *)&be_const_str_loop, - (const bstring *)&be_const_str_SERIAL_5O2, - (const bstring *)&be_const_str__X0A, - (const bstring *)&be_const_str_back_forth, - (const bstring *)&be_const_str_add_rule, - (const bstring *)&be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem, - (const bstring *)&be_const_str_list, - (const bstring *)&be_const_str_closure, - (const bstring *)&be_const_str__X2F_X3Frst_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_COLOR_WHITE, - NULL, - (const bstring *)&be_const_str_SERIAL_6O1, - (const bstring *)&be_const_str_widget_struct_default, - (const bstring *)&be_const_str_gamma, - (const bstring *)&be_const_str_abs, - (const bstring *)&be_const_str_pc, - (const bstring *)&be_const_str_concat, - (const bstring *)&be_const_str_height_def, - NULL, - (const bstring *)&be_const_str_log10, - (const bstring *)&be_const_str_call, - (const bstring *)&be_const_str__p, - (const bstring *)&be_const_str_file, - (const bstring *)&be_const_str__request_from, - (const bstring *)&be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, - (const bstring *)&be_const_str__X2Ep1, - (const bstring *)&be_const_str_content_send_style, - (const bstring *)&be_const_str_AudioGeneratorWAV, - (const bstring *)&be_const_str_seg7_font, - NULL, - (const bstring *)&be_const_str_add_driver, - (const bstring *)&be_const_str_pin_used, - (const bstring *)&be_const_str_Tele, - (const bstring *)&be_const_str_SERIAL_8N2, - NULL, - (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_get_input_power_status, - (const bstring *)&be_const_str__persist_X2Ejson, - NULL, - (const bstring *)&be_const_str__X23display_X2Eini, - (const bstring *)&be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range, - (const bstring *)&be_const_str_SERIAL_8O1, - (const bstring *)&be_const_str_ctypes_bytes, - (const bstring *)&be_const_str__X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E, - (const bstring *)&be_const_str_round_end, - (const bstring *)&be_const_str_codedump, - (const bstring *)&be_const_str_MD5, - (const bstring *)&be_const_str_PART_MAIN, - NULL, - (const bstring *)&be_const_str_asin, - (const bstring *)&be_const_str_content_stop, - (const bstring *)&be_const_str_set_light, - (const bstring *)&be_const_str_get_bat_current, - (const bstring *)&be_const_str_x1, - NULL, - NULL, - (const bstring *)&be_const_str_compress, - (const bstring *)&be_const_str_escape, - (const bstring *)&be_const_str_atan, - (const bstring *)&be_const_str_SERIAL_5N1, - (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__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_tr, - (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E, - (const bstring *)&be_const_str__X2E_X2E, - (const bstring *)&be_const_str_SERIAL_6E1, - (const bstring *)&be_const_str_content_button, - (const bstring *)&be_const_str_asstring, - NULL, - (const bstring *)&be_const_str_detect, - (const bstring *)&be_const_str_close, - (const bstring *)&be_const_str_add_header, - (const bstring *)&be_const_str_day, - (const bstring *)&be_const_str_seti, - (const bstring *)&be_const_str_light, - (const bstring *)&be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, - (const bstring *)&be_const_str_event_cb, - (const bstring *)&be_const_str_AudioFileSource, - (const bstring *)&be_const_str_get_tasmota, - (const bstring *)&be_const_str_preinit, - (const bstring *)&be_const_str__available, - (const bstring *)&be_const_str_name, - NULL, - NULL, - (const bstring *)&be_const_str_reset_search, - (const bstring *)&be_const_str__X3C_X3D, - (const bstring *)&be_const_str_from_to, - NULL, - (const bstring *)&be_const_str_remove, - (const bstring *)&be_const_str__read, - (const bstring *)&be_const_str_deg, - (const bstring *)&be_const_str_obj_class_create_obj, - (const bstring *)&be_const_str_ins_time, - (const bstring *)&be_const_str__X2Etapp, - (const bstring *)&be_const_str_content_flush, - (const bstring *)&be_const_str_area, - (const bstring *)&be_const_str_CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found, - (const bstring *)&be_const_str_webserver, - (const bstring *)&be_const_str_iter, - (const bstring *)&be_const_str_ceil, - (const bstring *)&be_const_str__global_def, - (const bstring *)&be_const_str__get_cb, - (const bstring *)&be_const_str___upper__, - (const bstring *)&be_const_str_size, - (const bstring *)&be_const_str_cb_event_closure, - (const bstring *)&be_const_str_find_key_i, - (const bstring *)&be_const_str__cb, - (const bstring *)&be_const_str_AudioGeneratorMP3, - (const bstring *)&be_const_str_BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20, - (const bstring *)&be_const_str_clear_to, - (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_web_sensor, - (const bstring *)&be_const_str__ccmd, - NULL, - (const bstring *)&be_const_str_p2, - (const bstring *)&be_const_str_SERIAL_8E1, - (const bstring *)&be_const_str_connect, - (const bstring *)&be_const_str_c, - (const bstring *)&be_const_str_cmd, - (const bstring *)&be_const_str_a, - (const bstring *)&be_const_str_SERIAL_7E1, - (const bstring *)&be_const_str__cmd, - (const bstring *)&be_const_str_ctor, - (const bstring *)&be_const_str_attrdump, - (const bstring *)&be_const_str_every_second, - (const bstring *)&be_const_str__X5B, - (const bstring *)&be_const_str_can_show, - NULL, - (const bstring *)&be_const_str_Auto_X2Dconfiguration, - (const bstring *)&be_const_str__, - (const bstring *)&be_const_str_gen_cb, - (const bstring *)&be_const_str__X5D, - (const bstring *)&be_const_str_get_size, + (const bstring *)&be_const_str__class, NULL, + (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_CFG_X3A_X20downloading_X20_X27_X25s_X27, (const bstring *)&be_const_str__X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E, - (const bstring *)&be_const_str__X3E_X3D, + (const bstring *)&be_const_str_fromstring, + (const bstring *)&be_const_str_SERIAL_8E2, NULL, + (const bstring *)&be_const_str__anonymous_, + (const bstring *)&be_const_str__X2502d_X25s_X2502d, + (const bstring *)&be_const_str_CFG_X3A_X20return_code_X3D_X25i, + (const bstring *)&be_const_str_web_sensor, + (const bstring *)&be_const_str_detect, + (const bstring *)&be_const_str_exec_cmd, + (const bstring *)&be_const_str_to_gamma, + (const bstring *)&be_const_str__ptr, + (const bstring *)&be_const_str_null_cb, + (const bstring *)&be_const_str_eth, + (const bstring *)&be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf, + (const bstring *)&be_const_str_erase, + (const bstring *)&be_const_str__archive, + (const bstring *)&be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27, + (const bstring *)&be_const_str_code, + (const bstring *)&be_const_str_BUTTON_CONFIGURATION, + (const bstring *)&be_const_str_web_send_decimal, + (const bstring *)&be_const_str_fromptr, + (const bstring *)&be_const_str_SERIAL_8E1, + NULL, + (const bstring *)&be_const_str_set_style_bg_color, + (const bstring *)&be_const_str_end, + (const bstring *)&be_const_str__read, + (const bstring *)&be_const_str_cos, + (const bstring *)&be_const_str_codedump, + (const bstring *)&be_const_str__X23init_X2Ebat, + (const bstring *)&be_const_str_get_battery_chargin_status, + (const bstring *)&be_const_str__X2Ebec, + (const bstring *)&be_const_str_set_dcdc_enable, + NULL, + (const bstring *)&be_const_str_ctor, + (const bstring *)&be_const_str_digital_read, + (const bstring *)&be_const_str_close, + (const bstring *)&be_const_str__X2F, + (const bstring *)&be_const_str_cosh, + (const bstring *)&be_const_str_I2C_Driver, + (const bstring *)&be_const_str_read24, + (const bstring *)&be_const_str__write, + (const bstring *)&be_const_str__X23display_X2Eini, + (const bstring *)&be_const_str_get_bat_power, + (const bstring *)&be_const_str_pin_mode, + (const bstring *)&be_const_str__, + (const bstring *)&be_const_str_scale_uint, + (const bstring *)&be_const_str_WS2812_GRB, + (const bstring *)&be_const_str_AudioOutput, + (const bstring *)&be_const_str_animate, (const bstring *)&be_const_str__X3F, - (const bstring *)&be_const_str_base_class + (const bstring *)&be_const_str_id, + (const bstring *)&be_const_str_arg_name, + (const bstring *)&be_const_str_internal_error, + (const bstring *)&be_const_str_serial, + NULL, + NULL, + (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__begin_transmission, + (const bstring *)&be_const_str__X2Ep1, + (const bstring *)&be_const_str_engine, + (const bstring *)&be_const_str__def, + (const bstring *)&be_const_str_get_pixel_color, + (const bstring *)&be_const_str__X3C_X3D, + (const bstring *)&be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker, + (const bstring *)&be_const_str__X3D_X3D, + (const bstring *)&be_const_str_can_show, + (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_response_append, + (const bstring *)&be_const_str_CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting, + (const bstring *)&be_const_str_content_send, + (const bstring *)&be_const_str_create_segment, + (const bstring *)&be_const_str_duration, + (const bstring *)&be_const_str_get_height, + (const bstring *)&be_const_str_delete_all_configs, + (const bstring *)&be_const_str_reset_search, + (const bstring *)&be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson, + (const bstring *)&be_const_str_, + (const bstring *)&be_const_str_b, + (const bstring *)&be_const_str_SERIAL_5E1, + (const bstring *)&be_const_str_SERIAL_6E2, + (const bstring *)&be_const_str_read13, + (const bstring *)&be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, + (const bstring *)&be_const_str_publish_result, + (const bstring *)&be_const_str_get_bat_current, + NULL, + (const bstring *)&be_const_str_ceil, + (const bstring *)&be_const_str_autorun, + (const bstring *)&be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032, + (const bstring *)&be_const_str_set_text, + (const bstring *)&be_const_str__X3D_X3C_X3E_X21, + (const bstring *)&be_const_str_r, + (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X20, + (const bstring *)&be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str__X2Ep, + (const bstring *)&be_const_str__error, + (const bstring *)&be_const_str_lv, + (const bstring *)&be_const_str_flush, + (const bstring *)&be_const_str_AudioFileSource, + (const bstring *)&be_const_str_web_add_main_button, + (const bstring *)&be_const_str__X2Elen, + (const bstring *)&be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map, + (const bstring *)&be_const_str_compile, + (const bstring *)&be_const_str_CFG_X3A_X20running_X20, + (const bstring *)&be_const_str_compress, + NULL, + (const bstring *)&be_const_str_pin_used, + (const bstring *)&be_const_str__X2Ebe, + (const bstring *)&be_const_str_SERIAL_8O1, + (const bstring *)&be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27, + (const bstring *)&be_const_str_EVENT_DRAW_PART_END, + NULL, + NULL, + (const bstring *)&be_const_str_button_pressed, + (const bstring *)&be_const_str_atleast1, + (const bstring *)&be_const_str_add_anim, + (const bstring *)&be_const_str_count, + (const bstring *)&be_const_str__X25s_X2Eautoconf, + (const bstring *)&be_const_str_False, + (const bstring *)&be_const_str_time_str, + (const bstring *)&be_const_str__X26lt_X3BNone_X26gt_X3B, + (const bstring *)&be_const_str_allocated, + NULL, + (const bstring *)&be_const_str_cb_obj, + (const bstring *)&be_const_str__X21_X3D, + (const bstring *)&be_const_str__X3Cselect_X20name_X3D_X27zip_X27_X3E, + (const bstring *)&be_const_str_OneWire, + (const bstring *)&be_const_str_classof, + (const bstring *)&be_const_str_json, + (const bstring *)&be_const_str_True, + (const bstring *)&be_const_str__X2B, + (const bstring *)&be_const_str_decompress, + (const bstring *)&be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s, + (const bstring *)&be_const_str_lv_event, + (const bstring *)&be_const_str_counters, + (const bstring *)&be_const_str_pc, + (const bstring *)&be_const_str__X2Esize, + NULL, + (const bstring *)&be_const_str__X5B, + (const bstring *)&be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E, + (const bstring *)&be_const_str_connection_error, + (const bstring *)&be_const_str_classname, + (const bstring *)&be_const_str_AudioGeneratorWAV, + (const bstring *)&be_const_str_AudioGenerator, + (const bstring *)&be_const_str_Parameter_X20error, + (const bstring *)&be_const_str_get_tasmota, + (const bstring *)&be_const_str_loop, + (const bstring *)&be_const_str__timers, + (const bstring *)&be_const_str_constructor_cb, + (const bstring *)&be_const_str_addr, + (const bstring *)&be_const_str__X2E, + (const bstring *)&be_const_str_RES_OK, + NULL, + (const bstring *)&be_const_str_OPTION_A, + NULL, + (const bstring *)&be_const_str_collect, + (const bstring *)&be_const_str_SERIAL_6O2, + (const bstring *)&be_const_str_AudioFileSourceFS, + (const bstring *)&be_const_str_show, + (const bstring *)&be_const_str__cmd, + (const bstring *)&be_const_str_SERIAL_7N2, + (const bstring *)&be_const_str_dirty, + (const bstring *)&be_const_str_SERIAL_7E2, + (const bstring *)&be_const_str__X3E, + (const bstring *)&be_const_str__X2F_X3Frst_X3D, + (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_EVENT_DRAW_PART_BEGIN, + (const bstring *)&be_const_str__persist_X2Ejson, + (const bstring *)&be_const_str_tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29, + (const bstring *)&be_const_str__X3Clambda_X3E }; static const struct bconststrtab m_const_string_table = { - .size = 360, - .count = 743, + .size = 359, + .count = 741, .table = m_string_table }; diff --git a/lib/libesp32/Berry/generate/be_fixed_be_class_tasmota.h b/lib/libesp32/Berry/generate/be_fixed_be_class_tasmota.h index dc2abcca8..05c140fe0 100644 --- a/lib/libesp32/Berry/generate/be_fixed_be_class_tasmota.h +++ b/lib/libesp32/Berry/generate/be_fixed_be_class_tasmota.h @@ -1,96 +1,93 @@ #include "be_constobj.h" static be_define_const_map_slots(be_class_tasmota_map) { - { be_const_key(gc, -1), be_const_closure(Tasmota_gc_closure) }, - { be_const_key(read_sensors, 7), be_const_func(l_read_sensors) }, - { be_const_key(_get_cb, -1), be_const_func(l_get_cb) }, - { be_const_key(response_append, 50), be_const_func(l_respAppend) }, - { be_const_key(try_rule, 74), be_const_closure(Tasmota_try_rule_closure) }, - { be_const_key(eth, -1), be_const_func(l_eth) }, - { be_const_key(find_key_i, -1), be_const_closure(Tasmota_find_key_i_closure) }, - { be_const_key(exec_tele, 73), be_const_closure(Tasmota_exec_tele_closure) }, - { be_const_key(remove_driver, 28), be_const_closure(Tasmota_remove_driver_closure) }, - { be_const_key(load, -1), be_const_closure(Tasmota_load_closure) }, - { be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) }, - { be_const_key(cmd_res, -1), be_const_var(0) }, - { be_const_key(time_str, 43), be_const_closure(Tasmota_time_str_closure) }, - { be_const_key(set_power, -1), be_const_func(l_setpower) }, - { be_const_key(yield, 20), be_const_func(l_yield) }, - { be_const_key(set_light, -1), be_const_closure(Tasmota_set_light_closure) }, - { be_const_key(find_op, 32), be_const_closure(Tasmota_find_op_closure) }, - { be_const_key(get_power, -1), be_const_func(l_getpower) }, - { be_const_key(add_rule, -1), be_const_closure(Tasmota_add_rule_closure) }, - { be_const_key(cb_dispatch, -1), be_const_closure(Tasmota_cb_dispatch_closure) }, - { be_const_key(global, -1), be_const_var(1) }, - { be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) }, - { be_const_key(remove_cmd, 10), be_const_closure(Tasmota_remove_cmd_closure) }, - { be_const_key(millis, 18), be_const_func(l_millis) }, - { be_const_key(publish, 69), be_const_func(l_publish) }, - { be_const_key(_drivers, -1), be_const_var(2) }, - { be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) }, - { be_const_key(time_dump, -1), be_const_func(l_time_dump) }, - { be_const_key(web_send, -1), be_const_func(l_webSend) }, - { be_const_key(hs2rgb, -1), be_const_closure(Tasmota_hs2rgb_closure) }, - { be_const_key(memory, -1), be_const_func(l_memory) }, - { be_const_key(gen_cb, 0), be_const_closure(Tasmota_gen_cb_closure) }, - { be_const_key(rtc, -1), be_const_func(l_rtc) }, - { be_const_key(get_option, -1), be_const_func(l_getoption) }, - { be_const_key(add_cmd, -1), be_const_closure(Tasmota_add_cmd_closure) }, - { be_const_key(init, -1), be_const_closure(Tasmota_init_closure) }, - { be_const_key(_timers, -1), be_const_var(3) }, - { be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) }, - { be_const_key(wd, -1), be_const_var(4) }, - { be_const_key(exec_cmd, -1), be_const_closure(Tasmota_exec_cmd_closure) }, - { be_const_key(wire_scan, -1), be_const_closure(Tasmota_wire_scan_closure) }, - { be_const_key(_global_def, 61), be_const_comptr(&be_tasmota_global_struct) }, - { be_const_key(resp_cmnd_failed, 11), be_const_func(l_respCmndFailed) }, - { be_const_key(chars_in_string, -1), be_const_closure(Tasmota_chars_in_string_closure) }, - { be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) }, - { be_const_key(_debug_present, 4), be_const_var(5) }, - { be_const_key(cmd, -1), be_const_closure(Tasmota_cmd_closure) }, - { be_const_key(_cb, -1), be_const_var(6) }, - { be_const_key(remove_rule, -1), be_const_closure(Tasmota_remove_rule_closure) }, { be_const_key(run_deferred, -1), be_const_closure(Tasmota_run_deferred_closure) }, - { be_const_key(strftime, -1), be_const_func(l_strftime) }, - { be_const_key(add_driver, 3), be_const_closure(Tasmota_add_driver_closure) }, - { be_const_key(kv, 60), be_const_closure(Tasmota_kv_closure) }, - { be_const_key(set_timer, 58), be_const_closure(Tasmota_set_timer_closure) }, - { be_const_key(scale_uint, -1), be_const_func(l_scaleuint) }, - { be_const_key(remove_timer, -1), be_const_closure(Tasmota_remove_timer_closure) }, - { be_const_key(settings, 49), be_const_var(7) }, - { be_const_key(arch, -1), be_const_func(l_arch) }, - { be_const_key(_ccmd, 64), be_const_var(8) }, - { be_const_key(wire1, 46), be_const_var(9) }, - { be_const_key(exec_rules, 66), be_const_closure(Tasmota_exec_rules_closure) }, - { be_const_key(strptime, -1), be_const_func(l_strptime) }, - { be_const_key(_cmd, -1), be_const_func(l_cmd) }, - { be_const_key(resp_cmnd_error, -1), be_const_func(l_respCmndError) }, - { be_const_key(time_reached, -1), be_const_func(l_timereached) }, - { be_const_key(_rules, -1), be_const_var(10) }, - { be_const_key(publish_result, -1), be_const_func(l_publish_result) }, - { be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) }, - { be_const_key(get_switch, -1), be_const_func(l_getswitch) }, - { be_const_key(delay, 71), be_const_func(l_delay) }, + { be_const_key(publish, -1), be_const_func(l_publish) }, + { be_const_key(try_rule, 5), be_const_closure(Tasmota_try_rule_closure) }, + { be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) }, + { be_const_key(get_free_heap, 47), be_const_func(l_getFreeHeap) }, + { be_const_key(eth, 56), be_const_func(l_eth) }, + { be_const_key(set_power, -1), be_const_func(l_setpower) }, + { be_const_key(exec_rules, -1), be_const_closure(Tasmota_exec_rules_closure) }, + { be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) }, + { be_const_key(chars_in_string, 55), be_const_closure(Tasmota_chars_in_string_closure) }, + { be_const_key(hs2rgb, -1), be_const_closure(Tasmota_hs2rgb_closure) }, + { be_const_key(time_str, 0), be_const_closure(Tasmota_time_str_closure) }, + { be_const_key(set_light, -1), be_const_closure(Tasmota_set_light_closure) }, + { be_const_key(response_append, 1), be_const_func(l_respAppend) }, + { be_const_key(gen_cb, -1), be_const_closure(Tasmota_gen_cb_closure) }, + { be_const_key(remove_driver, 50), be_const_closure(Tasmota_remove_driver_closure) }, + { be_const_key(event, -1), be_const_closure(Tasmota_event_closure) }, + { be_const_key(exec_cmd, 2), be_const_closure(Tasmota_exec_cmd_closure) }, + { be_const_key(rtc, 12), be_const_func(l_rtc) }, + { be_const_key(read_sensors, -1), be_const_func(l_read_sensors) }, { be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) }, - { be_const_key(wifi, -1), be_const_func(l_wifi) }, - { be_const_key(save, 15), be_const_func(l_save) }, - { be_const_key(log, 37), be_const_func(l_logInfo) }, + { be_const_key(set_timer, -1), be_const_closure(Tasmota_set_timer_closure) }, + { be_const_key(resp_cmnd_error, -1), be_const_func(l_respCmndError) }, + { be_const_key(exec_tele, -1), be_const_closure(Tasmota_exec_tele_closure) }, + { be_const_key(_global_def, -1), be_const_comptr(&be_tasmota_global_struct) }, + { be_const_key(cmd_res, -1), be_const_var(0) }, + { be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) }, + { be_const_key(add_driver, 14), be_const_closure(Tasmota_add_driver_closure) }, + { be_const_key(_timers, -1), be_const_var(1) }, + { be_const_key(add_rule, -1), be_const_closure(Tasmota_add_rule_closure) }, + { be_const_key(resp_cmnd_failed, -1), be_const_func(l_respCmndFailed) }, + { be_const_key(remove_rule, 9), be_const_closure(Tasmota_remove_rule_closure) }, + { be_const_key(web_send, 16), be_const_func(l_webSend) }, + { be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) }, + { be_const_key(remove_timer, 10), be_const_closure(Tasmota_remove_timer_closure) }, + { be_const_key(memory, 52), be_const_func(l_memory) }, + { be_const_key(global, 71), be_const_var(2) }, + { be_const_key(find_op, -1), be_const_closure(Tasmota_find_op_closure) }, + { be_const_key(yield, 60), be_const_func(l_yield) }, { be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) }, - { be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) }, - { be_const_key(get_light, 5), be_const_closure(Tasmota_get_light_closure) }, - { be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) }, - { be_const_key(wire2, -1), be_const_var(11) }, - { be_const_key(event, 34), be_const_closure(Tasmota_event_closure) }, + { be_const_key(get_option, -1), be_const_func(l_getoption) }, + { be_const_key(kv, 43), be_const_closure(Tasmota_kv_closure) }, + { be_const_key(wire_scan, -1), be_const_closure(Tasmota_wire_scan_closure) }, + { be_const_key(wifi, 37), be_const_func(l_wifi) }, + { be_const_key(_cmd, -1), be_const_func(l_cmd) }, + { be_const_key(gc, -1), be_const_closure(Tasmota_gc_closure) }, + { be_const_key(get_power, -1), be_const_func(l_getpower) }, + { be_const_key(get_light, -1), be_const_closure(Tasmota_get_light_closure) }, + { be_const_key(time_dump, -1), be_const_func(l_time_dump) }, + { be_const_key(settings, -1), be_const_var(3) }, + { be_const_key(cmd, 62), be_const_closure(Tasmota_cmd_closure) }, + { be_const_key(load, -1), be_const_closure(Tasmota_load_closure) }, + { be_const_key(strptime, -1), be_const_func(l_strptime) }, + { be_const_key(_ccmd, -1), be_const_var(4) }, + { be_const_key(find_key_i, 25), be_const_closure(Tasmota_find_key_i_closure) }, + { be_const_key(delay, -1), be_const_func(l_delay) }, + { be_const_key(time_reached, -1), be_const_func(l_timereached) }, + { be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) }, + { be_const_key(save, 36), be_const_func(l_save) }, + { be_const_key(millis, -1), be_const_func(l_millis) }, + { be_const_key(wire2, -1), be_const_var(5) }, + { be_const_key(wire1, 72), be_const_var(6) }, + { be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) }, + { be_const_key(scale_uint, 51), be_const_func(l_scaleuint) }, + { be_const_key(get_switch, -1), be_const_func(l_getswitch) }, + { be_const_key(_debug_present, -1), be_const_var(7) }, + { be_const_key(publish_result, -1), be_const_func(l_publish_result) }, + { be_const_key(_drivers, -1), be_const_var(8) }, + { be_const_key(add_cmd, -1), be_const_closure(Tasmota_add_cmd_closure) }, + { be_const_key(strftime, -1), be_const_func(l_strftime) }, + { be_const_key(log, -1), be_const_func(l_logInfo) }, + { be_const_key(arch, -1), be_const_func(l_arch) }, + { be_const_key(resp_cmnd_done, 74), be_const_func(l_respCmndDone) }, + { be_const_key(_rules, 38), be_const_var(9) }, + { be_const_key(remove_cmd, -1), be_const_closure(Tasmota_remove_cmd_closure) }, + { be_const_key(init, -1), be_const_closure(Tasmota_init_closure) }, + { be_const_key(wd, 53), be_const_var(10) }, }; static be_define_const_map( be_class_tasmota_map, - 80 + 77 ); BE_EXPORT_VARIABLE be_define_const_class( be_class_tasmota, - 12, + 11, NULL, Tasmota ); diff --git a/lib/libesp32/Berry/generate/be_fixed_cb.h b/lib/libesp32/Berry/generate/be_fixed_cb.h new file mode 100644 index 000000000..ef458f363 --- /dev/null +++ b/lib/libesp32/Berry/generate/be_fixed_cb.h @@ -0,0 +1,18 @@ +#include "be_constobj.h" + +static be_define_const_map_slots(m_libcb_map) { + { be_const_key(get_cb_list, -1), be_const_func(be_cb_get_cb_list) }, + { be_const_key(gen_cb, -1), be_const_func(be_cb_gen_cb) }, +}; + +static be_define_const_map( + m_libcb_map, + 2 +); + +static be_define_const_module( + m_libcb, + "cb" +); + +BE_EXPORT_VARIABLE be_define_const_native_module(cb); diff --git a/lib/libesp32/Berry/src/be_exec.c b/lib/libesp32/Berry/src/be_exec.c index 7b741e4ff..14dbe903c 100644 --- a/lib/libesp32/Berry/src/be_exec.c +++ b/lib/libesp32/Berry/src/be_exec.c @@ -393,10 +393,7 @@ void be_stack_expansion(bvm *vm, int n) stack_resize(vm, size + 1); be_raise(vm, "runtime_error", STACK_OVER_MSG(BE_STACK_TOTAL_MAX)); } -#if BE_USE_OBSERVABILITY_HOOK - if (vm->obshook != NULL) - (*vm->obshook)(vm, BE_OBS_STACK_RESIZE_START, size * sizeof(bvalue), (size + n) * sizeof(bvalue)); -#endif + if (vm->obshook != NULL) (*vm->obshook)(vm, BE_OBS_STACK_RESIZE_START, size * sizeof(bvalue), (size + n) * sizeof(bvalue)); stack_resize(vm, size + n); } diff --git a/lib/libesp32/Berry/src/be_gc.c b/lib/libesp32/Berry/src/be_gc.c index b3cf7ab98..8d19affb1 100644 --- a/lib/libesp32/Berry/src/be_gc.c +++ b/lib/libesp32/Berry/src/be_gc.c @@ -544,10 +544,7 @@ void be_gc_collect(bvm *vm) vm->counter_gc_kept = 0; vm->counter_gc_freed = 0; #endif -#if BE_USE_OBSERVABILITY_HOOK - if (vm->obshook != NULL) - (*vm->obshook)(vm, BE_OBS_GC_START, vm->gc.usage); -#endif + if (vm->obshook != NULL) (*vm->obshook)(vm, BE_OBS_GC_START, vm->gc.usage); /* step 1: set root-set reference objects to unscanned */ premark_internal(vm); /* object internal the VM */ premark_global(vm); /* global objects */ @@ -564,8 +561,5 @@ void be_gc_collect(bvm *vm) reset_fixedlist(vm); /* step 5: calculate the next GC threshold */ vm->gc.threshold = next_threshold(vm->gc); -#if BE_USE_OBSERVABILITY_HOOK - if (vm->obshook != NULL) - (*vm->obshook)(vm, BE_OBS_GC_END, vm->gc.usage, vm->counter_gc_kept, vm->counter_gc_freed); -#endif + if (vm->obshook != NULL) (*vm->obshook)(vm, BE_OBS_GC_END, vm->gc.usage, vm->counter_gc_kept, vm->counter_gc_freed); } diff --git a/lib/libesp32/Berry/src/be_vm.c b/lib/libesp32/Berry/src/be_vm.c index 26c15a1a3..96329e898 100644 --- a/lib/libesp32/Berry/src/be_vm.c +++ b/lib/libesp32/Berry/src/be_vm.c @@ -55,7 +55,7 @@ #define COUNTER_HOOK() #endif -#if BE_USE_PERF_COUNTERS && BE_USE_OBSERVABILITY_HOOK +#if BE_USE_PERF_COUNTERS #define VM_HEARTBEAT() \ if ((vm->counter_ins & ((1<<(BE_VM_OBSERVABILITY_SAMPLING - 1))-1) ) == 0) { /* call every 2^BE_VM_OBSERVABILITY_SAMPLING instructions */ \ if (vm->obshook != NULL) \ @@ -461,9 +461,7 @@ BERRY_API bvm* be_vm_new(void) be_gc_setpause(vm, 1); be_loadlibs(vm); vm->compopt = 0; -#if BE_USE_OBSERVABILITY_HOOK vm->obshook = NULL; -#endif #if BE_USE_PERF_COUNTERS vm->counter_ins = 0; vm->counter_enter = 0; @@ -1269,7 +1267,5 @@ BERRY_API void be_set_obs_hook(bvm *vm, bobshook hook) (void)vm; /* avoid comiler warning */ (void)hook; /* avoid comiler warning */ -#if BE_USE_OBSERVABILITY_HOOK vm->obshook = hook; -#endif } diff --git a/lib/libesp32/Berry/src/be_vm.h b/lib/libesp32/Berry/src/be_vm.h index 4d98c590f..19d745a7c 100644 --- a/lib/libesp32/Berry/src/be_vm.h +++ b/lib/libesp32/Berry/src/be_vm.h @@ -101,9 +101,7 @@ struct bvm { blist *registry; /* registry list */ struct bgc gc; bbyte compopt; /* compilation options */ -#if BE_USE_OBSERVABILITY_HOOK bobshook obshook; -#endif #if BE_USE_PERF_COUNTERS uint32_t counter_ins; /* instructions counter */ uint32_t counter_enter; /* counter for times the VM was entered */ diff --git a/lib/libesp32/Berry/src/berry.h b/lib/libesp32/Berry/src/berry.h index e69a3bbe8..68f1efd4d 100644 --- a/lib/libesp32/Berry/src/berry.h +++ b/lib/libesp32/Berry/src/berry.h @@ -402,6 +402,7 @@ typedef void(*bntvhook)(bvm *vm, bhookinfo *info); typedef void(*bobshook)(bvm *vm, int event, ...); enum beobshookevents { + BE_OBS_PCALL_ERROR, /* called when be_callp() returned an error, most likely an exception */ BE_OBS_GC_START, /* start of GC, arg = allocated size */ BE_OBS_GC_END, /* end of GC, arg = allocated size */ BE_OBS_VM_HEARTBEAT, /* VM heartbeat called every million instructions */ diff --git a/lib/libesp32/berry_mapping/library.json b/lib/libesp32/berry_mapping/library.json new file mode 100644 index 000000000..6bcf119fa --- /dev/null +++ b/lib/libesp32/berry_mapping/library.json @@ -0,0 +1,17 @@ +{ + "name": "Berry mapping to C", + "version": "1.0", + "description": "Mapping to C functions", + "license": "MIT", + "homepage": "https://github.com/arendst/Tasmota", + "frameworks": "*", + "platforms": "*", + "authors": + { + "name": "Stephan Hadinger", + "maintainer": true + }, + "build": { + "flags": [ "-I$PROJECT_DIR/include" ] + } + } \ No newline at end of file diff --git a/lib/libesp32/berry_mapping/src/be_cb_module.c b/lib/libesp32/berry_mapping/src/be_cb_module.c new file mode 100644 index 000000000..191fe240d --- /dev/null +++ b/lib/libesp32/berry_mapping/src/be_cb_module.c @@ -0,0 +1,171 @@ +/******************************************************************** + * Callback module + * + * To use: `import cb` + * + *******************************************************************/ +#include "be_constobj.h" + +#include "be_mapping.h" +#include "be_gc.h" +#include "be_exec.h" +#include "be_vm.h" + +/*********************************************************************************************\ + * Callback structures + * + * We allow 4 parameters, or 3 if method (first arg is `self`) + * This could be extended if needed +\*********************************************************************************************/ +typedef int32_t (*berry_callback_t)(int32_t v0, int32_t v1, int32_t v2, int32_t v3); +static int32_t call_berry_cb(int32_t num, int32_t v0, int32_t v1, int32_t v2, int32_t v3); + +#define BERRY_CB(n) int32_t berry_cb_##n(int32_t v0, int32_t v1, int32_t v2, int32_t v3) { return call_berry_cb(n, v0, v1, v2, v3); } +// list the callbacks +BERRY_CB(0); +BERRY_CB(1); +BERRY_CB(2); +BERRY_CB(3); +BERRY_CB(4); +BERRY_CB(5); +BERRY_CB(6); +BERRY_CB(7); +BERRY_CB(8); +BERRY_CB(9); +BERRY_CB(10); +BERRY_CB(11); +BERRY_CB(12); +BERRY_CB(13); +BERRY_CB(14); +BERRY_CB(15); +BERRY_CB(16); +BERRY_CB(17); +BERRY_CB(18); +BERRY_CB(19); + +// array of callbacks +static const berry_callback_t berry_callback_array[BE_MAX_CB] = { + berry_cb_0, + berry_cb_1, + berry_cb_2, + berry_cb_3, + berry_cb_4, + berry_cb_5, + berry_cb_6, + berry_cb_7, + berry_cb_8, + berry_cb_9, + berry_cb_10, + berry_cb_11, + berry_cb_12, + berry_cb_13, + berry_cb_14, + berry_cb_15, + berry_cb_16, + berry_cb_17, + berry_cb_18, + berry_cb_19, +}; + +typedef struct be_callback_hook { + bvm *vm; + bgcobject *f; +} be_callback_hook; + +static be_callback_hook be_cb_hooks[BE_MAX_CB] = {0}; + +/*********************************************************************************************\ + * `gen_cb`: Generate a new callback + * + * arg1: function (or closure) +\*********************************************************************************************/ +static int32_t be_cb_gen_cb(bvm *vm) { + int32_t top = be_top(vm); + if (top >= 1 && be_isfunction(vm, 1)) { + // find first available slot + int32_t slot; + for (slot = 0; slot < BE_MAX_CB; slot++) { + if (be_cb_hooks[slot].f == NULL) break; + } + bvalue *v = be_indexof(vm, 1); + if (slot < BE_MAX_CB) { + // found a free slot + bgcobject * f = v->v.gc; + // mark the function as non-gc + be_gc_fix_set(vm, f, btrue); + // record pointers + be_cb_hooks[slot].vm = vm; + be_cb_hooks[slot].f = f; + be_pushcomptr(vm, (void*) berry_callback_array[slot]); + be_return(vm); + } else { + be_raise(vm, "internal_error", "no more callbacks available, increase BE_MAX_CB"); + } + } + be_raise(vm, "value_error", "arg must be a function"); +} + +/*********************************************************************************************\ + * `get_cb_list`: Return the list of callbacks for this vm + * +\*********************************************************************************************/ +static int32_t be_cb_get_cb_list(bvm *vm) { + be_newobject(vm, "list"); + int32_t i; + for (uint32_t i=0; i < BE_MAX_CB; i++) { + if (be_cb_hooks[i].vm) { + if (vm == be_cb_hooks[i].vm) { // make sure it corresponds to this vm + be_pushcomptr(vm, be_cb_hooks[i].f); + be_data_push(vm, -2); + be_pop(vm, 1); + } + } else { + break; + } + } + be_pop(vm, 1); + be_return(vm); +} + +/*********************************************************************************************\ + * Callback structures + * + * We allow 4 parameters, or 3 if method (first arg is `self`) + * This could be extended if needed +\*********************************************************************************************/ +static int32_t call_berry_cb(int32_t num, int32_t v0, int32_t v1, int32_t v2, int32_t v3) { + // call berry cb dispatcher + int32_t ret = 0; + // retrieve vm and function + if (num < 0 || num >= BE_MAX_CB || be_cb_hooks[num].vm == NULL) return 0; // invalid call, avoid a crash + + bvm * vm = be_cb_hooks[num].vm; + bgcobject * f = be_cb_hooks[num].f; + + // push function (don't check type) + bvalue *top = be_incrtop(vm); + var_setobj(top, f->type, f); + // push args + be_pushint(vm, v0); + be_pushint(vm, v1); + be_pushint(vm, v2); + be_pushint(vm, v3); + + ret = be_pcall(vm, 4); // 4 arguments + if (ret != 0) { + if (vm->obshook != NULL) (*vm->obshook)(vm, BE_OBS_PCALL_ERROR); + be_pop(vm, be_top(vm)); // clear Berry stack + return 0; + } + ret = be_toint(vm, -5); + be_pop(vm, 5); // remove result + return ret; +} + +/* @const_object_info_begin +module cb (scope: global) { + gen_cb, func(be_cb_gen_cb) + get_cb_list, func(be_cb_get_cb_list) +} +@const_object_info_end */ +#include "../../Berry/generate/be_fixed_cb.h" diff --git a/lib/libesp32/berry_mapping/src/be_mapping.h b/lib/libesp32/berry_mapping/src/be_mapping.h new file mode 100644 index 000000000..850cd08c0 --- /dev/null +++ b/lib/libesp32/berry_mapping/src/be_mapping.h @@ -0,0 +1,10 @@ + + +#ifndef __BE_MAPPING__ +#define __BE_MAPPING__ + +// include this header to force compilation fo this module + +#define BE_MAX_CB 20 // max number of callbacks, each callback requires a distinct address + +#endif // __BE_MAPPING__ diff --git a/tasmota/xdrv_52_0_berry_struct.ino b/tasmota/xdrv_52_0_berry_struct.ino index fe09b3c84..760358ab0 100644 --- a/tasmota/xdrv_52_0_berry_struct.ino +++ b/tasmota/xdrv_52_0_berry_struct.ino @@ -23,6 +23,7 @@ #include #include +#include "be_mapping.h" #include "re1.5.h" /*********************************************************************************************\ diff --git a/tasmota/xdrv_52_1_berry_native.ino b/tasmota/xdrv_52_1_berry_native.ino index 970d26c48..98757b730 100644 --- a/tasmota/xdrv_52_1_berry_native.ino +++ b/tasmota/xdrv_52_1_berry_native.ino @@ -45,8 +45,11 @@ extern "C" { * Responds to virtual constants \*********************************************************************************************/ extern "C" { - // Clear all elements on the stack - void be_pop_all(bvm *vm) { + #include "be_vm.h" + // Call error handler and pop all from stack + void be_error_pop_all(bvm *vm); + void be_error_pop_all(bvm *vm) { + if (vm->obshook != NULL) (*vm->obshook)(vm, BE_OBS_PCALL_ERROR); be_pop(vm, be_top(vm)); // clear Berry stack } @@ -267,113 +270,6 @@ extern "C" { * Warning, the following expect all parameters to be 32 bits wide \*********************************************************************************************/ -extern "C" { - - /*********************************************************************************************\ - * Callback structures - * - * We allow 4 parameters, or 3 if method (first arg is `self`) - * This could be extended if needed - \*********************************************************************************************/ - typedef int32_t (*berry_callback_t)(int32_t v0, int32_t v1, int32_t v2, int32_t v3); - - extern void BerryDumpErrorAndClear(bvm *vm, bool berry_console); - - /*********************************************************************************************\ - * Callback structures - * - * We allow 4 parameters, or 3 if method (first arg is `self`) - * This could be extended if needed - \*********************************************************************************************/ - int32_t call_berry_cb(int32_t num, int32_t v0, int32_t v1, int32_t v2, int32_t v3) { - // call berry cb dispatcher - int32_t ret = 0; - // get the 'tasmota' object (global) and call 'cb_dispatch' - be_getglobal(berry.vm, PSTR("tasmota")); - if (!be_isnil(berry.vm, -1)) { - be_getmethod(berry.vm, -1, PSTR("cb_dispatch")); - - if (!be_isnil(berry.vm, -1)) { - be_pushvalue(berry.vm, -2); // add instance as first arg - // push all args as ints (may be revised) - be_pushint(berry.vm, num); - be_pushint(berry.vm, v0); - be_pushint(berry.vm, v1); - be_pushint(berry.vm, v2); - be_pushint(berry.vm, v3); - - ret = be_pcall(berry.vm, 6); // 5 arguments - if (ret != 0) { - BerryDumpErrorAndClear(berry.vm, false); // log in Tasmota console only - be_pop_all(berry.vm); // clear Berry stack - return 0; - } - be_pop(berry.vm, 6); - - if (be_isint(berry.vm, -1) || be_isnil(berry.vm, -1)) { // sanity check - if (be_isint(berry.vm, -1)) { - ret = be_toint(berry.vm, -1); - } - // All good, we can proceed - be_pop(berry.vm, 2); // remove tasmota instance and result - return ret; - } - } - be_pop(berry.vm, 1); - } - be_pop(berry.vm, 1); - AddLog(LOG_LEVEL_ERROR, PSTR(D_LOG_BERRY "can't call 'tasmota.cb_dispatch'")); - return 0; - } - - #define BERRY_CB(n) int32_t berry_cb_##n(int32_t v0, int32_t v1, int32_t v2, int32_t v3) { return call_berry_cb(n, v0, v1, v2, v3); } - // list the callbacks - BERRY_CB(0); - BERRY_CB(1); - BERRY_CB(2); - BERRY_CB(3); - BERRY_CB(4); - BERRY_CB(5); - BERRY_CB(6); - BERRY_CB(7); - BERRY_CB(8); - BERRY_CB(9); - BERRY_CB(10); - BERRY_CB(11); - BERRY_CB(12); - BERRY_CB(13); - BERRY_CB(14); - BERRY_CB(15); - BERRY_CB(16); - BERRY_CB(17); - BERRY_CB(18); - BERRY_CB(19); - - // array of callbacks - berry_callback_t berry_callback_array[] { - berry_cb_0, - berry_cb_1, - berry_cb_2, - berry_cb_3, - berry_cb_4, - berry_cb_5, - berry_cb_6, - berry_cb_7, - berry_cb_8, - berry_cb_9, - berry_cb_10, - berry_cb_11, - berry_cb_12, - berry_cb_13, - berry_cb_14, - berry_cb_15, - berry_cb_16, - berry_cb_17, - berry_cb_18, - berry_cb_19, - }; -} - /*********************************************************************************************\ * Automatically parse Berry stack and call the C function accordingly * diff --git a/tasmota/xdrv_52_3_berry_tasmota.ino b/tasmota/xdrv_52_3_berry_tasmota.ino index cfc847e7a..a9d0ad734 100644 --- a/tasmota/xdrv_52_3_berry_tasmota.ino +++ b/tasmota/xdrv_52_3_berry_tasmota.ino @@ -26,25 +26,25 @@ const uint32_t BERRY_MAX_LOGS = 16; // max number of print output recorded when outside of REPL, used to avoid infinite grow of logs const uint32_t BERRY_MAX_REPL_LOGS = 1024; // max number of print output recorded when inside REPL -/*********************************************************************************************\ - * Return C callback from index - * -\*********************************************************************************************/ -extern "C" { - int32_t l_get_cb(struct bvm *vm); - int32_t l_get_cb(struct bvm *vm) { - int32_t argc = be_top(vm); // Get the number of arguments - if (argc >= 2 && be_isint(vm, 2)) { - int32_t idx = be_toint(vm, 2); - if (idx >= 0 && idx < ARRAY_SIZE(berry_callback_array)) { - const berry_callback_t c_ptr = berry_callback_array[idx]; - be_pushcomptr(vm, (void*) c_ptr); - be_return(vm); - } - } - be_raise(vm, kTypeError, nullptr); - } -} +// /*********************************************************************************************\ +// * Return C callback from index +// * +// \*********************************************************************************************/ +// extern "C" { +// extern int32_t be_cb__get_cb(struct bvm *vm); +// int32_t be_cb__get_cb(struct bvm *vm) { +// int32_t argc = be_top(vm); // Get the number of arguments +// if (argc >= 2 && be_isint(vm, 2)) { +// int32_t idx = be_toint(vm, 2); +// if (idx >= 0 && idx < ARRAY_SIZE(berry_callback_array)) { +// const berry_callback_t c_ptr = berry_callback_array[idx]; +// be_pushcomptr(vm, (void*) c_ptr); +// be_return(vm); +// } +// } +// be_raise(vm, kTypeError, nullptr); +// } +// } /*********************************************************************************************\ * Native functions mapped to Berry functions diff --git a/tasmota/xdrv_52_9_berry.ino b/tasmota/xdrv_52_9_berry.ino index 84a4f698c..b48281fde 100644 --- a/tasmota/xdrv_52_9_berry.ino +++ b/tasmota/xdrv_52_9_berry.ino @@ -110,24 +110,6 @@ size_t callBerryGC(void) { return callBerryEventDispatcher(PSTR("gc"), nullptr, 0, nullptr); } -void BerryDumpErrorAndClear(bvm *vm, bool berry_console); -void BerryDumpErrorAndClear(bvm *vm, bool berry_console) { - int32_t top = be_top(vm); - // check if we have two strings for an Exception - if (top >= 2 && be_isstring(vm, -1) && be_isstring(vm, -2)) { - if (berry_console) { - berry_log_C(PSTR(D_LOG_BERRY "Exception> '%s' - %s"), be_tostring(berry.vm, -2), be_tostring(berry.vm, -1)); - be_tracestack(vm); - top = be_top(vm); // update top after dump - } else { - AddLog(LOG_LEVEL_ERROR, PSTR(D_LOG_BERRY "Exception> '%s' - %s"), be_tostring(berry.vm, -2), be_tostring(berry.vm, -1)); - be_tracestack(vm); - } - } else { - be_dumpstack(vm); - } -} - // void callBerryMqttData(void) { // AddLog(LOG_LEVEL_INFO, D_LOG_BERRY "callBerryMqttData"); // if (nullptr == berry.vm) { return; } @@ -150,53 +132,6 @@ void BerryDumpErrorAndClear(bvm *vm, bool berry_console) { // checkBeTop(); // } -/* -// Call a method of a global object, with n args -// Before: stack must containt n args -// After: stack contains return value or nil if something wrong (args removes) -// returns true is successful, false if object or method not found -bool callMethodObjectWithArgs(const char * objname, const char * method, size_t argc) { - if (nullptr == berry.vm) { return false; } - int32_t top = be_top(berry.vm); - // stacks contains n x arg - be_getglobal(berry.vm, objname); - // stacks contains n x arg + object - if (!be_isnil(berry.vm, -1)) { - be_getmethod(berry.vm, -1, method); - // stacks contains n x arg + object + method - if (!be_isnil(berry.vm, -1)) { - // reshuffle the entire stack since we want: method + object + n x arg - be_pushvalue(berry.vm, -1); // add instance as first arg - // stacks contains n x arg + object + method + method - be_pushvalue(berry.vm, -3); // add instance as first arg - // stacks contains n x arg + object + method + method + object - // now move args 2 slots up to make room for method and object - for (uint32_t i = 1; i <= argc; i++) { - be_moveto(berry.vm, -4 - i, -2 - i); - } - // stacks contains free + free + n x arg + method + object - be_moveto(berry.vm, -2, -4 - argc); - be_moveto(berry.vm, -1, -3 - argc); - // stacks contains method + object + n x arg + method + object - be_pop(berry.vm, 2); - // stacks contains method + object + n x arg - be_pcall(berry.vm, argc + 1); - // stacks contains return_val + object + n x arg - be_pop(berry.vm, argc + 1); - // stacks contains return_val - return true; - } - be_pop(berry.vm, 1); // remove method - // stacks contains n x arg + object - } - // stacks contains n x arg + object - be_pop(berry.vm, argc + 1); // clear stack - be_pushnil(berry.vm); // put nil object - return false; -} -*/ - - // call the event dispatcher from Tasmota object // if data_len is non-zero, the event is also sent as raw `bytes()` object because the string may lose data int32_t callBerryEventDispatcher(const char *type, const char *cmd, int32_t idx, const char *payload, uint32_t data_len) { @@ -224,8 +159,7 @@ int32_t callBerryEventDispatcher(const char *type, const char *cmd, int32_t idx, } BrTimeoutReset(); if (ret != 0) { - BerryDumpErrorAndClear(vm, false); // log in Tasmota console only - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack return ret; } be_pop(vm, 5); @@ -252,6 +186,17 @@ void BerryObservability(bvm *vm, int event...) { static uint32_t gc_time = 0; switch (event) { + case BE_OBS_PCALL_ERROR: // error after be_pcall + { + int32_t top = be_top(vm); + // check if we have two strings for an Exception + if (top >= 2 && be_isstring(vm, -1) && be_isstring(vm, -2)) { + berry_log_C(PSTR(D_LOG_BERRY "Exception> '%s' - %s"), be_tostring(berry.vm, -2), be_tostring(berry.vm, -1)); + be_tracestack(vm); + } else { + be_dumpstack(vm); + } + } case BE_OBS_GC_START: { gc_time = millis(); @@ -331,21 +276,18 @@ void BerryInit(void) { ret_code1 = be_loadstring(berry.vm, berry_prog); if (ret_code1 != 0) { - BerryDumpErrorAndClear(berry.vm, false); - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack break; } // AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_BERRY "Berry code loaded, RAM used=%u"), be_gc_memcount(berry.vm)); ret_code2 = be_pcall(berry.vm, 0); if (ret_code1 != 0) { - BerryDumpErrorAndClear(berry.vm, false); - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack break; } // AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_BERRY "Berry code ran, RAM used=%u"), be_gc_memcount(berry.vm)); if (be_top(berry.vm) > 1) { - BerryDumpErrorAndClear(berry.vm, false); - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack } else { be_pop(berry.vm, 1); } @@ -389,8 +331,7 @@ void BrLoad(const char * script_name) { BrTimeoutStart(); if (be_pcall(berry.vm, 1) != 0) { - BerryDumpErrorAndClear(berry.vm, false); - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack return; } BrTimeoutReset(); @@ -495,8 +436,7 @@ void BrREPLRun(char * cmd) { } } if (BE_EXCEPTION == ret_code) { - BerryDumpErrorAndClear(berry.vm, true); - be_pop_all(berry.vm); // clear Berry stack + be_error_pop_all(berry.vm); // clear Berry stack // be_dumpstack(berry.vm); // char exception_s[120]; // ext_snprintf_P(exception_s, sizeof(exception_s), PSTR("%s: %s"), be_tostring(berry.vm, -2), be_tostring(berry.vm, -1));