mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
Added tasmota.memory()
This commit is contained in:
parent
2e97e58830
commit
ca49b7daf2
@ -14,6 +14,7 @@ extern int l_millis(bvm *vm);
|
||||
extern int l_timereached(bvm *vm);
|
||||
extern int l_rtc(bvm *vm);
|
||||
extern int l_time_dump(bvm *vm);
|
||||
extern int l_memory(bvm *vm);
|
||||
extern int l_yield(bvm *vm);
|
||||
extern int l_delay(bvm *vm);
|
||||
extern int l_scaleuint(bvm *vm);
|
||||
@ -2488,6 +2489,7 @@ void be_load_tasmota_ntvlib(bvm *vm)
|
||||
{ "time_reached", l_timereached },
|
||||
{ "rtc", l_rtc },
|
||||
{ "time_dump", l_time_dump },
|
||||
{ "memory", l_memory },
|
||||
{ "yield", l_yield },
|
||||
{ "delay", l_delay },
|
||||
{ "scale_uint", l_scaleuint },
|
||||
@ -2568,6 +2570,7 @@ class be_class_tasmota (scope: global, name: Tasmota) {
|
||||
time_reached, func(l_timereached)
|
||||
rtc, func(l_rtc)
|
||||
time_dump, func(l_time_dump)
|
||||
memory, func(l_memory)
|
||||
yield, func(l_yield)
|
||||
delay, func(l_delay)
|
||||
scale_uint, func(l_scaleuint)
|
||||
|
@ -34,6 +34,7 @@ extern const bcstring be_const_str_get_free_heap;
|
||||
extern const bcstring be_const_str_lv_msgbox;
|
||||
extern const bcstring be_const_str_publish;
|
||||
extern const bcstring be_const_str_finish;
|
||||
extern const bcstring be_const_str_memory;
|
||||
extern const bcstring be_const_str_SYMBOL_DUMMY;
|
||||
extern const bcstring be_const_str_SYMBOL_SETTINGS;
|
||||
extern const bcstring be_const_str_content_button;
|
||||
|
@ -33,7 +33,8 @@ be_define_const_str(log10, "log10", 2346846000u, 0, 5, NULL);
|
||||
be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, &be_const_str_lv_msgbox);
|
||||
be_define_const_str(lv_msgbox, "lv_msgbox", 689085206u, 0, 9, &be_const_str_publish);
|
||||
be_define_const_str(publish, "publish", 264247304u, 0, 7, NULL);
|
||||
be_define_const_str(finish, "finish", 1494643858u, 0, 6, NULL);
|
||||
be_define_const_str(finish, "finish", 1494643858u, 0, 6, &be_const_str_memory);
|
||||
be_define_const_str(memory, "memory", 2229924270u, 0, 6, NULL);
|
||||
be_define_const_str(SYMBOL_DUMMY, "SYMBOL_DUMMY", 3621732138u, 0, 12, &be_const_str_SYMBOL_SETTINGS);
|
||||
be_define_const_str(SYMBOL_SETTINGS, "SYMBOL_SETTINGS", 339656335u, 0, 15, &be_const_str_content_button);
|
||||
be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, NULL);
|
||||
@ -874,6 +875,6 @@ static const bstring* const m_string_table[] = {
|
||||
|
||||
static const struct bconststrtab m_const_string_table = {
|
||||
.size = 283,
|
||||
.count = 566,
|
||||
.count = 567,
|
||||
.table = m_string_table
|
||||
};
|
||||
|
@ -1,67 +1,68 @@
|
||||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(be_class_tasmota_map) {
|
||||
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
|
||||
{ be_const_key(gc, 41), be_const_closure(gc_closure) },
|
||||
{ be_const_key(resp_cmnd_failed, -1), be_const_func(l_respCmndFailed) },
|
||||
{ be_const_key(rtc, 23), be_const_func(l_rtc) },
|
||||
{ be_const_key(time_str, 9), be_const_closure(time_str_closure) },
|
||||
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
|
||||
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
|
||||
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
|
||||
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
|
||||
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
|
||||
{ be_const_key(remove_cmd, -1), be_const_closure(remove_cmd_closure) },
|
||||
{ be_const_key(set_light, 3), be_const_closure(set_light_closure) },
|
||||
{ be_const_key(find_op, -1), be_const_closure(find_op_closure) },
|
||||
{ be_const_key(set_power, 44), be_const_func(l_setpower) },
|
||||
{ be_const_key(millis, 52), be_const_func(l_millis) },
|
||||
{ be_const_key(gc, -1), be_const_closure(gc_closure) },
|
||||
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
|
||||
{ be_const_key(add_rule, 18), be_const_closure(add_rule_closure) },
|
||||
{ be_const_key(save, -1), be_const_func(l_save) },
|
||||
{ be_const_key(_rules, -1), be_const_int(0) },
|
||||
{ be_const_key(resp_cmnd_error, 50), be_const_func(l_respCmndError) },
|
||||
{ be_const_key(wire1, 8), be_const_int(1) },
|
||||
{ be_const_key(_timers, -1), be_const_int(2) },
|
||||
{ be_const_key(set_timer, -1), be_const_closure(set_timer_closure) },
|
||||
{ be_const_key(response_append, 46), be_const_func(l_respAppend) },
|
||||
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
|
||||
{ be_const_key(remove_rule, 35), be_const_closure(remove_rule_closure) },
|
||||
{ be_const_key(_drivers, 7), be_const_int(3) },
|
||||
{ be_const_key(resp_cmnd, -1), be_const_func(l_respCmnd) },
|
||||
{ be_const_key(add_driver, 22), be_const_closure(add_driver_closure) },
|
||||
{ be_const_key(exec_rules, 20), be_const_closure(exec_rules_closure) },
|
||||
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
|
||||
{ be_const_key(log, -1), be_const_func(l_logInfo) },
|
||||
{ be_const_key(add_rule, -1), be_const_closure(add_rule_closure) },
|
||||
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
|
||||
{ be_const_key(_cmd, -1), be_const_func(l_cmd) },
|
||||
{ be_const_key(millis, 1), be_const_func(l_millis) },
|
||||
{ be_const_key(web_send, 11), be_const_func(l_webSend) },
|
||||
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
|
||||
{ be_const_key(yield, -1), be_const_func(l_yield) },
|
||||
{ be_const_key(delay, -1), be_const_func(l_delay) },
|
||||
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
|
||||
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
|
||||
{ be_const_key(wire2, 34), be_const_int(4) },
|
||||
{ be_const_key(event, -1), be_const_closure(event_closure) },
|
||||
{ be_const_key(load, -1), be_const_closure(load_closure) },
|
||||
{ be_const_key(web_send, 16), be_const_func(l_webSend) },
|
||||
{ be_const_key(set_timer, -1), be_const_closure(set_timer_closure) },
|
||||
{ be_const_key(_cb, -1), be_const_int(0) },
|
||||
{ be_const_key(exec_cmd, -1), be_const_closure(exec_cmd_closure) },
|
||||
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
|
||||
{ be_const_key(cb_dispatch, 37), be_const_closure(cb_dispatch_closure) },
|
||||
{ be_const_key(_ccmd, -1), be_const_int(5) },
|
||||
{ be_const_key(time_reached, 51), be_const_func(l_timereached) },
|
||||
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
|
||||
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
|
||||
{ be_const_key(publish, 12), be_const_func(l_publish) },
|
||||
{ be_const_key(log, 40), be_const_func(l_logInfo) },
|
||||
{ be_const_key(_cb, -1), be_const_int(6) },
|
||||
{ be_const_key(i2c_enabled, 42), be_const_func(l_i2cenabled) },
|
||||
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
|
||||
{ be_const_key(resp_cmnd_done, 28), be_const_func(l_respCmndDone) },
|
||||
{ be_const_key(set_light, 1), be_const_closure(set_light_closure) },
|
||||
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
|
||||
{ be_const_key(_rules, 50), be_const_int(1) },
|
||||
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
|
||||
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
|
||||
{ be_const_key(load, 22), be_const_closure(load_closure) },
|
||||
{ be_const_key(yield, -1), be_const_func(l_yield) },
|
||||
{ be_const_key(event, -1), be_const_closure(event_closure) },
|
||||
{ be_const_key(add_cmd, 40), be_const_closure(add_cmd_closure) },
|
||||
{ be_const_key(find_key_i, -1), be_const_closure(find_key_i_closure) },
|
||||
{ be_const_key(delay, 43), be_const_func(l_delay) },
|
||||
{ be_const_key(remove_cmd, -1), be_const_closure(remove_cmd_closure) },
|
||||
{ be_const_key(remove_rule, 56), be_const_closure(remove_rule_closure) },
|
||||
{ be_const_key(resolvecmnd, 29), be_const_func(l_resolveCmnd) },
|
||||
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
|
||||
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
|
||||
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
|
||||
{ be_const_key(_timers, -1), be_const_int(2) },
|
||||
{ be_const_key(try_rule, -1), be_const_closure(try_rule_closure) },
|
||||
{ be_const_key(set_power, 45), be_const_func(l_setpower) },
|
||||
{ be_const_key(resp_cmnd_error, -1), be_const_func(l_respCmndError) },
|
||||
{ be_const_key(publish, -1), be_const_func(l_publish) },
|
||||
{ be_const_key(_ccmd, 13), be_const_int(3) },
|
||||
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
|
||||
{ be_const_key(wire1, 15), be_const_int(4) },
|
||||
{ be_const_key(gen_cb, 6), be_const_closure(gen_cb_closure) },
|
||||
{ be_const_key(rtc, -1), be_const_func(l_rtc) },
|
||||
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
|
||||
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
|
||||
{ be_const_key(memory, 47), be_const_func(l_memory) },
|
||||
{ be_const_key(time_str, 53), be_const_closure(time_str_closure) },
|
||||
{ be_const_key(save, -1), be_const_func(l_save) },
|
||||
{ be_const_key(find_op, 25), be_const_closure(find_op_closure) },
|
||||
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
|
||||
{ be_const_key(resolvecmnd, 5), be_const_func(l_resolveCmnd) },
|
||||
{ be_const_key(find_key_i, 10), be_const_closure(find_key_i_closure) },
|
||||
{ be_const_key(gen_cb, -1), be_const_closure(gen_cb_closure) },
|
||||
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
|
||||
{ be_const_key(wire2, 8), be_const_int(5) },
|
||||
{ be_const_key(wire_scan, 55), be_const_closure(wire_scan_closure) },
|
||||
{ be_const_key(resp_cmnd_failed, -1), be_const_func(l_respCmndFailed) },
|
||||
{ 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(resp_cmnd, -1), be_const_func(l_respCmnd) },
|
||||
{ be_const_key(_drivers, -1), be_const_int(6) },
|
||||
{ be_const_key(add_driver, -1), be_const_closure(add_driver_closure) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
be_class_tasmota_map,
|
||||
56
|
||||
57
|
||||
);
|
||||
|
||||
BE_EXPORT_VARIABLE be_define_const_class(
|
||||
|
@ -168,6 +168,29 @@ extern "C" {
|
||||
be_raise(vm, kTypeError, nullptr);
|
||||
}
|
||||
|
||||
// Berry: tasmota.memory(timer:int) -> bool
|
||||
//
|
||||
int32_t l_memory(struct bvm *vm);
|
||||
int32_t l_memory(struct bvm *vm) {
|
||||
int32_t top = be_top(vm); // Get the number of arguments
|
||||
if (top == 1) { // no argument (instance only)
|
||||
be_newobject(vm, "map");
|
||||
map_insert_int(vm, "flash", ESP.getFlashChipSize() / 1024);
|
||||
map_insert_int(vm, "program", ESP_getSketchSize() / 1024);
|
||||
map_insert_int(vm, "program_free", ESP.getFreeSketchSpace() / 1024);
|
||||
map_insert_int(vm, "heap_free", ESP_getFreeHeap() / 1024);
|
||||
int32_t freeMaxMem = 100 - (int32_t)(ESP_getMaxAllocHeap() * 100 / ESP_getFreeHeap());
|
||||
map_insert_int(vm, "frag", freeMaxMem);
|
||||
if (psramFound()) {
|
||||
map_insert_int(vm, "psram", ESP.getPsramSize() / 1024);
|
||||
map_insert_int(vm, "psram_free", ESP.getFreePsram() / 1024);
|
||||
}
|
||||
be_pop(vm, 1);
|
||||
be_return(vm);
|
||||
}
|
||||
be_raise(vm, kTypeError, nullptr);
|
||||
}
|
||||
|
||||
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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user