mirror of https://github.com/arendst/Tasmota.git
Support for ZIP fs and download (#13632)
* Support for ZIP fs and download * Fix
This commit is contained in:
parent
b749e5e792
commit
1f229e7534
|
@ -18,13 +18,17 @@
|
|||
#include "be_sys.h"
|
||||
#include <time.h>
|
||||
|
||||
extern int m_path_listdir(bvm *vm);
|
||||
|
||||
static int m_path_exists(bvm *vm)
|
||||
{
|
||||
const char *path = NULL;
|
||||
if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
|
||||
path = be_tostring(vm, 1);
|
||||
be_pushbool(vm, be_isexist(path));
|
||||
} else {
|
||||
be_pushbool(vm, bfalse);
|
||||
}
|
||||
be_pushbool(vm, be_isexist(path));
|
||||
be_return(vm);
|
||||
}
|
||||
extern time_t be_last_modified(void *hfile);
|
||||
|
@ -43,10 +47,24 @@ static int m_path_last_modified(bvm *vm)
|
|||
be_return_nil(vm);
|
||||
}
|
||||
|
||||
static int m_path_remove(bvm *vm)
|
||||
{
|
||||
const char *path = NULL;
|
||||
if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
|
||||
path = be_tostring(vm, 1);
|
||||
be_pushbool(vm, be_unlink(path));
|
||||
} else {
|
||||
be_pushbool(vm, bfalse);
|
||||
}
|
||||
be_return(vm);
|
||||
}
|
||||
|
||||
/* @const_object_info_begin
|
||||
module path (scope: global, file: tasmota_path) {
|
||||
exists, func(m_path_exists)
|
||||
last_modified, func(m_path_last_modified)
|
||||
listdir, func(m_path_listdir)
|
||||
remove, func(m_path_remove)
|
||||
}
|
||||
@const_object_info_end */
|
||||
#include "../generate/be_fixed_tasmota_path.h"
|
||||
|
|
|
@ -18,7 +18,9 @@
|
|||
// Local pointer for file managment
|
||||
#ifdef USE_UFILESYS
|
||||
#include <FS.h>
|
||||
#include "ZipReadFS.h"
|
||||
extern FS *ufsp;
|
||||
FS zip_ufsp(ZipReadFSImplPtr(new ZipReadFSImpl(&ufsp)));
|
||||
#endif // USE_UFILESYS
|
||||
|
||||
/* this file contains configuration for the file system. */
|
||||
|
@ -95,10 +97,42 @@ BERRY_API void be_writebuffer(const char *buffer, size_t length)
|
|||
// be_fwrite(stdout, buffer, length);
|
||||
}
|
||||
|
||||
|
||||
extern "C" {
|
||||
int m_path_listdir(bvm *vm)
|
||||
{
|
||||
if (be_top(vm) >= 1 && be_isstring(vm, 1)) {
|
||||
const char *path = be_tostring(vm, 1);
|
||||
be_newobject(vm, "list");
|
||||
|
||||
File dir = ufsp->open(path, "r");
|
||||
if (dir) {
|
||||
dir.rewindDirectory();
|
||||
while (1) {
|
||||
File entry = dir.openNextFile();
|
||||
if (!entry) {
|
||||
break;
|
||||
}
|
||||
const char * fn = entry.name();
|
||||
if (strcmp(fn, ".") && strcmp(fn, "..")) {
|
||||
be_pushstring(vm, fn);
|
||||
be_data_push(vm, -2);
|
||||
be_pop(vm, 1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
be_pop(vm, 1);
|
||||
be_return(vm);
|
||||
|
||||
}
|
||||
be_return_nil(vm);
|
||||
}
|
||||
}
|
||||
|
||||
BERRY_API char* be_readstring(char *buffer, size_t size)
|
||||
{
|
||||
return 0;
|
||||
// return be_fgets(stdin, buffer, (int)size);
|
||||
return be_fgets(stdin, buffer, (int)size);
|
||||
}
|
||||
|
||||
/* use the standard library implementation file API. */
|
||||
|
@ -106,7 +140,7 @@ BERRY_API char* be_readstring(char *buffer, size_t size)
|
|||
void* be_fopen(const char *filename, const char *modes)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
if (ufsp != nullptr && filename != nullptr && modes != nullptr) {
|
||||
if (filename != nullptr && modes != nullptr) {
|
||||
char fname2[strlen(filename) + 2];
|
||||
if (filename[0] == '/') {
|
||||
strcpy(fname2, filename); // copy unchanged
|
||||
|
@ -115,7 +149,7 @@ void* be_fopen(const char *filename, const char *modes)
|
|||
strcpy(fname2 + 1, filename); // prepend with '/'
|
||||
}
|
||||
// Serial.printf("be_fopen filename=%s, modes=%s\n", filename, modes);
|
||||
File f = ufsp->open(fname2, modes); // returns an object, not a pointer
|
||||
File f = zip_ufsp.open(fname2, modes); // returns an object, not a pointer
|
||||
if (f) {
|
||||
File * f_ptr = new File(f); // copy to dynamic object
|
||||
*f_ptr = f; // TODO is this necessary?
|
||||
|
@ -127,11 +161,24 @@ void* be_fopen(const char *filename, const char *modes)
|
|||
// return fopen(filename, modes);
|
||||
}
|
||||
|
||||
// Tasmota specific, get the underlying Arduino File
|
||||
File * be_get_arduino_file(void *hfile)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
return f_ptr;
|
||||
}
|
||||
#endif // USE_UFILESYS
|
||||
return nullptr;
|
||||
// return fopen(filename, modes);
|
||||
}
|
||||
|
||||
int be_fclose(void *hfile)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fclose\n");
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
f_ptr->close();
|
||||
delete f_ptr;
|
||||
|
@ -146,7 +193,7 @@ size_t be_fwrite(void *hfile, const void *buffer, size_t length)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fwrite %d\n", length);
|
||||
if (ufsp != nullptr && hfile != nullptr && buffer != nullptr) {
|
||||
if (hfile != nullptr && buffer != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
return f_ptr->write((const uint8_t*) buffer, length);
|
||||
}
|
||||
|
@ -159,7 +206,7 @@ size_t be_fread(void *hfile, void *buffer, size_t length)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fread %d\n", length);
|
||||
if (ufsp != nullptr && hfile != nullptr && buffer != nullptr) {
|
||||
if (hfile != nullptr && buffer != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
int32_t ret = f_ptr->read((uint8_t*) buffer, length);
|
||||
if (ret >= 0) {
|
||||
|
@ -175,13 +222,19 @@ size_t be_fread(void *hfile, void *buffer, size_t length)
|
|||
char* be_fgets(void *hfile, void *buffer, int size)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fgets %d\n", size);
|
||||
if (size <= 2) { return nullptr; } // can't work if size is 2 or less
|
||||
// Serial.printf("be_fgets size=%d hfile=%p buf=%p\n", size, hfile, buffer);
|
||||
uint8_t * buf = (uint8_t*) buffer;
|
||||
if (ufsp != nullptr && hfile != nullptr && buffer != nullptr && size > 0) {
|
||||
if (hfile != nullptr && buffer != nullptr && size > 0) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
int ret = f_ptr->readBytesUntil('\n', buf, size - 1);
|
||||
int ret = f_ptr->readBytesUntil('\n', buf, size - 2);
|
||||
// Serial.printf("be_fgets ret=%d\n", ret);
|
||||
if (ret >= 0) {
|
||||
buf[ret] = 0; // add string terminator
|
||||
if (ret > 0 && ret < size - 2) {
|
||||
buf[ret] = '\n';
|
||||
buf[ret+1] = 0;
|
||||
}
|
||||
return (char*) buffer;
|
||||
}
|
||||
}
|
||||
|
@ -194,7 +247,7 @@ int be_fseek(void *hfile, long offset)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fseek %d\n", offset);
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
if (f_ptr->seek(offset)) {
|
||||
return 0; // success
|
||||
|
@ -209,7 +262,7 @@ long int be_ftell(void *hfile)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_ftell\n");
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
return f_ptr->position();
|
||||
}
|
||||
|
@ -222,7 +275,7 @@ long int be_fflush(void *hfile)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fflush\n");
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
f_ptr->flush();
|
||||
}
|
||||
|
@ -235,7 +288,7 @@ size_t be_fsize(void *hfile)
|
|||
{
|
||||
#ifdef USE_UFILESYS
|
||||
// Serial.printf("be_fsize\n");
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
return f_ptr->size();
|
||||
}
|
||||
|
@ -251,7 +304,7 @@ size_t be_fsize(void *hfile)
|
|||
extern "C" time_t be_last_modified(void *hfile)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
if (ufsp != nullptr && hfile != nullptr) {
|
||||
if (hfile != nullptr) {
|
||||
File * f_ptr = (File*) hfile;
|
||||
return f_ptr->getLastWrite();
|
||||
}
|
||||
|
@ -262,16 +315,29 @@ extern "C" time_t be_last_modified(void *hfile)
|
|||
int be_isexist(const char *filename)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
if (ufsp != nullptr) {
|
||||
char fname2[strlen(filename) + 2];
|
||||
if (filename[0] == '/') {
|
||||
strcpy(fname2, filename); // copy unchanged
|
||||
} else {
|
||||
fname2[0] = '/';
|
||||
strcpy(fname2 + 1, filename); // prepend with '/'
|
||||
}
|
||||
return ufsp->exists(fname2);
|
||||
char fname2[strlen(filename) + 2];
|
||||
if (filename[0] == '/') {
|
||||
strcpy(fname2, filename); // copy unchanged
|
||||
} else {
|
||||
fname2[0] = '/';
|
||||
strcpy(fname2 + 1, filename); // prepend with '/'
|
||||
}
|
||||
return zip_ufsp.exists(fname2);
|
||||
#endif // USE_UFILESYS
|
||||
return 0;
|
||||
}
|
||||
|
||||
int be_unlink(const char *filename)
|
||||
{
|
||||
#ifdef USE_UFILESYS
|
||||
char fname2[strlen(filename) + 2];
|
||||
if (filename[0] == '/') {
|
||||
strcpy(fname2, filename); // copy unchanged
|
||||
} else {
|
||||
fname2[0] = '/';
|
||||
strcpy(fname2 + 1, filename); // prepend with '/'
|
||||
}
|
||||
return zip_ufsp.remove(fname2);
|
||||
#endif // USE_UFILESYS
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ extern int wc_addheader(bvm *vm);
|
|||
extern int wc_GET(bvm *vm);
|
||||
extern int wc_POST(bvm *vm);
|
||||
extern int wc_getstring(bvm *vm);
|
||||
extern int wc_writefile(bvm *vm);
|
||||
extern int wc_getsize(bvm *vm);
|
||||
|
||||
#include "../generate/be_fixed_be_class_webclient.h"
|
||||
|
@ -48,6 +49,7 @@ class be_class_webclient (scope: global, name: webclient) {
|
|||
GET, func(wc_GET)
|
||||
POST, func(wc_POST)
|
||||
get_string, func(wc_getstring)
|
||||
write_file, func(wc_writefile)
|
||||
get_size, func(wc_getsize)
|
||||
}
|
||||
@const_object_info_end */
|
||||
|
|
|
@ -1,340 +1,342 @@
|
|||
extern const bcstring be_const_str_size;
|
||||
extern const bcstring be_const_str_type;
|
||||
extern const bcstring be_const_str_has_arg;
|
||||
extern const bcstring be_const_str_remove;
|
||||
extern const bcstring be_const_str_SERIAL_6E1;
|
||||
extern const bcstring be_const_str_SERIAL_8O1;
|
||||
extern const bcstring be_const_str_cosh;
|
||||
extern const bcstring be_const_str_global;
|
||||
extern const bcstring be_const_str_last_modified;
|
||||
extern const bcstring be_const_str_public_key;
|
||||
extern const bcstring be_const_str_dac_voltage;
|
||||
extern const bcstring be_const_str_set_power;
|
||||
extern const bcstring be_const_str_url_encode;
|
||||
extern const bcstring be_const_str_SERIAL_7N2;
|
||||
extern const bcstring be_const_str_content_button;
|
||||
extern const bcstring be_const_str__cb;
|
||||
extern const bcstring be_const_str_atan;
|
||||
extern const bcstring be_const_str_dot_p2;
|
||||
extern const bcstring be_const_str_iter;
|
||||
extern const bcstring be_const_str_remove_timer;
|
||||
extern const bcstring be_const_str_select;
|
||||
extern const bcstring be_const_str_setmember;
|
||||
extern const bcstring be_const_str_top;
|
||||
extern const bcstring be_const_str_decrypt;
|
||||
extern const bcstring be_const_str_gamma10;
|
||||
extern const bcstring be_const_str_i2c_enabled;
|
||||
extern const bcstring be_const_str_on;
|
||||
extern const bcstring be_const_str_pin_mode;
|
||||
extern const bcstring be_const_str_SERIAL_7O1;
|
||||
extern const bcstring be_const_str_chars_in_string;
|
||||
extern const bcstring be_const_str_wifi;
|
||||
extern const bcstring be_const_str_SERIAL_5N2;
|
||||
extern const bcstring be_const_str_allocated;
|
||||
extern const bcstring be_const_str_set_timer;
|
||||
extern const bcstring be_const_str_SERIAL_8N2;
|
||||
extern const bcstring be_const_str_ceil;
|
||||
extern const bcstring be_const_str_clear;
|
||||
extern const bcstring be_const_str_wire1;
|
||||
extern const bcstring be_const_str_resp_cmnd_failed;
|
||||
extern const bcstring be_const_str_SERIAL_5E1;
|
||||
extern const bcstring be_const_str_classname;
|
||||
extern const bcstring be_const_str__global_def;
|
||||
extern const bcstring be_const_str_event;
|
||||
extern const bcstring be_const_str_pin;
|
||||
extern const bcstring be_const_str_response_append;
|
||||
extern const bcstring be_const_str_else;
|
||||
extern const bcstring be_const_str__rules;
|
||||
extern const bcstring be_const_str_deinit;
|
||||
extern const bcstring be_const_str_end;
|
||||
extern const bcstring be_const_str___upper__;
|
||||
extern const bcstring be_const_str_char;
|
||||
extern const bcstring be_const_str_add_header;
|
||||
extern const bcstring be_const_str_OneWire;
|
||||
extern const bcstring be_const_str_deg;
|
||||
extern const bcstring be_const_str_digital_read;
|
||||
extern const bcstring be_const_str_srand;
|
||||
extern const bcstring be_const_str_close;
|
||||
extern const bcstring be_const_str_enabled;
|
||||
extern const bcstring be_const_str_read13;
|
||||
extern const bcstring be_const_str_AudioOutput;
|
||||
extern const bcstring be_const_str_copy;
|
||||
extern const bcstring be_const_str_exp;
|
||||
extern const bcstring be_const_str_remove_rule;
|
||||
extern const bcstring be_const_str_gen_cb;
|
||||
extern const bcstring be_const_str_opt_neq;
|
||||
extern const bcstring be_const_str_assert;
|
||||
extern const bcstring be_const_str_isinstance;
|
||||
extern const bcstring be_const_str_pow;
|
||||
extern const bcstring be_const_str_count;
|
||||
extern const bcstring be_const_str_read_bytes;
|
||||
extern const bcstring be_const_str_web_send;
|
||||
extern const bcstring be_const_str_classof;
|
||||
extern const bcstring be_const_str_cos;
|
||||
extern const bcstring be_const_str_redirect;
|
||||
extern const bcstring be_const_str_write_bytes;
|
||||
extern const bcstring be_const_str_rand;
|
||||
extern const bcstring be_const_str_class;
|
||||
extern const bcstring be_const_str_cb_dispatch;
|
||||
extern const bcstring be_const_str_ctypes_bytes_dyn;
|
||||
extern const bcstring be_const_str_floor;
|
||||
extern const bcstring be_const_str_number;
|
||||
extern const bcstring be_const_str_toptr;
|
||||
extern const bcstring be_const_str_SERIAL_5N1;
|
||||
extern const bcstring be_const_str__def;
|
||||
extern const bcstring be_const_str_find_op;
|
||||
extern const bcstring be_const_str_wire_scan;
|
||||
extern const bcstring be_const_str_get_switch;
|
||||
extern const bcstring be_const_str__read;
|
||||
extern const bcstring be_const_str_member;
|
||||
extern const bcstring be_const_str_target_search;
|
||||
extern const bcstring be_const_str_traceback;
|
||||
extern const bcstring be_const_str_static;
|
||||
extern const bcstring be_const_str_opt_eq;
|
||||
extern const bcstring be_const_str_fromptr;
|
||||
extern const bcstring be_const_str_getbits;
|
||||
extern const bcstring be_const_str_setbits;
|
||||
extern const bcstring be_const_str_stop;
|
||||
extern const bcstring be_const_str_issubclass;
|
||||
extern const bcstring be_const_str_flush;
|
||||
extern const bcstring be_const_str_I2C_Driver;
|
||||
extern const bcstring be_const_str_atan2;
|
||||
extern const bcstring be_const_str_resp_cmnd_str;
|
||||
extern const bcstring be_const_str__settings_def;
|
||||
extern const bcstring be_const_str_name;
|
||||
extern const bcstring be_const_str_acos;
|
||||
extern const bcstring be_const_str_asin;
|
||||
extern const bcstring be_const_str_members;
|
||||
extern const bcstring be_const_str_split;
|
||||
extern const bcstring be_const_str_exists;
|
||||
extern const bcstring be_const_str_super;
|
||||
extern const bcstring be_const_str_EC_C25519;
|
||||
extern const bcstring be_const_str_calldepth;
|
||||
extern const bcstring be_const_str_ctypes_bytes;
|
||||
extern const bcstring be_const_str_get_free_heap;
|
||||
extern const bcstring be_const_str_bus;
|
||||
extern const bcstring be_const_str_log;
|
||||
extern const bcstring be_const_str_raise;
|
||||
extern const bcstring be_const_str_bytes;
|
||||
extern const bcstring be_const_str_set;
|
||||
extern const bcstring be_const_str_SERIAL_6N1;
|
||||
extern const bcstring be_const_str__cmd;
|
||||
extern const bcstring be_const_str_dot_size;
|
||||
extern const bcstring be_const_str_SERIAL_5O1;
|
||||
extern const bcstring be_const_str_AES_GCM;
|
||||
extern const bcstring be_const_str_AudioFileSourceFS;
|
||||
extern const bcstring be_const_str_sinh;
|
||||
extern const bcstring be_const_str_time_str;
|
||||
extern const bcstring be_const_str_cmd;
|
||||
extern const bcstring be_const_str_tostring;
|
||||
extern const bcstring be_const_str__buffer;
|
||||
extern const bcstring be_const_str_exec_tele;
|
||||
extern const bcstring be_const_str_except;
|
||||
extern const bcstring be_const_str_dot_len;
|
||||
extern const bcstring be_const_str_AudioGeneratorMP3;
|
||||
extern const bcstring be_const_str__global_addr;
|
||||
extern const bcstring be_const_str_SERIAL_6E2;
|
||||
extern const bcstring be_const_str_SERIAL_7E1;
|
||||
extern const bcstring be_const_str_SERIAL_8O2;
|
||||
extern const bcstring be_const_str_get;
|
||||
extern const bcstring be_const_str_SERIAL_8E2;
|
||||
extern const bcstring be_const_str_init;
|
||||
extern const bcstring be_const_str_module;
|
||||
extern const bcstring be_const_str_skip;
|
||||
extern const bcstring be_const_str__ptr;
|
||||
extern const bcstring be_const_str_find;
|
||||
extern const bcstring be_const_str_item;
|
||||
extern const bcstring be_const_str_GET;
|
||||
extern const bcstring be_const_str_format;
|
||||
extern const bcstring be_const_str_sqrt;
|
||||
extern const bcstring be_const_str_byte;
|
||||
extern const bcstring be_const_str_true;
|
||||
extern const bcstring be_const_str__write;
|
||||
extern const bcstring be_const_str_content_send_style;
|
||||
extern const bcstring be_const_str_rtc;
|
||||
extern const bcstring be_const_str_Wire;
|
||||
extern const bcstring be_const_str_digital_write;
|
||||
extern const bcstring be_const_str_get_light;
|
||||
extern const bcstring be_const_str_SERIAL_8N1;
|
||||
extern const bcstring be_const_str_read12;
|
||||
extern const bcstring be_const_str_exec_cmd;
|
||||
extern const bcstring be_const_str_remove_cmd;
|
||||
extern const bcstring be_const_str_str;
|
||||
extern const bcstring be_const_str_available;
|
||||
extern const bcstring be_const_str_read24;
|
||||
extern const bcstring be_const_str_scale_uint;
|
||||
extern const bcstring be_const_str_try_rule;
|
||||
extern const bcstring be_const_str_publish_result;
|
||||
extern const bcstring be_const_str_state;
|
||||
extern const bcstring be_const_str_strftime;
|
||||
extern const bcstring be_const_str_toupper;
|
||||
extern const bcstring be_const_str_;
|
||||
extern const bcstring be_const_str_break;
|
||||
extern const bcstring be_const_str_SERIAL_6N2;
|
||||
extern const bcstring be_const_str_resolvecmnd;
|
||||
extern const bcstring be_const_str_AudioOutputI2S;
|
||||
extern const bcstring be_const_str_SERIAL_5O2;
|
||||
extern const bcstring be_const_str_erase;
|
||||
extern const bcstring be_const_str_lower;
|
||||
extern const bcstring be_const_str_fromstring;
|
||||
extern const bcstring be_const_str_print;
|
||||
extern const bcstring be_const_str_def;
|
||||
extern const bcstring be_const_str__request_from;
|
||||
extern const bcstring be_const_str_read8;
|
||||
extern const bcstring be_const_str_detect;
|
||||
extern const bcstring be_const_str_dump;
|
||||
extern const bcstring be_const_str_isrunning;
|
||||
extern const bcstring be_const_str_push;
|
||||
extern const bcstring be_const_str_time_dump;
|
||||
extern const bcstring be_const_str_return;
|
||||
extern const bcstring be_const_str_nil;
|
||||
extern const bcstring be_const_str_remove_driver;
|
||||
extern const bcstring be_const_str_SERIAL_7E2;
|
||||
extern const bcstring be_const_str_add_driver;
|
||||
extern const bcstring be_const_str_keys;
|
||||
extern const bcstring be_const_str_run_deferred;
|
||||
extern const bcstring be_const_str_SERIAL_8E1;
|
||||
extern const bcstring be_const_str_delay;
|
||||
extern const bcstring be_const_str_depower;
|
||||
extern const bcstring be_const_str_imin;
|
||||
extern const bcstring be_const_str_write8;
|
||||
extern const bcstring be_const_str_add;
|
||||
extern const bcstring be_const_str_add_cmd;
|
||||
extern const bcstring be_const_str_add_rule;
|
||||
extern const bcstring be_const_str_compile;
|
||||
extern const bcstring be_const_str_geti;
|
||||
extern const bcstring be_const_str_upper;
|
||||
extern const bcstring be_const_str_webclient;
|
||||
extern const bcstring be_const_str_has;
|
||||
extern const bcstring be_const_str_codedump;
|
||||
extern const bcstring be_const_str_reduce;
|
||||
extern const bcstring be_const_str_as;
|
||||
extern const bcstring be_const_str_get_size;
|
||||
extern const bcstring be_const_str_tag;
|
||||
extern const bcstring be_const_str_opt_connect;
|
||||
extern const bcstring be_const_str_setmember;
|
||||
extern const bcstring be_const_str_OneWire;
|
||||
extern const bcstring be_const_str__get_cb;
|
||||
extern const bcstring be_const_str_try;
|
||||
extern const bcstring be_const_str_while;
|
||||
extern const bcstring be_const_str_gc;
|
||||
extern const bcstring be_const_str_begin;
|
||||
extern const bcstring be_const_str_kv;
|
||||
extern const bcstring be_const_str_open;
|
||||
extern const bcstring be_const_str_web_send_decimal;
|
||||
extern const bcstring be_const_str_cmd_res;
|
||||
extern const bcstring be_const_str_settings;
|
||||
extern const bcstring be_const_str_insert;
|
||||
extern const bcstring be_const_str___iterator__;
|
||||
extern const bcstring be_const_str_asstring;
|
||||
extern const bcstring be_const_str_get_option;
|
||||
extern const bcstring be_const_str_SERIAL_7N1;
|
||||
extern const bcstring be_const_str_call;
|
||||
extern const bcstring be_const_str_eth;
|
||||
extern const bcstring be_const_str_if;
|
||||
extern const bcstring be_const_str_int;
|
||||
extern const bcstring be_const_str_time_reached;
|
||||
extern const bcstring be_const_str_classof;
|
||||
extern const bcstring be_const_str_SERIAL_8O2;
|
||||
extern const bcstring be_const_str___upper__;
|
||||
extern const bcstring be_const_str_gamma10;
|
||||
extern const bcstring be_const_str_copy;
|
||||
extern const bcstring be_const_str_tostring;
|
||||
extern const bcstring be_const_str_dot_p1;
|
||||
extern const bcstring be_const_str_concat;
|
||||
extern const bcstring be_const_str_content_flush;
|
||||
extern const bcstring be_const_str_list;
|
||||
extern const bcstring be_const_str_map;
|
||||
extern const bcstring be_const_str_for;
|
||||
extern const bcstring be_const_str_dot_p;
|
||||
extern const bcstring be_const_str_set_timeouts;
|
||||
extern const bcstring be_const_str_SERIAL_7O2;
|
||||
extern const bcstring be_const_str_POST;
|
||||
extern const bcstring be_const_str_abs;
|
||||
extern const bcstring be_const_str_reverse;
|
||||
extern const bcstring be_const_str_set_useragent;
|
||||
extern const bcstring be_const_str_wire2;
|
||||
extern const bcstring be_const_str_hex;
|
||||
extern const bcstring be_const_str_set_light;
|
||||
extern const bcstring be_const_str_SERIAL_5E2;
|
||||
extern const bcstring be_const_str_seti;
|
||||
extern const bcstring be_const_str_opt_add;
|
||||
extern const bcstring be_const_str_content_send;
|
||||
extern const bcstring be_const_str_real;
|
||||
extern const bcstring be_const_str_publish;
|
||||
extern const bcstring be_const_str_reset_search;
|
||||
extern const bcstring be_const_str_log10;
|
||||
extern const bcstring be_const_str__drivers;
|
||||
extern const bcstring be_const_str_resp_cmnd_error;
|
||||
extern const bcstring be_const_str_arg;
|
||||
extern const bcstring be_const_str_collect;
|
||||
extern const bcstring be_const_str_loop;
|
||||
extern const bcstring be_const_str_wire;
|
||||
extern const bcstring be_const_str_dot_w;
|
||||
extern const bcstring be_const_str_addr;
|
||||
extern const bcstring be_const_str_tob64;
|
||||
extern const bcstring be_const_str_scan;
|
||||
extern const bcstring be_const_str_set_auth;
|
||||
extern const bcstring be_const_str_AudioFileSource;
|
||||
extern const bcstring be_const_str_arg_name;
|
||||
extern const bcstring be_const_str_contains;
|
||||
extern const bcstring be_const_str_content_stop;
|
||||
extern const bcstring be_const_str_nan;
|
||||
extern const bcstring be_const_str_MD5;
|
||||
extern const bcstring be_const_str_gamma8;
|
||||
extern const bcstring be_const_str_isnan;
|
||||
extern const bcstring be_const_str_pin_used;
|
||||
extern const bcstring be_const_str_read;
|
||||
extern const bcstring be_const_str_reverse_gamma10;
|
||||
extern const bcstring be_const_str_SERIAL_6O2;
|
||||
extern const bcstring be_const_str_check_privileged_access;
|
||||
extern const bcstring be_const_str_load;
|
||||
extern const bcstring be_const_str_resize;
|
||||
extern const bcstring be_const_str_content_start;
|
||||
extern const bcstring be_const_str_write;
|
||||
extern const bcstring be_const_str_AudioGenerator;
|
||||
extern const bcstring be_const_str_AudioGeneratorWAV;
|
||||
extern const bcstring be_const_str_range;
|
||||
extern const bcstring be_const_str_encrypt;
|
||||
extern const bcstring be_const_str_exec_rules;
|
||||
extern const bcstring be_const_str_fromb64;
|
||||
extern const bcstring be_const_str_get_power;
|
||||
extern const bcstring be_const_str_serial;
|
||||
extern const bcstring be_const_str__available;
|
||||
extern const bcstring be_const_str_finish;
|
||||
extern const bcstring be_const_str_attrdump;
|
||||
extern const bcstring be_const_str_continue;
|
||||
extern const bcstring be_const_str_do;
|
||||
extern const bcstring be_const_str_false;
|
||||
extern const bcstring be_const_str_tomap;
|
||||
extern const bcstring be_const_str_find_key_i;
|
||||
extern const bcstring be_const_str_pop;
|
||||
extern const bcstring be_const_str_reset;
|
||||
extern const bcstring be_const_str_tolower;
|
||||
extern const bcstring be_const_str_sin;
|
||||
extern const bcstring be_const_str_input;
|
||||
extern const bcstring be_const_str_resp_cmnd;
|
||||
extern const bcstring be_const_str_Tasmota;
|
||||
extern const bcstring be_const_str_item;
|
||||
extern const bcstring be_const_str_read8;
|
||||
extern const bcstring be_const_str_setbits;
|
||||
extern const bcstring be_const_str_upper;
|
||||
extern const bcstring be_const_str_rad;
|
||||
extern const bcstring be_const_str_read32;
|
||||
extern const bcstring be_const_str__begin_transmission;
|
||||
extern const bcstring be_const_str_pi;
|
||||
extern const bcstring be_const_str_save;
|
||||
extern const bcstring be_const_str_shared_key;
|
||||
extern const bcstring be_const_str_write_bit;
|
||||
extern const bcstring be_const_str__settings_ptr;
|
||||
extern const bcstring be_const_str_search;
|
||||
extern const bcstring be_const_str_opt_call;
|
||||
extern const bcstring be_const_str_setrange;
|
||||
extern const bcstring be_const_str_var;
|
||||
extern const bcstring be_const_str_resp_cmnd_done;
|
||||
extern const bcstring be_const_str_tan;
|
||||
extern const bcstring be_const_str_update;
|
||||
extern const bcstring be_const_str_get_string;
|
||||
extern const bcstring be_const_str_setitem;
|
||||
extern const bcstring be_const_str_memory;
|
||||
extern const bcstring be_const_str_tanh;
|
||||
extern const bcstring be_const_str_SERIAL_6O1;
|
||||
extern const bcstring be_const_str__end_transmission;
|
||||
extern const bcstring be_const_str__timers;
|
||||
extern const bcstring be_const_str_counters;
|
||||
extern const bcstring be_const_str_millis;
|
||||
extern const bcstring be_const_str_import;
|
||||
extern const bcstring be_const_str___lower__;
|
||||
extern const bcstring be_const_str_web_send;
|
||||
extern const bcstring be_const_str_load;
|
||||
extern const bcstring be_const_str_opt_add;
|
||||
extern const bcstring be_const_str_hex;
|
||||
extern const bcstring be_const_str_read12;
|
||||
extern const bcstring be_const_str_end;
|
||||
extern const bcstring be_const_str_chars_in_string;
|
||||
extern const bcstring be_const_str_write8;
|
||||
extern const bcstring be_const_str_def;
|
||||
extern const bcstring be_const_str_select;
|
||||
extern const bcstring be_const_str_type;
|
||||
extern const bcstring be_const_str_global;
|
||||
extern const bcstring be_const_str_yield;
|
||||
extern const bcstring be_const_str__ccmd;
|
||||
extern const bcstring be_const_str_arg_size;
|
||||
extern const bcstring be_const_str_opt_eq;
|
||||
extern const bcstring be_const_str_SERIAL_8E1;
|
||||
extern const bcstring be_const_str_rtc;
|
||||
extern const bcstring be_const_str_else;
|
||||
extern const bcstring be_const_str_get_power;
|
||||
extern const bcstring be_const_str_addr;
|
||||
extern const bcstring be_const_str_allocated;
|
||||
extern const bcstring be_const_str_finish;
|
||||
extern const bcstring be_const_str_dot_p;
|
||||
extern const bcstring be_const_str_getbits;
|
||||
extern const bcstring be_const_str_tag;
|
||||
extern const bcstring be_const_str_add;
|
||||
extern const bcstring be_const_str_pin;
|
||||
extern const bcstring be_const_str_set_timeouts;
|
||||
extern const bcstring be_const_str_import;
|
||||
extern const bcstring be_const_str_SERIAL_6N1;
|
||||
extern const bcstring be_const_str_SERIAL_8O1;
|
||||
extern const bcstring be_const_str__settings_ptr;
|
||||
extern const bcstring be_const_str_remove_cmd;
|
||||
extern const bcstring be_const_str___iterator__;
|
||||
extern const bcstring be_const_str_atan2;
|
||||
extern const bcstring be_const_str_ctypes_bytes;
|
||||
extern const bcstring be_const_str_millis;
|
||||
extern const bcstring be_const_str_available;
|
||||
extern const bcstring be_const_str_delay;
|
||||
extern const bcstring be_const_str_imin;
|
||||
extern const bcstring be_const_str_shared_key;
|
||||
extern const bcstring be_const_str_wire;
|
||||
extern const bcstring be_const_str__drivers;
|
||||
extern const bcstring be_const_str_last_modified;
|
||||
extern const bcstring be_const_str_serial;
|
||||
extern const bcstring be_const_str_opt_call;
|
||||
extern const bcstring be_const_str_webclient;
|
||||
extern const bcstring be_const_str_SERIAL_6E2;
|
||||
extern const bcstring be_const_str_ctypes_bytes_dyn;
|
||||
extern const bcstring be_const_str_time_dump;
|
||||
extern const bcstring be_const_str_static;
|
||||
extern const bcstring be_const_str_classname;
|
||||
extern const bcstring be_const_str_isrunning;
|
||||
extern const bcstring be_const_str_top;
|
||||
extern const bcstring be_const_str_remove;
|
||||
extern const bcstring be_const_str_begin;
|
||||
extern const bcstring be_const_str_content_stop;
|
||||
extern const bcstring be_const_str_deg;
|
||||
extern const bcstring be_const_str_gc;
|
||||
extern const bcstring be_const_str_gen_cb;
|
||||
extern const bcstring be_const_str_reset;
|
||||
extern const bcstring be_const_str_clear;
|
||||
extern const bcstring be_const_str_skip;
|
||||
extern const bcstring be_const_str_SERIAL_5E1;
|
||||
extern const bcstring be_const_str_has;
|
||||
extern const bcstring be_const_str_raise;
|
||||
extern const bcstring be_const_str_setitem;
|
||||
extern const bcstring be_const_str_write_bit;
|
||||
extern const bcstring be_const_str_stop;
|
||||
extern const bcstring be_const_str_AES_GCM;
|
||||
extern const bcstring be_const_str_exec_cmd;
|
||||
extern const bcstring be_const_str_iter;
|
||||
extern const bcstring be_const_str_ceil;
|
||||
extern const bcstring be_const_str_exp;
|
||||
extern const bcstring be_const_str_tob64;
|
||||
extern const bcstring be_const_str_wire_scan;
|
||||
extern const bcstring be_const_str_call;
|
||||
extern const bcstring be_const_str_cmd_res;
|
||||
extern const bcstring be_const_str_opt_connect;
|
||||
extern const bcstring be_const_str_resolvecmnd;
|
||||
extern const bcstring be_const_str_SERIAL_6E1;
|
||||
extern const bcstring be_const_str_try;
|
||||
extern const bcstring be_const_str__cb;
|
||||
extern const bcstring be_const_str_AudioOutput;
|
||||
extern const bcstring be_const_str_check_privileged_access;
|
||||
extern const bcstring be_const_str_SERIAL_6O2;
|
||||
extern const bcstring be_const_str_content_send;
|
||||
extern const bcstring be_const_str_tolower;
|
||||
extern const bcstring be_const_str_detect;
|
||||
extern const bcstring be_const_str_imax;
|
||||
extern const bcstring be_const_str_set_auth;
|
||||
extern const bcstring be_const_str_depower;
|
||||
extern const bcstring be_const_str_read24;
|
||||
extern const bcstring be_const_str_add_header;
|
||||
extern const bcstring be_const_str_kv;
|
||||
extern const bcstring be_const_str_pin_used;
|
||||
extern const bcstring be_const_str_publish_result;
|
||||
extern const bcstring be_const_str_do;
|
||||
extern const bcstring be_const_str_pow;
|
||||
extern const bcstring be_const_str_read_bytes;
|
||||
extern const bcstring be_const_str_SERIAL_5E2;
|
||||
extern const bcstring be_const_str_scale_uint;
|
||||
extern const bcstring be_const_str_get;
|
||||
extern const bcstring be_const_str_remove_timer;
|
||||
extern const bcstring be_const_str_dot_len;
|
||||
extern const bcstring be_const_str_Wire;
|
||||
extern const bcstring be_const_str__begin_transmission;
|
||||
extern const bcstring be_const_str_toupper;
|
||||
extern const bcstring be_const_str_SERIAL_5N2;
|
||||
extern const bcstring be_const_str_arg_size;
|
||||
extern const bcstring be_const_str_AudioFileSource;
|
||||
extern const bcstring be_const_str_I2C_Driver;
|
||||
extern const bcstring be_const_str_decrypt;
|
||||
extern const bcstring be_const_str_digital_write;
|
||||
extern const bcstring be_const_str_input;
|
||||
extern const bcstring be_const_str_char;
|
||||
extern const bcstring be_const_str_floor;
|
||||
extern const bcstring be_const_str_real;
|
||||
extern const bcstring be_const_str_AudioGenerator;
|
||||
extern const bcstring be_const_str__cmd;
|
||||
extern const bcstring be_const_str_enabled;
|
||||
extern const bcstring be_const_str_int;
|
||||
extern const bcstring be_const_str_byte;
|
||||
extern const bcstring be_const_str_resp_cmnd_error;
|
||||
extern const bcstring be_const_str_dot_size;
|
||||
extern const bcstring be_const_str_list;
|
||||
extern const bcstring be_const_str_reset_search;
|
||||
extern const bcstring be_const_str_SERIAL_7N2;
|
||||
extern const bcstring be_const_str_set;
|
||||
extern const bcstring be_const_str_elif;
|
||||
extern const bcstring be_const_str_Tasmota;
|
||||
extern const bcstring be_const_str_get_switch;
|
||||
extern const bcstring be_const_str_read;
|
||||
extern const bcstring be_const_str___lower__;
|
||||
extern const bcstring be_const_str__read;
|
||||
extern const bcstring be_const_str_asin;
|
||||
extern const bcstring be_const_str_POST;
|
||||
extern const bcstring be_const_str_arg;
|
||||
extern const bcstring be_const_str_reduce;
|
||||
extern const bcstring be_const_str_deinit;
|
||||
extern const bcstring be_const_str_save;
|
||||
extern const bcstring be_const_str_SERIAL_8E2;
|
||||
extern const bcstring be_const_str_get_size;
|
||||
extern const bcstring be_const_str_search;
|
||||
extern const bcstring be_const_str_srand;
|
||||
extern const bcstring be_const_str_isnan;
|
||||
extern const bcstring be_const_str_arg_name;
|
||||
extern const bcstring be_const_str_content_flush;
|
||||
extern const bcstring be_const_str_get_light;
|
||||
extern const bcstring be_const_str_sqrt;
|
||||
extern const bcstring be_const_str__end_transmission;
|
||||
extern const bcstring be_const_str_listdir;
|
||||
extern const bcstring be_const_str_log10;
|
||||
extern const bcstring be_const_str_pop;
|
||||
extern const bcstring be_const_str_read32;
|
||||
extern const bcstring be_const_str_for;
|
||||
extern const bcstring be_const_str_exec_tele;
|
||||
extern const bcstring be_const_str_log;
|
||||
extern const bcstring be_const_str_map;
|
||||
extern const bcstring be_const_str_redirect;
|
||||
extern const bcstring be_const_str_format;
|
||||
extern const bcstring be_const_str_pi;
|
||||
extern const bcstring be_const_str_range;
|
||||
extern const bcstring be_const_str_SERIAL_7E2;
|
||||
extern const bcstring be_const_str_count;
|
||||
extern const bcstring be_const_str_update;
|
||||
extern const bcstring be_const_str_SERIAL_7N1;
|
||||
extern const bcstring be_const_str_find_key_i;
|
||||
extern const bcstring be_const_str_content_button;
|
||||
extern const bcstring be_const_str_AudioGeneratorMP3;
|
||||
extern const bcstring be_const_str_AudioGeneratorWAV;
|
||||
extern const bcstring be_const_str__buffer;
|
||||
extern const bcstring be_const_str_remove_driver;
|
||||
extern const bcstring be_const_str_false;
|
||||
extern const bcstring be_const_str_fromptr;
|
||||
extern const bcstring be_const_str_geti;
|
||||
extern const bcstring be_const_str_lower;
|
||||
extern const bcstring be_const_str_nan;
|
||||
extern const bcstring be_const_str_assert;
|
||||
extern const bcstring be_const_str_time_str;
|
||||
extern const bcstring be_const_str_exists;
|
||||
extern const bcstring be_const_str_read13;
|
||||
extern const bcstring be_const_str_set_power;
|
||||
extern const bcstring be_const_str_seti;
|
||||
extern const bcstring be_const_str_toptr;
|
||||
extern const bcstring be_const_str_acos;
|
||||
extern const bcstring be_const_str_find_op;
|
||||
extern const bcstring be_const_str_isinstance;
|
||||
extern const bcstring be_const_str_cb_dispatch;
|
||||
extern const bcstring be_const_str_SERIAL_5O2;
|
||||
extern const bcstring be_const_str_bytes;
|
||||
extern const bcstring be_const_str_public_key;
|
||||
extern const bcstring be_const_str_continue;
|
||||
extern const bcstring be_const_str_;
|
||||
extern const bcstring be_const_str__available;
|
||||
extern const bcstring be_const_str__def;
|
||||
extern const bcstring be_const_str_i2c_enabled;
|
||||
extern const bcstring be_const_str_reverse;
|
||||
extern const bcstring be_const_str_true;
|
||||
extern const bcstring be_const_str_dac_voltage;
|
||||
extern const bcstring be_const_str_name;
|
||||
extern const bcstring be_const_str_reverse_gamma10;
|
||||
extern const bcstring be_const_str_add_rule;
|
||||
extern const bcstring be_const_str_dump;
|
||||
extern const bcstring be_const_str_AudioOutputI2S;
|
||||
extern const bcstring be_const_str_attrdump;
|
||||
extern const bcstring be_const_str_fromstring;
|
||||
extern const bcstring be_const_str_publish;
|
||||
extern const bcstring be_const_str_wifi;
|
||||
extern const bcstring be_const_str__write;
|
||||
extern const bcstring be_const_str_resp_cmnd;
|
||||
extern const bcstring be_const_str_tomap;
|
||||
extern const bcstring be_const_str_content_start;
|
||||
extern const bcstring be_const_str_traceback;
|
||||
extern const bcstring be_const_str_as;
|
||||
extern const bcstring be_const_str_memory;
|
||||
extern const bcstring be_const_str_pin_mode;
|
||||
extern const bcstring be_const_str_EC_C25519;
|
||||
extern const bcstring be_const_str_str;
|
||||
extern const bcstring be_const_str_tanh;
|
||||
extern const bcstring be_const_str_write_bytes;
|
||||
extern const bcstring be_const_str_except;
|
||||
extern const bcstring be_const_str_get_option;
|
||||
extern const bcstring be_const_str_dot_w;
|
||||
extern const bcstring be_const_str_SERIAL_7O1;
|
||||
extern const bcstring be_const_str_SERIAL_8N1;
|
||||
extern const bcstring be_const_str_init;
|
||||
extern const bcstring be_const_str__timers;
|
||||
extern const bcstring be_const_str_super;
|
||||
extern const bcstring be_const_str_GET;
|
||||
extern const bcstring be_const_str_fromb64;
|
||||
extern const bcstring be_const_str_break;
|
||||
extern const bcstring be_const_str__global_def;
|
||||
extern const bcstring be_const_str_bus;
|
||||
extern const bcstring be_const_str_find;
|
||||
extern const bcstring be_const_str_resp_cmnd_failed;
|
||||
extern const bcstring be_const_str_SERIAL_6N2;
|
||||
extern const bcstring be_const_str__request_from;
|
||||
extern const bcstring be_const_str_cos;
|
||||
extern const bcstring be_const_str_cosh;
|
||||
extern const bcstring be_const_str_set_useragent;
|
||||
extern const bcstring be_const_str_size;
|
||||
extern const bcstring be_const_str_web_send_decimal;
|
||||
extern const bcstring be_const_str_write;
|
||||
extern const bcstring be_const_str_module;
|
||||
extern const bcstring be_const_str_try_rule;
|
||||
extern const bcstring be_const_str_var;
|
||||
extern const bcstring be_const_str_content_send_style;
|
||||
extern const bcstring be_const_str_sinh;
|
||||
extern const bcstring be_const_str_return;
|
||||
extern const bcstring be_const_str_asstring;
|
||||
extern const bcstring be_const_str_digital_read;
|
||||
extern const bcstring be_const_str_has_arg;
|
||||
extern const bcstring be_const_str_number;
|
||||
extern const bcstring be_const_str_remove_rule;
|
||||
extern const bcstring be_const_str_get_string;
|
||||
extern const bcstring be_const_str_resize;
|
||||
extern const bcstring be_const_str_encrypt;
|
||||
extern const bcstring be_const_str_opt_neq;
|
||||
extern const bcstring be_const_str_add_driver;
|
||||
extern const bcstring be_const_str_close;
|
||||
extern const bcstring be_const_str_member;
|
||||
extern const bcstring be_const_str_response_append;
|
||||
extern const bcstring be_const_str_split;
|
||||
extern const bcstring be_const_str_strftime;
|
||||
extern const bcstring be_const_str_exec_rules;
|
||||
extern const bcstring be_const_str_AudioFileSourceFS;
|
||||
extern const bcstring be_const_str__ccmd;
|
||||
extern const bcstring be_const_str_set_timer;
|
||||
extern const bcstring be_const_str_time_reached;
|
||||
extern const bcstring be_const_str_SERIAL_7O2;
|
||||
extern const bcstring be_const_str_SERIAL_8N2;
|
||||
extern const bcstring be_const_str_if;
|
||||
extern const bcstring be_const_str__ptr;
|
||||
extern const bcstring be_const_str_insert;
|
||||
extern const bcstring be_const_str_print;
|
||||
extern const bcstring be_const_str_run_deferred;
|
||||
extern const bcstring be_const_str_scan;
|
||||
extern const bcstring be_const_str_settings;
|
||||
extern const bcstring be_const_str_open;
|
||||
extern const bcstring be_const_str_cmd;
|
||||
extern const bcstring be_const_str_loop;
|
||||
extern const bcstring be_const_str_wire1;
|
||||
extern const bcstring be_const_str_nil;
|
||||
extern const bcstring be_const_str_SERIAL_7E1;
|
||||
extern const bcstring be_const_str_keys;
|
||||
extern const bcstring be_const_str_sin;
|
||||
extern const bcstring be_const_str_calldepth;
|
||||
extern const bcstring be_const_str_while;
|
||||
extern const bcstring be_const_str_counters;
|
||||
extern const bcstring be_const_str_members;
|
||||
extern const bcstring be_const_str_on;
|
||||
extern const bcstring be_const_str__rules;
|
||||
extern const bcstring be_const_str_collect;
|
||||
extern const bcstring be_const_str_url_encode;
|
||||
extern const bcstring be_const_str_codedump;
|
||||
extern const bcstring be_const_str_dot_p2;
|
||||
extern const bcstring be_const_str_MD5;
|
||||
extern const bcstring be_const_str__settings_def;
|
||||
extern const bcstring be_const_str_erase;
|
||||
extern const bcstring be_const_str_gamma8;
|
||||
extern const bcstring be_const_str_rand;
|
||||
extern const bcstring be_const_str_resp_cmnd_str;
|
||||
extern const bcstring be_const_str_state;
|
||||
extern const bcstring be_const_str_SERIAL_6O1;
|
||||
extern const bcstring be_const_str_contains;
|
||||
extern const bcstring be_const_str_set_light;
|
||||
extern const bcstring be_const_str_setrange;
|
||||
extern const bcstring be_const_str_tan;
|
||||
extern const bcstring be_const_str_target_search;
|
||||
extern const bcstring be_const_str_abs;
|
||||
extern const bcstring be_const_str_resp_cmnd_done;
|
||||
extern const bcstring be_const_str_eth;
|
||||
extern const bcstring be_const_str_SERIAL_5O1;
|
||||
extern const bcstring be_const_str_concat;
|
||||
extern const bcstring be_const_str_flush;
|
||||
extern const bcstring be_const_str_get_free_heap;
|
||||
extern const bcstring be_const_str_push;
|
||||
extern const bcstring be_const_str_compile;
|
||||
extern const bcstring be_const_str_wire2;
|
||||
extern const bcstring be_const_str_add_cmd;
|
||||
extern const bcstring be_const_str_atan;
|
||||
extern const bcstring be_const_str_event;
|
||||
extern const bcstring be_const_str_issubclass;
|
||||
extern const bcstring be_const_str_write_file;
|
||||
extern const bcstring be_const_str_class;
|
||||
|
|
|
@ -1,508 +1,511 @@
|
|||
be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_type);
|
||||
be_define_const_str(type, "type", 1361572173u, 0, 4, NULL);
|
||||
be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, NULL);
|
||||
be_define_const_str(remove, "remove", 3683784189u, 0, 6, NULL);
|
||||
be_define_const_str(SERIAL_6E1, "SERIAL_6E1", 334249486u, 0, 10, &be_const_str_SERIAL_8O1);
|
||||
be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, NULL);
|
||||
be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_global);
|
||||
be_define_const_str(global, "global", 503252654u, 0, 6, &be_const_str_last_modified);
|
||||
be_define_const_str(last_modified, "last_modified", 772177145u, 0, 13, &be_const_str_public_key);
|
||||
be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, NULL);
|
||||
be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_set_power);
|
||||
be_define_const_str(set_power, "set_power", 549820893u, 0, 9, &be_const_str_url_encode);
|
||||
be_define_const_str(url_encode, "url_encode", 528392145u, 0, 10, NULL);
|
||||
be_define_const_str(SERIAL_7N2, "SERIAL_7N2", 1874282627u, 0, 10, &be_const_str_content_button);
|
||||
be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, NULL);
|
||||
be_define_const_str(_cb, "_cb", 4043300367u, 0, 3, &be_const_str_atan);
|
||||
be_define_const_str(atan, "atan", 108579519u, 0, 4, NULL);
|
||||
be_define_const_str(dot_p2, ".p2", 232398067u, 0, 3, &be_const_str_iter);
|
||||
be_define_const_str(iter, "iter", 3124256359u, 0, 4, &be_const_str_remove_timer);
|
||||
be_define_const_str(remove_timer, "remove_timer", 4141472215u, 0, 12, &be_const_str_select);
|
||||
be_define_const_str(select, "select", 297952813u, 0, 6, &be_const_str_setmember);
|
||||
be_define_const_str(setmember, "setmember", 1432909441u, 0, 9, &be_const_str_top);
|
||||
be_define_const_str(top, "top", 2802900028u, 0, 3, NULL);
|
||||
be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, &be_const_str_gamma10);
|
||||
be_define_const_str(gamma10, "gamma10", 3472052483u, 0, 7, &be_const_str_i2c_enabled);
|
||||
be_define_const_str(i2c_enabled, "i2c_enabled", 218388101u, 0, 11, &be_const_str_on);
|
||||
be_define_const_str(on, "on", 1630810064u, 0, 2, &be_const_str_pin_mode);
|
||||
be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, NULL);
|
||||
be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, &be_const_str_chars_in_string);
|
||||
be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, &be_const_str_wifi);
|
||||
be_define_const_str(wifi, "wifi", 120087624u, 0, 4, NULL);
|
||||
be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, &be_const_str_allocated);
|
||||
be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_set_timer);
|
||||
be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, NULL);
|
||||
be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_ceil);
|
||||
be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_clear);
|
||||
be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_wire1);
|
||||
be_define_const_str(wire1, "wire1", 3212721419u, 0, 5, NULL);
|
||||
be_define_const_str(resp_cmnd_failed, "resp_cmnd_failed", 2136281562u, 0, 16, NULL);
|
||||
be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_classname);
|
||||
be_define_const_str(classname, "classname", 1998589948u, 0, 9, NULL);
|
||||
be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, &be_const_str_event);
|
||||
be_define_const_str(event, "event", 4264611999u, 0, 5, &be_const_str_pin);
|
||||
be_define_const_str(pin, "pin", 1866532500u, 0, 3, &be_const_str_response_append);
|
||||
be_define_const_str(response_append, "response_append", 450346371u, 0, 15, &be_const_str_else);
|
||||
be_define_const_str(else, "else", 3183434736u, 52, 4, NULL);
|
||||
be_define_const_str(_rules, "_rules", 4266217105u, 0, 6, &be_const_str_deinit);
|
||||
be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_end);
|
||||
be_define_const_str(end, "end", 1787721130u, 56, 3, NULL);
|
||||
be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, NULL);
|
||||
be_define_const_str(char, "char", 2823553821u, 0, 4, NULL);
|
||||
be_define_const_str(add_header, "add_header", 927130612u, 0, 10, NULL);
|
||||
be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str_deg);
|
||||
be_define_const_str(deg, "deg", 3327754271u, 0, 3, &be_const_str_digital_read);
|
||||
be_define_const_str(digital_read, "digital_read", 3585496928u, 0, 12, &be_const_str_srand);
|
||||
be_define_const_str(srand, "srand", 465518633u, 0, 5, NULL);
|
||||
be_define_const_str(close, "close", 667630371u, 0, 5, &be_const_str_enabled);
|
||||
be_define_const_str(enabled, "enabled", 49525662u, 0, 7, NULL);
|
||||
be_define_const_str(read13, "read13", 12887293u, 0, 6, NULL);
|
||||
be_define_const_str(AudioOutput, "AudioOutput", 3257792048u, 0, 11, &be_const_str_copy);
|
||||
be_define_const_str(copy, "copy", 3848464964u, 0, 4, &be_const_str_exp);
|
||||
be_define_const_str(exp, "exp", 1923516200u, 0, 3, &be_const_str_remove_rule);
|
||||
be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, NULL);
|
||||
be_define_const_str(gen_cb, "gen_cb", 3245227551u, 0, 6, NULL);
|
||||
be_define_const_str(opt_neq, "!=", 2428715011u, 0, 2, &be_const_str_assert);
|
||||
be_define_const_str(assert, "assert", 2774883451u, 0, 6, &be_const_str_isinstance);
|
||||
be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, NULL);
|
||||
be_define_const_str(pow, "pow", 1479764693u, 0, 3, NULL);
|
||||
be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_read_bytes);
|
||||
be_define_const_str(read_bytes, "read_bytes", 3576733173u, 0, 10, NULL);
|
||||
be_define_const_str(web_send, "web_send", 2989941448u, 0, 8, NULL);
|
||||
be_define_const_str(classof, "classof", 1796577762u, 0, 7, &be_const_str_cos);
|
||||
be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_redirect);
|
||||
be_define_const_str(redirect, "redirect", 389758641u, 0, 8, &be_const_str_write_bytes);
|
||||
be_define_const_str(write_bytes, "write_bytes", 1227543792u, 0, 11, NULL);
|
||||
be_define_const_str(rand, "rand", 2711325910u, 0, 4, &be_const_str_class);
|
||||
be_define_const_str(class, "class", 2872970239u, 57, 5, NULL);
|
||||
be_define_const_str(cb_dispatch, "cb_dispatch", 1741510499u, 0, 11, &be_const_str_ctypes_bytes_dyn);
|
||||
be_define_const_str(ctypes_bytes_dyn, "ctypes_bytes_dyn", 915205307u, 0, 16, NULL);
|
||||
be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_number);
|
||||
be_define_const_str(number, "number", 467038368u, 0, 6, &be_const_str_toptr);
|
||||
be_define_const_str(toptr, "toptr", 3379847454u, 0, 5, NULL);
|
||||
be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, &be_const_str__def);
|
||||
be_define_const_str(_def, "_def", 1985022181u, 0, 4, &be_const_str_find_op);
|
||||
be_define_const_str(find_op, "find_op", 3766713376u, 0, 7, &be_const_str_wire_scan);
|
||||
be_define_const_str(wire_scan, "wire_scan", 2671275880u, 0, 9, NULL);
|
||||
be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, NULL);
|
||||
be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_member);
|
||||
be_define_const_str(member, "member", 719708611u, 0, 6, &be_const_str_target_search);
|
||||
be_define_const_str(target_search, "target_search", 1947846553u, 0, 13, &be_const_str_traceback);
|
||||
be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, &be_const_str_static);
|
||||
be_define_const_str(static, "static", 3532702267u, 71, 6, NULL);
|
||||
be_define_const_str(opt_eq, "==", 2431966415u, 0, 2, &be_const_str_fromptr);
|
||||
be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, &be_const_str_getbits);
|
||||
be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, NULL);
|
||||
be_define_const_str(setbits, "setbits", 2762408167u, 0, 7, NULL);
|
||||
be_define_const_str(stop, "stop", 3411225317u, 0, 4, NULL);
|
||||
be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, NULL);
|
||||
be_define_const_str(flush, "flush", 3002334877u, 0, 5, NULL);
|
||||
be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, NULL);
|
||||
be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_resp_cmnd_str);
|
||||
be_define_const_str(resp_cmnd_str, "resp_cmnd_str", 737845590u, 0, 13, NULL);
|
||||
be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, NULL);
|
||||
be_define_const_str(name, "name", 2369371622u, 0, 4, NULL);
|
||||
be_define_const_str(acos, "acos", 1006755615u, 0, 4, &be_const_str_asin);
|
||||
be_define_const_str(asin, "asin", 4272848550u, 0, 4, &be_const_str_members);
|
||||
be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_split);
|
||||
be_define_const_str(split, "split", 2276994531u, 0, 5, NULL);
|
||||
be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_super);
|
||||
be_define_const_str(super, "super", 4152230356u, 0, 5, NULL);
|
||||
be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, &be_const_str_calldepth);
|
||||
be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_ctypes_bytes);
|
||||
be_define_const_str(ctypes_bytes, "ctypes_bytes", 3879019703u, 0, 12, &be_const_str_get_free_heap);
|
||||
be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, NULL);
|
||||
be_define_const_str(bus, "bus", 1607822841u, 0, 3, &be_const_str_log);
|
||||
be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_raise);
|
||||
be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL);
|
||||
be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, &be_const_str_set);
|
||||
be_define_const_str(set, "set", 3324446467u, 0, 3, NULL);
|
||||
be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, &be_const_str__cmd);
|
||||
be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, NULL);
|
||||
be_define_const_str(dot_size, ".size", 1965188224u, 0, 5, &be_const_str_SERIAL_5O1);
|
||||
be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, NULL);
|
||||
be_define_const_str(AES_GCM, "AES_GCM", 3832208678u, 0, 7, &be_const_str_AudioFileSourceFS);
|
||||
be_define_const_str(AudioFileSourceFS, "AudioFileSourceFS", 1839147653u, 0, 17, &be_const_str_sinh);
|
||||
be_define_const_str(sinh, "sinh", 282220607u, 0, 4, &be_const_str_time_str);
|
||||
be_define_const_str(time_str, "time_str", 2613827612u, 0, 8, NULL);
|
||||
be_define_const_str(cmd, "cmd", 4136785899u, 0, 3, NULL);
|
||||
be_define_const_str(SERIAL_5N1, "SERIAL_5N1", 3313031680u, 0, 10, NULL);
|
||||
be_define_const_str(_global_addr, "_global_addr", 533766721u, 0, 12, &be_const_str_setmember);
|
||||
be_define_const_str(setmember, "setmember", 1432909441u, 0, 9, NULL);
|
||||
be_define_const_str(OneWire, "OneWire", 2298990722u, 0, 7, &be_const_str__get_cb);
|
||||
be_define_const_str(_get_cb, "_get_cb", 1448849122u, 0, 7, &be_const_str_classof);
|
||||
be_define_const_str(classof, "classof", 1796577762u, 0, 7, NULL);
|
||||
be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, &be_const_str___upper__);
|
||||
be_define_const_str(__upper__, "__upper__", 3612202883u, 0, 9, &be_const_str_gamma10);
|
||||
be_define_const_str(gamma10, "gamma10", 3472052483u, 0, 7, NULL);
|
||||
be_define_const_str(copy, "copy", 3848464964u, 0, 4, NULL);
|
||||
be_define_const_str(tostring, "tostring", 2299708645u, 0, 8, NULL);
|
||||
be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str_exec_tele);
|
||||
be_define_const_str(exec_tele, "exec_tele", 1020751601u, 0, 9, NULL);
|
||||
be_define_const_str(except, "except", 950914032u, 69, 6, NULL);
|
||||
be_define_const_str(dot_len, ".len", 850842136u, 0, 4, &be_const_str_AudioGeneratorMP3);
|
||||
be_define_const_str(AudioGeneratorMP3, "AudioGeneratorMP3", 2199818488u, 0, 17, &be_const_str__global_addr);
|
||||
be_define_const_str(_global_addr, "_global_addr", 533766721u, 0, 12, NULL);
|
||||
be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, &be_const_str_SERIAL_7E1);
|
||||
be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_SERIAL_8O2);
|
||||
be_define_const_str(SERIAL_8O2, "SERIAL_8O2", 272345123u, 0, 10, &be_const_str_get);
|
||||
be_define_const_str(get, "get", 1410115415u, 0, 3, NULL);
|
||||
be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, &be_const_str_init);
|
||||
be_define_const_str(init, "init", 380752755u, 0, 4, &be_const_str_module);
|
||||
be_define_const_str(module, "module", 3617558685u, 0, 6, &be_const_str_skip);
|
||||
be_define_const_str(skip, "skip", 1097563074u, 0, 4, NULL);
|
||||
be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, &be_const_str_find);
|
||||
be_define_const_str(find, "find", 3186656602u, 0, 4, &be_const_str_item);
|
||||
be_define_const_str(dot_p1, ".p1", 249175686u, 0, 3, &be_const_str_item);
|
||||
be_define_const_str(item, "item", 2671260646u, 0, 4, NULL);
|
||||
be_define_const_str(GET, "GET", 2531704439u, 0, 3, &be_const_str_format);
|
||||
be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_sqrt);
|
||||
be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, NULL);
|
||||
be_define_const_str(byte, "byte", 1683620383u, 0, 4, NULL);
|
||||
be_define_const_str(true, "true", 1303515621u, 61, 4, NULL);
|
||||
be_define_const_str(_write, "_write", 2215462825u, 0, 6, &be_const_str_content_send_style);
|
||||
be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, &be_const_str_rtc);
|
||||
be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, NULL);
|
||||
be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, &be_const_str_digital_write);
|
||||
be_define_const_str(digital_write, "digital_write", 3435877979u, 0, 13, &be_const_str_get_light);
|
||||
be_define_const_str(get_light, "get_light", 381930476u, 0, 9, NULL);
|
||||
be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_read12);
|
||||
be_define_const_str(read12, "read12", 4291076970u, 0, 6, NULL);
|
||||
be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, &be_const_str_remove_cmd);
|
||||
be_define_const_str(remove_cmd, "remove_cmd", 3832315702u, 0, 10, &be_const_str_str);
|
||||
be_define_const_str(str, "str", 3259748752u, 0, 3, NULL);
|
||||
be_define_const_str(available, "available", 1727918744u, 0, 9, &be_const_str_read24);
|
||||
be_define_const_str(read24, "read24", 1808533811u, 0, 6, &be_const_str_scale_uint);
|
||||
be_define_const_str(scale_uint, "scale_uint", 3090811094u, 0, 10, &be_const_str_try_rule);
|
||||
be_define_const_str(try_rule, "try_rule", 1986449405u, 0, 8, NULL);
|
||||
be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, &be_const_str_state);
|
||||
be_define_const_str(state, "state", 2016490230u, 0, 5, &be_const_str_strftime);
|
||||
be_define_const_str(strftime, "strftime", 187738851u, 0, 8, &be_const_str_toupper);
|
||||
be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, NULL);
|
||||
be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str_break);
|
||||
be_define_const_str(break, "break", 3378807160u, 58, 5, NULL);
|
||||
be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str_resolvecmnd);
|
||||
be_define_const_str(resolvecmnd, "resolvecmnd", 993361485u, 0, 11, NULL);
|
||||
be_define_const_str(AudioOutputI2S, "AudioOutputI2S", 638031784u, 0, 14, &be_const_str_SERIAL_5O2);
|
||||
be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, &be_const_str_erase);
|
||||
be_define_const_str(erase, "erase", 1010949589u, 0, 5, &be_const_str_lower);
|
||||
be_define_const_str(lower, "lower", 3038577850u, 0, 5, NULL);
|
||||
be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, NULL);
|
||||
be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_def);
|
||||
be_define_const_str(read8, "read8", 2802788167u, 0, 5, &be_const_str_setbits);
|
||||
be_define_const_str(setbits, "setbits", 2762408167u, 0, 7, &be_const_str_upper);
|
||||
be_define_const_str(upper, "upper", 176974407u, 0, 5, NULL);
|
||||
be_define_const_str(rad, "rad", 1358899048u, 0, 3, &be_const_str_web_send);
|
||||
be_define_const_str(web_send, "web_send", 2989941448u, 0, 8, NULL);
|
||||
be_define_const_str(load, "load", 3859241449u, 0, 4, NULL);
|
||||
be_define_const_str(opt_add, "+", 772578730u, 0, 1, &be_const_str_hex);
|
||||
be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_read12);
|
||||
be_define_const_str(read12, "read12", 4291076970u, 0, 6, &be_const_str_end);
|
||||
be_define_const_str(end, "end", 1787721130u, 56, 3, NULL);
|
||||
be_define_const_str(chars_in_string, "chars_in_string", 3148785132u, 0, 15, &be_const_str_write8);
|
||||
be_define_const_str(write8, "write8", 3133991532u, 0, 6, &be_const_str_def);
|
||||
be_define_const_str(def, "def", 3310976652u, 55, 3, NULL);
|
||||
be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, &be_const_str_read8);
|
||||
be_define_const_str(read8, "read8", 2802788167u, 0, 5, NULL);
|
||||
be_define_const_str(detect, "detect", 8884370u, 0, 6, &be_const_str_dump);
|
||||
be_define_const_str(dump, "dump", 3663001223u, 0, 4, &be_const_str_isrunning);
|
||||
be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, &be_const_str_push);
|
||||
be_define_const_str(push, "push", 2272264157u, 0, 4, &be_const_str_time_dump);
|
||||
be_define_const_str(time_dump, "time_dump", 3330410747u, 0, 9, &be_const_str_return);
|
||||
be_define_const_str(return, "return", 2246981567u, 60, 6, NULL);
|
||||
be_define_const_str(nil, "nil", 228849900u, 63, 3, NULL);
|
||||
be_define_const_str(remove_driver, "remove_driver", 1030243768u, 0, 13, NULL);
|
||||
be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str_add_driver);
|
||||
be_define_const_str(add_driver, "add_driver", 1654458371u, 0, 10, &be_const_str_keys);
|
||||
be_define_const_str(keys, "keys", 4182378701u, 0, 4, &be_const_str_run_deferred);
|
||||
be_define_const_str(run_deferred, "run_deferred", 371594696u, 0, 12, NULL);
|
||||
be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str_delay);
|
||||
be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_depower);
|
||||
be_define_const_str(depower, "depower", 3563819571u, 0, 7, &be_const_str_imin);
|
||||
be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_write8);
|
||||
be_define_const_str(write8, "write8", 3133991532u, 0, 6, NULL);
|
||||
be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_add_cmd);
|
||||
be_define_const_str(add_cmd, "add_cmd", 3361630879u, 0, 7, &be_const_str_add_rule);
|
||||
be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, NULL);
|
||||
be_define_const_str(compile, "compile", 1000265118u, 0, 7, &be_const_str_geti);
|
||||
be_define_const_str(geti, "geti", 2381006490u, 0, 4, &be_const_str_upper);
|
||||
be_define_const_str(upper, "upper", 176974407u, 0, 5, &be_const_str_webclient);
|
||||
be_define_const_str(webclient, "webclient", 4076389146u, 0, 9, NULL);
|
||||
be_define_const_str(has, "has", 3988721635u, 0, 3, NULL);
|
||||
be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, NULL);
|
||||
be_define_const_str(reduce, "reduce", 2002030311u, 0, 6, NULL);
|
||||
be_define_const_str(as, "as", 1579491469u, 67, 2, NULL);
|
||||
be_define_const_str(get_size, "get_size", 2803644713u, 0, 8, &be_const_str_tag);
|
||||
be_define_const_str(tag, "tag", 2516003219u, 0, 3, NULL);
|
||||
be_define_const_str(opt_connect, "..", 2748622605u, 0, 2, NULL);
|
||||
be_define_const_str(_get_cb, "_get_cb", 1448849122u, 0, 7, &be_const_str_try);
|
||||
be_define_const_str(try, "try", 2887626766u, 68, 3, &be_const_str_while);
|
||||
be_define_const_str(while, "while", 231090382u, 53, 5, NULL);
|
||||
be_define_const_str(gc, "gc", 1042313471u, 0, 2, NULL);
|
||||
be_define_const_str(begin, "begin", 1748273790u, 0, 5, &be_const_str_kv);
|
||||
be_define_const_str(kv, "kv", 1497177492u, 0, 2, &be_const_str_open);
|
||||
be_define_const_str(open, "open", 3546203337u, 0, 4, &be_const_str_web_send_decimal);
|
||||
be_define_const_str(web_send_decimal, "web_send_decimal", 1407210204u, 0, 16, NULL);
|
||||
be_define_const_str(cmd_res, "cmd_res", 921166762u, 0, 7, &be_const_str_settings);
|
||||
be_define_const_str(settings, "settings", 1745255176u, 0, 8, NULL);
|
||||
be_define_const_str(insert, "insert", 3332609576u, 0, 6, NULL);
|
||||
be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_asstring);
|
||||
be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, &be_const_str_get_option);
|
||||
be_define_const_str(get_option, "get_option", 2123730033u, 0, 10, NULL);
|
||||
be_define_const_str(SERIAL_7N1, "SERIAL_7N1", 1891060246u, 0, 10, &be_const_str_call);
|
||||
be_define_const_str(call, "call", 3018949801u, 0, 4, &be_const_str_eth);
|
||||
be_define_const_str(eth, "eth", 2191266556u, 0, 3, &be_const_str_if);
|
||||
be_define_const_str(if, "if", 959999494u, 50, 2, NULL);
|
||||
be_define_const_str(int, "int", 2515107422u, 0, 3, &be_const_str_time_reached);
|
||||
be_define_const_str(time_reached, "time_reached", 2075136773u, 0, 12, NULL);
|
||||
be_define_const_str(dot_p1, ".p1", 249175686u, 0, 3, &be_const_str_concat);
|
||||
be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_content_flush);
|
||||
be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, &be_const_str_list);
|
||||
be_define_const_str(list, "list", 217798785u, 0, 4, &be_const_str_map);
|
||||
be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_for);
|
||||
be_define_const_str(for, "for", 2901640080u, 54, 3, NULL);
|
||||
be_define_const_str(dot_p, ".p", 1171526419u, 0, 2, &be_const_str_set_timeouts);
|
||||
be_define_const_str(set_timeouts, "set_timeouts", 3732850900u, 0, 12, NULL);
|
||||
be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, NULL);
|
||||
be_define_const_str(POST, "POST", 1929554311u, 0, 4, &be_const_str_abs);
|
||||
be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_reverse);
|
||||
be_define_const_str(reverse, "reverse", 558918661u, 0, 7, &be_const_str_set_useragent);
|
||||
be_define_const_str(set_useragent, "set_useragent", 612237244u, 0, 13, &be_const_str_wire2);
|
||||
be_define_const_str(wire2, "wire2", 3229499038u, 0, 5, NULL);
|
||||
be_define_const_str(hex, "hex", 4273249610u, 0, 3, &be_const_str_set_light);
|
||||
be_define_const_str(set_light, "set_light", 3176076152u, 0, 9, NULL);
|
||||
be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, &be_const_str_seti);
|
||||
be_define_const_str(seti, "seti", 1500556254u, 0, 4, NULL);
|
||||
be_define_const_str(opt_add, "+", 772578730u, 0, 1, &be_const_str_content_send);
|
||||
be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, &be_const_str_real);
|
||||
be_define_const_str(real, "real", 3604983901u, 0, 4, NULL);
|
||||
be_define_const_str(publish, "publish", 264247304u, 0, 7, &be_const_str_reset_search);
|
||||
be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, NULL);
|
||||
be_define_const_str(log10, "log10", 2346846000u, 0, 5, NULL);
|
||||
be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str_resp_cmnd_error);
|
||||
be_define_const_str(resp_cmnd_error, "resp_cmnd_error", 2404088863u, 0, 15, NULL);
|
||||
be_define_const_str(arg, "arg", 1047474471u, 0, 3, &be_const_str_collect);
|
||||
be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_loop);
|
||||
be_define_const_str(loop, "loop", 3723446379u, 0, 4, NULL);
|
||||
be_define_const_str(wire, "wire", 4082753944u, 0, 4, NULL);
|
||||
be_define_const_str(dot_w, ".w", 1255414514u, 0, 2, &be_const_str_addr);
|
||||
be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_tob64);
|
||||
be_define_const_str(tob64, "tob64", 373777640u, 0, 5, NULL);
|
||||
be_define_const_str(scan, "scan", 3974641896u, 0, 4, &be_const_str_set_auth);
|
||||
be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, NULL);
|
||||
be_define_const_str(AudioFileSource, "AudioFileSource", 2959980058u, 0, 15, &be_const_str_arg_name);
|
||||
be_define_const_str(arg_name, "arg_name", 1345046155u, 0, 8, &be_const_str_contains);
|
||||
be_define_const_str(contains, "contains", 1825239352u, 0, 8, &be_const_str_content_stop);
|
||||
be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, NULL);
|
||||
be_define_const_str(nan, "nan", 797905850u, 0, 3, NULL);
|
||||
be_define_const_str(MD5, "MD5", 1935726387u, 0, 3, &be_const_str_gamma8);
|
||||
be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_isnan);
|
||||
be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, &be_const_str_pin_used);
|
||||
be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, &be_const_str_read);
|
||||
be_define_const_str(read, "read", 3470762949u, 0, 4, &be_const_str_reverse_gamma10);
|
||||
be_define_const_str(reverse_gamma10, "reverse_gamma10", 739112262u, 0, 15, NULL);
|
||||
be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, &be_const_str_check_privileged_access);
|
||||
be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, &be_const_str_load);
|
||||
be_define_const_str(load, "load", 3859241449u, 0, 4, &be_const_str_resize);
|
||||
be_define_const_str(resize, "resize", 3514612129u, 0, 6, NULL);
|
||||
be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, &be_const_str_write);
|
||||
be_define_const_str(write, "write", 3190202204u, 0, 5, NULL);
|
||||
be_define_const_str(AudioGenerator, "AudioGenerator", 1839297342u, 0, 14, NULL);
|
||||
be_define_const_str(AudioGeneratorWAV, "AudioGeneratorWAV", 2746509368u, 0, 17, &be_const_str_range);
|
||||
be_define_const_str(range, "range", 4208725202u, 0, 5, NULL);
|
||||
be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, &be_const_str_exec_rules);
|
||||
be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, &be_const_str_fromb64);
|
||||
be_define_const_str(fromb64, "fromb64", 2717019639u, 0, 7, &be_const_str_get_power);
|
||||
be_define_const_str(get_power, "get_power", 3009799377u, 0, 9, &be_const_str_serial);
|
||||
be_define_const_str(serial, "serial", 3687697785u, 0, 6, NULL);
|
||||
be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str_finish);
|
||||
be_define_const_str(finish, "finish", 1494643858u, 0, 6, NULL);
|
||||
be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_continue);
|
||||
be_define_const_str(continue, "continue", 2977070660u, 59, 8, &be_const_str_do);
|
||||
be_define_const_str(do, "do", 1646057492u, 65, 2, NULL);
|
||||
be_define_const_str(false, "false", 184981848u, 62, 5, NULL);
|
||||
be_define_const_str(tomap, "tomap", 612167626u, 0, 5, NULL);
|
||||
be_define_const_str(find_key_i, "find_key_i", 850136726u, 0, 10, NULL);
|
||||
be_define_const_str(pop, "pop", 1362321360u, 0, 3, &be_const_str_reset);
|
||||
be_define_const_str(reset, "reset", 1695364032u, 0, 5, &be_const_str_tolower);
|
||||
be_define_const_str(tolower, "tolower", 1042520049u, 0, 7, NULL);
|
||||
be_define_const_str(sin, "sin", 3761252941u, 0, 3, NULL);
|
||||
be_define_const_str(input, "input", 4191711099u, 0, 5, &be_const_str_resp_cmnd);
|
||||
be_define_const_str(resp_cmnd, "resp_cmnd", 2869459626u, 0, 9, NULL);
|
||||
be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_rad);
|
||||
be_define_const_str(rad, "rad", 1358899048u, 0, 3, &be_const_str_read32);
|
||||
be_define_const_str(read32, "read32", 1741276240u, 0, 6, NULL);
|
||||
be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, &be_const_str_pi);
|
||||
be_define_const_str(pi, "pi", 1213090802u, 0, 2, NULL);
|
||||
be_define_const_str(save, "save", 3439296072u, 0, 4, &be_const_str_shared_key);
|
||||
be_define_const_str(shared_key, "shared_key", 2200833624u, 0, 10, &be_const_str_write_bit);
|
||||
be_define_const_str(write_bit, "write_bit", 2660990436u, 0, 9, NULL);
|
||||
be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, &be_const_str_search);
|
||||
be_define_const_str(search, "search", 2150836393u, 0, 6, NULL);
|
||||
be_define_const_str(opt_call, "()", 685372826u, 0, 2, &be_const_str_setrange);
|
||||
be_define_const_str(setrange, "setrange", 3794019032u, 0, 8, &be_const_str_var);
|
||||
be_define_const_str(var, "var", 2317739966u, 64, 3, NULL);
|
||||
be_define_const_str(resp_cmnd_done, "resp_cmnd_done", 2601874875u, 0, 14, NULL);
|
||||
be_define_const_str(tan, "tan", 2633446552u, 0, 3, &be_const_str_update);
|
||||
be_define_const_str(update, "update", 672109684u, 0, 6, NULL);
|
||||
be_define_const_str(get_string, "get_string", 4195847969u, 0, 10, &be_const_str_setitem);
|
||||
be_define_const_str(setitem, "setitem", 1554834596u, 0, 7, NULL);
|
||||
be_define_const_str(memory, "memory", 2229924270u, 0, 6, &be_const_str_tanh);
|
||||
be_define_const_str(tanh, "tanh", 153638352u, 0, 4, NULL);
|
||||
be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str__end_transmission);
|
||||
be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, &be_const_str__timers);
|
||||
be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, NULL);
|
||||
be_define_const_str(counters, "counters", 4095866864u, 0, 8, NULL);
|
||||
be_define_const_str(millis, "millis", 1214679063u, 0, 6, NULL);
|
||||
be_define_const_str(import, "import", 288002260u, 66, 6, NULL);
|
||||
be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str_yield);
|
||||
be_define_const_str(select, "select", 297952813u, 0, 6, &be_const_str_type);
|
||||
be_define_const_str(type, "type", 1361572173u, 0, 4, NULL);
|
||||
be_define_const_str(global, "global", 503252654u, 0, 6, &be_const_str_yield);
|
||||
be_define_const_str(yield, "yield", 1821831854u, 0, 5, NULL);
|
||||
be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_arg_size);
|
||||
be_define_const_str(opt_eq, "==", 2431966415u, 0, 2, NULL);
|
||||
be_define_const_str(SERIAL_8E1, "SERIAL_8E1", 2371121616u, 0, 10, &be_const_str_rtc);
|
||||
be_define_const_str(rtc, "rtc", 1070575216u, 0, 3, &be_const_str_else);
|
||||
be_define_const_str(else, "else", 3183434736u, 52, 4, NULL);
|
||||
be_define_const_str(get_power, "get_power", 3009799377u, 0, 9, NULL);
|
||||
be_define_const_str(addr, "addr", 1087856498u, 0, 4, &be_const_str_allocated);
|
||||
be_define_const_str(allocated, "allocated", 429986098u, 0, 9, &be_const_str_finish);
|
||||
be_define_const_str(finish, "finish", 1494643858u, 0, 6, NULL);
|
||||
be_define_const_str(dot_p, ".p", 1171526419u, 0, 2, &be_const_str_getbits);
|
||||
be_define_const_str(getbits, "getbits", 3094168979u, 0, 7, &be_const_str_tag);
|
||||
be_define_const_str(tag, "tag", 2516003219u, 0, 3, NULL);
|
||||
be_define_const_str(add, "add", 993596020u, 0, 3, &be_const_str_pin);
|
||||
be_define_const_str(pin, "pin", 1866532500u, 0, 3, &be_const_str_set_timeouts);
|
||||
be_define_const_str(set_timeouts, "set_timeouts", 3732850900u, 0, 12, &be_const_str_import);
|
||||
be_define_const_str(import, "import", 288002260u, 66, 6, NULL);
|
||||
be_define_const_str(SERIAL_6N1, "SERIAL_6N1", 198895701u, 0, 10, NULL);
|
||||
be_define_const_str(SERIAL_8O1, "SERIAL_8O1", 289122742u, 0, 10, &be_const_str__settings_ptr);
|
||||
be_define_const_str(_settings_ptr, "_settings_ptr", 1825772182u, 0, 13, &be_const_str_remove_cmd);
|
||||
be_define_const_str(remove_cmd, "remove_cmd", 3832315702u, 0, 10, NULL);
|
||||
be_define_const_str(__iterator__, "__iterator__", 3884039703u, 0, 12, &be_const_str_atan2);
|
||||
be_define_const_str(atan2, "atan2", 3173440503u, 0, 5, &be_const_str_ctypes_bytes);
|
||||
be_define_const_str(ctypes_bytes, "ctypes_bytes", 3879019703u, 0, 12, &be_const_str_millis);
|
||||
be_define_const_str(millis, "millis", 1214679063u, 0, 6, NULL);
|
||||
be_define_const_str(available, "available", 1727918744u, 0, 9, &be_const_str_delay);
|
||||
be_define_const_str(delay, "delay", 1322381784u, 0, 5, &be_const_str_imin);
|
||||
be_define_const_str(imin, "imin", 2714127864u, 0, 4, &be_const_str_shared_key);
|
||||
be_define_const_str(shared_key, "shared_key", 2200833624u, 0, 10, &be_const_str_wire);
|
||||
be_define_const_str(wire, "wire", 4082753944u, 0, 4, NULL);
|
||||
be_define_const_str(_drivers, "_drivers", 3260328985u, 0, 8, &be_const_str_last_modified);
|
||||
be_define_const_str(last_modified, "last_modified", 772177145u, 0, 13, &be_const_str_serial);
|
||||
be_define_const_str(serial, "serial", 3687697785u, 0, 6, NULL);
|
||||
be_define_const_str(opt_call, "()", 685372826u, 0, 2, &be_const_str_webclient);
|
||||
be_define_const_str(webclient, "webclient", 4076389146u, 0, 9, NULL);
|
||||
be_define_const_str(SERIAL_6E2, "SERIAL_6E2", 317471867u, 0, 10, &be_const_str_ctypes_bytes_dyn);
|
||||
be_define_const_str(ctypes_bytes_dyn, "ctypes_bytes_dyn", 915205307u, 0, 16, &be_const_str_time_dump);
|
||||
be_define_const_str(time_dump, "time_dump", 3330410747u, 0, 9, &be_const_str_static);
|
||||
be_define_const_str(static, "static", 3532702267u, 71, 6, NULL);
|
||||
be_define_const_str(classname, "classname", 1998589948u, 0, 9, &be_const_str_isrunning);
|
||||
be_define_const_str(isrunning, "isrunning", 1688182268u, 0, 9, &be_const_str_top);
|
||||
be_define_const_str(top, "top", 2802900028u, 0, 3, NULL);
|
||||
be_define_const_str(remove, "remove", 3683784189u, 0, 6, NULL);
|
||||
be_define_const_str(begin, "begin", 1748273790u, 0, 5, NULL);
|
||||
be_define_const_str(content_stop, "content_stop", 658554751u, 0, 12, &be_const_str_deg);
|
||||
be_define_const_str(deg, "deg", 3327754271u, 0, 3, &be_const_str_gc);
|
||||
be_define_const_str(gc, "gc", 1042313471u, 0, 2, &be_const_str_gen_cb);
|
||||
be_define_const_str(gen_cb, "gen_cb", 3245227551u, 0, 6, NULL);
|
||||
be_define_const_str(reset, "reset", 1695364032u, 0, 5, NULL);
|
||||
be_define_const_str(clear, "clear", 1550717474u, 0, 5, &be_const_str_skip);
|
||||
be_define_const_str(skip, "skip", 1097563074u, 0, 4, NULL);
|
||||
be_define_const_str(SERIAL_5E1, "SERIAL_5E1", 1163775235u, 0, 10, &be_const_str_has);
|
||||
be_define_const_str(has, "has", 3988721635u, 0, 3, &be_const_str_raise);
|
||||
be_define_const_str(raise, "raise", 1593437475u, 70, 5, NULL);
|
||||
be_define_const_str(setitem, "setitem", 1554834596u, 0, 7, &be_const_str_write_bit);
|
||||
be_define_const_str(write_bit, "write_bit", 2660990436u, 0, 9, NULL);
|
||||
be_define_const_str(stop, "stop", 3411225317u, 0, 4, NULL);
|
||||
be_define_const_str(AES_GCM, "AES_GCM", 3832208678u, 0, 7, NULL);
|
||||
be_define_const_str(exec_cmd, "exec_cmd", 493567399u, 0, 8, &be_const_str_iter);
|
||||
be_define_const_str(iter, "iter", 3124256359u, 0, 4, NULL);
|
||||
be_define_const_str(ceil, "ceil", 1659167240u, 0, 4, &be_const_str_exp);
|
||||
be_define_const_str(exp, "exp", 1923516200u, 0, 3, &be_const_str_tob64);
|
||||
be_define_const_str(tob64, "tob64", 373777640u, 0, 5, &be_const_str_wire_scan);
|
||||
be_define_const_str(wire_scan, "wire_scan", 2671275880u, 0, 9, NULL);
|
||||
be_define_const_str(call, "call", 3018949801u, 0, 4, NULL);
|
||||
be_define_const_str(cmd_res, "cmd_res", 921166762u, 0, 7, NULL);
|
||||
be_define_const_str(opt_connect, "..", 2748622605u, 0, 2, &be_const_str_resolvecmnd);
|
||||
be_define_const_str(resolvecmnd, "resolvecmnd", 993361485u, 0, 11, NULL);
|
||||
be_define_const_str(SERIAL_6E1, "SERIAL_6E1", 334249486u, 0, 10, &be_const_str_try);
|
||||
be_define_const_str(try, "try", 2887626766u, 68, 3, NULL);
|
||||
be_define_const_str(_cb, "_cb", 4043300367u, 0, 3, NULL);
|
||||
be_define_const_str(AudioOutput, "AudioOutput", 3257792048u, 0, 11, &be_const_str_check_privileged_access);
|
||||
be_define_const_str(check_privileged_access, "check_privileged_access", 3692933968u, 0, 23, NULL);
|
||||
be_define_const_str(SERIAL_6O2, "SERIAL_6O2", 316486129u, 0, 10, &be_const_str_content_send);
|
||||
be_define_const_str(content_send, "content_send", 1673733649u, 0, 12, &be_const_str_tolower);
|
||||
be_define_const_str(tolower, "tolower", 1042520049u, 0, 7, NULL);
|
||||
be_define_const_str(detect, "detect", 8884370u, 0, 6, &be_const_str_imax);
|
||||
be_define_const_str(imax, "imax", 3084515410u, 0, 4, &be_const_str_set_auth);
|
||||
be_define_const_str(set_auth, "set_auth", 1057170930u, 0, 8, NULL);
|
||||
be_define_const_str(depower, "depower", 3563819571u, 0, 7, &be_const_str_read24);
|
||||
be_define_const_str(read24, "read24", 1808533811u, 0, 6, NULL);
|
||||
be_define_const_str(add_header, "add_header", 927130612u, 0, 10, &be_const_str_kv);
|
||||
be_define_const_str(kv, "kv", 1497177492u, 0, 2, &be_const_str_pin_used);
|
||||
be_define_const_str(pin_used, "pin_used", 4033854612u, 0, 8, &be_const_str_publish_result);
|
||||
be_define_const_str(publish_result, "publish_result", 2013351252u, 0, 14, &be_const_str_do);
|
||||
be_define_const_str(do, "do", 1646057492u, 65, 2, NULL);
|
||||
be_define_const_str(pow, "pow", 1479764693u, 0, 3, &be_const_str_read_bytes);
|
||||
be_define_const_str(read_bytes, "read_bytes", 3576733173u, 0, 10, NULL);
|
||||
be_define_const_str(SERIAL_5E2, "SERIAL_5E2", 1180552854u, 0, 10, &be_const_str_scale_uint);
|
||||
be_define_const_str(scale_uint, "scale_uint", 3090811094u, 0, 10, NULL);
|
||||
be_define_const_str(get, "get", 1410115415u, 0, 3, &be_const_str_remove_timer);
|
||||
be_define_const_str(remove_timer, "remove_timer", 4141472215u, 0, 12, NULL);
|
||||
be_define_const_str(dot_len, ".len", 850842136u, 0, 4, &be_const_str_Wire);
|
||||
be_define_const_str(Wire, "Wire", 1938276536u, 0, 4, &be_const_str__begin_transmission);
|
||||
be_define_const_str(_begin_transmission, "_begin_transmission", 2779461176u, 0, 19, &be_const_str_toupper);
|
||||
be_define_const_str(toupper, "toupper", 3691983576u, 0, 7, NULL);
|
||||
be_define_const_str(SERIAL_5N2, "SERIAL_5N2", 3363364537u, 0, 10, &be_const_str_arg_size);
|
||||
be_define_const_str(arg_size, "arg_size", 3310243257u, 0, 8, NULL);
|
||||
be_define_const_str(imax, "imax", 3084515410u, 0, 4, NULL);
|
||||
be_define_const_str(AudioFileSource, "AudioFileSource", 2959980058u, 0, 15, &be_const_str_I2C_Driver);
|
||||
be_define_const_str(I2C_Driver, "I2C_Driver", 1714501658u, 0, 10, &be_const_str_decrypt);
|
||||
be_define_const_str(decrypt, "decrypt", 2886974618u, 0, 7, NULL);
|
||||
be_define_const_str(digital_write, "digital_write", 3435877979u, 0, 13, &be_const_str_input);
|
||||
be_define_const_str(input, "input", 4191711099u, 0, 5, NULL);
|
||||
be_define_const_str(char, "char", 2823553821u, 0, 4, &be_const_str_floor);
|
||||
be_define_const_str(floor, "floor", 3102149661u, 0, 5, &be_const_str_real);
|
||||
be_define_const_str(real, "real", 3604983901u, 0, 4, NULL);
|
||||
be_define_const_str(AudioGenerator, "AudioGenerator", 1839297342u, 0, 14, &be_const_str__cmd);
|
||||
be_define_const_str(_cmd, "_cmd", 3419822142u, 0, 4, &be_const_str_enabled);
|
||||
be_define_const_str(enabled, "enabled", 49525662u, 0, 7, &be_const_str_int);
|
||||
be_define_const_str(int, "int", 2515107422u, 0, 3, NULL);
|
||||
be_define_const_str(byte, "byte", 1683620383u, 0, 4, &be_const_str_resp_cmnd_error);
|
||||
be_define_const_str(resp_cmnd_error, "resp_cmnd_error", 2404088863u, 0, 15, NULL);
|
||||
be_define_const_str(dot_size, ".size", 1965188224u, 0, 5, NULL);
|
||||
be_define_const_str(list, "list", 217798785u, 0, 4, &be_const_str_reset_search);
|
||||
be_define_const_str(reset_search, "reset_search", 1350414305u, 0, 12, NULL);
|
||||
be_define_const_str(SERIAL_7N2, "SERIAL_7N2", 1874282627u, 0, 10, &be_const_str_set);
|
||||
be_define_const_str(set, "set", 3324446467u, 0, 3, &be_const_str_elif);
|
||||
be_define_const_str(elif, "elif", 3232090307u, 51, 4, NULL);
|
||||
be_define_const_str(Tasmota, "Tasmota", 4047617668u, 0, 7, &be_const_str_get_switch);
|
||||
be_define_const_str(get_switch, "get_switch", 164821028u, 0, 10, NULL);
|
||||
be_define_const_str(read, "read", 3470762949u, 0, 4, NULL);
|
||||
be_define_const_str(__lower__, "__lower__", 123855590u, 0, 9, &be_const_str__read);
|
||||
be_define_const_str(_read, "_read", 346717030u, 0, 5, &be_const_str_asin);
|
||||
be_define_const_str(asin, "asin", 4272848550u, 0, 4, NULL);
|
||||
be_define_const_str(POST, "POST", 1929554311u, 0, 4, &be_const_str_arg);
|
||||
be_define_const_str(arg, "arg", 1047474471u, 0, 3, &be_const_str_reduce);
|
||||
be_define_const_str(reduce, "reduce", 2002030311u, 0, 6, NULL);
|
||||
be_define_const_str(deinit, "deinit", 2345559592u, 0, 6, &be_const_str_save);
|
||||
be_define_const_str(save, "save", 3439296072u, 0, 4, NULL);
|
||||
be_define_const_str(SERIAL_8E2, "SERIAL_8E2", 2421454473u, 0, 10, &be_const_str_get_size);
|
||||
be_define_const_str(get_size, "get_size", 2803644713u, 0, 8, &be_const_str_search);
|
||||
be_define_const_str(search, "search", 2150836393u, 0, 6, &be_const_str_srand);
|
||||
be_define_const_str(srand, "srand", 465518633u, 0, 5, NULL);
|
||||
be_define_const_str(isnan, "isnan", 2981347434u, 0, 5, NULL);
|
||||
be_define_const_str(arg_name, "arg_name", 1345046155u, 0, 8, &be_const_str_content_flush);
|
||||
be_define_const_str(content_flush, "content_flush", 214922475u, 0, 13, NULL);
|
||||
be_define_const_str(get_light, "get_light", 381930476u, 0, 9, NULL);
|
||||
be_define_const_str(sqrt, "sqrt", 2112764879u, 0, 4, NULL);
|
||||
be_define_const_str(_end_transmission, "_end_transmission", 3237480400u, 0, 17, &be_const_str_listdir);
|
||||
be_define_const_str(listdir, "listdir", 2005220720u, 0, 7, &be_const_str_log10);
|
||||
be_define_const_str(log10, "log10", 2346846000u, 0, 5, &be_const_str_pop);
|
||||
be_define_const_str(pop, "pop", 1362321360u, 0, 3, &be_const_str_read32);
|
||||
be_define_const_str(read32, "read32", 1741276240u, 0, 6, &be_const_str_for);
|
||||
be_define_const_str(for, "for", 2901640080u, 54, 3, NULL);
|
||||
be_define_const_str(exec_tele, "exec_tele", 1020751601u, 0, 9, &be_const_str_log);
|
||||
be_define_const_str(log, "log", 1062293841u, 0, 3, &be_const_str_map);
|
||||
be_define_const_str(map, "map", 3751997361u, 0, 3, &be_const_str_redirect);
|
||||
be_define_const_str(redirect, "redirect", 389758641u, 0, 8, NULL);
|
||||
be_define_const_str(format, "format", 3114108242u, 0, 6, &be_const_str_pi);
|
||||
be_define_const_str(pi, "pi", 1213090802u, 0, 2, &be_const_str_range);
|
||||
be_define_const_str(range, "range", 4208725202u, 0, 5, NULL);
|
||||
be_define_const_str(SERIAL_7E2, "SERIAL_7E2", 97385204u, 0, 10, &be_const_str_count);
|
||||
be_define_const_str(count, "count", 967958004u, 0, 5, &be_const_str_update);
|
||||
be_define_const_str(update, "update", 672109684u, 0, 6, NULL);
|
||||
be_define_const_str(SERIAL_7N1, "SERIAL_7N1", 1891060246u, 0, 10, &be_const_str_find_key_i);
|
||||
be_define_const_str(find_key_i, "find_key_i", 850136726u, 0, 10, NULL);
|
||||
be_define_const_str(content_button, "content_button", 1956476087u, 0, 14, NULL);
|
||||
be_define_const_str(AudioGeneratorMP3, "AudioGeneratorMP3", 2199818488u, 0, 17, &be_const_str_AudioGeneratorWAV);
|
||||
be_define_const_str(AudioGeneratorWAV, "AudioGeneratorWAV", 2746509368u, 0, 17, &be_const_str__buffer);
|
||||
be_define_const_str(_buffer, "_buffer", 2044888568u, 0, 7, &be_const_str_remove_driver);
|
||||
be_define_const_str(remove_driver, "remove_driver", 1030243768u, 0, 13, &be_const_str_false);
|
||||
be_define_const_str(false, "false", 184981848u, 62, 5, NULL);
|
||||
be_define_const_str(fromptr, "fromptr", 666189689u, 0, 7, NULL);
|
||||
be_define_const_str(geti, "geti", 2381006490u, 0, 4, &be_const_str_lower);
|
||||
be_define_const_str(lower, "lower", 3038577850u, 0, 5, &be_const_str_nan);
|
||||
be_define_const_str(nan, "nan", 797905850u, 0, 3, NULL);
|
||||
be_define_const_str(assert, "assert", 2774883451u, 0, 6, NULL);
|
||||
be_define_const_str(time_str, "time_str", 2613827612u, 0, 8, NULL);
|
||||
be_define_const_str(exists, "exists", 1002329533u, 0, 6, &be_const_str_read13);
|
||||
be_define_const_str(read13, "read13", 12887293u, 0, 6, &be_const_str_set_power);
|
||||
be_define_const_str(set_power, "set_power", 549820893u, 0, 9, NULL);
|
||||
be_define_const_str(seti, "seti", 1500556254u, 0, 4, &be_const_str_toptr);
|
||||
be_define_const_str(toptr, "toptr", 3379847454u, 0, 5, NULL);
|
||||
be_define_const_str(acos, "acos", 1006755615u, 0, 4, NULL);
|
||||
be_define_const_str(find_op, "find_op", 3766713376u, 0, 7, NULL);
|
||||
be_define_const_str(isinstance, "isinstance", 3669352738u, 0, 10, NULL);
|
||||
be_define_const_str(cb_dispatch, "cb_dispatch", 1741510499u, 0, 11, NULL);
|
||||
be_define_const_str(SERIAL_5O2, "SERIAL_5O2", 3732325060u, 0, 10, &be_const_str_bytes);
|
||||
be_define_const_str(bytes, "bytes", 1706151940u, 0, 5, &be_const_str_public_key);
|
||||
be_define_const_str(public_key, "public_key", 4169142980u, 0, 10, &be_const_str_continue);
|
||||
be_define_const_str(continue, "continue", 2977070660u, 59, 8, NULL);
|
||||
be_define_const_str(, "", 2166136261u, 0, 0, &be_const_str__available);
|
||||
be_define_const_str(_available, "_available", 1306196581u, 0, 10, &be_const_str__def);
|
||||
be_define_const_str(_def, "_def", 1985022181u, 0, 4, &be_const_str_i2c_enabled);
|
||||
be_define_const_str(i2c_enabled, "i2c_enabled", 218388101u, 0, 11, &be_const_str_reverse);
|
||||
be_define_const_str(reverse, "reverse", 558918661u, 0, 7, &be_const_str_true);
|
||||
be_define_const_str(true, "true", 1303515621u, 61, 4, NULL);
|
||||
be_define_const_str(dac_voltage, "dac_voltage", 1552257222u, 0, 11, &be_const_str_name);
|
||||
be_define_const_str(name, "name", 2369371622u, 0, 4, &be_const_str_reverse_gamma10);
|
||||
be_define_const_str(reverse_gamma10, "reverse_gamma10", 739112262u, 0, 15, NULL);
|
||||
be_define_const_str(add_rule, "add_rule", 596540743u, 0, 8, &be_const_str_dump);
|
||||
be_define_const_str(dump, "dump", 3663001223u, 0, 4, NULL);
|
||||
be_define_const_str(AudioOutputI2S, "AudioOutputI2S", 638031784u, 0, 14, &be_const_str_attrdump);
|
||||
be_define_const_str(attrdump, "attrdump", 1521571304u, 0, 8, &be_const_str_fromstring);
|
||||
be_define_const_str(fromstring, "fromstring", 610302344u, 0, 10, &be_const_str_publish);
|
||||
be_define_const_str(publish, "publish", 264247304u, 0, 7, &be_const_str_wifi);
|
||||
be_define_const_str(wifi, "wifi", 120087624u, 0, 4, NULL);
|
||||
be_define_const_str(_write, "_write", 2215462825u, 0, 6, NULL);
|
||||
be_define_const_str(resp_cmnd, "resp_cmnd", 2869459626u, 0, 9, &be_const_str_tomap);
|
||||
be_define_const_str(tomap, "tomap", 612167626u, 0, 5, NULL);
|
||||
be_define_const_str(content_start, "content_start", 2937509069u, 0, 13, &be_const_str_traceback);
|
||||
be_define_const_str(traceback, "traceback", 3385188109u, 0, 9, &be_const_str_as);
|
||||
be_define_const_str(as, "as", 1579491469u, 67, 2, NULL);
|
||||
be_define_const_str(memory, "memory", 2229924270u, 0, 6, &be_const_str_pin_mode);
|
||||
be_define_const_str(pin_mode, "pin_mode", 3258314030u, 0, 8, NULL);
|
||||
be_define_const_str(EC_C25519, "EC_C25519", 95492591u, 0, 9, NULL);
|
||||
be_define_const_str(str, "str", 3259748752u, 0, 3, &be_const_str_tanh);
|
||||
be_define_const_str(tanh, "tanh", 153638352u, 0, 4, &be_const_str_write_bytes);
|
||||
be_define_const_str(write_bytes, "write_bytes", 1227543792u, 0, 11, &be_const_str_except);
|
||||
be_define_const_str(except, "except", 950914032u, 69, 6, NULL);
|
||||
be_define_const_str(get_option, "get_option", 2123730033u, 0, 10, NULL);
|
||||
be_define_const_str(dot_w, ".w", 1255414514u, 0, 2, NULL);
|
||||
be_define_const_str(SERIAL_7O1, "SERIAL_7O1", 1823802675u, 0, 10, &be_const_str_SERIAL_8N1);
|
||||
be_define_const_str(SERIAL_8N1, "SERIAL_8N1", 2369297235u, 0, 10, &be_const_str_init);
|
||||
be_define_const_str(init, "init", 380752755u, 0, 4, NULL);
|
||||
be_define_const_str(_timers, "_timers", 2600100916u, 0, 7, &be_const_str_super);
|
||||
be_define_const_str(super, "super", 4152230356u, 0, 5, NULL);
|
||||
be_define_const_str(GET, "GET", 2531704439u, 0, 3, &be_const_str_fromb64);
|
||||
be_define_const_str(fromb64, "fromb64", 2717019639u, 0, 7, NULL);
|
||||
be_define_const_str(break, "break", 3378807160u, 58, 5, NULL);
|
||||
be_define_const_str(_global_def, "_global_def", 646007001u, 0, 11, &be_const_str_bus);
|
||||
be_define_const_str(bus, "bus", 1607822841u, 0, 3, NULL);
|
||||
be_define_const_str(find, "find", 3186656602u, 0, 4, &be_const_str_resp_cmnd_failed);
|
||||
be_define_const_str(resp_cmnd_failed, "resp_cmnd_failed", 2136281562u, 0, 16, NULL);
|
||||
be_define_const_str(SERIAL_6N2, "SERIAL_6N2", 148562844u, 0, 10, &be_const_str__request_from);
|
||||
be_define_const_str(_request_from, "_request_from", 3965148604u, 0, 13, &be_const_str_cos);
|
||||
be_define_const_str(cos, "cos", 4220379804u, 0, 3, &be_const_str_cosh);
|
||||
be_define_const_str(cosh, "cosh", 4099687964u, 0, 4, &be_const_str_set_useragent);
|
||||
be_define_const_str(set_useragent, "set_useragent", 612237244u, 0, 13, &be_const_str_size);
|
||||
be_define_const_str(size, "size", 597743964u, 0, 4, &be_const_str_web_send_decimal);
|
||||
be_define_const_str(web_send_decimal, "web_send_decimal", 1407210204u, 0, 16, &be_const_str_write);
|
||||
be_define_const_str(write, "write", 3190202204u, 0, 5, NULL);
|
||||
be_define_const_str(module, "module", 3617558685u, 0, 6, &be_const_str_try_rule);
|
||||
be_define_const_str(try_rule, "try_rule", 1986449405u, 0, 8, NULL);
|
||||
be_define_const_str(var, "var", 2317739966u, 64, 3, NULL);
|
||||
be_define_const_str(content_send_style, "content_send_style", 1087907647u, 0, 18, &be_const_str_sinh);
|
||||
be_define_const_str(sinh, "sinh", 282220607u, 0, 4, &be_const_str_return);
|
||||
be_define_const_str(return, "return", 2246981567u, 60, 6, NULL);
|
||||
be_define_const_str(asstring, "asstring", 1298225088u, 0, 8, &be_const_str_digital_read);
|
||||
be_define_const_str(digital_read, "digital_read", 3585496928u, 0, 12, &be_const_str_has_arg);
|
||||
be_define_const_str(has_arg, "has_arg", 424878688u, 0, 7, &be_const_str_number);
|
||||
be_define_const_str(number, "number", 467038368u, 0, 6, &be_const_str_remove_rule);
|
||||
be_define_const_str(remove_rule, "remove_rule", 3456211328u, 0, 11, NULL);
|
||||
be_define_const_str(get_string, "get_string", 4195847969u, 0, 10, &be_const_str_resize);
|
||||
be_define_const_str(resize, "resize", 3514612129u, 0, 6, NULL);
|
||||
be_define_const_str(encrypt, "encrypt", 2194327650u, 0, 7, NULL);
|
||||
be_define_const_str(opt_neq, "!=", 2428715011u, 0, 2, &be_const_str_add_driver);
|
||||
be_define_const_str(add_driver, "add_driver", 1654458371u, 0, 10, &be_const_str_close);
|
||||
be_define_const_str(close, "close", 667630371u, 0, 5, &be_const_str_member);
|
||||
be_define_const_str(member, "member", 719708611u, 0, 6, &be_const_str_response_append);
|
||||
be_define_const_str(response_append, "response_append", 450346371u, 0, 15, &be_const_str_split);
|
||||
be_define_const_str(split, "split", 2276994531u, 0, 5, &be_const_str_strftime);
|
||||
be_define_const_str(strftime, "strftime", 187738851u, 0, 8, NULL);
|
||||
be_define_const_str(exec_rules, "exec_rules", 1445221092u, 0, 10, NULL);
|
||||
be_define_const_str(AudioFileSourceFS, "AudioFileSourceFS", 1839147653u, 0, 17, &be_const_str__ccmd);
|
||||
be_define_const_str(_ccmd, "_ccmd", 2163421413u, 0, 5, &be_const_str_set_timer);
|
||||
be_define_const_str(set_timer, "set_timer", 2135414533u, 0, 9, &be_const_str_time_reached);
|
||||
be_define_const_str(time_reached, "time_reached", 2075136773u, 0, 12, NULL);
|
||||
be_define_const_str(SERIAL_7O2, "SERIAL_7O2", 1840580294u, 0, 10, &be_const_str_SERIAL_8N2);
|
||||
be_define_const_str(SERIAL_8N2, "SERIAL_8N2", 2386074854u, 0, 10, &be_const_str_if);
|
||||
be_define_const_str(if, "if", 959999494u, 50, 2, NULL);
|
||||
be_define_const_str(_ptr, "_ptr", 306235816u, 0, 4, &be_const_str_insert);
|
||||
be_define_const_str(insert, "insert", 3332609576u, 0, 6, &be_const_str_print);
|
||||
be_define_const_str(print, "print", 372738696u, 0, 5, &be_const_str_run_deferred);
|
||||
be_define_const_str(run_deferred, "run_deferred", 371594696u, 0, 12, &be_const_str_scan);
|
||||
be_define_const_str(scan, "scan", 3974641896u, 0, 4, &be_const_str_settings);
|
||||
be_define_const_str(settings, "settings", 1745255176u, 0, 8, NULL);
|
||||
be_define_const_str(open, "open", 3546203337u, 0, 4, NULL);
|
||||
be_define_const_str(cmd, "cmd", 4136785899u, 0, 3, &be_const_str_loop);
|
||||
be_define_const_str(loop, "loop", 3723446379u, 0, 4, &be_const_str_wire1);
|
||||
be_define_const_str(wire1, "wire1", 3212721419u, 0, 5, NULL);
|
||||
be_define_const_str(nil, "nil", 228849900u, 63, 3, NULL);
|
||||
be_define_const_str(SERIAL_7E1, "SERIAL_7E1", 147718061u, 0, 10, &be_const_str_keys);
|
||||
be_define_const_str(keys, "keys", 4182378701u, 0, 4, &be_const_str_sin);
|
||||
be_define_const_str(sin, "sin", 3761252941u, 0, 3, NULL);
|
||||
be_define_const_str(calldepth, "calldepth", 3122364302u, 0, 9, &be_const_str_while);
|
||||
be_define_const_str(while, "while", 231090382u, 53, 5, NULL);
|
||||
be_define_const_str(counters, "counters", 4095866864u, 0, 8, &be_const_str_members);
|
||||
be_define_const_str(members, "members", 937576464u, 0, 7, &be_const_str_on);
|
||||
be_define_const_str(on, "on", 1630810064u, 0, 2, NULL);
|
||||
be_define_const_str(_rules, "_rules", 4266217105u, 0, 6, &be_const_str_collect);
|
||||
be_define_const_str(collect, "collect", 2399039025u, 0, 7, &be_const_str_url_encode);
|
||||
be_define_const_str(url_encode, "url_encode", 528392145u, 0, 10, NULL);
|
||||
be_define_const_str(codedump, "codedump", 1786337906u, 0, 8, NULL);
|
||||
be_define_const_str(dot_p2, ".p2", 232398067u, 0, 3, &be_const_str_MD5);
|
||||
be_define_const_str(MD5, "MD5", 1935726387u, 0, 3, &be_const_str__settings_def);
|
||||
be_define_const_str(_settings_def, "_settings_def", 3775560307u, 0, 13, NULL);
|
||||
be_define_const_str(erase, "erase", 1010949589u, 0, 5, NULL);
|
||||
be_define_const_str(gamma8, "gamma8", 3802843830u, 0, 6, &be_const_str_rand);
|
||||
be_define_const_str(rand, "rand", 2711325910u, 0, 4, &be_const_str_resp_cmnd_str);
|
||||
be_define_const_str(resp_cmnd_str, "resp_cmnd_str", 737845590u, 0, 13, &be_const_str_state);
|
||||
be_define_const_str(state, "state", 2016490230u, 0, 5, NULL);
|
||||
be_define_const_str(SERIAL_6O1, "SERIAL_6O1", 266153272u, 0, 10, &be_const_str_contains);
|
||||
be_define_const_str(contains, "contains", 1825239352u, 0, 8, &be_const_str_set_light);
|
||||
be_define_const_str(set_light, "set_light", 3176076152u, 0, 9, &be_const_str_setrange);
|
||||
be_define_const_str(setrange, "setrange", 3794019032u, 0, 8, &be_const_str_tan);
|
||||
be_define_const_str(tan, "tan", 2633446552u, 0, 3, NULL);
|
||||
be_define_const_str(target_search, "target_search", 1947846553u, 0, 13, NULL);
|
||||
be_define_const_str(abs, "abs", 709362235u, 0, 3, &be_const_str_resp_cmnd_done);
|
||||
be_define_const_str(resp_cmnd_done, "resp_cmnd_done", 2601874875u, 0, 14, NULL);
|
||||
be_define_const_str(eth, "eth", 2191266556u, 0, 3, NULL);
|
||||
be_define_const_str(SERIAL_5O1, "SERIAL_5O1", 3782657917u, 0, 10, &be_const_str_concat);
|
||||
be_define_const_str(concat, "concat", 4124019837u, 0, 6, &be_const_str_flush);
|
||||
be_define_const_str(flush, "flush", 3002334877u, 0, 5, &be_const_str_get_free_heap);
|
||||
be_define_const_str(get_free_heap, "get_free_heap", 625069757u, 0, 13, &be_const_str_push);
|
||||
be_define_const_str(push, "push", 2272264157u, 0, 4, NULL);
|
||||
be_define_const_str(compile, "compile", 1000265118u, 0, 7, &be_const_str_wire2);
|
||||
be_define_const_str(wire2, "wire2", 3229499038u, 0, 5, NULL);
|
||||
be_define_const_str(add_cmd, "add_cmd", 3361630879u, 0, 7, &be_const_str_atan);
|
||||
be_define_const_str(atan, "atan", 108579519u, 0, 4, &be_const_str_event);
|
||||
be_define_const_str(event, "event", 4264611999u, 0, 5, &be_const_str_issubclass);
|
||||
be_define_const_str(issubclass, "issubclass", 4078395519u, 0, 10, &be_const_str_write_file);
|
||||
be_define_const_str(write_file, "write_file", 3177658879u, 0, 10, &be_const_str_class);
|
||||
be_define_const_str(class, "class", 2872970239u, 57, 5, NULL);
|
||||
|
||||
static const bstring* const m_string_table[] = {
|
||||
(const bstring *)&be_const_str_size,
|
||||
(const bstring *)&be_const_str_has_arg,
|
||||
(const bstring *)&be_const_str_SERIAL_5N1,
|
||||
(const bstring *)&be_const_str__global_addr,
|
||||
(const bstring *)&be_const_str_OneWire,
|
||||
(const bstring *)&be_const_str_SERIAL_8O2,
|
||||
(const bstring *)&be_const_str_copy,
|
||||
(const bstring *)&be_const_str_tostring,
|
||||
(const bstring *)&be_const_str_dot_p1,
|
||||
(const bstring *)&be_const_str_read8,
|
||||
(const bstring *)&be_const_str_rad,
|
||||
(const bstring *)&be_const_str_load,
|
||||
(const bstring *)&be_const_str_opt_add,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_chars_in_string,
|
||||
(const bstring *)&be_const_str_select,
|
||||
(const bstring *)&be_const_str_global,
|
||||
(const bstring *)&be_const_str_opt_eq,
|
||||
(const bstring *)&be_const_str_SERIAL_8E1,
|
||||
(const bstring *)&be_const_str_get_power,
|
||||
(const bstring *)&be_const_str_addr,
|
||||
(const bstring *)&be_const_str_dot_p,
|
||||
(const bstring *)&be_const_str_add,
|
||||
(const bstring *)&be_const_str_SERIAL_6N1,
|
||||
(const bstring *)&be_const_str_SERIAL_8O1,
|
||||
(const bstring *)&be_const_str___iterator__,
|
||||
(const bstring *)&be_const_str_available,
|
||||
(const bstring *)&be_const_str__drivers,
|
||||
(const bstring *)&be_const_str_opt_call,
|
||||
(const bstring *)&be_const_str_SERIAL_6E2,
|
||||
(const bstring *)&be_const_str_classname,
|
||||
(const bstring *)&be_const_str_remove,
|
||||
(const bstring *)&be_const_str_begin,
|
||||
(const bstring *)&be_const_str_content_stop,
|
||||
(const bstring *)&be_const_str_reset,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_clear,
|
||||
(const bstring *)&be_const_str_SERIAL_5E1,
|
||||
(const bstring *)&be_const_str_setitem,
|
||||
(const bstring *)&be_const_str_stop,
|
||||
(const bstring *)&be_const_str_AES_GCM,
|
||||
(const bstring *)&be_const_str_exec_cmd,
|
||||
(const bstring *)&be_const_str_ceil,
|
||||
(const bstring *)&be_const_str_call,
|
||||
(const bstring *)&be_const_str_cmd_res,
|
||||
NULL,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_opt_connect,
|
||||
(const bstring *)&be_const_str_SERIAL_6E1,
|
||||
(const bstring *)&be_const_str_cosh,
|
||||
(const bstring *)&be_const_str_dac_voltage,
|
||||
(const bstring *)&be_const_str__cb,
|
||||
(const bstring *)&be_const_str_AudioOutput,
|
||||
(const bstring *)&be_const_str_SERIAL_6O2,
|
||||
(const bstring *)&be_const_str_detect,
|
||||
(const bstring *)&be_const_str_depower,
|
||||
(const bstring *)&be_const_str_add_header,
|
||||
(const bstring *)&be_const_str_pow,
|
||||
(const bstring *)&be_const_str_SERIAL_5E2,
|
||||
(const bstring *)&be_const_str_get,
|
||||
(const bstring *)&be_const_str_dot_len,
|
||||
(const bstring *)&be_const_str_SERIAL_5N2,
|
||||
(const bstring *)&be_const_str_AudioFileSource,
|
||||
(const bstring *)&be_const_str_digital_write,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_char,
|
||||
(const bstring *)&be_const_str_AudioGenerator,
|
||||
(const bstring *)&be_const_str_byte,
|
||||
(const bstring *)&be_const_str_dot_size,
|
||||
(const bstring *)&be_const_str_list,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_7N2,
|
||||
(const bstring *)&be_const_str__cb,
|
||||
(const bstring *)&be_const_str_dot_p2,
|
||||
(const bstring *)&be_const_str_decrypt,
|
||||
(const bstring *)&be_const_str_SERIAL_7O1,
|
||||
(const bstring *)&be_const_str_SERIAL_5N2,
|
||||
(const bstring *)&be_const_str_SERIAL_8N2,
|
||||
(const bstring *)&be_const_str_resp_cmnd_failed,
|
||||
(const bstring *)&be_const_str_SERIAL_5E1,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str__global_def,
|
||||
(const bstring *)&be_const_str__rules,
|
||||
(const bstring *)&be_const_str___upper__,
|
||||
(const bstring *)&be_const_str_char,
|
||||
(const bstring *)&be_const_str_add_header,
|
||||
(const bstring *)&be_const_str_OneWire,
|
||||
(const bstring *)&be_const_str_close,
|
||||
(const bstring *)&be_const_str_read13,
|
||||
(const bstring *)&be_const_str_AudioOutput,
|
||||
(const bstring *)&be_const_str_gen_cb,
|
||||
(const bstring *)&be_const_str_opt_neq,
|
||||
(const bstring *)&be_const_str_pow,
|
||||
(const bstring *)&be_const_str_count,
|
||||
(const bstring *)&be_const_str_web_send,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_classof,
|
||||
(const bstring *)&be_const_str_rand,
|
||||
(const bstring *)&be_const_str_cb_dispatch,
|
||||
(const bstring *)&be_const_str_floor,
|
||||
(const bstring *)&be_const_str_SERIAL_5N1,
|
||||
(const bstring *)&be_const_str_get_switch,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str__read,
|
||||
(const bstring *)&be_const_str_opt_eq,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_setbits,
|
||||
(const bstring *)&be_const_str_stop,
|
||||
(const bstring *)&be_const_str_issubclass,
|
||||
(const bstring *)&be_const_str_flush,
|
||||
(const bstring *)&be_const_str_I2C_Driver,
|
||||
(const bstring *)&be_const_str_atan2,
|
||||
(const bstring *)&be_const_str__settings_def,
|
||||
(const bstring *)&be_const_str_name,
|
||||
(const bstring *)&be_const_str_acos,
|
||||
(const bstring *)&be_const_str_exists,
|
||||
(const bstring *)&be_const_str_EC_C25519,
|
||||
(const bstring *)&be_const_str_bus,
|
||||
(const bstring *)&be_const_str_bytes,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_6N1,
|
||||
(const bstring *)&be_const_str_dot_size,
|
||||
(const bstring *)&be_const_str_AES_GCM,
|
||||
(const bstring *)&be_const_str_cmd,
|
||||
(const bstring *)&be_const_str_tostring,
|
||||
(const bstring *)&be_const_str__buffer,
|
||||
(const bstring *)&be_const_str_except,
|
||||
(const bstring *)&be_const_str_dot_len,
|
||||
(const bstring *)&be_const_str_SERIAL_6E2,
|
||||
(const bstring *)&be_const_str_Tasmota,
|
||||
(const bstring *)&be_const_str_read,
|
||||
(const bstring *)&be_const_str___lower__,
|
||||
(const bstring *)&be_const_str_POST,
|
||||
(const bstring *)&be_const_str_deinit,
|
||||
(const bstring *)&be_const_str_SERIAL_8E2,
|
||||
(const bstring *)&be_const_str__ptr,
|
||||
(const bstring *)&be_const_str_GET,
|
||||
(const bstring *)&be_const_str_isnan,
|
||||
(const bstring *)&be_const_str_arg_name,
|
||||
(const bstring *)&be_const_str_get_light,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_byte,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_true,
|
||||
(const bstring *)&be_const_str__write,
|
||||
(const bstring *)&be_const_str_Wire,
|
||||
(const bstring *)&be_const_str_SERIAL_8N1,
|
||||
(const bstring *)&be_const_str_exec_cmd,
|
||||
(const bstring *)&be_const_str_available,
|
||||
(const bstring *)&be_const_str_publish_result,
|
||||
(const bstring *)&be_const_str_sqrt,
|
||||
(const bstring *)&be_const_str__end_transmission,
|
||||
(const bstring *)&be_const_str_exec_tele,
|
||||
(const bstring *)&be_const_str_format,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_7E2,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_7N1,
|
||||
(const bstring *)&be_const_str_content_button,
|
||||
(const bstring *)&be_const_str_AudioGeneratorMP3,
|
||||
(const bstring *)&be_const_str_fromptr,
|
||||
(const bstring *)&be_const_str_geti,
|
||||
(const bstring *)&be_const_str_assert,
|
||||
(const bstring *)&be_const_str_time_str,
|
||||
(const bstring *)&be_const_str_exists,
|
||||
(const bstring *)&be_const_str_seti,
|
||||
(const bstring *)&be_const_str_acos,
|
||||
(const bstring *)&be_const_str_find_op,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_isinstance,
|
||||
(const bstring *)&be_const_str_cb_dispatch,
|
||||
(const bstring *)&be_const_str_SERIAL_5O2,
|
||||
(const bstring *)&be_const_str_,
|
||||
(const bstring *)&be_const_str_dac_voltage,
|
||||
(const bstring *)&be_const_str_add_rule,
|
||||
(const bstring *)&be_const_str_AudioOutputI2S,
|
||||
(const bstring *)&be_const_str__write,
|
||||
(const bstring *)&be_const_str_resp_cmnd,
|
||||
NULL,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_content_start,
|
||||
(const bstring *)&be_const_str_memory,
|
||||
(const bstring *)&be_const_str_EC_C25519,
|
||||
(const bstring *)&be_const_str_str,
|
||||
(const bstring *)&be_const_str_get_option,
|
||||
(const bstring *)&be_const_str_dot_w,
|
||||
(const bstring *)&be_const_str_SERIAL_7O1,
|
||||
(const bstring *)&be_const_str__timers,
|
||||
NULL,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_GET,
|
||||
(const bstring *)&be_const_str_break,
|
||||
(const bstring *)&be_const_str__global_def,
|
||||
(const bstring *)&be_const_str_find,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_6N2,
|
||||
(const bstring *)&be_const_str_AudioOutputI2S,
|
||||
(const bstring *)&be_const_str_fromstring,
|
||||
(const bstring *)&be_const_str_print,
|
||||
(const bstring *)&be_const_str__request_from,
|
||||
(const bstring *)&be_const_str_detect,
|
||||
(const bstring *)&be_const_str_nil,
|
||||
(const bstring *)&be_const_str_remove_driver,
|
||||
(const bstring *)&be_const_str_SERIAL_7E2,
|
||||
(const bstring *)&be_const_str_SERIAL_8E1,
|
||||
(const bstring *)&be_const_str_add,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_compile,
|
||||
(const bstring *)&be_const_str_has,
|
||||
(const bstring *)&be_const_str_codedump,
|
||||
(const bstring *)&be_const_str_reduce,
|
||||
(const bstring *)&be_const_str_as,
|
||||
(const bstring *)&be_const_str_get_size,
|
||||
(const bstring *)&be_const_str_opt_connect,
|
||||
(const bstring *)&be_const_str__get_cb,
|
||||
(const bstring *)&be_const_str_gc,
|
||||
(const bstring *)&be_const_str_begin,
|
||||
(const bstring *)&be_const_str_cmd_res,
|
||||
(const bstring *)&be_const_str_insert,
|
||||
(const bstring *)&be_const_str___iterator__,
|
||||
(const bstring *)&be_const_str_SERIAL_7N1,
|
||||
(const bstring *)&be_const_str_int,
|
||||
(const bstring *)&be_const_str_dot_p1,
|
||||
(const bstring *)&be_const_str_dot_p,
|
||||
(const bstring *)&be_const_str_module,
|
||||
(const bstring *)&be_const_str_var,
|
||||
(const bstring *)&be_const_str_content_send_style,
|
||||
(const bstring *)&be_const_str_asstring,
|
||||
(const bstring *)&be_const_str_get_string,
|
||||
(const bstring *)&be_const_str_encrypt,
|
||||
(const bstring *)&be_const_str_opt_neq,
|
||||
(const bstring *)&be_const_str_exec_rules,
|
||||
(const bstring *)&be_const_str_AudioFileSourceFS,
|
||||
(const bstring *)&be_const_str_SERIAL_7O2,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_POST,
|
||||
(const bstring *)&be_const_str_hex,
|
||||
(const bstring *)&be_const_str_SERIAL_5E2,
|
||||
(const bstring *)&be_const_str_opt_add,
|
||||
(const bstring *)&be_const_str_publish,
|
||||
(const bstring *)&be_const_str_log10,
|
||||
(const bstring *)&be_const_str__drivers,
|
||||
(const bstring *)&be_const_str__ptr,
|
||||
(const bstring *)&be_const_str_open,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_arg,
|
||||
(const bstring *)&be_const_str_wire,
|
||||
(const bstring *)&be_const_str_dot_w,
|
||||
(const bstring *)&be_const_str_scan,
|
||||
(const bstring *)&be_const_str_AudioFileSource,
|
||||
(const bstring *)&be_const_str_nan,
|
||||
(const bstring *)&be_const_str_MD5,
|
||||
(const bstring *)&be_const_str_SERIAL_6O2,
|
||||
(const bstring *)&be_const_str_content_start,
|
||||
(const bstring *)&be_const_str_AudioGenerator,
|
||||
(const bstring *)&be_const_str_cmd,
|
||||
(const bstring *)&be_const_str_nil,
|
||||
(const bstring *)&be_const_str_SERIAL_7E1,
|
||||
(const bstring *)&be_const_str_calldepth,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_AudioGeneratorWAV,
|
||||
(const bstring *)&be_const_str_encrypt,
|
||||
(const bstring *)&be_const_str__available,
|
||||
(const bstring *)&be_const_str_attrdump,
|
||||
(const bstring *)&be_const_str_false,
|
||||
(const bstring *)&be_const_str_tomap,
|
||||
(const bstring *)&be_const_str_find_key_i,
|
||||
(const bstring *)&be_const_str_pop,
|
||||
(const bstring *)&be_const_str_sin,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_input,
|
||||
(const bstring *)&be_const_str_Tasmota,
|
||||
(const bstring *)&be_const_str__begin_transmission,
|
||||
(const bstring *)&be_const_str_save,
|
||||
(const bstring *)&be_const_str__settings_ptr,
|
||||
(const bstring *)&be_const_str_opt_call,
|
||||
(const bstring *)&be_const_str_resp_cmnd_done,
|
||||
(const bstring *)&be_const_str_tan,
|
||||
(const bstring *)&be_const_str_get_string,
|
||||
(const bstring *)&be_const_str_memory,
|
||||
(const bstring *)&be_const_str_SERIAL_6O1,
|
||||
(const bstring *)&be_const_str_counters,
|
||||
(const bstring *)&be_const_str_millis,
|
||||
(const bstring *)&be_const_str_import,
|
||||
(const bstring *)&be_const_str___lower__,
|
||||
(const bstring *)&be_const_str__ccmd,
|
||||
(const bstring *)&be_const_str_imax,
|
||||
(const bstring *)&be_const_str_elif
|
||||
(const bstring *)&be_const_str__rules,
|
||||
(const bstring *)&be_const_str_codedump,
|
||||
(const bstring *)&be_const_str_dot_p2,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_erase,
|
||||
(const bstring *)&be_const_str_gamma8,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_SERIAL_6O1,
|
||||
(const bstring *)&be_const_str_target_search,
|
||||
NULL,
|
||||
(const bstring *)&be_const_str_abs,
|
||||
(const bstring *)&be_const_str_eth,
|
||||
(const bstring *)&be_const_str_SERIAL_5O1,
|
||||
(const bstring *)&be_const_str_compile,
|
||||
(const bstring *)&be_const_str_add_cmd
|
||||
};
|
||||
|
||||
static const struct bconststrtab m_const_string_table = {
|
||||
.size = 159,
|
||||
.count = 318,
|
||||
.size = 160,
|
||||
.count = 320,
|
||||
.table = m_string_table
|
||||
};
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(be_class_webclient_map) {
|
||||
{ be_const_key(url_encode, 3), be_const_func(wc_urlencode) },
|
||||
{ be_const_key(POST, -1), be_const_func(wc_POST) },
|
||||
{ be_const_key(dot_p, -1), be_const_var(0) },
|
||||
{ be_const_key(begin, 5), be_const_func(wc_begin) },
|
||||
{ be_const_key(set_useragent, 2), be_const_func(wc_set_useragent) },
|
||||
{ be_const_key(set_auth, 12), be_const_func(wc_set_auth) },
|
||||
{ be_const_key(close, -1), be_const_func(wc_close) },
|
||||
{ be_const_key(add_header, 9), be_const_func(wc_addheader) },
|
||||
{ be_const_key(get_size, -1), be_const_func(wc_getsize) },
|
||||
{ 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(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) },
|
||||
{ be_const_key(GET, 6), be_const_func(wc_GET) },
|
||||
{ be_const_key(deinit, -1), be_const_func(wc_deinit) },
|
||||
{ be_const_key(get_size, -1), be_const_func(wc_getsize) },
|
||||
{ be_const_key(set_timeouts, -1), be_const_func(wc_set_timeouts) },
|
||||
{ be_const_key(GET, 13), be_const_func(wc_GET) },
|
||||
{ be_const_key(init, -1), be_const_func(wc_init) },
|
||||
{ be_const_key(dot_w, -1), be_const_var(1) },
|
||||
{ be_const_key(get_string, 11), be_const_func(wc_getstring) },
|
||||
{ be_const_key(set_auth, -1), be_const_func(wc_set_auth) },
|
||||
{ be_const_key(set_useragent, -1), be_const_func(wc_set_useragent) },
|
||||
{ be_const_key(init, 0), be_const_func(wc_init) },
|
||||
{ be_const_key(begin, -1), be_const_func(wc_begin) },
|
||||
{ be_const_key(write_file, -1), be_const_func(wc_writefile) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
be_class_webclient_map,
|
||||
15
|
||||
16
|
||||
);
|
||||
|
||||
BE_EXPORT_VARIABLE be_define_const_class(
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(m_libpath_map) {
|
||||
{ be_const_key(exists, -1), be_const_func(m_path_exists) },
|
||||
{ be_const_key(last_modified, 0), be_const_func(m_path_last_modified) },
|
||||
{ be_const_key(listdir, -1), be_const_func(m_path_listdir) },
|
||||
{ be_const_key(last_modified, 2), be_const_func(m_path_last_modified) },
|
||||
{ be_const_key(exists, 3), be_const_func(m_path_exists) },
|
||||
{ be_const_key(remove, -1), be_const_func(m_path_remove) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
m_libpath_map,
|
||||
2
|
||||
4
|
||||
);
|
||||
|
||||
static be_define_const_module(
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "Zip-readonly-FS",
|
||||
"version": "1.0",
|
||||
"description": "Simple filesystem to open an uncompressed ZIP file and read-only",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/arendst/Tasmota",
|
||||
"frameworks": "*",
|
||||
"platforms": "*",
|
||||
"authors":
|
||||
{
|
||||
"name": "Stephan Hadinger",
|
||||
"maintainer": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,463 @@
|
|||
/*
|
||||
ZipReadFS.cpp - FS overlay to read uncompressed ZIP files
|
||||
|
||||
Copyright (C) 2021 Stephan Hadinger
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef ESP32
|
||||
|
||||
#include "ZipReadFS.h"
|
||||
|
||||
extern FS *zip_ufsp;
|
||||
|
||||
#define USE_TASMOTA_LOG
|
||||
|
||||
#ifdef USE_TASMOTA_LOG
|
||||
extern void AddLog(uint32_t loglevel, PGM_P formatP, ...);
|
||||
enum LoggingLevels {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE};
|
||||
#endif
|
||||
|
||||
/********************************************************************
|
||||
** Convert DOS time to time_t
|
||||
** from: https://opensource.apple.com/source/gcc3/gcc3-1161/fastjar/dostime.c
|
||||
********************************************************************/
|
||||
time_t dos2unixtime(uint32_t dostime)
|
||||
/* Return the Unix time_t value (GMT/UTC time) for the DOS format (local)
|
||||
* time dostime, where dostime is a four byte value (date in most
|
||||
* significant word, time in least significant word), see dostime()
|
||||
* function.
|
||||
*/
|
||||
{
|
||||
struct tm *t; /* argument for mktime() */
|
||||
time_t clock = time(NULL);
|
||||
|
||||
t = localtime(&clock);
|
||||
t->tm_isdst = -1; /* let mktime() determine if DST is in effect */
|
||||
/* Convert DOS time to UNIX time_t format */
|
||||
t->tm_sec = (((int)dostime) << 1) & 0x3e;
|
||||
t->tm_min = (((int)dostime) >> 5) & 0x3f;
|
||||
t->tm_hour = (((int)dostime) >> 11) & 0x1f;
|
||||
t->tm_mday = (int)(dostime >> 16) & 0x1f;
|
||||
t->tm_mon = ((int)(dostime >> 21) & 0x0f) - 1;
|
||||
t->tm_year = ((int)(dostime >> 25) & 0x7f) + 80;
|
||||
|
||||
return mktime(t);
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
** Zip file parser
|
||||
**
|
||||
********************************************************************/
|
||||
template <typename T> class LList;
|
||||
|
||||
struct ZipHeader {
|
||||
uint16_t padding; // need to offset by 16 bites so that 32 bits below are aligned to 4 bytes boundaries
|
||||
uint16_t signature1;
|
||||
uint16_t signature2;
|
||||
uint16_t version;
|
||||
uint16_t gen_purpose_flags;
|
||||
uint16_t compression;
|
||||
uint16_t last_mod_time;
|
||||
uint16_t last_mod_date;
|
||||
uint32_t crc32;
|
||||
uint32_t size_compressed;
|
||||
uint32_t size_uncompressed;
|
||||
uint16_t filename_size;
|
||||
uint16_t extra_field_size;
|
||||
};
|
||||
|
||||
class ZipEntry {
|
||||
public:
|
||||
ZipEntry() :
|
||||
file_name(), file_start(0), file_len(0), last_mod(0)
|
||||
{};
|
||||
// ZipEntry(const char * fname, uint32_t start, uint32_t len) :
|
||||
// file_name(fname), file_start(start), file_len(len)
|
||||
// {};
|
||||
|
||||
String file_name; // name of the file as used by Berry, with all directories removed
|
||||
uint32_t file_start; // offset in bytes where this file starts in the archive
|
||||
uint32_t file_len; // length in bytes of the file
|
||||
time_t last_mod;
|
||||
};
|
||||
|
||||
class ZipArchive {
|
||||
public:
|
||||
ZipArchive(File * _f) :
|
||||
f(_f), entries()
|
||||
{};
|
||||
~ZipArchive(void) {
|
||||
f->close(); // TODO
|
||||
}
|
||||
|
||||
bool parse(void);
|
||||
|
||||
File * f;
|
||||
LList<ZipEntry> entries;
|
||||
};
|
||||
|
||||
class ZipEntryFileImpl : public FileImpl {
|
||||
public:
|
||||
ZipEntryFileImpl(File * f) : zip(f) { }
|
||||
|
||||
protected:
|
||||
ZipArchive zip;
|
||||
};
|
||||
|
||||
/********************************************************************
|
||||
** Neutral file overlay
|
||||
**
|
||||
********************************************************************/
|
||||
|
||||
class ZipReadFileImpl;
|
||||
typedef std::shared_ptr<FileImpl> ZipReadFileImplPtr;
|
||||
|
||||
class ZipReadFileImpl : public FileImpl {
|
||||
public:
|
||||
ZipReadFileImpl(File f) { _f = f; }
|
||||
virtual ~ZipReadFileImpl() {}
|
||||
size_t write(const uint8_t *buf, size_t size) {
|
||||
return _f.write(buf, size);
|
||||
}
|
||||
size_t read(uint8_t* buf, size_t size) {
|
||||
return _f.read(buf, size);
|
||||
}
|
||||
void flush() {
|
||||
_f.flush();
|
||||
}
|
||||
bool seek(uint32_t pos, SeekMode mode) {
|
||||
return _f.seek(pos, mode);
|
||||
}
|
||||
size_t position() const {
|
||||
return _f.position();
|
||||
}
|
||||
size_t size() const {
|
||||
return _f.size();
|
||||
}
|
||||
void close() {
|
||||
_f.close();
|
||||
}
|
||||
time_t getLastWrite() {
|
||||
return _f.getLastWrite();
|
||||
}
|
||||
const char* path() const {
|
||||
return _f.path();
|
||||
}
|
||||
const char* name() const {
|
||||
return _f.name();
|
||||
}
|
||||
boolean isDirectory(void) {
|
||||
return _f.isDirectory();
|
||||
}
|
||||
FileImplPtr openNextFile(const char* mode) {
|
||||
return nullptr; // TODO
|
||||
}
|
||||
void rewindDirectory(void) {
|
||||
return _f.rewindDirectory();
|
||||
}
|
||||
operator bool() {
|
||||
return (bool) _f;
|
||||
}
|
||||
|
||||
protected:
|
||||
File _f;
|
||||
};
|
||||
|
||||
/********************************************************************
|
||||
** Subfile implementation
|
||||
**
|
||||
** Takes a `File` object of the ZIP archive
|
||||
** First byte in archive and len
|
||||
********************************************************************/
|
||||
|
||||
class ZipItemImpl;
|
||||
typedef std::shared_ptr<ZipItemImpl> ZipItemImplPtr;
|
||||
|
||||
class ZipItemImpl : public FileImpl {
|
||||
public:
|
||||
|
||||
ZipItemImpl(File f, uint32_t first_byte, uint32_t len, time_t last_mod) {
|
||||
_f = f;
|
||||
_first_byte = first_byte;
|
||||
_len = len;
|
||||
_seek = 0;
|
||||
_last_mod = last_mod;
|
||||
}
|
||||
|
||||
virtual ~ZipItemImpl() {}
|
||||
|
||||
size_t write(const uint8_t *buf, size_t size) {
|
||||
return 0; // not accepted
|
||||
}
|
||||
|
||||
size_t read(uint8_t* buf, size_t size) {
|
||||
// AddLog(LOG_LEVEL_DEBUG, "ZIP: read bytes=%i seek=%i len=%i", size, _seek, _len);
|
||||
if (_seek < _len) {
|
||||
if (size + _seek > _len) {
|
||||
size = _len - _seek; // always > 0 because of guarding test
|
||||
}
|
||||
bool bret = _f.seek(_first_byte + _seek, SeekSet);
|
||||
// AddLog(LOG_LEVEL_DEBUG, "ZIP: seek_ret ret=%i zip_seek=%i", bret, _first_byte + _seek);
|
||||
if (bret) {
|
||||
size_t ret = _f.read(buf, size);
|
||||
// AddLog(LOG_LEVEL_DEBUG, "ZIP: read done ret=%i zip_seek=%i", ret, size);
|
||||
_seek += ret;
|
||||
if (_seek > _len) { _seek = _len; }
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 0; // abort
|
||||
}
|
||||
|
||||
void flush() {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
bool seek(uint32_t pos, SeekMode mode) {
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: seek pos=%i mode=%i", pos, mode);
|
||||
if (SeekSet == mode) {
|
||||
if (pos <= _len) {
|
||||
_seek = pos;
|
||||
return true;
|
||||
}
|
||||
} else if (SeekCur == mode) {
|
||||
if (_seek + pos <= _len) {
|
||||
_seek += pos;
|
||||
return true;
|
||||
}
|
||||
} else if (SeekEnd == mode) {
|
||||
_seek = _len;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t position() const {
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: position return=%i", _seek);
|
||||
return _seek;
|
||||
}
|
||||
|
||||
size_t size() const {
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: size return=%i", _len);
|
||||
return _len;
|
||||
}
|
||||
|
||||
void close() {
|
||||
// do nothing
|
||||
}
|
||||
time_t getLastWrite() {
|
||||
return _last_mod;
|
||||
}
|
||||
|
||||
const char* path() const {
|
||||
return _f.path(); // TODO
|
||||
}
|
||||
|
||||
const char* name() const {
|
||||
return _f.name(); // TODO
|
||||
}
|
||||
|
||||
boolean isDirectory(void) {
|
||||
return false; // no directory allowed
|
||||
}
|
||||
|
||||
FileImplPtr openNextFile(const char* mode) {
|
||||
return nullptr; // TODO
|
||||
}
|
||||
|
||||
void rewindDirectory(void) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
operator bool() {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected:
|
||||
File _f;
|
||||
uint32_t _first_byte;
|
||||
uint32_t _len;
|
||||
uint32_t _seek;
|
||||
time_t _last_mod;
|
||||
};
|
||||
|
||||
/********************************************************************
|
||||
** Zip file parser
|
||||
** Implementation
|
||||
********************************************************************/
|
||||
|
||||
// parse the Zip archive to extract all entries
|
||||
// returns true if ok
|
||||
bool ZipArchive::parse(void) {
|
||||
ZipHeader header;
|
||||
f->seek(0); // start of file
|
||||
int32_t offset = 0;
|
||||
const size_t zip_header_size = sizeof(header) - sizeof(header.padding);
|
||||
|
||||
while (1) {
|
||||
f->seek(offset);
|
||||
int32_t bytes_read = f->read(sizeof(header.padding) + (uint8_t*) &header, zip_header_size);
|
||||
if (bytes_read != zip_header_size) {
|
||||
break;
|
||||
}
|
||||
// AddLog(LOG_LEVEL_DEBUG, "ZIG: header version=%i flags=%p compress=%i mod_time=%i mod_date=%i size=%i-%i fnamesize=%i",
|
||||
// header.version, header.gen_purpose_flags, header.compression, header.last_mod_time, header.last_mod_date,
|
||||
// header.size_compressed, header.size_uncompressed, header.filename_size);
|
||||
// Check signature
|
||||
if (header.signature1 != 0x4B50) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: invalid zip signature");
|
||||
return false;
|
||||
}
|
||||
if (header.signature2 != 0x0403) {
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: end of file section");
|
||||
break;
|
||||
}
|
||||
// Check no extra field
|
||||
if (header.gen_purpose_flags != 0x0000) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: invalid general purpose flags 0x%04X", header.gen_purpose_flags);
|
||||
return false;
|
||||
}
|
||||
// Check no compression
|
||||
if (header.compression != 0x0000) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: compressed files unsupported 0x%04X", header.compression);
|
||||
return false;
|
||||
}
|
||||
// Check size is the same for compressed and uncompressed
|
||||
if (header.size_compressed != header.size_uncompressed) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: compressed size differs from uncompressed %i - %i", header.size_compressed, header.size_uncompressed);
|
||||
return false;
|
||||
}
|
||||
// Check file name size
|
||||
if (header.filename_size > 64) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: entry filename size too long %i", header.filename_size);
|
||||
return false;
|
||||
}
|
||||
|
||||
// read full filename
|
||||
char fname[header.filename_size + 1];
|
||||
if (f->read((uint8_t*) &fname[0], header.filename_size) != header.filename_size) {
|
||||
return false;
|
||||
}
|
||||
fname[header.filename_size] = 0; // add NULL termination
|
||||
|
||||
// Remove any directory names, and keep only what's after the last `/``
|
||||
char * fname_suffix;
|
||||
char * saveptr;
|
||||
fname_suffix = strtok_r(&fname[0], "#", &saveptr);
|
||||
char * res = fname_suffix;
|
||||
while (res) {
|
||||
res = strtok_r(nullptr, "#", &saveptr);
|
||||
if (res) { fname_suffix = res; }
|
||||
}
|
||||
offset += zip_header_size + header.filename_size + header.extra_field_size;
|
||||
|
||||
ZipEntry & entry = entries.addToLast();
|
||||
entry.file_name = fname_suffix;
|
||||
entry.file_start = offset;
|
||||
entry.file_len = header.size_uncompressed;
|
||||
entry.last_mod = dos2unixtime((header.last_mod_date << 16) | header.last_mod_time);
|
||||
offset += header.size_uncompressed;
|
||||
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: found file '%s' (%i bytes - offset %i) - next entry %i", &fname[0], header.size_uncompressed, entry.file_start, offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Encapsulation of FS and File to piggyback on Arduino
|
||||
**
|
||||
********************************************************************/
|
||||
|
||||
FileImplPtr ZipReadFSImpl::open(const char* path, const char* mode, const bool create) {
|
||||
if (*_fs == nullptr) { return nullptr; }
|
||||
|
||||
if (strchr(path, '#')) {
|
||||
// we don't support any other mode than "r" and no-create
|
||||
if (strcmp(mode, "r") != 0 || create) {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: writing to zip is not supported");
|
||||
return ZipReadFileImplPtr(); // return an error
|
||||
}
|
||||
// treat as a ZIP archive
|
||||
char sub_path[strlen(path)+1];
|
||||
strcpy(sub_path, path);
|
||||
|
||||
// extract the suffix
|
||||
char *tok;
|
||||
char *prefix = strtok_r(sub_path, "#", &tok);
|
||||
char *suffix = strtok_r(NULL, "", &tok);
|
||||
AddLog(LOG_LEVEL_DEBUG, "ZIP: prefix=%s suffix=%s", prefix, suffix);
|
||||
// parse ZIP archive
|
||||
File zipfile = (*_fs)->open(prefix, "r", false);
|
||||
if ((bool)zipfile) {
|
||||
// we could read the file
|
||||
ZipArchive zip_archive = ZipArchive(&zipfile);
|
||||
zip_archive.parse();
|
||||
|
||||
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);
|
||||
return ZipItemImplPtr(new ZipItemImpl((*_fs)->open(prefix, "r", false), entry.file_start, entry.file_len, entry.last_mod));
|
||||
}
|
||||
}
|
||||
return ZipReadFileImplPtr(); // return an error
|
||||
} else {
|
||||
AddLog(LOG_LEVEL_INFO, "ZIP: could not open '%s'", prefix);
|
||||
return ZipReadFileImplPtr(); // return an error
|
||||
}
|
||||
} else {
|
||||
// simple file, do nothing
|
||||
return ZipReadFileImplPtr(new ZipReadFileImpl((*_fs)->open(path, mode, create)));
|
||||
}
|
||||
}
|
||||
|
||||
bool ZipReadFSImpl::exists(const char* path) {
|
||||
if (*_fs == nullptr) { return false; }
|
||||
|
||||
if (strchr(path, '#')) {
|
||||
// treat as a ZIP archive
|
||||
char sub_path[strlen(path)+1];
|
||||
strcpy(sub_path, path);
|
||||
|
||||
// extract the suffix
|
||||
char *tok;
|
||||
char *prefix = strtok_r(sub_path, "#", &tok);
|
||||
char *suffix = strtok_r(NULL, "", &tok);
|
||||
// parse ZIP archive
|
||||
File zipfile = (*_fs)->open(prefix, "r", false);
|
||||
if ((bool)zipfile) {
|
||||
// we could read the file
|
||||
ZipArchive zip_archive = ZipArchive(&zipfile);
|
||||
zip_archive.parse();
|
||||
|
||||
for (auto & entry : zip_archive.entries) {
|
||||
if (entry.file_name.equals(suffix)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
// simple file, do nothing
|
||||
return (*_fs)->exists(path);
|
||||
}
|
||||
}
|
||||
|
||||
ZipReadFSImpl::~ZipReadFSImpl() {};
|
||||
|
||||
#endif // ESP32
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
#ifndef __ZIP_READ_FS__
|
||||
#define __ZIP_READ_FS__
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#ifdef ESP32
|
||||
|
||||
#include <FS.h>
|
||||
#include <vfs_api.h>
|
||||
#include <LList.h>
|
||||
|
||||
class ZipReadFSImpl;
|
||||
typedef std::shared_ptr<FSImpl> ZipReadFSImplPtr;
|
||||
|
||||
|
||||
class ZipReadFSImpl : public FSImpl {
|
||||
public:
|
||||
|
||||
ZipReadFSImpl(FS **fs) : _fs(fs) {};
|
||||
virtual ~ZipReadFSImpl();
|
||||
|
||||
FileImplPtr open(const char* path, const char* mode, const bool create);
|
||||
|
||||
bool exists(const char* path);
|
||||
|
||||
bool rename(const char* pathFrom, const char* pathTo) {
|
||||
if (*_fs) {
|
||||
return (*_fs)->rename(pathFrom, pathTo);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool remove(const char* path) {
|
||||
if (*_fs) {
|
||||
return (*_fs)->remove(path);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool mkdir(const char *path) {
|
||||
if (*_fs) {
|
||||
return (*_fs)->mkdir(path);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool rmdir(const char *path) {
|
||||
if (*_fs) {
|
||||
return (*_fs)->rmdir(path);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
void mountpoint(const char *) {
|
||||
};
|
||||
const char * mountpoint() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
FS **_fs;
|
||||
};
|
||||
|
||||
#endif // ESP32
|
||||
|
||||
#endif // __ZIP_READ_FS__
|
|
@ -24,6 +24,10 @@
|
|||
|
||||
#include <berry.h>
|
||||
#include "HttpClientLight.h"
|
||||
#include "be_sys.h"
|
||||
|
||||
// Tasmota extension
|
||||
extern File * be_get_arduino_file(void *hfile);
|
||||
|
||||
String wc_UrlEncode(const String& text) {
|
||||
const char hex[] = "0123456789ABCDEF";
|
||||
|
@ -298,6 +302,26 @@ extern "C" {
|
|||
be_return(vm); /* return code */
|
||||
}
|
||||
|
||||
int32_t wc_writefile(struct bvm *vm);
|
||||
int32_t wc_writefile(struct bvm *vm) {
|
||||
int32_t argc = be_top(vm);
|
||||
if (argc >= 2 && be_isstring(vm, 2)) {
|
||||
HTTPClientLight * cl = wc_getclient(vm);
|
||||
const char * fname = be_tostring(vm, 2);
|
||||
|
||||
void * f = be_fopen(fname, "w");
|
||||
int ret = -1;
|
||||
if (f) {
|
||||
File * fptr = be_get_arduino_file(f);
|
||||
ret = cl->writeToStream(fptr);
|
||||
}
|
||||
be_fclose(f);
|
||||
be_pushint(vm, ret);
|
||||
be_return(vm); /* return code */
|
||||
}
|
||||
be_raise(vm, kTypeError, nullptr);
|
||||
}
|
||||
|
||||
int32_t wc_getsize(struct bvm *vm);
|
||||
int32_t wc_getsize(struct bvm *vm) {
|
||||
HTTPClientLight * cl = wc_getclient(vm);
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include <berry.h>
|
||||
#include "be_vm.h"
|
||||
#include "ZipReadFS.h"
|
||||
|
||||
extern "C" {
|
||||
extern void be_load_custom_libs(bvm *vm);
|
||||
|
|
Loading…
Reference in New Issue