diff --git a/lib/libesp32/berry/LICENSE b/lib/libesp32/berry/LICENSE
deleted file mode 100644
index 609969272..000000000
--- a/lib/libesp32/berry/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2018-2020 Guan Wenliang
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/lib/libesp32/berry/Makefile b/lib/libesp32/berry/Makefile
deleted file mode 100644
index f9d61125d..000000000
--- a/lib/libesp32/berry/Makefile
+++ /dev/null
@@ -1,105 +0,0 @@
-CFLAGS = -Wall -Wextra -std=c99 -pedantic-errors -O2
-LIBS = -lm
-TARGET = berry
-CC ?= gcc
-MKDIR = mkdir
-LFLAGS =
-
-INCPATH = src default
-SRCPATH = src default
-GENERATE = generate
-CONFIG = default/berry_conf.h
-COC = tools/coc/coc
-PY = python3
-PYCOC = tools/pycoc/main.py
-CONST_TAB = $(GENERATE)/be_const_strtab.h
-MAKE_COC = $(MAKE) -C tools/coc
-
-ifeq ($(OS), Windows_NT) # Windows
- CFLAGS += -Wno-format # for "%I64d" warning
- LFLAGS += -Wl,--out-implib,berry.lib # export symbols lib for dll linked
- TARGET := $(TARGET).exe
- COC := $(COC).exe
- PY := $(PY).exe
-else
- CFLAGS += -DUSE_READLINE_LIB
- LIBS += -lreadline -ldl
- OS := $(shell uname)
- ifeq ($(OS), Linux)
- LFLAGS += -Wl,--export-dynamic
- endif
-endif
-
-ifneq ($(V), 1)
- Q=@
- MSG=@echo
- MAKE_COC += -s Q=$(Q)
-else
- MSG=@true
-endif
-
-ifeq ($(TEST), 1)
- CFLAGS += -fprofile-arcs -ftest-coverage
- LFLAGS += -fprofile-arcs -ftest-coverage
-endif
-
-SRCS = $(foreach dir, $(SRCPATH), $(wildcard $(dir)/*.c))
-OBJS = $(patsubst %.c, %.o, $(SRCS))
-DEPS = $(patsubst %.c, %.d, $(SRCS))
-INCFLAGS = $(foreach dir, $(INCPATH), -I"$(dir)")
-
-.PHONY : clean
-
-all: $(TARGET)
-
-debug: CFLAGS += -O0 -g -DBE_DEBUG
-debug: all
-
-test: CFLAGS += --coverage
-test: LFLAGS += --coverage
-test: all
- $(MSG) [Run Testcases...]
- $(Q) ./testall.be
- $(Q) $(RM) */*.gcno */*.gcda
-
-$(TARGET): $(OBJS)
- $(MSG) [Linking...]
- $(Q) $(CC) $(OBJS) $(LFLAGS) $(LIBS) -o $@
- $(MSG) done
-
-$(OBJS): %.o: %.c
- $(MSG) [Compile] $<
- $(Q) $(CC) -MM $(CFLAGS) $(INCFLAGS) -MT"$*.d" -MT"$(<:.c=.o)" $< > $*.d
- $(Q) $(CC) $(CFLAGS) $(INCFLAGS) -c $< -o $@
-
-sinclude $(DEPS)
-
-$(OBJS): $(CONST_TAB)
-
-$(CONST_TAB): $(COC) $(GENERATE) $(SRCS) $(CONFIG)
- $(MSG) [Prebuild] generate resources
- $(Q) $(COC) -i $(SRCPATH) -c $(CONFIG) -o $(GENERATE)
-
-$(GENERATE):
- $(Q) $(MKDIR) $(GENERATE)
-
-$(COC):
- $(MSG) [Make] coc
- $(Q) $(MAKE_COC)
-
-install:
- cp $(TARGET) /usr/local/bin
-
-uninstall:
- $(RM) /usr/local/bin/$(TARGET)
-
-prebuild: $(COC) $(GENERATE)
- $(MSG) [Prebuild] generate resources
- $(Q) $(PY) $(PYCOC) -o $(GENERATE) $(SRCPATH) -c $(CONFIG)
- $(MSG) done
-
-clean:
- $(MSG) [Clean...]
- $(Q) $(RM) $(OBJS) $(DEPS) $(GENERATE)/* berry.lib
- $(Q) $(MAKE_COC) clean
- $(MSG) done
diff --git a/lib/libesp32/berry/README.md b/lib/libesp32/berry/README.md
deleted file mode 100644
index 6d02dcd38..000000000
--- a/lib/libesp32/berry/README.md
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-
-
- The Berry Script Language.
-
-
-## Introduction
-
-Berry is a ultra-lightweight dynamically typed embedded scripting language. It is designed for lower-performance embedded devices. The Berry interpreter-core's code size is less than 40KiB and can run on less than 4KiB heap (on ARM Cortex M4 CPU, Thumb ISA and ARMCC compiler).
-
-The interpreter of Berry include a one-pass compiler and register-based VM, all the code is written in ANSI C99. In Berry not every type is a class object. Some simple value types, such as int, real, boolean and string are not class object, but list, map and range are class object. This is a consideration about performance.
-Register-based VM is the same meaning as above.
-
-Berry has the following advantages:
-
-* Lightweight: A well-optimized interpreter with very little resources. Ideal for use in microprocessors.
-* Fast: optimized one-pass bytecode compiler and register-based virtual machine.
-* Powerful: supports imperative programming, object-oriented programming, functional programming.
-* Flexible: Berry is a dynamic type script, and it's intended for embedding in applications. It can provide good dynamic scalability for the host system.
-* Simple: simple and natural syntax, support garbage collection, and easy to use FFI (foreign function interface).
-* RAM saving: With compile-time object construction, most of the constant objects are stored in read-only code data segments, so the RAM usage of the interpreter is very low when it starts.
-
-## Documents
-
-LaTeX documents repository: [https://github.com/Skiars/berry_doc](https://github.com/Skiars/berry_doc)
-
-Short Manual: [berry_short_manual.pdf](https://github.com/Skiars/berry_doc/releases/download/latest/berry_short_manual.pdf).
-
-Reference Manual: [berry_rm_en_us.pdf](https://github.com/Skiars/berry_doc/releases/download/latest/berry_rm_en_us.pdf), [berry_rm_zh_cn.pdf](https://github.com/Skiars/berry_doc/releases/download/latest/berry_rm_zh_cn.pdf).
-
-Berry's EBNF grammar definition: [tools/grammar/berry.ebnf](./tools/grammar/berry.ebnf)
-
-## Features
-
-* Base Type
- * Nil: `nil`
- * Boolean: `true` and `false`
- * Numerical: Integer (`int`) and Real (`real`)
- * String: Single quotation-mark string and double quotation-mark string
- * Class: Instance template, read only
- * Instance: Object constructed by class
- * Module: Read-write key-value pair table
- * List: Ordered container, like `[1, 2, 3]`
- * Map: Hash Map container, like `{ 'a': 1, 2: 3, 'map': {} }`
- * Range: include a lower and a upper integer value, like `0..5`
-* Operator and Expression
- * Assign operator: `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `&=`, `|=`, `^=`, `<<=`, `>>=`
- * Relational operator: `<`, `<=`, `==`, `!=`, `>`, `>=`
- * Logic operator: `&&`, `||`, `!`
- * Arithmetic operator: `+`, `-`, `*`, `/`, `%`
- * Bitwise operator: `&`, `|`, `~`, `^`, `<<`, `>>`
- * Field operator: `.`
- * Subscript operator: `[]`
- * Connect string operator: `+`
- * Conditional operator: `? :`
- * Brackets: `()`
-* Control Structure
- * Conditional statement: `if-else`
- * Iteration statement: `while` and `for`
- * Jump statement: `break` and `continue`
-* Function
- * Local variable and block scope
- * Return statement
- * Nested functions definition
- * Closure based on Upvalue
- * Anonymous function
- * Lambda expression
-* Class
- * Inheritance (only public single inheritance)
- * Method and Operator Overload
- * Constructor method
- * Destructive method
-* Module Management
- * Built-in module that takes almost no RAM
- * Extension module support: script module, bytecode file module and shared library (like *.so, *.dll) module
-* GC (Garbage collection)
- * Mark-Sweep GC
-* Exceptional Handling
- * Throw any exception value using the `raise` statement
- * Multiple catch mode
-* Bytecode file support
- * Export function to bytecode file
- * Load the bytecode file and execute
-
-## Build and Run
-
-1. Install the readline library (Windows does not need):
-
- ``` bash
- sudo apt install libreadline-dev # Ubuntu
- brew install readline # MacOS
- ```
-
-2. Build (The default compiler is GCC):
-
- ```
- make
- ```
-
-3. Run:
-
- ``` bash
- ./berry # Bash or PowerShell
- berry # Windows CMD
- ```
-
-4. Install (Only Unix-like):
-
- ``` bash
- make install
- ```
-
-## Editor pulgins
-
-[Visual Studio Code](https://code.visualstudio.com/) pulgin are in this directory: [./tools/pulgins/vscode](./tools/pulgins/vscode).
-
-## Examples
-
-After compiling successfully, use the `berry` command with no parameters to enter the REPL environment:
-```
-Berry 0.0.1 (build in Dec 24 2018, 18:12:49)
-[GCC 8.2.0] on Linux (default)
->
-```
-
-Now enter this code:
-
-``` lua
-print("Hello world!")
-```
-
-You will see this output:
-
-```
-Hello world!
-```
-
-You can copy this code to the REPL:
-
-``` ruby
-def fib(x)
- if x <= 1
- return x
- end
- return fib(x - 1) + fib(x - 2)
-end
-fib(10)
-```
-
-This example code will output the result `55` and you can save the above code to a plain text file (eg test.be) and run this command:
-
-``` bash
-./berry test.be
-```
-
-This will also get the correct output.
-
-## License
-
-Berry is free software distributed under the [MIT license](./LICENSE).
-
-The Berry interpreter partly referred to [Lua](http://www.lua.org/)'s design. View Lua's license here: http://www.lua.org/license.html.
diff --git a/lib/libesp32/berry/berry-logo.png b/lib/libesp32/berry/berry-logo.png
deleted file mode 100644
index 1eb419089..000000000
Binary files a/lib/libesp32/berry/berry-logo.png and /dev/null differ
diff --git a/lib/libesp32/berry/default/be_animate_lib.c b/lib/libesp32/berry/default/be_animate_lib.c
deleted file mode 100644
index 398f87b66..000000000
--- a/lib/libesp32/berry/default/be_animate_lib.c
+++ /dev/null
@@ -1,712 +0,0 @@
-/********************************************************************
- * Berry module `animate`
- *
- * To use: `import animate`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_rotate_init, /* name */
- be_nested_proto(
- 12, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(closure),
- /* K2 */ be_nested_str(code),
- /* K3 */ be_nested_str(push),
- /* K4 */ be_nested_str(animate),
- /* K5 */ be_nested_str(ins_ramp),
- /* K6 */ be_nested_str(ins_goto),
- /* K7 */ be_const_int(0),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x60140003, // 0000 GETGBL R5 G3
- 0x5C180000, // 0001 MOVE R6 R0
- 0x7C140200, // 0002 CALL R5 1
- 0x8C140B00, // 0003 GETMET R5 R5 K0
- 0x7C140200, // 0004 CALL R5 1
- 0x90020201, // 0005 SETMBR R0 K1 R1
- 0x88140102, // 0006 GETMBR R5 R0 K2
- 0x8C140B03, // 0007 GETMET R5 R5 K3
- 0xB81E0800, // 0008 GETNGBL R7 K4
- 0x8C1C0F05, // 0009 GETMET R7 R7 K5
- 0x5C240400, // 000A MOVE R9 R2
- 0x5C280600, // 000B MOVE R10 R3
- 0x5C2C0800, // 000C MOVE R11 R4
- 0x7C1C0800, // 000D CALL R7 4
- 0x7C140400, // 000E CALL R5 2
- 0x88140102, // 000F GETMBR R5 R0 K2
- 0x8C140B03, // 0010 GETMET R5 R5 K3
- 0xB81E0800, // 0011 GETNGBL R7 K4
- 0x8C1C0F06, // 0012 GETMET R7 R7 K6
- 0x58240007, // 0013 LDCONST R9 K7
- 0x58280007, // 0014 LDCONST R10 K7
- 0x582C0007, // 0015 LDCONST R11 K7
- 0x7C1C0800, // 0016 CALL R7 4
- 0x7C140400, // 0017 CALL R5 2
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_rotate
-********************************************************************/
-extern const bclass be_class_Animate_engine;
-be_local_class(Animate_rotate,
- 0,
- &be_class_Animate_engine,
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(Animate_rotate_init_closure) },
- })),
- be_str_literal("Animate_rotate")
-);
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_from_to_init, /* name */
- be_nested_proto(
- 12, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(closure),
- /* K2 */ be_nested_str(code),
- /* K3 */ be_nested_str(push),
- /* K4 */ be_nested_str(animate),
- /* K5 */ be_nested_str(ins_ramp),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x60140003, // 0000 GETGBL R5 G3
- 0x5C180000, // 0001 MOVE R6 R0
- 0x7C140200, // 0002 CALL R5 1
- 0x8C140B00, // 0003 GETMET R5 R5 K0
- 0x7C140200, // 0004 CALL R5 1
- 0x90020201, // 0005 SETMBR R0 K1 R1
- 0x88140102, // 0006 GETMBR R5 R0 K2
- 0x8C140B03, // 0007 GETMET R5 R5 K3
- 0xB81E0800, // 0008 GETNGBL R7 K4
- 0x8C1C0F05, // 0009 GETMET R7 R7 K5
- 0x5C240400, // 000A MOVE R9 R2
- 0x5C280600, // 000B MOVE R10 R3
- 0x5C2C0800, // 000C MOVE R11 R4
- 0x7C1C0800, // 000D CALL R7 4
- 0x7C140400, // 000E CALL R5 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_from_to
-********************************************************************/
-extern const bclass be_class_Animate_engine;
-be_local_class(Animate_from_to,
- 0,
- &be_class_Animate_engine,
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(Animate_from_to_init_closure) },
- })),
- be_str_literal("Animate_from_to")
-);
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_back_forth_init, /* name */
- be_nested_proto(
- 12, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(closure),
- /* K2 */ be_nested_str(code),
- /* K3 */ be_nested_str(push),
- /* K4 */ be_nested_str(animate),
- /* K5 */ be_nested_str(ins_ramp),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str(ins_goto),
- /* K8 */ be_const_int(0),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
- 0x60140003, // 0000 GETGBL R5 G3
- 0x5C180000, // 0001 MOVE R6 R0
- 0x7C140200, // 0002 CALL R5 1
- 0x8C140B00, // 0003 GETMET R5 R5 K0
- 0x7C140200, // 0004 CALL R5 1
- 0x90020201, // 0005 SETMBR R0 K1 R1
- 0x88140102, // 0006 GETMBR R5 R0 K2
- 0x8C140B03, // 0007 GETMET R5 R5 K3
- 0xB81E0800, // 0008 GETNGBL R7 K4
- 0x8C1C0F05, // 0009 GETMET R7 R7 K5
- 0x5C240400, // 000A MOVE R9 R2
- 0x5C280600, // 000B MOVE R10 R3
- 0x0C2C0906, // 000C DIV R11 R4 K6
- 0x7C1C0800, // 000D CALL R7 4
- 0x7C140400, // 000E CALL R5 2
- 0x88140102, // 000F GETMBR R5 R0 K2
- 0x8C140B03, // 0010 GETMET R5 R5 K3
- 0xB81E0800, // 0011 GETNGBL R7 K4
- 0x8C1C0F05, // 0012 GETMET R7 R7 K5
- 0x5C240600, // 0013 MOVE R9 R3
- 0x5C280400, // 0014 MOVE R10 R2
- 0x0C2C0906, // 0015 DIV R11 R4 K6
- 0x7C1C0800, // 0016 CALL R7 4
- 0x7C140400, // 0017 CALL R5 2
- 0x88140102, // 0018 GETMBR R5 R0 K2
- 0x8C140B03, // 0019 GETMET R5 R5 K3
- 0xB81E0800, // 001A GETNGBL R7 K4
- 0x8C1C0F07, // 001B GETMET R7 R7 K7
- 0x58240008, // 001C LDCONST R9 K8
- 0x58280008, // 001D LDCONST R10 K8
- 0x582C0008, // 001E LDCONST R11 K8
- 0x7C1C0800, // 001F CALL R7 4
- 0x7C140400, // 0020 CALL R5 2
- 0x80000000, // 0021 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_back_forth
-********************************************************************/
-extern const bclass be_class_Animate_engine;
-be_local_class(Animate_back_forth,
- 0,
- &be_class_Animate_engine,
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(Animate_back_forth_init_closure) },
- })),
- be_str_literal("Animate_back_forth")
-);
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_ins_goto_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 4, /* 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(pc_rel),
- /* K1 */ be_nested_str(pc_abs),
- /* K2 */ be_nested_str(duration),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_ins_goto
-********************************************************************/
-be_local_class(Animate_ins_goto,
- 3,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(pc_rel, -1), be_const_var(0) },
- { be_const_key(duration, -1), be_const_var(2) },
- { be_const_key(pc_abs, -1), be_const_var(1) },
- { be_const_key(init, 2), be_const_closure(Animate_ins_goto_init_closure) },
- })),
- be_str_literal("Animate_ins_goto")
-);
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_ins_ramp_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 4, /* 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(a),
- /* K1 */ be_nested_str(b),
- /* K2 */ be_nested_str(duration),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_ins_ramp
-********************************************************************/
-be_local_class(Animate_ins_ramp,
- 3,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(a, -1), be_const_var(0) },
- { be_const_key(b, 2), be_const_var(1) },
- { be_const_key(duration, -1), be_const_var(2) },
- { be_const_key(init, -1), be_const_closure(Animate_ins_ramp_init_closure) },
- })),
- be_str_literal("Animate_ins_ramp")
-);
-
-/********************************************************************
-** Solidified function: run
-********************************************************************/
-be_local_closure(Animate_engine_run, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(millis),
- /* K2 */ be_nested_str(value),
- /* K3 */ be_nested_str(ins_time),
- /* K4 */ be_nested_str(running),
- /* K5 */ be_nested_str(add_driver),
- }),
- &be_const_str_run,
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x1C0C0203, // 0001 EQ R3 R1 R3
- 0x780E0003, // 0002 JMPF R3 #0007
- 0xB80E0000, // 0003 GETNGBL R3 K0
- 0x8C0C0701, // 0004 GETMET R3 R3 K1
- 0x7C0C0200, // 0005 CALL R3 1
- 0x5C040600, // 0006 MOVE R1 R3
- 0x4C0C0000, // 0007 LDNIL R3
- 0x200C0403, // 0008 NE R3 R2 R3
- 0x780E0000, // 0009 JMPF R3 #000B
- 0x90020402, // 000A SETMBR R0 K2 R2
- 0x90020601, // 000B SETMBR R0 K3 R1
- 0x500C0200, // 000C LDBOOL R3 1 0
- 0x90020803, // 000D SETMBR R0 K4 R3
- 0xB80E0000, // 000E GETNGBL R3 K0
- 0x8C0C0705, // 000F GETMET R3 R3 K5
- 0x5C140000, // 0010 MOVE R5 R0
- 0x7C0C0400, // 0011 CALL R3 2
- 0x80000000, // 0012 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Animate_engine_init, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(code),
- /* K1 */ be_nested_str(pc),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str(ins_time),
- /* K4 */ be_nested_str(running),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x60040012, // 0000 GETGBL R1 G18
- 0x7C040000, // 0001 CALL R1 0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x90020302, // 0003 SETMBR R0 K1 K2
- 0x90020702, // 0004 SETMBR R0 K3 K2
- 0x50040000, // 0005 LDBOOL R1 0 0
- 0x90020801, // 0006 SETMBR R0 K4 R1
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autorun
-********************************************************************/
-be_local_closure(Animate_engine_autorun, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* 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(run),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(add_driver),
- }),
- &be_const_str_autorun,
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x8C0C0100, // 0000 GETMET R3 R0 K0
- 0x5C140200, // 0001 MOVE R5 R1
- 0x5C180400, // 0002 MOVE R6 R2
- 0x7C0C0600, // 0003 CALL R3 3
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x8C0C0702, // 0005 GETMET R3 R3 K2
- 0x5C140000, // 0006 MOVE R5 R0
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-be_local_closure(Animate_engine_stop, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(running),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(remove_driver),
- }),
- &be_const_str_stop,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0xB8060200, // 0002 GETNGBL R1 K1
- 0x8C040302, // 0003 GETMET R1 R1 K2
- 0x5C0C0000, // 0004 MOVE R3 R0
- 0x7C040400, // 0005 CALL R1 2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_running
-********************************************************************/
-be_local_closure(Animate_engine_is_running, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(running),
- }),
- &be_const_str_is_running,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_50ms
-********************************************************************/
-be_local_closure(Animate_engine_every_50ms, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(animate),
- }),
- &be_const_str_every_50ms,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: animate
-********************************************************************/
-be_local_closure(Animate_engine_animate, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
- /* K0 */ be_nested_str(running),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(millis),
- /* K3 */ be_nested_str(ins_time),
- /* K4 */ be_nested_str(pc),
- /* K5 */ be_nested_str(code),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str(internal_error),
- /* K8 */ be_nested_str(Animate_X20pc_X20is_X20out_X20of_X20range),
- /* K9 */ be_nested_str(animate),
- /* K10 */ be_nested_str(ins_ramp),
- /* K11 */ be_nested_str(closure),
- /* K12 */ be_nested_str(duration),
- /* K13 */ be_nested_str(value),
- /* K14 */ be_nested_str(scale_uint),
- /* K15 */ be_nested_str(a),
- /* K16 */ be_nested_str(b),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str(ins_goto),
- /* K19 */ be_nested_str(pc_rel),
- /* K20 */ be_nested_str(pc_abs),
- /* K21 */ be_nested_str(unknown_X20instruction),
- }),
- &be_const_str_animate,
- &be_const_str_solidified,
- ( &(const binstruction[99]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0000, // 0001 JMPT R2 #0003
- 0x80000400, // 0002 RET 0
- 0x4C080000, // 0003 LDNIL R2
- 0x1C080202, // 0004 EQ R2 R1 R2
- 0x780A0003, // 0005 JMPF R2 #000A
- 0xB80A0200, // 0006 GETNGBL R2 K1
- 0x8C080502, // 0007 GETMET R2 R2 K2
- 0x7C080200, // 0008 CALL R2 1
- 0x5C040400, // 0009 MOVE R1 R2
- 0x50080200, // 000A LDBOOL R2 1 0
- 0x780A0054, // 000B JMPF R2 #0061
- 0x88080103, // 000C GETMBR R2 R0 K3
- 0x04080202, // 000D SUB R2 R1 R2
- 0x880C0104, // 000E GETMBR R3 R0 K4
- 0x6010000C, // 000F GETGBL R4 G12
- 0x88140105, // 0010 GETMBR R5 R0 K5
- 0x7C100200, // 0011 CALL R4 1
- 0x280C0604, // 0012 GE R3 R3 R4
- 0x780E0002, // 0013 JMPF R3 #0017
- 0x500C0000, // 0014 LDBOOL R3 0 0
- 0x90020003, // 0015 SETMBR R0 K0 R3
- 0x70020049, // 0016 JMP #0061
- 0x880C0104, // 0017 GETMBR R3 R0 K4
- 0x140C0706, // 0018 LT R3 R3 K6
- 0x780E0000, // 0019 JMPF R3 #001B
- 0xB0060F08, // 001A RAISE 1 K7 K8
- 0x880C0104, // 001B GETMBR R3 R0 K4
- 0x88100105, // 001C GETMBR R4 R0 K5
- 0x940C0803, // 001D GETIDX R3 R4 R3
- 0x6014000F, // 001E GETGBL R5 G15
- 0x5C180600, // 001F MOVE R6 R3
- 0xB81E1200, // 0020 GETNGBL R7 K9
- 0x881C0F0A, // 0021 GETMBR R7 R7 K10
- 0x7C140400, // 0022 CALL R5 2
- 0x78160020, // 0023 JMPF R5 #0045
- 0x8810010B, // 0024 GETMBR R4 R0 K11
- 0x8814070C, // 0025 GETMBR R5 R3 K12
- 0x14140405, // 0026 LT R5 R2 R5
- 0x7816000E, // 0027 JMPF R5 #0037
- 0xB8160200, // 0028 GETNGBL R5 K1
- 0x8C140B0E, // 0029 GETMET R5 R5 K14
- 0x5C1C0400, // 002A MOVE R7 R2
- 0x58200006, // 002B LDCONST R8 K6
- 0x8824070C, // 002C GETMBR R9 R3 K12
- 0x8828070F, // 002D GETMBR R10 R3 K15
- 0x882C0710, // 002E GETMBR R11 R3 K16
- 0x7C140C00, // 002F CALL R5 6
- 0x90021A05, // 0030 SETMBR R0 K13 R5
- 0x78120002, // 0031 JMPF R4 #0035
- 0x5C140800, // 0032 MOVE R5 R4
- 0x8818010D, // 0033 GETMBR R6 R0 K13
- 0x7C140200, // 0034 CALL R5 1
- 0x7002002A, // 0035 JMP #0061
- 0x7002000C, // 0036 JMP #0044
- 0x88140710, // 0037 GETMBR R5 R3 K16
- 0x90021A05, // 0038 SETMBR R0 K13 R5
- 0x78120002, // 0039 JMPF R4 #003D
- 0x5C140800, // 003A MOVE R5 R4
- 0x8818010D, // 003B GETMBR R6 R0 K13
- 0x7C140200, // 003C CALL R5 1
- 0x88140104, // 003D GETMBR R5 R0 K4
- 0x00140B11, // 003E ADD R5 R5 K17
- 0x90020805, // 003F SETMBR R0 K4 R5
- 0x8814070C, // 0040 GETMBR R5 R3 K12
- 0x04140405, // 0041 SUB R5 R2 R5
- 0x04140205, // 0042 SUB R5 R1 R5
- 0x90020605, // 0043 SETMBR R0 K3 R5
- 0x7002001A, // 0044 JMP #0060
- 0x6010000F, // 0045 GETGBL R4 G15
- 0x5C140600, // 0046 MOVE R5 R3
- 0xB81A1200, // 0047 GETNGBL R6 K9
- 0x88180D12, // 0048 GETMBR R6 R6 K18
- 0x7C100400, // 0049 CALL R4 2
- 0x78120013, // 004A JMPF R4 #005F
- 0x8810070C, // 004B GETMBR R4 R3 K12
- 0x14100404, // 004C LT R4 R2 R4
- 0x78120001, // 004D JMPF R4 #0050
- 0x70020011, // 004E JMP #0061
- 0x7002000D, // 004F JMP #005E
- 0x88100713, // 0050 GETMBR R4 R3 K19
- 0x20100906, // 0051 NE R4 R4 K6
- 0x78120004, // 0052 JMPF R4 #0058
- 0x88100104, // 0053 GETMBR R4 R0 K4
- 0x88140713, // 0054 GETMBR R5 R3 K19
- 0x00100805, // 0055 ADD R4 R4 R5
- 0x90020804, // 0056 SETMBR R0 K4 R4
- 0x70020001, // 0057 JMP #005A
- 0x88100714, // 0058 GETMBR R4 R3 K20
- 0x90020804, // 0059 SETMBR R0 K4 R4
- 0x8810070C, // 005A GETMBR R4 R3 K12
- 0x04100404, // 005B SUB R4 R2 R4
- 0x04100204, // 005C SUB R4 R1 R4
- 0x90020604, // 005D SETMBR R0 K3 R4
- 0x70020000, // 005E JMP #0060
- 0xB0060F15, // 005F RAISE 1 K7 K21
- 0x7001FFA8, // 0060 JMP #000A
- 0x8808010D, // 0061 GETMBR R2 R0 K13
- 0x80040400, // 0062 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Animate_engine
-********************************************************************/
-be_local_class(Animate_engine,
- 6,
- NULL,
- be_nested_map(13,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(code, -1), be_const_var(0) },
- { be_const_key(run, 4), be_const_closure(Animate_engine_run_closure) },
- { be_const_key(running, 8), be_const_var(4) },
- { be_const_key(init, -1), be_const_closure(Animate_engine_init_closure) },
- { be_const_key(autorun, -1), be_const_closure(Animate_engine_autorun_closure) },
- { be_const_key(value, -1), be_const_var(5) },
- { be_const_key(stop, 3), be_const_closure(Animate_engine_stop_closure) },
- { be_const_key(pc, -1), be_const_var(2) },
- { be_const_key(is_running, 11), be_const_closure(Animate_engine_is_running_closure) },
- { be_const_key(every_50ms, 10), be_const_closure(Animate_engine_every_50ms_closure) },
- { be_const_key(animate, -1), be_const_closure(Animate_engine_animate_closure) },
- { be_const_key(closure, -1), be_const_var(1) },
- { be_const_key(ins_time, 9), be_const_var(3) },
- })),
- be_str_literal("Animate_engine")
-);
-
-/********************************************************************
-** Solidified module: animate
-********************************************************************/
-be_local_module(animate,
- "animate",
- be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(rotate, 2), be_const_class(be_class_Animate_rotate) },
- { be_const_key(from_to, 3), be_const_class(be_class_Animate_from_to) },
- { be_const_key(back_forth, -1), be_const_class(be_class_Animate_back_forth) },
- { be_const_key(ins_goto, -1), be_const_class(be_class_Animate_ins_goto) },
- { be_const_key(ins_ramp, -1), be_const_class(be_class_Animate_ins_ramp) },
- { be_const_key(engine, -1), be_const_class(be_class_Animate_engine) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(animate);
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_autoconf_lib.c b/lib/libesp32/berry/default/be_autoconf_lib.c
deleted file mode 100644
index da41707c7..000000000
--- a/lib/libesp32/berry/default/be_autoconf_lib.c
+++ /dev/null
@@ -1,1394 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import autoconf`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-
-/********************************************************************
-** Solidified function: page_autoconf_ctl
-********************************************************************/
-be_local_closure(Autoconf_page_autoconf_ctl, /* name */
- be_nested_proto(
- 13, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[41]) { /* constants */
- /* K0 */ be_nested_str(webserver),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(path),
- /* K3 */ be_nested_str(check_privileged_access),
- /* K4 */ be_nested_str(has_arg),
- /* K5 */ be_nested_str(reapply),
- /* K6 */ be_nested_str(tasmota),
- /* K7 */ be_nested_str(log),
- /* K8 */ be_nested_str(CFG_X3A_X20removing_X20first_X20time_X20marker),
- /* K9 */ be_const_int(2),
- /* K10 */ be_nested_str(clear_first_time),
- /* K11 */ be_nested_str(redirect),
- /* K12 */ be_nested_str(_X2F_X3Frst_X3D),
- /* K13 */ be_nested_str(zip),
- /* K14 */ be_nested_str(CFG_X3A_X20removing_X20autoconf_X20files),
- /* K15 */ be_nested_str(delete_all_configs),
- /* K16 */ be_nested_str(arg),
- /* K17 */ be_nested_str(reset),
- /* K18 */ be_nested_str(format),
- /* K19 */ be_nested_str(https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf),
- /* K20 */ be_nested_str(arch),
- /* K21 */ be_nested_str(CFG_X3A_X20downloading_X20_X27_X25s_X27),
- /* K22 */ be_nested_str(_X25s_X2Eautoconf),
- /* K23 */ be_nested_str(webclient),
- /* K24 */ be_nested_str(begin),
- /* K25 */ be_nested_str(GET),
- /* K26 */ be_nested_str(return_X20code_X3D_X25i),
- /* K27 */ be_nested_str(connection_error),
- /* K28 */ be_nested_str(write_file),
- /* K29 */ be_nested_str(close),
- /* K30 */ be_nested_str(value_error),
- /* K31 */ be_nested_str(Unknown_X20command),
- /* K32 */ be_nested_str(CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s),
- /* K33 */ be_nested_str(content_start),
- /* K34 */ be_nested_str(Parameter_X20error),
- /* K35 */ be_nested_str(content_send_style),
- /* K36 */ be_nested_str(content_send),
- /* K37 */ be_nested_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),
- /* K38 */ be_nested_str(content_button),
- /* K39 */ be_nested_str(BUTTON_CONFIGURATION),
- /* K40 */ be_nested_str(content_stop),
- }),
- &be_const_str_page_autoconf_ctl,
- &be_const_str_solidified,
- ( &(const binstruction[117]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0xA40E0400, // 0002 IMPORT R3 K2
- 0x8C100303, // 0003 GETMET R4 R1 K3
- 0x7C100200, // 0004 CALL R4 1
- 0x74120001, // 0005 JMPT R4 #0008
- 0x4C100000, // 0006 LDNIL R4
- 0x80040800, // 0007 RET 1 R4
- 0xA802004E, // 0008 EXBLK 0 #0058
- 0x8C100304, // 0009 GETMET R4 R1 K4
- 0x58180005, // 000A LDCONST R6 K5
- 0x7C100400, // 000B CALL R4 2
- 0x7812000A, // 000C JMPF R4 #0018
- 0xB8120C00, // 000D GETNGBL R4 K6
- 0x8C100907, // 000E GETMET R4 R4 K7
- 0x58180008, // 000F LDCONST R6 K8
- 0x581C0009, // 0010 LDCONST R7 K9
- 0x7C100600, // 0011 CALL R4 3
- 0x8C10010A, // 0012 GETMET R4 R0 K10
- 0x7C100200, // 0013 CALL R4 1
- 0x8C10030B, // 0014 GETMET R4 R1 K11
- 0x5818000C, // 0015 LDCONST R6 K12
- 0x7C100400, // 0016 CALL R4 2
- 0x7002003D, // 0017 JMP #0056
- 0x8C100304, // 0018 GETMET R4 R1 K4
- 0x5818000D, // 0019 LDCONST R6 K13
- 0x7C100400, // 001A CALL R4 2
- 0x78120038, // 001B JMPF R4 #0055
- 0xB8120C00, // 001C GETNGBL R4 K6
- 0x8C100907, // 001D GETMET R4 R4 K7
- 0x5818000E, // 001E LDCONST R6 K14
- 0x581C0009, // 001F LDCONST R7 K9
- 0x7C100600, // 0020 CALL R4 3
- 0x8C10010F, // 0021 GETMET R4 R0 K15
- 0x7C100200, // 0022 CALL R4 1
- 0x8C100310, // 0023 GETMET R4 R1 K16
- 0x5818000D, // 0024 LDCONST R6 K13
- 0x7C100400, // 0025 CALL R4 2
- 0x20140911, // 0026 NE R5 R4 K17
- 0x78160026, // 0027 JMPF R5 #004F
- 0x8C140512, // 0028 GETMET R5 R2 K18
- 0x581C0013, // 0029 LDCONST R7 K19
- 0xB8220C00, // 002A GETNGBL R8 K6
- 0x8C201114, // 002B GETMET R8 R8 K20
- 0x7C200200, // 002C CALL R8 1
- 0x5C240800, // 002D MOVE R9 R4
- 0x7C140800, // 002E CALL R5 4
- 0xB81A0C00, // 002F GETNGBL R6 K6
- 0x8C180D07, // 0030 GETMET R6 R6 K7
- 0x8C200512, // 0031 GETMET R8 R2 K18
- 0x58280015, // 0032 LDCONST R10 K21
- 0x5C2C0A00, // 0033 MOVE R11 R5
- 0x7C200600, // 0034 CALL R8 3
- 0x58240009, // 0035 LDCONST R9 K9
- 0x7C180600, // 0036 CALL R6 3
- 0x8C180512, // 0037 GETMET R6 R2 K18
- 0x58200016, // 0038 LDCONST R8 K22
- 0x5C240800, // 0039 MOVE R9 R4
- 0x7C180600, // 003A CALL R6 3
- 0xB81E2E00, // 003B GETNGBL R7 K23
- 0x7C1C0000, // 003C CALL R7 0
- 0x8C200F18, // 003D GETMET R8 R7 K24
- 0x5C280A00, // 003E MOVE R10 R5
- 0x7C200400, // 003F CALL R8 2
- 0x8C200F19, // 0040 GETMET R8 R7 K25
- 0x7C200200, // 0041 CALL R8 1
- 0x542600C7, // 0042 LDINT R9 200
- 0x20241009, // 0043 NE R9 R8 R9
- 0x78260004, // 0044 JMPF R9 #004A
- 0x8C240512, // 0045 GETMET R9 R2 K18
- 0x582C001A, // 0046 LDCONST R11 K26
- 0x5C301000, // 0047 MOVE R12 R8
- 0x7C240600, // 0048 CALL R9 3
- 0xB0063609, // 0049 RAISE 1 K27 R9
- 0x8C240F1C, // 004A GETMET R9 R7 K28
- 0x5C2C0C00, // 004B MOVE R11 R6
- 0x7C240400, // 004C CALL R9 2
- 0x8C240F1D, // 004D GETMET R9 R7 K29
- 0x7C240200, // 004E CALL R9 1
- 0x8C14010A, // 004F GETMET R5 R0 K10
- 0x7C140200, // 0050 CALL R5 1
- 0x8C14030B, // 0051 GETMET R5 R1 K11
- 0x581C000C, // 0052 LDCONST R7 K12
- 0x7C140400, // 0053 CALL R5 2
- 0x70020000, // 0054 JMP #0056
- 0xB0063D1F, // 0055 RAISE 1 K30 K31
- 0xA8040001, // 0056 EXBLK 1 1
- 0x7002001B, // 0057 JMP #0074
- 0xAC100002, // 0058 CATCH R4 0 2
- 0x70020018, // 0059 JMP #0073
- 0x60180001, // 005A GETGBL R6 G1
- 0x8C1C0512, // 005B GETMET R7 R2 K18
- 0x58240020, // 005C LDCONST R9 K32
- 0x5C280800, // 005D MOVE R10 R4
- 0x5C2C0A00, // 005E MOVE R11 R5
- 0x7C1C0800, // 005F CALL R7 4
- 0x7C180200, // 0060 CALL R6 1
- 0x8C180321, // 0061 GETMET R6 R1 K33
- 0x58200022, // 0062 LDCONST R8 K34
- 0x7C180400, // 0063 CALL R6 2
- 0x8C180323, // 0064 GETMET R6 R1 K35
- 0x7C180200, // 0065 CALL R6 1
- 0x8C180324, // 0066 GETMET R6 R1 K36
- 0x8C200512, // 0067 GETMET R8 R2 K18
- 0x58280025, // 0068 LDCONST R10 K37
- 0x5C2C0800, // 0069 MOVE R11 R4
- 0x5C300A00, // 006A MOVE R12 R5
- 0x7C200800, // 006B CALL R8 4
- 0x7C180400, // 006C CALL R6 2
- 0x8C180326, // 006D GETMET R6 R1 K38
- 0x88200327, // 006E GETMBR R8 R1 K39
- 0x7C180400, // 006F CALL R6 2
- 0x8C180328, // 0070 GETMET R6 R1 K40
- 0x7C180200, // 0071 CALL R6 1
- 0x70020000, // 0072 JMP #0074
- 0xB0080000, // 0073 RAISE 2 R0 R0
- 0x80000000, // 0074 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoexec
-********************************************************************/
-be_local_closure(Autoconf_autoexec, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[32]) { /* constants */
- /* K0 */ be_nested_str(_archive),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_nested_str(_X23init_X2Ebat),
- /* K3 */ be_nested_str(is_first_time),
- /* K4 */ be_nested_str(exists),
- /* K5 */ be_nested_str(set_first_time),
- /* K6 */ be_nested_str(run_bat),
- /* K7 */ be_nested_str(tasmota),
- /* K8 */ be_nested_str(log),
- /* K9 */ be_nested_str(CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str(cmd),
- /* K12 */ be_nested_str(Restart_X201),
- /* K13 */ be_nested_str(_X23display_X2Eini),
- /* K14 */ be_nested_str(gpio),
- /* K15 */ be_nested_str(pin_used),
- /* K16 */ be_nested_str(OPTION_A),
- /* K17 */ be_nested_str(display_X2Eini),
- /* K18 */ be_nested_str(CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem),
- /* K19 */ be_nested_str(display),
- /* K20 */ be_nested_str(r),
- /* K21 */ be_nested_str(read),
- /* K22 */ be_nested_str(close),
- /* K23 */ be_nested_str(start),
- /* K24 */ be_nested_str(_X23autoexec_X2Ebat),
- /* K25 */ be_nested_str(CFG_X3A_X20running_X20),
- /* K26 */ be_const_int(3),
- /* K27 */ be_nested_str(CFG_X3A_X20ran_X20_X20),
- /* K28 */ be_nested_str(_X23autoexec_X2Ebe),
- /* K29 */ be_nested_str(CFG_X3A_X20loading_X20),
- /* K30 */ be_nested_str(load),
- /* K31 */ be_nested_str(CFG_X3A_X20loaded_X20_X20),
- }),
- &be_const_str_autoexec,
- &be_const_str_solidified,
- ( &(const binstruction[107]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0xA4060200, // 0005 IMPORT R1 K1
- 0x88080100, // 0006 GETMBR R2 R0 K0
- 0x00080502, // 0007 ADD R2 R2 K2
- 0x8C0C0103, // 0008 GETMET R3 R0 K3
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0012, // 000A JMPF R3 #001E
- 0x8C0C0304, // 000B GETMET R3 R1 K4
- 0x5C140400, // 000C MOVE R5 R2
- 0x7C0C0400, // 000D CALL R3 2
- 0x780E000E, // 000E JMPF R3 #001E
- 0x8C0C0105, // 000F GETMET R3 R0 K5
- 0x7C0C0200, // 0010 CALL R3 1
- 0x8C0C0106, // 0011 GETMET R3 R0 K6
- 0x5C140400, // 0012 MOVE R5 R2
- 0x7C0C0400, // 0013 CALL R3 2
- 0xB80E0E00, // 0014 GETNGBL R3 K7
- 0x8C0C0708, // 0015 GETMET R3 R3 K8
- 0x58140009, // 0016 LDCONST R5 K9
- 0x5818000A, // 0017 LDCONST R6 K10
- 0x7C0C0600, // 0018 CALL R3 3
- 0xB80E0E00, // 0019 GETNGBL R3 K7
- 0x8C0C070B, // 001A GETMET R3 R3 K11
- 0x5814000C, // 001B LDCONST R5 K12
- 0x7C0C0400, // 001C CALL R3 2
- 0x80000600, // 001D RET 0
- 0x880C0100, // 001E GETMBR R3 R0 K0
- 0x000C070D, // 001F ADD R3 R3 K13
- 0x5C080600, // 0020 MOVE R2 R3
- 0xB80E1C00, // 0021 GETNGBL R3 K14
- 0x8C0C070F, // 0022 GETMET R3 R3 K15
- 0xB8161C00, // 0023 GETNGBL R5 K14
- 0x88140B10, // 0024 GETMBR R5 R5 K16
- 0x5818000A, // 0025 LDCONST R6 K10
- 0x7C0C0600, // 0026 CALL R3 3
- 0x780E0019, // 0027 JMPF R3 #0042
- 0x8C0C0304, // 0028 GETMET R3 R1 K4
- 0x5C140400, // 0029 MOVE R5 R2
- 0x7C0C0400, // 002A CALL R3 2
- 0x780E0015, // 002B JMPF R3 #0042
- 0x8C0C0304, // 002C GETMET R3 R1 K4
- 0x58140011, // 002D LDCONST R5 K17
- 0x7C0C0400, // 002E CALL R3 2
- 0x780E0005, // 002F JMPF R3 #0036
- 0xB80E0E00, // 0030 GETNGBL R3 K7
- 0x8C0C0708, // 0031 GETMET R3 R3 K8
- 0x58140012, // 0032 LDCONST R5 K18
- 0x5818000A, // 0033 LDCONST R6 K10
- 0x7C0C0600, // 0034 CALL R3 3
- 0x7002000B, // 0035 JMP #0042
- 0xA40E2600, // 0036 IMPORT R3 K19
- 0x60100011, // 0037 GETGBL R4 G17
- 0x5C140400, // 0038 MOVE R5 R2
- 0x58180014, // 0039 LDCONST R6 K20
- 0x7C100400, // 003A CALL R4 2
- 0x8C140915, // 003B GETMET R5 R4 K21
- 0x7C140200, // 003C CALL R5 1
- 0x8C180916, // 003D GETMET R6 R4 K22
- 0x7C180200, // 003E CALL R6 1
- 0x8C180717, // 003F GETMET R6 R3 K23
- 0x5C200A00, // 0040 MOVE R8 R5
- 0x7C180400, // 0041 CALL R6 2
- 0x880C0100, // 0042 GETMBR R3 R0 K0
- 0x000C0718, // 0043 ADD R3 R3 K24
- 0x5C080600, // 0044 MOVE R2 R3
- 0x8C0C0304, // 0045 GETMET R3 R1 K4
- 0x5C140400, // 0046 MOVE R5 R2
- 0x7C0C0400, // 0047 CALL R3 2
- 0x780E000C, // 0048 JMPF R3 #0056
- 0xB80E0E00, // 0049 GETNGBL R3 K7
- 0x8C0C0708, // 004A GETMET R3 R3 K8
- 0x00163202, // 004B ADD R5 K25 R2
- 0x5818001A, // 004C LDCONST R6 K26
- 0x7C0C0600, // 004D CALL R3 3
- 0x8C0C0106, // 004E GETMET R3 R0 K6
- 0x5C140400, // 004F MOVE R5 R2
- 0x7C0C0400, // 0050 CALL R3 2
- 0xB80E0E00, // 0051 GETNGBL R3 K7
- 0x8C0C0708, // 0052 GETMET R3 R3 K8
- 0x00163602, // 0053 ADD R5 K27 R2
- 0x5818001A, // 0054 LDCONST R6 K26
- 0x7C0C0600, // 0055 CALL R3 3
- 0x880C0100, // 0056 GETMBR R3 R0 K0
- 0x000C071C, // 0057 ADD R3 R3 K28
- 0x5C080600, // 0058 MOVE R2 R3
- 0x8C0C0304, // 0059 GETMET R3 R1 K4
- 0x5C140400, // 005A MOVE R5 R2
- 0x7C0C0400, // 005B CALL R3 2
- 0x780E000C, // 005C JMPF R3 #006A
- 0xB80E0E00, // 005D GETNGBL R3 K7
- 0x8C0C0708, // 005E GETMET R3 R3 K8
- 0x00163A02, // 005F ADD R5 K29 R2
- 0x5818001A, // 0060 LDCONST R6 K26
- 0x7C0C0600, // 0061 CALL R3 3
- 0xB80E3C00, // 0062 GETNGBL R3 K30
- 0x5C100400, // 0063 MOVE R4 R2
- 0x7C0C0200, // 0064 CALL R3 1
- 0xB80E0E00, // 0065 GETNGBL R3 K7
- 0x8C0C0708, // 0066 GETMET R3 R3 K8
- 0x00163E02, // 0067 ADD R5 K31 R2
- 0x5818001A, // 0068 LDCONST R6 K26
- 0x7C0C0600, // 0069 CALL R3 3
- 0x80000000, // 006A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: run_bat
-********************************************************************/
-be_local_closure(Autoconf_run_bat, /* name */
- be_nested_proto(
- 13, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(r),
- /* K2 */ be_nested_str(readline),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str(_X0A),
- /* K5 */ be_nested_str(tasmota),
- /* K6 */ be_nested_str(cmd),
- /* K7 */ be_nested_str(close),
- /* K8 */ be_nested_str(format),
- /* K9 */ be_nested_str(CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29),
- }),
- &be_const_str_run_bat,
- &be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0xA8020023, // 0002 EXBLK 0 #0027
- 0x60100011, // 0003 GETGBL R4 G17
- 0x5C140200, // 0004 MOVE R5 R1
- 0x58180001, // 0005 LDCONST R6 K1
- 0x7C100400, // 0006 CALL R4 2
- 0x5C0C0800, // 0007 MOVE R3 R4
- 0x50100200, // 0008 LDBOOL R4 1 0
- 0x78120018, // 0009 JMPF R4 #0023
- 0x8C100702, // 000A GETMET R4 R3 K2
- 0x7C100200, // 000B CALL R4 1
- 0x6014000C, // 000C GETGBL R5 G12
- 0x5C180800, // 000D MOVE R6 R4
- 0x7C140200, // 000E CALL R5 1
- 0x1C140B03, // 000F EQ R5 R5 K3
- 0x78160000, // 0010 JMPF R5 #0012
- 0x70020010, // 0011 JMP #0023
- 0x5415FFFE, // 0012 LDINT R5 -1
- 0x94140805, // 0013 GETIDX R5 R4 R5
- 0x1C140B04, // 0014 EQ R5 R5 K4
- 0x78160002, // 0015 JMPF R5 #0019
- 0x5415FFFD, // 0016 LDINT R5 -2
- 0x40160605, // 0017 CONNECT R5 K3 R5
- 0x94100805, // 0018 GETIDX R4 R4 R5
- 0x6014000C, // 0019 GETGBL R5 G12
- 0x5C180800, // 001A MOVE R6 R4
- 0x7C140200, // 001B CALL R5 1
- 0x24140B03, // 001C GT R5 R5 K3
- 0x78160003, // 001D JMPF R5 #0022
- 0xB8160A00, // 001E GETNGBL R5 K5
- 0x8C140B06, // 001F GETMET R5 R5 K6
- 0x5C1C0800, // 0020 MOVE R7 R4
- 0x7C140400, // 0021 CALL R5 2
- 0x7001FFE4, // 0022 JMP #0008
- 0x8C100707, // 0023 GETMET R4 R3 K7
- 0x7C100200, // 0024 CALL R4 1
- 0xA8040001, // 0025 EXBLK 1 1
- 0x7002000D, // 0026 JMP #0035
- 0xAC100002, // 0027 CATCH R4 0 2
- 0x7002000A, // 0028 JMP #0034
- 0x60180001, // 0029 GETGBL R6 G1
- 0x8C1C0508, // 002A GETMET R7 R2 K8
- 0x58240009, // 002B LDCONST R9 K9
- 0x5C280200, // 002C MOVE R10 R1
- 0x5C2C0800, // 002D MOVE R11 R4
- 0x5C300A00, // 002E MOVE R12 R5
- 0x7C1C0A00, // 002F CALL R7 5
- 0x7C180200, // 0030 CALL R6 1
- 0x8C180707, // 0031 GETMET R6 R3 K7
- 0x7C180200, // 0032 CALL R6 1
- 0x70020000, // 0033 JMP #0035
- 0xB0080000, // 0034 RAISE 2 R0 R0
- 0x80000000, // 0035 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: page_autoconf_mgr
-********************************************************************/
-be_local_closure(Autoconf_page_autoconf_mgr, /* name */
- be_nested_proto(
- 19, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[39]) { /* constants */
- /* K0 */ be_nested_str(webserver),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(check_privileged_access),
- /* K3 */ be_nested_str(content_start),
- /* K4 */ be_nested_str(Auto_X2Dconfiguration),
- /* K5 */ be_nested_str(content_send_style),
- /* K6 */ be_nested_str(content_send),
- /* K7 */ be_nested_str(_X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E),
- /* K8 */ be_nested_str(get_current_module_path),
- /* K9 */ be_nested_str(tr),
- /* K10 */ be_nested_str(get_current_module_name),
- /* K11 */ be_nested_str(_),
- /* K12 */ be_nested_str(_X20),
- /* K13 */ be_nested_str(_error),
- /* K14 */ be_nested_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B),
- /* K15 */ be_nested_str(_X26lt_X3BNone_X26gt_X3B),
- /* K16 */ be_nested_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E),
- /* K17 */ be_nested_str(format),
- /* K18 */ be_nested_str(_X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E),
- /* K19 */ be_nested_str(_X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E),
- /* K20 */ be_nested_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20),
- /* K21 */ be_nested_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E),
- /* K22 */ be_nested_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E),
- /* K23 */ be_nested_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E),
- /* K24 */ be_nested_str(_X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E),
- /* K25 */ be_nested_str(_X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E),
- /* K26 */ be_nested_str(_X3Cp_X3E_X3Cform_X20id_X3Dzip_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20),
- /* K27 */ be_nested_str(onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E),
- /* K28 */ be_nested_str(_X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E),
- /* K29 */ be_nested_str(_X3Cselect_X20name_X3D_X27zip_X27_X3E),
- /* K30 */ be_nested_str(load_templates),
- /* K31 */ be_nested_str(_X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E),
- /* K32 */ be_nested_str(_X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E),
- /* K33 */ be_nested_str(stop_iteration),
- /* K34 */ be_nested_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E),
- /* K35 */ be_nested_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E),
- /* K36 */ be_nested_str(content_button),
- /* K37 */ be_nested_str(BUTTON_CONFIGURATION),
- /* K38 */ be_nested_str(content_stop),
- }),
- &be_const_str_page_autoconf_mgr,
- &be_const_str_solidified,
- ( &(const binstruction[124]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0302, // 0002 GETMET R3 R1 K2
- 0x7C0C0200, // 0003 CALL R3 1
- 0x740E0001, // 0004 JMPT R3 #0007
- 0x4C0C0000, // 0005 LDNIL R3
- 0x80040600, // 0006 RET 1 R3
- 0x8C0C0303, // 0007 GETMET R3 R1 K3
- 0x58140004, // 0008 LDCONST R5 K4
- 0x7C0C0400, // 0009 CALL R3 2
- 0x8C0C0305, // 000A GETMET R3 R1 K5
- 0x7C0C0200, // 000B CALL R3 1
- 0x8C0C0306, // 000C GETMET R3 R1 K6
- 0x58140007, // 000D LDCONST R5 K7
- 0x7C0C0400, // 000E CALL R3 2
- 0x8C0C0108, // 000F GETMET R3 R0 K8
- 0x7C0C0200, // 0010 CALL R3 1
- 0x780E0006, // 0011 JMPF R3 #0019
- 0x8C100509, // 0012 GETMET R4 R2 K9
- 0x8C18010A, // 0013 GETMET R6 R0 K10
- 0x7C180200, // 0014 CALL R6 1
- 0x581C000B, // 0015 LDCONST R7 K11
- 0x5820000C, // 0016 LDCONST R8 K12
- 0x7C100800, // 0017 CALL R4 4
- 0x70020004, // 0018 JMP #001E
- 0x8810010D, // 0019 GETMBR R4 R0 K13
- 0x78120001, // 001A JMPF R4 #001D
- 0x5810000E, // 001B LDCONST R4 K14
- 0x70020000, // 001C JMP #001E
- 0x5810000F, // 001D LDCONST R4 K15
- 0x8C140306, // 001E GETMET R5 R1 K6
- 0x581C0010, // 001F LDCONST R7 K16
- 0x7C140400, // 0020 CALL R5 2
- 0x8C140306, // 0021 GETMET R5 R1 K6
- 0x8C1C0511, // 0022 GETMET R7 R2 K17
- 0x58240012, // 0023 LDCONST R9 K18
- 0x7C1C0400, // 0024 CALL R7 2
- 0x7C140400, // 0025 CALL R5 2
- 0x8C140306, // 0026 GETMET R5 R1 K6
- 0x8C1C0511, // 0027 GETMET R7 R2 K17
- 0x58240013, // 0028 LDCONST R9 K19
- 0x5C280800, // 0029 MOVE R10 R4
- 0x7C1C0600, // 002A CALL R7 3
- 0x7C140400, // 002B CALL R5 2
- 0x780E000B, // 002C JMPF R3 #0039
- 0x8C140306, // 002D GETMET R5 R1 K6
- 0x581C0014, // 002E LDCONST R7 K20
- 0x7C140400, // 002F CALL R5 2
- 0x8C140306, // 0030 GETMET R5 R1 K6
- 0x581C0015, // 0031 LDCONST R7 K21
- 0x7C140400, // 0032 CALL R5 2
- 0x8C140306, // 0033 GETMET R5 R1 K6
- 0x581C0016, // 0034 LDCONST R7 K22
- 0x7C140400, // 0035 CALL R5 2
- 0x8C140306, // 0036 GETMET R5 R1 K6
- 0x581C0017, // 0037 LDCONST R7 K23
- 0x7C140400, // 0038 CALL R5 2
- 0x8C140306, // 0039 GETMET R5 R1 K6
- 0x581C0018, // 003A LDCONST R7 K24
- 0x7C140400, // 003B CALL R5 2
- 0x8C140306, // 003C GETMET R5 R1 K6
- 0x581C0010, // 003D LDCONST R7 K16
- 0x7C140400, // 003E CALL R5 2
- 0x8C140306, // 003F GETMET R5 R1 K6
- 0x8C1C0511, // 0040 GETMET R7 R2 K17
- 0x58240019, // 0041 LDCONST R9 K25
- 0x7C1C0400, // 0042 CALL R7 2
- 0x7C140400, // 0043 CALL R5 2
- 0x8C140306, // 0044 GETMET R5 R1 K6
- 0x581C001A, // 0045 LDCONST R7 K26
- 0x7C140400, // 0046 CALL R5 2
- 0x8C140306, // 0047 GETMET R5 R1 K6
- 0x581C001B, // 0048 LDCONST R7 K27
- 0x7C140400, // 0049 CALL R5 2
- 0x8C140306, // 004A GETMET R5 R1 K6
- 0x581C001C, // 004B LDCONST R7 K28
- 0x7C140400, // 004C CALL R5 2
- 0x8C140306, // 004D GETMET R5 R1 K6
- 0x581C001D, // 004E LDCONST R7 K29
- 0x7C140400, // 004F CALL R5 2
- 0x8C14011E, // 0050 GETMET R5 R0 K30
- 0x7C140200, // 0051 CALL R5 1
- 0x8C180306, // 0052 GETMET R6 R1 K6
- 0x5820001F, // 0053 LDCONST R8 K31
- 0x7C180400, // 0054 CALL R6 2
- 0x60180010, // 0055 GETGBL R6 G16
- 0x5C1C0A00, // 0056 MOVE R7 R5
- 0x7C180200, // 0057 CALL R6 1
- 0xA802000D, // 0058 EXBLK 0 #0067
- 0x5C1C0C00, // 0059 MOVE R7 R6
- 0x7C1C0000, // 005A CALL R7 0
- 0x8C200306, // 005B GETMET R8 R1 K6
- 0x8C280511, // 005C GETMET R10 R2 K17
- 0x58300020, // 005D LDCONST R12 K32
- 0x5C340E00, // 005E MOVE R13 R7
- 0x8C380509, // 005F GETMET R14 R2 K9
- 0x5C400E00, // 0060 MOVE R16 R7
- 0x5844000B, // 0061 LDCONST R17 K11
- 0x5848000C, // 0062 LDCONST R18 K12
- 0x7C380800, // 0063 CALL R14 4
- 0x7C280800, // 0064 CALL R10 4
- 0x7C200400, // 0065 CALL R8 2
- 0x7001FFF1, // 0066 JMP #0059
- 0x58180021, // 0067 LDCONST R6 K33
- 0xAC180200, // 0068 CATCH R6 1 0
- 0xB0080000, // 0069 RAISE 2 R0 R0
- 0x8C180306, // 006A GETMET R6 R1 K6
- 0x58200022, // 006B LDCONST R8 K34
- 0x7C180400, // 006C CALL R6 2
- 0x8C180306, // 006D GETMET R6 R1 K6
- 0x58200023, // 006E LDCONST R8 K35
- 0x7C180400, // 006F CALL R6 2
- 0x8C180306, // 0070 GETMET R6 R1 K6
- 0x58200017, // 0071 LDCONST R8 K23
- 0x7C180400, // 0072 CALL R6 2
- 0x8C180306, // 0073 GETMET R6 R1 K6
- 0x58200018, // 0074 LDCONST R8 K24
- 0x7C180400, // 0075 CALL R6 2
- 0x8C180324, // 0076 GETMET R6 R1 K36
- 0x88200325, // 0077 GETMBR R8 R1 K37
- 0x7C180400, // 0078 CALL R6 2
- 0x8C180326, // 0079 GETMET R6 R1 K38
- 0x7C180200, // 007A CALL R6 1
- 0x80000000, // 007B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_current_module_name
-********************************************************************/
-be_local_closure(Autoconf_get_current_module_name, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_archive),
- /* K1 */ be_const_int(0),
- }),
- &be_const_str_get_current_module_name,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x5405FFF5, // 0000 LDINT R1 -10
- 0x40060201, // 0001 CONNECT R1 K1 R1
- 0x88080100, // 0002 GETMBR R2 R0 K0
- 0x94040401, // 0003 GETIDX R1 R2 R1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: delete_all_configs
-********************************************************************/
-be_local_closure(Autoconf_delete_all_configs, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str(path),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(listdir),
- /* K3 */ be_nested_str(_X2F),
- /* K4 */ be_nested_str(find),
- /* K5 */ be_nested_str(_X2Eautoconf),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str(remove),
- /* K8 */ be_nested_str(stop_iteration),
- }),
- &be_const_str_delete_all_configs,
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0302, // 0002 GETMET R3 R1 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x60100010, // 0005 GETGBL R4 G16
- 0x5C140600, // 0006 MOVE R5 R3
- 0x7C100200, // 0007 CALL R4 1
- 0xA802000B, // 0008 EXBLK 0 #0015
- 0x5C140800, // 0009 MOVE R5 R4
- 0x7C140000, // 000A CALL R5 0
- 0x8C180504, // 000B GETMET R6 R2 K4
- 0x5C200A00, // 000C MOVE R8 R5
- 0x58240005, // 000D LDCONST R9 K5
- 0x7C180600, // 000E CALL R6 3
- 0x24180D06, // 000F GT R6 R6 K6
- 0x781A0002, // 0010 JMPF R6 #0014
- 0x8C180307, // 0011 GETMET R6 R1 K7
- 0x5C200A00, // 0012 MOVE R8 R5
- 0x7C180400, // 0013 CALL R6 2
- 0x7001FFF3, // 0014 JMP #0009
- 0x58100008, // 0015 LDCONST R4 K8
- 0xAC100200, // 0016 CATCH R4 1 0
- 0xB0080000, // 0017 RAISE 2 R0 R0
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_first_time
-********************************************************************/
-be_local_closure(Autoconf_set_first_time, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(_X2F_X2Eautoconf),
- /* K1 */ be_nested_str(w),
- /* K2 */ be_nested_str(close),
- }),
- &be_const_str_set_first_time,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x60040011, // 0000 GETGBL R1 G17
- 0x58080000, // 0001 LDCONST R2 K0
- 0x580C0001, // 0002 LDCONST R3 K1
- 0x7C040400, // 0003 CALL R1 2
- 0x8C080302, // 0004 GETMET R2 R1 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: load_templates
-********************************************************************/
-be_local_closure(Autoconf_load_templates, /* name */
- be_nested_proto(
- 15, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(json),
- /* K2 */ be_nested_str(format),
- /* K3 */ be_nested_str(https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson),
- /* K4 */ be_nested_str(tasmota),
- /* K5 */ be_nested_str(arch),
- /* K6 */ be_nested_str(log),
- /* K7 */ be_nested_str(CFG_X3A_X20loading_X20_X27_X25s_X27),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str(webclient),
- /* K10 */ be_nested_str(begin),
- /* K11 */ be_nested_str(GET),
- /* K12 */ be_nested_str(CFG_X3A_X20return_code_X3D_X25i),
- /* K13 */ be_const_int(2),
- /* K14 */ be_nested_str(get_string),
- /* K15 */ be_nested_str(close),
- /* K16 */ be_nested_str(load),
- /* K17 */ be_nested_str(CFG_X3A_X20loaded_X20_X27_X25s_X27),
- /* K18 */ be_nested_str(find),
- /* K19 */ be_nested_str(files),
- /* K20 */ be_nested_str(CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27),
- }),
- &be_const_str_load_templates,
- &be_const_str_solidified,
- ( &(const binstruction[86]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0xA8020042, // 0002 EXBLK 0 #0046
- 0x8C0C0302, // 0003 GETMET R3 R1 K2
- 0x58140003, // 0004 LDCONST R5 K3
- 0xB81A0800, // 0005 GETNGBL R6 K4
- 0x8C180D05, // 0006 GETMET R6 R6 K5
- 0x7C180200, // 0007 CALL R6 1
- 0x7C0C0600, // 0008 CALL R3 3
- 0xB8120800, // 0009 GETNGBL R4 K4
- 0x8C100906, // 000A GETMET R4 R4 K6
- 0x8C180302, // 000B GETMET R6 R1 K2
- 0x58200007, // 000C LDCONST R8 K7
- 0x5C240600, // 000D MOVE R9 R3
- 0x7C180600, // 000E CALL R6 3
- 0x581C0008, // 000F LDCONST R7 K8
- 0x7C100600, // 0010 CALL R4 3
- 0xB8121200, // 0011 GETNGBL R4 K9
- 0x7C100000, // 0012 CALL R4 0
- 0x8C14090A, // 0013 GETMET R5 R4 K10
- 0x5C1C0600, // 0014 MOVE R7 R3
- 0x7C140400, // 0015 CALL R5 2
- 0x8C14090B, // 0016 GETMET R5 R4 K11
- 0x7C140200, // 0017 CALL R5 1
- 0x541A00C7, // 0018 LDINT R6 200
- 0x20180A06, // 0019 NE R6 R5 R6
- 0x781A000A, // 001A JMPF R6 #0026
- 0xB81A0800, // 001B GETNGBL R6 K4
- 0x8C180D06, // 001C GETMET R6 R6 K6
- 0x8C200302, // 001D GETMET R8 R1 K2
- 0x5828000C, // 001E LDCONST R10 K12
- 0x5C2C0A00, // 001F MOVE R11 R5
- 0x7C200600, // 0020 CALL R8 3
- 0x5824000D, // 0021 LDCONST R9 K13
- 0x7C180600, // 0022 CALL R6 3
- 0x4C180000, // 0023 LDNIL R6
- 0xA8040001, // 0024 EXBLK 1 1
- 0x80040C00, // 0025 RET 1 R6
- 0x8C18090E, // 0026 GETMET R6 R4 K14
- 0x7C180200, // 0027 CALL R6 1
- 0x8C1C090F, // 0028 GETMET R7 R4 K15
- 0x7C1C0200, // 0029 CALL R7 1
- 0x8C1C0510, // 002A GETMET R7 R2 K16
- 0x5C240C00, // 002B MOVE R9 R6
- 0x7C1C0400, // 002C CALL R7 2
- 0xB8220800, // 002D GETNGBL R8 K4
- 0x8C201106, // 002E GETMET R8 R8 K6
- 0x8C280302, // 002F GETMET R10 R1 K2
- 0x58300011, // 0030 LDCONST R12 K17
- 0x60340008, // 0031 GETGBL R13 G8
- 0x5C380E00, // 0032 MOVE R14 R7
- 0x7C340200, // 0033 CALL R13 1
- 0x7C280600, // 0034 CALL R10 3
- 0x582C0008, // 0035 LDCONST R11 K8
- 0x7C200600, // 0036 CALL R8 3
- 0x8C200F12, // 0037 GETMET R8 R7 K18
- 0x58280013, // 0038 LDCONST R10 K19
- 0x7C200400, // 0039 CALL R8 2
- 0x6024000F, // 003A GETGBL R9 G15
- 0x5C281000, // 003B MOVE R10 R8
- 0x602C0012, // 003C GETGBL R11 G18
- 0x7C240400, // 003D CALL R9 2
- 0x78260001, // 003E JMPF R9 #0041
- 0xA8040001, // 003F EXBLK 1 1
- 0x80041000, // 0040 RET 1 R8
- 0x4C240000, // 0041 LDNIL R9
- 0xA8040001, // 0042 EXBLK 1 1
- 0x80041200, // 0043 RET 1 R9
- 0xA8040001, // 0044 EXBLK 1 1
- 0x7002000E, // 0045 JMP #0055
- 0xAC0C0002, // 0046 CATCH R3 0 2
- 0x7002000B, // 0047 JMP #0054
- 0xB8160800, // 0048 GETNGBL R5 K4
- 0x8C140B06, // 0049 GETMET R5 R5 K6
- 0x8C1C0302, // 004A GETMET R7 R1 K2
- 0x58240014, // 004B LDCONST R9 K20
- 0x5C280600, // 004C MOVE R10 R3
- 0x5C2C0800, // 004D MOVE R11 R4
- 0x7C1C0800, // 004E CALL R7 4
- 0x5820000D, // 004F LDCONST R8 K13
- 0x7C140600, // 0050 CALL R5 3
- 0x4C140000, // 0051 LDNIL R5
- 0x80040A00, // 0052 RET 1 R5
- 0x70020000, // 0053 JMP #0055
- 0xB0080000, // 0054 RAISE 2 R0 R0
- 0x80000000, // 0055 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_add_config_button
-********************************************************************/
-be_local_closure(Autoconf_web_add_config_button, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* 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(webserver),
- /* K1 */ be_nested_str(content_send),
- /* K2 */ be_nested_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),
- }),
- &be_const_str_web_add_config_button,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x7C080400, // 0003 CALL R2 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_first_time
-********************************************************************/
-be_local_closure(Autoconf_is_first_time, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* 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(path),
- /* K1 */ be_nested_str(exists),
- /* K2 */ be_nested_str(_X2F_X2Eautoconf),
- }),
- &be_const_str_is_first_time,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0000, // 0004 JMPF R2 #0006
- 0x50080001, // 0005 LDBOOL R2 0 1
- 0x50080200, // 0006 LDBOOL R2 1 0
- 0x80040400, // 0007 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Autoconf_init, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str(path),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(listdir),
- /* K3 */ be_nested_str(_X2F),
- /* K4 */ be_nested_str(tasmota),
- /* K5 */ be_nested_str(add_driver),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str(find),
- /* K8 */ be_nested_str(_X2Eautoconf),
- /* K9 */ be_nested_str(format),
- /* K10 */ be_nested_str(CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29),
- /* K11 */ be_nested_str(_error),
- /* K12 */ be_const_int(1),
- /* K13 */ be_nested_str(log),
- /* K14 */ be_nested_str(CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found),
- /* K15 */ be_const_int(2),
- /* K16 */ be_nested_str(_archive),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0302, // 0002 GETMET R3 R1 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x4C100000, // 0005 LDNIL R4
- 0xB8160800, // 0006 GETNGBL R5 K4
- 0x8C140B05, // 0007 GETMET R5 R5 K5
- 0x5C1C0000, // 0008 MOVE R7 R0
- 0x7C140400, // 0009 CALL R5 2
- 0x58140006, // 000A LDCONST R5 K6
- 0x6018000C, // 000B GETGBL R6 G12
- 0x5C1C0600, // 000C MOVE R7 R3
- 0x7C180200, // 000D CALL R6 1
- 0x14180A06, // 000E LT R6 R5 R6
- 0x781A0016, // 000F JMPF R6 #0027
- 0x8C180507, // 0010 GETMET R6 R2 K7
- 0x94200605, // 0011 GETIDX R8 R3 R5
- 0x58240008, // 0012 LDCONST R9 K8
- 0x7C180600, // 0013 CALL R6 3
- 0x24180D06, // 0014 GT R6 R6 K6
- 0x781A000E, // 0015 JMPF R6 #0025
- 0x4C180000, // 0016 LDNIL R6
- 0x20180806, // 0017 NE R6 R4 R6
- 0x781A000A, // 0018 JMPF R6 #0024
- 0x60180001, // 0019 GETGBL R6 G1
- 0x8C1C0509, // 001A GETMET R7 R2 K9
- 0x5824000A, // 001B LDCONST R9 K10
- 0x5C280800, // 001C MOVE R10 R4
- 0x942C0605, // 001D GETIDX R11 R3 R5
- 0x7C1C0800, // 001E CALL R7 4
- 0x7C180200, // 001F CALL R6 1
- 0x50180200, // 0020 LDBOOL R6 1 0
- 0x90021606, // 0021 SETMBR R0 K11 R6
- 0x4C180000, // 0022 LDNIL R6
- 0x80040C00, // 0023 RET 1 R6
- 0x94100605, // 0024 GETIDX R4 R3 R5
- 0x00140B0C, // 0025 ADD R5 R5 K12
- 0x7001FFE3, // 0026 JMP #000B
- 0x4C180000, // 0027 LDNIL R6
- 0x1C180806, // 0028 EQ R6 R4 R6
- 0x781A0006, // 0029 JMPF R6 #0031
- 0xB81A0800, // 002A GETNGBL R6 K4
- 0x8C180D0D, // 002B GETMET R6 R6 K13
- 0x5820000E, // 002C LDCONST R8 K14
- 0x5824000F, // 002D LDCONST R9 K15
- 0x7C180600, // 002E CALL R6 3
- 0x4C180000, // 002F LDNIL R6
- 0x80040C00, // 0030 RET 1 R6
- 0x90022004, // 0031 SETMBR R0 K16 R4
- 0x80000000, // 0032 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: preinit
-********************************************************************/
-be_local_closure(Autoconf_preinit, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(_archive),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_nested_str(_X23preinit_X2Ebe),
- /* K3 */ be_nested_str(exists),
- /* K4 */ be_nested_str(tasmota),
- /* K5 */ be_nested_str(log),
- /* K6 */ be_nested_str(CFG_X3A_X20loading_X20),
- /* K7 */ be_const_int(3),
- /* K8 */ be_nested_str(load),
- /* K9 */ be_nested_str(CFG_X3A_X20loaded_X20_X20),
- }),
- &be_const_str_preinit,
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0xA4060200, // 0005 IMPORT R1 K1
- 0x88080100, // 0006 GETMBR R2 R0 K0
- 0x00080502, // 0007 ADD R2 R2 K2
- 0x8C0C0303, // 0008 GETMET R3 R1 K3
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x780E000C, // 000B JMPF R3 #0019
- 0xB80E0800, // 000C GETNGBL R3 K4
- 0x8C0C0705, // 000D GETMET R3 R3 K5
- 0x00160C02, // 000E ADD R5 K6 R2
- 0x58180007, // 000F LDCONST R6 K7
- 0x7C0C0600, // 0010 CALL R3 3
- 0xB80E1000, // 0011 GETNGBL R3 K8
- 0x5C100400, // 0012 MOVE R4 R2
- 0x7C0C0200, // 0013 CALL R3 1
- 0xB80E0800, // 0014 GETNGBL R3 K4
- 0x8C0C0705, // 0015 GETMET R3 R3 K5
- 0x00161202, // 0016 ADD R5 K9 R2
- 0x58180007, // 0017 LDCONST R6 K7
- 0x7C0C0600, // 0018 CALL R3 3
- 0x80000000, // 0019 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: reset
-********************************************************************/
-be_local_closure(Autoconf_reset, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str(path),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(listdir),
- /* K3 */ be_nested_str(_X2F),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str(find),
- /* K6 */ be_nested_str(_X2Eautoconf),
- /* K7 */ be_nested_str(remove),
- /* K8 */ be_nested_str(format),
- /* K9 */ be_nested_str(CFG_X3A_X20removed_X20file_X20_X27_X25s_X27),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str(_archive),
- /* K12 */ be_nested_str(_error),
- }),
- &be_const_str_reset,
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0302, // 0002 GETMET R3 R1 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x4C100000, // 0005 LDNIL R4
- 0x58140004, // 0006 LDCONST R5 K4
- 0x6018000C, // 0007 GETGBL R6 G12
- 0x5C1C0600, // 0008 MOVE R7 R3
- 0x7C180200, // 0009 CALL R6 1
- 0x14180A06, // 000A LT R6 R5 R6
- 0x781A0011, // 000B JMPF R6 #001E
- 0x94180605, // 000C GETIDX R6 R3 R5
- 0x8C1C0505, // 000D GETMET R7 R2 K5
- 0x5C240C00, // 000E MOVE R9 R6
- 0x58280006, // 000F LDCONST R10 K6
- 0x7C1C0600, // 0010 CALL R7 3
- 0x241C0F04, // 0011 GT R7 R7 K4
- 0x781E0008, // 0012 JMPF R7 #001C
- 0x8C1C0307, // 0013 GETMET R7 R1 K7
- 0x5C240C00, // 0014 MOVE R9 R6
- 0x7C1C0400, // 0015 CALL R7 2
- 0x601C0001, // 0016 GETGBL R7 G1
- 0x8C200508, // 0017 GETMET R8 R2 K8
- 0x58280009, // 0018 LDCONST R10 K9
- 0x5C2C0C00, // 0019 MOVE R11 R6
- 0x7C200600, // 001A CALL R8 3
- 0x7C1C0200, // 001B CALL R7 1
- 0x00140B0A, // 001C ADD R5 R5 K10
- 0x7001FFE8, // 001D JMP #0007
- 0x4C180000, // 001E LDNIL R6
- 0x90021606, // 001F SETMBR R0 K11 R6
- 0x4C180000, // 0020 LDNIL R6
- 0x90021806, // 0021 SETMBR R0 K12 R6
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_add_handler
-********************************************************************/
-be_local_closure(Autoconf_web_add_handler, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 2, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(page_autoconf_mgr),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0x80040000, // 0003 RET 1 R0
- })
- ),
- be_nested_proto(
- 2, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(page_autoconf_ctl),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0x80040000, // 0003 RET 1 R0
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(webserver),
- /* K1 */ be_nested_str(on),
- /* K2 */ be_nested_str(_X2Fac),
- /* K3 */ be_nested_str(HTTP_GET),
- /* K4 */ be_nested_str(HTTP_POST),
- }),
- &be_const_str_web_add_handler,
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x88180303, // 0004 GETMBR R6 R1 K3
- 0x7C080800, // 0005 CALL R2 4
- 0x8C080301, // 0006 GETMET R2 R1 K1
- 0x58100002, // 0007 LDCONST R4 K2
- 0x84140001, // 0008 CLOSURE R5 P1
- 0x88180304, // 0009 GETMBR R6 R1 K4
- 0x7C080800, // 000A CALL R2 4
- 0xA0000000, // 000B CLOSE R0
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_first_time
-********************************************************************/
-be_local_closure(Autoconf_clear_first_time, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* 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(path),
- /* K1 */ be_nested_str(remove),
- /* K2 */ be_nested_str(_X2F_X2Eautoconf),
- }),
- &be_const_str_clear_first_time,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x7C080400, // 0003 CALL R2 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_current_module_path
-********************************************************************/
-be_local_closure(Autoconf_get_current_module_path, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(_archive),
- }),
- &be_const_str_get_current_module_path,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Autoconf
-********************************************************************/
-be_local_class(Autoconf,
- 2,
- NULL,
- be_nested_map(18,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(page_autoconf_ctl, -1), be_const_closure(Autoconf_page_autoconf_ctl_closure) },
- { be_const_key(autoexec, -1), be_const_closure(Autoconf_autoexec_closure) },
- { be_const_key(run_bat, 17), be_const_closure(Autoconf_run_bat_closure) },
- { be_const_key(page_autoconf_mgr, -1), be_const_closure(Autoconf_page_autoconf_mgr_closure) },
- { be_const_key(get_current_module_path, 13), be_const_closure(Autoconf_get_current_module_path_closure) },
- { be_const_key(preinit, -1), be_const_closure(Autoconf_preinit_closure) },
- { be_const_key(clear_first_time, -1), be_const_closure(Autoconf_clear_first_time_closure) },
- { be_const_key(load_templates, -1), be_const_closure(Autoconf_load_templates_closure) },
- { be_const_key(_archive, -1), be_const_var(0) },
- { be_const_key(web_add_config_button, -1), be_const_closure(Autoconf_web_add_config_button_closure) },
- { be_const_key(is_first_time, -1), be_const_closure(Autoconf_is_first_time_closure) },
- { be_const_key(web_add_handler, -1), be_const_closure(Autoconf_web_add_handler_closure) },
- { be_const_key(delete_all_configs, 4), be_const_closure(Autoconf_delete_all_configs_closure) },
- { be_const_key(reset, 5), be_const_closure(Autoconf_reset_closure) },
- { be_const_key(get_current_module_name, 11), be_const_closure(Autoconf_get_current_module_name_closure) },
- { be_const_key(init, 6), be_const_closure(Autoconf_init_closure) },
- { be_const_key(_error, -1), be_const_var(1) },
- { be_const_key(set_first_time, -1), be_const_closure(Autoconf_set_first_time_closure) },
- })),
- be_str_literal("Autoconf")
-);
-
-/********************************************************************
-** Solidified function: _anonymous_
-********************************************************************/
-be_local_closure(_anonymous_, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_class(be_class_Autoconf),
- }),
- &be_const_str__anonymous_,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0xB4000000, // 0001 CLASS K0
- 0x5C080200, // 0002 MOVE R2 R1
- 0x7C080000, // 0003 CALL R2 0
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified module: autoconf
-********************************************************************/
-be_local_module(autoconf,
- "autoconf",
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(_anonymous__closure) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(autoconf);
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_crypto_lib.c b/lib/libesp32/berry/default/be_crypto_lib.c
deleted file mode 100644
index 04a10b28e..000000000
--- a/lib/libesp32/berry/default/be_crypto_lib.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/********************************************************************
- * Berry module `webserver`
- *
- * To use: `import webserver`
- *
- * Allows to respond to HTTP request
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_ALEXA_AVS
-
-extern int m_aes_gcm_init(bvm *vm);
-extern int m_aes_gcm_encryt(bvm *vm);
-extern int m_aes_gcm_decryt(bvm *vm);
-extern int m_aes_gcm_tag(bvm *vm);
-
-extern int m_ec_c25519_pubkey(bvm *vm);
-extern int m_ec_c25519_sharedkey(bvm *vm);
-
-#include "../generate/be_fixed_be_class_aes_gcm.h"
-#include "../generate/be_fixed_be_class_ec_c25519.h"
-
-void be_load_crypto_lib(bvm *vm) {
- // insert the class GCM in module AES
- be_newmodule(vm);
- be_setname(vm, -1, "crypto");
- be_setglobal(vm, "crypto");
-
- be_pushntvclass(vm, &be_class_aes_gcm);
- be_setmember(vm, -2, "AES_GCM");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_ec_c25519);
- be_setmember(vm, -2, "EC_C25519");
- be_pop(vm, 2);
-}
-/* @const_object_info_begin
-
-class be_class_aes_gcm (scope: global, name: AES_GCM) {
- .p1, var
- .p2, var
-
- init, func(m_aes_gcm_init)
- encrypt, func(m_aes_gcm_encryt)
- decrypt, func(m_aes_gcm_decryt)
- tag, func(m_aes_gcm_tag)
-}
-
-class be_class_ec_c25519 (scope: global, name: EC_C25519) {
- public_key, func(m_ec_c25519_pubkey)
- shared_key, func(m_ec_c25519_sharedkey)
-}
-
-@const_object_info_end */
-
-#endif // USE_ALEXA_AVS
diff --git a/lib/libesp32/berry/default/be_ctypes.c b/lib/libesp32/berry/default/be_ctypes.c
deleted file mode 100644
index 18e655d8b..000000000
--- a/lib/libesp32/berry/default/be_ctypes.c
+++ /dev/null
@@ -1,494 +0,0 @@
-/********************************************************************
- * Tasmota ctypes mapping
- *******************************************************************/
-#include "be_constobj.h"
-#include
-
-extern __attribute__((noreturn)) void be_raisef(bvm *vm, const char *except, const char *msg, ...);
-
-// binary search within an array of sorted strings
-// the first 4 bytes are a pointer to a string
-// returns 0..total_elements-1 or -1 if not found
-
-int32_t bin_search_ctypes(const char * needle, const void * table, size_t elt_size, size_t total_elements) {
- int32_t low = 0;
- int32_t high = total_elements - 1;
- int32_t mid = (low + high) / 2;
- // start a dissect
- while (low <= high) {
- const char * elt = *(const char **) ( ((uint8_t*)table) + mid * elt_size );
- int32_t comp = strcmp(needle, elt);
- if (comp < 0) {
- high = mid - 1;
- } else if (comp > 0) {
- low = mid + 1;
- } else {
- break;
- }
- mid = (low + high) / 2;
- }
- if (low <= high) {
- return mid;
- } else {
- return -1;
- }
-}
-
-enum {
- ctypes_i32 = 14,
- ctypes_i16 = 12,
- ctypes_i8 = 11,
- ctypes_u32 = 4,
- ctypes_u16 = 2,
- ctypes_u8 = 1,
-
- // big endian
- ctypes_be_i32 = -14,
- ctypes_be_i16 = -12,
- ctypes_be_i8 = -11,
- ctypes_be_u32 = -4,
- ctypes_be_u16 = -2,
- ctypes_be_u8 = -1,
-
- // floating point
- ctypes_float = 5,
- ctypes_double = 10,
-
- // pointer
- ctypes_ptr32 = 9,
- ctypes_ptr64 = -9,
-
- ctypes_bf = 0, //bif-field
-};
-
-typedef struct be_ctypes_structure_item_t {
- const char * name;
- uint16_t offset_bytes;
- uint8_t offset_bits : 3;
- uint8_t len_bits : 5;
- int8_t type : 5;
- uint8_t mapping : 3;
-} be_ctypes_structure_item_t;
-
-typedef struct be_ctypes_structure_t {
- uint16_t size_bytes; /* size in bytes */
- uint16_t size_elt; /* number of elements */
- const char **instance_mapping; /* array of instance class names for automatic instanciation of class */
- const be_ctypes_structure_item_t * items;
-} be_ctypes_structure_t;
-
-typedef struct be_ctypes_class_t {
- const char * name;
- const be_ctypes_structure_t * definitions;
-} be_ctypes_class_t;
-
-typedef struct be_ctypes_classes_t {
- uint16_t size;
- const char **instance_mapping; /* array of instance class names for automatic instanciation of class */
- const be_ctypes_class_t * classes;
-} be_ctypes_classes_t;
-
-// const be_ctypes_class_t * g_ctypes_classes = NULL;
-
-//
-// Constructor for ctypes structure
-//
-// If no arg: allocate a bytes() structure of the right size, filled with zeroes
-// Arg1 is instance self
-// If arg 2 is int or comptr (and not null): create a mapped bytes buffer to read/write at a specific location (can be copied if need a snapshot)
-// If arg 2 is a bytes object, consider it's comptr and map the buffer (it's basically casting). WARNING no size check is done so you can easily corrupt memory
-int be_ctypes_init(bvm *vm) {
- int argc = be_top(vm);
- void * src_data = NULL;
- if (argc > 1 && (be_isint(vm, 2) || be_iscomptr(vm, 2) || be_isbytes(vm, 2))) {
- if (be_iscomptr(vm, 2)) {
- src_data = be_tocomptr(vm, 2);
- } else if (be_isbytes(vm, 2)) {
- be_getmember(vm, 2, ".p");
- src_data = be_tocomptr(vm, -1);
- be_pop(vm, 1);
- } else {
- src_data = (void*) be_toint(vm, 2);
- }
- }
-
- // look for class definition
- be_getmember(vm, 1, "_def"); // static class comptr
- const be_ctypes_structure_t *definitions;
- definitions = (const be_ctypes_structure_t *) be_tocomptr(vm, -1);
- be_pop(vm, 1);
-
- // call super(self, bytes)
- be_getglobal(vm, "super"); // push super function
- be_pushvalue(vm, 1); // push self instance
- be_getglobal(vm, "bytes"); // push bytes class
- be_call(vm, 2);
- be_pop(vm, 2);
- // berry_log_C("be_ctypes_init> super found %p", be_toint(vm, -1));
-
- // call bytes.init(self)
- be_getmember(vm, -1, "init");
- be_pushvalue(vm, -2);
- if (src_data) { be_pushcomptr(vm, src_data); } // if mapped, push address
- be_pushint(vm, definitions ? -definitions->size_bytes : 0); // negative size signals a fixed size
- be_call(vm, src_data ? 3 : 2); // call with 2 or 3 arguments depending on provided address
- be_pop(vm, src_data ? 4 : 3);
- // super(self, bytes) still on top of stack
-
- be_pop(vm, 1);
-
- be_return(vm);
-}
-
-//
-// copy ctypes_bytes, with same class and same content
-//
-int be_ctypes_copy(bvm *vm) {
- size_t len;
- const void * src = be_tobytes(vm, 1, &len);
- be_classof(vm, 1);
- // stack: 1/self + class_object
- be_call(vm, 0); // call empty constructor to build empty resizable copy
- // stack: 1/ self + new_empty_instance
-
- // source object (self)
- be_getmember(vm, 1, ".p");
- const void* src_buf = be_tocomptr(vm, -1);
- be_pop(vm, 1);
-
- be_getmember(vm, 1, ".len");
- int32_t src_len = be_toint(vm, -1);
- be_pop(vm, 1);
-
- // dest object
- be_getmember(vm, -1, ".p");
- const void* dst_buf = be_tocomptr(vm, -1);
- be_pop(vm, 1);
-
- be_getmember(vm, -1, ".len");
- int32_t dst_len = be_toint(vm, -1);
- be_pop(vm, 1);
-
- if (src_len != dst_len) {
- be_raisef(vm, "internal_error", "new object has wrong size %i (should be %i)", dst_len, src_len);
- }
-
- // copy bytes
- memmove((void*)dst_buf, src_buf, src_len);
-
- be_return(vm);
-}
-
-// get an attribute from a ctypes structure
-// arg1: ctypes instance
-// arg2: name of the argument
-// The class has a `_def` static class attribute with the C low-level mapping definition
-int be_ctypes_member(bvm *vm) {
- int argc = be_top(vm);
- be_getmember(vm, 1, "_def");
- const be_ctypes_structure_t *definitions;
- definitions = (const be_ctypes_structure_t *) be_tocomptr(vm, -1);
- be_pop(vm, 1);
- const char *name = be_tostring(vm, 2);
-
- // look for member
- int32_t member_idx = bin_search_ctypes(name, &definitions->items[0], sizeof(be_ctypes_structure_item_t), definitions->size_elt);
- if (member_idx >= 0) {
- const be_ctypes_structure_item_t *member = &definitions->items[member_idx];
- // berry_log_C("member found bytes=%i, bits=%i, len_bits=%i, type=%i", member->offset_bytes, member->offset_bits, member->len_bits, member->type);
-
- // dispatch according to types
- if (ctypes_bf == member->type) {
- // bitfield
- be_getmember(vm, 1, "getbits");
- be_pushvalue(vm, 1); // self
- be_pushint(vm, member->offset_bytes * 8 + member->offset_bits);
- be_pushint(vm, member->len_bits);
- be_call(vm, 3);
- be_pop(vm, 3);
- // int result at top of stack
- } else if (ctypes_float == member->type) {
- // Note: double not supported (no need identified)
- // get raw int32_t
- be_getmember(vm, 1, "geti"); // self.get or self.geti
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushint(vm, 4); // size is 4 bytes
- be_call(vm, 3);
- be_pop(vm, 3);
- // get int and convert to float
- int32_t val = be_toint(vm, -1);
- be_pop(vm, 1);
- float *fval = (float*) &val; // type wizardry
- be_pushreal(vm, *fval);
- } else if (ctypes_ptr32 == member->type) {
- be_getmember(vm, 1, "geti"); // self.get or self.geti
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushint(vm, 4); // size is 4 bytes TODO 32 bits only supported here
- be_call(vm, 3);
- be_pop(vm, 3);
- // convert to ptr
- int32_t val = be_toint(vm, -1);
- be_pop(vm, 1);
- be_pushcomptr(vm, (void*) val);
- } else {
- // general int support
- int size = member->type; // eventually 1/2/4, positive if little endian, negative if big endian
- int sign = bfalse; // signed int
- if (size >= ctypes_i8) {
- size -= ctypes_i8 - 1;
- sign = btrue;
- }
- if (size <= ctypes_be_i8) {
- size += ctypes_be_i8 - 1;
- sign = btrue;
- }
- // get
- be_getmember(vm, 1, sign ? "geti" : "get"); // self.get or self.geti
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushint(vm, size);
- be_call(vm, 3);
- be_pop(vm, 3);
- // int result at top of stack
- }
- // the int result is at top of the stack
- // check if we need an instance mapping
- if (member->mapping > 0 && definitions->instance_mapping) {
- const char * mapping_name = definitions->instance_mapping[member->mapping - 1];
- if (mapping_name) {
- be_getglobal(vm, mapping_name); // stack: class
- be_pushvalue(vm, -2); // stack: class, value
- be_pushint(vm, -1); // stack; class, value, -1
- be_call(vm, 2); // call constructor with 2 parameters
- be_pop(vm, 2); // leave new instance on top of stack
- }
- }
- be_return(vm);
- }
-
- be_return_nil(vm);
-}
-
-// setmember takes 3 arguments:
-// 1: self (subclass of bytes())
-// 2: name of member
-// 3: value
-int be_ctypes_setmember(bvm *vm) {
- int argc = be_top(vm);
-
- // If the value is an instance, we call 'toint()' and replace the value
- if (be_isinstance(vm, 3)) {
-
- be_getmember(vm, 3, "toint");
- if (!be_isnil(vm, -1)) {
- be_pushvalue(vm, 3);
- be_call(vm, 1);
- be_pop(vm, 1);
- be_moveto(vm, -1, 3);
- } else {
- be_raise(vm, "value_error", "Value is an instance without 'toint()' method");
- }
- be_pop(vm, 1);
- }
-
- // If the value is a pointer, replace with an int of same value (works only on 32 bits CPU)
- if (be_iscomptr(vm, 3)) {
- void * v = be_tocomptr(vm, 3);
- be_pushint(vm, (int32_t) v);
- be_moveto(vm, -1, 3);
- be_pop(vm, 1);
- }
-
- be_getmember(vm, 1, "_def");
- const be_ctypes_structure_t *definitions;
- definitions = (const be_ctypes_structure_t *) be_tocomptr(vm, -1);
- be_pop(vm, 1);
- const char *name = be_tostring(vm, 2);
-
- // look for member
- int32_t member_idx = bin_search_ctypes(name, &definitions->items[0], sizeof(be_ctypes_structure_item_t), definitions->size_elt);
- if (member_idx >= 0) {
- const be_ctypes_structure_item_t *member = &definitions->items[member_idx];
- // berry_log_C("member found bytes=%i, bits=%i, len_bits=%i, type=%i", member->offset_bytes, member->offset_bits, member->len_bits, member->type);
-
- // dispatch according to types
- if (ctypes_bf == member->type) {
- // bitfield
- be_getmember(vm, 1, "setbits");
- be_pushvalue(vm, 1); // self
- be_pushint(vm, member->offset_bytes * 8 + member->offset_bits);
- be_pushint(vm, member->len_bits);
- be_pushvalue(vm, 3); // val
- be_call(vm, 4);
- be_pop(vm, 5);
- be_return_nil(vm);
- } else if (ctypes_float == member->type) {
- // Note: double not supported (no need identified)
- float val = be_toreal(vm, 3);
- int32_t *ival = (int32_t*) &val;
- // set
- be_getmember(vm, 1, "seti");
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushint(vm, *ival);
- be_pushint(vm, 4); // size is 4 bytes
- be_call(vm, 4);
- be_pop(vm, 5);
- be_return_nil(vm);
- } else if (ctypes_ptr32 == member->type) {
- // Note: 64 bits pointer not supported
- int32_t ptr;
- if (be_iscomptr(vm, 3)) {
- ptr = (int32_t) be_tocomptr(vm, 3);
- } else {
- ptr = be_toint(vm, 3);
- }
- // set
- be_getmember(vm, 1, "seti");
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushint(vm, ptr);
- be_pushint(vm, 4); // size is 4 bytes - 64 bits not suppported
- be_call(vm, 4);
- be_pop(vm, 5);
- be_return_nil(vm);
- } else {
- // general int support
- int size = member->type; // eventually 1/2/4, positive if little endian, negative if big endian
- int sign = bfalse; // signed int
- if (size >= ctypes_i8) {
- size -= ctypes_i8 - 1;
- sign = btrue;
- }
- if (size <= ctypes_be_i8) {
- size += ctypes_be_i8 - 1;
- sign = btrue;
- }
- // set
- be_getmember(vm, 1, sign ? "seti" : "set"); // self.get or self.geti
- be_pushvalue(vm, 1); // push self
- be_pushint(vm, member->offset_bytes);
- be_pushvalue(vm, 3); // val
- be_pushint(vm, size);
- be_call(vm, 4);
- be_pop(vm, 5);
- be_return_nil(vm);
- }
- } else {
- be_raisef(vm, "attribute_error", "class '%s' cannot assign to attribute '%s'",
- be_classname(vm, 1), be_tostring(vm, 2));
- }
-}
-
-//
-// tomap, create a map instance containing all values decoded
-//
-int be_ctypes_tomap(bvm *vm) {
- // don't need argc
- be_getmember(vm, 1, "_def");
- const be_ctypes_structure_t *definitions;
- definitions = (const be_ctypes_structure_t *) be_tocomptr(vm, -1);
- be_pop(vm, 1);
-
- // create empty map
- be_newobject(vm, "map");
-
- for (uint32_t i = 0; i < definitions->size_elt; i++) {
- const be_ctypes_structure_item_t * item = &definitions->items[i];
-
- be_pushstring(vm, item->name); // stack: map - key
-
- be_getmember(vm, 1, "member");
- be_pushvalue(vm, 1);
- be_pushstring(vm, item->name);
- be_call(vm, 2);
- be_pop(vm, 2); // stack: map - key - value
-
- be_data_insert(vm, -3);
- be_pop(vm, 2); // stack: map
- }
-
- be_pop(vm, 1); // remove map struct, to leave map instance
- be_return(vm);
-}
-
-//
-// Constructor for ctypes_dyn structure
-//
-// Arg1 is instance self
-// Arg2 is int or comptr (and not null): create a mapped bytes buffer to read/write at a specific location
-// Arg3 is int or comptr (and not null): the binary definition of the struct (dynamic and not fixed as static member)
-int be_ctypes_dyn_init(bvm *vm) {
- int argc = be_top(vm);
- void * src_data = NULL;
- const be_ctypes_structure_t * definitions = NULL;
- if (argc > 2 && (be_isint(vm, 2) || be_iscomptr(vm, 2)) && (be_isint(vm, 3) || be_iscomptr(vm, 3))) {
- if (be_iscomptr(vm, 2)) {
- src_data = be_tocomptr(vm, 2);
- } else {
- src_data = (void*) be_toint(vm, 2);
- }
- if (be_iscomptr(vm, 3)) {
- definitions = (const be_ctypes_structure_t *) be_tocomptr(vm, 3);
- } else {
- definitions = (const be_ctypes_structure_t *) be_toint(vm, 3);
- }
- }
- if (!src_data || !definitions) {
- be_raise(vm, "value_error", "'address' and 'definition' cannot be null");
- }
-
- // store definition in member variable
- be_pushcomptr(vm, (void*) definitions);
- be_setmember(vm, 1, "_def"); // static class comptr
- be_pop(vm, 1);
-
- // call bytes.init(self)
- be_getbuiltin(vm, "bytes"); // shortcut `ctypes` init and call directly bytes.init()
- be_getmember(vm, -1, "init");
- be_pushvalue(vm, 1);
- be_pushcomptr(vm, src_data);
- be_pushint(vm, -definitions->size_bytes); // negative size signals a fixed size
- be_call(vm, 3); // call with 2 or 3 arguments depending on provided address
- be_pop(vm, 4);
- // super(self, bytes) still on top of stack
-
- be_pop(vm, 1);
-
- be_return(vm);
-}
-
-BE_EXPORT_VARIABLE extern const bclass be_class_bytes;
-
-#include "../generate/be_fixed_be_class_ctypes.h"
-#include "../generate/be_fixed_be_class_ctypes_dyn.h"
-
-void be_load_ctypes_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_ctypes);
- be_setglobal(vm, "ctypes_bytes");
- be_pop(vm, 1);
- be_pushntvclass(vm, &be_class_ctypes_dyn);
- be_setglobal(vm, "ctypes_bytes_dyn");
- be_pop(vm, 1);
-}
-
-/* @const_object_info_begin
-class be_class_ctypes (scope: global, name: ctypes_bytes, super: be_class_bytes) {
- _def, nil()
- copy, func(be_ctypes_copy)
- init, func(be_ctypes_init)
- member, func(be_ctypes_member)
- setmember, func(be_ctypes_setmember)
-
- tomap, func(be_ctypes_tomap)
-}
-@const_object_info_end */
-
-/* @const_object_info_begin
-class be_class_ctypes_dyn (scope: global, name: ctypes_bytes_dyn, super: be_class_ctypes) {
- _def, var
- init, func(be_ctypes_dyn_init)
-}
-@const_object_info_end */
diff --git a/lib/libesp32/berry/default/be_display_lib.c b/lib/libesp32/berry/default/be_display_lib.c
deleted file mode 100644
index 3943396fc..000000000
--- a/lib/libesp32/berry/default/be_display_lib.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import display`
- *
- * Initialize Universal Display driver
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_DISPLAY
-
-// Tasmota specific
-
-extern int be_ntv_display_start(bvm *vm);
-
-/********************************************************************
-** Solidified module: display
-********************************************************************/
-be_local_module(display,
- "display",
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(start, -1), be_const_func(be_ntv_display_start) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(display);
-/********************************************************************/
-
-#endif // USE_DISPLAY
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_driverlib.c b/lib/libesp32/berry/default/be_driverlib.c
deleted file mode 100644
index 45a611382..000000000
--- a/lib/libesp32/berry/default/be_driverlib.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `d = Driver()`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Driver_init, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_tasmota
-********************************************************************/
-be_local_closure(Driver_get_tasmota, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- }),
- &be_const_str_get_tasmota,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_cmd
-********************************************************************/
-be_local_closure(Driver_add_cmd, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 1]) {
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 2),
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x68140001, // 0001 GETUPV R5 U1
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(add_cmd),
- }),
- &be_const_str_add_cmd,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x84180000, // 0003 CLOSURE R6 P0
- 0x7C0C0600, // 0004 CALL R3 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Driver
-********************************************************************/
-be_local_class(Driver,
- 13,
- NULL,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(web_add_main_button, 14), be_const_var(4) },
- { be_const_key(web_add_console_button, -1), be_const_var(7) },
- { be_const_key(web_add_management_button, 8), be_const_var(5) },
- { be_const_key(init, -1), be_const_closure(Driver_init_closure) },
- { be_const_key(json_append, -1), be_const_var(10) },
- { be_const_key(web_add_config_button, 7), be_const_var(6) },
- { be_const_key(every_100ms, -1), be_const_var(1) },
- { be_const_key(display, -1), be_const_var(12) },
- { be_const_key(web_add_button, 13), be_const_var(3) },
- { be_const_key(every_second, -1), be_const_var(0) },
- { be_const_key(save_before_restart, -1), be_const_var(8) },
- { be_const_key(get_tasmota, -1), be_const_closure(Driver_get_tasmota_closure) },
- { be_const_key(web_sensor, 6), be_const_var(9) },
- { be_const_key(web_add_handler, -1), be_const_var(2) },
- { be_const_key(button_pressed, 1), be_const_var(11) },
- { be_const_key(add_cmd, -1), be_const_closure(Driver_add_cmd_closure) },
- })),
- be_str_literal("Driver")
-);
-/*******************************************************************/
-
-void be_load_Driver_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_Driver);
- be_setglobal(vm, "Driver");
- be_pop(vm, 1);
-}
diff --git a/lib/libesp32/berry/default/be_energy_ctypes_definitions.c b/lib/libesp32/berry/default/be_energy_ctypes_definitions.c
deleted file mode 100644
index 86f84ef64..000000000
--- a/lib/libesp32/berry/default/be_energy_ctypes_definitions.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/********************************************************************
- * Tasmota LVGL ctypes mapping
- *******************************************************************/
-#include "be_ctypes.h"
-
-#ifdef USE_ENERGY_SENSOR
-
-/********************************************************************
- * Generated code, don't edit
- *******************************************************************/
-
-static const char * be_ctypes_instance_mappings[]; /* forward definition */
-
-const be_ctypes_structure_t be_energy_struct = {
- 250, /* size in bytes */
- 85, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[85]) {
- { "active_power", 24, 0, 0, ctypes_float, 0 },
- { "active_power_2", 28, 0, 0, ctypes_float, 0 },
- { "active_power_3", 32, 0, 0, ctypes_float, 0 },
- { "apparent_power", 36, 0, 0, ctypes_float, 0 },
- { "apparent_power_2", 40, 0, 0, ctypes_float, 0 },
- { "apparent_power_3", 44, 0, 0, ctypes_float, 0 },
- { "command_code", 205, 0, 0, ctypes_u8, 0 },
- { "current", 12, 0, 0, ctypes_float, 0 },
- { "current_2", 16, 0, 0, ctypes_float, 0 },
- { "current_3", 20, 0, 0, ctypes_float, 0 },
- { "current_available", 215, 0, 0, ctypes_u8, 0 },
- { "daily", 120, 0, 0, ctypes_float, 0 },
- { "daily_2", 124, 0, 0, ctypes_float, 0 },
- { "daily_3", 128, 0, 0, ctypes_float, 0 },
- { "daily_sum", 144, 0, 0, ctypes_float, 0 },
- { "data_valid", 206, 0, 0, ctypes_u8, 0 },
- { "data_valid_2", 207, 0, 0, ctypes_u8, 0 },
- { "data_valid_3", 208, 0, 0, ctypes_u8, 0 },
- { "export_active", 96, 0, 0, ctypes_float, 0 },
- { "export_active_2", 100, 0, 0, ctypes_float, 0 },
- { "export_active_3", 104, 0, 0, ctypes_float, 0 },
- { "fifth_second", 204, 0, 0, ctypes_u8, 0 },
- { "frequency", 72, 0, 0, ctypes_float, 0 },
- { "frequency_2", 76, 0, 0, ctypes_float, 0 },
- { "frequency_3", 80, 0, 0, ctypes_float, 0 },
- { "frequency_common", 211, 0, 0, ctypes_u8, 0 },
- { "import_active", 84, 0, 0, ctypes_float, 0 },
- { "import_active_2", 88, 0, 0, ctypes_float, 0 },
- { "import_active_3", 92, 0, 0, ctypes_float, 0 },
- { "max_current_flag", 242, 0, 0, ctypes_u8, 0 },
- { "max_energy_state", 249, 0, 0, ctypes_u8, 0 },
- { "max_power_flag", 238, 0, 0, ctypes_u8, 0 },
- { "max_voltage_flag", 240, 0, 0, ctypes_u8, 0 },
- { "min_current_flag", 241, 0, 0, ctypes_u8, 0 },
- { "min_power_flag", 237, 0, 0, ctypes_u8, 0 },
- { "min_voltage_flag", 239, 0, 0, ctypes_u8, 0 },
- { "mplh_counter", 244, 0, 0, ctypes_u16, 0 },
- { "mplr_counter", 248, 0, 0, ctypes_u8, 0 },
- { "mplw_counter", 246, 0, 0, ctypes_u16, 0 },
- { "period", 192, 0, 0, ctypes_u32, 0 },
- { "period_2", 196, 0, 0, ctypes_u32, 0 },
- { "period_3", 200, 0, 0, ctypes_u32, 0 },
- { "phase_count", 209, 0, 0, ctypes_u8, 0 },
- { "power_factor", 60, 0, 0, ctypes_float, 0 },
- { "power_factor_2", 64, 0, 0, ctypes_float, 0 },
- { "power_factor_3", 68, 0, 0, ctypes_float, 0 },
- { "power_history_0", 218, 0, 0, ctypes_u16, 0 },
- { "power_history_0_2", 220, 0, 0, ctypes_u16, 0 },
- { "power_history_0_3", 222, 0, 0, ctypes_u16, 0 },
- { "power_history_1", 224, 0, 0, ctypes_u16, 0 },
- { "power_history_1_2", 226, 0, 0, ctypes_u16, 0 },
- { "power_history_1_3", 228, 0, 0, ctypes_u16, 0 },
- { "power_history_2", 230, 0, 0, ctypes_u16, 0 },
- { "power_history_2_2", 232, 0, 0, ctypes_u16, 0 },
- { "power_history_2_3", 234, 0, 0, ctypes_u16, 0 },
- { "power_on", 217, 0, 0, ctypes_u8, 0 },
- { "power_steady_counter", 236, 0, 0, ctypes_u8, 0 },
- { "reactive_power", 48, 0, 0, ctypes_float, 0 },
- { "reactive_power_2", 52, 0, 0, ctypes_float, 0 },
- { "reactive_power_3", 56, 0, 0, ctypes_float, 0 },
- { "start_energy", 108, 0, 0, ctypes_float, 0 },
- { "start_energy_2", 112, 0, 0, ctypes_float, 0 },
- { "start_energy_3", 116, 0, 0, ctypes_float, 0 },
- { "today_delta_kwh", 156, 0, 0, ctypes_u32, 0 },
- { "today_delta_kwh_2", 160, 0, 0, ctypes_u32, 0 },
- { "today_delta_kwh_3", 164, 0, 0, ctypes_u32, 0 },
- { "today_kwh", 180, 0, 0, ctypes_u32, 0 },
- { "today_kwh_2", 184, 0, 0, ctypes_u32, 0 },
- { "today_kwh_3", 188, 0, 0, ctypes_u32, 0 },
- { "today_offset_init_kwh", 213, 0, 0, ctypes_u8, 0 },
- { "today_offset_kwh", 168, 0, 0, ctypes_u32, 0 },
- { "today_offset_kwh_2", 172, 0, 0, ctypes_u32, 0 },
- { "today_offset_kwh_3", 176, 0, 0, ctypes_u32, 0 },
- { "total", 132, 0, 0, ctypes_float, 0 },
- { "total_2", 136, 0, 0, ctypes_float, 0 },
- { "total_3", 140, 0, 0, ctypes_float, 0 },
- { "total_sum", 148, 0, 0, ctypes_float, 0 },
- { "type_dc", 216, 0, 0, ctypes_u8, 0 },
- { "use_overtemp", 212, 0, 0, ctypes_u8, 0 },
- { "voltage", 0, 0, 0, ctypes_float, 0 },
- { "voltage_2", 4, 0, 0, ctypes_float, 0 },
- { "voltage_3", 8, 0, 0, ctypes_float, 0 },
- { "voltage_available", 214, 0, 0, ctypes_u8, 0 },
- { "voltage_common", 210, 0, 0, ctypes_u8, 0 },
- { "yesterday_sum", 152, 0, 0, ctypes_float, 0 },
-}};
-
-static const char * be_ctypes_instance_mappings[] = {
- NULL
-};
-
-static be_define_ctypes_class(energy_struct, &be_energy_struct, &be_class_ctypes, "energy_struct");
-
-void be_load_ctypes_energy_definitions_lib(bvm *vm) {
- ctypes_register_class(vm, &be_class_energy_struct, &be_energy_struct);
-}
-/********************************************************************/
-
-#endif // USE_ENERGY_SENSOR
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_energylib.c b/lib/libesp32/berry/default/be_energylib.c
deleted file mode 100644
index cbdddbfca..000000000
--- a/lib/libesp32/berry/default/be_energylib.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import power`
- *
- * read power values
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_ENERGY_SENSOR
-
-extern struct ENERGY Energy;
-/*
-
-_energy = nil # avoid compilation error
-energy = module("energy")
-energy._ptr = nil
-
-def init(m)
- import global
- global._energy = energy_struct(m._ptr)
- return m
-end
-energy.init = init
-
-def read()
- return _energy.tomap()
-end
-energy.read = read
-
-def member(k)
- return _energy.(k)
-end
-energy.member = member
-
-def setmember(k, v)
- _energy.(k) = v
-end
-energy.setmember = setmember
-
-import solidify
-solidify.dump(energy)
-*/
-
-
-/********************************************************************
-** Solidified function: member
-********************************************************************/
-be_local_closure(energy_member, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(_energy),
- }),
- &be_const_str_member,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x88040200, // 0001 GETMBR R1 R1 R0
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: setmember
-********************************************************************/
-be_local_closure(energy_setmember, /* name */
- be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(_energy),
- }),
- &be_const_str_setmember,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x90080001, // 0001 SETMBR R2 R0 R1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read
-********************************************************************/
-be_local_closure(energy_read, /* name */
- be_nested_proto(
- 2, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_energy),
- /* K1 */ be_nested_str(tomap),
- }),
- &be_const_str_read,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0xB8020000, // 0000 GETNGBL R0 K0
- 0x8C000101, // 0001 GETMET R0 R0 K1
- 0x7C000200, // 0002 CALL R0 1
- 0x80040000, // 0003 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(energy_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(global),
- /* K1 */ be_nested_str(_energy),
- /* K2 */ be_nested_str(energy_struct),
- /* K3 */ be_nested_str(_ptr),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0400, // 0001 GETNGBL R2 K2
- 0x880C0103, // 0002 GETMBR R3 R0 K3
- 0x7C080200, // 0003 CALL R2 1
- 0x90060202, // 0004 SETMBR R1 K1 R2
- 0x80040000, // 0005 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified module: energy
-********************************************************************/
-be_local_module(energy,
- "energy",
- be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(energy_init_closure) },
- { be_const_key(member, 2), be_const_closure(energy_member_closure) },
- { be_const_key(_ptr, 3), be_const_comptr(&Energy) },
- { be_const_key(setmember, -1), be_const_closure(energy_setmember_closure) },
- { be_const_key(read, -1), be_const_closure(energy_read_closure) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(energy);
-/********************************************************************/
-
-
-// { be_const_key(_ptr, 3), be_const_comptr(&Energy) }, /* patch */
-
-#endif // USE_ENERGY_SENSOR
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_flash_lib.c b/lib/libesp32/berry/default/be_flash_lib.c
deleted file mode 100644
index 539805d5d..000000000
--- a/lib/libesp32/berry/default/be_flash_lib.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/********************************************************************
- * Berry module `webserver`
- *
- * To use: `import webserver`
- *
- * Allows to respond to HTTP request
- *******************************************************************/
-#include "be_constobj.h"
-
-extern int p_flash_read(bvm *vm);
-extern int p_flash_write(bvm *vm);
-extern int p_flash_erase(bvm *vm);
-
-/* @const_object_info_begin
-module flash (scope: global) {
- read, func(p_flash_read)
- write, func(p_flash_write)
- erase, func(p_flash_erase)
-}
-@const_object_info_end */
-#include "../generate/be_fixed_flash.h"
diff --git a/lib/libesp32/berry/default/be_gpio_lib.c b/lib/libesp32/berry/default/be_gpio_lib.c
deleted file mode 100644
index 3f0b2b3ed..000000000
--- a/lib/libesp32/berry/default/be_gpio_lib.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import power`
- *
- * read power values
- *******************************************************************/
-#include "be_constobj.h"
-
-// Tasmota specific
-
-extern int gp_member(bvm *vm);
-extern int gp_pin_mode(bvm *vm);
-extern int gp_digital_write(bvm *vm);
-extern int gp_digital_read(bvm *vm);
-extern int gp_dac_voltage(bvm *vm);
-
-extern int gp_pin_used(bvm *vm);
-extern int gp_pin(bvm *vm);
-
-/* @const_object_info_begin
-module gpio (scope: global) {
- member, func(gp_member)
-
- pin_mode, func(gp_pin_mode)
- digital_write, func(gp_digital_write)
- digital_read, func(gp_digital_read)
- dac_voltage, func(gp_dac_voltage)
-
- pin_used, func(gp_pin_used)
- pin, func(gp_pin)
-}
-@const_object_info_end */
-#include "../generate/be_fixed_gpio.h"
diff --git a/lib/libesp32/berry/default/be_i2c_axp192_lib.c b/lib/libesp32/berry/default/be_i2c_axp192_lib.c
deleted file mode 100644
index 4f9f02307..000000000
--- a/lib/libesp32/berry/default/be_i2c_axp192_lib.c
+++ /dev/null
@@ -1,899 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: get_warning_level
-********************************************************************/
-be_local_closure(AXP192_get_warning_level, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read12),
- /* K1 */ be_const_int(1),
- }),
- &be_const_str_get_warning_level,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0046, // 0001 LDINT R3 71
- 0x7C040400, // 0002 CALL R1 2
- 0x2C040301, // 0003 AND R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_vbus_current
-********************************************************************/
-be_local_closure(AXP192_get_vbus_current, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read12),
- /* K1 */ be_const_real_hex(0x3EC00000),
- }),
- &be_const_str_get_vbus_current,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E005B, // 0001 LDINT R3 92
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_chg_current
-********************************************************************/
-be_local_closure(AXP192_set_chg_current, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(write8),
- /* K1 */ be_nested_str(read8),
- }),
- &be_const_str_set_chg_current,
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x54120032, // 0001 LDINT R4 51
- 0x8C140101, // 0002 GETMET R5 R0 K1
- 0x541E0032, // 0003 LDINT R7 51
- 0x7C140400, // 0004 CALL R5 2
- 0x541A00EF, // 0005 LDINT R6 240
- 0x2C140A06, // 0006 AND R5 R5 R6
- 0x541A000E, // 0007 LDINT R6 15
- 0x2C180206, // 0008 AND R6 R1 R6
- 0x30140A06, // 0009 OR R5 R5 R6
- 0x7C080600, // 000A CALL R2 3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_bat_current
-********************************************************************/
-be_local_closure(AXP192_get_bat_current, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read13),
- /* K1 */ be_const_real_hex(0x3F000000),
- }),
- &be_const_str_get_bat_current,
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0079, // 0001 LDINT R3 122
- 0x7C040400, // 0002 CALL R1 2
- 0x8C080100, // 0003 GETMET R2 R0 K0
- 0x5412007B, // 0004 LDINT R4 124
- 0x7C080400, // 0005 CALL R2 2
- 0x04040202, // 0006 SUB R1 R1 R2
- 0x08040301, // 0007 MUL R1 R1 K1
- 0x80040200, // 0008 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_bat_power
-********************************************************************/
-be_local_closure(AXP192_get_bat_power, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read24),
- /* K1 */ be_const_real_hex(0x3A102DE1),
- }),
- &be_const_str_get_bat_power,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E006F, // 0001 LDINT R3 112
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: json_append
-********************************************************************/
-be_local_closure(AXP192_json_append, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(wire),
- }),
- &be_const_str_json_append,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x74060001, // 0001 JMPT R1 #0004
- 0x4C040000, // 0002 LDNIL R1
- 0x80040200, // 0003 RET 1 R1
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_vbus_voltage
-********************************************************************/
-be_local_closure(AXP192_get_vbus_voltage, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read12),
- /* K1 */ be_const_real_hex(0x3ADED28A),
- }),
- &be_const_str_get_vbus_voltage,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0059, // 0001 LDINT R3 90
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_temp
-********************************************************************/
-be_local_closure(AXP192_get_temp, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(read12),
- /* K1 */ be_const_real_hex(0x3DCCCCCD),
- /* K2 */ be_const_real_hex(0x4310B333),
- }),
- &be_const_str_get_temp,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E005D, // 0001 LDINT R3 94
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x04040302, // 0004 SUB R1 R1 K2
- 0x80040200, // 0005 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: battery_present
-********************************************************************/
-be_local_closure(AXP192_battery_present, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(1),
- }),
- &be_const_str_battery_present,
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x58100003, // 0003 LDCONST R4 K3
- 0x58140003, // 0004 LDCONST R5 K3
- 0x7C040800, // 0005 CALL R1 4
- 0x540A001F, // 0006 LDINT R2 32
- 0x2C040202, // 0007 AND R1 R1 R2
- 0x78060002, // 0008 JMPF R1 #000C
- 0x50040200, // 0009 LDBOOL R1 1 0
- 0x80040200, // 000A RET 1 R1
- 0x70020001, // 000B JMP #000E
- 0x50040000, // 000C LDBOOL R1 0 0
- 0x80040200, // 000D RET 1 R1
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_aps_voltage
-********************************************************************/
-be_local_closure(AXP192_get_aps_voltage, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read12),
- /* K1 */ be_const_real_hex(0x3AB78035),
- }),
- &be_const_str_get_aps_voltage,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E007D, // 0001 LDINT R3 126
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_dcdc_enable
-********************************************************************/
-be_local_closure(AXP192_set_dcdc_enable, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(1),
- /* K1 */ be_nested_str(write_bit),
- /* K2 */ be_const_int(0),
- /* K3 */ be_const_int(2),
- /* K4 */ be_const_int(3),
- }),
- &be_const_str_set_dcdc_enable,
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x1C0C0300, // 0000 EQ R3 R1 K0
- 0x780E0004, // 0001 JMPF R3 #0007
- 0x8C0C0101, // 0002 GETMET R3 R0 K1
- 0x54160011, // 0003 LDINT R5 18
- 0x58180002, // 0004 LDCONST R6 K2
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x7C0C0800, // 0006 CALL R3 4
- 0x1C0C0303, // 0007 EQ R3 R1 K3
- 0x780E0004, // 0008 JMPF R3 #000E
- 0x8C0C0101, // 0009 GETMET R3 R0 K1
- 0x54160011, // 000A LDINT R5 18
- 0x541A0003, // 000B LDINT R6 4
- 0x5C1C0400, // 000C MOVE R7 R2
- 0x7C0C0800, // 000D CALL R3 4
- 0x1C0C0304, // 000E EQ R3 R1 K4
- 0x780E0004, // 000F JMPF R3 #0015
- 0x8C0C0101, // 0010 GETMET R3 R0 K1
- 0x54160011, // 0011 LDINT R5 18
- 0x58180000, // 0012 LDCONST R6 K0
- 0x5C1C0400, // 0013 MOVE R7 R2
- 0x7C0C0800, // 0014 CALL R3 4
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_ldo_voltage
-********************************************************************/
-be_local_closure(AXP192_set_ldo_voltage, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(2),
- /* K1 */ be_nested_str(write8),
- /* K2 */ be_nested_str(read8),
- /* K3 */ be_const_int(3),
- }),
- &be_const_str_set_ldo_voltage,
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x540E0CE3, // 0000 LDINT R3 3300
- 0x240C0403, // 0001 GT R3 R2 R3
- 0x780E0001, // 0002 JMPF R3 #0005
- 0x540A000E, // 0003 LDINT R2 15
- 0x70020004, // 0004 JMP #000A
- 0x540E0063, // 0005 LDINT R3 100
- 0x0C0C0403, // 0006 DIV R3 R2 R3
- 0x54120011, // 0007 LDINT R4 18
- 0x040C0604, // 0008 SUB R3 R3 R4
- 0x5C080600, // 0009 MOVE R2 R3
- 0x1C0C0300, // 000A EQ R3 R1 K0
- 0x780E000C, // 000B JMPF R3 #0019
- 0x8C0C0101, // 000C GETMET R3 R0 K1
- 0x54160027, // 000D LDINT R5 40
- 0x8C180102, // 000E GETMET R6 R0 K2
- 0x54220027, // 000F LDINT R8 40
- 0x7C180400, // 0010 CALL R6 2
- 0x541E000E, // 0011 LDINT R7 15
- 0x2C180C07, // 0012 AND R6 R6 R7
- 0x541E000E, // 0013 LDINT R7 15
- 0x2C1C0407, // 0014 AND R7 R2 R7
- 0x54220003, // 0015 LDINT R8 4
- 0x381C0E08, // 0016 SHL R7 R7 R8
- 0x30180C07, // 0017 OR R6 R6 R7
- 0x7C0C0600, // 0018 CALL R3 3
- 0x1C0C0303, // 0019 EQ R3 R1 K3
- 0x780E000A, // 001A JMPF R3 #0026
- 0x8C0C0101, // 001B GETMET R3 R0 K1
- 0x54160027, // 001C LDINT R5 40
- 0x8C180102, // 001D GETMET R6 R0 K2
- 0x54220027, // 001E LDINT R8 40
- 0x7C180400, // 001F CALL R6 2
- 0x541E00EF, // 0020 LDINT R7 240
- 0x2C180C07, // 0021 AND R6 R6 R7
- 0x541E000E, // 0022 LDINT R7 15
- 0x2C1C0407, // 0023 AND R7 R2 R7
- 0x30180C07, // 0024 OR R6 R6 R7
- 0x7C0C0600, // 0025 CALL R3 3
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(AXP192_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* 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(I2C_Driver),
- /* K1 */ be_nested_str(init),
- /* K2 */ be_nested_str(AXP192),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0xB80E0000, // 0002 GETNGBL R3 K0
- 0x7C040400, // 0003 CALL R1 2
- 0x8C040301, // 0004 GETMET R1 R1 K1
- 0x580C0002, // 0005 LDCONST R3 K2
- 0x54120033, // 0006 LDINT R4 52
- 0x7C040600, // 0007 CALL R1 3
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_bat_voltage
-********************************************************************/
-be_local_closure(AXP192_get_bat_voltage, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read12),
- /* K1 */ be_const_real_hex(0x3A902DE0),
- }),
- &be_const_str_get_bat_voltage,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0077, // 0001 LDINT R3 120
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_ldo_enable
-********************************************************************/
-be_local_closure(AXP192_set_ldo_enable, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* 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_const_int(2),
- /* K1 */ be_nested_str(write_bit),
- /* K2 */ be_const_int(3),
- }),
- &be_const_str_set_ldo_enable,
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x1C0C0300, // 0000 EQ R3 R1 K0
- 0x780E0004, // 0001 JMPF R3 #0007
- 0x8C0C0101, // 0002 GETMET R3 R0 K1
- 0x54160011, // 0003 LDINT R5 18
- 0x58180000, // 0004 LDCONST R6 K0
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x7C0C0800, // 0006 CALL R3 4
- 0x1C0C0302, // 0007 EQ R3 R1 K2
- 0x780E0004, // 0008 JMPF R3 #000E
- 0x8C0C0101, // 0009 GETMET R3 R0 K1
- 0x54160011, // 000A LDINT R5 18
- 0x58180002, // 000B LDCONST R6 K2
- 0x5C1C0400, // 000C MOVE R7 R2
- 0x7C0C0800, // 000D CALL R3 4
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_dc_voltage
-********************************************************************/
-be_local_closure(AXP192_set_dc_voltage, /* name */
- be_nested_proto(
- 11, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_int(1),
- /* K1 */ be_const_int(3),
- /* K2 */ be_const_int(0),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str(write8),
- /* K5 */ be_nested_str(read8),
- }),
- &be_const_str_set_dc_voltage,
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0x140C0300, // 0000 LT R3 R1 K0
- 0x740E0001, // 0001 JMPT R3 #0004
- 0x240C0301, // 0002 GT R3 R1 K1
- 0x780E0000, // 0003 JMPF R3 #0005
- 0x80000600, // 0004 RET 0
- 0x4C0C0000, // 0005 LDNIL R3
- 0x541202BB, // 0006 LDINT R4 700
- 0x14100404, // 0007 LT R4 R2 R4
- 0x78120001, // 0008 JMPF R4 #000B
- 0x580C0002, // 0009 LDCONST R3 K2
- 0x70020010, // 000A JMP #001C
- 0x54120DAB, // 000B LDINT R4 3500
- 0x24100404, // 000C GT R4 R2 R4
- 0x78120001, // 000D JMPF R4 #0010
- 0x540E006F, // 000E LDINT R3 112
- 0x7002000B, // 000F JMP #001C
- 0x1C100303, // 0010 EQ R4 R1 K3
- 0x78120004, // 0011 JMPF R4 #0017
- 0x541208E2, // 0012 LDINT R4 2275
- 0x24100404, // 0013 GT R4 R2 R4
- 0x78120001, // 0014 JMPF R4 #0017
- 0x540E003E, // 0015 LDINT R3 63
- 0x70020004, // 0016 JMP #001C
- 0x541202BB, // 0017 LDINT R4 700
- 0x04100404, // 0018 SUB R4 R2 R4
- 0x54160018, // 0019 LDINT R5 25
- 0x0C100805, // 001A DIV R4 R4 R5
- 0x5C0C0800, // 001B MOVE R3 R4
- 0x54120025, // 001C LDINT R4 38
- 0x1C140301, // 001D EQ R5 R1 K1
- 0x78160001, // 001E JMPF R5 #0021
- 0x54120026, // 001F LDINT R4 39
- 0x70020002, // 0020 JMP #0024
- 0x1C140303, // 0021 EQ R5 R1 K3
- 0x78160000, // 0022 JMPF R5 #0024
- 0x54120022, // 0023 LDINT R4 35
- 0x8C140104, // 0024 GETMET R5 R0 K4
- 0x5C1C0800, // 0025 MOVE R7 R4
- 0x8C200105, // 0026 GETMET R8 R0 K5
- 0x5C280800, // 0027 MOVE R10 R4
- 0x7C200400, // 0028 CALL R8 2
- 0x5426007F, // 0029 LDINT R9 128
- 0x2C201009, // 002A AND R8 R8 R9
- 0x5426007E, // 002B LDINT R9 127
- 0x2C240609, // 002C AND R9 R3 R9
- 0x30201009, // 002D OR R8 R8 R9
- 0x7C140600, // 002E CALL R5 3
- 0x80000000, // 002F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: write_gpio
-********************************************************************/
-be_local_closure(AXP192_write_gpio, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_const_int(2),
- /* K2 */ be_nested_str(write_bit),
- /* K3 */ be_const_int(3),
- }),
- &be_const_str_write_gpio,
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x280C0300, // 0000 GE R3 R1 K0
- 0x780E0007, // 0001 JMPF R3 #000A
- 0x180C0301, // 0002 LE R3 R1 K1
- 0x780E0005, // 0003 JMPF R3 #000A
- 0x8C0C0102, // 0004 GETMET R3 R0 K2
- 0x54160093, // 0005 LDINT R5 148
- 0x5C180200, // 0006 MOVE R6 R1
- 0x5C1C0400, // 0007 MOVE R7 R2
- 0x7C0C0800, // 0008 CALL R3 4
- 0x70020009, // 0009 JMP #0014
- 0x280C0303, // 000A GE R3 R1 K3
- 0x780E0007, // 000B JMPF R3 #0014
- 0x540E0003, // 000C LDINT R3 4
- 0x180C0203, // 000D LE R3 R1 R3
- 0x780E0004, // 000E JMPF R3 #0014
- 0x8C0C0102, // 000F GETMET R3 R0 K2
- 0x54160095, // 0010 LDINT R5 150
- 0x04180303, // 0011 SUB R6 R1 K3
- 0x5C1C0400, // 0012 MOVE R7 R2
- 0x7C0C0800, // 0013 CALL R3 4
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_sensor
-********************************************************************/
-be_local_closure(AXP192_web_sensor, /* name */
- be_nested_proto(
- 11, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(format),
- /* K3 */ be_nested_str(_X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D),
- /* K4 */ be_nested_str(_X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D),
- /* K5 */ be_nested_str(_X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D),
- /* K6 */ be_nested_str(_X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D),
- /* K7 */ be_nested_str(_X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_XB0C_X7Be_X7D),
- /* K8 */ be_nested_str(get_vbus_voltage),
- /* K9 */ be_nested_str(get_bat_voltage),
- /* K10 */ be_nested_str(get_bat_current),
- /* K11 */ be_nested_str(get_temp),
- /* K12 */ be_nested_str(tasmota),
- /* K13 */ be_nested_str(web_send_decimal),
- }),
- &be_const_str_web_sensor,
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x74060001, // 0001 JMPT R1 #0004
- 0x4C040000, // 0002 LDNIL R1
- 0x80040200, // 0003 RET 1 R1
- 0xA4060200, // 0004 IMPORT R1 K1
- 0x8C080302, // 0005 GETMET R2 R1 K2
- 0x40120704, // 0006 CONNECT R4 K3 K4
- 0x40100905, // 0007 CONNECT R4 R4 K5
- 0x40100906, // 0008 CONNECT R4 R4 K6
- 0x40100907, // 0009 CONNECT R4 R4 K7
- 0x8C140108, // 000A GETMET R5 R0 K8
- 0x7C140200, // 000B CALL R5 1
- 0x8C180108, // 000C GETMET R6 R0 K8
- 0x7C180200, // 000D CALL R6 1
- 0x8C1C0109, // 000E GETMET R7 R0 K9
- 0x7C1C0200, // 000F CALL R7 1
- 0x8C20010A, // 0010 GETMET R8 R0 K10
- 0x7C200200, // 0011 CALL R8 1
- 0x8C24010B, // 0012 GETMET R9 R0 K11
- 0x7C240200, // 0013 CALL R9 1
- 0x7C080E00, // 0014 CALL R2 7
- 0xB80E1800, // 0015 GETNGBL R3 K12
- 0x8C0C070D, // 0016 GETMET R3 R3 K13
- 0x5C140400, // 0017 MOVE R5 R2
- 0x7C0C0400, // 0018 CALL R3 2
- 0x80000000, // 0019 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_bat_charge_current
-********************************************************************/
-be_local_closure(AXP192_get_bat_charge_current, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(read13),
- /* K1 */ be_const_real_hex(0x3F000000),
- }),
- &be_const_str_get_bat_charge_current,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0079, // 0001 LDINT R3 122
- 0x7C040400, // 0002 CALL R1 2
- 0x08040301, // 0003 MUL R1 R1 K1
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_battery_chargin_status
-********************************************************************/
-be_local_closure(AXP192_get_battery_chargin_status, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(1),
- }),
- &be_const_str_get_battery_chargin_status,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x58100003, // 0003 LDCONST R4 K3
- 0x58140003, // 0004 LDCONST R5 K3
- 0x7C040800, // 0005 CALL R1 4
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_input_power_status
-********************************************************************/
-be_local_closure(AXP192_get_input_power_status, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(1),
- }),
- &be_const_str_get_input_power_status,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x58100003, // 0003 LDCONST R4 K3
- 0x58140004, // 0004 LDCONST R5 K4
- 0x7C040800, // 0005 CALL R1 4
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: AXP192
-********************************************************************/
-extern const bclass be_class_I2C_Driver;
-be_local_class(AXP192,
- 0,
- &be_class_I2C_Driver,
- be_nested_map(21,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(get_warning_level, -1), be_const_closure(AXP192_get_warning_level_closure) },
- { be_const_key(get_vbus_current, -1), be_const_closure(AXP192_get_vbus_current_closure) },
- { be_const_key(get_aps_voltage, -1), be_const_closure(AXP192_get_aps_voltage_closure) },
- { be_const_key(get_bat_current, -1), be_const_closure(AXP192_get_bat_current_closure) },
- { be_const_key(get_bat_power, 2), be_const_closure(AXP192_get_bat_power_closure) },
- { be_const_key(json_append, -1), be_const_closure(AXP192_json_append_closure) },
- { be_const_key(get_vbus_voltage, -1), be_const_closure(AXP192_get_vbus_voltage_closure) },
- { be_const_key(get_battery_chargin_status, 9), be_const_closure(AXP192_get_battery_chargin_status_closure) },
- { be_const_key(battery_present, -1), be_const_closure(AXP192_battery_present_closure) },
- { be_const_key(get_bat_charge_current, 14), be_const_closure(AXP192_get_bat_charge_current_closure) },
- { be_const_key(set_dcdc_enable, -1), be_const_closure(AXP192_set_dcdc_enable_closure) },
- { be_const_key(get_temp, 19), be_const_closure(AXP192_get_temp_closure) },
- { be_const_key(set_chg_current, 13), be_const_closure(AXP192_set_chg_current_closure) },
- { be_const_key(set_ldo_enable, 18), be_const_closure(AXP192_set_ldo_enable_closure) },
- { be_const_key(set_dc_voltage, -1), be_const_closure(AXP192_set_dc_voltage_closure) },
- { be_const_key(get_bat_voltage, 7), be_const_closure(AXP192_get_bat_voltage_closure) },
- { be_const_key(write_gpio, -1), be_const_closure(AXP192_write_gpio_closure) },
- { be_const_key(web_sensor, -1), be_const_closure(AXP192_web_sensor_closure) },
- { be_const_key(init, -1), be_const_closure(AXP192_init_closure) },
- { be_const_key(set_ldo_voltage, -1), be_const_closure(AXP192_set_ldo_voltage_closure) },
- { be_const_key(get_input_power_status, -1), be_const_closure(AXP192_get_input_power_status_closure) },
- })),
- be_str_literal("AXP192")
-);
-/*******************************************************************/
-
-void be_load_AXP192_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_AXP192);
- be_setglobal(vm, "AXP192");
- be_pop(vm, 1);
-}
diff --git a/lib/libesp32/berry/default/be_i2c_driverlib.c b/lib/libesp32/berry/default/be_i2c_driverlib.c
deleted file mode 100644
index 45f829e19..000000000
--- a/lib/libesp32/berry/default/be_i2c_driverlib.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/********************************************************************
- * Tasmota I2C_Driver class
- *
- * To use: `d = I2C_Driver(addr, name)`
- * where:
- * addr: I2C address of the device
- * name: name of the I2C chip for logging
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: read32
-********************************************************************/
-be_local_closure(I2C_Driver_read32, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read_bytes),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(2),
- /* K6 */ be_const_int(3),
- }),
- &be_const_str_read32,
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x5C140200, // 0003 MOVE R5 R1
- 0x541A0003, // 0004 LDINT R6 4
- 0x7C080800, // 0005 CALL R2 4
- 0x940C0503, // 0006 GETIDX R3 R2 K3
- 0x54120017, // 0007 LDINT R4 24
- 0x380C0604, // 0008 SHL R3 R3 R4
- 0x94100504, // 0009 GETIDX R4 R2 K4
- 0x5416000F, // 000A LDINT R5 16
- 0x38100805, // 000B SHL R4 R4 R5
- 0x000C0604, // 000C ADD R3 R3 R4
- 0x94100505, // 000D GETIDX R4 R2 K5
- 0x54160007, // 000E LDINT R5 8
- 0x38100805, // 000F SHL R4 R4 R5
- 0x000C0604, // 0010 ADD R3 R3 R4
- 0x94100506, // 0011 GETIDX R4 R2 K6
- 0x000C0604, // 0012 ADD R3 R3 R4
- 0x80040600, // 0013 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: write8
-********************************************************************/
-be_local_closure(I2C_Driver_write8, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(write),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(1),
- }),
- &be_const_str_write8,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x58200003, // 0005 LDCONST R8 K3
- 0x7C0C0A00, // 0006 CALL R3 5
- 0x80040600, // 0007 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read12
-********************************************************************/
-be_local_closure(I2C_Driver_read12, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read_bytes),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(2),
- /* K4 */ be_const_int(0),
- /* K5 */ be_const_int(1),
- }),
- &be_const_str_read12,
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x5C140200, // 0003 MOVE R5 R1
- 0x58180003, // 0004 LDCONST R6 K3
- 0x7C080800, // 0005 CALL R2 4
- 0x940C0504, // 0006 GETIDX R3 R2 K4
- 0x54120003, // 0007 LDINT R4 4
- 0x380C0604, // 0008 SHL R3 R3 R4
- 0x94100505, // 0009 GETIDX R4 R2 K5
- 0x000C0604, // 000A ADD R3 R3 R4
- 0x80040600, // 000B RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: write_bit
-********************************************************************/
-be_local_closure(I2C_Driver_write_bit, /* name */
- be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str(write8),
- /* K3 */ be_nested_str(read8),
- }),
- &be_const_str_write_bit,
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x14100500, // 0000 LT R4 R2 K0
- 0x74120002, // 0001 JMPT R4 #0005
- 0x54120006, // 0002 LDINT R4 7
- 0x24100404, // 0003 GT R4 R2 R4
- 0x78120000, // 0004 JMPF R4 #0006
- 0x80000800, // 0005 RET 0
- 0x38120202, // 0006 SHL R4 K1 R2
- 0x780E0007, // 0007 JMPF R3 #0010
- 0x8C140102, // 0008 GETMET R5 R0 K2
- 0x5C1C0200, // 0009 MOVE R7 R1
- 0x8C200103, // 000A GETMET R8 R0 K3
- 0x5C280200, // 000B MOVE R10 R1
- 0x7C200400, // 000C CALL R8 2
- 0x30201004, // 000D OR R8 R8 R4
- 0x7C140600, // 000E CALL R5 3
- 0x70020008, // 000F JMP #0019
- 0x8C140102, // 0010 GETMET R5 R0 K2
- 0x5C1C0200, // 0011 MOVE R7 R1
- 0x8C200103, // 0012 GETMET R8 R0 K3
- 0x5C280200, // 0013 MOVE R10 R1
- 0x7C200400, // 0014 CALL R8 2
- 0x542600FE, // 0015 LDINT R9 255
- 0x04241204, // 0016 SUB R9 R9 R4
- 0x2C201009, // 0017 AND R8 R8 R9
- 0x7C140600, // 0018 CALL R5 3
- 0x80000000, // 0019 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read24
-********************************************************************/
-be_local_closure(I2C_Driver_read24, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read_bytes),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(3),
- /* K4 */ be_const_int(0),
- /* K5 */ be_const_int(1),
- /* K6 */ be_const_int(2),
- }),
- &be_const_str_read24,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x5C140200, // 0003 MOVE R5 R1
- 0x58180003, // 0004 LDCONST R6 K3
- 0x7C080800, // 0005 CALL R2 4
- 0x940C0504, // 0006 GETIDX R3 R2 K4
- 0x5412000F, // 0007 LDINT R4 16
- 0x380C0604, // 0008 SHL R3 R3 R4
- 0x94100505, // 0009 GETIDX R4 R2 K5
- 0x54160007, // 000A LDINT R5 8
- 0x38100805, // 000B SHL R4 R4 R5
- 0x000C0604, // 000C ADD R3 R3 R4
- 0x94100506, // 000D GETIDX R4 R2 K6
- 0x000C0604, // 000E ADD R3 R3 R4
- 0x80040600, // 000F RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read8
-********************************************************************/
-be_local_closure(I2C_Driver_read8, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(1),
- }),
- &be_const_str_read8,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x5C140200, // 0003 MOVE R5 R1
- 0x58180003, // 0004 LDCONST R6 K3
- 0x7C080800, // 0005 CALL R2 4
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(I2C_Driver_init, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(get_tasmota),
- /* K1 */ be_nested_str(i2c_enabled),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_nested_str(wire),
- /* K4 */ be_nested_str(wire_scan),
- /* K5 */ be_nested_str(function),
- /* K6 */ be_nested_str(name),
- /* K7 */ be_nested_str(I2C_X3A),
- /* K8 */ be_nested_str(detected_X20on_X20bus),
- /* K9 */ be_nested_str(bus),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[44]) { /* code */
- 0x8C100100, // 0000 GETMET R4 R0 K0
- 0x7C100200, // 0001 CALL R4 1
- 0x4C140000, // 0002 LDNIL R5
- 0x20140605, // 0003 NE R5 R3 R5
- 0x78160004, // 0004 JMPF R5 #000A
- 0x8C140901, // 0005 GETMET R5 R4 K1
- 0x5C1C0600, // 0006 MOVE R7 R3
- 0x7C140400, // 0007 CALL R5 2
- 0x74160000, // 0008 JMPT R5 #000A
- 0x80000A00, // 0009 RET 0
- 0x90020402, // 000A SETMBR R0 K2 R2
- 0x8C140904, // 000B GETMET R5 R4 K4
- 0x881C0102, // 000C GETMBR R7 R0 K2
- 0x7C140400, // 000D CALL R5 2
- 0x90020605, // 000E SETMBR R0 K3 R5
- 0x88140103, // 000F GETMBR R5 R0 K3
- 0x78160019, // 0010 JMPF R5 #002B
- 0x60140004, // 0011 GETGBL R5 G4
- 0x5C180200, // 0012 MOVE R6 R1
- 0x7C140200, // 0013 CALL R5 1
- 0x1C140B05, // 0014 EQ R5 R5 K5
- 0x78160004, // 0015 JMPF R5 #001B
- 0x5C140200, // 0016 MOVE R5 R1
- 0x5C180000, // 0017 MOVE R6 R0
- 0x7C140200, // 0018 CALL R5 1
- 0x90020C05, // 0019 SETMBR R0 K6 R5
- 0x70020000, // 001A JMP #001C
- 0x90020C01, // 001B SETMBR R0 K6 R1
- 0x88140106, // 001C GETMBR R5 R0 K6
- 0x4C180000, // 001D LDNIL R6
- 0x1C140A06, // 001E EQ R5 R5 R6
- 0x78160001, // 001F JMPF R5 #0022
- 0x4C140000, // 0020 LDNIL R5
- 0x90020605, // 0021 SETMBR R0 K3 R5
- 0x88140103, // 0022 GETMBR R5 R0 K3
- 0x78160006, // 0023 JMPF R5 #002B
- 0x60140001, // 0024 GETGBL R5 G1
- 0x58180007, // 0025 LDCONST R6 K7
- 0x881C0106, // 0026 GETMBR R7 R0 K6
- 0x58200008, // 0027 LDCONST R8 K8
- 0x88240103, // 0028 GETMBR R9 R0 K3
- 0x88241309, // 0029 GETMBR R9 R9 K9
- 0x7C140800, // 002A CALL R5 4
- 0x80000000, // 002B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read13
-********************************************************************/
-be_local_closure(I2C_Driver_read13, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(wire),
- /* K1 */ be_nested_str(read_bytes),
- /* K2 */ be_nested_str(addr),
- /* K3 */ be_const_int(2),
- /* K4 */ be_const_int(0),
- /* K5 */ be_const_int(1),
- }),
- &be_const_str_read13,
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x5C140200, // 0003 MOVE R5 R1
- 0x58180003, // 0004 LDCONST R6 K3
- 0x7C080800, // 0005 CALL R2 4
- 0x940C0504, // 0006 GETIDX R3 R2 K4
- 0x54120004, // 0007 LDINT R4 5
- 0x380C0604, // 0008 SHL R3 R3 R4
- 0x94100505, // 0009 GETIDX R4 R2 K5
- 0x000C0604, // 000A ADD R3 R3 R4
- 0x80040600, // 000B RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: I2C_Driver
-********************************************************************/
-be_local_class(I2C_Driver,
- 3,
- NULL,
- be_nested_map(11,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(read32, -1), be_const_closure(I2C_Driver_read32_closure) },
- { be_const_key(write8, 6), be_const_closure(I2C_Driver_write8_closure) },
- { be_const_key(name, -1), be_const_var(2) },
- { be_const_key(addr, 8), be_const_var(1) },
- { be_const_key(read12, -1), be_const_closure(I2C_Driver_read12_closure) },
- { be_const_key(wire, 10), be_const_var(0) },
- { be_const_key(read13, -1), be_const_closure(I2C_Driver_read13_closure) },
- { be_const_key(read24, -1), be_const_closure(I2C_Driver_read24_closure) },
- { be_const_key(read8, -1), be_const_closure(I2C_Driver_read8_closure) },
- { be_const_key(init, -1), be_const_closure(I2C_Driver_init_closure) },
- { be_const_key(write_bit, -1), be_const_closure(I2C_Driver_write_bit_closure) },
- })),
- be_str_literal("I2C_Driver")
-);
-/*******************************************************************/
-
-void be_load_I2C_Driver_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_I2C_Driver);
- be_setglobal(vm, "I2C_Driver");
- be_pop(vm, 1);
-}
diff --git a/lib/libesp32/berry/default/be_i2s_audio_lib.c b/lib/libesp32/berry/default/be_i2s_audio_lib.c
deleted file mode 100644
index ef8720b23..000000000
--- a/lib/libesp32/berry/default/be_i2s_audio_lib.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/********************************************************************
- * Tasmota I2S audio classes
- *
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_I2S
-#ifdef USE_I2S_AUDIO_BERRY
-
-extern int i2s_output_i2s_init(bvm *vm);
-extern int i2s_output_i2s_deinit(bvm *vm);
-extern int i2s_output_i2s_stop(bvm *vm);
-
-extern int i2s_generator_wav_init(bvm *vm);
-extern int i2s_generator_wav_deinit(bvm *vm);
-extern int i2s_generator_wav_begin(bvm *vm);
-extern int i2s_generator_wav_loop(bvm *vm);
-extern int i2s_generator_wav_stop(bvm *vm);
-extern int i2s_generator_wav_isrunning(bvm *vm);
-
-extern int i2s_generator_mp3_init(bvm *vm);
-extern int i2s_generator_mp3_deinit(bvm *vm);
-extern int i2s_generator_mp3_begin(bvm *vm);
-extern int i2s_generator_mp3_loop(bvm *vm);
-extern int i2s_generator_mp3_stop(bvm *vm);
-extern int i2s_generator_mp3_isrunning(bvm *vm);
-
-#ifdef USE_UFILESYS
-extern int i2s_file_source_fs_init(bvm *vm);
-extern int i2s_file_source_fs_deinit(bvm *vm);
-#endif // USE_UFILESYS
-
-
-#include "../generate/be_fixed_be_class_audio_output.h"
-#include "../generate/be_fixed_be_class_audio_output_i2s.h"
-#include "../generate/be_fixed_be_class_audio_generator.h"
-#include "../generate/be_fixed_be_class_audio_generator_wav.h"
-#include "../generate/be_fixed_be_class_audio_generator_mp3.h"
-#include "../generate/be_fixed_be_class_audio_file_source.h"
-#include "../generate/be_fixed_be_class_audio_file_source_fs.h"
-
-void be_load_driver_audio_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_audio_output);
- be_setglobal(vm, "AudioOutput");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_output_i2s);
- be_setglobal(vm, "AudioOutputI2S");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_generator_wav);
- be_setglobal(vm, "AudioGeneratorWAV");
- be_pop(vm, 1);
-
- be_pushntvclass(vm, &be_class_audio_generator_mp3);
- be_setglobal(vm, "AudioGeneratorMP3");
- be_pop(vm, 1);
-
-#ifdef USE_UFILESYS
- be_pushntvclass(vm, &be_class_audio_file_source_fs);
- be_setglobal(vm, "AudioFileSourceFS");
- be_pop(vm, 1);
-#endif // USE_UFILESYS
-}
-
-/* @const_object_info_begin
-
-class be_class_audio_output (scope: global, name: AudioOutput) {
- .p, var
-}
-
-class be_class_audio_generator (scope: global, name: AudioGenerator) {
- .p, var
-}
-
-class be_class_audio_file_source (scope: global, name: AudioFileSource) {
- .p, var
-}
-
-class be_class_audio_output_i2s (scope: global, name: AudioOutputI2S, super: be_class_audio_output) {
- init, func(i2s_output_i2s_init)
- deinit, func(i2s_output_i2s_deinit)
- stop, func(i2s_output_i2s_stop)
-}
-
-class be_class_audio_generator_wav (scope: global, name: AudioGeneratorWAV, super: be_class_audio_generator) {
- init, func(i2s_generator_wav_init)
- deinit, func(i2s_generator_wav_deinit)
- begin, func(i2s_generator_wav_begin)
- loop, func(i2s_generator_wav_loop)
- stop, func(i2s_generator_wav_stop)
- isrunning, func(i2s_generator_wav_isrunning)
-}
-
-class be_class_audio_generator_mp3 (scope: global, name: AudioGeneratorMP3, super: be_class_audio_generator) {
- init, func(i2s_generator_mp3_init)
- deinit, func(i2s_generator_mp3_deinit)
- begin, func(i2s_generator_mp3_begin)
- loop, func(i2s_generator_mp3_loop)
- stop, func(i2s_generator_mp3_stop)
- isrunning, func(i2s_generator_mp3_isrunning)
-}
-
-class be_class_audio_file_source_fs (scope: global, name: AudioFileSourceFS, super: be_class_audio_file_source) {
- init, func(i2s_file_source_fs_init)
- deinit, func(i2s_file_source_fs_deinit)
-}
-
-@const_object_info_end */
-
-#endif // USE_I2S_AUDIO_BERRY
-#endif // USE_I2S
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_leds_animator_lib.c b/lib/libesp32/berry/default/be_leds_animator_lib.c
deleted file mode 100644
index bd82193b9..000000000
--- a/lib/libesp32/berry/default/be_leds_animator_lib.c
+++ /dev/null
@@ -1,381 +0,0 @@
-/********************************************************************
- * Berry class `Leds_animator`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_WS2812
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Leds_animator_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(bri),
- /* K2 */ be_nested_str(running),
- /* K3 */ be_nested_str(pixel_count),
- /* K4 */ be_nested_str(animators),
- /* K5 */ be_nested_str(clear),
- /* K6 */ be_nested_str(tasmota),
- /* K7 */ be_nested_str(add_driver),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x540A0031, // 0001 LDINT R2 50
- 0x90020202, // 0002 SETMBR R0 K1 R2
- 0x50080000, // 0003 LDBOOL R2 0 0
- 0x90020402, // 0004 SETMBR R0 K2 R2
- 0x8C080303, // 0005 GETMET R2 R1 K3
- 0x7C080200, // 0006 CALL R2 1
- 0x90020602, // 0007 SETMBR R0 K3 R2
- 0x60080012, // 0008 GETGBL R2 G18
- 0x7C080000, // 0009 CALL R2 0
- 0x90020802, // 000A SETMBR R0 K4 R2
- 0x8C080105, // 000B GETMET R2 R0 K5
- 0x7C080200, // 000C CALL R2 1
- 0xB80A0C00, // 000D GETNGBL R2 K6
- 0x8C080507, // 000E GETMET R2 R2 K7
- 0x5C100000, // 000F MOVE R4 R0
- 0x7C080400, // 0010 CALL R2 2
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_bri
-********************************************************************/
-be_local_closure(Leds_animator_set_bri, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(bri),
- }),
- &be_const_str_set_bri,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-be_local_closure(Leds_animator_stop, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(running),
- }),
- &be_const_str_stop,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: animate
-********************************************************************/
-be_local_closure(Leds_animator_animate, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_animate,
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove
-********************************************************************/
-be_local_closure(Leds_animator_remove, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(remove_driver),
- }),
- &be_const_str_remove,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_50ms
-********************************************************************/
-be_local_closure(Leds_animator_every_50ms, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(running),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(animators),
- /* K3 */ be_nested_str(is_running),
- /* K4 */ be_nested_str(animate),
- /* K5 */ be_const_int(1),
- /* K6 */ be_nested_str(remove),
- }),
- &be_const_str_every_50ms,
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060015, // 0001 JMPF R1 #0018
- 0x58040001, // 0002 LDCONST R1 K1
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x880C0102, // 0004 GETMBR R3 R0 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x14080202, // 0006 LT R2 R1 R2
- 0x780A000D, // 0007 JMPF R2 #0016
- 0x88080102, // 0008 GETMBR R2 R0 K2
- 0x94080401, // 0009 GETIDX R2 R2 R1
- 0x8C0C0503, // 000A GETMET R3 R2 K3
- 0x7C0C0200, // 000B CALL R3 1
- 0x780E0003, // 000C JMPF R3 #0011
- 0x8C0C0504, // 000D GETMET R3 R2 K4
- 0x7C0C0200, // 000E CALL R3 1
- 0x00040305, // 000F ADD R1 R1 K5
- 0x70020003, // 0010 JMP #0015
- 0x880C0102, // 0011 GETMBR R3 R0 K2
- 0x8C0C0706, // 0012 GETMET R3 R3 K6
- 0x5C140200, // 0013 MOVE R5 R1
- 0x7C0C0400, // 0014 CALL R3 2
- 0x7001FFEC, // 0015 JMP #0003
- 0x8C080104, // 0016 GETMET R2 R0 K4
- 0x7C080200, // 0017 CALL R2 1
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_bri
-********************************************************************/
-be_local_closure(Leds_animator_get_bri, /* name */
- be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(bri),
- }),
- &be_const_str_get_bri,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x80040400, // 0001 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-be_local_closure(Leds_animator_start, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(running),
- }),
- &be_const_str_start,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x50040200, // 0000 LDBOOL R1 1 0
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_anim
-********************************************************************/
-be_local_closure(Leds_animator_add_anim, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(animators),
- /* K1 */ be_nested_str(push),
- /* K2 */ be_nested_str(run),
- }),
- &be_const_str_add_anim,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x8C080302, // 0004 GETMET R2 R1 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear
-********************************************************************/
-be_local_closure(Leds_animator_clear, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* 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(stop),
- /* K1 */ be_nested_str(strip),
- /* K2 */ be_nested_str(clear),
- }),
- &be_const_str_clear,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x88040101, // 0002 GETMBR R1 R0 K1
- 0x8C040302, // 0003 GETMET R1 R1 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Leds_animator
-********************************************************************/
-be_local_class(Leds_animator,
- 5,
- NULL,
- be_nested_map(15,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, 12), be_const_closure(Leds_animator_init_closure) },
- { be_const_key(clear, -1), be_const_closure(Leds_animator_clear_closure) },
- { be_const_key(stop, -1), be_const_closure(Leds_animator_stop_closure) },
- { be_const_key(strip, 4), be_const_var(0) },
- { be_const_key(pixel_count, 6), be_const_var(1) },
- { be_const_key(animate, -1), be_const_closure(Leds_animator_animate_closure) },
- { be_const_key(add_anim, 13), be_const_closure(Leds_animator_add_anim_closure) },
- { be_const_key(bri, -1), be_const_var(2) },
- { be_const_key(every_50ms, -1), be_const_closure(Leds_animator_every_50ms_closure) },
- { be_const_key(remove, 7), be_const_closure(Leds_animator_remove_closure) },
- { be_const_key(get_bri, -1), be_const_closure(Leds_animator_get_bri_closure) },
- { be_const_key(start, -1), be_const_closure(Leds_animator_start_closure) },
- { be_const_key(running, -1), be_const_var(3) },
- { be_const_key(animators, -1), be_const_var(4) },
- { be_const_key(set_bri, 1), be_const_closure(Leds_animator_set_bri_closure) },
- })),
- be_str_literal("Leds_animator")
-);
-/*******************************************************************/
-
-void be_load_Leds_animator_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_Leds_animator);
- be_setglobal(vm, "Leds_animator");
- be_pop(vm, 1);
-}
-
-#endif // USE_WS2812
diff --git a/lib/libesp32/berry/default/be_leds_lib.c b/lib/libesp32/berry/default/be_leds_lib.c
deleted file mode 100644
index 58b0a991e..000000000
--- a/lib/libesp32/berry/default/be_leds_lib.c
+++ /dev/null
@@ -1,1815 +0,0 @@
-/********************************************************************
- * Berry class `Leds`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_WS2812
-
-/********************************************************************
-** Solidified function: pixel_count
-********************************************************************/
-be_local_closure(Leds_matrix_pixel_count, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(w),
- /* K1 */ be_nested_str(h),
- }),
- &be_const_str_pixel_count,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x08040202, // 0002 MUL R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_alternate
-********************************************************************/
-be_local_closure(Leds_matrix_set_alternate, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(alternate),
- }),
- &be_const_str_set_alternate,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixel_size
-********************************************************************/
-be_local_closure(Leds_matrix_pixel_size, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(pixel_size),
- }),
- &be_const_str_pixel_size,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_pixel_color
-********************************************************************/
-be_local_closure(Leds_matrix_set_pixel_color, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* 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(strip),
- /* K1 */ be_nested_str(set_pixel_color),
- /* K2 */ be_nested_str(offset),
- }),
- &be_const_str_set_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x00180206, // 0003 ADD R6 R1 R6
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x5C200600, // 0005 MOVE R8 R3
- 0x7C100800, // 0006 CALL R4 4
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_matrix_pixel_color
-********************************************************************/
-be_local_closure(Leds_matrix_set_matrix_pixel_color, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(alternate),
- /* K1 */ be_const_int(2),
- /* K2 */ be_nested_str(strip),
- /* K3 */ be_nested_str(set_pixel_color),
- /* K4 */ be_nested_str(w),
- /* K5 */ be_nested_str(h),
- /* K6 */ be_const_int(1),
- /* K7 */ be_nested_str(offset),
- }),
- &be_const_str_set_matrix_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[29]) { /* code */
- 0x88140100, // 0000 GETMBR R5 R0 K0
- 0x7816000F, // 0001 JMPF R5 #0012
- 0x10140301, // 0002 MOD R5 R1 K1
- 0x7816000D, // 0003 JMPF R5 #0012
- 0x88140102, // 0004 GETMBR R5 R0 K2
- 0x8C140B03, // 0005 GETMET R5 R5 K3
- 0x881C0104, // 0006 GETMBR R7 R0 K4
- 0x081C0207, // 0007 MUL R7 R1 R7
- 0x88200105, // 0008 GETMBR R8 R0 K5
- 0x001C0E08, // 0009 ADD R7 R7 R8
- 0x041C0E02, // 000A SUB R7 R7 R2
- 0x041C0F06, // 000B SUB R7 R7 K6
- 0x88200107, // 000C GETMBR R8 R0 K7
- 0x001C0E08, // 000D ADD R7 R7 R8
- 0x5C200600, // 000E MOVE R8 R3
- 0x5C240800, // 000F MOVE R9 R4
- 0x7C140800, // 0010 CALL R5 4
- 0x70020009, // 0011 JMP #001C
- 0x88140102, // 0012 GETMBR R5 R0 K2
- 0x8C140B03, // 0013 GETMET R5 R5 K3
- 0x881C0104, // 0014 GETMBR R7 R0 K4
- 0x081C0207, // 0015 MUL R7 R1 R7
- 0x001C0E02, // 0016 ADD R7 R7 R2
- 0x88200107, // 0017 GETMBR R8 R0 K7
- 0x001C0E08, // 0018 ADD R7 R7 R8
- 0x5C200600, // 0019 MOVE R8 R3
- 0x5C240800, // 001A MOVE R9 R4
- 0x7C140800, // 001B CALL R5 4
- 0x80000000, // 001C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: show
-********************************************************************/
-be_local_closure(Leds_matrix_show, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(offset),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(w),
- /* K3 */ be_nested_str(h),
- /* K4 */ be_nested_str(strip),
- /* K5 */ be_nested_str(leds),
- /* K6 */ be_nested_str(show),
- }),
- &be_const_str_show,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x60080017, // 0000 GETGBL R2 G23
- 0x5C0C0200, // 0001 MOVE R3 R1
- 0x7C080200, // 0002 CALL R2 1
- 0x740A0009, // 0003 JMPT R2 #000E
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x1C080501, // 0005 EQ R2 R2 K1
- 0x780A0009, // 0006 JMPF R2 #0011
- 0x88080102, // 0007 GETMBR R2 R0 K2
- 0x880C0103, // 0008 GETMBR R3 R0 K3
- 0x08080403, // 0009 MUL R2 R2 R3
- 0x880C0104, // 000A GETMBR R3 R0 K4
- 0x880C0705, // 000B GETMBR R3 R3 K5
- 0x1C080403, // 000C EQ R2 R2 R3
- 0x780A0002, // 000D JMPF R2 #0011
- 0x88080104, // 000E GETMBR R2 R0 K4
- 0x8C080506, // 000F GETMET R2 R2 K6
- 0x7C080200, // 0010 CALL R2 1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_dirty
-********************************************************************/
-be_local_closure(Leds_matrix_is_dirty, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(is_dirty),
- }),
- &be_const_str_is_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_to
-********************************************************************/
-be_local_closure(Leds_matrix_clear_to, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str(w),
- /* K2 */ be_nested_str(h),
- /* K3 */ be_nested_str(strip),
- /* K4 */ be_nested_str(set_pixel_color),
- /* K5 */ be_nested_str(offset),
- /* K6 */ be_const_int(1),
- }),
- &be_const_str_clear_to,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x08100805, // 0003 MUL R4 R4 R5
- 0x14100604, // 0004 LT R4 R3 R4
- 0x78120008, // 0005 JMPF R4 #000F
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x88180105, // 0008 GETMBR R6 R0 K5
- 0x00180606, // 0009 ADD R6 R3 R6
- 0x5C1C0200, // 000A MOVE R7 R1
- 0x5C200400, // 000B MOVE R8 R2
- 0x7C100800, // 000C CALL R4 4
- 0x000C0706, // 000D ADD R3 R3 K6
- 0x7001FFF1, // 000E JMP #0001
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear
-********************************************************************/
-be_local_closure(Leds_matrix_clear, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(clear_to),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(show),
- }),
- &be_const_str_clear,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixels_buffer
-********************************************************************/
-be_local_closure(Leds_matrix_pixels_buffer, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_pixels_buffer,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Leds_matrix_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(offset),
- /* K2 */ be_nested_str(h),
- /* K3 */ be_nested_str(w),
- /* K4 */ be_nested_str(alternate),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020204, // 0001 SETMBR R0 K1 R4
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x90020602, // 0003 SETMBR R0 K3 R2
- 0x50140000, // 0004 LDBOOL R5 0 0
- 0x90020805, // 0005 SETMBR R0 K4 R5
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: dirty
-********************************************************************/
-be_local_closure(Leds_matrix_dirty, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(dirty),
- }),
- &be_const_str_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_pixel_color
-********************************************************************/
-be_local_closure(Leds_matrix_get_pixel_color, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(strip),
- /* K1 */ be_nested_str(get_pixel_color),
- /* K2 */ be_nested_str(offseta),
- }),
- &be_const_str_get_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x00100204, // 0003 ADD R4 R1 R4
- 0x7C080400, // 0004 CALL R2 2
- 0x80040400, // 0005 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_alternate
-********************************************************************/
-be_local_closure(Leds_matrix_get_alternate, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(alternate),
- }),
- &be_const_str_get_alternate,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: begin
-********************************************************************/
-be_local_closure(Leds_matrix_begin, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_begin,
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: can_show
-********************************************************************/
-be_local_closure(Leds_matrix_can_show, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(can_show),
- }),
- &be_const_str_can_show,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Leds_matrix
-********************************************************************/
-be_local_class(Leds_matrix,
- 5,
- NULL,
- be_nested_map(21,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(pixel_count, -1), be_const_closure(Leds_matrix_pixel_count_closure) },
- { be_const_key(h, 6), be_const_var(2) },
- { be_const_key(set_alternate, 7), be_const_closure(Leds_matrix_set_alternate_closure) },
- { be_const_key(pixel_size, 16), be_const_closure(Leds_matrix_pixel_size_closure) },
- { be_const_key(set_pixel_color, 19), be_const_closure(Leds_matrix_set_pixel_color_closure) },
- { be_const_key(set_matrix_pixel_color, 10), be_const_closure(Leds_matrix_set_matrix_pixel_color_closure) },
- { be_const_key(show, -1), be_const_closure(Leds_matrix_show_closure) },
- { be_const_key(alternate, -1), be_const_var(4) },
- { be_const_key(strip, -1), be_const_var(0) },
- { be_const_key(clear_to, -1), be_const_closure(Leds_matrix_clear_to_closure) },
- { be_const_key(w, 15), be_const_var(3) },
- { be_const_key(pixels_buffer, -1), be_const_closure(Leds_matrix_pixels_buffer_closure) },
- { be_const_key(init, -1), be_const_closure(Leds_matrix_init_closure) },
- { be_const_key(dirty, -1), be_const_closure(Leds_matrix_dirty_closure) },
- { be_const_key(get_pixel_color, -1), be_const_closure(Leds_matrix_get_pixel_color_closure) },
- { be_const_key(get_alternate, 17), be_const_closure(Leds_matrix_get_alternate_closure) },
- { be_const_key(offset, 8), be_const_var(1) },
- { be_const_key(clear, -1), be_const_closure(Leds_matrix_clear_closure) },
- { be_const_key(begin, -1), be_const_closure(Leds_matrix_begin_closure) },
- { be_const_key(is_dirty, -1), be_const_closure(Leds_matrix_is_dirty_closure) },
- { be_const_key(can_show, -1), be_const_closure(Leds_matrix_can_show_closure) },
- })),
- be_str_literal("Leds_matrix")
-);
-
-/********************************************************************
-** Solidified function: create_matrix
-********************************************************************/
-be_local_closure(Leds_create_matrix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str(leds),
- /* K2 */ be_nested_str(value_error),
- /* K3 */ be_nested_str(out_X20of_X20range),
- /* K4 */ be_const_class(be_class_Leds_matrix),
- }),
- &be_const_str_create_matrix,
- &be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
- 0x60100009, // 0000 GETGBL R4 G9
- 0x5C140600, // 0001 MOVE R5 R3
- 0x7C100200, // 0002 CALL R4 1
- 0x5C0C0800, // 0003 MOVE R3 R4
- 0x60100009, // 0004 GETGBL R4 G9
- 0x5C140200, // 0005 MOVE R5 R1
- 0x7C100200, // 0006 CALL R4 1
- 0x5C040800, // 0007 MOVE R1 R4
- 0x60100009, // 0008 GETGBL R4 G9
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C100200, // 000A CALL R4 1
- 0x5C080800, // 000B MOVE R2 R4
- 0x4C100000, // 000C LDNIL R4
- 0x1C100604, // 000D EQ R4 R3 R4
- 0x78120000, // 000E JMPF R4 #0010
- 0x580C0000, // 000F LDCONST R3 K0
- 0x08100202, // 0010 MUL R4 R1 R2
- 0x00100803, // 0011 ADD R4 R4 R3
- 0x88140101, // 0012 GETMBR R5 R0 K1
- 0x24100805, // 0013 GT R4 R4 R5
- 0x74120005, // 0014 JMPT R4 #001B
- 0x14100500, // 0015 LT R4 R2 K0
- 0x74120003, // 0016 JMPT R4 #001B
- 0x14100300, // 0017 LT R4 R1 K0
- 0x74120001, // 0018 JMPT R4 #001B
- 0x14100700, // 0019 LT R4 R3 K0
- 0x78120000, // 001A JMPF R4 #001C
- 0xB0060503, // 001B RAISE 1 K2 K3
- 0x58100004, // 001C LDCONST R4 K4
- 0xB4000004, // 001D CLASS K4
- 0x5C140800, // 001E MOVE R5 R4
- 0x5C180000, // 001F MOVE R6 R0
- 0x5C1C0200, // 0020 MOVE R7 R1
- 0x5C200400, // 0021 MOVE R8 R2
- 0x5C240600, // 0022 MOVE R9 R3
- 0x7C140800, // 0023 CALL R5 4
- 0x80040A00, // 0024 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: begin
-********************************************************************/
-be_local_closure(Leds_begin, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_const_int(1),
- }),
- &be_const_str_begin,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: to_gamma
-********************************************************************/
-be_local_closure(Leds_to_gamma, /* name */
- be_nested_proto(
- 12, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(scale_uint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_const_int(16711680),
- /* K4 */ be_nested_str(gamma),
- /* K5 */ be_nested_str(light),
- /* K6 */ be_nested_str(gamma8),
- }),
- &be_const_str_to_gamma,
- &be_const_str_solidified,
- ( &(const binstruction[67]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x200C0403, // 0001 NE R3 R2 R3
- 0x780E0001, // 0002 JMPF R3 #0005
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x70020000, // 0004 JMP #0006
- 0x540E0063, // 0005 LDINT R3 100
- 0x5C080600, // 0006 MOVE R2 R3
- 0xB80E0000, // 0007 GETNGBL R3 K0
- 0x8C0C0701, // 0008 GETMET R3 R3 K1
- 0x5C140400, // 0009 MOVE R5 R2
- 0x58180002, // 000A LDCONST R6 K2
- 0x541E0063, // 000B LDINT R7 100
- 0x58200002, // 000C LDCONST R8 K2
- 0x2C240303, // 000D AND R9 R1 K3
- 0x542A000F, // 000E LDINT R10 16
- 0x3C24120A, // 000F SHR R9 R9 R10
- 0x7C0C0C00, // 0010 CALL R3 6
- 0xB8120000, // 0011 GETNGBL R4 K0
- 0x8C100901, // 0012 GETMET R4 R4 K1
- 0x5C180400, // 0013 MOVE R6 R2
- 0x581C0002, // 0014 LDCONST R7 K2
- 0x54220063, // 0015 LDINT R8 100
- 0x58240002, // 0016 LDCONST R9 K2
- 0x542AFEFF, // 0017 LDINT R10 65280
- 0x2C28020A, // 0018 AND R10 R1 R10
- 0x542E0007, // 0019 LDINT R11 8
- 0x3C28140B, // 001A SHR R10 R10 R11
- 0x7C100C00, // 001B CALL R4 6
- 0xB8160000, // 001C GETNGBL R5 K0
- 0x8C140B01, // 001D GETMET R5 R5 K1
- 0x5C1C0400, // 001E MOVE R7 R2
- 0x58200002, // 001F LDCONST R8 K2
- 0x54260063, // 0020 LDINT R9 100
- 0x58280002, // 0021 LDCONST R10 K2
- 0x542E00FE, // 0022 LDINT R11 255
- 0x2C2C020B, // 0023 AND R11 R1 R11
- 0x7C140C00, // 0024 CALL R5 6
- 0x88180104, // 0025 GETMBR R6 R0 K4
- 0x781A0013, // 0026 JMPF R6 #003B
- 0xB81A0A00, // 0027 GETNGBL R6 K5
- 0x8C180D06, // 0028 GETMET R6 R6 K6
- 0x5C200600, // 0029 MOVE R8 R3
- 0x7C180400, // 002A CALL R6 2
- 0x541E000F, // 002B LDINT R7 16
- 0x38180C07, // 002C SHL R6 R6 R7
- 0xB81E0A00, // 002D GETNGBL R7 K5
- 0x8C1C0F06, // 002E GETMET R7 R7 K6
- 0x5C240800, // 002F MOVE R9 R4
- 0x7C1C0400, // 0030 CALL R7 2
- 0x54220007, // 0031 LDINT R8 8
- 0x381C0E08, // 0032 SHL R7 R7 R8
- 0x30180C07, // 0033 OR R6 R6 R7
- 0xB81E0A00, // 0034 GETNGBL R7 K5
- 0x8C1C0F06, // 0035 GETMET R7 R7 K6
- 0x5C240A00, // 0036 MOVE R9 R5
- 0x7C1C0400, // 0037 CALL R7 2
- 0x30180C07, // 0038 OR R6 R6 R7
- 0x80040C00, // 0039 RET 1 R6
- 0x70020006, // 003A JMP #0042
- 0x541A000F, // 003B LDINT R6 16
- 0x38180606, // 003C SHL R6 R3 R6
- 0x541E0007, // 003D LDINT R7 8
- 0x381C0807, // 003E SHL R7 R4 R7
- 0x30180C07, // 003F OR R6 R6 R7
- 0x30180C05, // 0040 OR R6 R6 R5
- 0x80040C00, // 0041 RET 1 R6
- 0x80000000, // 0042 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixel_count
-********************************************************************/
-be_local_closure(Leds_pixel_count, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_pixel_count,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0007, // 0001 LDINT R3 8
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: matrix
-********************************************************************/
-be_local_closure(Leds_matrix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* 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(Leds),
- /* K1 */ be_nested_str(create_matrix),
- /* K2 */ be_const_int(0),
- }),
- &be_const_str_matrix,
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x08140001, // 0001 MUL R5 R0 R1
- 0x5C180400, // 0002 MOVE R6 R2
- 0x5C1C0600, // 0003 MOVE R7 R3
- 0x7C100600, // 0004 CALL R4 3
- 0x8C140901, // 0005 GETMET R5 R4 K1
- 0x5C1C0000, // 0006 MOVE R7 R0
- 0x5C200200, // 0007 MOVE R8 R1
- 0x58240002, // 0008 LDCONST R9 K2
- 0x7C140800, // 0009 CALL R5 4
- 0x80040A00, // 000A RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixel_size
-********************************************************************/
-be_local_closure(Leds_pixel_size, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_pixel_size,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0006, // 0001 LDINT R3 7
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixels_buffer
-********************************************************************/
-be_local_closure(Leds_pixels_buffer, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_pixels_buffer,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0005, // 0001 LDINT R3 6
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_pixel_color
-********************************************************************/
-be_local_closure(Leds_get_pixel_color, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_get_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5412000A, // 0001 LDINT R4 11
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C080600, // 0003 CALL R2 3
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_pixel_color
-********************************************************************/
-be_local_closure(Leds_set_pixel_color, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_nested_str(to_gamma),
- }),
- &be_const_str_set_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x8C100100, // 0000 GETMET R4 R0 K0
- 0x541A0009, // 0001 LDINT R6 10
- 0x5C1C0200, // 0002 MOVE R7 R1
- 0x8C200101, // 0003 GETMET R8 R0 K1
- 0x5C280400, // 0004 MOVE R10 R2
- 0x5C2C0600, // 0005 MOVE R11 R3
- 0x7C200600, // 0006 CALL R8 3
- 0x7C100800, // 0007 CALL R4 4
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_dirty
-********************************************************************/
-be_local_closure(Leds_is_dirty, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_is_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0003, // 0001 LDINT R3 4
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Leds_init, /* name */
- be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str(gamma),
- /* K1 */ be_nested_str(leds),
- /* K2 */ be_nested_str(pin),
- /* K3 */ be_nested_str(WS2812),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str(valuer_error),
- /* K6 */ be_nested_str(no_X20GPIO_X20specified_X20for_X20neopixelbus),
- /* K7 */ be_nested_str(ctor),
- /* K8 */ be_nested_str(_p),
- /* K9 */ be_nested_str(internal_error),
- /* K10 */ be_nested_str(couldn_X27t_X20not_X20initialize_X20noepixelbus),
- /* K11 */ be_nested_str(begin),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[36]) { /* code */
- 0x50140200, // 0000 LDBOOL R5 1 0
- 0x90020005, // 0001 SETMBR R0 K0 R5
- 0x60140009, // 0002 GETGBL R5 G9
- 0x5C180200, // 0003 MOVE R6 R1
- 0x7C140200, // 0004 CALL R5 1
- 0x90020205, // 0005 SETMBR R0 K1 R5
- 0x4C140000, // 0006 LDNIL R5
- 0x1C140405, // 0007 EQ R5 R2 R5
- 0x78160008, // 0008 JMPF R5 #0012
- 0x8C140502, // 0009 GETMET R5 R2 K2
- 0x881C0503, // 000A GETMBR R7 R2 K3
- 0x7C140400, // 000B CALL R5 2
- 0x28140B04, // 000C GE R5 R5 K4
- 0x78160003, // 000D JMPF R5 #0012
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x881C0503, // 000F GETMBR R7 R2 K3
- 0x7C140400, // 0010 CALL R5 2
- 0x5C080A00, // 0011 MOVE R2 R5
- 0x4C140000, // 0012 LDNIL R5
- 0x1C140405, // 0013 EQ R5 R2 R5
- 0x78160000, // 0014 JMPF R5 #0016
- 0xB0060B06, // 0015 RAISE 1 K5 K6
- 0x8C140107, // 0016 GETMET R5 R0 K7
- 0x881C0101, // 0017 GETMBR R7 R0 K1
- 0x5C200400, // 0018 MOVE R8 R2
- 0x5C240600, // 0019 MOVE R9 R3
- 0x5C280800, // 001A MOVE R10 R4
- 0x7C140A00, // 001B CALL R5 5
- 0x88140108, // 001C GETMBR R5 R0 K8
- 0x4C180000, // 001D LDNIL R6
- 0x1C140A06, // 001E EQ R5 R5 R6
- 0x78160000, // 001F JMPF R5 #0021
- 0xB006130A, // 0020 RAISE 1 K9 K10
- 0x8C14010B, // 0021 GETMET R5 R0 K11
- 0x7C140200, // 0022 CALL R5 1
- 0x80000000, // 0023 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_to
-********************************************************************/
-be_local_closure(Leds_clear_to, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_nested_str(to_gamma),
- }),
- &be_const_str_clear_to,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x8C0C0100, // 0000 GETMET R3 R0 K0
- 0x54160008, // 0001 LDINT R5 9
- 0x8C180101, // 0002 GETMET R6 R0 K1
- 0x5C200200, // 0003 MOVE R8 R1
- 0x5C240400, // 0004 MOVE R9 R2
- 0x7C180600, // 0005 CALL R6 3
- 0x7C0C0600, // 0006 CALL R3 3
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: can_show
-********************************************************************/
-be_local_closure(Leds_can_show, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_const_int(3),
- }),
- &be_const_str_can_show,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear
-********************************************************************/
-be_local_closure(Leds_clear, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(clear_to),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(show),
- }),
- &be_const_str_clear,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: show
-********************************************************************/
-be_local_closure(Leds_show, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_const_int(2),
- }),
- &be_const_str_show,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ctor
-********************************************************************/
-be_local_closure(Leds_ctor, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- /* K1 */ be_const_int(0),
- }),
- &be_const_str_ctor,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x1C100604, // 0001 EQ R4 R3 R4
- 0x78120005, // 0002 JMPF R4 #0009
- 0x8C100100, // 0003 GETMET R4 R0 K0
- 0x58180001, // 0004 LDCONST R6 K1
- 0x5C1C0200, // 0005 MOVE R7 R1
- 0x5C200400, // 0006 MOVE R8 R2
- 0x7C100800, // 0007 CALL R4 4
- 0x70020005, // 0008 JMP #000F
- 0x8C100100, // 0009 GETMET R4 R0 K0
- 0x58180001, // 000A LDCONST R6 K1
- 0x5C1C0200, // 000B MOVE R7 R1
- 0x5C200400, // 000C MOVE R8 R2
- 0x5C240600, // 000D MOVE R9 R3
- 0x7C100A00, // 000E CALL R4 5
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: dirty
-********************************************************************/
-be_local_closure(Leds_dirty, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(call_native),
- }),
- &be_const_str_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0004, // 0001 LDINT R3 5
- 0x7C040400, // 0002 CALL R1 2
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_pixel_color
-********************************************************************/
-be_local_closure(Leds_segment_get_pixel_color, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(strip),
- /* K1 */ be_nested_str(get_pixel_color),
- /* K2 */ be_nested_str(offseta),
- }),
- &be_const_str_get_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x88100102, // 0002 GETMBR R4 R0 K2
- 0x00100204, // 0003 ADD R4 R1 R4
- 0x7C080400, // 0004 CALL R2 2
- 0x80040400, // 0005 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_to
-********************************************************************/
-be_local_closure(Leds_segment_clear_to, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str(leds),
- /* K2 */ be_nested_str(strip),
- /* K3 */ be_nested_str(set_pixel_color),
- /* K4 */ be_nested_str(offset),
- /* K5 */ be_const_int(1),
- }),
- &be_const_str_clear_to,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x14100604, // 0002 LT R4 R3 R4
- 0x78120008, // 0003 JMPF R4 #000D
- 0x88100102, // 0004 GETMBR R4 R0 K2
- 0x8C100903, // 0005 GETMET R4 R4 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x00180606, // 0007 ADD R6 R3 R6
- 0x5C1C0200, // 0008 MOVE R7 R1
- 0x5C200400, // 0009 MOVE R8 R2
- 0x7C100800, // 000A CALL R4 4
- 0x000C0705, // 000B ADD R3 R3 K5
- 0x7001FFF3, // 000C JMP #0001
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: can_show
-********************************************************************/
-be_local_closure(Leds_segment_can_show, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(can_show),
- }),
- &be_const_str_can_show,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_pixel_color
-********************************************************************/
-be_local_closure(Leds_segment_set_pixel_color, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* 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(strip),
- /* K1 */ be_nested_str(set_pixel_color),
- /* K2 */ be_nested_str(offset),
- }),
- &be_const_str_set_pixel_color,
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x00180206, // 0003 ADD R6 R1 R6
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x5C200600, // 0005 MOVE R8 R3
- 0x7C100800, // 0006 CALL R4 4
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear
-********************************************************************/
-be_local_closure(Leds_segment_clear, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(clear_to),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(show),
- }),
- &be_const_str_clear,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: begin
-********************************************************************/
-be_local_closure(Leds_segment_begin, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_begin,
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixel_count
-********************************************************************/
-be_local_closure(Leds_segment_pixel_count, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(leds),
- }),
- &be_const_str_pixel_count,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Leds_segment_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 4, /* 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(strip),
- /* K1 */ be_nested_str(offset),
- /* K2 */ be_nested_str(leds),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60100009, // 0001 GETGBL R4 G9
- 0x5C140400, // 0002 MOVE R5 R2
- 0x7C100200, // 0003 CALL R4 1
- 0x90020204, // 0004 SETMBR R0 K1 R4
- 0x60100009, // 0005 GETGBL R4 G9
- 0x5C140600, // 0006 MOVE R5 R3
- 0x7C100200, // 0007 CALL R4 1
- 0x90020404, // 0008 SETMBR R0 K2 R4
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixel_size
-********************************************************************/
-be_local_closure(Leds_segment_pixel_size, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(pixel_size),
- }),
- &be_const_str_pixel_size,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: dirty
-********************************************************************/
-be_local_closure(Leds_segment_dirty, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(dirty),
- }),
- &be_const_str_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: show
-********************************************************************/
-be_local_closure(Leds_segment_show, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(offset),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(leds),
- /* K3 */ be_nested_str(strip),
- /* K4 */ be_nested_str(show),
- }),
- &be_const_str_show,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x60080017, // 0000 GETGBL R2 G23
- 0x5C0C0200, // 0001 MOVE R3 R1
- 0x7C080200, // 0002 CALL R2 1
- 0x740A0007, // 0003 JMPT R2 #000C
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x1C080501, // 0005 EQ R2 R2 K1
- 0x780A0007, // 0006 JMPF R2 #000F
- 0x88080102, // 0007 GETMBR R2 R0 K2
- 0x880C0103, // 0008 GETMBR R3 R0 K3
- 0x880C0702, // 0009 GETMBR R3 R3 K2
- 0x1C080403, // 000A EQ R2 R2 R3
- 0x780A0002, // 000B JMPF R2 #000F
- 0x88080103, // 000C GETMBR R2 R0 K3
- 0x8C080504, // 000D GETMET R2 R2 K4
- 0x7C080200, // 000E CALL R2 1
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_dirty
-********************************************************************/
-be_local_closure(Leds_segment_is_dirty, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(strip),
- /* K1 */ be_nested_str(is_dirty),
- }),
- &be_const_str_is_dirty,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pixels_buffer
-********************************************************************/
-be_local_closure(Leds_segment_pixels_buffer, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 0, /* has constants */
- NULL, /* no const */
- &be_const_str_pixels_buffer,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Leds_segment
-********************************************************************/
-be_local_class(Leds_segment,
- 3,
- NULL,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(get_pixel_color, -1), be_const_closure(Leds_segment_get_pixel_color_closure) },
- { be_const_key(strip, -1), be_const_var(0) },
- { be_const_key(clear_to, 5), be_const_closure(Leds_segment_clear_to_closure) },
- { be_const_key(can_show, 13), be_const_closure(Leds_segment_can_show_closure) },
- { be_const_key(set_pixel_color, -1), be_const_closure(Leds_segment_set_pixel_color_closure) },
- { be_const_key(clear, -1), be_const_closure(Leds_segment_clear_closure) },
- { be_const_key(is_dirty, -1), be_const_closure(Leds_segment_is_dirty_closure) },
- { be_const_key(pixel_count, -1), be_const_closure(Leds_segment_pixel_count_closure) },
- { be_const_key(leds, -1), be_const_var(2) },
- { be_const_key(pixel_size, -1), be_const_closure(Leds_segment_pixel_size_closure) },
- { be_const_key(offset, -1), be_const_var(1) },
- { be_const_key(dirty, 8), be_const_closure(Leds_segment_dirty_closure) },
- { be_const_key(show, -1), be_const_closure(Leds_segment_show_closure) },
- { be_const_key(init, -1), be_const_closure(Leds_segment_init_closure) },
- { be_const_key(begin, 6), be_const_closure(Leds_segment_begin_closure) },
- { be_const_key(pixels_buffer, -1), be_const_closure(Leds_segment_pixels_buffer_closure) },
- })),
- be_str_literal("Leds_segment")
-);
-
-/********************************************************************
-** Solidified function: create_segment
-********************************************************************/
-be_local_closure(Leds_create_segment, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(leds),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(value_error),
- /* K3 */ be_nested_str(out_X20of_X20range),
- /* K4 */ be_const_class(be_class_Leds_segment),
- }),
- &be_const_str_create_segment,
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x600C0009, // 0000 GETGBL R3 G9
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x60100009, // 0003 GETGBL R4 G9
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C100200, // 0005 CALL R4 1
- 0x000C0604, // 0006 ADD R3 R3 R4
- 0x88100100, // 0007 GETMBR R4 R0 K0
- 0x240C0604, // 0008 GT R3 R3 R4
- 0x740E0003, // 0009 JMPT R3 #000E
- 0x140C0301, // 000A LT R3 R1 K1
- 0x740E0001, // 000B JMPT R3 #000E
- 0x140C0501, // 000C LT R3 R2 K1
- 0x780E0000, // 000D JMPF R3 #000F
- 0xB0060503, // 000E RAISE 1 K2 K3
- 0x580C0004, // 000F LDCONST R3 K4
- 0xB4000004, // 0010 CLASS K4
- 0x5C100600, // 0011 MOVE R4 R3
- 0x5C140000, // 0012 MOVE R5 R0
- 0x5C180200, // 0013 MOVE R6 R1
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x7C100600, // 0015 CALL R4 3
- 0x80040800, // 0016 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Leds
-********************************************************************/
-extern const bclass be_class_Leds_ntv;
-be_local_class(Leds,
- 2,
- &be_class_Leds_ntv,
- be_nested_map(20,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(pixel_count, -1), be_const_closure(Leds_pixel_count_closure) },
- { be_const_key(dirty, 6), be_const_closure(Leds_dirty_closure) },
- { be_const_key(to_gamma, -1), be_const_closure(Leds_to_gamma_closure) },
- { be_const_key(create_matrix, 1), be_const_closure(Leds_create_matrix_closure) },
- { be_const_key(matrix, -1), be_const_static_closure(Leds_matrix_closure) },
- { be_const_key(pixel_size, -1), be_const_closure(Leds_pixel_size_closure) },
- { be_const_key(ctor, 0), be_const_closure(Leds_ctor_closure) },
- { be_const_key(pixels_buffer, 13), be_const_closure(Leds_pixels_buffer_closure) },
- { be_const_key(get_pixel_color, -1), be_const_closure(Leds_get_pixel_color_closure) },
- { be_const_key(show, -1), be_const_closure(Leds_show_closure) },
- { be_const_key(begin, 17), be_const_closure(Leds_begin_closure) },
- { be_const_key(leds, -1), be_const_var(1) },
- { be_const_key(clear, -1), be_const_closure(Leds_clear_closure) },
- { be_const_key(can_show, -1), be_const_closure(Leds_can_show_closure) },
- { be_const_key(gamma, 12), be_const_var(0) },
- { be_const_key(init, 11), be_const_closure(Leds_init_closure) },
- { be_const_key(set_pixel_color, 9), be_const_closure(Leds_set_pixel_color_closure) },
- { be_const_key(clear_to, 18), be_const_closure(Leds_clear_to_closure) },
- { be_const_key(is_dirty, -1), be_const_closure(Leds_is_dirty_closure) },
- { be_const_key(create_segment, -1), be_const_closure(Leds_create_segment_closure) },
- })),
- be_str_literal("Leds")
-);
-/*******************************************************************/
-
-void be_load_Leds_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_Leds);
- be_setglobal(vm, "Leds");
- be_pop(vm, 1);
-}
-
-#endif // USE_WS2812
diff --git a/lib/libesp32/berry/default/be_leds_ntv_lib.c b/lib/libesp32/berry/default/be_leds_ntv_lib.c
deleted file mode 100644
index 4d5b07bb6..000000000
--- a/lib/libesp32/berry/default/be_leds_ntv_lib.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/********************************************************************
- * Berry class `neopixelbus_ntv`
- *
- *******************************************************************/
-/*
-
-class Leds_ntv
- var _p # pointer to internal object of type `NeoPixelBus(uint16_t countPixels, uint8_t pin)`
- var _t # type of led strip
- static WS2812_GRB = 1
- static SK6812_GRBW = 2
-
- # skeleton for native call
- def call_native() end
-end
-
-*/
-#include "be_constobj.h"
-
-#ifdef USE_WS2812
-
-extern int be_neopixelbus_call_native(bvm *vm);
-
-
-/********************************************************************
-** Solidified class: Leds_ntv
-********************************************************************/
-be_local_class(Leds_ntv,
- 2,
- NULL,
- be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(call_native, -1), be_const_func(be_neopixelbus_call_native) },
- { be_const_key(_t, -1), be_const_var(1) },
- { be_const_key(_p, 3), be_const_var(0) },
- { be_const_key(SK6812_GRBW, 4), be_const_int(2) },
- { be_const_key(WS2812_GRB, -1), be_const_int(1) },
- })),
- be_str_literal("Leds_ntv")
-);
-/*******************************************************************/
-
-void be_load_Leds_ntv_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_Leds_ntv);
- be_setglobal(vm, "Leds_ntv");
- be_pop(vm, 1);
-}
-
-// be_const_func(be_neopixelbus_call_native)
-#endif // USE_WS2812
diff --git a/lib/libesp32/berry/default/be_light_lib.c b/lib/libesp32/berry/default/be_light_lib.c
deleted file mode 100644
index 6d020eca8..000000000
--- a/lib/libesp32/berry/default/be_light_lib.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import tasmota`
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LIGHT
-extern int l_getlight(bvm *vm);
-extern int l_setlight(bvm *vm);
-
-extern int l_gamma8(bvm *vm);
-extern int l_gamma10(bvm *vm);
-extern int l_rev_gamma10(bvm *vm);
-
-/* @const_object_info_begin
-module light (scope: global) {
- get, func(l_getlight)
- set, func(l_setlight)
-
- gamma8, func(l_gamma8)
- gamma10, func(l_gamma10)
- reverse_gamma10, func(l_rev_gamma10)
-}
-@const_object_info_end */
-#include "../generate/be_fixed_light.h"
-
-#endif // USE_LIGHT
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_clock_icon_lib.c b/lib/libesp32/berry/default/be_lvgl_clock_icon_lib.c
deleted file mode 100644
index c9cf7f207..000000000
--- a/lib/libesp32/berry/default/be_lvgl_clock_icon_lib.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: set_time
-********************************************************************/
-be_local_closure(lv_clock_icon_set_time, /* name */
- be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(hour),
- /* K2 */ be_nested_str(minute),
- /* K3 */ be_nested_str(sec),
- /* K4 */ be_nested_str(format),
- /* K5 */ be_nested_str(_X2502d_X25s_X2502d),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str(_X3A),
- /* K8 */ be_nested_str(_X20),
- /* K9 */ be_nested_str(set_text),
- }),
- &be_const_str_set_time,
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x88140101, // 0001 GETMBR R5 R0 K1
- 0x20140205, // 0002 NE R5 R1 R5
- 0x74160005, // 0003 JMPT R5 #000A
- 0x88140102, // 0004 GETMBR R5 R0 K2
- 0x20140405, // 0005 NE R5 R2 R5
- 0x74160002, // 0006 JMPT R5 #000A
- 0x88140103, // 0007 GETMBR R5 R0 K3
- 0x20140605, // 0008 NE R5 R3 R5
- 0x7816000F, // 0009 JMPF R5 #001A
- 0x8C140904, // 000A GETMET R5 R4 K4
- 0x581C0005, // 000B LDCONST R7 K5
- 0x5C200200, // 000C MOVE R8 R1
- 0x10240706, // 000D MOD R9 R3 K6
- 0x78260001, // 000E JMPF R9 #0011
- 0x58240007, // 000F LDCONST R9 K7
- 0x70020000, // 0010 JMP #0012
- 0x58240008, // 0011 LDCONST R9 K8
- 0x5C280400, // 0012 MOVE R10 R2
- 0x7C140A00, // 0013 CALL R5 5
- 0x90020201, // 0014 SETMBR R0 K1 R1
- 0x90020402, // 0015 SETMBR R0 K2 R2
- 0x90020603, // 0016 SETMBR R0 K3 R3
- 0x8C180109, // 0017 GETMET R6 R0 K9
- 0x5C200A00, // 0018 MOVE R8 R5
- 0x7C180400, // 0019 CALL R6 2
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-be_local_closure(lv_clock_icon_every_second, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(time_dump),
- /* K2 */ be_nested_str(rtc),
- /* K3 */ be_nested_str(local),
- /* K4 */ be_nested_str(year),
- /* K5 */ be_nested_str(set_time),
- /* K6 */ be_nested_str(hour),
- /* K7 */ be_nested_str(min),
- /* K8 */ be_nested_str(sec),
- }),
- &be_const_str_every_second,
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0xB80E0000, // 0002 GETNGBL R3 K0
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x7C0C0200, // 0004 CALL R3 1
- 0x940C0703, // 0005 GETIDX R3 R3 K3
- 0x7C040400, // 0006 CALL R1 2
- 0x94080304, // 0007 GETIDX R2 R1 K4
- 0x540E07B1, // 0008 LDINT R3 1970
- 0x20080403, // 0009 NE R2 R2 R3
- 0x780A0004, // 000A JMPF R2 #0010
- 0x8C080105, // 000B GETMET R2 R0 K5
- 0x94100306, // 000C GETIDX R4 R1 K6
- 0x94140307, // 000D GETIDX R5 R1 K7
- 0x94180308, // 000E GETIDX R6 R1 K8
- 0x7C080800, // 000F CALL R2 4
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_clock_icon_init, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(seg7_font),
- /* K3 */ be_nested_str(set_style_text_font),
- /* K4 */ be_nested_str(PART_MAIN),
- /* K5 */ be_nested_str(STATE_DEFAULT),
- /* K6 */ be_nested_str(get_height),
- /* K7 */ be_nested_str(set_text),
- /* K8 */ be_nested_str(_X2D_X2D_X3A_X2D_X2D),
- /* K9 */ be_nested_str(refr_size),
- /* K10 */ be_nested_str(get_width),
- /* K11 */ be_nested_str(set_y),
- /* K12 */ be_const_int(2),
- /* K13 */ be_nested_str(get_style_pad_right),
- /* K14 */ be_nested_str(set_x),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str(set_style_pad_right),
- /* K17 */ be_nested_str(set_style_bg_color),
- /* K18 */ be_nested_str(color),
- /* K19 */ be_nested_str(COLOR_BLACK),
- /* K20 */ be_nested_str(tasmota),
- /* K21 */ be_nested_str(add_driver),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[82]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0xB80A0200, // 0006 GETNGBL R2 K1
- 0x8C080502, // 0007 GETMET R2 R2 K2
- 0x5412000F, // 0008 LDINT R4 16
- 0x7C080400, // 0009 CALL R2 2
- 0x4C0C0000, // 000A LDNIL R3
- 0x200C0403, // 000B NE R3 R2 R3
- 0x780E0007, // 000C JMPF R3 #0015
- 0x8C0C0103, // 000D GETMET R3 R0 K3
- 0x5C140400, // 000E MOVE R5 R2
- 0xB81A0200, // 000F GETNGBL R6 K1
- 0x88180D04, // 0010 GETMBR R6 R6 K4
- 0xB81E0200, // 0011 GETNGBL R7 K1
- 0x881C0F05, // 0012 GETMBR R7 R7 K5
- 0x30180C07, // 0013 OR R6 R6 R7
- 0x7C0C0600, // 0014 CALL R3 3
- 0x4C0C0000, // 0015 LDNIL R3
- 0x200C0203, // 0016 NE R3 R1 R3
- 0x780E0034, // 0017 JMPF R3 #004D
- 0x8C0C0306, // 0018 GETMET R3 R1 K6
- 0x7C0C0200, // 0019 CALL R3 1
- 0x8C100107, // 001A GETMET R4 R0 K7
- 0x58180008, // 001B LDCONST R6 K8
- 0x7C100400, // 001C CALL R4 2
- 0x8C100109, // 001D GETMET R4 R0 K9
- 0x7C100200, // 001E CALL R4 1
- 0x8C10010A, // 001F GETMET R4 R0 K10
- 0x7C100200, // 0020 CALL R4 1
- 0x8C14010B, // 0021 GETMET R5 R0 K11
- 0x8C1C0306, // 0022 GETMET R7 R1 K6
- 0x7C1C0200, // 0023 CALL R7 1
- 0x8C200106, // 0024 GETMET R8 R0 K6
- 0x7C200200, // 0025 CALL R8 1
- 0x041C0E08, // 0026 SUB R7 R7 R8
- 0x0C1C0F0C, // 0027 DIV R7 R7 K12
- 0x7C140400, // 0028 CALL R5 2
- 0x8C14030D, // 0029 GETMET R5 R1 K13
- 0xB81E0200, // 002A GETNGBL R7 K1
- 0x881C0F04, // 002B GETMBR R7 R7 K4
- 0xB8220200, // 002C GETNGBL R8 K1
- 0x88201105, // 002D GETMBR R8 R8 K5
- 0x301C0E08, // 002E OR R7 R7 R8
- 0x7C140400, // 002F CALL R5 2
- 0x8C18010E, // 0030 GETMET R6 R0 K14
- 0x8C20030A, // 0031 GETMET R8 R1 K10
- 0x7C200200, // 0032 CALL R8 1
- 0x04201004, // 0033 SUB R8 R8 R4
- 0x04201005, // 0034 SUB R8 R8 R5
- 0x0420110F, // 0035 SUB R8 R8 K15
- 0x7C180400, // 0036 CALL R6 2
- 0x8C180310, // 0037 GETMET R6 R1 K16
- 0x00200A04, // 0038 ADD R8 R5 R4
- 0x54260005, // 0039 LDINT R9 6
- 0x00201009, // 003A ADD R8 R8 R9
- 0xB8260200, // 003B GETNGBL R9 K1
- 0x88241304, // 003C GETMBR R9 R9 K4
- 0xB82A0200, // 003D GETNGBL R10 K1
- 0x88281505, // 003E GETMBR R10 R10 K5
- 0x3024120A, // 003F OR R9 R9 R10
- 0x7C180600, // 0040 CALL R6 3
- 0x8C180111, // 0041 GETMET R6 R0 K17
- 0xB8220200, // 0042 GETNGBL R8 K1
- 0x8C201112, // 0043 GETMET R8 R8 K18
- 0xB82A0200, // 0044 GETNGBL R10 K1
- 0x88281513, // 0045 GETMBR R10 R10 K19
- 0x7C200400, // 0046 CALL R8 2
- 0xB8260200, // 0047 GETNGBL R9 K1
- 0x88241304, // 0048 GETMBR R9 R9 K4
- 0xB82A0200, // 0049 GETNGBL R10 K1
- 0x88281505, // 004A GETMBR R10 R10 K5
- 0x3024120A, // 004B OR R9 R9 R10
- 0x7C180600, // 004C CALL R6 3
- 0xB80E2800, // 004D GETNGBL R3 K20
- 0x8C0C0715, // 004E GETMET R3 R3 K21
- 0x5C140000, // 004F MOVE R5 R0
- 0x7C0C0400, // 0050 CALL R3 2
- 0x80000000, // 0051 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: del
-********************************************************************/
-be_local_closure(lv_clock_icon_del, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(del),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(remove_driver),
- }),
- &be_const_str_del,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x5C0C0000, // 0007 MOVE R3 R0
- 0x7C040400, // 0008 CALL R1 2
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_clock_icon
-********************************************************************/
-extern const bclass be_class_lv_label;
-be_local_class(lv_clock_icon,
- 3,
- &be_class_lv_label,
- be_nested_map(7,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(sec, -1), be_const_var(2) },
- { be_const_key(hour, -1), be_const_var(0) },
- { be_const_key(set_time, 6), be_const_closure(lv_clock_icon_set_time_closure) },
- { be_const_key(every_second, -1), be_const_closure(lv_clock_icon_every_second_closure) },
- { be_const_key(minute, -1), be_const_var(1) },
- { be_const_key(init, 2), be_const_closure(lv_clock_icon_init_closure) },
- { be_const_key(del, -1), be_const_closure(lv_clock_icon_del_closure) },
- })),
- be_str_literal("lv_clock_icon")
-);
-/*******************************************************************/
-
-void be_load_lv_clock_icon_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_clock_icon);
- be_setglobal(vm, "lv_clock_icon");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_ctypes_definitions.c b/lib/libesp32/berry/default/be_lvgl_ctypes_definitions.c
deleted file mode 100644
index bb1ffb65c..000000000
--- a/lib/libesp32/berry/default/be_lvgl_ctypes_definitions.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/********************************************************************
- * Tasmota LVGL ctypes mapping
- *******************************************************************/
-#include "be_ctypes.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-#include "be_lvgl.h"
-
-/********************************************************************
- * Generated code, don't edit
- *******************************************************************/
-
-static const char * be_ctypes_instance_mappings[]; /* forward definition */
-
-const be_ctypes_structure_t be_lv_point = {
- 4, /* size in bytes */
- 2, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[2]) {
- { "x", 0, 0, 0, ctypes_i16, 0 },
- { "y", 2, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_area = {
- 8, /* size in bytes */
- 4, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[4]) {
- { "x1", 0, 0, 0, ctypes_i16, 0 },
- { "x2", 4, 0, 0, ctypes_i16, 0 },
- { "y1", 2, 0, 0, ctypes_i16, 0 },
- { "y2", 6, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_rect_dsc = {
- 51, /* size in bytes */
- 29, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[29]) {
- { "bg_color", 4, 0, 0, ctypes_u16, 1 },
- { "bg_grad_color", 6, 0, 0, ctypes_u16, 1 },
- { "bg_grad_color_stop", 9, 0, 0, ctypes_u8, 0 },
- { "bg_grad_dir", 11, 0, 3, ctypes_bf, 0 },
- { "bg_img_opa", 22, 0, 0, ctypes_u8, 0 },
- { "bg_img_recolor", 20, 0, 0, ctypes_u16, 1 },
- { "bg_img_recolor_opa", 23, 0, 0, ctypes_u8, 0 },
- { "bg_img_src", 12, 0, 0, ctypes_ptr32, 0 },
- { "bg_img_symbol_font", 16, 0, 0, ctypes_ptr32, 0 },
- { "bg_img_tiled", 24, 0, 0, ctypes_u8, 0 },
- { "bg_main_color_stop", 8, 0, 0, ctypes_u8, 0 },
- { "bg_opa", 10, 0, 0, ctypes_u8, 0 },
- { "blend_mode", 2, 0, 0, ctypes_u8, 0 },
- { "border_color", 26, 0, 0, ctypes_u16, 1 },
- { "border_opa", 30, 0, 0, ctypes_u8, 0 },
- { "border_post", 31, 0, 1, ctypes_bf, 0 },
- { "border_side", 31, 1, 5, ctypes_bf, 0 },
- { "border_width", 28, 0, 0, ctypes_i16, 0 },
- { "outline_color", 32, 0, 0, ctypes_u16, 1 },
- { "outline_opa", 38, 0, 0, ctypes_u8, 0 },
- { "outline_pad", 36, 0, 0, ctypes_i16, 0 },
- { "outline_width", 34, 0, 0, ctypes_i16, 0 },
- { "radius", 0, 0, 0, ctypes_i16, 0 },
- { "shadow_color", 40, 0, 0, ctypes_u16, 1 },
- { "shadow_ofs_x", 44, 0, 0, ctypes_i16, 0 },
- { "shadow_ofs_y", 46, 0, 0, ctypes_i16, 0 },
- { "shadow_opa", 50, 0, 0, ctypes_u8, 0 },
- { "shadow_spread", 48, 0, 0, ctypes_i16, 0 },
- { "shadow_width", 42, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_line_dsc = {
- 10, /* size in bytes */
- 9, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[9]) {
- { "blend_mode", 9, 0, 2, ctypes_bf, 0 },
- { "color", 0, 0, 0, ctypes_u16, 1 },
- { "dash_gap", 6, 0, 0, ctypes_i16, 0 },
- { "dash_width", 4, 0, 0, ctypes_i16, 0 },
- { "opa", 8, 0, 0, ctypes_u8, 0 },
- { "raw_end", 9, 4, 1, ctypes_bf, 0 },
- { "round_end", 9, 3, 1, ctypes_bf, 0 },
- { "round_start", 9, 2, 1, ctypes_bf, 0 },
- { "width", 2, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_img_dsc = {
- 21, /* size in bytes */
- 10, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[10]) {
- { "angle", 0, 0, 0, ctypes_u16, 0 },
- { "antialias", 20, 0, 1, ctypes_bf, 0 },
- { "blend_mode", 12, 0, 4, ctypes_bf, 0 },
- { "frame_id", 16, 0, 0, ctypes_i32, 0 },
- { "opa", 11, 0, 0, ctypes_u8, 0 },
- { "pivot_x", 4, 0, 0, ctypes_i16, 0 },
- { "pivot_y", 6, 0, 0, ctypes_i16, 0 },
- { "recolor", 8, 0, 0, ctypes_u16, 1 },
- { "recolor_opa", 10, 0, 0, ctypes_u8, 0 },
- { "zoom", 2, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_common_dsc = {
- 5, /* size in bytes */
- 2, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[2]) {
- { "cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_line_param_cfg = {
- 9, /* size in bytes */
- 5, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[5]) {
- { "p1_x", 0, 0, 0, ctypes_i16, 0 },
- { "p1_y", 2, 0, 0, ctypes_i16, 0 },
- { "p2_x", 4, 0, 0, ctypes_i16, 0 },
- { "p2_y", 6, 0, 0, ctypes_i16, 0 },
- { "side", 8, 0, 2, ctypes_bf, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_line_param = {
- 41, /* size in bytes */
- 15, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[15]) {
- { "cfg_p1_x", 8, 0, 0, ctypes_i16, 0 },
- { "cfg_p1_y", 10, 0, 0, ctypes_i16, 0 },
- { "cfg_p2_x", 12, 0, 0, ctypes_i16, 0 },
- { "cfg_p2_y", 14, 0, 0, ctypes_i16, 0 },
- { "cfg_side", 16, 0, 2, ctypes_bf, 0 },
- { "dsc_cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "dsc_type", 4, 0, 0, ctypes_u8, 0 },
- { "flat", 40, 0, 1, ctypes_bf, 0 },
- { "inv", 40, 1, 1, ctypes_bf, 0 },
- { "origo_x", 20, 0, 0, ctypes_i16, 0 },
- { "origo_y", 22, 0, 0, ctypes_i16, 0 },
- { "spx", 36, 0, 0, ctypes_i32, 0 },
- { "steep", 32, 0, 0, ctypes_i32, 0 },
- { "xy_steep", 24, 0, 0, ctypes_i32, 0 },
- { "yx_steep", 28, 0, 0, ctypes_i32, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_angle_param_cfg = {
- 8, /* size in bytes */
- 4, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[4]) {
- { "end_angle", 6, 0, 0, ctypes_i16, 0 },
- { "start_angle", 4, 0, 0, ctypes_i16, 0 },
- { "vertex_p_x", 0, 0, 0, ctypes_i16, 0 },
- { "vertex_p_y", 2, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_angle_param = {
- 104, /* size in bytes */
- 37, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[37]) {
- { "cfg_end_angle", 14, 0, 0, ctypes_i16, 0 },
- { "cfg_start_angle", 12, 0, 0, ctypes_i16, 0 },
- { "cfg_vertex_p_x", 8, 0, 0, ctypes_i16, 0 },
- { "cfg_vertex_p_y", 10, 0, 0, ctypes_i16, 0 },
- { "delta_deg", 102, 0, 0, ctypes_u16, 0 },
- { "dsc_cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "dsc_type", 4, 0, 0, ctypes_u8, 0 },
- { "end_line_cfg_p1_x", 68, 0, 0, ctypes_i16, 0 },
- { "end_line_cfg_p1_y", 70, 0, 0, ctypes_i16, 0 },
- { "end_line_cfg_p2_x", 72, 0, 0, ctypes_i16, 0 },
- { "end_line_cfg_p2_y", 74, 0, 0, ctypes_i16, 0 },
- { "end_line_cfg_side", 76, 0, 2, ctypes_bf, 0 },
- { "end_line_dsc_cb", 60, 0, 0, ctypes_ptr32, 0 },
- { "end_line_dsc_type", 64, 0, 0, ctypes_u8, 0 },
- { "end_line_flat", 100, 0, 1, ctypes_bf, 0 },
- { "end_line_inv", 100, 1, 1, ctypes_bf, 0 },
- { "end_line_origo_x", 80, 0, 0, ctypes_i16, 0 },
- { "end_line_origo_y", 82, 0, 0, ctypes_i16, 0 },
- { "end_line_spx", 96, 0, 0, ctypes_i32, 0 },
- { "end_line_steep", 92, 0, 0, ctypes_i32, 0 },
- { "end_line_xy_steep", 84, 0, 0, ctypes_i32, 0 },
- { "end_line_yx_steep", 88, 0, 0, ctypes_i32, 0 },
- { "start_line_cfg_p1_x", 24, 0, 0, ctypes_i16, 0 },
- { "start_line_cfg_p1_y", 26, 0, 0, ctypes_i16, 0 },
- { "start_line_cfg_p2_x", 28, 0, 0, ctypes_i16, 0 },
- { "start_line_cfg_p2_y", 30, 0, 0, ctypes_i16, 0 },
- { "start_line_cfg_side", 32, 0, 2, ctypes_bf, 0 },
- { "start_line_dsc_cb", 16, 0, 0, ctypes_ptr32, 0 },
- { "start_line_dsc_type", 20, 0, 0, ctypes_u8, 0 },
- { "start_line_flat", 56, 0, 1, ctypes_bf, 0 },
- { "start_line_inv", 56, 1, 1, ctypes_bf, 0 },
- { "start_line_origo_x", 36, 0, 0, ctypes_i16, 0 },
- { "start_line_origo_y", 38, 0, 0, ctypes_i16, 0 },
- { "start_line_spx", 52, 0, 0, ctypes_i32, 0 },
- { "start_line_steep", 48, 0, 0, ctypes_i32, 0 },
- { "start_line_xy_steep", 40, 0, 0, ctypes_i32, 0 },
- { "start_line_yx_steep", 44, 0, 0, ctypes_i32, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_radius_param_cfg = {
- 11, /* size in bytes */
- 6, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[6]) {
- { "outer", 10, 0, 1, ctypes_bf, 0 },
- { "radius", 8, 0, 0, ctypes_i16, 0 },
- { "rect_x1", 0, 0, 0, ctypes_i16, 0 },
- { "rect_x2", 4, 0, 0, ctypes_i16, 0 },
- { "rect_y1", 2, 0, 0, ctypes_i16, 0 },
- { "rect_y2", 6, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_sqrt_res = {
- 4, /* size in bytes */
- 2, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[2]) {
- { "f", 2, 0, 0, ctypes_u16, 0 },
- { "i", 0, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_radius_param = {
- 28, /* size in bytes */
- 11, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[11]) {
- { "cfg_outer", 18, 0, 1, ctypes_bf, 0 },
- { "cfg_radius", 16, 0, 0, ctypes_i16, 0 },
- { "cfg_rect_x1", 8, 0, 0, ctypes_i16, 0 },
- { "cfg_rect_x2", 12, 0, 0, ctypes_i16, 0 },
- { "cfg_rect_y1", 10, 0, 0, ctypes_i16, 0 },
- { "cfg_rect_y2", 14, 0, 0, ctypes_i16, 0 },
- { "dsc_cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "dsc_type", 4, 0, 0, ctypes_u8, 0 },
- { "y_prev", 20, 0, 0, ctypes_i32, 0 },
- { "y_prev_x_f", 26, 0, 0, ctypes_u16, 0 },
- { "y_prev_x_i", 24, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_fade_param_cfg = {
- 14, /* size in bytes */
- 8, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[8]) {
- { "coords_x1", 0, 0, 0, ctypes_i16, 0 },
- { "coords_x2", 4, 0, 0, ctypes_i16, 0 },
- { "coords_y1", 2, 0, 0, ctypes_i16, 0 },
- { "coords_y2", 6, 0, 0, ctypes_i16, 0 },
- { "opa_bottom", 13, 0, 0, ctypes_u8, 0 },
- { "opa_top", 12, 0, 0, ctypes_u8, 0 },
- { "y_bottom", 10, 0, 0, ctypes_i16, 0 },
- { "y_top", 8, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_fade_param = {
- 22, /* size in bytes */
- 10, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[10]) {
- { "cfg_coords_x1", 8, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_x2", 12, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_y1", 10, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_y2", 14, 0, 0, ctypes_i16, 0 },
- { "cfg_opa_bottom", 21, 0, 0, ctypes_u8, 0 },
- { "cfg_opa_top", 20, 0, 0, ctypes_u8, 0 },
- { "cfg_y_bottom", 18, 0, 0, ctypes_i16, 0 },
- { "cfg_y_top", 16, 0, 0, ctypes_i16, 0 },
- { "dsc_cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "dsc_type", 4, 0, 0, ctypes_u8, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_map_param_cfg = {
- 12, /* size in bytes */
- 5, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[5]) {
- { "coords_x1", 0, 0, 0, ctypes_i16, 0 },
- { "coords_x2", 4, 0, 0, ctypes_i16, 0 },
- { "coords_y1", 2, 0, 0, ctypes_i16, 0 },
- { "coords_y2", 6, 0, 0, ctypes_i16, 0 },
- { "map", 8, 0, 0, ctypes_ptr32, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_map_param = {
- 20, /* size in bytes */
- 7, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[7]) {
- { "cfg_coords_x1", 8, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_x2", 12, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_y1", 10, 0, 0, ctypes_i16, 0 },
- { "cfg_coords_y2", 14, 0, 0, ctypes_i16, 0 },
- { "cfg_map", 16, 0, 0, ctypes_ptr32, 0 },
- { "dsc_cb", 0, 0, 0, ctypes_ptr32, 0 },
- { "dsc_type", 4, 0, 0, ctypes_u8, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_draw_mask_saved = {
- 8, /* size in bytes */
- 2, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[2]) {
- { "custom_id", 4, 0, 0, ctypes_ptr32, 0 },
- { "param", 0, 0, 0, ctypes_ptr32, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_scale = {
- 34, /* size in bytes */
- 15, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[15]) {
- { "angle_range", 30, 0, 0, ctypes_u16, 0 },
- { "label_color", 18, 0, 0, ctypes_i16, 0 },
- { "label_gap", 16, 0, 0, ctypes_i16, 0 },
- { "max", 24, 0, 0, ctypes_i32, 0 },
- { "min", 20, 0, 0, ctypes_i32, 0 },
- { "r_mod", 28, 0, 0, ctypes_i16, 0 },
- { "rotation", 32, 0, 0, ctypes_i16, 0 },
- { "tick_cnt", 2, 0, 0, ctypes_u16, 0 },
- { "tick_color", 0, 0, 0, ctypes_u16, 1 },
- { "tick_length", 4, 0, 0, ctypes_u16, 0 },
- { "tick_major_color", 8, 0, 0, ctypes_u16, 1 },
- { "tick_major_length", 12, 0, 0, ctypes_u16, 0 },
- { "tick_major_nth", 10, 0, 0, ctypes_u16, 0 },
- { "tick_major_width", 14, 0, 0, ctypes_u16, 0 },
- { "tick_width", 6, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_indicator = {
- 16, /* size in bytes */
- 5, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[5]) {
- { "end_value", 12, 0, 0, ctypes_i32, 0 },
- { "opa", 5, 0, 0, ctypes_u8, 0 },
- { "scale", 0, 0, 0, ctypes_ptr32, 0 },
- { "start_value", 8, 0, 0, ctypes_i32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_indicator_needle_img = {
- 24, /* size in bytes */
- 8, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[8]) {
- { "end_value", 12, 0, 0, ctypes_i32, 0 },
- { "opa", 5, 0, 0, ctypes_u8, 0 },
- { "pivot_x", 20, 0, 0, ctypes_i16, 0 },
- { "pivot_y", 22, 0, 0, ctypes_i16, 0 },
- { "scale", 0, 0, 0, ctypes_ptr32, 0 },
- { "src", 16, 0, 0, ctypes_ptr32, 0 },
- { "start_value", 8, 0, 0, ctypes_i32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_indicator_needle_line = {
- 22, /* size in bytes */
- 8, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[8]) {
- { "color", 20, 0, 0, ctypes_u16, 1 },
- { "end_value", 12, 0, 0, ctypes_i32, 0 },
- { "opa", 5, 0, 0, ctypes_u8, 0 },
- { "r_mod", 18, 0, 0, ctypes_i16, 0 },
- { "scale", 0, 0, 0, ctypes_ptr32, 0 },
- { "start_value", 8, 0, 0, ctypes_i32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
- { "width", 16, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_indicator_arc = {
- 28, /* size in bytes */
- 9, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[9]) {
- { "color", 24, 0, 0, ctypes_u16, 1 },
- { "end_value", 12, 0, 0, ctypes_i32, 0 },
- { "opa", 5, 0, 0, ctypes_u8, 0 },
- { "r_mod", 26, 0, 0, ctypes_i16, 0 },
- { "scale", 0, 0, 0, ctypes_ptr32, 0 },
- { "src", 20, 0, 0, ctypes_ptr32, 0 },
- { "start_value", 8, 0, 0, ctypes_i32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
- { "width", 16, 0, 0, ctypes_u16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_meter_indicator_scale_lines = {
- 23, /* size in bytes */
- 9, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[9]) {
- { "color_end", 20, 0, 0, ctypes_u16, 1 },
- { "color_start", 18, 0, 0, ctypes_u16, 1 },
- { "end_value", 12, 0, 0, ctypes_i32, 0 },
- { "local_grad", 22, 0, 1, ctypes_bf, 0 },
- { "opa", 5, 0, 0, ctypes_u8, 0 },
- { "scale", 0, 0, 0, ctypes_ptr32, 0 },
- { "start_value", 8, 0, 0, ctypes_i32, 0 },
- { "type", 4, 0, 0, ctypes_u8, 0 },
- { "width_mod", 16, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_obj_class = {
- 27, /* size in bytes */
- 10, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[10]) {
- { "base_class", 0, 0, 0, ctypes_ptr32, 0 },
- { "constructor_cb", 4, 0, 0, ctypes_ptr32, 0 },
- { "destructor_cb", 8, 0, 0, ctypes_ptr32, 0 },
- { "editable", 24, 0, 2, ctypes_bf, 0 },
- { "event_cb", 16, 0, 0, ctypes_ptr32, 0 },
- { "group_def", 24, 2, 2, ctypes_bf, 0 },
- { "height_def", 22, 0, 0, ctypes_i16, 0 },
- { "instance_size", 24, 4, 16, ctypes_bf, 0 },
- { "user_data", 12, 0, 0, ctypes_ptr32, 0 },
- { "width_def", 20, 0, 0, ctypes_i16, 0 },
-}};
-
-const be_ctypes_structure_t be_lv_event = {
- 25, /* size in bytes */
- 7, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[7]) {
- { "code", 8, 0, 0, ctypes_i32, 0 },
- { "current_target", 4, 0, 0, ctypes_ptr32, 0 },
- { "deleted", 24, 0, 1, ctypes_bf, 0 },
- { "param", 16, 0, 0, ctypes_ptr32, 0 },
- { "prev", 20, 0, 0, ctypes_ptr32, 0 },
- { "target", 0, 0, 0, ctypes_ptr32, 0 },
- { "user_data", 12, 0, 0, ctypes_ptr32, 0 },
-}};
-
-static const char * be_ctypes_instance_mappings[] = {
- "lv_color",
- NULL
-};
-
-static be_define_ctypes_class(lv_area, &be_lv_area, &be_class_ctypes, "lv_area");
-static be_define_ctypes_class(lv_draw_img_dsc, &be_lv_draw_img_dsc, &be_class_ctypes, "lv_draw_img_dsc");
-static be_define_ctypes_class(lv_draw_line_dsc, &be_lv_draw_line_dsc, &be_class_ctypes, "lv_draw_line_dsc");
-static be_define_ctypes_class(lv_draw_mask_angle_param, &be_lv_draw_mask_angle_param, &be_class_ctypes, "lv_draw_mask_angle_param");
-static be_define_ctypes_class(lv_draw_mask_angle_param_cfg, &be_lv_draw_mask_angle_param_cfg, &be_class_ctypes, "lv_draw_mask_angle_param_cfg");
-static be_define_ctypes_class(lv_draw_mask_common_dsc, &be_lv_draw_mask_common_dsc, &be_class_ctypes, "lv_draw_mask_common_dsc");
-static be_define_ctypes_class(lv_draw_mask_fade_param, &be_lv_draw_mask_fade_param, &be_class_ctypes, "lv_draw_mask_fade_param");
-static be_define_ctypes_class(lv_draw_mask_fade_param_cfg, &be_lv_draw_mask_fade_param_cfg, &be_class_ctypes, "lv_draw_mask_fade_param_cfg");
-static be_define_ctypes_class(lv_draw_mask_line_param, &be_lv_draw_mask_line_param, &be_class_ctypes, "lv_draw_mask_line_param");
-static be_define_ctypes_class(lv_draw_mask_line_param_cfg, &be_lv_draw_mask_line_param_cfg, &be_class_ctypes, "lv_draw_mask_line_param_cfg");
-static be_define_ctypes_class(lv_draw_mask_map_param, &be_lv_draw_mask_map_param, &be_class_ctypes, "lv_draw_mask_map_param");
-static be_define_ctypes_class(lv_draw_mask_map_param_cfg, &be_lv_draw_mask_map_param_cfg, &be_class_ctypes, "lv_draw_mask_map_param_cfg");
-static be_define_ctypes_class(lv_draw_mask_radius_param, &be_lv_draw_mask_radius_param, &be_class_ctypes, "lv_draw_mask_radius_param");
-static be_define_ctypes_class(lv_draw_mask_radius_param_cfg, &be_lv_draw_mask_radius_param_cfg, &be_class_ctypes, "lv_draw_mask_radius_param_cfg");
-static be_define_ctypes_class(lv_draw_mask_saved, &be_lv_draw_mask_saved, &be_class_ctypes, "lv_draw_mask_saved");
-static be_define_ctypes_class(lv_draw_rect_dsc, &be_lv_draw_rect_dsc, &be_class_ctypes, "lv_draw_rect_dsc");
-static be_define_ctypes_class(lv_event, &be_lv_event, &be_class_ctypes, "lv_event");
-static be_define_ctypes_class(lv_meter_indicator, &be_lv_meter_indicator, &be_class_ctypes, "lv_meter_indicator");
-static be_define_ctypes_class(lv_meter_indicator_arc, &be_lv_meter_indicator_arc, &be_class_ctypes, "lv_meter_indicator_arc");
-static be_define_ctypes_class(lv_meter_indicator_needle_img, &be_lv_meter_indicator_needle_img, &be_class_ctypes, "lv_meter_indicator_needle_img");
-static be_define_ctypes_class(lv_meter_indicator_needle_line, &be_lv_meter_indicator_needle_line, &be_class_ctypes, "lv_meter_indicator_needle_line");
-static be_define_ctypes_class(lv_meter_indicator_scale_lines, &be_lv_meter_indicator_scale_lines, &be_class_ctypes, "lv_meter_indicator_scale_lines");
-static be_define_ctypes_class(lv_meter_scale, &be_lv_meter_scale, &be_class_ctypes, "lv_meter_scale");
-static be_define_ctypes_class(lv_obj_class, &be_lv_obj_class, &be_class_ctypes, "lv_obj_class");
-static be_define_ctypes_class(lv_point, &be_lv_point, &be_class_ctypes, "lv_point");
-static be_define_ctypes_class(lv_sqrt_res, &be_lv_sqrt_res, &be_class_ctypes, "lv_sqrt_res");
-
-void be_load_ctypes_lvgl_definitions_lib(bvm *vm) {
- ctypes_register_class(vm, &be_class_lv_area, &be_lv_area);
- ctypes_register_class(vm, &be_class_lv_draw_img_dsc, &be_lv_draw_img_dsc);
- ctypes_register_class(vm, &be_class_lv_draw_line_dsc, &be_lv_draw_line_dsc);
- ctypes_register_class(vm, &be_class_lv_draw_mask_angle_param, &be_lv_draw_mask_angle_param);
- ctypes_register_class(vm, &be_class_lv_draw_mask_angle_param_cfg, &be_lv_draw_mask_angle_param_cfg);
- ctypes_register_class(vm, &be_class_lv_draw_mask_common_dsc, &be_lv_draw_mask_common_dsc);
- ctypes_register_class(vm, &be_class_lv_draw_mask_fade_param, &be_lv_draw_mask_fade_param);
- ctypes_register_class(vm, &be_class_lv_draw_mask_fade_param_cfg, &be_lv_draw_mask_fade_param_cfg);
- ctypes_register_class(vm, &be_class_lv_draw_mask_line_param, &be_lv_draw_mask_line_param);
- ctypes_register_class(vm, &be_class_lv_draw_mask_line_param_cfg, &be_lv_draw_mask_line_param_cfg);
- ctypes_register_class(vm, &be_class_lv_draw_mask_map_param, &be_lv_draw_mask_map_param);
- ctypes_register_class(vm, &be_class_lv_draw_mask_map_param_cfg, &be_lv_draw_mask_map_param_cfg);
- ctypes_register_class(vm, &be_class_lv_draw_mask_radius_param, &be_lv_draw_mask_radius_param);
- ctypes_register_class(vm, &be_class_lv_draw_mask_radius_param_cfg, &be_lv_draw_mask_radius_param_cfg);
- ctypes_register_class(vm, &be_class_lv_draw_mask_saved, &be_lv_draw_mask_saved);
- ctypes_register_class(vm, &be_class_lv_draw_rect_dsc, &be_lv_draw_rect_dsc);
- ctypes_register_class(vm, &be_class_lv_event, &be_lv_event);
- ctypes_register_class(vm, &be_class_lv_meter_indicator, &be_lv_meter_indicator);
- ctypes_register_class(vm, &be_class_lv_meter_indicator_arc, &be_lv_meter_indicator_arc);
- ctypes_register_class(vm, &be_class_lv_meter_indicator_needle_img, &be_lv_meter_indicator_needle_img);
- ctypes_register_class(vm, &be_class_lv_meter_indicator_needle_line, &be_lv_meter_indicator_needle_line);
- ctypes_register_class(vm, &be_class_lv_meter_indicator_scale_lines, &be_lv_meter_indicator_scale_lines);
- ctypes_register_class(vm, &be_class_lv_meter_scale, &be_lv_meter_scale);
- ctypes_register_class(vm, &be_class_lv_obj_class, &be_lv_obj_class);
- ctypes_register_class(vm, &be_class_lv_point, &be_lv_point);
- ctypes_register_class(vm, &be_class_lv_sqrt_res, &be_lv_sqrt_res);
-}
-
-be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
- { "lv_area", &be_class_lv_area },
- { "lv_draw_img_dsc", &be_class_lv_draw_img_dsc },
- { "lv_draw_line_dsc", &be_class_lv_draw_line_dsc },
- { "lv_draw_mask_angle_param", &be_class_lv_draw_mask_angle_param },
- { "lv_draw_mask_angle_param_cfg", &be_class_lv_draw_mask_angle_param_cfg },
- { "lv_draw_mask_common_dsc", &be_class_lv_draw_mask_common_dsc },
- { "lv_draw_mask_fade_param", &be_class_lv_draw_mask_fade_param },
- { "lv_draw_mask_fade_param_cfg", &be_class_lv_draw_mask_fade_param_cfg },
- { "lv_draw_mask_line_param", &be_class_lv_draw_mask_line_param },
- { "lv_draw_mask_line_param_cfg", &be_class_lv_draw_mask_line_param_cfg },
- { "lv_draw_mask_map_param", &be_class_lv_draw_mask_map_param },
- { "lv_draw_mask_map_param_cfg", &be_class_lv_draw_mask_map_param_cfg },
- { "lv_draw_mask_radius_param", &be_class_lv_draw_mask_radius_param },
- { "lv_draw_mask_radius_param_cfg", &be_class_lv_draw_mask_radius_param_cfg },
- { "lv_draw_mask_saved", &be_class_lv_draw_mask_saved },
- { "lv_draw_rect_dsc", &be_class_lv_draw_rect_dsc },
- { "lv_event", &be_class_lv_event },
- { "lv_meter_indicator", &be_class_lv_meter_indicator },
- { "lv_meter_indicator_arc", &be_class_lv_meter_indicator_arc },
- { "lv_meter_indicator_needle_img", &be_class_lv_meter_indicator_needle_img },
- { "lv_meter_indicator_needle_line", &be_class_lv_meter_indicator_needle_line },
- { "lv_meter_indicator_scale_lines", &be_class_lv_meter_indicator_scale_lines },
- { "lv_meter_scale", &be_class_lv_meter_scale },
- { "lv_obj_class", &be_class_lv_obj_class },
- { "lv_point", &be_class_lv_point },
- { "lv_sqrt_res", &be_class_lv_sqrt_res },
-};
-const size_t be_ctypes_lvgl_classes_size = sizeof(be_ctypes_lvgl_classes)/sizeof(be_ctypes_lvgl_classes[0]);
-
-/********************************************************************/
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_glob_lib.c b/lib/libesp32/berry/default/be_lvgl_glob_lib.c
deleted file mode 100644
index 06827fc0e..000000000
--- a/lib/libesp32/berry/default/be_lvgl_glob_lib.c
+++ /dev/null
@@ -1,826 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: get_object_from_ptr
-********************************************************************/
-be_local_closure(LVGL_glob_get_object_from_ptr, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(cb_obj),
- /* K1 */ be_nested_str(find),
- }),
- &be_const_str_get_object_from_ptr,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x20080403, // 0002 NE R2 R2 R3
- 0x780A0004, // 0003 JMPF R2 #0009
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x8C080501, // 0005 GETMET R2 R2 K1
- 0x5C100200, // 0006 MOVE R4 R1
- 0x7C080400, // 0007 CALL R2 2
- 0x80040400, // 0008 RET 1 R2
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_event_impl
-********************************************************************/
-be_local_closure(LVGL_glob_widget_event_impl, /* name */
- be_nested_proto(
- 12, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(lv_obj_class),
- /* K3 */ be_nested_str(lv_event),
- /* K4 */ be_nested_str(target),
- /* K5 */ be_nested_str(get_object_from_ptr),
- /* K6 */ be_nested_str(instance),
- /* K7 */ be_nested_str(get),
- /* K8 */ be_nested_str(widget_event),
- }),
- &be_const_str_widget_event_impl,
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0xB8120200, // 0001 GETNGBL R4 K1
- 0x8C100902, // 0002 GETMET R4 R4 K2
- 0x5C180200, // 0003 MOVE R6 R1
- 0x7C100400, // 0004 CALL R4 2
- 0xB8160200, // 0005 GETNGBL R5 K1
- 0x8C140B03, // 0006 GETMET R5 R5 K3
- 0x5C1C0400, // 0007 MOVE R7 R2
- 0x7C140400, // 0008 CALL R5 2
- 0x88180B04, // 0009 GETMBR R6 R5 K4
- 0x8C1C0105, // 000A GETMET R7 R0 K5
- 0x5C240C00, // 000B MOVE R9 R6
- 0x7C1C0400, // 000C CALL R7 2
- 0x60200004, // 000D GETGBL R8 G4
- 0x5C240E00, // 000E MOVE R9 R7
- 0x7C200200, // 000F CALL R8 1
- 0x1C201106, // 0010 EQ R8 R8 K6
- 0x78220008, // 0011 JMPF R8 #001B
- 0x8C200707, // 0012 GETMET R8 R3 K7
- 0x5C280E00, // 0013 MOVE R10 R7
- 0x582C0008, // 0014 LDCONST R11 K8
- 0x7C200600, // 0015 CALL R8 3
- 0x78220003, // 0016 JMPF R8 #001B
- 0x8C200F08, // 0017 GETMET R8 R7 K8
- 0x5C280800, // 0018 MOVE R10 R4
- 0x5C2C0A00, // 0019 MOVE R11 R5
- 0x7C200600, // 001A CALL R8 3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: lvgl_event_dispatch
-********************************************************************/
-be_local_closure(LVGL_glob_lvgl_event_dispatch, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(lv_event),
- /* K3 */ be_nested_str(toptr),
- /* K4 */ be_nested_str(target),
- /* K5 */ be_nested_str(cb_event_closure),
- /* K6 */ be_nested_str(get_object_from_ptr),
- }),
- &be_const_str_lvgl_event_dispatch,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x8C140503, // 0003 GETMET R5 R2 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x7C140400, // 0005 CALL R5 2
- 0x7C0C0400, // 0006 CALL R3 2
- 0x88100704, // 0007 GETMBR R4 R3 K4
- 0x88140105, // 0008 GETMBR R5 R0 K5
- 0x94140A04, // 0009 GETIDX R5 R5 R4
- 0x8C180106, // 000A GETMET R6 R0 K6
- 0x5C200800, // 000B MOVE R8 R4
- 0x7C180400, // 000C CALL R6 2
- 0x5C1C0A00, // 000D MOVE R7 R5
- 0x5C200C00, // 000E MOVE R8 R6
- 0x5C240600, // 000F MOVE R9 R3
- 0x7C1C0400, // 0010 CALL R7 2
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_dtor_impl
-********************************************************************/
-be_local_closure(LVGL_glob_widget_dtor_impl, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(lv_obj_class),
- /* K3 */ be_nested_str(get_object_from_ptr),
- /* K4 */ be_nested_str(instance),
- /* K5 */ be_nested_str(get),
- /* K6 */ be_nested_str(widget_destructor),
- }),
- &be_const_str_widget_dtor_impl,
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0xB8120200, // 0001 GETNGBL R4 K1
- 0x8C100902, // 0002 GETMET R4 R4 K2
- 0x5C180200, // 0003 MOVE R6 R1
- 0x7C100400, // 0004 CALL R4 2
- 0x8C140103, // 0005 GETMET R5 R0 K3
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C140400, // 0007 CALL R5 2
- 0x60180004, // 0008 GETGBL R6 G4
- 0x5C1C0A00, // 0009 MOVE R7 R5
- 0x7C180200, // 000A CALL R6 1
- 0x1C180D04, // 000B EQ R6 R6 K4
- 0x781A0007, // 000C JMPF R6 #0015
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x5C200A00, // 000E MOVE R8 R5
- 0x58240006, // 000F LDCONST R9 K6
- 0x7C180600, // 0010 CALL R6 3
- 0x781A0002, // 0011 JMPF R6 #0015
- 0x8C180B06, // 0012 GETMET R6 R5 K6
- 0x5C200800, // 0013 MOVE R8 R4
- 0x7C180400, // 0014 CALL R6 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_obj
-********************************************************************/
-be_local_closure(LVGL_glob_register_obj, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(cb_obj),
- /* K1 */ be_nested_str(_p),
- }),
- &be_const_str_register_obj,
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* 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
- 0x88080301, // 0007 GETMBR R2 R1 K1
- 0x880C0100, // 0008 GETMBR R3 R0 K0
- 0x980C0401, // 0009 SETIDX R3 R2 R1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: gen_cb
-********************************************************************/
-be_local_closure(LVGL_glob_gen_cb, /* name */
- be_nested_proto(
- 8, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 1]) {
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(lvgl_event_dispatch),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68040000, // 0000 GETUPV R1 U0
- 0x8C040300, // 0001 GETMET R1 R1 K0
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x80040200, // 0004 RET 1 R1
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(lv_event_cb),
- /* K1 */ be_nested_str(cb_event_closure),
- /* K2 */ be_nested_str(event_cb),
- /* K3 */ be_nested_str(tasmota),
- /* K4 */ be_nested_str(gen_cb),
- /* K5 */ be_nested_str(register_obj),
- /* K6 */ be_nested_str(null_cb),
- /* K7 */ be_nested_str(cb_do_nothing),
- }),
- &be_const_str_gen_cb,
- &be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
- 0x1C140300, // 0000 EQ R5 R1 K0
- 0x78160018, // 0001 JMPF R5 #001B
- 0x88140101, // 0002 GETMBR R5 R0 K1
- 0x4C180000, // 0003 LDNIL R6
- 0x1C140A06, // 0004 EQ R5 R5 R6
- 0x78160002, // 0005 JMPF R5 #0009
- 0x60140013, // 0006 GETGBL R5 G19
- 0x7C140000, // 0007 CALL R5 0
- 0x90020205, // 0008 SETMBR R0 K1 R5
- 0x88140102, // 0009 GETMBR R5 R0 K2
- 0x4C180000, // 000A LDNIL R6
- 0x1C140A06, // 000B EQ R5 R5 R6
- 0x78160004, // 000C JMPF R5 #0012
- 0xB8160600, // 000D GETNGBL R5 K3
- 0x8C140B04, // 000E GETMET R5 R5 K4
- 0x841C0000, // 000F CLOSURE R7 P0
- 0x7C140400, // 0010 CALL R5 2
- 0x90020405, // 0011 SETMBR R0 K2 R5
- 0x8C140105, // 0012 GETMET R5 R0 K5
- 0x5C1C0600, // 0013 MOVE R7 R3
- 0x7C140400, // 0014 CALL R5 2
- 0x88140101, // 0015 GETMBR R5 R0 K1
- 0x98140802, // 0016 SETIDX R5 R4 R2
- 0x88140102, // 0017 GETMBR R5 R0 K2
- 0xA0000000, // 0018 CLOSE R0
- 0x80040A00, // 0019 RET 1 R5
- 0x7002000B, // 001A JMP #0027
- 0x88140106, // 001B GETMBR R5 R0 K6
- 0x4C180000, // 001C LDNIL R6
- 0x1C140A06, // 001D EQ R5 R5 R6
- 0x78160004, // 001E JMPF R5 #0024
- 0xB8160600, // 001F GETNGBL R5 K3
- 0x8C140B04, // 0020 GETMET R5 R5 K4
- 0x881C0107, // 0021 GETMBR R7 R0 K7
- 0x7C140400, // 0022 CALL R5 2
- 0x90020C05, // 0023 SETMBR R0 K6 R5
- 0x88140106, // 0024 GETMBR R5 R0 K6
- 0xA0000000, // 0025 CLOSE R0
- 0x80040A00, // 0026 RET 1 R5
- 0xA0000000, // 0027 CLOSE R0
- 0x80000000, // 0028 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: deregister_obj
-********************************************************************/
-be_local_closure(LVGL_glob_deregister_obj, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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_obj),
- /* K1 */ be_nested_str(remove),
- /* K2 */ be_nested_str(cb_event_closure),
- }),
- &be_const_str_deregister_obj,
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x20080403, // 0002 NE R2 R2 R3
- 0x780A0003, // 0003 JMPF R2 #0008
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x8C080501, // 0005 GETMET R2 R2 K1
- 0x5C100200, // 0006 MOVE R4 R1
- 0x7C080400, // 0007 CALL R2 2
- 0x88080102, // 0008 GETMBR R2 R0 K2
- 0x4C0C0000, // 0009 LDNIL R3
- 0x20080403, // 000A NE R2 R2 R3
- 0x780A0003, // 000B JMPF R2 #0010
- 0x88080102, // 000C GETMBR R2 R0 K2
- 0x8C080501, // 000D GETMET R2 R2 K1
- 0x5C100200, // 000E MOVE R4 R1
- 0x7C080400, // 000F CALL R2 2
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_cb
-********************************************************************/
-be_local_closure(LVGL_glob_widget_cb, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(widget_ctor_impl),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x68080000, // 0000 GETUPV R2 U0
- 0x8C080500, // 0001 GETMET R2 R2 K0
- 0x5C100000, // 0002 MOVE R4 R0
- 0x5C140200, // 0003 MOVE R5 R1
- 0x7C080600, // 0004 CALL R2 3
- 0x80040400, // 0005 RET 1 R2
- })
- ),
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(widget_dtor_impl),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x68080000, // 0000 GETUPV R2 U0
- 0x8C080500, // 0001 GETMET R2 R2 K0
- 0x5C100000, // 0002 MOVE R4 R0
- 0x5C140200, // 0003 MOVE R5 R1
- 0x7C080600, // 0004 CALL R2 3
- 0x80040400, // 0005 RET 1 R2
- })
- ),
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(widget_event_impl),
- }),
- &be_const_str__X3Clambda_X3E,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x68080000, // 0000 GETUPV R2 U0
- 0x8C080500, // 0001 GETMET R2 R2 K0
- 0x5C100000, // 0002 MOVE R4 R0
- 0x5C140200, // 0003 MOVE R5 R1
- 0x7C080600, // 0004 CALL R2 3
- 0x80040400, // 0005 RET 1 R2
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str(widget_ctor_cb),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(gen_cb),
- /* K3 */ be_nested_str(widget_dtor_cb),
- /* K4 */ be_nested_str(widget_event_cb),
- /* K5 */ be_nested_str(widget_struct_default),
- /* K6 */ be_nested_str(lv),
- /* K7 */ be_nested_str(lv_obj_class),
- /* K8 */ be_nested_str(lv_obj),
- /* K9 */ be_nested_str(_class),
- /* K10 */ be_nested_str(copy),
- /* K11 */ be_nested_str(base_class),
- /* K12 */ be_nested_str(constructor_cb),
- /* K13 */ be_nested_str(destructor_cb),
- /* K14 */ be_nested_str(event_cb),
- }),
- &be_const_str_widget_cb,
- &be_const_str_solidified,
- ( &(const binstruction[56]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060004, // 0003 JMPF R1 #0009
- 0xB8060200, // 0004 GETNGBL R1 K1
- 0x8C040302, // 0005 GETMET R1 R1 K2
- 0x840C0000, // 0006 CLOSURE R3 P0
- 0x7C040400, // 0007 CALL R1 2
- 0x90020001, // 0008 SETMBR R0 K0 R1
- 0x88040103, // 0009 GETMBR R1 R0 K3
- 0x4C080000, // 000A LDNIL R2
- 0x1C040202, // 000B EQ R1 R1 R2
- 0x78060004, // 000C JMPF R1 #0012
- 0xB8060200, // 000D GETNGBL R1 K1
- 0x8C040302, // 000E GETMET R1 R1 K2
- 0x840C0001, // 000F CLOSURE R3 P1
- 0x7C040400, // 0010 CALL R1 2
- 0x90020601, // 0011 SETMBR R0 K3 R1
- 0x88040104, // 0012 GETMBR R1 R0 K4
- 0x4C080000, // 0013 LDNIL R2
- 0x1C040202, // 0014 EQ R1 R1 R2
- 0x78060004, // 0015 JMPF R1 #001B
- 0xB8060200, // 0016 GETNGBL R1 K1
- 0x8C040302, // 0017 GETMET R1 R1 K2
- 0x840C0002, // 0018 CLOSURE R3 P2
- 0x7C040400, // 0019 CALL R1 2
- 0x90020801, // 001A SETMBR R0 K4 R1
- 0x88040105, // 001B GETMBR R1 R0 K5
- 0x4C080000, // 001C LDNIL R2
- 0x1C040202, // 001D EQ R1 R1 R2
- 0x78060016, // 001E JMPF R1 #0036
- 0xB8060C00, // 001F GETNGBL R1 K6
- 0x8C040307, // 0020 GETMET R1 R1 K7
- 0xB80E0C00, // 0021 GETNGBL R3 K6
- 0x880C0708, // 0022 GETMBR R3 R3 K8
- 0x880C0709, // 0023 GETMBR R3 R3 K9
- 0x7C040400, // 0024 CALL R1 2
- 0x8C04030A, // 0025 GETMET R1 R1 K10
- 0x7C040200, // 0026 CALL R1 1
- 0x90020A01, // 0027 SETMBR R0 K5 R1
- 0x88040105, // 0028 GETMBR R1 R0 K5
- 0xB80A0C00, // 0029 GETNGBL R2 K6
- 0x88080508, // 002A GETMBR R2 R2 K8
- 0x88080509, // 002B GETMBR R2 R2 K9
- 0x90061602, // 002C SETMBR R1 K11 R2
- 0x88040105, // 002D GETMBR R1 R0 K5
- 0x88080100, // 002E GETMBR R2 R0 K0
- 0x90061802, // 002F SETMBR R1 K12 R2
- 0x88040105, // 0030 GETMBR R1 R0 K5
- 0x88080103, // 0031 GETMBR R2 R0 K3
- 0x90061A02, // 0032 SETMBR R1 K13 R2
- 0x88040105, // 0033 GETMBR R1 R0 K5
- 0x88080104, // 0034 GETMBR R2 R0 K4
- 0x90061C02, // 0035 SETMBR R1 K14 R2
- 0xA0000000, // 0036 CLOSE R0
- 0x80000000, // 0037 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _anonymous_
-********************************************************************/
-be_local_closure(LVGL_glob__anonymous_, /* name */
- be_nested_proto(
- 2, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback),
- }),
- &be_const_str__anonymous_,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60000001, // 0000 GETGBL R0 G1
- 0x58040000, // 0001 LDCONST R1 K0
- 0x7C000200, // 0002 CALL R0 1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: create_custom_widget
-********************************************************************/
-be_local_closure(LVGL_glob_create_custom_widget, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(lv_obj),
- /* K3 */ be_nested_str(value_error),
- /* K4 */ be_nested_str(arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj),
- /* K5 */ be_nested_str(widget_struct_by_class),
- /* K6 */ be_nested_str(find),
- /* K7 */ be_nested_str(widget_cb),
- /* K8 */ be_nested_str(widget_struct_default),
- /* K9 */ be_nested_str(copy),
- /* K10 */ be_nested_str(base_class),
- /* K11 */ be_nested_str(_class),
- /* K12 */ be_nested_str(get),
- /* K13 */ be_nested_str(widget_width_def),
- /* K14 */ be_nested_str(width_def),
- /* K15 */ be_nested_str(widget_height_def),
- /* K16 */ be_nested_str(height_def),
- /* K17 */ be_nested_str(widget_editable),
- /* K18 */ be_nested_str(editable),
- /* K19 */ be_nested_str(widget_group_def),
- /* K20 */ be_nested_str(group_def),
- /* K21 */ be_nested_str(widget_instance_size),
- /* K22 */ be_nested_str(instance_size),
- /* K23 */ be_nested_str(obj_class_create_obj),
- /* K24 */ be_nested_str(_p),
- /* K25 */ be_nested_str(register_obj),
- /* K26 */ be_nested_str(class_init_obj),
- }),
- &be_const_str_create_custom_widget,
- &be_const_str_solidified,
- ( &(const binstruction[86]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x6010000F, // 0001 GETGBL R4 G15
- 0x5C140200, // 0002 MOVE R5 R1
- 0xB81A0200, // 0003 GETNGBL R6 K1
- 0x88180D02, // 0004 GETMBR R6 R6 K2
- 0x7C100400, // 0005 CALL R4 2
- 0x74120000, // 0006 JMPT R4 #0008
- 0xB0060704, // 0007 RAISE 1 K3 K4
- 0x88100105, // 0008 GETMBR R4 R0 K5
- 0x4C140000, // 0009 LDNIL R5
- 0x1C100805, // 000A EQ R4 R4 R5
- 0x78120002, // 000B JMPF R4 #000F
- 0x60100013, // 000C GETGBL R4 G19
- 0x7C100000, // 000D CALL R4 0
- 0x90020A04, // 000E SETMBR R0 K5 R4
- 0x60100005, // 000F GETGBL R4 G5
- 0x5C140200, // 0010 MOVE R5 R1
- 0x7C100200, // 0011 CALL R4 1
- 0x88140105, // 0012 GETMBR R5 R0 K5
- 0x8C140B06, // 0013 GETMET R5 R5 K6
- 0x5C1C0800, // 0014 MOVE R7 R4
- 0x7C140400, // 0015 CALL R5 2
- 0x4C180000, // 0016 LDNIL R6
- 0x1C180A06, // 0017 EQ R6 R5 R6
- 0x781A002F, // 0018 JMPF R6 #0049
- 0x8C180107, // 0019 GETMET R6 R0 K7
- 0x7C180200, // 001A CALL R6 1
- 0x88180108, // 001B GETMBR R6 R0 K8
- 0x8C180D09, // 001C GETMET R6 R6 K9
- 0x7C180200, // 001D CALL R6 1
- 0x5C140C00, // 001E MOVE R5 R6
- 0x60180003, // 001F GETGBL R6 G3
- 0x5C1C0200, // 0020 MOVE R7 R1
- 0x7C180200, // 0021 CALL R6 1
- 0x88180D0B, // 0022 GETMBR R6 R6 K11
- 0x90161406, // 0023 SETMBR R5 K10 R6
- 0x8C18070C, // 0024 GETMET R6 R3 K12
- 0x5C200200, // 0025 MOVE R8 R1
- 0x5824000D, // 0026 LDCONST R9 K13
- 0x7C180600, // 0027 CALL R6 3
- 0x781A0001, // 0028 JMPF R6 #002B
- 0x8818030D, // 0029 GETMBR R6 R1 K13
- 0x90161C06, // 002A SETMBR R5 K14 R6
- 0x8C18070C, // 002B GETMET R6 R3 K12
- 0x5C200200, // 002C MOVE R8 R1
- 0x5824000F, // 002D LDCONST R9 K15
- 0x7C180600, // 002E CALL R6 3
- 0x781A0001, // 002F JMPF R6 #0032
- 0x8818030F, // 0030 GETMBR R6 R1 K15
- 0x90162006, // 0031 SETMBR R5 K16 R6
- 0x8C18070C, // 0032 GETMET R6 R3 K12
- 0x5C200200, // 0033 MOVE R8 R1
- 0x58240011, // 0034 LDCONST R9 K17
- 0x7C180600, // 0035 CALL R6 3
- 0x781A0001, // 0036 JMPF R6 #0039
- 0x88180311, // 0037 GETMBR R6 R1 K17
- 0x90162406, // 0038 SETMBR R5 K18 R6
- 0x8C18070C, // 0039 GETMET R6 R3 K12
- 0x5C200200, // 003A MOVE R8 R1
- 0x58240013, // 003B LDCONST R9 K19
- 0x7C180600, // 003C CALL R6 3
- 0x781A0001, // 003D JMPF R6 #0040
- 0x88180313, // 003E GETMBR R6 R1 K19
- 0x90162806, // 003F SETMBR R5 K20 R6
- 0x8C18070C, // 0040 GETMET R6 R3 K12
- 0x5C200200, // 0041 MOVE R8 R1
- 0x58240015, // 0042 LDCONST R9 K21
- 0x7C180600, // 0043 CALL R6 3
- 0x781A0001, // 0044 JMPF R6 #0047
- 0x88180315, // 0045 GETMBR R6 R1 K21
- 0x90162C06, // 0046 SETMBR R5 K22 R6
- 0x88180105, // 0047 GETMBR R6 R0 K5
- 0x98180805, // 0048 SETIDX R6 R4 R5
- 0xB81A0200, // 0049 GETNGBL R6 K1
- 0x8C180D17, // 004A GETMET R6 R6 K23
- 0x5C200A00, // 004B MOVE R8 R5
- 0x5C240400, // 004C MOVE R9 R2
- 0x7C180600, // 004D CALL R6 3
- 0x881C0D18, // 004E GETMBR R7 R6 K24
- 0x90063007, // 004F SETMBR R1 K24 R7
- 0x8C1C0119, // 0050 GETMET R7 R0 K25
- 0x5C240200, // 0051 MOVE R9 R1
- 0x7C1C0400, // 0052 CALL R7 2
- 0x8C1C031A, // 0053 GETMET R7 R1 K26
- 0x7C1C0200, // 0054 CALL R7 1
- 0x80000000, // 0055 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_ctor_impl
-********************************************************************/
-be_local_closure(LVGL_glob_widget_ctor_impl, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(lv),
- /* K2 */ be_nested_str(lv_obj_class),
- /* K3 */ be_nested_str(get_object_from_ptr),
- /* K4 */ be_nested_str(cb_obj),
- /* K5 */ be_nested_str(find),
- /* K6 */ be_nested_str(instance),
- /* K7 */ be_nested_str(get),
- /* K8 */ be_nested_str(widget_constructor),
- }),
- &be_const_str_widget_ctor_impl,
- &be_const_str_solidified,
- ( &(const binstruction[29]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0xB8120200, // 0001 GETNGBL R4 K1
- 0x8C100902, // 0002 GETMET R4 R4 K2
- 0x5C180200, // 0003 MOVE R6 R1
- 0x7C100400, // 0004 CALL R4 2
- 0x8C140103, // 0005 GETMET R5 R0 K3
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C140400, // 0007 CALL R5 2
- 0x88180104, // 0008 GETMBR R6 R0 K4
- 0x8C180D05, // 0009 GETMET R6 R6 K5
- 0x5C200A00, // 000A MOVE R8 R5
- 0x7C180400, // 000B CALL R6 2
- 0x781A0001, // 000C JMPF R6 #000F
- 0x88180104, // 000D GETMBR R6 R0 K4
- 0x94140C05, // 000E GETIDX R5 R6 R5
- 0x60180004, // 000F GETGBL R6 G4
- 0x5C1C0A00, // 0010 MOVE R7 R5
- 0x7C180200, // 0011 CALL R6 1
- 0x1C180D06, // 0012 EQ R6 R6 K6
- 0x781A0007, // 0013 JMPF R6 #001C
- 0x8C180707, // 0014 GETMET R6 R3 K7
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x58240008, // 0016 LDCONST R9 K8
- 0x7C180600, // 0017 CALL R6 3
- 0x781A0002, // 0018 JMPF R6 #001C
- 0x8C180B08, // 0019 GETMET R6 R5 K8
- 0x5C200800, // 001A MOVE R8 R4
- 0x7C180400, // 001B CALL R6 2
- 0x80000000, // 001C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: LVGL_glob
-********************************************************************/
-be_local_class(LVGL_glob,
- 9,
- NULL,
- be_nested_map(20,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(widget_ctor_cb, 8), be_const_var(4) },
- { be_const_key(get_object_from_ptr, 4), be_const_closure(LVGL_glob_get_object_from_ptr_closure) },
- { be_const_key(cb_obj, 7), be_const_var(0) },
- { be_const_key(widget_struct_by_class, -1), be_const_var(8) },
- { be_const_key(widget_event_impl, -1), be_const_closure(LVGL_glob_widget_event_impl_closure) },
- { be_const_key(widget_dtor_cb, 6), be_const_var(5) },
- { be_const_key(cb_event_closure, -1), be_const_var(1) },
- { be_const_key(cb_do_nothing, 16), be_const_static_closure(LVGL_glob__anonymous__closure) },
- { be_const_key(null_cb, -1), be_const_var(3) },
- { be_const_key(register_obj, -1), be_const_closure(LVGL_glob_register_obj_closure) },
- { be_const_key(widget_dtor_impl, 9), be_const_closure(LVGL_glob_widget_dtor_impl_closure) },
- { be_const_key(gen_cb, -1), be_const_closure(LVGL_glob_gen_cb_closure) },
- { be_const_key(deregister_obj, -1), be_const_closure(LVGL_glob_deregister_obj_closure) },
- { be_const_key(widget_struct_default, 12), be_const_var(7) },
- { be_const_key(widget_event_cb, -1), be_const_var(6) },
- { be_const_key(widget_cb, -1), be_const_closure(LVGL_glob_widget_cb_closure) },
- { be_const_key(lvgl_event_dispatch, 3), be_const_closure(LVGL_glob_lvgl_event_dispatch_closure) },
- { be_const_key(event_cb, -1), be_const_var(2) },
- { be_const_key(create_custom_widget, -1), be_const_closure(LVGL_glob_create_custom_widget_closure) },
- { be_const_key(widget_ctor_impl, -1), be_const_closure(LVGL_glob_widget_ctor_impl_closure) },
- })),
- be_str_literal("LVGL_glob")
-);
-/*******************************************************************/
-
-void be_load_LVGL_glob_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_LVGL_glob);
- be_setglobal(vm, "LVGL_glob");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_module.c b/lib/libesp32/berry/default/be_lvgl_module.c
deleted file mode 100644
index 890efd2ff..000000000
--- a/lib/libesp32/berry/default/be_lvgl_module.c
+++ /dev/null
@@ -1,692 +0,0 @@
-/********************************************************************
- * Generated code, don't edit
- *******************************************************************/
-/********************************************************************
- * LVGL Module
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-#include "be_lvgl.h"
-#include "lv_theme_openhasp.h"
-
-extern int lv0_member(bvm *vm); // resolve virtual members
-
-extern int lv0_start(bvm *vm);
-
-extern int lv0_register_button_encoder(bvm *vm); // add buttons with encoder logic
-
-extern int lv0_load_montserrat_font(bvm *vm);
-extern int lv0_load_seg7_font(bvm *vm);
-extern int lv0_load_robotocondensed_latin1_font(bvm *vm);
-extern int lv0_load_font(bvm *vm);
-extern int lv0_load_freetype_font(bvm *vm);
-
-extern int lv0_screenshot(bvm *vm);
-
-static int lv_get_hor_res(void) {
- return lv_disp_get_hor_res(lv_disp_get_default());
-}
-static int lv_get_ver_res(void) {
- return lv_disp_get_ver_res(lv_disp_get_default());
-}
-
-/* `lv` methods */
-const lvbe_call_c_t lv_func[] = {
-
- { "clamp_height", (void*) &lv_clamp_height, "i", "iiii" },
- { "clamp_width", (void*) &lv_clamp_width, "i", "iiii" },
- { "color_mix", (void*) &lv_color_mix, "lv.lv_color", "(lv.lv_color)(lv.lv_color)i" },
- { "dpx", (void*) &lv_dpx, "i", "i" },
- { "draw_arc", (void*) &lv_draw_arc, "", "iiiii(lv.lv_area)(lv.lv_draw_arc_dsc)" },
- { "draw_arc_dsc_init", (void*) &lv_draw_arc_dsc_init, "", "(lv.lv_draw_arc_dsc)" },
- { "draw_arc_get_area", (void*) &lv_draw_arc_get_area, "", "iiiiiib(lv.lv_area)" },
- { "draw_img", (void*) &lv_draw_img, "", "(lv.lv_area)(lv.lv_area).(lv.lv_draw_img_dsc)" },
- { "draw_img_dsc_init", (void*) &lv_draw_img_dsc_init, "", "(lv.lv_draw_img_dsc)" },
- { "draw_label", (void*) &lv_draw_label, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_label_dsc)s(lv.lv_draw_label_hint)" },
- { "draw_label_dsc_init", (void*) &lv_draw_label_dsc_init, "", "(lv.lv_draw_label_dsc)" },
- { "draw_letter", (void*) &lv_draw_letter, "", "(lv.lv_point)(lv.lv_area)(lv.lv_font)i(lv.lv_color)ii" },
- { "draw_line", (void*) &lv_draw_line, "", "(lv.lv_point)(lv.lv_point)(lv.lv_area)(lv.lv_draw_line_dsc)" },
- { "draw_line_dsc_init", (void*) &lv_draw_line_dsc_init, "", "(lv.lv_draw_line_dsc)" },
- { "draw_mask_add", (void*) &lv_draw_mask_add, "i", ".." },
- { "draw_mask_angle_init", (void*) &lv_draw_mask_angle_init, "", "(lv.lv_draw_mask_angle_param)iiii" },
- { "draw_mask_fade_init", (void*) &lv_draw_mask_fade_init, "", "(lv.lv_draw_mask_fade_param)(lv.lv_area)iiii" },
- { "draw_mask_get_cnt", (void*) &lv_draw_mask_get_cnt, "i", "" },
- { "draw_mask_line_angle_init", (void*) &lv_draw_mask_line_angle_init, "", "(lv.lv_draw_mask_line_param)iiii" },
- { "draw_mask_line_points_init", (void*) &lv_draw_mask_line_points_init, "", "(lv.lv_draw_mask_line_param)iiiii" },
- { "draw_mask_map_init", (void*) &lv_draw_mask_map_init, "", "(lv.lv_draw_mask_map_param)(lv.lv_area)(lv.lv_opa)" },
- { "draw_mask_radius_init", (void*) &lv_draw_mask_radius_init, "", "(lv.lv_draw_mask_radius_param)(lv.lv_area)ib" },
- { "draw_mask_remove_custom", (void*) &lv_draw_mask_remove_custom, ".", "." },
- { "draw_mask_remove_id", (void*) &lv_draw_mask_remove_id, ".", "i" },
- { "draw_polygon", (void*) &lv_draw_polygon, "", "ii(lv.lv_area)(lv.lv_draw_rect_dsc)" },
- { "draw_rect", (void*) &lv_draw_rect, "", "(lv.lv_area)(lv.lv_area)(lv.lv_draw_rect_dsc)" },
- { "draw_rect_dsc_init", (void*) &lv_draw_rect_dsc_init, "", "(lv.lv_draw_rect_dsc)" },
- { "draw_triangle", (void*) &lv_draw_triangle, "", "i(lv.lv_area)(lv.lv_draw_rect_dsc)" },
- { "event_register_id", (void*) &lv_event_register_id, "i", "" },
- { "event_send", (void*) &lv_event_send, "i", "(lv.lv_obj)i." },
- { "event_set_cover_res", (void*) &lv_event_set_cover_res, "", "(lv.lv_event)(lv.lv_cover_res)" },
- { "event_set_ext_draw_size", (void*) &lv_event_set_ext_draw_size, "", "(lv.lv_event)i" },
- { "get_hor_res", (void*) &lv_get_hor_res, "i", "" },
- { "get_ver_res", (void*) &lv_get_ver_res, "i", "" },
- { "group_get_default", (void*) &lv_group_get_default, "lv.lv_group", "" },
- { "img_src_get_type", (void*) &lv_img_src_get_type, "i", "." },
- { "indev_get_act", (void*) &lv_indev_get_act, "lv.lv_indev", "" },
- { "indev_get_obj_act", (void*) &lv_indev_get_obj_act, "lv.lv_obj", "" },
- { "indev_read_timer_cb", (void*) &lv_indev_read_timer_cb, "", "(lv.lv_timer)" },
- { "layer_sys", (void*) &lv_layer_sys, "lv.lv_obj", "" },
- { "layer_top", (void*) &lv_layer_top, "lv.lv_obj", "" },
- { "layout_register", (void*) &lv_layout_register, "i", "^lv_layout_update_cb^." },
- { "obj_class_create_obj", (void*) &lv_obj_class_create_obj, "lv.lv_obj", "(lv._lv_obj_class)(lv.lv_obj)" },
- { "obj_del_anim_ready_cb", (void*) &lv_obj_del_anim_ready_cb, "", "(lv.lv_anim)" },
- { "obj_draw_dsc_init", (void*) &lv_obj_draw_dsc_init, "", "(lv.lv_obj_draw_part_dsc)(lv.lv_area)" },
- { "obj_enable_style_refresh", (void*) &lv_obj_enable_style_refresh, "", "b" },
- { "obj_event_base", (void*) &lv_obj_event_base, "i", "(lv.lv_obj_class)(lv.lv_event)" },
- { "obj_report_style_change", (void*) &lv_obj_report_style_change, "", "(lv.lv_style)" },
- { "obj_style_get_selector_part", (void*) &lv_obj_style_get_selector_part, "i", "i" },
- { "obj_style_get_selector_state", (void*) &lv_obj_style_get_selector_state, "i", "i" },
- { "refr_now", (void*) &lv_refr_now, "", "(lv.lv_disp)" },
- { "scr_act", (void*) &lv_scr_act, "lv.lv_obj", "" },
- { "scr_load", (void*) &lv_scr_load, "", "(lv.lv_obj)" },
- { "scr_load_anim", (void*) &lv_scr_load_anim, "", "(lv.lv_obj)iiib" },
- { "theme_apply", (void*) &lv_theme_apply, "", "(lv.lv_obj)" },
- { "theme_default_init", (void*) &lv_theme_default_init, "lv.lv_theme", "(lv.lv_disp)(lv.lv_color)(lv.lv_color)b(lv.lv_font)" },
- { "theme_default_is_inited", (void*) &lv_theme_default_is_inited, "b", "" },
- { "theme_get_color_primary", (void*) &lv_theme_get_color_primary, "lv.lv_color", "(lv.lv_obj)" },
- { "theme_get_color_secondary", (void*) &lv_theme_get_color_secondary, "lv.lv_color", "(lv.lv_obj)" },
- { "theme_get_font_large", (void*) &lv_theme_get_font_large, "lv.lv_font", "(lv.lv_obj)" },
- { "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv.lv_font", "(lv.lv_obj)" },
- { "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv.lv_font", "(lv.lv_obj)" },
- { "theme_get_from_obj", (void*) &lv_theme_get_from_obj, "lv.lv_theme", "(lv.lv_obj)" },
- { "theme_mono_init", (void*) &lv_theme_mono_init, "lv.lv_theme", "(lv.lv_disp)b(lv.lv_font)" },
- { "theme_openhasp_init", (void*) &lv_theme_openhasp_init, "lv.lv_theme", "(lv.lv_disp)(lv.lv_color)(lv.lv_color)b(lv.lv_font)" },
- { "theme_openhasp_is_inited", (void*) &lv_theme_openhasp_is_inited, "b", "" },
- { "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv.lv_theme)^lv_theme_apply_cb^" },
- { "theme_set_parent", (void*) &lv_theme_set_parent, "", "(lv.lv_theme)(lv.lv_theme)" },
-
-};
-const size_t lv_func_size = sizeof(lv_func) / sizeof(lv_func[0]);
-
-
-
-
-typedef struct be_constint_t {
- const char * name;
- int32_t value;
-} be_constint_t;
-
-const be_constint_t lv0_constants[] = {
-
- { "ALIGN_BOTTOM_LEFT", LV_ALIGN_BOTTOM_LEFT },
- { "ALIGN_BOTTOM_MID", LV_ALIGN_BOTTOM_MID },
- { "ALIGN_BOTTOM_RIGHT", LV_ALIGN_BOTTOM_RIGHT },
- { "ALIGN_CENTER", LV_ALIGN_CENTER },
- { "ALIGN_DEFAULT", LV_ALIGN_DEFAULT },
- { "ALIGN_LEFT_MID", LV_ALIGN_LEFT_MID },
- { "ALIGN_OUT_BOTTOM_LEFT", LV_ALIGN_OUT_BOTTOM_LEFT },
- { "ALIGN_OUT_BOTTOM_MID", LV_ALIGN_OUT_BOTTOM_MID },
- { "ALIGN_OUT_BOTTOM_RIGHT", LV_ALIGN_OUT_BOTTOM_RIGHT },
- { "ALIGN_OUT_LEFT_BOTTOM", LV_ALIGN_OUT_LEFT_BOTTOM },
- { "ALIGN_OUT_LEFT_MID", LV_ALIGN_OUT_LEFT_MID },
- { "ALIGN_OUT_LEFT_TOP", LV_ALIGN_OUT_LEFT_TOP },
- { "ALIGN_OUT_RIGHT_BOTTOM", LV_ALIGN_OUT_RIGHT_BOTTOM },
- { "ALIGN_OUT_RIGHT_MID", LV_ALIGN_OUT_RIGHT_MID },
- { "ALIGN_OUT_RIGHT_TOP", LV_ALIGN_OUT_RIGHT_TOP },
- { "ALIGN_OUT_TOP_LEFT", LV_ALIGN_OUT_TOP_LEFT },
- { "ALIGN_OUT_TOP_MID", LV_ALIGN_OUT_TOP_MID },
- { "ALIGN_OUT_TOP_RIGHT", LV_ALIGN_OUT_TOP_RIGHT },
- { "ALIGN_RIGHT_MID", LV_ALIGN_RIGHT_MID },
- { "ALIGN_TOP_LEFT", LV_ALIGN_TOP_LEFT },
- { "ALIGN_TOP_MID", LV_ALIGN_TOP_MID },
- { "ALIGN_TOP_RIGHT", LV_ALIGN_TOP_RIGHT },
- { "ANIM_IMG_PART_MAIN", LV_ANIM_IMG_PART_MAIN },
- { "ANIM_OFF", LV_ANIM_OFF },
- { "ANIM_ON", LV_ANIM_ON },
- { "ARC_MODE_NORMAL", LV_ARC_MODE_NORMAL },
- { "ARC_MODE_REVERSE", LV_ARC_MODE_REVERSE },
- { "ARC_MODE_SYMMETRICAL", LV_ARC_MODE_SYMMETRICAL },
- { "BAR_MODE_NORMAL", LV_BAR_MODE_NORMAL },
- { "BAR_MODE_RANGE", LV_BAR_MODE_RANGE },
- { "BAR_MODE_SYMMETRICAL", LV_BAR_MODE_SYMMETRICAL },
- { "BASE_DIR_AUTO", LV_BASE_DIR_AUTO },
- { "BASE_DIR_LTR", LV_BASE_DIR_LTR },
- { "BASE_DIR_NEUTRAL", LV_BASE_DIR_NEUTRAL },
- { "BASE_DIR_RTL", LV_BASE_DIR_RTL },
- { "BASE_DIR_WEAK", LV_BASE_DIR_WEAK },
- { "BLEND_MODE_ADDITIVE", LV_BLEND_MODE_ADDITIVE },
- { "BLEND_MODE_NORMAL", LV_BLEND_MODE_NORMAL },
- { "BLEND_MODE_SUBTRACTIVE", LV_BLEND_MODE_SUBTRACTIVE },
- { "BORDER_SIDE_BOTTOM", LV_BORDER_SIDE_BOTTOM },
- { "BORDER_SIDE_FULL", LV_BORDER_SIDE_FULL },
- { "BORDER_SIDE_INTERNAL", LV_BORDER_SIDE_INTERNAL },
- { "BORDER_SIDE_LEFT", LV_BORDER_SIDE_LEFT },
- { "BORDER_SIDE_NONE", LV_BORDER_SIDE_NONE },
- { "BORDER_SIDE_RIGHT", LV_BORDER_SIDE_RIGHT },
- { "BORDER_SIDE_TOP", LV_BORDER_SIDE_TOP },
- { "BTNMATRIX_CTRL_CHECKABLE", LV_BTNMATRIX_CTRL_CHECKABLE },
- { "BTNMATRIX_CTRL_CHECKED", LV_BTNMATRIX_CTRL_CHECKED },
- { "BTNMATRIX_CTRL_CLICK_TRIG", LV_BTNMATRIX_CTRL_CLICK_TRIG },
- { "BTNMATRIX_CTRL_CUSTOM_1", LV_BTNMATRIX_CTRL_CUSTOM_1 },
- { "BTNMATRIX_CTRL_CUSTOM_2", LV_BTNMATRIX_CTRL_CUSTOM_2 },
- { "BTNMATRIX_CTRL_DISABLED", LV_BTNMATRIX_CTRL_DISABLED },
- { "BTNMATRIX_CTRL_HIDDEN", LV_BTNMATRIX_CTRL_HIDDEN },
- { "BTNMATRIX_CTRL_NO_REPEAT", LV_BTNMATRIX_CTRL_NO_REPEAT },
- { "BTNMATRIX_CTRL_RECOLOR", LV_BTNMATRIX_CTRL_RECOLOR },
- { "CHART_AXIS_PRIMARY_X", LV_CHART_AXIS_PRIMARY_X },
- { "CHART_AXIS_PRIMARY_Y", LV_CHART_AXIS_PRIMARY_Y },
- { "CHART_AXIS_SECONDARY_X", LV_CHART_AXIS_SECONDARY_X },
- { "CHART_AXIS_SECONDARY_Y", LV_CHART_AXIS_SECONDARY_Y },
- { "CHART_TYPE_BAR", LV_CHART_TYPE_BAR },
- { "CHART_TYPE_LINE", LV_CHART_TYPE_LINE },
- { "CHART_TYPE_NONE", LV_CHART_TYPE_NONE },
- { "CHART_TYPE_SCATTER", LV_CHART_TYPE_SCATTER },
- { "CHART_UPDATE_MODE_CIRCULAR", LV_CHART_UPDATE_MODE_CIRCULAR },
- { "CHART_UPDATE_MODE_SHIFT", LV_CHART_UPDATE_MODE_SHIFT },
- { "COLORWHEEL_MODE_HUE", LV_COLORWHEEL_MODE_HUE },
- { "COLORWHEEL_MODE_SATURATION", LV_COLORWHEEL_MODE_SATURATION },
- { "COLORWHEEL_MODE_VALUE", LV_COLORWHEEL_MODE_VALUE },
- { "COLOR_AQUA", (int32_t) 0x00FFFF },
- { "COLOR_BLACK", (int32_t) 0x000000 },
- { "COLOR_BLUE", (int32_t) 0x0000FF },
- { "COLOR_CYAN", (int32_t) 0x00FFFF },
- { "COLOR_GRAY", (int32_t) 0x808080 },
- { "COLOR_GREEN", (int32_t) 0x008000 },
- { "COLOR_LIME", (int32_t) 0x00FF00 },
- { "COLOR_MAGENTA", (int32_t) 0xFF00FF },
- { "COLOR_MAROON", (int32_t) 0x800000 },
- { "COLOR_NAVY", (int32_t) 0x000080 },
- { "COLOR_OLIVE", (int32_t) 0x808000 },
- { "COLOR_PURPLE", (int32_t) 0x800080 },
- { "COLOR_RED", (int32_t) 0xFF0000 },
- { "COLOR_SILVER", (int32_t) 0xC0C0C0 },
- { "COLOR_TEAL", (int32_t) 0x008080 },
- { "COLOR_WHITE", (int32_t) 0xFFFFFF },
- { "COLOR_YELLOW", (int32_t) 0xFFFF00 },
- { "COVER_RES_COVER", LV_COVER_RES_COVER },
- { "COVER_RES_MASKED", LV_COVER_RES_MASKED },
- { "COVER_RES_NOT_COVER", LV_COVER_RES_NOT_COVER },
- { "DIR_ALL", LV_DIR_ALL },
- { "DIR_BOTTOM", LV_DIR_BOTTOM },
- { "DIR_HOR", LV_DIR_HOR },
- { "DIR_LEFT", LV_DIR_LEFT },
- { "DIR_NONE", LV_DIR_NONE },
- { "DIR_RIGHT", LV_DIR_RIGHT },
- { "DIR_TOP", LV_DIR_TOP },
- { "DIR_VER", LV_DIR_VER },
- { "DISP_ROT_180", LV_DISP_ROT_180 },
- { "DISP_ROT_270", LV_DISP_ROT_270 },
- { "DISP_ROT_90", LV_DISP_ROT_90 },
- { "DISP_ROT_NONE", LV_DISP_ROT_NONE },
- { "DRAW_MASK_LINE_SIDE_BOTTOM", LV_DRAW_MASK_LINE_SIDE_BOTTOM },
- { "DRAW_MASK_LINE_SIDE_LEFT", LV_DRAW_MASK_LINE_SIDE_LEFT },
- { "DRAW_MASK_LINE_SIDE_RIGHT", LV_DRAW_MASK_LINE_SIDE_RIGHT },
- { "DRAW_MASK_LINE_SIDE_TOP", LV_DRAW_MASK_LINE_SIDE_TOP },
- { "DRAW_MASK_RES_CHANGED", LV_DRAW_MASK_RES_CHANGED },
- { "DRAW_MASK_RES_FULL_COVER", LV_DRAW_MASK_RES_FULL_COVER },
- { "DRAW_MASK_RES_TRANSP", LV_DRAW_MASK_RES_TRANSP },
- { "DRAW_MASK_RES_UNKNOWN", LV_DRAW_MASK_RES_UNKNOWN },
- { "DRAW_MASK_TYPE_ANGLE", LV_DRAW_MASK_TYPE_ANGLE },
- { "DRAW_MASK_TYPE_FADE", LV_DRAW_MASK_TYPE_FADE },
- { "DRAW_MASK_TYPE_LINE", LV_DRAW_MASK_TYPE_LINE },
- { "DRAW_MASK_TYPE_MAP", LV_DRAW_MASK_TYPE_MAP },
- { "DRAW_MASK_TYPE_RADIUS", LV_DRAW_MASK_TYPE_RADIUS },
- { "EVENT_ALL", LV_EVENT_ALL },
- { "EVENT_CANCEL", LV_EVENT_CANCEL },
- { "EVENT_CHILD_CHANGED", LV_EVENT_CHILD_CHANGED },
- { "EVENT_CLICKED", LV_EVENT_CLICKED },
- { "EVENT_COVER_CHECK", LV_EVENT_COVER_CHECK },
- { "EVENT_DEFOCUSED", LV_EVENT_DEFOCUSED },
- { "EVENT_DELETE", LV_EVENT_DELETE },
- { "EVENT_DRAW_MAIN", LV_EVENT_DRAW_MAIN },
- { "EVENT_DRAW_MAIN_BEGIN", LV_EVENT_DRAW_MAIN_BEGIN },
- { "EVENT_DRAW_MAIN_END", LV_EVENT_DRAW_MAIN_END },
- { "EVENT_DRAW_PART_BEGIN", LV_EVENT_DRAW_PART_BEGIN },
- { "EVENT_DRAW_PART_END", LV_EVENT_DRAW_PART_END },
- { "EVENT_DRAW_POST", LV_EVENT_DRAW_POST },
- { "EVENT_DRAW_POST_BEGIN", LV_EVENT_DRAW_POST_BEGIN },
- { "EVENT_DRAW_POST_END", LV_EVENT_DRAW_POST_END },
- { "EVENT_FOCUSED", LV_EVENT_FOCUSED },
- { "EVENT_GESTURE", LV_EVENT_GESTURE },
- { "EVENT_GET_SELF_SIZE", LV_EVENT_GET_SELF_SIZE },
- { "EVENT_HIT_TEST", LV_EVENT_HIT_TEST },
- { "EVENT_INSERT", LV_EVENT_INSERT },
- { "EVENT_KEY", LV_EVENT_KEY },
- { "EVENT_LAYOUT_CHANGED", LV_EVENT_LAYOUT_CHANGED },
- { "EVENT_LEAVE", LV_EVENT_LEAVE },
- { "EVENT_LONG_PRESSED", LV_EVENT_LONG_PRESSED },
- { "EVENT_LONG_PRESSED_REPEAT", LV_EVENT_LONG_PRESSED_REPEAT },
- { "EVENT_PRESSED", LV_EVENT_PRESSED },
- { "EVENT_PRESSING", LV_EVENT_PRESSING },
- { "EVENT_PRESS_LOST", LV_EVENT_PRESS_LOST },
- { "EVENT_READY", LV_EVENT_READY },
- { "EVENT_REFRESH", LV_EVENT_REFRESH },
- { "EVENT_REFR_EXT_DRAW_SIZE", LV_EVENT_REFR_EXT_DRAW_SIZE },
- { "EVENT_RELEASED", LV_EVENT_RELEASED },
- { "EVENT_SCROLL", LV_EVENT_SCROLL },
- { "EVENT_SCROLL_BEGIN", LV_EVENT_SCROLL_BEGIN },
- { "EVENT_SCROLL_END", LV_EVENT_SCROLL_END },
- { "EVENT_SHORT_CLICKED", LV_EVENT_SHORT_CLICKED },
- { "EVENT_SIZE_CHANGED", LV_EVENT_SIZE_CHANGED },
- { "EVENT_STYLE_CHANGED", LV_EVENT_STYLE_CHANGED },
- { "EVENT_VALUE_CHANGED", LV_EVENT_VALUE_CHANGED },
- { "FLEX_ALIGN_CENTER", LV_FLEX_ALIGN_CENTER },
- { "FLEX_ALIGN_END", LV_FLEX_ALIGN_END },
- { "FLEX_ALIGN_SPACE_AROUND", LV_FLEX_ALIGN_SPACE_AROUND },
- { "FLEX_ALIGN_SPACE_BETWEEN", LV_FLEX_ALIGN_SPACE_BETWEEN },
- { "FLEX_ALIGN_SPACE_EVENLY", LV_FLEX_ALIGN_SPACE_EVENLY },
- { "FLEX_ALIGN_START", LV_FLEX_ALIGN_START },
- { "FLEX_FLOW_COLUMN", LV_FLEX_FLOW_COLUMN },
- { "FLEX_FLOW_COLUMN_REVERSE", LV_FLEX_FLOW_COLUMN_REVERSE },
- { "FLEX_FLOW_COLUMN_WRAP", LV_FLEX_FLOW_COLUMN_WRAP },
- { "FLEX_FLOW_COLUMN_WRAP_REVERSE", LV_FLEX_FLOW_COLUMN_WRAP_REVERSE },
- { "FLEX_FLOW_ROW", LV_FLEX_FLOW_ROW },
- { "FLEX_FLOW_ROW_REVERSE", LV_FLEX_FLOW_ROW_REVERSE },
- { "FLEX_FLOW_ROW_WRAP", LV_FLEX_FLOW_ROW_WRAP },
- { "FLEX_FLOW_ROW_WRAP_REVERSE", LV_FLEX_FLOW_ROW_WRAP_REVERSE },
- { "FS_MODE_RD", LV_FS_MODE_RD },
- { "FS_MODE_WR", LV_FS_MODE_WR },
- { "FS_RES_BUSY", LV_FS_RES_BUSY },
- { "FS_RES_DENIED", LV_FS_RES_DENIED },
- { "FS_RES_FS_ERR", LV_FS_RES_FS_ERR },
- { "FS_RES_FULL", LV_FS_RES_FULL },
- { "FS_RES_HW_ERR", LV_FS_RES_HW_ERR },
- { "FS_RES_INV_PARAM", LV_FS_RES_INV_PARAM },
- { "FS_RES_LOCKED", LV_FS_RES_LOCKED },
- { "FS_RES_NOT_EX", LV_FS_RES_NOT_EX },
- { "FS_RES_NOT_IMP", LV_FS_RES_NOT_IMP },
- { "FS_RES_OK", LV_FS_RES_OK },
- { "FS_RES_OUT_OF_MEM", LV_FS_RES_OUT_OF_MEM },
- { "FS_RES_TOUT", LV_FS_RES_TOUT },
- { "FS_RES_UNKNOWN", LV_FS_RES_UNKNOWN },
- { "FS_SEEK_CUR", LV_FS_SEEK_CUR },
- { "FS_SEEK_END", LV_FS_SEEK_END },
- { "FS_SEEK_SET", LV_FS_SEEK_SET },
- { "GRAD_DIR_HOR", LV_GRAD_DIR_HOR },
- { "GRAD_DIR_NONE", LV_GRAD_DIR_NONE },
- { "GRAD_DIR_VER", LV_GRAD_DIR_VER },
- { "GRID_ALIGN_CENTER", LV_GRID_ALIGN_CENTER },
- { "GRID_ALIGN_END", LV_GRID_ALIGN_END },
- { "GRID_ALIGN_SPACE_AROUND", LV_GRID_ALIGN_SPACE_AROUND },
- { "GRID_ALIGN_SPACE_BETWEEN", LV_GRID_ALIGN_SPACE_BETWEEN },
- { "GRID_ALIGN_SPACE_EVENLY", LV_GRID_ALIGN_SPACE_EVENLY },
- { "GRID_ALIGN_START", LV_GRID_ALIGN_START },
- { "GRID_ALIGN_STRETCH", LV_GRID_ALIGN_STRETCH },
- { "GROUP_REFOCUS_POLICY_NEXT", LV_GROUP_REFOCUS_POLICY_NEXT },
- { "GROUP_REFOCUS_POLICY_PREV", LV_GROUP_REFOCUS_POLICY_PREV },
- { "IMGBTN_STATE_CHECKED_DISABLED", LV_IMGBTN_STATE_CHECKED_DISABLED },
- { "IMGBTN_STATE_CHECKED_PRESSED", LV_IMGBTN_STATE_CHECKED_PRESSED },
- { "IMGBTN_STATE_CHECKED_RELEASED", LV_IMGBTN_STATE_CHECKED_RELEASED },
- { "IMGBTN_STATE_DISABLED", LV_IMGBTN_STATE_DISABLED },
- { "IMGBTN_STATE_PRESSED", LV_IMGBTN_STATE_PRESSED },
- { "IMGBTN_STATE_RELEASED", LV_IMGBTN_STATE_RELEASED },
- { "IMG_CF_ALPHA_1BIT", LV_IMG_CF_ALPHA_1BIT },
- { "IMG_CF_ALPHA_2BIT", LV_IMG_CF_ALPHA_2BIT },
- { "IMG_CF_ALPHA_4BIT", LV_IMG_CF_ALPHA_4BIT },
- { "IMG_CF_ALPHA_8BIT", LV_IMG_CF_ALPHA_8BIT },
- { "IMG_CF_INDEXED_1BIT", LV_IMG_CF_INDEXED_1BIT },
- { "IMG_CF_INDEXED_2BIT", LV_IMG_CF_INDEXED_2BIT },
- { "IMG_CF_INDEXED_4BIT", LV_IMG_CF_INDEXED_4BIT },
- { "IMG_CF_INDEXED_8BIT", LV_IMG_CF_INDEXED_8BIT },
- { "IMG_CF_RAW", LV_IMG_CF_RAW },
- { "IMG_CF_RAW_ALPHA", LV_IMG_CF_RAW_ALPHA },
- { "IMG_CF_RAW_CHROMA_KEYED", LV_IMG_CF_RAW_CHROMA_KEYED },
- { "IMG_CF_TRUE_COLOR", LV_IMG_CF_TRUE_COLOR },
- { "IMG_CF_TRUE_COLOR_ALPHA", LV_IMG_CF_TRUE_COLOR_ALPHA },
- { "IMG_CF_TRUE_COLOR_CHROMA_KEYED", LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED },
- { "IMG_CF_UNKNOWN", LV_IMG_CF_UNKNOWN },
- { "IMG_SRC_FILE", LV_IMG_SRC_FILE },
- { "IMG_SRC_SYMBOL", LV_IMG_SRC_SYMBOL },
- { "IMG_SRC_UNKNOWN", LV_IMG_SRC_UNKNOWN },
- { "IMG_SRC_VARIABLE", LV_IMG_SRC_VARIABLE },
- { "INDEV_STATE_PRESSED", LV_INDEV_STATE_PRESSED },
- { "INDEV_STATE_RELEASED", LV_INDEV_STATE_RELEASED },
- { "INDEV_TYPE_BUTTON", LV_INDEV_TYPE_BUTTON },
- { "INDEV_TYPE_ENCODER", LV_INDEV_TYPE_ENCODER },
- { "INDEV_TYPE_KEYPAD", LV_INDEV_TYPE_KEYPAD },
- { "INDEV_TYPE_NONE", LV_INDEV_TYPE_NONE },
- { "INDEV_TYPE_POINTER", LV_INDEV_TYPE_POINTER },
- { "KEY_BACKSPACE", LV_KEY_BACKSPACE },
- { "KEY_DEL", LV_KEY_DEL },
- { "KEY_DOWN", LV_KEY_DOWN },
- { "KEY_END", LV_KEY_END },
- { "KEY_ENTER", LV_KEY_ENTER },
- { "KEY_ESC", LV_KEY_ESC },
- { "KEY_HOME", LV_KEY_HOME },
- { "KEY_LEFT", LV_KEY_LEFT },
- { "KEY_NEXT", LV_KEY_NEXT },
- { "KEY_PREV", LV_KEY_PREV },
- { "KEY_RIGHT", LV_KEY_RIGHT },
- { "KEY_UP", LV_KEY_UP },
- { "LABEL_LONG_CLIP", LV_LABEL_LONG_CLIP },
- { "LABEL_LONG_DOT", LV_LABEL_LONG_DOT },
- { "LABEL_LONG_SCROLL", LV_LABEL_LONG_SCROLL },
- { "LABEL_LONG_SCROLL_CIRCULAR", LV_LABEL_LONG_SCROLL_CIRCULAR },
- { "LABEL_LONG_WRAP", LV_LABEL_LONG_WRAP },
- { "METER_INDICATOR_TYPE_ARC", LV_METER_INDICATOR_TYPE_ARC },
- { "METER_INDICATOR_TYPE_NEEDLE_IMG", LV_METER_INDICATOR_TYPE_NEEDLE_IMG },
- { "METER_INDICATOR_TYPE_NEEDLE_LINE", LV_METER_INDICATOR_TYPE_NEEDLE_LINE },
- { "METER_INDICATOR_TYPE_SCALE_LINES", LV_METER_INDICATOR_TYPE_SCALE_LINES },
- { "OBJ_CLASS_EDITABLE_FALSE", LV_OBJ_CLASS_EDITABLE_FALSE },
- { "OBJ_CLASS_EDITABLE_INHERIT", LV_OBJ_CLASS_EDITABLE_INHERIT },
- { "OBJ_CLASS_EDITABLE_TRUE", LV_OBJ_CLASS_EDITABLE_TRUE },
- { "OBJ_CLASS_GROUP_DEF_FALSE", LV_OBJ_CLASS_GROUP_DEF_FALSE },
- { "OBJ_CLASS_GROUP_DEF_INHERIT", LV_OBJ_CLASS_GROUP_DEF_INHERIT },
- { "OBJ_CLASS_GROUP_DEF_TRUE", LV_OBJ_CLASS_GROUP_DEF_TRUE },
- { "OBJ_FLAG_ADV_HITTEST", LV_OBJ_FLAG_ADV_HITTEST },
- { "OBJ_FLAG_CHECKABLE", LV_OBJ_FLAG_CHECKABLE },
- { "OBJ_FLAG_CLICKABLE", LV_OBJ_FLAG_CLICKABLE },
- { "OBJ_FLAG_CLICK_FOCUSABLE", LV_OBJ_FLAG_CLICK_FOCUSABLE },
- { "OBJ_FLAG_EVENT_BUBBLE", LV_OBJ_FLAG_EVENT_BUBBLE },
- { "OBJ_FLAG_FLOATING", LV_OBJ_FLAG_FLOATING },
- { "OBJ_FLAG_GESTURE_BUBBLE", LV_OBJ_FLAG_GESTURE_BUBBLE },
- { "OBJ_FLAG_HIDDEN", LV_OBJ_FLAG_HIDDEN },
- { "OBJ_FLAG_IGNORE_LAYOUT", LV_OBJ_FLAG_IGNORE_LAYOUT },
- { "OBJ_FLAG_LAYOUT_1", LV_OBJ_FLAG_LAYOUT_1 },
- { "OBJ_FLAG_LAYOUT_2", LV_OBJ_FLAG_LAYOUT_2 },
- { "OBJ_FLAG_PRESS_LOCK", LV_OBJ_FLAG_PRESS_LOCK },
- { "OBJ_FLAG_SCROLLABLE", LV_OBJ_FLAG_SCROLLABLE },
- { "OBJ_FLAG_SCROLL_CHAIN", LV_OBJ_FLAG_SCROLL_CHAIN },
- { "OBJ_FLAG_SCROLL_ELASTIC", LV_OBJ_FLAG_SCROLL_ELASTIC },
- { "OBJ_FLAG_SCROLL_MOMENTUM", LV_OBJ_FLAG_SCROLL_MOMENTUM },
- { "OBJ_FLAG_SCROLL_ONE", LV_OBJ_FLAG_SCROLL_ONE },
- { "OBJ_FLAG_SCROLL_ON_FOCUS", LV_OBJ_FLAG_SCROLL_ON_FOCUS },
- { "OBJ_FLAG_SNAPABLE", LV_OBJ_FLAG_SNAPABLE },
- { "OBJ_FLAG_USER_1", LV_OBJ_FLAG_USER_1 },
- { "OBJ_FLAG_USER_2", LV_OBJ_FLAG_USER_2 },
- { "OBJ_FLAG_USER_3", LV_OBJ_FLAG_USER_3 },
- { "OBJ_FLAG_USER_4", LV_OBJ_FLAG_USER_4 },
- { "OBJ_FLAG_WIDGET_1", LV_OBJ_FLAG_WIDGET_1 },
- { "OBJ_FLAG_WIDGET_2", LV_OBJ_FLAG_WIDGET_2 },
- { "OBJ_TREE_WALK_END", LV_OBJ_TREE_WALK_END },
- { "OBJ_TREE_WALK_NEXT", LV_OBJ_TREE_WALK_NEXT },
- { "OBJ_TREE_WALK_SKIP_CHILDREN", LV_OBJ_TREE_WALK_SKIP_CHILDREN },
- { "OPA_0", LV_OPA_0 },
- { "OPA_10", LV_OPA_10 },
- { "OPA_100", LV_OPA_100 },
- { "OPA_20", LV_OPA_20 },
- { "OPA_30", LV_OPA_30 },
- { "OPA_40", LV_OPA_40 },
- { "OPA_50", LV_OPA_50 },
- { "OPA_60", LV_OPA_60 },
- { "OPA_70", LV_OPA_70 },
- { "OPA_80", LV_OPA_80 },
- { "OPA_90", LV_OPA_90 },
- { "OPA_COVER", LV_OPA_COVER },
- { "OPA_TRANSP", LV_OPA_TRANSP },
- { "PALETTE_AMBER", LV_PALETTE_AMBER },
- { "PALETTE_BLUE", LV_PALETTE_BLUE },
- { "PALETTE_BLUE_GREY", LV_PALETTE_BLUE_GREY },
- { "PALETTE_BROWN", LV_PALETTE_BROWN },
- { "PALETTE_CYAN", LV_PALETTE_CYAN },
- { "PALETTE_DEEP_ORANGE", LV_PALETTE_DEEP_ORANGE },
- { "PALETTE_DEEP_PURPLE", LV_PALETTE_DEEP_PURPLE },
- { "PALETTE_GREEN", LV_PALETTE_GREEN },
- { "PALETTE_GREY", LV_PALETTE_GREY },
- { "PALETTE_INDIGO", LV_PALETTE_INDIGO },
- { "PALETTE_LIGHT_BLUE", LV_PALETTE_LIGHT_BLUE },
- { "PALETTE_LIGHT_GREEN", LV_PALETTE_LIGHT_GREEN },
- { "PALETTE_LIME", LV_PALETTE_LIME },
- { "PALETTE_NONE", LV_PALETTE_NONE },
- { "PALETTE_ORANGE", LV_PALETTE_ORANGE },
- { "PALETTE_PINK", LV_PALETTE_PINK },
- { "PALETTE_PURPLE", LV_PALETTE_PURPLE },
- { "PALETTE_RED", LV_PALETTE_RED },
- { "PALETTE_TEAL", LV_PALETTE_TEAL },
- { "PALETTE_YELLOW", LV_PALETTE_YELLOW },
- { "PART_ANY", LV_PART_ANY },
- { "PART_CURSOR", LV_PART_CURSOR },
- { "PART_CUSTOM_FIRST", LV_PART_CUSTOM_FIRST },
- { "PART_INDICATOR", LV_PART_INDICATOR },
- { "PART_ITEMS", LV_PART_ITEMS },
- { "PART_KNOB", LV_PART_KNOB },
- { "PART_MAIN", LV_PART_MAIN },
- { "PART_SCROLLBAR", LV_PART_SCROLLBAR },
- { "PART_SELECTED", LV_PART_SELECTED },
- { "PART_TEXTAREA_PLACEHOLDER", LV_PART_TEXTAREA_PLACEHOLDER },
- { "PART_TICKS", LV_PART_TICKS },
- { "RADIUS_CIRCLE", LV_RADIUS_CIRCLE },
- { "RES_INV", LV_RES_INV },
- { "RES_OK", LV_RES_OK },
- { "ROLLER_MODE_INFINITE", LV_ROLLER_MODE_INFINITE },
- { "ROLLER_MODE_NORMAL", LV_ROLLER_MODE_NORMAL },
- { "SCROLLBAR_MODE_ACTIVE", LV_SCROLLBAR_MODE_ACTIVE },
- { "SCROLLBAR_MODE_AUTO", LV_SCROLLBAR_MODE_AUTO },
- { "SCROLLBAR_MODE_OFF", LV_SCROLLBAR_MODE_OFF },
- { "SCROLLBAR_MODE_ON", LV_SCROLLBAR_MODE_ON },
- { "SCROLL_SNAP_CENTER", LV_SCROLL_SNAP_CENTER },
- { "SCROLL_SNAP_END", LV_SCROLL_SNAP_END },
- { "SCROLL_SNAP_NONE", LV_SCROLL_SNAP_NONE },
- { "SCROLL_SNAP_START", LV_SCROLL_SNAP_START },
- { "SCR_LOAD_ANIM_FADE_ON", LV_SCR_LOAD_ANIM_FADE_ON },
- { "SCR_LOAD_ANIM_MOVE_BOTTOM", LV_SCR_LOAD_ANIM_MOVE_BOTTOM },
- { "SCR_LOAD_ANIM_MOVE_LEFT", LV_SCR_LOAD_ANIM_MOVE_LEFT },
- { "SCR_LOAD_ANIM_MOVE_RIGHT", LV_SCR_LOAD_ANIM_MOVE_RIGHT },
- { "SCR_LOAD_ANIM_MOVE_TOP", LV_SCR_LOAD_ANIM_MOVE_TOP },
- { "SCR_LOAD_ANIM_NONE", LV_SCR_LOAD_ANIM_NONE },
- { "SCR_LOAD_ANIM_OVER_BOTTOM", LV_SCR_LOAD_ANIM_OVER_BOTTOM },
- { "SCR_LOAD_ANIM_OVER_LEFT", LV_SCR_LOAD_ANIM_OVER_LEFT },
- { "SCR_LOAD_ANIM_OVER_RIGHT", LV_SCR_LOAD_ANIM_OVER_RIGHT },
- { "SCR_LOAD_ANIM_OVER_TOP", LV_SCR_LOAD_ANIM_OVER_TOP },
- { "SIZE_CONTENT", LV_SIZE_CONTENT },
- { "SLIDER_MODE_NORMAL", LV_SLIDER_MODE_NORMAL },
- { "SLIDER_MODE_RANGE", LV_SLIDER_MODE_RANGE },
- { "SLIDER_MODE_SYMMETRICAL", LV_SLIDER_MODE_SYMMETRICAL },
- { "SPAN_MODE_BREAK", LV_SPAN_MODE_BREAK },
- { "SPAN_MODE_EXPAND", LV_SPAN_MODE_EXPAND },
- { "SPAN_MODE_FIXED", LV_SPAN_MODE_FIXED },
- { "SPAN_OVERFLOW_CLIP", LV_SPAN_OVERFLOW_CLIP },
- { "SPAN_OVERFLOW_ELLIPSIS", LV_SPAN_OVERFLOW_ELLIPSIS },
- { "STATE_ANY", LV_STATE_ANY },
- { "STATE_CHECKED", LV_STATE_CHECKED },
- { "STATE_DEFAULT", LV_STATE_DEFAULT },
- { "STATE_DISABLED", LV_STATE_DISABLED },
- { "STATE_EDITED", LV_STATE_EDITED },
- { "STATE_FOCUSED", LV_STATE_FOCUSED },
- { "STATE_FOCUS_KEY", LV_STATE_FOCUS_KEY },
- { "STATE_HOVERED", LV_STATE_HOVERED },
- { "STATE_PRESSED", LV_STATE_PRESSED },
- { "STATE_SCROLLED", LV_STATE_SCROLLED },
- { "STATE_USER_1", LV_STATE_USER_1 },
- { "STATE_USER_2", LV_STATE_USER_2 },
- { "STATE_USER_3", LV_STATE_USER_3 },
- { "STATE_USER_4", LV_STATE_USER_4 },
- { "STYLE_ALIGN", LV_STYLE_ALIGN },
- { "STYLE_ANIM_SPEED", LV_STYLE_ANIM_SPEED },
- { "STYLE_ANIM_TIME", LV_STYLE_ANIM_TIME },
- { "STYLE_ARC_COLOR", LV_STYLE_ARC_COLOR },
- { "STYLE_ARC_COLOR_FILTERED", LV_STYLE_ARC_COLOR_FILTERED },
- { "STYLE_ARC_IMG_SRC", LV_STYLE_ARC_IMG_SRC },
- { "STYLE_ARC_OPA", LV_STYLE_ARC_OPA },
- { "STYLE_ARC_ROUNDED", LV_STYLE_ARC_ROUNDED },
- { "STYLE_ARC_WIDTH", LV_STYLE_ARC_WIDTH },
- { "STYLE_BASE_DIR", LV_STYLE_BASE_DIR },
- { "STYLE_BG_COLOR", LV_STYLE_BG_COLOR },
- { "STYLE_BG_COLOR_FILTERED", LV_STYLE_BG_COLOR_FILTERED },
- { "STYLE_BG_GRAD_COLOR", LV_STYLE_BG_GRAD_COLOR },
- { "STYLE_BG_GRAD_COLOR_FILTERED", LV_STYLE_BG_GRAD_COLOR_FILTERED },
- { "STYLE_BG_GRAD_DIR", LV_STYLE_BG_GRAD_DIR },
- { "STYLE_BG_GRAD_STOP", LV_STYLE_BG_GRAD_STOP },
- { "STYLE_BG_IMG_OPA", LV_STYLE_BG_IMG_OPA },
- { "STYLE_BG_IMG_RECOLOR", LV_STYLE_BG_IMG_RECOLOR },
- { "STYLE_BG_IMG_RECOLOR_FILTERED", LV_STYLE_BG_IMG_RECOLOR_FILTERED },
- { "STYLE_BG_IMG_RECOLOR_OPA", LV_STYLE_BG_IMG_RECOLOR_OPA },
- { "STYLE_BG_IMG_SRC", LV_STYLE_BG_IMG_SRC },
- { "STYLE_BG_IMG_TILED", LV_STYLE_BG_IMG_TILED },
- { "STYLE_BG_MAIN_STOP", LV_STYLE_BG_MAIN_STOP },
- { "STYLE_BG_OPA", LV_STYLE_BG_OPA },
- { "STYLE_BLEND_MODE", LV_STYLE_BLEND_MODE },
- { "STYLE_BORDER_COLOR", LV_STYLE_BORDER_COLOR },
- { "STYLE_BORDER_COLOR_FILTERED", LV_STYLE_BORDER_COLOR_FILTERED },
- { "STYLE_BORDER_OPA", LV_STYLE_BORDER_OPA },
- { "STYLE_BORDER_POST", LV_STYLE_BORDER_POST },
- { "STYLE_BORDER_SIDE", LV_STYLE_BORDER_SIDE },
- { "STYLE_BORDER_WIDTH", LV_STYLE_BORDER_WIDTH },
- { "STYLE_CLIP_CORNER", LV_STYLE_CLIP_CORNER },
- { "STYLE_COLOR_FILTER_DSC", LV_STYLE_COLOR_FILTER_DSC },
- { "STYLE_COLOR_FILTER_OPA", LV_STYLE_COLOR_FILTER_OPA },
- { "STYLE_HEIGHT", LV_STYLE_HEIGHT },
- { "STYLE_IMG_OPA", LV_STYLE_IMG_OPA },
- { "STYLE_IMG_RECOLOR", LV_STYLE_IMG_RECOLOR },
- { "STYLE_IMG_RECOLOR_FILTERED", LV_STYLE_IMG_RECOLOR_FILTERED },
- { "STYLE_IMG_RECOLOR_OPA", LV_STYLE_IMG_RECOLOR_OPA },
- { "STYLE_LAYOUT", LV_STYLE_LAYOUT },
- { "STYLE_LINE_COLOR", LV_STYLE_LINE_COLOR },
- { "STYLE_LINE_COLOR_FILTERED", LV_STYLE_LINE_COLOR_FILTERED },
- { "STYLE_LINE_DASH_GAP", LV_STYLE_LINE_DASH_GAP },
- { "STYLE_LINE_DASH_WIDTH", LV_STYLE_LINE_DASH_WIDTH },
- { "STYLE_LINE_OPA", LV_STYLE_LINE_OPA },
- { "STYLE_LINE_ROUNDED", LV_STYLE_LINE_ROUNDED },
- { "STYLE_LINE_WIDTH", LV_STYLE_LINE_WIDTH },
- { "STYLE_MAX_HEIGHT", LV_STYLE_MAX_HEIGHT },
- { "STYLE_MAX_WIDTH", LV_STYLE_MAX_WIDTH },
- { "STYLE_MIN_HEIGHT", LV_STYLE_MIN_HEIGHT },
- { "STYLE_MIN_WIDTH", LV_STYLE_MIN_WIDTH },
- { "STYLE_OPA", LV_STYLE_OPA },
- { "STYLE_OUTLINE_COLOR", LV_STYLE_OUTLINE_COLOR },
- { "STYLE_OUTLINE_COLOR_FILTERED", LV_STYLE_OUTLINE_COLOR_FILTERED },
- { "STYLE_OUTLINE_OPA", LV_STYLE_OUTLINE_OPA },
- { "STYLE_OUTLINE_PAD", LV_STYLE_OUTLINE_PAD },
- { "STYLE_OUTLINE_WIDTH", LV_STYLE_OUTLINE_WIDTH },
- { "STYLE_PAD_BOTTOM", LV_STYLE_PAD_BOTTOM },
- { "STYLE_PAD_COLUMN", LV_STYLE_PAD_COLUMN },
- { "STYLE_PAD_LEFT", LV_STYLE_PAD_LEFT },
- { "STYLE_PAD_RIGHT", LV_STYLE_PAD_RIGHT },
- { "STYLE_PAD_ROW", LV_STYLE_PAD_ROW },
- { "STYLE_PAD_TOP", LV_STYLE_PAD_TOP },
- { "STYLE_PROP_ANY", LV_STYLE_PROP_ANY },
- { "STYLE_PROP_INV", LV_STYLE_PROP_INV },
- { "STYLE_RADIUS", LV_STYLE_RADIUS },
- { "STYLE_SHADOW_COLOR", LV_STYLE_SHADOW_COLOR },
- { "STYLE_SHADOW_COLOR_FILTERED", LV_STYLE_SHADOW_COLOR_FILTERED },
- { "STYLE_SHADOW_OFS_X", LV_STYLE_SHADOW_OFS_X },
- { "STYLE_SHADOW_OFS_Y", LV_STYLE_SHADOW_OFS_Y },
- { "STYLE_SHADOW_OPA", LV_STYLE_SHADOW_OPA },
- { "STYLE_SHADOW_SPREAD", LV_STYLE_SHADOW_SPREAD },
- { "STYLE_SHADOW_WIDTH", LV_STYLE_SHADOW_WIDTH },
- { "STYLE_TEXT_ALIGN", LV_STYLE_TEXT_ALIGN },
- { "STYLE_TEXT_COLOR", LV_STYLE_TEXT_COLOR },
- { "STYLE_TEXT_COLOR_FILTERED", LV_STYLE_TEXT_COLOR_FILTERED },
- { "STYLE_TEXT_DECOR", LV_STYLE_TEXT_DECOR },
- { "STYLE_TEXT_FONT", LV_STYLE_TEXT_FONT },
- { "STYLE_TEXT_LETTER_SPACE", LV_STYLE_TEXT_LETTER_SPACE },
- { "STYLE_TEXT_LINE_SPACE", LV_STYLE_TEXT_LINE_SPACE },
- { "STYLE_TEXT_OPA", LV_STYLE_TEXT_OPA },
- { "STYLE_TRANSFORM_ANGLE", LV_STYLE_TRANSFORM_ANGLE },
- { "STYLE_TRANSFORM_HEIGHT", LV_STYLE_TRANSFORM_HEIGHT },
- { "STYLE_TRANSFORM_WIDTH", LV_STYLE_TRANSFORM_WIDTH },
- { "STYLE_TRANSFORM_ZOOM", LV_STYLE_TRANSFORM_ZOOM },
- { "STYLE_TRANSITION", LV_STYLE_TRANSITION },
- { "STYLE_TRANSLATE_X", LV_STYLE_TRANSLATE_X },
- { "STYLE_TRANSLATE_Y", LV_STYLE_TRANSLATE_Y },
- { "STYLE_WIDTH", LV_STYLE_WIDTH },
- { "STYLE_X", LV_STYLE_X },
- { "STYLE_Y", LV_STYLE_Y },
- { "$SYMBOL_AUDIO", (int32_t) "\xef\x80\x81" },
- { "$SYMBOL_BACKSPACE", (int32_t) "\xef\x95\x9A" },
- { "$SYMBOL_BATTERY_1", (int32_t) "\xef\x89\x83" },
- { "$SYMBOL_BATTERY_2", (int32_t) "\xef\x89\x82" },
- { "$SYMBOL_BATTERY_3", (int32_t) "\xef\x89\x81" },
- { "$SYMBOL_BATTERY_EMPTY", (int32_t) "\xef\x89\x84" },
- { "$SYMBOL_BATTERY_FULL", (int32_t) "\xef\x89\x80" },
- { "$SYMBOL_BELL", (int32_t) "\xef\x83\xb3" },
- { "$SYMBOL_BLUETOOTH", (int32_t) "\xef\x8a\x93" },
- { "$SYMBOL_BULLET", (int32_t) "\xE2\x80\xA2" },
- { "$SYMBOL_CALL", (int32_t) "\xef\x82\x95" },
- { "$SYMBOL_CHARGE", (int32_t) "\xef\x83\xa7" },
- { "$SYMBOL_CLOSE", (int32_t) "\xef\x80\x8d" },
- { "$SYMBOL_COPY", (int32_t) "\xef\x83\x85" },
- { "$SYMBOL_CUT", (int32_t) "\xef\x83\x84" },
- { "$SYMBOL_DIRECTORY", (int32_t) "\xef\x81\xbb" },
- { "$SYMBOL_DOWN", (int32_t) "\xef\x81\xb8" },
- { "$SYMBOL_DOWNLOAD", (int32_t) "\xef\x80\x99" },
- { "$SYMBOL_DRIVE", (int32_t) "\xef\x80\x9c" },
- { "$SYMBOL_DUMMY", (int32_t) "\xEF\xA3\xBF" },
- { "$SYMBOL_EDIT", (int32_t) "\xef\x8C\x84" },
- { "$SYMBOL_EJECT", (int32_t) "\xef\x81\x92" },
- { "$SYMBOL_EYE_CLOSE", (int32_t) "\xef\x81\xb0" },
- { "$SYMBOL_EYE_OPEN", (int32_t) "\xef\x81\xae" },
- { "$SYMBOL_FILE", (int32_t) "\xef\x85\x9b" },
- { "$SYMBOL_GPS", (int32_t) "\xef\x84\xa4" },
- { "$SYMBOL_HOME", (int32_t) "\xef\x80\x95" },
- { "$SYMBOL_IMAGE", (int32_t) "\xef\x80\xbe" },
- { "$SYMBOL_KEYBOARD", (int32_t) "\xef\x84\x9c" },
- { "$SYMBOL_LEFT", (int32_t) "\xef\x81\x93" },
- { "$SYMBOL_LIST", (int32_t) "\xef\x80\x8b" },
- { "$SYMBOL_LOOP", (int32_t) "\xef\x81\xb9" },
- { "$SYMBOL_MINUS", (int32_t) "\xef\x81\xa8" },
- { "$SYMBOL_MUTE", (int32_t) "\xef\x80\xa6" },
- { "$SYMBOL_NEW_LINE", (int32_t) "\xef\xA2\xA2" },
- { "$SYMBOL_NEXT", (int32_t) "\xef\x81\x91" },
- { "$SYMBOL_OK", (int32_t) "\xef\x80\x8c" },
- { "$SYMBOL_PASTE", (int32_t) "\xef\x83\xAA" },
- { "$SYMBOL_PAUSE", (int32_t) "\xef\x81\x8c" },
- { "$SYMBOL_PLAY", (int32_t) "\xef\x81\x8b" },
- { "$SYMBOL_PLUS", (int32_t) "\xef\x81\xa7" },
- { "$SYMBOL_POWER", (int32_t) "\xef\x80\x91" },
- { "$SYMBOL_PREV", (int32_t) "\xef\x81\x88" },
- { "$SYMBOL_REFRESH", (int32_t) "\xef\x80\xa1" },
- { "$SYMBOL_RIGHT", (int32_t) "\xef\x81\x94" },
- { "$SYMBOL_SAVE", (int32_t) "\xef\x83\x87" },
- { "$SYMBOL_SD_CARD", (int32_t) "\xef\x9F\x82" },
- { "$SYMBOL_SETTINGS", (int32_t) "\xef\x80\x93" },
- { "$SYMBOL_SHUFFLE", (int32_t) "\xef\x81\xb4" },
- { "$SYMBOL_STOP", (int32_t) "\xef\x81\x8d" },
- { "$SYMBOL_TRASH", (int32_t) "\xef\x8B\xAD" },
- { "$SYMBOL_UP", (int32_t) "\xef\x81\xb7" },
- { "$SYMBOL_UPLOAD", (int32_t) "\xef\x82\x93" },
- { "$SYMBOL_USB", (int32_t) "\xef\x8a\x87" },
- { "$SYMBOL_VIDEO", (int32_t) "\xef\x80\x88" },
- { "$SYMBOL_VOLUME_MAX", (int32_t) "\xef\x80\xa8" },
- { "$SYMBOL_VOLUME_MID", (int32_t) "\xef\x80\xa7" },
- { "$SYMBOL_WARNING", (int32_t) "\xef\x81\xb1" },
- { "$SYMBOL_WIFI", (int32_t) "\xef\x87\xab" },
- { "TABLE_CELL_CTRL_CUSTOM_1", LV_TABLE_CELL_CTRL_CUSTOM_1 },
- { "TABLE_CELL_CTRL_CUSTOM_2", LV_TABLE_CELL_CTRL_CUSTOM_2 },
- { "TABLE_CELL_CTRL_CUSTOM_3", LV_TABLE_CELL_CTRL_CUSTOM_3 },
- { "TABLE_CELL_CTRL_CUSTOM_4", LV_TABLE_CELL_CTRL_CUSTOM_4 },
- { "TABLE_CELL_CTRL_MERGE_RIGHT", LV_TABLE_CELL_CTRL_MERGE_RIGHT },
- { "TABLE_CELL_CTRL_TEXT_CROP", LV_TABLE_CELL_CTRL_TEXT_CROP },
- { "TEXTAREA_CURSOR_LAST", LV_TEXTAREA_CURSOR_LAST },
- { "TEXT_ALIGN_AUTO", LV_TEXT_ALIGN_AUTO },
- { "TEXT_ALIGN_CENTER", LV_TEXT_ALIGN_CENTER },
- { "TEXT_ALIGN_LEFT", LV_TEXT_ALIGN_LEFT },
- { "TEXT_ALIGN_RIGHT", LV_TEXT_ALIGN_RIGHT },
- { "TEXT_CMD_STATE_IN", LV_TEXT_CMD_STATE_IN },
- { "TEXT_CMD_STATE_PAR", LV_TEXT_CMD_STATE_PAR },
- { "TEXT_CMD_STATE_WAIT", LV_TEXT_CMD_STATE_WAIT },
- { "TEXT_DECOR_NONE", LV_TEXT_DECOR_NONE },
- { "TEXT_DECOR_STRIKETHROUGH", LV_TEXT_DECOR_STRIKETHROUGH },
- { "TEXT_DECOR_UNDERLINE", LV_TEXT_DECOR_UNDERLINE },
- { "TEXT_FLAG_EXPAND", LV_TEXT_FLAG_EXPAND },
- { "TEXT_FLAG_FIT", LV_TEXT_FLAG_FIT },
- { "TEXT_FLAG_NONE", LV_TEXT_FLAG_NONE },
- { "TEXT_FLAG_RECOLOR", LV_TEXT_FLAG_RECOLOR },
- { "&font_montserrat", (int32_t) &lv0_load_montserrat_font },
- { "&font_robotocondensed_latin1", (int32_t) &lv0_load_robotocondensed_latin1_font },
- { "&font_seg7", (int32_t) &lv0_load_seg7_font },
- { "&load_font", (int32_t) &lv0_load_font },
- { "&load_freetype_font", (int32_t) &lv0_load_freetype_font },
- { "&montserrat_font", (int32_t) &lv0_load_montserrat_font },
- { "®ister_button_encoder", (int32_t) &lv0_register_button_encoder },
- { "&screenshot", (int32_t) &lv0_screenshot },
- { "&seg7_font", (int32_t) &lv0_load_seg7_font },
-
-};
-
-const size_t lv0_constants_size = sizeof(lv0_constants)/sizeof(lv0_constants[0]);
-
-/* generated */
-be_local_module(lv,
- "lv",
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("member", 719708611, 6, -1), be_const_func(lv0_member) },
- { be_nested_key("start", 1697318111, 5, 0), be_const_func(lv0_start) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(lv);
-
-#endif // USE_LVGL
-
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_lvgl_signal_arcs_lib.c b/lib/libesp32/berry/default/be_lvgl_signal_arcs_lib.c
deleted file mode 100644
index a127cddd9..000000000
--- a/lib/libesp32/berry/default/be_lvgl_signal_arcs_lib.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: set_percentage
-********************************************************************/
-be_local_closure(lv_signal_arcs_set_percentage, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(percentage),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(invalidate),
- }),
- &be_const_str_set_percentage,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x540E0018, // 0001 LDINT R3 25
- 0x0C080403, // 0002 DIV R2 R2 R3
- 0x540E0063, // 0003 LDINT R3 100
- 0x240C0203, // 0004 GT R3 R1 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x54060063, // 0006 LDINT R1 100
- 0x140C0301, // 0007 LT R3 R1 K1
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x58040001, // 0009 LDCONST R1 K1
- 0x90020001, // 000A SETMBR R0 K0 R1
- 0x540E0018, // 000B LDINT R3 25
- 0x0C0C0203, // 000C DIV R3 R1 R3
- 0x200C0403, // 000D NE R3 R2 R3
- 0x780E0001, // 000E JMPF R3 #0011
- 0x8C0C0102, // 000F GETMET R3 R0 K2
- 0x7C0C0200, // 0010 CALL R3 1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_signal_arcs_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(_lvgl),
- /* K1 */ be_nested_str(create_custom_widget),
- /* K2 */ be_nested_str(percentage),
- /* K3 */ be_nested_str(p1),
- /* K4 */ be_nested_str(lv),
- /* K5 */ be_nested_str(point),
- /* K6 */ be_nested_str(p2),
- /* K7 */ be_nested_str(area),
- /* K8 */ be_nested_str(line_dsc),
- /* K9 */ be_nested_str(draw_line_dsc),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100000, // 0002 MOVE R4 R0
- 0x5C140200, // 0003 MOVE R5 R1
- 0x7C080600, // 0004 CALL R2 3
- 0x540A0063, // 0005 LDINT R2 100
- 0x90020402, // 0006 SETMBR R0 K2 R2
- 0xB80A0800, // 0007 GETNGBL R2 K4
- 0x8C080505, // 0008 GETMET R2 R2 K5
- 0x7C080200, // 0009 CALL R2 1
- 0x90020602, // 000A SETMBR R0 K3 R2
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x7C080200, // 000D CALL R2 1
- 0x90020C02, // 000E SETMBR R0 K6 R2
- 0xB80A0800, // 000F GETNGBL R2 K4
- 0x8C080507, // 0010 GETMET R2 R2 K7
- 0x7C080200, // 0011 CALL R2 1
- 0x90020E02, // 0012 SETMBR R0 K7 R2
- 0xB80A0800, // 0013 GETNGBL R2 K4
- 0x8C080509, // 0014 GETMET R2 R2 K9
- 0x7C080200, // 0015 CALL R2 1
- 0x90021002, // 0016 SETMBR R0 K8 R2
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_event
-********************************************************************/
-be_local_closure(lv_signal_arcs_widget_event, /* name */
- be_nested_proto(
- 28, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 1]) {
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_int(1),
- }),
- &be_const_str_atleast1,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x28040100, // 0000 GE R1 R0 K0
- 0x78060001, // 0001 JMPF R1 #0004
- 0x80040000, // 0002 RET 1 R0
- 0x70020000, // 0003 JMP #0005
- 0x80060000, // 0004 RET 1 K0
- 0x80000000, // 0005 RET 0
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[35]) { /* constants */
- /* K0 */ be_nested_str(lv),
- /* K1 */ be_nested_str(obj_event_base),
- /* K2 */ be_nested_str(RES_OK),
- /* K3 */ be_nested_str(code),
- /* K4 */ be_nested_str(math),
- /* K5 */ be_nested_str(get_height),
- /* K6 */ be_nested_str(get_width),
- /* K7 */ be_const_int(2),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str(EVENT_DRAW_MAIN),
- /* K10 */ be_nested_str(area),
- /* K11 */ be_nested_str(param),
- /* K12 */ be_nested_str(get_coords),
- /* K13 */ be_nested_str(x1),
- /* K14 */ be_nested_str(y1),
- /* K15 */ be_nested_str(draw_line_dsc_init),
- /* K16 */ be_nested_str(line_dsc),
- /* K17 */ be_nested_str(init_draw_line_dsc),
- /* K18 */ be_nested_str(PART_MAIN),
- /* K19 */ be_nested_str(round_start),
- /* K20 */ be_const_int(1),
- /* K21 */ be_nested_str(round_end),
- /* K22 */ be_nested_str(width),
- /* K23 */ be_nested_str(get_style_line_color),
- /* K24 */ be_nested_str(STATE_DEFAULT),
- /* K25 */ be_nested_str(get_style_bg_color),
- /* K26 */ be_nested_str(deg),
- /* K27 */ be_nested_str(acos),
- /* K28 */ be_nested_str(p1),
- /* K29 */ be_nested_str(x),
- /* K30 */ be_nested_str(y),
- /* K31 */ be_nested_str(color),
- /* K32 */ be_nested_str(percentage),
- /* K33 */ be_nested_str(draw_arc),
- /* K34 */ be_const_int(0),
- }),
- &be_const_str_widget_event,
- &be_const_str_solidified,
- ( &(const binstruction[182]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x5C180400, // 0003 MOVE R6 R2
- 0x7C0C0600, // 0004 CALL R3 3
- 0xB8120000, // 0005 GETNGBL R4 K0
- 0x88100902, // 0006 GETMBR R4 R4 K2
- 0x200C0604, // 0007 NE R3 R3 R4
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x80000600, // 0009 RET 0
- 0x880C0503, // 000A GETMBR R3 R2 K3
- 0xA4120800, // 000B IMPORT R4 K4
- 0x84140000, // 000C CLOSURE R5 P0
- 0x8C180105, // 000D GETMET R6 R0 K5
- 0x7C180200, // 000E CALL R6 1
- 0x8C1C0106, // 000F GETMET R7 R0 K6
- 0x7C1C0200, // 0010 CALL R7 1
- 0x5C200A00, // 0011 MOVE R8 R5
- 0x54260007, // 0012 LDINT R9 8
- 0x0C240C09, // 0013 DIV R9 R6 R9
- 0x7C200200, // 0014 CALL R8 1
- 0x5C240A00, // 0015 MOVE R9 R5
- 0x08281107, // 0016 MUL R10 R8 K7
- 0x04280C0A, // 0017 SUB R10 R6 R10
- 0x0C281508, // 0018 DIV R10 R10 K8
- 0x7C240200, // 0019 CALL R9 1
- 0x0C281307, // 001A DIV R10 R9 K7
- 0xB82E0000, // 001B GETNGBL R11 K0
- 0x882C1709, // 001C GETMBR R11 R11 K9
- 0x1C2C060B, // 001D EQ R11 R3 R11
- 0x782E0095, // 001E JMPF R11 #00B5
- 0xB82E0000, // 001F GETNGBL R11 K0
- 0x8C2C170A, // 0020 GETMET R11 R11 K10
- 0x8834050B, // 0021 GETMBR R13 R2 K11
- 0x7C2C0400, // 0022 CALL R11 2
- 0x8C30010C, // 0023 GETMET R12 R0 K12
- 0x8838010A, // 0024 GETMBR R14 R0 K10
- 0x7C300400, // 0025 CALL R12 2
- 0x8830010A, // 0026 GETMBR R12 R0 K10
- 0x8830190D, // 0027 GETMBR R12 R12 K13
- 0x8834010A, // 0028 GETMBR R13 R0 K10
- 0x88341B0E, // 0029 GETMBR R13 R13 K14
- 0xB83A0000, // 002A GETNGBL R14 K0
- 0x8C381D0F, // 002B GETMET R14 R14 K15
- 0x88400110, // 002C GETMBR R16 R0 K16
- 0x7C380400, // 002D CALL R14 2
- 0x8C380111, // 002E GETMET R14 R0 K17
- 0xB8420000, // 002F GETNGBL R16 K0
- 0x88402112, // 0030 GETMBR R16 R16 K18
- 0x88440110, // 0031 GETMBR R17 R0 K16
- 0x7C380600, // 0032 CALL R14 3
- 0x88380110, // 0033 GETMBR R14 R0 K16
- 0x903A2714, // 0034 SETMBR R14 K19 K20
- 0x88380110, // 0035 GETMBR R14 R0 K16
- 0x903A2B14, // 0036 SETMBR R14 K21 K20
- 0x88380110, // 0037 GETMBR R14 R0 K16
- 0x083C1308, // 0038 MUL R15 R9 K8
- 0x003C1F14, // 0039 ADD R15 R15 K20
- 0x54420003, // 003A LDINT R16 4
- 0x0C3C1E10, // 003B DIV R15 R15 R16
- 0x903A2C0F, // 003C SETMBR R14 K22 R15
- 0x8C380117, // 003D GETMET R14 R0 K23
- 0xB8420000, // 003E GETNGBL R16 K0
- 0x88402112, // 003F GETMBR R16 R16 K18
- 0xB8460000, // 0040 GETNGBL R17 K0
- 0x88442318, // 0041 GETMBR R17 R17 K24
- 0x30402011, // 0042 OR R16 R16 R17
- 0x7C380400, // 0043 CALL R14 2
- 0x8C3C0119, // 0044 GETMET R15 R0 K25
- 0xB8460000, // 0045 GETNGBL R17 K0
- 0x88442312, // 0046 GETMBR R17 R17 K18
- 0xB84A0000, // 0047 GETNGBL R18 K0
- 0x88482518, // 0048 GETMBR R18 R18 K24
- 0x30442212, // 0049 OR R17 R17 R18
- 0x7C3C0400, // 004A CALL R15 2
- 0x04400C09, // 004B SUB R16 R6 R9
- 0x0C440F07, // 004C DIV R17 R7 K7
- 0x0444220A, // 004D SUB R17 R17 R10
- 0x60480009, // 004E GETGBL R18 G9
- 0x544E0059, // 004F LDINT R19 90
- 0x8C50091A, // 0050 GETMET R20 R4 K26
- 0x8C58091B, // 0051 GETMET R22 R4 K27
- 0x6060000A, // 0052 GETGBL R24 G10
- 0x5C642200, // 0053 MOVE R25 R17
- 0x7C600200, // 0054 CALL R24 1
- 0x6064000A, // 0055 GETGBL R25 G10
- 0x5C682000, // 0056 MOVE R26 R16
- 0x7C640200, // 0057 CALL R25 1
- 0x0C603019, // 0058 DIV R24 R24 R25
- 0x7C580400, // 0059 CALL R22 2
- 0x7C500400, // 005A CALL R20 2
- 0x044C2614, // 005B SUB R19 R19 R20
- 0x7C480200, // 005C CALL R18 1
- 0x544E002C, // 005D LDINT R19 45
- 0x244C2413, // 005E GT R19 R18 R19
- 0x784E0000, // 005F JMPF R19 #0061
- 0x544A002C, // 0060 LDINT R18 45
- 0x884C011C, // 0061 GETMBR R19 R0 K28
- 0x0C500F07, // 0062 DIV R20 R7 K7
- 0x00501814, // 0063 ADD R20 R12 R20
- 0x904E3A14, // 0064 SETMBR R19 K29 R20
- 0x884C011C, // 0065 GETMBR R19 R0 K28
- 0x00501A06, // 0066 ADD R20 R13 R6
- 0x04502914, // 0067 SUB R20 R20 K20
- 0x0450280A, // 0068 SUB R20 R20 R10
- 0x904E3C14, // 0069 SETMBR R19 K30 R20
- 0x884C0110, // 006A GETMBR R19 R0 K16
- 0x88500120, // 006B GETMBR R20 R0 K32
- 0x54560018, // 006C LDINT R21 25
- 0x28502815, // 006D GE R20 R20 R21
- 0x78520001, // 006E JMPF R20 #0071
- 0x5C501C00, // 006F MOVE R20 R14
- 0x70020000, // 0070 JMP #0072
- 0x5C501E00, // 0071 MOVE R20 R15
- 0x904E3E14, // 0072 SETMBR R19 K31 R20
- 0xB84E0000, // 0073 GETNGBL R19 K0
- 0x8C4C2721, // 0074 GETMET R19 R19 K33
- 0x8854011C, // 0075 GETMBR R21 R0 K28
- 0x88542B1D, // 0076 GETMBR R21 R21 K29
- 0x8858011C, // 0077 GETMBR R22 R0 K28
- 0x88582D1E, // 0078 GETMBR R22 R22 K30
- 0x005C1208, // 0079 ADD R23 R9 R8
- 0x085E4417, // 007A MUL R23 K34 R23
- 0x005C2E0A, // 007B ADD R23 R23 R10
- 0x58600022, // 007C LDCONST R24 K34
- 0x54660167, // 007D LDINT R25 360
- 0x5C681600, // 007E MOVE R26 R11
- 0x886C0110, // 007F GETMBR R27 R0 K16
- 0x7C4C1000, // 0080 CALL R19 8
- 0x884C0110, // 0081 GETMBR R19 R0 K16
- 0x88500120, // 0082 GETMBR R20 R0 K32
- 0x54560031, // 0083 LDINT R21 50
- 0x28502815, // 0084 GE R20 R20 R21
- 0x78520001, // 0085 JMPF R20 #0088
- 0x5C501C00, // 0086 MOVE R20 R14
- 0x70020000, // 0087 JMP #0089
- 0x5C501E00, // 0088 MOVE R20 R15
- 0x904E3E14, // 0089 SETMBR R19 K31 R20
- 0xB84E0000, // 008A GETNGBL R19 K0
- 0x8C4C2721, // 008B GETMET R19 R19 K33
- 0x8854011C, // 008C GETMBR R21 R0 K28
- 0x88542B1D, // 008D GETMBR R21 R21 K29
- 0x8858011C, // 008E GETMBR R22 R0 K28
- 0x88582D1E, // 008F GETMBR R22 R22 K30
- 0x005C1208, // 0090 ADD R23 R9 R8
- 0x085E2817, // 0091 MUL R23 K20 R23
- 0x005C2E0A, // 0092 ADD R23 R23 R10
- 0x045C2F14, // 0093 SUB R23 R23 K20
- 0x5462010D, // 0094 LDINT R24 270
- 0x04603012, // 0095 SUB R24 R24 R18
- 0x5466010D, // 0096 LDINT R25 270
- 0x00643212, // 0097 ADD R25 R25 R18
- 0x5C681600, // 0098 MOVE R26 R11
- 0x886C0110, // 0099 GETMBR R27 R0 K16
- 0x7C4C1000, // 009A CALL R19 8
- 0x884C0110, // 009B GETMBR R19 R0 K16
- 0x88500120, // 009C GETMBR R20 R0 K32
- 0x5456004A, // 009D LDINT R21 75
- 0x28502815, // 009E GE R20 R20 R21
- 0x78520001, // 009F JMPF R20 #00A2
- 0x5C501C00, // 00A0 MOVE R20 R14
- 0x70020000, // 00A1 JMP #00A3
- 0x5C501E00, // 00A2 MOVE R20 R15
- 0x904E3E14, // 00A3 SETMBR R19 K31 R20
- 0xB84E0000, // 00A4 GETNGBL R19 K0
- 0x8C4C2721, // 00A5 GETMET R19 R19 K33
- 0x8854011C, // 00A6 GETMBR R21 R0 K28
- 0x88542B1D, // 00A7 GETMBR R21 R21 K29
- 0x8858011C, // 00A8 GETMBR R22 R0 K28
- 0x88582D1E, // 00A9 GETMBR R22 R22 K30
- 0x005C1208, // 00AA ADD R23 R9 R8
- 0x085E0E17, // 00AB MUL R23 K7 R23
- 0x005C2E0A, // 00AC ADD R23 R23 R10
- 0x045C2F07, // 00AD SUB R23 R23 K7
- 0x5462010D, // 00AE LDINT R24 270
- 0x04603012, // 00AF SUB R24 R24 R18
- 0x5466010D, // 00B0 LDINT R25 270
- 0x00643212, // 00B1 ADD R25 R25 R18
- 0x5C681600, // 00B2 MOVE R26 R11
- 0x886C0110, // 00B3 GETMBR R27 R0 K16
- 0x7C4C1000, // 00B4 CALL R19 8
- 0x80000000, // 00B5 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_percentage
-********************************************************************/
-be_local_closure(lv_signal_arcs_get_percentage, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(percentage),
- }),
- &be_const_str_get_percentage,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_signal_arcs
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_signal_arcs,
- 5,
- &be_class_lv_obj,
- be_nested_map(9,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(percentage, 4), be_const_var(0) },
- { be_const_key(p1, 3), be_const_var(1) },
- { be_const_key(p2, -1), be_const_var(2) },
- { be_const_key(area, -1), be_const_var(3) },
- { be_const_key(line_dsc, -1), be_const_var(4) },
- { be_const_key(set_percentage, -1), be_const_closure(lv_signal_arcs_set_percentage_closure) },
- { be_const_key(init, -1), be_const_closure(lv_signal_arcs_init_closure) },
- { be_const_key(widget_event, -1), be_const_closure(lv_signal_arcs_widget_event_closure) },
- { be_const_key(get_percentage, 5), be_const_closure(lv_signal_arcs_get_percentage_closure) },
- })),
- be_str_literal("lv_signal_arcs")
-);
-/*******************************************************************/
-
-void be_load_lv_signal_arcs_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_signal_arcs);
- be_setglobal(vm, "lv_signal_arcs");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_signal_bars_lib.c b/lib/libesp32/berry/default/be_lvgl_signal_bars_lib.c
deleted file mode 100644
index 18452ae34..000000000
--- a/lib/libesp32/berry/default/be_lvgl_signal_bars_lib.c
+++ /dev/null
@@ -1,392 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: set_percentage
-********************************************************************/
-be_local_closure(lv_signal_bars_set_percentage, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(percentage),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(invalidate),
- }),
- &be_const_str_set_percentage,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x540E0013, // 0001 LDINT R3 20
- 0x0C080403, // 0002 DIV R2 R2 R3
- 0x540E0063, // 0003 LDINT R3 100
- 0x240C0203, // 0004 GT R3 R1 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x54060063, // 0006 LDINT R1 100
- 0x140C0301, // 0007 LT R3 R1 K1
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x58040001, // 0009 LDCONST R1 K1
- 0x90020001, // 000A SETMBR R0 K0 R1
- 0x540E0013, // 000B LDINT R3 20
- 0x0C0C0203, // 000C DIV R3 R1 R3
- 0x200C0403, // 000D NE R3 R2 R3
- 0x780E0001, // 000E JMPF R3 #0011
- 0x8C0C0102, // 000F GETMET R3 R0 K2
- 0x7C0C0200, // 0010 CALL R3 1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_signal_bars_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(_lvgl),
- /* K1 */ be_nested_str(create_custom_widget),
- /* K2 */ be_nested_str(percentage),
- /* K3 */ be_nested_str(p1),
- /* K4 */ be_nested_str(lv),
- /* K5 */ be_nested_str(point),
- /* K6 */ be_nested_str(p2),
- /* K7 */ be_nested_str(area),
- /* K8 */ be_nested_str(line_dsc),
- /* K9 */ be_nested_str(draw_line_dsc),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100000, // 0002 MOVE R4 R0
- 0x5C140200, // 0003 MOVE R5 R1
- 0x7C080600, // 0004 CALL R2 3
- 0x540A0063, // 0005 LDINT R2 100
- 0x90020402, // 0006 SETMBR R0 K2 R2
- 0xB80A0800, // 0007 GETNGBL R2 K4
- 0x8C080505, // 0008 GETMET R2 R2 K5
- 0x7C080200, // 0009 CALL R2 1
- 0x90020602, // 000A SETMBR R0 K3 R2
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x7C080200, // 000D CALL R2 1
- 0x90020C02, // 000E SETMBR R0 K6 R2
- 0xB80A0800, // 000F GETNGBL R2 K4
- 0x8C080507, // 0010 GETMET R2 R2 K7
- 0x7C080200, // 0011 CALL R2 1
- 0x90020E02, // 0012 SETMBR R0 K7 R2
- 0xB80A0800, // 0013 GETNGBL R2 K4
- 0x8C080509, // 0014 GETMET R2 R2 K9
- 0x7C080200, // 0015 CALL R2 1
- 0x90021002, // 0016 SETMBR R0 K8 R2
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: widget_event
-********************************************************************/
-be_local_closure(lv_signal_bars_widget_event, /* name */
- be_nested_proto(
- 23, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 1]) {
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_int(1),
- }),
- &be_const_str_atleast1,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x28040100, // 0000 GE R1 R0 K0
- 0x78060001, // 0001 JMPF R1 #0004
- 0x80040000, // 0002 RET 1 R0
- 0x70020000, // 0003 JMP #0005
- 0x80060000, // 0004 RET 1 K0
- 0x80000000, // 0005 RET 0
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[37]) { /* constants */
- /* K0 */ be_nested_str(lv),
- /* K1 */ be_nested_str(obj_event_base),
- /* K2 */ be_nested_str(RES_OK),
- /* K3 */ be_nested_str(code),
- /* K4 */ be_nested_str(get_height),
- /* K5 */ be_nested_str(get_width),
- /* K6 */ be_const_int(3),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str(EVENT_DRAW_MAIN),
- /* K9 */ be_nested_str(area),
- /* K10 */ be_nested_str(param),
- /* K11 */ be_nested_str(get_coords),
- /* K12 */ be_nested_str(x1),
- /* K13 */ be_nested_str(y1),
- /* K14 */ be_nested_str(draw_line_dsc_init),
- /* K15 */ be_nested_str(line_dsc),
- /* K16 */ be_nested_str(init_draw_line_dsc),
- /* K17 */ be_nested_str(PART_MAIN),
- /* K18 */ be_nested_str(round_start),
- /* K19 */ be_const_int(1),
- /* K20 */ be_nested_str(round_end),
- /* K21 */ be_nested_str(width),
- /* K22 */ be_nested_str(get_style_line_color),
- /* K23 */ be_nested_str(STATE_DEFAULT),
- /* K24 */ be_nested_str(get_style_bg_color),
- /* K25 */ be_nested_str(event_send),
- /* K26 */ be_nested_str(EVENT_DRAW_PART_BEGIN),
- /* K27 */ be_const_int(0),
- /* K28 */ be_nested_str(color),
- /* K29 */ be_nested_str(percentage),
- /* K30 */ be_nested_str(p1),
- /* K31 */ be_nested_str(y),
- /* K32 */ be_nested_str(x),
- /* K33 */ be_nested_str(p2),
- /* K34 */ be_nested_str(draw_line),
- /* K35 */ be_nested_str(stop_iteration),
- /* K36 */ be_nested_str(EVENT_DRAW_PART_END),
- }),
- &be_const_str_widget_event,
- &be_const_str_solidified,
- ( &(const binstruction[138]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x5C180400, // 0003 MOVE R6 R2
- 0x7C0C0600, // 0004 CALL R3 3
- 0xB8120000, // 0005 GETNGBL R4 K0
- 0x88100902, // 0006 GETMBR R4 R4 K2
- 0x200C0604, // 0007 NE R3 R3 R4
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x80000600, // 0009 RET 0
- 0x880C0503, // 000A GETMBR R3 R2 K3
- 0x84100000, // 000B CLOSURE R4 P0
- 0x8C140104, // 000C GETMET R5 R0 K4
- 0x7C140200, // 000D CALL R5 1
- 0x8C180105, // 000E GETMET R6 R0 K5
- 0x7C180200, // 000F CALL R6 1
- 0x5C1C0800, // 0010 MOVE R7 R4
- 0x5422000E, // 0011 LDINT R8 15
- 0x0C200C08, // 0012 DIV R8 R6 R8
- 0x7C1C0200, // 0013 CALL R7 1
- 0x5C200800, // 0014 MOVE R8 R4
- 0x08240F06, // 0015 MUL R9 R7 K6
- 0x04240C09, // 0016 SUB R9 R6 R9
- 0x542A0003, // 0017 LDINT R10 4
- 0x0C24120A, // 0018 DIV R9 R9 R10
- 0x7C200200, // 0019 CALL R8 1
- 0x0C241107, // 001A DIV R9 R8 K7
- 0xB82A0000, // 001B GETNGBL R10 K0
- 0x88281508, // 001C GETMBR R10 R10 K8
- 0x1C28060A, // 001D EQ R10 R3 R10
- 0x782A0069, // 001E JMPF R10 #0089
- 0xB82A0000, // 001F GETNGBL R10 K0
- 0x8C281509, // 0020 GETMET R10 R10 K9
- 0x8830050A, // 0021 GETMBR R12 R2 K10
- 0x7C280400, // 0022 CALL R10 2
- 0x8C2C010B, // 0023 GETMET R11 R0 K11
- 0x88340109, // 0024 GETMBR R13 R0 K9
- 0x7C2C0400, // 0025 CALL R11 2
- 0x882C0109, // 0026 GETMBR R11 R0 K9
- 0x882C170C, // 0027 GETMBR R11 R11 K12
- 0x88300109, // 0028 GETMBR R12 R0 K9
- 0x8830190D, // 0029 GETMBR R12 R12 K13
- 0xB8360000, // 002A GETNGBL R13 K0
- 0x8C341B0E, // 002B GETMET R13 R13 K14
- 0x883C010F, // 002C GETMBR R15 R0 K15
- 0x7C340400, // 002D CALL R13 2
- 0x8C340110, // 002E GETMET R13 R0 K16
- 0xB83E0000, // 002F GETNGBL R15 K0
- 0x883C1F11, // 0030 GETMBR R15 R15 K17
- 0x8840010F, // 0031 GETMBR R16 R0 K15
- 0x7C340600, // 0032 CALL R13 3
- 0x8834010F, // 0033 GETMBR R13 R0 K15
- 0x90362513, // 0034 SETMBR R13 K18 K19
- 0x8834010F, // 0035 GETMBR R13 R0 K15
- 0x90362913, // 0036 SETMBR R13 K20 K19
- 0x8834010F, // 0037 GETMBR R13 R0 K15
- 0x90362A08, // 0038 SETMBR R13 K21 R8
- 0x8C340116, // 0039 GETMET R13 R0 K22
- 0xB83E0000, // 003A GETNGBL R15 K0
- 0x883C1F11, // 003B GETMBR R15 R15 K17
- 0xB8420000, // 003C GETNGBL R16 K0
- 0x88402117, // 003D GETMBR R16 R16 K23
- 0x303C1E10, // 003E OR R15 R15 R16
- 0x7C340400, // 003F CALL R13 2
- 0x8C380118, // 0040 GETMET R14 R0 K24
- 0xB8420000, // 0041 GETNGBL R16 K0
- 0x88402111, // 0042 GETMBR R16 R16 K17
- 0xB8460000, // 0043 GETNGBL R17 K0
- 0x88442317, // 0044 GETMBR R17 R17 K23
- 0x30402011, // 0045 OR R16 R16 R17
- 0x7C380400, // 0046 CALL R14 2
- 0xB83E0000, // 0047 GETNGBL R15 K0
- 0x8C3C1F19, // 0048 GETMET R15 R15 K25
- 0x5C440000, // 0049 MOVE R17 R0
- 0xB84A0000, // 004A GETNGBL R18 K0
- 0x8848251A, // 004B GETMBR R18 R18 K26
- 0x884C010F, // 004C GETMBR R19 R0 K15
- 0x7C3C0800, // 004D CALL R15 4
- 0x603C0010, // 004E GETGBL R15 G16
- 0x40423706, // 004F CONNECT R16 K27 K6
- 0x7C3C0200, // 0050 CALL R15 1
- 0xA802002C, // 0051 EXBLK 0 #007F
- 0x5C401E00, // 0052 MOVE R16 R15
- 0x7C400000, // 0053 CALL R16 0
- 0x8844010F, // 0054 GETMBR R17 R0 K15
- 0x8848011D, // 0055 GETMBR R18 R0 K29
- 0x004C2113, // 0056 ADD R19 R16 K19
- 0x54520013, // 0057 LDINT R20 20
- 0x084C2614, // 0058 MUL R19 R19 R20
- 0x28482413, // 0059 GE R18 R18 R19
- 0x784A0001, // 005A JMPF R18 #005D
- 0x5C481A00, // 005B MOVE R18 R13
- 0x70020000, // 005C JMP #005E
- 0x5C481C00, // 005D MOVE R18 R14
- 0x90463812, // 005E SETMBR R17 K28 R18
- 0x8844011E, // 005F GETMBR R17 R0 K30
- 0x00481805, // 0060 ADD R18 R12 R5
- 0x04482513, // 0061 SUB R18 R18 K19
- 0x04482409, // 0062 SUB R18 R18 R9
- 0x90463E12, // 0063 SETMBR R17 K31 R18
- 0x8844011E, // 0064 GETMBR R17 R0 K30
- 0x00481007, // 0065 ADD R18 R8 R7
- 0x08482012, // 0066 MUL R18 R16 R18
- 0x00481612, // 0067 ADD R18 R11 R18
- 0x00482409, // 0068 ADD R18 R18 R9
- 0x90464012, // 0069 SETMBR R17 K32 R18
- 0x88440121, // 006A GETMBR R17 R0 K33
- 0x044A0C10, // 006B SUB R18 K6 R16
- 0x044C0A08, // 006C SUB R19 R5 R8
- 0x08482413, // 006D MUL R18 R18 R19
- 0x544E0003, // 006E LDINT R19 4
- 0x0C482413, // 006F DIV R18 R18 R19
- 0x00481812, // 0070 ADD R18 R12 R18
- 0x00482409, // 0071 ADD R18 R18 R9
- 0x90463E12, // 0072 SETMBR R17 K31 R18
- 0x88440121, // 0073 GETMBR R17 R0 K33
- 0x8848011E, // 0074 GETMBR R18 R0 K30
- 0x88482520, // 0075 GETMBR R18 R18 K32
- 0x90464012, // 0076 SETMBR R17 K32 R18
- 0xB8460000, // 0077 GETNGBL R17 K0
- 0x8C442322, // 0078 GETMET R17 R17 K34
- 0x884C011E, // 0079 GETMBR R19 R0 K30
- 0x88500121, // 007A GETMBR R20 R0 K33
- 0x5C541400, // 007B MOVE R21 R10
- 0x8858010F, // 007C GETMBR R22 R0 K15
- 0x7C440A00, // 007D CALL R17 5
- 0x7001FFD2, // 007E JMP #0052
- 0x583C0023, // 007F LDCONST R15 K35
- 0xAC3C0200, // 0080 CATCH R15 1 0
- 0xB0080000, // 0081 RAISE 2 R0 R0
- 0xB83E0000, // 0082 GETNGBL R15 K0
- 0x8C3C1F19, // 0083 GETMET R15 R15 K25
- 0x5C440000, // 0084 MOVE R17 R0
- 0xB84A0000, // 0085 GETNGBL R18 K0
- 0x88482524, // 0086 GETMBR R18 R18 K36
- 0x884C010F, // 0087 GETMBR R19 R0 K15
- 0x7C3C0800, // 0088 CALL R15 4
- 0x80000000, // 0089 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_percentage
-********************************************************************/
-be_local_closure(lv_signal_bars_get_percentage, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str(percentage),
- }),
- &be_const_str_get_percentage,
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_signal_bars
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_signal_bars,
- 5,
- &be_class_lv_obj,
- be_nested_map(9,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(percentage, 4), be_const_var(0) },
- { be_const_key(p1, 3), be_const_var(1) },
- { be_const_key(p2, -1), be_const_var(2) },
- { be_const_key(area, -1), be_const_var(3) },
- { be_const_key(line_dsc, -1), be_const_var(4) },
- { be_const_key(set_percentage, -1), be_const_closure(lv_signal_bars_set_percentage_closure) },
- { be_const_key(init, -1), be_const_closure(lv_signal_bars_init_closure) },
- { be_const_key(widget_event, -1), be_const_closure(lv_signal_bars_widget_event_closure) },
- { be_const_key(get_percentage, 5), be_const_closure(lv_signal_bars_get_percentage_closure) },
- })),
- be_str_literal("lv_signal_bars")
-);
-/*******************************************************************/
-
-void be_load_lv_signal_bars_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_signal_bars);
- be_setglobal(vm, "lv_signal_bars");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_widgets_lib.c b/lib/libesp32/berry/default/be_lvgl_widgets_lib.c
deleted file mode 100644
index 68950d144..000000000
--- a/lib/libesp32/berry/default/be_lvgl_widgets_lib.c
+++ /dev/null
@@ -1,1564 +0,0 @@
-
-/********************************************************************
- * Generated code, don't edit
- *******************************************************************/
-
- /********************************************************************
- * Tasmota LVGL classes for widgets
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-extern int lv0_init(bvm *vm);
-
-extern int lco_init(bvm *vm); // generic function
-extern int lco_tostring(bvm *vm); // generic function
-extern int lco_toint(bvm *vm); // generic function
-
-extern int lvx_member(bvm *vm);
-extern int lvx_tostring(bvm *vm); // generic function
-
-extern int lvs_init(bvm *vm);
-extern int lvs_tostring(bvm *vm);
-
-BE_EXPORT_VARIABLE extern const bclass be_class_lv_obj;
-
-extern int lvbe_font_create(bvm *vm);
-extern int lvbe_theme_create(bvm *vm);
-
-
-/* `lv_style` external functions definitions */
-extern int lvbe_style_set_width(bvm *vm);
-extern int lvbe_style_set_min_width(bvm *vm);
-extern int lvbe_style_set_max_width(bvm *vm);
-extern int lvbe_style_set_height(bvm *vm);
-extern int lvbe_style_set_min_height(bvm *vm);
-extern int lvbe_style_set_max_height(bvm *vm);
-extern int lvbe_style_set_x(bvm *vm);
-extern int lvbe_style_set_y(bvm *vm);
-extern int lvbe_style_set_align(bvm *vm);
-extern int lvbe_style_set_transform_width(bvm *vm);
-extern int lvbe_style_set_transform_height(bvm *vm);
-extern int lvbe_style_set_translate_x(bvm *vm);
-extern int lvbe_style_set_translate_y(bvm *vm);
-extern int lvbe_style_set_transform_zoom(bvm *vm);
-extern int lvbe_style_set_transform_angle(bvm *vm);
-extern int lvbe_style_set_pad_top(bvm *vm);
-extern int lvbe_style_set_pad_bottom(bvm *vm);
-extern int lvbe_style_set_pad_left(bvm *vm);
-extern int lvbe_style_set_pad_right(bvm *vm);
-extern int lvbe_style_set_pad_row(bvm *vm);
-extern int lvbe_style_set_pad_column(bvm *vm);
-extern int lvbe_style_set_radius(bvm *vm);
-extern int lvbe_style_set_clip_corner(bvm *vm);
-extern int lvbe_style_set_opa(bvm *vm);
-extern int lvbe_style_set_color_filter_dsc(bvm *vm);
-extern int lvbe_style_set_color_filter_opa(bvm *vm);
-extern int lvbe_style_set_anim_time(bvm *vm);
-extern int lvbe_style_set_anim_speed(bvm *vm);
-extern int lvbe_style_set_transition(bvm *vm);
-extern int lvbe_style_set_blend_mode(bvm *vm);
-extern int lvbe_style_set_layout(bvm *vm);
-extern int lvbe_style_set_base_dir(bvm *vm);
-extern int lvbe_style_set_bg_color(bvm *vm);
-extern int lvbe_style_set_bg_color_filtered(bvm *vm);
-extern int lvbe_style_set_bg_opa(bvm *vm);
-extern int lvbe_style_set_bg_grad_color(bvm *vm);
-extern int lvbe_style_set_bg_grad_color_filtered(bvm *vm);
-extern int lvbe_style_set_bg_grad_dir(bvm *vm);
-extern int lvbe_style_set_bg_main_stop(bvm *vm);
-extern int lvbe_style_set_bg_grad_stop(bvm *vm);
-extern int lvbe_style_set_bg_img_src(bvm *vm);
-extern int lvbe_style_set_bg_img_opa(bvm *vm);
-extern int lvbe_style_set_bg_img_recolor(bvm *vm);
-extern int lvbe_style_set_bg_img_recolor_filtered(bvm *vm);
-extern int lvbe_style_set_bg_img_recolor_opa(bvm *vm);
-extern int lvbe_style_set_bg_img_tiled(bvm *vm);
-extern int lvbe_style_set_border_color(bvm *vm);
-extern int lvbe_style_set_border_color_filtered(bvm *vm);
-extern int lvbe_style_set_border_opa(bvm *vm);
-extern int lvbe_style_set_border_width(bvm *vm);
-extern int lvbe_style_set_border_side(bvm *vm);
-extern int lvbe_style_set_border_post(bvm *vm);
-extern int lvbe_style_set_text_color(bvm *vm);
-extern int lvbe_style_set_text_color_filtered(bvm *vm);
-extern int lvbe_style_set_text_opa(bvm *vm);
-extern int lvbe_style_set_text_font(bvm *vm);
-extern int lvbe_style_set_text_letter_space(bvm *vm);
-extern int lvbe_style_set_text_line_space(bvm *vm);
-extern int lvbe_style_set_text_decor(bvm *vm);
-extern int lvbe_style_set_text_align(bvm *vm);
-extern int lvbe_style_set_img_opa(bvm *vm);
-extern int lvbe_style_set_img_recolor(bvm *vm);
-extern int lvbe_style_set_img_recolor_filtered(bvm *vm);
-extern int lvbe_style_set_img_recolor_opa(bvm *vm);
-extern int lvbe_style_set_outline_width(bvm *vm);
-extern int lvbe_style_set_outline_color(bvm *vm);
-extern int lvbe_style_set_outline_color_filtered(bvm *vm);
-extern int lvbe_style_set_outline_opa(bvm *vm);
-extern int lvbe_style_set_outline_pad(bvm *vm);
-extern int lvbe_style_set_shadow_width(bvm *vm);
-extern int lvbe_style_set_shadow_ofs_x(bvm *vm);
-extern int lvbe_style_set_shadow_ofs_y(bvm *vm);
-extern int lvbe_style_set_shadow_spread(bvm *vm);
-extern int lvbe_style_set_shadow_color(bvm *vm);
-extern int lvbe_style_set_shadow_color_filtered(bvm *vm);
-extern int lvbe_style_set_shadow_opa(bvm *vm);
-extern int lvbe_style_set_line_width(bvm *vm);
-extern int lvbe_style_set_line_dash_width(bvm *vm);
-extern int lvbe_style_set_line_dash_gap(bvm *vm);
-extern int lvbe_style_set_line_rounded(bvm *vm);
-extern int lvbe_style_set_line_color(bvm *vm);
-extern int lvbe_style_set_line_color_filtered(bvm *vm);
-extern int lvbe_style_set_line_opa(bvm *vm);
-extern int lvbe_style_set_arc_width(bvm *vm);
-extern int lvbe_style_set_arc_rounded(bvm *vm);
-extern int lvbe_style_set_arc_color(bvm *vm);
-extern int lvbe_style_set_arc_color_filtered(bvm *vm);
-extern int lvbe_style_set_arc_opa(bvm *vm);
-extern int lvbe_style_set_arc_img_src(bvm *vm);
-
-/* `lv_font` external functions definitions */
-
-/* `lv_color` external functions definitions */
-
-/* `lv_theme` external functions definitions */
-
-/* `lv_img` external functions definitions */
-extern int lvbe_img_set_tasmota_logo(bvm *vm);
-extern int lvbe_img_create(bvm *vm);
-extern int lvbe_img_set_src(bvm *vm);
-extern int lvbe_img_set_offset_x(bvm *vm);
-extern int lvbe_img_set_offset_y(bvm *vm);
-extern int lvbe_img_set_angle(bvm *vm);
-extern int lvbe_img_set_pivot(bvm *vm);
-extern int lvbe_img_set_zoom(bvm *vm);
-extern int lvbe_img_set_antialias(bvm *vm);
-extern int lvbe_img_get_src(bvm *vm);
-extern int lvbe_img_get_offset_x(bvm *vm);
-extern int lvbe_img_get_offset_y(bvm *vm);
-extern int lvbe_img_get_angle(bvm *vm);
-extern int lvbe_img_get_pivot(bvm *vm);
-extern int lvbe_img_get_zoom(bvm *vm);
-extern int lvbe_img_get_antialias(bvm *vm);
-
-/* `lv_disp` external functions definitions */
-extern int lvbe_disp_get_scr_act(bvm *vm);
-extern int lvbe_disp_get_scr_prev(bvm *vm);
-extern int lvbe_disp_load_scr(bvm *vm);
-extern int lvbe_disp_get_layer_top(bvm *vm);
-extern int lvbe_disp_get_layer_sys(bvm *vm);
-extern int lvbe_disp_set_theme(bvm *vm);
-extern int lvbe_disp_get_theme(bvm *vm);
-extern int lvbe_disp_set_bg_color(bvm *vm);
-extern int lvbe_disp_set_bg_image(bvm *vm);
-extern int lvbe_disp_set_bg_opa(bvm *vm);
-extern int lvbe_disp_get_inactive_time(bvm *vm);
-extern int lvbe_disp_trig_activity(bvm *vm);
-extern int lvbe_disp_clean_dcache(bvm *vm);
-extern int lvbe_disp_dpx(bvm *vm);
-
-/* `lv_obj` external functions definitions */
-extern int lvbe_obj_add_event_cb(bvm *vm);
-extern int lvbe_obj_remove_event_cb(bvm *vm);
-extern int lvbe_obj_remove_event_dsc(bvm *vm);
-extern int lvbe_obj_create(bvm *vm);
-extern int lvbe_obj_add_flag(bvm *vm);
-extern int lvbe_obj_clear_flag(bvm *vm);
-extern int lvbe_obj_add_state(bvm *vm);
-extern int lvbe_obj_clear_state(bvm *vm);
-extern int lvbe_obj_set_user_data(bvm *vm);
-extern int lvbe_obj_has_flag(bvm *vm);
-extern int lvbe_obj_has_flag_any(bvm *vm);
-extern int lvbe_obj_get_state(bvm *vm);
-extern int lvbe_obj_has_state(bvm *vm);
-extern int lvbe_obj_get_group(bvm *vm);
-extern int lvbe_obj_get_user_data(bvm *vm);
-extern int lvbe_obj_allocate_spec_attr(bvm *vm);
-extern int lvbe_obj_check_type(bvm *vm);
-extern int lvbe_obj_has_class(bvm *vm);
-extern int lvbe_obj_get_class(bvm *vm);
-extern int lvbe_obj_is_valid(bvm *vm);
-extern int lvbe_obj_dpx(bvm *vm);
-extern int lvbe_obj_class_init_obj(bvm *vm);
-extern int lvbe_obj_is_editable(bvm *vm);
-extern int lvbe_obj_is_group_def(bvm *vm);
-extern int lvbe_obj_init_draw_rect_dsc(bvm *vm);
-extern int lvbe_obj_init_draw_label_dsc(bvm *vm);
-extern int lvbe_obj_init_draw_img_dsc(bvm *vm);
-extern int lvbe_obj_init_draw_line_dsc(bvm *vm);
-extern int lvbe_obj_init_draw_arc_dsc(bvm *vm);
-extern int lvbe_obj_calculate_ext_draw_size(bvm *vm);
-extern int lvbe_obj_refresh_ext_draw_size(bvm *vm);
-extern int lvbe_obj_set_pos(bvm *vm);
-extern int lvbe_obj_set_x(bvm *vm);
-extern int lvbe_obj_set_y(bvm *vm);
-extern int lvbe_obj_set_size(bvm *vm);
-extern int lvbe_obj_refr_size(bvm *vm);
-extern int lvbe_obj_set_width(bvm *vm);
-extern int lvbe_obj_set_height(bvm *vm);
-extern int lvbe_obj_set_content_width(bvm *vm);
-extern int lvbe_obj_set_content_height(bvm *vm);
-extern int lvbe_obj_set_layout(bvm *vm);
-extern int lvbe_obj_is_layout_positioned(bvm *vm);
-extern int lvbe_obj_mark_layout_as_dirty(bvm *vm);
-extern int lvbe_obj_update_layout(bvm *vm);
-extern int lvbe_obj_set_align(bvm *vm);
-extern int lvbe_obj_align(bvm *vm);
-extern int lvbe_obj_align_to(bvm *vm);
-extern int lvbe_obj_center(bvm *vm);
-extern int lvbe_obj_get_coords(bvm *vm);
-extern int lvbe_obj_get_x(bvm *vm);
-extern int lvbe_obj_get_x2(bvm *vm);
-extern int lvbe_obj_get_y(bvm *vm);
-extern int lvbe_obj_get_y2(bvm *vm);
-extern int lvbe_obj_get_width(bvm *vm);
-extern int lvbe_obj_get_height(bvm *vm);
-extern int lvbe_obj_get_content_width(bvm *vm);
-extern int lvbe_obj_get_content_height(bvm *vm);
-extern int lvbe_obj_get_content_coords(bvm *vm);
-extern int lvbe_obj_get_self_width(bvm *vm);
-extern int lvbe_obj_get_self_height(bvm *vm);
-extern int lvbe_obj_refresh_self_size(bvm *vm);
-extern int lvbe_obj_refr_pos(bvm *vm);
-extern int lvbe_obj_move_to(bvm *vm);
-extern int lvbe_obj_move_children_by(bvm *vm);
-extern int lvbe_obj_invalidate_area(bvm *vm);
-extern int lvbe_obj_invalidate(bvm *vm);
-extern int lvbe_obj_area_is_visible(bvm *vm);
-extern int lvbe_obj_is_visible(bvm *vm);
-extern int lvbe_obj_set_ext_click_area(bvm *vm);
-extern int lvbe_obj_get_click_area(bvm *vm);
-extern int lvbe_obj_hit_test(bvm *vm);
-extern int lvbe_obj_set_scrollbar_mode(bvm *vm);
-extern int lvbe_obj_set_scroll_dir(bvm *vm);
-extern int lvbe_obj_set_scroll_snap_x(bvm *vm);
-extern int lvbe_obj_set_scroll_snap_y(bvm *vm);
-extern int lvbe_obj_get_scrollbar_mode(bvm *vm);
-extern int lvbe_obj_get_scroll_dir(bvm *vm);
-extern int lvbe_obj_get_scroll_snap_x(bvm *vm);
-extern int lvbe_obj_get_scroll_snap_y(bvm *vm);
-extern int lvbe_obj_get_scroll_x(bvm *vm);
-extern int lvbe_obj_get_scroll_y(bvm *vm);
-extern int lvbe_obj_get_scroll_top(bvm *vm);
-extern int lvbe_obj_get_scroll_bottom(bvm *vm);
-extern int lvbe_obj_get_scroll_left(bvm *vm);
-extern int lvbe_obj_get_scroll_right(bvm *vm);
-extern int lvbe_obj_get_scroll_end(bvm *vm);
-extern int lvbe_obj_scroll_by(bvm *vm);
-extern int lvbe_obj_scroll_to(bvm *vm);
-extern int lvbe_obj_scroll_to_x(bvm *vm);
-extern int lvbe_obj_scroll_to_y(bvm *vm);
-extern int lvbe_obj_scroll_to_view(bvm *vm);
-extern int lvbe_obj_scroll_to_view_recursive(bvm *vm);
-extern int lvbe_obj_is_scrolling(bvm *vm);
-extern int lvbe_obj_update_snap(bvm *vm);
-extern int lvbe_obj_get_scrollbar_area(bvm *vm);
-extern int lvbe_obj_scrollbar_invalidate(bvm *vm);
-extern int lvbe_obj_readjust_scroll(bvm *vm);
-extern int lvbe_obj_add_style(bvm *vm);
-extern int lvbe_obj_remove_style(bvm *vm);
-extern int lvbe_obj_remove_style_all(bvm *vm);
-extern int lvbe_obj_refresh_style(bvm *vm);
-extern int lvbe_obj_get_style_prop(bvm *vm);
-extern int lvbe_obj_set_local_style_prop(bvm *vm);
-extern int lvbe_obj_get_local_style_prop(bvm *vm);
-extern int lvbe_obj_remove_local_style_prop(bvm *vm);
-extern int lvbe_obj_fade_in(bvm *vm);
-extern int lvbe_obj_fade_out(bvm *vm);
-extern int lvbe_obj_set_style_pad_all(bvm *vm);
-extern int lvbe_obj_set_style_pad_hor(bvm *vm);
-extern int lvbe_obj_set_style_pad_ver(bvm *vm);
-extern int lvbe_obj_set_style_pad_gap(bvm *vm);
-extern int lvbe_obj_set_style_size(bvm *vm);
-extern int lvbe_obj_get_style_width(bvm *vm);
-extern int lvbe_obj_get_style_min_width(bvm *vm);
-extern int lvbe_obj_get_style_max_width(bvm *vm);
-extern int lvbe_obj_get_style_height(bvm *vm);
-extern int lvbe_obj_get_style_min_height(bvm *vm);
-extern int lvbe_obj_get_style_max_height(bvm *vm);
-extern int lvbe_obj_get_style_x(bvm *vm);
-extern int lvbe_obj_get_style_y(bvm *vm);
-extern int lvbe_obj_get_style_align(bvm *vm);
-extern int lvbe_obj_get_style_transform_width(bvm *vm);
-extern int lvbe_obj_get_style_transform_height(bvm *vm);
-extern int lvbe_obj_get_style_translate_x(bvm *vm);
-extern int lvbe_obj_get_style_translate_y(bvm *vm);
-extern int lvbe_obj_get_style_transform_zoom(bvm *vm);
-extern int lvbe_obj_get_style_transform_angle(bvm *vm);
-extern int lvbe_obj_get_style_pad_top(bvm *vm);
-extern int lvbe_obj_get_style_pad_bottom(bvm *vm);
-extern int lvbe_obj_get_style_pad_left(bvm *vm);
-extern int lvbe_obj_get_style_pad_right(bvm *vm);
-extern int lvbe_obj_get_style_pad_row(bvm *vm);
-extern int lvbe_obj_get_style_pad_column(bvm *vm);
-extern int lvbe_obj_get_style_radius(bvm *vm);
-extern int lvbe_obj_get_style_clip_corner(bvm *vm);
-extern int lvbe_obj_get_style_opa(bvm *vm);
-extern int lvbe_obj_get_style_color_filter_opa(bvm *vm);
-extern int lvbe_obj_get_style_anim_time(bvm *vm);
-extern int lvbe_obj_get_style_anim_speed(bvm *vm);
-extern int lvbe_obj_get_style_blend_mode(bvm *vm);
-extern int lvbe_obj_get_style_layout(bvm *vm);
-extern int lvbe_obj_get_style_base_dir(bvm *vm);
-extern int lvbe_obj_get_style_bg_color(bvm *vm);
-extern int lvbe_obj_get_style_bg_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_bg_opa(bvm *vm);
-extern int lvbe_obj_get_style_bg_grad_color(bvm *vm);
-extern int lvbe_obj_get_style_bg_grad_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_bg_grad_dir(bvm *vm);
-extern int lvbe_obj_get_style_bg_main_stop(bvm *vm);
-extern int lvbe_obj_get_style_bg_grad_stop(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_src(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_opa(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_recolor(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_recolor_filtered(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_recolor_opa(bvm *vm);
-extern int lvbe_obj_get_style_bg_img_tiled(bvm *vm);
-extern int lvbe_obj_get_style_border_color(bvm *vm);
-extern int lvbe_obj_get_style_border_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_border_opa(bvm *vm);
-extern int lvbe_obj_get_style_border_width(bvm *vm);
-extern int lvbe_obj_get_style_border_side(bvm *vm);
-extern int lvbe_obj_get_style_border_post(bvm *vm);
-extern int lvbe_obj_get_style_text_color(bvm *vm);
-extern int lvbe_obj_get_style_text_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_text_opa(bvm *vm);
-extern int lvbe_obj_get_style_text_font(bvm *vm);
-extern int lvbe_obj_get_style_text_letter_space(bvm *vm);
-extern int lvbe_obj_get_style_text_line_space(bvm *vm);
-extern int lvbe_obj_get_style_text_decor(bvm *vm);
-extern int lvbe_obj_get_style_text_align(bvm *vm);
-extern int lvbe_obj_get_style_img_opa(bvm *vm);
-extern int lvbe_obj_get_style_img_recolor(bvm *vm);
-extern int lvbe_obj_get_style_img_recolor_filtered(bvm *vm);
-extern int lvbe_obj_get_style_img_recolor_opa(bvm *vm);
-extern int lvbe_obj_get_style_outline_width(bvm *vm);
-extern int lvbe_obj_get_style_outline_color(bvm *vm);
-extern int lvbe_obj_get_style_outline_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_outline_opa(bvm *vm);
-extern int lvbe_obj_get_style_outline_pad(bvm *vm);
-extern int lvbe_obj_get_style_shadow_width(bvm *vm);
-extern int lvbe_obj_get_style_shadow_ofs_x(bvm *vm);
-extern int lvbe_obj_get_style_shadow_ofs_y(bvm *vm);
-extern int lvbe_obj_get_style_shadow_spread(bvm *vm);
-extern int lvbe_obj_get_style_shadow_color(bvm *vm);
-extern int lvbe_obj_get_style_shadow_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_shadow_opa(bvm *vm);
-extern int lvbe_obj_get_style_line_width(bvm *vm);
-extern int lvbe_obj_get_style_line_dash_width(bvm *vm);
-extern int lvbe_obj_get_style_line_dash_gap(bvm *vm);
-extern int lvbe_obj_get_style_line_rounded(bvm *vm);
-extern int lvbe_obj_get_style_line_color(bvm *vm);
-extern int lvbe_obj_get_style_line_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_line_opa(bvm *vm);
-extern int lvbe_obj_get_style_arc_width(bvm *vm);
-extern int lvbe_obj_get_style_arc_rounded(bvm *vm);
-extern int lvbe_obj_get_style_arc_color(bvm *vm);
-extern int lvbe_obj_get_style_arc_color_filtered(bvm *vm);
-extern int lvbe_obj_get_style_arc_opa(bvm *vm);
-extern int lvbe_obj_get_style_arc_img_src(bvm *vm);
-extern int lvbe_obj_set_style_width(bvm *vm);
-extern int lvbe_obj_set_style_min_width(bvm *vm);
-extern int lvbe_obj_set_style_max_width(bvm *vm);
-extern int lvbe_obj_set_style_height(bvm *vm);
-extern int lvbe_obj_set_style_min_height(bvm *vm);
-extern int lvbe_obj_set_style_max_height(bvm *vm);
-extern int lvbe_obj_set_style_x(bvm *vm);
-extern int lvbe_obj_set_style_y(bvm *vm);
-extern int lvbe_obj_set_style_align(bvm *vm);
-extern int lvbe_obj_set_style_transform_width(bvm *vm);
-extern int lvbe_obj_set_style_transform_height(bvm *vm);
-extern int lvbe_obj_set_style_translate_x(bvm *vm);
-extern int lvbe_obj_set_style_translate_y(bvm *vm);
-extern int lvbe_obj_set_style_transform_zoom(bvm *vm);
-extern int lvbe_obj_set_style_transform_angle(bvm *vm);
-extern int lvbe_obj_set_style_pad_top(bvm *vm);
-extern int lvbe_obj_set_style_pad_bottom(bvm *vm);
-extern int lvbe_obj_set_style_pad_left(bvm *vm);
-extern int lvbe_obj_set_style_pad_right(bvm *vm);
-extern int lvbe_obj_set_style_pad_row(bvm *vm);
-extern int lvbe_obj_set_style_pad_column(bvm *vm);
-extern int lvbe_obj_set_style_radius(bvm *vm);
-extern int lvbe_obj_set_style_clip_corner(bvm *vm);
-extern int lvbe_obj_set_style_opa(bvm *vm);
-extern int lvbe_obj_set_style_color_filter_dsc(bvm *vm);
-extern int lvbe_obj_set_style_color_filter_opa(bvm *vm);
-extern int lvbe_obj_set_style_anim_time(bvm *vm);
-extern int lvbe_obj_set_style_anim_speed(bvm *vm);
-extern int lvbe_obj_set_style_transition(bvm *vm);
-extern int lvbe_obj_set_style_blend_mode(bvm *vm);
-extern int lvbe_obj_set_style_layout(bvm *vm);
-extern int lvbe_obj_set_style_base_dir(bvm *vm);
-extern int lvbe_obj_set_style_bg_color(bvm *vm);
-extern int lvbe_obj_set_style_bg_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_bg_opa(bvm *vm);
-extern int lvbe_obj_set_style_bg_grad_color(bvm *vm);
-extern int lvbe_obj_set_style_bg_grad_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_bg_grad_dir(bvm *vm);
-extern int lvbe_obj_set_style_bg_main_stop(bvm *vm);
-extern int lvbe_obj_set_style_bg_grad_stop(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_src(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_opa(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_recolor(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_recolor_filtered(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_recolor_opa(bvm *vm);
-extern int lvbe_obj_set_style_bg_img_tiled(bvm *vm);
-extern int lvbe_obj_set_style_border_color(bvm *vm);
-extern int lvbe_obj_set_style_border_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_border_opa(bvm *vm);
-extern int lvbe_obj_set_style_border_width(bvm *vm);
-extern int lvbe_obj_set_style_border_side(bvm *vm);
-extern int lvbe_obj_set_style_border_post(bvm *vm);
-extern int lvbe_obj_set_style_text_color(bvm *vm);
-extern int lvbe_obj_set_style_text_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_text_opa(bvm *vm);
-extern int lvbe_obj_set_style_text_font(bvm *vm);
-extern int lvbe_obj_set_style_text_letter_space(bvm *vm);
-extern int lvbe_obj_set_style_text_line_space(bvm *vm);
-extern int lvbe_obj_set_style_text_decor(bvm *vm);
-extern int lvbe_obj_set_style_text_align(bvm *vm);
-extern int lvbe_obj_set_style_img_opa(bvm *vm);
-extern int lvbe_obj_set_style_img_recolor(bvm *vm);
-extern int lvbe_obj_set_style_img_recolor_filtered(bvm *vm);
-extern int lvbe_obj_set_style_img_recolor_opa(bvm *vm);
-extern int lvbe_obj_set_style_outline_width(bvm *vm);
-extern int lvbe_obj_set_style_outline_color(bvm *vm);
-extern int lvbe_obj_set_style_outline_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_outline_opa(bvm *vm);
-extern int lvbe_obj_set_style_outline_pad(bvm *vm);
-extern int lvbe_obj_set_style_shadow_width(bvm *vm);
-extern int lvbe_obj_set_style_shadow_ofs_x(bvm *vm);
-extern int lvbe_obj_set_style_shadow_ofs_y(bvm *vm);
-extern int lvbe_obj_set_style_shadow_spread(bvm *vm);
-extern int lvbe_obj_set_style_shadow_color(bvm *vm);
-extern int lvbe_obj_set_style_shadow_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_shadow_opa(bvm *vm);
-extern int lvbe_obj_set_style_line_width(bvm *vm);
-extern int lvbe_obj_set_style_line_dash_width(bvm *vm);
-extern int lvbe_obj_set_style_line_dash_gap(bvm *vm);
-extern int lvbe_obj_set_style_line_rounded(bvm *vm);
-extern int lvbe_obj_set_style_line_color(bvm *vm);
-extern int lvbe_obj_set_style_line_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_line_opa(bvm *vm);
-extern int lvbe_obj_set_style_arc_width(bvm *vm);
-extern int lvbe_obj_set_style_arc_rounded(bvm *vm);
-extern int lvbe_obj_set_style_arc_color(bvm *vm);
-extern int lvbe_obj_set_style_arc_color_filtered(bvm *vm);
-extern int lvbe_obj_set_style_arc_opa(bvm *vm);
-extern int lvbe_obj_set_style_arc_img_src(bvm *vm);
-extern int lvbe_obj_del(bvm *vm);
-extern int lvbe_obj_clean(bvm *vm);
-extern int lvbe_obj_del_async(bvm *vm);
-extern int lvbe_obj_set_parent(bvm *vm);
-extern int lvbe_obj_move_foreground(bvm *vm);
-extern int lvbe_obj_move_background(bvm *vm);
-extern int lvbe_obj_get_screen(bvm *vm);
-extern int lvbe_obj_get_disp(bvm *vm);
-extern int lvbe_obj_get_parent(bvm *vm);
-extern int lvbe_obj_get_child(bvm *vm);
-extern int lvbe_obj_get_child_cnt(bvm *vm);
-extern int lvbe_obj_get_child_id(bvm *vm);
-extern int lvbe_obj_tree_walk(bvm *vm);
-
-/* `lv_group` external functions definitions */
-extern int lvbe_group_create(bvm *vm);
-extern int lvbe_group_del(bvm *vm);
-extern int lvbe_group_set_default(bvm *vm);
-extern int lvbe_group_add_obj(bvm *vm);
-extern int lvbe_group_remove_obj(bvm *vm);
-extern int lvbe_group_remove_all_objs(bvm *vm);
-extern int lvbe_group_focus_obj(bvm *vm);
-extern int lvbe_group_focus_next(bvm *vm);
-extern int lvbe_group_focus_prev(bvm *vm);
-extern int lvbe_group_focus_freeze(bvm *vm);
-extern int lvbe_group_send_data(bvm *vm);
-extern int lvbe_group_set_focus_cb(bvm *vm);
-extern int lvbe_group_set_refocus_policy(bvm *vm);
-extern int lvbe_group_set_editing(bvm *vm);
-extern int lvbe_group_set_wrap(bvm *vm);
-extern int lvbe_group_get_focused(bvm *vm);
-extern int lvbe_group_get_focus_cb(bvm *vm);
-extern int lvbe_group_get_editing(bvm *vm);
-extern int lvbe_group_get_wrap(bvm *vm);
-extern int lvbe_group_get_obj_count(bvm *vm);
-
-/* `lv_indev` external functions definitions */
-extern int lvbe_indev_enable(bvm *vm);
-extern int lvbe_indev_get_type(bvm *vm);
-extern int lvbe_indev_reset(bvm *vm);
-extern int lvbe_indev_reset_long_press(bvm *vm);
-extern int lvbe_indev_set_cursor(bvm *vm);
-extern int lvbe_indev_set_group(bvm *vm);
-extern int lvbe_indev_set_button_points(bvm *vm);
-extern int lvbe_indev_get_point(bvm *vm);
-extern int lvbe_indev_get_gesture_dir(bvm *vm);
-extern int lvbe_indev_get_key(bvm *vm);
-extern int lvbe_indev_get_scroll_dir(bvm *vm);
-extern int lvbe_indev_get_scroll_obj(bvm *vm);
-extern int lvbe_indev_get_vect(bvm *vm);
-extern int lvbe_indev_wait_release(bvm *vm);
-extern int lvbe_indev_search_obj(bvm *vm);
-
-/* `lv_chart` external functions definitions */
-extern int lvbe_chart_create(bvm *vm);
-extern int lvbe_chart_set_type(bvm *vm);
-extern int lvbe_chart_set_point_count(bvm *vm);
-extern int lvbe_chart_set_range(bvm *vm);
-extern int lvbe_chart_set_update_mode(bvm *vm);
-extern int lvbe_chart_set_div_line_count(bvm *vm);
-extern int lvbe_chart_set_zoom_x(bvm *vm);
-extern int lvbe_chart_set_zoom_y(bvm *vm);
-extern int lvbe_chart_get_zoom_x(bvm *vm);
-extern int lvbe_chart_get_zoom_y(bvm *vm);
-extern int lvbe_chart_set_axis_tick(bvm *vm);
-extern int lvbe_chart_get_type(bvm *vm);
-extern int lvbe_chart_get_point_count(bvm *vm);
-extern int lvbe_chart_get_x_start_point(bvm *vm);
-extern int lvbe_chart_get_point_pos_by_id(bvm *vm);
-extern int lvbe_chart_refresh(bvm *vm);
-extern int lvbe_chart_remove_series(bvm *vm);
-extern int lvbe_chart_hide_series(bvm *vm);
-extern int lvbe_chart_set_series_color(bvm *vm);
-extern int lvbe_chart_set_x_start_point(bvm *vm);
-extern int lvbe_chart_set_cursor_pos(bvm *vm);
-extern int lvbe_chart_set_cursor_point(bvm *vm);
-extern int lvbe_chart_get_cursor_point(bvm *vm);
-extern int lvbe_chart_set_all_value(bvm *vm);
-extern int lvbe_chart_set_next_value(bvm *vm);
-extern int lvbe_chart_set_next_value2(bvm *vm);
-extern int lvbe_chart_set_value_by_id(bvm *vm);
-extern int lvbe_chart_set_value_by_id2(bvm *vm);
-extern int lvbe_chart_set_ext_y_array(bvm *vm);
-extern int lvbe_chart_set_ext_x_array(bvm *vm);
-extern int lvbe_chart_get_pressed_point(bvm *vm);
-
-/* `lv_colorwheel` external functions definitions */
-extern int lvbe_colorwheel_create(bvm *vm);
-extern int lvbe_colorwheel_set_hsv(bvm *vm);
-extern int lvbe_colorwheel_set_rgb(bvm *vm);
-extern int lvbe_colorwheel_set_mode(bvm *vm);
-extern int lvbe_colorwheel_set_mode_fixed(bvm *vm);
-extern int lvbe_colorwheel_get_hsv(bvm *vm);
-extern int lvbe_colorwheel_get_rgb(bvm *vm);
-extern int lvbe_colorwheel_get_color_mode(bvm *vm);
-extern int lvbe_colorwheel_get_color_mode_fixed(bvm *vm);
-
-/* `lv_imgbtn` external functions definitions */
-extern int lvbe_imgbtn_create(bvm *vm);
-extern int lvbe_imgbtn_set_src(bvm *vm);
-
-/* `lv_led` external functions definitions */
-extern int lvbe_led_create(bvm *vm);
-extern int lvbe_led_set_color(bvm *vm);
-extern int lvbe_led_set_brightness(bvm *vm);
-extern int lvbe_led_on(bvm *vm);
-extern int lvbe_led_off(bvm *vm);
-extern int lvbe_led_toggle(bvm *vm);
-extern int lvbe_led_get_brightness(bvm *vm);
-
-/* `lv_meter` external functions definitions */
-extern int lvbe_meter_create(bvm *vm);
-extern int lvbe_meter_add_scale(bvm *vm);
-extern int lvbe_meter_set_scale_ticks(bvm *vm);
-extern int lvbe_meter_set_scale_major_ticks(bvm *vm);
-extern int lvbe_meter_set_scale_range(bvm *vm);
-extern int lvbe_meter_add_needle_line(bvm *vm);
-extern int lvbe_meter_add_needle_img(bvm *vm);
-extern int lvbe_meter_add_arc(bvm *vm);
-extern int lvbe_meter_add_scale_lines(bvm *vm);
-extern int lvbe_meter_set_indicator_value(bvm *vm);
-extern int lvbe_meter_set_indicator_start_value(bvm *vm);
-extern int lvbe_meter_set_indicator_end_value(bvm *vm);
-
-/* `lv_msgbox` external functions definitions */
-extern int lvbe_msgbox_create(bvm *vm);
-extern int lvbe_msgbox_get_title(bvm *vm);
-extern int lvbe_msgbox_get_close_btn(bvm *vm);
-extern int lvbe_msgbox_get_text(bvm *vm);
-extern int lvbe_msgbox_get_btns(bvm *vm);
-extern int lvbe_msgbox_get_active_btn_text(bvm *vm);
-extern int lvbe_msgbox_close(bvm *vm);
-
-/* `lv_spinbox` external functions definitions */
-extern int lvbe_spinbox_create(bvm *vm);
-extern int lvbe_spinbox_set_value(bvm *vm);
-extern int lvbe_spinbox_set_rollover(bvm *vm);
-extern int lvbe_spinbox_set_digit_format(bvm *vm);
-extern int lvbe_spinbox_set_step(bvm *vm);
-extern int lvbe_spinbox_set_range(bvm *vm);
-extern int lvbe_spinbox_get_rollover(bvm *vm);
-extern int lvbe_spinbox_get_value(bvm *vm);
-extern int lvbe_spinbox_get_step(bvm *vm);
-extern int lvbe_spinbox_step_next(bvm *vm);
-extern int lvbe_spinbox_step_prev(bvm *vm);
-extern int lvbe_spinbox_increment(bvm *vm);
-extern int lvbe_spinbox_decrement(bvm *vm);
-
-/* `lv_spinner` external functions definitions */
-extern int lvbe_spinner_create(bvm *vm);
-
-/* `lv_arc` external functions definitions */
-extern int lvbe_arc_create(bvm *vm);
-extern int lvbe_arc_set_start_angle(bvm *vm);
-extern int lvbe_arc_set_end_angle(bvm *vm);
-extern int lvbe_arc_set_angles(bvm *vm);
-extern int lvbe_arc_set_bg_start_angle(bvm *vm);
-extern int lvbe_arc_set_bg_end_angle(bvm *vm);
-extern int lvbe_arc_set_bg_angles(bvm *vm);
-extern int lvbe_arc_set_rotation(bvm *vm);
-extern int lvbe_arc_set_mode(bvm *vm);
-extern int lvbe_arc_set_value(bvm *vm);
-extern int lvbe_arc_set_range(bvm *vm);
-extern int lvbe_arc_set_change_rate(bvm *vm);
-extern int lvbe_arc_get_angle_start(bvm *vm);
-extern int lvbe_arc_get_angle_end(bvm *vm);
-extern int lvbe_arc_get_bg_angle_start(bvm *vm);
-extern int lvbe_arc_get_bg_angle_end(bvm *vm);
-extern int lvbe_arc_get_value(bvm *vm);
-extern int lvbe_arc_get_min_value(bvm *vm);
-extern int lvbe_arc_get_max_value(bvm *vm);
-extern int lvbe_arc_get_mode(bvm *vm);
-
-/* `lv_bar` external functions definitions */
-extern int lvbe_bar_create(bvm *vm);
-extern int lvbe_bar_set_value(bvm *vm);
-extern int lvbe_bar_set_start_value(bvm *vm);
-extern int lvbe_bar_set_range(bvm *vm);
-extern int lvbe_bar_set_mode(bvm *vm);
-extern int lvbe_bar_get_value(bvm *vm);
-extern int lvbe_bar_get_start_value(bvm *vm);
-extern int lvbe_bar_get_min_value(bvm *vm);
-extern int lvbe_bar_get_max_value(bvm *vm);
-extern int lvbe_bar_get_mode(bvm *vm);
-
-/* `lv_btn` external functions definitions */
-extern int lvbe_btn_create(bvm *vm);
-
-/* `lv_btnmatrix` external functions definitions */
-extern int lvbe_btnmatrix_create(bvm *vm);
-extern int lvbe_btnmatrix_set_map(bvm *vm);
-extern int lvbe_btnmatrix_set_ctrl_map(bvm *vm);
-extern int lvbe_btnmatrix_set_selected_btn(bvm *vm);
-extern int lvbe_btnmatrix_set_btn_ctrl(bvm *vm);
-extern int lvbe_btnmatrix_clear_btn_ctrl(bvm *vm);
-extern int lvbe_btnmatrix_set_btn_ctrl_all(bvm *vm);
-extern int lvbe_btnmatrix_clear_btn_ctrl_all(bvm *vm);
-extern int lvbe_btnmatrix_set_btn_width(bvm *vm);
-extern int lvbe_btnmatrix_set_one_checked(bvm *vm);
-extern int lvbe_btnmatrix_get_selected_btn(bvm *vm);
-extern int lvbe_btnmatrix_get_btn_text(bvm *vm);
-extern int lvbe_btnmatrix_has_btn_ctrl(bvm *vm);
-extern int lvbe_btnmatrix_get_one_checked(bvm *vm);
-
-/* `lv_canvas` external functions definitions */
-extern int lvbe_canvas_create(bvm *vm);
-extern int lvbe_canvas_set_buffer(bvm *vm);
-extern int lvbe_canvas_set_px(bvm *vm);
-extern int lvbe_canvas_set_palette(bvm *vm);
-extern int lvbe_canvas_get_px(bvm *vm);
-extern int lvbe_canvas_copy_buf(bvm *vm);
-extern int lvbe_canvas_transform(bvm *vm);
-extern int lvbe_canvas_blur_hor(bvm *vm);
-extern int lvbe_canvas_blur_ver(bvm *vm);
-extern int lvbe_canvas_fill_bg(bvm *vm);
-extern int lvbe_canvas_draw_rect(bvm *vm);
-extern int lvbe_canvas_draw_text(bvm *vm);
-extern int lvbe_canvas_draw_img(bvm *vm);
-extern int lvbe_canvas_draw_line(bvm *vm);
-extern int lvbe_canvas_draw_polygon(bvm *vm);
-extern int lvbe_canvas_draw_arc(bvm *vm);
-
-/* `lv_checkbox` external functions definitions */
-extern int lvbe_checkbox_create(bvm *vm);
-extern int lvbe_checkbox_set_text(bvm *vm);
-extern int lvbe_checkbox_set_text_static(bvm *vm);
-extern int lvbe_checkbox_get_text(bvm *vm);
-
-/* `lv_dropdown` external functions definitions */
-extern int lvbe_dropdown_create(bvm *vm);
-extern int lvbe_dropdown_set_text(bvm *vm);
-extern int lvbe_dropdown_set_options(bvm *vm);
-extern int lvbe_dropdown_set_options_static(bvm *vm);
-extern int lvbe_dropdown_add_option(bvm *vm);
-extern int lvbe_dropdown_clear_options(bvm *vm);
-extern int lvbe_dropdown_set_selected(bvm *vm);
-extern int lvbe_dropdown_set_dir(bvm *vm);
-extern int lvbe_dropdown_set_symbol(bvm *vm);
-extern int lvbe_dropdown_set_selected_highlight(bvm *vm);
-extern int lvbe_dropdown_get_list(bvm *vm);
-extern int lvbe_dropdown_get_text(bvm *vm);
-extern int lvbe_dropdown_get_options(bvm *vm);
-extern int lvbe_dropdown_get_selected(bvm *vm);
-extern int lvbe_dropdown_get_option_cnt(bvm *vm);
-extern int lvbe_dropdown_get_selected_str(bvm *vm);
-extern int lvbe_dropdown_get_symbol(bvm *vm);
-extern int lvbe_dropdown_get_selected_highlight(bvm *vm);
-extern int lvbe_dropdown_get_dir(bvm *vm);
-extern int lvbe_dropdown_open(bvm *vm);
-extern int lvbe_dropdown_close(bvm *vm);
-
-/* `lv_label` external functions definitions */
-extern int lvbe_label_create(bvm *vm);
-extern int lvbe_label_set_text(bvm *vm);
-extern int lvbe_label_set_text_fmt(bvm *vm);
-extern int lvbe_label_set_text_static(bvm *vm);
-extern int lvbe_label_set_long_mode(bvm *vm);
-extern int lvbe_label_set_recolor(bvm *vm);
-extern int lvbe_label_set_text_sel_start(bvm *vm);
-extern int lvbe_label_set_text_sel_end(bvm *vm);
-extern int lvbe_label_get_text(bvm *vm);
-extern int lvbe_label_get_long_mode(bvm *vm);
-extern int lvbe_label_get_recolor(bvm *vm);
-extern int lvbe_label_get_letter_pos(bvm *vm);
-extern int lvbe_label_get_letter_on(bvm *vm);
-extern int lvbe_label_is_char_under_pos(bvm *vm);
-extern int lvbe_label_get_text_selection_start(bvm *vm);
-extern int lvbe_label_get_text_selection_end(bvm *vm);
-extern int lvbe_label_ins_text(bvm *vm);
-extern int lvbe_label_cut_text(bvm *vm);
-
-/* `lv_line` external functions definitions */
-extern int lvbe_line_create(bvm *vm);
-extern int lvbe_line_set_points(bvm *vm);
-extern int lvbe_line_set_y_invert(bvm *vm);
-extern int lvbe_line_get_y_invert(bvm *vm);
-
-/* `lv_roller` external functions definitions */
-extern int lvbe_roller_create(bvm *vm);
-extern int lvbe_roller_set_options(bvm *vm);
-extern int lvbe_roller_set_selected(bvm *vm);
-extern int lvbe_roller_set_visible_row_count(bvm *vm);
-extern int lvbe_roller_get_selected(bvm *vm);
-extern int lvbe_roller_get_selected_str(bvm *vm);
-extern int lvbe_roller_get_options(bvm *vm);
-extern int lvbe_roller_get_option_cnt(bvm *vm);
-
-/* `lv_slider` external functions definitions */
-extern int lvbe_slider_create(bvm *vm);
-extern int lvbe_slider_set_value(bvm *vm);
-extern int lvbe_slider_set_left_value(bvm *vm);
-extern int lvbe_slider_set_range(bvm *vm);
-extern int lvbe_slider_set_mode(bvm *vm);
-extern int lvbe_slider_get_value(bvm *vm);
-extern int lvbe_slider_get_left_value(bvm *vm);
-extern int lvbe_slider_get_min_value(bvm *vm);
-extern int lvbe_slider_get_max_value(bvm *vm);
-extern int lvbe_slider_is_dragged(bvm *vm);
-extern int lvbe_slider_get_mode(bvm *vm);
-
-/* `lv_switch` external functions definitions */
-extern int lvbe_switch_create(bvm *vm);
-
-/* `lv_table` external functions definitions */
-extern int lvbe_table_create(bvm *vm);
-extern int lvbe_table_set_cell_value(bvm *vm);
-extern int lvbe_table_set_cell_value_fmt(bvm *vm);
-extern int lvbe_table_set_row_cnt(bvm *vm);
-extern int lvbe_table_set_col_cnt(bvm *vm);
-extern int lvbe_table_set_col_width(bvm *vm);
-extern int lvbe_table_add_cell_ctrl(bvm *vm);
-extern int lvbe_table_clear_cell_ctrl(bvm *vm);
-extern int lvbe_table_get_cell_value(bvm *vm);
-extern int lvbe_table_get_row_cnt(bvm *vm);
-extern int lvbe_table_get_col_cnt(bvm *vm);
-extern int lvbe_table_get_col_width(bvm *vm);
-extern int lvbe_table_has_cell_ctrl(bvm *vm);
-extern int lvbe_table_get_selected_cell(bvm *vm);
-
-/* `lv_textarea` external functions definitions */
-extern int lvbe_textarea_create(bvm *vm);
-extern int lvbe_textarea_add_char(bvm *vm);
-extern int lvbe_textarea_add_text(bvm *vm);
-extern int lvbe_textarea_del_char(bvm *vm);
-extern int lvbe_textarea_del_char_forward(bvm *vm);
-extern int lvbe_textarea_set_text(bvm *vm);
-extern int lvbe_textarea_set_placeholder_text(bvm *vm);
-extern int lvbe_textarea_set_cursor_pos(bvm *vm);
-extern int lvbe_textarea_set_cursor_click_pos(bvm *vm);
-extern int lvbe_textarea_set_password_mode(bvm *vm);
-extern int lvbe_textarea_set_one_line(bvm *vm);
-extern int lvbe_textarea_set_accepted_chars(bvm *vm);
-extern int lvbe_textarea_set_max_length(bvm *vm);
-extern int lvbe_textarea_set_insert_replace(bvm *vm);
-extern int lvbe_textarea_set_text_selection(bvm *vm);
-extern int lvbe_textarea_set_password_show_time(bvm *vm);
-extern int lvbe_textarea_set_align(bvm *vm);
-extern int lvbe_textarea_get_text(bvm *vm);
-extern int lvbe_textarea_get_placeholder_text(bvm *vm);
-extern int lvbe_textarea_get_label(bvm *vm);
-extern int lvbe_textarea_get_cursor_pos(bvm *vm);
-extern int lvbe_textarea_get_cursor_click_pos(bvm *vm);
-extern int lvbe_textarea_get_password_mode(bvm *vm);
-extern int lvbe_textarea_get_one_line(bvm *vm);
-extern int lvbe_textarea_get_accepted_chars(bvm *vm);
-extern int lvbe_textarea_get_max_length(bvm *vm);
-extern int lvbe_textarea_text_is_selected(bvm *vm);
-extern int lvbe_textarea_get_text_selection(bvm *vm);
-extern int lvbe_textarea_get_password_show_time(bvm *vm);
-extern int lvbe_textarea_clear_selection(bvm *vm);
-extern int lvbe_textarea_cursor_right(bvm *vm);
-extern int lvbe_textarea_cursor_left(bvm *vm);
-extern int lvbe_textarea_cursor_down(bvm *vm);
-extern int lvbe_textarea_cursor_up(bvm *vm);
-
-extern int be_ntv_lv_style_init(bvm *vm);
-extern int be_ntv_lv_font_init(bvm *vm);
-extern int be_ntv_lv_color_init(bvm *vm);
-extern int be_ntv_lv_theme_init(bvm *vm);
-extern int be_ntv_lv_img_init(bvm *vm);
-extern int be_ntv_lv_disp_init(bvm *vm);
-extern int be_ntv_lv_obj_init(bvm *vm);
-extern int be_ntv_lv_group_init(bvm *vm);
-extern int be_ntv_lv_indev_init(bvm *vm);
-extern int be_ntv_lv_chart_init(bvm *vm);
-extern int be_ntv_lv_colorwheel_init(bvm *vm);
-extern int be_ntv_lv_imgbtn_init(bvm *vm);
-extern int be_ntv_lv_led_init(bvm *vm);
-extern int be_ntv_lv_meter_init(bvm *vm);
-extern int be_ntv_lv_msgbox_init(bvm *vm);
-extern int be_ntv_lv_spinbox_init(bvm *vm);
-extern int be_ntv_lv_spinner_init(bvm *vm);
-extern int be_ntv_lv_arc_init(bvm *vm);
-extern int be_ntv_lv_bar_init(bvm *vm);
-extern int be_ntv_lv_btn_init(bvm *vm);
-extern int be_ntv_lv_btnmatrix_init(bvm *vm);
-extern int be_ntv_lv_canvas_init(bvm *vm);
-extern int be_ntv_lv_checkbox_init(bvm *vm);
-extern int be_ntv_lv_dropdown_init(bvm *vm);
-extern int be_ntv_lv_label_init(bvm *vm);
-extern int be_ntv_lv_line_init(bvm *vm);
-extern int be_ntv_lv_roller_init(bvm *vm);
-extern int be_ntv_lv_slider_init(bvm *vm);
-extern int be_ntv_lv_switch_init(bvm *vm);
-extern int be_ntv_lv_table_init(bvm *vm);
-extern int be_ntv_lv_textarea_init(bvm *vm);
-
-extern const bclass be_class_lv_arc;
-extern const bclass be_class_lv_bar;
-extern const bclass be_class_lv_btn;
-extern const bclass be_class_lv_btnmatrix;
-extern const bclass be_class_lv_canvas;
-extern const bclass be_class_lv_chart;
-extern const bclass be_class_lv_checkbox;
-extern const bclass be_class_lv_color;
-extern const bclass be_class_lv_colorwheel;
-extern const bclass be_class_lv_disp;
-extern const bclass be_class_lv_dropdown;
-extern const bclass be_class_lv_font;
-extern const bclass be_class_lv_group;
-extern const bclass be_class_lv_img;
-extern const bclass be_class_lv_imgbtn;
-extern const bclass be_class_lv_indev;
-extern const bclass be_class_lv_label;
-extern const bclass be_class_lv_led;
-extern const bclass be_class_lv_line;
-extern const bclass be_class_lv_meter;
-extern const bclass be_class_lv_msgbox;
-extern const bclass be_class_lv_obj;
-extern const bclass be_class_lv_roller;
-extern const bclass be_class_lv_slider;
-extern const bclass be_class_lv_spinbox;
-extern const bclass be_class_lv_spinner;
-extern const bclass be_class_lv_style;
-extern const bclass be_class_lv_switch;
-extern const bclass be_class_lv_table;
-extern const bclass be_class_lv_textarea;
-extern const bclass be_class_lv_theme;
-
-
-/********************************************************************
-** Solidified class: lv_style
-********************************************************************/
-be_local_class(lv_style,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lvs_init) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvs_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
- })),
- (be_nested_const_str("lv_style", -143355747, 8))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_obj
-********************************************************************/
-be_local_class(lv_obj,
- 1,
- NULL,
- be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("tostring", -1995258651, 8, 3), be_const_func(lvx_tostring) },
- { be_nested_key("member", 719708611, 6, -1), be_const_func(lvx_member) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("init", 380752755, 4, 4), be_const_func(be_ntv_lv_obj_init) },
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_obj_class) },
- })),
- (be_nested_const_str("lv_obj", -37134147, 6))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_group
-********************************************************************/
-be_local_class(lv_group,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_group_init) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
- })),
- (be_nested_const_str("lv_group", -442928277, 8))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_indev
-********************************************************************/
-be_local_class(lv_indev,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lv0_init) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
- })),
- (be_nested_const_str("lv_indev", 225602374, 8))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_disp
-********************************************************************/
-be_local_class(lv_disp,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lv0_init) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("member", 719708611, 6, 0), be_const_func(lvx_member) },
- })),
- (be_nested_const_str("lv_disp", 609712084, 8))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_font
-********************************************************************/
-be_local_class(lv_font,
- 1,
- NULL,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lvbe_font_create) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- })),
- (be_nested_const_str("lv_font", 1550958453, 7))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_theme
-********************************************************************/
-be_local_class(lv_theme,
- 1,
- NULL,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lvbe_theme_create) },
- { be_nested_key("tostring", -1995258651, 8, -1), be_const_func(lvx_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- })),
- (be_nested_const_str("lv_theme", 1550958453, 7))
-);
-/*******************************************************************/
-
-/********************************************************************
-** Solidified class: lv_color
-********************************************************************/
-be_local_class(lv_color,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("toint", -681784387, 5, -1), be_const_func(lco_toint) },
- { be_nested_key("tostring", -1995258651, 8, 0), be_const_func(lco_tostring) },
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(lco_init) },
- })),
- (be_nested_const_str("lv_color", 1419148319, 8))
-);
-/*******************************************************************/
-
-void be_load_lv_style_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_style);
- be_setglobal(vm, "lv_style");
- be_pop(vm, 1);
-}
-
-void be_load_lv_font_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_font);
- be_setglobal(vm, "lv_font");
- be_pop(vm, 1);
-}
-
-void be_load_lv_color_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_color);
- be_setglobal(vm, "lv_color");
- be_pop(vm, 1);
-}
-
-void be_load_lv_theme_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_theme);
- be_setglobal(vm, "lv_theme");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_img
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_img,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_img_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_img_init) },
- })),
- (be_nested_const_str("lv_img", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_img_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_img);
- be_setglobal(vm, "lv_img");
- be_pop(vm, 1);
-}
-
-void be_load_lv_disp_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_disp);
- be_setglobal(vm, "lv_disp");
- be_pop(vm, 1);
-}
-
-void be_load_lv_obj_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_obj);
- be_setglobal(vm, "lv_obj");
- be_pop(vm, 1);
-}
-
-void be_load_lv_group_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_group);
- be_setglobal(vm, "lv_group");
- be_pop(vm, 1);
-}
-
-void be_load_lv_indev_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_indev);
- be_setglobal(vm, "lv_indev");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_chart
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_chart,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_chart_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_chart_init) },
- })),
- (be_nested_const_str("lv_chart", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_chart_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_chart);
- be_setglobal(vm, "lv_chart");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_colorwheel
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_colorwheel,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_colorwheel_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_colorwheel_init) },
- })),
- (be_nested_const_str("lv_colorwheel", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_colorwheel_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_colorwheel);
- be_setglobal(vm, "lv_colorwheel");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_imgbtn
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_imgbtn,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_imgbtn_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_imgbtn_init) },
- })),
- (be_nested_const_str("lv_imgbtn", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_imgbtn_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_imgbtn);
- be_setglobal(vm, "lv_imgbtn");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_led
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_led,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_led_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_led_init) },
- })),
- (be_nested_const_str("lv_led", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_led_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_led);
- be_setglobal(vm, "lv_led");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_meter
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_meter,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_meter_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_meter_init) },
- })),
- (be_nested_const_str("lv_meter", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_meter_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_meter);
- be_setglobal(vm, "lv_meter");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_msgbox
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_msgbox,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_msgbox_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_msgbox_init) },
- })),
- (be_nested_const_str("lv_msgbox", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_msgbox_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_msgbox);
- be_setglobal(vm, "lv_msgbox");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_spinbox
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_spinbox,
- 0,
- &be_class_lv_textarea,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_spinbox_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_spinbox_init) },
- })),
- (be_nested_const_str("lv_spinbox", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_spinbox_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_spinbox);
- be_setglobal(vm, "lv_spinbox");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_spinner
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_spinner,
- 0,
- &be_class_lv_arc,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_spinner_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_spinner_init) },
- })),
- (be_nested_const_str("lv_spinner", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_spinner_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_spinner);
- be_setglobal(vm, "lv_spinner");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_arc
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_arc,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_arc_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_arc_init) },
- })),
- (be_nested_const_str("lv_arc", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_arc_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_arc);
- be_setglobal(vm, "lv_arc");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_bar
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_bar,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_bar_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_bar_init) },
- })),
- (be_nested_const_str("lv_bar", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_bar_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_bar);
- be_setglobal(vm, "lv_bar");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_btn
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_btn,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_btn_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_btn_init) },
- })),
- (be_nested_const_str("lv_btn", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_btn_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_btn);
- be_setglobal(vm, "lv_btn");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_btnmatrix
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_btnmatrix,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_btnmatrix_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_btnmatrix_init) },
- })),
- (be_nested_const_str("lv_btnmatrix", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_btnmatrix_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_btnmatrix);
- be_setglobal(vm, "lv_btnmatrix");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_canvas
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_canvas,
- 0,
- &be_class_lv_img,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_canvas_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_canvas_init) },
- })),
- (be_nested_const_str("lv_canvas", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_canvas_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_canvas);
- be_setglobal(vm, "lv_canvas");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_checkbox
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_checkbox,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_checkbox_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_checkbox_init) },
- })),
- (be_nested_const_str("lv_checkbox", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_checkbox_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_checkbox);
- be_setglobal(vm, "lv_checkbox");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_dropdown
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_dropdown,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_dropdown_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_dropdown_init) },
- })),
- (be_nested_const_str("lv_dropdown", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_dropdown_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_dropdown);
- be_setglobal(vm, "lv_dropdown");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_label
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_label,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_label_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_label_init) },
- })),
- (be_nested_const_str("lv_label", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_label_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_label);
- be_setglobal(vm, "lv_label");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_line
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_line,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_line_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_line_init) },
- })),
- (be_nested_const_str("lv_line", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_line_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_line);
- be_setglobal(vm, "lv_line");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_roller
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_roller,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_roller_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_roller_init) },
- })),
- (be_nested_const_str("lv_roller", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_roller_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_roller);
- be_setglobal(vm, "lv_roller");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_slider
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_slider,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_slider_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_slider_init) },
- })),
- (be_nested_const_str("lv_slider", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_slider_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_slider);
- be_setglobal(vm, "lv_slider");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_switch
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_switch,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_switch_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_switch_init) },
- })),
- (be_nested_const_str("lv_switch", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_switch_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_switch);
- be_setglobal(vm, "lv_switch");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_table
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_table,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_table_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_table_init) },
- })),
- (be_nested_const_str("lv_table", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_table_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_table);
- be_setglobal(vm, "lv_table");
- be_pop(vm, 1);
-}
-
-/********************************************************************
-** Solidified class: lv_textarea
-********************************************************************/
-extern const bclass be_class_lv_obj;
-be_local_class(lv_textarea,
- 0,
- &be_class_lv_obj,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_class", -1562820946, 6, -1), be_const_comptr(&lv_textarea_class) },
- { be_nested_key("init", 380752755, 4, -1), be_const_func(be_ntv_lv_textarea_init) },
- })),
- (be_nested_const_str("lv_textarea", 1612829968, 6))
-);
-/*******************************************************************/
-
-void be_load_lv_textarea_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_textarea);
- be_setglobal(vm, "lv_textarea");
- be_pop(vm, 1);
-}
-
-
-#endif // USE_LVGL
-
diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_icon_lib.c b/lib/libesp32/berry/default/be_lvgl_wifi_arcs_icon_lib.c
deleted file mode 100644
index d8fe9ce08..000000000
--- a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_icon_lib.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_wifi_arcs_icon_init, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(set_style_line_color),
- /* K2 */ be_nested_str(lv),
- /* K3 */ be_nested_str(color),
- /* K4 */ be_nested_str(COLOR_WHITE),
- /* K5 */ be_nested_str(PART_MAIN),
- /* K6 */ be_nested_str(STATE_DEFAULT),
- /* K7 */ be_nested_str(set_style_bg_color),
- /* K8 */ be_nested_str(COLOR_BLACK),
- /* K9 */ be_nested_str(get_height),
- /* K10 */ be_nested_str(get_style_pad_right),
- /* K11 */ be_nested_str(set_height),
- /* K12 */ be_const_int(3),
- /* K13 */ be_nested_str(set_width),
- /* K14 */ be_nested_str(set_x),
- /* K15 */ be_nested_str(get_width),
- /* K16 */ be_nested_str(set_style_pad_right),
- /* K17 */ be_const_int(1),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[67]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x8C080101, // 0006 GETMET R2 R0 K1
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x8C100903, // 0008 GETMET R4 R4 K3
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x88180D04, // 000A GETMBR R6 R6 K4
- 0x7C100400, // 000B CALL R4 2
- 0xB8160400, // 000C GETNGBL R5 K2
- 0x88140B05, // 000D GETMBR R5 R5 K5
- 0xB81A0400, // 000E GETNGBL R6 K2
- 0x88180D06, // 000F GETMBR R6 R6 K6
- 0x30140A06, // 0010 OR R5 R5 R6
- 0x7C080600, // 0011 CALL R2 3
- 0x8C080107, // 0012 GETMET R2 R0 K7
- 0xB8120400, // 0013 GETNGBL R4 K2
- 0x8C100903, // 0014 GETMET R4 R4 K3
- 0xB81A0400, // 0015 GETNGBL R6 K2
- 0x88180D08, // 0016 GETMBR R6 R6 K8
- 0x7C100400, // 0017 CALL R4 2
- 0xB8160400, // 0018 GETNGBL R5 K2
- 0x88140B05, // 0019 GETMBR R5 R5 K5
- 0xB81A0400, // 001A GETNGBL R6 K2
- 0x88180D06, // 001B GETMBR R6 R6 K6
- 0x30140A06, // 001C OR R5 R5 R6
- 0x7C080600, // 001D CALL R2 3
- 0x4C080000, // 001E LDNIL R2
- 0x20080202, // 001F NE R2 R1 R2
- 0x780A0020, // 0020 JMPF R2 #0042
- 0x8C080309, // 0021 GETMET R2 R1 K9
- 0x7C080200, // 0022 CALL R2 1
- 0x8C0C030A, // 0023 GETMET R3 R1 K10
- 0xB8160400, // 0024 GETNGBL R5 K2
- 0x88140B05, // 0025 GETMBR R5 R5 K5
- 0xB81A0400, // 0026 GETNGBL R6 K2
- 0x88180D06, // 0027 GETMBR R6 R6 K6
- 0x30140A06, // 0028 OR R5 R5 R6
- 0x7C0C0400, // 0029 CALL R3 2
- 0x8C10010B, // 002A GETMET R4 R0 K11
- 0x5C180400, // 002B MOVE R6 R2
- 0x7C100400, // 002C CALL R4 2
- 0x54120003, // 002D LDINT R4 4
- 0x08100404, // 002E MUL R4 R2 R4
- 0x0C10090C, // 002F DIV R4 R4 K12
- 0x8C14010D, // 0030 GETMET R5 R0 K13
- 0x5C1C0800, // 0031 MOVE R7 R4
- 0x7C140400, // 0032 CALL R5 2
- 0x8C14010E, // 0033 GETMET R5 R0 K14
- 0x8C1C030F, // 0034 GETMET R7 R1 K15
- 0x7C1C0200, // 0035 CALL R7 1
- 0x041C0E04, // 0036 SUB R7 R7 R4
- 0x041C0E03, // 0037 SUB R7 R7 R3
- 0x7C140400, // 0038 CALL R5 2
- 0x8C140310, // 0039 GETMET R5 R1 K16
- 0x001C0604, // 003A ADD R7 R3 R4
- 0x001C0F11, // 003B ADD R7 R7 K17
- 0xB8220400, // 003C GETNGBL R8 K2
- 0x88201105, // 003D GETMBR R8 R8 K5
- 0xB8260400, // 003E GETNGBL R9 K2
- 0x88241306, // 003F GETMBR R9 R9 K6
- 0x30201009, // 0040 OR R8 R8 R9
- 0x7C140600, // 0041 CALL R5 3
- 0x80000000, // 0042 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_wifi_arcs_icon
-********************************************************************/
-extern const bclass be_class_lv_wifi_arcs;
-be_local_class(lv_wifi_arcs_icon,
- 0,
- &be_class_lv_wifi_arcs,
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(lv_wifi_arcs_icon_init_closure) },
- })),
- be_str_literal("lv_wifi_arcs_icon")
-);
-/*******************************************************************/
-
-void be_load_lv_wifi_arcs_icon_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_wifi_arcs_icon);
- be_setglobal(vm, "lv_wifi_arcs_icon");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_lib.c b/lib/libesp32/berry/default/be_lvgl_wifi_arcs_lib.c
deleted file mode 100644
index 57cbf18a9..000000000
--- a/lib/libesp32/berry/default/be_lvgl_wifi_arcs_lib.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-be_local_closure(lv_wifi_arcs_every_second, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(wifi),
- /* K2 */ be_nested_str(find),
- /* K3 */ be_nested_str(quality),
- /* K4 */ be_nested_str(ip),
- /* K5 */ be_nested_str(set_percentage),
- /* K6 */ be_const_int(0),
- }),
- &be_const_str_every_second,
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x58100003, // 0004 LDCONST R4 K3
- 0x7C080400, // 0005 CALL R2 2
- 0x8C0C0302, // 0006 GETMET R3 R1 K2
- 0x58140004, // 0007 LDCONST R5 K4
- 0x7C0C0400, // 0008 CALL R3 2
- 0x4C100000, // 0009 LDNIL R4
- 0x1C100604, // 000A EQ R4 R3 R4
- 0x78120003, // 000B JMPF R4 #0010
- 0x8C100105, // 000C GETMET R4 R0 K5
- 0x58180006, // 000D LDCONST R6 K6
- 0x7C100400, // 000E CALL R4 2
- 0x70020005, // 000F JMP #0016
- 0x4C100000, // 0010 LDNIL R4
- 0x20100404, // 0011 NE R4 R2 R4
- 0x78120002, // 0012 JMPF R4 #0016
- 0x8C100105, // 0013 GETMET R4 R0 K5
- 0x5C180400, // 0014 MOVE R6 R2
- 0x7C100400, // 0015 CALL R4 2
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_wifi_arcs_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(add_driver),
- /* K3 */ be_nested_str(set_percentage),
- /* K4 */ be_const_int(0),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0xB80A0200, // 0006 GETNGBL R2 K1
- 0x8C080502, // 0007 GETMET R2 R2 K2
- 0x5C100000, // 0008 MOVE R4 R0
- 0x7C080400, // 0009 CALL R2 2
- 0x8C080103, // 000A GETMET R2 R0 K3
- 0x58100004, // 000B LDCONST R4 K4
- 0x7C080400, // 000C CALL R2 2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: del
-********************************************************************/
-be_local_closure(lv_wifi_arcs_del, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(del),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(remove_driver),
- }),
- &be_const_str_del,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x5C0C0000, // 0007 MOVE R3 R0
- 0x7C040400, // 0008 CALL R1 2
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_wifi_arcs
-********************************************************************/
-extern const bclass be_class_lv_signal_arcs;
-be_local_class(lv_wifi_arcs,
- 0,
- &be_class_lv_signal_arcs,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(every_second, 1), be_const_closure(lv_wifi_arcs_every_second_closure) },
- { be_const_key(init, -1), be_const_closure(lv_wifi_arcs_init_closure) },
- { be_const_key(del, -1), be_const_closure(lv_wifi_arcs_del_closure) },
- })),
- be_str_literal("lv_wifi_arcs")
-);
-/*******************************************************************/
-
-void be_load_lv_wifi_arcs_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_wifi_arcs);
- be_setglobal(vm, "lv_wifi_arcs");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_bars_icon_lib.c b/lib/libesp32/berry/default/be_lvgl_wifi_bars_icon_lib.c
deleted file mode 100644
index a1cf693e5..000000000
--- a/lib/libesp32/berry/default/be_lvgl_wifi_bars_icon_lib.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_wifi_bars_icon_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(set_style_line_color),
- /* K2 */ be_nested_str(lv),
- /* K3 */ be_nested_str(color),
- /* K4 */ be_nested_str(COLOR_WHITE),
- /* K5 */ be_nested_str(PART_MAIN),
- /* K6 */ be_nested_str(STATE_DEFAULT),
- /* K7 */ be_nested_str(set_style_bg_color),
- /* K8 */ be_nested_str(COLOR_BLACK),
- /* K9 */ be_nested_str(get_height),
- /* K10 */ be_nested_str(get_style_pad_right),
- /* K11 */ be_nested_str(set_height),
- /* K12 */ be_nested_str(set_width),
- /* K13 */ be_nested_str(set_x),
- /* K14 */ be_nested_str(get_width),
- /* K15 */ be_nested_str(set_style_pad_right),
- /* K16 */ be_const_int(1),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[64]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x8C080101, // 0006 GETMET R2 R0 K1
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x8C100903, // 0008 GETMET R4 R4 K3
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x88180D04, // 000A GETMBR R6 R6 K4
- 0x7C100400, // 000B CALL R4 2
- 0xB8160400, // 000C GETNGBL R5 K2
- 0x88140B05, // 000D GETMBR R5 R5 K5
- 0xB81A0400, // 000E GETNGBL R6 K2
- 0x88180D06, // 000F GETMBR R6 R6 K6
- 0x30140A06, // 0010 OR R5 R5 R6
- 0x7C080600, // 0011 CALL R2 3
- 0x8C080107, // 0012 GETMET R2 R0 K7
- 0xB8120400, // 0013 GETNGBL R4 K2
- 0x8C100903, // 0014 GETMET R4 R4 K3
- 0xB81A0400, // 0015 GETNGBL R6 K2
- 0x88180D08, // 0016 GETMBR R6 R6 K8
- 0x7C100400, // 0017 CALL R4 2
- 0xB8160400, // 0018 GETNGBL R5 K2
- 0x88140B05, // 0019 GETMBR R5 R5 K5
- 0xB81A0400, // 001A GETNGBL R6 K2
- 0x88180D06, // 001B GETMBR R6 R6 K6
- 0x30140A06, // 001C OR R5 R5 R6
- 0x7C080600, // 001D CALL R2 3
- 0x4C080000, // 001E LDNIL R2
- 0x20080202, // 001F NE R2 R1 R2
- 0x780A001D, // 0020 JMPF R2 #003F
- 0x8C080309, // 0021 GETMET R2 R1 K9
- 0x7C080200, // 0022 CALL R2 1
- 0x8C0C030A, // 0023 GETMET R3 R1 K10
- 0xB8160400, // 0024 GETNGBL R5 K2
- 0x88140B05, // 0025 GETMBR R5 R5 K5
- 0xB81A0400, // 0026 GETNGBL R6 K2
- 0x88180D06, // 0027 GETMBR R6 R6 K6
- 0x30140A06, // 0028 OR R5 R5 R6
- 0x7C0C0400, // 0029 CALL R3 2
- 0x8C10010B, // 002A GETMET R4 R0 K11
- 0x5C180400, // 002B MOVE R6 R2
- 0x7C100400, // 002C CALL R4 2
- 0x8C10010C, // 002D GETMET R4 R0 K12
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x8C10010D, // 0030 GETMET R4 R0 K13
- 0x8C18030E, // 0031 GETMET R6 R1 K14
- 0x7C180200, // 0032 CALL R6 1
- 0x04180C02, // 0033 SUB R6 R6 R2
- 0x04180C03, // 0034 SUB R6 R6 R3
- 0x7C100400, // 0035 CALL R4 2
- 0x8C10030F, // 0036 GETMET R4 R1 K15
- 0x00180602, // 0037 ADD R6 R3 R2
- 0x00180D10, // 0038 ADD R6 R6 K16
- 0xB81E0400, // 0039 GETNGBL R7 K2
- 0x881C0F05, // 003A GETMBR R7 R7 K5
- 0xB8220400, // 003B GETNGBL R8 K2
- 0x88201106, // 003C GETMBR R8 R8 K6
- 0x301C0E08, // 003D OR R7 R7 R8
- 0x7C100600, // 003E CALL R4 3
- 0x80000000, // 003F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_wifi_bars_icon
-********************************************************************/
-extern const bclass be_class_lv_wifi_bars;
-be_local_class(lv_wifi_bars_icon,
- 0,
- &be_class_lv_wifi_bars,
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(lv_wifi_bars_icon_init_closure) },
- })),
- be_str_literal("lv_wifi_bars_icon")
-);
-/*******************************************************************/
-
-void be_load_lv_wifi_bars_icon_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_wifi_bars_icon);
- be_setglobal(vm, "lv_wifi_bars_icon");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_lvgl_wifi_bars_lib.c b/lib/libesp32/berry/default/be_lvgl_wifi_bars_lib.c
deleted file mode 100644
index c61cb2bb3..000000000
--- a/lib/libesp32/berry/default/be_lvgl_wifi_bars_lib.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/********************************************************************
- * Tasmota LVGL lv_signal_bars widget
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_LVGL
-
-#include "lvgl.h"
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-be_local_closure(lv_wifi_bars_every_second, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(wifi),
- /* K2 */ be_nested_str(find),
- /* K3 */ be_nested_str(quality),
- /* K4 */ be_nested_str(ip),
- /* K5 */ be_nested_str(set_percentage),
- /* K6 */ be_const_int(0),
- }),
- &be_const_str_every_second,
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x58100003, // 0004 LDCONST R4 K3
- 0x7C080400, // 0005 CALL R2 2
- 0x8C0C0302, // 0006 GETMET R3 R1 K2
- 0x58140004, // 0007 LDCONST R5 K4
- 0x7C0C0400, // 0008 CALL R3 2
- 0x4C100000, // 0009 LDNIL R4
- 0x1C100604, // 000A EQ R4 R3 R4
- 0x78120003, // 000B JMPF R4 #0010
- 0x8C100105, // 000C GETMET R4 R0 K5
- 0x58180006, // 000D LDCONST R6 K6
- 0x7C100400, // 000E CALL R4 2
- 0x70020005, // 000F JMP #0016
- 0x4C100000, // 0010 LDNIL R4
- 0x20100404, // 0011 NE R4 R2 R4
- 0x78120002, // 0012 JMPF R4 #0016
- 0x8C100105, // 0013 GETMET R4 R0 K5
- 0x5C180400, // 0014 MOVE R6 R2
- 0x7C100400, // 0015 CALL R4 2
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(lv_wifi_bars_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(init),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(add_driver),
- /* K3 */ be_nested_str(set_percentage),
- /* K4 */ be_const_int(0),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x60080003, // 0000 GETGBL R2 G3
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080500, // 0003 GETMET R2 R2 K0
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0xB80A0200, // 0006 GETNGBL R2 K1
- 0x8C080502, // 0007 GETMET R2 R2 K2
- 0x5C100000, // 0008 MOVE R4 R0
- 0x7C080400, // 0009 CALL R2 2
- 0x8C080103, // 000A GETMET R2 R0 K3
- 0x58100004, // 000B LDCONST R4 K4
- 0x7C080400, // 000C CALL R2 2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: del
-********************************************************************/
-be_local_closure(lv_wifi_bars_del, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(del),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(remove_driver),
- }),
- &be_const_str_del,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x5C0C0000, // 0007 MOVE R3 R0
- 0x7C040400, // 0008 CALL R1 2
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: lv_wifi_bars
-********************************************************************/
-extern const bclass be_class_lv_signal_bars;
-be_local_class(lv_wifi_bars,
- 0,
- &be_class_lv_signal_bars,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(every_second, 1), be_const_closure(lv_wifi_bars_every_second_closure) },
- { be_const_key(init, -1), be_const_closure(lv_wifi_bars_init_closure) },
- { be_const_key(del, -1), be_const_closure(lv_wifi_bars_del_closure) },
- })),
- be_str_literal("lv_wifi_bars")
-);
-/*******************************************************************/
-
-void be_load_lv_wifi_bars_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_lv_wifi_bars);
- be_setglobal(vm, "lv_wifi_bars");
- be_pop(vm, 1);
-}
-
-#endif // USE_LVGL
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/be_md5_lib.c b/lib/libesp32/berry/default/be_md5_lib.c
deleted file mode 100644
index 2c8dfd77b..000000000
--- a/lib/libesp32/berry/default/be_md5_lib.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/********************************************************************
- * Berry module `webserver`
- *
- * To use: `import webserver`
- *
- * Allows to respond to HTTP request
- *******************************************************************/
-#include "be_constobj.h"
-
-extern int m_md5_init(bvm *vm);
-extern int m_md5_update(bvm *vm);
-extern int m_md5_finish(bvm *vm);
-
-#include "../generate/be_fixed_be_class_md5.h"
-
-void be_load_md5_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_md5);
- be_setglobal(vm, "MD5");
- be_pop(vm, 1);
-}
-/* @const_object_info_begin
-
-class be_class_md5 (scope: global, name: MD5) {
- .p, var
-
- init, func(m_md5_init)
- update, func(m_md5_update)
- finish, func(m_md5_finish)
-}
-@const_object_info_end */
diff --git a/lib/libesp32/berry/default/be_modtab.c b/lib/libesp32/berry/default/be_modtab.c
deleted file mode 100644
index 934400bbb..000000000
--- a/lib/libesp32/berry/default/be_modtab.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/********************************************************************
-** Copyright (c) 2018-2020 Guan Wenliang
-** This file is part of the Berry default interpreter.
-** skiars@qq.com, https://github.com/Skiars/berry
-** See Copyright Notice in the LICENSE file or at
-** https://github.com/Skiars/berry/blob/master/LICENSE
-********************************************************************/
-#include "berry.h"
-
-/* this file contains the declaration of the module table. */
-
-/* default modules declare */
-be_extern_native_module(string);
-be_extern_native_module(json);
-be_extern_native_module(math);
-be_extern_native_module(time);
-be_extern_native_module(os);
-be_extern_native_module(global);
-be_extern_native_module(sys);
-be_extern_native_module(debug);
-be_extern_native_module(gc);
-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);
-be_extern_native_module(persist);
-be_extern_native_module(autoconf);
-be_extern_native_module(tapp);
-be_extern_native_module(light);
-be_extern_native_module(gpio);
-be_extern_native_module(display);
-be_extern_native_module(energy);
-be_extern_native_module(webserver);
-be_extern_native_module(flash);
-be_extern_native_module(path);
-be_extern_native_module(unishox);
-be_extern_native_module(animate);
-#ifdef USE_LVGL
-be_extern_native_module(lv);
-#endif // USE_LVGL
-
-/* user-defined modules declare start */
-
-/* user-defined modules declare end */
-
-/* module list declaration */
-BERRY_LOCAL const bntvmodule* const be_module_table[] = {
-/* default modules register */
-#if BE_USE_STRING_MODULE
- &be_native_module(string),
-#endif
-#if BE_USE_JSON_MODULE
- &be_native_module(json),
-#endif
-#if BE_USE_MATH_MODULE
- &be_native_module(math),
-#endif
-#if BE_USE_TIME_MODULE
- &be_native_module(time),
-#endif
-#if BE_USE_OS_MODULE
- &be_native_module(os),
-#endif
-#if BE_USE_GLOBAL_MODULE
- &be_native_module(global),
-#endif
-#if BE_USE_SYS_MODULE
- &be_native_module(sys),
-#endif
-#if BE_USE_DEBUG_MODULE
- &be_native_module(debug),
-#endif
-#if BE_USE_GC_MODULE
- &be_native_module(gc),
-#endif
-#if BE_USE_SOLIDIFY_MODULE
- &be_native_module(solidify),
-#endif
-#if BE_USE_INTROSPECT_MODULE
- &be_native_module(introspect),
-#endif
-#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),
- &be_native_module(re),
- &be_native_module(path),
- &be_native_module(persist),
-#ifdef USE_AUTOCONF
- &be_native_module(autoconf),
-#endif // USE_AUTOCONF
- &be_native_module(tapp),
- &be_native_module(gpio),
-#ifdef USE_DISPLAY
- &be_native_module(display),
-#endif // USE_DISPLAY
-#ifdef USE_LIGHT
- &be_native_module(light),
-#endif
-
-#ifdef USE_UNISHOX_COMPRESSION
- &be_native_module(unishox),
-#endif // USE_UNISHOX_COMPRESSION
- &be_native_module(animate),
-
-#ifdef USE_LVGL
- &be_native_module(lv),
-#endif // USE_LVGL
-#ifdef USE_ENERGY_SENSOR
- &be_native_module(energy),
-#endif // USE_ENERGY_SENSOR
-#ifdef USE_WEBSERVER
- &be_native_module(webserver),
-#endif // USE_WEBSERVER
- &be_native_module(flash),
-
-
- /* user-defined modules register end */
- NULL /* do not remove */
-};
-
-#ifdef ESP32
-extern void be_load_tasmota_ntvlib(bvm *vm);
-extern void be_load_wirelib(bvm *vm);
-extern void be_load_onewirelib(bvm *vm);
-extern void be_load_serial_lib(bvm *vm);
-extern void be_load_Driver_class(bvm *vm);
-extern void be_load_Timer_class(bvm *vm);
-extern void be_load_I2C_Driver_class(bvm *vm);
-extern void be_load_AXP192_class(bvm *vm);
-extern void be_load_md5_lib(bvm *vm);
-extern void be_load_webclient_lib(bvm *vm);
-extern void be_load_tcpclient_lib(bvm *vm);
-extern void be_load_crypto_lib(bvm *vm);
-extern void be_load_Leds_ntv_class(bvm *vm);
-extern void be_load_Leds_class(bvm *vm);
-extern void be_load_Leds_animator_class(bvm *vm);
-
-extern void be_load_ctypes_lib(bvm *vm);
-extern void be_load_ctypes_energy_definitions_lib(bvm *vm);
-
-#ifdef USE_I2S_AUDIO_BERRY
-extern void be_load_driver_audio_lib(bvm *vm);
-#endif
-
-#ifdef USE_LVGL
-extern void be_load_lv_color_class(bvm *vm);
-extern void be_load_lv_font_class(bvm *vm);
-extern void be_load_LVGL_glob_class(bvm *vm);
-// custom widgets
-extern void be_load_lv_signal_bars_class(bvm *vm);
-extern void be_load_lv_wifi_bars_class(bvm *vm);
-extern void be_load_lv_wifi_bars_icon_class(bvm *vm);
-extern void be_load_lv_signal_arcs_class(bvm *vm);
-extern void be_load_lv_wifi_arcs_class(bvm *vm);
-extern void be_load_lv_wifi_arcs_icon_class(bvm *vm);
-extern void be_load_lv_clock_icon_class(bvm *vm);
-#endif// USE_LVGL
-
-/* this code loads the native class definitions */
-BERRY_API void be_load_custom_libs(bvm *vm)
-{
- (void)vm; /* prevent a compiler warning */
-
- /* add here custom libs */
-#if !BE_USE_PRECOMPILED_OBJECT
- /* be_load_xxxlib(vm); */
-#endif
- be_load_Timer_class(vm);
- be_load_tasmota_ntvlib(vm);
- be_load_Driver_class(vm);
- be_load_md5_lib(vm);
- be_load_serial_lib(vm);
- be_load_ctypes_lib(vm);
-#ifdef USE_ALEXA_AVS
- be_load_crypto_lib(vm);
-#endif
-#ifdef USE_I2C
- be_load_wirelib(vm);
- be_load_I2C_Driver_class(vm);
- be_load_AXP192_class(vm);
-#endif // USE_I2C
-#ifdef USE_ENERGY_SENSOR
- be_load_ctypes_energy_definitions_lib(vm);
-#endif // USE_ENERGY_SENSOR
-#ifdef USE_WEBCLIENT
- be_load_webclient_lib(vm);
- be_load_tcpclient_lib(vm);
-#endif // USE_WEBCLIENT
-#if defined(USE_ONEWIRE) || defined(USE_DS18x20)
- be_load_onewirelib(vm);
-#endif
-#ifdef USE_WS2812
- be_load_Leds_ntv_class(vm);
- be_load_Leds_class(vm);
- be_load_Leds_animator_class(vm);
-#endif // USE_WS2812
-#ifdef USE_I2S_AUDIO_BERRY
- be_load_driver_audio_lib(vm);
-#endif
-#ifdef USE_LVGL
- // LVGL
- be_load_lv_color_class(vm);
- be_load_lv_font_class(vm);
-
- be_load_LVGL_glob_class(vm);
- // custom widgets
- be_load_lv_signal_bars_class(vm);
- be_load_lv_wifi_bars_class(vm);
- be_load_lv_wifi_bars_icon_class(vm);
- be_load_lv_signal_arcs_class(vm);
- be_load_lv_wifi_arcs_class(vm);
- be_load_lv_wifi_arcs_icon_class(vm);
- be_load_lv_clock_icon_class(vm);
-#endif // USE_LVGL
-}
-#endif
diff --git a/lib/libesp32/berry/default/be_onewire_lib.c b/lib/libesp32/berry/default/be_onewire_lib.c
deleted file mode 100644
index 838e6ccf9..000000000
--- a/lib/libesp32/berry/default/be_onewire_lib.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import wire`
- *
- * 2 wire communication - I2C
- *******************************************************************/
-#include "be_constobj.h"
-
-#if defined(USE_ONEWIRE) || defined(USE_DS18x20)
-
-extern int b_onewire_init(bvm *vm);
-extern int b_onewire_deinit(bvm *vm);
-
-extern int b_onewire_reset(bvm *vm);
-extern int b_onewire_select(bvm *vm);
-extern int b_onewire_skip(bvm *vm);
-extern int b_onewire_depower(bvm *vm);
-
-extern int b_onewire_write(bvm *vm);
-extern int b_onewire_read(bvm *vm);
-
-extern int b_onewire_reset_search(bvm *vm);
-extern int b_onewire_target_search(bvm *vm);
-extern int b_onewire_search(bvm *vm);
-
-#include "../generate/be_fixed_be_class_tasmota_onewire.h"
-
-void be_load_onewirelib(bvm *vm) {
- be_pushntvclass(vm, &be_class_tasmota_onewire);
- be_setglobal(vm, "OneWire");
- be_pop(vm, 1);
-}
-
-/* @const_object_info_begin
-
-class be_class_tasmota_onewire (scope: global, name: OneWire) {
- .p, var
-
- init, func(b_onewire_init)
- deinit, func(b_onewire_deinit)
-
- reset, func(b_onewire_reset)
- select, func(b_onewire_select)
- skip, func(b_onewire_skip)
- depower, func(b_onewire_depower)
-
- write, func(b_onewire_write)
- read, func(b_onewire_read)
-
- reset_search, func(b_onewire_reset_search)
- target_search, func(b_onewire_target_search)
- search, func(b_onewire_search)
-}
-@const_object_info_end */
-
-#endif // defined(USE_ONEWIRE) || defined(USE_DS18x20)
diff --git a/lib/libesp32/berry/default/be_path_tasmota_lib.c b/lib/libesp32/berry/default/be_path_tasmota_lib.c
deleted file mode 100644
index 81711a053..000000000
--- a/lib/libesp32/berry/default/be_path_tasmota_lib.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/********************************************************************
-** Copyright (c) 2018-2020 Guan Wenliang
-** This file is part of the Berry default interpreter.
-** skiars@qq.com, https://github.com/Skiars/berry
-** See Copyright Notice in the LICENSE file or at
-** https://github.com/Skiars/berry/blob/master/LICENSE
-********************************************************************/
-
-/********************************************************************
- * Berry module `path`
- *
- * Minimal version of `import path`
- *
- *******************************************************************/
-#include "be_object.h"
-#include "be_strlib.h"
-#include "be_mem.h"
-#include "be_sys.h"
-#include
-
-extern int m_path_listdir(bvm *vm);
-
-static int m_path_exists(bvm *vm)
-{
- const char *path = NULL;
- if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
- path = be_tostring(vm, 1);
- be_pushbool(vm, be_isexist(path));
- } else {
- be_pushbool(vm, bfalse);
- }
- be_return(vm);
-}
-extern time_t be_last_modified(void *hfile);
-
-static int m_path_last_modified(bvm *vm)
-{
- if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
- const char *path = be_tostring(vm, 1);
- void * f = be_fopen(path, "r");
- if (f) {
- be_pushint(vm, be_last_modified(f));
- be_fclose(f);
- be_return(vm);
- }
- }
- be_return_nil(vm);
-}
-
-static int m_path_remove(bvm *vm)
-{
- const char *path = NULL;
- if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
- path = be_tostring(vm, 1);
- be_pushbool(vm, be_unlink(path));
- } else {
- be_pushbool(vm, bfalse);
- }
- be_return(vm);
-}
-
-/* @const_object_info_begin
-module path (scope: global, file: tasmota_path) {
- exists, func(m_path_exists)
- last_modified, func(m_path_last_modified)
- listdir, func(m_path_listdir)
- remove, func(m_path_remove)
-}
-@const_object_info_end */
-#include "../generate/be_fixed_tasmota_path.h"
diff --git a/lib/libesp32/berry/default/be_persist_lib.c b/lib/libesp32/berry/default/be_persist_lib.c
deleted file mode 100644
index 0581081c7..000000000
--- a/lib/libesp32/berry/default/be_persist_lib.c
+++ /dev/null
@@ -1,703 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import power`
- *
- * read power values
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: json_fdump_map
-********************************************************************/
-be_local_closure(Persist_json_fdump_map, /* name */
- be_nested_proto(
- 13, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(json),
- /* K1 */ be_nested_str(write),
- /* K2 */ be_nested_str(_X7B),
- /* K3 */ be_nested_str(keys),
- /* K4 */ be_nested_str(dump),
- /* K5 */ be_nested_str(_X3A),
- /* K6 */ be_nested_str(json_fdump_any),
- /* K7 */ be_nested_str(_X2C),
- /* K8 */ be_nested_str(stop_iteration),
- /* K9 */ be_nested_str(_X7D),
- }),
- &be_const_str_json_fdump_map,
- &be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x8C100301, // 0001 GETMET R4 R1 K1
- 0x58180002, // 0002 LDCONST R6 K2
- 0x7C100400, // 0003 CALL R4 2
- 0x4C100000, // 0004 LDNIL R4
- 0x60140010, // 0005 GETGBL R5 G16
- 0x8C180503, // 0006 GETMET R6 R2 K3
- 0x7C180200, // 0007 CALL R6 1
- 0x7C140200, // 0008 CALL R5 1
- 0xA8020017, // 0009 EXBLK 0 #0022
- 0x5C180A00, // 000A MOVE R6 R5
- 0x7C180000, // 000B CALL R6 0
- 0x4C1C0000, // 000C LDNIL R7
- 0x201C0807, // 000D NE R7 R4 R7
- 0x781E0002, // 000E JMPF R7 #0012
- 0x8C1C0301, // 000F GETMET R7 R1 K1
- 0x5C240800, // 0010 MOVE R9 R4
- 0x7C1C0400, // 0011 CALL R7 2
- 0x8C1C0301, // 0012 GETMET R7 R1 K1
- 0x8C240704, // 0013 GETMET R9 R3 K4
- 0x602C0008, // 0014 GETGBL R11 G8
- 0x5C300C00, // 0015 MOVE R12 R6
- 0x7C2C0200, // 0016 CALL R11 1
- 0x7C240400, // 0017 CALL R9 2
- 0x7C1C0400, // 0018 CALL R7 2
- 0x8C1C0301, // 0019 GETMET R7 R1 K1
- 0x58240005, // 001A LDCONST R9 K5
- 0x7C1C0400, // 001B CALL R7 2
- 0x8C1C0106, // 001C GETMET R7 R0 K6
- 0x5C240200, // 001D MOVE R9 R1
- 0x94280406, // 001E GETIDX R10 R2 R6
- 0x7C1C0600, // 001F CALL R7 3
- 0x58100007, // 0020 LDCONST R4 K7
- 0x7001FFE7, // 0021 JMP #000A
- 0x58140008, // 0022 LDCONST R5 K8
- 0xAC140200, // 0023 CATCH R5 1 0
- 0xB0080000, // 0024 RAISE 2 R0 R0
- 0x8C140301, // 0025 GETMET R5 R1 K1
- 0x581C0009, // 0026 LDCONST R7 K9
- 0x7C140400, // 0027 CALL R5 2
- 0x80000000, // 0028 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: setmember
-********************************************************************/
-be_local_closure(Persist_setmember, /* name */
- be_nested_proto(
- 4, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_p),
- /* K1 */ be_nested_str(_dirty),
- }),
- &be_const_str_setmember,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x980C0202, // 0001 SETIDX R3 R1 R2
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x90020203, // 0003 SETMBR R0 K1 R3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: zero
-********************************************************************/
-be_local_closure(Persist_zero, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_p),
- /* K1 */ be_nested_str(_dirty),
- }),
- &be_const_str_zero,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x60040013, // 0000 GETGBL R1 G19
- 0x7C040000, // 0001 CALL R1 0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x50040200, // 0003 LDBOOL R1 1 0
- 0x90020201, // 0004 SETMBR R0 K1 R1
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: member
-********************************************************************/
-be_local_closure(Persist_member, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_p),
- /* K1 */ be_nested_str(find),
- }),
- &be_const_str_member,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: json_fdump
-********************************************************************/
-be_local_closure(Persist_json_fdump, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(json),
- /* K1 */ be_nested_str(_p),
- /* K2 */ be_nested_str(json_fdump_map),
- /* K3 */ be_nested_str(internal_error),
- /* K4 */ be_nested_str(persist_X2E_p_X20is_X20not_X20a_X20map),
- }),
- &be_const_str_json_fdump,
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x600C000F, // 0001 GETGBL R3 G15
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x60140013, // 0003 GETGBL R5 G19
- 0x7C0C0400, // 0004 CALL R3 2
- 0x780E0004, // 0005 JMPF R3 #000B
- 0x8C0C0102, // 0006 GETMET R3 R0 K2
- 0x5C140200, // 0007 MOVE R5 R1
- 0x88180101, // 0008 GETMBR R6 R0 K1
- 0x7C0C0600, // 0009 CALL R3 3
- 0x70020000, // 000A JMP #000C
- 0xB0060704, // 000B RAISE 1 K3 K4
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove
-********************************************************************/
-be_local_closure(Persist_remove, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* 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(_p),
- /* K1 */ be_nested_str(remove),
- /* K2 */ be_nested_str(_dirty),
- }),
- &be_const_str_remove,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x50080200, // 0004 LDBOOL R2 1 0
- 0x90020402, // 0005 SETMBR R0 K2 R2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: json_fdump_any
-********************************************************************/
-be_local_closure(Persist_json_fdump_any, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(json),
- /* K1 */ be_nested_str(json_fdump_map),
- /* K2 */ be_nested_str(json_fdump_list),
- /* K3 */ be_nested_str(write),
- /* K4 */ be_nested_str(dump),
- }),
- &be_const_str_json_fdump_any,
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x6010000F, // 0001 GETGBL R4 G15
- 0x5C140400, // 0002 MOVE R5 R2
- 0x60180013, // 0003 GETGBL R6 G19
- 0x7C100400, // 0004 CALL R4 2
- 0x78120004, // 0005 JMPF R4 #000B
- 0x8C100101, // 0006 GETMET R4 R0 K1
- 0x5C180200, // 0007 MOVE R6 R1
- 0x5C1C0400, // 0008 MOVE R7 R2
- 0x7C100600, // 0009 CALL R4 3
- 0x7002000E, // 000A JMP #001A
- 0x6010000F, // 000B GETGBL R4 G15
- 0x5C140400, // 000C MOVE R5 R2
- 0x60180012, // 000D GETGBL R6 G18
- 0x7C100400, // 000E CALL R4 2
- 0x78120004, // 000F JMPF R4 #0015
- 0x8C100102, // 0010 GETMET R4 R0 K2
- 0x5C180200, // 0011 MOVE R6 R1
- 0x5C1C0400, // 0012 MOVE R7 R2
- 0x7C100600, // 0013 CALL R4 3
- 0x70020004, // 0014 JMP #001A
- 0x8C100303, // 0015 GETMET R4 R1 K3
- 0x8C180704, // 0016 GETMET R6 R3 K4
- 0x5C200400, // 0017 MOVE R8 R2
- 0x7C180400, // 0018 CALL R6 2
- 0x7C100400, // 0019 CALL R4 2
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save
-********************************************************************/
-be_local_closure(Persist_save, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(_filename),
- /* K1 */ be_nested_str(w),
- /* K2 */ be_nested_str(json_fdump),
- /* K3 */ be_nested_str(close),
- /* K4 */ be_nested_str(write),
- /* K5 */ be_nested_str(_X7B_X7D),
- /* K6 */ be_nested_str(_dirty),
- }),
- &be_const_str_save,
- &be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0xA802000B, // 0001 EXBLK 0 #000E
- 0x60080011, // 0002 GETGBL R2 G17
- 0x880C0100, // 0003 GETMBR R3 R0 K0
- 0x58100001, // 0004 LDCONST R4 K1
- 0x7C080400, // 0005 CALL R2 2
- 0x5C040400, // 0006 MOVE R1 R2
- 0x8C080102, // 0007 GETMET R2 R0 K2
- 0x5C100200, // 0008 MOVE R4 R1
- 0x7C080400, // 0009 CALL R2 2
- 0x8C080303, // 000A GETMET R2 R1 K3
- 0x7C080200, // 000B CALL R2 1
- 0xA8040001, // 000C EXBLK 1 1
- 0x70020013, // 000D JMP #0022
- 0xAC080002, // 000E CATCH R2 0 2
- 0x70020010, // 000F JMP #0021
- 0x4C100000, // 0010 LDNIL R4
- 0x20100204, // 0011 NE R4 R1 R4
- 0x78120001, // 0012 JMPF R4 #0015
- 0x8C100303, // 0013 GETMET R4 R1 K3
- 0x7C100200, // 0014 CALL R4 1
- 0x60100011, // 0015 GETGBL R4 G17
- 0x88140100, // 0016 GETMBR R5 R0 K0
- 0x58180001, // 0017 LDCONST R6 K1
- 0x7C100400, // 0018 CALL R4 2
- 0x5C040800, // 0019 MOVE R1 R4
- 0x8C100304, // 001A GETMET R4 R1 K4
- 0x58180005, // 001B LDCONST R6 K5
- 0x7C100400, // 001C CALL R4 2
- 0x8C100303, // 001D GETMET R4 R1 K3
- 0x7C100200, // 001E CALL R4 1
- 0xB0040403, // 001F RAISE 1 R2 R3
- 0x70020000, // 0020 JMP #0022
- 0xB0080000, // 0021 RAISE 2 R0 R0
- 0x50080000, // 0022 LDBOOL R2 0 0
- 0x90020C02, // 0023 SETMBR R0 K6 R2
- 0x80000000, // 0024 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: load
-********************************************************************/
-be_local_closure(Persist_load, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str(json),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_nested_str(exists),
- /* K3 */ be_nested_str(_filename),
- /* K4 */ be_nested_str(r),
- /* K5 */ be_nested_str(load),
- /* K6 */ be_nested_str(read),
- /* K7 */ be_nested_str(close),
- /* K8 */ be_nested_str(_p),
- /* K9 */ be_nested_str(BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson),
- /* K10 */ be_nested_str(_dirty),
- /* K11 */ be_nested_str(save),
- }),
- &be_const_str_load,
- &be_const_str_solidified,
- ( &(const binstruction[49]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x4C0C0000, // 0002 LDNIL R3
- 0x4C100000, // 0003 LDNIL R4
- 0x8C140502, // 0004 GETMET R5 R2 K2
- 0x881C0103, // 0005 GETMBR R7 R0 K3
- 0x7C140400, // 0006 CALL R5 2
- 0x78160025, // 0007 JMPF R5 #002E
- 0xA802000D, // 0008 EXBLK 0 #0017
- 0x60140011, // 0009 GETGBL R5 G17
- 0x88180103, // 000A GETMBR R6 R0 K3
- 0x581C0004, // 000B LDCONST R7 K4
- 0x7C140400, // 000C CALL R5 2
- 0x5C0C0A00, // 000D MOVE R3 R5
- 0x8C140305, // 000E GETMET R5 R1 K5
- 0x8C1C0706, // 000F GETMET R7 R3 K6
- 0x7C1C0200, // 0010 CALL R7 1
- 0x7C140400, // 0011 CALL R5 2
- 0x5C100A00, // 0012 MOVE R4 R5
- 0x8C140707, // 0013 GETMET R5 R3 K7
- 0x7C140200, // 0014 CALL R5 1
- 0xA8040001, // 0015 EXBLK 1 1
- 0x70020009, // 0016 JMP #0021
- 0xAC140002, // 0017 CATCH R5 0 2
- 0x70020006, // 0018 JMP #0020
- 0x4C1C0000, // 0019 LDNIL R7
- 0x201C0607, // 001A NE R7 R3 R7
- 0x781E0001, // 001B JMPF R7 #001E
- 0x8C1C0707, // 001C GETMET R7 R3 K7
- 0x7C1C0200, // 001D CALL R7 1
- 0xB0040A06, // 001E RAISE 1 R5 R6
- 0x70020000, // 001F JMP #0021
- 0xB0080000, // 0020 RAISE 2 R0 R0
- 0x6014000F, // 0021 GETGBL R5 G15
- 0x5C180800, // 0022 MOVE R6 R4
- 0x601C0013, // 0023 GETGBL R7 G19
- 0x7C140400, // 0024 CALL R5 2
- 0x78160001, // 0025 JMPF R5 #0028
- 0x90021004, // 0026 SETMBR R0 K8 R4
- 0x70020002, // 0027 JMP #002B
- 0x60140001, // 0028 GETGBL R5 G1
- 0x58180009, // 0029 LDCONST R6 K9
- 0x7C140200, // 002A CALL R5 1
- 0x50140000, // 002B LDBOOL R5 0 0
- 0x90021405, // 002C SETMBR R0 K10 R5
- 0x70020001, // 002D JMP #0030
- 0x8C14010B, // 002E GETMET R5 R0 K11
- 0x7C140200, // 002F CALL R5 1
- 0x80000000, // 0030 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find
-********************************************************************/
-be_local_closure(Persist_find, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_p),
- /* K1 */ be_nested_str(find),
- }),
- &be_const_str_find,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x5C180400, // 0003 MOVE R6 R2
- 0x7C0C0600, // 0004 CALL R3 3
- 0x80040600, // 0005 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Persist_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(_filename),
- /* K1 */ be_nested_str(_persist_X2Ejson),
- /* K2 */ be_nested_str(_p),
- /* K3 */ be_nested_str(copy),
- /* K4 */ be_nested_str(load),
- /* K5 */ be_nested_str(_dirty),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x90020101, // 0000 SETMBR R0 K0 K1
- 0x6008000F, // 0001 GETGBL R2 G15
- 0x5C0C0200, // 0002 MOVE R3 R1
- 0x60100013, // 0003 GETGBL R4 G19
- 0x7C080400, // 0004 CALL R2 2
- 0x780A0003, // 0005 JMPF R2 #000A
- 0x8C080303, // 0006 GETMET R2 R1 K3
- 0x7C080200, // 0007 CALL R2 1
- 0x90020402, // 0008 SETMBR R0 K2 R2
- 0x70020002, // 0009 JMP #000D
- 0x60080013, // 000A GETGBL R2 G19
- 0x7C080000, // 000B CALL R2 0
- 0x90020402, // 000C SETMBR R0 K2 R2
- 0x8C080104, // 000D GETMET R2 R0 K4
- 0x88100102, // 000E GETMBR R4 R0 K2
- 0x88140100, // 000F GETMBR R5 R0 K0
- 0x7C080600, // 0010 CALL R2 3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x90020A02, // 0012 SETMBR R0 K5 R2
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: json_fdump_list
-********************************************************************/
-be_local_closure(Persist_json_fdump_list, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(json),
- /* K1 */ be_nested_str(write),
- /* K2 */ be_nested_str(_X5B),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str(_X2C),
- /* K5 */ be_nested_str(json_fdump_any),
- /* K6 */ be_const_int(1),
- /* K7 */ be_nested_str(_X5D),
- }),
- &be_const_str_json_fdump_list,
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x8C100301, // 0001 GETMET R4 R1 K1
- 0x58180002, // 0002 LDCONST R6 K2
- 0x7C100400, // 0003 CALL R4 2
- 0x58100003, // 0004 LDCONST R4 K3
- 0x6014000C, // 0005 GETGBL R5 G12
- 0x5C180400, // 0006 MOVE R6 R2
- 0x7C140200, // 0007 CALL R5 1
- 0x14140805, // 0008 LT R5 R4 R5
- 0x7816000A, // 0009 JMPF R5 #0015
- 0x24140903, // 000A GT R5 R4 K3
- 0x78160002, // 000B JMPF R5 #000F
- 0x8C140301, // 000C GETMET R5 R1 K1
- 0x581C0004, // 000D LDCONST R7 K4
- 0x7C140400, // 000E CALL R5 2
- 0x8C140105, // 000F GETMET R5 R0 K5
- 0x5C1C0200, // 0010 MOVE R7 R1
- 0x94200404, // 0011 GETIDX R8 R2 R4
- 0x7C140600, // 0012 CALL R5 3
- 0x00100906, // 0013 ADD R4 R4 K6
- 0x7001FFEF, // 0014 JMP #0005
- 0x8C140301, // 0015 GETMET R5 R1 K1
- 0x581C0007, // 0016 LDCONST R7 K7
- 0x7C140400, // 0017 CALL R5 2
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: has
-********************************************************************/
-be_local_closure(Persist_has, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_p),
- /* K1 */ be_nested_str(has),
- }),
- &be_const_str_has,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Persist
-********************************************************************/
-be_local_class(Persist,
- 3,
- NULL,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(has, 6), be_const_closure(Persist_has_closure) },
- { be_const_key(setmember, -1), be_const_closure(Persist_setmember_closure) },
- { be_const_key(remove, -1), be_const_closure(Persist_remove_closure) },
- { be_const_key(zero, 0), be_const_closure(Persist_zero_closure) },
- { be_const_key(json_fdump, -1), be_const_closure(Persist_json_fdump_closure) },
- { be_const_key(json_fdump_list, 2), be_const_closure(Persist_json_fdump_list_closure) },
- { be_const_key(init, 15), be_const_closure(Persist_init_closure) },
- { be_const_key(find, -1), be_const_closure(Persist_find_closure) },
- { be_const_key(save, -1), be_const_closure(Persist_save_closure) },
- { be_const_key(json_fdump_any, 12), be_const_closure(Persist_json_fdump_any_closure) },
- { be_const_key(_p, 7), be_const_var(1) },
- { be_const_key(_filename, -1), be_const_var(0) },
- { be_const_key(load, -1), be_const_closure(Persist_load_closure) },
- { be_const_key(json_fdump_map, 5), be_const_closure(Persist_json_fdump_map_closure) },
- { be_const_key(_dirty, -1), be_const_var(2) },
- { be_const_key(member, -1), be_const_closure(Persist_member_closure) },
- })),
- be_str_literal("Persist")
-);
-
-/********************************************************************
-** Solidified function: _anonymous_
-********************************************************************/
-be_local_closure(persist__anonymous_, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_class(be_class_Persist),
- }),
- &be_const_str__anonymous_,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0xB4000000, // 0001 CLASS K0
- 0x5C080200, // 0002 MOVE R2 R1
- 0x7C080000, // 0003 CALL R2 0
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified module: persist
-********************************************************************/
-be_local_module(persist,
- "persist",
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(persist__anonymous__closure) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(persist);
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_port.cpp b/lib/libesp32/berry/default/be_port.cpp
deleted file mode 100644
index 5da10f47e..000000000
--- a/lib/libesp32/berry/default/be_port.cpp
+++ /dev/null
@@ -1,574 +0,0 @@
-/********************************************************************
-** Copyright (c) 2018-2020 Guan Wenliang
-** This file is part of the Berry default interpreter.
-** skiars@qq.com, https://github.com/Skiars/berry
-** See Copyright Notice in the LICENSE file or at
-** https://github.com/Skiars/berry/blob/master/LICENSE
-********************************************************************/
-#include "berry.h"
-#include "be_mem.h"
-#include "be_sys.h"
-// #include
-#include
-#include
-
-// from https://github.com/eyalroz/cpp-static-block
-#include "static_block.hpp"
-
-// Local pointer for file managment
-#ifdef USE_UFILESYS
- #include
- #include "ZipReadFS.h"
- extern FS *ffsp;
- FS zip_ufsp(ZipReadFSImplPtr(new ZipReadFSImpl(&ffsp)));
-#endif // USE_UFILESYS
-
-/* this file contains configuration for the file system. */
-
-/* standard input and output */
-extern "C" {
- int strncmp_PP(const char * str1P, const char * str2P, size_t size)
- {
- int result = 0;
-
- while (size > 0)
- {
- char ch1 = pgm_read_byte(str1P++);
- char ch2 = pgm_read_byte(str2P++);
- result = ch1 - ch2;
- if (result != 0 || ch2 == '\0')
- {
- break;
- }
-
- size--;
- }
-
- return result;
- }
-
- //
- char * strchr_P(const char *s, int c) {
- do {
- if (pgm_read_byte(s) == c) {
- return (char*)s;
- }
- } while (pgm_read_byte(s++));
- return (0);
- }
-}
-
-// We need to create a local buffer, since we might mess up mqtt_data
-#ifndef BERRY_LOGSZ
-#define BERRY_LOGSZ 700
-#endif
-
-static char * log_berry_buffer = nullptr;
-static_block {
- log_berry_buffer = (char*) malloc(BERRY_LOGSZ);
- if (log_berry_buffer) log_berry_buffer[0] = 0;
-}
-extern void berry_log(const char * berry_buf);
-
-BERRY_API void be_writebuffer(const char *buffer, size_t length)
-{
- if (!log_berry_buffer) return;
- if (buffer == nullptr || length == 0) { return; }
- uint32_t idx = 0;
- while (idx < length) {
- int32_t cr_pos = -1;
- // find next occurence of '\n' or '\r'
- for (uint32_t i = idx; i < length; i++) {
- if ((pgm_read_byte(&buffer[i]) == '\n') || (pgm_read_byte(&buffer[i]) == '\r')) {
- cr_pos = i;
- break;
- }
- }
- uint32_t chars_to_append = (cr_pos >= 0) ? cr_pos - idx : length - idx; // note cr_pos < length
- snprintf(log_berry_buffer, BERRY_LOGSZ, "%s%.*s", log_berry_buffer, chars_to_append, &buffer[idx]); // append at most `length` chars
- if (cr_pos >= 0) {
- // flush
- berry_log(log_berry_buffer);
- log_berry_buffer[0] = 0; // clear string
- }
- idx += chars_to_append + 1; // skip '\n'
- }
- // Serial.write(buffer, length);
- // be_fwrite(stdout, buffer, length);
-}
-
-
-extern "C" {
- int m_path_listdir(bvm *vm)
- {
- if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
- const char *path = be_tostring(vm, 1);
- be_newobject(vm, "list");
-
- File dir = ffsp->open(path, "r");
- if (dir) {
- dir.rewindDirectory();
- while (1) {
- File entry = dir.openNextFile();
- if (!entry) {
- break;
- }
- const char * fn = entry.name();
- if (strcmp(fn, ".") && strcmp(fn, "..")) {
- be_pushstring(vm, fn);
- be_data_push(vm, -2);
- be_pop(vm, 1);
- }
-
- }
- }
- be_pop(vm, 1);
- be_return(vm);
-
- }
- be_return_nil(vm);
- }
-}
-
-BERRY_API char* be_readstring(char *buffer, size_t size)
-{
- return be_fgets(stdin, buffer, (int)size);
-}
-
-/* use the standard library implementation file API. */
-
-void* be_fopen(const char *filename, const char *modes)
-{
-#ifdef USE_UFILESYS
- if (filename != nullptr && modes != nullptr) {
- char fname2[strlen(filename) + 2];
- if (filename[0] == '/') {
- strcpy(fname2, filename); // copy unchanged
- } else {
- fname2[0] = '/';
- strcpy(fname2 + 1, filename); // prepend with '/'
- }
- // Serial.printf("be_fopen filename=%s, modes=%s\n", filename, modes);
- File f = zip_ufsp.open(fname2, modes); // returns an object, not a pointer
- if (f) {
- File * f_ptr = new File(f); // copy to dynamic object
- *f_ptr = f; // TODO is this necessary?
- return f_ptr;
- }
- }
-#endif // USE_UFILESYS
- return nullptr;
- // return fopen(filename, modes);
-}
-
-// Tasmota specific, get the underlying Arduino File
-File * be_get_arduino_file(void *hfile)
-{
-#ifdef USE_UFILESYS
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- return f_ptr;
- }
-#endif // USE_UFILESYS
- return nullptr;
- // return fopen(filename, modes);
-}
-
-int be_fclose(void *hfile)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fclose\n");
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- f_ptr->close();
- delete f_ptr;
- return 0;
- }
-#endif // USE_UFILESYS
- return -1;
- // return fclose(hfile);
-}
-
-size_t be_fwrite(void *hfile, const void *buffer, size_t length)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fwrite %d\n", length);
- if (hfile != nullptr && buffer != nullptr) {
- File * f_ptr = (File*) hfile;
- return f_ptr->write((const uint8_t*) buffer, length);
- }
-#endif // USE_UFILESYS
- return 0;
- // return fwrite(buffer, 1, length, hfile);
-}
-
-size_t be_fread(void *hfile, void *buffer, size_t length)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fread %d\n", length);
- if (hfile != nullptr && buffer != nullptr) {
- File * f_ptr = (File*) hfile;
- int32_t ret = f_ptr->read((uint8_t*) buffer, length);
- if (ret >= 0) {
- // Serial.printf("be_fread ret = %d\n", ret);
- return ret;
- }
- }
-#endif // USE_UFILESYS
- return 0;
- // return fread(buffer, 1, length, hfile);
-}
-
-char* be_fgets(void *hfile, void *buffer, int size)
-{
-#ifdef USE_UFILESYS
- if (size <= 2) { return nullptr; } // can't work if size is 2 or less
- // Serial.printf("be_fgets size=%d hfile=%p buf=%p\n", size, hfile, buffer);
- uint8_t * buf = (uint8_t*) buffer;
- if (hfile != nullptr && buffer != nullptr && size > 0) {
- File * f_ptr = (File*) hfile;
- int ret = f_ptr->readBytesUntil('\n', buf, size - 2);
- // Serial.printf("be_fgets ret=%d\n", ret);
- if (ret >= 0) {
- buf[ret] = 0; // add string terminator
- if (ret > 0 && ret < size - 2) {
- buf[ret] = '\n';
- buf[ret+1] = 0;
- }
- return (char*) buffer;
- }
- }
-#endif // USE_UFILESYS
- return nullptr;
- // return fgets(buffer, size, hfile);
-}
-
-int be_fseek(void *hfile, long offset)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fseek %d\n", offset);
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- if (f_ptr->seek(offset)) {
- return 0; // success
- }
- }
-#endif // USE_UFILESYS
- return -1;
- // return fseek(hfile, offset, SEEK_SET);
-}
-
-long int be_ftell(void *hfile)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_ftell\n");
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- return f_ptr->position();
- }
-#endif // USE_UFILESYS
- return 0;
- // return ftell(hfile);
-}
-
-long int be_fflush(void *hfile)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fflush\n");
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- f_ptr->flush();
- }
-#endif // USE_UFILESYS
- return 0;
- // return fflush(hfile);
-}
-
-size_t be_fsize(void *hfile)
-{
-#ifdef USE_UFILESYS
- // Serial.printf("be_fsize\n");
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- return f_ptr->size();
- }
- // long int size, offset = be_ftell(hfile);
- // fseek(hfile, 0L, SEEK_END);
- // size = ftell(hfile);
- // fseek(hfile, offset, SEEK_SET);
- // return size;
-#endif // USE_UFILESYS
- return 0;
-}
-
-extern "C" time_t be_last_modified(void *hfile)
-{
-#ifdef USE_UFILESYS
- if (hfile != nullptr) {
- File * f_ptr = (File*) hfile;
- return f_ptr->getLastWrite();
- }
-#endif // USE_UFILESYS
- return 0;
-}
-
-int be_isexist(const char *filename)
-{
-#ifdef USE_UFILESYS
- char fname2[strlen(filename) + 2];
- if (filename[0] == '/') {
- strcpy(fname2, filename); // copy unchanged
- } else {
- fname2[0] = '/';
- strcpy(fname2 + 1, filename); // prepend with '/'
- }
- return zip_ufsp.exists(fname2);
-#endif // USE_UFILESYS
- return 0;
-}
-
-int be_unlink(const char *filename)
-{
-#ifdef USE_UFILESYS
- char fname2[strlen(filename) + 2];
- if (filename[0] == '/') {
- strcpy(fname2, filename); // copy unchanged
- } else {
- fname2[0] = '/';
- strcpy(fname2 + 1, filename); // prepend with '/'
- }
- return zip_ufsp.remove(fname2);
-#endif // USE_UFILESYS
- return 0;
-}
-
-#if BE_USE_FILE_SYSTEM
-#if defined(USE_FATFS) /* FatFs */
-
-int be_isdir(const char *path)
-{
- FILINFO fno;
- FRESULT fr = f_stat(path, &fno);
- return fr == FR_OK && fno.fattrib & AM_DIR;
-}
-
-int be_isfile(const char *path)
-{
- FILINFO fno;
- FRESULT fr = f_stat(path, &fno);
- return fr == FR_OK && !(fno.fattrib & AM_DIR);
-}
-
-int be_isexist(const char *path)
-{
- FILINFO fno;
- return f_stat(path, &fno) == FR_OK;
-}
-
-char* be_getcwd(char *buf, size_t size)
-{
- FRESULT fr = f_getcwd(buf, (UINT)size);
- return fr == FR_OK ? buf : NULL;
-}
-
-int be_chdir(const char *path)
-{
- return f_chdir(path);
-}
-
-int be_mkdir(const char *path)
-{
- return f_mkdir(path);
-}
-
-int be_unlink(const char *filename)
-{
- return f_unlink(filename);
-}
-
-int be_dirfirst(bdirinfo *info, const char *path)
-{
- info->dir = be_os_malloc(sizeof(DIR));
- info->file = be_os_malloc(sizeof(FILINFO));
- if (info->dir && info->file) {
- FRESULT fr = f_opendir(info->dir, path);
- return fr == FR_OK ? be_dirnext(info) : 1;
- }
- be_os_free(info->dir);
- be_os_free(info->file);
- info->dir = NULL;
- info->file = NULL;
- return 1;
-}
-
-int be_dirnext(bdirinfo *info)
-{
- FRESULT fr = f_readdir(info->dir, info->file);
- info->name = ((FILINFO *)info->file)->fname;
- return fr != FR_OK || *info->name == '\0';
-}
-
-int be_dirclose(bdirinfo *info)
-{
- if (info->dir) {
- int res = f_closedir(info->dir) != FR_OK;
- be_os_free(info->dir);
- be_os_free(info->file);
- return res;
- }
- return 1;
-}
-
-#elif defined(_MSC_VER) /* MSVC*/
-
-#include
-#include
-#include
-
-int be_isdir(const char *path)
-{
- DWORD type = GetFileAttributes(path);
- return type != INVALID_FILE_ATTRIBUTES
- && (type & FILE_ATTRIBUTE_DIRECTORY) != 0;
-}
-
-int be_isfile(const char *path)
-{
- DWORD type = GetFileAttributes(path);
- return type != INVALID_FILE_ATTRIBUTES
- && (type & FILE_ATTRIBUTE_DIRECTORY) == 0;
-}
-
-int be_isexist(const char *path)
-{
- return GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES;
-}
-
-char* be_getcwd(char *buf, size_t size)
-{
- return _getcwd(buf, (int)size);
-}
-
-int be_chdir(const char *path)
-{
- return _chdir(path);
-}
-
-int be_mkdir(const char *path)
-{
- return _mkdir(path);
-}
-
-int be_unlink(const char *filename)
-{
- return remove(filename);
-}
-
-int be_dirfirst(bdirinfo *info, const char *path)
-{
- char *buf = be_os_malloc(strlen(path) + 3);
- info->file = be_os_malloc(sizeof(struct _finddata_t));
- info->dir = NULL;
- if (buf && info->file) {
- struct _finddata_t *cfile = info->file;
- strcat(strcpy(buf, path), "/*");
- info->dir = (void *)_findfirst(buf, cfile);
- info->name = cfile->name;
- be_os_free(buf);
- return (intptr_t)info->dir == -1;
- }
- be_os_free(buf);
- return 1;
-}
-
-int be_dirnext(bdirinfo *info)
-{
- struct _finddata_t *cfile = info->file;
- int res = _findnext((intptr_t)info->dir, cfile) != 0;
- info->name = cfile->name;
- return res;
-}
-
-int be_dirclose(bdirinfo *info)
-{
- be_os_free(info->file);
- return _findclose((intptr_t)info->dir) != 0;
-}
-
-#else /* must be POSIX */
-
-#include
-#include
-#include
-
-int be_isdir(const char *path)
-{
- struct stat path_stat;
- int res = stat(path, &path_stat);
- return res == 0 && S_ISDIR(path_stat.st_mode);
-}
-
-int be_isfile(const char *path)
-{
- struct stat path_stat;
- int res = stat(path, &path_stat);
- return res == 0 && !S_ISDIR(path_stat.st_mode);
-}
-
-int be_isexist(const char *path)
-{
- struct stat path_stat;
- return stat(path, &path_stat) == 0;
-}
-
-char* be_getcwd(char *buf, size_t size)
-{
- return getcwd(buf, size);
-}
-
-int be_chdir(const char *path)
-{
- return chdir(path);
-}
-
-int be_mkdir(const char *path)
-{
-#ifdef _WIN32
- return mkdir(path);
-#else
- return mkdir(path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
-#endif
-}
-
-int be_unlink(const char *filename)
-{
- return remove(filename);
-}
-
-int be_dirfirst(bdirinfo *info, const char *path)
-{
- info->dir = opendir(path);
- if (info->dir) {
- return be_dirnext(info);
- }
- return 1;
-}
-
-int be_dirnext(bdirinfo *info)
-{
- struct dirent *file;
- info->file = file = readdir(info->dir);
- if (file) {
- info->name = file->d_name;
- return 0;
- }
- return 1;
-}
-
-int be_dirclose(bdirinfo *info)
-{
- return closedir(info->dir) != 0;
-}
-
-#endif /* POSIX */
-#endif /* BE_USE_OS_MODULE || BE_USE_FILE_SYSTEM */
diff --git a/lib/libesp32/berry/default/be_python_compat.c b/lib/libesp32/berry/default/be_python_compat.c
deleted file mode 100644
index 5b3ec64d0..000000000
--- a/lib/libesp32/berry/default/be_python_compat.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/********************************************************************
- * Berry python compatibility module
- *
- * `import python_compat`
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: _anonymous_
-********************************************************************/
-be_local_closure(python_compat__anonymous_, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(global),
- /* K1 */ be_nested_str(True),
- /* K2 */ be_nested_str(False),
- /* K3 */ be_nested_str(None),
- /* K4 */ be_nested_str(b),
- }),
- &be_const_str__anonymous_,
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x50080200, // 0001 LDBOOL R2 1 0
- 0x90060202, // 0002 SETMBR R1 K1 R2
- 0x50080000, // 0003 LDBOOL R2 0 0
- 0x90060402, // 0004 SETMBR R1 K2 R2
- 0x4C080000, // 0005 LDNIL R2
- 0x90060602, // 0006 SETMBR R1 K3 R2
- 0x60080015, // 0007 GETGBL R2 G21
- 0x90060802, // 0008 SETMBR R1 K4 R2
- 0x80040000, // 0009 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified module: python_compat
-********************************************************************/
-be_local_module(python_compat,
- "python_compat",
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(python_compat__anonymous__closure) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(python_compat);
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_re_lib.c b/lib/libesp32/berry/default/be_re_lib.c
deleted file mode 100644
index bc28c0e67..000000000
--- a/lib/libesp32/berry/default/be_re_lib.c
+++ /dev/null
@@ -1,254 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import re`
- *
- * Regex using re1.5
- *******************************************************************/
-#include "be_constobj.h"
-#include "be_mem.h"
-#include "re1.5.h"
-
-/********************************************************************
-# Berry skeleton for `re` module
-#
-
-class re_pattern
- var _p # comobj containing the compiled bytecode for the pattern
-
- def search() end
- def match() end
- def split() end
-end
-
-re = module("re")
-
-re.compile = def (regex_str) end # native
-re.match = def (regex_str, str) end # native
-re.search = def (regex_str, str) end # native
-re.split = def (regex_str, str) end # native
-
-
-*******************************************************************/
-
-extern const bclass be_class_re_pattern;
-
-int be_free_comobj(bvm* vm) {
- int argc = be_top(vm);
- if (argc > 0) {
- void * obj = be_tocomptr(vm, 1);
- if (obj != NULL) { be_os_free(obj); }
- }
- be_return_nil(vm);
-}
-
-// Native functions be_const_func()
-// Berry: `re.compile(pattern:string) -> instance(be_pattern)`
-int be_re_compile(bvm *vm) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 1 && be_isstring(vm, 1)) {
- const char * regex_str = be_tostring(vm, 1);
- int sz = re1_5_sizecode(regex_str);
- if (sz < 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
-
- ByteProg *code = be_os_malloc(sizeof(ByteProg) + sz);
- int ret = re1_5_compilecode(code, regex_str);
- if (ret != 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
- be_pushntvclass(vm, &be_class_re_pattern);
- be_call(vm, 0);
- be_newcomobj(vm, code, &be_free_comobj);
- be_setmember(vm, -2, "_p");
- be_pop(vm, 1);
- be_return(vm);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-
-int be_re_match_search_run(bvm *vm, ByteProg *code, const char *hay, bbool is_anchored) {
- Subject subj = {hay, hay + strlen(hay)};
-
- int sub_els = (code->sub + 1) * 2;
- const char *sub[sub_els];
-
- if (!re1_5_recursiveloopprog(code, &subj, sub, sub_els, is_anchored)) {
- be_return_nil(vm); // no match
- }
-
- be_newobject(vm, "list");
- int k;
- for(k = sub_els; k > 0; k--)
- if(sub[k-1])
- break;
- for (int i = 0; i < k; i += 2) {
- be_pushnstring(vm, sub[i], sub[i+1] - sub[i]);
- be_data_push(vm, -2);
- be_pop(vm, 1);
- }
- be_pop(vm, 1); // remove list
- be_return(vm); // return list object
-}
-
-int be_re_match_search(bvm *vm, bbool is_anchored) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 2 && be_isstring(vm, 1) && be_isstring(vm, 2)) {
- const char * regex_str = be_tostring(vm, 1);
- const char * hay = be_tostring(vm, 2);
- int sz = re1_5_sizecode(regex_str);
- if (sz < 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
-
- ByteProg *code = be_os_malloc(sizeof(ByteProg) + sz);
- int ret = re1_5_compilecode(code, regex_str);
- if (ret != 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
- return be_re_match_search_run(vm, code, hay, is_anchored);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-// Berry: `re.match(value:int | s:string) -> nil`
-int be_re_match(bvm *vm) {
- return be_re_match_search(vm, btrue);
-}
-// Berry: `re.search(value:int | s:string) -> nil`
-int be_re_search(bvm *vm) {
- return be_re_match_search(vm, bfalse);
-}
-
-// Berry: `re_pattern.search(s:string) -> list(string)`
-int re_pattern_search(bvm *vm) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 2 && be_isstring(vm, 2)) {
- const char * hay = be_tostring(vm, 2);
- be_getmember(vm, 1, "_p");
- ByteProg * code = (ByteProg*) be_tocomptr(vm, -1);
- return be_re_match_search_run(vm, code, hay, bfalse);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-// Berry: `re_pattern.match(s:string) -> list(string)`
-int re_pattern_match(bvm *vm) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 2 && be_isstring(vm, 2)) {
- const char * hay = be_tostring(vm, 2);
- be_getmember(vm, 1, "_p");
- ByteProg * code = (ByteProg*) be_tocomptr(vm, -1);
- return be_re_match_search_run(vm, code, hay, btrue);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-
-int re_pattern_split_run(bvm *vm, ByteProg *code, const char *hay, int split_limit) {
- Subject subj = {hay, hay + strlen(hay)};
-
- int sub_els = (code->sub + 1) * 2;
- const char *sub[sub_els];
-
- be_newobject(vm, "list");
- while (1) {
- if (split_limit == 0 || !re1_5_recursiveloopprog(code, &subj, sub, sub_els, bfalse)) {
- be_pushnstring(vm, subj.begin, subj.end - subj.begin);
- be_data_push(vm, -2);
- be_pop(vm, 1);
- break;
- }
-
- if (sub[0] == NULL || sub[1] == NULL || sub[0] == sub[1]) {
- be_raise(vm, "internal_error", "can't match");
- }
- be_pushnstring(vm, subj.begin, sub[0] - subj.begin);
- be_data_push(vm, -2);
- be_pop(vm, 1);
- subj.begin = sub[1];
- split_limit--;
- }
- be_pop(vm, 1); // remove list
- be_return(vm); // return list object
-}
-
-// Berry: `re_pattern.split(s:string [, split_limit:int]) -> list(string)`
-int re_pattern_split(bvm *vm) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 2 && be_isstring(vm, 2)) {
- int split_limit = -1;
- if (argc >= 3) {
- split_limit = be_toint(vm, 3);
- }
- const char * hay = be_tostring(vm, 2);
- be_getmember(vm, 1, "_p");
- ByteProg * code = (ByteProg*) be_tocomptr(vm, -1);
-
- return re_pattern_split_run(vm, code, hay, split_limit);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-// Berry: `re.split(pattern:string, s:string [, split_limit:int]) -> list(string)`
-int be_re_split(bvm *vm) {
- int32_t argc = be_top(vm); // Get the number of arguments
- if (argc >= 2 && be_isstring(vm, 1) && be_isstring(vm, 2)) {
- const char * regex_str = be_tostring(vm, 1);
- const char * hay = be_tostring(vm, 2);
- int split_limit = -1;
- if (argc >= 3) {
- split_limit = be_toint(vm, 3);
- }
- int sz = re1_5_sizecode(regex_str);
- if (sz < 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
-
- ByteProg *code = be_os_malloc(sizeof(ByteProg) + sz);
- int ret = re1_5_compilecode(code, regex_str);
- if (ret != 0) {
- be_raise(vm, "internal_error", "error in regex");
- }
- return re_pattern_split_run(vm, code, hay, split_limit);
- }
- be_raise(vm, "type_error", NULL);
-}
-
-/********************************************************************
-** Solidified module: re
-********************************************************************/
-be_local_module(re,
- "re",
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("compile", 1000265118, 7, -1), be_const_func(be_re_compile) },
- { be_nested_key("search", -2144130903, 6, -1), be_const_func(be_re_search) },
- { be_nested_key("match", 2116038550, 5, 0), be_const_func(be_re_match) },
- { be_nested_key("split", -2017972765, 5, -1), be_const_func(be_re_split) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(re);
-/********************************************************************/
-
-// ===================================================================
-
-/********************************************************************
-** Solidified class: re_pattern
-********************************************************************/
-be_local_class(re_pattern,
- 1,
- NULL,
- be_nested_map(4,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_nested_key("_p", 1594591802, 2, -1), be_const_var(0) },
- { be_nested_key("search", -2144130903, 6, -1), be_const_func(re_pattern_search) },
- { be_nested_key("match", 2116038550, 5, 0), be_const_func(re_pattern_match) },
- { be_nested_key("split", -2017972765, 5, -1), be_const_func(re_pattern_split) },
- })),
- (be_nested_const_str("re_pattern", 2041968961, 10))
-);
-/*******************************************************************/
-
diff --git a/lib/libesp32/berry/default/be_serial_lib.c b/lib/libesp32/berry/default/be_serial_lib.c
deleted file mode 100644
index 4f1c4b577..000000000
--- a/lib/libesp32/berry/default/be_serial_lib.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import wire`
- *
- * 2 wire communication - I2C
- *******************************************************************/
-#include "be_constobj.h"
-
-#include "esp32-hal.h"
-
-extern int b_serial_init(bvm *vm);
-extern int b_serial_deinit(bvm *vm);
-
-extern int b_serial_write(bvm *vm);
-extern int b_serial_read(bvm *vm);
-extern int b_serial_available(bvm *vm);
-extern int b_serial_flush(bvm *vm);
-
-#include "../generate/be_fixed_be_class_tasmota_serial.h"
-
-void be_load_serial_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_tasmota_serial);
- be_setglobal(vm, "serial");
- be_pop(vm, 1);
-}
-
-/* @const_object_info_begin
-
-class be_class_tasmota_serial (scope: global, name: serial) {
- .p, var
-
- SERIAL_5N1, int(SERIAL_5N1)
- SERIAL_6N1, int(SERIAL_6N1)
- SERIAL_7N1, int(SERIAL_7N1)
- SERIAL_8N1, int(SERIAL_8N1)
- SERIAL_5N2, int(SERIAL_5N2)
- SERIAL_6N2, int(SERIAL_6N2)
- SERIAL_7N2, int(SERIAL_7N2)
- SERIAL_8N2, int(SERIAL_8N2)
- SERIAL_5E1, int(SERIAL_5E1)
- SERIAL_6E1, int(SERIAL_6E1)
- SERIAL_7E1, int(SERIAL_7E1)
- SERIAL_8E1, int(SERIAL_8E1)
- SERIAL_5E2, int(SERIAL_5E2)
- SERIAL_6E2, int(SERIAL_6E2)
- SERIAL_7E2, int(SERIAL_7E2)
- SERIAL_8E2, int(SERIAL_8E2)
- SERIAL_5O1, int(SERIAL_5O1)
- SERIAL_6O1, int(SERIAL_6O1)
- SERIAL_7O1, int(SERIAL_7O1)
- SERIAL_8O1, int(SERIAL_8O1)
- SERIAL_5O2, int(SERIAL_5O2)
- SERIAL_6O2, int(SERIAL_6O2)
- SERIAL_7O2, int(SERIAL_7O2)
- SERIAL_8O2, int(SERIAL_8O2)
-
- init, func(b_serial_init)
- deinit, func(b_serial_deinit)
-
- write, func(b_serial_write)
- read, func(b_serial_read)
- available, func(b_serial_available)
- flush, func(b_serial_flush)
-}
-@const_object_info_end */
diff --git a/lib/libesp32/berry/default/be_tapp_lib.c b/lib/libesp32/berry/default/be_tapp_lib.c
deleted file mode 100644
index 1a312d110..000000000
--- a/lib/libesp32/berry/default/be_tapp_lib.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/********************************************************************
- * Tasmota App manager
- *
- * To use: `import tapp`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Tapp_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(add_driver),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoexec
-********************************************************************/
-be_local_closure(Tapp_autoexec, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str(path),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(listdir),
- /* K3 */ be_nested_str(_X2F),
- /* K4 */ be_nested_str(find),
- /* K5 */ be_nested_str(_X2Etapp),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str(tasmota),
- /* K8 */ be_nested_str(log),
- /* K9 */ be_nested_str(format),
- /* K10 */ be_nested_str(TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27),
- /* K11 */ be_const_int(2),
- /* K12 */ be_nested_str(load),
- /* K13 */ be_nested_str(_X23autoexec_X2Ebe),
- /* K14 */ be_nested_str(stop_iteration),
- }),
- &be_const_str_autoexec,
- &be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x8C0C0302, // 0002 GETMET R3 R1 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x60100010, // 0005 GETGBL R4 G16
- 0x5C140600, // 0006 MOVE R5 R3
- 0x7C100200, // 0007 CALL R4 1
- 0xA8020014, // 0008 EXBLK 0 #001E
- 0x5C140800, // 0009 MOVE R5 R4
- 0x7C140000, // 000A CALL R5 0
- 0x8C180504, // 000B GETMET R6 R2 K4
- 0x5C200A00, // 000C MOVE R8 R5
- 0x58240005, // 000D LDCONST R9 K5
- 0x7C180600, // 000E CALL R6 3
- 0x24180D06, // 000F GT R6 R6 K6
- 0x781A000B, // 0010 JMPF R6 #001D
- 0xB81A0E00, // 0011 GETNGBL R6 K7
- 0x8C180D08, // 0012 GETMET R6 R6 K8
- 0x8C200509, // 0013 GETMET R8 R2 K9
- 0x5828000A, // 0014 LDCONST R10 K10
- 0x5C2C0A00, // 0015 MOVE R11 R5
- 0x7C200600, // 0016 CALL R8 3
- 0x5824000B, // 0017 LDCONST R9 K11
- 0x7C180600, // 0018 CALL R6 3
- 0xB81A0E00, // 0019 GETNGBL R6 K7
- 0x8C180D0C, // 001A GETMET R6 R6 K12
- 0x00200B0D, // 001B ADD R8 R5 K13
- 0x7C180400, // 001C CALL R6 2
- 0x7001FFEA, // 001D JMP #0009
- 0x5810000E, // 001E LDCONST R4 K14
- 0xAC100200, // 001F CATCH R4 1 0
- 0xB0080000, // 0020 RAISE 2 R0 R0
- 0x80000000, // 0021 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Tapp
-********************************************************************/
-be_local_class(Tapp,
- 0,
- NULL,
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(autoexec, -1), be_const_closure(Tapp_autoexec_closure) },
- { be_const_key(init, 0), be_const_closure(Tapp_init_closure) },
- })),
- be_str_literal("Tapp")
-);
-
-/********************************************************************
-** Solidified function: _anonymous_
-********************************************************************/
-be_local_closure(tapp__anonymous_, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_class(be_class_Tapp),
- }),
- &be_const_str__anonymous_,
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0xB4000000, // 0001 CLASS K0
- 0x5C080200, // 0002 MOVE R2 R1
- 0x7C080000, // 0003 CALL R2 0
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified module: tapp
-********************************************************************/
-be_local_module(tapp,
- "tapp",
- be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(init, -1), be_const_closure(tapp__anonymous__closure) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(tapp);
-/********************************************************************/
diff --git a/lib/libesp32/berry/default/be_tasmotalib.c b/lib/libesp32/berry/default/be_tasmotalib.c
deleted file mode 100644
index 6539b0de3..000000000
--- a/lib/libesp32/berry/default/be_tasmotalib.c
+++ /dev/null
@@ -1,2079 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import tasmota`
- *******************************************************************/
-#include "be_constobj.h"
-
-struct dummy_struct {}; // we need a struct name but don't need any meaningful content, we just take the address
-extern struct TasmotaGlobal_t TasmotaGlobal;
-extern struct TSettings * Settings;
-extern struct dummy_struct be_tasmota_global_struct;
-extern struct dummy_struct be_tasmota_settings_struct;
-
-extern int l_getFreeHeap(bvm *vm);
-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_getoption(bvm *vm);
-extern int l_millis(bvm *vm);
-extern int l_timereached(bvm *vm);
-extern int l_rtc(bvm *vm);
-extern int l_time_dump(bvm *vm);
-extern int l_strftime(bvm *vm);
-extern int l_strptime(bvm *vm);
-extern int l_memory(bvm *vm);
-extern int l_wifi(bvm *vm);
-extern int l_eth(bvm *vm);
-extern int l_yield(bvm *vm);
-extern int l_delay(bvm *vm);
-extern int l_scaleuint(bvm *vm);
-extern int l_logInfo(bvm *vm);
-extern int l_save(bvm *vm);
-
-extern int l_read_sensors(bvm *vm);
-
-extern int l_respCmnd(bvm *vm);
-extern int l_respCmndStr(bvm *vm);
-extern int l_respCmndDone(bvm *vm);
-extern int l_respCmndError(bvm *vm);
-extern int l_respCmndFailed(bvm *vm);
-extern int l_resolveCmnd(bvm *vm);
-
-extern int l_respAppend(bvm *vm);
-extern int l_webSend(bvm *vm);
-extern int l_webSendDecimal(bvm *vm);
-
-extern int l_getlight(bvm *vm);
-extern int l_setlight(bvm *vm);
-extern int l_getpower(bvm *vm);
-extern int l_setpower(bvm *vm);
-extern int l_getswitch(bvm *vm);
-
-extern int l_i2cenabled(bvm *vm);
-
-
-/********************************************************************
-** Solidified function: add_driver
-********************************************************************/
-be_local_closure(Tasmota_add_driver, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_drivers),
- /* K1 */ be_nested_str(push),
- }),
- &be_const_str_add_driver,
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0004, // 0001 JMPF R2 #0007
- 0x88080100, // 0002 GETMBR R2 R0 K0
- 0x8C080501, // 0003 GETMET R2 R2 K1
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x70020003, // 0006 JMP #000B
- 0x60080012, // 0007 GETGBL R2 G18
- 0x7C080000, // 0008 CALL R2 0
- 0x400C0401, // 0009 CONNECT R3 R2 R1
- 0x90020002, // 000A SETMBR R0 K0 R2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: gc
-********************************************************************/
-be_local_closure(Tasmota_gc, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* 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(gc),
- /* K1 */ be_nested_str(collect),
- /* K2 */ be_nested_str(allocated),
- }),
- &be_const_str_gc,
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x7C080200, // 0004 CALL R2 1
- 0x80040400, // 0005 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_op
-********************************************************************/
-be_local_closure(Tasmota_find_op, /* name */
- be_nested_proto(
- 13, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(_X3D_X3C_X3E_X21),
- /* K2 */ be_nested_str(chars_in_string),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str(split),
- /* K5 */ be_const_int(1),
- }),
- &be_const_str_find_op,
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x8C100102, // 0002 GETMET R4 R0 K2
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0600, // 0004 MOVE R7 R3
- 0x7C100600, // 0005 CALL R4 3
- 0x28140903, // 0006 GE R5 R4 K3
- 0x78160019, // 0007 JMPF R5 #0022
- 0x8C140504, // 0008 GETMET R5 R2 K4
- 0x5C1C0200, // 0009 MOVE R7 R1
- 0x5C200800, // 000A MOVE R8 R4
- 0x7C140600, // 000B CALL R5 3
- 0x94180B03, // 000C GETIDX R6 R5 K3
- 0x941C0B05, // 000D GETIDX R7 R5 K5
- 0x8C200102, // 000E GETMET R8 R0 K2
- 0x5C280E00, // 000F MOVE R10 R7
- 0x5C2C0600, // 0010 MOVE R11 R3
- 0x50300200, // 0011 LDBOOL R12 1 0
- 0x7C200800, // 0012 CALL R8 4
- 0x5C101000, // 0013 MOVE R4 R8
- 0x28200903, // 0014 GE R8 R4 K3
- 0x7822000B, // 0015 JMPF R8 #0022
- 0x8C200504, // 0016 GETMET R8 R2 K4
- 0x5C280E00, // 0017 MOVE R10 R7
- 0x5C2C0800, // 0018 MOVE R11 R4
- 0x7C200600, // 0019 CALL R8 3
- 0x94241103, // 001A GETIDX R9 R8 K3
- 0x94281105, // 001B GETIDX R10 R8 K5
- 0x602C0012, // 001C GETGBL R11 G18
- 0x7C2C0000, // 001D CALL R11 0
- 0x40301606, // 001E CONNECT R12 R11 R6
- 0x40301609, // 001F CONNECT R12 R11 R9
- 0x4030160A, // 0020 CONNECT R12 R11 R10
- 0x80041600, // 0021 RET 1 R11
- 0x60140012, // 0022 GETGBL R5 G18
- 0x7C140000, // 0023 CALL R5 0
- 0x40180A01, // 0024 CONNECT R6 R5 R1
- 0x4C180000, // 0025 LDNIL R6
- 0x40180A06, // 0026 CONNECT R6 R5 R6
- 0x4C180000, // 0027 LDNIL R6
- 0x40180A06, // 0028 CONNECT R6 R5 R6
- 0x80040A00, // 0029 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: try_rule
-********************************************************************/
-be_local_closure(Tasmota_try_rule, /* name */
- be_nested_proto(
- 15, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(find_op),
- /* K2 */ be_nested_str(split),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str(_X23),
- /* K5 */ be_nested_str(find_key_i),
- /* K6 */ be_const_int(1),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str(_X3D_X3D),
- /* K9 */ be_nested_str(_X21_X3D_X3D),
- /* K10 */ be_nested_str(_X3D),
- /* K11 */ be_nested_str(_X21_X3D),
- /* K12 */ be_nested_str(_X3E),
- /* K13 */ be_nested_str(_X3E_X3D),
- /* K14 */ be_nested_str(_X3C),
- /* K15 */ be_nested_str(_X3C_X3D),
- }),
- &be_const_str_try_rule,
- &be_const_str_solidified,
- ( &(const binstruction[141]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x8C140101, // 0001 GETMET R5 R0 K1
- 0x5C1C0400, // 0002 MOVE R7 R2
- 0x7C140400, // 0003 CALL R5 2
- 0x5C180200, // 0004 MOVE R6 R1
- 0x8C1C0902, // 0005 GETMET R7 R4 K2
- 0x94240B03, // 0006 GETIDX R9 R5 K3
- 0x58280004, // 0007 LDCONST R10 K4
- 0x7C1C0600, // 0008 CALL R7 3
- 0x58200003, // 0009 LDCONST R8 K3
- 0x6024000C, // 000A GETGBL R9 G12
- 0x5C280E00, // 000B MOVE R10 R7
- 0x7C240200, // 000C CALL R9 1
- 0x14241009, // 000D LT R9 R8 R9
- 0x7826000C, // 000E JMPF R9 #001C
- 0x94240E08, // 000F GETIDX R9 R7 R8
- 0x8C280105, // 0010 GETMET R10 R0 K5
- 0x5C300C00, // 0011 MOVE R12 R6
- 0x5C341200, // 0012 MOVE R13 R9
- 0x7C280600, // 0013 CALL R10 3
- 0x4C2C0000, // 0014 LDNIL R11
- 0x1C2C140B, // 0015 EQ R11 R10 R11
- 0x782E0001, // 0016 JMPF R11 #0019
- 0x502C0000, // 0017 LDBOOL R11 0 0
- 0x80041600, // 0018 RET 1 R11
- 0x94180C0A, // 0019 GETIDX R6 R6 R10
- 0x00201106, // 001A ADD R8 R8 K6
- 0x7001FFED, // 001B JMP #000A
- 0x94240B06, // 001C GETIDX R9 R5 K6
- 0x94280B07, // 001D GETIDX R10 R5 K7
- 0x78260066, // 001E JMPF R9 #0086
- 0x1C2C1308, // 001F EQ R11 R9 K8
- 0x782E000A, // 0020 JMPF R11 #002C
- 0x602C0008, // 0021 GETGBL R11 G8
- 0x5C300C00, // 0022 MOVE R12 R6
- 0x7C2C0200, // 0023 CALL R11 1
- 0x60300008, // 0024 GETGBL R12 G8
- 0x5C341400, // 0025 MOVE R13 R10
- 0x7C300200, // 0026 CALL R12 1
- 0x202C160C, // 0027 NE R11 R11 R12
- 0x782E0001, // 0028 JMPF R11 #002B
- 0x502C0000, // 0029 LDBOOL R11 0 0
- 0x80041600, // 002A RET 1 R11
- 0x70020059, // 002B JMP #0086
- 0x1C2C1309, // 002C EQ R11 R9 K9
- 0x782E000A, // 002D JMPF R11 #0039
- 0x602C0008, // 002E GETGBL R11 G8
- 0x5C300C00, // 002F MOVE R12 R6
- 0x7C2C0200, // 0030 CALL R11 1
- 0x60300008, // 0031 GETGBL R12 G8
- 0x5C341400, // 0032 MOVE R13 R10
- 0x7C300200, // 0033 CALL R12 1
- 0x1C2C160C, // 0034 EQ R11 R11 R12
- 0x782E0001, // 0035 JMPF R11 #0038
- 0x502C0000, // 0036 LDBOOL R11 0 0
- 0x80041600, // 0037 RET 1 R11
- 0x7002004C, // 0038 JMP #0086
- 0x1C2C130A, // 0039 EQ R11 R9 K10
- 0x782E000A, // 003A JMPF R11 #0046
- 0x602C000A, // 003B GETGBL R11 G10
- 0x5C300C00, // 003C MOVE R12 R6
- 0x7C2C0200, // 003D CALL R11 1
- 0x6030000A, // 003E GETGBL R12 G10
- 0x5C341400, // 003F MOVE R13 R10
- 0x7C300200, // 0040 CALL R12 1
- 0x202C160C, // 0041 NE R11 R11 R12
- 0x782E0001, // 0042 JMPF R11 #0045
- 0x502C0000, // 0043 LDBOOL R11 0 0
- 0x80041600, // 0044 RET 1 R11
- 0x7002003F, // 0045 JMP #0086
- 0x1C2C130B, // 0046 EQ R11 R9 K11
- 0x782E000A, // 0047 JMPF R11 #0053
- 0x602C000A, // 0048 GETGBL R11 G10
- 0x5C300C00, // 0049 MOVE R12 R6
- 0x7C2C0200, // 004A CALL R11 1
- 0x6030000A, // 004B GETGBL R12 G10
- 0x5C341400, // 004C MOVE R13 R10
- 0x7C300200, // 004D CALL R12 1
- 0x1C2C160C, // 004E EQ R11 R11 R12
- 0x782E0001, // 004F JMPF R11 #0052
- 0x502C0000, // 0050 LDBOOL R11 0 0
- 0x80041600, // 0051 RET 1 R11
- 0x70020032, // 0052 JMP #0086
- 0x1C2C130C, // 0053 EQ R11 R9 K12
- 0x782E000A, // 0054 JMPF R11 #0060
- 0x602C000A, // 0055 GETGBL R11 G10
- 0x5C300C00, // 0056 MOVE R12 R6
- 0x7C2C0200, // 0057 CALL R11 1
- 0x6030000A, // 0058 GETGBL R12 G10
- 0x5C341400, // 0059 MOVE R13 R10
- 0x7C300200, // 005A CALL R12 1
- 0x182C160C, // 005B LE R11 R11 R12
- 0x782E0001, // 005C JMPF R11 #005F
- 0x502C0000, // 005D LDBOOL R11 0 0
- 0x80041600, // 005E RET 1 R11
- 0x70020025, // 005F JMP #0086
- 0x1C2C130D, // 0060 EQ R11 R9 K13
- 0x782E000A, // 0061 JMPF R11 #006D
- 0x602C000A, // 0062 GETGBL R11 G10
- 0x5C300C00, // 0063 MOVE R12 R6
- 0x7C2C0200, // 0064 CALL R11 1
- 0x6030000A, // 0065 GETGBL R12 G10
- 0x5C341400, // 0066 MOVE R13 R10
- 0x7C300200, // 0067 CALL R12 1
- 0x142C160C, // 0068 LT R11 R11 R12
- 0x782E0001, // 0069 JMPF R11 #006C
- 0x502C0000, // 006A LDBOOL R11 0 0
- 0x80041600, // 006B RET 1 R11
- 0x70020018, // 006C JMP #0086
- 0x1C2C130E, // 006D EQ R11 R9 K14
- 0x782E000A, // 006E JMPF R11 #007A
- 0x602C000A, // 006F GETGBL R11 G10
- 0x5C300C00, // 0070 MOVE R12 R6
- 0x7C2C0200, // 0071 CALL R11 1
- 0x6030000A, // 0072 GETGBL R12 G10
- 0x5C341400, // 0073 MOVE R13 R10
- 0x7C300200, // 0074 CALL R12 1
- 0x282C160C, // 0075 GE R11 R11 R12
- 0x782E0001, // 0076 JMPF R11 #0079
- 0x502C0000, // 0077 LDBOOL R11 0 0
- 0x80041600, // 0078 RET 1 R11
- 0x7002000B, // 0079 JMP #0086
- 0x1C2C130F, // 007A EQ R11 R9 K15
- 0x782E0009, // 007B JMPF R11 #0086
- 0x602C000A, // 007C GETGBL R11 G10
- 0x5C300C00, // 007D MOVE R12 R6
- 0x7C2C0200, // 007E CALL R11 1
- 0x6030000A, // 007F GETGBL R12 G10
- 0x5C341400, // 0080 MOVE R13 R10
- 0x7C300200, // 0081 CALL R12 1
- 0x242C160C, // 0082 GT R11 R11 R12
- 0x782E0001, // 0083 JMPF R11 #0086
- 0x502C0000, // 0084 LDBOOL R11 0 0
- 0x80041600, // 0085 RET 1 R11
- 0x5C2C0600, // 0086 MOVE R11 R3
- 0x5C300C00, // 0087 MOVE R12 R6
- 0x94340B03, // 0088 GETIDX R13 R5 K3
- 0x5C380200, // 0089 MOVE R14 R1
- 0x7C2C0600, // 008A CALL R11 3
- 0x502C0200, // 008B LDBOOL R11 1 0
- 0x80041600, // 008C RET 1 R11
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: gen_cb
-********************************************************************/
-be_local_closure(Tasmota_gen_cb, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(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[ 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
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_light
-********************************************************************/
-be_local_closure(Tasmota_set_light, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* 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(tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29),
- /* K1 */ be_nested_str(light),
- /* K2 */ be_nested_str(set),
- }),
- &be_const_str_set_light,
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x600C0001, // 0000 GETGBL R3 G1
- 0x58100000, // 0001 LDCONST R4 K0
- 0x7C0C0200, // 0002 CALL R3 1
- 0xA40E0200, // 0003 IMPORT R3 K1
- 0x4C100000, // 0004 LDNIL R4
- 0x20100404, // 0005 NE R4 R2 R4
- 0x78120005, // 0006 JMPF R4 #000D
- 0x8C100702, // 0007 GETMET R4 R3 K2
- 0x5C180200, // 0008 MOVE R6 R1
- 0x5C1C0400, // 0009 MOVE R7 R2
- 0x7C100600, // 000A CALL R4 3
- 0x80040800, // 000B RET 1 R4
- 0x70020003, // 000C JMP #0011
- 0x8C100702, // 000D GETMET R4 R3 K2
- 0x5C180200, // 000E MOVE R6 R1
- 0x7C100400, // 000F CALL R4 2
- 0x80040800, // 0010 RET 1 R4
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: exec_tele
-********************************************************************/
-be_local_closure(Tasmota_exec_tele, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str(_rules),
- /* K1 */ be_nested_str(json),
- /* K2 */ be_nested_str(load),
- /* K3 */ be_nested_str(log),
- /* K4 */ be_nested_str(BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str(Tele),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str(try_rule),
- /* K9 */ be_nested_str(k),
- /* K10 */ be_nested_str(v),
- /* K11 */ be_const_int(1),
- }),
- &be_const_str_exec_tele,
- &be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0024, // 0001 JMPF R2 #0027
- 0xA40A0200, // 0002 IMPORT R2 K1
- 0x8C0C0502, // 0003 GETMET R3 R2 K2
- 0x5C140200, // 0004 MOVE R5 R1
- 0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x4C140000, // 0007 LDNIL R5
- 0x1C140605, // 0008 EQ R5 R3 R5
- 0x78160004, // 0009 JMPF R5 #000F
- 0x8C140103, // 000A GETMET R5 R0 K3
- 0x001E0801, // 000B ADD R7 K4 R1
- 0x58200005, // 000C LDCONST R8 K5
- 0x7C140600, // 000D CALL R5 3
- 0x5C0C0200, // 000E MOVE R3 R1
- 0x60140013, // 000F GETGBL R5 G19
- 0x7C140000, // 0010 CALL R5 0
- 0x98160C03, // 0011 SETIDX R5 K6 R3
- 0x5C0C0A00, // 0012 MOVE R3 R5
- 0x58140007, // 0013 LDCONST R5 K7
- 0x6018000C, // 0014 GETGBL R6 G12
- 0x881C0100, // 0015 GETMBR R7 R0 K0
- 0x7C180200, // 0016 CALL R6 1
- 0x14180A06, // 0017 LT R6 R5 R6
- 0x781A000C, // 0018 JMPF R6 #0026
- 0x88180100, // 0019 GETMBR R6 R0 K0
- 0x94180C05, // 001A GETIDX R6 R6 R5
- 0x8C1C0108, // 001B GETMET R7 R0 K8
- 0x5C240600, // 001C MOVE R9 R3
- 0x88280D09, // 001D GETMBR R10 R6 K9
- 0x882C0D0A, // 001E GETMBR R11 R6 K10
- 0x7C1C0800, // 001F CALL R7 4
- 0x741E0001, // 0020 JMPT R7 #0023
- 0x74120000, // 0021 JMPT R4 #0023
- 0x50100001, // 0022 LDBOOL R4 0 1
- 0x50100200, // 0023 LDBOOL R4 1 0
- 0x00140B0B, // 0024 ADD R5 R5 K11
- 0x7001FFED, // 0025 JMP #0014
- 0x80040800, // 0026 RET 1 R4
- 0x50080000, // 0027 LDBOOL R2 0 0
- 0x80040400, // 0028 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: run_deferred
-********************************************************************/
-be_local_closure(Tasmota_run_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str(_timers),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(size),
- /* K3 */ be_nested_str(time_reached),
- /* K4 */ be_nested_str(due),
- /* K5 */ be_nested_str(f),
- /* K6 */ be_nested_str(remove),
- /* K7 */ be_const_int(1),
- }),
- &be_const_str_run_deferred,
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060017, // 0001 JMPF R1 #001A
- 0x58040001, // 0002 LDCONST R1 K1
- 0x88080100, // 0003 GETMBR R2 R0 K0
- 0x8C080502, // 0004 GETMET R2 R2 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x14080202, // 0006 LT R2 R1 R2
- 0x780A0011, // 0007 JMPF R2 #001A
- 0x8C080103, // 0008 GETMET R2 R0 K3
- 0x88100100, // 0009 GETMBR R4 R0 K0
- 0x94100801, // 000A GETIDX R4 R4 R1
- 0x88100904, // 000B GETMBR R4 R4 K4
- 0x7C080400, // 000C CALL R2 2
- 0x780A0009, // 000D JMPF R2 #0018
- 0x88080100, // 000E GETMBR R2 R0 K0
- 0x94080401, // 000F GETIDX R2 R2 R1
- 0x88080505, // 0010 GETMBR R2 R2 K5
- 0x880C0100, // 0011 GETMBR R3 R0 K0
- 0x8C0C0706, // 0012 GETMET R3 R3 K6
- 0x5C140200, // 0013 MOVE R5 R1
- 0x7C0C0400, // 0014 CALL R3 2
- 0x5C0C0400, // 0015 MOVE R3 R2
- 0x7C0C0000, // 0016 CALL R3 0
- 0x70020000, // 0017 JMP #0019
- 0x00040307, // 0018 ADD R1 R1 K7
- 0x7001FFE8, // 0019 JMP #0003
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_driver
-********************************************************************/
-be_local_closure(Tasmota_remove_driver, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* 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(_drivers),
- /* K1 */ be_nested_str(find),
- /* K2 */ be_nested_str(pop),
- }),
- &be_const_str_remove_driver,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A000A, // 0001 JMPF R2 #000D
- 0x88080100, // 0002 GETMBR R2 R0 K0
- 0x8C080501, // 0003 GETMET R2 R2 K1
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x4C0C0000, // 0006 LDNIL R3
- 0x200C0403, // 0007 NE R3 R2 R3
- 0x780E0003, // 0008 JMPF R3 #000D
- 0x880C0100, // 0009 GETMBR R3 R0 K0
- 0x8C0C0702, // 000A GETMET R3 R3 K2
- 0x5C140400, // 000B MOVE R5 R2
- 0x7C0C0400, // 000C CALL R3 2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: event
-********************************************************************/
-be_local_closure(Tasmota_event, /* name */
- be_nested_proto(
- 20, /* nstack */
- 6, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str(introspect),
- /* K1 */ be_nested_str(string),
- /* K2 */ be_nested_str(every_50ms),
- /* K3 */ be_nested_str(run_deferred),
- /* K4 */ be_nested_str(cmd),
- /* K5 */ be_nested_str(exec_cmd),
- /* K6 */ be_nested_str(tele),
- /* K7 */ be_nested_str(exec_tele),
- /* K8 */ be_nested_str(rule),
- /* K9 */ be_nested_str(exec_rules),
- /* K10 */ be_nested_str(gc),
- /* K11 */ be_nested_str(_drivers),
- /* K12 */ be_const_int(0),
- /* K13 */ be_nested_str(get),
- /* K14 */ be_nested_str(function),
- /* K15 */ be_nested_str(format),
- /* K16 */ be_nested_str(BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s),
- /* K17 */ be_nested_str(debug),
- /* K18 */ be_nested_str(traceback),
- /* K19 */ be_const_int(1),
- /* K20 */ be_nested_str(save_before_restart),
- /* K21 */ be_nested_str(persist),
- /* K22 */ be_nested_str(save),
- }),
- &be_const_str_event,
- &be_const_str_solidified,
- ( &(const binstruction[91]) { /* code */
- 0xA41A0000, // 0000 IMPORT R6 K0
- 0xA41E0200, // 0001 IMPORT R7 K1
- 0x1C200302, // 0002 EQ R8 R1 K2
- 0x78220001, // 0003 JMPF R8 #0006
- 0x8C200103, // 0004 GETMET R8 R0 K3
- 0x7C200200, // 0005 CALL R8 1
- 0x50200000, // 0006 LDBOOL R8 0 0
- 0x1C240304, // 0007 EQ R9 R1 K4
- 0x78260006, // 0008 JMPF R9 #0010
- 0x8C240105, // 0009 GETMET R9 R0 K5
- 0x5C2C0400, // 000A MOVE R11 R2
- 0x5C300600, // 000B MOVE R12 R3
- 0x5C340800, // 000C MOVE R13 R4
- 0x7C240800, // 000D CALL R9 4
- 0x80041200, // 000E RET 1 R9
- 0x70020044, // 000F JMP #0055
- 0x1C240306, // 0010 EQ R9 R1 K6
- 0x78260004, // 0011 JMPF R9 #0017
- 0x8C240107, // 0012 GETMET R9 R0 K7
- 0x5C2C0800, // 0013 MOVE R11 R4
- 0x7C240400, // 0014 CALL R9 2
- 0x80041200, // 0015 RET 1 R9
- 0x7002003D, // 0016 JMP #0055
- 0x1C240308, // 0017 EQ R9 R1 K8
- 0x78260004, // 0018 JMPF R9 #001E
- 0x8C240109, // 0019 GETMET R9 R0 K9
- 0x5C2C0800, // 001A MOVE R11 R4
- 0x7C240400, // 001B CALL R9 2
- 0x80041200, // 001C RET 1 R9
- 0x70020036, // 001D JMP #0055
- 0x1C24030A, // 001E EQ R9 R1 K10
- 0x78260003, // 001F JMPF R9 #0024
- 0x8C24010A, // 0020 GETMET R9 R0 K10
- 0x7C240200, // 0021 CALL R9 1
- 0x80041200, // 0022 RET 1 R9
- 0x70020030, // 0023 JMP #0055
- 0x8824010B, // 0024 GETMBR R9 R0 K11
- 0x7826002E, // 0025 JMPF R9 #0055
- 0x5824000C, // 0026 LDCONST R9 K12
- 0x6028000C, // 0027 GETGBL R10 G12
- 0x882C010B, // 0028 GETMBR R11 R0 K11
- 0x7C280200, // 0029 CALL R10 1
- 0x1428120A, // 002A LT R10 R9 R10
- 0x782A0028, // 002B JMPF R10 #0055
- 0x8828010B, // 002C GETMBR R10 R0 K11
- 0x94281409, // 002D GETIDX R10 R10 R9
- 0x8C2C0D0D, // 002E GETMET R11 R6 K13
- 0x5C341400, // 002F MOVE R13 R10
- 0x5C380200, // 0030 MOVE R14 R1
- 0x7C2C0600, // 0031 CALL R11 3
- 0x60300004, // 0032 GETGBL R12 G4
- 0x5C341600, // 0033 MOVE R13 R11
- 0x7C300200, // 0034 CALL R12 1
- 0x1C30190E, // 0035 EQ R12 R12 K14
- 0x7832001B, // 0036 JMPF R12 #0053
- 0xA802000C, // 0037 EXBLK 0 #0045
- 0x5C301600, // 0038 MOVE R12 R11
- 0x5C341400, // 0039 MOVE R13 R10
- 0x5C380400, // 003A MOVE R14 R2
- 0x5C3C0600, // 003B MOVE R15 R3
- 0x5C400800, // 003C MOVE R16 R4
- 0x5C440A00, // 003D MOVE R17 R5
- 0x7C300A00, // 003E CALL R12 5
- 0x5C201800, // 003F MOVE R8 R12
- 0x78220001, // 0040 JMPF R8 #0043
- 0xA8040001, // 0041 EXBLK 1 1
- 0x70020011, // 0042 JMP #0055
- 0xA8040001, // 0043 EXBLK 1 1
- 0x7002000D, // 0044 JMP #0053
- 0xAC300002, // 0045 CATCH R12 0 2
- 0x7002000A, // 0046 JMP #0052
- 0x60380001, // 0047 GETGBL R14 G1
- 0x8C3C0F0F, // 0048 GETMET R15 R7 K15
- 0x58440010, // 0049 LDCONST R17 K16
- 0x5C481800, // 004A MOVE R18 R12
- 0x5C4C1A00, // 004B MOVE R19 R13
- 0x7C3C0800, // 004C CALL R15 4
- 0x7C380200, // 004D CALL R14 1
- 0xA43A2200, // 004E IMPORT R14 K17
- 0x8C3C1D12, // 004F GETMET R15 R14 K18
- 0x7C3C0200, // 0050 CALL R15 1
- 0x70020000, // 0051 JMP #0053
- 0xB0080000, // 0052 RAISE 2 R0 R0
- 0x00241313, // 0053 ADD R9 R9 K19
- 0x7001FFD1, // 0054 JMP #0027
- 0x1C240314, // 0055 EQ R9 R1 K20
- 0x78260002, // 0056 JMPF R9 #005A
- 0xA4262A00, // 0057 IMPORT R9 K21
- 0x8C281316, // 0058 GETMET R10 R9 K22
- 0x7C280200, // 0059 CALL R10 1
- 0x80041000, // 005A RET 1 R8
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_key_i
-********************************************************************/
-be_local_closure(Tasmota_find_key_i, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(toupper),
- /* K2 */ be_nested_str(keys),
- /* K3 */ be_nested_str(_X3F),
- /* K4 */ be_nested_str(stop_iteration),
- }),
- &be_const_str_find_key_i,
- &be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x8C100701, // 0001 GETMET R4 R3 K1
- 0x5C180400, // 0002 MOVE R6 R2
- 0x7C100400, // 0003 CALL R4 2
- 0x6014000F, // 0004 GETGBL R5 G15
- 0x5C180200, // 0005 MOVE R6 R1
- 0x601C0013, // 0006 GETGBL R7 G19
- 0x7C140400, // 0007 CALL R5 2
- 0x78160013, // 0008 JMPF R5 #001D
- 0x60140010, // 0009 GETGBL R5 G16
- 0x8C180302, // 000A GETMET R6 R1 K2
- 0x7C180200, // 000B CALL R6 1
- 0x7C140200, // 000C CALL R5 1
- 0xA802000B, // 000D EXBLK 0 #001A
- 0x5C180A00, // 000E MOVE R6 R5
- 0x7C180000, // 000F CALL R6 0
- 0x8C1C0701, // 0010 GETMET R7 R3 K1
- 0x5C240C00, // 0011 MOVE R9 R6
- 0x7C1C0400, // 0012 CALL R7 2
- 0x1C1C0E04, // 0013 EQ R7 R7 R4
- 0x741E0001, // 0014 JMPT R7 #0017
- 0x1C1C0503, // 0015 EQ R7 R2 K3
- 0x781E0001, // 0016 JMPF R7 #0019
- 0xA8040001, // 0017 EXBLK 1 1
- 0x80040C00, // 0018 RET 1 R6
- 0x7001FFF3, // 0019 JMP #000E
- 0x58140004, // 001A LDCONST R5 K4
- 0xAC140200, // 001B CATCH R5 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x80000000, // 001D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: wire_scan
-********************************************************************/
-be_local_closure(Tasmota_wire_scan, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(i2c_enabled),
- /* K1 */ be_nested_str(wire1),
- /* K2 */ be_nested_str(enabled),
- /* K3 */ be_nested_str(detect),
- /* K4 */ be_nested_str(wire2),
- }),
- &be_const_str_wire_scan,
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x200C0403, // 0001 NE R3 R2 R3
- 0x780E0005, // 0002 JMPF R3 #0009
- 0x8C0C0100, // 0003 GETMET R3 R0 K0
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x740E0001, // 0006 JMPT R3 #0009
- 0x4C0C0000, // 0007 LDNIL R3
- 0x80040600, // 0008 RET 1 R3
- 0x880C0101, // 0009 GETMBR R3 R0 K1
- 0x8C0C0702, // 000A GETMET R3 R3 K2
- 0x7C0C0200, // 000B CALL R3 1
- 0x780E0006, // 000C JMPF R3 #0014
- 0x880C0101, // 000D GETMBR R3 R0 K1
- 0x8C0C0703, // 000E GETMET R3 R3 K3
- 0x5C140200, // 000F MOVE R5 R1
- 0x7C0C0400, // 0010 CALL R3 2
- 0x780E0001, // 0011 JMPF R3 #0014
- 0x880C0101, // 0012 GETMBR R3 R0 K1
- 0x80040600, // 0013 RET 1 R3
- 0x880C0104, // 0014 GETMBR R3 R0 K4
- 0x8C0C0702, // 0015 GETMET R3 R3 K2
- 0x7C0C0200, // 0016 CALL R3 1
- 0x780E0006, // 0017 JMPF R3 #001F
- 0x880C0104, // 0018 GETMBR R3 R0 K4
- 0x8C0C0703, // 0019 GETMET R3 R3 K3
- 0x5C140200, // 001A MOVE R5 R1
- 0x7C0C0400, // 001B CALL R3 2
- 0x780E0001, // 001C JMPF R3 #001F
- 0x880C0104, // 001D GETMBR R3 R0 K4
- 0x80040600, // 001E RET 1 R3
- 0x4C0C0000, // 001F LDNIL R3
- 0x80040600, // 0020 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Tasmota_init, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str(global),
- /* K1 */ be_nested_str(ctypes_bytes_dyn),
- /* K2 */ be_nested_str(_global_addr),
- /* K3 */ be_nested_str(_global_def),
- /* K4 */ be_nested_str(introspect),
- /* K5 */ be_nested_str(_settings_ptr),
- /* K6 */ be_nested_str(get),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str(settings),
- /* K9 */ be_nested_str(toptr),
- /* K10 */ be_nested_str(_settings_def),
- /* K11 */ be_nested_str(wd),
- /* K12 */ be_nested_str(),
- /* K13 */ be_nested_str(_debug_present),
- /* K14 */ be_nested_str(debug),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[36]) { /* code */
- 0xB8060200, // 0000 GETNGBL R1 K1
- 0x88080102, // 0001 GETMBR R2 R0 K2
- 0x880C0103, // 0002 GETMBR R3 R0 K3
- 0x7C040400, // 0003 CALL R1 2
- 0x90020001, // 0004 SETMBR R0 K0 R1
- 0xA4060800, // 0005 IMPORT R1 K4
- 0x60080015, // 0006 GETGBL R2 G21
- 0x880C0105, // 0007 GETMBR R3 R0 K5
- 0x54120003, // 0008 LDINT R4 4
- 0x7C080400, // 0009 CALL R2 2
- 0x8C080506, // 000A GETMET R2 R2 K6
- 0x58100007, // 000B LDCONST R4 K7
- 0x54160003, // 000C LDINT R5 4
- 0x7C080600, // 000D CALL R2 3
- 0x780A0006, // 000E JMPF R2 #0016
- 0xB80E0200, // 000F GETNGBL R3 K1
- 0x8C100309, // 0010 GETMET R4 R1 K9
- 0x5C180400, // 0011 MOVE R6 R2
- 0x7C100400, // 0012 CALL R4 2
- 0x8814010A, // 0013 GETMBR R5 R0 K10
- 0x7C0C0400, // 0014 CALL R3 2
- 0x90021003, // 0015 SETMBR R0 K8 R3
- 0x9002170C, // 0016 SETMBR R0 K11 K12
- 0x500C0000, // 0017 LDBOOL R3 0 0
- 0x90021A03, // 0018 SETMBR R0 K13 R3
- 0xA8020004, // 0019 EXBLK 0 #001F
- 0xA40E1C00, // 001A IMPORT R3 K14
- 0x50100200, // 001B LDBOOL R4 1 0
- 0x90021A04, // 001C SETMBR R0 K13 R4
- 0xA8040001, // 001D EXBLK 1 1
- 0x70020003, // 001E JMP #0023
- 0xAC0C0000, // 001F CATCH R3 0 0
- 0x70020000, // 0020 JMP #0022
- 0x70020000, // 0021 JMP #0023
- 0xB0080000, // 0022 RAISE 2 R0 R0
- 0x80000000, // 0023 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: time_str
-********************************************************************/
-be_local_closure(Tasmota_time_str, /* name */
- be_nested_proto(
- 13, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(time_dump),
- /* K2 */ be_nested_str(format),
- /* K3 */ be_nested_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d),
- /* K4 */ be_nested_str(year),
- /* K5 */ be_nested_str(month),
- /* K6 */ be_nested_str(day),
- /* K7 */ be_nested_str(hour),
- /* K8 */ be_nested_str(min),
- /* K9 */ be_nested_str(sec),
- }),
- &be_const_str_time_str,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x8C0C0101, // 0001 GETMET R3 R0 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x8C100502, // 0004 GETMET R4 R2 K2
- 0x58180003, // 0005 LDCONST R6 K3
- 0x941C0704, // 0006 GETIDX R7 R3 K4
- 0x94200705, // 0007 GETIDX R8 R3 K5
- 0x94240706, // 0008 GETIDX R9 R3 K6
- 0x94280707, // 0009 GETIDX R10 R3 K7
- 0x942C0708, // 000A GETIDX R11 R3 K8
- 0x94300709, // 000B GETIDX R12 R3 K9
- 0x7C101000, // 000C CALL R4 8
- 0x80040800, // 000D RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_rule
-********************************************************************/
-be_local_closure(Tasmota_remove_rule, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(_rules),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str(k),
- /* K3 */ be_nested_str(remove),
- /* K4 */ be_const_int(1),
- }),
- &be_const_str_remove_rule,
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0011, // 0001 JMPF R2 #0014
- 0x58080001, // 0002 LDCONST R2 K1
- 0x600C000C, // 0003 GETGBL R3 G12
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x7C0C0200, // 0005 CALL R3 1
- 0x140C0403, // 0006 LT R3 R2 R3
- 0x780E000B, // 0007 JMPF R3 #0014
- 0x880C0100, // 0008 GETMBR R3 R0 K0
- 0x940C0602, // 0009 GETIDX R3 R3 R2
- 0x880C0702, // 000A GETMBR R3 R3 K2
- 0x1C0C0601, // 000B EQ R3 R3 R1
- 0x780E0004, // 000C JMPF R3 #0012
- 0x880C0100, // 000D GETMBR R3 R0 K0
- 0x8C0C0703, // 000E GETMET R3 R3 K3
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x70020000, // 0011 JMP #0013
- 0x00080504, // 0012 ADD R2 R2 K4
- 0x7001FFEE, // 0013 JMP #0003
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: load
-********************************************************************/
-be_local_closure(Tasmota_load, /* name */
- be_nested_proto(
- 21, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(sys),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_nested_str(find),
- /* K3 */ be_nested_str(push),
- }),
- &be_const_str_push_path,
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C0C0502, // 0003 GETMET R3 R2 K2
- 0x5C140000, // 0004 MOVE R5 R0
- 0x7C0C0400, // 0005 CALL R3 2
- 0x4C100000, // 0006 LDNIL R4
- 0x1C0C0604, // 0007 EQ R3 R3 R4
- 0x780E0002, // 0008 JMPF R3 #000C
- 0x8C0C0503, // 0009 GETMET R3 R2 K3
- 0x5C140000, // 000A MOVE R5 R0
- 0x7C0C0400, // 000B CALL R3 2
- 0x80000000, // 000C RET 0
- })
- ),
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(sys),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_nested_str(find),
- /* K3 */ be_nested_str(remove),
- }),
- &be_const_str_pop_path,
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C0C0502, // 0003 GETMET R3 R2 K2
- 0x5C140000, // 0004 MOVE R5 R0
- 0x7C0C0400, // 0005 CALL R3 2
- 0x4C100000, // 0006 LDNIL R4
- 0x20100604, // 0007 NE R4 R3 R4
- 0x78120002, // 0008 JMPF R4 #000C
- 0x8C100503, // 0009 GETMET R4 R2 K3
- 0x5C180600, // 000A MOVE R6 R3
- 0x7C100400, // 000B CALL R4 2
- 0x80000000, // 000C RET 0
- })
- ),
- }),
- 1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(path),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str(_X2F),
- /* K4 */ be_nested_str(split),
- /* K5 */ be_nested_str(_X23),
- /* K6 */ be_const_int(1),
- /* K7 */ be_nested_str(find),
- /* K8 */ be_nested_str(_X2E),
- /* K9 */ be_nested_str(_X2Ebe),
- /* K10 */ be_nested_str(_X2Ebec),
- /* K11 */ be_nested_str(io_error),
- /* K12 */ be_nested_str(file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27),
- /* K13 */ be_nested_str(last_modified),
- /* K14 */ be_nested_str(c),
- /* K15 */ be_nested_str(wd),
- /* K16 */ be_nested_str(),
- /* K17 */ be_nested_str(file),
- /* K18 */ be_nested_str(save),
- /* K19 */ be_nested_str(format),
- /* K20 */ be_nested_str(BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29),
- }),
- &be_const_str_load,
- &be_const_str_solidified,
- ( &(const binstruction[121]) { /* code */
- 0x84080000, // 0000 CLOSURE R2 P0
- 0x840C0001, // 0001 CLOSURE R3 P1
- 0xA4120000, // 0002 IMPORT R4 K0
- 0xA4160200, // 0003 IMPORT R5 K1
- 0x6018000C, // 0004 GETGBL R6 G12
- 0x5C1C0200, // 0005 MOVE R7 R1
- 0x7C180200, // 0006 CALL R6 1
- 0x1C180D02, // 0007 EQ R6 R6 K2
- 0x781A0001, // 0008 JMPF R6 #000B
- 0x50180000, // 0009 LDBOOL R6 0 0
- 0x80040C00, // 000A RET 1 R6
- 0x94180302, // 000B GETIDX R6 R1 K2
- 0x20180D03, // 000C NE R6 R6 K3
- 0x781A0000, // 000D JMPF R6 #000F
- 0x00060601, // 000E ADD R1 K3 R1
- 0x8C180904, // 000F GETMET R6 R4 K4
- 0x5C200200, // 0010 MOVE R8 R1
- 0x58240005, // 0011 LDCONST R9 K5
- 0x7C180600, // 0012 CALL R6 3
- 0x941C0D02, // 0013 GETIDX R7 R6 K2
- 0x5421FFFE, // 0014 LDINT R8 -1
- 0x94200C08, // 0015 GETIDX R8 R6 R8
- 0x6024000C, // 0016 GETGBL R9 G12
- 0x5C280C00, // 0017 MOVE R10 R6
- 0x7C240200, // 0018 CALL R9 1
- 0x24241306, // 0019 GT R9 R9 K6
- 0x8C280907, // 001A GETMET R10 R4 K7
- 0x5C301000, // 001B MOVE R12 R8
- 0x58340008, // 001C LDCONST R13 K8
- 0x7C280600, // 001D CALL R10 3
- 0x14281502, // 001E LT R10 R10 K2
- 0x782A0001, // 001F JMPF R10 #0022
- 0x00040309, // 0020 ADD R1 R1 K9
- 0x00201109, // 0021 ADD R8 R8 K9
- 0x5429FFFC, // 0022 LDINT R10 -3
- 0x542DFFFE, // 0023 LDINT R11 -1
- 0x4028140B, // 0024 CONNECT R10 R10 R11
- 0x9428100A, // 0025 GETIDX R10 R8 R10
- 0x1C281509, // 0026 EQ R10 R10 K9
- 0x542DFFFB, // 0027 LDINT R11 -4
- 0x5431FFFE, // 0028 LDINT R12 -1
- 0x402C160C, // 0029 CONNECT R11 R11 R12
- 0x942C100B, // 002A GETIDX R11 R8 R11
- 0x1C2C170A, // 002B EQ R11 R11 K10
- 0x5C301400, // 002C MOVE R12 R10
- 0x74320002, // 002D JMPT R12 #0031
- 0x5C301600, // 002E MOVE R12 R11
- 0x74320000, // 002F JMPT R12 #0031
- 0xB006170C, // 0030 RAISE 1 K11 K12
- 0x8C300B0D, // 0031 GETMET R12 R5 K13
- 0x5C380E00, // 0032 MOVE R14 R7
- 0x7C300400, // 0033 CALL R12 2
- 0x782E0005, // 0034 JMPF R11 #003B
- 0x4C340000, // 0035 LDNIL R13
- 0x1C34180D, // 0036 EQ R13 R12 R13
- 0x78360001, // 0037 JMPF R13 #003A
- 0x50340000, // 0038 LDBOOL R13 0 0
- 0x80041A00, // 0039 RET 1 R13
- 0x70020013, // 003A JMP #004F
- 0x8C340B0D, // 003B GETMET R13 R5 K13
- 0x003C030E, // 003C ADD R15 R1 K14
- 0x7C340400, // 003D CALL R13 2
- 0x4C380000, // 003E LDNIL R14
- 0x1C38180E, // 003F EQ R14 R12 R14
- 0x783A0004, // 0040 JMPF R14 #0046
- 0x4C380000, // 0041 LDNIL R14
- 0x1C381A0E, // 0042 EQ R14 R13 R14
- 0x783A0001, // 0043 JMPF R14 #0046
- 0x50380000, // 0044 LDBOOL R14 0 0
- 0x80041C00, // 0045 RET 1 R14
- 0x4C380000, // 0046 LDNIL R14
- 0x20381A0E, // 0047 NE R14 R13 R14
- 0x783A0005, // 0048 JMPF R14 #004F
- 0x4C380000, // 0049 LDNIL R14
- 0x1C38180E, // 004A EQ R14 R12 R14
- 0x743A0001, // 004B JMPT R14 #004E
- 0x28381A0C, // 004C GE R14 R13 R12
- 0x783A0000, // 004D JMPF R14 #004F
- 0x502C0200, // 004E LDBOOL R11 1 0
- 0x78260005, // 004F JMPF R9 #0056
- 0x00340F05, // 0050 ADD R13 R7 K5
- 0x90021E0D, // 0051 SETMBR R0 K15 R13
- 0x5C340400, // 0052 MOVE R13 R2
- 0x8838010F, // 0053 GETMBR R14 R0 K15
- 0x7C340200, // 0054 CALL R13 1
- 0x70020000, // 0055 JMP #0057
- 0x90021F10, // 0056 SETMBR R0 K15 K16
- 0x6034000D, // 0057 GETGBL R13 G13
- 0x5C380200, // 0058 MOVE R14 R1
- 0x583C0011, // 0059 LDCONST R15 K17
- 0x7C340400, // 005A CALL R13 2
- 0x5C381600, // 005B MOVE R14 R11
- 0x743A0013, // 005C JMPT R14 #0071
- 0x5C381200, // 005D MOVE R14 R9
- 0x743A0011, // 005E JMPT R14 #0071
- 0xA8020005, // 005F EXBLK 0 #0066
- 0x8C380112, // 0060 GETMET R14 R0 K18
- 0x0040030E, // 0061 ADD R16 R1 K14
- 0x5C441A00, // 0062 MOVE R17 R13
- 0x7C380600, // 0063 CALL R14 3
- 0xA8040001, // 0064 EXBLK 1 1
- 0x7002000A, // 0065 JMP #0071
- 0xAC380001, // 0066 CATCH R14 0 1
- 0x70020007, // 0067 JMP #0070
- 0x603C0001, // 0068 GETGBL R15 G1
- 0x8C400913, // 0069 GETMET R16 R4 K19
- 0x58480014, // 006A LDCONST R18 K20
- 0x004C030E, // 006B ADD R19 R1 K14
- 0x5C501C00, // 006C MOVE R20 R14
- 0x7C400800, // 006D CALL R16 4
- 0x7C3C0200, // 006E CALL R15 1
- 0x70020000, // 006F JMP #0071
- 0xB0080000, // 0070 RAISE 2 R0 R0
- 0x5C381A00, // 0071 MOVE R14 R13
- 0x7C380000, // 0072 CALL R14 0
- 0x78260002, // 0073 JMPF R9 #0077
- 0x5C380600, // 0074 MOVE R14 R3
- 0x003C0F05, // 0075 ADD R15 R7 K5
- 0x7C380200, // 0076 CALL R14 1
- 0x50380200, // 0077 LDBOOL R14 1 0
- 0x80041C00, // 0078 RET 1 R14
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: chars_in_string
-********************************************************************/
-be_local_closure(Tasmota_chars_in_string, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_const_int(1),
- }),
- &be_const_str_chars_in_string,
- &be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
- 0x780E0001, // 0000 JMPF R3 #0003
- 0x50100200, // 0001 LDBOOL R4 1 0
- 0x70020000, // 0002 JMP #0004
- 0x50100000, // 0003 LDBOOL R4 0 0
- 0x58140000, // 0004 LDCONST R5 K0
- 0x6018000C, // 0005 GETGBL R6 G12
- 0x5C1C0200, // 0006 MOVE R7 R1
- 0x7C180200, // 0007 CALL R6 1
- 0x14180A06, // 0008 LT R6 R5 R6
- 0x781A0012, // 0009 JMPF R6 #001D
- 0x50180000, // 000A LDBOOL R6 0 0
- 0x581C0000, // 000B LDCONST R7 K0
- 0x6020000C, // 000C GETGBL R8 G12
- 0x5C240400, // 000D MOVE R9 R2
- 0x7C200200, // 000E CALL R8 1
- 0x14200E08, // 000F LT R8 R7 R8
- 0x78220006, // 0010 JMPF R8 #0018
- 0x94200205, // 0011 GETIDX R8 R1 R5
- 0x94240407, // 0012 GETIDX R9 R2 R7
- 0x1C201009, // 0013 EQ R8 R8 R9
- 0x78220000, // 0014 JMPF R8 #0016
- 0x50180200, // 0015 LDBOOL R6 1 0
- 0x001C0F01, // 0016 ADD R7 R7 K1
- 0x7001FFF3, // 0017 JMP #000C
- 0x20200806, // 0018 NE R8 R4 R6
- 0x78220000, // 0019 JMPF R8 #001B
- 0x80040A00, // 001A RET 1 R5
- 0x00140B01, // 001B ADD R5 R5 K1
- 0x7001FFE7, // 001C JMP #0005
- 0x5419FFFE, // 001D LDINT R6 -1
- 0x80040C00, // 001E RET 1 R6
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: cmd
-********************************************************************/
-be_local_closure(Tasmota_cmd, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(cmd_res),
- /* K1 */ be_nested_str(_cmd),
- }),
- &be_const_str_cmd,
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x50080200, // 0000 LDBOOL R2 1 0
- 0x90020002, // 0001 SETMBR R0 K0 R2
- 0x8C080101, // 0002 GETMET R2 R0 K1
- 0x5C100200, // 0003 MOVE R4 R1
- 0x7C080400, // 0004 CALL R2 2
- 0x4C080000, // 0005 LDNIL R2
- 0x880C0100, // 0006 GETMBR R3 R0 K0
- 0x50100200, // 0007 LDBOOL R4 1 0
- 0x200C0604, // 0008 NE R3 R3 R4
- 0x780E0000, // 0009 JMPF R3 #000B
- 0x88080100, // 000A GETMBR R2 R0 K0
- 0x4C0C0000, // 000B LDNIL R3
- 0x90020003, // 000C SETMBR R0 K0 R3
- 0x80040400, // 000D RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_cmd
-********************************************************************/
-be_local_closure(Tasmota_add_cmd, /* name */
- be_nested_proto(
- 5, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(_ccmd),
- /* K1 */ be_nested_str(function),
- /* K2 */ be_nested_str(value_error),
- /* K3 */ be_nested_str(the_X20second_X20argument_X20is_X20not_X20a_X20function),
- }),
- &be_const_str_add_cmd,
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x740E0002, // 0001 JMPT R3 #0005
- 0x600C0013, // 0002 GETGBL R3 G19
- 0x7C0C0000, // 0003 CALL R3 0
- 0x90020003, // 0004 SETMBR R0 K0 R3
- 0x600C0004, // 0005 GETGBL R3 G4
- 0x5C100400, // 0006 MOVE R4 R2
- 0x7C0C0200, // 0007 CALL R3 1
- 0x1C0C0701, // 0008 EQ R3 R3 K1
- 0x780E0002, // 0009 JMPF R3 #000D
- 0x880C0100, // 000A GETMBR R3 R0 K0
- 0x980C0202, // 000B SETIDX R3 R1 R2
- 0x70020000, // 000C JMP #000E
- 0xB0060503, // 000D RAISE 1 K2 K3
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_rule
-********************************************************************/
-be_local_closure(Tasmota_add_rule, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(_rules),
- /* K1 */ be_nested_str(function),
- /* K2 */ be_nested_str(push),
- /* K3 */ be_nested_str(kv),
- /* K4 */ be_nested_str(value_error),
- /* K5 */ be_nested_str(the_X20second_X20argument_X20is_X20not_X20a_X20function),
- }),
- &be_const_str_add_rule,
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x740E0002, // 0001 JMPT R3 #0005
- 0x600C0012, // 0002 GETGBL R3 G18
- 0x7C0C0000, // 0003 CALL R3 0
- 0x90020003, // 0004 SETMBR R0 K0 R3
- 0x600C0004, // 0005 GETGBL R3 G4
- 0x5C100400, // 0006 MOVE R4 R2
- 0x7C0C0200, // 0007 CALL R3 1
- 0x1C0C0701, // 0008 EQ R3 R3 K1
- 0x780E0007, // 0009 JMPF R3 #0012
- 0x880C0100, // 000A GETMBR R3 R0 K0
- 0x8C0C0702, // 000B GETMET R3 R3 K2
- 0x8C140103, // 000C GETMET R5 R0 K3
- 0x5C1C0200, // 000D MOVE R7 R1
- 0x5C200400, // 000E MOVE R8 R2
- 0x7C140600, // 000F CALL R5 3
- 0x7C0C0400, // 0010 CALL R3 2
- 0x70020000, // 0011 JMP #0013
- 0xB0060905, // 0012 RAISE 1 K4 K5
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: exec_rules
-********************************************************************/
-be_local_closure(Tasmota_exec_rules, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str(_rules),
- /* K1 */ be_nested_str(cmd_res),
- /* K2 */ be_nested_str(json),
- /* K3 */ be_nested_str(load),
- /* K4 */ be_nested_str(log),
- /* K5 */ be_nested_str(BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20),
- /* K6 */ be_const_int(3),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str(try_rule),
- /* K9 */ be_nested_str(k),
- /* K10 */ be_nested_str(v),
- /* K11 */ be_const_int(1),
- }),
- &be_const_str_exec_rules,
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0003, // 0001 JMPT R2 #0006
- 0x88080101, // 0002 GETMBR R2 R0 K1
- 0x4C0C0000, // 0003 LDNIL R3
- 0x20080403, // 0004 NE R2 R2 R3
- 0x780A0027, // 0005 JMPF R2 #002E
- 0xA40A0400, // 0006 IMPORT R2 K2
- 0x8C0C0503, // 0007 GETMET R3 R2 K3
- 0x5C140200, // 0008 MOVE R5 R1
- 0x7C0C0400, // 0009 CALL R3 2
- 0x50100000, // 000A LDBOOL R4 0 0
- 0x4C140000, // 000B LDNIL R5
- 0x1C140605, // 000C EQ R5 R3 R5
- 0x78160004, // 000D JMPF R5 #0013
- 0x8C140104, // 000E GETMET R5 R0 K4
- 0x001E0A01, // 000F ADD R7 K5 R1
- 0x58200006, // 0010 LDCONST R8 K6
- 0x7C140600, // 0011 CALL R5 3
- 0x5C0C0200, // 0012 MOVE R3 R1
- 0x88140101, // 0013 GETMBR R5 R0 K1
- 0x4C180000, // 0014 LDNIL R6
- 0x20140A06, // 0015 NE R5 R5 R6
- 0x78160000, // 0016 JMPF R5 #0018
- 0x90020203, // 0017 SETMBR R0 K1 R3
- 0x88140100, // 0018 GETMBR R5 R0 K0
- 0x78160012, // 0019 JMPF R5 #002D
- 0x58140007, // 001A LDCONST R5 K7
- 0x6018000C, // 001B GETGBL R6 G12
- 0x881C0100, // 001C GETMBR R7 R0 K0
- 0x7C180200, // 001D CALL R6 1
- 0x14180A06, // 001E LT R6 R5 R6
- 0x781A000C, // 001F JMPF R6 #002D
- 0x88180100, // 0020 GETMBR R6 R0 K0
- 0x94180C05, // 0021 GETIDX R6 R6 R5
- 0x8C1C0108, // 0022 GETMET R7 R0 K8
- 0x5C240600, // 0023 MOVE R9 R3
- 0x88280D09, // 0024 GETMBR R10 R6 K9
- 0x882C0D0A, // 0025 GETMBR R11 R6 K10
- 0x7C1C0800, // 0026 CALL R7 4
- 0x741E0001, // 0027 JMPT R7 #002A
- 0x74120000, // 0028 JMPT R4 #002A
- 0x50100001, // 0029 LDBOOL R4 0 1
- 0x50100200, // 002A LDBOOL R4 1 0
- 0x00140B0B, // 002B ADD R5 R5 K11
- 0x7001FFED, // 002C JMP #001B
- 0x80040800, // 002D RET 1 R4
- 0x50080000, // 002E LDBOOL R2 0 0
- 0x80040400, // 002F RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: hs2rgb
-********************************************************************/
-be_local_closure(Tasmota_hs2rgb, /* name */
- be_nested_proto(
- 17, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str(tasmota),
- /* K2 */ be_nested_str(scale_uint),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(2),
- /* K5 */ be_const_int(3),
- }),
- &be_const_str_hs2rgb,
- &be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0000, // 0002 JMPF R3 #0004
- 0x540A00FE, // 0003 LDINT R2 255
- 0x540E00FE, // 0004 LDINT R3 255
- 0x541200FE, // 0005 LDINT R4 255
- 0x541600FE, // 0006 LDINT R5 255
- 0x541A0167, // 0007 LDINT R6 360
- 0x10040206, // 0008 MOD R1 R1 R6
- 0x24180500, // 0009 GT R6 R2 K0
- 0x781A0031, // 000A JMPF R6 #003D
- 0x541A003B, // 000B LDINT R6 60
- 0x0C180206, // 000C DIV R6 R1 R6
- 0x541E003B, // 000D LDINT R7 60
- 0x101C0207, // 000E MOD R7 R1 R7
- 0x542200FE, // 000F LDINT R8 255
- 0x04201002, // 0010 SUB R8 R8 R2
- 0xB8260200, // 0011 GETNGBL R9 K1
- 0x8C241302, // 0012 GETMET R9 R9 K2
- 0x5C2C0E00, // 0013 MOVE R11 R7
- 0x58300000, // 0014 LDCONST R12 K0
- 0x5436003B, // 0015 LDINT R13 60
- 0x543A00FE, // 0016 LDINT R14 255
- 0x5C3C1000, // 0017 MOVE R15 R8
- 0x7C240C00, // 0018 CALL R9 6
- 0xB82A0200, // 0019 GETNGBL R10 K1
- 0x8C281502, // 001A GETMET R10 R10 K2
- 0x5C300E00, // 001B MOVE R12 R7
- 0x58340000, // 001C LDCONST R13 K0
- 0x543A003B, // 001D LDINT R14 60
- 0x5C3C1000, // 001E MOVE R15 R8
- 0x544200FE, // 001F LDINT R16 255
- 0x7C280C00, // 0020 CALL R10 6
- 0x1C2C0D00, // 0021 EQ R11 R6 K0
- 0x782E0002, // 0022 JMPF R11 #0026
- 0x5C141400, // 0023 MOVE R5 R10
- 0x5C101000, // 0024 MOVE R4 R8
- 0x70020016, // 0025 JMP #003D
- 0x1C2C0D03, // 0026 EQ R11 R6 K3
- 0x782E0002, // 0027 JMPF R11 #002B
- 0x5C0C1200, // 0028 MOVE R3 R9
- 0x5C101000, // 0029 MOVE R4 R8
- 0x70020011, // 002A JMP #003D
- 0x1C2C0D04, // 002B EQ R11 R6 K4
- 0x782E0002, // 002C JMPF R11 #0030
- 0x5C0C1000, // 002D MOVE R3 R8
- 0x5C101400, // 002E MOVE R4 R10
- 0x7002000C, // 002F JMP #003D
- 0x1C2C0D05, // 0030 EQ R11 R6 K5
- 0x782E0002, // 0031 JMPF R11 #0035
- 0x5C0C1000, // 0032 MOVE R3 R8
- 0x5C141200, // 0033 MOVE R5 R9
- 0x70020007, // 0034 JMP #003D
- 0x542E0003, // 0035 LDINT R11 4
- 0x1C2C0C0B, // 0036 EQ R11 R6 R11
- 0x782E0002, // 0037 JMPF R11 #003B
- 0x5C0C1400, // 0038 MOVE R3 R10
- 0x5C141000, // 0039 MOVE R5 R8
- 0x70020001, // 003A JMP #003D
- 0x5C141000, // 003B MOVE R5 R8
- 0x5C101200, // 003C MOVE R4 R9
- 0x541A000F, // 003D LDINT R6 16
- 0x38180606, // 003E SHL R6 R3 R6
- 0x541E0007, // 003F LDINT R7 8
- 0x381C0A07, // 0040 SHL R7 R5 R7
- 0x30180C07, // 0041 OR R6 R6 R7
- 0x30180C04, // 0042 OR R6 R6 R4
- 0x80040C00, // 0043 RET 1 R6
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(KV_init, /* name */
- be_nested_proto(
- 3, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(k),
- /* K1 */ be_nested_str(v),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: KV
-********************************************************************/
-be_local_class(KV,
- 2,
- NULL,
- be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(k, 2), be_const_var(0) },
- { be_const_key(v, -1), be_const_var(1) },
- { be_const_key(init, -1), be_const_closure(KV_init_closure) },
- })),
- be_str_literal("KV")
-);
-
-/********************************************************************
-** Solidified function: kv
-********************************************************************/
-be_local_closure(Tasmota_kv, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_const_class(be_class_KV),
- }),
- &be_const_str_kv,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0xB4000000, // 0001 CLASS K0
- 0x5C100600, // 0002 MOVE R4 R3
- 0x5C140200, // 0003 MOVE R5 R1
- 0x5C180400, // 0004 MOVE R6 R2
- 0x7C100400, // 0005 CALL R4 2
- 0x80040800, // 0006 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_cmd
-********************************************************************/
-be_local_closure(Tasmota_remove_cmd, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str(_ccmd),
- /* K1 */ be_nested_str(remove),
- }),
- &be_const_str_remove_cmd,
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0003, // 0001 JMPF R2 #0006
- 0x88080100, // 0002 GETMBR R2 R0 K0
- 0x8C080501, // 0003 GETMET R2 R2 K1
- 0x5C100200, // 0004 MOVE R4 R1
- 0x7C080400, // 0005 CALL R2 2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_timer
-********************************************************************/
-be_local_closure(Tasmota_set_timer, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str(_timers),
- /* K1 */ be_nested_str(push),
- /* K2 */ be_nested_str(Timer),
- /* K3 */ be_nested_str(millis),
- }),
- &be_const_str_set_timer,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x74120002, // 0001 JMPT R4 #0005
- 0x60100012, // 0002 GETGBL R4 G18
- 0x7C100000, // 0003 CALL R4 0
- 0x90020004, // 0004 SETMBR R0 K0 R4
- 0x88100100, // 0005 GETMBR R4 R0 K0
- 0x8C100901, // 0006 GETMET R4 R4 K1
- 0xB81A0400, // 0007 GETNGBL R6 K2
- 0x8C1C0103, // 0008 GETMET R7 R0 K3
- 0x5C240200, // 0009 MOVE R9 R1
- 0x7C1C0400, // 000A CALL R7 2
- 0x5C200400, // 000B MOVE R8 R2
- 0x5C240600, // 000C MOVE R9 R3
- 0x7C180600, // 000D CALL R6 3
- 0x7C100400, // 000E CALL R4 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_timer
-********************************************************************/
-be_local_closure(Tasmota_remove_timer, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str(tasmota),
- /* K1 */ be_nested_str(_timers),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str(size),
- /* K4 */ be_nested_str(id),
- /* K5 */ be_nested_str(remove),
- /* K6 */ be_const_int(1),
- }),
- &be_const_str_remove_timer,
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x88080501, // 0001 GETMBR R2 R2 K1
- 0x780A0012, // 0002 JMPF R2 #0016
- 0x58080002, // 0003 LDCONST R2 K2
- 0xB80E0000, // 0004 GETNGBL R3 K0
- 0x880C0701, // 0005 GETMBR R3 R3 K1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x140C0403, // 0008 LT R3 R2 R3
- 0x780E000B, // 0009 JMPF R3 #0016
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x940C0602, // 000B GETIDX R3 R3 R2
- 0x880C0704, // 000C GETMBR R3 R3 K4
- 0x1C0C0601, // 000D EQ R3 R3 R1
- 0x780E0004, // 000E JMPF R3 #0014
- 0x880C0101, // 000F GETMBR R3 R0 K1
- 0x8C0C0705, // 0010 GETMET R3 R3 K5
- 0x5C140400, // 0011 MOVE R5 R2
- 0x7C0C0400, // 0012 CALL R3 2
- 0x70020000, // 0013 JMP #0015
- 0x00080506, // 0014 ADD R2 R2 K6
- 0x7001FFED, // 0015 JMP #0004
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: exec_cmd
-********************************************************************/
-be_local_closure(Tasmota_exec_cmd, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str(_ccmd),
- /* K1 */ be_nested_str(json),
- /* K2 */ be_nested_str(load),
- /* K3 */ be_nested_str(find_key_i),
- /* K4 */ be_nested_str(resolvecmnd),
- }),
- &be_const_str_exec_cmd,
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x78120016, // 0001 JMPF R4 #0019
- 0xA4120200, // 0002 IMPORT R4 K1
- 0x8C140902, // 0003 GETMET R5 R4 K2
- 0x5C1C0600, // 0004 MOVE R7 R3
- 0x7C140400, // 0005 CALL R5 2
- 0x8C180103, // 0006 GETMET R6 R0 K3
- 0x88200100, // 0007 GETMBR R8 R0 K0
- 0x5C240200, // 0008 MOVE R9 R1
- 0x7C180600, // 0009 CALL R6 3
- 0x4C1C0000, // 000A LDNIL R7
- 0x201C0C07, // 000B NE R7 R6 R7
- 0x781E000B, // 000C JMPF R7 #0019
- 0x8C1C0104, // 000D GETMET R7 R0 K4
- 0x5C240C00, // 000E MOVE R9 R6
- 0x7C1C0400, // 000F CALL R7 2
- 0x881C0100, // 0010 GETMBR R7 R0 K0
- 0x941C0E06, // 0011 GETIDX R7 R7 R6
- 0x5C200C00, // 0012 MOVE R8 R6
- 0x5C240400, // 0013 MOVE R9 R2
- 0x5C280600, // 0014 MOVE R10 R3
- 0x5C2C0A00, // 0015 MOVE R11 R5
- 0x7C1C0800, // 0016 CALL R7 4
- 0x501C0200, // 0017 LDBOOL R7 1 0
- 0x80040E00, // 0018 RET 1 R7
- 0x50100000, // 0019 LDBOOL R4 0 0
- 0x80040800, // 001A RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_light
-********************************************************************/
-be_local_closure(Tasmota_get_light, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* 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(tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29),
- /* K1 */ be_nested_str(light),
- /* K2 */ be_nested_str(get),
- }),
- &be_const_str_get_light,
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x60080001, // 0000 GETGBL R2 G1
- 0x580C0000, // 0001 LDCONST R3 K0
- 0x7C080200, // 0002 CALL R2 1
- 0xA40A0200, // 0003 IMPORT R2 K1
- 0x4C0C0000, // 0004 LDNIL R3
- 0x200C0203, // 0005 NE R3 R1 R3
- 0x780E0004, // 0006 JMPF R3 #000C
- 0x8C0C0502, // 0007 GETMET R3 R2 K2
- 0x5C140200, // 0008 MOVE R5 R1
- 0x7C0C0400, // 0009 CALL R3 2
- 0x80040600, // 000A RET 1 R3
- 0x70020002, // 000B JMP #000F
- 0x8C0C0502, // 000C GETMET R3 R2 K2
- 0x7C0C0200, // 000D CALL R3 1
- 0x80040600, // 000E RET 1 R3
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-#include "../generate/be_fixed_be_class_tasmota.h"
-
-
-// Class definition
-void be_load_tasmota_ntvlib(bvm *vm)
-{
- be_pushntvclass(vm, &be_class_tasmota);
- be_setglobal(vm, "Tasmota");
- be_pop(vm, 1);
-}
-
-/* @const_object_info_begin
-class be_class_tasmota (scope: global, name: Tasmota) {
- _rules, var
- _timers, var
- _ccmd, var
- _drivers, var
- wire1, var
- wire2, var
- global, var
- settings, var
- cmd_res, var
- wd, var
- _debug_present, var
-
- _global_def, comptr(&be_tasmota_global_struct)
- _settings_def, comptr(&be_tasmota_settings_struct)
- _global_addr, comptr(&TasmotaGlobal)
- _settings_ptr, comptr(&Settings)
-
- init, closure(Tasmota_init_closure)
- kv, closure(Tasmota_kv_closure)
-
- get_free_heap, func(l_getFreeHeap)
- arch, func(l_arch)
- publish, func(l_publish)
- publish_result, func(l_publish_result)
- _cmd, func(l_cmd)
- get_option, func(l_getoption)
- millis, func(l_millis)
- time_reached, func(l_timereached)
- rtc, func(l_rtc)
- time_dump, func(l_time_dump)
- strftime, func(l_strftime)
- strptime, func(l_strptime)
- memory, func(l_memory)
- wifi, func(l_wifi)
- eth, func(l_eth)
- yield, func(l_yield)
- delay, func(l_delay)
- scale_uint, func(l_scaleuint)
- log, func(l_logInfo)
- save, func(l_save)
-
- read_sensors, func(l_read_sensors)
-
- resp_cmnd, func(l_respCmnd)
- resp_cmnd_str, func(l_respCmndStr)
- resp_cmnd_done, func(l_respCmndDone)
- resp_cmnd_error, func(l_respCmndError)
- resp_cmnd_failed, func(l_respCmndFailed)
- resolvecmnd, func(l_resolveCmnd)
-
- response_append, func(l_respAppend)
- web_send, func(l_webSend)
- web_send_decimal, func(l_webSendDecimal)
-
- get_power, func(l_getpower)
- set_power, func(l_setpower)
- get_switch, func(l_getswitch)
-
- i2c_enabled, func(l_i2cenabled)
-
- cmd, closure(Tasmota_cmd_closure)
- chars_in_string, closure(Tasmota_chars_in_string_closure)
- find_key_i, closure(Tasmota_find_key_i_closure)
- find_op, closure(Tasmota_find_op_closure)
- add_rule, closure(Tasmota_add_rule_closure)
- remove_rule, closure(Tasmota_remove_rule_closure)
- try_rule, closure(Tasmota_try_rule_closure)
- exec_rules, closure(Tasmota_exec_rules_closure)
- exec_tele, closure(Tasmota_exec_tele_closure)
- set_timer, closure(Tasmota_set_timer_closure)
- run_deferred, closure(Tasmota_run_deferred_closure)
- remove_timer, closure(Tasmota_remove_timer_closure)
- add_cmd, closure(Tasmota_add_cmd_closure)
- remove_cmd, closure(Tasmota_remove_cmd_closure)
- exec_cmd, closure(Tasmota_exec_cmd_closure)
- gc, closure(Tasmota_gc_closure)
- event, closure(Tasmota_event_closure)
- add_driver, closure(Tasmota_add_driver_closure)
- remove_driver, closure(Tasmota_remove_driver_closure)
- load, closure(Tasmota_load_closure)
- wire_scan, closure(Tasmota_wire_scan_closure)
- time_str, closure(Tasmota_time_str_closure)
-
- hs2rgb, closure(Tasmota_hs2rgb_closure)
-
- gen_cb, closure(Tasmota_gen_cb_closure)
-
- get_light, closure(Tasmota_get_light_closure)
- set_light, closure(Tasmota_set_light_closure)
-}
-@const_object_info_end */
diff --git a/lib/libesp32/berry/default/be_tcpclient_lib.c b/lib/libesp32/berry/default/be_tcpclient_lib.c
deleted file mode 100644
index b39db458e..000000000
--- a/lib/libesp32/berry/default/be_tcpclient_lib.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/********************************************************************
- * Webclient mapped to Arduino framework
- *
- * To use: `d = webclient()`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_WEBCLIENT
-
-extern int wc_tcp_init(bvm *vm);
-extern int wc_tcp_deinit(bvm *vm);
-
-extern int wc_tcp_connect(bvm *vm);
-extern int wc_tcp_connected(bvm *vm);
-extern int wc_tcp_close(bvm *vm);
-extern int wc_tcp_available(bvm *vm);
-
-extern int wc_tcp_write(bvm *vm);
-extern int wc_tcp_read(bvm *vm);
-extern int wc_tcp_readbytes(bvm *vm);
-
-#include "../generate/be_fixed_be_class_tcpclient.h"
-
-void be_load_tcpclient_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_tcpclient);
- be_setglobal(vm, "tcpclient");
- be_pop(vm, 1);
-}
-/* @const_object_info_begin
-
-class be_class_tcpclient (scope: global, name: tcpclient) {
- .w, var
- init, func(wc_tcp_init)
- deinit, func(wc_tcp_deinit)
-
- connect, func(wc_tcp_connect)
- connected, func(wc_tcp_connected)
- close, func(wc_tcp_close)
- available, func(wc_tcp_available)
-
- write, func(wc_tcp_write)
- read, func(wc_tcp_read)
- readbytes, func(wc_tcp_readbytes)
-}
-@const_object_info_end */
-
-#endif // USE_WEBCLIENT
diff --git a/lib/libesp32/berry/default/be_timer_class.c b/lib/libesp32/berry/default/be_timer_class.c
deleted file mode 100644
index 6664e408e..000000000
--- a/lib/libesp32/berry/default/be_timer_class.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * class Timer
- *******************************************************************/
-#include "be_constobj.h"
-
-/********************************************************************
-** Solidified function: tostring
-********************************************************************/
-be_local_closure(Timer_tostring, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(string),
- /* K1 */ be_nested_str(format),
- /* K2 */ be_nested_str(_X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
- /* K3 */ be_nested_str(due),
- /* K4 */ be_nested_str(f),
- /* K5 */ be_nested_str(id),
- }),
- &be_const_str_tostring,
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080301, // 0001 GETMET R2 R1 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x60140008, // 0003 GETGBL R5 G8
- 0x60180006, // 0004 GETGBL R6 G6
- 0x5C1C0000, // 0005 MOVE R7 R0
- 0x7C180200, // 0006 CALL R6 1
- 0x7C140200, // 0007 CALL R5 1
- 0x60180008, // 0008 GETGBL R6 G8
- 0x881C0103, // 0009 GETMBR R7 R0 K3
- 0x7C180200, // 000A CALL R6 1
- 0x601C0008, // 000B GETGBL R7 G8
- 0x88200104, // 000C GETMBR R8 R0 K4
- 0x7C1C0200, // 000D CALL R7 1
- 0x60200008, // 000E GETGBL R8 G8
- 0x88240105, // 000F GETMBR R9 R0 K5
- 0x7C200200, // 0010 CALL R8 1
- 0x7C080C00, // 0011 CALL R2 6
- 0x80040400, // 0012 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-be_local_closure(Timer_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 4, /* 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(due),
- /* K1 */ be_nested_str(f),
- /* K2 */ be_nested_str(id),
- }),
- &be_const_str_init,
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Timer
-********************************************************************/
-be_local_class(Timer,
- 3,
- NULL,
- be_nested_map(5,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(tostring, 4), be_const_closure(Timer_tostring_closure) },
- { be_const_key(id, 2), be_const_var(2) },
- { be_const_key(f, -1), be_const_var(1) },
- { be_const_key(due, -1), be_const_var(0) },
- { be_const_key(init, -1), be_const_closure(Timer_init_closure) },
- })),
- be_str_literal("Timer")
-);
-/*******************************************************************/
-
-void be_load_Timer_class(bvm *vm) {
- be_pushntvclass(vm, &be_class_Timer);
- be_setglobal(vm, "Timer");
- be_pop(vm, 1);
-}
diff --git a/lib/libesp32/berry/default/be_unishox_lib.c b/lib/libesp32/berry/default/be_unishox_lib.c
deleted file mode 100644
index 971f4c9e0..000000000
--- a/lib/libesp32/berry/default/be_unishox_lib.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/********************************************************************
- * Berry module `unishox`
- *
- * To use: `import unishox`
- *
- * Allows to respond to HTTP request
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_UNISHOX_COMPRESSION
-
-extern int be_ntv_unishox_decompress(bvm *vm);
-extern int be_ntv_unishox_compress(bvm *vm);
-
-/********************************************************************
-** Solidified module: unishox
-********************************************************************/
-be_local_module(unishox,
- "unishox",
- be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(decompress, -1), be_const_func(be_ntv_unishox_decompress) },
- { be_const_key(compress, -1), be_const_func(be_ntv_unishox_compress) },
- }))
-);
-BE_EXPORT_VARIABLE be_define_const_native_module(unishox);
-
-#endif // USE_UNISHOX_COMPRESSION
diff --git a/lib/libesp32/berry/default/be_webclient_lib.c b/lib/libesp32/berry/default/be_webclient_lib.c
deleted file mode 100644
index 0e4b66e90..000000000
--- a/lib/libesp32/berry/default/be_webclient_lib.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/********************************************************************
- * Webclient mapped to Arduino framework
- *
- * To use: `d = webclient()`
- *
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_WEBCLIENT
-
-extern int wc_init(bvm *vm);
-extern int wc_deinit(bvm *vm);
-extern int wc_urlencode(bvm *vm);
-extern int wc_begin(bvm *vm);
-extern int wc_set_timeouts(bvm *vm);
-extern int wc_set_useragent(bvm *vm);
-extern int wc_set_auth(bvm *vm);
-extern int wc_connected(bvm *vm);
-extern int wc_close(bvm *vm);
-extern int wc_addheader(bvm *vm);
-extern int wc_GET(bvm *vm);
-extern int wc_POST(bvm *vm);
-extern int wc_getstring(bvm *vm);
-extern int wc_writefile(bvm *vm);
-extern int wc_getsize(bvm *vm);
-
-#include "../generate/be_fixed_be_class_webclient.h"
-
-void be_load_webclient_lib(bvm *vm) {
- be_pushntvclass(vm, &be_class_webclient);
- be_setglobal(vm, "webclient");
- be_pop(vm, 1);
-}
-/* @const_object_info_begin
-
-class be_class_webclient (scope: global, name: webclient) {
- .p, var
- .w, var
- init, func(wc_init)
- deinit, func(wc_deinit)
- url_encode, func(wc_urlencode)
-
- begin, func(wc_begin)
- set_timeouts, func(wc_set_timeouts)
- set_useragent, func(wc_set_useragent)
- set_auth, func(wc_set_auth)
- close, func(wc_close)
- add_header, func(wc_addheader)
- GET, func(wc_GET)
- POST, func(wc_POST)
- get_string, func(wc_getstring)
- write_file, func(wc_writefile)
- get_size, func(wc_getsize)
-}
-@const_object_info_end */
-
-#endif // USE_WEBCLIENT
diff --git a/lib/libesp32/berry/default/be_webserver_lib.c b/lib/libesp32/berry/default/be_webserver_lib.c
deleted file mode 100644
index 0f3e45d05..000000000
--- a/lib/libesp32/berry/default/be_webserver_lib.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/********************************************************************
- * Berry module `webserver`
- *
- * To use: `import webserver`
- *
- * Allows to respond to HTTP request
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_WEBSERVER
-
-extern int w_webserver_member(bvm *vm);
-extern int w_webserver_on(bvm *vm);
-extern int w_webserver_state(bvm *vm);
-
-extern int w_webserver_check_privileged_access(bvm *vm);
-extern int w_webserver_redirect(bvm *vm);
-extern int w_webserver_content_start(bvm *vm);
-extern int w_webserver_content_send(bvm *vm);
-extern int w_webserver_content_send_style(bvm *vm);
-extern int w_webserver_content_flush(bvm *vm);
-extern int w_webserver_content_stop(bvm *vm);
-extern int w_webserver_content_button(bvm *vm);
-
-extern int w_webserver_argsize(bvm *vm);
-extern int w_webserver_arg(bvm *vm);
-extern int w_webserver_arg_name(bvm *vm);
-extern int w_webserver_has_arg(bvm *vm);
-
-
-/* @const_object_info_begin
-module webserver (scope: global) {
- member, func(w_webserver_member)
-
- on, func(w_webserver_on)
- state, func(w_webserver_state)
-
- check_privileged_access, func(w_webserver_check_privileged_access)
- redirect, func(w_webserver_redirect)
- content_send, func(w_webserver_content_send)
- content_send_style, func(w_webserver_content_send_style)
- content_flush, func(w_webserver_content_flush)
- content_start, func(w_webserver_content_start)
- content_stop, func(w_webserver_content_stop)
- content_button, func(w_webserver_content_button)
-
- arg_size, func(w_webserver_argsize)
- arg, func(w_webserver_arg)
- arg_name, func(w_webserver_arg_name)
- has_arg, func(w_webserver_has_arg)
-}
-@const_object_info_end */
-#include "../generate/be_fixed_webserver.h"
-
-#endif // USE_WEBSERVER
diff --git a/lib/libesp32/berry/default/be_wirelib.c b/lib/libesp32/berry/default/be_wirelib.c
deleted file mode 100644
index 38f345553..000000000
--- a/lib/libesp32/berry/default/be_wirelib.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/********************************************************************
- * Tasmota lib
- *
- * To use: `import wire`
- *
- * 2 wire communication - I2C
- *******************************************************************/
-#include "be_constobj.h"
-
-#ifdef USE_I2C
-
-extern int b_wire_init(bvm *vm);
-
-extern int b_wire_begintransmission(bvm *vm);
-extern int b_wire_endtransmission(bvm *vm);
-extern int b_wire_requestfrom(bvm *vm);
-extern int b_wire_available(bvm *vm);
-extern int b_wire_write(bvm *vm);
-extern int b_wire_read(bvm *vm);
-
-extern int b_wire_scan(bvm *vm);
-
-extern int b_wire_validwrite(bvm *vm);
-extern int b_wire_validread(bvm *vm);
-extern int b_wire_detect(bvm *vm);
-extern int b_wire_enabled(bvm *vm);
-
-/********************************************************************
-** Solidified function: write_bytes
-********************************************************************/
-be_local_closure(write_bytes, /* name */
- be_nested_proto(
- 7, /* nstack */
- 4, /* 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(_begin_transmission),
- /* K1 */ be_nested_str(_write),
- /* K2 */ be_nested_str(_end_transmission),
- }),
- &be_const_str_write_bytes,
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x8C100100, // 0000 GETMET R4 R0 K0
- 0x5C180200, // 0001 MOVE R6 R1
- 0x7C100400, // 0002 CALL R4 2
- 0x8C100101, // 0003 GETMET R4 R0 K1
- 0x5C180400, // 0004 MOVE R6 R2
- 0x7C100400, // 0005 CALL R4 2
- 0x8C100101, // 0006 GETMET R4 R0 K1
- 0x5C180600, // 0007 MOVE R6 R3
- 0x7C100400, // 0008 CALL R4 2
- 0x8C100102, // 0009 GETMET R4 R0 K2
- 0x7C100200, // 000A CALL R4 1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_bytes
-********************************************************************/
-be_local_closure(read_bytes, /* name */
- be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL, /* no sub protos */
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str(_begin_transmission),
- /* K1 */ be_nested_str(_write),
- /* K2 */ be_nested_str(_end_transmission),
- /* K3 */ be_nested_str(_request_from),
- /* K4 */ be_nested_str(_available),
- /* K5 */ be_nested_str(_read),
- }),
- &be_const_str_read_bytes,
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x8C100100, // 0000 GETMET R4 R0 K0
- 0x5C180200, // 0001 MOVE R6 R1
- 0x7C100400, // 0002 CALL R4 2
- 0x8C100101, // 0003 GETMET R4 R0 K1
- 0x5C180400, // 0004 MOVE R6 R2
- 0x7C100400, // 0005 CALL R4 2
- 0x8C100102, // 0006 GETMET R4 R0 K2
- 0x50180000, // 0007 LDBOOL R6 0 0
- 0x7C100400, // 0008 CALL R4 2
- 0x8C100103, // 0009 GETMET R4 R0 K3
- 0x5C180200, // 000A MOVE R6 R1
- 0x5C1C0600, // 000B MOVE R7 R3
- 0x7C100600, // 000C CALL R4 3
- 0x60100015, // 000D GETGBL R4 G21
- 0x5C140600, // 000E MOVE R5 R3
- 0x7C100200, // 000F CALL R4 1
- 0x8C140104, // 0010 GETMET R5 R0 K4
- 0x7C140200, // 0011 CALL R5 1
- 0x78160003, // 0012 JMPF R5 #0017
- 0x8C140105, // 0013 GETMET R5 R0 K5
- 0x7C140200, // 0014 CALL R5 1
- 0x40140805, // 0015 CONNECT R5 R4 R5
- 0x7001FFF8, // 0016 JMP #0010
- 0x80040800, // 0017 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-#include "../generate/be_fixed_be_class_tasmota_wire.h"
-
-void be_load_wirelib(bvm *vm) {
- be_pushntvclass(vm, &be_class_tasmota_wire);
- be_setglobal(vm, "Wire");
- be_pop(vm, 1);
-}
-/* @const_object_info_begin
-
-class be_class_tasmota_wire (scope: global, name: Wire) {
- bus, var
-
- init, func(b_wire_init)
- _begin_transmission, func(b_wire_begintransmission)
- _end_transmission, func(b_wire_endtransmission)
- _request_from, func(b_wire_requestfrom)
- _available, func(b_wire_available)
- _write, func(b_wire_write)
- _read, func(b_wire_read)
- scan, func(b_wire_scan)
- write, func(b_wire_validwrite)
- read, func(b_wire_validread)
- detect, func(b_wire_detect)
- enabled, func(b_wire_enabled)
-
- read_bytes, closure(read_bytes_closure)
- write_bytes, closure(write_bytes_closure)
-}
-@const_object_info_end */
-
-#endif // USE_I2C
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/berry_conf.h b/lib/libesp32/berry/default/berry_conf.h
deleted file mode 100644
index 607a9c612..000000000
--- a/lib/libesp32/berry/default/berry_conf.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/********************************************************************
-** Copyright (c) 2018-2020 Guan Wenliang
-** This file is part of the Berry default interpreter.
-** skiars@qq.com, https://github.com/Skiars/berry
-** See Copyright Notice in the LICENSE file or at
-** https://github.com/Skiars/berry/blob/master/LICENSE
-********************************************************************/
-#ifndef BERRY_CONF_H
-#define BERRY_CONF_H
-
-#include
-
-#ifdef COMPILE_BERRY_LIB
- #include "my_user_config.h"
- #include "tasmota_configurations.h"
-#endif
-
-/* Macro: BE_DEBUG
- * Berry interpreter debug switch.
- * Default: 0
- **/
-#ifndef BE_DEBUG
-#define BE_DEBUG 0
-#endif
-
-/* Macro: BE_LONGLONG_INT
- * Select integer length.
- * If the value is 0, use an integer of type int, use a long
- * integer type when the value is 1, and use a long long integer
- * type when the value is 2.
- * Default: 2
- */
-#define BE_INTGER_TYPE 1 // use long int = uint32_t
-
-/* Macro: BE_USE_SINGLE_FLOAT
- * Select floating point precision.
- * Use double-precision floating-point numbers when the value
- * is 0 (default), otherwise use single-precision floating-point
- * numbers.
- * Default: 0
- **/
-#define BE_USE_SINGLE_FLOAT 1 // use `float` not `double`
-
-/* Macro: BE_USE_PRECOMPILED_OBJECT
- * Use precompiled objects to avoid creating these objects at
- * runtime. Enable this macro can greatly optimize RAM usage.
- * Default: 1
- **/
-#define BE_USE_PRECOMPILED_OBJECT 1
-
-/* Macro: BE_DEBUG_RUNTIME_INFO
- * Set runtime error debugging information.
- * 0: unable to output source file and line number at runtime.
- * 1: output source file and line number information at runtime.
- * 2: the information use uint16_t type (save space).
- * Default: 1
- **/
-#define BE_DEBUG_RUNTIME_INFO 0
-
-/* Macro: BE_DEBUG_VAR_INFO
- * Set variable debugging tracking information.
- * 0: disable variable debugging tracking information at runtime.
- * 1: enable variable debugging tracking information at runtime.
- * Default: 1
- **/
-#define BE_DEBUG_VAR_INFO 0
-
-/* 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_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.
- * Default: 20 - which translates to 2^20 or ~1 million instructions
- **/
-#define BE_VM_OBSERVABILITY_SAMPLING 20
-
-/* Macro: BE_STACK_TOTAL_MAX
- * Set the maximum total stack size.
- * Default: 20000
- **/
-#define BE_STACK_TOTAL_MAX 8000
-
-/* Macro: BE_STACK_FREE_MIN
- * Set the minimum free count of the stack. The stack idles will
- * be checked when a function is called, and the stack will be
- * expanded if the number of free is less than BE_STACK_FREE_MIN.
- * Default: 10
- **/
-#define BE_STACK_FREE_MIN 20
-
-/* Macro: BE_STACK_START
- * Set the starting size of the stack at VM creation.
- * Default: 50
- **/
-#define BE_STACK_START 100
-
-/* Macro: BE_CONST_SEARCH_SIZE
- * Constants in function are limited to 255. However the compiler
- * will look for a maximum of pre-existing constants to avoid
- * performance degradation. This may cause the number of constants
- * to be higher than required.
- * Increase is you need to solidify functions.
- * Default: 50
- **/
-#define BE_CONST_SEARCH_SIZE 150
-
-/* Macro: BE_STACK_FREE_MIN
- * The short string will hold the hash value when the value is
- * true. It may be faster but requires more RAM.
- * Default: 0
- **/
-#define BE_USE_STR_HASH_CACHE 0
-
-/* Macro: BE_USE_FILE_SYSTEM
- * The file system interface will be used when this macro is true
- * or when using the OS module. Otherwise the file system interface
- * will not be used.
- * Default: 0
- **/
-#define BE_USE_FILE_SYSTEM 0
-
-/* Macro: BE_USE_SCRIPT_COMPILER
- * Enable compiler when BE_USE_SCRIPT_COMPILER is not 0, otherwise
- * disable the compiler.
- * Default: 1
- **/
-#define BE_USE_SCRIPT_COMPILER 1
-
-/* Macro: BE_USE_BYTECODE_SAVER
- * Enable save bytecode to file when BE_USE_BYTECODE_SAVER is not 0,
- * otherwise disable the feature.
- * Default: 1
- **/
-#define BE_USE_BYTECODE_SAVER 1
-
-/* Macro: BE_USE_BYTECODE_LOADER
- * Enable load bytecode from file when BE_USE_BYTECODE_LOADER is not 0,
- * otherwise disable the feature.
- * Default: 1
- **/
-#define BE_USE_BYTECODE_LOADER 1
-
-/* Macro: BE_USE_SHARED_LIB
- * Enable shared library when BE_USE_SHARED_LIB is not 0,
- * otherwise disable the feature.
- * Default: 1
- **/
-#define BE_USE_SHARED_LIB 0
-
-/* Macro: BE_USE_OVERLOAD_HASH
- * Allows instances to overload hash methods for use in the
- * built-in Map class. Disable this feature to crop the code
- * size.
- * Default: 1
- **/
-#define BE_USE_OVERLOAD_HASH 1
-
-/* Macro: BE_USE_DEBUG_HOOK
- * Berry debug hook switch.
- * Default: 0
- **/
-#define BE_USE_DEBUG_HOOK 0
-
-/* Macro: BE_USE_DEBUG_GC
- * Enable GC debug mode. This causes an actual gc after each
- * allocation. It's much slower and should not be used
- * in production code.
- * Default: 0
- **/
-#define BE_USE_DEBUG_GC 0
-
-/* Macro: BE_USE_XXX_MODULE
- * These macros control whether the related module is compiled.
- * When they are true, they will enable related modules. At this
- * point you can use the import statement to import the module.
- * They will not compile related modules when they are false.
- **/
-#define BE_USE_STRING_MODULE 1
-#define BE_USE_JSON_MODULE 1
-#define BE_USE_MATH_MODULE 1
-#define BE_USE_TIME_MODULE 0
-#define BE_USE_OS_MODULE 0
-#define BE_USE_GLOBAL_MODULE 1
-#define BE_USE_SYS_MODULE 1
-#define BE_USE_DEBUG_MODULE 0
-#define BE_USE_GC_MODULE 1
-#define BE_USE_SOLIDIFY_MODULE 0
-#define BE_USE_INTROSPECT_MODULE 1
-#define BE_USE_STRICT_MODULE 1
-
-#ifdef USE_BERRY_DEBUG
- #undef BE_USE_DEBUG_MODULE
- #undef BE_USE_SOLIDIFY_MODULE
- #define BE_USE_DEBUG_MODULE 1
- #define BE_USE_SOLIDIFY_MODULE 1
-#endif // USE_BERRY_DEBUG
-
-/* Macro: BE_EXPLICIT_XXX
- * If these macros are defined, the corresponding function will
- * use the version defined by these macros. These macro definitions
- * are not required.
- * The default is to use the functions in the standard library.
- **/
-#ifdef USE_BERRY_PSRAM
-#ifdef __cplusplus
-extern "C" {
-#endif
- extern void *berry_malloc(size_t size);
- extern void berry_free(void *ptr);
- extern void *berry_realloc(void *ptr, size_t size);
-#ifdef __cplusplus
-}
-#endif
- #define BE_EXPLICIT_MALLOC berry_malloc
- #define BE_EXPLICIT_FREE berry_free
- #define BE_EXPLICIT_REALLOC berry_realloc
-#else
- #define BE_EXPLICIT_MALLOC malloc
- #define BE_EXPLICIT_FREE free
- #define BE_EXPLICIT_REALLOC realloc
-#endif // USE_BERRY_PSRAM
-
-#define BE_EXPLICIT_ABORT abort
-#define BE_EXPLICIT_EXIT exit
-// #define BE_EXPLICIT_MALLOC malloc
-// #define BE_EXPLICIT_FREE free
-// #define BE_EXPLICIT_REALLOC realloc
-
-/* Macro: be_assert
- * Berry debug assertion. Only enabled when BE_DEBUG is active.
- * Default: use the assert() function of the standard library.
- **/
-#define be_assert(expr) assert(expr)
-
-/* Tasmota debug specific */
-#ifdef USE_BERRY_DEBUG
- #undef BE_DEBUG_RUNTIME_INFO
- #define BE_DEBUG_RUNTIME_INFO 2 /* record line information in 16 bits */
-#endif // USE_BERRY_DEBUG
-
-#endif
diff --git a/lib/libesp32/berry/default/embedded/Animate.be b/lib/libesp32/berry/default/embedded/Animate.be
deleted file mode 100644
index 279fd39ed..000000000
--- a/lib/libesp32/berry/default/embedded/Animate.be
+++ /dev/null
@@ -1,189 +0,0 @@
-#
-# class Animate
-#
-# Animation framework
-#
-
-animate = module("animate")
-
-# state-machine: from val a to b
-class Animate_ins_ramp
- var a # starting value
- var b # end value
- var duration # duration in milliseconds
-
- def init(a,b,duration)
- self.a = a
- self.b = b
- self.duration = duration
- end
-end
-animate.ins_ramp = Animate_ins_ramp
-
-# state-machine: pause and goto
-class Animate_ins_goto
- var pc_rel # relative PC, -1 previous instruction, 1 next instruction, 0 means see pc_abs
- var pc_abs # absolute PC, only if pc_rel == 0, address if next instruction
- var duration # pause in milliseconds before goto, -1 means infinite (state-machine can be changed externally)
-
- def init(pc_rel, pc_abs, duration)
- self.pc_rel = pc_rel
- self.pc_abs = pc_abs
- self.duration = duration
- end
-end
-animate.ins_goto = Animate_ins_goto
-
-class Animate_engine
- var code # array of state-machine instructions
- var closure # closure to call with the new value
- var pc # program-counter
- var ins_time # absolute time when the current instruction started
- var running # is the animation running? allows fast return
- var value # current value
-
- def init()
- self.code = []
- self.pc = 0 # start at instruction 0
- self.ins_time = 0
- self.running = false # not running by default
- #
- end
-
- # run but needs external calls to `animate()`
- # cur_time:int (opt) current timestamp in ms, defaults to `tasmota.millis()`
- # val:int (opt) starting value, default to `nil`
- def run(cur_time, val)
- if cur_time == nil cur_time = tasmota.millis() end
- if (val != nil) self.value = val end
- self.ins_time = cur_time
-
- self.running = true
- tasmota.add_driver(self)
- end
-
- # runs autonomously in the Tasmota event loop
- def autorun(cur_time, val)
- self.run(cur_time, val)
- tasmota.add_driver(self)
- end
-
- def stop()
- self.running = false
- tasmota.remove_driver(self)
- end
-
- def is_running()
- return self.running
- end
-
- def every_50ms()
- self.animate()
- end
-
- def animate(cur_time) # time in milliseconds, optional, defaults to `tasmota.millis()`
- if !self.running return end
- if cur_time == nil cur_time = tasmota.millis() end
- # run through instructions
- while true
- var sub_index = cur_time - self.ins_time # time since the beginning of current instruction
- #
- # make sure PC is valid
- if self.pc >= size(self.code)
- self.running = false
- break
- end
- #
- if self.pc < 0 raise "internal_error", "Animate pc is out of range" end
- var ins = self.code[self.pc]
-
- # Instruction Ramp
- if isinstance(ins, animate.ins_ramp)
- var f = self.closure # assign to a local variable to not call a method
- if sub_index < ins.duration
- # we're still in the ramp
- self.value = tasmota.scale_uint(sub_index, 0, ins.duration, ins.a, ins.b)
- # call closure
- if f f(self.value) end # call closure, need try? TODO
- break
- else
- self.value = ins.b
- if f f(self.value) end # set to last value
- self.pc += 1 # next instruction
- self.ins_time = cur_time - (sub_index - ins.duration)
- end
-
- # Instruction Goto
- elif isinstance(ins, animate.ins_goto)
- if sub_index < ins.duration
- break
- else
- if ins.pc_rel != 0
- self.pc += ins.pc_rel
- else
- self.pc = ins.pc_abs
- end
- self.ins_time = cur_time - (sub_index - ins.duration)
- end
-
- # Invalid
- else
- raise "internal_error", "unknown instruction"
- end
- end
- return self.value
-
- end
-end
-animate.engine = Animate_engine
-
-class Animate_from_to : Animate_engine
-
- def init(closure, from, to, duration)
- super(self).init()
- self.closure = closure
- self.code.push(animate.ins_ramp(from, to, duration))
- end
-
-end
-animate.from_to = Animate_from_to
-
-#-
-a=Animate_from_to(nil, 0, 100, 5000)
-a.autorun()
--#
-
-class Animate_rotate : Animate_engine
-
- def init(closure, from, to, duration)
- super(self).init()
- self.closure = closure
- self.code.push(animate.ins_ramp(from, to, duration))
- self.code.push(animate.ins_goto(0, 0, 0)) # goto abs pc = 0 without any pause
- end
-
-end
-animate.rotate = Animate_rotate
-
-#-
-a=Animate_rotate(nil, 0, 100, 5000)
-a.autorun()
--#
-
-class Animate_back_forth : Animate_engine
-
- def init(closure, from, to, duration)
- super(self).init()
- self.closure = closure
- self.code.push(animate.ins_ramp(from, to, duration / 2))
- self.code.push(animate.ins_ramp(to, from, duration / 2))
- self.code.push(animate.ins_goto(0, 0, 0)) # goto abs pc = 0 without any pause
- end
-
-end
-animate.back_forth = Animate_back_forth
-
-#-
-a=Animate_back_forth(nil, 0, 100, 5000)
-a.autorun()
--#
diff --git a/lib/libesp32/berry/default/embedded/Driver.be b/lib/libesp32/berry/default/embedded/Driver.be
deleted file mode 100644
index d0782f024..000000000
--- a/lib/libesp32/berry/default/embedded/Driver.be
+++ /dev/null
@@ -1,29 +0,0 @@
-#- Native code used for testing and code solidification -#
-#- Do not use it -#
-
-class Driver
- var every_second
- var every_100ms
- var web_add_handler
- var web_add_button
- var web_add_main_button
- var web_add_management_button
- var web_add_config_button
- var web_add_console_button
- var save_before_restart
- var web_sensor
- var json_append
- var button_pressed
- var display
-
- def init()
- end
-
- def get_tasmota()
- return tasmota
- end
-
- def add_cmd(c, f)
- tasmota.add_cmd(c, / cmd, idx, payload, payload_json -> f(self, cmd, idx, payload, payload_json))
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/Tasmota.be b/lib/libesp32/berry/default/embedded/Tasmota.be
deleted file mode 100644
index 22752a47d..000000000
--- a/lib/libesp32/berry/default/embedded/Tasmota.be
+++ /dev/null
@@ -1,577 +0,0 @@
-#- Native code used for testing and code solidification -#
-#- Do not use it -#
-
-class Timer
- var due, f, id
- def init(due, f, id)
- self.due = due
- self.f = f
- self.id = id
- end
- def tostring()
- import string
- return string.format(" closure
- # Classs KV has two members k and v
- def kv(k, v)
- class KV
- var k, v
- def init(k,v)
- self.k = k
- self.v = v
- end
- end
-
- return KV(k, v)
- end
-
- # add `chars_in_string(s:string,c:string) -> int``
- # looks for any char in c, and return the position of the first char
- # or -1 if not found
- # inv is optional and inverses the behavior, i.e. look for chars not in the list
- def chars_in_string(s,c,inv)
- var inverted = inv ? true : false
- var i = 0
- while i < size(s)
- # for i:0..size(s)-1
- var found = false
- var j = 0
- while j < size(c)
- # for j:0..size(c)-1
- if s[i] == c[j] found = true end
- j += 1
- end
- if inverted != found return i end
- i += 1
- end
- return -1
- end
-
- # find a key in map, case insensitive, return actual key or nil if not found
- def find_key_i(m,keyi)
- import string
- var keyu = string.toupper(keyi)
- if isinstance(m, map)
- for k:m.keys()
- if string.toupper(k)==keyu || keyi=='?'
- return k
- end
- end
- end
- end
-
-
- # split the item when there is an operator, returns a list of (left,op,right)
- # ex: "Dimmer>50" -> ["Dimmer",tasmota_gt,"50"]
- def find_op(item)
- import string
- var op_chars = '=<>!'
- var pos = self.chars_in_string(item, op_chars)
- if pos >= 0
- var op_split = string.split(item,pos)
- var op_left = op_split[0]
- var op_rest = op_split[1]
- pos = self.chars_in_string(op_rest, op_chars, true)
- if pos >= 0
- var op_split2 = string.split(op_rest,pos)
- var op_middle = op_split2[0]
- var op_right = op_split2[1]
- return [op_left,op_middle,op_right]
- end
- end
- return [item, nil, nil]
- end
-
- # Rules
- def add_rule(pat,f)
- if !self._rules
- self._rules=[]
- end
- if type(f) == 'function'
- self._rules.push(self.kv(pat, f))
- else
- raise 'value_error', 'the second argument is not a function'
- end
- end
-
- def remove_rule(pat)
- if self._rules
- var i = 0
- while i < size(self._rules)
- if self._rules[i].k == pat
- self._rules.remove(i) #- don't increment i since we removed the object -#
- else
- i += 1
- end
- end
- end
- end
-
- # Rules trigger if match. return true if match, false if not
- def try_rule(event, rule, f)
- import string
- var rl_list = self.find_op(rule)
- var sub_event = event
- var rl = string.split(rl_list[0],'#')
- var i = 0
- while i < size(rl)
- # for it:rl
- var it = rl[i]
- var found=self.find_key_i(sub_event,it)
- if found == nil return false end
- sub_event = sub_event[found]
- i += 1
- end
- var op=rl_list[1]
- var op2=rl_list[2]
- if op
- if op=='=='
- if str(sub_event) != str(op2) return false end
- elif op=='!=='
- if str(sub_event) == str(op2) return false end
- elif op=='='
- if real(sub_event) != real(op2) return false end
- elif op=='!='
- if real(sub_event) == real(op2) return false end
- elif op=='>'
- if real(sub_event) <= real(op2) return false end
- elif op=='>='
- if real(sub_event) < real(op2) return false end
- elif op=='<'
- if real(sub_event) >= real(op2) return false end
- elif op=='<='
- if real(sub_event) > real(op2) return false end
- end
- end
- f(sub_event, rl_list[0], event)
- return true
- end
-
- # Run rules, i.e. check each individual rule
- # Returns true if at least one rule matched, false if none
- def exec_rules(ev_json)
- if self._rules || self.cmd_res != nil # if there is a rule handler, or we record rule results
- import json
- var ev = json.load(ev_json) # returns nil if invalid JSON
- var ret = false
- if ev == nil
- self.log('BRY: ERROR, bad json: '+ev_json, 3)
- ev = ev_json # revert to string
- end
- # record the rule payload for tasmota.cmd()
- if self.cmd_res != nil
- self.cmd_res = ev
- end
- # try all rule handlers
- if self._rules
- var i = 0
- while i < size(self._rules)
- var kv = self._rules[i]
- ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut if ret is already true -#
- i += 1
- end
- end
- return ret
- end
- return false
- end
-
- # Run tele rules
- def exec_tele(ev_json)
- if self._rules
- import json
- var ev = json.load(ev_json) # returns nil if invalid JSON
- var ret = false
- if ev == nil
- self.log('BRY: ERROR, bad json: '+ev_json, 3)
- ev = ev_json # revert to string
- end
- # insert tele prefix
- ev = { "Tele": ev }
-
- var i = 0
- while i < size(self._rules)
- var kv = self._rules[i]
- ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut -#
- i += 1
- end
- return ret
- end
- return false
- end
-
- def set_timer(delay,f,id)
- if !self._timers self._timers=[] end
- self._timers.push(Timer(self.millis(delay),f,id))
- end
-
- # run every 50ms tick
- def run_deferred()
- if self._timers
- var i=0
- while i wire1 or wire2 or nil
- # scan for the first occurrence of the addr, starting with bus1 then bus2
- # optional: skip if index is disabled via I2CEnable
- def wire_scan(addr,idx)
- # skip if the I2C index is disabled
- if idx != nil && !self.i2c_enabled(idx) return nil end
- if self.wire1.enabled() && self.wire1.detect(addr) return self.wire1 end
- if self.wire2.enabled() && self.wire2.detect(addr) return self.wire2 end
- return nil
- end
-
- def time_str(time)
- import string
- var tm = self.time_dump(time)
- return string.format("%04d-%02d-%02dT%02d:%02d:%02d", tm['year'], tm['month'], tm['day'], tm['hour'], tm['min'], tm['sec'])
- end
-
- def load(f)
- # embedded functions
- # puth_path: adds the current archive to sys.path
- def push_path(p)
- import sys
- var path = sys.path()
- if path.find(p) == nil # append only if it's not already there
- path.push(p)
- end
- end
- # pop_path: removes the path
- def pop_path(p)
- import sys
- var path = sys.path()
- var idx = path.find(p)
- if idx != nil
- path.remove(idx)
- end
- end
-
- import string
- import path
-
- # fail if empty string
- if size(f) == 0 return false end
- # Ex: f = 'app.zip#autoexec'
-
- # add leading '/' if absent
- if f[0] != '/' f = '/' + f end
- # Ex: f = '/app.zip#autoexec'
-
- var f_items = string.split(f, '#')
- var f_prefix = f_items[0]
- var f_suffix = f_items[-1] # last token
- var f_archive = size(f_items) > 1 # is the file in an archive
-
- # if no dot, add the default '.be' extension
- if string.find(f_suffix, '.') < 0 # does the final file has a '.'
- f += ".be"
- f_suffix += ".be"
- end
- # Ex: f = '/app.zip#autoexec.be'
-
- # if the filename has no '.' append '.be'
- var suffix_be = f_suffix[-3..-1] == '.be'
- var suffix_bec = f_suffix[-4..-1] == '.bec'
- # Ex: f = '/app.zip#autoexec.be', f_suffix = 'autoexec.be', suffix_be = true, suffix_bec = false
-
- # check that the file ends with '.be' of '.bec'
- if !suffix_be && !suffix_bec
- raise "io_error", "file extension is not '.be' or '.bec'"
- end
-
- var f_time = path.last_modified(f_prefix)
-
- if suffix_bec
- if f_time == nil return false end # file does not exist
- # f is the right file, continue
- else
- var f_time_bc = path.last_modified(f + "c") # timestamp for bytecode
- if f_time == nil && f_time_bc == nil return false end
- if f_time_bc != nil && (f_time == nil || f_time_bc >= f_time)
- # bytecode exists and is more recent than berry source, use bytecode
- ##### temporarily disable loading from bec file
- # f = f + "c" # use bytecode name
- suffix_bec = true
- end
- end
-
- # recall the working directory
- if f_archive
- self.wd = f_prefix + "#"
- push_path(self.wd)
- else
- self.wd = ""
- end
-
- var c = compile(f, 'file')
- # save the compiled bytecode
- if !suffix_bec && !f_archive
- try
- self.save(f + 'c', c)
- except .. as e
- print(string.format('BRY: could not save compiled file %s (%s)',f+'c',e))
- end
- end
- # call the compiled code
- c()
- # call successfuls
-
- # remove path prefix
- if f_archive
- pop_path(f_prefix + "#")
- end
-
- return true
- end
-
- def event(event_type, cmd, idx, payload, raw)
- import introspect
- import string
- if event_type=='every_50ms' self.run_deferred() end #- first run deferred events -#
-
- var done = false
- if event_type=='cmd' return self.exec_cmd(cmd, idx, payload)
- elif event_type=='tele' return self.exec_tele(payload)
- elif event_type=='rule' return self.exec_rules(payload)
- elif event_type=='gc' return self.gc()
- elif self._drivers
- var i = 0
- while i < size(self._drivers)
- #for d:self._drivers
- var d = self._drivers[i]
- var f = introspect.get(d, event_type) # try to match a function or method with the same name
- if type(f) == 'function'
- try
- done = f(d, cmd, idx, payload, raw)
- if done break end
- except .. as e,m
- print(string.format("BRY: Exception> '%s' - %s", e, m))
- if self._debug_present
- import debug
- debug.traceback()
- end
- end
- end
- i += 1
- end
- end
-
- # save persist
- if event_type=='save_before_restart'
- import persist
- persist.save()
- end
-
- return done
- end
-
- def add_driver(d)
- if self._drivers
- self._drivers.push(d)
- else
- self._drivers = [d]
- end
- end
-
- def remove_driver(d)
- if self._drivers
- var idx = self._drivers.find(d)
- if idx != nil
- self._drivers.pop(idx)
- end
- end
- end
-
- # cmd high-level function
- def cmd(command)
- self.cmd_res = true # signal buffer capture
-
- self._cmd(command)
-
- var ret = nil
- if self.cmd_res != true # unchanged
- ret = self.cmd_res
- end
- self.cmd_res = nil # clear buffer
-
- return ret
- end
-
- # set_light and get_light deprecetaion
- def get_light(l)
- print('tasmota.get_light() is deprecated, use light.get()')
- import light
- if l != nil
- return light.get(l)
- else
- return light.get()
- end
- end
- def set_light(v,l)
- print('tasmota.set_light() is deprecated, use light.set()')
- import light
- if l != nil
- return light.set(v,l)
- else
- return light.set(v)
- end
- end
-
- #- generate a new C callback and record the associated Berry closure -#
- def gen_cb(f)
- # DEPRECATED
- import cb
- return cb.gen_cb(f)
- end
-
- #- convert hue/sat to rgb -#
- #- hue:int in range 0..359 -#
- #- sat:int (optional) in range 0..255 -#
- #- returns int: 0xRRGGBB -#
- def hs2rgb(hue,sat)
- if sat == nil sat = 255 end
- var r = 255 # default to white
- var b = 255
- var g = 255
- # we take brightness at 100%, brightness should be set separately
- hue = hue % 360 # normalize to 0..359
-
- if sat > 0
- var i = hue / 60 # quadrant 0..5
- var f = hue % 60 # 0..59
- var p = 255 - sat
- var q = tasmota.scale_uint(f, 0, 60, 255, p) # 0..59
- var t = tasmota.scale_uint(f, 0, 60, p, 255)
-
- if i == 0
- # r = 255
- g = t
- b = p
- elif i == 1
- r = q
- # g = 255
- b = p
- elif i == 2
- r = p
- #g = 255
- b = t
- elif i == 3
- r = p
- g = q
- #b = 255
- elif i == 4
- r = t
- g = p
- #b = 255
- else
- #r = 255
- g = p
- b = q
- end
- end
-
- return (r << 16) | (g << 8) | b
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/Wire.be b/lib/libesp32/berry/default/embedded/Wire.be
deleted file mode 100644
index a5e28ddd8..000000000
--- a/lib/libesp32/berry/default/embedded/Wire.be
+++ /dev/null
@@ -1,25 +0,0 @@
-#- Native code used for testing and code solidification -#
-#- Do not use it -#
-
-class Wire
- var bus
-
- def read_bytes(addr,reg,size)
- self._begin_transmission(addr)
- self._write(reg)
- self._end_transmission(false)
- self._request_from(addr,size)
- var ret=bytes(size)
- while (self._available())
- ret..self._read()
- end
- return ret
- end
-
- def write_bytes(addr,reg,b)
- self._begin_transmission(addr)
- self._write(reg)
- self._write(b)
- self._end_transmission()
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/autoconf.be b/lib/libesp32/berry/default/embedded/autoconf.be
deleted file mode 100644
index 8489c7447..000000000
--- a/lib/libesp32/berry/default/embedded/autoconf.be
+++ /dev/null
@@ -1,389 +0,0 @@
-#- autocong module for Berry -#
-#- -#
-#- To solidify: -#
-#-
- # load only persis_module and persist_module.init
- import autoconf
- solidify.dump(autoconf_module)
- # copy and paste into `be_autoconf_lib.c`
--#
-#-
-
-# For external compile:
-
-display = module("display")
-self = nil
-tasmota = nil
-def load() end
-
--#
-
-var autoconf_module = module("autoconf")
-
-autoconf_module.init = def (m)
-
- class Autoconf
- var _archive
- var _error
-
- def init()
- import path
- import string
-
- var dir = path.listdir("/")
- var entry
- tasmota.add_driver(self)
-
- var i = 0
- while i < size(dir)
- if string.find(dir[i], ".autoconf") > 0 # does the file contain '*.autoconf', >0 to skip `.autoconf`
- if entry != nil
- # we have multiple configuration files, not allowed
- print(string.format("CFG: multiple autoconf files found, aborting ('%s' + '%s')", entry, dir[i]))
- self._error = true
- return nil
- end
- entry = dir[i]
- end
- i += 1
- end
-
- if entry == nil
- tasmota.log("CFG: no '*.autoconf' file found", 2)
- return nil
- end
-
- self._archive = entry
- end
-
-
- # ####################################################################################################
- # Manage first time marker
- # ####################################################################################################
- def is_first_time()
- import path
- return !path.exists("/.autoconf")
- end
- def set_first_time()
- var f = open("/.autoconf", "w")
- f.close()
- end
- def clear_first_time()
- import path
- path.remove("/.autoconf")
- end
-
- # ####################################################################################################
- # Delete all autoconfig files present
- # ####################################################################################################
- def delete_all_configs()
- import path
- import string
- var dir = path.listdir("/")
-
- for d:dir
- if string.find(d, ".autoconf") > 0 # does the file contain '*.autoconf'
- path.remove(d)
- end
- end
- end
-
- # ####################################################################################################
- # Get current module
- # contains the name of the archive without leading `/`, ex: `M5Stack_Fire.autoconf`
- # or `nil` if none
- # ####################################################################################################
- def get_current_module_path()
- return self._archive
- end
- def get_current_module_name()
- return self._archive[0..-10]
- end
-
- # ####################################################################################################
- # Load templates from Github
- # ####################################################################################################
- def load_templates()
- import string
- import json
- try
- var url = string.format("https://raw.githubusercontent.com/tasmota/autoconf/main/%s_manifest.json", tasmota.arch())
- tasmota.log(string.format("CFG: loading '%s'", url), 3)
- # load the template
- var cl = webclient()
- cl.begin(url)
- var r = cl.GET()
- if r != 200
- tasmota.log(string.format("CFG: return_code=%i", r), 2)
- return nil
- end
- var s = cl.get_string()
- cl.close()
- # convert to json
- var j = json.load(s)
- tasmota.log(string.format("CFG: loaded '%s'", str(j)), 3)
-
- var t = j.find("files")
- if isinstance(t, list)
- return t
- end
-
- return nil
- except .. as e, m
- tasmota.log(string.format("CFG: exception '%s' - '%s'", e, m), 2)
- return nil
- end
- end
-
- # ####################################################################################################
- # Init web handlers
- # ####################################################################################################
- # Displays a "Autocong" button on the configuration page
- def web_add_config_button()
- import webserver
- webserver.content_send("")
- end
-
-
- # This HTTP GET manager controls which web controls are displayed
- def page_autoconf_mgr()
- import webserver
- import string
- if !webserver.check_privileged_access() return nil end
-
- webserver.content_start('Auto-configuration')
- webserver.content_send_style()
- webserver.content_send(" (This feature requires an internet connection)
")
-
- var cur_module = self.get_current_module_path()
- var cur_module_display = cur_module ? string.tr(self.get_current_module_name(), "_", " ") : self._error ? "<Error: apply new or remove>" : "<None>"
-
- webserver.content_send("")
-
- webserver.content_send("")
- webserver.content_button(webserver.BUTTON_CONFIGURATION)
- webserver.content_stop()
- end
-
- # ####################################################################################################
- # Web controller
- #
- # Applies the changes and restart
- # ####################################################################################################
- # This HTTP POST manager handles the submitted web form data
- def page_autoconf_ctl()
- import webserver
- import string
- import path
- if !webserver.check_privileged_access() return nil end
-
- try
- if webserver.has_arg("reapply")
- tasmota.log("CFG: removing first time marker", 2);
- # print("CFG: removing first time marker")
- self.clear_first_time()
- #- and force restart -#
- webserver.redirect("/?rst=")
-
- elif webserver.has_arg("zip")
- # remove any remaining autoconf file
- tasmota.log("CFG: removing autoconf files", 2);
- # print("CFG: removing autoconf files")
- self.delete_all_configs()
-
- # get the name of the configuration file
- var arch_name = webserver.arg("zip")
-
- if arch_name != "reset"
- var url = string.format("https://raw.githubusercontent.com/tasmota/autoconf/main/%s/%s.autoconf", tasmota.arch(), arch_name)
- tasmota.log(string.format("CFG: downloading '%s'", url), 2);
-
- var local_file = string.format("%s.autoconf", arch_name)
-
- # download file and write directly to file system
- var cl = webclient()
- cl.begin(url)
- var r = cl.GET()
- if r != 200 raise "connection_error", string.format("return code=%i", r) end
- cl.write_file(local_file)
- cl.close()
- end
-
- # remove marker to reapply template
- self.clear_first_time()
-
- #- and force restart -#
- webserver.redirect("/?rst=")
- else
- raise "value_error", "Unknown command"
- end
- except .. as e, m
- print(string.format("CFG: Exception> '%s' - %s", e, m))
- #- display error page -#
- webserver.content_start("Parameter error") #- title of the web page -#
- webserver.content_send_style() #- send standard Tasmota styles -#
-
- webserver.content_send(string.format("Exception:
'%s'
%s
", e, m))
-
- webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to management page -#
- webserver.content_stop() #- end of web page -#
- end
- end
-
- # Add HTTP POST and GET handlers
- def web_add_handler()
- import webserver
- webserver.on('/ac', / -> self.page_autoconf_mgr(), webserver.HTTP_GET)
- webserver.on('/ac', / -> self.page_autoconf_ctl(), webserver.HTTP_POST)
- end
-
-
- # reset the configuration information (but don't restart)
- # i.e. remove any autoconf file
- def reset()
- import path
- import string
-
- var dir = path.listdir("/")
- var entry
-
- var i = 0
- while i < size(dir)
- var fname = dir[i]
- if string.find(fname, ".autoconf") > 0 # does the file contain '*.autoconf'
- path.remove(fname)
- print(string.format("CFG: removed file '%s'", fname))
- end
- i += 1
- end
-
- self._archive = nil
- self._error = nil
- end
-
- # called by the synthetic event `preinit`
- def preinit()
- if self._archive == nil return end
- # try to launch `preinit.be`
- import path
-
- var fname = self._archive + '#preinit.be'
- if path.exists(fname)
- tasmota.log("CFG: loading "+fname, 3)
- load(fname)
- tasmota.log("CFG: loaded "+fname, 3)
- end
- end
-
- def run_bat(fname) # read a '*.bat' file and run each command
- import string
- var f
- try
- f = open(fname, "r") # open file in read-only mode, it is expected to exist
- while true
- var line = f.readline() # read each line, can contain a terminal '\n', empty if end of file
- if size(line) == 0 break end # end of file
-
- if line[-1] == "\n" line = line[0..-2] end # remove any trailing '\n'
- if size(line) > 0
- tasmota.cmd(line) # run the command
- end
- end
- f.close() # close, we don't expect exception with read-only, could be added later though
- except .. as e, m
- print(string.format('CFG: could not run %s (%s - %s)', fname, e, m))
- f.close()
- end
- end
-
- # called by the synthetic event `autoexec`
- def autoexec()
- if self._archive == nil return end
- # try to launch `preinit.be`
- import path
-
- # Step 1. if first run, only apply `init.bat`
- var fname = self._archive + '#init.bat'
- if self.is_first_time() && path.exists(fname)
- # create the '.autoconf' file to avoid running it again, even if it crashed
- self.set_first_time()
-
- # if path.exists(fname) # we know it exists from initial test
- self.run_bat(fname)
- tasmota.log("CFG: 'init.bat' done, restarting", 2)
- tasmota.cmd("Restart 1")
- return # if init was run, force a restart anyways and don't run the remaining code
- # end
- end
-
- # Step 2. if 'display.ini' is present, launch Universal Display
- fname = self._archive + '#display.ini'
- if gpio.pin_used(gpio.OPTION_A, 2) && path.exists(fname)
- if path.exists("display.ini")
- tasmota.log("CFG: skipping 'display.ini' because already present in file-system", 2)
- else
- import display
- var f = open(fname,"r")
- var desc = f.read()
- f.close()
- display.start(desc)
- end
- end
-
- # Step 3. if 'autoexec.bat' is present, run it
- fname = self._archive + '#autoexec.bat'
- if path.exists(fname)
- tasmota.log("CFG: running "+fname, 3)
- self.run_bat(fname)
- tasmota.log("CFG: ran "+fname, 3)
- end
-
- # Step 4. if 'autoexec.be' is present, load it
- fname = self._archive + '#autoexec.be'
- if path.exists(fname)
- tasmota.log("CFG: loading "+fname, 3)
- load(fname)
- tasmota.log("CFG: loaded "+fname, 3)
- end
- end
- end
-
- return Autoconf() # return an instance of this class
-end
-
-aa = autoconf_module.init(autoconf_module)
-import webserver
-webserver.on('/ac2', / -> aa.page_autoconf_mgr(), webserver.HTTP_GET)
-return autoconf_module
diff --git a/lib/libesp32/berry/default/embedded/i2c_axp192.be b/lib/libesp32/berry/default/embedded/i2c_axp192.be
deleted file mode 100644
index 3d958334f..000000000
--- a/lib/libesp32/berry/default/embedded/i2c_axp192.be
+++ /dev/null
@@ -1,176 +0,0 @@
-#-------------------------------------------------------------
- - Generic driver for AXP192 - solidified
- -------------------------------------------------------------#
-class AXP192 : I2C_Driver
- def init()
- super(self, I2C_Driver).init("AXP192", 0x34)
- end
-
- # Return True = Battery Exist
- def battery_present()
- if self.wire.read(self.addr, 0x01, 1) & 0x20 return true
- else return false
- end
- end
-
- # Input Power Status ???
- def get_input_power_status()
- return self.wire.read(self.addr, 0x00, 1)
- end
-
- # Battery Charging Status
- def get_battery_chargin_status()
- return self.wire.read(self.addr, 0x01, 1)
- end
-
- # AXP chip temperature in °C
- def get_temp()
- return self.read12(0x5E) * 0.1 - 144.7
- end
-
- def get_bat_power()
- return self.read24(0x70) * 0.00055
- end
-
- def get_bat_voltage()
- return self.read12(0x78) * 0.0011
- end
- def get_bat_current()
- return (self.read13(0x7A) - self.read13(0x7C)) * 0.5
- end
- def get_bat_charge_current()
- return self.read13(0x7A) * 0.5
- end
- def get_aps_voltage()
- return self.read12(0x7E) * 0.0014
- end
- def get_vbus_voltage()
- return self.read12(0x5A) * 0.0017
- end
- def get_vbus_current()
- return self.read12(0x5C) * 0.375
- end
-
- # set LDO voltage
- # ldo: 2/3
- # voltage: (mV) 1800mV - 3300mV in 100mV steps
- def set_ldo_voltage(ldo, voltage)
- if voltage > 3300 voltage = 15
- else voltage = (voltage / 100) - 18
- end
-
- if ldo == 2
- self.write8(0x28, self.read8(0x28) & 0x0F | ((voltage & 0x0F) << 4))
- end
- if ldo == 3
- self.write8(0x28, self.read8(0x28) & 0xF0 | (voltage & 0x0F))
- end
- end
-
- # set DCDC enable, 1/2/3
- def set_dcdc_enable(dcdc, state)
- if dcdc == 1 self.write_bit(0x12, 0, state) end
- if dcdc == 2 self.write_bit(0x12, 4, state) end
- if dcdc == 3 self.write_bit(0x12, 1, state) end
- end
-
- # set LDO enable, 2/3 (LDO 1 is always on)
- def set_ldo_enable(ldo, state)
- if ldo == 2 self.write_bit(0x12, 2, state) end
- if ldo == 3 self.write_bit(0x12, 3, state) end
- end
-
- # set GPIO output state 0/1/2 and 3/4
- def write_gpio(gpio, state)
- if gpio >= 0 && gpio <= 2
- self.write_bit(0x94, gpio, state)
- elif gpio >= 3 && gpio <= 4
- self.write_bit(0x96, gpio - 3, state)
- end
- end
-
- # Set voltage on DC-DC1/2/3
- # dcdc: 1/2/3 (warning some C libs start at 0)
- # voltage:
- def set_dc_voltage(dcdc, voltage)
- if dcdc < 1 || dcdc > 3 return end
- var v
- if voltage < 700 v = 0
- elif voltage > 3500 v = 112
- elif dcdc == 2 && voltage > 2275 v = 63 # dcdc2 is limited to 2.275V
- else v = (voltage - 700) / 25
- end
-
- var addr = 0x26
- if dcdc == 3 addr = 0x27
- elif dcdc == 2 addr = 0x23
- end
-
- self.write8(addr, self.read8(addr) & 0x80 | (v & 0x7F))
- end
-
- # Set charging current
- # 100mA = 0
- # 190mA = 1
- # 280mA = 2
- # 360mA = 3
- # 450mA = 4
- # 550mA = 5
- # 630mA = 6
- # 700mA = 7
- # 780mA = 8
- # 880mA = 9
- # 960mA = 10
- # 1000mA = 11
- # 1080mA = 12
- # 1160mA = 13
- # 1240mA = 14
- # 1320mA = 15
- def set_chg_current(current_code)
- self.write8(0x33, self.read8(0x33) & 0xF0 | (current_code & 0x0F))
- end
-
- # // Low Volt Level 1, when APS Volt Output < 3.4496 V
- # // Low Volt Level 2, when APS Volt Output < 3.3992 V, then this flag is SET (0x01)
- # // Flag will reset once battery volt is charged above Low Volt Level 1
- # // Note: now AXP192 have the Shutdown Voltage of 3.0V (B100) Def in REG 31H
- def get_warning_level()
- return self.read12(0x47) & 1
- end
-
- #- trigger a read every second -#
- # def every_second()
- # if !self.wire return nil end #- exit if not initialized -#
- # end
-
- #- display sensor value in the web UI -#
- def web_sensor()
- if !self.wire return nil end #- exit if not initialized -#
- import string
- var msg = string.format(
- "{s}VBus Voltage{m}%.3f V{e}"..
- "{s}VBus Current{m}%.1f mA{e}"..
- "{s}Batt Voltage{m}%.3f V{e}"..
- "{s}Batt Current{m}%.1f mA{e}"..
- #"{s}Batt Power{m}%.3f{e}"..
- "{s}Temp AXP{m}%.1f °C{e}",
- self.get_vbus_voltage(), self.get_vbus_voltage(),
- self.get_bat_voltage(), self.get_bat_current(),
- #self.get_bat_power(),
- self.get_temp()
- )
- tasmota.web_send_decimal(msg)
- end
-
- #- add sensor value to teleperiod -#
- def json_append()
- if !self.wire return nil end #- exit if not initialized -#
- # import string
- # var ax = int(self.accel[0] * 1000)
- # var ay = int(self.accel[1] * 1000)
- # var az = int(self.accel[2] * 1000)
- # var msg = string.format(",\"MPU6886\":{\"AX\":%i,\"AY\":%i,\"AZ\":%i,\"GX\":%i,\"GY\":%i,\"GZ\":%i}",
- # ax, ay, az, self.gyro[0], self.gyro[1], self.gyro[2])
- # tasmota.response_append(msg)
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/i2c_driver.be b/lib/libesp32/berry/default/embedded/i2c_driver.be
deleted file mode 100644
index a66afa5ad..000000000
--- a/lib/libesp32/berry/default/embedded/i2c_driver.be
+++ /dev/null
@@ -1,104 +0,0 @@
-#-------------------------------------------------------------
- - IMPORTANT
- - THIS CLASS IS ALREADY BAKED IN TASMOTA
- -
- - It is here for debugging and documentation purpose only
- -------------------------------------------------------------#
-
-#-------------------------------------------------------------
- - I2C_Driver class to simplify development of I2C drivers
- -
- - I2C_Driver(name, addr [, i2c_index]) -> nil
- - name: name of I2C device for logging, or function to detect the model
- - addr: I2C address of device, will probe all I2C buses for it
- - i2c_index: (optional) check is the device is not disabled
- -------------------------------------------------------------#
-
-class I2C_Driver
- var wire #- wire object to reach the device, if nil then the module is not initialized -#
- var addr #- I2C address of the device -#
- var name #- model namme of the device, cannot be nil -#
-
- #- Init and look for device
- - Input:
- - name_or_detect : name of the device (if string)
- or function to detect the precise model(if function)
- the function is passed a single argument `self`
- and must return a string, or `nil` if the device is invalid
- - addr : I2C address of device (int 0..255)
- - i2c_index : Tasmota I2C index, see `I2CDEVICES.md` (int)
- --#
- def init(name_or_detect, addr, i2c_index)
- var tasmota = self.get_tasmota() #- retrieve the 'tasmota' singleton -#
-
- #- check if the i2c index is disabled by Tasmota configuration -#
- if i2c_index != nil && !tasmota.i2c_enabled(i2c_index) return end
-
- self.addr = addr #- address for AXP192 -#
- self.wire = tasmota.wire_scan(self.addr) #- get the right I2C bus -#
-
- if self.wire
- #- find name of device, can be a string or a method -#
- if type(name_or_detect) == 'function'
- self.name = name_or_detect(self)
- else
- self.name = name_or_detect
- end
- #- if name is invalid, it means we can't detect device, abort -#
- if self.name == nil self.wire = nil end
-
- if self.wire
- print("I2C:", self.name, "detected on bus", self.wire.bus)
- end
- end
- end
-
- #- write register with 8 bits value -#
- def write8(reg, val)
- return self.wire.write(self.addr, reg, val, 1)
- end
-
- # Set or clear a specific bit in a register
- # write_bit(reg:int, bit:int, state:bool) -> nil
- # reg: I2C register number (0..255)
- # bit: bit of I2C register to change (0..7)
- # state: boolean value to write to specified bit
- def write_bit(reg, bit, state)
- if bit < 0 || bit > 7 return end
- var mark = 1 << bit
- if state self.write8(reg, self.read8(reg) | mark)
- else self.write8(reg, self.read8(reg) & (0xFF - mark))
- end
- end
-
- # read 8 bits
- def read8(reg)
- return self.wire.read(self.addr, reg, 1)
- end
- # read 12 bits
- def read12(reg)
- var buf = self.wire.read_bytes(self.addr, reg, 2)
- return (buf[0] << 4) + buf[1]
- end
- # read 13 bits
- def read13(reg)
- var buf = self.wire.read_bytes(self.addr, reg, 2)
- return (buf[0] << 5) + buf[1]
- end
- # read 24 bits
- def read24(reg)
- var buf = self.wire.read_bytes(self.addr, reg, 3)
- return (buf[0] << 16) + (buf[1] << 8) + buf[2]
- end
- # read 32 bits
- def read32(reg)
- var buf = self.wire.read_bytes(self.addr, reg, 4)
- return (buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3]
- end
-end
-
-#- Example
-
-d = I2C_Driver("MPU", 0x68, 58)
-
--#
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/embedded/leds.be b/lib/libesp32/berry/default/embedded/leds.be
deleted file mode 100644
index 11a0489af..000000000
--- a/lib/libesp32/berry/default/embedded/leds.be
+++ /dev/null
@@ -1,338 +0,0 @@
-# class Leds
-#
-# for adressable leds like NoePixel
-
-
-# Native commands
-# 00 : ctor (leds:int, gpio:int) -> void
-# 01 : begin void -> void
-# 02 : show void -> void
-# 03 : CanShow void -> bool
-# 04 : IsDirty void -> bool
-# 05 : Dirty void -> void
-# 06 : Pixels void -> bytes() (mapped to the buffer)
-# 07 : PixelSize void -> int
-# 08 : PixelCount void -> int
-# 09 : ClearTo (color:??) -> void
-# 10 : SetPixelColor (idx:int, color:??) -> void
-# 11 : GetPixelColor (idx:int) -> color:??
-# 20 : RotateLeft (rot:int [, first:int, last:int]) -> void
-# 21 : RotateRight (rot:int [, first:int, last:int]) -> void
-# 22 : ShiftLeft (rot:int [, first:int, last:int]) -> void
-# 23 : ShiftRight (rot:int [, first:int, last:int]) -> void
-
-
-class Leds : Leds_ntv
- var gamma # if true, apply gamma (true is default)
- var leds # number of leds
- # leds:int = number of leds of the strip
- # gpio:int (optional) = GPIO for NeoPixel. If not specified, takes the WS2812 gpio
- # type:int (optional) = Type of LED, defaults to WS2812 RGB
- # rmt:int (optional) = RMT hardware channel to use, leave default unless you have a good reason
- def init(leds, gpio, type, rmt) # rmt is optional
- self.gamma = true # gamma is enabled by default, it should be disabled explicitly if needed
- self.leds = int(leds)
-
- if gpio == nil && gpio.pin(gpio.WS2812) >= 0
- gpio = gpio.pin(gpio.WS2812)
- end
-
- # if no GPIO, abort
- if gpio == nil
- raise "valuer_error", "no GPIO specified for neopixelbus"
- end
-
- # initialize the structure
- self.ctor(self.leds, gpio, type, rmt)
-
- if self._p == nil raise "internal_error", "couldn't not initialize noepixelbus" end
-
- # call begin
- self.begin()
-
- end
-
- def clear()
- self.clear_to(0x000000)
- self.show()
- end
-
- def ctor(leds, gpio, rmt)
- if rmt == nil
- self.call_native(0, leds, gpio)
- else
- self.call_native(0, leds, gpio, rmt)
- end
- end
- def begin()
- self.call_native(1)
- end
- def show()
- self.call_native(2)
- end
- def can_show()
- return self.call_native(3)
- end
- def is_dirty()
- return self.call_native(4)
- end
- def dirty()
- self.call_native(5)
- end
- def pixels_buffer()
- return self.call_native(6)
- end
- def pixel_size()
- return self.call_native(7)
- end
- def pixel_count()
- return self.call_native(8)
- end
- def clear_to(col, bri)
- self.call_native(9, self.to_gamma(col, bri))
- end
- def set_pixel_color(idx, col, bri)
- self.call_native(10, idx, self.to_gamma(col, bri))
- end
- def get_pixel_color(idx)
- return self.call_native(11, idx)
- end
- # def rotate_left(rot, first, last)
- # self.call_native(20, rot, first, last)
- # end
- # def rotate_right(rot, first, last)
- # self.call_native(21, rot, first, last)
- # end
- # def shift_left(rot, first, last)
- # self.call_native(22, rot, first, last)
- # end
- # def shift_right(rot, first, last)
- # self.call_native(22, rot, first, last)
- # end
-
- # apply gamma and bri
- def to_gamma(rgbw, bri)
- bri = (bri != nil) ? bri : 100
- var r = tasmota.scale_uint(bri, 0, 100, 0, (rgbw & 0xFF0000) >> 16)
- var g = tasmota.scale_uint(bri, 0, 100, 0, (rgbw & 0x00FF00) >> 8)
- var b = tasmota.scale_uint(bri, 0, 100, 0, (rgbw & 0x0000FF))
- if self.gamma
- return light.gamma8(r) << 16 |
- light.gamma8(g) << 8 |
- light.gamma8(b)
- else
- return r << 16 |
- g << 8 |
- b
- end
- end
-
- # `segment`
- # create a new `strip` object that maps a part of the current strip
- def create_segment(offset, leds)
- if int(offset) + int(leds) > self.leds || offset < 0 || leds < 0
- raise "value_error", "out of range"
- end
-
- # inner class
- class Leds_segment
- var strip
- var offset, leds
-
- def init(strip, offset, leds)
- self.strip = strip
- self.offset = int(offset)
- self.leds = int(leds)
- end
-
- def clear()
- self.clear_to(0x000000)
- self.show()
- end
-
- def begin()
- # do nothing, already being handled by physical strip
- end
- def show(force)
- # don't trigger on segment, you will need to trigger on full strip instead
- if bool(force) || (self.offset == 0 && self.leds == self.strip.leds)
- self.strip.show()
- end
- end
- def can_show()
- return self.strip.can_show()
- end
- def is_dirty()
- return self.strip.is_dirty()
- end
- def dirty()
- self.strip.dirty()
- end
- def pixels_buffer()
- return nil
- end
- def pixel_size()
- return self.strip.pixel_size()
- end
- def pixel_count()
- return self.leds
- end
- def clear_to(col, bri)
- var i = 0
- while i < self.leds
- self.strip.set_pixel_color(i + self.offset, col, bri)
- i += 1
- end
- end
- def set_pixel_color(idx, col, bri)
- self.strip.set_pixel_color(idx + self.offset, col, bri)
- end
- def get_pixel_color(idx)
- return self.strip.get_pixel_color(idx + self.offseta)
- end
- end
-
- return Leds_segment(self, offset, leds)
-
- end
-
- def create_matrix(w, h, offset)
- offset = int(offset)
- w = int(w)
- h = int(h)
- if offset == nil offset = 0 end
- if w * h + offset > self.leds || h < 0 || w < 0 || offset < 0
- raise "value_error", "out of range"
- end
-
- # inner class
- class Leds_matrix
- var strip
- var offset
- var h, w
- var alternate # are rows in alternate mode (even/odd are reversed)
-
- def init(strip, w, h, offset)
- self.strip = strip
- self.offset = offset
- self.h = h
- self.w = w
- self.alternate = false
- end
-
- def clear()
- self.clear_to(0x000000)
- self.show()
- end
-
- def begin()
- # do nothing, already being handled by physical strip
- end
- def show(force)
- # don't trigger on segment, you will need to trigger on full strip instead
- if bool(force) || (self.offset == 0 && self.w * self.h == self.strip.leds)
- self.strip.show()
- end
- end
- def can_show()
- return self.strip.can_show()
- end
- def is_dirty()
- return self.strip.is_dirty()
- end
- def dirty()
- self.strip.dirty()
- end
- def pixels_buffer()
- return nil
- end
- def pixel_size()
- return self.strip.pixel_size()
- end
- def pixel_count()
- return self.w * self.h
- end
- def clear_to(col, bri)
- var i = 0
- while i < self.w * self.h
- self.strip.set_pixel_color(i + self.offset, col, bri)
- i += 1
- end
- end
- def set_pixel_color(idx, col, bri)
- self.strip.set_pixel_color(idx + self.offset, col, bri)
- end
- def get_pixel_color(idx)
- return self.strip.get_pixel_color(idx + self.offseta)
- end
-
- # Leds_matrix specific
- def set_alternate(alt)
- self.alternate = alt
- end
- def get_alternate()
- return self.alternate
- end
-
- def set_matrix_pixel_color(x, y, col, bri)
- if self.alternate && x % 2
- # reversed line
- self.strip.set_pixel_color(x * self.w + self.h - y - 1 + self.offset, col, bri)
- else
- self.strip.set_pixel_color(x * self.w + y + self.offset, col, bri)
- end
- end
- end
-
- return Leds_matrix(self, w, h, offset)
-
- end
-
- static def matrix(w, h, gpio, rmt)
- var strip = Leds(w * h, gpio, rmt)
- var matrix = strip.create_matrix(w, h, 0)
- return matrix
- end
-end
-
-
-#-
-
-var s = Leds(25, gpio.pin(gpio.WS2812, 1))
-s.clear_to(0x300000)
-s.show()
-i = 0
-
-def anim()
- s.clear_to(0x300000)
- s.set_pixel_color(i, 0x004000)
- s.show()
- i = (i + 1) % 25
- tasmota.set_timer(200, anim)
-end
-anim()
-
--#
-
-#-
-
-var s = Leds_matrix(5, 5, gpio.pin(gpio.WS2812, 1))
-s.set_alternate(true)
-s.clear_to(0x300000)
-s.show()
-x = 0
-y = 0
-
-def anim()
- s.clear_to(0x300000)
- s.set_matrix_pixel_color(x, y, 0x004000)
- s.show()
- y = (y + 1) % 5
- if y == 0
- x = (x + 1) % 5
- end
- tasmota.set_timer(200, anim)
-end
-anim()
-
--#
diff --git a/lib/libesp32/berry/default/embedded/leds_animator.be b/lib/libesp32/berry/default/embedded/leds_animator.be
deleted file mode 100644
index 1ed25b491..000000000
--- a/lib/libesp32/berry/default/embedded/leds_animator.be
+++ /dev/null
@@ -1,70 +0,0 @@
-# class Leds_animator
-
-class Leds_animator
- var strip # neopixelbus object
- var pixel_count # number of pixels in the strip
- var bri # brightness of the animation, 0..100, default 50
- var running # is the animation running
- var animators # animators list
-
- def init(strip)
- self.strip = strip
- self.bri = 50 # percentage of brightness 0..100
- self.running = false
- self.pixel_count = strip.pixel_count()
- self.animators = []
- #
- self.clear() # clear all leds first
- #
- tasmota.add_driver(self)
- end
-
- def add_anim(anim)
- self.animators.push(anim)
- anim.run() # start the animator
- end
-
- def clear()
- self.stop()
- self.strip.clear()
- end
- def start()
- self.running = true
- end
- def stop()
- self.running = false
- end
-
- def set_bri(bri)
- self.bri = bri
- end
- def get_bri(bri)
- return self.bri
- end
-
- def every_50ms()
- if self.running
- # run animators first
- var i = 0
- while i < size(self.animators)
- var anim = self.animators[i]
- if anim.is_running()
- anim.animate()
- i += 1
- else
- self.animators.remove(i) # remove any finished animator
- end
- end
- # tirgger animate and display
- self.animate()
- end
- end
-
- def animate()
- # placeholder - do nothing by default
- end
-
- def remove()
- tasmota.remove_driver(self)
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/lv_clock_icon.be b/lib/libesp32/berry/default/embedded/lv_clock_icon.be
deleted file mode 100644
index f5d19ca11..000000000
--- a/lib/libesp32/berry/default/embedded/lv_clock_icon.be
+++ /dev/null
@@ -1,54 +0,0 @@
-#- LVGL lv_clock_icon
- -
---#
-
-class lv_clock_icon: lv.label
- var hour, minute, sec
-
- def init(parent)
- super(self).init(parent)
- var f_s7_16 = lv.seg7_font(16)
- if f_s7_16 != nil self.set_style_text_font(f_s7_16, lv.PART_MAIN | lv.STATE_DEFAULT) end
-
- if parent != nil
- var parent_height = parent.get_height()
-
- self.set_text("--:--")
- self.refr_size()
- var w = self.get_width()
- self.set_y((parent.get_height() - self.get_height()) / 2) # center vertically
-
- var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)
- self.set_x(parent.get_width() - w - pad_right - 3)
- parent.set_style_pad_right(pad_right + w + 6, lv.PART_MAIN | lv.STATE_DEFAULT)
-
- self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
- end
-
- tasmota.add_driver(self)
- end
-
- def set_time(hour, minute, sec)
- import string
- if hour != self.hour || minute != self.minute || sec != self.sec
- var txt = string.format("%02d%s%02d", hour, sec % 2 ? ":" : " ", minute)
- self.hour = hour
- self.minute = minute
- self.sec = sec
- #if txt[0] == '0' txt = '!' .. string.split(txt,1)[1] end # replace first char with '!'
- self.set_text(txt)
- end
- end
-
- def every_second()
- var now = tasmota.time_dump(tasmota.rtc()['local'])
- if now['year'] != 1970
- self.set_time(now['hour'], now['min'], now['sec'])
- end
- end
-
- def del()
- super(self).del()
- tasmota.remove_driver(self)
- end
-end
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/embedded/lv_signal_arcs.be b/lib/libesp32/berry/default/embedded/lv_signal_arcs.be
deleted file mode 100644
index 7dd924e90..000000000
--- a/lib/libesp32/berry/default/embedded/lv_signal_arcs.be
+++ /dev/null
@@ -1,133 +0,0 @@
-#- LVGL lv_signal_bars and lv_wifi_bars
- -
---#
-
-class lv_signal_arcs : lv.obj
- var percentage # value to display, range 0..100
- var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
-
- def init(parent)
- # init custom widget (don't call super constructor)
- _lvgl.create_custom_widget(self, parent)
- # own values
- self.percentage = 100
- # pre-allocate buffers
- self.p1 = lv.point()
- self.p2 = lv.point()
- self.area = lv.area()
- self.line_dsc = lv.draw_line_dsc()
- end
-
- def widget_event(cl, event)
- # Call the ancestor's event handler
- if lv.obj_event_base(cl, event) != lv.RES_OK return end
- var code = event.code
-
- import math
- def atleast1(x) if x >= 1 return x else return 1 end end
- # the model is that we have 4 bars and inter-bar (1/4 of width)
- var height = self.get_height()
- var width = self.get_width()
-
- var inter_bar = atleast1(height / 8)
- var bar = atleast1((height - inter_bar * 2) / 3)
- var bar_offset = bar / 2
- #print("inter_bar", inter_bar, "bar", bar, "bar_offset", bar_offset)
-
- if code == lv.EVENT_DRAW_MAIN
- var clip_area = lv.area(event.param)
-
- # get coordinates of object
- self.get_coords(self.area)
- var x_ofs = self.area.x1
- var y_ofs = self.area.y1
-
- lv.draw_line_dsc_init(self.line_dsc) # initialize lv.draw_line_dsc structure
- self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc) # copy the current values
-
- self.line_dsc.round_start = 1
- self.line_dsc.round_end = 1
- self.line_dsc.width = (bar * 3 + 1) / 4
- var on_color = self.get_style_line_color(lv.PART_MAIN | lv.STATE_DEFAULT)
- var off_color = self.get_style_bg_color(lv.PART_MAIN | lv.STATE_DEFAULT)
-
- # initial calculation, but does not take into account bounding box
- # var angle = int(math.deg(math.atan2(width / 2, height)))
-
- # better calculation
- var hypotenuse = height - bar # center if at bar/2 from bottom and circle stops at bar/2 from top
- var adjacent = width / 2 - bar_offset # stop at bar_offset from side
- var angle = int(90 - math.deg(math.acos(real(adjacent) / real(hypotenuse))))
- if (angle > 45) angle = 45 end
-
- # print("hypotenuse",hypotenuse,"adjacent",adjacent,"angle",angle)
- self.p1.x = x_ofs + width / 2
- self.p1.y = y_ofs + height - 1 - bar_offset
-
- self.line_dsc.color = self.percentage >= 25 ? on_color : off_color
- lv.draw_arc(self.p1.x, self.p1.y, 0 * (bar + inter_bar) + bar_offset, 0, 360, clip_area, self.line_dsc)
- self.line_dsc.color = self.percentage >= 50 ? on_color : off_color
- lv.draw_arc(self.p1.x, self.p1.y, 1 * (bar + inter_bar) + bar_offset - 1, 270 - angle, 270 + angle, clip_area, self.line_dsc)
- self.line_dsc.color = self.percentage >= 75 ? on_color : off_color
- lv.draw_arc(self.p1.x, self.p1.y, 2 * (bar + inter_bar) + bar_offset - 2, 270 - angle, 270 + angle, clip_area, self.line_dsc)
-
- #elif mode == lv.DESIGN_DRAW_POST # commented since we don't want a frame around this object
- # self.ancestor_design.call(self, clip_area, mode)
- end
- end
-
- def set_percentage(v)
- var old_bars = self.percentage / 25
- if v > 100 v = 100 end
- if v < 0 v = 0 end
- self.percentage = v
- if old_bars != v / 25
- self.invalidate() # be frugal and avoid updating the widget if it's not needed
- end
- end
-
- def get_percentage()
- return self.percentage
- end
-end
-
-class lv_wifi_arcs: lv_signal_arcs
- def init(parent)
- super(self).init(parent)
- tasmota.add_driver(self)
- self.set_percentage(0) # we generally start with 0, meaning not connected
- end
-
- def every_second()
- var wifi = tasmota.wifi()
- var quality = wifi.find("quality")
- var ip = wifi.find("ip")
- if ip == nil
- self.set_percentage(0)
- elif quality != nil
- self.set_percentage(quality)
- end
- end
-
- def del()
- super(self).del()
- tasmota.remove_driver(self)
- end
-end
-
-class lv_wifi_arcs_icon: lv_wifi_arcs
- def init(parent)
- super(self).init(parent)
- self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
- self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
- if parent != nil
- var parent_height = parent.get_height()
- var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)
- self.set_height(parent_height)
- var w = (parent_height*4)/3
- self.set_width(w) # 130%
- self.set_x(parent.get_width() - w - pad_right)
- parent.set_style_pad_right(pad_right + w + 1, lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- end
-end
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/embedded/lv_signal_bars.be b/lib/libesp32/berry/default/embedded/lv_signal_bars.be
deleted file mode 100644
index f548457b9..000000000
--- a/lib/libesp32/berry/default/embedded/lv_signal_bars.be
+++ /dev/null
@@ -1,118 +0,0 @@
-#- LVGL lv_signal_bars and lv_wifi_bars
- -
---#
-
-class lv_signal_bars : lv.obj
- var percentage # value to display, range 0..100
- var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
-
- def init(parent)
- # init custom widget (don't call super constructor)
- _lvgl.create_custom_widget(self, parent)
- # own values
- self.percentage = 100
- # pre-allocate buffers
- self.p1 = lv.point()
- self.p2 = lv.point()
- self.area = lv.area()
- self.line_dsc = lv.draw_line_dsc()
- end
-
- def widget_event(cl, event)
- # Call the ancestor's event handler
- if lv.obj_event_base(cl, event) != lv.RES_OK return end
- var code = event.code
-
- def atleast1(x) if x >= 1 return x else return 1 end end
- # the model is that we have 4 bars and inter-bar (1/4 of width)
- var height = self.get_height()
- var width = self.get_width()
-
- var inter_bar = atleast1(width / 15)
- var bar = atleast1((width - inter_bar * 3) / 4)
- var bar_offset = bar / 2
-
- if code == lv.EVENT_DRAW_MAIN
- var clip_area = lv.area(event.param)
-
- # get coordinates of object
- self.get_coords(self.area)
- var x_ofs = self.area.x1
- var y_ofs = self.area.y1
-
- lv.draw_line_dsc_init(self.line_dsc) # initialize lv_draw_line_dsc structure
- self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc) # copy the current values
-
- self.line_dsc.round_start = 1
- self.line_dsc.round_end = 1
- self.line_dsc.width = bar
- var on_color = self.get_style_line_color(lv.PART_MAIN | lv.STATE_DEFAULT)
- var off_color = self.get_style_bg_color(lv.PART_MAIN | lv.STATE_DEFAULT)
-
- lv.event_send(self, lv.EVENT_DRAW_PART_BEGIN, self.line_dsc)
- for i:0..3 # 4 bars
- self.line_dsc.color = self.percentage >= (i+1)*20 ? on_color : off_color
- self.p1.y = y_ofs + height - 1 - bar_offset
- self.p1.x = x_ofs + i * (bar + inter_bar) + bar_offset
- self.p2.y = y_ofs + ((3 - i) * (height - bar)) / 4 + bar_offset
- self.p2.x = self.p1.x
- lv.draw_line(self.p1, self.p2, clip_area, self.line_dsc)
- end
- lv.event_send(self, lv.EVENT_DRAW_PART_END, self.line_dsc)
- end
- end
-
- def set_percentage(v)
- var old_bars = self.percentage / 20
- if v > 100 v = 100 end
- if v < 0 v = 0 end
- self.percentage = v
- if old_bars != v / 20
- self.invalidate() # be frugal and avoid updating the widget if it's not needed
- end
- end
-
- def get_percentage()
- return self.percentage
- end
-end
-
-class lv_wifi_bars: lv_signal_bars
- def init(parent)
- super(self).init(parent)
- tasmota.add_driver(self)
- self.set_percentage(0) # we generally start with 0, meaning not connected
- end
-
- def every_second()
- var wifi = tasmota.wifi()
- var quality = wifi.find("quality")
- var ip = wifi.find("ip")
- if ip == nil
- self.set_percentage(0)
- elif quality != nil
- self.set_percentage(quality)
- end
- end
-
- def del()
- super(self).del()
- tasmota.remove_driver(self)
- end
-end
-
-class lv_wifi_bars_icon: lv_wifi_bars
- def init(parent)
- super(self).init(parent)
- self.set_style_line_color(lv.color(lv.COLOR_WHITE), lv.PART_MAIN | lv.STATE_DEFAULT)
- self.set_style_bg_color(lv.color(lv.COLOR_BLACK), lv.PART_MAIN | lv.STATE_DEFAULT)
- if parent != nil
- var parent_height = parent.get_height()
- var pad_right = parent.get_style_pad_right(lv.PART_MAIN | lv.STATE_DEFAULT)
- self.set_height(parent_height)
- self.set_width(parent_height)
- self.set_x(parent.get_width() - parent_height - pad_right)
- parent.set_style_pad_right(pad_right + parent_height + 1, lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/lvgl_glob.be b/lib/libesp32/berry/default/embedded/lvgl_glob.be
deleted file mode 100644
index 04250ff54..000000000
--- a/lib/libesp32/berry/default/embedded/lvgl_glob.be
+++ /dev/null
@@ -1,256 +0,0 @@
-#- embedded class for LVGL globals -#
-
-#- This class stores all globals used by LVGL and cannot be stored in the solidified module -#
-#- this limits the globals to a single value '_lvgl' -#
-class LVGL_glob
- # all variables are lazily initialized to reduce the memory pressure. Until they are used, they consume zero memory
- var cb_obj # map between a native C pointer (as int) and the corresponding lv.lv_* berry object, also helps marking the objects as non-gc-able
- var cb_event_closure # mapping for event closures per LVGL native pointer (int)
- var event_cb # native callback for lv.lv_event
-
- #- below are native callbacks mapped to a closure to a method of this instance -#
- var null_cb # cb called if type is not supported
- var widget_ctor_cb
- var widget_dtor_cb
- var widget_event_cb
-
- var widget_struct_default
- var widget_struct_by_class
-
- #- this is the fallback callback, if the event is unknown or unsupported -#
- static cb_do_nothing = def() print("LVG: call to unsupported callback") end
-
- #- register an lv.lv_* object in the mapping -#
- def register_obj(obj)
- if self.cb_obj == nil self.cb_obj = {} end
- self.cb_obj[obj._p] = obj
- end
-
- def get_object_from_ptr(ptr)
- if self.cb_obj != nil
- return self.cb_obj.find(ptr) # raise an exception if something is wrong
- end
- end
-
- def lvgl_event_dispatch(event_ptr)
- import introspect
-
- var event = lv.lv_event(introspect.toptr(event_ptr))
-
- var target = event.target
- var f = self.cb_event_closure[target]
- var obj = self.get_object_from_ptr(target)
- #print('>> lvgl_event_dispatch', f, obj, event)
- f(obj, event)
- end
-
- def gen_cb(name, f, obj, ptr)
- #print('>> gen_cb', name, obj, ptr)
- # record the object, whatever the callback
-
- if name == "lv_event_cb"
- if self.cb_event_closure == nil self.cb_event_closure = {} end
- if self.event_cb == nil self.event_cb = tasmota.gen_cb(/ event_ptr -> self.lvgl_event_dispatch(event_ptr)) end # encapsulate 'self' in closure
-
- self.register_obj(obj)
- self.cb_event_closure[ptr] = f
- return self.event_cb
- # elif name == ""
- else
- if self.null_cb == nil self.null_cb = tasmota.gen_cb(self.cb_do_nothing) end
- return self.null_cb
- end
- end
-
- def widget_ctor_impl(cl_ptr, obj_ptr)
- import introspect
- var cl = lv.lv_obj_class(cl_ptr)
- var obj = self.get_object_from_ptr(obj_ptr)
- if self.cb_obj.find(obj) obj = self.cb_obj[obj] end
- # print("widget_ctor_impl", cl, obj)
- if type(obj) == 'instance' && introspect.get(obj, 'widget_constructor')
- obj.widget_constructor(cl)
- end
- end
- def widget_dtor_impl(cl_ptr, obj_ptr)
- import introspect
- var cl = lv.lv_obj_class(cl_ptr)
- var obj = self.get_object_from_ptr(obj_ptr)
- # print("widget_dtor_impl", cl, obj)
- if type(obj) == 'instance' && introspect.get(obj, 'widget_destructor')
- obj.widget_destructor(cl)
- end
- end
- def widget_event_impl(cl_ptr, e_ptr)
- import introspect
- var cl = lv.lv_obj_class(cl_ptr)
- var event = lv.lv_event(e_ptr)
- var obj_ptr = event.target
- var obj = self.get_object_from_ptr(obj_ptr)
- if type(obj) == 'instance' && introspect.get(obj, 'widget_event')
- obj.widget_event(cl, event)
- end
- # print("widget_event_impl", cl, obj_ptr, obj, event)
- end
-
-
- def widget_cb()
- if self.widget_ctor_cb == nil self.widget_ctor_cb = tasmota.gen_cb(/ cl, obj -> self.widget_ctor_impl(cl, obj)) end
- if self.widget_dtor_cb == nil self.widget_dtor_cb = tasmota.gen_cb(/ cl, obj -> self.widget_dtor_impl(cl, obj)) end
- if self.widget_event_cb == nil self.widget_event_cb = tasmota.gen_cb(/ cl, e -> self.widget_event_impl(cl, e)) end
-
- if self.widget_struct_default == nil
- self.widget_struct_default = lv.lv_obj_class(lv.lv_obj._class).copy()
- self.widget_struct_default.base_class = lv.lv_obj._class # by default, inherit from base class `lv_obj`, this can be overriden
- self.widget_struct_default.constructor_cb = self.widget_ctor_cb # set the berry cb dispatchers
- self.widget_struct_default.destructor_cb = self.widget_dtor_cb
- self.widget_struct_default.event_cb = self.widget_event_cb
- end
- end
-
- #- deregister_obj all information linked to a specific LVGL native object (int) -#
- def deregister_obj(obj)
- if self.cb_obj != nil self.cb_obj.remove(obj) end
- if self.cb_event_closure != nil self.cb_event_closure.remove(obj) end
- end
-
- #- initialize a custom widget -#
- #- arg must be a subclass of lv.lv_obj -#
- def create_custom_widget(obj, parent)
- import introspect
-
- if !isinstance(obj, lv.lv_obj) raise "value_error", "arg must be a subclass of lv_obj" end
- if self.widget_struct_by_class == nil self.widget_struct_by_class = {} end
-
- var obj_classname = classname(obj)
- var obj_class_struct = self.widget_struct_by_class.find(obj_classname)
- # print("classname=",obj_classname,"_class",super(obj)._class)
- #- not already built, create a new one for this class -#
- if obj_class_struct == nil
- self.widget_cb() # set up all structures
- obj_class_struct = self.widget_struct_default.copy() # get a copy of the structure with pre-defined callbacks
- obj_class_struct.base_class = super(obj)._class
- if introspect.get(obj, 'widget_width_def') obj_class_struct.width_def = obj.widget_width_def end
- if introspect.get(obj, 'widget_height_def') obj_class_struct.height_def = obj.widget_height_def end
- if introspect.get(obj, 'widget_editable') obj_class_struct.editable = obj.widget_editable end
- if introspect.get(obj, 'widget_group_def') obj_class_struct.group_def = obj.widget_group_def end
- if introspect.get(obj, 'widget_instance_size') obj_class_struct.instance_size = obj.widget_instance_size end
-
- #- keep a copy of the structure to avoid GC and reuse if needed -#
- self.widget_struct_by_class[obj_classname] = obj_class_struct
- end
-
- var lv_obj_ptr = lv.obj_class_create_obj(obj_class_struct, parent)
- obj._p = lv_obj_ptr._p
- self.register_obj(obj)
- obj.class_init_obj()
- end
-end
-
-_lvgl = LVGL_glob()
-
-# class lv_custom_widget : lv.lv_obj
-# # static widget_width_def
-# # static widget_height_def
-# # static widget_editable
-# # static widget_group_def
-# # static widget_instance_size
-# #
-# var percentage # value to display, range 0..100
-# var p1, p2, area, line_dsc # instances of objects kept to avoid re-instanciating at each call
-
-# def init(parent)
-# _lvgl.create_custom_widget(self, parent)
-# # own values
-# self.percentage = 100
-# # pre-allocate buffers
-# self.p1 = lv.lv_point()
-# self.p2 = lv.lv_point()
-# self.area = lv.lv_area()
-# self.line_dsc = lv.lv_draw_line_dsc()
-# end
-
-# # def widget_constructor(cl)
-# # print("widget_constructor", cl)
-# # end
-
-# # def widget_destructor(cl)
-# # print("widget_destructor", cl)
-# # end
-
-# def widget_event(cl, event)
-# var res = lv.obj_event_base(cl, event)
-# if res != lv.RES_OK return end
-
-# def atleast1(x) if x >= 1 return x else return 1 end end
-# # the model is that we have 4 bars and inter-bar (1/4 of width)
-# var height = self.get_height()
-# var width = self.get_width()
-
-# var inter_bar = atleast1(width / 15)
-# var bar = atleast1((width - inter_bar * 3) / 4)
-# var bar_offset = bar / 2
-
-# var code = event.code
-# if code == lv.EVENT_DRAW_MAIN
-# var clip_area = lv.lv_area(event.param)
-# print("widget_event DRAW", clip_area.tomap())
-# # lv.event_send(self, lv.EVENT_DRAW_MAIN, clip_area)
-
-# # get coordinates of object
-# self.get_coords(self.area)
-# var x_ofs = self.area.x1
-# var y_ofs = self.area.y1
-
-# lv.draw_line_dsc_init(self.line_dsc) # initialize lv.lv_draw_line_dsc structure
-# self.init_draw_line_dsc(lv.PART_MAIN, self.line_dsc)
-
-# self.line_dsc.round_start = 1
-# self.line_dsc.round_end = 1
-# self.line_dsc.width = bar
-
-# var on_color = self.get_style_line_color(lv.PART_MAIN | lv.STATE_DEFAULT)
-# var off_color = self.get_style_bg_color(lv.PART_MAIN | lv.STATE_DEFAULT)
-
-# lv.event_send(self, lv.EVENT_DRAW_PART_BEGIN, self.line_dsc)
-# for i:0..3 # 4 bars
-# self.line_dsc.color = self.percentage >= (i+1)*20 ? on_color : off_color
-# self.p1.y = y_ofs + height - 1 - bar_offset
-# self.p1.x = x_ofs + i * (bar + inter_bar) + bar_offset
-# self.p2.y = y_ofs + ((3 - i) * (height - bar)) / 4 + bar_offset
-# self.p2.x = self.p1.x
-# lv.draw_line(self.p1, self.p2, clip_area, self.line_dsc)
-# end
-# lv.event_send(self, lv.EVENT_DRAW_PART_END, self.line_dsc)
-
-# end
-# end
-
-# def set_percentage(v)
-# var old_bars = self.percentage / 5
-# if v > 100 v = 100 end
-# if v < 0 v = 0 end
-# self.percentage = v
-# if old_bars != v / 5
-# self.invalidate() # be frugal and avoid updating the widget if it's not needed
-# end
-# end
-
-# def get_percentage()
-# return self.percentage
-# end
-# end
-
-# ########## ########## ########## ########## ########## ########## ########## ##########
-
-# lv.start()
-
-# hres = lv.get_hor_res() # should be 320
-# vres = lv.get_ver_res() # should be 240
-
-# scr = lv.scr_act() # default screean object
-# f20 = lv.montserrat_font(20) # load embedded Montserrat 20
-
-# scr.set_style_bg_color(lv.lv_color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
-
-# w = lv_custom_widget(scr)
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/embedded/openhasp.be b/lib/libesp32/berry/default/embedded/openhasp.be
deleted file mode 100644
index 4232a605b..000000000
--- a/lib/libesp32/berry/default/embedded/openhasp.be
+++ /dev/null
@@ -1,764 +0,0 @@
-import string
-import json
-
-# lv.start()
-# scr = lv.scr_act() # default screean object
-# scr.set_style_bg_color(lv.color(0x0000A0), lv.PART_MAIN | lv.STATE_DEFAULT)
-
-lv.start()
-
-hres = lv.get_hor_res() # should be 320
-vres = lv.get_ver_res() # should be 240
-
-scr = lv.scr_act() # default screean object
-#f20 = lv.montserrat_font(20) # load embedded Montserrat 20
-r20 = lv.font_robotocondensed_latin1(20)
-r16 = lv.font_robotocondensed_latin1(16)
-
-th2 = lv.theme_openhasp_init(0, lv.color(0xFF00FF), lv.color(0x303030), false, r16)
-scr.get_disp().set_theme(th2)
-# TODO
-scr.set_style_bg_color(lv.color(lv.COLOR_WHITE),0)
-
-# apply theme to layer_top, but keep it transparent
-lv.theme_apply(lv.layer_top())
-lv.layer_top().set_style_bg_opa(0,0)
-
-
-# takes an attribute name and responds if it needs color conversion
-def is_color_attribute(t)
- import string
- t = str(t)
- # contains `color` but does not contain `color_`
- return (string.find(t, "color") >= 0) && (string.find(t, "color_") < 0)
-end
-
-# parse hex string
-def parse_hex(s)
- import string
- s = string.toupper(s) # turn to uppercase
- var val = 0
- for i:0..size(s)-1
- var c = s[i]
- # var c_int = string.byte(c)
- if c == "#" continue end # skip '#' prefix if any
- if c == "x" || c == "X" continue end # skip 'x' or 'X'
-
- if c >= "A" && c <= "F"
- val = (val << 4) | string.byte(c) - 55
- elif c >= "0" && c <= "9"
- val = (val << 4) | string.byte(c) - 48
- end
- end
- return val
-end
-
-def parse_color(s)
- s = str(s)
- if s[0] == '#'
- return lv.color(parse_hex(s))
- else
- import string
- import introspect
- var col_name = "COLOR_" + string.toupper(s)
- var col_try = introspect.get(lv, col_name)
- if col_try != nil
- return lv.color(col_try)
- end
- end
- # fail safe with black color
- return lv.color(0x000000)
-end
-
-#- ------------------------------------------------------------
- Class `lvh_obj` encapsulating `lv_obj``
-
- Provide a mapping for virtual members
- Stores the associated page and object id
-
- Adds specific virtual members used by OpenHASP
-- ------------------------------------------------------------ -#
-class lvh_obj
- # _lv_class refers to the lvgl class encapsulated, and is overriden by subclasses
- static _lv_class = lv.obj
- static _lv_part2_selector # selector for secondary part (like knob of arc)
-
- # attributes to ignore when set at object level (they are managed by page)
- static _attr_ignore = [
- "id",
- "obj",
- "page",
- "comment",
- "parentid",
- "auto_size", # TODO not sure it's still needed in LVGL8
- ]
- #- mapping from OpenHASP attribute to LVGL attribute -#
- #- if mapping is null, we use set_X and get_X from our own class -#
- static _attr_map = {
- "x": "x",
- "y": "y",
- "w": "width",
- "h": "height",
- # arc
- "asjustable": nil,
- "mode": nil,
- "start_angle": "bg_start_angle",
- "start_angle1": "start_angle",
- "end_angle": "bg_end_angle",
- "end_angle1": "end_angle",
- "radius": "style_radius",
- "border_side": "style_border_side",
- "bg_opa": "style_bg_opa",
- "border_width": "style_border_width",
- "line_width": nil, # depebds on class
- "line_width1": nil, # depebds on class
- "action": nil, # store the action in self._action
- "hidden": nil, # apply to self
- "enabled": nil, # apply to self
- "click": nil, # synonym to enabled
- "toggle": nil,
- "bg_color": "style_bg_color",
- "bg_grad_color": "style_bg_grad_color",
- "type": nil,
- # below automatically create a sub-label
- "text": nil, # apply to self
- "value_str": nil, # synonym to 'text'
- "align": nil,
- "text_font": nil,
- "value_font": nil, # synonym to text_font
- "text_color": nil,
- "value_color": nil, # synonym to text_color
- "value_ofs_x": nil,
- "value_ofs_y": nil,
- #
- "min": nil,
- "max": nil,
- "val": "value",
- "rotation": "rotation",
- # img
- "src": "src",
- "image_recolor": "style_img_recolor",
- "image_recolor_opa": "style_img_recolor_opa",
- # spinner
- "angle": nil,
- "speed": nil,
- # padding of knob
- "pad_top2": nil,
- "pad_bottom2": nil,
- "pad_left2": nil,
- "pad_right2": nil,
- "pad_all2": nil,
- "radius2": nil,
- }
-
- var _lv_obj # native lvgl object
- var _lv_label # sub-label if exists
- var _action # action for OpenHASP
-
- # init
- # - create the LVGL encapsulated object
- # arg1: parent object
- # arg2: json line object
- def init(parent, jline)
- var obj_class = self._lv_class # need to assign to a var to distinguish from method call
- self._lv_obj = obj_class(parent) # instanciate LVGL object
- self.post_init()
- end
-
- # post-init, to be overriden
- def post_init()
- end
-
- # get LVGL encapsulated object
- def get_obj()
- return self._lv_obj
- end
-
- def set_action(t)
- self._action = str(t)
- end
- def get_action()
- return self._action()
- end
-
- def set_line_width(t)
- self._lv_obj.set_style_line_width(int(t), lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- def get_line_width()
- return self._lv_obj.get_style_line_width(lv.PART_MAIN | lv.STATE_DEFAULT)
- end
-
- #- ------------------------------------------------------------
- Mapping of synthetic attributes
- - text
- - hidden
- - enabled
- - ------------------------------------------------------------ -#
- #- `hidden` attributes mapped to OBJ_FLAG_HIDDEN -#
- def set_hidden(h)
- if h
- self._lv_obj.add_flag(lv.OBJ_FLAG_HIDDEN)
- else
- self._lv_obj.clear_flag(lv.OBJ_FLAG_HIDDEN)
- end
- end
-
- def get_hidden()
- return self._lv_obj.has_flag(lv.OBJ_FLAG_HIDDEN)
- end
-
- #- `enabled` attributes mapped to OBJ_FLAG_CLICKABLE -#
- def set_enabled(h)
- if h
- self._lv_obj.add_flag(lv.OBJ_FLAG_CLICKABLE)
- else
- self._lv_obj.clear_flag(lv.OBJ_FLAG_CLICKABLE)
- end
- end
-
- def get_enabled()
- return self._lv_obj.has_flag(lv.OBJ_FLAG_CLICKABLE)
- end
- # click is synonym to enabled
- def set_click(t) self.set_enabled(t) end
- def get_click() return self.get_enabled() end
-
- #- `toggle` attributes mapped to STATE_CHECKED -#
- def set_toggle(t)
- if t == "TRUE" t = true end
- if t == "FALSE" t = false end
- if t
- self._lv_obj.add_state(lv.STATE_CHECKED)
- else
- self._lv_obj.clear_state(lv.STATE_CHECKED)
- end
- end
-
- def get_toggle()
- return self._lv_obj.has_state(lv.STATE_CHECKED)
- end
-
- def set_adjustable(t)
- if t
- self._lv_obj.add_flag(lv.OBJ_FLAG_CLICKABLE)
- else
- self._lv_obj.clear_flag(lv.OBJ_FLAG_CLICKABLE)
- end
- end
- def get_adjustable()
- return self._lv_obj.has_flag(lv.OBJ_FLAG_CLICKABLE)
- end
-
- #- set_text: create a `lv_label` sub object to the current object -#
- #- (default case, may be overriden by object that directly take text) -#
- def check_label()
- if self._lv_label == nil
- self._lv_label = lv.label(self.get_obj())
- self._lv_label.set_align(lv.ALIGN_CENTER);
- end
- end
-
- def set_text(t)
- self.check_label()
- self._lv_label.set_text(str(t))
- end
- def set_value_str(t) self.set_text(t) end
-
- def get_text()
- if self._lv_label == nil return nil end
- return self._lv_label.get_text()
- end
- def get_value_str() return self.get_text() end
-
- def set_align(t)
- var align
- self.check_label()
- if t == 0 || t == "left"
- align = lv.TEXT_ALIGN_LEFT
- elif t == 1 || t == "center"
- align = lv.TEXT_ALIGN_CENTER
- elif t == 2 || t == "right"
- align = lv.TEXT_ALIGN_RIGHT
- end
- self._lv_label.set_style_text_align(align, lv.PART_MAIN | lv.STATE_DEFAULT)
- end
-
- def get_align()
- if self._lv_label == nil return nil end
- var align self._lv_label.get_style_text_align(lv.PART_MAIN | lv.STATE_DEFAULT)
- if align == lv.TEXT_ALIGN_LEFT
- return "left"
- elif align == lv.TEXT_ALIGN_CENTER
- return "center"
- elif align == lv.TEXT_ALIGN_RIGHT
- return "right"
- else
- return nil
- end
- end
-
- def set_text_font(t)
- self.check_label()
- var f = lv.font_robotocondensed_latin1(int(t))
- if f != nil
- self._lv_label.set_style_text_font(f, lv.PART_MAIN | lv.STATE_DEFAULT)
- else
- print("HSP: Unsupported font size: robotocondensed-latin1", t)
- end
- end
- def get_text_font()
- end
- def set_value_font(t) self.set_text_font(t) end
- def get_value_font() return self.get_text_font() end
-
- def set_text_color(t)
- self.check_label()
- self._lv_label.set_style_text_color(parse_color(t), lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- def get_text_color()
- return self._text_color
- end
- def set_value_color(t) self.set_text_color(t) end
- def get_value_color() return self.get_value_color() end
-
- def set_value_ofs_x(t)
- self.check_label()
- self._lv_label.set_x(int(t))
- end
- def get_value_ofs_x()
- return self._lv_label.get_x()
- end
- def set_value_ofs_y(t)
- self.check_label()
- self._lv_label.set_y(int(t))
- end
- def get_value_ofs_y()
- return self._lv_label.get_y()
- end
-
- # secondary element
- def set_pad_top2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_pad_top(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def set_pad_bottom2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_pad_bottom(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def set_pad_left2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_pad_left(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def set_pad_right2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_pad_right(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def set_pad_all2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_pad_all(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
-
- def get_pad_top()
- if self._lv_part2_selector != nil
- return self._lv_obj.get_style_pad_top(self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def get_pad_bottomo()
- if self._lv_part2_selector != nil
- return self._lv_obj.get_style_pad_bottom(self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def get_pad_left()
- if self._lv_part2_selector != nil
- return self._lv_obj.get_style_pad_left(self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def get_pad_right()
- if self._lv_part2_selector != nil
- return self._lv_obj.get_style_pad_right(self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def get_pad_all()
- end
-
- def set_radius2(t)
- if self._lv_part2_selector != nil
- self._lv_obj.set_style_radius(int(t), self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
- def get_radius2()
- if self._lv_part2_selector != nil
- return self._lv_obj.get_style_radius(self._lv_part2_selector | lv.STATE_DEFAULT)
- end
- end
-
- #- ------------------------------------------------------------
- Mapping of virtual attributes
- - ------------------------------------------------------------ -#
- def member(k)
- # tostring is a special case, we shouldn't raise an exception for it
- if k == 'tostring' return nil end
- #
- if self._attr_map.has(k)
- import introspect
- var kv = self._attr_map[k]
- if kv
- var f = introspect.get(self._lv_obj, "get_" + kv)
- if type(f) == 'function'
- return f(self._lv_obj)
- end
- else
- # call self method
- var f = introspect.get(self, "get_" + k)
- if type(f) == 'function'
- return f(self, k)
- end
- end
- end
- raise "value_error", "unknown attribute " + str(k)
- end
-
- def setmember(k, v)
- import string
- # print(">> setmember", k, v)
- # print(">>", classname(self), self._attr_map)
- if self._attr_ignore.find(k) != nil
- return
- elif self._attr_map.has(k)
- import introspect
- var kv = self._attr_map[k]
- if kv
- var f = introspect.get(self._lv_obj, "set_" + kv)
- # if the attribute contains 'color', convert to lv_color
- if type(kv) == 'string' && is_color_attribute(kv)
- v = parse_color(v)
- end
- # print("f=", f, v, kv, self._lv_obj, self)
- if type(f) == 'function'
- if string.find(kv, "style_") == 0
- # style function need a selector as second parameter
- f(self._lv_obj, v, lv.PART_MAIN | lv.STATE_DEFAULT)
- else
- f(self._lv_obj, v)
- end
- return
- else
- print("HSP: Could not find function set_"+kv)
- end
- else
- # call self method
- var f = introspect.get(self, "set_" + k)
- # print("f==",f)
- if type(f) == 'function'
- f(self, v)
- return
- end
- end
-
- else
- print("HSP: unknown attribute:", k)
- end
- # silently ignore if the attribute name is not supported
- end
-end
-
-#- ------------------------------------------------------------
- Other widgets
-- ------------------------------------------------------------ -#
-
-#- ------------------------------------------------------------
- label
-#- ------------------------------------------------------------#
-class lvh_label : lvh_obj
- static _lv_class = lv.label
- # label do not need a sub-label
- def post_init()
- self._lv_label = self._lv_obj
- end
-end
-
-#- ------------------------------------------------------------
- arc
-#- ------------------------------------------------------------#
-class lvh_arc : lvh_obj
- static _lv_class = lv.arc
- static _lv_part2_selector = lv.PART_KNOB
-
- # line_width converts to arc_width
- def set_line_width(t)
- self._lv_obj.set_style_arc_width(int(t), lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- def get_line_width()
- return self._lv_obj.get_arc_line_width(lv.PART_MAIN | lv.STATE_DEFAULT)
- end
- def set_line_width1(t)
- self._lv_obj.set_style_arc_width(int(t), lv.PART_INDICATOR | lv.STATE_DEFAULT)
- end
- def get_line_width1()
- return self._lv_obj.get_arc_line_width(lv.PART_INDICATOR | lv.STATE_DEFAULT)
- end
-
- def set_min(t)
- self._lv_obj.set_range(int(t), self.get_max())
- end
- def set_max(t)
- self._lv_obj.set_range(self.get_min(), int(t))
- end
- def get_min()
- return self._lv_obj.get_min_value()
- end
- def get_max()
- return self._lv_obj.get_max_value()
- end
- def set_type(t)
- var mode
- if t == 0 mode = lv.ARC_MODE_NORMAL
- elif t == 1 mode = lv.ARC_MODE_REVERSE
- elif t == 2 mode = lv.ARC_MODE_SYMMETRICAL
- end
- if mode != nil
- self._lv_obj.set_mode(mode)
- end
- end
- def get_type()
- return self._lv_obj.get_mode()
- end
- # mode
- def set_mode(t)
- var mode
- if mode == "expand" self._lv_obj.set_width(lv.SIZE_CONTENT)
- elif mode == "break" mode = lv.LABEL_LONG_WRAP
- elif mode == "dots" mode = lv.LABEL_LONG_DOT
- elif mode == "scroll" mode = lv.LABEL_LONG_SCROLL
- elif mode == "loop" mode = lv.LABEL_LONG_SCROLL_CIRCULAR
- elif mode == "crop" mode = lv.LABEL_LONG_CLIP
- end
- if mode != nil
- self._lv_obj.lv_label_set_long_mode(mode)
- end
- end
- def get_mode()
- end
-
-end
-
-#- ------------------------------------------------------------
- switch
-#- ------------------------------------------------------------#
-class lvh_switch : lvh_obj
- static _lv_class = lv.switch
- static _lv_part2_selector = lv.PART_KNOB
-end
-
-#- ------------------------------------------------------------
- spinner
-#- ------------------------------------------------------------#
-class lvh_spinner : lvh_arc
- static _lv_class = lv.spinner
-
- # init
- # - create the LVGL encapsulated object
- # arg1: parent object
- # arg2: json line object
- def init(parent, jline)
- var angle = jline.find("angle", 60)
- var speed = jline.find("speed", 1000)
- self._lv_obj = lv.spinner(parent, speed, angle)
- self.post_init()
- end
-
- # ignore attributes, spinner can't be changed once created
- def set_angle(t) end
- def get_angle() end
- def set_speed(t) end
- def get_speed() end
-end
-
-#- creat sub-classes of lvh_obj and map the LVGL class in static '_lv_class' attribute -#
-class lvh_bar : lvh_obj static _lv_class = lv.bar end
-class lvh_btn : lvh_obj static _lv_class = lv.btn end
-class lvh_btnmatrix : lvh_obj static _lv_class = lv.btnmatrix end
-class lvh_checkbox : lvh_obj static _lv_class = lv.checkbox end
-class lvh_dropdown : lvh_obj static _lv_class = lv.dropdown end
-class lvh_img : lvh_obj static _lv_class = lv.img end
-class lvh_line : lvh_obj static _lv_class = lv.line end
-class lvh_roller : lvh_obj static _lv_class = lv.roller end
-class lvh_slider : lvh_obj static _lv_class = lv.slider end
-class lvh_textarea : lvh_obj static _lv_class = lv.textarea end
-
-#- ----------------------------------------------------------------------------
- Class `lvh_page` encapsulating `lv_obj` as screen (created with lv.obj(0))
-- ----------------------------------------------------------------------------- -#
-# ex of transition: lv.scr_load_anim(scr, lv.SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0, false)
-class lvh_page
- var _obj_id # (map) of objects by id numbers
- var _page_id # (int) id number of the page
- var _lv_scr # (lv_obj) lvgl screen object
-
- #- init(page_number) -#
- def init(page_number)
- import global
-
- # if no parameter, default to page #1
- if page_number == nil page_number = 1 end
-
- self._page_id = page_number # remember our page_number
- self._obj_id = {} # init list of objects
- if page_number == 1
- self._lv_scr = lv.scr_act() # default screen
- elif page_number == 0
- self._lv_scr = lv.layer_top() # top layer, visible over all screens
- else
- self._lv_scr = lv.obj(0) # allocate a new screen
- # self._lv_scr.set_style_bg_color(lv.color(0x000000), lv.PART_MAIN | lv.STATE_DEFAULT) # set black background
- self._lv_scr.set_style_bg_color(lv.color(0xFFFFFF), lv.PART_MAIN | lv.STATE_DEFAULT) # set white background
- end
-
- # create a global for this page of form p, ex p1
- var glob_name = string.format("p%i", self._page_id)
- global.(glob_name) = self
- end
-
- #- retrieve lvgl screen object for this page -#
- def get_scr()
- return self._lv_scr
- end
-
- #- add an object to this page -#
- def set_obj(id, o)
- self._obj_id[id] = o
- end
- def get_obj(id)
- return self._obj_id.find(id)
- end
-
- #- return id of this page -#
- def id()
- return self._page_id
- end
-
- #- show this page, with animation -#
- def show(anim, duration)
- # ignore if there is no screen, like for id 0
- if self._lv_scr == nil return nil end
- # ignore if the screen is already active
- if self._lv_scr._p == lv.scr_act()._p return end # do nothing
-
- # default animation is lv.SCR_LOAD_ANIM_MOVE_RIGHT
- if anim == nil anim = lv.SCR_LOAD_ANIM_MOVE_RIGHT end
- # default duration of 500ms
- if duration == nil duration = 500 end
-
- # load new screen with anumation, no delay, 500ms transition time, no auto-delete
- lv.scr_load_anim(self._lv_scr, lv.SCR_LOAD_ANIM_MOVE_RIGHT, duration, 0, false)
- end
-end
-
-#- pages -#
-var lvh_page_cur = lvh_page(1)
-var lvh_pages = { 1: lvh_page_cur } # always create page #1
-
-f = open("pages.jsonl","r")
-var jsonl = string.split(f.read(), "\n")
-f.close()
-
-#- ------------------------------------------------------------
- Parse page information
-
- Create a new page object if required
- Change the active page
-- ------------------------------------------------------------ -#
-def parse_page(jline)
- if jline.has("page") && type(jline["page"]) == 'int'
- var page = int(jline["page"])
- # does the page already exist?
- if lvh_pages.has(page)
- # yes, just change the current page
- lvh_page_cur = lvh_pages[page]
- else
- # no, create a new page
- lvh_page_cur = lvh_page(page)
- lvh_pages[page] = lvh_page_cur
- end
- end
-end
-
-#- ------------------------------------------------------------
- Parse single object
-
-- ------------------------------------------------------------ -#
-def parse_obj(jline, page)
- import global
- import introspect
-
- # line must contain 'obj' and 'id', otherwise it is ignored
- if jline.has("obj") && jline.has("id") && type(jline["id"]) == 'int'
- # 'obj_id' must be between 1 and 254
- var obj_id = int(jline["id"])
- if obj_id < 1 || obj_id > 254
- raise "value error", "invalid id " + str(obj_id)
- end
-
- # extract openhasp class, prefix with `lvh_`. Ex: `btn` becomes `lvh_btn`
- var obj_type = jline["obj"]
-
- # extract parent
- var parent
- var parent_id = int(jline.find("parentid"))
- if parent_id != nil
- var parent_obj = lvh_page_cur.get_obj(parent_id)
- if parent_obj != nil
- parent = parent_obj._lv_obj
- end
- end
- if parent == nil
- parent = page.get_scr()
- end
-
- # check if a class with the requested name exists
- var obj_class = introspect.get(global, "lvh_" + obj_type)
- if obj_class == nil
- raise "value error", "cannot find object of type " + str(obj_type)
- end
-
- # instanciate the object, passing the lvgl screen as paren object
- var obj = obj_class(parent, jline)
-
- # add object to page object
- lvh_page_cur.set_obj(obj_id, obj)
- # set attributes
- # try every attribute, if not supported it is silently ignored
- for k:jline.keys()
- # introspect.set(obj, k, jline[k])
- obj.(k) = jline[k]
- end
-
- # create a global variable for this object of form pb, ex p1b2
- var glob_name = string.format("p%ib%i", lvh_page_cur.id(), obj_id)
- global.(glob_name) = obj
- end
-end
-
-# ex:
-# {'page': 1, 'h': 50, 'obj': 'label', 'hidden': false, 'text': 'Hello', 'x': 5, 'id': 1, 'enabled': true, 'y': 5, 'w': 50}
-# {"page":1,"id":2,"obj":"btn","x":5,"y":90,"h":90,"w":50,"text":"World","enabled":false,"hidden":false}
-
-#- ------------------------------------------------------------
- Parse jsonl file line by line
-
-- ------------------------------------------------------------ -#
-tasmota.yield()
-for j:jsonl
- var jline = json.load(j)
-
- # parse page first
- if type(jline) == 'instance'
- parse_page(jline)
- parse_obj(jline, lvh_page_cur)
- end
-end
diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo-all.jsonl b/lib/libesp32/berry/default/embedded/openhasp/demo-all.jsonl
deleted file mode 100644
index 76d3ed810..000000000
--- a/lib/libesp32/berry/default/embedded/openhasp/demo-all.jsonl
+++ /dev/null
@@ -1,61 +0,0 @@
-{"page":1,"comment":"---------- Page 1 ----------"}
-{"page":1,"id":0,"bg_color":"#FFFFFF","bg_grad_color":"#FFFFFF","text_color":"#000000","radius":0,"border_side":0}
-{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"LIVING ROOM","value_font":24,"bg_color":"#2C3E50","bg_grad_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0}
-
-{"page":1,"id":2,"obj":"arc","x":20,"y":65,"w":80,"h":100,"max":40,"border_side":0,"type":0,"rotation":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"21.2°C","min":-20,"max":50,"val":21}
-
-{"page":1,"id":3,"obj":"arc","x":140,"y":65,"w":80,"h":100,"max":100,"border_side":0,"type":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_color":"#000000","value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"44%","val":44}
-
-{"page":1,"id":4,"obj":"label","x":0,"y":120,"w":240,"h":20,"text":"CO2 levels: 1483 ppm","radius":0,"border_side":0,"align":1}
-{"page":1,"id":5,"obj":"label","x":2,"y":35,"w":140,"text":"Temperature","align":1}
-{"page":1,"id":6,"obj":"label","x":140,"y":35,"w":95,"text":"Humidity","align":1}
-{"page":1,"id":7,"obj":"btn","x":0,"y":160,"w":240,"h":20,"text":"LIGHTS","bg_color":"#F1C40F","text_color":"#FFFFFF","radius":0,"border_side":0}
-{"page":1,"id":8,"obj":"label","x":20,"y":190,"w":140,"h":20,"text":"Ceiling Light"}
-{"page":1,"id":9,"obj":"switch","x":160,"y":190,"w":40,"h":20,"toggle":"TRUE"}
-{"page":1,"id":10,"obj":"label","x":20,"y":215,"w":140,"h":20,"text":"Wall Light"}
-{"page":1,"id":11,"obj":"switch","x":160,"y":215,"w":40,"h":20,"toggle":"TRUE"}
-{"page":1,"id":12,"obj":"label","x":20,"y":240,"w":200,"h":20,"text":"Ambient Light"}
-{"page":1,"id":13,"obj":"slider","x":30,"y":265,"w":200,"h":10}
-
-{"page":2,"comment":"---------- Page 2 ----------"}
-{"page":2,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"ENTITIES","value_font":24,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
-{"page":2,"id":2,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0}
-
-{"page":2,"id":11,"obj":"label","x":8,"y":33,"w":35,"h":35,"text":"\uE004","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":12,"obj":"label","x":48,"y":43,"w":130,"h":30,"text":"Presence override","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":13,"obj":"switch","x":177,"y":40,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":2,"id":21,"obj":"label","x":8,"y":69,"w":35,"h":35,"text":"\uF020","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":22,"obj":"label","x":48,"y":79,"w":130,"h":30,"text":"Front door light","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":23,"obj":"switch","x":177,"y":74,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":2,"id":31,"obj":"label","x":8,"y":103,"w":35,"h":35,"text":"\uF054","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":32,"obj":"label","x":48,"y":113,"w":130,"h":30,"text":"Back yard lights","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":33,"obj":"switch","x":177,"y":110,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":2,"id":41,"obj":"label","x":8,"y":138,"w":35,"h":35,"text":"\uEA7A","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":42,"obj":"label","x":48,"y":148,"w":130,"h":30,"text":"Trash service","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":43,"obj":"label","x":97,"y":148,"w":130,"h":30,"text":"in 6 days","align":2,"text_color":"black"}
-
-{"page":2,"id":51,"obj":"label","x":8,"y":173,"w":35,"h":35,"text":"\uF39D","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":52,"obj":"label","x":48,"y":183,"w":130,"h":30,"text":"Selective trash","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":53,"obj":"label","x":97,"y":183,"w":130,"h":30,"text":"in 10 days","align":2,"text_color":"black"}
-
-{"page":2,"id":61,"obj":"label","x":8,"y":208,"w":35,"h":35,"text":"\uE32A","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":62,"obj":"label","x":48,"y":218,"w":130,"h":30,"text":"Green energy active","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":63,"obj":"label","x":97,"y":218,"w":130,"h":30,"text":"Yes :)","align":2,"text_color":"black"}
-
-{"page":2,"id":71,"obj":"label","x":8,"y":243,"w":35,"h":35,"text":"\uE957","align":1,"text_font":32,"text_color":"black"}
-{"page":2,"id":72,"obj":"label","x":48,"y":253,"w":130,"h":30,"text":"Air quality","align":0,"text_font":16,"text_color":"black"}
-{"page":2,"id":73,"obj":"label","x":97,"y":253,"w":130,"h":30,"text":"OK (29.58 µg/m³)","align":2,"text_color":"black"}
-
-{"page":3,"comment":"---------- Page 3 ----------"}
-{"page":3,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"FAN STATUS","text_font":16,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
-
-{"page":3,"id":11,"obj":"img","src":"A:/noun_Fan_35097_140.png","auto_size":1,"w":140,"h":140,"x":50,"y":75,"image_recolor":"lime","image_recolor_opa":150}
-{"page":3,"id":12,"obj":"spinner","parentid":11,"x":7,"y":6,"w":126,"h":126,"bg_opa":0,"border_width":0,"line_width":7,"line_width1":7,"type":2,"angle":120,"speed":1000,"value_str":3,"value_font":24}
-
-{"page":0,"comment":"---------- All pages ----------"}
-{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
-{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
-{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo1.jsonl b/lib/libesp32/berry/default/embedded/openhasp/demo1.jsonl
deleted file mode 100644
index 684e0d324..000000000
--- a/lib/libesp32/berry/default/embedded/openhasp/demo1.jsonl
+++ /dev/null
@@ -1,23 +0,0 @@
-{"page":1,"comment":"---------- Page 1 ----------"}
-{"page":1,"id":0,"bg_color":"#FFFFFF","bg_grad_color":"#FFFFFF","text_color":"#000000","radius":0,"border_side":0}
-{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"LIVING ROOM","value_font":22,"bg_color":"#2C3E50","bg_grad_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0}
-
-{"page":1,"id":2,"obj":"arc","x":20,"y":65,"w":80,"h":100,"max":40,"border_side":0,"type":0,"rotation":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"21.2°C","min":-20,"max":50,"val":21}
-
-{"page":1,"id":3,"obj":"arc","x":140,"y":65,"w":80,"h":100,"max":100,"border_side":0,"type":0,"start_angle":180,"end_angle":0,"start_angle1":180,"value_font":12,"value_color":"#000000","value_ofs_x":0,"value_ofs_y":-14,"bg_opa":0,"text":"44%","val":44}
-
-{"page":1,"id":4,"obj":"label","x":0,"y":120,"w":240,"h":20,"text":"CO2 levels: 1483 ppm","radius":0,"border_side":0,"align":1}
-{"page":1,"id":5,"obj":"label","x":2,"y":35,"w":140,"text":"Temperature","align":1}
-{"page":1,"id":6,"obj":"label","x":140,"y":35,"w":95,"text":"Humidity","align":1}
-{"page":1,"id":7,"obj":"btn","x":0,"y":160,"w":240,"h":20,"text":"LIGHTS","bg_color":"#F1C40F","text_color":"#FFFFFF","radius":0,"border_side":0}
-{"page":1,"id":8,"obj":"label","x":20,"y":190,"w":140,"h":20,"text":"Ceiling Light"}
-{"page":1,"id":9,"obj":"switch","x":160,"y":190,"w":40,"h":20,"toggle":"TRUE"}
-{"page":1,"id":10,"obj":"label","x":20,"y":215,"w":140,"h":20,"text":"Wall Light"}
-{"page":1,"id":11,"obj":"switch","x":160,"y":215,"w":40,"h":20,"toggle":"TRUE"}
-{"page":1,"id":12,"obj":"label","x":20,"y":240,"w":200,"h":20,"text":"Ambient Light"}
-{"page":1,"id":13,"obj":"slider","x":30,"y":265,"w":200,"h":10}
-
-{"page":0,"comment":"---------- All pages ----------"}
-{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
-{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
-{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo2.jsonl b/lib/libesp32/berry/default/embedded/openhasp/demo2.jsonl
deleted file mode 100644
index b1d6efc34..000000000
--- a/lib/libesp32/berry/default/embedded/openhasp/demo2.jsonl
+++ /dev/null
@@ -1,35 +0,0 @@
-{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"ENTITIES","value_font":22,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
-{"page":1,"id":2,"obj":"obj","x":5,"y":35,"w":230,"h":250,"click":0}
-
-{"page":1,"id":11,"obj":"label","x":8,"y":33,"w":35,"h":35,"text":"\uE004","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":12,"obj":"label","x":48,"y":43,"w":130,"h":30,"text":"Presence override","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":13,"obj":"switch","x":177,"y":40,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":1,"id":21,"obj":"label","x":8,"y":69,"w":35,"h":35,"text":"\uF020","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":22,"obj":"label","x":48,"y":79,"w":130,"h":30,"text":"Front door light","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":23,"obj":"switch","x":177,"y":74,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":1,"id":31,"obj":"label","x":8,"y":103,"w":35,"h":35,"text":"\uF054","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":32,"obj":"label","x":48,"y":113,"w":130,"h":30,"text":"Back yard lights","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":33,"obj":"switch","x":177,"y":110,"w":50,"h":25,"radius":25,"radius2":15}
-
-{"page":1,"id":41,"obj":"label","x":8,"y":138,"w":35,"h":35,"text":"\uEA7A","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":42,"obj":"label","x":48,"y":148,"w":130,"h":30,"text":"Trash service","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":43,"obj":"label","x":97,"y":148,"w":130,"h":30,"text":"in 6 days","align":2,"text_color":"black"}
-
-{"page":1,"id":51,"obj":"label","x":8,"y":173,"w":35,"h":35,"text":"\uF39D","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":52,"obj":"label","x":48,"y":183,"w":130,"h":30,"text":"Selective trash","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":53,"obj":"label","x":97,"y":183,"w":130,"h":30,"text":"in 10 days","align":2,"text_color":"black"}
-
-{"page":1,"id":61,"obj":"label","x":8,"y":208,"w":35,"h":35,"text":"\uE32A","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":62,"obj":"label","x":48,"y":218,"w":130,"h":30,"text":"Green energy active","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":63,"obj":"label","x":97,"y":218,"w":130,"h":30,"text":"Yes :)","align":2,"text_color":"black"}
-
-{"page":1,"id":71,"obj":"label","x":8,"y":243,"w":35,"h":35,"text":"\uE957","align":1,"text_font":32,"text_color":"black"}
-{"page":1,"id":72,"obj":"label","x":48,"y":253,"w":130,"h":30,"text":"Air quality","align":0,"text_font":16,"text_color":"black"}
-{"page":1,"id":73,"obj":"label","x":97,"y":253,"w":130,"h":30,"text":"OK (29.58 µg/m³)","align":2,"text_color":"black"}
-
-{"page":0,"comment":"---------- All pages ----------"}
-{"page":0,"id":11,"obj":"btn","action":"prev","x":0,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE141","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
-{"page":0,"id":12,"obj":"btn","action":"back","x":80,"y":290,"w":80,"h":32,"bg_color":"#34495E","text":"\uE2DC","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":24}
-{"page":0,"id":13,"obj":"btn","action":"next","x":161,"y":290,"w":79,"h":32,"bg_color":"#34495E","text":"\uE142","text_color":"#CCCCCC","radius":0,"border_side":0,"text_font":32}
diff --git a/lib/libesp32/berry/default/embedded/openhasp/demo3.jsonl b/lib/libesp32/berry/default/embedded/openhasp/demo3.jsonl
deleted file mode 100644
index f8b952f81..000000000
--- a/lib/libesp32/berry/default/embedded/openhasp/demo3.jsonl
+++ /dev/null
@@ -1,4 +0,0 @@
-{"page":1,"id":1,"obj":"btn","x":0,"y":0,"w":240,"h":30,"text":"FAN STATUS","text_font":16,"bg_color":"#2C3E50","text_color":"#FFFFFF","radius":0,"border_side":0,"click":0}
-
-{"page":1,"id":11,"obj":"img","src":"A:/noun_Fan_35097_140.png","auto_size":1,"w":140,"h":140,"x":50,"y":75,"image_recolor":"lime","image_recolor_opa":150}
-{"page":1,"id":12,"obj":"spinner","parentid":11,"x":7,"y":6,"w":126,"h":126,"bg_opa":0,"border_width":0,"line_width":7,"line_width1":7,"type":2,"angle":120,"speed":1000,"value_str":3,"value_font":24}
\ No newline at end of file
diff --git a/lib/libesp32/berry/default/embedded/persist.be b/lib/libesp32/berry/default/embedded/persist.be
deleted file mode 100644
index 164a1dd7b..000000000
--- a/lib/libesp32/berry/default/embedded/persist.be
+++ /dev/null
@@ -1,161 +0,0 @@
-#- persistance module for Berry -#
-#- -#
-#- To solidify: -#
-#-
- # load only persis_module and persist_module.init
- import solidify
- solidify.dump(persist_module.init)
- # copy and paste into `be_persist_lib.c`
--#
-var persist_module = module("persist")
-
-persist_module.init = def (m)
-
- class Persist
- var _filename
- var _p
- var _dirty
-
- #- persist can be initialized with pre-existing values. The map is not copied so any change will be reflected -#
- def init(m)
- # print("Persist init")
- self._filename = '_persist.json'
- if isinstance(m,map)
- self._p = m.copy() # need to copy instead?
- else
- self._p = {}
- end
- self.load(self._p, self._filename)
- self._dirty = false
- # print("Persist init")
- end
-
- #- virtual member getter, if a key does not exists return `nil`-#
- def member(key)
- return self._p.find(key)
- end
-
- #- virtual member setter -#
- def setmember(key, value)
- self._p[key] = value
- self._dirty = true
- end
-
- #- clear all entries -#
- def zero()
- self._p = {}
- self._dirty = true
- end
-
- def remove(k)
- self._p.remove(k)
- self._dirty = true
- end
-
- def has(k)
- return self._p.has(k)
- end
-
- def find(k, d)
- return self._p.find(k, d)
- end
-
- def load()
- import json
- import path
- var f # file object
- var val # values loaded from json
-
- if path.exists(self._filename)
- try
- f = open(self._filename, "r")
- val = json.load(f.read())
- f.close()
- except .. as e, m
- if f != nil f.close() end
- raise e, m
- end
- if isinstance(val, map)
- self._p = val # sucess
- else
- print("BRY: failed to load _persist.json")
- end
- self._dirty = false
- else
- self.save()
- end
-
- # print("Loading")
- end
-
- def save()
- var f # file object
- try
- f = open(self._filename, "w")
- self.json_fdump(f)
- f.close()
- except .. as e, m
- if f != nil f.close() end
- f = open(self._filename, "w")
- f.write('{}') # fallback write empty map
- f.close()
- raise e, m
- end
- self._dirty = false
- # print("Saving")
- end
-
- def json_fdump_any(f, v)
- import json
- if isinstance(v, map)
- self.json_fdump_map(f, v)
- elif isinstance(v, list)v
- self.json_fdump_list(f, v)
- else
- f.write(json.dump(v))
- end
- end
-
- def json_fdump_map(f, v)
- import json
- f.write('{')
- var sep = nil
- for k:v.keys()
- if sep != nil f.write(sep) end
-
- f.write(json.dump(str(k)))
- f.write(':')
- self.json_fdump_any(f, v[k])
-
- sep = ","
- end
- f.write('}')
- end
-
- def json_fdump_list(f, v)
- import json
- f.write('[')
- var i = 0
- while i < size(v)
- if i > 0 f.write(',') end
- self.json_fdump_any(f, v[i])
- i += 1
- end
- f.write(']')
- end
-
- def json_fdump(f)
- import json
- if isinstance(self._p, map)
- self.json_fdump_map(f, self._p)
- else
- raise "internal_error", "persist._p is not a map"
- end
- end
- end
-
-
- return Persist() # return an instance of this class
-end
-
-return persist_module
diff --git a/lib/libesp32/berry/default/embedded/tapp.be b/lib/libesp32/berry/default/embedded/tapp.be
deleted file mode 100644
index 30aa1f740..000000000
--- a/lib/libesp32/berry/default/embedded/tapp.be
+++ /dev/null
@@ -1,35 +0,0 @@
-#- Tasmota apps module for Berry -#
-#- -#
-
-var tapp_module = module("tapp")
-
-tapp_module.init = def (m)
-
- class Tapp
-
- def init()
- tasmota.add_driver(self)
- end
-
- def autoexec()
- import path
- import string
-
- var dir = path.listdir("/")
-
- for d: dir
- if string.find(d, ".tapp") > 0
- tasmota.log(string.format("TAP: found Tasmota App '%s'", d), 2)
- tasmota.load(d + "#autoexec.be")
- end
- end
- end
- end
-
- return Tapp() # return an instance of this class
-end
-
-# aa = autoconf_module.init(autoconf_module)
-# import webserver
-# webserver.on('/ac2', / -> aa.page_autoconf_mgr(), webserver.HTTP_GET)
-return tapp_module
diff --git a/lib/libesp32/berry/default/embedded/test_crypto.be b/lib/libesp32/berry/default/embedded/test_crypto.be
deleted file mode 100644
index f2edbfee5..000000000
--- a/lib/libesp32/berry/default/embedded/test_crypto.be
+++ /dev/null
@@ -1,30 +0,0 @@
-ec = crypto.EC_C25519()
-
-# Alice
-sk_A = bytes('77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a')
-pk_A = ec.public_key(sk_A)
-assert(pk_A == bytes('8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a'))
-
-# Bob
-sk_B = bytes('5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb')
-pk_B = ec.public_key(sk_B)
-assert(pk_B == bytes('de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f'))
-
-psk = ec.shared_key(sk_A, pk_B)
-assert(psk == bytes('4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742'))
-psk2 = ec.shared_key(sk_B, pk_A)
-assert(psk2 == bytes('4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742'))
-
-#- test vectors from RFC77748
-
- Alice's private key, a:
- 77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a
- Alice's public key, X25519(a, 9):
- 8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a
- Bob's private key, b:
- 5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb
- Bob's public key, X25519(b, 9):
- de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f
- Their shared secret, K:
- 4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742
--#
diff --git a/lib/libesp32/berry/default/static_block.hpp b/lib/libesp32/berry/default/static_block.hpp
deleted file mode 100644
index 152dda130..000000000
--- a/lib/libesp32/berry/default/static_block.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * static_block.hpp
- *
- * An implementation of a Java-style static block, in C++ (and potentially a
- * GCC/clang extension to avoid warnings). Almost, but not quite, valid C.
- * Partially inspired by Andrei Alexandrescu's Scope Guard and
- * discussions on stackoverflow.com
- *
- * By Eyal Rozenberg
- *
- * Licensed under the Apache License v2.0:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-#pragma once
-#ifndef STATIC_BLOCK_HPP_
-#define STATIC_BLOCK_HPP_
-
-#ifndef CONCATENATE
-#define CONCATENATE(s1, s2) s1##s2
-#define EXPAND_THEN_CONCATENATE(s1, s2) CONCATENATE(s1, s2)
-#endif /* CONCATENATE */
-
-#ifndef UNIQUE_IDENTIFIER
-/**
- * This macro expands into a different identifier in every expansion.
- * Note that you _can_ clash with an invocation of UNIQUE_IDENTIFIER
- * by manually using the same identifier elsewhere; or by carefully
- * choosing another prefix etc.
- */
-#ifdef __COUNTER__
-#define UNIQUE_IDENTIFIER(prefix) EXPAND_THEN_CONCATENATE(prefix, __COUNTER__)
-#else
-#define UNIQUE_IDENTIFIER(prefix) EXPAND_THEN_CONCATENATE(prefix, __LINE__)
-#endif /* COUNTER */
-#else
-#endif /* UNIQUE_IDENTIFIER */
-
-/**
- * Following is a mechanism for executing code statically.
- *
- * @note Caveats:
- * - Your static block must be surround by curly braces.
- * - No need for a semicolon after the block (but it won't hurt).
- * - Do not put static blocks in files, as it might get compiled multiple
- * times ane execute multiple times.
- * - A static_block can only be used in file scope - not within any other block etc.
- * - Templated static blocks will probably not work. Avoid them.
- * - No other funny business, this is fragile.
- * - This does not having any threading issues (AFAICT) - as it has no static
- * initialization order issue. Of course, you have to _keep_ it safe with
- * your static code.
- * - Execution of the code is guaranteed to occur before main() executes,
- * but the relative order of statics being initialized is unknown/unclear. So,
- * do not call any method of an instance of a class which you expect to have been
- * constructed; it may not have been. Instead, you can use a static getInstance() method
- * (look this idiom up on the web, it's safe).
- * - Variables defined within the static block are not global; they will
- * go out of scope as soon as its execution concludes.
- *
- * Usage example:
- *
- * static_block {
- * do_stuff();
- * std::cout << "in the static block!\n";
- * }
- *
- */
-#define static_block STATIC_BLOCK_IMPL1(UNIQUE_IDENTIFIER(_static_block_))
-
-#define STATIC_BLOCK_IMPL1(prefix) \
- STATIC_BLOCK_IMPL2(CONCATENATE(prefix,_fn),CONCATENATE(prefix,_var))
-
-#define STATIC_BLOCK_IMPL2(function_name,var_name) \
-static void function_name(); \
-static int var_name __attribute((unused)) = (function_name(), 0) ; \
-static void function_name()
-
-
-#endif // STATIC_BLOCK_HPP_
diff --git a/lib/libesp32/berry/examples/anon_func.be b/lib/libesp32/berry/examples/anon_func.be
deleted file mode 100644
index 78854ce64..000000000
--- a/lib/libesp32/berry/examples/anon_func.be
+++ /dev/null
@@ -1,20 +0,0 @@
-# anonymous function and closure
-def count(x)
- var arr = []
- for i : 0 .. x
- arr.push(
- def (n) # loop variable cannot be used directly as free variable
- return def ()
- return n * n
- end
- end (i) # define and call anonymous function
- )
- end
- return arr
-end
-
-for xx : count(6)
- print(xx()) # 0, 1, 4 ... n * n
-end
-
-return count
diff --git a/lib/libesp32/berry/examples/bigloop.be b/lib/libesp32/berry/examples/bigloop.be
deleted file mode 100644
index a3a77768b..000000000
--- a/lib/libesp32/berry/examples/bigloop.be
+++ /dev/null
@@ -1,15 +0,0 @@
-import time
-
-c = time.clock()
-do
- i = 0
- while i < 100000000
- i += 1
- end
-end
-print('while iteration 100000000 times', time.clock() - c, 's')
-
-c = time.clock()
-for i : 1 .. 100000000
-end
-print('for iteration 100000000 times', time.clock() - c, 's')
diff --git a/lib/libesp32/berry/examples/bintree.be b/lib/libesp32/berry/examples/bintree.be
deleted file mode 100644
index 81936f8a0..000000000
--- a/lib/libesp32/berry/examples/bintree.be
+++ /dev/null
@@ -1,60 +0,0 @@
-# Reference from https://github.com/BerryMathDevelopmentTeam/BerryMath/blob/master/testscript/BinaryTree.bm
-
-class node
- var v, l, r
- def init(v, l, r)
- self.v = v
- self.l = l
- self.r = r
- end
- def insert(v)
- if v < self.v
- if self.l
- self.l.insert(v)
- else
- self.l = node(v)
- end
- else
- if self.r
- self.r.insert(v)
- else
- self.r = node (v)
- end
- end
- end
- def sort(l)
- if (self.l) self.l.sort(l) end
- l.push(self.v)
- if (self.r) self.r.sort(l) end
- end
-end
-
-class btree
- var root
- def insert(v)
- if self.root
- self.root.insert(v)
- else
- self.root = node(v)
- end
- end
- def sort()
- var l = []
- if self.root
- self.root.sort(l)
- end
- return l
- end
-end
-
-var tree = btree()
-tree.insert(-100)
-tree.insert(5);
-tree.insert(3);
-tree.insert(9);
-tree.insert(10);
-tree.insert(10000000);
-tree.insert(1);
-tree.insert(-1);
-tree.insert(-10);
-print(tree.sort());
diff --git a/lib/libesp32/berry/examples/calcpi.be b/lib/libesp32/berry/examples/calcpi.be
deleted file mode 100644
index 053f87875..000000000
--- a/lib/libesp32/berry/examples/calcpi.be
+++ /dev/null
@@ -1,16 +0,0 @@
-def cpi(n)
- i = 2
- pi = 3
- while i <= n
- term = 4.0 / (i * (i + 1) * (i + 2))
- if i % 4
- pi = pi + term
- else
- pi = pi - term
- end
- i = i + 2
- end
- return pi
-end
-
-print("pi =", cpi(100))
diff --git a/lib/libesp32/berry/examples/exception.be b/lib/libesp32/berry/examples/exception.be
deleted file mode 100644
index 3a3098dce..000000000
--- a/lib/libesp32/berry/examples/exception.be
+++ /dev/null
@@ -1,12 +0,0 @@
-import debug
-
-def test_func()
- try
- compile('def +() end')()
- except .. as e, v
- print('catch execption:', str(e) + ' >>>\n ' + str(v))
- debug.traceback()
- end
-end
-
-test_func()
diff --git a/lib/libesp32/berry/examples/fib_rec.be b/lib/libesp32/berry/examples/fib_rec.be
deleted file mode 100644
index 31ed3817b..000000000
--- a/lib/libesp32/berry/examples/fib_rec.be
+++ /dev/null
@@ -1,12 +0,0 @@
-import time
-
-def fib(x)
- if x <= 2
- return 1
- end
- return fib(x - 1) + fib(x - 2)
-end
-
-c = time.clock()
-print("fib:", fib(38)) # minimum stack size: 78!!
-print("time:", time.clock() - c, 's')
diff --git a/lib/libesp32/berry/examples/guess_number.be b/lib/libesp32/berry/examples/guess_number.be
deleted file mode 100644
index 6cbd07e7c..000000000
--- a/lib/libesp32/berry/examples/guess_number.be
+++ /dev/null
@@ -1,26 +0,0 @@
-import time
-import math
-
-math.srand(time.time())
-res = math.rand() % 100
-max_test = 7
-test = -1
-idx = 1
-print('Guess a number between 0 and 99. You have', max_test, 'chances.')
-while test != res && idx <= max_test
- test = number(input(str(idx) + ': enter the number you guessed: '))
- if type(test) != 'int'
- print('This is not an integer. Continue!')
- continue
- elif test > res
- print('This number is too large.')
- elif test < res
- print('This number is too small.')
- end
- idx = idx + 1
-end
-if test == res
- print('You win!')
-else
- print('You failed, the correct answer is', res)
-end
diff --git a/lib/libesp32/berry/examples/json.be b/lib/libesp32/berry/examples/json.be
deleted file mode 100644
index d98dff8bb..000000000
--- a/lib/libesp32/berry/examples/json.be
+++ /dev/null
@@ -1,4 +0,0 @@
-import json
-print(json.load('{"key": "value"}'))
-print(json.dump({'test key': nil}))
-print(json.dump({'key1': nil, 45: true}, 'format'))
diff --git a/lib/libesp32/berry/examples/lambda.be b/lib/libesp32/berry/examples/lambda.be
deleted file mode 100644
index 1d0b709bb..000000000
--- a/lib/libesp32/berry/examples/lambda.be
+++ /dev/null
@@ -1,8 +0,0 @@
-# simple lambda example
-print((/a b c-> a * b + c)(2, 3, 4))
-
-# Y-Combinator and factorial functions
-Y = /f-> (/x-> f(/n-> x(x)(n)))(/x-> f(/n-> x(x)(n)))
-F = /f-> /x-> x ? f(x - 1) * x : 1
-fact = Y(F)
-print('fact(10) == ' .. fact(10))
diff --git a/lib/libesp32/berry/examples/listdir.be b/lib/libesp32/berry/examples/listdir.be
deleted file mode 100644
index 2dd880118..000000000
--- a/lib/libesp32/berry/examples/listdir.be
+++ /dev/null
@@ -1,16 +0,0 @@
-import os
-
-def scandir(path)
- print('path: ' + path)
- for name : os.listdir(path)
- var fullname = os.path.join(path, name)
- if os.path.isfile(fullname)
- print('file: ' + fullname)
- else
- print('path: ' + fullname)
- scandir(fullname)
- end
- end
-end
-
-scandir('.')
diff --git a/lib/libesp32/berry/examples/qsort.be b/lib/libesp32/berry/examples/qsort.be
deleted file mode 100644
index b09b65672..000000000
--- a/lib/libesp32/berry/examples/qsort.be
+++ /dev/null
@@ -1,42 +0,0 @@
-def qsort(data)
- # do once sort
- def once(left, right)
- var pivot = data[left] # use the 0th value as the pivot
- while left < right # check if sort is complete
- # put the value less than the pivot to the left
- while left < right && data[right] >= pivot
- right -= 1 # skip values greater than pivot
- end
- data[left] = data[right]
- # put the value greater than the pivot on the right
- while left < right && data[left] <= pivot
- left += 1 # skip values less than pivot
- end
- data[right] = data[left]
- end
- # now we have the index of the pivot, store it
- data[left] = pivot
- return left # return the index of the pivot
- end
- # recursive quick sort algorithm
- def _sort(left, right)
- if left < right # executed when the array is not empty
- var index = once(left, right) # get index of pivot for divide and conquer
- _sort(left, index - 1) # sort the data on the left
- _sort(index + 1, right) # sort the data on the right
- end
- end
- # start quick sort
- _sort(0, data.size() - 1)
- return data
-end
-
-import time, math
-math.srand(time.time()) # sse system time as a random seed
-data = []
-# put 20 random numbers into the array
-for i : 1 .. 20
- data.push(math.rand() % 100)
-end
-# sort and print
-print(qsort(data))
diff --git a/lib/libesp32/berry/examples/repl.be b/lib/libesp32/berry/examples/repl.be
deleted file mode 100644
index aac26b0a1..000000000
--- a/lib/libesp32/berry/examples/repl.be
+++ /dev/null
@@ -1,61 +0,0 @@
-do
- def ismult(msg)
- import string
- return string.split(msg, -5)[1] == '\'EOS\''
- end
-
- def multline(src, msg)
- if !ismult(msg)
- print('syntax_error: ' + msg)
- return
- end
- while true
- try
- src += '\n' + input('>> ')
- return compile(src)
- except 'syntax_error' as e, m
- if !ismult(m)
- print('syntax_error: ' + m)
- return
- end
- end
- end
- end
-
- def parse()
- var fun, src = input('> ')
- try
- fun = compile('return (' + src + ')')
- except 'syntax_error' as e, m
- try
- fun = compile(src)
- except 'syntax_error' as e, m
- fun = multline(src, m)
- end
- end
- return fun
- end
-
- def run(fun)
- try
- var res = fun()
- if res print(res) end
- except .. as e, m
- import debug
- print(e .. ': ' .. m)
- debug.traceback()
- end
- end
-
- def repl()
- while true
- var fun = parse()
- if fun != nil
- run(fun)
- end
- end
- end
-
- print("Berry Berry REPL!")
- repl()
-end
diff --git a/lib/libesp32/berry/examples/string.be b/lib/libesp32/berry/examples/string.be
deleted file mode 100644
index 299834e21..000000000
--- a/lib/libesp32/berry/examples/string.be
+++ /dev/null
@@ -1,32 +0,0 @@
-s = "This is a long string test. 0123456789 abcdefg ABCDEFG"
-print(s)
-
-a = .5
-print(a)
-
-import string as s
-
-print(s.hex(0x45678ABCD, 16))
-
-def bin(x, num)
- assert(type(x) == 'int', 'the type of \'x\' must be integer')
- # test the 'x' bits
- var bits = 1
- for i : 0 .. 62
- if x & (1 << 63 - i)
- bits = 64 - i
- break
- end
- end
- if type(num) == 'int' && num > 0 && num <= 64
- bits = bits < num ? num : bits
- end
- var result = ''
- bits -= 1
- for i : 0 .. bits
- result += x & (1 << (bits - i)) ? '1' : '0'
- end
- return result
-end
-
-print(bin(33))
diff --git a/lib/libesp32/berry/examples/strmod.be b/lib/libesp32/berry/examples/strmod.be
deleted file mode 100644
index 8660f5b4e..000000000
--- a/lib/libesp32/berry/examples/strmod.be
+++ /dev/null
@@ -1,7 +0,0 @@
-import string
-
-print(string.format('%.3d', 12))
-print(string.format('%.3f', 12))
-print(string.format('%20.7f', 14.5))
-print(string.format('-- %-40s ---', 'this is a string format test'))
-print(string.format('-- %40s ---', 'this is a string format test'))
diff --git a/lib/libesp32/berry/gen.sh b/lib/libesp32/berry/gen.sh
deleted file mode 100755
index 303a62c95..000000000
--- a/lib/libesp32/berry/gen.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/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
deleted file mode 100644
index 50198eb8f..000000000
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ /dev/null
@@ -1,741 +0,0 @@
-extern const bcstring be_const_str_;
-extern const bcstring be_const_str_AES_GCM;
-extern const bcstring be_const_str_AXP192;
-extern const bcstring be_const_str_Animate_X20pc_X20is_X20out_X20of_X20range;
-extern const bcstring be_const_str_AudioFileSource;
-extern const bcstring be_const_str_AudioFileSourceFS;
-extern const bcstring be_const_str_AudioGenerator;
-extern const bcstring be_const_str_AudioGeneratorMP3;
-extern const bcstring be_const_str_AudioGeneratorWAV;
-extern const bcstring be_const_str_AudioOutput;
-extern const bcstring be_const_str_AudioOutputI2S;
-extern const bcstring be_const_str_Auto_X2Dconfiguration;
-extern const bcstring be_const_str_BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20;
-extern const bcstring be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s;
-extern const bcstring be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29;
-extern const bcstring be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson;
-extern const bcstring be_const_str_BUTTON_CONFIGURATION;
-extern const bcstring be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s;
-extern const bcstring be_const_str_CFG_X3A_X20_X27init_X2Ebat_X27_X20done_X2C_X20restarting;
-extern const bcstring be_const_str_CFG_X3A_X20could_X20not_X20run_X20_X25s_X20_X28_X25s_X20_X2D_X20_X25s_X29;
-extern const bcstring be_const_str_CFG_X3A_X20downloading_X20_X27_X25s_X27;
-extern const bcstring be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27;
-extern const bcstring be_const_str_CFG_X3A_X20loaded_X20_X20;
-extern const bcstring be_const_str_CFG_X3A_X20loaded_X20_X27_X25s_X27;
-extern const bcstring be_const_str_CFG_X3A_X20loading_X20;
-extern const bcstring be_const_str_CFG_X3A_X20loading_X20_X27_X25s_X27;
-extern const bcstring be_const_str_CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29;
-extern const bcstring be_const_str_CFG_X3A_X20no_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found;
-extern const bcstring be_const_str_CFG_X3A_X20ran_X20_X20;
-extern const bcstring be_const_str_CFG_X3A_X20removed_X20file_X20_X27_X25s_X27;
-extern const bcstring be_const_str_CFG_X3A_X20removing_X20autoconf_X20files;
-extern const bcstring be_const_str_CFG_X3A_X20removing_X20first_X20time_X20marker;
-extern const bcstring be_const_str_CFG_X3A_X20return_code_X3D_X25i;
-extern const bcstring be_const_str_CFG_X3A_X20running_X20;
-extern const bcstring be_const_str_CFG_X3A_X20skipping_X20_X27display_X2Eini_X27_X20because_X20already_X20present_X20in_X20file_X2Dsystem;
-extern const bcstring be_const_str_COLOR_BLACK;
-extern const bcstring be_const_str_COLOR_WHITE;
-extern const bcstring be_const_str_EC_C25519;
-extern const bcstring be_const_str_EVENT_DRAW_MAIN;
-extern const bcstring be_const_str_EVENT_DRAW_PART_BEGIN;
-extern const bcstring be_const_str_EVENT_DRAW_PART_END;
-extern const bcstring be_const_str_False;
-extern const bcstring be_const_str_GET;
-extern const bcstring be_const_str_HTTP_GET;
-extern const bcstring be_const_str_HTTP_POST;
-extern const bcstring be_const_str_I2C_Driver;
-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_None;
-extern const bcstring be_const_str_OPTION_A;
-extern const bcstring be_const_str_OneWire;
-extern const bcstring be_const_str_PART_MAIN;
-extern const bcstring be_const_str_POST;
-extern const bcstring be_const_str_Parameter_X20error;
-extern const bcstring be_const_str_RES_OK;
-extern const bcstring be_const_str_Restart_X201;
-extern const bcstring be_const_str_SERIAL_5E1;
-extern const bcstring be_const_str_SERIAL_5E2;
-extern const bcstring be_const_str_SERIAL_5N1;
-extern const bcstring be_const_str_SERIAL_5N2;
-extern const bcstring be_const_str_SERIAL_5O1;
-extern const bcstring be_const_str_SERIAL_5O2;
-extern const bcstring be_const_str_SERIAL_6E1;
-extern const bcstring be_const_str_SERIAL_6E2;
-extern const bcstring be_const_str_SERIAL_6N1;
-extern const bcstring be_const_str_SERIAL_6N2;
-extern const bcstring be_const_str_SERIAL_6O1;
-extern const bcstring be_const_str_SERIAL_6O2;
-extern const bcstring be_const_str_SERIAL_7E1;
-extern const bcstring be_const_str_SERIAL_7E2;
-extern const bcstring be_const_str_SERIAL_7N1;
-extern const bcstring be_const_str_SERIAL_7N2;
-extern const bcstring be_const_str_SERIAL_7O1;
-extern const bcstring be_const_str_SERIAL_7O2;
-extern const bcstring be_const_str_SERIAL_8E1;
-extern const bcstring be_const_str_SERIAL_8E2;
-extern const bcstring be_const_str_SERIAL_8N1;
-extern const bcstring be_const_str_SERIAL_8N2;
-extern const bcstring be_const_str_SERIAL_8O1;
-extern const bcstring be_const_str_SERIAL_8O2;
-extern const bcstring be_const_str_SK6812_GRBW;
-extern const bcstring be_const_str_STATE_DEFAULT;
-extern const bcstring be_const_str_TAP_X3A_X20found_X20Tasmota_X20App_X20_X27_X25s_X27;
-extern const bcstring be_const_str_Tasmota;
-extern const bcstring be_const_str_Tele;
-extern const bcstring be_const_str_Timer;
-extern const bcstring be_const_str_True;
-extern const bcstring be_const_str_Unknown_X20command;
-extern const bcstring be_const_str_WS2812;
-extern const bcstring be_const_str_WS2812_GRB;
-extern const bcstring be_const_str_Wire;
-extern const bcstring be_const_str__;
-extern const bcstring be_const_str__X0A;
-extern const bcstring be_const_str__X20;
-extern const bcstring be_const_str__X21_X3D;
-extern const bcstring be_const_str__X21_X3D_X3D;
-extern const bcstring be_const_str__X23;
-extern const bcstring be_const_str__X23autoexec_X2Ebat;
-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__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__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__X2B;
-extern const bcstring be_const_str__X2C;
-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;
-extern const bcstring be_const_str__X2Eautoconf;
-extern const bcstring be_const_str__X2Ebe;
-extern const bcstring be_const_str__X2Ebec;
-extern const bcstring be_const_str__X2Elen;
-extern const bcstring be_const_str__X2Ep;
-extern const bcstring be_const_str__X2Ep1;
-extern const bcstring be_const_str__X2Ep2;
-extern const bcstring be_const_str__X2Esize;
-extern const bcstring be_const_str__X2Etapp;
-extern const bcstring be_const_str__X2Ew;
-extern const bcstring be_const_str__X2F;
-extern const bcstring be_const_str__X2F_X2Eautoconf;
-extern const bcstring be_const_str__X2F_X3Frst_X3D;
-extern const bcstring be_const_str__X2Fac;
-extern const bcstring be_const_str__X3A;
-extern const bcstring be_const_str__X3C;
-extern const bcstring be_const_str__X3C_X2Fform_X3E_X3C_X2Fp_X3E;
-extern const bcstring be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E;
-extern const bcstring be_const_str__X3C_X3D;
-extern const bcstring be_const_str__X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E;
-extern const bcstring be_const_str__X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E;
-extern const bcstring be_const_str__X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E;
-extern const bcstring be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29;
-extern const bcstring be_const_str__X3Clabel_X3EChoose_X20a_X20device_X20configuration_X3A_X3C_X2Flabel_X3E_X3Cbr_X3E;
-extern const bcstring be_const_str__X3Clambda_X3E;
-extern const bcstring be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27Autoconfiguration_X27_X3E_X26nbsp_X3BCurrent_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E;
-extern const bcstring be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E;
-extern const bcstring be_const_str__X3Coption_X20value_X3D_X27_X25s_X27_X3E_X25s_X3C_X2Foption_X3E;
-extern const bcstring be_const_str__X3Coption_X20value_X3D_X27reset_X27_X3E_X26lt_X3BRemove_X20autoconf_X26gt_X3B_X3C_X2Foption_X3E;
-extern const bcstring 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;
-extern const bcstring be_const_str__X3Cp_X3ECurrent_X20configuration_X3A_X20_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3E_X25s_X3C_X2Fb_X3E_X3C_X2Fp_X3E;
-extern const bcstring be_const_str__X3Cp_X3E_X3C_X2Fp_X3E_X3C_X2Ffieldset_X3E_X3Cp_X3E_X3C_X2Fp_X3E;
-extern const bcstring 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;
-extern const bcstring 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;
-extern const bcstring 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;
-extern const bcstring be_const_str__X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E;
-extern const bcstring be_const_str__X3Cselect_X20name_X3D_X27zip_X27_X3E;
-extern const bcstring be_const_str__X3D;
-extern const bcstring be_const_str__X3D_X3C_X3E_X21;
-extern const bcstring be_const_str__X3D_X3D;
-extern const bcstring be_const_str__X3E;
-extern const bcstring be_const_str__X3E_X3D;
-extern const bcstring be_const_str__X3F;
-extern const bcstring be_const_str__X5B;
-extern const bcstring be_const_str__X5D;
-extern const bcstring be_const_str__X7B;
-extern const bcstring be_const_str__X7B_X7D;
-extern const bcstring be_const_str__X7Bs_X7DBatt_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D;
-extern const bcstring be_const_str__X7Bs_X7DBatt_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D;
-extern const bcstring be_const_str__X7Bs_X7DTemp_X20AXP_X7Bm_X7D_X25_X2E1f_X20_XB0C_X7Be_X7D;
-extern const bcstring be_const_str__X7Bs_X7DVBus_X20Current_X7Bm_X7D_X25_X2E1f_X20mA_X7Be_X7D;
-extern const bcstring be_const_str__X7Bs_X7DVBus_X20Voltage_X7Bm_X7D_X25_X2E3f_X20V_X7Be_X7D;
-extern const bcstring be_const_str__X7D;
-extern const bcstring be_const_str___iterator__;
-extern const bcstring be_const_str___lower__;
-extern const bcstring be_const_str___upper__;
-extern const bcstring be_const_str__anonymous_;
-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__ccmd;
-extern const bcstring be_const_str__class;
-extern const bcstring be_const_str__cmd;
-extern const bcstring be_const_str__debug_present;
-extern const bcstring be_const_str__def;
-extern const bcstring be_const_str__dirty;
-extern const bcstring be_const_str__drivers;
-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__global_addr;
-extern const bcstring be_const_str__global_def;
-extern const bcstring be_const_str__lvgl;
-extern const bcstring be_const_str__p;
-extern const bcstring be_const_str__persist_X2Ejson;
-extern const bcstring be_const_str__ptr;
-extern const bcstring be_const_str__read;
-extern const bcstring be_const_str__request_from;
-extern const bcstring be_const_str__rules;
-extern const bcstring be_const_str__settings_def;
-extern const bcstring be_const_str__settings_ptr;
-extern const bcstring be_const_str__t;
-extern const bcstring be_const_str__timers;
-extern const bcstring be_const_str__write;
-extern const bcstring be_const_str_a;
-extern const bcstring be_const_str_abs;
-extern const bcstring be_const_str_acos;
-extern const bcstring be_const_str_add;
-extern const bcstring be_const_str_add_anim;
-extern const bcstring be_const_str_add_cmd;
-extern const bcstring be_const_str_add_driver;
-extern const bcstring be_const_str_add_header;
-extern const bcstring be_const_str_add_rule;
-extern const bcstring be_const_str_addr;
-extern const bcstring be_const_str_allocated;
-extern const bcstring be_const_str_alternate;
-extern const bcstring be_const_str_animate;
-extern const bcstring be_const_str_animators;
-extern const bcstring be_const_str_arch;
-extern const bcstring be_const_str_area;
-extern const bcstring be_const_str_arg;
-extern const bcstring be_const_str_arg_X20must_X20be_X20a_X20subclass_X20of_X20lv_obj;
-extern const bcstring be_const_str_arg_name;
-extern const bcstring be_const_str_arg_size;
-extern const bcstring be_const_str_as;
-extern const bcstring be_const_str_asin;
-extern const bcstring be_const_str_assert;
-extern const bcstring be_const_str_asstring;
-extern const bcstring be_const_str_atan;
-extern const bcstring be_const_str_atan2;
-extern const bcstring be_const_str_atleast1;
-extern const bcstring be_const_str_attrdump;
-extern const bcstring be_const_str_autoexec;
-extern const bcstring be_const_str_autorun;
-extern const bcstring be_const_str_available;
-extern const bcstring be_const_str_b;
-extern const bcstring be_const_str_back_forth;
-extern const bcstring be_const_str_base_class;
-extern const bcstring be_const_str_battery_present;
-extern const bcstring be_const_str_begin;
-extern const bcstring be_const_str_bool;
-extern const bcstring be_const_str_break;
-extern const bcstring be_const_str_bri;
-extern const bcstring be_const_str_bus;
-extern const bcstring be_const_str_button_pressed;
-extern const bcstring be_const_str_byte;
-extern const bcstring be_const_str_bytes;
-extern const bcstring be_const_str_c;
-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;
-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;
-extern const bcstring be_const_str_ceil;
-extern const bcstring be_const_str_char;
-extern const bcstring be_const_str_chars_in_string;
-extern const bcstring be_const_str_check_privileged_access;
-extern const bcstring be_const_str_class;
-extern const bcstring be_const_str_class_init_obj;
-extern const bcstring be_const_str_classname;
-extern const bcstring be_const_str_classof;
-extern const bcstring be_const_str_clear;
-extern const bcstring be_const_str_clear_first_time;
-extern const bcstring be_const_str_clear_to;
-extern const bcstring be_const_str_close;
-extern const bcstring be_const_str_closure;
-extern const bcstring be_const_str_cmd;
-extern const bcstring be_const_str_cmd_res;
-extern const bcstring be_const_str_code;
-extern const bcstring be_const_str_codedump;
-extern const bcstring be_const_str_collect;
-extern const bcstring be_const_str_color;
-extern const bcstring be_const_str_compile;
-extern const bcstring be_const_str_compress;
-extern const bcstring be_const_str_concat;
-extern const bcstring be_const_str_connect;
-extern const bcstring be_const_str_connected;
-extern const bcstring be_const_str_connection_error;
-extern const bcstring be_const_str_constructor_cb;
-extern const bcstring be_const_str_contains;
-extern const bcstring be_const_str_content_button;
-extern const bcstring be_const_str_content_flush;
-extern const bcstring be_const_str_content_send;
-extern const bcstring be_const_str_content_send_style;
-extern const bcstring be_const_str_content_start;
-extern const bcstring be_const_str_content_stop;
-extern const bcstring be_const_str_continue;
-extern const bcstring be_const_str_copy;
-extern const bcstring be_const_str_cos;
-extern const bcstring be_const_str_cosh;
-extern const bcstring be_const_str_couldn_X27t_X20not_X20initialize_X20noepixelbus;
-extern const bcstring be_const_str_count;
-extern const bcstring be_const_str_counters;
-extern const bcstring be_const_str_create_custom_widget;
-extern const bcstring be_const_str_create_matrix;
-extern const bcstring be_const_str_create_segment;
-extern const bcstring be_const_str_ctor;
-extern const bcstring be_const_str_ctypes_bytes;
-extern const bcstring be_const_str_ctypes_bytes_dyn;
-extern const bcstring be_const_str_dac_voltage;
-extern const bcstring be_const_str_day;
-extern const bcstring be_const_str_debug;
-extern const bcstring be_const_str_decompress;
-extern const bcstring be_const_str_decrypt;
-extern const bcstring be_const_str_def;
-extern const bcstring be_const_str_deg;
-extern const bcstring be_const_str_deinit;
-extern const bcstring be_const_str_del;
-extern const bcstring be_const_str_delay;
-extern const bcstring be_const_str_delete_all_configs;
-extern const bcstring be_const_str_depower;
-extern const bcstring be_const_str_deregister_obj;
-extern const bcstring be_const_str_destructor_cb;
-extern const bcstring be_const_str_detect;
-extern const bcstring be_const_str_detected_X20on_X20bus;
-extern const bcstring be_const_str_digital_read;
-extern const bcstring be_const_str_digital_write;
-extern const bcstring be_const_str_dirty;
-extern const bcstring be_const_str_display;
-extern const bcstring be_const_str_display_X2Eini;
-extern const bcstring be_const_str_do;
-extern const bcstring be_const_str_draw_arc;
-extern const bcstring be_const_str_draw_line;
-extern const bcstring be_const_str_draw_line_dsc;
-extern const bcstring be_const_str_draw_line_dsc_init;
-extern const bcstring be_const_str_due;
-extern const bcstring be_const_str_dump;
-extern const bcstring be_const_str_duration;
-extern const bcstring be_const_str_editable;
-extern const bcstring be_const_str_elif;
-extern const bcstring be_const_str_else;
-extern const bcstring be_const_str_enabled;
-extern const bcstring be_const_str_encrypt;
-extern const bcstring be_const_str_end;
-extern const bcstring be_const_str_energy_struct;
-extern const bcstring be_const_str_engine;
-extern const bcstring be_const_str_erase;
-extern const bcstring be_const_str_escape;
-extern const bcstring be_const_str_eth;
-extern const bcstring be_const_str_event;
-extern const bcstring be_const_str_event_cb;
-extern const bcstring be_const_str_event_send;
-extern const bcstring be_const_str_every_100ms;
-extern const bcstring be_const_str_every_50ms;
-extern const bcstring be_const_str_every_second;
-extern const bcstring be_const_str_except;
-extern const bcstring be_const_str_exec_cmd;
-extern const bcstring be_const_str_exec_rules;
-extern const bcstring be_const_str_exec_tele;
-extern const bcstring be_const_str_exists;
-extern const bcstring be_const_str_exp;
-extern const bcstring be_const_str_f;
-extern const bcstring be_const_str_false;
-extern const bcstring be_const_str_file;
-extern const bcstring be_const_str_file_X20extension_X20is_X20not_X20_X27_X2Ebe_X27_X20or_X20_X27_X2Ebec_X27;
-extern const bcstring be_const_str_files;
-extern const bcstring be_const_str_find;
-extern const bcstring be_const_str_find_key_i;
-extern const bcstring be_const_str_find_op;
-extern const bcstring be_const_str_finish;
-extern const bcstring be_const_str_floor;
-extern const bcstring be_const_str_flush;
-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_fromptr;
-extern const bcstring be_const_str_fromstring;
-extern const bcstring be_const_str_function;
-extern const bcstring be_const_str_gamma;
-extern const bcstring be_const_str_gamma10;
-extern const bcstring be_const_str_gamma8;
-extern const bcstring be_const_str_gc;
-extern const bcstring be_const_str_gen_cb;
-extern const bcstring be_const_str_get;
-extern const bcstring be_const_str_get_alternate;
-extern const bcstring be_const_str_get_aps_voltage;
-extern const bcstring be_const_str_get_bat_charge_current;
-extern const bcstring be_const_str_get_bat_current;
-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;
-extern const bcstring be_const_str_get_free_heap;
-extern const bcstring be_const_str_get_height;
-extern const bcstring be_const_str_get_input_power_status;
-extern const bcstring be_const_str_get_light;
-extern const bcstring be_const_str_get_object_from_ptr;
-extern const bcstring be_const_str_get_option;
-extern const bcstring be_const_str_get_percentage;
-extern const bcstring be_const_str_get_pixel_color;
-extern const bcstring be_const_str_get_power;
-extern const bcstring be_const_str_get_size;
-extern const bcstring be_const_str_get_string;
-extern const bcstring be_const_str_get_style_bg_color;
-extern const bcstring be_const_str_get_style_line_color;
-extern const bcstring be_const_str_get_style_pad_right;
-extern const bcstring be_const_str_get_switch;
-extern const bcstring be_const_str_get_tasmota;
-extern const bcstring be_const_str_get_temp;
-extern const bcstring be_const_str_get_vbus_current;
-extern const bcstring be_const_str_get_vbus_voltage;
-extern const bcstring be_const_str_get_warning_level;
-extern const bcstring be_const_str_get_width;
-extern const bcstring be_const_str_getbits;
-extern const bcstring be_const_str_geti;
-extern const bcstring be_const_str_global;
-extern const bcstring be_const_str_gpio;
-extern const bcstring be_const_str_group_def;
-extern const bcstring be_const_str_h;
-extern const bcstring be_const_str_has;
-extern const bcstring be_const_str_has_arg;
-extern const bcstring be_const_str_height_def;
-extern const bcstring be_const_str_hex;
-extern const bcstring be_const_str_hour;
-extern const bcstring be_const_str_hs2rgb;
-extern const bcstring be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf;
-extern const bcstring be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_manifest_X2Ejson;
-extern const bcstring be_const_str_i2c_enabled;
-extern const bcstring be_const_str_id;
-extern const bcstring be_const_str_if;
-extern const bcstring be_const_str_imax;
-extern const bcstring be_const_str_imin;
-extern const bcstring be_const_str_import;
-extern const bcstring be_const_str_init;
-extern const bcstring be_const_str_init_draw_line_dsc;
-extern const bcstring be_const_str_input;
-extern const bcstring be_const_str_ins_goto;
-extern const bcstring be_const_str_ins_ramp;
-extern const bcstring be_const_str_ins_time;
-extern const bcstring be_const_str_insert;
-extern const bcstring be_const_str_instance;
-extern const bcstring be_const_str_instance_size;
-extern const bcstring be_const_str_int;
-extern const bcstring be_const_str_internal_error;
-extern const bcstring be_const_str_introspect;
-extern const bcstring be_const_str_invalidate;
-extern const bcstring be_const_str_io_error;
-extern const bcstring be_const_str_ip;
-extern const bcstring be_const_str_is_dirty;
-extern const bcstring be_const_str_is_first_time;
-extern const bcstring be_const_str_is_running;
-extern const bcstring be_const_str_isinstance;
-extern const bcstring be_const_str_isnan;
-extern const bcstring be_const_str_isrunning;
-extern const bcstring be_const_str_issubclass;
-extern const bcstring be_const_str_item;
-extern const bcstring be_const_str_iter;
-extern const bcstring be_const_str_json;
-extern const bcstring be_const_str_json_append;
-extern const bcstring be_const_str_json_fdump;
-extern const bcstring be_const_str_json_fdump_any;
-extern const bcstring be_const_str_json_fdump_list;
-extern const bcstring be_const_str_json_fdump_map;
-extern const bcstring be_const_str_k;
-extern const bcstring be_const_str_keys;
-extern const bcstring be_const_str_kv;
-extern const bcstring be_const_str_last_modified;
-extern const bcstring be_const_str_leds;
-extern const bcstring be_const_str_length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032;
-extern const bcstring be_const_str_light;
-extern const bcstring be_const_str_line_dsc;
-extern const bcstring be_const_str_list;
-extern const bcstring be_const_str_listdir;
-extern const bcstring be_const_str_load;
-extern const bcstring be_const_str_load_templates;
-extern const bcstring be_const_str_local;
-extern const bcstring be_const_str_log;
-extern const bcstring be_const_str_log10;
-extern const bcstring be_const_str_loop;
-extern const bcstring be_const_str_lower;
-extern const bcstring be_const_str_lv;
-extern const bcstring be_const_str_lv_event;
-extern const bcstring be_const_str_lv_event_cb;
-extern const bcstring be_const_str_lv_obj;
-extern const bcstring be_const_str_lv_obj_class;
-extern const bcstring be_const_str_lvgl_event_dispatch;
-extern const bcstring be_const_str_map;
-extern const bcstring be_const_str_math;
-extern const bcstring be_const_str_matrix;
-extern const bcstring be_const_str_member;
-extern const bcstring be_const_str_members;
-extern const bcstring be_const_str_memory;
-extern const bcstring be_const_str_millis;
-extern const bcstring be_const_str_min;
-extern const bcstring be_const_str_minute;
-extern const bcstring be_const_str_module;
-extern const bcstring be_const_str_month;
-extern const bcstring be_const_str_name;
-extern const bcstring be_const_str_nan;
-extern const bcstring be_const_str_nil;
-extern const bcstring be_const_str_no_X20GPIO_X20specified_X20for_X20neopixelbus;
-extern const bcstring be_const_str_null_cb;
-extern const bcstring be_const_str_number;
-extern const bcstring be_const_str_obj_class_create_obj;
-extern const bcstring be_const_str_obj_event_base;
-extern const bcstring be_const_str_offset;
-extern const bcstring be_const_str_offseta;
-extern const bcstring be_const_str_on;
-extern const bcstring be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E;
-extern const bcstring be_const_str_onsubmit_X3D_X27return_X20confirm_X28_X22This_X20will_X20change_X20the_X20current_X20configuration_X20and_X20cause_X20a_X20restart_X2E_X22_X29_X3B_X27_X3E;
-extern const bcstring be_const_str_open;
-extern const bcstring be_const_str_out_X20of_X20range;
-extern const bcstring be_const_str_p1;
-extern const bcstring be_const_str_p2;
-extern const bcstring be_const_str_page_autoconf_ctl;
-extern const bcstring be_const_str_page_autoconf_mgr;
-extern const bcstring be_const_str_param;
-extern const bcstring be_const_str_path;
-extern const bcstring be_const_str_pc;
-extern const bcstring be_const_str_pc_abs;
-extern const bcstring be_const_str_pc_rel;
-extern const bcstring be_const_str_percentage;
-extern const bcstring be_const_str_persist;
-extern const bcstring be_const_str_persist_X2E_p_X20is_X20not_X20a_X20map;
-extern const bcstring be_const_str_pi;
-extern const bcstring be_const_str_pin;
-extern const bcstring be_const_str_pin_mode;
-extern const bcstring be_const_str_pin_used;
-extern const bcstring be_const_str_pixel_count;
-extern const bcstring be_const_str_pixel_size;
-extern const bcstring be_const_str_pixels_buffer;
-extern const bcstring be_const_str_point;
-extern const bcstring be_const_str_pop;
-extern const bcstring be_const_str_pop_path;
-extern const bcstring be_const_str_pow;
-extern const bcstring be_const_str_preinit;
-extern const bcstring be_const_str_print;
-extern const bcstring be_const_str_public_key;
-extern const bcstring be_const_str_publish;
-extern const bcstring be_const_str_publish_result;
-extern const bcstring be_const_str_push;
-extern const bcstring be_const_str_push_path;
-extern const bcstring be_const_str_quality;
-extern const bcstring be_const_str_r;
-extern const bcstring be_const_str_rad;
-extern const bcstring be_const_str_raise;
-extern const bcstring be_const_str_rand;
-extern const bcstring be_const_str_range;
-extern const bcstring be_const_str_read;
-extern const bcstring be_const_str_read12;
-extern const bcstring be_const_str_read13;
-extern const bcstring be_const_str_read24;
-extern const bcstring be_const_str_read32;
-extern const bcstring be_const_str_read8;
-extern const bcstring be_const_str_read_bytes;
-extern const bcstring be_const_str_read_sensors;
-extern const bcstring be_const_str_readbytes;
-extern const bcstring be_const_str_readline;
-extern const bcstring be_const_str_real;
-extern const bcstring be_const_str_reapply;
-extern const bcstring be_const_str_redirect;
-extern const bcstring be_const_str_reduce;
-extern const bcstring be_const_str_refr_size;
-extern const bcstring be_const_str_register_obj;
-extern const bcstring be_const_str_remove;
-extern const bcstring be_const_str_remove_cmd;
-extern const bcstring be_const_str_remove_driver;
-extern const bcstring be_const_str_remove_rule;
-extern const bcstring be_const_str_remove_timer;
-extern const bcstring be_const_str_reset;
-extern const bcstring be_const_str_reset_search;
-extern const bcstring be_const_str_resize;
-extern const bcstring be_const_str_resolvecmnd;
-extern const bcstring be_const_str_resp_cmnd;
-extern const bcstring be_const_str_resp_cmnd_done;
-extern const bcstring be_const_str_resp_cmnd_error;
-extern const bcstring be_const_str_resp_cmnd_failed;
-extern const bcstring be_const_str_resp_cmnd_str;
-extern const bcstring be_const_str_response_append;
-extern const bcstring be_const_str_return;
-extern const bcstring be_const_str_return_X20code_X3D_X25i;
-extern const bcstring be_const_str_reverse;
-extern const bcstring be_const_str_reverse_gamma10;
-extern const bcstring be_const_str_rotate;
-extern const bcstring be_const_str_round_end;
-extern const bcstring be_const_str_round_start;
-extern const bcstring be_const_str_rtc;
-extern const bcstring be_const_str_rule;
-extern const bcstring be_const_str_run;
-extern const bcstring be_const_str_run_bat;
-extern const bcstring be_const_str_run_deferred;
-extern const bcstring be_const_str_running;
-extern const bcstring be_const_str_save;
-extern const bcstring be_const_str_save_before_restart;
-extern const bcstring be_const_str_scale_uint;
-extern const bcstring be_const_str_scan;
-extern const bcstring be_const_str_search;
-extern const bcstring be_const_str_sec;
-extern const bcstring be_const_str_seg7_font;
-extern const bcstring be_const_str_select;
-extern const bcstring be_const_str_serial;
-extern const bcstring be_const_str_set;
-extern const bcstring be_const_str_set_alternate;
-extern const bcstring be_const_str_set_auth;
-extern const bcstring be_const_str_set_bri;
-extern const bcstring be_const_str_set_chg_current;
-extern const bcstring be_const_str_set_dc_voltage;
-extern const bcstring be_const_str_set_dcdc_enable;
-extern const bcstring be_const_str_set_first_time;
-extern const bcstring be_const_str_set_height;
-extern const bcstring be_const_str_set_ldo_enable;
-extern const bcstring be_const_str_set_ldo_voltage;
-extern const bcstring be_const_str_set_light;
-extern const bcstring be_const_str_set_matrix_pixel_color;
-extern const bcstring be_const_str_set_percentage;
-extern const bcstring be_const_str_set_pixel_color;
-extern const bcstring be_const_str_set_power;
-extern const bcstring be_const_str_set_style_bg_color;
-extern const bcstring be_const_str_set_style_line_color;
-extern const bcstring be_const_str_set_style_pad_right;
-extern const bcstring be_const_str_set_style_text_font;
-extern const bcstring be_const_str_set_text;
-extern const bcstring be_const_str_set_time;
-extern const bcstring be_const_str_set_timeouts;
-extern const bcstring be_const_str_set_timer;
-extern const bcstring be_const_str_set_useragent;
-extern const bcstring be_const_str_set_width;
-extern const bcstring be_const_str_set_x;
-extern const bcstring be_const_str_set_y;
-extern const bcstring be_const_str_setbits;
-extern const bcstring be_const_str_seti;
-extern const bcstring be_const_str_setitem;
-extern const bcstring be_const_str_setmember;
-extern const bcstring be_const_str_setrange;
-extern const bcstring be_const_str_settings;
-extern const bcstring be_const_str_shared_key;
-extern const bcstring be_const_str_show;
-extern const bcstring be_const_str_sin;
-extern const bcstring be_const_str_sinh;
-extern const bcstring be_const_str_size;
-extern const bcstring be_const_str_skip;
-extern const bcstring be_const_str_solidified;
-extern const bcstring be_const_str_split;
-extern const bcstring be_const_str_sqrt;
-extern const bcstring be_const_str_srand;
-extern const bcstring be_const_str_start;
-extern const bcstring be_const_str_state;
-extern const bcstring be_const_str_static;
-extern const bcstring be_const_str_stop;
-extern const bcstring be_const_str_stop_iteration;
-extern const bcstring be_const_str_str;
-extern const bcstring be_const_str_strftime;
-extern const bcstring be_const_str_string;
-extern const bcstring be_const_str_strip;
-extern const bcstring be_const_str_strptime;
-extern const bcstring be_const_str_super;
-extern const bcstring be_const_str_sys;
-extern const bcstring be_const_str_tag;
-extern const bcstring be_const_str_tan;
-extern const bcstring be_const_str_tanh;
-extern const bcstring be_const_str_target;
-extern const bcstring be_const_str_target_search;
-extern const bcstring be_const_str_tasmota;
-extern const bcstring be_const_str_tasmota_X2Eget_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eget_X28_X29;
-extern const bcstring be_const_str_tasmota_X2Eset_light_X28_X29_X20is_X20deprecated_X2C_X20use_X20light_X2Eset_X28_X29;
-extern const bcstring be_const_str_tcpclient;
-extern const bcstring be_const_str_tele;
-extern const bcstring be_const_str_the_X20second_X20argument_X20is_X20not_X20a_X20function;
-extern const bcstring be_const_str_time_dump;
-extern const bcstring be_const_str_time_reached;
-extern const bcstring be_const_str_time_str;
-extern const bcstring be_const_str_to_gamma;
-extern const bcstring be_const_str_tob64;
-extern const bcstring be_const_str_tolower;
-extern const bcstring be_const_str_tomap;
-extern const bcstring be_const_str_top;
-extern const bcstring be_const_str_toptr;
-extern const bcstring be_const_str_tostring;
-extern const bcstring be_const_str_toupper;
-extern const bcstring be_const_str_tr;
-extern const bcstring be_const_str_traceback;
-extern const bcstring be_const_str_true;
-extern const bcstring be_const_str_try;
-extern const bcstring be_const_str_try_rule;
-extern const bcstring be_const_str_type;
-extern const bcstring be_const_str_unknown_X20instruction;
-extern const bcstring be_const_str_update;
-extern const bcstring be_const_str_upper;
-extern const bcstring be_const_str_url_encode;
-extern const bcstring be_const_str_v;
-extern const bcstring be_const_str_value;
-extern const bcstring be_const_str_value_error;
-extern const bcstring be_const_str_valuer_error;
-extern const bcstring be_const_str_var;
-extern const bcstring be_const_str_w;
-extern const bcstring be_const_str_wd;
-extern const bcstring be_const_str_web_add_button;
-extern const bcstring be_const_str_web_add_config_button;
-extern const bcstring be_const_str_web_add_console_button;
-extern const bcstring be_const_str_web_add_handler;
-extern const bcstring be_const_str_web_add_main_button;
-extern const bcstring be_const_str_web_add_management_button;
-extern const bcstring be_const_str_web_send;
-extern const bcstring be_const_str_web_send_decimal;
-extern const bcstring be_const_str_web_sensor;
-extern const bcstring be_const_str_webclient;
-extern const bcstring be_const_str_webserver;
-extern const bcstring be_const_str_while;
-extern const bcstring be_const_str_widget_cb;
-extern const bcstring be_const_str_widget_constructor;
-extern const bcstring be_const_str_widget_ctor_cb;
-extern const bcstring be_const_str_widget_ctor_impl;
-extern const bcstring be_const_str_widget_destructor;
-extern const bcstring be_const_str_widget_dtor_cb;
-extern const bcstring be_const_str_widget_dtor_impl;
-extern const bcstring be_const_str_widget_editable;
-extern const bcstring be_const_str_widget_event;
-extern const bcstring be_const_str_widget_event_cb;
-extern const bcstring be_const_str_widget_event_impl;
-extern const bcstring be_const_str_widget_group_def;
-extern const bcstring be_const_str_widget_height_def;
-extern const bcstring be_const_str_widget_instance_size;
-extern const bcstring be_const_str_widget_struct_by_class;
-extern const bcstring be_const_str_widget_struct_default;
-extern const bcstring be_const_str_widget_width_def;
-extern const bcstring be_const_str_width;
-extern const bcstring be_const_str_width_def;
-extern const bcstring be_const_str_wifi;
-extern const bcstring be_const_str_wire;
-extern const bcstring be_const_str_wire1;
-extern const bcstring be_const_str_wire2;
-extern const bcstring be_const_str_wire_scan;
-extern const bcstring be_const_str_write;
-extern const bcstring be_const_str_write8;
-extern const bcstring be_const_str_write_bit;
-extern const bcstring be_const_str_write_bytes;
-extern const bcstring be_const_str_write_file;
-extern const bcstring be_const_str_write_gpio;
-extern const bcstring be_const_str_x;
-extern const bcstring be_const_str_x1;
-extern const bcstring be_const_str_y;
-extern const bcstring be_const_str_y1;
-extern const bcstring be_const_str_year;
-extern const bcstring be_const_str_yield;
-extern const bcstring be_const_str_zero;
-extern const bcstring be_const_str_zip;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
deleted file mode 100644
index 4c195c96b..000000000
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ /dev/null
@@ -1,1109 +0,0 @@
-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, "", 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, "