Merge pull request #15101 from s-hadinger/fix_cron

Berry fix cron
This commit is contained in:
s-hadinger 2022-03-11 09:02:42 +01:00 committed by GitHub
commit 15ce5ac6e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 1202 additions and 1281 deletions

View File

@ -535,9 +535,7 @@ extern const bcstring be_const_str_json_fdump;
extern const bcstring be_const_str_json_fdump_any;
extern const bcstring be_const_str_json_fdump_list;
extern const bcstring be_const_str_json_fdump_map;
extern const bcstring be_const_str_k;
extern const bcstring be_const_str_keys;
extern const bcstring be_const_str_kv;
extern const bcstring be_const_str_label;
extern const bcstring be_const_str_last_modified;
extern const bcstring be_const_str_leds;
@ -856,7 +854,6 @@ extern const bcstring be_const_str_update;
extern const bcstring be_const_str_upper;
extern const bcstring be_const_str_url_encode;
extern const bcstring be_const_str_uuid4;
extern const bcstring be_const_str_v;
extern const bcstring be_const_str_value;
extern const bcstring be_const_str_value_error;
extern const bcstring be_const_str_valuer_error;

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,16 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_ccronexpr_map) {
{ be_const_key(init, -1), be_const_ctype_func(ccronexpr_init) },
{ be_const_key(now, -1), be_const_static_ctype_func(ccronexpr_now) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
{ be_const_key(next, -1), be_const_ctype_func(ccronexpr_next) },
{ be_const_key(init, 0), be_const_ctype_func(ccronexpr_init) },
{ be_const_key(deinit, -1), be_const_ctype_func(ccronexpr_init) },
{ be_const_key(time_reached, -1), be_const_static_ctype_func(ccronexpr_time_reached) },
{ be_const_key(time_reached, 1), be_const_static_ctype_func(ccronexpr_time_reached) },
{ be_const_key(_X2Ep, -1), be_const_var(0) },
};
static be_define_const_map(
be_class_ccronexpr_map,
6
5
);
BE_EXPORT_VARIABLE be_define_const_class(

View File

@ -1,97 +1,96 @@
#include "be_constobj.h"
static be_define_const_map_slots(be_class_tasmota_map) {
{ be_const_key(gc, -1), be_const_closure(Tasmota_gc_closure) },
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(web_send, 33), be_const_func(l_webSend) },
{ be_const_key(add_driver, 21), be_const_closure(Tasmota_add_driver_closure) },
{ be_const_key(wd, 16), be_const_var(0) },
{ be_const_key(resp_cmnd_error, 25), be_const_func(l_respCmndError) },
{ be_const_key(publish, 71), be_const_func(l_publish) },
{ be_const_key(gen_cb, 0), be_const_closure(Tasmota_gen_cb_closure) },
{ be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) },
{ be_const_key(try_rule, -1), be_const_closure(Tasmota_try_rule_closure) },
{ be_const_key(set_timer, -1), be_const_closure(Tasmota_set_timer_closure) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(cmd_res, -1), be_const_var(1) },
{ be_const_key(millis, 35), be_const_func(l_millis) },
{ be_const_key(chars_in_string, 82), be_const_closure(Tasmota_chars_in_string_closure) },
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
{ be_const_key(set_light, 40), be_const_closure(Tasmota_set_light_closure) },
{ be_const_key(find_op, -1), be_const_closure(Tasmota_find_op_closure) },
{ be_const_key(cmd_res, -1), be_const_var(0) },
{ be_const_key(add_cmd, 44), be_const_closure(Tasmota_add_cmd_closure) },
{ be_const_key(strptime, 81), be_const_func(l_strptime) },
{ be_const_key(wire_scan, -1), be_const_closure(Tasmota_wire_scan_closure) },
{ be_const_key(eth, 32), be_const_func(l_eth) },
{ be_const_key(remove_cmd, 52), be_const_closure(Tasmota_remove_cmd_closure) },
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
{ be_const_key(add_rule, -1), be_const_closure(Tasmota_add_rule_closure) },
{ be_const_key(run_cron, -1), be_const_closure(Tasmota_run_cron_closure) },
{ be_const_key(add_driver, -1), be_const_closure(Tasmota_add_driver_closure) },
{ be_const_key(chars_in_string, -1), be_const_closure(Tasmota_chars_in_string_closure) },
{ be_const_key(remove_cron, -1), be_const_closure(Tasmota_remove_cron_closure) },
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
{ be_const_key(memory, 23), be_const_func(l_memory) },
{ be_const_key(fast_loop, -1), be_const_closure(Tasmota_fast_loop_closure) },
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
{ be_const_key(add_cron, -1), be_const_closure(Tasmota_add_cron_closure) },
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
{ be_const_key(init, 41), be_const_closure(Tasmota_init_closure) },
{ be_const_key(add_rule, 19), be_const_closure(Tasmota_add_rule_closure) },
{ be_const_key(resp_cmnd_failed, -1), be_const_func(l_respCmndFailed) },
{ be_const_key(exec_tele, -1), be_const_closure(Tasmota_exec_tele_closure) },
{ be_const_key(add_fast_loop, -1), be_const_closure(Tasmota_add_fast_loop_closure) },
{ be_const_key(_global_def, -1), be_const_comptr(&be_tasmota_global_struct) },
{ be_const_key(yield, 73), be_const_func(l_yield) },
{ be_const_key(next_cron, -1), be_const_closure(Tasmota_next_cron_closure) },
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
{ be_const_key(time_reached, 11), be_const_func(l_timereached) },
{ be_const_key(delay, -1), be_const_func(l_delay) },
{ be_const_key(rtc, -1), be_const_func(l_rtc) },
{ be_const_key(wire2, -1), be_const_var(2) },
{ be_const_key(add_cmd, 75), be_const_closure(Tasmota_add_cmd_closure) },
{ be_const_key(exec_rules, 12), be_const_closure(Tasmota_exec_rules_closure) },
{ be_const_key(strptime, 74), be_const_func(l_strptime) },
{ be_const_key(wire_scan, -1), be_const_closure(Tasmota_wire_scan_closure) },
{ be_const_key(run_cron, 10), be_const_closure(Tasmota_run_cron_closure) },
{ be_const_key(get_light, 46), be_const_closure(Tasmota_get_light_closure) },
{ be_const_key(cmd, -1), be_const_closure(Tasmota_cmd_closure) },
{ be_const_key(remove_cmd, -1), be_const_closure(Tasmota_remove_cmd_closure) },
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
{ be_const_key(_fl, -1), be_const_var(3) },
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
{ be_const_key(global, -1), be_const_var(4) },
{ be_const_key(_debug_present, 39), be_const_var(5) },
{ be_const_key(run_deferred, 18), be_const_closure(Tasmota_run_deferred_closure) },
{ be_const_key(load, -1), be_const_closure(Tasmota_load_closure) },
{ be_const_key(get_switch, 56), be_const_func(l_getswitch) },
{ be_const_key(_ccmd, -1), be_const_var(6) },
{ be_const_key(kv, 14), be_const_closure(Tasmota_kv_closure) },
{ be_const_key(event, 22), be_const_closure(Tasmota_event_closure) },
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
{ be_const_key(_rules, 20), be_const_var(7) },
{ be_const_key(_timers, -1), be_const_var(8) },
{ be_const_key(remove_timer, 5), be_const_closure(Tasmota_remove_timer_closure) },
{ be_const_key(eth, -1), be_const_func(l_eth) },
{ be_const_key(arch, 65), be_const_func(l_arch) },
{ be_const_key(remove_driver, -1), be_const_closure(Tasmota_remove_driver_closure) },
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(log, -1), be_const_func(l_logInfo) },
{ be_const_key(find_op, 78), be_const_closure(Tasmota_find_op_closure) },
{ be_const_key(hs2rgb, -1), be_const_closure(Tasmota_hs2rgb_closure) },
{ be_const_key(find_key_i, -1), be_const_closure(Tasmota_find_key_i_closure) },
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
{ be_const_key(save, -1), be_const_func(l_save) },
{ be_const_key(exec_cmd, 37), be_const_closure(Tasmota_exec_cmd_closure) },
{ be_const_key(remove_rule, -1), be_const_closure(Tasmota_remove_rule_closure) },
{ be_const_key(wd, 17), be_const_var(1) },
{ be_const_key(_crons, 59), be_const_var(2) },
{ be_const_key(add_cron, 25), be_const_closure(Tasmota_add_cron_closure) },
{ be_const_key(global, -1), be_const_var(3) },
{ be_const_key(next_cron, 43), be_const_closure(Tasmota_next_cron_closure) },
{ be_const_key(init, -1), be_const_closure(Tasmota_init_closure) },
{ be_const_key(exec_cmd, -1), be_const_closure(Tasmota_exec_cmd_closure) },
{ be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) },
{ be_const_key(add_fast_loop, 75), be_const_closure(Tasmota_add_fast_loop_closure) },
{ be_const_key(publish_result, -1), be_const_func(l_publish_result) },
{ be_const_key(settings, -1), be_const_var(9) },
{ be_const_key(time_str, -1), be_const_closure(Tasmota_time_str_closure) },
{ be_const_key(wire1, -1), be_const_var(10) },
{ be_const_key(_drivers, -1), be_const_var(11) },
{ be_const_key(scale_uint, 43), be_const_func(l_scaleuint) },
{ be_const_key(strftime, 9), be_const_func(l_strftime) },
{ be_const_key(_cmd, -1), be_const_func(l_cmd) },
{ be_const_key(wire2, -1), be_const_var(4) },
{ be_const_key(exec_tele, 48), be_const_closure(Tasmota_exec_tele_closure) },
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
{ be_const_key(_global_def, 29), be_const_comptr(&be_tasmota_global_struct) },
{ be_const_key(rtc, 4), be_const_func(l_rtc) },
{ be_const_key(resp_cmnd_error, 9), be_const_func(l_respCmndError) },
{ be_const_key(cmd, -1), be_const_closure(Tasmota_cmd_closure) },
{ be_const_key(set_timer, 80), be_const_closure(Tasmota_set_timer_closure) },
{ be_const_key(gc, -1), be_const_closure(Tasmota_gc_closure) },
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
{ be_const_key(scale_uint, 21), be_const_func(l_scaleuint) },
{ be_const_key(_rules, -1), be_const_var(5) },
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
{ be_const_key(arch, 73), be_const_func(l_arch) },
{ be_const_key(resp_cmnd_failed, -1), be_const_func(l_respCmndFailed) },
{ be_const_key(load, 54), be_const_closure(Tasmota_load_closure) },
{ be_const_key(remove_timer, -1), be_const_closure(Tasmota_remove_timer_closure) },
{ be_const_key(find_key_i, 6), be_const_closure(Tasmota_find_key_i_closure) },
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
{ be_const_key(wire1, 3), be_const_var(6) },
{ be_const_key(_drivers, -1), be_const_var(7) },
{ be_const_key(log, 38), be_const_func(l_logInfo) },
{ be_const_key(exec_rules, 58), be_const_closure(Tasmota_exec_rules_closure) },
{ be_const_key(_ccmd, -1), be_const_var(8) },
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
{ be_const_key(gen_cb, -1), be_const_closure(Tasmota_gen_cb_closure) },
{ be_const_key(_cmd, 13), be_const_func(l_cmd) },
{ be_const_key(time_str, 42), be_const_closure(Tasmota_time_str_closure) },
{ be_const_key(hs2rgb, -1), be_const_closure(Tasmota_hs2rgb_closure) },
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
{ be_const_key(get_light, -1), be_const_closure(Tasmota_get_light_closure) },
{ be_const_key(save, 20), be_const_func(l_save) },
{ be_const_key(remove_rule, 65), be_const_closure(Tasmota_remove_rule_closure) },
{ be_const_key(delay, -1), be_const_func(l_delay) },
{ be_const_key(web_send, -1), be_const_func(l_webSend) },
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
{ be_const_key(set_light, -1), be_const_closure(Tasmota_set_light_closure) },
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
{ be_const_key(publish, -1), be_const_func(l_publish) },
{ be_const_key(_debug_present, -1), be_const_var(9) },
{ be_const_key(settings, -1), be_const_var(10) },
{ be_const_key(get_free_heap, 16), be_const_func(l_getFreeHeap) },
{ be_const_key(check_not_method, -1), be_const_closure(Tasmota_check_not_method_closure) },
{ be_const_key(remove_cron, -1), be_const_closure(Tasmota_remove_cron_closure) },
{ be_const_key(resolvecmnd, 51), be_const_func(l_resolveCmnd) },
{ be_const_key(event, -1), be_const_closure(Tasmota_event_closure) },
{ be_const_key(run_deferred, -1), be_const_closure(Tasmota_run_deferred_closure) },
{ be_const_key(read_sensors, -1), be_const_func(l_read_sensors) },
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
{ be_const_key(millis, 35), be_const_func(l_millis) },
{ be_const_key(yield, -1), be_const_func(l_yield) },
{ be_const_key(remove_driver, 84), be_const_closure(Tasmota_remove_driver_closure) },
{ be_const_key(_timers, 83), be_const_var(11) },
{ be_const_key(_fl, 12), be_const_var(12) },
{ be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) },
{ be_const_key(_crons, 63), be_const_var(12) },
{ be_const_key(memory, -1), be_const_func(l_memory) },
{ be_const_key(read_sensors, 54), be_const_func(l_read_sensors) },
{ be_const_key(get_switch, -1), be_const_func(l_getswitch) },
};
static be_define_const_map(
be_class_tasmota_map,
86
85
);
BE_EXPORT_VARIABLE be_define_const_class(

View File

@ -71,7 +71,7 @@ class be_class_ccronexpr (scope: global, name: ccronexpr) {
.p, var // pointer to cron_expr*
init, ctype_func(ccronexpr_init)
deinit, ctype_func(ccronexpr_init)
// deinit, ctype_func(ccronexpr_deinit)
next, ctype_func(ccronexpr_next)
time_reached, static_ctype_func(ccronexpr_time_reached)

View File

@ -638,6 +638,7 @@ be_local_closure(Tasmota_remove_driver, /* name */
);
/*******************************************************************/
/********************************************************************
** Solidified function: fast_loop
********************************************************************/
@ -1196,7 +1197,7 @@ be_local_closure(Tasmota_load, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
2, /* varg */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
@ -1229,7 +1230,7 @@ be_local_closure(Tasmota_load, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
2, /* varg */
0, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
@ -1795,80 +1796,6 @@ be_local_closure(Tasmota_hs2rgb, /* name */
/*******************************************************************/
/********************************************************************
** Solidified function: init
********************************************************************/
be_local_closure(KV_init, /* name */
be_nested_proto(
3, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str(k),
/* K1 */ be_nested_str(v),
}),
&be_const_str_init,
&be_const_str_solidified,
( &(const binstruction[ 3]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2
0x80000000, // 0002 RET 0
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: KV
********************************************************************/
be_local_class(KV,
2,
NULL,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key(k, 2), be_const_var(0) },
{ be_const_key(v, -1), be_const_var(1) },
{ be_const_key(init, -1), be_const_closure(KV_init_closure) },
})),
be_str_literal("KV")
);
/********************************************************************
** Solidified function: kv
********************************************************************/
be_local_closure(Tasmota_kv, /* name */
be_nested_proto(
7, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_const_class(be_class_KV),
}),
&be_const_str_kv,
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
0x580C0000, // 0000 LDCONST R3 K0
0xB4000000, // 0001 CLASS K0
0x5C100600, // 0002 MOVE R4 R3
0x5C140200, // 0003 MOVE R5 R1
0x5C180400, // 0004 MOVE R6 R2
0x7C100400, // 0005 CALL R4 2
0x80040800, // 0006 RET 1 R4
})
)
);
/*******************************************************************/
/********************************************************************
@ -2136,23 +2063,24 @@ be_local_closure(Tasmota_next_cron, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str(_crons),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str(size),
/* K3 */ be_nested_str(id),
/* K4 */ be_nested_str(trig),
/* K5 */ be_const_int(1),
}),
&be_const_str_next_cron,
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
( &(const binstruction[17]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x780A000C, // 0001 JMPF R2 #000F
0x780A000D, // 0001 JMPF R2 #0010
0x580C0001, // 0002 LDCONST R3 K1
0x8C100502, // 0003 GETMET R4 R2 K2
0x7C100200, // 0004 CALL R4 1
0x14100604, // 0005 LT R4 R3 R4
0x78120007, // 0006 JMPF R4 #000F
0x78120008, // 0006 JMPF R4 #0010
0x94100403, // 0007 GETIDX R4 R2 R3
0x88100903, // 0008 GETMBR R4 R4 K3
0x1C100801, // 0009 EQ R4 R4 R1
@ -2160,8 +2088,9 @@ be_local_closure(Tasmota_next_cron, /* name */
0x94100403, // 000B GETIDX R4 R2 R3
0x88100904, // 000C GETMBR R4 R4 K4
0x80040800, // 000D RET 1 R4
0x7001FFF3, // 000E JMP #0003
0x80000000, // 000F RET 0
0x000C0705, // 000E ADD R3 R3 K5
0x7001FFF2, // 000F JMP #0003
0x80000000, // 0010 RET 0
})
)
);
@ -2314,6 +2243,7 @@ be_local_closure(Tasmota_get_light, /* name */
);
/*******************************************************************/
/********************************************************************
** Solidified function: check_not_method
********************************************************************/
@ -2379,9 +2309,9 @@ class be_class_tasmota (scope: global, name: Tasmota) {
_drivers, var
wire1, var
wire2, var
cmd_res, var
global, var
settings, var
cmd_res, var
wd, var
_debug_present, var
@ -2391,7 +2321,6 @@ class be_class_tasmota (scope: global, name: Tasmota) {
_settings_ptr, comptr(&Settings)
init, closure(Tasmota_init_closure)
kv, closure(Tasmota_kv_closure)
get_free_heap, func(l_getFreeHeap)
arch, func(l_arch)

View File

@ -343,6 +343,7 @@ class Tasmota
if crons[i].id == id
return crons[i].trig
end
i += 1
end
end
end