Merge branch 'arendst:development' into development

This commit is contained in:
Max 2021-12-11 23:58:46 +03:00 committed by GitHub
commit 8bbd5d588b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
77 changed files with 6514 additions and 4424 deletions

View File

@ -10,6 +10,8 @@ All notable changes to this project will be documented in this file.
## [10.1.0] 20211208
- Release Noelle
### Added
- Berry added ``tcpclient``
## [10.0.0.4] 20211208
### Added

View File

@ -10,6 +10,8 @@ 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
@ -18,6 +20,7 @@ ifeq ($(OS), Windows_NT) # Windows
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
@ -92,7 +95,7 @@ uninstall:
prebuild: $(COC) $(GENERATE)
$(MSG) [Prebuild] generate resources
$(Q) $(COC) -o $(GENERATE) $(SRCPATH) -c $(CONFIG)
$(Q) $(PY) $(PYCOC) -o $(GENERATE) $(SRCPATH) -c $(CONFIG)
$(MSG) done
clean:

View File

@ -20,17 +20,17 @@ be_local_closure(Animate_rotate_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("closure", 1548407746, 7),
/* K2 */ be_nested_string("code", -114201356, 4),
/* K3 */ be_nested_string("push", -2022703139, 4),
/* K4 */ be_nested_string("animate", -409180496, 7),
/* K5 */ be_nested_string("ins_ramp", 1068049360, 8),
/* K6 */ be_nested_string("ins_goto", 1342843963, 8),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[25]) { /* code */
0x60140003, // 0000 GETGBL R5 G3
0x5C180000, // 0001 MOVE R6 R0
@ -72,9 +72,9 @@ be_local_class(Animate_rotate,
&be_class_Animate_engine,
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Animate_rotate_init_closure) },
{ be_const_key(init, -1), be_const_closure(Animate_rotate_init_closure) },
})),
(be_nested_const_str("Animate_rotate", -787188142, 14))
be_str_literal("Animate_rotate")
);
/********************************************************************
@ -91,15 +91,15 @@ be_local_closure(Animate_from_to_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("closure", 1548407746, 7),
/* K2 */ be_nested_string("code", -114201356, 4),
/* K3 */ be_nested_string("push", -2022703139, 4),
/* K4 */ be_nested_string("animate", -409180496, 7),
/* K5 */ be_nested_string("ins_ramp", 1068049360, 8),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0x60140003, // 0000 GETGBL R5 G3
0x5C180000, // 0001 MOVE R6 R0
@ -132,9 +132,9 @@ be_local_class(Animate_from_to,
&be_class_Animate_engine,
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Animate_from_to_init_closure) },
{ be_const_key(init, -1), be_const_closure(Animate_from_to_init_closure) },
})),
(be_nested_const_str("Animate_from_to", 1699049867, 15))
be_str_literal("Animate_from_to")
);
/********************************************************************
@ -151,18 +151,18 @@ be_local_closure(Animate_back_forth_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("closure", 1548407746, 7),
/* K2 */ be_nested_string("code", -114201356, 4),
/* K3 */ be_nested_string("push", -2022703139, 4),
/* K4 */ be_nested_string("animate", -409180496, 7),
/* K5 */ be_nested_string("ins_ramp", 1068049360, 8),
/* 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_string("ins_goto", 1342843963, 8),
/* K7 */ be_nested_str(ins_goto),
/* K8 */ be_const_int(0),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[34]) { /* code */
0x60140003, // 0000 GETGBL R5 G3
0x5C180000, // 0001 MOVE R6 R0
@ -213,9 +213,9 @@ be_local_class(Animate_back_forth,
&be_class_Animate_engine,
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Animate_back_forth_init_closure) },
{ be_const_key(init, -1), be_const_closure(Animate_back_forth_init_closure) },
})),
(be_nested_const_str("Animate_back_forth", 5319526, 18))
be_str_literal("Animate_back_forth")
);
/********************************************************************
@ -232,12 +232,12 @@ be_local_closure(Animate_ins_goto_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("pc_rel", 991921176, 6),
/* K1 */ be_nested_string("pc_abs", 920256495, 6),
/* K2 */ be_nested_string("duration", 799079693, 8),
/* K0 */ be_nested_str(pc_rel),
/* K1 */ be_nested_str(pc_abs),
/* K2 */ be_nested_str(duration),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2
@ -257,12 +257,12 @@ be_local_class(Animate_ins_goto,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("pc_rel", 991921176, 6, -1), be_const_var(0) },
{ be_nested_key("duration", 799079693, 8, -1), be_const_var(2) },
{ be_nested_key("pc_abs", 920256495, 6, -1), be_const_var(1) },
{ be_nested_key("init", 380752755, 4, 2), be_const_closure(Animate_ins_goto_init_closure) },
{ 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_nested_const_str("Animate_ins_goto", 1667367043, 16))
be_str_literal("Animate_ins_goto")
);
/********************************************************************
@ -279,12 +279,12 @@ be_local_closure(Animate_ins_ramp_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("a", -468965076, 1),
/* K1 */ be_nested_string("b", -418632219, 1),
/* K2 */ be_nested_string("duration", 799079693, 8),
/* K0 */ be_nested_str(a),
/* K1 */ be_nested_str(b),
/* K2 */ be_nested_str(duration),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2
@ -304,12 +304,12 @@ be_local_class(Animate_ins_ramp,
NULL,
be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("a", -468965076, 1, -1), be_const_var(0) },
{ be_nested_key("b", -418632219, 1, 2), be_const_var(1) },
{ be_nested_key("duration", 799079693, 8, -1), be_const_var(2) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Animate_ins_ramp_init_closure) },
{ 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_nested_const_str("Animate_ins_ramp", 785058280, 16))
be_str_literal("Animate_ins_ramp")
);
/********************************************************************
@ -326,15 +326,15 @@ be_local_closure(Animate_engine_run, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("millis", 1214679063, 6),
/* K2 */ be_nested_string("value", 1113510858, 5),
/* K3 */ be_nested_string("ins_time", -1314721743, 8),
/* K4 */ be_nested_string("running", 343848780, 7),
/* K5 */ be_nested_string("add_driver", 1654458371, 10),
/* 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_nested_const_str("run", 718098122, 3)),
((bstring*) &be_const_str_input),
&be_const_str_run,
&be_const_str_solidified,
( &(const binstruction[19]) { /* code */
0x4C0C0000, // 0000 LDNIL R3
0x1C0C0203, // 0001 EQ R3 R1 R3
@ -375,14 +375,14 @@ be_local_closure(Animate_engine_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("code", -114201356, 4),
/* K1 */ be_nested_string("pc", 1313756516, 2),
/* K0 */ be_nested_str(code),
/* K1 */ be_nested_str(pc),
/* K2 */ be_const_int(0),
/* K3 */ be_nested_string("ins_time", -1314721743, 8),
/* K4 */ be_nested_string("running", 343848780, 7),
/* K3 */ be_nested_str(ins_time),
/* K4 */ be_nested_str(running),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x60040012, // 0000 GETGBL R1 G18
0x7C040000, // 0001 CALL R1 0
@ -412,12 +412,12 @@ be_local_closure(Animate_engine_autorun, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("run", 718098122, 3),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("add_driver", 1654458371, 10),
/* K0 */ be_nested_str(run),
/* K1 */ be_nested_str(tasmota),
/* K2 */ be_nested_str(add_driver),
}),
(be_nested_const_str("autorun", 1447527407, 7)),
((bstring*) &be_const_str_input),
&be_const_str_autorun,
&be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */
0x8C0C0100, // 0000 GETMET R3 R0 K0
0x5C140200, // 0001 MOVE R5 R1
@ -448,12 +448,12 @@ be_local_closure(Animate_engine_stop, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
/* K0 */ be_nested_str(running),
/* K1 */ be_nested_str(tasmota),
/* K2 */ be_nested_str(remove_driver),
}),
(be_nested_const_str("stop", -883741979, 4)),
((bstring*) &be_const_str_input),
&be_const_str_stop,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x50040000, // 0000 LDBOOL R1 0 0
0x90020001, // 0001 SETMBR R0 K0 R1
@ -482,10 +482,10 @@ be_local_closure(Animate_engine_is_running, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K0 */ be_nested_str(running),
}),
(be_nested_const_str("is_running", -2068120035, 10)),
((bstring*) &be_const_str_input),
&be_const_str_is_running,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
@ -509,10 +509,10 @@ be_local_closure(Animate_engine_every_50ms, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("animate", -409180496, 7),
/* K0 */ be_nested_str(animate),
}),
(be_nested_const_str("every_50ms", -1911083288, 10)),
((bstring*) &be_const_str_input),
&be_const_str_every_50ms,
&be_const_str_solidified,
( &(const binstruction[ 3]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x7C040200, // 0001 CALL R1 1
@ -537,31 +537,31 @@ be_local_closure(Animate_engine_animate, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[22]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("millis", 1214679063, 6),
/* K3 */ be_nested_string("ins_time", -1314721743, 8),
/* K4 */ be_nested_string("pc", 1313756516, 2),
/* K5 */ be_nested_string("code", -114201356, 4),
/* 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_string("internal_error", -1775809127, 14),
/* K8 */ be_nested_string("Animate pc is out of range", 1854929421, 26),
/* K9 */ be_nested_string("animate", -409180496, 7),
/* K10 */ be_nested_string("ins_ramp", 1068049360, 8),
/* K11 */ be_nested_string("closure", 1548407746, 7),
/* K12 */ be_nested_string("duration", 799079693, 8),
/* K13 */ be_nested_string("value", 1113510858, 5),
/* K14 */ be_nested_string("scale_uint", -1204156202, 10),
/* K15 */ be_nested_string("a", -468965076, 1),
/* K16 */ be_nested_string("b", -418632219, 1),
/* 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_string("ins_goto", 1342843963, 8),
/* K19 */ be_nested_string("pc_rel", 991921176, 6),
/* K20 */ be_nested_string("pc_abs", 920256495, 6),
/* K21 */ be_nested_string("unknown instruction", 1093911841, 19),
/* 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_nested_const_str("animate", -409180496, 7)),
((bstring*) &be_const_str_input),
&be_const_str_animate,
&be_const_str_solidified,
( &(const binstruction[99]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0000, // 0001 JMPT R2 #0003
@ -676,21 +676,21 @@ be_local_class(Animate_engine,
NULL,
be_nested_map(13,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("code", -114201356, 4, -1), be_const_var(0) },
{ be_nested_key("run", 718098122, 3, 4), be_const_closure(Animate_engine_run_closure) },
{ be_nested_key("running", 343848780, 7, 8), be_const_var(4) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Animate_engine_init_closure) },
{ be_nested_key("autorun", 1447527407, 7, -1), be_const_closure(Animate_engine_autorun_closure) },
{ be_nested_key("value", 1113510858, 5, -1), be_const_var(5) },
{ be_nested_key("stop", -883741979, 4, 3), be_const_closure(Animate_engine_stop_closure) },
{ be_nested_key("pc", 1313756516, 2, -1), be_const_var(2) },
{ be_nested_key("is_running", -2068120035, 10, 11), be_const_closure(Animate_engine_is_running_closure) },
{ be_nested_key("every_50ms", -1911083288, 10, 10), be_const_closure(Animate_engine_every_50ms_closure) },
{ be_nested_key("animate", -409180496, 7, -1), be_const_closure(Animate_engine_animate_closure) },
{ be_nested_key("closure", 1548407746, 7, -1), be_const_var(1) },
{ be_nested_key("ins_time", -1314721743, 8, 9), be_const_var(3) },
{ 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_nested_const_str("Animate_engine", 1498417667, 14))
be_str_literal("Animate_engine")
);
/********************************************************************
@ -700,12 +700,12 @@ be_local_module(animate,
"animate",
be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("rotate", -1510671094, 6, 2), be_const_class(be_class_Animate_rotate) },
{ be_nested_key("from_to", 21625507, 7, 3), be_const_class(be_class_Animate_from_to) },
{ be_nested_key("back_forth", -1629925234, 10, -1), be_const_class(be_class_Animate_back_forth) },
{ be_nested_key("ins_goto", 1342843963, 8, -1), be_const_class(be_class_Animate_ins_goto) },
{ be_nested_key("ins_ramp", 1068049360, 8, -1), be_const_class(be_class_Animate_ins_ramp) },
{ be_nested_key("engine", -301606853, 6, -1), be_const_class(be_class_Animate_engine) },
{ 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);

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: page_autoconf_ctl
********************************************************************/
be_local_closure(page_autoconf_ctl, /* name */
be_local_closure(Autoconf_page_autoconf_ctl, /* name */
be_nested_proto(
13, /* nstack */
1, /* argc */
@ -21,50 +21,50 @@ be_local_closure(page_autoconf_ctl, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[41]) { /* constants */
/* K0 */ be_nested_string("webserver", 1572454038, 9),
/* K1 */ be_nested_string("string", 398550328, 6),
/* K2 */ be_nested_string("path", -2071507658, 4),
/* K3 */ be_nested_string("check_privileged_access", -602033328, 23),
/* K4 */ be_nested_string("has_arg", 424878688, 7),
/* K5 */ be_nested_string("reapply", -516027964, 7),
/* K6 */ be_nested_string("tasmota", 424643812, 7),
/* K7 */ be_nested_string("log", 1062293841, 3),
/* K8 */ be_nested_string("CFG: removing first time marker", 2125556683, 31),
/* 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_string("clear_first_time", 632769909, 16),
/* K11 */ be_nested_string("redirect", 389758641, 8),
/* K12 */ be_nested_string("/?rst=", 580074707, 6),
/* K13 */ be_nested_string("zip", -1417514060, 3),
/* K14 */ be_nested_string("CFG: removing autoconf files", -280262326, 28),
/* K15 */ be_nested_string("delete_all_configs", -1912899718, 18),
/* K16 */ be_nested_string("arg", 1047474471, 3),
/* K17 */ be_nested_string("reset", 1695364032, 5),
/* K18 */ be_nested_string("format", -1180859054, 6),
/* K19 */ be_nested_string("https://raw.githubusercontent.com/tasmota/autoconf/main/%s/%s.autoconf", -1551440987, 70),
/* K20 */ be_nested_string("arch", -1342162999, 4),
/* K21 */ be_nested_string("CFG: downloading '%s'", 589480701, 21),
/* K22 */ be_nested_string("%s.autoconf", -734583772, 11),
/* K23 */ be_nested_string("webclient", -218578150, 9),
/* K24 */ be_nested_string("begin", 1748273790, 5),
/* K25 */ be_nested_string("GET", -1763262857, 3),
/* K26 */ be_nested_string("return code=%i", 2127454401, 14),
/* K27 */ be_nested_string("connection_error", 1358926260, 16),
/* K28 */ be_nested_string("write_file", -1117308417, 10),
/* K29 */ be_nested_string("close", 667630371, 5),
/* K30 */ be_nested_string("value_error", 773297791, 11),
/* K31 */ be_nested_string("Unknown command", 1830905432, 15),
/* K32 */ be_nested_string("CFG: Exception> '%s' - %s", 1228874553, 25),
/* K33 */ be_nested_string("content_start", -1357458227, 13),
/* K34 */ be_nested_string("Parameter error", -454925258, 15),
/* K35 */ be_nested_string("content_send_style", 1087907647, 18),
/* K36 */ be_nested_string("content_send", 1673733649, 12),
/* K37 */ be_nested_string("<p style='width:340px;'><b>Exception:</b><br>'%s'<br>%s</p>", -42402214, 59),
/* K38 */ be_nested_string("content_button", 1956476087, 14),
/* K39 */ be_nested_string("BUTTON_CONFIGURATION", 70820856, 20),
/* K40 */ be_nested_string("content_stop", 658554751, 12),
/* 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_nested_const_str("page_autoconf_ctl", -1841585800, 17)),
((bstring*) &be_const_str_input),
&be_const_str_page_autoconf_ctl,
&be_const_str_solidified,
( &(const binstruction[117]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -192,7 +192,7 @@ be_local_closure(page_autoconf_ctl, /* name */
/********************************************************************
** Solidified function: autoexec
********************************************************************/
be_local_closure(autoexec, /* name */
be_local_closure(Autoconf_autoexec, /* name */
be_nested_proto(
9, /* nstack */
1, /* argc */
@ -203,41 +203,41 @@ be_local_closure(autoexec, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[32]) { /* constants */
/* K0 */ be_nested_string("_archive", -290407892, 8),
/* K1 */ be_nested_string("path", -2071507658, 4),
/* K2 */ be_nested_string("#init.bat", -997372219, 9),
/* K3 */ be_nested_string("is_first_time", 275242384, 13),
/* K4 */ be_nested_string("exists", 1002329533, 6),
/* K5 */ be_nested_string("set_first_time", -1183719746, 14),
/* K6 */ be_nested_string("run_bat", -1758063998, 7),
/* K7 */ be_nested_string("tasmota", 424643812, 7),
/* K8 */ be_nested_string("log", 1062293841, 3),
/* K9 */ be_nested_string("CFG: 'init.bat' done, restarting", 1569670677, 32),
/* 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_string("cmd", -158181397, 3),
/* K12 */ be_nested_string("Restart 1", -790511441, 9),
/* K13 */ be_nested_string("#display.ini", 182218220, 12),
/* K14 */ be_nested_string("gpio", -1656812038, 4),
/* K15 */ be_nested_string("pin_used", -261112684, 8),
/* K16 */ be_nested_string("OPTION_A", 1133299440, 8),
/* K17 */ be_nested_string("display.ini", -1648793295, 11),
/* K18 */ be_nested_string("CFG: skipping 'display.ini' because already present in file-system", -329418032, 66),
/* K19 */ be_nested_string("display", 1164572437, 7),
/* K20 */ be_nested_string("r", -150190315, 1),
/* K21 */ be_nested_string("read", -824204347, 4),
/* K22 */ be_nested_string("close", 667630371, 5),
/* K23 */ be_nested_string("start", 1697318111, 5),
/* K24 */ be_nested_string("#autoexec.bat", -912076799, 13),
/* K25 */ be_nested_string("CFG: running ", -1816632762, 13),
/* 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_string("CFG: ran ", -715396824, 10),
/* K28 */ be_nested_string("#autoexec.be", 1181757091, 12),
/* K29 */ be_nested_string("CFG: loading ", -284605793, 13),
/* K30 */ be_nested_string("load", -435725847, 4),
/* K31 */ be_nested_string("CFG: loaded ", -584693758, 13),
/* 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_nested_const_str("autoexec", -618105405, 8)),
((bstring*) &be_const_str_input),
&be_const_str_autoexec,
&be_const_str_solidified,
( &(const binstruction[107]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
@ -355,7 +355,7 @@ be_local_closure(autoexec, /* name */
/********************************************************************
** Solidified function: run_bat
********************************************************************/
be_local_closure(run_bat, /* name */
be_local_closure(Autoconf_run_bat, /* name */
be_nested_proto(
13, /* nstack */
2, /* argc */
@ -366,19 +366,19 @@ be_local_closure(run_bat, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("string", 398550328, 6),
/* K1 */ be_nested_string("r", -150190315, 1),
/* K2 */ be_nested_string("readline", 1212709927, 8),
/* K0 */ be_nested_str(string),
/* K1 */ be_nested_str(r),
/* K2 */ be_nested_str(readline),
/* K3 */ be_const_int(0),
/* K4 */ be_nested_string("\n", 252472541, 1),
/* K5 */ be_nested_string("tasmota", 424643812, 7),
/* K6 */ be_nested_string("cmd", -158181397, 3),
/* K7 */ be_nested_string("close", 667630371, 5),
/* K8 */ be_nested_string("format", -1180859054, 6),
/* K9 */ be_nested_string("CFG: could not run %s (%s - %s)", 1428829580, 31),
/* 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_nested_const_str("run_bat", -1758063998, 7)),
((bstring*) &be_const_str_input),
&be_const_str_run_bat,
&be_const_str_solidified,
( &(const binstruction[54]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x4C0C0000, // 0001 LDNIL R3
@ -443,7 +443,7 @@ be_local_closure(run_bat, /* name */
/********************************************************************
** Solidified function: page_autoconf_mgr
********************************************************************/
be_local_closure(page_autoconf_mgr, /* name */
be_local_closure(Autoconf_page_autoconf_mgr, /* name */
be_nested_proto(
19, /* nstack */
1, /* argc */
@ -454,48 +454,48 @@ be_local_closure(page_autoconf_mgr, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[39]) { /* constants */
/* K0 */ be_nested_string("webserver", 1572454038, 9),
/* K1 */ be_nested_string("string", 398550328, 6),
/* K2 */ be_nested_string("check_privileged_access", -602033328, 23),
/* K3 */ be_nested_string("content_start", -1357458227, 13),
/* K4 */ be_nested_string("Auto-configuration", 1665006109, 18),
/* K5 */ be_nested_string("content_send_style", 1087907647, 18),
/* K6 */ be_nested_string("content_send", 1673733649, 12),
/* K7 */ be_nested_string("<p><small>&nbsp;(This feature requires an internet connection)</small></p>", -1575700810, 74),
/* K8 */ be_nested_string("get_current_module_path", -1088293888, 23),
/* K9 */ be_nested_string("tr", 1195724803, 2),
/* K10 */ be_nested_string("get_current_module_name", -1915696556, 23),
/* K11 */ be_nested_string("_", -636741266, 1),
/* K12 */ be_nested_string(" ", 621580159, 1),
/* K13 */ be_nested_string("_error", 1132109656, 6),
/* K14 */ be_nested_string("&lt;Error: apply new or remove&gt;", -1439459347, 34),
/* K15 */ be_nested_string("&lt;None&gt;", -1692801798, 12),
/* K16 */ be_nested_string("<fieldset><style>.bdis{background:#888;}.bdis:hover{background:#888;}</style>", 842307168, 77),
/* K17 */ be_nested_string("format", -1180859054, 6),
/* K18 */ be_nested_string("<legend><b title='Autoconfiguration'>&nbsp;Current auto-configuration</b></legend>", -82466516, 82),
/* K19 */ be_nested_string("<p>Current configuration: </p><p><b>%s</b></p>", -179311535, 46),
/* K20 */ be_nested_string("<p><form id=reapply style='display: block;' action='/ac' method='post' ", 546993478, 71),
/* K21 */ be_nested_string("onsubmit='return confirm(\"This will cause a restart.\");'>", 232646018, 57),
/* K22 */ be_nested_string("<button name='reapply' class='button bgrn'>Re-apply current configuration</button>", -1147033080, 82),
/* K23 */ be_nested_string("</form></p>", -748395557, 11),
/* K24 */ be_nested_string("<p></p></fieldset><p></p>", 2052843416, 25),
/* K25 */ be_nested_string("<legend><b title='New autoconf'>&nbsp;Select new auto-configuration</b></legend>", 1926223891, 80),
/* K26 */ be_nested_string("<p><form id=zip style='display: block;' action='/ac' method='post' ", -261345130, 67),
/* K27 */ be_nested_string("onsubmit='return confirm(\"This will change the current configuration and cause a restart.\");'>", -502554737, 94),
/* K28 */ be_nested_string("<label>Choose a device configuration:</label><br>", 1336654704, 49),
/* K29 */ be_nested_string("<select name='zip'>", -47042760, 19),
/* K30 */ be_nested_string("load_templates", -781097163, 14),
/* K31 */ be_nested_string("<option value='reset'>&lt;Remove autoconf&gt;</option>", -300347541, 54),
/* K32 */ be_nested_string("<option value='%s'>%s</option>", 510303524, 30),
/* K33 */ be_nested_string("stop_iteration", -121173395, 14),
/* K34 */ be_nested_string("</select><p></p>", 1863865923, 16),
/* K35 */ be_nested_string("<button name='zipapply' class='button bgrn'>Apply configuration</button>", 1205771629, 72),
/* K36 */ be_nested_string("content_button", 1956476087, 14),
/* K37 */ be_nested_string("BUTTON_CONFIGURATION", 70820856, 20),
/* K38 */ be_nested_string("content_stop", 658554751, 12),
/* 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_nested_const_str("page_autoconf_mgr", -651030265, 17)),
((bstring*) &be_const_str_input),
&be_const_str_page_autoconf_mgr,
&be_const_str_solidified,
( &(const binstruction[124]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -630,7 +630,7 @@ be_local_closure(page_autoconf_mgr, /* name */
/********************************************************************
** Solidified function: get_current_module_name
********************************************************************/
be_local_closure(get_current_module_name, /* name */
be_local_closure(Autoconf_get_current_module_name, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@ -641,11 +641,11 @@ be_local_closure(get_current_module_name, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("_archive", -290407892, 8),
/* K0 */ be_nested_str(_archive),
/* K1 */ be_const_int(0),
}),
(be_nested_const_str("get_current_module_name", -1915696556, 23)),
((bstring*) &be_const_str_input),
&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
@ -661,7 +661,7 @@ be_local_closure(get_current_module_name, /* name */
/********************************************************************
** Solidified function: delete_all_configs
********************************************************************/
be_local_closure(delete_all_configs, /* name */
be_local_closure(Autoconf_delete_all_configs, /* name */
be_nested_proto(
10, /* nstack */
1, /* argc */
@ -672,18 +672,18 @@ be_local_closure(delete_all_configs, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("path", -2071507658, 4),
/* K1 */ be_nested_string("string", 398550328, 6),
/* K2 */ be_nested_string("listdir", 2005220720, 7),
/* K3 */ be_nested_string("/", 705468254, 1),
/* K4 */ be_nested_string("find", -1108310694, 4),
/* K5 */ be_nested_string(".autoconf", -1770288208, 9),
/* 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_string("remove", -611183107, 6),
/* K8 */ be_nested_string("stop_iteration", -121173395, 14),
/* K7 */ be_nested_str(remove),
/* K8 */ be_nested_str(stop_iteration),
}),
(be_nested_const_str("delete_all_configs", -1912899718, 18)),
((bstring*) &be_const_str_input),
&be_const_str_delete_all_configs,
&be_const_str_solidified,
( &(const binstruction[25]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -719,7 +719,7 @@ be_local_closure(delete_all_configs, /* name */
/********************************************************************
** Solidified function: set_first_time
********************************************************************/
be_local_closure(set_first_time, /* name */
be_local_closure(Autoconf_set_first_time, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -730,12 +730,12 @@ be_local_closure(set_first_time, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("/.autoconf", -2082892903, 10),
/* K1 */ be_nested_string("w", -234078410, 1),
/* K2 */ be_nested_string("close", 667630371, 5),
/* K0 */ be_nested_str(_X2F_X2Eautoconf),
/* K1 */ be_nested_str(w),
/* K2 */ be_nested_str(close),
}),
(be_nested_const_str("set_first_time", -1183719746, 14)),
((bstring*) &be_const_str_input),
&be_const_str_set_first_time,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x60040011, // 0000 GETGBL R1 G17
0x58080000, // 0001 LDCONST R2 K0
@ -753,7 +753,7 @@ be_local_closure(set_first_time, /* name */
/********************************************************************
** Solidified function: load_templates
********************************************************************/
be_local_closure(load_templates, /* name */
be_local_closure(Autoconf_load_templates, /* name */
be_nested_proto(
15, /* nstack */
1, /* argc */
@ -764,30 +764,30 @@ be_local_closure(load_templates, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[21]) { /* constants */
/* K0 */ be_nested_string("string", 398550328, 6),
/* K1 */ be_nested_string("json", 916562499, 4),
/* K2 */ be_nested_string("format", -1180859054, 6),
/* K3 */ be_nested_string("https://raw.githubusercontent.com/tasmota/autoconf/main/%s_manifest.json", -637415251, 72),
/* K4 */ be_nested_string("tasmota", 424643812, 7),
/* K5 */ be_nested_string("arch", -1342162999, 4),
/* K6 */ be_nested_string("log", 1062293841, 3),
/* K7 */ be_nested_string("CFG: loading '%s'", -2009661199, 17),
/* 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_string("webclient", -218578150, 9),
/* K10 */ be_nested_string("begin", 1748273790, 5),
/* K11 */ be_nested_string("GET", -1763262857, 3),
/* K12 */ be_nested_string("CFG: return_code=%i", 2059897320, 19),
/* 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_string("get_string", -99119327, 10),
/* K15 */ be_nested_string("close", 667630371, 5),
/* K16 */ be_nested_string("load", -435725847, 4),
/* K17 */ be_nested_string("CFG: loaded '%s'", 1699028828, 16),
/* K18 */ be_nested_string("find", -1108310694, 4),
/* K19 */ be_nested_string("files", 1055342736, 5),
/* K20 */ be_nested_string("CFG: exception '%s' - '%s'", -199559383, 26),
/* 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_nested_const_str("load_templates", -781097163, 14)),
((bstring*) &be_const_str_input),
&be_const_str_load_templates,
&be_const_str_solidified,
( &(const binstruction[86]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -884,7 +884,7 @@ be_local_closure(load_templates, /* name */
/********************************************************************
** Solidified function: web_add_config_button
********************************************************************/
be_local_closure(web_add_config_button, /* name */
be_local_closure(Autoconf_web_add_config_button, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@ -895,12 +895,12 @@ be_local_closure(web_add_config_button, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("webserver", 1572454038, 9),
/* K1 */ be_nested_string("content_send", 1673733649, 12),
/* K2 */ be_nested_string("<p><form id=ac action='ac' style='display: block;' method='get'><button>&#129668; Auto-configuration</button></form></p>", 452285201, 120),
/* 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_nested_const_str("web_add_config_button", 639674325, 21)),
((bstring*) &be_const_str_input),
&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
@ -916,7 +916,7 @@ be_local_closure(web_add_config_button, /* name */
/********************************************************************
** Solidified function: is_first_time
********************************************************************/
be_local_closure(is_first_time, /* name */
be_local_closure(Autoconf_is_first_time, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@ -927,12 +927,12 @@ be_local_closure(is_first_time, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("path", -2071507658, 4),
/* K1 */ be_nested_string("exists", 1002329533, 6),
/* K2 */ be_nested_string("/.autoconf", -2082892903, 10),
/* K0 */ be_nested_str(path),
/* K1 */ be_nested_str(exists),
/* K2 */ be_nested_str(_X2F_X2Eautoconf),
}),
(be_nested_const_str("is_first_time", 275242384, 13)),
((bstring*) &be_const_str_input),
&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
@ -951,7 +951,7 @@ be_local_closure(is_first_time, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(Autoconf_init, /* name */
be_nested_proto(
12, /* nstack */
1, /* argc */
@ -962,26 +962,26 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_literal("path"),
/* K1 */ be_nested_str_literal("string"),
/* K2 */ be_nested_str_literal("listdir"),
/* K3 */ be_nested_str_literal("/"),
/* K4 */ be_nested_str_literal("tasmota"),
/* K5 */ be_nested_str_literal("add_driver"),
/* 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_literal("find"),
/* K8 */ be_nested_str_literal(".autoconf"),
/* K9 */ be_nested_str_literal("format"),
/* K10 */ be_nested_str_literal("CFG: multiple autoconf files found, aborting ('%s' + '%s')"),
/* K11 */ be_nested_str_literal("_error"),
/* 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_literal("log"),
/* K14 */ be_nested_str_literal("CFG: no '*.autoconf' file found"),
/* 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_literal("_archive"),
/* K16 */ be_nested_str(_archive),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[51]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -1043,7 +1043,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: preinit
********************************************************************/
be_local_closure(preinit, /* name */
be_local_closure(Autoconf_preinit, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@ -1054,19 +1054,19 @@ be_local_closure(preinit, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("_archive", -290407892, 8),
/* K1 */ be_nested_string("path", -2071507658, 4),
/* K2 */ be_nested_string("#preinit.be", 687035716, 11),
/* K3 */ be_nested_string("exists", 1002329533, 6),
/* K4 */ be_nested_string("tasmota", 424643812, 7),
/* K5 */ be_nested_string("log", 1062293841, 3),
/* K6 */ be_nested_string("CFG: loading ", -284605793, 13),
/* 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_string("load", -435725847, 4),
/* K9 */ be_nested_string("CFG: loaded ", -584693758, 13),
/* K8 */ be_nested_str(load),
/* K9 */ be_nested_str(CFG_X3A_X20loaded_X20_X20),
}),
(be_nested_const_str("preinit", -1572960196, 7)),
((bstring*) &be_const_str_input),
&be_const_str_preinit,
&be_const_str_solidified,
( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
@ -1103,7 +1103,7 @@ be_local_closure(preinit, /* name */
/********************************************************************
** Solidified function: reset
********************************************************************/
be_local_closure(reset, /* name */
be_local_closure(Autoconf_reset, /* name */
be_nested_proto(
12, /* nstack */
1, /* argc */
@ -1114,22 +1114,22 @@ be_local_closure(reset, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_string("path", -2071507658, 4),
/* K1 */ be_nested_string("string", 398550328, 6),
/* K2 */ be_nested_string("listdir", 2005220720, 7),
/* K3 */ be_nested_string("/", 705468254, 1),
/* 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_string("find", -1108310694, 4),
/* K6 */ be_nested_string(".autoconf", -1770288208, 9),
/* K7 */ be_nested_string("remove", -611183107, 6),
/* K8 */ be_nested_string("format", -1180859054, 6),
/* K9 */ be_nested_string("CFG: removed file '%s'", 2048602473, 22),
/* 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_string("_archive", -290407892, 8),
/* K12 */ be_nested_string("_error", 1132109656, 6),
/* K11 */ be_nested_str(_archive),
/* K12 */ be_nested_str(_error),
}),
(be_nested_const_str("reset", 1695364032, 5)),
((bstring*) &be_const_str_input),
&be_const_str_reset,
&be_const_str_solidified,
( &(const binstruction[35]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -1175,7 +1175,7 @@ be_local_closure(reset, /* name */
/********************************************************************
** Solidified function: web_add_handler
********************************************************************/
be_local_closure(web_add_handler, /* name */
be_local_closure(Autoconf_web_add_handler, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@ -1196,10 +1196,10 @@ be_local_closure(web_add_handler, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("page_autoconf_mgr", -651030265, 17),
/* K0 */ be_nested_str(page_autoconf_mgr),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x68000000, // 0000 GETUPV R0 U0
0x8C000100, // 0001 GETMET R0 R0 K0
@ -1219,10 +1219,10 @@ be_local_closure(web_add_handler, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("page_autoconf_ctl", -1841585800, 17),
/* K0 */ be_nested_str(page_autoconf_ctl),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x68000000, // 0000 GETUPV R0 U0
0x8C000100, // 0001 GETMET R0 R0 K0
@ -1233,14 +1233,14 @@ be_local_closure(web_add_handler, /* name */
}),
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("webserver", 1572454038, 9),
/* K1 */ be_nested_string("on", 1630810064, 2),
/* K2 */ be_nested_string("/ac", -390315318, 3),
/* K3 */ be_nested_string("HTTP_GET", 1722467738, 8),
/* K4 */ be_nested_string("HTTP_POST", 1999554144, 9),
/* 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_nested_const_str("web_add_handler", -304792334, 15)),
((bstring*) &be_const_str_input),
&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
@ -1264,7 +1264,7 @@ be_local_closure(web_add_handler, /* name */
/********************************************************************
** Solidified function: clear_first_time
********************************************************************/
be_local_closure(clear_first_time, /* name */
be_local_closure(Autoconf_clear_first_time, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@ -1275,12 +1275,12 @@ be_local_closure(clear_first_time, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("path", -2071507658, 4),
/* K1 */ be_nested_string("remove", -611183107, 6),
/* K2 */ be_nested_string("/.autoconf", -2082892903, 10),
/* K0 */ be_nested_str(path),
/* K1 */ be_nested_str(remove),
/* K2 */ be_nested_str(_X2F_X2Eautoconf),
}),
(be_nested_const_str("clear_first_time", 632769909, 16)),
((bstring*) &be_const_str_input),
&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
@ -1296,7 +1296,7 @@ be_local_closure(clear_first_time, /* name */
/********************************************************************
** Solidified function: get_current_module_path
********************************************************************/
be_local_closure(get_current_module_path, /* name */
be_local_closure(Autoconf_get_current_module_path, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@ -1307,10 +1307,10 @@ be_local_closure(get_current_module_path, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("_archive", -290407892, 8),
/* K0 */ be_nested_str(_archive),
}),
(be_nested_const_str("get_current_module_path", -1088293888, 23)),
((bstring*) &be_const_str_input),
&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
@ -1328,26 +1328,26 @@ be_local_class(Autoconf,
NULL,
be_nested_map(18,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("page_autoconf_ctl", -1841585800, 17, -1), be_const_closure(page_autoconf_ctl_closure) },
{ be_nested_key("autoexec", -618105405, 8, -1), be_const_closure(autoexec_closure) },
{ be_nested_key("run_bat", -1758063998, 7, 6), be_const_closure(run_bat_closure) },
{ be_nested_key("page_autoconf_mgr", -651030265, 17, -1), be_const_closure(page_autoconf_mgr_closure) },
{ be_nested_key("get_current_module_name", -1915696556, 23, -1), be_const_closure(get_current_module_name_closure) },
{ be_nested_key("delete_all_configs", -1912899718, 18, 13), be_const_closure(delete_all_configs_closure) },
{ be_nested_key("set_first_time", -1183719746, 14, -1), be_const_closure(set_first_time_closure) },
{ be_nested_key("load_templates", -781097163, 14, -1), be_const_closure(load_templates_closure) },
{ be_nested_key("_archive", -290407892, 8, -1), be_const_var(0) },
{ be_nested_key("web_add_config_button", 639674325, 21, -1), be_const_closure(web_add_config_button_closure) },
{ be_nested_key("is_first_time", 275242384, 13, -1), be_const_closure(is_first_time_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("preinit", -1572960196, 7, 5), be_const_closure(preinit_closure) },
{ be_nested_key("reset", 1695364032, 5, 17), be_const_closure(reset_closure) },
{ be_nested_key("web_add_handler", -304792334, 15, 4), be_const_closure(web_add_handler_closure) },
{ be_nested_key("clear_first_time", 632769909, 16, 11), be_const_closure(clear_first_time_closure) },
{ be_nested_key("_error", 1132109656, 6, -1), be_const_var(1) },
{ be_nested_key("get_current_module_path", -1088293888, 23, -1), be_const_closure(get_current_module_path_closure) },
{ 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_nested_const_str("Autoconf", 984011268, 8))
be_str_literal("Autoconf")
);
/********************************************************************
@ -1366,8 +1366,8 @@ be_local_closure(_anonymous_, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_class(be_class_Autoconf),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
((bstring*) &be_const_str_input),
&be_const_str__anonymous_,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0xB4000000, // 0001 CLASS K0
@ -1387,7 +1387,7 @@ be_local_module(autoconf,
"autoconf",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(_anonymous__closure) },
{ be_const_key(init, -1), be_const_closure(_anonymous__closure) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(autoconf);

View File

@ -11,7 +11,7 @@
// Tasmota specific
extern int be_disp_start(bvm *vm);
extern int be_ntv_display_start(bvm *vm);
/********************************************************************
** Solidified module: display
@ -20,7 +20,7 @@ be_local_module(display,
"display",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("start", 1697318111, 5, -1), be_const_func(be_disp_start) },
{ be_const_key(start, -1), be_const_func(be_ntv_display_start) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(display);

View File

@ -9,7 +9,7 @@
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(Driver_init, /* name */
be_nested_proto(
1, /* nstack */
1, /* argc */
@ -20,8 +20,8 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
@ -33,7 +33,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: get_tasmota
********************************************************************/
be_local_closure(get_tasmota, /* name */
be_local_closure(Driver_get_tasmota, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@ -44,10 +44,10 @@ be_local_closure(get_tasmota, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K0 */ be_nested_str(tasmota),
}),
(be_nested_const_str("get_tasmota", 334356779, 11)),
((bstring*) &be_const_str_input),
&be_const_str_get_tasmota,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x80040200, // 0001 RET 1 R1
@ -60,7 +60,7 @@ be_local_closure(get_tasmota, /* name */
/********************************************************************
** Solidified function: add_cmd
********************************************************************/
be_local_closure(add_cmd, /* name */
be_local_closure(Driver_add_cmd, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
@ -82,8 +82,8 @@ be_local_closure(add_cmd, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x68100000, // 0000 GETUPV R4 U0
0x68140001, // 0001 GETUPV R5 U1
@ -98,11 +98,11 @@ be_local_closure(add_cmd, /* name */
}),
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("add_cmd", -933336417, 7),
/* K0 */ be_nested_str(tasmota),
/* K1 */ be_nested_str(add_cmd),
}),
(be_nested_const_str("add_cmd", -933336417, 7)),
((bstring*) &be_const_str_input),
&be_const_str_add_cmd,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -125,24 +125,24 @@ be_local_class(Driver,
NULL,
be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("web_add_main_button", -334599632, 19, 14), be_const_var(4) },
{ be_nested_key("web_add_console_button", -813531104, 22, -1), be_const_var(7) },
{ be_nested_key("web_add_management_button", -1556090110, 25, 8), be_const_var(5) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("json_append", -1292948012, 11, -1), be_const_var(10) },
{ be_nested_key("web_add_config_button", 639674325, 21, 7), be_const_var(6) },
{ be_nested_key("every_100ms", 1546407804, 11, -1), be_const_var(1) },
{ be_nested_key("display", 1164572437, 7, -1), be_const_var(12) },
{ be_nested_key("web_add_button", -757092238, 14, 13), be_const_var(3) },
{ be_nested_key("every_second", 2075451465, 12, -1), be_const_var(0) },
{ be_nested_key("save_before_restart", 1253239338, 19, -1), be_const_var(8) },
{ be_nested_key("get_tasmota", 334356779, 11, -1), be_const_closure(get_tasmota_closure) },
{ be_nested_key("web_sensor", -1394870324, 10, 6), be_const_var(9) },
{ be_nested_key("web_add_handler", -304792334, 15, -1), be_const_var(2) },
{ be_nested_key("button_pressed", 1694209616, 14, 1), be_const_var(11) },
{ be_nested_key("add_cmd", -933336417, 7, -1), be_const_closure(add_cmd_closure) },
{ 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_nested_const_str("Driver", -718580993, 6))
be_str_literal("Driver")
);
/*******************************************************************/

View File

@ -12,32 +12,127 @@
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(m.init)
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(init, /* name */
be_local_closure(energy_init, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -48,13 +143,13 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_string("global", 503252654, 6),
/* K1 */ be_nested_string("_energy", 535372070, 7),
/* K2 */ be_nested_string("energy_struct", 1655792843, 13),
/* K3 */ be_nested_string("_ptr", 306235816, 4),
/* K0 */ be_nested_str(global),
/* K1 */ be_nested_str(_energy),
/* K2 */ be_nested_str(energy_struct),
/* K3 */ be_nested_str(_ptr),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xB80A0400, // 0001 GETNGBL R2 K2
@ -69,100 +164,23 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: read
** Solidified module: energy
********************************************************************/
be_local_closure(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_string("_energy", 535372070, 7),
/* K1 */ be_nested_string("tomap", 612167626, 5),
}),
(be_nested_const_str("<anonymous>", 1160973142, 11)),
((bstring*) &be_const_str_input),
( &(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
})
)
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) },
}))
);
/*******************************************************************/
/********************************************************************
** Solidified function: member
********************************************************************/
be_local_closure(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_string("_energy", 535372070, 7),
}),
(be_nested_const_str("member", 719708611, 6)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 3]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040200, // 0001 GETMBR R1 R1 R0
0x80040200, // 0002 RET 1 R1
})
)
);
/*******************************************************************/
BE_EXPORT_VARIABLE be_define_const_native_module(energy);
/********************************************************************/
/********************************************************************
** Solidified function: setmember
********************************************************************/
be_local_closure(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_string("_energy", 535372070, 7),
}),
(be_nested_const_str("setmember", 1432909441, 9)),
((bstring*) &be_const_str_input),
( &(const binstruction[ 3]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x90080001, // 0001 SETMBR R2 R0 R1
0x80000000, // 0002 RET 0
})
)
);
/*******************************************************************/
/* @const_object_info_begin
module energy (scope: global) {
_ptr, comptr(&Energy)
init, closure(init_closure)
read, closure(read_closure)
member, closure(member_closure)
setmember, closure(setmember_closure)
}
@const_object_info_end */
#include "../generate/be_fixed_energy.h"
// { be_const_key(_ptr, 3), be_const_comptr(&Energy) }, /* patch */
#endif // USE_ENERGY_SENSOR

View File

@ -6,7 +6,7 @@
/********************************************************************
** Solidified function: get_warning_level
********************************************************************/
be_local_closure(get_warning_level, /* name */
be_local_closure(AXP192_get_warning_level, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -17,11 +17,11 @@ be_local_closure(get_warning_level, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_int(1),
}),
(be_nested_const_str("get_warning_level", 1737834441, 17)),
((bstring*) &be_const_str_input),
&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
@ -37,7 +37,7 @@ be_local_closure(get_warning_level, /* name */
/********************************************************************
** Solidified function: get_vbus_current
********************************************************************/
be_local_closure(get_vbus_current, /* name */
be_local_closure(AXP192_get_vbus_current, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -48,11 +48,11 @@ be_local_closure(get_vbus_current, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_real_hex(0x3EC00000),
}),
(be_nested_const_str("get_vbus_current", 1205347942, 16)),
((bstring*) &be_const_str_input),
&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
@ -68,7 +68,7 @@ be_local_closure(get_vbus_current, /* name */
/********************************************************************
** Solidified function: set_chg_current
********************************************************************/
be_local_closure(set_chg_current, /* name */
be_local_closure(AXP192_set_chg_current, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@ -79,11 +79,11 @@ be_local_closure(set_chg_current, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("write8", -1160975764, 6),
/* K1 */ be_nested_string("read8", -1492179129, 5),
/* K0 */ be_nested_str(write8),
/* K1 */ be_nested_str(read8),
}),
(be_nested_const_str("set_chg_current", 336304386, 15)),
((bstring*) &be_const_str_input),
&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
@ -106,7 +106,7 @@ be_local_closure(set_chg_current, /* name */
/********************************************************************
** Solidified function: get_bat_current
********************************************************************/
be_local_closure(get_bat_current, /* name */
be_local_closure(AXP192_get_bat_current, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@ -117,11 +117,11 @@ be_local_closure(get_bat_current, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read13", 12887293, 6),
/* K0 */ be_nested_str(read13),
/* K1 */ be_const_real_hex(0x3F000000),
}),
(be_nested_const_str("get_bat_current", 1912106073, 15)),
((bstring*) &be_const_str_input),
&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
@ -141,7 +141,7 @@ be_local_closure(get_bat_current, /* name */
/********************************************************************
** Solidified function: get_bat_power
********************************************************************/
be_local_closure(get_bat_power, /* name */
be_local_closure(AXP192_get_bat_power, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -152,11 +152,11 @@ be_local_closure(get_bat_power, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read24", 1808533811, 6),
/* K0 */ be_nested_str(read24),
/* K1 */ be_const_real_hex(0x3A102DE1),
}),
(be_nested_const_str("get_bat_power", -1227592443, 13)),
((bstring*) &be_const_str_input),
&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
@ -172,7 +172,7 @@ be_local_closure(get_bat_power, /* name */
/********************************************************************
** Solidified function: json_append
********************************************************************/
be_local_closure(json_append, /* name */
be_local_closure(AXP192_json_append, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@ -183,10 +183,10 @@ be_local_closure(json_append, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K0 */ be_nested_str(wire),
}),
(be_nested_const_str("json_append", -1292948012, 11)),
((bstring*) &be_const_str_input),
&be_const_str_json_append,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060001, // 0001 JMPT R1 #0004
@ -202,7 +202,7 @@ be_local_closure(json_append, /* name */
/********************************************************************
** Solidified function: get_vbus_voltage
********************************************************************/
be_local_closure(get_vbus_voltage, /* name */
be_local_closure(AXP192_get_vbus_voltage, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -213,11 +213,11 @@ be_local_closure(get_vbus_voltage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_real_hex(0x3ADED28A),
}),
(be_nested_const_str("get_vbus_voltage", -1896756895, 16)),
((bstring*) &be_const_str_input),
&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
@ -233,7 +233,7 @@ be_local_closure(get_vbus_voltage, /* name */
/********************************************************************
** Solidified function: get_temp
********************************************************************/
be_local_closure(get_temp, /* name */
be_local_closure(AXP192_get_temp, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -244,12 +244,12 @@ be_local_closure(get_temp, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_real_hex(0x3DCCCCCD),
/* K2 */ be_const_real_hex(0x4310B333),
}),
(be_nested_const_str("get_temp", -924047810, 8)),
((bstring*) &be_const_str_input),
&be_const_str_get_temp,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E005D, // 0001 LDINT R3 94
@ -266,7 +266,7 @@ be_local_closure(get_temp, /* name */
/********************************************************************
** Solidified function: battery_present
********************************************************************/
be_local_closure(battery_present, /* name */
be_local_closure(AXP192_battery_present, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@ -277,13 +277,13 @@ be_local_closure(battery_present, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read", -824204347, 4),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* K0 */ be_nested_str(wire),
/* K1 */ be_nested_str(read),
/* K2 */ be_nested_str(addr),
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("battery_present", -706570238, 15)),
((bstring*) &be_const_str_input),
&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
@ -309,7 +309,7 @@ be_local_closure(battery_present, /* name */
/********************************************************************
** Solidified function: get_aps_voltage
********************************************************************/
be_local_closure(get_aps_voltage, /* name */
be_local_closure(AXP192_get_aps_voltage, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -320,11 +320,11 @@ be_local_closure(get_aps_voltage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_real_hex(0x3AB78035),
}),
(be_nested_const_str("get_aps_voltage", -2001930861, 15)),
((bstring*) &be_const_str_input),
&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
@ -340,7 +340,7 @@ be_local_closure(get_aps_voltage, /* name */
/********************************************************************
** Solidified function: set_dcdc_enable
********************************************************************/
be_local_closure(set_dcdc_enable, /* name */
be_local_closure(AXP192_set_dcdc_enable, /* name */
be_nested_proto(
8, /* nstack */
3, /* argc */
@ -352,13 +352,13 @@ be_local_closure(set_dcdc_enable, /* name */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_const_int(1),
/* K1 */ be_nested_string("write_bit", -1633976860, 9),
/* K1 */ be_nested_str(write_bit),
/* K2 */ be_const_int(0),
/* K3 */ be_const_int(2),
/* K4 */ be_const_int(3),
}),
(be_nested_const_str("set_dcdc_enable", 1594690786, 15)),
((bstring*) &be_const_str_input),
&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
@ -391,7 +391,7 @@ be_local_closure(set_dcdc_enable, /* name */
/********************************************************************
** Solidified function: set_ldo_voltage
********************************************************************/
be_local_closure(set_ldo_voltage, /* name */
be_local_closure(AXP192_set_ldo_voltage, /* name */
be_nested_proto(
9, /* nstack */
3, /* argc */
@ -403,12 +403,12 @@ be_local_closure(set_ldo_voltage, /* name */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(2),
/* K1 */ be_nested_string("write8", -1160975764, 6),
/* K2 */ be_nested_string("read8", -1492179129, 5),
/* K1 */ be_nested_str(write8),
/* K2 */ be_nested_str(read8),
/* K3 */ be_const_int(3),
}),
(be_nested_const_str("set_ldo_voltage", -204466136, 15)),
((bstring*) &be_const_str_input),
&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
@ -458,7 +458,7 @@ be_local_closure(set_ldo_voltage, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(AXP192_init, /* name */
be_nested_proto(
5, /* nstack */
1, /* argc */
@ -469,12 +469,12 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("I2C_Driver", 1714501658, 10),
/* K1 */ be_nested_string("init", 380752755, 4),
/* K2 */ be_nested_string("AXP192", 757230128, 6),
/* K0 */ be_nested_str(I2C_Driver),
/* K1 */ be_nested_str(init),
/* K2 */ be_nested_str(AXP192),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
@ -494,7 +494,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: get_bat_voltage
********************************************************************/
be_local_closure(get_bat_voltage, /* name */
be_local_closure(AXP192_get_bat_voltage, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -505,11 +505,11 @@ be_local_closure(get_bat_voltage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read12", -3890326, 6),
/* K0 */ be_nested_str(read12),
/* K1 */ be_const_real_hex(0x3A902DE0),
}),
(be_nested_const_str("get_bat_voltage", 706676538, 15)),
((bstring*) &be_const_str_input),
&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
@ -525,7 +525,7 @@ be_local_closure(get_bat_voltage, /* name */
/********************************************************************
** Solidified function: set_ldo_enable
********************************************************************/
be_local_closure(set_ldo_enable, /* name */
be_local_closure(AXP192_set_ldo_enable, /* name */
be_nested_proto(
8, /* nstack */
3, /* argc */
@ -537,11 +537,11 @@ be_local_closure(set_ldo_enable, /* name */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_const_int(2),
/* K1 */ be_nested_string("write_bit", -1633976860, 9),
/* K1 */ be_nested_str(write_bit),
/* K2 */ be_const_int(3),
}),
(be_nested_const_str("set_ldo_enable", -1378465255, 14)),
((bstring*) &be_const_str_input),
&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
@ -567,7 +567,7 @@ be_local_closure(set_ldo_enable, /* name */
/********************************************************************
** Solidified function: set_dc_voltage
********************************************************************/
be_local_closure(set_dc_voltage, /* name */
be_local_closure(AXP192_set_dc_voltage, /* name */
be_nested_proto(
11, /* nstack */
3, /* argc */
@ -582,11 +582,11 @@ be_local_closure(set_dc_voltage, /* name */
/* K1 */ be_const_int(3),
/* K2 */ be_const_int(0),
/* K3 */ be_const_int(2),
/* K4 */ be_nested_string("write8", -1160975764, 6),
/* K5 */ be_nested_string("read8", -1492179129, 5),
/* K4 */ be_nested_str(write8),
/* K5 */ be_nested_str(read8),
}),
(be_nested_const_str("set_dc_voltage", -2112985360, 14)),
((bstring*) &be_const_str_input),
&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
@ -645,7 +645,7 @@ be_local_closure(set_dc_voltage, /* name */
/********************************************************************
** Solidified function: write_gpio
********************************************************************/
be_local_closure(write_gpio, /* name */
be_local_closure(AXP192_write_gpio, /* name */
be_nested_proto(
8, /* nstack */
3, /* argc */
@ -658,11 +658,11 @@ be_local_closure(write_gpio, /* name */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_const_int(2),
/* K2 */ be_nested_string("write_bit", -1633976860, 9),
/* K2 */ be_nested_str(write_bit),
/* K3 */ be_const_int(3),
}),
(be_nested_const_str("write_gpio", -2027026962, 10)),
((bstring*) &be_const_str_input),
&be_const_str_write_gpio,
&be_const_str_solidified,
( &(const binstruction[21]) { /* code */
0x280C0300, // 0000 GE R3 R1 K0
0x780E0007, // 0001 JMPF R3 #000A
@ -694,7 +694,7 @@ be_local_closure(write_gpio, /* name */
/********************************************************************
** Solidified function: web_sensor
********************************************************************/
be_local_closure(web_sensor, /* name */
be_local_closure(AXP192_web_sensor, /* name */
be_nested_proto(
11, /* nstack */
1, /* argc */
@ -705,23 +705,23 @@ be_local_closure(web_sensor, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("string", 398550328, 6),
/* K2 */ be_nested_string("format", -1180859054, 6),
/* K3 */ be_nested_string("{s}VBus Voltage{m}%.3f V{e}", 165651270, 27),
/* K4 */ be_nested_string("{s}VBus Current{m}%.1f mA{e}", 1032721155, 28),
/* K5 */ be_nested_string("{s}Batt Voltage{m}%.3f V{e}", -1110659097, 27),
/* K6 */ be_nested_string("{s}Batt Current{m}%.1f mA{e}", 866537156, 28),
/* K7 */ be_nested_string("{s}Temp AXP{m}%.1f °C{e}", -1990510004, 25),
/* K8 */ be_nested_string("get_vbus_voltage", -1896756895, 16),
/* K9 */ be_nested_string("get_bat_voltage", 706676538, 15),
/* K10 */ be_nested_string("get_bat_current", 1912106073, 15),
/* K11 */ be_nested_string("get_temp", -924047810, 8),
/* K12 */ be_nested_string("tasmota", 424643812, 7),
/* K13 */ be_nested_string("web_send_decimal", 1407210204, 16),
/* 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_nested_const_str("web_sensor", -1394870324, 10)),
((bstring*) &be_const_str_input),
&be_const_str_web_sensor,
&be_const_str_solidified,
( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x74060001, // 0001 JMPT R1 #0004
@ -758,7 +758,7 @@ be_local_closure(web_sensor, /* name */
/********************************************************************
** Solidified function: get_bat_charge_current
********************************************************************/
be_local_closure(get_bat_charge_current, /* name */
be_local_closure(AXP192_get_bat_charge_current, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -769,11 +769,11 @@ be_local_closure(get_bat_charge_current, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("read13", 12887293, 6),
/* K0 */ be_nested_str(read13),
/* K1 */ be_const_real_hex(0x3F000000),
}),
(be_nested_const_str("get_bat_charge_current", 1385293050, 22)),
((bstring*) &be_const_str_input),
&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
@ -789,7 +789,7 @@ be_local_closure(get_bat_charge_current, /* name */
/********************************************************************
** Solidified function: get_battery_chargin_status
********************************************************************/
be_local_closure(get_battery_chargin_status, /* name */
be_local_closure(AXP192_get_battery_chargin_status, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@ -800,13 +800,13 @@ be_local_closure(get_battery_chargin_status, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read", -824204347, 4),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* K0 */ be_nested_str(wire),
/* K1 */ be_nested_str(read),
/* K2 */ be_nested_str(addr),
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("get_battery_chargin_status", -2061725725, 26)),
((bstring*) &be_const_str_input),
&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
@ -824,7 +824,7 @@ be_local_closure(get_battery_chargin_status, /* name */
/********************************************************************
** Solidified function: get_input_power_status
********************************************************************/
be_local_closure(get_input_power_status, /* name */
be_local_closure(AXP192_get_input_power_status, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@ -835,14 +835,14 @@ be_local_closure(get_input_power_status, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read", -824204347, 4),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* 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_nested_const_str("get_input_power_status", -192138119, 22)),
((bstring*) &be_const_str_input),
&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
@ -866,29 +866,29 @@ be_local_class(AXP192,
&be_class_I2C_Driver,
be_nested_map(21,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("get_warning_level", 1737834441, 17, -1), be_const_closure(get_warning_level_closure) },
{ be_nested_key("get_vbus_current", 1205347942, 16, -1), be_const_closure(get_vbus_current_closure) },
{ be_nested_key("set_chg_current", 336304386, 15, 14), be_const_closure(set_chg_current_closure) },
{ be_nested_key("get_bat_current", 1912106073, 15, -1), be_const_closure(get_bat_current_closure) },
{ be_nested_key("get_bat_power", -1227592443, 13, 9), be_const_closure(get_bat_power_closure) },
{ be_nested_key("json_append", -1292948012, 11, -1), be_const_closure(json_append_closure) },
{ be_nested_key("get_vbus_voltage", -1896756895, 16, -1), be_const_closure(get_vbus_voltage_closure) },
{ be_nested_key("get_temp", -924047810, 8, -1), be_const_closure(get_temp_closure) },
{ be_nested_key("battery_present", -706570238, 15, -1), be_const_closure(battery_present_closure) },
{ be_nested_key("get_aps_voltage", -2001930861, 15, -1), be_const_closure(get_aps_voltage_closure) },
{ be_nested_key("set_dcdc_enable", 1594690786, 15, -1), be_const_closure(set_dcdc_enable_closure) },
{ be_nested_key("set_ldo_voltage", -204466136, 15, 7), be_const_closure(set_ldo_voltage_closure) },
{ be_nested_key("init", 380752755, 4, 2), be_const_closure(init_closure) },
{ be_nested_key("get_bat_voltage", 706676538, 15, 18), be_const_closure(get_bat_voltage_closure) },
{ be_nested_key("set_ldo_enable", -1378465255, 14, -1), be_const_closure(set_ldo_enable_closure) },
{ be_nested_key("set_dc_voltage", -2112985360, 14, 13), be_const_closure(set_dc_voltage_closure) },
{ be_nested_key("write_gpio", -2027026962, 10, -1), be_const_closure(write_gpio_closure) },
{ be_nested_key("web_sensor", -1394870324, 10, -1), be_const_closure(web_sensor_closure) },
{ be_nested_key("get_bat_charge_current", 1385293050, 22, 19), be_const_closure(get_bat_charge_current_closure) },
{ be_nested_key("get_battery_chargin_status", -2061725725, 26, -1), be_const_closure(get_battery_chargin_status_closure) },
{ be_nested_key("get_input_power_status", -192138119, 22, -1), be_const_closure(get_input_power_status_closure) },
{ 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_nested_const_str("AXP192", 757230128, 6))
be_str_literal("AXP192")
);
/*******************************************************************/

View File

@ -9,12 +9,10 @@
*******************************************************************/
#include "be_constobj.h"
extern bclass* be_class_Driver; // Parent class
/********************************************************************
** Solidified function: read32
********************************************************************/
be_local_closure(read32, /* name */
be_local_closure(I2C_Driver_read32, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@ -25,16 +23,16 @@ be_local_closure(read32, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read_bytes", -718234123, 10),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* 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_nested_const_str("read32", 1741276240, 6)),
((bstring*) &be_const_str_input),
&be_const_str_read32,
&be_const_str_solidified,
( &(const binstruction[20]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -65,7 +63,7 @@ be_local_closure(read32, /* name */
/********************************************************************
** Solidified function: write8
********************************************************************/
be_local_closure(write8, /* name */
be_local_closure(I2C_Driver_write8, /* name */
be_nested_proto(
9, /* nstack */
3, /* argc */
@ -76,13 +74,13 @@ be_local_closure(write8, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("write", -1104765092, 5),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* K0 */ be_nested_str(wire),
/* K1 */ be_nested_str(write),
/* K2 */ be_nested_str(addr),
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("write8", -1160975764, 6)),
((bstring*) &be_const_str_input),
&be_const_str_write8,
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -101,7 +99,7 @@ be_local_closure(write8, /* name */
/********************************************************************
** Solidified function: read12
********************************************************************/
be_local_closure(read12, /* name */
be_local_closure(I2C_Driver_read12, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@ -112,15 +110,15 @@ be_local_closure(read12, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read_bytes", -718234123, 10),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* 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_nested_const_str("read12", -3890326, 6)),
((bstring*) &be_const_str_input),
&be_const_str_read12,
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -143,7 +141,7 @@ be_local_closure(read12, /* name */
/********************************************************************
** Solidified function: write_bit
********************************************************************/
be_local_closure(write_bit, /* name */
be_local_closure(I2C_Driver_write_bit, /* name */
be_nested_proto(
11, /* nstack */
4, /* argc */
@ -156,11 +154,11 @@ be_local_closure(write_bit, /* name */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_const_int(1),
/* K2 */ be_nested_string("write8", -1160975764, 6),
/* K3 */ be_nested_string("read8", -1492179129, 5),
/* K2 */ be_nested_str(write8),
/* K3 */ be_nested_str(read8),
}),
(be_nested_const_str("write_bit", -1633976860, 9)),
((bstring*) &be_const_str_input),
&be_const_str_write_bit,
&be_const_str_solidified,
( &(const binstruction[26]) { /* code */
0x14100500, // 0000 LT R4 R2 K0
0x74120002, // 0001 JMPT R4 #0005
@ -197,7 +195,7 @@ be_local_closure(write_bit, /* name */
/********************************************************************
** Solidified function: read24
********************************************************************/
be_local_closure(read24, /* name */
be_local_closure(I2C_Driver_read24, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@ -208,16 +206,16 @@ be_local_closure(read24, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read_bytes", -718234123, 10),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* 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_nested_const_str("read24", 1808533811, 6)),
((bstring*) &be_const_str_input),
&be_const_str_read24,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -244,7 +242,7 @@ be_local_closure(read24, /* name */
/********************************************************************
** Solidified function: read8
********************************************************************/
be_local_closure(read8, /* name */
be_local_closure(I2C_Driver_read8, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@ -255,13 +253,13 @@ be_local_closure(read8, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read", -824204347, 4),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* K0 */ be_nested_str(wire),
/* K1 */ be_nested_str(read),
/* K2 */ be_nested_str(addr),
/* K3 */ be_const_int(1),
}),
(be_nested_const_str("read8", -1492179129, 5)),
((bstring*) &be_const_str_input),
&be_const_str_read8,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -279,7 +277,7 @@ be_local_closure(read8, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(I2C_Driver_init, /* name */
be_nested_proto(
10, /* nstack */
4, /* argc */
@ -290,19 +288,19 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("get_tasmota", 334356779, 11),
/* K1 */ be_nested_string("i2c_enabled", 218388101, 11),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* K3 */ be_nested_string("wire", -212213352, 4),
/* K4 */ be_nested_string("wire_scan", -1623691416, 9),
/* K5 */ be_nested_string("function", -1630125495, 8),
/* K6 */ be_nested_string("name", -1925595674, 4),
/* K7 */ be_nested_string("I2C:", 813483371, 4),
/* K8 */ be_nested_string("detected on bus", 1432002650, 15),
/* K9 */ be_nested_string("bus", 1607822841, 3),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[44]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x7C100200, // 0001 CALL R4 1
@ -357,7 +355,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: read13
********************************************************************/
be_local_closure(read13, /* name */
be_local_closure(I2C_Driver_read13, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@ -368,15 +366,15 @@ be_local_closure(read13, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("wire", -212213352, 4),
/* K1 */ be_nested_string("read_bytes", -718234123, 10),
/* K2 */ be_nested_string("addr", 1087856498, 4),
/* 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_nested_const_str("read13", 12887293, 6)),
((bstring*) &be_const_str_input),
&be_const_str_read13,
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -395,27 +393,33 @@ be_local_closure(read13, /* name */
);
/*******************************************************************/
#include "../generate/be_fixed_be_class_I2C_Driver.h"
void be_load_driver_i2c_lib(bvm *vm) {
/********************************************************************
** 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);
}
/* @const_object_info_begin
class be_class_I2C_Driver (scope: global, name: I2C_Driver, super: be_class_Driver) {
wire, var
addr, var
name, var
init, closure(init_closure)
write8, closure(write8_closure)
write_bit, closure(write_bit_closure)
read8, closure(read8_closure)
read12, closure(read12_closure)
read13, closure(read13_closure)
read24, closure(read24_closure)
read32, closure(read32_closure)
}
@const_object_info_end */

View File

@ -20,17 +20,17 @@ be_local_closure(Leds_animator_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_string("strip", -48555823, 5),
/* K1 */ be_nested_string("bri", 2112284244, 3),
/* K2 */ be_nested_string("running", 343848780, 7),
/* K3 */ be_nested_string("pixel_count", -1855836553, 11),
/* K4 */ be_nested_string("animators", 279858213, 9),
/* K5 */ be_nested_string("clear", 1550717474, 5),
/* K6 */ be_nested_string("tasmota", 424643812, 7),
/* K7 */ be_nested_string("add_driver", 1654458371, 10),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x540A0031, // 0001 LDINT R2 50
@ -70,10 +70,10 @@ be_local_closure(Leds_animator_set_bri, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("bri", 2112284244, 3),
/* K0 */ be_nested_str(bri),
}),
(be_nested_const_str("set_bri", -1505848517, 7)),
((bstring*) &be_const_str_input),
&be_const_str_set_bri,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x80000000, // 0001 RET 0
@ -97,10 +97,10 @@ be_local_closure(Leds_animator_stop, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K0 */ be_nested_str(running),
}),
(be_nested_const_str("stop", -883741979, 4)),
((bstring*) &be_const_str_input),
&be_const_str_stop,
&be_const_str_solidified,
( &(const binstruction[ 3]) { /* code */
0x50040000, // 0000 LDBOOL R1 0 0
0x90020001, // 0001 SETMBR R0 K0 R1
@ -125,8 +125,8 @@ be_local_closure(Leds_animator_animate, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("animate", -409180496, 7)),
((bstring*) &be_const_str_input),
&be_const_str_animate,
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
@ -149,11 +149,11 @@ be_local_closure(Leds_animator_remove, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("remove_driver", 1030243768, 13),
/* K0 */ be_nested_str(tasmota),
/* K1 */ be_nested_str(remove_driver),
}),
(be_nested_const_str("remove", -611183107, 6)),
((bstring*) &be_const_str_input),
&be_const_str_remove,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -180,16 +180,16 @@ be_local_closure(Leds_animator_every_50ms, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K0 */ be_nested_str(running),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_string("animators", 279858213, 9),
/* K3 */ be_nested_string("is_running", -2068120035, 10),
/* K4 */ be_nested_string("animate", -409180496, 7),
/* K2 */ be_nested_str(animators),
/* K3 */ be_nested_str(is_running),
/* K4 */ be_nested_str(animate),
/* K5 */ be_const_int(1),
/* K6 */ be_nested_string("remove", -611183107, 6),
/* K6 */ be_nested_str(remove),
}),
(be_nested_const_str("every_50ms", -1911083288, 10)),
((bstring*) &be_const_str_input),
&be_const_str_every_50ms,
&be_const_str_solidified,
( &(const binstruction[25]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x78060015, // 0001 JMPF R1 #0018
@ -236,10 +236,10 @@ be_local_closure(Leds_animator_get_bri, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("bri", 2112284244, 3),
/* K0 */ be_nested_str(bri),
}),
(be_nested_const_str("get_bri", 2041809895, 7)),
((bstring*) &be_const_str_input),
&be_const_str_get_bri,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x80040400, // 0001 RET 1 R2
@ -263,10 +263,10 @@ be_local_closure(Leds_animator_start, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("running", 343848780, 7),
/* K0 */ be_nested_str(running),
}),
(be_nested_const_str("start", 1697318111, 5)),
((bstring*) &be_const_str_input),
&be_const_str_start,
&be_const_str_solidified,
( &(const binstruction[ 3]) { /* code */
0x50040200, // 0000 LDBOOL R1 1 0
0x90020001, // 0001 SETMBR R0 K0 R1
@ -291,12 +291,12 @@ be_local_closure(Leds_animator_add_anim, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("animators", 279858213, 9),
/* K1 */ be_nested_string("push", -2022703139, 4),
/* K2 */ be_nested_string("run", 718098122, 3),
/* K0 */ be_nested_str(animators),
/* K1 */ be_nested_str(push),
/* K2 */ be_nested_str(run),
}),
(be_nested_const_str("add_anim", -314304628, 8)),
((bstring*) &be_const_str_input),
&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
@ -325,12 +325,12 @@ be_local_closure(Leds_animator_clear, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("stop", -883741979, 4),
/* K1 */ be_nested_string("strip", -48555823, 5),
/* K2 */ be_nested_string("clear", 1550717474, 5),
/* K0 */ be_nested_str(stop),
/* K1 */ be_nested_str(strip),
/* K2 */ be_nested_str(clear),
}),
(be_nested_const_str("clear", 1550717474, 5)),
((bstring*) &be_const_str_input),
&be_const_str_clear,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x7C040200, // 0001 CALL R1 1
@ -352,23 +352,23 @@ be_local_class(Leds_animator,
NULL,
be_nested_map(15,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, 7), be_const_closure(Leds_animator_init_closure) },
{ be_nested_key("set_bri", -1505848517, 7, -1), be_const_closure(Leds_animator_set_bri_closure) },
{ be_nested_key("stop", -883741979, 4, -1), be_const_closure(Leds_animator_stop_closure) },
{ be_nested_key("strip", -48555823, 5, 4), be_const_var(0) },
{ be_nested_key("animators", 279858213, 9, 12), be_const_var(4) },
{ be_nested_key("animate", -409180496, 7, -1), be_const_closure(Leds_animator_animate_closure) },
{ be_nested_key("remove", -611183107, 6, -1), be_const_closure(Leds_animator_remove_closure) },
{ be_nested_key("running", 343848780, 7, -1), be_const_var(3) },
{ be_nested_key("every_50ms", -1911083288, 10, -1), be_const_closure(Leds_animator_every_50ms_closure) },
{ be_nested_key("bri", 2112284244, 3, 6), be_const_var(2) },
{ be_nested_key("get_bri", 2041809895, 7, -1), be_const_closure(Leds_animator_get_bri_closure) },
{ be_nested_key("start", 1697318111, 5, -1), be_const_closure(Leds_animator_start_closure) },
{ be_nested_key("add_anim", -314304628, 8, 13), be_const_closure(Leds_animator_add_anim_closure) },
{ be_nested_key("pixel_count", -1855836553, 11, -1), be_const_var(1) },
{ be_nested_key("clear", 1550717474, 5, 1), be_const_closure(Leds_animator_clear_closure) },
{ 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_nested_const_str("Leds_animator", 142168673, 13))
be_str_literal("Leds_animator")
);
/*******************************************************************/

View File

@ -20,11 +20,11 @@ be_local_closure(Leds_matrix_pixel_count, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("w"),
/* K1 */ be_nested_str_literal("h"),
/* K0 */ be_nested_str(w),
/* K1 */ be_nested_str(h),
}),
(be_nested_const_str("pixel_count", -1855836553, 11)),
((bstring*) &be_const_str_input),
&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
@ -50,10 +50,10 @@ be_local_closure(Leds_matrix_set_alternate, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("alternate"),
/* K0 */ be_nested_str(alternate),
}),
(be_nested_const_str("set_alternate", 1709680562, 13)),
((bstring*) &be_const_str_input),
&be_const_str_set_alternate,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x80000000, // 0001 RET 0
@ -77,11 +77,11 @@ be_local_closure(Leds_matrix_pixel_size, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("pixel_size"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(pixel_size),
}),
(be_nested_const_str("pixel_size", -2085831511, 10)),
((bstring*) &be_const_str_input),
&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
@ -107,12 +107,12 @@ be_local_closure(Leds_matrix_set_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("set_pixel_color"),
/* K2 */ be_nested_str_literal("offset"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(set_pixel_color),
/* K2 */ be_nested_str(offset),
}),
(be_nested_const_str("set_pixel_color", 1275248356, 15)),
((bstring*) &be_const_str_input),
&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
@ -142,17 +142,17 @@ be_local_closure(Leds_matrix_set_matrix_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_literal("alternate"),
/* K0 */ be_nested_str(alternate),
/* K1 */ be_const_int(2),
/* K2 */ be_nested_str_literal("strip"),
/* K3 */ be_nested_str_literal("set_pixel_color"),
/* K4 */ be_nested_str_literal("w"),
/* K5 */ be_nested_str_literal("h"),
/* 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_literal("offset"),
/* K7 */ be_nested_str(offset),
}),
(be_nested_const_str("set_matrix_pixel_color", 1197149462, 22)),
((bstring*) &be_const_str_input),
&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
@ -203,16 +203,16 @@ be_local_closure(Leds_matrix_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_literal("offset"),
/* K0 */ be_nested_str(offset),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("w"),
/* K3 */ be_nested_str_literal("h"),
/* K4 */ be_nested_str_literal("strip"),
/* K5 */ be_nested_str_literal("leds"),
/* K6 */ be_nested_str_literal("show"),
/* 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_nested_const_str("show", -1454906820, 4)),
((bstring*) &be_const_str_input),
&be_const_str_show,
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x60080017, // 0000 GETGBL R2 G23
0x5C0C0200, // 0001 MOVE R3 R1
@ -252,11 +252,11 @@ be_local_closure(Leds_matrix_is_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("is_dirty"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(is_dirty),
}),
(be_nested_const_str("is_dirty", 418034110, 8)),
((bstring*) &be_const_str_input),
&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
@ -283,15 +283,15 @@ be_local_closure(Leds_matrix_clear_to, /* name */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_literal("w"),
/* K2 */ be_nested_str_literal("h"),
/* K3 */ be_nested_str_literal("strip"),
/* K4 */ be_nested_str_literal("set_pixel_color"),
/* K5 */ be_nested_str_literal("offset"),
/* 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_nested_const_str("clear_to", -766965166, 8)),
((bstring*) &be_const_str_input),
&be_const_str_clear_to,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0x580C0000, // 0000 LDCONST R3 K0
0x88100101, // 0001 GETMBR R4 R0 K1
@ -329,12 +329,12 @@ be_local_closure(Leds_matrix_clear, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("clear_to"),
/* K0 */ be_nested_str(clear_to),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("show"),
/* K2 */ be_nested_str(show),
}),
(be_nested_const_str("clear", 1550717474, 5)),
((bstring*) &be_const_str_input),
&be_const_str_clear,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -362,8 +362,8 @@ be_local_closure(Leds_matrix_pixels_buffer, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("pixels_buffer", 1229555807, 13)),
((bstring*) &be_const_str_input),
&be_const_str_pixels_buffer,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x4C040000, // 0000 LDNIL R1
0x80040200, // 0001 RET 1 R1
@ -387,14 +387,14 @@ be_local_closure(Leds_matrix_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("offset"),
/* K2 */ be_nested_str_literal("h"),
/* K3 */ be_nested_str_literal("w"),
/* K4 */ be_nested_str_literal("alternate"),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020204, // 0001 SETMBR R0 K1 R4
@ -423,11 +423,11 @@ be_local_closure(Leds_matrix_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("dirty"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(dirty),
}),
(be_nested_const_str("dirty", -1627386213, 5)),
((bstring*) &be_const_str_input),
&be_const_str_dirty,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -453,12 +453,12 @@ be_local_closure(Leds_matrix_get_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("get_pixel_color"),
/* K2 */ be_nested_str_literal("offseta"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(get_pixel_color),
/* K2 */ be_nested_str(offseta),
}),
(be_nested_const_str("get_pixel_color", 337490048, 15)),
((bstring*) &be_const_str_input),
&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
@ -486,10 +486,10 @@ be_local_closure(Leds_matrix_get_alternate, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("alternate"),
/* K0 */ be_nested_str(alternate),
}),
(be_nested_const_str("get_alternate", 1450148894, 13)),
((bstring*) &be_const_str_input),
&be_const_str_get_alternate,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
@ -513,8 +513,8 @@ be_local_closure(Leds_matrix_begin, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("begin", 1748273790, 5)),
((bstring*) &be_const_str_input),
&be_const_str_begin,
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
@ -537,11 +537,11 @@ be_local_closure(Leds_matrix_can_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("can_show"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(can_show),
}),
(be_nested_const_str("can_show", 960091187, 8)),
((bstring*) &be_const_str_input),
&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
@ -561,27 +561,27 @@ be_local_class(Leds_matrix,
NULL,
be_nested_map(21,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("pixel_count", -1855836553, 11, -1), be_const_closure(Leds_matrix_pixel_count_closure) },
{ be_nested_key("h", -317966505, 1, 6), be_const_var(2) },
{ be_nested_key("set_alternate", 1709680562, 13, 7), be_const_closure(Leds_matrix_set_alternate_closure) },
{ be_nested_key("pixel_size", -2085831511, 10, 16), be_const_closure(Leds_matrix_pixel_size_closure) },
{ be_nested_key("set_pixel_color", 1275248356, 15, 19), be_const_closure(Leds_matrix_set_pixel_color_closure) },
{ be_nested_key("set_matrix_pixel_color", 1197149462, 22, 10), be_const_closure(Leds_matrix_set_matrix_pixel_color_closure) },
{ be_nested_key("show", -1454906820, 4, -1), be_const_closure(Leds_matrix_show_closure) },
{ be_nested_key("alternate", 1140253277, 9, -1), be_const_var(4) },
{ be_nested_key("strip", -48555823, 5, -1), be_const_var(0) },
{ be_nested_key("clear_to", -766965166, 8, -1), be_const_closure(Leds_matrix_clear_to_closure) },
{ be_nested_key("w", -234078410, 1, 15), be_const_var(3) },
{ be_nested_key("pixels_buffer", 1229555807, 13, -1), be_const_closure(Leds_matrix_pixels_buffer_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Leds_matrix_init_closure) },
{ be_nested_key("dirty", -1627386213, 5, -1), be_const_closure(Leds_matrix_dirty_closure) },
{ be_nested_key("get_pixel_color", 337490048, 15, -1), be_const_closure(Leds_matrix_get_pixel_color_closure) },
{ be_nested_key("get_alternate", 1450148894, 13, 17), be_const_closure(Leds_matrix_get_alternate_closure) },
{ be_nested_key("offset", 348705738, 6, 8), be_const_var(1) },
{ be_nested_key("clear", 1550717474, 5, -1), be_const_closure(Leds_matrix_clear_closure) },
{ be_nested_key("begin", 1748273790, 5, -1), be_const_closure(Leds_matrix_begin_closure) },
{ be_nested_key("is_dirty", 418034110, 8, -1), be_const_closure(Leds_matrix_is_dirty_closure) },
{ be_nested_key("can_show", 960091187, 8, -1), be_const_closure(Leds_matrix_can_show_closure) },
{ 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")
);
@ -601,13 +601,13 @@ be_local_closure(Leds_create_matrix, /* name */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_literal("leds"),
/* K2 */ be_nested_str_literal("value_error"),
/* K3 */ be_nested_str_literal("out of range"),
/* 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_nested_const_str("create_matrix", -766781373, 13)),
((bstring*) &be_const_str_input),
&be_const_str_create_matrix,
&be_const_str_solidified,
( &(const binstruction[37]) { /* code */
0x60100009, // 0000 GETGBL R4 G9
0x5C140600, // 0001 MOVE R5 R3
@ -666,11 +666,11 @@ be_local_closure(Leds_begin, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_const_int(1),
}),
(be_nested_const_str("begin", 1748273790, 5)),
((bstring*) &be_const_str_input),
&be_const_str_begin,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -696,16 +696,16 @@ be_local_closure(Leds_to_gamma, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_literal("tasmota"),
/* K1 */ be_nested_str_literal("scale_uint"),
/* 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_literal("gamma"),
/* K5 */ be_nested_str_literal("light"),
/* K6 */ be_nested_str_literal("gamma8"),
/* K4 */ be_nested_str(gamma),
/* K5 */ be_nested_str(light),
/* K6 */ be_nested_str(gamma8),
}),
(be_nested_const_str("to_gamma", 1597139862, 8)),
((bstring*) &be_const_str_input),
&be_const_str_to_gamma,
&be_const_str_solidified,
( &(const binstruction[67]) { /* code */
0x4C0C0000, // 0000 LDNIL R3
0x200C0403, // 0001 NE R3 R2 R3
@ -794,10 +794,10 @@ be_local_closure(Leds_pixel_count, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("pixel_count", -1855836553, 11)),
((bstring*) &be_const_str_input),
&be_const_str_pixel_count,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0007, // 0001 LDINT R3 8
@ -823,12 +823,12 @@ be_local_closure(Leds_matrix, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("Leds"),
/* K1 */ be_nested_str_literal("create_matrix"),
/* K0 */ be_nested_str(Leds),
/* K1 */ be_nested_str(create_matrix),
/* K2 */ be_const_int(0),
}),
(be_nested_const_str("matrix", 365099244, 6)),
((bstring*) &be_const_str_input),
&be_const_str_matrix,
&be_const_str_solidified,
( &(const binstruction[11]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x08140001, // 0001 MUL R5 R0 R1
@ -861,10 +861,10 @@ be_local_closure(Leds_pixel_size, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("pixel_size", -2085831511, 10)),
((bstring*) &be_const_str_input),
&be_const_str_pixel_size,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0006, // 0001 LDINT R3 7
@ -890,10 +890,10 @@ be_local_closure(Leds_pixels_buffer, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("pixels_buffer", 1229555807, 13)),
((bstring*) &be_const_str_input),
&be_const_str_pixels_buffer,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0005, // 0001 LDINT R3 6
@ -919,10 +919,10 @@ be_local_closure(Leds_get_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("get_pixel_color", 337490048, 15)),
((bstring*) &be_const_str_input),
&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
@ -949,11 +949,11 @@ be_local_closure(Leds_set_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K1 */ be_nested_str_literal("to_gamma"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_nested_str(to_gamma),
}),
(be_nested_const_str("set_pixel_color", 1275248356, 15)),
((bstring*) &be_const_str_input),
&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
@ -984,10 +984,10 @@ be_local_closure(Leds_is_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("is_dirty", 418034110, 8)),
((bstring*) &be_const_str_input),
&be_const_str_is_dirty,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0003, // 0001 LDINT R3 4
@ -1013,21 +1013,21 @@ be_local_closure(Leds_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_literal("gamma"),
/* K1 */ be_nested_str_literal("leds"),
/* K2 */ be_nested_str_literal("pin"),
/* K3 */ be_nested_str_literal("WS2812"),
/* 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_literal("valuer_error"),
/* K6 */ be_nested_str_literal("no GPIO specified for neopixelbus"),
/* K7 */ be_nested_str_literal("ctor"),
/* K8 */ be_nested_str_literal("_p"),
/* K9 */ be_nested_str_literal("internal_error"),
/* K10 */ be_nested_str_literal("couldn't not initialize noepixelbus"),
/* K11 */ be_nested_str_literal("begin"),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[36]) { /* code */
0x50140200, // 0000 LDBOOL R5 1 0
0x90020005, // 0001 SETMBR R0 K0 R5
@ -1085,11 +1085,11 @@ be_local_closure(Leds_clear_to, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K1 */ be_nested_str_literal("to_gamma"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_nested_str(to_gamma),
}),
(be_nested_const_str("clear_to", -766965166, 8)),
((bstring*) &be_const_str_input),
&be_const_str_clear_to,
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x8C0C0100, // 0000 GETMET R3 R0 K0
0x54160008, // 0001 LDINT R5 9
@ -1119,11 +1119,11 @@ be_local_closure(Leds_can_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_const_int(3),
}),
(be_nested_const_str("can_show", 960091187, 8)),
((bstring*) &be_const_str_input),
&be_const_str_can_show,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -1149,12 +1149,12 @@ be_local_closure(Leds_clear, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("clear_to"),
/* K0 */ be_nested_str(clear_to),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("show"),
/* K2 */ be_nested_str(show),
}),
(be_nested_const_str("clear", 1550717474, 5)),
((bstring*) &be_const_str_input),
&be_const_str_clear,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -1182,11 +1182,11 @@ be_local_closure(Leds_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_const_int(2),
}),
(be_nested_const_str("show", -1454906820, 4)),
((bstring*) &be_const_str_input),
&be_const_str_show,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -1212,11 +1212,11 @@ be_local_closure(Leds_ctor, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
/* K1 */ be_const_int(0),
}),
(be_nested_const_str("ctor", 375399343, 4)),
((bstring*) &be_const_str_input),
&be_const_str_ctor,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0x4C100000, // 0000 LDNIL R4
0x1C100604, // 0001 EQ R4 R3 R4
@ -1254,10 +1254,10 @@ be_local_closure(Leds_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("call_native"),
/* K0 */ be_nested_str(call_native),
}),
(be_nested_const_str("dirty", -1627386213, 5)),
((bstring*) &be_const_str_input),
&be_const_str_dirty,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x540E0004, // 0001 LDINT R3 5
@ -1283,12 +1283,12 @@ be_local_closure(Leds_segment_get_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("get_pixel_color"),
/* K2 */ be_nested_str_literal("offseta"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(get_pixel_color),
/* K2 */ be_nested_str(offseta),
}),
(be_nested_const_str("get_pixel_color", 337490048, 15)),
((bstring*) &be_const_str_input),
&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
@ -1317,14 +1317,14 @@ be_local_closure(Leds_segment_clear_to, /* name */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_literal("leds"),
/* K2 */ be_nested_str_literal("strip"),
/* K3 */ be_nested_str_literal("set_pixel_color"),
/* K4 */ be_nested_str_literal("offset"),
/* 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_nested_const_str("clear_to", -766965166, 8)),
((bstring*) &be_const_str_input),
&be_const_str_clear_to,
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
0x580C0000, // 0000 LDCONST R3 K0
0x88100101, // 0001 GETMBR R4 R0 K1
@ -1360,11 +1360,11 @@ be_local_closure(Leds_segment_can_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("can_show"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(can_show),
}),
(be_nested_const_str("can_show", 960091187, 8)),
((bstring*) &be_const_str_input),
&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
@ -1390,12 +1390,12 @@ be_local_closure(Leds_segment_set_pixel_color, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("set_pixel_color"),
/* K2 */ be_nested_str_literal("offset"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(set_pixel_color),
/* K2 */ be_nested_str(offset),
}),
(be_nested_const_str("set_pixel_color", 1275248356, 15)),
((bstring*) &be_const_str_input),
&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
@ -1425,12 +1425,12 @@ be_local_closure(Leds_segment_clear, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("clear_to"),
/* K0 */ be_nested_str(clear_to),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("show"),
/* K2 */ be_nested_str(show),
}),
(be_nested_const_str("clear", 1550717474, 5)),
((bstring*) &be_const_str_input),
&be_const_str_clear,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x580C0001, // 0001 LDCONST R3 K1
@ -1458,8 +1458,8 @@ be_local_closure(Leds_segment_begin, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("begin", 1748273790, 5)),
((bstring*) &be_const_str_input),
&be_const_str_begin,
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
0x80000000, // 0000 RET 0
})
@ -1482,10 +1482,10 @@ be_local_closure(Leds_segment_pixel_count, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_literal("leds"),
/* K0 */ be_nested_str(leds),
}),
(be_nested_const_str("pixel_count", -1855836553, 11)),
((bstring*) &be_const_str_input),
&be_const_str_pixel_count,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
@ -1509,12 +1509,12 @@ be_local_closure(Leds_segment_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("offset"),
/* K2 */ be_nested_str_literal("leds"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(offset),
/* K2 */ be_nested_str(leds),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x60100009, // 0001 GETGBL R4 G9
@ -1546,11 +1546,11 @@ be_local_closure(Leds_segment_pixel_size, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("pixel_size"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(pixel_size),
}),
(be_nested_const_str("pixel_size", -2085831511, 10)),
((bstring*) &be_const_str_input),
&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
@ -1576,11 +1576,11 @@ be_local_closure(Leds_segment_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("dirty"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(dirty),
}),
(be_nested_const_str("dirty", -1627386213, 5)),
((bstring*) &be_const_str_input),
&be_const_str_dirty,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -1606,14 +1606,14 @@ be_local_closure(Leds_segment_show, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_literal("offset"),
/* K0 */ be_nested_str(offset),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("leds"),
/* K3 */ be_nested_str_literal("strip"),
/* K4 */ be_nested_str_literal("show"),
/* K2 */ be_nested_str(leds),
/* K3 */ be_nested_str(strip),
/* K4 */ be_nested_str(show),
}),
(be_nested_const_str("show", -1454906820, 4)),
((bstring*) &be_const_str_input),
&be_const_str_show,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0x60080017, // 0000 GETGBL R2 G23
0x5C0C0200, // 0001 MOVE R3 R1
@ -1651,11 +1651,11 @@ be_local_closure(Leds_segment_is_dirty, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("strip"),
/* K1 */ be_nested_str_literal("is_dirty"),
/* K0 */ be_nested_str(strip),
/* K1 */ be_nested_str(is_dirty),
}),
(be_nested_const_str("is_dirty", 418034110, 8)),
((bstring*) &be_const_str_input),
&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
@ -1681,8 +1681,8 @@ be_local_closure(Leds_segment_pixels_buffer, /* name */
NULL, /* no sub protos */
0, /* has constants */
NULL, /* no const */
(be_nested_const_str("pixels_buffer", 1229555807, 13)),
((bstring*) &be_const_str_input),
&be_const_str_pixels_buffer,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x4C040000, // 0000 LDNIL R1
0x80040200, // 0001 RET 1 R1
@ -1700,22 +1700,22 @@ be_local_class(Leds_segment,
NULL,
be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("get_pixel_color", 337490048, 15, -1), be_const_closure(Leds_segment_get_pixel_color_closure) },
{ be_nested_key("strip", -48555823, 5, -1), be_const_var(0) },
{ be_nested_key("clear_to", -766965166, 8, 5), be_const_closure(Leds_segment_clear_to_closure) },
{ be_nested_key("can_show", 960091187, 8, 13), be_const_closure(Leds_segment_can_show_closure) },
{ be_nested_key("set_pixel_color", 1275248356, 15, -1), be_const_closure(Leds_segment_set_pixel_color_closure) },
{ be_nested_key("clear", 1550717474, 5, -1), be_const_closure(Leds_segment_clear_closure) },
{ be_nested_key("is_dirty", 418034110, 8, -1), be_const_closure(Leds_segment_is_dirty_closure) },
{ be_nested_key("pixel_count", -1855836553, 11, -1), be_const_closure(Leds_segment_pixel_count_closure) },
{ be_nested_key("leds", 558858555, 4, -1), be_const_var(2) },
{ be_nested_key("pixel_size", -2085831511, 10, -1), be_const_closure(Leds_segment_pixel_size_closure) },
{ be_nested_key("offset", 348705738, 6, -1), be_const_var(1) },
{ be_nested_key("dirty", -1627386213, 5, 8), be_const_closure(Leds_segment_dirty_closure) },
{ be_nested_key("show", -1454906820, 4, -1), be_const_closure(Leds_segment_show_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(Leds_segment_init_closure) },
{ be_nested_key("begin", 1748273790, 5, 6), be_const_closure(Leds_segment_begin_closure) },
{ be_nested_key("pixels_buffer", 1229555807, 13, -1), be_const_closure(Leds_segment_pixels_buffer_closure) },
{ 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")
);
@ -1734,14 +1734,14 @@ be_local_closure(Leds_create_segment, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_literal("leds"),
/* K0 */ be_nested_str(leds),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_literal("value_error"),
/* K3 */ be_nested_str_literal("out of range"),
/* K2 */ be_nested_str(value_error),
/* K3 */ be_nested_str(out_X20of_X20range),
/* K4 */ be_const_class(be_class_Leds_segment),
}),
(be_nested_const_str("create_segment", -431444577, 14)),
((bstring*) &be_const_str_input),
&be_const_str_create_segment,
&be_const_str_solidified,
( &(const binstruction[23]) { /* code */
0x600C0009, // 0000 GETGBL R3 G9
0x5C100200, // 0001 MOVE R4 R1
@ -1781,26 +1781,26 @@ be_local_class(Leds,
&be_class_Leds_ntv,
be_nested_map(20,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("pixel_count", -1855836553, 11, -1), be_const_closure(Leds_pixel_count_closure) },
{ be_nested_key("dirty", -1627386213, 5, 6), be_const_closure(Leds_dirty_closure) },
{ be_nested_key("to_gamma", 1597139862, 8, -1), be_const_closure(Leds_to_gamma_closure) },
{ be_nested_key("create_matrix", -766781373, 13, 1), be_const_closure(Leds_create_matrix_closure) },
{ be_nested_key("matrix", 365099244, 6, -1), be_const_static_closure(Leds_matrix_closure) },
{ be_nested_key("pixel_size", -2085831511, 10, -1), be_const_closure(Leds_pixel_size_closure) },
{ be_nested_key("ctor", 375399343, 4, 0), be_const_closure(Leds_ctor_closure) },
{ be_nested_key("pixels_buffer", 1229555807, 13, 13), be_const_closure(Leds_pixels_buffer_closure) },
{ be_nested_key("get_pixel_color", 337490048, 15, -1), be_const_closure(Leds_get_pixel_color_closure) },
{ be_nested_key("show", -1454906820, 4, -1), be_const_closure(Leds_show_closure) },
{ be_nested_key("begin", 1748273790, 5, 17), be_const_closure(Leds_begin_closure) },
{ be_nested_key("leds", 558858555, 4, -1), be_const_var(1) },
{ be_nested_key("clear", 1550717474, 5, -1), be_const_closure(Leds_clear_closure) },
{ be_nested_key("can_show", 960091187, 8, -1), be_const_closure(Leds_can_show_closure) },
{ be_nested_key("gamma", -802614262, 5, 12), be_const_var(0) },
{ be_nested_key("init", 380752755, 4, 11), be_const_closure(Leds_init_closure) },
{ be_nested_key("set_pixel_color", 1275248356, 15, 9), be_const_closure(Leds_set_pixel_color_closure) },
{ be_nested_key("clear_to", -766965166, 8, 18), be_const_closure(Leds_clear_to_closure) },
{ be_nested_key("is_dirty", 418034110, 8, -1), be_const_closure(Leds_is_dirty_closure) },
{ be_nested_key("create_segment", -431444577, 14, -1), be_const_closure(Leds_create_segment_closure) },
{ 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")
);

View File

@ -30,11 +30,11 @@ be_local_class(Leds_ntv,
NULL,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("call_native", 1389147405, 11, -1), be_const_func(be_neopixelbus_call_native) },
{ be_nested_key("_t", 1527481326, 2, -1), be_const_var(1) },
{ be_nested_key("_p", 1594591802, 2, 3), be_const_var(0) },
{ be_nested_key("SK6812_GRBW", 81157857, 11, 4), be_const_int(2) },
{ be_nested_key("WS2812_GRB", 1736405692, 10, -1), be_const_int(1) },
{ 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")
);

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: set_time
********************************************************************/
be_local_closure(set_time, /* name */
be_local_closure(lv_clock_icon_set_time, /* name */
be_nested_proto(
11, /* nstack */
4, /* argc */
@ -21,19 +21,19 @@ be_local_closure(set_time, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("string", 398550328, 6),
/* K1 */ be_nested_string("hour", -1241306097, 4),
/* K2 */ be_nested_string("minute", 954666857, 6),
/* K3 */ be_nested_string("sec", -1155074638, 3),
/* K4 */ be_nested_string("format", -1180859054, 6),
/* K5 */ be_nested_string("%02d%s%02d", 1587999717, 10),
/* 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_string(":", 1057798253, 1),
/* K8 */ be_nested_string(" ", 621580159, 1),
/* K9 */ be_nested_string("set_text", 1849641155, 8),
/* K7 */ be_nested_str(_X3A),
/* K8 */ be_nested_str(_X20),
/* K9 */ be_nested_str(set_text),
}),
(be_nested_const_str("set_time", 900236405, 8)),
((bstring*) &be_const_str_input),
&be_const_str_set_time,
&be_const_str_solidified,
( &(const binstruction[27]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0x88140101, // 0001 GETMBR R5 R0 K1
@ -71,7 +71,7 @@ be_local_closure(set_time, /* name */
/********************************************************************
** Solidified function: every_second
********************************************************************/
be_local_closure(every_second, /* name */
be_local_closure(lv_clock_icon_every_second, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@ -82,18 +82,18 @@ be_local_closure(every_second, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("time_dump", -964556549, 9),
/* K2 */ be_nested_string("rtc", 1070575216, 3),
/* K3 */ be_nested_string("local", -1673304312, 5),
/* K4 */ be_nested_string("year", -1367388900, 4),
/* K5 */ be_nested_string("set_time", 900236405, 8),
/* K6 */ be_nested_string("hour", -1241306097, 4),
/* K7 */ be_nested_string("min", -913357481, 3),
/* K8 */ be_nested_string("sec", -1155074638, 3),
/* 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_nested_const_str("every_second", 2075451465, 12)),
((bstring*) &be_const_str_input),
&be_const_str_every_second,
&be_const_str_solidified,
( &(const binstruction[17]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -121,7 +121,7 @@ be_local_closure(every_second, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_clock_icon_init, /* name */
be_nested_proto(
11, /* nstack */
2, /* argc */
@ -132,31 +132,31 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[22]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("seg7_font", -195276607, 9),
/* K3 */ be_nested_string("set_style_text_font", 1028590019, 19),
/* K4 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K5 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K6 */ be_nested_string("get_height", -723211773, 10),
/* K7 */ be_nested_string("set_text", 1849641155, 8),
/* K8 */ be_nested_string("--:--", 1370615441, 5),
/* K9 */ be_nested_string("refr_size", 1958144468, 9),
/* K10 */ be_nested_string("get_width", -1001549996, 9),
/* K11 */ be_nested_string("set_y", 1866178391, 5),
/* 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_string("get_style_pad_right", -1144679830, 19),
/* K14 */ be_nested_string("set_x", 1849400772, 5),
/* K13 */ be_nested_str(get_style_pad_right),
/* K14 */ be_nested_str(set_x),
/* K15 */ be_const_int(3),
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* K17 */ be_nested_string("set_style_bg_color", 1689513089, 18),
/* K18 */ be_nested_string("color", 1031692888, 5),
/* K19 */ be_nested_string("COLOR_BLACK", 264427940, 11),
/* K20 */ be_nested_string("tasmota", 424643812, 7),
/* K21 */ be_nested_string("add_driver", 1654458371, 10),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[82]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -249,7 +249,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: del
********************************************************************/
be_local_closure(del, /* name */
be_local_closure(lv_clock_icon_del, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -260,12 +260,12 @@ be_local_closure(del, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("del", -816214454, 3),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
/* K0 */ be_nested_str(del),
/* K1 */ be_nested_str(tasmota),
/* K2 */ be_nested_str(remove_driver),
}),
(be_nested_const_str("del", -816214454, 3)),
((bstring*) &be_const_str_input),
&be_const_str_del,
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
@ -292,15 +292,15 @@ be_local_class(lv_clock_icon,
&be_class_lv_label,
be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("sec", -1155074638, 3, -1), be_const_var(2) },
{ be_nested_key("hour", -1241306097, 4, -1), be_const_var(0) },
{ be_nested_key("set_time", 900236405, 8, 6), be_const_closure(set_time_closure) },
{ be_nested_key("every_second", 2075451465, 12, -1), be_const_closure(every_second_closure) },
{ be_nested_key("minute", 954666857, 6, -1), be_const_var(1) },
{ be_nested_key("init", 380752755, 4, 2), be_const_closure(init_closure) },
{ be_nested_key("del", -816214454, 3, -1), be_const_closure(del_closure) },
{ 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_nested_const_str("lv_clock_icon", -1037751086, 13))
be_str_literal("lv_clock_icon")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: get_object_from_ptr
********************************************************************/
be_local_closure(get_object_from_ptr, /* name */
be_local_closure(LVGL_glob_get_object_from_ptr, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -21,11 +21,11 @@ be_local_closure(get_object_from_ptr, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("cb_obj", 1195696482, 6),
/* K1 */ be_nested_string("find", -1108310694, 4),
/* K0 */ be_nested_str(cb_obj),
/* K1 */ be_nested_str(find),
}),
(be_nested_const_str("get_object_from_ptr", -1949948095, 19)),
((bstring*) &be_const_str_input),
&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
@ -46,7 +46,7 @@ be_local_closure(get_object_from_ptr, /* name */
/********************************************************************
** Solidified function: widget_event_impl
********************************************************************/
be_local_closure(widget_event_impl, /* name */
be_local_closure(LVGL_glob_widget_event_impl, /* name */
be_nested_proto(
12, /* nstack */
3, /* argc */
@ -57,18 +57,18 @@ be_local_closure(widget_event_impl, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("lv_event", -1860877328, 8),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_event", 1951408186, 12),
/* 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_nested_const_str("widget_event_impl", -2116536735, 17)),
((bstring*) &be_const_str_input),
&be_const_str_widget_event_impl,
&be_const_str_solidified,
( &(const binstruction[30]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
@ -109,7 +109,7 @@ be_local_closure(widget_event_impl, /* name */
/********************************************************************
** Solidified function: lvgl_event_dispatch
********************************************************************/
be_local_closure(lvgl_event_dispatch, /* name */
be_local_closure(LVGL_glob_lvgl_event_dispatch, /* name */
be_nested_proto(
10, /* nstack */
2, /* argc */
@ -120,16 +120,16 @@ be_local_closure(lvgl_event_dispatch, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_event", -1860877328, 8),
/* K3 */ be_nested_string("toptr", -915119842, 5),
/* K4 */ be_nested_string("target", 845187144, 6),
/* K5 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K6 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* 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_nested_const_str("lvgl_event_dispatch", 2104396622, 19)),
((bstring*) &be_const_str_input),
&be_const_str_lvgl_event_dispatch,
&be_const_str_solidified,
( &(const binstruction[20]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
@ -160,7 +160,7 @@ be_local_closure(lvgl_event_dispatch, /* name */
/********************************************************************
** Solidified function: widget_dtor_impl
********************************************************************/
be_local_closure(widget_dtor_impl, /* name */
be_local_closure(LVGL_glob_widget_dtor_impl, /* name */
be_nested_proto(
10, /* nstack */
3, /* argc */
@ -171,16 +171,16 @@ be_local_closure(widget_dtor_impl, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("instance", 193386898, 8),
/* K5 */ be_nested_string("get", 1410115415, 3),
/* K6 */ be_nested_string("widget_destructor", -87578951, 17),
/* 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_nested_const_str("widget_dtor_impl", 520430610, 16)),
((bstring*) &be_const_str_input),
&be_const_str_widget_dtor_impl,
&be_const_str_solidified,
( &(const binstruction[22]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
@ -213,7 +213,7 @@ be_local_closure(widget_dtor_impl, /* name */
/********************************************************************
** Solidified function: register_obj
********************************************************************/
be_local_closure(register_obj, /* name */
be_local_closure(LVGL_glob_register_obj, /* name */
be_nested_proto(
4, /* nstack */
2, /* argc */
@ -224,11 +224,11 @@ be_local_closure(register_obj, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_string("cb_obj", 1195696482, 6),
/* K1 */ be_nested_string("_p", 1594591802, 2),
/* K0 */ be_nested_str(cb_obj),
/* K1 */ be_nested_str(_p),
}),
(be_nested_const_str("register_obj", -312352526, 12)),
((bstring*) &be_const_str_input),
&be_const_str_register_obj,
&be_const_str_solidified,
( &(const binstruction[13]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
@ -252,7 +252,7 @@ be_local_closure(register_obj, /* name */
/********************************************************************
** Solidified function: gen_cb
********************************************************************/
be_local_closure(gen_cb, /* name */
be_local_closure(LVGL_glob_gen_cb, /* name */
be_nested_proto(
8, /* nstack */
5, /* argc */
@ -273,10 +273,10 @@ be_local_closure(gen_cb, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("lvgl_event_dispatch", 2104396622, 19),
/* K0 */ be_nested_str(lvgl_event_dispatch),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x68040000, // 0000 GETUPV R1 U0
0x8C040300, // 0001 GETMET R1 R1 K0
@ -288,17 +288,17 @@ be_local_closure(gen_cb, /* name */
}),
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_string("lv_event_cb", -1814236280, 11),
/* K1 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K2 */ be_nested_string("event_cb", -1166269279, 8),
/* K3 */ be_nested_string("tasmota", 424643812, 7),
/* K4 */ be_nested_string("gen_cb", -1049739745, 6),
/* K5 */ be_nested_string("register_obj", -312352526, 12),
/* K6 */ be_nested_string("null_cb", -1961430836, 7),
/* K7 */ be_nested_string("cb_do_nothing", 1488730702, 13),
/* 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_nested_const_str("gen_cb", -1049739745, 6)),
((bstring*) &be_const_str_input),
&be_const_str_gen_cb,
&be_const_str_solidified,
( &(const binstruction[41]) { /* code */
0x1C140300, // 0000 EQ R5 R1 K0
0x78160018, // 0001 JMPF R5 #001B
@ -350,7 +350,7 @@ be_local_closure(gen_cb, /* name */
/********************************************************************
** Solidified function: deregister_obj
********************************************************************/
be_local_closure(deregister_obj, /* name */
be_local_closure(LVGL_glob_deregister_obj, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -361,12 +361,12 @@ be_local_closure(deregister_obj, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("cb_obj", 1195696482, 6),
/* K1 */ be_nested_string("remove", -611183107, 6),
/* K2 */ be_nested_string("cb_event_closure", -466699971, 16),
/* K0 */ be_nested_str(cb_obj),
/* K1 */ be_nested_str(remove),
/* K2 */ be_nested_str(cb_event_closure),
}),
(be_nested_const_str("deregister_obj", -385000303, 14)),
((bstring*) &be_const_str_input),
&be_const_str_deregister_obj,
&be_const_str_solidified,
( &(const binstruction[17]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
@ -394,7 +394,7 @@ be_local_closure(deregister_obj, /* name */
/********************************************************************
** Solidified function: widget_cb
********************************************************************/
be_local_closure(widget_cb, /* name */
be_local_closure(LVGL_glob_widget_cb, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -415,10 +415,10 @@ be_local_closure(widget_cb, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("widget_ctor_impl", 194252479, 16),
/* K0 */ be_nested_str(widget_ctor_impl),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -440,10 +440,10 @@ be_local_closure(widget_cb, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("widget_dtor_impl", 520430610, 16),
/* K0 */ be_nested_str(widget_dtor_impl),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -465,10 +465,10 @@ be_local_closure(widget_cb, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("widget_event_impl", -2116536735, 17),
/* K0 */ be_nested_str(widget_event_impl),
}),
(be_nested_const_str("<lambda>", 607256038, 8)),
((bstring*) &be_const_str_input),
&be_const_str__X3Clambda_X3E,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x68080000, // 0000 GETUPV R2 U0
0x8C080500, // 0001 GETMET R2 R2 K0
@ -481,24 +481,24 @@ be_local_closure(widget_cb, /* name */
}),
1, /* has constants */
( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_string("widget_ctor_cb", 876007560, 14),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("gen_cb", -1049739745, 6),
/* K3 */ be_nested_string("widget_dtor_cb", -1143421451, 14),
/* K4 */ be_nested_string("widget_event_cb", 1508466754, 15),
/* K5 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K6 */ be_nested_string("lv", 1529997255, 2),
/* K7 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K8 */ be_nested_string("lv_obj", -37134147, 6),
/* K9 */ be_nested_string("_class", -1562820946, 6),
/* K10 */ be_nested_string("copy", -446502332, 4),
/* K11 */ be_nested_string("base_class", 1107737279, 10),
/* K12 */ be_nested_string("constructor_cb", -1805861999, 14),
/* K13 */ be_nested_string("destructor_cb", 1930283190, 13),
/* K14 */ be_nested_string("event_cb", -1166269279, 8),
/* 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_nested_const_str("widget_cb", -1531384241, 9)),
((bstring*) &be_const_str_input),
&be_const_str_widget_cb,
&be_const_str_solidified,
( &(const binstruction[56]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
@ -565,7 +565,7 @@ be_local_closure(widget_cb, /* name */
/********************************************************************
** Solidified function: _anonymous_
********************************************************************/
be_local_closure(_anonymous_, /* name */
be_local_closure(LVGL_glob__anonymous_, /* name */
be_nested_proto(
2, /* nstack */
0, /* argc */
@ -576,10 +576,10 @@ be_local_closure(_anonymous_, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("LVG: call to unsupported callback", 504176819, 33),
/* K0 */ be_nested_str(LVG_X3A_X20call_X20to_X20unsupported_X20callback),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
((bstring*) &be_const_str_input),
&be_const_str__anonymous_,
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x60000001, // 0000 GETGBL R0 G1
0x58040000, // 0001 LDCONST R1 K0
@ -594,7 +594,7 @@ be_local_closure(_anonymous_, /* name */
/********************************************************************
** Solidified function: create_custom_widget
********************************************************************/
be_local_closure(create_custom_widget, /* name */
be_local_closure(LVGL_glob_create_custom_widget, /* name */
be_nested_proto(
10, /* nstack */
3, /* argc */
@ -605,36 +605,36 @@ be_local_closure(create_custom_widget, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj", -37134147, 6),
/* K3 */ be_nested_string("value_error", 773297791, 11),
/* K4 */ be_nested_string("arg must be a subclass of lv_obj", 1641882079, 32),
/* K5 */ be_nested_string("widget_struct_by_class", -488593454, 22),
/* K6 */ be_nested_string("find", -1108310694, 4),
/* K7 */ be_nested_string("widget_cb", -1531384241, 9),
/* K8 */ be_nested_string("widget_struct_default", 781673633, 21),
/* K9 */ be_nested_string("copy", -446502332, 4),
/* K10 */ be_nested_string("base_class", 1107737279, 10),
/* K11 */ be_nested_string("_class", -1562820946, 6),
/* K12 */ be_nested_string("get", 1410115415, 3),
/* K13 */ be_nested_string("widget_width_def", -308888434, 16),
/* K14 */ be_nested_string("width_def", 1143717879, 9),
/* K15 */ be_nested_string("widget_height_def", -1163299483, 17),
/* K16 */ be_nested_string("height_def", -1946728458, 10),
/* K17 */ be_nested_string("widget_editable", -473174010, 15),
/* K18 */ be_nested_string("editable", 60532369, 8),
/* K19 */ be_nested_string("widget_group_def", 1246968785, 16),
/* K20 */ be_nested_string("group_def", 1524213328, 9),
/* K21 */ be_nested_string("widget_instance_size", 2055354779, 20),
/* K22 */ be_nested_string("instance_size", -14697778, 13),
/* K23 */ be_nested_string("obj_class_create_obj", -990576664, 20),
/* K24 */ be_nested_string("_p", 1594591802, 2),
/* K25 */ be_nested_string("register_obj", -312352526, 12),
/* K26 */ be_nested_string("class_init_obj", 178410604, 14),
/* 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_nested_const_str("create_custom_widget", 1140594778, 20)),
((bstring*) &be_const_str_input),
&be_const_str_create_custom_widget,
&be_const_str_solidified,
( &(const binstruction[86]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0x6010000F, // 0001 GETGBL R4 G15
@ -731,7 +731,7 @@ be_local_closure(create_custom_widget, /* name */
/********************************************************************
** Solidified function: widget_ctor_impl
********************************************************************/
be_local_closure(widget_ctor_impl, /* name */
be_local_closure(LVGL_glob_widget_ctor_impl, /* name */
be_nested_proto(
10, /* nstack */
3, /* argc */
@ -742,18 +742,18 @@ be_local_closure(widget_ctor_impl, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_string("introspect", 164638290, 10),
/* K1 */ be_nested_string("lv", 1529997255, 2),
/* K2 */ be_nested_string("lv_obj_class", -255311002, 12),
/* K3 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
/* K4 */ be_nested_string("cb_obj", 1195696482, 6),
/* K5 */ be_nested_string("find", -1108310694, 4),
/* K6 */ be_nested_string("instance", 193386898, 8),
/* K7 */ be_nested_string("get", 1410115415, 3),
/* K8 */ be_nested_string("widget_constructor", -1751181362, 18),
/* 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_nested_const_str("widget_ctor_impl", 194252479, 16)),
((bstring*) &be_const_str_input),
&be_const_str_widget_ctor_impl,
&be_const_str_solidified,
( &(const binstruction[29]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
@ -798,28 +798,28 @@ be_local_class(LVGL_glob,
NULL,
be_nested_map(20,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("widget_ctor_cb", 876007560, 14, 9), be_const_var(4) },
{ be_nested_key("get_object_from_ptr", -1949948095, 19, 4), be_const_closure(get_object_from_ptr_closure) },
{ be_nested_key("cb_obj", 1195696482, 6, 7), be_const_var(0) },
{ be_nested_key("widget_struct_by_class", -488593454, 22, -1), be_const_var(8) },
{ be_nested_key("widget_event_impl", -2116536735, 17, -1), be_const_closure(widget_event_impl_closure) },
{ be_nested_key("widget_dtor_cb", -1143421451, 14, 6), be_const_var(5) },
{ be_nested_key("cb_event_closure", -466699971, 16, -1), be_const_var(1) },
{ be_nested_key("lvgl_event_dispatch", 2104396622, 19, 16), be_const_closure(lvgl_event_dispatch_closure) },
{ be_nested_key("widget_dtor_impl", 520430610, 16, -1), be_const_closure(widget_dtor_impl_closure) },
{ be_nested_key("null_cb", -1961430836, 7, -1), be_const_var(3) },
{ be_nested_key("register_obj", -312352526, 12, 8), be_const_closure(register_obj_closure) },
{ be_nested_key("gen_cb", -1049739745, 6, -1), be_const_closure(gen_cb_closure) },
{ be_nested_key("widget_struct_default", 781673633, 21, -1), be_const_var(7) },
{ be_nested_key("deregister_obj", -385000303, 14, 12), be_const_closure(deregister_obj_closure) },
{ be_nested_key("widget_event_cb", 1508466754, 15, -1), be_const_var(6) },
{ be_nested_key("widget_cb", -1531384241, 9, -1), be_const_closure(widget_cb_closure) },
{ be_nested_key("cb_do_nothing", 1488730702, 13, 3), be_const_closure(_anonymous__closure) },
{ be_nested_key("event_cb", -1166269279, 8, -1), be_const_var(2) },
{ be_nested_key("create_custom_widget", 1140594778, 20, -1), be_const_closure(create_custom_widget_closure) },
{ be_nested_key("widget_ctor_impl", 194252479, 16, -1), be_const_closure(widget_ctor_impl_closure) },
{ be_const_key(widget_ctor_cb, 9), 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(lvgl_event_dispatch, 16), be_const_closure(LVGL_glob_lvgl_event_dispatch_closure) },
{ be_const_key(widget_dtor_impl, -1), be_const_closure(LVGL_glob_widget_dtor_impl_closure) },
{ be_const_key(null_cb, -1), be_const_var(3) },
{ be_const_key(register_obj, 8), be_const_closure(LVGL_glob_register_obj_closure) },
{ be_const_key(gen_cb, -1), be_const_closure(LVGL_glob_gen_cb_closure) },
{ be_const_key(widget_struct_default, -1), be_const_var(7) },
{ be_const_key(deregister_obj, 12), be_const_closure(LVGL_glob_deregister_obj_closure) },
{ 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(cb_do_nothing, 3), be_const_closure(LVGL_glob__anonymous__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_nested_const_str("LVGL_glob", 315437079, 9))
be_str_literal("LVGL_glob")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: set_percentage
********************************************************************/
be_local_closure(set_percentage, /* name */
be_local_closure(lv_signal_arcs_set_percentage, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -21,12 +21,12 @@ be_local_closure(set_percentage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
/* K0 */ be_nested_str(percentage),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
/* K2 */ be_nested_str(invalidate),
}),
(be_nested_const_str("set_percentage", -1342944572, 14)),
((bstring*) &be_const_str_input),
&be_const_str_set_percentage,
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x540E0018, // 0001 LDINT R3 25
@ -55,7 +55,7 @@ be_local_closure(set_percentage, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_signal_arcs_init, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@ -66,19 +66,19 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("_lvgl", -1605747813, 5),
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -113,7 +113,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: widget_event
********************************************************************/
be_local_closure(widget_event, /* name */
be_local_closure(lv_signal_arcs_widget_event, /* name */
be_nested_proto(
28, /* nstack */
3, /* argc */
@ -134,8 +134,8 @@ be_local_closure(widget_event, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_int(1),
}),
(be_nested_const_str("atleast1", 1956331672, 8)),
((bstring*) &be_const_str_input),
&be_const_str_atleast1,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x28040100, // 0000 GE R1 R0 K0
0x78060001, // 0001 JMPF R1 #0004
@ -148,44 +148,44 @@ be_local_closure(widget_event, /* name */
}),
1, /* has constants */
( &(const bvalue[35]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
/* K3 */ be_nested_string("code", -114201356, 4),
/* K4 */ be_nested_string("math", -293037681, 4),
/* K5 */ be_nested_string("get_height", -723211773, 10),
/* K6 */ be_nested_string("get_width", -1001549996, 9),
/* 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_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K10 */ be_nested_string("area", -1693507260, 4),
/* K11 */ be_nested_string("param", 1309554226, 5),
/* K12 */ be_nested_string("get_coords", 1044089006, 10),
/* K13 */ be_nested_string("x1", 274927234, 2),
/* K14 */ be_nested_string("y1", -1939865569, 2),
/* K15 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K16 */ be_nested_string("line_dsc", -200476318, 8),
/* K17 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K18 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K19 */ be_nested_string("round_start", -1345482912, 11),
/* 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_string("round_end", 985288225, 9),
/* K22 */ be_nested_string("width", -1786286561, 5),
/* K23 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K24 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K25 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K26 */ be_nested_string("deg", -967213025, 3),
/* K27 */ be_nested_string("acos", 1006755615, 4),
/* K28 */ be_nested_string("p1", -1605446022, 2),
/* K29 */ be_nested_string("x", -49524601, 1),
/* K30 */ be_nested_string("y", -66302220, 1),
/* K31 */ be_nested_string("color", 1031692888, 5),
/* K32 */ be_nested_string("percentage", -1756136011, 10),
/* K33 */ be_nested_string("draw_arc", 1828251676, 8),
/* 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_nested_const_str("widget_event", 1951408186, 12)),
((bstring*) &be_const_str_input),
&be_const_str_widget_event,
&be_const_str_solidified,
( &(const binstruction[182]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -378,7 +378,7 @@ be_local_closure(widget_event, /* name */
/********************************************************************
** Solidified function: get_percentage
********************************************************************/
be_local_closure(get_percentage, /* name */
be_local_closure(lv_signal_arcs_get_percentage, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@ -389,10 +389,10 @@ be_local_closure(get_percentage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
/* K0 */ be_nested_str(percentage),
}),
(be_nested_const_str("get_percentage", -1414483304, 14)),
((bstring*) &be_const_str_input),
&be_const_str_get_percentage,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
@ -411,17 +411,17 @@ be_local_class(lv_signal_arcs,
&be_class_lv_obj,
be_nested_map(9,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("percentage", -1756136011, 10, 4), be_const_var(0) },
{ be_nested_key("p1", -1605446022, 2, 3), be_const_var(1) },
{ be_nested_key("p2", -1622223641, 2, -1), be_const_var(2) },
{ be_nested_key("area", -1693507260, 4, -1), be_const_var(3) },
{ be_nested_key("line_dsc", -200476318, 8, -1), be_const_var(4) },
{ be_nested_key("set_percentage", -1342944572, 14, -1), be_const_closure(set_percentage_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("widget_event", 1951408186, 12, -1), be_const_closure(widget_event_closure) },
{ be_nested_key("get_percentage", -1414483304, 14, 5), be_const_closure(get_percentage_closure) },
{ 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_nested_const_str("lv_signal_arcs", -1455810308, 14))
be_str_literal("lv_signal_arcs")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: set_percentage
********************************************************************/
be_local_closure(set_percentage, /* name */
be_local_closure(lv_signal_bars_set_percentage, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -21,12 +21,12 @@ be_local_closure(set_percentage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
/* K0 */ be_nested_str(percentage),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
/* K2 */ be_nested_str(invalidate),
}),
(be_nested_const_str("set_percentage", -1342944572, 14)),
((bstring*) &be_const_str_input),
&be_const_str_set_percentage,
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x540E0013, // 0001 LDINT R3 20
@ -55,7 +55,7 @@ be_local_closure(set_percentage, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_signal_bars_init, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@ -66,19 +66,19 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_string("_lvgl", -1605747813, 5),
/* K1 */ be_nested_string("create_custom_widget", 1140594778, 20),
/* K2 */ be_nested_string("percentage", -1756136011, 10),
/* K3 */ be_nested_string("p1", -1605446022, 2),
/* K4 */ be_nested_string("lv", 1529997255, 2),
/* K5 */ be_nested_string("point", 414084241, 5),
/* K6 */ be_nested_string("p2", -1622223641, 2),
/* K7 */ be_nested_string("area", -1693507260, 4),
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[24]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -113,7 +113,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: widget_event
********************************************************************/
be_local_closure(widget_event, /* name */
be_local_closure(lv_signal_bars_widget_event, /* name */
be_nested_proto(
23, /* nstack */
3, /* argc */
@ -134,8 +134,8 @@ be_local_closure(widget_event, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_int(1),
}),
(be_nested_const_str("atleast1", 1956331672, 8)),
((bstring*) &be_const_str_input),
&be_const_str_atleast1,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x28040100, // 0000 GE R1 R0 K0
0x78060001, // 0001 JMPF R1 #0004
@ -148,46 +148,46 @@ be_local_closure(widget_event, /* name */
}),
1, /* has constants */
( &(const bvalue[37]) { /* constants */
/* K0 */ be_nested_string("lv", 1529997255, 2),
/* K1 */ be_nested_string("obj_event_base", 1624064363, 14),
/* K2 */ be_nested_string("RES_OK", 1233817284, 6),
/* K3 */ be_nested_string("code", -114201356, 4),
/* K4 */ be_nested_string("get_height", -723211773, 10),
/* K5 */ be_nested_string("get_width", -1001549996, 9),
/* 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_string("EVENT_DRAW_MAIN", 1955620614, 15),
/* K9 */ be_nested_string("area", -1693507260, 4),
/* K10 */ be_nested_string("param", 1309554226, 5),
/* K11 */ be_nested_string("get_coords", 1044089006, 10),
/* K12 */ be_nested_string("x1", 274927234, 2),
/* K13 */ be_nested_string("y1", -1939865569, 2),
/* K14 */ be_nested_string("draw_line_dsc_init", -428273650, 18),
/* K15 */ be_nested_string("line_dsc", -200476318, 8),
/* K16 */ be_nested_string("init_draw_line_dsc", -1787031256, 18),
/* K17 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K18 */ be_nested_string("round_start", -1345482912, 11),
/* 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_string("round_end", 985288225, 9),
/* K21 */ be_nested_string("width", -1786286561, 5),
/* K22 */ be_nested_string("get_style_line_color", 805371932, 20),
/* K23 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K24 */ be_nested_string("get_style_bg_color", 964794381, 18),
/* K25 */ be_nested_string("event_send", 598925582, 10),
/* K26 */ be_nested_string("EVENT_DRAW_PART_BEGIN", -903102272, 21),
/* 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_string("color", 1031692888, 5),
/* K29 */ be_nested_string("percentage", -1756136011, 10),
/* K30 */ be_nested_string("p1", -1605446022, 2),
/* K31 */ be_nested_string("y", -66302220, 1),
/* K32 */ be_nested_string("x", -49524601, 1),
/* K33 */ be_nested_string("p2", -1622223641, 2),
/* K34 */ be_nested_string("draw_line", 1634465686, 9),
/* K35 */ be_nested_string("stop_iteration", -121173395, 14),
/* K36 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
/* 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_nested_const_str("widget_event", 1951408186, 12)),
((bstring*) &be_const_str_input),
&be_const_str_widget_event,
&be_const_str_solidified,
( &(const binstruction[138]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -336,7 +336,7 @@ be_local_closure(widget_event, /* name */
/********************************************************************
** Solidified function: get_percentage
********************************************************************/
be_local_closure(get_percentage, /* name */
be_local_closure(lv_signal_bars_get_percentage, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@ -347,10 +347,10 @@ be_local_closure(get_percentage, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_string("percentage", -1756136011, 10),
/* K0 */ be_nested_str(percentage),
}),
(be_nested_const_str("get_percentage", -1414483304, 14)),
((bstring*) &be_const_str_input),
&be_const_str_get_percentage,
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x80040200, // 0001 RET 1 R1
@ -369,17 +369,17 @@ be_local_class(lv_signal_bars,
&be_class_lv_obj,
be_nested_map(9,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("percentage", -1756136011, 10, 4), be_const_var(0) },
{ be_nested_key("p1", -1605446022, 2, 3), be_const_var(1) },
{ be_nested_key("p2", -1622223641, 2, -1), be_const_var(2) },
{ be_nested_key("area", -1693507260, 4, -1), be_const_var(3) },
{ be_nested_key("line_dsc", -200476318, 8, -1), be_const_var(4) },
{ be_nested_key("set_percentage", -1342944572, 14, -1), be_const_closure(set_percentage_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("widget_event", 1951408186, 12, -1), be_const_closure(widget_event_closure) },
{ be_nested_key("get_percentage", -1414483304, 14, 5), be_const_closure(get_percentage_closure) },
{ 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_nested_const_str("lv_signal_bars", -780994737, 14))
be_str_literal("lv_signal_bars")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_wifi_arcs_icon_init, /* name */
be_nested_proto(
10, /* nstack */
2, /* argc */
@ -21,27 +21,27 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K7 */ be_nested_string("set_style_bg_color", 1689513089, 18),
/* K8 */ be_nested_string("COLOR_BLACK", 264427940, 11),
/* K9 */ be_nested_string("get_height", -723211773, 10),
/* K10 */ be_nested_string("get_style_pad_right", -1144679830, 19),
/* K11 */ be_nested_string("set_height", 1080207399, 10),
/* 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_string("set_width", 484671920, 9),
/* K14 */ be_nested_string("set_x", 1849400772, 5),
/* K15 */ be_nested_string("get_width", -1001549996, 9),
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[67]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -125,9 +125,9 @@ be_local_class(lv_wifi_arcs_icon,
&be_class_lv_wifi_arcs,
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_const_key(init, -1), be_const_closure(lv_wifi_arcs_icon_init_closure) },
})),
(be_nested_const_str("lv_wifi_arcs_icon", 1507982909, 17))
be_str_literal("lv_wifi_arcs_icon")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: every_second
********************************************************************/
be_local_closure(every_second, /* name */
be_local_closure(lv_wifi_arcs_every_second, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@ -21,16 +21,16 @@ be_local_closure(every_second, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("wifi", 120087624, 4),
/* K2 */ be_nested_string("find", -1108310694, 4),
/* K3 */ be_nested_string("quality", -1697296346, 7),
/* K4 */ be_nested_string("ip", 1261996636, 2),
/* K5 */ be_nested_string("set_percentage", -1342944572, 14),
/* 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_nested_const_str("every_second", 2075451465, 12)),
((bstring*) &be_const_str_input),
&be_const_str_every_second,
&be_const_str_solidified,
( &(const binstruction[23]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -64,7 +64,7 @@ be_local_closure(every_second, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_wifi_arcs_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -75,14 +75,14 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("add_driver", 1654458371, 10),
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -107,7 +107,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: del
********************************************************************/
be_local_closure(del, /* name */
be_local_closure(lv_wifi_arcs_del, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -118,12 +118,12 @@ be_local_closure(del, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("del", -816214454, 3),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
/* K0 */ be_nested_str(del),
/* K1 */ be_nested_str(tasmota),
/* K2 */ be_nested_str(remove_driver),
}),
(be_nested_const_str("del", -816214454, 3)),
((bstring*) &be_const_str_input),
&be_const_str_del,
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
@ -150,11 +150,11 @@ be_local_class(lv_wifi_arcs,
&be_class_lv_signal_arcs,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("every_second", 2075451465, 12, 1), be_const_closure(every_second_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("del", -816214454, 3, -1), be_const_closure(del_closure) },
{ 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_nested_const_str("lv_wifi_arcs", 2082091963, 12))
be_str_literal("lv_wifi_arcs")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_wifi_bars_icon_init, /* name */
be_nested_proto(
9, /* nstack */
2, /* argc */
@ -21,26 +21,26 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("set_style_line_color", -629728320, 20),
/* K2 */ be_nested_string("lv", 1529997255, 2),
/* K3 */ be_nested_string("color", 1031692888, 5),
/* K4 */ be_nested_string("COLOR_WHITE", -1758096026, 11),
/* K5 */ be_nested_string("PART_MAIN", -1821475788, 9),
/* K6 */ be_nested_string("STATE_DEFAULT", 712406428, 13),
/* K7 */ be_nested_string("set_style_bg_color", 1689513089, 18),
/* K8 */ be_nested_string("COLOR_BLACK", 264427940, 11),
/* K9 */ be_nested_string("get_height", -723211773, 10),
/* K10 */ be_nested_string("get_style_pad_right", -1144679830, 19),
/* K11 */ be_nested_string("set_height", 1080207399, 10),
/* K12 */ be_nested_string("set_width", 484671920, 9),
/* K13 */ be_nested_string("set_x", 1849400772, 5),
/* K14 */ be_nested_string("get_width", -1001549996, 9),
/* K15 */ be_nested_string("set_style_pad_right", -980898242, 19),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[64]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -121,9 +121,9 @@ be_local_class(lv_wifi_bars_icon,
&be_class_lv_wifi_bars,
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_const_key(init, -1), be_const_closure(lv_wifi_bars_icon_init_closure) },
})),
(be_nested_const_str("lv_wifi_bars_icon", -1489151756, 17))
be_str_literal("lv_wifi_bars_icon")
);
/*******************************************************************/

View File

@ -10,7 +10,7 @@
/********************************************************************
** Solidified function: every_second
********************************************************************/
be_local_closure(every_second, /* name */
be_local_closure(lv_wifi_bars_every_second, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@ -21,16 +21,16 @@ be_local_closure(every_second, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_string("tasmota", 424643812, 7),
/* K1 */ be_nested_string("wifi", 120087624, 4),
/* K2 */ be_nested_string("find", -1108310694, 4),
/* K3 */ be_nested_string("quality", -1697296346, 7),
/* K4 */ be_nested_string("ip", 1261996636, 2),
/* K5 */ be_nested_string("set_percentage", -1342944572, 14),
/* 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_nested_const_str("every_second", 2075451465, 12)),
((bstring*) &be_const_str_input),
&be_const_str_every_second,
&be_const_str_solidified,
( &(const binstruction[23]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -64,7 +64,7 @@ be_local_closure(every_second, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(lv_wifi_bars_init, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@ -75,14 +75,14 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("init", 380752755, 4),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("add_driver", 1654458371, 10),
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
/* 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),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
@ -107,7 +107,7 @@ be_local_closure(init, /* name */
/********************************************************************
** Solidified function: del
********************************************************************/
be_local_closure(del, /* name */
be_local_closure(lv_wifi_bars_del, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@ -118,12 +118,12 @@ be_local_closure(del, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("del", -816214454, 3),
/* K1 */ be_nested_string("tasmota", 424643812, 7),
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
/* K0 */ be_nested_str(del),
/* K1 */ be_nested_str(tasmota),
/* K2 */ be_nested_str(remove_driver),
}),
(be_nested_const_str("del", -816214454, 3)),
((bstring*) &be_const_str_input),
&be_const_str_del,
&be_const_str_solidified,
( &(const binstruction[10]) { /* code */
0x60040003, // 0000 GETGBL R1 G3
0x5C080000, // 0001 MOVE R2 R0
@ -150,11 +150,11 @@ be_local_class(lv_wifi_bars,
&be_class_lv_signal_bars,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("every_second", 2075451465, 12, 1), be_const_closure(every_second_closure) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ be_nested_key("del", -816214454, 3, -1), be_const_closure(del_closure) },
{ 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_nested_const_str("lv_wifi_bars", 2109539196, 12))
be_str_literal("lv_wifi_bars")
);
/*******************************************************************/

View File

@ -131,10 +131,11 @@ 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_driver_i2c_lib(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);
@ -181,7 +182,7 @@ BERRY_API void be_load_custom_libs(bvm *vm)
#endif
#ifdef USE_I2C
be_load_wirelib(vm);
be_load_driver_i2c_lib(vm);
be_load_I2C_Driver_class(vm);
be_load_AXP192_class(vm);
#endif // USE_I2C
#ifdef USE_ENERGY_SENSOR
@ -189,6 +190,7 @@ BERRY_API void be_load_custom_libs(bvm *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);

View File

@ -21,19 +21,19 @@ be_local_closure(Persist_json_fdump_map, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_str_literal("json"),
/* K1 */ be_nested_str_literal("write"),
/* K2 */ be_nested_str_literal("{"),
/* K3 */ be_nested_str_literal("keys"),
/* K4 */ be_nested_str_literal("dump"),
/* K5 */ be_nested_str_literal(":"),
/* K6 */ be_nested_str_literal("json_fdump_any"),
/* K7 */ be_nested_str_literal(","),
/* K8 */ be_nested_str_literal("stop_iteration"),
/* K9 */ be_nested_str_literal("}"),
/* 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_nested_const_str("json_fdump_map", -203012643, 14)),
((bstring*) &be_const_str_input),
&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
@ -96,11 +96,11 @@ be_local_closure(Persist_setmember, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("_dirty"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(_dirty),
}),
(be_nested_const_str("setmember", 1432909441, 9)),
((bstring*) &be_const_str_input),
&be_const_str_setmember,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x980C0202, // 0001 SETIDX R3 R1 R2
@ -127,11 +127,11 @@ be_local_closure(Persist_zero, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("_dirty"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(_dirty),
}),
(be_nested_const_str("zero", -1955600541, 4)),
((bstring*) &be_const_str_input),
&be_const_str_zero,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x60040013, // 0000 GETGBL R1 G19
0x7C040000, // 0001 CALL R1 0
@ -159,11 +159,11 @@ be_local_closure(Persist_member, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("find"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(find),
}),
(be_nested_const_str("member", 719708611, 6)),
((bstring*) &be_const_str_input),
&be_const_str_member,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -190,14 +190,14 @@ be_local_closure(Persist_json_fdump, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_literal("json"),
/* K1 */ be_nested_str_literal("_p"),
/* K2 */ be_nested_str_literal("json_fdump_map"),
/* K3 */ be_nested_str_literal("internal_error"),
/* K4 */ be_nested_str_literal("persist._p is not a map"),
/* 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_nested_const_str("json_fdump", 1694216580, 10)),
((bstring*) &be_const_str_input),
&be_const_str_json_fdump,
&be_const_str_solidified,
( &(const binstruction[13]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x600C000F, // 0001 GETGBL R3 G15
@ -232,12 +232,12 @@ be_local_closure(Persist_remove, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("remove"),
/* K2 */ be_nested_str_literal("_dirty"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(remove),
/* K2 */ be_nested_str(_dirty),
}),
(be_nested_const_str("remove", -611183107, 6)),
((bstring*) &be_const_str_input),
&be_const_str_remove,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -266,14 +266,14 @@ be_local_closure(Persist_json_fdump_any, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_literal("json"),
/* K1 */ be_nested_str_literal("json_fdump_map"),
/* K2 */ be_nested_str_literal("json_fdump_list"),
/* K3 */ be_nested_str_literal("write"),
/* K4 */ be_nested_str_literal("dump"),
/* 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_nested_const_str("json_fdump_any", -946337911, 14)),
((bstring*) &be_const_str_input),
&be_const_str_json_fdump_any,
&be_const_str_solidified,
( &(const binstruction[27]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0x6010000F, // 0001 GETGBL R4 G15
@ -322,16 +322,16 @@ be_local_closure(Persist_save, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_literal("_filename"),
/* K1 */ be_nested_str_literal("w"),
/* K2 */ be_nested_str_literal("json_fdump"),
/* K3 */ be_nested_str_literal("close"),
/* K4 */ be_nested_str_literal("write"),
/* K5 */ be_nested_str_literal("{}"),
/* K6 */ be_nested_str_literal("_dirty"),
/* 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_nested_const_str("save", -855671224, 4)),
((bstring*) &be_const_str_input),
&be_const_str_save,
&be_const_str_solidified,
( &(const binstruction[37]) { /* code */
0x4C040000, // 0000 LDNIL R1
0xA802000B, // 0001 EXBLK 0 #000E
@ -390,21 +390,21 @@ be_local_closure(Persist_load, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_literal("json"),
/* K1 */ be_nested_str_literal("path"),
/* K2 */ be_nested_str_literal("exists"),
/* K3 */ be_nested_str_literal("_filename"),
/* K4 */ be_nested_str_literal("r"),
/* K5 */ be_nested_str_literal("load"),
/* K6 */ be_nested_str_literal("read"),
/* K7 */ be_nested_str_literal("close"),
/* K8 */ be_nested_str_literal("_p"),
/* K9 */ be_nested_str_literal("BRY: failed to load _persist.json"),
/* K10 */ be_nested_str_literal("_dirty"),
/* K11 */ be_nested_str_literal("save"),
/* 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_nested_const_str("load", -435725847, 4)),
((bstring*) &be_const_str_input),
&be_const_str_load,
&be_const_str_solidified,
( &(const binstruction[49]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -475,11 +475,11 @@ be_local_closure(Persist_find, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("find"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(find),
}),
(be_nested_const_str("find", -1108310694, 4)),
((bstring*) &be_const_str_input),
&be_const_str_find,
&be_const_str_solidified,
( &(const binstruction[ 6]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
@ -507,15 +507,15 @@ be_local_closure(Persist_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_literal("_filename"),
/* K1 */ be_nested_str_literal("_persist.json"),
/* K2 */ be_nested_str_literal("_p"),
/* K3 */ be_nested_str_literal("copy"),
/* K4 */ be_nested_str_literal("load"),
/* K5 */ be_nested_str_literal("_dirty"),
/* 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_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[20]) { /* code */
0x90020101, // 0000 SETMBR R0 K0 K1
0x6008000F, // 0001 GETGBL R2 G15
@ -557,17 +557,17 @@ be_local_closure(Persist_json_fdump_list, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_literal("json"),
/* K1 */ be_nested_str_literal("write"),
/* K2 */ be_nested_str_literal("["),
/* K0 */ be_nested_str(json),
/* K1 */ be_nested_str(write),
/* K2 */ be_nested_str(_X5B),
/* K3 */ be_const_int(0),
/* K4 */ be_nested_str_literal(","),
/* K5 */ be_nested_str_literal("json_fdump_any"),
/* K4 */ be_nested_str(_X2C),
/* K5 */ be_nested_str(json_fdump_any),
/* K6 */ be_const_int(1),
/* K7 */ be_nested_str_literal("]"),
/* K7 */ be_nested_str(_X5D),
}),
(be_nested_const_str("json_fdump_list", -391087443, 15)),
((bstring*) &be_const_str_input),
&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
@ -614,11 +614,11 @@ be_local_closure(Persist_has, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("_p"),
/* K1 */ be_nested_str_literal("has"),
/* K0 */ be_nested_str(_p),
/* K1 */ be_nested_str(has),
}),
(be_nested_const_str("has", -306245661, 3)),
((bstring*) &be_const_str_input),
&be_const_str_has,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
@ -639,22 +639,22 @@ be_local_class(Persist,
NULL,
be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("has", -306245661, 3, 6), be_const_closure(Persist_has_closure) },
{ be_nested_key("setmember", 1432909441, 9, -1), be_const_closure(Persist_setmember_closure) },
{ be_nested_key("remove", -611183107, 6, -1), be_const_closure(Persist_remove_closure) },
{ be_nested_key("zero", -1955600541, 4, 0), be_const_closure(Persist_zero_closure) },
{ be_nested_key("json_fdump", 1694216580, 10, -1), be_const_closure(Persist_json_fdump_closure) },
{ be_nested_key("json_fdump_list", -391087443, 15, 2), be_const_closure(Persist_json_fdump_list_closure) },
{ be_nested_key("init", 380752755, 4, 15), be_const_closure(Persist_init_closure) },
{ be_nested_key("find", -1108310694, 4, -1), be_const_closure(Persist_find_closure) },
{ be_nested_key("save", -855671224, 4, -1), be_const_closure(Persist_save_closure) },
{ be_nested_key("json_fdump_any", -946337911, 14, 12), be_const_closure(Persist_json_fdump_any_closure) },
{ be_nested_key("_p", 1594591802, 2, 7), be_const_var(1) },
{ be_nested_key("_filename", 1430813195, 9, -1), be_const_var(0) },
{ be_nested_key("load", -435725847, 4, -1), be_const_closure(Persist_load_closure) },
{ be_nested_key("json_fdump_map", -203012643, 14, 5), be_const_closure(Persist_json_fdump_map_closure) },
{ be_nested_key("_dirty", 283846766, 6, -1), be_const_var(2) },
{ be_nested_key("member", 719708611, 6, -1), be_const_closure(Persist_member_closure) },
{ 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")
);
@ -675,8 +675,8 @@ be_local_closure(persist__anonymous_, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_class(be_class_Persist),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
((bstring*) &be_const_str_input),
&be_const_str__anonymous_,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0xB4000000, // 0001 CLASS K0
@ -696,7 +696,7 @@ be_local_module(persist,
"persist",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(persist__anonymous__closure) },
{ be_const_key(init, -1), be_const_closure(persist__anonymous__closure) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(persist);

View File

@ -8,7 +8,7 @@
/********************************************************************
** Solidified function: _anonymous_
********************************************************************/
be_local_closure(_anonymous_, /* name */
be_local_closure(python_compat__anonymous_, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@ -19,25 +19,25 @@ be_local_closure(_anonymous_, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_string("global", 503252654, 6),
/* K1 */ be_nested_string("True", -841064955, 4),
/* K2 */ be_nested_string("False", -1753917960, 5),
/* K3 */ be_nested_string("None", 810547195, 4),
/* K4 */ be_nested_string("b", -418632219, 1),
/* 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_nested_const_str("_anonymous_", 1957281476, 11)),
(be_nested_const_str("python_compat.be", -225667571, 16)),
&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
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
})
)
);
@ -51,7 +51,7 @@ be_local_module(python_compat,
"python_compat",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(_anonymous__closure) },
{ be_const_key(init, -1), be_const_closure(python_compat__anonymous__closure) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(python_compat);

View File

@ -20,11 +20,11 @@ be_local_closure(Tapp_init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_literal("tasmota"),
/* K1 */ be_nested_str_literal("add_driver"),
/* K0 */ be_nested_str(tasmota),
/* K1 */ be_nested_str(add_driver),
}),
(be_nested_const_str("init", 380752755, 4)),
((bstring*) &be_const_str_input),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x8C040301, // 0001 GETMET R1 R1 K1
@ -51,24 +51,24 @@ be_local_closure(Tapp_autoexec, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_literal("path"),
/* K1 */ be_nested_str_literal("string"),
/* K2 */ be_nested_str_literal("listdir"),
/* K3 */ be_nested_str_literal("/"),
/* K4 */ be_nested_str_literal("find"),
/* K5 */ be_nested_str_literal(".tapp"),
/* 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_literal("tasmota"),
/* K8 */ be_nested_str_literal("log"),
/* K9 */ be_nested_str_literal("format"),
/* K10 */ be_nested_str_literal("TAP: found Tasmota App '%s'"),
/* 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_literal("load"),
/* K13 */ be_nested_str_literal("#autoexec.be"),
/* K14 */ be_nested_str_literal("stop_iteration"),
/* K12 */ be_nested_str(load),
/* K13 */ be_nested_str(_X23autoexec_X2Ebe),
/* K14 */ be_nested_str(stop_iteration),
}),
(be_nested_const_str("autoexec", -618105405, 8)),
((bstring*) &be_const_str_input),
&be_const_str_autoexec,
&be_const_str_solidified,
( &(const binstruction[34]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
@ -118,8 +118,8 @@ be_local_class(Tapp,
NULL,
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("autoexec", -618105405, 8, -1), be_const_closure(Tapp_autoexec_closure) },
{ be_nested_key("init", 380752755, 4, 0), be_const_closure(Tapp_init_closure) },
{ 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")
);
@ -140,8 +140,8 @@ be_local_closure(tapp__anonymous_, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_class(be_class_Tapp),
}),
(be_nested_const_str("_anonymous_", 1957281476, 11)),
((bstring*) &be_const_str_input),
&be_const_str__anonymous_,
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0xB4000000, // 0001 CLASS K0
@ -161,7 +161,7 @@ be_local_module(tapp,
"tapp",
be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(tapp__anonymous__closure) },
{ be_const_key(init, -1), be_const_closure(tapp__anonymous__closure) },
}))
);
BE_EXPORT_VARIABLE be_define_const_native_module(tapp);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,48 @@
/********************************************************************
* 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

View File

@ -8,7 +8,7 @@
/********************************************************************
** Solidified function: tostring
********************************************************************/
be_local_closure(tostring, /* name */
be_local_closure(Timer_tostring, /* name */
be_nested_proto(
10, /* nstack */
1, /* argc */
@ -19,35 +19,35 @@ be_local_closure(tostring, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("string", 398550328, 6),
/* K1 */ be_nested_string("format", -1180859054, 6),
/* K2 */ be_nested_string("<instance: %s(%s, %s, %s)", 257363333, 25),
/* K3 */ be_nested_string("due", -399437003, 3),
/* K4 */ be_nested_string("f", -485742695, 1),
/* K5 */ be_nested_string("id", 926444256, 2),
/* 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_nested_const_str("tostring", -1995258651, 8)),
((bstring*) &be_const_str_input),
&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
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
})
)
);
@ -57,7 +57,7 @@ be_local_closure(tostring, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(init, /* name */
be_local_closure(Timer_init, /* name */
be_nested_proto(
4, /* nstack */
4, /* argc */
@ -68,17 +68,17 @@ be_local_closure(init, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("due", -399437003, 3),
/* K1 */ be_nested_string("f", -485742695, 1),
/* K2 */ be_nested_string("id", 926444256, 2),
/* K0 */ be_nested_str(due),
/* K1 */ be_nested_str(f),
/* K2 */ be_nested_str(id),
}),
((bstring*) &be_const_str_init),
((bstring*) &be_const_str_input),
&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
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2
0x90020403, // 0002 SETMBR R0 K2 R3
0x80000000, // 0003 RET 0
})
)
);
@ -93,13 +93,13 @@ be_local_class(Timer,
NULL,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("tostring", -1995258651, 8, 4), be_const_closure(tostring_closure) },
{ be_nested_key("id", 926444256, 2, 2), be_const_var(2) },
{ be_nested_key("f", -485742695, 1, -1), be_const_var(1) },
{ be_nested_key("due", -399437003, 3, -1), be_const_var(0) },
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(init_closure) },
{ 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_nested_const_str("Timer", -346839614, 5))
be_str_literal("Timer")
);
/*******************************************************************/

View File

@ -9,8 +9,8 @@
#ifdef USE_UNISHOX_COMPRESSION
extern int be_unishox_compress(bvm *vm);
extern int be_unishox_decompress(bvm *vm);
extern int be_ntv_unishox_decompress(bvm *vm);
extern int be_ntv_unishox_compress(bvm *vm);
/********************************************************************
** Solidified module: unishox
@ -19,8 +19,8 @@ be_local_module(unishox,
"unishox",
be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_nested_key("decompress", -1407935646, 10, -1), be_const_func(be_unishox_decompress) },
{ be_nested_key("compress", -1476883059, 8, -1), be_const_func(be_unishox_compress) },
{ 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);

View File

@ -39,12 +39,12 @@ be_local_closure(write_bytes, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_string("_begin_transmission", -1515506120, 19),
/* K1 */ be_nested_string("_write", -2079504471, 6),
/* K2 */ be_nested_string("_end_transmission", -1057486896, 17),
/* K0 */ be_nested_str(_begin_transmission),
/* K1 */ be_nested_str(_write),
/* K2 */ be_nested_str(_end_transmission),
}),
(be_nested_const_str("write_bytes", 1227543792, 11)),
((bstring*) &be_const_str_input),
&be_const_str_write_bytes,
&be_const_str_solidified,
( &(const binstruction[12]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x5C180200, // 0001 MOVE R6 R1
@ -78,15 +78,15 @@ be_local_closure(read_bytes, /* name */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_string("_begin_transmission", -1515506120, 19),
/* K1 */ be_nested_string("_write", -2079504471, 6),
/* K2 */ be_nested_string("_end_transmission", -1057486896, 17),
/* K3 */ be_nested_string("_request_from", -329818692, 13),
/* K4 */ be_nested_string("_available", 1306196581, 10),
/* K5 */ be_nested_string("_read", 346717030, 5),
/* 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_nested_const_str("read_bytes", -718234123, 10)),
((bstring*) &be_const_str_input),
&be_const_str_read_bytes,
&be_const_str_solidified,
( &(const binstruction[24]) { /* code */
0x8C100100, // 0000 GETMET R4 R0 K0
0x5C180200, // 0001 MOVE R6 R1

View File

@ -14,7 +14,7 @@
- i2c_index: (optional) check is the device is not disabled
-------------------------------------------------------------#
class I2C_Driver : Driver
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 -#

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_I2C_Driver_map) {
{ be_const_key(read32, -1), be_const_closure(read32_closure) },
{ be_const_key(write8, 6), be_const_closure(write8_closure) },
{ be_const_key(name, -1), be_const_var(0) },
{ be_const_key(addr, 10), be_const_var(1) },
{ be_const_key(read12, -1), be_const_closure(read12_closure) },
{ be_const_key(write_bit, 8), be_const_closure(write_bit_closure) },
{ be_const_key(read13, -1), be_const_closure(read13_closure) },
{ be_const_key(read24, -1), be_const_closure(read24_closure) },
{ be_const_key(wire, -1), be_const_var(2) },
{ be_const_key(init, -1), be_const_closure(init_closure) },
{ be_const_key(read8, -1), be_const_closure(read8_closure) },
};
static be_define_const_map(
be_class_I2C_Driver_map,
11
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_I2C_Driver,
3,
(bclass *)&be_class_Driver,
I2C_Driver
);

View File

@ -2,10 +2,10 @@
static be_define_const_map_slots(be_class_aes_gcm_map) {
{ be_const_key(encrypt, 4), be_const_func(m_aes_gcm_encryt) },
{ be_const_key(dot_p2, -1), be_const_var(0) },
{ be_const_key(_X2Ep2, -1), be_const_var(0) },
{ be_const_key(decrypt, -1), be_const_func(m_aes_gcm_decryt) },
{ be_const_key(init, -1), be_const_func(m_aes_gcm_init) },
{ be_const_key(dot_p1, -1), be_const_var(1) },
{ be_const_key(_X2Ep1, -1), be_const_var(1) },
{ be_const_key(tag, -1), be_const_func(m_aes_gcm_tag) },
};

View File

@ -1,7 +1,7 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_audio_file_source_map) {
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
};
static be_define_const_map(

View File

@ -1,7 +1,7 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_audio_generator_map) {
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
};
static be_define_const_map(

View File

@ -1,7 +1,7 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_audio_output_map) {
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
};
static be_define_const_map(

View File

@ -2,29 +2,29 @@
static be_define_const_map_slots(be_class_bytes_map) {
{ be_const_key(setitem, -1), be_const_func(m_setitem) },
{ be_const_key(opt_connect, -1), be_const_func(m_connect) },
{ be_const_key(_X2E_X2E, -1), be_const_func(m_connect) },
{ be_const_key(geti, -1), be_const_func(m_geti) },
{ be_const_key(deinit, -1), be_const_func(m_deinit) },
{ be_const_key(add, 18), be_const_func(m_add) },
{ be_const_key(get, -1), be_const_func(m_getu) },
{ be_const_key(asstring, 9), be_const_func(m_asstring) },
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
{ be_const_key(copy, 25), be_const_func(m_copy) },
{ be_const_key(size, -1), be_const_func(m_size) },
{ be_const_key(getbits, -1), be_const_closure(getbits_closure) },
{ be_const_key(opt_eq, -1), be_const_func(m_equal) },
{ be_const_key(_X3D_X3D, -1), be_const_func(m_equal) },
{ be_const_key(tob64, 3), be_const_func(m_tob64) },
{ be_const_key(init, -1), be_const_func(m_init) },
{ be_const_key(opt_add, -1), be_const_func(m_merge) },
{ be_const_key(_X2B, -1), be_const_func(m_merge) },
{ be_const_key(setbits, -1), be_const_closure(setbits_closure) },
{ be_const_key(_buffer, -1), be_const_func(m_buffer) },
{ be_const_key(tostring, -1), be_const_func(m_tostring) },
{ be_const_key(dot_len, -1), be_const_var(1) },
{ be_const_key(_X2Elen, -1), be_const_var(1) },
{ be_const_key(fromb64, 13), be_const_func(m_fromb64) },
{ be_const_key(dot_size, 6), be_const_var(2) },
{ be_const_key(_X2Esize, 6), be_const_var(2) },
{ be_const_key(resize, -1), be_const_func(m_resize) },
{ be_const_key(seti, -1), be_const_func(m_set) },
{ be_const_key(opt_neq, 5), be_const_func(m_nequal) },
{ be_const_key(_X21_X3D, 5), be_const_func(m_nequal) },
{ be_const_key(item, -1), be_const_func(m_item) },
{ be_const_key(fromstring, -1), be_const_func(m_fromstring) },
{ be_const_key(clear, 24), be_const_func(m_clear) },

View File

@ -1,9 +1,9 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_list_map) {
{ be_const_key(opt_add, -1), be_const_func(m_merge) },
{ be_const_key(_X2B, -1), be_const_func(m_merge) },
{ be_const_key(init, -1), be_const_func(m_init) },
{ be_const_key(opt_connect, 11), be_const_func(m_connect) },
{ be_const_key(_X2E_X2E, 11), be_const_func(m_connect) },
{ be_const_key(tostring, 2), be_const_func(m_tostring) },
{ be_const_key(pop, 6), be_const_func(m_pop) },
{ be_const_key(insert, -1), be_const_func(m_insert) },
@ -13,16 +13,16 @@ static be_define_const_map_slots(be_class_list_map) {
{ be_const_key(push, 1), be_const_func(m_push) },
{ be_const_key(item, 5), be_const_func(m_item) },
{ be_const_key(concat, -1), be_const_func(m_concat) },
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
{ be_const_key(iter, -1), be_const_func(m_iter) },
{ be_const_key(copy, -1), be_const_func(m_copy) },
{ be_const_key(reverse, 13), be_const_func(m_reverse) },
{ be_const_key(keys, -1), be_const_func(m_keys) },
{ be_const_key(resize, 16), be_const_func(m_resize) },
{ be_const_key(setitem, -1), be_const_func(m_setitem) },
{ be_const_key(opt_neq, 7), be_const_func(m_nequal) },
{ be_const_key(_X21_X3D, 7), be_const_func(m_nequal) },
{ be_const_key(clear, -1), be_const_func(m_clear) },
{ be_const_key(opt_eq, -1), be_const_func(m_equal) },
{ be_const_key(_X3D_X3D, -1), be_const_func(m_equal) },
};
static be_define_const_map(

View File

@ -8,7 +8,7 @@ static be_define_const_map_slots(be_class_map_map) {
{ be_const_key(has, -1), be_const_func(m_contains) },
{ be_const_key(init, -1), be_const_func(m_init) },
{ be_const_key(contains, 9), be_const_func(m_contains) },
{ be_const_key(dot_p, 13), be_const_var(0) },
{ be_const_key(_X2Ep, 13), be_const_var(0) },
{ be_const_key(reduce, -1), be_const_func(m_reduce) },
{ be_const_key(size, -1), be_const_func(m_size) },
{ be_const_key(find, -1), be_const_func(m_find) },

View File

@ -2,7 +2,7 @@
static be_define_const_map_slots(be_class_md5_map) {
{ be_const_key(update, -1), be_const_func(m_md5_update) },
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
{ be_const_key(finish, -1), be_const_func(m_md5_finish) },
{ be_const_key(init, 1), be_const_func(m_md5_init) },
};

View File

@ -1,90 +1,91 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_tasmota_map) {
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(resolvecmnd, 42), be_const_func(l_resolveCmnd) },
{ be_const_key(add_driver, -1), be_const_closure(add_driver_closure) },
{ be_const_key(gc, -1), be_const_closure(gc_closure) },
{ be_const_key(find_op, -1), be_const_closure(find_op_closure) },
{ be_const_key(scale_uint, 15), be_const_func(l_scaleuint) },
{ be_const_key(try_rule, -1), be_const_closure(try_rule_closure) },
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
{ be_const_key(web_send, -1), be_const_func(l_webSend) },
{ be_const_key(eth, 21), be_const_func(l_eth) },
{ be_const_key(get_switch, 34), be_const_func(l_getswitch) },
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
{ be_const_key(_drivers, 50), be_const_var(0) },
{ be_const_key(_rules, -1), be_const_var(1) },
{ be_const_key(_ccmd, 6), be_const_var(2) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(gen_cb, 17), be_const_closure(gen_cb_closure) },
{ be_const_key(cmd_res, 20), be_const_var(3) },
{ be_const_key(set_light, 63), be_const_closure(set_light_closure) },
{ be_const_key(millis, -1), be_const_func(l_millis) },
{ be_const_key(global, -1), be_const_var(4) },
{ be_const_key(exec_tele, 67), be_const_closure(exec_tele_closure) },
{ be_const_key(gc, -1), be_const_closure(Tasmota_gc_closure) },
{ be_const_key(read_sensors, 7), be_const_func(l_read_sensors) },
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
{ be_const_key(response_append, 50), be_const_func(l_respAppend) },
{ be_const_key(try_rule, 74), be_const_closure(Tasmota_try_rule_closure) },
{ be_const_key(eth, -1), be_const_func(l_eth) },
{ be_const_key(find_key_i, -1), be_const_closure(Tasmota_find_key_i_closure) },
{ be_const_key(exec_tele, 73), be_const_closure(Tasmota_exec_tele_closure) },
{ be_const_key(remove_driver, 28), be_const_closure(Tasmota_remove_driver_closure) },
{ be_const_key(load, -1), be_const_closure(Tasmota_load_closure) },
{ be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) },
{ be_const_key(cmd_res, -1), be_const_var(0) },
{ be_const_key(time_str, 43), be_const_closure(Tasmota_time_str_closure) },
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
{ be_const_key(yield, 20), be_const_func(l_yield) },
{ be_const_key(set_light, -1), be_const_closure(Tasmota_set_light_closure) },
{ be_const_key(find_op, 32), be_const_closure(Tasmota_find_op_closure) },
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
{ be_const_key(_cb, 57), be_const_var(5) },
{ be_const_key(save, -1), be_const_func(l_save) },
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
{ be_const_key(i2c_enabled, 9), be_const_func(l_i2cenabled) },
{ be_const_key(remove_driver, -1), be_const_closure(remove_driver_closure) },
{ be_const_key(event, -1), be_const_closure(event_closure) },
{ be_const_key(find_key_i, -1), be_const_closure(find_key_i_closure) },
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
{ be_const_key(get_free_heap, 3), be_const_func(l_getFreeHeap) },
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
{ be_const_key(init, -1), be_const_closure(init_closure) },
{ be_const_key(wd, -1), be_const_var(6) },
{ be_const_key(_debug_present, -1), be_const_var(7) },
{ be_const_key(time_str, 45), be_const_closure(time_str_closure) },
{ be_const_key(remove_rule, 71), be_const_closure(remove_rule_closure) },
{ be_const_key(memory, 62), be_const_func(l_memory) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(get_option, 44), be_const_func(l_getoption) },
{ be_const_key(rtc, -1), be_const_func(l_rtc) },
{ be_const_key(load, 72), be_const_closure(load_closure) },
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
{ be_const_key(publish, 43), be_const_func(l_publish) },
{ be_const_key(resp_cmnd_error, 18), be_const_func(l_respCmndError) },
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
{ be_const_key(strftime, 4), be_const_func(l_strftime) },
{ be_const_key(add_rule, 41), be_const_closure(add_rule_closure) },
{ be_const_key(wire2, -1), be_const_var(8) },
{ be_const_key(settings, -1), be_const_var(9) },
{ be_const_key(exec_rules, -1), be_const_closure(exec_rules_closure) },
{ be_const_key(cb_dispatch, -1), be_const_closure(cb_dispatch_closure) },
{ be_const_key(yield, 68), be_const_func(l_yield) },
{ be_const_key(_get_cb, 75), be_const_func(l_get_cb) },
{ be_const_key(wire1, 33), be_const_var(10) },
{ be_const_key(add_rule, -1), be_const_closure(Tasmota_add_rule_closure) },
{ be_const_key(cb_dispatch, -1), be_const_closure(Tasmota_cb_dispatch_closure) },
{ be_const_key(global, -1), be_const_var(1) },
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
{ be_const_key(remove_cmd, 10), be_const_closure(Tasmota_remove_cmd_closure) },
{ be_const_key(millis, 18), be_const_func(l_millis) },
{ be_const_key(publish, 69), be_const_func(l_publish) },
{ be_const_key(_drivers, -1), be_const_var(2) },
{ be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) },
{ be_const_key(resp_cmnd_failed, 16), be_const_func(l_respCmndFailed) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(web_send, -1), be_const_func(l_webSend) },
{ be_const_key(hs2rgb, -1), be_const_closure(Tasmota_hs2rgb_closure) },
{ be_const_key(memory, -1), be_const_func(l_memory) },
{ be_const_key(gen_cb, 0), be_const_closure(Tasmota_gen_cb_closure) },
{ be_const_key(rtc, -1), be_const_func(l_rtc) },
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
{ be_const_key(add_cmd, -1), be_const_closure(Tasmota_add_cmd_closure) },
{ be_const_key(init, -1), be_const_closure(Tasmota_init_closure) },
{ be_const_key(_timers, -1), be_const_var(3) },
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
{ be_const_key(hs2rgb, -1), be_const_closure(hs2rgb_closure) },
{ be_const_key(resp_cmnd_str, 76), be_const_func(l_respCmndStr) },
{ be_const_key(_global_def, -1), be_const_comptr(&be_tasmota_global_struct) },
{ be_const_key(kv, 74), be_const_closure(kv_closure) },
{ be_const_key(delay, -1), be_const_func(l_delay) },
{ be_const_key(remove_cmd, 19), be_const_closure(remove_cmd_closure) },
{ be_const_key(set_timer, -1), be_const_closure(set_timer_closure) },
{ be_const_key(_cmd, 54), be_const_func(l_cmd) },
{ be_const_key(publish_result, -1), be_const_func(l_publish_result) },
{ be_const_key(log, -1), be_const_func(l_logInfo) },
{ be_const_key(wd, -1), be_const_var(4) },
{ be_const_key(exec_cmd, -1), be_const_closure(Tasmota_exec_cmd_closure) },
{ be_const_key(wire_scan, -1), be_const_closure(Tasmota_wire_scan_closure) },
{ be_const_key(_global_def, 61), be_const_comptr(&be_tasmota_global_struct) },
{ be_const_key(resp_cmnd_failed, 11), be_const_func(l_respCmndFailed) },
{ be_const_key(chars_in_string, -1), be_const_closure(Tasmota_chars_in_string_closure) },
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
{ be_const_key(_debug_present, 4), be_const_var(5) },
{ be_const_key(cmd, -1), be_const_closure(Tasmota_cmd_closure) },
{ be_const_key(_cb, -1), be_const_var(6) },
{ be_const_key(remove_rule, -1), be_const_closure(Tasmota_remove_rule_closure) },
{ be_const_key(run_deferred, -1), be_const_closure(Tasmota_run_deferred_closure) },
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
{ be_const_key(add_driver, 3), be_const_closure(Tasmota_add_driver_closure) },
{ be_const_key(kv, 60), be_const_closure(Tasmota_kv_closure) },
{ be_const_key(set_timer, 58), be_const_closure(Tasmota_set_timer_closure) },
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
{ be_const_key(remove_timer, -1), be_const_closure(Tasmota_remove_timer_closure) },
{ be_const_key(settings, 49), be_const_var(7) },
{ be_const_key(arch, -1), be_const_func(l_arch) },
{ be_const_key(remove_timer, 66), be_const_closure(remove_timer_closure) },
{ be_const_key(_timers, -1), be_const_var(11) },
{ be_const_key(read_sensors, -1), be_const_func(l_read_sensors) },
{ be_const_key(exec_cmd, -1), be_const_closure(exec_cmd_closure) },
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
{ be_const_key(_ccmd, 64), be_const_var(8) },
{ be_const_key(wire1, 46), be_const_var(9) },
{ be_const_key(exec_rules, 66), be_const_closure(Tasmota_exec_rules_closure) },
{ be_const_key(strptime, -1), be_const_func(l_strptime) },
{ be_const_key(_cmd, -1), be_const_func(l_cmd) },
{ be_const_key(resp_cmnd_error, -1), be_const_func(l_respCmndError) },
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
{ be_const_key(_rules, -1), be_const_var(10) },
{ be_const_key(publish_result, -1), be_const_func(l_publish_result) },
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
{ be_const_key(get_switch, -1), be_const_func(l_getswitch) },
{ be_const_key(delay, 71), be_const_func(l_delay) },
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(save, 15), be_const_func(l_save) },
{ be_const_key(log, 37), be_const_func(l_logInfo) },
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(get_light, 5), be_const_closure(Tasmota_get_light_closure) },
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
{ be_const_key(wire2, -1), be_const_var(11) },
{ be_const_key(event, 34), be_const_closure(Tasmota_event_closure) },
};
static be_define_const_map(
be_class_tasmota_map,
79
80
);
BE_EXPORT_VARIABLE be_define_const_class(

View File

@ -8,7 +8,7 @@ static be_define_const_map_slots(be_class_tasmota_onewire_map) {
{ be_const_key(deinit, -1), be_const_func(b_onewire_deinit) },
{ be_const_key(reset_search, -1), be_const_func(b_onewire_reset_search) },
{ be_const_key(skip, -1), be_const_func(b_onewire_skip) },
{ be_const_key(dot_p, -1), be_const_var(0) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
{ be_const_key(write, -1), be_const_func(b_onewire_write) },
{ be_const_key(read, -1), be_const_func(b_onewire_read) },
{ be_const_key(select, 11), be_const_func(b_onewire_select) },

View File

@ -26,7 +26,7 @@ static be_define_const_map_slots(be_class_tasmota_serial_map) {
{ be_const_key(SERIAL_8N1, 1), be_const_int(SERIAL_8N1) },
{ be_const_key(SERIAL_7E1, -1), be_const_int(SERIAL_7E1) },
{ be_const_key(SERIAL_8N2, -1), be_const_int(SERIAL_8N2) },
{ be_const_key(dot_p, 8), be_const_var(0) },
{ be_const_key(_X2Ep, 8), be_const_var(0) },
{ be_const_key(SERIAL_8E2, -1), be_const_int(SERIAL_8E2) },
{ be_const_key(SERIAL_7O2, -1), be_const_int(SERIAL_7O2) },
{ be_const_key(SERIAL_7N2, -1), be_const_int(SERIAL_7N2) },

View File

@ -0,0 +1,26 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_tcpclient_map) {
{ be_const_key(write, 8), be_const_func(wc_tcp_write) },
{ be_const_key(close, -1), be_const_func(wc_tcp_close) },
{ be_const_key(connected, 3), be_const_func(wc_tcp_connected) },
{ be_const_key(deinit, -1), be_const_func(wc_tcp_deinit) },
{ be_const_key(_X2Ew, 0), be_const_var(0) },
{ be_const_key(init, -1), be_const_func(wc_tcp_init) },
{ be_const_key(readbytes, -1), be_const_func(wc_tcp_readbytes) },
{ be_const_key(connect, -1), be_const_func(wc_tcp_connect) },
{ be_const_key(available, -1), be_const_func(wc_tcp_available) },
{ be_const_key(read, -1), be_const_func(wc_tcp_read) },
};
static be_define_const_map(
be_class_tcpclient_map,
10
);
BE_EXPORT_VARIABLE be_define_const_class(
be_class_tcpclient,
1,
NULL,
tcpclient
);

View File

@ -3,8 +3,8 @@
static be_define_const_map_slots(be_class_webclient_map) {
{ be_const_key(close, -1), be_const_func(wc_close) },
{ be_const_key(get_string, 5), be_const_func(wc_getstring) },
{ be_const_key(dot_w, 11), be_const_var(0) },
{ be_const_key(dot_p, 13), be_const_var(1) },
{ be_const_key(_X2Ew, 11), be_const_var(0) },
{ be_const_key(_X2Ep, 13), be_const_var(1) },
{ be_const_key(add_header, 10), be_const_func(wc_addheader) },
{ be_const_key(url_encode, -1), be_const_func(wc_urlencode) },
{ be_const_key(POST, -1), be_const_func(wc_POST) },

View File

@ -1,21 +0,0 @@
#include "be_constobj.h"
static be_define_const_map_slots(m_libenergy_map) {
{ be_const_key(init, -1), be_const_closure(init_closure) },
{ be_const_key(_ptr, 3), be_const_comptr(&Energy) },
{ be_const_key(setmember, -1), be_const_closure(setmember_closure) },
{ be_const_key(member, 2), be_const_closure(member_closure) },
{ be_const_key(read, -1), be_const_closure(read_closure) },
};
static be_define_const_map(
m_libenergy_map,
5
);
static be_define_const_module(
m_libenergy,
"energy"
);
BE_EXPORT_VARIABLE be_define_const_native_module(energy);

View File

@ -3,7 +3,7 @@
static be_define_const_map_slots(m_libglobal_map) {
{ be_const_key(member, -1), be_const_func(m_findglobal) },
{ be_const_key(setmember, 0), be_const_func(m_setglobal) },
{ be_const_key(opt_call, -1), be_const_func(m_globals) },
{ be_const_key(_X28_X29, -1), be_const_func(m_globals) },
};
static be_define_const_map(

View File

@ -1260,46 +1260,46 @@ be_local_closure(getbits, /* name */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_string("value_error", 773297791, 11),
/* K2 */ be_nested_string("length in bits must be between 0 and 32", -1710458168, 39),
/* K1 */ be_nested_str(value_error),
/* K2 */ be_nested_str(length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032),
/* K3 */ be_const_int(3),
/* K4 */ be_const_int(1),
}),
(be_nested_const_str("getbits", -1200798317, 7)),
(be_nested_const_str("input", -103256197, 5)),
&be_const_str_getbits,
&be_const_str_solidified,
( &(const binstruction[32]) { /* code */
0x180C0500, // 0000 LE R3 R2 K0
0x740E0002, // 0001 JMPT R3 #0005
0x540E001F, // 0002 LDINT R3 32
0x240C0403, // 0003 GT R3 R2 R3
0x780E0000, // 0004 JMPF R3 #0006
0xB0060302, // 0005 RAISE 1 K1 K2
0x580C0000, // 0006 LDCONST R3 K0
0x3C100303, // 0007 SHR R4 R1 K3
0x54160007, // 0008 LDINT R5 8
0x10040205, // 0009 MOD R1 R1 R5
0x58140000, // 000A LDCONST R5 K0
0x24180500, // 000B GT R6 R2 K0
0x781A0011, // 000C JMPF R6 #001F
0x541A0007, // 000D LDINT R6 8
0x04180C01, // 000E SUB R6 R6 R1
0x241C0C02, // 000F GT R7 R6 R2
0x781E0000, // 0010 JMPF R7 #0012
0x5C180400, // 0011 MOVE R6 R2
0x381E0806, // 0012 SHL R7 K4 R6
0x041C0F04, // 0013 SUB R7 R7 K4
0x381C0E01, // 0014 SHL R7 R7 R1
0x94200004, // 0015 GETIDX R8 R0 R4
0x2C201007, // 0016 AND R8 R8 R7
0x3C201001, // 0017 SHR R8 R8 R1
0x38201005, // 0018 SHL R8 R8 R5
0x300C0608, // 0019 OR R3 R3 R8
0x00140A06, // 001A ADD R5 R5 R6
0x04080406, // 001B SUB R2 R2 R6
0x58040000, // 001C LDCONST R1 K0
0x00100904, // 001D ADD R4 R4 K4
0x7001FFEB, // 001E JMP #000B
0x80040600, // 001F RET 1 R3
0x180C0500, // 0000 LE R3 R2 K0
0x740E0002, // 0001 JMPT R3 #0005
0x540E001F, // 0002 LDINT R3 32
0x240C0403, // 0003 GT R3 R2 R3
0x780E0000, // 0004 JMPF R3 #0006
0xB0060302, // 0005 RAISE 1 K1 K2
0x580C0000, // 0006 LDCONST R3 K0
0x3C100303, // 0007 SHR R4 R1 K3
0x54160007, // 0008 LDINT R5 8
0x10040205, // 0009 MOD R1 R1 R5
0x58140000, // 000A LDCONST R5 K0
0x24180500, // 000B GT R6 R2 K0
0x781A0011, // 000C JMPF R6 #001F
0x541A0007, // 000D LDINT R6 8
0x04180C01, // 000E SUB R6 R6 R1
0x241C0C02, // 000F GT R7 R6 R2
0x781E0000, // 0010 JMPF R7 #0012
0x5C180400, // 0011 MOVE R6 R2
0x381E0806, // 0012 SHL R7 K4 R6
0x041C0F04, // 0013 SUB R7 R7 K4
0x381C0E01, // 0014 SHL R7 R7 R1
0x94200004, // 0015 GETIDX R8 R0 R4
0x2C201007, // 0016 AND R8 R8 R7
0x3C201001, // 0017 SHR R8 R8 R1
0x38201005, // 0018 SHL R8 R8 R5
0x300C0608, // 0019 OR R3 R3 R8
0x00140A06, // 001A ADD R5 R5 R6
0x04080406, // 001B SUB R2 R2 R6
0x58040000, // 001C LDCONST R1 K0
0x00100904, // 001D ADD R4 R4 K4
0x7001FFEB, // 001E JMP #000B
0x80040600, // 001F RET 1 R3
})
)
);
@ -1320,51 +1320,51 @@ be_local_closure(setbits, /* name */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_string("value_error", 773297791, 11),
/* K2 */ be_nested_string("length in bits must be between 0 and 32", -1710458168, 39),
/* K1 */ be_nested_str(value_error),
/* K2 */ be_nested_str(length_X20in_X20bits_X20must_X20be_X20between_X200_X20and_X2032),
/* K3 */ be_const_int(3),
/* K4 */ be_const_int(1),
}),
(be_nested_const_str("setbits", -1532559129, 7)),
(be_nested_const_str("input", -103256197, 5)),
&be_const_str_setbits,
&be_const_str_solidified,
( &(const binstruction[37]) { /* code */
0x14100500, // 0000 LT R4 R2 K0
0x74120002, // 0001 JMPT R4 #0005
0x5412001F, // 0002 LDINT R4 32
0x24100404, // 0003 GT R4 R2 R4
0x78120000, // 0004 JMPF R4 #0006
0xB0060302, // 0005 RAISE 1 K1 K2
0x60100009, // 0006 GETGBL R4 G9
0x5C140600, // 0007 MOVE R5 R3
0x7C100200, // 0008 CALL R4 1
0x5C0C0800, // 0009 MOVE R3 R4
0x3C100303, // 000A SHR R4 R1 K3
0x54160007, // 000B LDINT R5 8
0x10040205, // 000C MOD R1 R1 R5
0x24140500, // 000D GT R5 R2 K0
0x78160014, // 000E JMPF R5 #0024
0x54160007, // 000F LDINT R5 8
0x04140A01, // 0010 SUB R5 R5 R1
0x24180A02, // 0011 GT R6 R5 R2
0x781A0000, // 0012 JMPF R6 #0014
0x5C140400, // 0013 MOVE R5 R2
0x381A0805, // 0014 SHL R6 K4 R5
0x04180D04, // 0015 SUB R6 R6 K4
0x541E00FE, // 0016 LDINT R7 255
0x38200C01, // 0017 SHL R8 R6 R1
0x041C0E08, // 0018 SUB R7 R7 R8
0x94200004, // 0019 GETIDX R8 R0 R4
0x2C201007, // 001A AND R8 R8 R7
0x2C240606, // 001B AND R9 R3 R6
0x38241201, // 001C SHL R9 R9 R1
0x30201009, // 001D OR R8 R8 R9
0x98000808, // 001E SETIDX R0 R4 R8
0x3C0C0605, // 001F SHR R3 R3 R5
0x04080405, // 0020 SUB R2 R2 R5
0x58040000, // 0021 LDCONST R1 K0
0x00100904, // 0022 ADD R4 R4 K4
0x7001FFE8, // 0023 JMP #000D
0x80040000, // 0024 RET 1 R0
0x14100500, // 0000 LT R4 R2 K0
0x74120002, // 0001 JMPT R4 #0005
0x5412001F, // 0002 LDINT R4 32
0x24100404, // 0003 GT R4 R2 R4
0x78120000, // 0004 JMPF R4 #0006
0xB0060302, // 0005 RAISE 1 K1 K2
0x60100009, // 0006 GETGBL R4 G9
0x5C140600, // 0007 MOVE R5 R3
0x7C100200, // 0008 CALL R4 1
0x5C0C0800, // 0009 MOVE R3 R4
0x3C100303, // 000A SHR R4 R1 K3
0x54160007, // 000B LDINT R5 8
0x10040205, // 000C MOD R1 R1 R5
0x24140500, // 000D GT R5 R2 K0
0x78160014, // 000E JMPF R5 #0024
0x54160007, // 000F LDINT R5 8
0x04140A01, // 0010 SUB R5 R5 R1
0x24180A02, // 0011 GT R6 R5 R2
0x781A0000, // 0012 JMPF R6 #0014
0x5C140400, // 0013 MOVE R5 R2
0x381A0805, // 0014 SHL R6 K4 R5
0x04180D04, // 0015 SUB R6 R6 K4
0x541E00FE, // 0016 LDINT R7 255
0x38200C01, // 0017 SHL R8 R6 R1
0x041C0E08, // 0018 SUB R7 R7 R8
0x94200004, // 0019 GETIDX R8 R0 R4
0x2C201007, // 001A AND R8 R8 R7
0x2C240606, // 001B AND R9 R3 R6
0x38241201, // 001C SHL R9 R9 R1
0x30201009, // 001D OR R8 R8 R9
0x98000808, // 001E SETIDX R0 R4 R8
0x3C0C0605, // 001F SHR R3 R3 R5
0x04080405, // 0020 SUB R2 R2 R5
0x58040000, // 0021 LDCONST R1 K0
0x00100904, // 0022 ADD R4 R4 K4
0x7001FFE8, // 0023 JMP #000D
0x80040000, // 0024 RET 1 R0
})
)
);

View File

@ -227,6 +227,12 @@ const bntvmodule be_native_module(_module) = { \
.data = _items \
}
#define be_nested_str(_name_) \
{ \
{ .s=((bstring*)&be_const_str_##_name_) }, \
BE_STRING \
}
#define be_nested_str_literal(_str) \
{ \
{ .s=(be_nested_const_str(_str, 0, sizeof(_str)-1 )) \

View File

@ -17,6 +17,7 @@
#include "be_decoder.h"
#include <string.h>
#include <stdio.h>
#include <ctype.h>
extern const bclass be_class_list;
extern const bclass be_class_map;
@ -37,6 +38,62 @@ extern const bclass be_class_map;
be_writestring(__lbuf); \
} while (0)
/********************************************************************
* Encode string to identifiers
*
* `_X` is used as an escape marker
/********************************************************************/
static unsigned toidentifier_length(const char *s)
{
unsigned len = 1;
const char * p = s;
while (*p) {
if (p[0] == '_' && p[1] == 'X') {
len += 3;
p += 2;
} else if (isalnum(p[0]) || p[0] == '_') {
p++;
len++;
} else { // escape
p++;
len += 4;
}
}
return len;
}
inline static char hexdigit(int v)
{
v = v & 0xF;
if (v >= 10) return v - 10 + 'A';
return v + '0';
}
static void toidentifier(char *to, const char *p)
{
while (*p) {
if (p[0] == '_' && p[1] == 'X') {
to[0] = '_';
to[1] = 'X';
to[2] = '_';
p += 2;
to += 3;
} else if (isalnum(p[0]) || p[0] == '_') {
*to = *p;
to++;
p++;
} else { // escape
to[0] = '_';
to[1] = 'X';
to[2] = hexdigit((*p & 0xF0) >> 4);
to[3] = hexdigit(*p & 0x0F);
p++;
to += 4;
}
}
*to = 0; // final NULL
}
static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, const char *key);
static void m_solidify_map(bvm *vm, bmap * map, const char *class_name)
@ -62,7 +119,12 @@ static void m_solidify_map(bvm *vm, bmap * map, const char *class_name)
if (0xFFFFFF == key_next) {
key_next = -1; /* more readable */
}
logfmt(" { be_nested_key(\"%s\", %i, %zu, %i), ", str(node->key.v.s), be_strhash(node->key.v.s), len >= 255 ? 255 : len, key_next);
/* convert the string literal to identifier */
const char * key = str(node->key.v.s);
size_t id_len = toidentifier_length(key);
char id_buf[id_len];
toidentifier(id_buf, key);
logfmt(" { be_const_key(%s, %i), ", id_buf, key_next);
m_solidify_bvalue(vm, &node->value, class_name, str(node->key.v.s));
logfmt(" },\n");
@ -118,14 +180,15 @@ static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, co
break;
case BE_STRING:
{
size_t len = strlen(str(var_tostr(value)));
const char * str = str(var_tostr(value));
size_t len = strlen(str);
if (len >= 255) {
be_raise(vm, "internal_error", "Strings greater than 255 chars not supported yet");
}
be_pushstring(vm, str(var_tostr(value)));
be_toescape(vm, -1, 'u');
logfmt("be_nested_str_literal(%s)", be_tostring(vm, -1));
be_pop(vm, 1);
size_t id_len = toidentifier_length(str);
char id_buf[id_len];
toidentifier(id_buf, str);
logfmt("be_nested_str(%s)", id_buf);
}
break;
case BE_CLOSURE:
@ -251,10 +314,16 @@ static void m_solidify_proto(bvm *vm, bproto *pr, const char * func_name, int bu
logfmt("%*sNULL, /* no const */\n", indent, "");
}
logfmt("%*s(be_nested_const_str(\"%s\", %i, %i)),\n", indent, "", str(pr->name), be_strhash(pr->name), str_len(pr->name));
// logfmt("%*s(be_nested_const_str(\"%s\", %i, %i)),\n", indent, "", func_source, be_strhash(pr->source), str_len(pr->source));
// hard-code source as "input" for solidified
logfmt("%*s((bstring*) &be_const_str_input),\n", indent, "");
/* convert the string literal to identifier */
{
const char * key = str(pr->name);
size_t id_len = toidentifier_length(key);
char id_buf[id_len];
toidentifier(id_buf, key);
logfmt("%*s&be_const_str_%s,\n", indent, "", id_buf);
}
// hard-code source as "solidified" for solidified
logfmt("%*s&be_const_str_solidified,\n", indent, "");
logfmt("%*s( &(const binstruction[%2d]) { /* code */\n", indent, "", pr->codesize);
for (int pc = 0; pc < pr->codesize; pc++) {
@ -380,7 +449,7 @@ static void m_solidify_module(bvm *vm, bmodule *ml, int builtins)
while ((node = be_map_next(ml->table, &iter)) != NULL) {
if (var_isstr(&node->key) && var_isclosure(&node->value)) {
bclosure *f = var_toobj(&node->value);
m_solidify_closure(vm, f, NULL, builtins);
m_solidify_closure(vm, f, module_name, builtins);
}
if (var_isstr(&node->key) && var_isclass(&node->value)) {
bclass *cl = var_toobj(&node->value);

View File

@ -793,9 +793,6 @@ static int str_tr(bvm *vm)
const char *p, *s = be_tostring(vm, 1);
const char *t1 = be_tostring(vm, 2);
const char *t2 = be_tostring(vm, 3);
if (strlen(t2) < strlen(t1)) {
be_raise(vm, "value_error", "invalid translation pattern");
}
size_t len = (size_t)be_strlen(vm, 1);
char *buf, *q;
buf = be_pushbuffer(vm, len);
@ -803,11 +800,17 @@ static int str_tr(bvm *vm)
for (p = s, q = buf; *p != '\0'; ++p, ++q) {
const char *p1, *p2;
*q = *p; /* default to no change */
for (p1=t1, p2=t2; *p1 != '\0'; ++p1, ++p2) {
for (p1=t1, p2=t2; *p1 != '\0'; ++p1) {
if (*p == *p1) {
*q = *p2;
if (*p2) {
*q = *p2;
} else {
q--; /* remove this char */
len--;
}
break;
}
if (*p2) { p2++; }
}
}
be_pushnstring(vm, buf, len); /* make escape string from buffer */

View File

@ -853,9 +853,9 @@ newframe: /* a new call frame */
reg = vm->reg;
bvalue *a = RA();
*a = a_temp;
if (basetype(type) == BE_FUNCTION) {
if (func_isstatic(a)) {
/* static method, don't bother with the instance */
if (var_basetype(a) == BE_FUNCTION) {
if (func_isstatic(a) || (type == BE_INDEX)) { /* if instance variable then we consider it's non-method */
/* static method, don't bother with the instance */
a[1] = a_temp;
var_settype(a, NOT_METHOD);
} else {

View File

@ -342,11 +342,11 @@ typedef struct bntvmodule {
(bvalue*) _ktab, /* ktab */ \
(struct bproto**) _protos, /* bproto **ptab */ \
(binstruction*) _code, /* code */ \
_fname, /* name */ \
((bstring*) _fname), /* name */ \
sizeof(*_code)/sizeof(binstruction), /* codesize */ \
BE_IIF(_has_const)(sizeof(*_ktab)/sizeof(bvalue),0), /* nconst */ \
BE_IIF(_has_subproto)(sizeof(*_protos)/sizeof(bproto*),0), /* proto */ \
_source, /* source */ \
((bstring*) _source), /* source */ \
PROTO_RUNTIME_BLOCK \
PROTO_VAR_INFO_BLOCK \
}

View File

@ -64,7 +64,7 @@ A.h = def (x, y) return type(x) end
assert(type(a.g) == 'function')
assert(type(a.h) == 'function')
assert_attribute_error("a.g(1,2)")
assert(a.g(1) == 'int')
assert(a.h(1) == 'int')
assert(A.h(1) == 'int')
@ -85,6 +85,9 @@ assert(a.g(1,2) == [1,2])
assert(a.h(1,2) == [1,2])
assert(A.g(1,2) == [1,2])
assert(A.h(1,2) == [1,2])
a.a = def (x,y) return [x,y] end
assert(a.a(1,2) == [1,2])
#- test static initializers -#
class A

View File

@ -0,0 +1,152 @@
import copy
from hash_map import *
class block:
def __init__(self):
self.type = ""
self.name = ""
self.attr = {}
self.data = {}
self.data_ordered = []
def depend(obj, macro):
if "depend" in obj.attr:
return macro.query(obj.attr["depend"])
else:
return True
class block_builder:
"""Output an object"""
def __init__(self, obj, macro):
self.block = block()
self.strtab = []
self.block.name = obj.name
if depend(obj, macro):
self.block.type = obj.type
self.block.attr = obj.attr
if "name" in obj.attr:
self.strtab.append(obj.attr["name"])
for key in obj.data_ordered:
second = obj.data[key]
if second.depend == None or macro.query(second.depend):
self.block.data[key] = second.value
self.strtab.append(key)
self.block.data_ordered.append(key)
def block_tostring(self, block):
ostr = ""
if block.type == "map":
ostr += self.map_tostring(block, block.name)
elif block.type == "class":
ostr += self.class_tostring(block)
elif block.type == "vartab":
ostr += self.vartab_tostring(block)
elif block.type == "module":
ostr += self.module_tostring(block)
return ostr
def class_tostring(self, block):
ostr = ""
hmap = hash_map(block.data)
map_name = block.name + "_map"
if len(block.data) > 0:
ostr += self.map_tostring(block, map_name, True) + "\n"
ostr += self.scope(block) + " be_define_const_class(\n "
ostr += block.name + ",\n "
ostr += str(hmap.var_count()) + ",\n "
ostr += self.get_super(block) + ",\n "
ostr += self.name(block) + "\n);\n"
return ostr
def map_tostring(self, block, name, local):
hmap = hash_map(block.data)
entlist = hmap.entry_list()
ostr = "static be_define_const_map_slots(" + name + ") {\n"
for ent in entlist:
ostr += " { be_const_key(" + ent.key + ", "
ostr += str(ent.next) + "), " + ent.value + " },\n"
ostr += "};\n\n"
if local:
ostr += "static"
else:
ostr += self.scope(block)
ostr += " be_define_const_map(\n "
ostr += name + ",\n "
ostr += str(len(entlist)) + "\n);\n"
return ostr
def vartab_tostring(self, block):
ostr = ""
varvec = []
idxblk = copy.deepcopy(block)
index = 0
idxblk.data = {}
for key in block.data_ordered:
varvec.append(block.data[key])
idxblk.data[key] = "int(" + str(index) + ")"
index += 1
ostr += self.map_tostring(idxblk, block.name + "_map", True) + "\n"
ostr += "static const bvalue __vlist_array[] = {\n";
for it in varvec:
ostr += " be_const_" + it + ",\n"
ostr += "};\n\n"
ostr += "static be_define_const_vector(\n "
ostr += block.name + "_vector,\n __vlist_array,\n "
ostr += str(len(varvec)) + "\n);\n"
return ostr
def module_tostring(self, block):
ostr = ""
name = "m_lib" + block.name
map_name = name + "_map"
ostr += self.map_tostring(block, map_name, True) + "\n"
ostr += "static be_define_const_module(\n "
ostr += name + ",\n "
ostr += "\"" + block.name + "\"\n);\n"
scp = self.scope(block)
if scp != "static":
ostr += "\n" + scp
ostr += " be_define_const_native_module("
ostr += block.name + ");\n"
return ostr
def scope(self, block):
if "local" in block.attr:
return "static"
else:
return "BE_EXPORT_VARIABLE"
def get_super(self, block):
if "super" in block.attr:
return "(bclass *)&" + block.attr["super"]
else:
return "NULL"
def name(self, block):
if "name" in block.attr:
return block.attr["name"]
else:
return block.name
def writefile(self, filename, text):
otext = "#include \"be_constobj.h\"\n\n" + text
with open(filename, "w") as f:
f.write(otext)
def dumpfile(self, path):
s = self.block_tostring(self.block)
if "file" in self.block.attr:
name = self.block.attr["file"]
else:
name = self.block.name
self.writefile(path + "/be_fixed_" + name + ".h", s)

View File

@ -0,0 +1,146 @@
import re
from coc_string import unescape_operator
class data_value:
def __init__(self):
self.value = None
self.depend = None
class object_block:
def __init__(self):
self.type = None
self.name = None
self.attr = {}
self.data = {}
self.data_ordered = []
class coc_parser:
"""Parser for Berry"""
def __init__(self, text):
"""Parse text file"""
self.objects = []
self.strtab = set()
self.text = text
self.parsers = {
"@const_object_info_begin": self.parse_object,
"be_const_str_": self.parse_string,
"be_const_key(": self.parse_string,
"be_nested_str(": self.parse_string,
}
while len(self.text) > 0:
pattern = "|".join(self.parsers.keys())
pattern = re.sub("\\(", "\\(", pattern)
r = re.search(pattern, self.text)
if not r: break
self.text = self.text[r.end(0):] # keep only after pattern
func = self.parsers[r[0]] # retrieve function for matched
func() # call function
# def scan_const_string(self):
# r = re.match(r"\w*", self.text)
# if r:
# self.text = self.text[r.end(0)]
# self.strtab.append(r[0])
def skip_space(self):
r = re.match(r"\s+", self.text)
if r:
self.text = self.text[r.end(0):]
def parse_char_base(self, c, necessary):
res = self.text[0] == c
if not res and necessary: print(self.text); raise "error"
if res: self.text = self.text[1:]
return res
def parse_char(self, c, necessary = False):
self.skip_space()
return self.parse_char_base(c, necessary)
def skip_char(self, c):
self.parse_char(c, True)
def parse_char_continue(self, c, necessary = False):
ch = self.text[0]
while ch == ' ' or ch == "\t": self.text = self.text[1:]
return self.parse_char_base(c, necessary)
def parse_word(self):
self.skip_space()
r = re.match(r"\w+", self.text)
self.text = self.text[r.end(0):]
return r[0]
def parse_tocomma(self):
self.skip_space()
r = re.match(r"[^,\s]*", self.text)
self.text = self.text[r.end(0):]
return r[0]
def parse_tonewline(self):
self.skip_space()
r = re.match(r"[^\r\n]*", self.text)
self.text = self.text[r.end(0):]
return r[0]
def parse_object(self):
while True:
obj = self.parse_block()
self.objects.append(obj)
if self.parse_char("@"): break
end_text = "const_object_info_end"
if not str.startswith(self.text, end_text): raise "error"
self.text = self.text[len(end_text):]
# print("END: @const_object_info_end test={self.text}")
def parse_string(self):
if not self.text[0].isalnum() and self.text[0] != '_': return # do not proceed, maybe false positive in solidify
ident = self.parse_word()
literal = unescape_operator(ident)
if not literal in self.strtab:
self.strtab.add(literal)
# print(f"str '{ident}' -> {literal}")
def parse_block(self):
obj = object_block()
obj.type = self.parse_word()
obj.name = self.parse_word()
# print(f"parse_block: type={obj.type} name={obj.name}")
self.parse_attr(obj)
self.parse_body(obj)
return obj
def parse_attr(self, obj):
self.skip_char("(")
self.parse_attr_pair(obj)
while self.parse_char(","):
self.parse_attr_pair(obj)
self.skip_char(")")
def parse_attr_pair(self, obj):
key = self.parse_word()
self.skip_char(":")
value = self.parse_word()
obj.attr[key] = value
def parse_body(self, obj):
self.skip_char("{")
if not self.parse_char("}"):
while True:
self.parse_body_item(obj)
if self.parse_char("}"): break
def parse_body_item(self, obj):
value = data_value()
key = self.parse_tocomma()
# print(f"Key={key}")
self.parse_char_continue(",", True)
value.value = self.parse_tocomma()
if self.parse_char_continue(","):
value.depend = self.parse_tonewline()
obj.data[key] = value
obj.data_ordered.append(key)

View File

@ -0,0 +1,40 @@
import re
def hashcode(s):
"""Compute hash for a string, in uint32_t"""
hash = 2166136261
for c in s.encode('utf8'):
hash = ((hash ^ c) * 16777619) & 0xFFFFFFFF
return hash
def escape_operator_v1(s):
tab = {
# "void": "",
"..": "opt_connect",
"+": "opt_add", "-": "opt_sub",
"*": "opt_mul", "/": "opt_div",
"%": "opt_mod", "&": "opt_and",
"^": "opt_xor", "|": "opt_or",
"<": "opt_lt", ">": "opt_gt",
"<=": "opt_le", ">=": "opt_ge",
"==": "opt_eq", "!=": "opt_neq",
"<<": "opt_shl", ">>": "opt_shr",
"-*": "opt_neg", "~": "opt_flip",
"()": "opt_call",
}
if s in tab: return tab[s]
s2 = ""
for c in s:
if c == '.': s2 += 'dot_'
else: s2 += c
return s2
def escape_operator(s):
s = re.sub('_X', '_X_', s) # replace any esape sequence '_X' with '_XX'
s = re.sub('[^a-zA-Z0-9_]', lambda m: "_X{0:02X}".format(ord(m.group())), s)
return s
def unescape_operator(s):
s = re.sub('_X[0-9A-F][0-9A-F]', lambda m: chr(int(m.group()[2:], 16)), s)
s = re.sub('_X_', '_X', s)
return s

View File

@ -0,0 +1,18 @@
import unittest
from coc_string import *
class Test_coc_string(unittest.TestCase):
def test_hash(self):
self.assertEqual(hashcode("add"), 993596020)
self.assertEqual(hashcode("real"), 3604983901)
def test_escape(self):
self.assertEqual(escape_operator("foo"), "foo")
self.assertEqual(escape_operator(".."), "_opt_connect")
self.assertEqual(escape_operator("foo.bar"), "foo_dot_bar")
self.assertEqual(escape_operator("foo._bar"), "foo_dot___bar")
self.assertEqual(escape_operator("foo. bar"), "foo_dot__20bar")
if __name__ == '__main__':
unittest.main()

View File

@ -0,0 +1,162 @@
import copy
from coc_string import *
# resize a list, from https://stackoverflow.com/a/8850956
def list_resize_entry(l, newsize, filling=None):
if newsize > len(l):
l.extend([entry() for x in range(len(l), newsize)])
else:
del l[newsize:]
class entry:
def __init__(self):
self.key = ""
self.value = ""
self.next = hash_map.NODE_EMPTY
def __repr__(self):
return f"<entry object; key='{self.key}', value='{self.value}', next={self.next}>"
class hash_map:
NODE_EMPTY = -2
NODE_NULL = -1
def __init__(self, map):
self.count = 0
self.lastfree = 0
self.bucket = []
self.resize(2)
for key in sorted(map.keys()):
self.insert(key, map[key])
def __repr__(self):
return f"<hash_map object; count={self.count}, bucket={self.bucket}, lastfree={self.lastfree}>"
def is_empty(self, ent):
return ent.next == hash_map.NODE_EMPTY
def resize(self, size):
bucket = copy.deepcopy(self.bucket)
list_resize_entry(self.bucket, size)
# set all slot to empty
for i in range(size):
self.bucket[i].next = hash_map.NODE_EMPTY
self.lastfree = size - 1
for slot in bucket:
if slot.next != hash_map.NODE_EMPTY:
self.insert_p(slot.key, slot.value)
def findprev(self, prev, slot):
#print(f"findprev: prev={prev} slot={slot}")
while True:
next = prev.next
if next == hash_map.NODE_NULL or self.bucket[next] == slot: break
prev = self.bucket[next]
if next == hash_map.NODE_NULL: return None
return prev
def nextfree(self):
while self.lastfree >= 0:
if self.bucket[self.lastfree].next == hash_map.NODE_EMPTY:
return self.lastfree
self.lastfree -= 1
return -1
def find(self, key):
hash = hashcode(key)
null = entry()
slot = self.bucket[hash % len(self.bucket)]
if slot.next == hash_map.NODE_EMPTY:
return null
while slot.key != key:
if slot.next == hash_map.NODE_NULL: return null
slot = self.bucket[slot.next]
return slot
def insert_p(self, key, value):
slot = self.bucket[hashcode(key) % len(self.bucket)]
#print(f"slot={slot}, index={hashcode(key) % len(self.bucket)}")
if slot.next == hash_map.NODE_EMPTY:
slot.next = hash_map.NODE_NULL
else:
newidx = self.nextfree()
#print(f"newidx={newidx}")
# get the main-slot index
mainslot = self.bucket[hashcode(slot.key) % len(self.bucket)]
newslot = self.bucket[newidx]
#print(f"self={self}\nslot={hashcode(key) % len(self.bucket)} idx_main={hashcode(slot.key) % len(self.bucket)} newidx={newidx}")
#print(f"insert_p: 1={mainslot} 2={newslot}")
if mainslot == slot:
newslot.next = mainslot.next
mainslot.next = newidx
slot = newslot
else: # link to list
#print(f"insert_p: 1={mainslot} 2={slot}")
prev = self.findprev(mainslot, slot)
prev.next = newidx # link the previous node
# copy to new slot
newslot.key = slot.key
newslot.value = slot.value
newslot.next = slot.next
slot.next = hash_map.NODE_NULL
slot.key = key
slot.value = value
def insert(self, key, value):
slot = self.find(key)
if slot.next == hash_map.NODE_EMPTY:
if self.count >= len(self.bucket):
self.resize(len(self.bucket) * 2)
self.insert_p(key, value)
self.count += 1
# return a list (entiry, var_count)
def entry_modify(self, ent, var_count):
ent.key = escape_operator(ent.key)
if ent.value == "var":
ent.value = "be_const_var(" + str(var_count) + ")"
var_count += 1
else:
ent.value = "be_const_" + ent.value
return (ent, var_count)
def entry_list(self):
l = []
var_count = 0
self.resize(self.count)
for it in self.bucket:
(ent, var_count) = self.entry_modify(it, var_count)
l.append(ent)
return l
def var_count(self):
count = 0
self.resize(self.count)
for it in self.bucket:
if it.value == "var": count += 1
return count
if __name__ == '__main__':
# from hash_map import *
m = hash_map({})
print(m)
m.insert("foo","bar")
print(m)
m.insert("foo2","bar")
print(m)
m.insert(".","3")
print(m)
m.insert("foo","bar2")
print(m)
m.insert("+","bar2")
print(m)
m.insert("a","var")
m.insert("b","var")
m.insert("c","var")
print()
print(m)
print(f"var_count={m.var_count()}")
print(f"entry_list={m.entry_list()}")

View File

@ -0,0 +1,50 @@
import re
def int_safe(v):
try: return int(v, 0)
except: return 0
class macro_table:
pat = re.compile("(?:\\n|$)\\s*#define\\s+(\\w+)[ \\t]+(\\w*)", re.MULTILINE)
pat_query = re.compile("(!?)(\\w+)")
def __init__(self):
self.map = {}
# def readfile(self, filename):
# with open(filename) as f:
# return f.read()
def parse_value(self, s):
if len(s) == 0: return 1 # defined a macro name but no content, considered true
if not s[0].isnumeric(): return 1
return int_safe(s)
def scan_file(self, filename):
str = ""
with open(filename) as f:
str = f.read()
r = macro_table.pat.findall(str)
for it in r:
# print(f"> it0:{it[0]} it1:{it[1]}")
self.map[it[0]] = self.parse_value(it[1])
def query(self, s):
r = macro_table.pat_query.search(s)
value = False
if r:
bang = r[1]
name = r[2]
# print(f">query: bang={bang} name={name} value={self.map.get(name)}")
if name in self.map:
value = int(self.map[name]) != 0
if bang == "!":
value = not value
# print(f">query: {s}:{value}")
return value
if __name__ == '__main__':
# from hash_map import *
pat = re.compile("(?:\\n|$)\\s*#define\\s+(\\w+)[ \\t]+(\\w+)", re.MULTILINE)
s = "aaa\n#define A 1 // a \n #define B 2\n#define C \n#define D 0 \n #define E 11 \na"

View File

@ -0,0 +1,64 @@
# python3 main.py -o out in
# coc
import re
import os
from coc_parser import *
from str_build import *
from block_builder import *
from macro_table import *
class builder:
Input = 0
Output = 1
Config = 2
def __init__(self, input_folders, output_folder, macro_files):
self.output = output_folder
self.input = input_folders
self.config = macro_files
self.macro = None
self.strmap = {}
self.macro = macro_table()
for path in self.config:
self.macro.scan_file(path)
for d in self.input:
self.scandir(d)
sb = str_build(self.strmap)
sb.build(self.output)
def parse_file(self, filename):
if re.search(r"\.(c|cc|cpp)$", filename):
# print(f"> parse {filename}")
text = ""
with open(filename) as f:
text = f.read()
# print(f"> len(text)={len(text)}")
parser = coc_parser(text)
for s in parser.strtab:
self.strmap[s] = 0
for obj in parser.objects:
builder = block_builder(obj, self.macro)
for s in builder.strtab:
self.strmap[s] = 0
builder.dumpfile(self.output)
def scandir(self, srcpath):
for item in os.listdir(srcpath):
path = os.path.join(srcpath, item)
if os.path.isfile(path): self.parse_file(path)
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("input_folder", nargs='+', help='folders containing the C/C++ files to be parsed')
parser.add_argument("-o", help='output folder', required=True)
parser.add_argument("-c", nargs='+', help='configuration folders for preprocessor')
args = vars(parser.parse_args())
# print(args)
b = builder(args["input_folder"], args["o"], args["c"])

View File

@ -0,0 +1,123 @@
import json
from coc_string import *
class str_info:
def __init__(self):
self.hash = 0
self.str = ""
self.extra = 0
class str_build:
def __init__(self, map):
size = int(len(map) / 2) # voluntarily reduce hash size to half
if size < 4: size = 4
self.buckets = []
for i in range(size):
self.buckets.append([])
self.make_ceil("", 0) # add empty string as it is always useful
self.count = len(map) + 1 # TODO it is not actually accurate since keywords are not counted
for k in sorted(map.keys()):
self.make_ceil(k, map[k])
self.keywords()
def build(self, path):
prefix = path + "/be_const_strtab"
self.writefile(prefix + "_def.h", self.build_table_def())
self.writefile(prefix + ".h", self.build_table_ext())
def get_count(self): # compute the total size by adding sizes of each bucket
size = 0
for bucket in self.buckets:
size += len(bucket)
return size
def keywords(self):
opif = 50
tab = {
"if": opif, "elif": opif + 1 ,
"else": opif + 2 , "while": opif + 3 ,
"for": opif + 4 , "def": opif + 5 ,
"end": opif + 6 , "class": opif + 7 ,
"break": opif + 8 , "continue": opif + 9 ,
"return": opif + 10 , "true": opif + 11 ,
"false": opif + 12 , "nil": opif + 13 ,
"var": opif + 14 , "do": opif + 15 ,
"import": opif + 16 , "as": opif + 17 ,
"try": opif + 18 , "except": opif + 19 ,
"raise": opif + 20 , "static": opif + 21,
}
for key in sorted(tab.keys()):
self.make_ceil(key, tab[key])
def make_ceil(self, name, extra):
info = str_info()
info.hash = hashcode(name)
info.str = name
info.extra = extra
self.buckets[info.hash % len(self.buckets)].append(info)
def writefile(self, filename, text):
buf = ""
try:
with open(filename) as f:
buf = f.read()
except FileNotFoundError:
pass
if buf != text:
with open(filename, "w") as f:
f.write(text)
def build_table_def(self):
strings = {}
for bucket in self.buckets:
# print(f"> Bucket= {[x.str for x in bucket]}")
size = len(bucket)
for i in range(size):
info = bucket[i]
node = escape_operator(info.str)
istr = ""
if i < size - 1:
next = "&be_const_str_" + escape_operator(bucket[i + 1].str)
else:
next = "NULL"
istr += "be_define_const_str("
istr += node + ", " + json.dumps(info.str) + ", "
istr += str(info.hash) + "u, " + str(info.extra) + ", "
istr += str(len(info.str)) + ", " + next + ");\n"
strings[info.str] = istr
ostr = ""
for s in sorted(strings.keys()):
ostr += strings[s]
ostr += "\n"
ostr += "static const bstring* const m_string_table[] = {\n"
size = len(self.buckets)
for i in range(size):
bucket = self.buckets[i]
if len(bucket) > 0:
ostr += " (const bstring *)&be_const_str_" + escape_operator(bucket[0].str)
else:
ostr += " NULL"
if i < size - 1: ostr += ","
ostr += "\n"
ostr += "};\n\n"
ostr += "static const struct bconststrtab m_const_string_table = {\n"
ostr += " .size = " + str(size) + ",\n"
ostr += " .count = " + str(self.get_count()) + ",\n"
ostr += " .table = m_string_table\n"
ostr += "};\n"
return ostr
def build_table_ext(self):
ostr = ""
# put all in a sorted sed
all = set()
for bucket in self.buckets:
for info in bucket:
all.add(escape_operator(info.str))
for s in sorted(all):
ostr += "extern const bcstring be_const_str_" + s + ";\n"
return ostr

View File

@ -227,7 +227,7 @@ public:
}
bool seek(uint32_t pos, SeekMode mode) {
AddLog(LOG_LEVEL_DEBUG, "ZIP: seek pos=%i mode=%i", pos, mode);
// AddLog(LOG_LEVEL_DEBUG, "ZIP: seek pos=%i mode=%i", pos, mode);
if (SeekSet == mode) {
if (pos <= _len) {
_seek = pos;
@ -246,12 +246,12 @@ public:
}
size_t position() const {
AddLog(LOG_LEVEL_DEBUG, "ZIP: position return=%i", _seek);
// AddLog(LOG_LEVEL_DEBUG, "ZIP: position return=%i", _seek);
return _seek;
}
size_t size() const {
AddLog(LOG_LEVEL_DEBUG, "ZIP: size return=%i", _len);
// AddLog(LOG_LEVEL_DEBUG, "ZIP: size return=%i", _len);
return _len;
}
@ -322,7 +322,7 @@ bool ZipArchive::parse(void) {
return false;
}
if (header.signature2 != 0x0403) {
AddLog(LOG_LEVEL_DEBUG, "ZIP: end of file section");
// AddLog(LOG_LEVEL_DEBUG, "ZIP: end of file section");
break;
}
// Check no extra field
@ -371,7 +371,7 @@ bool ZipArchive::parse(void) {
entry.last_mod = dos2unixtime((header.last_mod_date << 16) | header.last_mod_time);
offset += header.size_uncompressed;
AddLog(LOG_LEVEL_DEBUG_MORE, "ZIP: found file '%s' (%i bytes - offset %i) - next entry %i", &fname[0], header.size_uncompressed, entry.file_start, offset);
// AddLog(LOG_LEVEL_DEBUG_MORE, "ZIP: found file '%s' (%i bytes - offset %i) - next entry %i", &fname[0], header.size_uncompressed, entry.file_start, offset);
}
return true;
@ -402,7 +402,7 @@ FileImplPtr ZipReadFSImpl::open(const char* path, const char* mode, const bool c
char *suffix = strtok_r(NULL, "", &tok);
// if suffix starts with '/', skip the first char
if (*suffix == '/') { suffix++; }
AddLog(LOG_LEVEL_DEBUG, "ZIP: prefix=%s suffix=%s", prefix, suffix);
// AddLog(LOG_LEVEL_DEBUG, "ZIP: prefix=%s suffix=%s", prefix, suffix);
// parse ZIP archive
File zipfile = (*_fs)->open(prefix, "r", false);
if ((bool)zipfile) {
@ -413,7 +413,7 @@ FileImplPtr ZipReadFSImpl::open(const char* path, const char* mode, const bool c
for (auto & entry : zip_archive.entries) {
if (entry.file_name.equals(suffix)) {
// found
AddLog(LOG_LEVEL_DEBUG, "ZIP: file '%s' in archive (start=%i - len=%i - last_mod=%i)", suffix, entry.file_start, entry.file_len, entry.last_mod);
// AddLog(LOG_LEVEL_DEBUG, "ZIP: file '%s' in archive (start=%i - len=%i - last_mod=%i)", suffix, entry.file_start, entry.file_len, entry.last_mod);
return ZipItemImplPtr(new ZipItemImpl((*_fs)->open(prefix, "r", false), entry.file_start, entry.file_len, entry.last_mod));
}
}

View File

@ -1197,7 +1197,8 @@ void SettingsDefaultSet2(void) {
flag4.mqtt_no_retain |= MQTT_NO_RETAIN;
flag5.shift595_invert_outputs |= SHIFT595_INVERT_OUTPUTS;
Settings->shift595_device_count = SHIFT595_DEVICE_COUNT;
Settings->shift595_device_count = SHIFT595_DEVICE_COUNT;
flag5.tls_use_fingerprint |= MQTT_TLS_FINGERPRINT;
Settings->flag = flag;
Settings->flag2 = flag2;

View File

@ -1855,10 +1855,12 @@ bool isChannelGammaCorrected(uint32_t channel) {
if (channel >= Light.subtype) { return false; } // Out of range
#ifdef ESP8266
if ((PHILIPS == TasmotaGlobal.module_type) || (Settings->flag4.pwm_ct_mode)) {
#else
if (Settings->flag4.pwm_ct_mode) {
#endif // ESP8266
if ((LST_COLDWARM == Light.subtype) && (1 == channel)) { return false; } // PMW reserved for CT
if ((LST_RGBCW == Light.subtype) && (4 == channel)) { return false; } // PMW reserved for CT
}
#endif // ESP8266
return true;
}
@ -1866,10 +1868,12 @@ bool isChannelGammaCorrected(uint32_t channel) {
bool isChannelCT(uint32_t channel) {
#ifdef ESP8266
if ((PHILIPS == TasmotaGlobal.module_type) || (Settings->flag4.pwm_ct_mode)) {
#else
if (Settings->flag4.pwm_ct_mode) {
#endif // ESP8266
if ((LST_COLDWARM == Light.subtype) && (1 == channel)) { return true; } // PMW reserved for CT
if ((LST_RGBCW == Light.subtype) && (4 == channel)) { return true; } // PMW reserved for CT
}
#endif // ESP8266
return false;
}
@ -2159,9 +2163,12 @@ bool calcGammaBulbs(uint16_t cur_col_10[5]) {
// Now we know ct_10 and white_bri10 (gamma corrected if needed)
#ifdef ESP8266
if ((LST_COLDWARM == Light.subtype) || (LST_RGBCW == Light.subtype)) {
#ifdef ESP8266
if ((PHILIPS == TasmotaGlobal.module_type) || (Settings->flag4.pwm_ct_mode)) { // channel 1 is the color tone, mapped to cold channel (0..255)
#else
if (Settings->flag4.pwm_ct_mode) { // channel 1 is the color tone, mapped to cold channel (0..255)
#endif // ESP8266
pwm_ct = true;
// Xiaomi Philips bulbs follow a different scheme:
// channel 0=intensity, channel1=temperature
@ -2170,7 +2177,6 @@ bool calcGammaBulbs(uint16_t cur_col_10[5]) {
return false; // avoid any interference
}
}
#endif // ESP8266
// Now see if we need to mix RGB and White
// Valid only for LST_RGBW, LST_RGBCW, SetOption105 1, and white is zero (see doc)

View File

@ -67,6 +67,7 @@ uint8_t power_button_index = 0;
uint8_t down_button_index = 1;
uint8_t buttons_pressed = 0;
uint8_t local_fixed_color_index = 128;
bool is_two_button;
bool button_tapped = false;
bool down_button_tapped = false;
bool ignore_power_button = false;
@ -110,16 +111,19 @@ void PWMModulePreInit(void)
// The relay initializes to on. If the power is supposed to be off, turn the relay off.
// if (!TasmotaGlobal.power && PinUsed(GPIO_REL1)) digitalWrite(Pin(GPIO_REL1), bitRead(TasmotaGlobal.rel_inverted, 0) ? 1 : 0);
// Find out how many buttons we have.
uint8_t button_count = 0;
for (uint32_t button_index = 0; button_index < MAX_PWM_DIMMER_KEYS; button_index++) {
if (PinUsed(GPIO_KEY1, button_index)) button_count++;
}
if ((is_two_button = (button_count == 2))) down_button_index = 99;
#ifdef USE_PWM_DIMMER_REMOTE
// If remote device mode is enabled, set the device group count to the number of buttons
// present.
if (Settings->flag4.multiple_device_groups) {
Settings->flag4.device_groups_enabled = true;
device_group_count = 0;
for (uint32_t button_index = 0; button_index < MAX_PWM_DIMMER_KEYS; button_index++) {
if (PinUsed(GPIO_KEY1, button_index)) device_group_count++;
}
device_group_count = button_count;
// If no relay or PWM is defined, all buttons control remote devices.
if (!PinUsed(GPIO_REL1) && !PinUsed(GPIO_PWM1)) {
@ -266,6 +270,22 @@ void PWMDimmerHandleDevGroupItem(void)
}
#endif // USE_DEVICE_GROUPS
/*
* ---------------- Single ----------------- ------------------------- Hold -------------------------
* Off On Off On
*
* 3 Button:
* 1 Power on Power off Power on at low preset Alternately inc/dec brightness
* 2 Power on at low preset Dec brightness NOP Dec brightness
* 3 Power on at high preset Inc brightness NOP Inc brightness
*
* 2 Button:
* 1 NOP Power off Power on at low preset Dec brightness
* 2 Power on Inc brightness Power on at high preset Inc brightness
*
* 1 Button:
* 1 Power on Power off Power on at low preset Alternately inc/dec brightness
*/
void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
{
bool handle_tap = false;
@ -286,7 +306,7 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
#else // USE_PWM_DIMMER_REMOTE
bool power_is_on = TasmotaGlobal.power;
bool is_power_button = !button_index;
bool is_down_button = (button_index == (power_button_index ? 0 : 1));
bool is_down_button = (is_two_button ? false : button_index == (power_button_index ? 0 : 1));
#endif // USE_PWM_DIMMER_REMOTE
// If the button is being held, ...
@ -313,12 +333,17 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
// direction for the device and then invert the direction when the power button is released.
// The new brightness will be calculated below.
if (power_is_on) {
if (is_two_button && !Settings->flag4.multiple_device_groups) {
bri_hold = -1;
}
else {
#ifdef USE_PWM_DIMMER_REMOTE
bri_hold = (active_remote_pwm_dimmer ? (active_remote_pwm_dimmer->power_button_increases_bri ? 1 : -1) : (power_button_increases_bri ? 1 : -1));
bri_hold = (active_remote_pwm_dimmer ? (active_remote_pwm_dimmer->power_button_increases_bri ? 1 : -1) : (power_button_increases_bri ? 1 : -1));
#else // USE_PWM_DIMMER_REMOTE
bri_hold = (power_button_increases_bri ? 1 : -1);
bri_hold = (power_button_increases_bri ? 1 : -1);
#endif // USE_PWM_DIMMER_REMOTE
invert_power_button_bri_direction = true;
invert_power_button_bri_direction = true;
}
}
// If the power is not on, turn it on using an initial brightness of bri_preset_low and set
@ -364,8 +389,21 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
// Otherwise, if the power is on, adjust the brightness. Set the direction based on which
// button is pressed. The new brightness will be calculated below.
else if (power_is_on && !button_tapped) {
bri_hold = (is_down_button ? -1 : 1);
if (!button_tapped) {
if (power_is_on) {
bri_hold = (is_down_button ? -1 : 1);
}
// If the power is off and this ia a two button switch, turn the power
// on using a temporary brightness of bri_preset_high.
else {
#ifdef USE_PWM_DIMMER_REMOTE
if (active_remote_pwm_dimmer)
power_on_bri = active_remote_pwm_dimmer->bri = active_remote_pwm_dimmer->bri_preset_high;
else
#endif // USE_PWM_DIMMER_REMOTE
power_on_bri = Settings->bri_preset_high;
}
}
}
}
@ -432,7 +470,8 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
power_on_bri = active_remote_pwm_dimmer->bri_power_on;
else
#endif // USE_PWM_DIMMER_REMOTE
power_on_bri = Settings->bri_power_on;
if (!is_two_button || Settings->flag4.multiple_device_groups || power_is_on)
power_on_bri = Settings->bri_power_on;
}
}
@ -478,8 +517,20 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
}
}
// If the power is off, turn it on using a temporary brightness of bri_preset_low if the
// down button is pressed or bri_preset_low if the up button is pressed.
// If the power is off and this is a two button switch, turn the power
// on.
else if (is_two_button) {
#ifdef USE_PWM_DIMMER_REMOTE
if (active_remote_pwm_dimmer)
power_on_bri = active_remote_pwm_dimmer->bri_power_on;
else
#endif // USE_PWM_DIMMER_REMOTE
power_on_bri = Settings->bri_power_on;
}
// If the power is off and this is not a two button switch, turn the
// power on using a temporary brightness of bri_preset_low if the down
// button is pressed or bri_preset_high if the up button is pressed.
else {
#ifdef USE_PWM_DIMMER_REMOTE
if (active_remote_pwm_dimmer)
@ -563,12 +614,9 @@ void PWMDimmerHandleButton(uint32_t button_index, bool pressed)
new_power = active_remote_pwm_dimmer->power_on;
PWMDimmerSetBrightnessLeds(new_power ? -power_on_bri : 0);
}
else {
else
#endif // USE_PWM_DIMMER_REMOTE
new_power = TasmotaGlobal.power ^ 1;
#ifdef USE_PWM_DIMMER_REMOTE
}
#endif // USE_PWM_DIMMER_REMOTE
if (new_power)
SendDeviceGroupMessage(negated_device_group_index, DGR_MSGTYP_UPDATE, DGR_ITEM_LIGHT_BRI, power_on_bri, DGR_ITEM_POWER, new_power);
else
@ -777,7 +825,7 @@ bool Xdrv35(uint8_t function)
// Bottom 15 3 15 1
if (!buttons_pressed && Settings->flag4.multiple_device_groups) {
power_button_index = button_index;
down_button_index = (Pin(GPIO_KEY1, power_button_index) == 15 ? TasmotaGlobal.gpio_pin[1] : TasmotaGlobal.gpio_pin[15]) - 32;
down_button_index = (is_two_button ? 99 : Pin(GPIO_KEY1, power_button_index) == 15 ? TasmotaGlobal.gpio_pin[1] : TasmotaGlobal.gpio_pin[15]) - 32;
active_remote_pwm_dimmer = nullptr;
if (power_button_index || !first_device_group_is_local)
active_remote_pwm_dimmer = &remote_pwm_dimmers[power_button_index];

View File

@ -1400,6 +1400,12 @@ void CmndThermostatModeSet(void)
Thermostat[ctr_output].status.thermostat_mode = value;
Thermostat[ctr_output].timestamp_input_on = 0; // Reset last manual switch timer if command set externally
}
if ((value == THERMOSTAT_OFF) && (Thermostat[ctr_output].status.enable_output == IFACE_ON)) {
// Make sure the relay is switched to off once if the thermostat is being disabled,
// or it will get stuck on (danger!)
Thermostat[ctr_output].status.command_output = IFACE_OFF;
ThermostatOutputRelay(ctr_output, Thermostat[ctr_output].status.command_output);
}
}
ResponseCmndIdxNumber((int)Thermostat[ctr_output].status.thermostat_mode);
}

View File

@ -25,6 +25,11 @@
#include "re1.5.h"
/*********************************************************************************************\
* Logging for Tasmota Berry console
*
* We need to declare the the log class first since it is used in structure
\*********************************************************************************************/
#define BERRY_CONSOLE_CMD_DELIMITER "\x01"
class Log_line {
@ -71,6 +76,12 @@ public:
LList<Log_line> log;
};
/*********************************************************************************************\
* Berry global structure
*
\*********************************************************************************************/
class BerryLog;
class BerrySupport {
public:
bvm *vm = nullptr; // berry vm
@ -84,5 +95,4 @@ public:
};
BerrySupport berry;
#endif // USE_BERRY

View File

@ -1,5 +1,5 @@
/*
xdrv_52_3_berry_native.ino - Berry scripting language, native fucnctions
xdrv_52_1_berry_native.ino - Berry scripting language, native fucnctions
Copyright (C) 2021 Stephan Hadinger, Berry language by Guan Wenliang https://github.com/Skiars/berry
@ -45,6 +45,11 @@ extern "C" {
* Responds to virtual constants
\*********************************************************************************************/
extern "C" {
// Clear all elements on the stack
void be_pop_all(bvm *vm) {
be_pop(vm, be_top(vm)); // clear Berry stack
}
#include "be_exec.h"
#include "be_debug.h"
void be_dumpstack(bvm *vm) {
@ -259,12 +264,27 @@ extern "C" {
/*********************************************************************************************\
* Generalized callbacks
*
* Warning, the following expect all parameters to be 32 bits wide
\*********************************************************************************************/
extern "C" {
/*********************************************************************************************\
* Callback structures
*
* We allow 4 parameters, or 3 if method (first arg is `self`)
* This could be extended if needed
\*********************************************************************************************/
typedef int32_t (*berry_callback_t)(int32_t v0, int32_t v1, int32_t v2, int32_t v3);
extern void BerryDumpErrorAndClear(bvm *vm, bool berry_console);
/*********************************************************************************************\
* Callback structures
*
* We allow 4 parameters, or 3 if method (first arg is `self`)
* This could be extended if needed
\*********************************************************************************************/
int32_t call_berry_cb(int32_t num, int32_t v0, int32_t v1, int32_t v2, int32_t v3) {
// call berry cb dispatcher
int32_t ret = 0;
@ -285,6 +305,7 @@ extern "C" {
ret = be_pcall(berry.vm, 6); // 5 arguments
if (ret != 0) {
BerryDumpErrorAndClear(berry.vm, false); // log in Tasmota console only
be_pop_all(berry.vm); // clear Berry stack
return 0;
}
be_pop(berry.vm, 6);
@ -353,10 +374,6 @@ extern "C" {
};
}
#define LV_OBJ_CLASS "lv_obj"
#define LV_MODULE "lvgl" // name of the lvgl module
/*********************************************************************************************\
* Automatically parse Berry stack and call the C function accordingly
*
@ -424,7 +441,7 @@ int32_t be_convert_single_elt(bvm *vm, int32_t idx, const char * arg_type = null
const void * func = be_tocomptr(vm, -6);
be_pop(vm, 6);
// berry_log_P("func=%p", func);
// berry_log_C("func=%p", func);
return (int32_t) func;
} else {
be_raise(vm, kTypeError, "Closure expected for callback type");
@ -445,7 +462,7 @@ int32_t be_convert_single_elt(bvm *vm, int32_t idx, const char * arg_type = null
type_ok = type_ok || (ret == 0 && arg_type_len != 1); // or NULL is accepted for an instance
if (!type_ok) {
berry_log_P("Unexpected argument type '%c', expected '%s'", provided_type, arg_type);
berry_log_C("Unexpected argument type '%c', expected '%s'", provided_type, arg_type);
}
return ret;
}
@ -475,14 +492,14 @@ int32_t be_convert_single_elt(bvm *vm, int32_t idx, const char * arg_type = null
// Stack: class_of_idx, class_of_target (or nil)
if (class_found) {
if (!be_isderived(vm, -2)) {
berry_log_P("Unexpected class type '%s', expected '%s'", be_classname(vm, idx), arg_type);
berry_log_C("Unexpected class type '%s', expected '%s'", be_classname(vm, idx), arg_type);
}
} else {
berry_log_P("Unable to find class '%s' (%d)", arg_type, arg_type_len);
berry_log_C("Unable to find class '%s' (%d)", arg_type, arg_type_len);
}
be_pop(vm, 2);
} else if (arg_type[0] != '.') {
berry_log_P("Unexpected instance type '%s', expected '%s'", be_classname(vm, idx), arg_type);
berry_log_C("Unexpected instance type '%s', expected '%s'", be_classname(vm, idx), arg_type);
}
return ret;

View File

@ -36,8 +36,8 @@ Renderer *Init_uDisplay(const char *desc);
\*********************************************************************************************/
extern "C" {
int be_disp_start(bvm *vm);
int be_disp_start(bvm *vm) {
int be_ntv_display_start(bvm *vm);
int be_ntv_display_start(bvm *vm) {
#ifdef USE_UNIVERSAL_DISPLAY
int32_t argc = be_top(vm); // Get the number of arguments
if (argc >= 1 && be_isstring(vm, 1)) {

View File

@ -167,7 +167,7 @@ void be_check_arg_type(bvm *vm, int32_t arg_start, int32_t argc, const char * ar
// check if we are missing arguments
if (arg_type != nullptr && arg_type[arg_idx] != 0) {
berry_log_P("Missing arguments, remaining type '%s'", &arg_type[arg_idx]);
berry_log_C("Missing arguments, remaining type '%s'", &arg_type[arg_idx]);
}
}
@ -777,7 +777,7 @@ extern "C" {
int lv0_register_button_encoder(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
bool inverted = false;
// berry_log_P("lv0_register_button_encoder argc=%d inverted=%d", argc, be_tobool(vm, 1));
// berry_log_C("lv0_register_button_encoder argc=%d inverted=%d", argc, be_tobool(vm, 1));
if (argc >= 1) {
inverted = be_tobool(vm, 1); // get the inverted flag
}
@ -794,7 +794,7 @@ extern "C" {
lvbe.btn[1].set_inverted(inverted);
lvbe.btn[2].set_gpio(btn2);
lvbe.btn[2].set_inverted(inverted);
berry_log_P(D_LOG_LVGL "Button Rotary encoder using GPIOs %d,%d,%d%s", btn0, btn1, btn2, inverted ? " (inverted)" : "");
berry_log_C(D_LOG_LVGL "Button Rotary encoder using GPIOs %d,%d,%d%s", btn0, btn1, btn2, inverted ? " (inverted)" : "");
lv_indev_drv_init(&lvbe.indev_drv);
lvbe.indev_drv.type = LV_INDEV_TYPE_ENCODER;
@ -837,7 +837,7 @@ extern "C" {
}
bool state = lvbe.btn[i].clear_state_changed();
data->state = state ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL;
// berry_log_P("Button event key %d state %d,%d", data->key, state, data->state);
// berry_log_C("Button event key %d state %d,%d", data->key, state, data->state);
break;
}
}

View File

@ -1,5 +1,5 @@
/*
xdrv_52_3_berry_native.ino - Berry scripting language, native fucnctions
xdrv_52_3_berry_tasmota.ino - Berry scripting language, native fucnctions
Copyright (C) 2021 Stephan Hadinger, Berry language by Guan Wenliang https://github.com/Skiars/berry
@ -260,20 +260,25 @@ extern "C" {
be_raise(vm, kTypeError, nullptr);
}
static void l_push_time(bvm *vm, struct tm *t, const char *unparsed) {
be_newobject(vm, "map");
map_insert_int(vm, "year", t->tm_year + 1900);
map_insert_int(vm, "month", t->tm_mon + 1);
map_insert_int(vm, "day", t->tm_mday);
map_insert_int(vm, "hour", t->tm_hour);
map_insert_int(vm, "min", t->tm_min);
map_insert_int(vm, "sec", t->tm_sec);
map_insert_int(vm, "weekday", t->tm_wday);
if (unparsed) map_insert_str(vm, "unparsed", unparsed);
be_pop(vm, 1);
}
int32_t l_time_dump(bvm *vm) {
int32_t top = be_top(vm); // Get the number of arguments
if (top == 2 && be_isint(vm, 2)) {
time_t ts = be_toint(vm, 2);
struct tm *t = gmtime(&ts);
be_newobject(vm, "map");
map_insert_int(vm, "year", t->tm_year + 1900);
map_insert_int(vm, "month", t->tm_mon + 1);
map_insert_int(vm, "day", t->tm_mday);
map_insert_int(vm, "hour", t->tm_hour);
map_insert_int(vm, "min", t->tm_min);
map_insert_int(vm, "sec", t->tm_sec);
map_insert_int(vm, "weekday", t->tm_wday);
be_pop(vm, 1);
l_push_time(vm, t, NULL);
be_return(vm);
}
be_raise(vm, kTypeError, nullptr);
@ -293,6 +298,23 @@ extern "C" {
be_raise(vm, kTypeError, nullptr);
}
int32_t l_strptime(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
if (argc == 3 && be_isstring(vm, 2) && be_isstring(vm, 3)) {
const char * input = be_tostring(vm, 2);
const char * format = be_tostring(vm, 3);
struct tm t = {0};
char * ret = strptime(input, format, &t);
if (ret) {
l_push_time(vm, &t, ret);
be_return(vm);
} else {
be_return_nil(vm);
}
}
be_raise(vm, kTypeError, nullptr);
}
// Berry: tasmota.delay(timer:int) -> nil
//
int32_t l_delay(struct bvm *vm);
@ -614,17 +636,4 @@ extern "C" {
}
}
void berry_log_P(const char * berry_buf, ...) {
// To save stack space support logging for max text length of 128 characters
char log_data[LOGSZ];
va_list arg;
va_start(arg, berry_buf);
uint32_t len = ext_vsnprintf_P(log_data, LOGSZ-3, berry_buf, arg);
va_end(arg);
if (len+3 > LOGSZ) { strcat(log_data, "..."); } // Actual data is more
berry_log(log_data);
}
#endif // USE_BERRY

View File

@ -35,8 +35,8 @@ extern Unishox compressor;
\*********************************************************************************************/
extern "C" {
int be_unishox_compress(bvm *vm);
int be_unishox_compress(bvm *vm) {
int be_ntv_unishox_compress(bvm *vm);
int be_ntv_unishox_compress(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
if (argc == 1 && be_isstring(vm, 1)) {
const char * s = be_tostring(vm, 1);
@ -57,8 +57,8 @@ extern "C" {
be_raise(vm, kTypeError, nullptr);
}
int be_unishox_decompress(bvm *vm);
int be_unishox_decompress(bvm *vm) {
int be_ntv_unishox_decompress(bvm *vm);
int be_ntv_unishox_decompress(bvm *vm) {
int32_t argc = be_top(vm); // Get the number of arguments
if (argc == 1 && be_isbytes(vm, 1)) {
size_t len;

View File

@ -17,6 +17,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// also includes tcp_client
#ifdef USE_BERRY
@ -84,7 +85,6 @@ extern "C" {
//
int32_t wc_init(struct bvm *vm);
int32_t wc_init(struct bvm *vm) {
// int32_t argc = be_top(vm); // Get the number of arguments
WiFiClient * wcl = new WiFiClient();
be_pushcomptr(vm, (void*) wcl);
be_setmember(vm, 1, ".w");
@ -96,6 +96,14 @@ extern "C" {
be_return_nil(vm);
}
int32_t wc_tcp_init(struct bvm *vm);
int32_t wc_tcp_init(struct bvm *vm) {
WiFiClient * wcl = new WiFiClient();
be_pushcomptr(vm, (void*) wcl);
be_setmember(vm, 1, ".w");
be_return_nil(vm);
}
HTTPClientLight * wc_getclient(struct bvm *vm) {
be_getmember(vm, 1, ".p");
void *p = be_tocomptr(vm, -1);
@ -123,6 +131,14 @@ extern "C" {
be_return_nil(vm);
}
int32_t wc_tcp_deinit(struct bvm *vm);
int32_t wc_tcp_deinit(struct bvm *vm) {
WiFiClient * wcl = wc_getwificlient(vm);
if (wcl != nullptr) { delete wcl; }
be_setmember(vm, 1, ".w");
be_return_nil(vm);
}
// wc.url_encode(string) -> string
int32_t wc_urlencode(struct bvm *vm);
int32_t wc_urlencode(struct bvm *vm) {
@ -151,6 +167,26 @@ extern "C" {
be_return(vm); /* return self */
}
// tcp.connect(address:string, port:int [, timeout_ms:int]) -> bool
int32_t wc_tcp_connect(struct bvm *vm);
int32_t wc_tcp_connect(struct bvm *vm) {
int32_t argc = be_top(vm);
if (argc >= 3 && be_isstring(vm, 2) && be_isint(vm, 3)) {
WiFiClient * tcp = wc_getwificlient(vm);
const char * address = be_tostring(vm, 2);
int32_t port = be_toint(vm, 3);
int32_t timeout = USE_BERRY_WEBCLIENT_TIMEOUT; // default timeout of 2 seconds
if (argc >= 4) {
timeout = be_toint(vm, 4);
}
// open connection
bool success = tcp->connect(address, port, timeout);
be_pushbool(vm, success);
be_return(vm); /* return self */
}
be_raise(vm, "attribute_error", NULL);
}
// wc.close(void) -> nil
int32_t wc_close(struct bvm *vm);
int32_t wc_close(struct bvm *vm) {
@ -159,6 +195,23 @@ extern "C" {
be_return_nil(vm);
}
// tcp.close(void) -> nil
int32_t wc_tcp_close(struct bvm *vm);
int32_t wc_tcp_close(struct bvm *vm) {
WiFiClient * tcp = wc_getwificlient(vm);
tcp->stop();
be_return_nil(vm);
}
// tcp.available(void) -> int
int32_t wc_tcp_available(struct bvm *vm);
int32_t wc_tcp_available(struct bvm *vm) {
WiFiClient * tcp = wc_getwificlient(vm);
int32_t available = tcp->available();
be_pushint(vm, available);
be_return(vm);
}
// wc.wc_set_timeouts([http_timeout_ms:int, tcp_timeout_ms:int]) -> self
int32_t wc_set_timeouts(struct bvm *vm);
int32_t wc_set_timeouts(struct bvm *vm) {
@ -239,6 +292,65 @@ extern "C" {
be_return(vm); /* return code */
}
// tcp.connected(void) -> bool
int32_t wc_tcp_connected(struct bvm *vm);
int32_t wc_tcp_connected(struct bvm *vm) {
WiFiClient * tcp = wc_getwificlient(vm);
be_pushbool(vm, tcp->connected());
be_return(vm); /* return code */
}
// tcp.write(bytes | string) -> int
int32_t wc_tcp_write(struct bvm *vm);
int32_t wc_tcp_write(struct bvm *vm) {
int32_t argc = be_top(vm);
if (argc >= 2 && (be_isstring(vm, 2) || be_isbytes(vm, 2))) {
WiFiClient * tcp = wc_getwificlient(vm);
const char * buf = nullptr;
size_t buf_len = 0;
if (be_isstring(vm, 2)) { // string
buf = be_tostring(vm, 2);
buf_len = strlen(buf);
} else { // bytes
buf = (const char*) be_tobytes(vm, 2, &buf_len);
}
size_t bw = tcp->write(buf, buf_len);
be_pushint(vm, bw);
be_return(vm); /* return code */
}
be_raise(vm, kTypeError, nullptr);
}
// tcp.read() -> string
int32_t wc_tcp_read(struct bvm *vm);
int32_t wc_tcp_read(struct bvm *vm) {
WiFiClient * tcp = wc_getwificlient(vm);
int32_t btr = tcp->available();
if (btr <= 0) {
be_pushstring(vm, "");
} else {
char * buf = (char*) be_pushbuffer(vm, btr);
int32_t btr2 = tcp->read((uint8_t*) buf, btr);
be_pushnstring(vm, buf, btr2);
}
be_return(vm); /* return code */
}
// tcp.readbytes() -> bytes
int32_t wc_tcp_readbytes(struct bvm *vm);
int32_t wc_tcp_readbytes(struct bvm *vm) {
WiFiClient * tcp = wc_getwificlient(vm);
int32_t btr = tcp->available();
if (btr <= 0) {
be_pushbytes(vm, nullptr, 0);
} else {
uint8_t * buf = (uint8_t*) be_pushbuffer(vm, btr);
int32_t btr2 = tcp->read(buf, btr);
be_pushbytes(vm, buf, btr2);
}
be_return(vm); /* return code */
}
void wc_errorCodeMessage(int32_t httpCode, uint32_t http_connect_time) {
if (httpCode < 0) {
if (httpCode <= -1000) {

View File

@ -126,7 +126,6 @@ void BerryDumpErrorAndClear(bvm *vm, bool berry_console) {
} else {
be_dumpstack(vm);
}
be_pop(vm, top);
}
// void callBerryMqttData(void) {
@ -226,6 +225,7 @@ int32_t callBerryEventDispatcher(const char *type, const char *cmd, int32_t idx,
BrTimeoutReset();
if (ret != 0) {
BerryDumpErrorAndClear(vm, false); // log in Tasmota console only
be_pop_all(berry.vm); // clear Berry stack
return ret;
}
be_pop(vm, 5);
@ -332,17 +332,20 @@ void BerryInit(void) {
ret_code1 = be_loadstring(berry.vm, berry_prog);
if (ret_code1 != 0) {
BerryDumpErrorAndClear(berry.vm, false);
be_pop_all(berry.vm); // clear Berry stack
break;
}
// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_BERRY "Berry code loaded, RAM used=%u"), be_gc_memcount(berry.vm));
ret_code2 = be_pcall(berry.vm, 0);
if (ret_code1 != 0) {
BerryDumpErrorAndClear(berry.vm, false);
be_pop_all(berry.vm); // clear Berry stack
break;
}
// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_BERRY "Berry code ran, RAM used=%u"), be_gc_memcount(berry.vm));
if (be_top(berry.vm) > 1) {
BerryDumpErrorAndClear(berry.vm, false);
be_pop_all(berry.vm); // clear Berry stack
} else {
be_pop(berry.vm, 1);
}
@ -387,6 +390,7 @@ void BrLoad(const char * script_name) {
BrTimeoutStart();
if (be_pcall(berry.vm, 1) != 0) {
BerryDumpErrorAndClear(berry.vm, false);
be_pop_all(berry.vm); // clear Berry stack
return;
}
BrTimeoutReset();
@ -492,6 +496,7 @@ void BrREPLRun(char * cmd) {
}
if (BE_EXCEPTION == ret_code) {
BerryDumpErrorAndClear(berry.vm, true);
be_pop_all(berry.vm); // clear Berry stack
// be_dumpstack(berry.vm);
// char exception_s[120];
// ext_snprintf_P(exception_s, sizeof(exception_s), PSTR("%s: %s"), be_tostring(berry.vm, -2), be_tostring(berry.vm, -1));

View File

@ -39,7 +39,7 @@ struct EZOO2 : public EZOStruct {
dtostrfd(O2, 2, str);
if (json) {
ResponseAppend_P(PSTR(",\"%s\":{\"" D_JSON_O2 "\":%d}" ), name, str);
ResponseAppend_P(PSTR(",\"%s\":{\"" D_JSON_O2 "\":%s}" ), name, str);
#ifdef USE_WEBSERVER
}else {
WSContentSend_PD(HTTP_SNS_O2, name, str);