From 93f8446f5e359c3955ec9e54cf701b60f6732c6d Mon Sep 17 00:00:00 2001
From: Stephan Hadinger
Date: Mon, 21 Mar 2022 19:35:57 +0100
Subject: [PATCH] Berry add int64 support
---
lib/libesp32/berry/default/be_modtab.c | 5 +
lib/libesp32/berry/gen.sh | 2 +-
lib/libesp32/berry/generate/be_const_strtab.h | 7 +
.../berry/generate/be_const_strtab_def.h | 2307 +++++++++--------
.../berry/generate/be_fixed_be_class_int64.h | 36 +
lib/libesp32/berry_int64/LICENSE | 19 +
lib/libesp32/berry_int64/library.json | 14 +
lib/libesp32/berry_int64/src/be_int64.h | 1 +
lib/libesp32/berry_int64/src/be_int64_class.c | 210 ++
lib/libesp32/berry_int64/tests/int64.be | 115 +
tasmota/my_user_config.h | 1 +
tasmota/xdrv_52_0_berry_struct.ino | 4 +
12 files changed, 1572 insertions(+), 1149 deletions(-)
create mode 100644 lib/libesp32/berry/generate/be_fixed_be_class_int64.h
create mode 100644 lib/libesp32/berry_int64/LICENSE
create mode 100644 lib/libesp32/berry_int64/library.json
create mode 100644 lib/libesp32/berry_int64/src/be_int64.h
create mode 100644 lib/libesp32/berry_int64/src/be_int64_class.c
create mode 100644 lib/libesp32/berry_int64/tests/int64.be
diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c
index b24dc9ec6..31fc27b58 100644
--- a/lib/libesp32/berry/default/be_modtab.c
+++ b/lib/libesp32/berry/default/be_modtab.c
@@ -189,6 +189,8 @@ be_extern_native_class(lv_wifi_arcs);
be_extern_native_class(lv_wifi_arcs_icon);
be_extern_native_class(lv_clock_icon);
+be_extern_native_class(int64);
+
BERRY_LOCAL bclass_array be_class_table = {
/* first list are direct classes */
&be_native_class(tasmota),
@@ -246,6 +248,9 @@ BERRY_LOCAL bclass_array be_class_table = {
#endif // USE_UFILESYS
&be_native_class(AudioOpusDecoder),
#endif // USE_I2S_AUDIO_BERRY
+#ifdef USE_BERRY_INT64
+ &be_native_class(int64),
+#endif
#if defined(USE_MI_ESP32) && !defined(USE_BLE_ESP32)
&be_native_class(MI32),
&be_native_class(BLE),
diff --git a/lib/libesp32/berry/gen.sh b/lib/libesp32/berry/gen.sh
index a19ff8f7b..7156e8719 100755
--- a/lib/libesp32/berry/gen.sh
+++ b/lib/libesp32/berry/gen.sh
@@ -1,2 +1,2 @@
#!/bin/bash
-python3 tools/pycoc/main.py -o generate src default ../berry_tasmota/src ../berry_mapping/src ../../libesp32_lvgl/lv_binding_berry/src ../../libesp32_lvgl/lv_binding_berry/generate -c default/berry_conf.h
+python3 tools/pycoc/main.py -o generate src default ../berry_tasmota/src ../berry_mapping/src ../berry_int64/src ../../libesp32_lvgl/lv_binding_berry/src ../../libesp32_lvgl/lv_binding_berry/generate -c default/berry_conf.h
diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h
index 81abe9a3c..a8bc34806 100644
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ b/lib/libesp32/berry/generate/be_const_strtab.h
@@ -132,6 +132,7 @@ extern const bcstring be_const_str__X23autoexec_X2Ebe;
extern const bcstring be_const_str__X23display_X2Eini;
extern const bcstring be_const_str__X23init_X2Ebat;
extern const bcstring be_const_str__X23preinit_X2Ebe;
+extern const bcstring be_const_str__X25;
extern const bcstring be_const_str__X2502d_X25s_X2502d;
extern const bcstring be_const_str__X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d;
extern const bcstring be_const_str__X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x;
@@ -139,9 +140,12 @@ extern const bcstring be_const_str__X25s_X2Eautoconf;
extern const bcstring be_const_str__X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B;
extern const bcstring be_const_str__X26lt_X3BNone_X26gt_X3B;
extern const bcstring be_const_str__X28_X29;
+extern const bcstring be_const_str__X2A;
extern const bcstring be_const_str__X2B;
extern const bcstring be_const_str__X2C;
extern const bcstring be_const_str__X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D;
+extern const bcstring be_const_str__X2D;
+extern const bcstring be_const_str__X2D_X2A;
extern const bcstring be_const_str__X2D_X2D_X3A_X2D_X2D;
extern const bcstring be_const_str__X2E;
extern const bcstring be_const_str__X2E_X2E;
@@ -440,6 +444,7 @@ extern const bcstring be_const_str_for;
extern const bcstring be_const_str_format;
extern const bcstring be_const_str_from_to;
extern const bcstring be_const_str_fromb64;
+extern const bcstring be_const_str_frombytes;
extern const bcstring be_const_str_fromptr;
extern const bcstring be_const_str_fromstring;
extern const bcstring be_const_str_full_state;
@@ -527,6 +532,7 @@ extern const bcstring be_const_str_instance;
extern const bcstring be_const_str_instance_X20required;
extern const bcstring be_const_str_instance_size;
extern const bcstring be_const_str_int;
+extern const bcstring be_const_str_int64;
extern const bcstring be_const_str_internal_error;
extern const bcstring be_const_str_introspect;
extern const bcstring be_const_str_invalid_X20GPIO_X20number;
@@ -852,6 +858,7 @@ extern const bcstring be_const_str_time_str;
extern const bcstring be_const_str_timer_cb;
extern const bcstring be_const_str_to_gamma;
extern const bcstring be_const_str_tob64;
+extern const bcstring be_const_str_tobytes;
extern const bcstring be_const_str_toint;
extern const bcstring be_const_str_tolower;
extern const bcstring be_const_str_tomap;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
index 33a2424d4..6a914d1dc 100644
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ b/lib/libesp32/berry/generate/be_const_strtab_def.h
@@ -1,888 +1,895 @@
-be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_screenshot);
-be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str_set_width);
-be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str__X2Ep);
-be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str_CT);
-be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_coord_arr);
-be_define_const_str(_X22, "\"", 655135397u, 0, 1, &be_const_str_scale_uint);
-be_define_const_str(_X22_X3A, "\":", 399167565u, 0, 2, &be_const_str_HTTP_POST);
-be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_add_anim);
-be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_set_hum);
-be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__available);
-be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_begin_multicast);
-be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str_destructor_cb);
-be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_LVG_X3A_X20object_X3A);
-be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str_AudioOpusDecoder);
-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_check_not_method);
-be_define_const_str(_X2508x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2D_X2504x_X2508x, "%08x-%04x-%04x-%04x-%04x%08x", 1670063141u, 0, 28, &be_const_str_sys);
-be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, NULL);
-be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27);
-be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str__timers);
-be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, NULL);
-be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str__def);
-be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27);
-be_define_const_str(_X2C_X22AXP192_X22_X3A_X7B_X22VBusVoltage_X22_X3A_X25_X2E3f_X2C_X22VBusCurrent_X22_X3A_X25_X2E1f_X2C_X22BattVoltage_X22_X3A_X25_X2E3f_X2C_X22BattCurrent_X22_X3A_X25_X2E1f_X2C_X22Temperature_X22_X3A_X25_X2E1f_X7D, ",\"AXP192\":{\"VBusVoltage\":%.3f,\"VBusCurrent\":%.1f,\"BattVoltage\":%.3f,\"BattCurrent\":%.1f,\"Temperature\":%.1f}", 2598755376u, 0, 106, &be_const_str__X2Ep1);
-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_draw_line);
-be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str__X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, &be_const_str__X3E);
-be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_xy);
-be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, NULL);
-be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str_create_matrix);
-be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj);
-be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, NULL);
-be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_AudioGeneratorMP3);
-be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str_create_segment);
-be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str___upper__);
-be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, &be_const_str__X2F);
-be_define_const_str(_X2F, "/", 705468254u, 0, 1, &be_const_str_get);
-be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str_input);
-be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str_RGBCT);
-be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str_lv_module_init);
-be_define_const_str(_X2Flights_X2F, "/lights/", 2370247908u, 0, 8, &be_const_str_rotate);
-be_define_const_str(_X2Fstate_X2F, "/state/", 4226179876u, 0, 7, NULL);
-be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_constructor_cb);
-be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_Restart_X201);
-be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_energy_struct);
-be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_id);
-be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str_ct);
-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_CFG_X3A_X20ran_X20_X20);
-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_load);
-be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_splash_remove);
-be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, &be_const_str_arc_dsc);
-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, "", 3546571739u, 0, 11, &be_const_str_read8);
+be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_fast_loop_enabled);
+be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str__buffer);
+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_set_matrix_pixel_color);
+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_SERIAL_6E2);
+be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_json_fdump);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3EAuto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 2058443583u, 0, 110, &be_const_str_draw_line);
+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, "