mirror of https://github.com/arendst/Tasmota.git
Merge branch 'development' of https://github.com/kruzer/Tasmota into stair-pixels
This commit is contained in:
commit
ff1fa76971
|
@ -15,3 +15,6 @@
|
|||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
|
||||
# Apply Python syntax highlighting to berry (.be) files
|
||||
*.be linguist-language=Python
|
||||
|
|
|
@ -30,6 +30,7 @@ jobs:
|
|||
- tasmota-zbbridge
|
||||
- tasmota-zigbee
|
||||
- tasmota32
|
||||
- tasmota32-webcam
|
||||
- tasmota32-bluetooth
|
||||
- tasmota32-core2
|
||||
- tasmota32-display
|
||||
|
|
|
@ -7,7 +7,6 @@ image:
|
|||
|
||||
vscode:
|
||||
extensions:
|
||||
- eamodio.gitlens
|
||||
- Atishay-Jain.All-Autocomplete
|
||||
- CoenraadS.bracket-pair-colorizer
|
||||
- esbenp.prettier-vscode
|
||||
|
|
|
@ -6,17 +6,21 @@ All notable changes to this project will be documented in this file.
|
|||
## [10.0.0.1]
|
||||
### Added
|
||||
- Berry add module ``python_compat`` to be closer to Python syntax (#13428)
|
||||
- 1 second heartbeat GPIO
|
||||
- Command ``TcpConfig`` for TCPBridge protocol configuration (#13565)
|
||||
|
||||
### Changed
|
||||
- File editor no-wrap (#13427)
|
||||
- ESP32 core library from v1.0.7.4 to v1.0.7.5
|
||||
- ESP32C3 core library from v2.0.0-post to v2.0.1-rc1
|
||||
- ESP32-C3 core library from v2.0.0-post to v2.0.1-rc1
|
||||
|
||||
### Fixed
|
||||
- Initial reset RTC memory based variables like EnergyToday and EnergyTotal
|
||||
- ESP32 Telegram compile error (#13435)
|
||||
- SML compile error (#13441)
|
||||
- GUI checkbox MQTT TLS not saved regression from v9.2.0.3 (#13442)
|
||||
- Discovery of shutters (#13572)
|
||||
- ESP32-C3 OneWire as used by DS18x20 (#13583)
|
||||
|
||||
## [Released]
|
||||
|
||||
|
|
|
@ -102,17 +102,22 @@ The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmo
|
|||
|
||||
## Changelog v10.0.0.1
|
||||
### Added
|
||||
- 1 second heartbeat GPIO
|
||||
- ESP32 Berry add module ``python_compat`` to be closer to Python syntax [#13428](https://github.com/arendst/Tasmota/issues/13428)
|
||||
- Command ``TcpConfig`` for TCPBridge protocol configuration [#13565](https://github.com/arendst/Tasmota/issues/13565)
|
||||
|
||||
### Breaking Changed
|
||||
|
||||
### Changed
|
||||
- File editor no-wrap [#13427](https://github.com/arendst/Tasmota/issues/13427)
|
||||
- ESP32 core library from v1.0.7.4 to v1.0.7.5
|
||||
- ESP32C3 core library from v2.0.0-post to v2.0.1-rc1
|
||||
- ESP32-C3 core library from v2.0.0-post to v2.0.1-rc1
|
||||
|
||||
### Fixed
|
||||
- Initial reset RTC memory based variables like EnergyToday and EnergyTotal
|
||||
- ESP32 Telegram compile error [#13435](https://github.com/arendst/Tasmota/issues/13435)
|
||||
- SML compile error [#13441](https://github.com/arendst/Tasmota/issues/13441)
|
||||
- GUI checkbox MQTT TLS not saved regression from v9.2.0.3 [#13442](https://github.com/arendst/Tasmota/issues/13442)
|
||||
- Discovery of shutters [#13572](https://github.com/arendst/Tasmota/issues/13572)
|
||||
- ESP32-C3 OneWire as used by DS18x20 [#13583](https://github.com/arendst/Tasmota/issues/13583)
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"name": "TasmotaLList",
|
||||
"version": "1.0",
|
||||
"description": "Simple yet powerful linked-list",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/arendst/Tasmota",
|
||||
"frameworks": "*",
|
||||
"platforms": "*",
|
||||
"authors":
|
||||
{
|
||||
"name": "Stephan Hadinger",
|
||||
"maintainer": true
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
support_light_list.ino - Lightweight Linked List for simple objects - optimized for low code size and low memory
|
||||
LList.h - Lightweight Linked List for simple objects - optimized for low code size and low memory
|
||||
|
||||
Copyright (C) 2021 Theo Arends and Stephan Hadinger
|
||||
|
||||
|
@ -17,6 +17,11 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __LLIST__
|
||||
#define __LLIST__
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
/*********************************************************************************************\
|
||||
*
|
||||
* private class for Linked List element
|
||||
|
@ -206,3 +211,5 @@ T & LList<T>::addToLast(LList_elt<T> * elt) {
|
|||
elt->_next = nullptr;
|
||||
return elt->_val;
|
||||
}
|
||||
|
||||
#endif // __LLIST__
|
|
@ -76,13 +76,6 @@ static char sets[][11] PROGMEM =
|
|||
{'.', ',', '-', '/', '?', '+', ' ', '(', ')', '$', '@'},
|
||||
{';', '#', ':', '<', '^', '*', '"', '{', '}', '[', ']'},
|
||||
{'=', '%', '\'', '>', '&', '_', '!', '\\', '|', '~', '`'}};
|
||||
// {{ 0, ' ', 'e', 0, 't', 'a', 'o', 'i', 'n', 's', 'r'},
|
||||
// { 0, 'l', 'c', 'd', 'h', 'u', 'p', 'm', 'b', 'g', 'w'},
|
||||
// {'f', 'y', 'v', 'k', 'q', 'j', 'x', 'z', 0, 0, 0},
|
||||
// { 0, '9', '0', '1', '2', '3', '4', '5', '6', '7', '8'},
|
||||
// {'.', ',', '-', '/', '=', '+', ' ', '(', ')', '$', '%'},
|
||||
// {'&', ';', ':', '<', '>', '*', '"', '{', '}', '[', ']'},
|
||||
// {'@', '?', '\'', '^', '#', '_', '!', '\\', '|', '~', '`'}};
|
||||
|
||||
// Decoder is designed for using less memory, not speed
|
||||
// Decode lookup table for code index and length
|
||||
|
@ -117,28 +110,16 @@ static const uint16_t DICT_CODE = 0x0000;
|
|||
static const uint16_t DICT_CODE_LEN = 5;
|
||||
static const uint16_t DICT_OTHER_CODE = 0x0000; // not used
|
||||
static const uint16_t DICT_OTHER_CODE_LEN = 6;
|
||||
// const uint16_t RPT_CODE = 0x2370;
|
||||
// const uint16_t RPT_CODE_LEN = 13;
|
||||
static const uint16_t RPT_CODE_TASMOTA = 0x3780;
|
||||
static const uint16_t RPT_CODE_TASMOTA_LEN = 10;
|
||||
static const uint16_t BACK2_STATE1_CODE = 0x2000; // 0010 = back to lower case
|
||||
static const uint16_t BACK2_STATE1_CODE_LEN = 4;
|
||||
static const uint16_t BACK_FROM_UNI_CODE = 0xFE00;
|
||||
static const uint16_t BACK_FROM_UNI_CODE_LEN = 8;
|
||||
// const uint16_t CRLF_CODE = 0x3780;
|
||||
// const uint16_t CRLF_CODE_LEN = 10;
|
||||
static const uint16_t LF_CODE = 0x3700;
|
||||
static const uint16_t LF_CODE_LEN = 9;
|
||||
static const uint16_t TAB_CODE = 0x2400;
|
||||
static const uint16_t TAB_CODE_LEN = 7;
|
||||
// const uint16_t UNI_CODE = 0x8000; // Unicode disabled
|
||||
// const uint16_t UNI_CODE_LEN = 3;
|
||||
// const uint16_t UNI_STATE_SPL_CODE = 0xF800;
|
||||
// const uint16_t UNI_STATE_SPL_CODE_LEN = 5;
|
||||
// const uint16_t UNI_STATE_DICT_CODE = 0xFC00;
|
||||
// const uint16_t UNI_STATE_DICT_CODE_LEN = 7;
|
||||
// const uint16_t CONT_UNI_CODE = 0x2800;
|
||||
// const uint16_t CONT_UNI_CODE_LEN = 7;
|
||||
static const uint16_t ALL_UPPER_CODE = 0x2200;
|
||||
static const uint16_t ALL_UPPER_CODE_LEN = 8;
|
||||
static const uint16_t SW2_STATE2_CODE = 0x3800;
|
||||
|
@ -147,8 +128,6 @@ static const uint16_t ST2_SPC_CODE = 0x3B80;
|
|||
static const uint16_t ST2_SPC_CODE_LEN = 11;
|
||||
static const uint16_t BIN_CODE_TASMOTA = 0x8000;
|
||||
static const uint16_t BIN_CODE_TASMOTA_LEN = 3;
|
||||
// const uint16_t BIN_CODE = 0x2000;
|
||||
// const uint16_t BIN_CODE_LEN = 9;
|
||||
|
||||
#define NICE_LEN 5
|
||||
|
||||
|
@ -467,9 +446,9 @@ void Unishox::decodeRepeat(void) {
|
|||
uint32_t dict_len = readCount() + NICE_LEN;
|
||||
uint32_t dist = readCount() + NICE_LEN - 1;
|
||||
if (ol + dict_len <= len_out) {
|
||||
memcpy(out + ol, out + ol - dist, dict_len);
|
||||
ol += dict_len;
|
||||
}
|
||||
memcpy(out + ol, out + ol - dist, dict_len);
|
||||
ol += dict_len;
|
||||
}
|
||||
}
|
||||
|
||||
int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out, size_t p_len_out) {
|
||||
|
@ -485,10 +464,10 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
|
|||
dstate = SHX_SET1;
|
||||
is_all_upper = 0;
|
||||
|
||||
out[ol] = 0;
|
||||
if (out) out[ol] = 0;
|
||||
// while ((byte_no << 3) + bit_no - 8 < len) {
|
||||
while (!in_eof) {
|
||||
if (ol >= len_out) {
|
||||
if (out && ol >= len_out) {
|
||||
break;
|
||||
}
|
||||
int32_t h, v;
|
||||
|
@ -535,7 +514,8 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
|
|||
|
||||
if (v == 0 && h == SHX_SET1A) {
|
||||
if (is_upper) {
|
||||
out[ol++] = 255 - readCount(); // binary
|
||||
if (out) out[ol] = 255 - readCount(); // binary
|
||||
ol++;
|
||||
} else {
|
||||
decodeRepeat(); // dist
|
||||
}
|
||||
|
@ -544,7 +524,8 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
|
|||
|
||||
if (h == SHX_SET1 && v == 3) {
|
||||
// was Unicode, will do Binary instead
|
||||
out[ol++] = 255 - readCount(); // binary
|
||||
if (out) out[ol] = 255 - readCount(); // binary
|
||||
ol++;
|
||||
continue;
|
||||
}
|
||||
if (h < 7 && v < 11) // TODO: are these the actual limits? Not 11x7 ?
|
||||
|
@ -557,17 +538,22 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
|
|||
c = '\t'; // If UpperCase Space, change to TAB
|
||||
if (h == SHX_SET1B) {
|
||||
if (8 == v) { // was LF or RPT, now only LF
|
||||
out[ol++] = '\n';
|
||||
if (out) out[ol] = '\n';
|
||||
ol++;
|
||||
continue;
|
||||
}
|
||||
if (9 == v) { // was CRLF, now RPT
|
||||
uint32_t count = readCount() + 4;
|
||||
if (ol + count >= len_out) {
|
||||
if (out && ol + count >= len_out) {
|
||||
return -1; // overflow
|
||||
}
|
||||
char rpt_c = out[ol - 1];
|
||||
while (count--)
|
||||
out[ol++] = rpt_c;
|
||||
if (out) {
|
||||
char rpt_c = out[ol - 1];
|
||||
while (count--)
|
||||
out[ol++] = rpt_c;
|
||||
} else {
|
||||
ol += count;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (10 == v) {
|
||||
|
@ -576,10 +562,11 @@ int32_t Unishox::unishox_decompress(const char *p_in, size_t p_len, char *p_out,
|
|||
}
|
||||
}
|
||||
// Serial.printf(">>>>>>>>>>>>>>>>>>>>>> Out = %c\n", c);
|
||||
out[ol++] = c;
|
||||
if (out) out[ol] = c;
|
||||
ol++;
|
||||
}
|
||||
|
||||
if (ol > len_out) {
|
||||
if (out && ol > len_out) {
|
||||
return -1; // overflow
|
||||
} else {
|
||||
return ol;
|
||||
|
|
|
@ -197,6 +197,9 @@ void directWriteHigh(IO_REG_TYPE pin)
|
|||
static inline __attribute__((always_inline))
|
||||
void directModeInput(IO_REG_TYPE pin)
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
GPIO.enable_w1tc.val = ((uint32_t)1 << (pin));
|
||||
#else
|
||||
if ( digitalPinIsValid(pin) )
|
||||
{
|
||||
#if ESP_IDF_VERSION_MAJOR < 4 // IDF 3.x ESP32/PICO-D4
|
||||
|
@ -208,9 +211,6 @@ void directModeInput(IO_REG_TYPE pin)
|
|||
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown);
|
||||
}
|
||||
#elif ESP_IDF_VERSION_MAJOR > 3 // ESP32-S2 needs IDF 4.2 or later
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
// Esp32c3 has no full RTC IO subsystem, so GPIO is 100% "independent" of RTC
|
||||
#else // plain ESP32
|
||||
uint32_t rtc_reg(rtc_io_desc[pin].reg);
|
||||
|
||||
if ( rtc_reg ) // RTC pins PULL settings
|
||||
|
@ -219,16 +219,11 @@ void directModeInput(IO_REG_TYPE pin)
|
|||
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_io_desc[pin].pullup | rtc_io_desc[pin].pulldown);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
GPIO.enable_w1tc.val = ((uint32_t)1 << (pin - 32));
|
||||
#else // plain ESP32
|
||||
if ( pin < 32 )
|
||||
GPIO.enable_w1tc = ((uint32_t)1 << pin);
|
||||
else
|
||||
GPIO.enable1_w1tc.val = ((uint32_t)1 << (pin - 32));
|
||||
#endif
|
||||
|
||||
uint32_t pinFunction((uint32_t)2 << FUN_DRV_S); // what are the drivers?
|
||||
pinFunction |= FUN_IE; // input enable but required for output as well?
|
||||
|
@ -238,11 +233,15 @@ void directModeInput(IO_REG_TYPE pin)
|
|||
|
||||
GPIO.pin[pin].val = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline __attribute__((always_inline))
|
||||
void directModeOutput(IO_REG_TYPE pin)
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
GPIO.enable_w1ts.val = ((uint32_t)1 << (pin));
|
||||
#else
|
||||
if ( digitalPinIsValid(pin) && pin <= 33 ) // pins above 33 can be only inputs
|
||||
{
|
||||
#if ESP_IDF_VERSION_MAJOR < 4 // IDF 3.x ESP32/PICO-D4
|
||||
|
@ -254,9 +253,6 @@ void directModeOutput(IO_REG_TYPE pin)
|
|||
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown);
|
||||
}
|
||||
#elif ESP_IDF_VERSION_MAJOR > 3 // ESP32-S2 needs IDF 4.2 or later
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
// Esp32c3 has no full RTC IO subsystem, so GPIO is 100% "independent" of RTC
|
||||
#else // plain ESP32
|
||||
uint32_t rtc_reg(rtc_io_desc[pin].reg);
|
||||
|
||||
if ( rtc_reg ) // RTC pins PULL settings
|
||||
|
@ -265,16 +261,11 @@ void directModeOutput(IO_REG_TYPE pin)
|
|||
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_io_desc[pin].pullup | rtc_io_desc[pin].pulldown);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32C3
|
||||
GPIO.enable_w1ts.val = ((uint32_t)1 << (pin - 32));
|
||||
#else // plain ESP32
|
||||
if ( pin < 32 )
|
||||
GPIO.enable_w1ts = ((uint32_t)1 << pin);
|
||||
else // already validated to pins <= 33
|
||||
GPIO.enable1_w1ts.val = ((uint32_t)1 << (pin - 32));
|
||||
#endif
|
||||
|
||||
uint32_t pinFunction((uint32_t)2 << FUN_DRV_S); // what are the drivers?
|
||||
pinFunction |= FUN_IE; // input enable but required for output as well?
|
||||
|
@ -284,6 +275,7 @@ void directModeOutput(IO_REG_TYPE pin)
|
|||
|
||||
GPIO.pin[pin].val = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#define DIRECT_READ(base, pin) directRead(pin)
|
||||
|
|
|
@ -20,8 +20,8 @@ be_local_closure(init, /* name */
|
|||
NULL, /* no sub protos */
|
||||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 1]) { /* code */
|
||||
0x80000000, // 0000 RET 0
|
||||
})
|
||||
|
@ -47,7 +47,7 @@ be_local_closure(get_tasmota, /* name */
|
|||
/* K0 */ be_nested_string("tasmota", 424643812, 7),
|
||||
}),
|
||||
(be_nested_const_str("get_tasmota", 334356779, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 2]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x80040200, // 0001 RET 1 R1
|
||||
|
@ -83,7 +83,7 @@ be_local_closure(add_cmd, /* name */
|
|||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 8]) { /* code */
|
||||
0x68100000, // 0000 GETUPV R4 U0
|
||||
0x68140001, // 0001 GETUPV R5 U1
|
||||
|
@ -102,7 +102,7 @@ be_local_closure(add_cmd, /* name */
|
|||
/* K1 */ be_nested_string("add_cmd", -933336417, 7),
|
||||
}),
|
||||
(be_nested_const_str("add_cmd", -933336417, 7)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x8C0C0701, // 0001 GETMET R3 R3 K1
|
||||
|
|
|
@ -53,8 +53,8 @@ be_local_closure(init, /* name */
|
|||
/* K2 */ be_nested_string("energy_struct", 1655792843, 13),
|
||||
/* K3 */ be_nested_string("_ptr", 306235816, 4),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0xB80A0400, // 0001 GETNGBL R2 K2
|
||||
|
@ -86,7 +86,7 @@ be_local_closure(read, /* name */
|
|||
/* K1 */ be_nested_string("tomap", 612167626, 5),
|
||||
}),
|
||||
(be_nested_const_str("<anonymous>", 1160973142, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0xB8020000, // 0000 GETNGBL R0 K0
|
||||
0x8C000101, // 0001 GETMET R0 R0 K1
|
||||
|
@ -114,7 +114,7 @@ be_local_closure(member, /* name */
|
|||
/* K0 */ be_nested_string("_energy", 535372070, 7),
|
||||
}),
|
||||
(be_nested_const_str("member", 719708611, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 3]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x88040200, // 0001 GETMBR R1 R1 R0
|
||||
|
@ -142,7 +142,7 @@ be_local_closure(setmember, /* name */
|
|||
/* K0 */ be_nested_string("_energy", 535372070, 7),
|
||||
}),
|
||||
(be_nested_const_str("setmember", 1432909441, 9)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 3]) { /* code */
|
||||
0xB80A0000, // 0000 GETNGBL R2 K0
|
||||
0x90080001, // 0001 SETMBR R2 R0 R1
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
// Tasmota specific
|
||||
|
||||
extern int gp_member(bvm *vm);
|
||||
extern int gp_pin_mode(bvm *vm);
|
||||
extern int gp_digital_write(bvm *vm);
|
||||
extern int gp_digital_read(bvm *vm);
|
||||
|
@ -19,275 +20,7 @@ extern int gp_pin(bvm *vm);
|
|||
|
||||
/* @const_object_info_begin
|
||||
module gpio (scope: global) {
|
||||
LOW, int(0)
|
||||
HIGH, int(1)
|
||||
|
||||
INPUT, int(1)
|
||||
OUTPUT, int(2)
|
||||
PULLUP, int(4)
|
||||
INPUT_PULLUP, int(5)
|
||||
PULLDOWN, int(8)
|
||||
INPUT_PULLDOWN, int(9)
|
||||
OPEN_DRAIN, int(16)
|
||||
OUTPUT_OPEN_DRAIN, int(18)
|
||||
DAC, int(-1)
|
||||
|
||||
RISING, int(1)
|
||||
FALLING, int(2)
|
||||
CHANGE, int(4)
|
||||
|
||||
NONE, int(0)
|
||||
KEY1, int(1)
|
||||
KEY1_NP, int(2)
|
||||
KEY1_INV, int(3)
|
||||
KEY1_INV_NP, int(4)
|
||||
SWT1, int(5)
|
||||
SWT1_NP, int(6)
|
||||
REL1, int(7)
|
||||
REL1_INV, int(8)
|
||||
LED1, int(9)
|
||||
LED1_INV, int(10)
|
||||
CNTR1, int(11)
|
||||
CNTR1_NP, int(12)
|
||||
PWM1, int(13)
|
||||
PWM1_INV, int(14)
|
||||
BUZZER, int(15)
|
||||
BUZZER_INV, int(16)
|
||||
LEDLNK, int(17)
|
||||
LEDLNK_INV, int(18)
|
||||
I2C_SCL, int(19)
|
||||
I2C_SDA, int(20)
|
||||
SPI_MISO, int(21)
|
||||
SPI_MOSI, int(22)
|
||||
SPI_CLK, int(23)
|
||||
SPI_CS, int(24)
|
||||
SPI_DC, int(25)
|
||||
SSPI_MISO, int(26)
|
||||
SSPI_MOSI, int(27)
|
||||
SSPI_SCLK, int(28)
|
||||
SSPI_CS, int(29)
|
||||
SSPI_DC, int(30)
|
||||
BACKLIGHT, int(31)
|
||||
OLED_RESET, int(32)
|
||||
IRSEND, int(33)
|
||||
IRRECV, int(34)
|
||||
RFSEND, int(35)
|
||||
RFRECV, int(36)
|
||||
DHT11, int(37)
|
||||
DHT22, int(38)
|
||||
SI7021, int(39)
|
||||
DHT11_OUT, int(40)
|
||||
DSB, int(41)
|
||||
DSB_OUT, int(42)
|
||||
WS2812, int(43)
|
||||
MHZ_TXD, int(44)
|
||||
MHZ_RXD, int(45)
|
||||
PZEM0XX_TX, int(46)
|
||||
PZEM004_RX, int(47)
|
||||
PZEM016_RX, int(48)
|
||||
PZEM017_RX, int(49)
|
||||
SAIR_TX, int(50)
|
||||
SAIR_RX, int(51)
|
||||
PMS5003_TX, int(52)
|
||||
PMS5003_RX, int(53)
|
||||
SDS0X1_TX, int(54)
|
||||
SDS0X1_RX, int(55)
|
||||
SBR_TX, int(56)
|
||||
SBR_RX, int(57)
|
||||
SR04_TRIG, int(58)
|
||||
SR04_ECHO, int(59)
|
||||
SDM120_TX, int(60)
|
||||
SDM120_RX, int(61)
|
||||
SDM630_TX, int(62)
|
||||
SDM630_RX, int(63)
|
||||
TM1638CLK, int(64)
|
||||
TM1638DIO, int(65)
|
||||
TM1638STB, int(66)
|
||||
MP3_DFR562, int(67)
|
||||
HX711_SCK, int(68)
|
||||
HX711_DAT, int(69)
|
||||
TX2X_TXD_BLACK, int(70)
|
||||
TUYA_TX, int(71)
|
||||
TUYA_RX, int(72)
|
||||
MGC3130_XFER, int(73)
|
||||
MGC3130_RESET, int(74)
|
||||
RF_SENSOR, int(75)
|
||||
AZ_TXD, int(76)
|
||||
AZ_RXD, int(77)
|
||||
MAX31855CS, int(78)
|
||||
MAX31855CLK, int(79)
|
||||
MAX31855DO, int(80)
|
||||
NRG_SEL, int(81)
|
||||
NRG_SEL_INV, int(82)
|
||||
NRG_CF1, int(83)
|
||||
HLW_CF, int(84)
|
||||
HJL_CF, int(85)
|
||||
MCP39F5_TX, int(86)
|
||||
MCP39F5_RX, int(87)
|
||||
MCP39F5_RST, int(88)
|
||||
PN532_TXD, int(89)
|
||||
PN532_RXD, int(90)
|
||||
SM16716_CLK, int(91)
|
||||
SM16716_DAT, int(92)
|
||||
SM16716_SEL, int(93)
|
||||
DI, int(94)
|
||||
DCKI, int(95)
|
||||
CSE7766_TX, int(96)
|
||||
CSE7766_RX, int(97)
|
||||
ARIRFRCV, int(98)
|
||||
ARIRFSEL, int(99)
|
||||
TXD, int(100)
|
||||
RXD, int(101)
|
||||
ROT1A, int(102)
|
||||
ROT1B, int(103)
|
||||
ADC_JOY, int(104)
|
||||
SSPI_MAX31865_CS1, int(105)
|
||||
HRE_CLOCK, int(106)
|
||||
HRE_DATA, int(107)
|
||||
ADE7953_IRQ, int(108)
|
||||
SOLAXX1_TX, int(109)
|
||||
SOLAXX1_RX, int(110)
|
||||
ZIGBEE_TX, int(111)
|
||||
ZIGBEE_RX, int(112)
|
||||
RDM6300_RX, int(113)
|
||||
IBEACON_TX, int(114)
|
||||
IBEACON_RX, int(115)
|
||||
A4988_DIR, int(116)
|
||||
A4988_STP, int(117)
|
||||
A4988_ENA, int(118)
|
||||
A4988_MS1, int(119)
|
||||
OUTPUT_HI, int(120)
|
||||
OUTPUT_LO, int(121)
|
||||
DDS2382_TX, int(122)
|
||||
DDS2382_RX, int(123)
|
||||
DDSU666_TX, int(124)
|
||||
DDSU666_RX, int(125)
|
||||
SM2135_CLK, int(126)
|
||||
SM2135_DAT, int(127)
|
||||
DEEPSLEEP, int(128)
|
||||
EXS_ENABLE, int(129)
|
||||
TASMOTACLIENT_TXD, int(130)
|
||||
TASMOTACLIENT_RXD, int(131)
|
||||
TASMOTACLIENT_RST, int(132)
|
||||
TASMOTACLIENT_RST_INV, int(133)
|
||||
HPMA_RX, int(134)
|
||||
HPMA_TX, int(135)
|
||||
GPS_RX, int(136)
|
||||
GPS_TX, int(137)
|
||||
HM10_RX, int(138)
|
||||
HM10_TX, int(139)
|
||||
LE01MR_RX, int(140)
|
||||
LE01MR_TX, int(141)
|
||||
CC1101_GDO0, int(142)
|
||||
CC1101_GDO2, int(143)
|
||||
HRXL_RX, int(144)
|
||||
ELECTRIQ_MOODL_TX, int(145)
|
||||
AS3935, int(146)
|
||||
ADC_INPUT, int(147)
|
||||
ADC_TEMP, int(148)
|
||||
ADC_LIGHT, int(149)
|
||||
ADC_BUTTON, int(150)
|
||||
ADC_BUTTON_INV, int(151)
|
||||
ADC_RANGE, int(152)
|
||||
ADC_CT_POWER, int(153)
|
||||
WEBCAM_PWDN, int(154)
|
||||
WEBCAM_RESET, int(155)
|
||||
WEBCAM_XCLK, int(156)
|
||||
WEBCAM_SIOD, int(157)
|
||||
WEBCAM_SIOC, int(158)
|
||||
WEBCAM_DATA, int(159)
|
||||
WEBCAM_VSYNC, int(160)
|
||||
WEBCAM_HREF, int(161)
|
||||
WEBCAM_PCLK, int(162)
|
||||
WEBCAM_PSCLK, int(163)
|
||||
WEBCAM_HSD, int(164)
|
||||
WEBCAM_PSRCS, int(165)
|
||||
BOILER_OT_RX, int(166)
|
||||
BOILER_OT_TX, int(167)
|
||||
WINDMETER_SPEED, int(168)
|
||||
KEY1_TC, int(169)
|
||||
BL0940_RX, int(170)
|
||||
TCP_TX, int(171)
|
||||
TCP_RX, int(172)
|
||||
ETH_PHY_POWER, int(173)
|
||||
ETH_PHY_MDC, int(174)
|
||||
ETH_PHY_MDIO, int(175)
|
||||
TELEINFO_RX, int(176)
|
||||
TELEINFO_ENABLE, int(177)
|
||||
LMT01, int(178)
|
||||
IEM3000_TX, int(179)
|
||||
IEM3000_RX, int(180)
|
||||
ZIGBEE_RST, int(181)
|
||||
DYP_RX, int(182)
|
||||
MIEL_HVAC_TX, int(183)
|
||||
MIEL_HVAC_RX, int(184)
|
||||
WE517_TX, int(185)
|
||||
WE517_RX, int(186)
|
||||
AS608_TX, int(187)
|
||||
AS608_RX, int(188)
|
||||
SHELLY_DIMMER_BOOT0, int(189)
|
||||
SHELLY_DIMMER_RST_INV, int(190)
|
||||
RC522_RST, int(191)
|
||||
P9813_CLK, int(192)
|
||||
P9813_DAT, int(193)
|
||||
OPTION_A, int(194)
|
||||
FTC532, int(195)
|
||||
RC522_CS, int(196)
|
||||
NRF24_CS, int(197)
|
||||
NRF24_DC, int(198)
|
||||
ILI9341_CS, int(199)
|
||||
ILI9341_DC, int(200)
|
||||
ILI9488_CS, int(201)
|
||||
EPAPER29_CS, int(202)
|
||||
EPAPER42_CS, int(203)
|
||||
SSD1351_CS, int(204)
|
||||
RA8876_CS, int(205)
|
||||
ST7789_CS, int(206)
|
||||
ST7789_DC, int(207)
|
||||
SSD1331_CS, int(208)
|
||||
SSD1331_DC, int(209)
|
||||
SDCARD_CS, int(210)
|
||||
ROT1A_NP, int(211)
|
||||
ROT1B_NP, int(212)
|
||||
ADC_PH, int(213)
|
||||
BS814_CLK, int(214)
|
||||
BS814_DAT, int(215)
|
||||
WIEGAND_D0, int(216)
|
||||
WIEGAND_D1, int(217)
|
||||
NEOPOOL_TX, int(218)
|
||||
NEOPOOL_RX, int(219)
|
||||
SDM72_TX, int(220)
|
||||
SDM72_RX, int(221)
|
||||
TM1637CLK, int(222)
|
||||
TM1637DIO, int(223)
|
||||
PROJECTOR_CTRL_TX, int(224)
|
||||
PROJECTOR_CTRL_RX, int(225)
|
||||
SSD1351_DC, int(226)
|
||||
XPT2046_CS, int(227)
|
||||
CSE7761_TX, int(228)
|
||||
CSE7761_RX, int(229)
|
||||
VL53L0X_XSHUT1, int(230)
|
||||
MAX7219CLK, int(231)
|
||||
MAX7219DIN, int(232)
|
||||
MAX7219CS, int(233)
|
||||
TFMINIPLUS_TX, int(234)
|
||||
TFMINIPLUS_RX, int(235)
|
||||
ZEROCROSS, int(236)
|
||||
HALLEFFECT, int(237)
|
||||
EPD_DATA, int(238)
|
||||
INPUT, int(239)
|
||||
KEY1_PD, int(240)
|
||||
KEY1_INV_PD, int(241)
|
||||
SWT1_PD, int(242)
|
||||
I2S_OUT_DATA, int(243)
|
||||
I2S_OUT_CLK, int(244)
|
||||
I2S_OUT_SLCT, int(245)
|
||||
I2S_IN_DATA, int(246)
|
||||
I2S_IN_CLK, int(247)
|
||||
I2S_IN_SLCT, int(248)
|
||||
INTERRUPT, int(249)
|
||||
|
||||
SENSOR_END, int(250)
|
||||
member, func(gp_member)
|
||||
|
||||
pin_mode, func(gp_pin_mode)
|
||||
digital_write, func(gp_digital_write)
|
||||
|
|
|
@ -21,7 +21,7 @@ be_local_closure(get_warning_level, /* name */
|
|||
/* K1 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("get_warning_level", 1737834441, 17)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E0046, // 0001 LDINT R3 71
|
||||
|
@ -52,7 +52,7 @@ be_local_closure(get_vbus_current, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3EC00000),
|
||||
}),
|
||||
(be_nested_const_str("get_vbus_current", 1205347942, 16)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E005B, // 0001 LDINT R3 92
|
||||
|
@ -83,7 +83,7 @@ be_local_closure(set_chg_current, /* name */
|
|||
/* K1 */ be_nested_string("read8", -1492179129, 5),
|
||||
}),
|
||||
(be_nested_const_str("set_chg_current", 336304386, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x8C080100, // 0000 GETMET R2 R0 K0
|
||||
0x54120032, // 0001 LDINT R4 51
|
||||
|
@ -121,7 +121,7 @@ be_local_closure(get_bat_current, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3F000000),
|
||||
}),
|
||||
(be_nested_const_str("get_bat_current", 1912106073, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 9]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E0079, // 0001 LDINT R3 122
|
||||
|
@ -156,7 +156,7 @@ be_local_closure(get_bat_power, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3A102DE1),
|
||||
}),
|
||||
(be_nested_const_str("get_bat_power", -1227592443, 13)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E006F, // 0001 LDINT R3 112
|
||||
|
@ -186,7 +186,7 @@ be_local_closure(json_append, /* name */
|
|||
/* K0 */ be_nested_string("wire", -212213352, 4),
|
||||
}),
|
||||
(be_nested_const_str("json_append", -1292948012, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x74060001, // 0001 JMPT R1 #0004
|
||||
|
@ -217,7 +217,7 @@ be_local_closure(get_vbus_voltage, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3ADED28A),
|
||||
}),
|
||||
(be_nested_const_str("get_vbus_voltage", -1896756895, 16)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E0059, // 0001 LDINT R3 90
|
||||
|
@ -249,7 +249,7 @@ be_local_closure(get_temp, /* name */
|
|||
/* K2 */ be_const_real_hex(0x4310B333),
|
||||
}),
|
||||
(be_nested_const_str("get_temp", -924047810, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E005D, // 0001 LDINT R3 94
|
||||
|
@ -283,7 +283,7 @@ be_local_closure(battery_present, /* name */
|
|||
/* K3 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("battery_present", -706570238, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
@ -324,7 +324,7 @@ be_local_closure(get_aps_voltage, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3AB78035),
|
||||
}),
|
||||
(be_nested_const_str("get_aps_voltage", -2001930861, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E007D, // 0001 LDINT R3 126
|
||||
|
@ -358,7 +358,7 @@ be_local_closure(set_dcdc_enable, /* name */
|
|||
/* K4 */ be_const_int(3),
|
||||
}),
|
||||
(be_nested_const_str("set_dcdc_enable", 1594690786, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[22]) { /* code */
|
||||
0x1C0C0300, // 0000 EQ R3 R1 K0
|
||||
0x780E0004, // 0001 JMPF R3 #0007
|
||||
|
@ -408,7 +408,7 @@ be_local_closure(set_ldo_voltage, /* name */
|
|||
/* K3 */ be_const_int(3),
|
||||
}),
|
||||
(be_nested_const_str("set_ldo_voltage", -204466136, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[39]) { /* code */
|
||||
0x540E0CE3, // 0000 LDINT R3 3300
|
||||
0x240C0403, // 0001 GT R3 R2 R3
|
||||
|
@ -473,8 +473,8 @@ be_local_closure(init, /* name */
|
|||
/* K1 */ be_nested_string("init", 380752755, 4),
|
||||
/* K2 */ be_nested_string("AXP192", 757230128, 6),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 9]) { /* code */
|
||||
0x60040003, // 0000 GETGBL R1 G3
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
|
@ -509,7 +509,7 @@ be_local_closure(get_bat_voltage, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3A902DE0),
|
||||
}),
|
||||
(be_nested_const_str("get_bat_voltage", 706676538, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E0077, // 0001 LDINT R3 120
|
||||
|
@ -541,7 +541,7 @@ be_local_closure(set_ldo_enable, /* name */
|
|||
/* K2 */ be_const_int(3),
|
||||
}),
|
||||
(be_nested_const_str("set_ldo_enable", -1378465255, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0x1C0C0300, // 0000 EQ R3 R1 K0
|
||||
0x780E0004, // 0001 JMPF R3 #0007
|
||||
|
@ -586,7 +586,7 @@ be_local_closure(set_dc_voltage, /* name */
|
|||
/* K5 */ be_nested_string("read8", -1492179129, 5),
|
||||
}),
|
||||
(be_nested_const_str("set_dc_voltage", -2112985360, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[48]) { /* code */
|
||||
0x140C0300, // 0000 LT R3 R1 K0
|
||||
0x740E0001, // 0001 JMPT R3 #0004
|
||||
|
@ -662,7 +662,7 @@ be_local_closure(write_gpio, /* name */
|
|||
/* K3 */ be_const_int(3),
|
||||
}),
|
||||
(be_nested_const_str("write_gpio", -2027026962, 10)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[21]) { /* code */
|
||||
0x280C0300, // 0000 GE R3 R1 K0
|
||||
0x780E0007, // 0001 JMPF R3 #000A
|
||||
|
@ -721,7 +721,7 @@ be_local_closure(web_sensor, /* name */
|
|||
/* K13 */ be_nested_string("web_send_decimal", 1407210204, 16),
|
||||
}),
|
||||
(be_nested_const_str("web_sensor", -1394870324, 10)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[26]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x74060001, // 0001 JMPT R1 #0004
|
||||
|
@ -773,7 +773,7 @@ be_local_closure(get_bat_charge_current, /* name */
|
|||
/* K1 */ be_const_real_hex(0x3F000000),
|
||||
}),
|
||||
(be_nested_const_str("get_bat_charge_current", 1385293050, 22)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x540E0079, // 0001 LDINT R3 122
|
||||
|
@ -806,7 +806,7 @@ be_local_closure(get_battery_chargin_status, /* name */
|
|||
/* K3 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("get_battery_chargin_status", -2061725725, 26)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
@ -842,7 +842,7 @@ be_local_closure(get_input_power_status, /* name */
|
|||
/* K4 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("get_input_power_status", -192138119, 22)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
|
|
@ -34,7 +34,7 @@ be_local_closure(read32, /* name */
|
|||
/* K6 */ be_const_int(3),
|
||||
}),
|
||||
(be_nested_const_str("read32", 1741276240, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -82,7 +82,7 @@ be_local_closure(write8, /* name */
|
|||
/* K3 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("write8", -1160975764, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 8]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x8C0C0701, // 0001 GETMET R3 R3 K1
|
||||
|
@ -120,7 +120,7 @@ be_local_closure(read12, /* name */
|
|||
/* K5 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("read12", -3890326, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -160,7 +160,7 @@ be_local_closure(write_bit, /* name */
|
|||
/* K3 */ be_nested_string("read8", -1492179129, 5),
|
||||
}),
|
||||
(be_nested_const_str("write_bit", -1633976860, 9)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[26]) { /* code */
|
||||
0x14100500, // 0000 LT R4 R2 K0
|
||||
0x74120002, // 0001 JMPT R4 #0005
|
||||
|
@ -217,7 +217,7 @@ be_local_closure(read24, /* name */
|
|||
/* K6 */ be_const_int(2),
|
||||
}),
|
||||
(be_nested_const_str("read24", 1808533811, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -261,7 +261,7 @@ be_local_closure(read8, /* name */
|
|||
/* K3 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("read8", -1492179129, 5)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -301,8 +301,8 @@ be_local_closure(init, /* name */
|
|||
/* K8 */ be_nested_string("detected on bus", 1432002650, 15),
|
||||
/* K9 */ be_nested_string("bus", 1607822841, 3),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[44]) { /* code */
|
||||
0x8C100100, // 0000 GETMET R4 R0 K0
|
||||
0x7C100200, // 0001 CALL R4 1
|
||||
|
@ -376,7 +376,7 @@ be_local_closure(read13, /* name */
|
|||
/* K5 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("read13", 12887293, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
|
|
@ -33,7 +33,7 @@ be_local_closure(set_time, /* name */
|
|||
/* K9 */ be_nested_string("set_text", 1849641155, 8),
|
||||
}),
|
||||
(be_nested_const_str("set_time", 900236405, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[27]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0x88140101, // 0001 GETMBR R5 R0 K1
|
||||
|
@ -93,7 +93,7 @@ be_local_closure(every_second, /* name */
|
|||
/* K8 */ be_nested_string("sec", -1155074638, 3),
|
||||
}),
|
||||
(be_nested_const_str("every_second", 2075451465, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[17]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
@ -155,8 +155,8 @@ be_local_closure(init, /* name */
|
|||
/* K20 */ be_nested_string("tasmota", 424643812, 7),
|
||||
/* K21 */ be_nested_string("add_driver", 1654458371, 10),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[82]) { /* code */
|
||||
0x60080003, // 0000 GETGBL R2 G3
|
||||
0x5C0C0000, // 0001 MOVE R3 R0
|
||||
|
@ -265,7 +265,7 @@ be_local_closure(del, /* name */
|
|||
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
|
||||
}),
|
||||
(be_nested_const_str("del", -816214454, 3)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[10]) { /* code */
|
||||
0x60040003, // 0000 GETGBL R1 G3
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
|
|
|
@ -25,7 +25,7 @@ be_local_closure(get_object_from_ptr, /* name */
|
|||
/* K1 */ be_nested_string("find", -1108310694, 4),
|
||||
}),
|
||||
(be_nested_const_str("get_object_from_ptr", -1949948095, 19)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[10]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0001 LDNIL R3
|
||||
|
@ -68,7 +68,7 @@ be_local_closure(widget_event_impl, /* name */
|
|||
/* K8 */ be_nested_string("widget_event", 1951408186, 12),
|
||||
}),
|
||||
(be_nested_const_str("widget_event_impl", -2116536735, 17)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[30]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
|
@ -129,8 +129,8 @@ be_local_closure(lvgl_event_dispatch, /* name */
|
|||
/* K6 */ be_nested_string("get_object_from_ptr", -1949948095, 19),
|
||||
}),
|
||||
(be_nested_const_str("lvgl_event_dispatch", 2104396622, 19)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
( &(const binstruction[18]) { /* code */
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xB80E0200, // 0001 GETNGBL R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
|
@ -138,17 +138,19 @@ be_local_closure(lvgl_event_dispatch, /* name */
|
|||
0x5C1C0200, // 0004 MOVE R7 R1
|
||||
0x7C140400, // 0005 CALL R5 2
|
||||
0x7C0C0400, // 0006 CALL R3 2
|
||||
0x88100704, // 0007 GETMBR R4 R3 K4
|
||||
0x88140105, // 0008 GETMBR R5 R0 K5
|
||||
0x94140A04, // 0009 GETIDX R5 R5 R4
|
||||
0x8C180106, // 000A GETMET R6 R0 K6
|
||||
0x5C200800, // 000B MOVE R8 R4
|
||||
0x7C180400, // 000C CALL R6 2
|
||||
0x5C1C0A00, // 000D MOVE R7 R5
|
||||
0x5C200C00, // 000E MOVE R8 R6
|
||||
0x5C240600, // 000F MOVE R9 R3
|
||||
0x7C1C0400, // 0010 CALL R7 2
|
||||
0x80000000, // 0011 RET 0
|
||||
0x60100009, // 0007 GETGBL R4 G9
|
||||
0x88140704, // 0008 GETMBR R5 R3 K4
|
||||
0x7C100200, // 0009 CALL R4 1
|
||||
0x88140105, // 000A GETMBR R5 R0 K5
|
||||
0x94140A04, // 000B GETIDX R5 R5 R4
|
||||
0x8C180106, // 000C GETMET R6 R0 K6
|
||||
0x5C200800, // 000D MOVE R8 R4
|
||||
0x7C180400, // 000E CALL R6 2
|
||||
0x5C1C0A00, // 000F MOVE R7 R5
|
||||
0x5C200C00, // 0010 MOVE R8 R6
|
||||
0x5C240600, // 0011 MOVE R9 R3
|
||||
0x7C1C0400, // 0012 CALL R7 2
|
||||
0x80000000, // 0013 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -178,7 +180,7 @@ be_local_closure(widget_dtor_impl, /* name */
|
|||
/* K6 */ be_nested_string("widget_destructor", -87578951, 17),
|
||||
}),
|
||||
(be_nested_const_str("widget_dtor_impl", 520430610, 16)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[22]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
|
@ -226,7 +228,7 @@ be_local_closure(register_obj, /* name */
|
|||
/* K1 */ be_nested_string("_p", 1594591802, 2),
|
||||
}),
|
||||
(be_nested_const_str("register_obj", -312352526, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[13]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0001 LDNIL R3
|
||||
|
@ -274,7 +276,7 @@ be_local_closure(gen_cb, /* name */
|
|||
/* K0 */ be_nested_string("lvgl_event_dispatch", 2104396622, 19),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x68040000, // 0000 GETUPV R1 U0
|
||||
0x8C040300, // 0001 GETMET R1 R1 K0
|
||||
|
@ -296,7 +298,7 @@ be_local_closure(gen_cb, /* name */
|
|||
/* K7 */ be_nested_string("cb_do_nothing", 1488730702, 13),
|
||||
}),
|
||||
(be_nested_const_str("gen_cb", -1049739745, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[41]) { /* code */
|
||||
0x1C140300, // 0000 EQ R5 R1 K0
|
||||
0x78160018, // 0001 JMPF R5 #001B
|
||||
|
@ -364,7 +366,7 @@ be_local_closure(deregister_obj, /* name */
|
|||
/* K2 */ be_nested_string("cb_event_closure", -466699971, 16),
|
||||
}),
|
||||
(be_nested_const_str("deregister_obj", -385000303, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[17]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0001 LDNIL R3
|
||||
|
@ -416,7 +418,7 @@ be_local_closure(widget_cb, /* name */
|
|||
/* K0 */ be_nested_string("widget_ctor_impl", 194252479, 16),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x68080000, // 0000 GETUPV R2 U0
|
||||
0x8C080500, // 0001 GETMET R2 R2 K0
|
||||
|
@ -441,7 +443,7 @@ be_local_closure(widget_cb, /* name */
|
|||
/* K0 */ be_nested_string("widget_dtor_impl", 520430610, 16),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x68080000, // 0000 GETUPV R2 U0
|
||||
0x8C080500, // 0001 GETMET R2 R2 K0
|
||||
|
@ -466,7 +468,7 @@ be_local_closure(widget_cb, /* name */
|
|||
/* K0 */ be_nested_string("widget_event_impl", -2116536735, 17),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x68080000, // 0000 GETUPV R2 U0
|
||||
0x8C080500, // 0001 GETMET R2 R2 K0
|
||||
|
@ -496,7 +498,7 @@ be_local_closure(widget_cb, /* name */
|
|||
/* K14 */ be_nested_string("event_cb", -1166269279, 8),
|
||||
}),
|
||||
(be_nested_const_str("widget_cb", -1531384241, 9)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[56]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x4C080000, // 0001 LDNIL R2
|
||||
|
@ -577,7 +579,7 @@ be_local_closure(_anonymous_, /* name */
|
|||
/* K0 */ be_nested_string("LVG: call to unsupported callback", 504176819, 33),
|
||||
}),
|
||||
(be_nested_const_str("_anonymous_", 1957281476, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0x60000001, // 0000 GETGBL R0 G1
|
||||
0x58040000, // 0001 LDCONST R1 K0
|
||||
|
@ -632,7 +634,7 @@ be_local_closure(create_custom_widget, /* name */
|
|||
/* K26 */ be_nested_string("class_init_obj", 178410604, 14),
|
||||
}),
|
||||
(be_nested_const_str("create_custom_widget", 1140594778, 20)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[86]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0x6010000F, // 0001 GETGBL R4 G15
|
||||
|
@ -751,7 +753,7 @@ be_local_closure(widget_ctor_impl, /* name */
|
|||
/* K8 */ be_nested_string("widget_constructor", -1751181362, 18),
|
||||
}),
|
||||
(be_nested_const_str("widget_ctor_impl", 194252479, 16)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[29]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
|
|
|
@ -99,6 +99,7 @@ const lvbe_call_c_t lv_func[] = {
|
|||
{ "theme_get_font_normal", (void*) &lv_theme_get_font_normal, "lv.lv_font", "(lv.lv_obj)" },
|
||||
{ "theme_get_font_small", (void*) &lv_theme_get_font_small, "lv.lv_font", "(lv.lv_obj)" },
|
||||
{ "theme_get_from_obj", (void*) &lv_theme_get_from_obj, "lv.lv_theme", "(lv.lv_obj)" },
|
||||
{ "theme_mono_init", (void*) &lv_theme_mono_init, "lv.lv_theme", "(lv.lv_disp)b(lv.lv_font)" },
|
||||
{ "theme_openhasp_init", (void*) &lv_theme_openhasp_init, "lv.lv_theme", "(lv.lv_disp)(lv.lv_color)(lv.lv_color)b(lv.lv_font)" },
|
||||
{ "theme_openhasp_is_inited", (void*) &lv_theme_openhasp_is_inited, "b", "" },
|
||||
{ "theme_set_apply_cb", (void*) &lv_theme_set_apply_cb, "", "(lv.lv_theme)^lv_theme_apply_cb^" },
|
||||
|
|
|
@ -26,7 +26,7 @@ be_local_closure(set_percentage, /* name */
|
|||
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
|
||||
}),
|
||||
(be_nested_const_str("set_percentage", -1342944572, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x540E0018, // 0001 LDINT R3 25
|
||||
|
@ -77,8 +77,8 @@ be_local_closure(init, /* name */
|
|||
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
|
||||
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[24]) { /* code */
|
||||
0xB80A0000, // 0000 GETNGBL R2 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -135,7 +135,7 @@ be_local_closure(widget_event, /* name */
|
|||
/* K0 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("atleast1", 1956331672, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x28040100, // 0000 GE R1 R0 K0
|
||||
0x78060001, // 0001 JMPF R1 #0004
|
||||
|
@ -185,7 +185,7 @@ be_local_closure(widget_event, /* name */
|
|||
/* K34 */ be_const_int(0),
|
||||
}),
|
||||
(be_nested_const_str("widget_event", 1951408186, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[182]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x8C0C0701, // 0001 GETMET R3 R3 K1
|
||||
|
@ -392,7 +392,7 @@ be_local_closure(get_percentage, /* name */
|
|||
/* K0 */ be_nested_string("percentage", -1756136011, 10),
|
||||
}),
|
||||
(be_nested_const_str("get_percentage", -1414483304, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 2]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x80040200, // 0001 RET 1 R1
|
||||
|
|
|
@ -26,7 +26,7 @@ be_local_closure(set_percentage, /* name */
|
|||
/* K2 */ be_nested_string("invalidate", -1645232368, 10),
|
||||
}),
|
||||
(be_nested_const_str("set_percentage", -1342944572, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x540E0013, // 0001 LDINT R3 20
|
||||
|
@ -77,8 +77,8 @@ be_local_closure(init, /* name */
|
|||
/* K8 */ be_nested_string("line_dsc", -200476318, 8),
|
||||
/* K9 */ be_nested_string("draw_line_dsc", -74291093, 13),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[24]) { /* code */
|
||||
0xB80A0000, // 0000 GETNGBL R2 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -135,7 +135,7 @@ be_local_closure(widget_event, /* name */
|
|||
/* K0 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("atleast1", 1956331672, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x28040100, // 0000 GE R1 R0 K0
|
||||
0x78060001, // 0001 JMPF R1 #0004
|
||||
|
@ -187,7 +187,7 @@ be_local_closure(widget_event, /* name */
|
|||
/* K36 */ be_nested_string("EVENT_DRAW_PART_END", -993342004, 19),
|
||||
}),
|
||||
(be_nested_const_str("widget_event", 1951408186, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[138]) { /* code */
|
||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||
0x8C0C0701, // 0001 GETMET R3 R3 K1
|
||||
|
@ -350,7 +350,7 @@ be_local_closure(get_percentage, /* name */
|
|||
/* K0 */ be_nested_string("percentage", -1756136011, 10),
|
||||
}),
|
||||
(be_nested_const_str("get_percentage", -1414483304, 14)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 2]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x80040200, // 0001 RET 1 R1
|
||||
|
|
|
@ -40,8 +40,8 @@ be_local_closure(init, /* name */
|
|||
/* K16 */ be_nested_string("set_style_pad_right", -980898242, 19),
|
||||
/* K17 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[67]) { /* code */
|
||||
0x60080003, // 0000 GETGBL R2 G3
|
||||
0x5C0C0000, // 0001 MOVE R3 R0
|
||||
|
|
|
@ -30,7 +30,7 @@ be_local_closure(every_second, /* name */
|
|||
/* K6 */ be_const_int(0),
|
||||
}),
|
||||
(be_nested_const_str("every_second", 2075451465, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[23]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
@ -81,8 +81,8 @@ be_local_closure(init, /* name */
|
|||
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
|
||||
/* K4 */ be_const_int(0),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0x60080003, // 0000 GETGBL R2 G3
|
||||
0x5C0C0000, // 0001 MOVE R3 R0
|
||||
|
@ -123,7 +123,7 @@ be_local_closure(del, /* name */
|
|||
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
|
||||
}),
|
||||
(be_nested_const_str("del", -816214454, 3)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[10]) { /* code */
|
||||
0x60040003, // 0000 GETGBL R1 G3
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
|
|
|
@ -39,8 +39,8 @@ be_local_closure(init, /* name */
|
|||
/* K15 */ be_nested_string("set_style_pad_right", -980898242, 19),
|
||||
/* K16 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[64]) { /* code */
|
||||
0x60080003, // 0000 GETGBL R2 G3
|
||||
0x5C0C0000, // 0001 MOVE R3 R0
|
||||
|
|
|
@ -30,7 +30,7 @@ be_local_closure(every_second, /* name */
|
|||
/* K6 */ be_const_int(0),
|
||||
}),
|
||||
(be_nested_const_str("every_second", 2075451465, 12)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[23]) { /* code */
|
||||
0xB8060000, // 0000 GETNGBL R1 K0
|
||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||
|
@ -81,8 +81,8 @@ be_local_closure(init, /* name */
|
|||
/* K3 */ be_nested_string("set_percentage", -1342944572, 14),
|
||||
/* K4 */ be_const_int(0),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0x60080003, // 0000 GETGBL R2 G3
|
||||
0x5C0C0000, // 0001 MOVE R3 R0
|
||||
|
@ -123,7 +123,7 @@ be_local_closure(del, /* name */
|
|||
/* K2 */ be_nested_string("remove_driver", 1030243768, 13),
|
||||
}),
|
||||
(be_nested_const_str("del", -816214454, 3)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[10]) { /* code */
|
||||
0x60040003, // 0000 GETGBL R1 G3
|
||||
0x5C080000, // 0001 MOVE R2 R0
|
||||
|
|
|
@ -32,6 +32,7 @@ be_extern_native_module(energy);
|
|||
be_extern_native_module(webserver);
|
||||
be_extern_native_module(flash);
|
||||
be_extern_native_module(path);
|
||||
be_extern_native_module(unishox);
|
||||
#ifdef USE_LVGL
|
||||
be_extern_native_module(lv);
|
||||
#endif // USE_LVGL
|
||||
|
@ -89,6 +90,10 @@ BERRY_LOCAL const bntvmodule* const be_module_table[] = {
|
|||
&be_native_module(light),
|
||||
#endif
|
||||
|
||||
#ifdef USE_UNISHOX_COMPRESSION
|
||||
&be_native_module(unishox),
|
||||
#endif // USE_UNISHOX_COMPRESSION
|
||||
|
||||
#ifdef USE_LVGL
|
||||
&be_native_module(lv),
|
||||
#endif // USE_LVGL
|
||||
|
|
|
@ -31,7 +31,7 @@ be_local_closure(save, /* name */
|
|||
/* K7 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("save", -855671224, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[30]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x4C080000, // 0001 LDNIL R2
|
||||
|
@ -87,7 +87,7 @@ be_local_closure(setmember, /* name */
|
|||
/* K1 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("setmember", 1432909441, 9)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x980C0202, // 0001 SETIDX R3 R1 R2
|
||||
|
@ -121,8 +121,8 @@ be_local_closure(init, /* name */
|
|||
/* K4 */ be_nested_string("load", -435725847, 4),
|
||||
/* K5 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0x90020101, // 0000 SETMBR R0 K0 K1
|
||||
0x6008000F, // 0001 GETGBL R2 G15
|
||||
|
@ -176,7 +176,7 @@ be_local_closure(load, /* name */
|
|||
/* K9 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("load", -435725847, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[37]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0xA40A0200, // 0001 IMPORT R2 K1
|
||||
|
@ -239,7 +239,7 @@ be_local_closure(has, /* name */
|
|||
/* K1 */ be_nested_string("has", -306245661, 3),
|
||||
}),
|
||||
(be_nested_const_str("has", -306245661, 3)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -270,7 +270,7 @@ be_local_closure(zero, /* name */
|
|||
/* K1 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("zero", -1955600541, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x60040013, // 0000 GETGBL R1 G19
|
||||
0x7C040000, // 0001 CALL R1 0
|
||||
|
@ -302,7 +302,7 @@ be_local_closure(member, /* name */
|
|||
/* K1 */ be_nested_string("find", -1108310694, 4),
|
||||
}),
|
||||
(be_nested_const_str("member", 719708611, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -334,7 +334,7 @@ be_local_closure(remove, /* name */
|
|||
/* K2 */ be_nested_string("_dirty", 283846766, 6),
|
||||
}),
|
||||
(be_nested_const_str("remove", -611183107, 6)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
|
@ -367,7 +367,7 @@ be_local_closure(find, /* name */
|
|||
/* K1 */ be_nested_string("find", -1108310694, 4),
|
||||
}),
|
||||
(be_nested_const_str("find", -1108310694, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x8C0C0701, // 0001 GETMET R3 R3 K1
|
||||
|
@ -422,7 +422,7 @@ be_local_closure(_anonymous_, /* name */
|
|||
/* K0 */ be_const_class(be_class_Persist),
|
||||
}),
|
||||
(be_nested_const_str("_anonymous_", 1957281476, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x58040000, // 0000 LDCONST R1 K0
|
||||
0xB4000000, // 0001 CLASS K0
|
||||
|
|
|
@ -50,6 +50,83 @@ extern int l_getswitch(bvm *vm);
|
|||
|
||||
extern int l_i2cenabled(bvm *vm);
|
||||
|
||||
// KV class
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(kv_init, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
3, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_string("k", -301188886, 1),
|
||||
/* K1 */ be_nested_string("v", -217300791, 1),
|
||||
}),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 3]) { /* code */
|
||||
0x90020001, // 0000 SETMBR R0 K0 R1
|
||||
0x90020202, // 0001 SETMBR R0 K1 R2
|
||||
0x80000000, // 0002 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: KV
|
||||
********************************************************************/
|
||||
be_local_class(KV,
|
||||
2,
|
||||
NULL,
|
||||
be_nested_map(3,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_nested_key("k", -301188886, 1, 2), be_const_var(0) },
|
||||
{ be_nested_key("v", -217300791, 1, -1), be_const_var(1) },
|
||||
{ be_nested_key("init", 380752755, 4, -1), be_const_closure(kv_init_closure) },
|
||||
})),
|
||||
(be_nested_const_str("KV", 955173972, 2))
|
||||
);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: kv
|
||||
********************************************************************/
|
||||
be_local_closure(kv, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
3, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 1]) { /* constants */
|
||||
/* K0 */ be_const_class(be_class_KV),
|
||||
}),
|
||||
(be_nested_const_str("kv", 1497177492, 2)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x580C0000, // 0000 LDCONST R3 K0
|
||||
0xB4000000, // 0001 CLASS K0
|
||||
0x5C100600, // 0002 MOVE R4 R3
|
||||
0x5C140200, // 0003 MOVE R5 R1
|
||||
0x5C180400, // 0004 MOVE R6 R2
|
||||
0x7C100400, // 0005 CALL R4 2
|
||||
0x80040800, // 0006 RET 1 R4
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
|
@ -76,7 +153,7 @@ be_local_closure(init, /* name */
|
|||
/* K9 */ be_nested_string("toptr", -915119842, 5),
|
||||
/* K10 */ be_nested_string("_settings_def", -519406989, 13),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
((bstring*) &be_const_str_init),
|
||||
(be_nested_const_str("tasmota.be", 1128870755, 10)),
|
||||
( &(const binstruction[23]) { /* code */
|
||||
0xB8060200, // 0000 GETNGBL R1 K1
|
||||
|
@ -125,7 +202,7 @@ be_local_closure(add_driver, /* name */
|
|||
/* K1 */ be_nested_string("push", -2022703139, 4),
|
||||
}),
|
||||
(be_nested_const_str("add_driver", 1654458371, 10)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0004, // 0001 JMPF R2 #0007
|
||||
|
@ -168,7 +245,7 @@ be_local_closure(gen_cb, /* name */
|
|||
/* K6 */ be_nested_string("No callback available", 633786138, 21),
|
||||
}),
|
||||
(be_nested_const_str("gen_cb", -1049739745, 6)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[34]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x4C0C0000, // 0001 LDNIL R3
|
||||
|
@ -229,7 +306,7 @@ be_local_closure(set_light, /* name */
|
|||
/* K2 */ be_nested_string("set", -970520829, 3),
|
||||
}),
|
||||
(be_nested_const_str("set_light", -1118891144, 9)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[18]) { /* code */
|
||||
0x600C0001, // 0000 GETGBL R3 G1
|
||||
0x58100000, // 0001 LDCONST R4 K0
|
||||
|
@ -260,7 +337,7 @@ be_local_closure(set_light, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(remove_rule, /* name */
|
||||
be_nested_proto(
|
||||
5, /* nstack */
|
||||
6, /* nstack */
|
||||
2, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -268,20 +345,37 @@ be_local_closure(remove_rule, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_string("_rules", -28750191, 6),
|
||||
/* K1 */ be_nested_string("remove", -611183107, 6),
|
||||
/* K1 */ be_const_int(0),
|
||||
/* K2 */ be_nested_string("k", -301188886, 1),
|
||||
/* K3 */ be_nested_string("remove", -611183107, 6),
|
||||
/* K4 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("remove_rule", -838755968, 11)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0003, // 0001 JMPF R2 #0006
|
||||
0x88080100, // 0002 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0003 GETMET R2 R2 K1
|
||||
0x5C100200, // 0004 MOVE R4 R1
|
||||
0x7C080400, // 0005 CALL R2 2
|
||||
0x80000000, // 0006 RET 0
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[21]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0011, // 0001 JMPF R2 #0014
|
||||
0x58080001, // 0002 LDCONST R2 K1
|
||||
0x600C000C, // 0003 GETGBL R3 G12
|
||||
0x88100100, // 0004 GETMBR R4 R0 K0
|
||||
0x7C0C0200, // 0005 CALL R3 1
|
||||
0x140C0403, // 0006 LT R3 R2 R3
|
||||
0x780E000B, // 0007 JMPF R3 #0014
|
||||
0x880C0100, // 0008 GETMBR R3 R0 K0
|
||||
0x940C0602, // 0009 GETIDX R3 R3 R2
|
||||
0x880C0702, // 000A GETMBR R3 R3 K2
|
||||
0x1C0C0601, // 000B EQ R3 R3 R1
|
||||
0x780E0004, // 000C JMPF R3 #0012
|
||||
0x880C0100, // 000D GETMBR R3 R0 K0
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140400, // 000F MOVE R5 R2
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x70020000, // 0011 JMP #0013
|
||||
0x00080504, // 0012 ADD R2 R2 K4
|
||||
0x7001FFEE, // 0013 JMP #0003
|
||||
0x80000000, // 0014 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -308,7 +402,7 @@ be_local_closure(add_cmd, /* name */
|
|||
/* K3 */ be_nested_string("the second argument is not a function", -340392827, 37),
|
||||
}),
|
||||
(be_nested_const_str("add_cmd", -933336417, 7)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x740E0002, // 0001 JMPT R3 #0005
|
||||
|
@ -344,40 +438,49 @@ be_local_closure(wire_scan, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_string("i2c_enabled", 218388101, 11),
|
||||
/* K1 */ be_nested_string("wire1", -1082245877, 5),
|
||||
/* K2 */ be_nested_string("detect", 8884370, 6),
|
||||
/* K3 */ be_nested_string("wire2", -1065468258, 5),
|
||||
/* K2 */ be_nested_string("enabled", 49525662, 7),
|
||||
/* K3 */ be_nested_string("detect", 8884370, 6),
|
||||
/* K4 */ be_nested_string("wire2", -1065468258, 5),
|
||||
}),
|
||||
(be_nested_const_str("wire_scan", -1623691416, 9)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
( &(const binstruction[25]) { /* code */
|
||||
0x4C0C0000, // 0000 LDNIL R3
|
||||
0x200C0403, // 0001 NE R3 R2 R3
|
||||
0x780E0005, // 0002 JMPF R3 #0009
|
||||
0x8C0C0100, // 0003 GETMET R3 R0 K0
|
||||
0x5C140400, // 0004 MOVE R5 R2
|
||||
0x7C0C0400, // 0005 CALL R3 2
|
||||
0x740E0001, // 0006 JMPT R3 #0009
|
||||
0x4C0C0000, // 0007 LDNIL R3
|
||||
0x80040600, // 0008 RET 1 R3
|
||||
0x880C0101, // 0009 GETMBR R3 R0 K1
|
||||
0x8C0C0702, // 000A GETMET R3 R3 K2
|
||||
0x5C140200, // 000B MOVE R5 R1
|
||||
0x7C0C0400, // 000C CALL R3 2
|
||||
0x780E0001, // 000D JMPF R3 #0010
|
||||
0x880C0101, // 000E GETMBR R3 R0 K1
|
||||
0x80040600, // 000F RET 1 R3
|
||||
0x880C0103, // 0010 GETMBR R3 R0 K3
|
||||
0x8C0C0702, // 0011 GETMET R3 R3 K2
|
||||
0x5C140200, // 0012 MOVE R5 R1
|
||||
0x7C0C0400, // 0013 CALL R3 2
|
||||
0x780E0001, // 0014 JMPF R3 #0017
|
||||
0x880C0103, // 0015 GETMBR R3 R0 K3
|
||||
0x80040600, // 0016 RET 1 R3
|
||||
0x4C0C0000, // 0017 LDNIL R3
|
||||
0x80040600, // 0018 RET 1 R3
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[33]) { /* code */
|
||||
0x4C0C0000, // 0000 LDNIL R3
|
||||
0x200C0403, // 0001 NE R3 R2 R3
|
||||
0x780E0005, // 0002 JMPF R3 #0009
|
||||
0x8C0C0100, // 0003 GETMET R3 R0 K0
|
||||
0x5C140400, // 0004 MOVE R5 R2
|
||||
0x7C0C0400, // 0005 CALL R3 2
|
||||
0x740E0001, // 0006 JMPT R3 #0009
|
||||
0x4C0C0000, // 0007 LDNIL R3
|
||||
0x80040600, // 0008 RET 1 R3
|
||||
0x880C0101, // 0009 GETMBR R3 R0 K1
|
||||
0x8C0C0702, // 000A GETMET R3 R3 K2
|
||||
0x7C0C0200, // 000B CALL R3 1
|
||||
0x780E0006, // 000C JMPF R3 #0014
|
||||
0x880C0101, // 000D GETMBR R3 R0 K1
|
||||
0x8C0C0703, // 000E GETMET R3 R3 K3
|
||||
0x5C140200, // 000F MOVE R5 R1
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x780E0001, // 0011 JMPF R3 #0014
|
||||
0x880C0101, // 0012 GETMBR R3 R0 K1
|
||||
0x80040600, // 0013 RET 1 R3
|
||||
0x880C0104, // 0014 GETMBR R3 R0 K4
|
||||
0x8C0C0702, // 0015 GETMET R3 R3 K2
|
||||
0x7C0C0200, // 0016 CALL R3 1
|
||||
0x780E0006, // 0017 JMPF R3 #001F
|
||||
0x880C0104, // 0018 GETMBR R3 R0 K4
|
||||
0x8C0C0703, // 0019 GETMET R3 R3 K3
|
||||
0x5C140200, // 001A MOVE R5 R1
|
||||
0x7C0C0400, // 001B CALL R3 2
|
||||
0x780E0001, // 001C JMPF R3 #001F
|
||||
0x880C0104, // 001D GETMBR R3 R0 K4
|
||||
0x80040600, // 001E RET 1 R3
|
||||
0x4C0C0000, // 001F LDNIL R3
|
||||
0x80040600, // 0020 RET 1 R3
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -405,7 +508,7 @@ be_local_closure(find_key_i, /* name */
|
|||
/* K4 */ be_nested_string("stop_iteration", -121173395, 14),
|
||||
}),
|
||||
(be_nested_const_str("find_key_i", 850136726, 10)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[30]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0x8C100701, // 0001 GETMET R4 R3 K1
|
||||
|
@ -461,7 +564,7 @@ be_local_closure(chars_in_string, /* name */
|
|||
/* K1 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("chars_in_string", -1146182164, 15)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[31]) { /* code */
|
||||
0x780E0001, // 0000 JMPF R3 #0003
|
||||
0x50100200, // 0001 LDBOOL R4 1 0
|
||||
|
@ -520,7 +623,7 @@ be_local_closure(set_timer, /* name */
|
|||
/* K3 */ be_nested_string("millis", 1214679063, 6),
|
||||
}),
|
||||
(be_nested_const_str("set_timer", 2135414533, 9)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x88100100, // 0000 GETMBR R4 R0 K0
|
||||
0x74120002, // 0001 JMPT R4 #0005
|
||||
|
@ -549,7 +652,7 @@ be_local_closure(set_timer, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(add_rule, /* name */
|
||||
be_nested_proto(
|
||||
5, /* nstack */
|
||||
9, /* nstack */
|
||||
3, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -557,30 +660,37 @@ be_local_closure(add_rule, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 4]) { /* constants */
|
||||
( &(const bvalue[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_string("_rules", -28750191, 6),
|
||||
/* K1 */ be_nested_string("function", -1630125495, 8),
|
||||
/* K2 */ be_nested_string("value_error", 773297791, 11),
|
||||
/* K3 */ be_nested_string("the second argument is not a function", -340392827, 37),
|
||||
/* K2 */ be_nested_string("push", -2022703139, 4),
|
||||
/* K3 */ be_nested_string("kv", 1497177492, 2),
|
||||
/* K4 */ be_nested_string("value_error", 773297791, 11),
|
||||
/* K5 */ be_nested_string("the second argument is not a function", -340392827, 37),
|
||||
}),
|
||||
(be_nested_const_str("add_rule", 596540743, 8)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
( &(const binstruction[15]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x740E0002, // 0001 JMPT R3 #0005
|
||||
0x600C0013, // 0002 GETGBL R3 G19
|
||||
0x7C0C0000, // 0003 CALL R3 0
|
||||
0x90020003, // 0004 SETMBR R0 K0 R3
|
||||
0x600C0004, // 0005 GETGBL R3 G4
|
||||
0x5C100400, // 0006 MOVE R4 R2
|
||||
0x7C0C0200, // 0007 CALL R3 1
|
||||
0x1C0C0701, // 0008 EQ R3 R3 K1
|
||||
0x780E0002, // 0009 JMPF R3 #000D
|
||||
0x880C0100, // 000A GETMBR R3 R0 K0
|
||||
0x980C0202, // 000B SETIDX R3 R1 R2
|
||||
0x70020000, // 000C JMP #000E
|
||||
0xB0060503, // 000D RAISE 1 K2 K3
|
||||
0x80000000, // 000E RET 0
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0x880C0100, // 0000 GETMBR R3 R0 K0
|
||||
0x740E0002, // 0001 JMPT R3 #0005
|
||||
0x600C0012, // 0002 GETGBL R3 G18
|
||||
0x7C0C0000, // 0003 CALL R3 0
|
||||
0x90020003, // 0004 SETMBR R0 K0 R3
|
||||
0x600C0004, // 0005 GETGBL R3 G4
|
||||
0x5C100400, // 0006 MOVE R4 R2
|
||||
0x7C0C0200, // 0007 CALL R3 1
|
||||
0x1C0C0701, // 0008 EQ R3 R3 K1
|
||||
0x780E0007, // 0009 JMPF R3 #0012
|
||||
0x880C0100, // 000A GETMBR R3 R0 K0
|
||||
0x8C0C0702, // 000B GETMET R3 R3 K2
|
||||
0x8C140103, // 000C GETMET R5 R0 K3
|
||||
0x5C1C0200, // 000D MOVE R7 R1
|
||||
0x5C200400, // 000E MOVE R8 R2
|
||||
0x7C140600, // 000F CALL R5 3
|
||||
0x7C0C0400, // 0010 CALL R3 2
|
||||
0x70020000, // 0011 JMP #0013
|
||||
0xB0060905, // 0012 RAISE 1 K4 K5
|
||||
0x80000000, // 0013 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -611,7 +721,7 @@ be_local_closure(run_deferred, /* name */
|
|||
/* K7 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("run_deferred", 371594696, 12)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[27]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x78060017, // 0001 JMPF R1 #001A
|
||||
|
@ -712,7 +822,7 @@ be_local_closure(time_str, /* name */
|
|||
/* K9 */ be_nested_string("sec", -1155074638, 3),
|
||||
}),
|
||||
(be_nested_const_str("time_str", -1681139684, 8)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0x8C0C0101, // 0001 GETMET R3 R0 K1
|
||||
|
@ -768,7 +878,7 @@ be_local_closure(load, /* name */
|
|||
/* K17 */ be_nested_string("BRY: could not save compiled file %s (%s)", 736659787, 41),
|
||||
}),
|
||||
(be_nested_const_str("load", -435725847, 4)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[87]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xA40E0200, // 0001 IMPORT R3 K1
|
||||
|
@ -885,7 +995,7 @@ be_local_closure(find_op, /* name */
|
|||
/* K5 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("find_op", -528253920, 7)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[42]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0x580C0001, // 0001 LDCONST R3 K1
|
||||
|
@ -958,7 +1068,7 @@ be_local_closure(remove_timer, /* name */
|
|||
/* K6 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("remove_timer", -153495081, 12)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[23]) { /* code */
|
||||
0xB80A0000, // 0000 GETNGBL R2 K0
|
||||
0x88080501, // 0001 GETMBR R2 R2 K1
|
||||
|
@ -1008,7 +1118,7 @@ be_local_closure(get_light, /* name */
|
|||
/* K2 */ be_nested_string("get", 1410115415, 3),
|
||||
}),
|
||||
(be_nested_const_str("get_light", 381930476, 9)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x60080001, // 0000 GETGBL R2 G1
|
||||
0x580C0000, // 0001 LDCONST R3 K0
|
||||
|
@ -1037,47 +1147,15 @@ be_local_closure(get_light, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(exec_rules, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
12, /* nstack */
|
||||
2, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
1, /* has sup protos */
|
||||
( &(const struct bproto*[ 1]) {
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
3, /* argc */
|
||||
0, /* varg */
|
||||
1, /* has upvals */
|
||||
( &(const bupvaldesc[ 2]) { /* upvals */
|
||||
be_local_const_upval(1, 0),
|
||||
be_local_const_upval(1, 3),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 1]) { /* constants */
|
||||
/* K0 */ be_nested_string("try_rule", 1986449405, 8),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("tasmota.be", 1128870755, 10)),
|
||||
( &(const binstruction[11]) { /* code */
|
||||
0x680C0000, // 0000 GETUPV R3 U0
|
||||
0x8C0C0700, // 0001 GETMET R3 R3 K0
|
||||
0x68140001, // 0002 GETUPV R5 U1
|
||||
0x5C180000, // 0003 MOVE R6 R0
|
||||
0x5C1C0200, // 0004 MOVE R7 R1
|
||||
0x7C0C0800, // 0005 CALL R3 4
|
||||
0x740E0001, // 0006 JMPT R3 #0009
|
||||
0x740A0000, // 0007 JMPT R2 #0009
|
||||
0x50080001, // 0008 LDBOOL R2 0 1
|
||||
0x50080200, // 0009 LDBOOL R2 1 0
|
||||
0x80040400, // 000A RET 1 R2
|
||||
})
|
||||
),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_nested_string("_rules", -28750191, 6),
|
||||
/* K1 */ be_nested_string("cmd_res", 921166762, 7),
|
||||
/* K2 */ be_nested_string("json", 916562499, 4),
|
||||
|
@ -1085,18 +1163,21 @@ be_local_closure(exec_rules, /* name */
|
|||
/* K4 */ be_nested_string("log", 1062293841, 3),
|
||||
/* K5 */ be_nested_string("BRY: ERROR, bad json: ", -1579831487, 22),
|
||||
/* K6 */ be_const_int(3),
|
||||
/* K7 */ be_nested_string("reduce", 2002030311, 6),
|
||||
/* K8 */ be_nested_string("stop_iteration", -121173395, 14),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_string("try_rule", 1986449405, 8),
|
||||
/* K9 */ be_nested_string("k", -301188886, 1),
|
||||
/* K10 */ be_nested_string("v", -217300791, 1),
|
||||
/* K11 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("exec_rules", 1445221092, 10)),
|
||||
(be_nested_const_str("tasmota.be", 1128870755, 10)),
|
||||
( &(const binstruction[47]) { /* code */
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[48]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x740A0003, // 0001 JMPT R2 #0006
|
||||
0x88080101, // 0002 GETMBR R2 R0 K1
|
||||
0x4C0C0000, // 0003 LDNIL R3
|
||||
0x20080403, // 0004 NE R2 R2 R3
|
||||
0x780A0025, // 0005 JMPF R2 #002C
|
||||
0x780A0027, // 0005 JMPF R2 #002E
|
||||
0xA40A0400, // 0006 IMPORT R2 K2
|
||||
0x8C0C0503, // 0007 GETMET R3 R2 K3
|
||||
0x5C140200, // 0008 MOVE R5 R1
|
||||
|
@ -1116,28 +1197,29 @@ be_local_closure(exec_rules, /* name */
|
|||
0x78160000, // 0016 JMPF R5 #0018
|
||||
0x90020203, // 0017 SETMBR R0 K1 R3
|
||||
0x88140100, // 0018 GETMBR R5 R0 K0
|
||||
0x7816000E, // 0019 JMPF R5 #0029
|
||||
0xA8020008, // 001A EXBLK 0 #0024
|
||||
0x88140100, // 001B GETMBR R5 R0 K0
|
||||
0x8C140B07, // 001C GETMET R5 R5 K7
|
||||
0x841C0000, // 001D CLOSURE R7 P0
|
||||
0x4C200000, // 001E LDNIL R8
|
||||
0x50240000, // 001F LDBOOL R9 0 0
|
||||
0x7C140800, // 0020 CALL R5 4
|
||||
0x5C100A00, // 0021 MOVE R4 R5
|
||||
0xA8040001, // 0022 EXBLK 1 1
|
||||
0x70020004, // 0023 JMP #0029
|
||||
0x58140008, // 0024 LDCONST R5 K8
|
||||
0xAC140200, // 0025 CATCH R5 1 0
|
||||
0x70020000, // 0026 JMP #0028
|
||||
0x70020000, // 0027 JMP #0029
|
||||
0xB0080000, // 0028 RAISE 2 R0 R0
|
||||
0xA0000000, // 0029 CLOSE R0
|
||||
0x80040800, // 002A RET 1 R4
|
||||
0xA0080000, // 002B CLOSE R2
|
||||
0x50080000, // 002C LDBOOL R2 0 0
|
||||
0xA0000000, // 002D CLOSE R0
|
||||
0x80040400, // 002E RET 1 R2
|
||||
0x78160012, // 0019 JMPF R5 #002D
|
||||
0x58140007, // 001A LDCONST R5 K7
|
||||
0x6018000C, // 001B GETGBL R6 G12
|
||||
0x881C0100, // 001C GETMBR R7 R0 K0
|
||||
0x7C180200, // 001D CALL R6 1
|
||||
0x14180A06, // 001E LT R6 R5 R6
|
||||
0x781A000C, // 001F JMPF R6 #002D
|
||||
0x88180100, // 0020 GETMBR R6 R0 K0
|
||||
0x94180C05, // 0021 GETIDX R6 R6 R5
|
||||
0x8C1C0108, // 0022 GETMET R7 R0 K8
|
||||
0x5C240600, // 0023 MOVE R9 R3
|
||||
0x88280D09, // 0024 GETMBR R10 R6 K9
|
||||
0x882C0D0A, // 0025 GETMBR R11 R6 K10
|
||||
0x7C1C0800, // 0026 CALL R7 4
|
||||
0x741E0001, // 0027 JMPT R7 #002A
|
||||
0x74120000, // 0028 JMPT R4 #002A
|
||||
0x50100001, // 0029 LDBOOL R4 0 1
|
||||
0x50100200, // 002A LDBOOL R4 1 0
|
||||
0x00140B0B, // 002B ADD R5 R5 K11
|
||||
0x7001FFED, // 002C JMP #001B
|
||||
0x80040800, // 002D RET 1 R4
|
||||
0x50080000, // 002E LDBOOL R2 0 0
|
||||
0x80040400, // 002F RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -1149,47 +1231,15 @@ be_local_closure(exec_rules, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(exec_tele, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
12, /* nstack */
|
||||
2, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
1, /* has sup protos */
|
||||
( &(const struct bproto*[ 1]) {
|
||||
be_nested_proto(
|
||||
8, /* nstack */
|
||||
3, /* argc */
|
||||
0, /* varg */
|
||||
1, /* has upvals */
|
||||
( &(const bupvaldesc[ 2]) { /* upvals */
|
||||
be_local_const_upval(1, 0),
|
||||
be_local_const_upval(1, 3),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 1]) { /* constants */
|
||||
/* K0 */ be_nested_string("try_rule", 1986449405, 8),
|
||||
}),
|
||||
(be_nested_const_str("<lambda>", 607256038, 8)),
|
||||
(be_nested_const_str("tasmota.be", 1128870755, 10)),
|
||||
( &(const binstruction[11]) { /* code */
|
||||
0x680C0000, // 0000 GETUPV R3 U0
|
||||
0x8C0C0700, // 0001 GETMET R3 R3 K0
|
||||
0x68140001, // 0002 GETUPV R5 U1
|
||||
0x5C180000, // 0003 MOVE R6 R0
|
||||
0x5C1C0200, // 0004 MOVE R7 R1
|
||||
0x7C0C0800, // 0005 CALL R3 4
|
||||
0x740E0001, // 0006 JMPT R3 #0009
|
||||
0x740A0000, // 0007 JMPT R2 #0009
|
||||
0x50080001, // 0008 LDBOOL R2 0 1
|
||||
0x50080200, // 0009 LDBOOL R2 1 0
|
||||
0x80040400, // 000A RET 1 R2
|
||||
})
|
||||
),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 9]) { /* constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_nested_string("_rules", -28750191, 6),
|
||||
/* K1 */ be_nested_string("json", 916562499, 4),
|
||||
/* K2 */ be_nested_string("load", -435725847, 4),
|
||||
|
@ -1197,14 +1247,17 @@ be_local_closure(exec_tele, /* name */
|
|||
/* K4 */ be_nested_string("BRY: ERROR, bad json: ", -1579831487, 22),
|
||||
/* K5 */ be_const_int(3),
|
||||
/* K6 */ be_nested_string("Tele", 1329980653, 4),
|
||||
/* K7 */ be_nested_string("reduce", 2002030311, 6),
|
||||
/* K8 */ be_nested_string("stop_iteration", -121173395, 14),
|
||||
/* K7 */ be_const_int(0),
|
||||
/* K8 */ be_nested_string("try_rule", 1986449405, 8),
|
||||
/* K9 */ be_nested_string("k", -301188886, 1),
|
||||
/* K10 */ be_nested_string("v", -217300791, 1),
|
||||
/* K11 */ be_const_int(1),
|
||||
}),
|
||||
(be_nested_const_str("exec_tele", 1020751601, 9)),
|
||||
(be_nested_const_str("tasmota.be", 1128870755, 10)),
|
||||
( &(const binstruction[40]) { /* code */
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[41]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0022, // 0001 JMPF R2 #0025
|
||||
0x780A0024, // 0001 JMPF R2 #0027
|
||||
0xA40A0200, // 0002 IMPORT R2 K1
|
||||
0x8C0C0502, // 0003 GETMET R3 R2 K2
|
||||
0x5C140200, // 0004 MOVE R5 R1
|
||||
|
@ -1222,27 +1275,28 @@ be_local_closure(exec_tele, /* name */
|
|||
0x7C140000, // 0010 CALL R5 0
|
||||
0x98160C03, // 0011 SETIDX R5 K6 R3
|
||||
0x5C0C0A00, // 0012 MOVE R3 R5
|
||||
0xA8020008, // 0013 EXBLK 0 #001D
|
||||
0x88140100, // 0014 GETMBR R5 R0 K0
|
||||
0x8C140B07, // 0015 GETMET R5 R5 K7
|
||||
0x841C0000, // 0016 CLOSURE R7 P0
|
||||
0x4C200000, // 0017 LDNIL R8
|
||||
0x50240000, // 0018 LDBOOL R9 0 0
|
||||
0x7C140800, // 0019 CALL R5 4
|
||||
0x5C100A00, // 001A MOVE R4 R5
|
||||
0xA8040001, // 001B EXBLK 1 1
|
||||
0x70020004, // 001C JMP #0022
|
||||
0x58140008, // 001D LDCONST R5 K8
|
||||
0xAC140200, // 001E CATCH R5 1 0
|
||||
0x70020000, // 001F JMP #0021
|
||||
0x70020000, // 0020 JMP #0022
|
||||
0xB0080000, // 0021 RAISE 2 R0 R0
|
||||
0xA0000000, // 0022 CLOSE R0
|
||||
0x80040800, // 0023 RET 1 R4
|
||||
0xA0080000, // 0024 CLOSE R2
|
||||
0x50080000, // 0025 LDBOOL R2 0 0
|
||||
0xA0000000, // 0026 CLOSE R0
|
||||
0x80040400, // 0027 RET 1 R2
|
||||
0x58140007, // 0013 LDCONST R5 K7
|
||||
0x6018000C, // 0014 GETGBL R6 G12
|
||||
0x881C0100, // 0015 GETMBR R7 R0 K0
|
||||
0x7C180200, // 0016 CALL R6 1
|
||||
0x14180A06, // 0017 LT R6 R5 R6
|
||||
0x781A000C, // 0018 JMPF R6 #0026
|
||||
0x88180100, // 0019 GETMBR R6 R0 K0
|
||||
0x94180C05, // 001A GETIDX R6 R6 R5
|
||||
0x8C1C0108, // 001B GETMET R7 R0 K8
|
||||
0x5C240600, // 001C MOVE R9 R3
|
||||
0x88280D09, // 001D GETMBR R10 R6 K9
|
||||
0x882C0D0A, // 001E GETMBR R11 R6 K10
|
||||
0x7C1C0800, // 001F CALL R7 4
|
||||
0x741E0001, // 0020 JMPT R7 #0023
|
||||
0x74120000, // 0021 JMPT R4 #0023
|
||||
0x50100001, // 0022 LDBOOL R4 0 1
|
||||
0x50100200, // 0023 LDBOOL R4 1 0
|
||||
0x00140B0B, // 0024 ADD R5 R5 K11
|
||||
0x7001FFED, // 0025 JMP #0014
|
||||
0x80040800, // 0026 RET 1 R4
|
||||
0x50080000, // 0027 LDBOOL R2 0 0
|
||||
0x80040400, // 0028 RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -1268,7 +1322,7 @@ be_local_closure(remove_driver, /* name */
|
|||
/* K2 */ be_nested_string("pop", 1362321360, 3),
|
||||
}),
|
||||
(be_nested_const_str("remove_driver", 1030243768, 13)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A000A, // 0001 JMPF R2 #000D
|
||||
|
@ -1322,7 +1376,7 @@ be_local_closure(try_rule, /* name */
|
|||
/* K15 */ be_nested_string("<=", -1795743310, 2),
|
||||
}),
|
||||
(be_nested_const_str("try_rule", 1986449405, 8)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[141]) { /* code */
|
||||
0xA4120000, // 0000 IMPORT R4 K0
|
||||
0x8C140101, // 0001 GETMET R5 R0 K1
|
||||
|
@ -1490,7 +1544,7 @@ be_local_closure(cb_dispatch, /* name */
|
|||
/* K2 */ be_nested_string("find", -1108310694, 4),
|
||||
}),
|
||||
(be_nested_const_str("cb_dispatch", 1741510499, 11)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[20]) { /* code */
|
||||
0x88180100, // 0000 GETMBR R6 R0 K0
|
||||
0x4C1C0000, // 0001 LDNIL R7
|
||||
|
@ -1537,7 +1591,7 @@ be_local_closure(gc, /* name */
|
|||
/* K2 */ be_nested_string("allocated", 429986098, 9),
|
||||
}),
|
||||
(be_nested_const_str("gc", 1042313471, 2)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 6]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080301, // 0001 GETMET R2 R1 K1
|
||||
|
@ -1707,7 +1761,7 @@ be_local_closure(remove_cmd, /* name */
|
|||
/* K1 */ be_nested_string("remove", -611183107, 6),
|
||||
}),
|
||||
(be_nested_const_str("remove_cmd", -462651594, 10)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x780A0003, // 0001 JMPF R2 #0006
|
||||
|
@ -1743,7 +1797,7 @@ be_local_closure(exec_cmd, /* name */
|
|||
/* K4 */ be_nested_string("resolvecmnd", 993361485, 11),
|
||||
}),
|
||||
(be_nested_const_str("exec_cmd", 493567399, 8)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[27]) { /* code */
|
||||
0x88100100, // 0000 GETMBR R4 R0 K0
|
||||
0x78120016, // 0001 JMPF R4 #0019
|
||||
|
@ -1808,6 +1862,7 @@ class be_class_tasmota (scope: global, name: Tasmota) {
|
|||
_settings_ptr, comptr(&Settings)
|
||||
|
||||
init, closure(init_closure)
|
||||
kv, closure(kv_closure)
|
||||
|
||||
get_free_heap, func(l_getFreeHeap)
|
||||
publish, func(l_publish)
|
||||
|
|
|
@ -27,7 +27,7 @@ be_local_closure(tostring, /* name */
|
|||
/* K5 */ be_nested_string("id", 926444256, 2),
|
||||
}),
|
||||
(be_nested_const_str("tostring", -1995258651, 8)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[19]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x8C080301, // 0001 GETMET R2 R1 K1
|
||||
|
@ -72,8 +72,8 @@ be_local_closure(init, /* name */
|
|||
/* K1 */ be_nested_string("f", -485742695, 1),
|
||||
/* K2 */ be_nested_string("id", 926444256, 2),
|
||||
}),
|
||||
(be_nested_const_str("init", 380752755, 4)),
|
||||
(be_nested_const_str("Tasmota.be", 825809411, 10)),
|
||||
((bstring*) &be_const_str_init),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0x90020001, // 0000 SETMBR R0 K0 R1
|
||||
0x90020202, // 0001 SETMBR R0 K1 R2
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/********************************************************************
|
||||
* Berry module `unishox`
|
||||
*
|
||||
* To use: `import unishox`
|
||||
*
|
||||
* Allows to respond to HTTP request
|
||||
*******************************************************************/
|
||||
#include "be_constobj.h"
|
||||
|
||||
#ifdef USE_UNISHOX_COMPRESSION
|
||||
|
||||
extern int be_unishox_compress(bvm *vm);
|
||||
extern int be_unishox_decompress(bvm *vm);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified module: unishox
|
||||
********************************************************************/
|
||||
be_local_module(unishox,
|
||||
"unishox",
|
||||
be_nested_map(2,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_nested_key("decompress", -1407935646, 10, -1), be_const_func(be_unishox_decompress) },
|
||||
{ be_nested_key("compress", -1476883059, 8, -1), be_const_func(be_unishox_compress) },
|
||||
}))
|
||||
);
|
||||
BE_EXPORT_VARIABLE be_define_const_native_module(unishox);
|
||||
|
||||
#endif // USE_UNISHOX_COMPRESSION
|
|
@ -23,6 +23,7 @@ extern int b_wire_scan(bvm *vm);
|
|||
extern int b_wire_validwrite(bvm *vm);
|
||||
extern int b_wire_validread(bvm *vm);
|
||||
extern int b_wire_detect(bvm *vm);
|
||||
extern int b_wire_enabled(bvm *vm);
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: write_bytes
|
||||
|
@ -43,7 +44,7 @@ be_local_closure(write_bytes, /* name */
|
|||
/* K2 */ be_nested_string("_end_transmission", -1057486896, 17),
|
||||
}),
|
||||
(be_nested_const_str("write_bytes", 1227543792, 11)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x8C100100, // 0000 GETMET R4 R0 K0
|
||||
0x5C180200, // 0001 MOVE R6 R1
|
||||
|
@ -85,7 +86,7 @@ be_local_closure(read_bytes, /* name */
|
|||
/* K5 */ be_nested_string("_read", 346717030, 5),
|
||||
}),
|
||||
(be_nested_const_str("read_bytes", -718234123, 10)),
|
||||
(be_nested_const_str("input", -103256197, 5)),
|
||||
((bstring*) &be_const_str_input),
|
||||
( &(const binstruction[24]) { /* code */
|
||||
0x8C100100, // 0000 GETMET R4 R0 K0
|
||||
0x5C180200, // 0001 MOVE R6 R1
|
||||
|
@ -140,6 +141,7 @@ class be_class_tasmota_wire (scope: global, name: Wire) {
|
|||
write, func(b_wire_validwrite)
|
||||
read, func(b_wire_validread)
|
||||
detect, func(b_wire_detect)
|
||||
enabled, func(b_wire_enabled)
|
||||
|
||||
read_bytes, closure(read_bytes_closure)
|
||||
write_bytes, closure(write_bytes_closure)
|
||||
|
|
|
@ -38,6 +38,20 @@ class Tasmota
|
|||
end
|
||||
end
|
||||
|
||||
# create a specific sub-class for rules: pattern(string) -> closure
|
||||
# Classs KV has two members k and v
|
||||
def kv(k, v)
|
||||
class KV
|
||||
var k, v
|
||||
def init(k,v)
|
||||
self.k = k
|
||||
self.v = v
|
||||
end
|
||||
end
|
||||
|
||||
return KV(k, v)
|
||||
end
|
||||
|
||||
# add `chars_in_string(s:string,c:string) -> int``
|
||||
# looks for any char in c, and return the position of the first char
|
||||
# or -1 if not found
|
||||
|
@ -98,10 +112,10 @@ class Tasmota
|
|||
# Rules
|
||||
def add_rule(pat,f)
|
||||
if !self._rules
|
||||
self._rules={}
|
||||
self._rules=[]
|
||||
end
|
||||
if type(f) == 'function'
|
||||
self._rules[pat] = f
|
||||
self._rules.push(self.kv(pat, f))
|
||||
else
|
||||
raise 'value_error', 'the second argument is not a function'
|
||||
end
|
||||
|
@ -109,7 +123,14 @@ class Tasmota
|
|||
|
||||
def remove_rule(pat)
|
||||
if self._rules
|
||||
self._rules.remove(pat)
|
||||
var i = 0
|
||||
while i < size(self._rules)
|
||||
if self._rules[i].k == pat
|
||||
self._rules.remove(i) #- don't increment i since we removed the object -#
|
||||
else
|
||||
i += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -170,10 +191,11 @@ class Tasmota
|
|||
end
|
||||
# try all rule handlers
|
||||
if self._rules
|
||||
try
|
||||
ret = self._rules.reduce( /k,v,r-> self.try_rule(ev,k,v) || r, nil, false)
|
||||
except "stop_iteration"
|
||||
# silence stop_iteration which means that the map was resized during iteration
|
||||
var i = 0
|
||||
while i < size(self._rules)
|
||||
var kv = self._rules[i]
|
||||
ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut if ret is already true -#
|
||||
i += 1
|
||||
end
|
||||
end
|
||||
return ret
|
||||
|
@ -193,10 +215,12 @@ class Tasmota
|
|||
end
|
||||
# insert tele prefix
|
||||
ev = { "Tele": ev }
|
||||
try
|
||||
ret = self._rules.reduce( /k,v,r-> self.try_rule(ev,k,v) || r, nil, false)
|
||||
except "stop_iteration"
|
||||
# silence stop_iteration which means that the map was resized during iteration
|
||||
|
||||
var i = 0
|
||||
while i < size(self._rules)
|
||||
var kv = self._rules[i]
|
||||
ret = self.try_rule(ev,kv.k,kv.v) || ret #- call should be first to avoid evaluation shortcut -#
|
||||
i += 1
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
@ -285,8 +309,8 @@ class Tasmota
|
|||
def wire_scan(addr,idx)
|
||||
# skip if the I2C index is disabled
|
||||
if idx != nil && !self.i2c_enabled(idx) return nil end
|
||||
if self.wire1.detect(addr) return self.wire1 end
|
||||
if self.wire2.detect(addr) return self.wire2 end
|
||||
if self.wire1.enabled() && self.wire1.detect(addr) return self.wire1 end
|
||||
if self.wire2.enabled() && self.wire2.detect(addr) return self.wire2 end
|
||||
return nil
|
||||
end
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class LVGL_glob
|
|||
|
||||
var event = lv.lv_event(introspect.toptr(event_ptr))
|
||||
|
||||
var target = event.target
|
||||
var target = int(event.target)
|
||||
var f = self.cb_event_closure[target]
|
||||
var obj = self.get_object_from_ptr(target)
|
||||
#print('>> lvgl_event_dispatch', f, obj, event)
|
||||
|
|
|
@ -1,239 +0,0 @@
|
|||
GPIO_NONE 0
|
||||
GPIO_KEY1 1
|
||||
GPIO_KEY1_NP 2
|
||||
GPIO_KEY1_INV 3
|
||||
GPIO_KEY1_INV_NP 4
|
||||
GPIO_SWT1 5
|
||||
GPIO_SWT1_NP 6
|
||||
GPIO_REL1 7
|
||||
GPIO_REL1_INV 8
|
||||
GPIO_LED1 9
|
||||
GPIO_LED1_INV 10
|
||||
GPIO_CNTR1 11
|
||||
GPIO_CNTR1_NP 12
|
||||
GPIO_PWM1 13
|
||||
GPIO_PWM1_INV 14
|
||||
GPIO_BUZZER 15
|
||||
GPIO_BUZZER_INV 16
|
||||
GPIO_LEDLNK 17
|
||||
GPIO_LEDLNK_INV 18
|
||||
GPIO_I2C_SCL 19
|
||||
GPIO_I2C_SDA 20
|
||||
GPIO_SPI_MISO 21
|
||||
GPIO_SPI_MOSI 22
|
||||
GPIO_SPI_CLK 23
|
||||
GPIO_SPI_CS 24
|
||||
GPIO_SPI_DC 25
|
||||
GPIO_SSPI_MISO 26
|
||||
GPIO_SSPI_MOSI 27
|
||||
GPIO_SSPI_SCLK 28
|
||||
GPIO_SSPI_CS 29
|
||||
GPIO_SSPI_DC 30
|
||||
GPIO_BACKLIGHT 31
|
||||
GPIO_OLED_RESET 32
|
||||
GPIO_IRSEND 33
|
||||
GPIO_IRRECV 34
|
||||
GPIO_RFSEND 35
|
||||
GPIO_RFRECV 36
|
||||
GPIO_DHT11 37
|
||||
GPIO_DHT22 38
|
||||
GPIO_SI7021 39
|
||||
GPIO_DHT11_OUT 40
|
||||
GPIO_DSB 41
|
||||
GPIO_DSB_OUT 42
|
||||
GPIO_WS2812 43
|
||||
GPIO_MHZ_TXD 44
|
||||
GPIO_MHZ_RXD 45
|
||||
GPIO_PZEM0XX_TX 46
|
||||
GPIO_PZEM004_RX 47
|
||||
GPIO_PZEM016_RX 48
|
||||
GPIO_PZEM017_RX 49
|
||||
GPIO_SAIR_TX 50
|
||||
GPIO_SAIR_RX 51
|
||||
GPIO_PMS5003_TX 52
|
||||
GPIO_PMS5003_RX 53
|
||||
GPIO_SDS0X1_TX 54
|
||||
GPIO_SDS0X1_RX 55
|
||||
GPIO_SBR_TX 56
|
||||
GPIO_SBR_RX 57
|
||||
GPIO_SR04_TRIG 58
|
||||
GPIO_SR04_ECHO 59
|
||||
GPIO_SDM120_TX 60
|
||||
GPIO_SDM120_RX 61
|
||||
GPIO_SDM630_TX 62
|
||||
GPIO_SDM630_RX 63
|
||||
GPIO_TM1638CLK 64
|
||||
GPIO_TM1638DIO 65
|
||||
GPIO_TM1638STB 66
|
||||
GPIO_MP3_DFR562 67
|
||||
GPIO_HX711_SCK 68
|
||||
GPIO_HX711_DAT 69
|
||||
GPIO_TX2X_TXD_BLACK 70
|
||||
GPIO_TUYA_TX 71
|
||||
GPIO_TUYA_RX 72
|
||||
GPIO_MGC3130_XFER 73
|
||||
GPIO_MGC3130_RESET 74
|
||||
GPIO_RF_SENSOR 75
|
||||
GPIO_AZ_TXD 76
|
||||
GPIO_AZ_RXD 77
|
||||
GPIO_MAX31855CS 78
|
||||
GPIO_MAX31855CLK 79
|
||||
GPIO_MAX31855DO 80
|
||||
GPIO_NRG_SEL 81
|
||||
GPIO_NRG_SEL_INV 82
|
||||
GPIO_NRG_CF1 83
|
||||
GPIO_HLW_CF 84
|
||||
GPIO_HJL_CF 85
|
||||
GPIO_MCP39F5_TX 86
|
||||
GPIO_MCP39F5_RX 87
|
||||
GPIO_MCP39F5_RST 88
|
||||
GPIO_PN532_TXD 89
|
||||
GPIO_PN532_RXD 90
|
||||
GPIO_SM16716_CLK 91
|
||||
GPIO_SM16716_DAT 92
|
||||
GPIO_SM16716_SEL 93
|
||||
GPIO_DI 94
|
||||
GPIO_DCKI 95
|
||||
GPIO_CSE7766_TX 96
|
||||
GPIO_CSE7766_RX 97
|
||||
GPIO_ARIRFRCV 98
|
||||
GPIO_ARIRFSEL 99
|
||||
GPIO_TXD 100
|
||||
GPIO_RXD 101
|
||||
GPIO_ROT1A 102
|
||||
GPIO_ROT1B 103
|
||||
GPIO_ADC_JOY 104
|
||||
GPIO_SSPI_MAX31865_CS1 105
|
||||
GPIO_HRE_CLOCK 106
|
||||
GPIO_HRE_DATA 107
|
||||
GPIO_ADE7953_IRQ 108
|
||||
GPIO_SOLAXX1_TX 109
|
||||
GPIO_SOLAXX1_RX 110
|
||||
GPIO_ZIGBEE_TX 111
|
||||
GPIO_ZIGBEE_RX 112
|
||||
GPIO_RDM6300_RX 113
|
||||
GPIO_IBEACON_TX 114
|
||||
GPIO_IBEACON_RX 115
|
||||
GPIO_A4988_DIR 116
|
||||
GPIO_A4988_STP 117
|
||||
GPIO_A4988_ENA 118
|
||||
GPIO_A4988_MS1 119
|
||||
GPIO_OUTPUT_HI 120
|
||||
GPIO_OUTPUT_LO 121
|
||||
GPIO_DDS2382_TX 122
|
||||
GPIO_DDS2382_RX 123
|
||||
GPIO_DDSU666_TX 124
|
||||
GPIO_DDSU666_RX 125
|
||||
GPIO_SM2135_CLK 126
|
||||
GPIO_SM2135_DAT 127
|
||||
GPIO_DEEPSLEEP 128
|
||||
GPIO_EXS_ENABLE 129
|
||||
GPIO_TASMOTACLIENT_TXD 130
|
||||
GPIO_TASMOTACLIENT_RXD 131
|
||||
GPIO_TASMOTACLIENT_RST 132
|
||||
GPIO_TASMOTACLIENT_RST_INV 133
|
||||
GPIO_HPMA_RX 134
|
||||
GPIO_HPMA_TX 135
|
||||
GPIO_GPS_RX 136
|
||||
GPIO_GPS_TX 137
|
||||
GPIO_HM10_RX 138
|
||||
GPIO_HM10_TX 139
|
||||
GPIO_LE01MR_RX 140
|
||||
GPIO_LE01MR_TX 141
|
||||
GPIO_CC1101_GDO0 142
|
||||
GPIO_CC1101_GDO2 143
|
||||
GPIO_HRXL_RX 144
|
||||
GPIO_ELECTRIQ_MOODL_TX 145
|
||||
GPIO_AS3935 146
|
||||
GPIO_ADC_INPUT 147
|
||||
GPIO_ADC_TEMP 148
|
||||
GPIO_ADC_LIGHT 149
|
||||
GPIO_ADC_BUTTON 150
|
||||
GPIO_ADC_BUTTON_INV 151
|
||||
GPIO_ADC_RANGE 152
|
||||
GPIO_ADC_CT_POWER 153
|
||||
GPIO_WEBCAM_PWDN 154
|
||||
GPIO_WEBCAM_RESET 155
|
||||
GPIO_WEBCAM_XCLK 156
|
||||
GPIO_WEBCAM_SIOD 157
|
||||
GPIO_WEBCAM_SIOC 158
|
||||
GPIO_WEBCAM_DATA 159
|
||||
GPIO_WEBCAM_VSYNC 160
|
||||
GPIO_WEBCAM_HREF 161
|
||||
GPIO_WEBCAM_PCLK 162
|
||||
GPIO_WEBCAM_PSCLK 163
|
||||
GPIO_WEBCAM_HSD 164
|
||||
GPIO_WEBCAM_PSRCS 165
|
||||
GPIO_BOILER_OT_RX 166
|
||||
GPIO_BOILER_OT_TX 167
|
||||
GPIO_WINDMETER_SPEED 168
|
||||
GPIO_KEY1_TC 169
|
||||
GPIO_BL0940_RX 170
|
||||
GPIO_TCP_TX 171
|
||||
GPIO_TCP_RX 172
|
||||
GPIO_ETH_PHY_POWER 173
|
||||
GPIO_ETH_PHY_MDC 174
|
||||
GPIO_ETH_PHY_MDIO 175
|
||||
GPIO_TELEINFO_RX 176
|
||||
GPIO_TELEINFO_ENABLE 177
|
||||
GPIO_LMT01 178
|
||||
GPIO_IEM3000_TX 179
|
||||
GPIO_IEM3000_RX 180
|
||||
GPIO_ZIGBEE_RST 181
|
||||
GPIO_DYP_RX 182
|
||||
GPIO_MIEL_HVAC_TX 183
|
||||
GPIO_MIEL_HVAC_RX 184
|
||||
GPIO_WE517_TX 185
|
||||
GPIO_WE517_RX 186
|
||||
GPIO_AS608_TX 187
|
||||
GPIO_AS608_RX 188
|
||||
GPIO_SHELLY_DIMMER_BOOT0 189
|
||||
GPIO_SHELLY_DIMMER_RST_INV 190
|
||||
GPIO_RC522_RST 191
|
||||
GPIO_P9813_CLK 192
|
||||
GPIO_P9813_DAT 193
|
||||
GPIO_OPTION_A 194
|
||||
GPIO_FTC532 195
|
||||
GPIO_RC522_CS 196
|
||||
GPIO_NRF24_CS 197
|
||||
GPIO_NRF24_DC 198
|
||||
GPIO_ILI9341_CS 199
|
||||
GPIO_ILI9341_DC 200
|
||||
GPIO_ILI9488_CS 201
|
||||
GPIO_EPAPER29_CS 202
|
||||
GPIO_EPAPER42_CS 203
|
||||
GPIO_SSD1351_CS 204
|
||||
GPIO_RA8876_CS 205
|
||||
GPIO_ST7789_CS 206
|
||||
GPIO_ST7789_DC 207
|
||||
GPIO_SSD1331_CS 208
|
||||
GPIO_SSD1331_DC 209
|
||||
GPIO_SDCARD_CS 210
|
||||
GPIO_ROT1A_NP 211
|
||||
GPIO_ROT1B_NP 212
|
||||
GPIO_ADC_PH 213
|
||||
GPIO_BS814_CLK 214
|
||||
GPIO_BS814_DAT 215
|
||||
GPIO_WIEGAND_D0 216
|
||||
GPIO_WIEGAND_D1 217
|
||||
GPIO_NEOPOOL_TX 218
|
||||
GPIO_NEOPOOL_RX 219
|
||||
GPIO_SDM72_TX 220
|
||||
GPIO_SDM72_RX 221
|
||||
GPIO_TM1637CLK 222
|
||||
GPIO_TM1637DIO 223
|
||||
GPIO_PROJECTOR_CTRL_TX 224
|
||||
GPIO_PROJECTOR_CTRL_RX 225
|
||||
GPIO_SSD1351_DC 226
|
||||
GPIO_XPT2046_CS 227
|
||||
GPIO_CSE7761_TX 228
|
||||
GPIO_CSE7761_RX 229
|
||||
GPIO_VL53L0X_XSHUT1 230
|
||||
GPIO_MAX7219CLK 231
|
||||
GPIO_MAX7219DIN 232
|
||||
GPIO_MAX7219CS 233
|
||||
GPIO_TFMINIPLUS_TX 234
|
||||
GPIO_TFMINIPLUS_RX 235
|
||||
GPIO_ZEROCROSS 236
|
||||
GPIO_HALLEFFECT 237
|
||||
GPIO_SENSOR_END 238
|
|
@ -1,601 +1,340 @@
|
|||
extern const bcstring be_const_str_WEBCAM_PWDN;
|
||||
extern const bcstring be_const_str_gc;
|
||||
extern const bcstring be_const_str_pin_mode;
|
||||
extern const bcstring be_const_str_SERIAL_7N2;
|
||||
extern const bcstring be_const_str_WEBCAM_XCLK;
|
||||
extern const bcstring be_const_str_list;
|
||||
extern const bcstring be_const_str_top;
|
||||
extern const bcstring be_const_str_CSE7761_RX;
|
||||
extern const bcstring be_const_str_I2S_OUT_CLK;
|
||||
extern const bcstring be_const_str_MCP39F5_RST;
|
||||
extern const bcstring be_const_str_SBR_RX;
|
||||
extern const bcstring be_const_str_codedump;
|
||||
extern const bcstring be_const_str_SERIAL_7E2;
|
||||
extern const bcstring be_const_str_exec_rules;
|
||||
extern const bcstring be_const_str_insert;
|
||||
extern const bcstring be_const_str_SI7021;
|
||||
extern const bcstring be_const_str_WE517_TX;
|
||||
extern const bcstring be_const_str_pi;
|
||||
extern const bcstring be_const_str_TCP_RX;
|
||||
extern const bcstring be_const_str_RFSEND;
|
||||
extern const bcstring be_const_str_fromb64;
|
||||
extern const bcstring be_const_str_resp_cmnd;
|
||||
extern const bcstring be_const_str_format;
|
||||
extern const bcstring be_const_str_update;
|
||||
extern const bcstring be_const_str_classof;
|
||||
extern const bcstring be_const_str___lower__;
|
||||
extern const bcstring be_const_str_finish;
|
||||
extern const bcstring be_const_str_getbits;
|
||||
extern const bcstring be_const_str_pow;
|
||||
extern const bcstring be_const_str_PULLDOWN;
|
||||
extern const bcstring be_const_str_SBR_TX;
|
||||
extern const bcstring be_const_str_SERIAL_7N1;
|
||||
extern const bcstring be_const_str_cmd;
|
||||
extern const bcstring be_const_str_sin;
|
||||
extern const bcstring be_const_str_time_reached;
|
||||
extern const bcstring be_const_str_MP3_DFR562;
|
||||
extern const bcstring be_const_str_TUYA_TX;
|
||||
extern const bcstring be_const_str_WEBCAM_SIOD;
|
||||
extern const bcstring be_const_str_WIEGAND_D1;
|
||||
extern const bcstring be_const_str_SERIAL_8E1;
|
||||
extern const bcstring be_const_str_byte;
|
||||
extern const bcstring be_const_str_WINDMETER_SPEED;
|
||||
extern const bcstring be_const_str_A4988_STP;
|
||||
extern const bcstring be_const_str_WEBCAM_PSRCS;
|
||||
extern const bcstring be_const_str_XPT2046_CS;
|
||||
extern const bcstring be_const_str_gen_cb;
|
||||
extern const bcstring be_const_str_scale_uint;
|
||||
extern const bcstring be_const_str_ADC_RANGE;
|
||||
extern const bcstring be_const_str_PMS5003_TX;
|
||||
extern const bcstring be_const_str_SM16716_DAT;
|
||||
extern const bcstring be_const_str_asin;
|
||||
extern const bcstring be_const_str_tomap;
|
||||
extern const bcstring be_const_str_PZEM0XX_TX;
|
||||
extern const bcstring be_const_str_call;
|
||||
extern const bcstring be_const_str_get_string;
|
||||
extern const bcstring be_const_str_SR04_ECHO;
|
||||
extern const bcstring be_const_str_isnan;
|
||||
extern const bcstring be_const_str_super;
|
||||
extern const bcstring be_const_str_REL1;
|
||||
extern const bcstring be_const_str_get;
|
||||
extern const bcstring be_const_str_remove;
|
||||
extern const bcstring be_const_str_for;
|
||||
extern const bcstring be_const_str_TCP_TX;
|
||||
extern const bcstring be_const_str_TM1638STB;
|
||||
extern const bcstring be_const_str_collect;
|
||||
extern const bcstring be_const_str_LE01MR_RX;
|
||||
extern const bcstring be_const_str_SHELLY_DIMMER_BOOT0;
|
||||
extern const bcstring be_const_str_TUYA_RX;
|
||||
extern const bcstring be_const_str_module;
|
||||
extern const bcstring be_const_str_set_timeouts;
|
||||
extern const bcstring be_const_str_skip;
|
||||
extern const bcstring be_const_str_ROT1A_NP;
|
||||
extern const bcstring be_const_str_WIEGAND_D0;
|
||||
extern const bcstring be_const_str_else;
|
||||
extern const bcstring be_const_str_wifi;
|
||||
extern const bcstring be_const_str_wire1;
|
||||
extern const bcstring be_const_str_ADC_INPUT;
|
||||
extern const bcstring be_const_str_ceil;
|
||||
extern const bcstring be_const_str_sqrt;
|
||||
extern const bcstring be_const_str_srand;
|
||||
extern const bcstring be_const_str_try;
|
||||
extern const bcstring be_const_str_DHT11_OUT;
|
||||
extern const bcstring be_const_str_SDM120_TX;
|
||||
extern const bcstring be_const_str_ARIRFSEL;
|
||||
extern const bcstring be_const_str_AS608_TX;
|
||||
extern const bcstring be_const_str_ETH_PHY_POWER;
|
||||
extern const bcstring be_const_str_get_free_heap;
|
||||
extern const bcstring be_const_str_GPS_TX;
|
||||
extern const bcstring be_const_str_IBEACON_TX;
|
||||
extern const bcstring be_const_str_INPUT_PULLDOWN;
|
||||
extern const bcstring be_const_str_isrunning;
|
||||
extern const bcstring be_const_str_wire_scan;
|
||||
extern const bcstring be_const_str_LE01MR_TX;
|
||||
extern const bcstring be_const_str_arg;
|
||||
extern const bcstring be_const_str_digital_write;
|
||||
extern const bcstring be_const_str_NRG_SEL_INV;
|
||||
extern const bcstring be_const_str_LEDLNK_INV;
|
||||
extern const bcstring be_const_str_ROT1B_NP;
|
||||
extern const bcstring be_const_str_scan;
|
||||
extern const bcstring be_const_str_SWT1_PD;
|
||||
extern const bcstring be_const_str_classname;
|
||||
extern const bcstring be_const_str_PZEM016_RX;
|
||||
extern const bcstring be_const_str_TELEINFO_ENABLE;
|
||||
extern const bcstring be_const_str_TX2X_TXD_BLACK;
|
||||
extern const bcstring be_const_str_deinit;
|
||||
extern const bcstring be_const_str_setmember;
|
||||
extern const bcstring be_const_str_wire2;
|
||||
extern const bcstring be_const_str_SDM630_RX;
|
||||
extern const bcstring be_const_str_SERIAL_7E1;
|
||||
extern const bcstring be_const_str_SSPI_SCLK;
|
||||
extern const bcstring be_const_str_web_send;
|
||||
extern const bcstring be_const_str_content_stop;
|
||||
extern const bcstring be_const_str_OUTPUT_HI;
|
||||
extern const bcstring be_const_str_nil;
|
||||
extern const bcstring be_const_str_opt_neq;
|
||||
extern const bcstring be_const_str_allocated;
|
||||
extern const bcstring be_const_str_gamma8;
|
||||
extern const bcstring be_const_str_i2c_enabled;
|
||||
extern const bcstring be_const_str__drivers;
|
||||
extern const bcstring be_const_str_seti;
|
||||
extern const bcstring be_const_str_;
|
||||
extern const bcstring be_const_str_KEY1_NP;
|
||||
extern const bcstring be_const_str_MD5;
|
||||
extern const bcstring be_const_str_RC522_RST;
|
||||
extern const bcstring be_const_str_SHELLY_DIMMER_RST_INV;
|
||||
extern const bcstring be_const_str_SM16716_CLK;
|
||||
extern const bcstring be_const_str_HRXL_RX;
|
||||
extern const bcstring be_const_str_EC_C25519;
|
||||
extern const bcstring be_const_str_SDM120_RX;
|
||||
extern const bcstring be_const_str_upper;
|
||||
extern const bcstring be_const_str_HPMA_RX;
|
||||
extern const bcstring be_const_str_OneWire;
|
||||
extern const bcstring be_const_str_read12;
|
||||
extern const bcstring be_const_str_SERIAL_8E2;
|
||||
extern const bcstring be_const_str_time_str;
|
||||
extern const bcstring be_const_str_DYP_RX;
|
||||
extern const bcstring be_const_str_KEY1_INV_PD;
|
||||
extern const bcstring be_const_str_RC522_CS;
|
||||
extern const bcstring be_const_str_SDS0X1_RX;
|
||||
extern const bcstring be_const_str_SSPI_MISO;
|
||||
extern const bcstring be_const_str_lower;
|
||||
extern const bcstring be_const_str_SDCARD_CS;
|
||||
extern const bcstring be_const_str_member;
|
||||
extern const bcstring be_const_str_size;
|
||||
extern const bcstring be_const_str_eth;
|
||||
extern const bcstring be_const_str_members;
|
||||
extern const bcstring be_const_str_TXD;
|
||||
extern const bcstring be_const_str_issubclass;
|
||||
extern const bcstring be_const_str_MAX7219DIN;
|
||||
extern const bcstring be_const_str_Wire;
|
||||
extern const bcstring be_const_str_HM10_RX;
|
||||
extern const bcstring be_const_str_MAX7219CLK;
|
||||
extern const bcstring be_const_str_MIEL_HVAC_TX;
|
||||
extern const bcstring be_const_str_check_privileged_access;
|
||||
extern const bcstring be_const_str_SPI_CS;
|
||||
extern const bcstring be_const_str_WEBCAM_PCLK;
|
||||
extern const bcstring be_const_str_WEBCAM_RESET;
|
||||
extern const bcstring be_const_str_SPI_MOSI;
|
||||
extern const bcstring be_const_str_last_modified;
|
||||
extern const bcstring be_const_str_log;
|
||||
extern const bcstring be_const_str_tob64;
|
||||
extern const bcstring be_const_str_A4988_MS1;
|
||||
extern const bcstring be_const_str_DAC;
|
||||
extern const bcstring be_const_str_SSPI_MOSI;
|
||||
extern const bcstring be_const_str_encrypt;
|
||||
extern const bcstring be_const_str_P9813_DAT;
|
||||
extern const bcstring be_const_str__ccmd;
|
||||
extern const bcstring be_const_str_cmd_res;
|
||||
extern const bcstring be_const_str_content_start;
|
||||
extern const bcstring be_const_str_settings;
|
||||
extern const bcstring be_const_str_NRF24_CS;
|
||||
extern const bcstring be_const_str_PZEM004_RX;
|
||||
extern const bcstring be_const_str_resp_cmnd_done;
|
||||
extern const bcstring be_const_str_dot_size;
|
||||
extern const bcstring be_const_str_EPAPER42_CS;
|
||||
extern const bcstring be_const_str_I2C_SCL;
|
||||
extern const bcstring be_const_str_INTERRUPT;
|
||||
extern const bcstring be_const_str_dac_voltage;
|
||||
extern const bcstring be_const_str_break;
|
||||
extern const bcstring be_const_str_AZ_TXD;
|
||||
extern const bcstring be_const_str_CNTR1;
|
||||
extern const bcstring be_const_str_PULLUP;
|
||||
extern const bcstring be_const_str_shared_key;
|
||||
extern const bcstring be_const_str_A4988_DIR;
|
||||
extern const bcstring be_const_str_HLW_CF;
|
||||
extern const bcstring be_const_str_end;
|
||||
extern const bcstring be_const_str_SSPI_MAX31865_CS1;
|
||||
extern const bcstring be_const_str_opt_call;
|
||||
extern const bcstring be_const_str_print;
|
||||
extern const bcstring be_const_str_begin;
|
||||
extern const bcstring be_const_str_isinstance;
|
||||
extern const bcstring be_const_str_public_key;
|
||||
extern const bcstring be_const_str_wire;
|
||||
extern const bcstring be_const_str_static;
|
||||
extern const bcstring be_const_str_exists;
|
||||
extern const bcstring be_const_str_INPUT_PULLUP;
|
||||
extern const bcstring be_const_str_SERIAL_6N2;
|
||||
extern const bcstring be_const_str_chars_in_string;
|
||||
extern const bcstring be_const_str_CHANGE;
|
||||
extern const bcstring be_const_str_SM16716_SEL;
|
||||
extern const bcstring be_const_str_IBEACON_RX;
|
||||
extern const bcstring be_const_str_SPI_DC;
|
||||
extern const bcstring be_const_str_TELEINFO_RX;
|
||||
extern const bcstring be_const_str_find_op;
|
||||
extern const bcstring be_const_str_PMS5003_RX;
|
||||
extern const bcstring be_const_str_read32;
|
||||
extern const bcstring be_const_str_MAX7219CS;
|
||||
extern const bcstring be_const_str_SDM72_RX;
|
||||
extern const bcstring be_const_str_TM1638DIO;
|
||||
extern const bcstring be_const_str_CSE7766_RX;
|
||||
extern const bcstring be_const_str_VL53L0X_XSHUT1;
|
||||
extern const bcstring be_const_str_content_send_style;
|
||||
extern const bcstring be_const_str__end_transmission;
|
||||
extern const bcstring be_const_str_cos;
|
||||
extern const bcstring be_const_str_SERIAL_8N1;
|
||||
extern const bcstring be_const_str_publish_result;
|
||||
extern const bcstring be_const_str_remove_driver;
|
||||
extern const bcstring be_const_str_A4988_ENA;
|
||||
extern const bcstring be_const_str_DEEPSLEEP;
|
||||
extern const bcstring be_const_str__write;
|
||||
extern const bcstring be_const_str_asstring;
|
||||
extern const bcstring be_const_str_addr;
|
||||
extern const bcstring be_const_str_BL0940_RX;
|
||||
extern const bcstring be_const_str__global_def;
|
||||
extern const bcstring be_const_str_EXS_ENABLE;
|
||||
extern const bcstring be_const_str_OPTION_A;
|
||||
extern const bcstring be_const_str__available;
|
||||
extern const bcstring be_const_str_read_bytes;
|
||||
extern const bcstring be_const_str_try_rule;
|
||||
extern const bcstring be_const_str_write8;
|
||||
extern const bcstring be_const_str_BOILER_OT_RX;
|
||||
extern const bcstring be_const_str_DHT11;
|
||||
extern const bcstring be_const_str_tostring;
|
||||
extern const bcstring be_const_str_write_bit;
|
||||
extern const bcstring be_const_str_PWM1;
|
||||
extern const bcstring be_const_str_SDS0X1_TX;
|
||||
extern const bcstring be_const_str_ctypes_bytes_dyn;
|
||||
extern const bcstring be_const_str_SERIAL_8N2;
|
||||
extern const bcstring be_const_str_write_bytes;
|
||||
extern const bcstring be_const_str_TM1637DIO;
|
||||
extern const bcstring be_const_str_read;
|
||||
extern const bcstring be_const_str_DDS2382_TX;
|
||||
extern const bcstring be_const_str_LEDLNK;
|
||||
extern const bcstring be_const_str_SAIR_RX;
|
||||
extern const bcstring be_const_str_ILI9488_CS;
|
||||
extern const bcstring be_const_str__request_from;
|
||||
extern const bcstring be_const_str_content_flush;
|
||||
extern const bcstring be_const_str_SSPI_CS;
|
||||
extern const bcstring be_const_str_log10;
|
||||
extern const bcstring be_const_str_BOILER_OT_TX;
|
||||
extern const bcstring be_const_str_exp;
|
||||
extern const bcstring be_const_str_on;
|
||||
extern const bcstring be_const_str_type;
|
||||
extern const bcstring be_const_str_add_header;
|
||||
extern const bcstring be_const_str_strftime;
|
||||
extern const bcstring be_const_str_as;
|
||||
extern const bcstring be_const_str_KEY1_PD;
|
||||
extern const bcstring be_const_str_PROJECTOR_CTRL_RX;
|
||||
extern const bcstring be_const_str_clear;
|
||||
extern const bcstring be_const_str_I2S_IN_CLK;
|
||||
extern const bcstring be_const_str_SERIAL_6N1;
|
||||
extern const bcstring be_const_str_LMT01;
|
||||
extern const bcstring be_const_str_RXD;
|
||||
extern const bcstring be_const_str_item;
|
||||
extern const bcstring be_const_str_PN532_RXD;
|
||||
extern const bcstring be_const_str_char;
|
||||
extern const bcstring be_const_str_MAX31855CS;
|
||||
extern const bcstring be_const_str_ELECTRIQ_MOODL_TX;
|
||||
extern const bcstring be_const_str_find;
|
||||
extern const bcstring be_const_str_gamma10;
|
||||
extern const bcstring be_const_str_dot_len;
|
||||
extern const bcstring be_const_str_AudioOutputI2S;
|
||||
extern const bcstring be_const_str_CC1101_GDO0;
|
||||
extern const bcstring be_const_str_DSB_OUT;
|
||||
extern const bcstring be_const_str_pin_used;
|
||||
extern const bcstring be_const_str_BUZZER_INV;
|
||||
extern const bcstring be_const_str_SERIAL_5N1;
|
||||
extern const bcstring be_const_str_set_power;
|
||||
extern const bcstring be_const_str_acos;
|
||||
extern const bcstring be_const_str_str;
|
||||
extern const bcstring be_const_str_add_driver;
|
||||
extern const bcstring be_const_str_content_button;
|
||||
extern const bcstring be_const_str_save;
|
||||
extern const bcstring be_const_str_yield;
|
||||
extern const bcstring be_const_str_NONE;
|
||||
extern const bcstring be_const_str_TASMOTACLIENT_RST;
|
||||
extern const bcstring be_const_str_exec_tele;
|
||||
extern const bcstring be_const_str_read24;
|
||||
extern const bcstring be_const_str_search;
|
||||
extern const bcstring be_const_str_web_send_decimal;
|
||||
extern const bcstring be_const_str_IEM3000_RX;
|
||||
extern const bcstring be_const_str_SM2135_CLK;
|
||||
extern const bcstring be_const_str_erase;
|
||||
extern const bcstring be_const_str_Tasmota;
|
||||
extern const bcstring be_const_str_has_arg;
|
||||
extern const bcstring be_const_str_target_search;
|
||||
extern const bcstring be_const_str_var;
|
||||
extern const bcstring be_const_str_IRRECV;
|
||||
extern const bcstring be_const_str_MHZ_RXD;
|
||||
extern const bcstring be_const_str_TM1638CLK;
|
||||
extern const bcstring be_const_str_raise;
|
||||
extern const bcstring be_const_str_MGC3130_RESET;
|
||||
extern const bcstring be_const_str_TFMINIPLUS_TX;
|
||||
extern const bcstring be_const_str_elif;
|
||||
extern const bcstring be_const_str_HRE_CLOCK;
|
||||
extern const bcstring be_const_str_tag;
|
||||
extern const bcstring be_const_str_class;
|
||||
extern const bcstring be_const_str_IEM3000_TX;
|
||||
extern const bcstring be_const_str__ptr;
|
||||
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_HPMA_TX;
|
||||
extern const bcstring be_const_str_ctypes_bytes;
|
||||
extern const bcstring be_const_str_loop;
|
||||
extern const bcstring be_const_str_setitem;
|
||||
extern const bcstring be_const_str_TASMOTACLIENT_RXD;
|
||||
extern const bcstring be_const_str_WS2812;
|
||||
extern const bcstring be_const_str_HX711_DAT;
|
||||
extern const bcstring be_const_str_add;
|
||||
extern const bcstring be_const_str_rtc;
|
||||
extern const bcstring be_const_str_LED1;
|
||||
extern const bcstring be_const_str_POST;
|
||||
extern const bcstring be_const_str__settings_def;
|
||||
extern const bcstring be_const_str_delay;
|
||||
extern const bcstring be_const_str_GPS_RX;
|
||||
extern const bcstring be_const_str_LED1_INV;
|
||||
extern const bcstring be_const_str_reduce;
|
||||
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_CC1101_GDO2;
|
||||
extern const bcstring be_const_str_TASMOTACLIENT_RST_INV;
|
||||
extern const bcstring be_const_str_WEBCAM_HSD;
|
||||
extern const bcstring be_const_str_AudioFileSource;
|
||||
extern const bcstring be_const_str_reset;
|
||||
extern const bcstring be_const_str_NEOPOOL_TX;
|
||||
extern const bcstring be_const_str_publish;
|
||||
extern const bcstring be_const_str_setrange;
|
||||
extern const bcstring be_const_str_DDS2382_RX;
|
||||
extern const bcstring be_const_str_SAIR_TX;
|
||||
extern const bcstring be_const_str_BS814_CLK;
|
||||
extern const bcstring be_const_str_RISING;
|
||||
extern const bcstring be_const_str_decrypt;
|
||||
extern const bcstring be_const_str_PWM1_INV;
|
||||
extern const bcstring be_const_str_rand;
|
||||
extern const bcstring be_const_str_AS3935;
|
||||
extern const bcstring be_const_str_if;
|
||||
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_continue;
|
||||
extern const bcstring be_const_str_SERIAL_6E2;
|
||||
extern const bcstring be_const_str_WEBCAM_VSYNC;
|
||||
extern const bcstring be_const_str_find_key_i;
|
||||
extern const bcstring be_const_str_SERIAL_5N2;
|
||||
extern const bcstring be_const_str_HRE_DATA;
|
||||
extern const bcstring be_const_str_SERIAL_6O1;
|
||||
extern const bcstring be_const_str_ZIGBEE_RST;
|
||||
extern const bcstring be_const_str_HJL_CF;
|
||||
extern const bcstring be_const_str_MAX31855CLK;
|
||||
extern const bcstring be_const_str_RF_SENSOR;
|
||||
extern const bcstring be_const_str_init;
|
||||
extern const bcstring be_const_str_SERIAL_5O2;
|
||||
extern const bcstring be_const_str_resp_cmnd_error;
|
||||
extern const bcstring be_const_str_ADC_BUTTON_INV;
|
||||
extern const bcstring be_const_str_ARIRFRCV;
|
||||
extern const bcstring be_const_str_available;
|
||||
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_ADC_PH;
|
||||
extern const bcstring be_const_str_tanh;
|
||||
extern const bcstring be_const_str_false;
|
||||
extern const bcstring be_const_str_SWT1;
|
||||
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__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_dot_p1;
|
||||
extern const bcstring be_const_str_ADC_LIGHT;
|
||||
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__cmd;
|
||||
extern const bcstring be_const_str_attrdump;
|
||||
extern const bcstring be_const_str_depower;
|
||||
extern const bcstring be_const_str_OUTPUT_LO;
|
||||
extern const bcstring be_const_str_import;
|
||||
extern const bcstring be_const_str_SERIAL_6E1;
|
||||
extern const bcstring be_const_str_def;
|
||||
extern const bcstring be_const_str_IRSEND;
|
||||
extern const bcstring be_const_str_keys;
|
||||
extern const bcstring be_const_str_time_dump;
|
||||
extern const bcstring be_const_str_AS608_RX;
|
||||
extern const bcstring be_const_str_AudioGeneratorWAV;
|
||||
extern const bcstring be_const_str_ST7789_CS;
|
||||
extern const bcstring be_const_str_set_timer;
|
||||
extern const bcstring be_const_str_ILI9341_DC;
|
||||
extern const bcstring be_const_str_SPI_MISO;
|
||||
extern const bcstring be_const_str_dot_p;
|
||||
extern const bcstring be_const_str_P9813_CLK;
|
||||
extern const bcstring be_const_str_REL1_INV;
|
||||
extern const bcstring be_const_str_fromptr;
|
||||
extern const bcstring be_const_str_INPUT;
|
||||
extern const bcstring be_const_str_iter;
|
||||
extern const bcstring be_const_str_AES_GCM;
|
||||
extern const bcstring be_const_str_load;
|
||||
extern const bcstring be_const_str_MGC3130_XFER;
|
||||
extern const bcstring be_const_str_TFMINIPLUS_RX;
|
||||
extern const bcstring be_const_str_resize;
|
||||
extern const bcstring be_const_str_SWT1_NP;
|
||||
extern const bcstring be_const_str_count;
|
||||
extern const bcstring be_const_str_input;
|
||||
extern const bcstring be_const_str_SPI_CLK;
|
||||
extern const bcstring be_const_str_deg;
|
||||
extern const bcstring be_const_str_AudioGenerator;
|
||||
extern const bcstring be_const_str_SSD1331_DC;
|
||||
extern const bcstring be_const_str_global;
|
||||
extern const bcstring be_const_str_traceback;
|
||||
extern const bcstring be_const_str_do;
|
||||
extern const bcstring be_const_str_KEY1;
|
||||
extern const bcstring be_const_str_SERIAL_8O2;
|
||||
extern const bcstring be_const_str_SSPI_DC;
|
||||
extern const bcstring be_const_str__global_addr;
|
||||
extern const bcstring be_const_str_exec_cmd;
|
||||
extern const bcstring be_const_str_toupper;
|
||||
extern const bcstring be_const_str_true;
|
||||
extern const bcstring be_const_str_AudioGeneratorMP3;
|
||||
extern const bcstring be_const_str_atan;
|
||||
extern const bcstring be_const_str_SDM72_TX;
|
||||
extern const bcstring be_const_str_remove_timer;
|
||||
extern const bcstring be_const_str_I2C_Driver;
|
||||
extern const bcstring be_const_str_close;
|
||||
extern const bcstring be_const_str_ZEROCROSS;
|
||||
extern const bcstring be_const_str_while;
|
||||
extern const bcstring be_const_str_opt_eq;
|
||||
extern const bcstring be_const_str_counters;
|
||||
extern const bcstring be_const_str_imax;
|
||||
extern const bcstring be_const_str_I2S_OUT_DATA;
|
||||
extern const bcstring be_const_str_ST7789_DC;
|
||||
extern const bcstring be_const_str_AudioFileSourceFS;
|
||||
extern const bcstring be_const_str_SM2135_DAT;
|
||||
extern const bcstring be_const_str__cb;
|
||||
extern const bcstring be_const_str_read13;
|
||||
extern const bcstring be_const_str_CSE7761_TX;
|
||||
extern const bcstring be_const_str_LOW;
|
||||
extern const bcstring be_const_str_SERIAL_6O2;
|
||||
extern const bcstring be_const_str_SERIAL_8O1;
|
||||
extern const bcstring be_const_str_MHZ_TXD;
|
||||
extern const bcstring be_const_str_dump;
|
||||
extern const bcstring be_const_str_get_power;
|
||||
extern const bcstring be_const_str_number;
|
||||
extern const bcstring be_const_str_ROT1A;
|
||||
extern const bcstring be_const_str_SERIAL_5O1;
|
||||
extern const bcstring be_const_str_TM1637CLK;
|
||||
extern const bcstring be_const_str__begin_transmission;
|
||||
extern const bcstring be_const_str_EPAPER29_CS;
|
||||
extern const bcstring be_const_str_name;
|
||||
extern const bcstring be_const_str_resp_cmnd_failed;
|
||||
extern const bcstring be_const_str_return;
|
||||
extern const bcstring be_const_str_calldepth;
|
||||
extern const bcstring be_const_str_FALLING;
|
||||
extern const bcstring be_const_str_push;
|
||||
extern const bcstring be_const_str_real;
|
||||
extern const bcstring be_const_str_PN532_TXD;
|
||||
extern const bcstring be_const_str_RFRECV;
|
||||
extern const bcstring be_const_str_SOLAXX1_TX;
|
||||
extern const bcstring be_const_str_get_light;
|
||||
extern const bcstring be_const_str_millis;
|
||||
extern const bcstring be_const_str_pop;
|
||||
extern const bcstring be_const_str___iterator__;
|
||||
extern const bcstring be_const_str_remove_rule;
|
||||
extern const bcstring be_const_str_ADC_BUTTON;
|
||||
extern const bcstring be_const_str_PROJECTOR_CTRL_TX;
|
||||
extern const bcstring be_const_str_HX711_SCK;
|
||||
extern const bcstring be_const_str_webclient;
|
||||
extern const bcstring be_const_str_DDSU666_RX;
|
||||
extern const bcstring be_const_str_I2C_SDA;
|
||||
extern const bcstring be_const_str_add_cmd;
|
||||
extern const bcstring be_const_str__get_cb;
|
||||
extern const bcstring be_const_str_copy;
|
||||
extern const bcstring be_const_str_detect;
|
||||
extern const bcstring be_const_str_digital_read;
|
||||
extern const bcstring be_const_str_setbits;
|
||||
extern const bcstring be_const_str_NRF24_DC;
|
||||
extern const bcstring be_const_str_SSD1351_CS;
|
||||
extern const bcstring be_const_str_BACKLIGHT;
|
||||
extern const bcstring be_const_str_SOLAXX1_RX;
|
||||
extern const bcstring be_const_str_WEBCAM_PSCLK;
|
||||
extern const bcstring be_const_str_get_size;
|
||||
extern const bcstring be_const_str_SDM630_TX;
|
||||
extern const bcstring be_const_str_geti;
|
||||
extern const bcstring be_const_str_open;
|
||||
extern const bcstring be_const_str_ADC_JOY;
|
||||
extern const bcstring be_const_str_ETH_PHY_MDC;
|
||||
extern const bcstring be_const_str_DDSU666_TX;
|
||||
extern const bcstring be_const_str_run_deferred;
|
||||
extern const bcstring be_const_str_opt_add;
|
||||
extern const bcstring be_const_str__settings_ptr;
|
||||
extern const bcstring be_const_str_tan;
|
||||
extern const bcstring be_const_str_KEY1_TC;
|
||||
extern const bcstring be_const_str_split;
|
||||
extern const bcstring be_const_str_stop;
|
||||
extern const bcstring be_const_str_tolower;
|
||||
extern const bcstring be_const_str_AZ_RXD;
|
||||
extern const bcstring be_const_str_HIGH;
|
||||
extern const bcstring be_const_str_fromstring;
|
||||
extern const bcstring be_const_str_redirect;
|
||||
extern const bcstring be_const_str_ADC_TEMP;
|
||||
extern const bcstring be_const_str_DSB;
|
||||
extern const bcstring be_const_str_add_rule;
|
||||
extern const bcstring be_const_str_CNTR1_NP;
|
||||
extern const bcstring be_const_str_TASMOTACLIENT_TXD;
|
||||
extern const bcstring be_const_str_MAX31855DO;
|
||||
extern const bcstring be_const_str_MIEL_HVAC_RX;
|
||||
extern const bcstring be_const_str_SR04_TRIG;
|
||||
extern const bcstring be_const_str_get_option;
|
||||
extern const bcstring be_const_str_ETH_PHY_MDIO;
|
||||
extern const bcstring be_const_str_I2S_IN_SLCT;
|
||||
extern const bcstring be_const_str_NRG_CF1;
|
||||
extern const bcstring be_const_str_hex;
|
||||
extern const bcstring be_const_str_map;
|
||||
extern const bcstring be_const_str_rad;
|
||||
extern const bcstring be_const_str_bus;
|
||||
extern const bcstring be_const_str_concat;
|
||||
extern const bcstring be_const_str_WEBCAM_SIOC;
|
||||
extern const bcstring be_const_str_SENSOR_END;
|
||||
extern const bcstring be_const_str_ZIGBEE_TX;
|
||||
extern const bcstring be_const_str_assert;
|
||||
extern const bcstring be_const_str_AudioOutput;
|
||||
extern const bcstring be_const_str_OUTPUT_OPEN_DRAIN;
|
||||
extern const bcstring be_const_str_state;
|
||||
extern const bcstring be_const_str_int;
|
||||
extern const bcstring be_const_str_I2S_IN_DATA;
|
||||
extern const bcstring be_const_str_ROT1B;
|
||||
extern const bcstring be_const_str_dot_w;
|
||||
extern const bcstring be_const_str_ADE7953_IRQ;
|
||||
extern const bcstring be_const_str_SSD1351_DC;
|
||||
extern const bcstring be_const_str_reset_search;
|
||||
extern const bcstring be_const_str_opt_connect;
|
||||
extern const bcstring be_const_str_BUZZER;
|
||||
extern const bcstring be_const_str_PZEM017_RX;
|
||||
extern const bcstring be_const_str_RA8876_CS;
|
||||
extern const bcstring be_const_str__def;
|
||||
extern const bcstring be_const_str_DI;
|
||||
extern const bcstring be_const_str_I2S_OUT_SLCT;
|
||||
extern const bcstring be_const_str_NRG_SEL;
|
||||
extern const bcstring be_const_str_floor;
|
||||
extern const bcstring be_const_str_NEOPOOL_RX;
|
||||
extern const bcstring be_const_str_OUTPUT;
|
||||
extern const bcstring be_const_str_reverse_gamma10;
|
||||
extern const bcstring be_const_str_ILI9341_CS;
|
||||
extern const bcstring be_const_str_KEY1_INV_NP;
|
||||
extern const bcstring be_const_str_ZIGBEE_RX;
|
||||
extern const bcstring be_const_str_set_light;
|
||||
extern const bcstring be_const_str_HM10_TX;
|
||||
extern const bcstring be_const_str_cb_dispatch;
|
||||
extern const bcstring be_const_str_MCP39F5_TX;
|
||||
extern const bcstring be_const_str_toptr;
|
||||
extern const bcstring be_const_str_sinh;
|
||||
extern const bcstring be_const_str_imin;
|
||||
extern const bcstring be_const_str_nan;
|
||||
extern const bcstring be_const_str_SERIAL_7O1;
|
||||
extern const bcstring be_const_str_set_auth;
|
||||
extern const bcstring be_const_str__rules;
|
||||
extern const bcstring be_const_str_event;
|
||||
extern const bcstring be_const_str_OLED_RESET;
|
||||
extern const bcstring be_const_str__read;
|
||||
extern const bcstring be_const_str___upper__;
|
||||
extern const bcstring be_const_str_content_send;
|
||||
extern const bcstring be_const_str_ADC_CT_POWER;
|
||||
extern const bcstring be_const_str_BS814_DAT;
|
||||
extern const bcstring be_const_str_arg_size;
|
||||
extern const bcstring be_const_str_SERIAL_5E1;
|
||||
extern const bcstring be_const_str_resp_cmnd_str;
|
||||
extern const bcstring be_const_str_RDM6300_RX;
|
||||
extern const bcstring be_const_str_WEBCAM_DATA;
|
||||
extern const bcstring be_const_str_WEBCAM_HREF;
|
||||
extern const bcstring be_const_str_bytes;
|
||||
extern const bcstring be_const_str_DCKI;
|
||||
extern const bcstring be_const_str_memory;
|
||||
extern const bcstring be_const_str_CSE7766_TX;
|
||||
extern const bcstring be_const_str_response_append;
|
||||
extern const bcstring be_const_str_EPD_DATA;
|
||||
extern const bcstring be_const_str_SERIAL_7O2;
|
||||
extern const bcstring be_const_str_SSD1331_CS;
|
||||
extern const bcstring be_const_str_arg_name;
|
||||
extern const bcstring be_const_str_serial;
|
||||
extern const bcstring be_const_str_HALLEFFECT;
|
||||
extern const bcstring be_const_str_read8;
|
||||
extern const bcstring be_const_str_write;
|
||||
extern const bcstring be_const_str_OPEN_DRAIN;
|
||||
extern const bcstring be_const_str_WE517_RX;
|
||||
extern const bcstring be_const_str_has;
|
||||
extern const bcstring be_const_str_pin;
|
||||
extern const bcstring be_const_str_remove_cmd;
|
||||
extern const bcstring be_const_str_GET;
|
||||
extern const bcstring be_const_str_MCP39F5_RX;
|
||||
extern const bcstring be_const_str_SERIAL_5E2;
|
||||
extern const bcstring be_const_str_resolvecmnd;
|
||||
extern const bcstring be_const_str_set;
|
||||
extern const bcstring be_const_str_set_useragent;
|
||||
extern const bcstring be_const_str_except;
|
||||
extern const bcstring be_const_str_DHT22;
|
||||
extern const bcstring be_const_str_compile;
|
||||
extern const bcstring be_const_str_get_switch;
|
||||
extern const bcstring be_const_str_KEY1_INV;
|
||||
extern const bcstring be_const_str__timers;
|
||||
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_atan2;
|
||||
extern const bcstring be_const_str_FTC532;
|
||||
extern const bcstring be_const_str__buffer;
|
||||
extern const bcstring be_const_str_flush;
|
||||
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_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_yield;
|
||||
extern const bcstring be_const_str__ccmd;
|
||||
extern const bcstring be_const_str_arg_size;
|
||||
extern const bcstring be_const_str_imax;
|
||||
extern const bcstring be_const_str_elif;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,25 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(be_class_map_map) {
|
||||
{ be_const_key(tostring, -1), be_const_func(m_tostring) },
|
||||
{ be_const_key(size, -1), be_const_func(m_size) },
|
||||
{ be_const_key(item, 4), be_const_func(m_item) },
|
||||
{ be_const_key(setitem, 9), be_const_func(m_setitem) },
|
||||
{ be_const_key(has, -1), be_const_func(m_has) },
|
||||
{ be_const_key(keys, -1), be_const_func(m_keys) },
|
||||
{ be_const_key(init, -1), be_const_func(m_init) },
|
||||
{ be_const_key(remove, 5), be_const_func(m_remove) },
|
||||
{ be_const_key(reduce, -1), be_const_func(m_reduce) },
|
||||
{ be_const_key(iter, -1), be_const_func(m_iter) },
|
||||
{ be_const_key(setitem, -1), be_const_func(m_setitem) },
|
||||
{ be_const_key(remove, 8), be_const_func(m_remove) },
|
||||
{ be_const_key(insert, -1), be_const_func(m_insert) },
|
||||
{ be_const_key(dot_p, -1), be_const_var(0) },
|
||||
{ be_const_key(find, 1), be_const_func(m_find) },
|
||||
{ be_const_key(tostring, 4), be_const_func(m_tostring) },
|
||||
{ be_const_key(has, -1), be_const_func(m_contains) },
|
||||
{ be_const_key(init, -1), be_const_func(m_init) },
|
||||
{ be_const_key(contains, 9), be_const_func(m_contains) },
|
||||
{ be_const_key(dot_p, 13), be_const_var(0) },
|
||||
{ be_const_key(reduce, -1), be_const_func(m_reduce) },
|
||||
{ be_const_key(size, -1), be_const_func(m_size) },
|
||||
{ be_const_key(find, -1), be_const_func(m_find) },
|
||||
{ be_const_key(keys, -1), be_const_func(m_keys) },
|
||||
{ be_const_key(item, -1), be_const_func(m_item) },
|
||||
{ be_const_key(iter, -1), be_const_func(m_iter) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
be_class_map_map,
|
||||
13
|
||||
14
|
||||
);
|
||||
|
||||
BE_EXPORT_VARIABLE be_define_const_class(
|
||||
|
|
|
@ -1,84 +1,85 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(be_class_tasmota_map) {
|
||||
{ be_const_key(add_rule, 52), be_const_closure(add_rule_closure) },
|
||||
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
|
||||
{ be_const_key(web_send, 14), be_const_func(l_webSend) },
|
||||
{ be_const_key(settings, -1), be_const_var(0) },
|
||||
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
|
||||
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
|
||||
{ be_const_key(publish, 13), be_const_func(l_publish) },
|
||||
{ be_const_key(remove_timer, -1), be_const_closure(remove_timer_closure) },
|
||||
{ be_const_key(resp_cmnd, 55), be_const_func(l_respCmnd) },
|
||||
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
|
||||
{ be_const_key(time_reached, 38), be_const_func(l_timereached) },
|
||||
{ be_const_key(resp_cmnd_error, 3), be_const_func(l_respCmndError) },
|
||||
{ be_const_key(init, -1), be_const_closure(init_closure) },
|
||||
{ be_const_key(eth, 35), be_const_func(l_eth) },
|
||||
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
|
||||
{ be_const_key(_rules, 29), be_const_var(1) },
|
||||
{ be_const_key(millis, 41), be_const_func(l_millis) },
|
||||
{ be_const_key(get_option, -1), be_const_func(l_getoption) },
|
||||
{ be_const_key(exec_cmd, 49), be_const_closure(exec_cmd_closure) },
|
||||
{ be_const_key(_cb, -1), be_const_var(2) },
|
||||
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
|
||||
{ be_const_key(response_append, 58), be_const_func(l_respAppend) },
|
||||
{ be_const_key(add_driver, 44), be_const_closure(add_driver_closure) },
|
||||
{ be_const_key(find_key_i, 28), be_const_closure(find_key_i_closure) },
|
||||
{ be_const_key(remove_driver, 34), be_const_closure(remove_driver_closure) },
|
||||
{ be_const_key(get_power, -1), be_const_func(l_getpower) },
|
||||
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
|
||||
{ be_const_key(find_op, 21), be_const_closure(find_op_closure) },
|
||||
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
|
||||
{ be_const_key(cb_dispatch, 40), be_const_closure(cb_dispatch_closure) },
|
||||
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
|
||||
{ be_const_key(log, -1), be_const_func(l_logInfo) },
|
||||
{ be_const_key(cmd_res, 45), be_const_var(3) },
|
||||
{ be_const_key(wire1, 43), be_const_var(4) },
|
||||
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
|
||||
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
|
||||
{ be_const_key(set_light, -1), be_const_closure(set_light_closure) },
|
||||
{ be_const_key(global, -1), be_const_var(5) },
|
||||
{ be_const_key(publish_result, -1), be_const_func(l_publish_result) },
|
||||
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
|
||||
{ be_const_key(_settings_def, 46), be_const_comptr(&be_tasmota_settings_struct) },
|
||||
{ be_const_key(load, -1), be_const_closure(load_closure) },
|
||||
{ be_const_key(resp_cmnd_done, 23), be_const_func(l_respCmndDone) },
|
||||
{ be_const_key(event, 25), be_const_closure(event_closure) },
|
||||
{ be_const_key(run_deferred, 57), be_const_closure(run_deferred_closure) },
|
||||
{ be_const_key(_ccmd, -1), be_const_var(6) },
|
||||
{ be_const_key(exec_rules, -1), be_const_closure(exec_rules_closure) },
|
||||
{ be_const_key(exec_tele, -1), be_const_closure(exec_tele_closure) },
|
||||
{ be_const_key(remove_rule, 63), be_const_closure(remove_rule_closure) },
|
||||
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
|
||||
{ be_const_key(try_rule, -1), be_const_closure(try_rule_closure) },
|
||||
{ be_const_key(time_str, -1), be_const_closure(time_str_closure) },
|
||||
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
|
||||
{ be_const_key(gc, -1), be_const_closure(gc_closure) },
|
||||
{ be_const_key(yield, -1), be_const_func(l_yield) },
|
||||
{ be_const_key(web_send_decimal, -1), be_const_func(l_webSendDecimal) },
|
||||
{ be_const_key(_timers, 32), be_const_var(7) },
|
||||
{ be_const_key(get_switch, -1), be_const_func(l_getswitch) },
|
||||
{ be_const_key(remove_cmd, -1), be_const_closure(remove_cmd_closure) },
|
||||
{ be_const_key(memory, -1), be_const_func(l_memory) },
|
||||
{ be_const_key(save, 9), be_const_func(l_save) },
|
||||
{ be_const_key(_settings_ptr, 26), be_const_comptr(&Settings) },
|
||||
{ be_const_key(wire2, -1), be_const_var(8) },
|
||||
{ be_const_key(_cmd, -1), be_const_func(l_cmd) },
|
||||
{ be_const_key(set_timer, -1), be_const_closure(set_timer_closure) },
|
||||
{ be_const_key(_drivers, 1), be_const_var(9) },
|
||||
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
|
||||
{ be_const_key(rtc, -1), be_const_func(l_rtc) },
|
||||
{ be_const_key(set_timer, 42), be_const_closure(set_timer_closure) },
|
||||
{ be_const_key(_settings_ptr, -1), be_const_comptr(&Settings) },
|
||||
{ be_const_key(set_power, -1), be_const_func(l_setpower) },
|
||||
{ be_const_key(remove_driver, -1), be_const_closure(remove_driver_closure) },
|
||||
{ be_const_key(try_rule, -1), be_const_closure(try_rule_closure) },
|
||||
{ be_const_key(find_op, 58), be_const_closure(find_op_closure) },
|
||||
{ be_const_key(resp_cmnd_str, -1), be_const_func(l_respCmndStr) },
|
||||
{ be_const_key(find_key_i, -1), be_const_closure(find_key_i_closure) },
|
||||
{ be_const_key(_cb, 3), be_const_var(0) },
|
||||
{ be_const_key(web_send, -1), be_const_func(l_webSend) },
|
||||
{ be_const_key(log, 1), be_const_func(l_logInfo) },
|
||||
{ be_const_key(get_switch, 50), be_const_func(l_getswitch) },
|
||||
{ be_const_key(_ccmd, 19), be_const_var(1) },
|
||||
{ be_const_key(eth, -1), be_const_func(l_eth) },
|
||||
{ be_const_key(_settings_def, -1), be_const_comptr(&be_tasmota_settings_struct) },
|
||||
{ be_const_key(init, 39), be_const_closure(init_closure) },
|
||||
{ be_const_key(strftime, -1), be_const_func(l_strftime) },
|
||||
{ be_const_key(kv, -1), be_const_closure(kv_closure) },
|
||||
{ be_const_key(resp_cmnd_done, -1), be_const_func(l_respCmndDone) },
|
||||
{ be_const_key(cmd_res, 67), be_const_var(2) },
|
||||
{ be_const_key(wire1, 43), be_const_var(3) },
|
||||
{ be_const_key(get_light, -1), be_const_closure(get_light_closure) },
|
||||
{ be_const_key(resp_cmnd_error, 62), be_const_func(l_respCmndError) },
|
||||
{ be_const_key(publish_result, 9), be_const_func(l_publish_result) },
|
||||
{ be_const_key(gen_cb, -1), be_const_closure(gen_cb_closure) },
|
||||
{ be_const_key(yield, -1), be_const_func(l_yield) },
|
||||
{ be_const_key(add_rule, -1), be_const_closure(add_rule_closure) },
|
||||
{ be_const_key(settings, -1), be_const_var(4) },
|
||||
{ be_const_key(chars_in_string, -1), be_const_closure(chars_in_string_closure) },
|
||||
{ be_const_key(resp_cmnd, 31), be_const_func(l_respCmnd) },
|
||||
{ be_const_key(exec_tele, 68), be_const_closure(exec_tele_closure) },
|
||||
{ be_const_key(exec_rules, 51), be_const_closure(exec_rules_closure) },
|
||||
{ be_const_key(load, -1), be_const_closure(load_closure) },
|
||||
{ be_const_key(remove_rule, 22), be_const_closure(remove_rule_closure) },
|
||||
{ be_const_key(_rules, 18), be_const_var(5) },
|
||||
{ be_const_key(publish, -1), be_const_func(l_publish) },
|
||||
{ be_const_key(get_option, 15), be_const_func(l_getoption) },
|
||||
{ be_const_key(global, -1), be_const_var(6) },
|
||||
{ be_const_key(add_driver, 33), be_const_closure(add_driver_closure) },
|
||||
{ be_const_key(cmd, -1), be_const_closure(cmd_closure) },
|
||||
{ be_const_key(add_cmd, -1), be_const_closure(add_cmd_closure) },
|
||||
{ be_const_key(run_deferred, -1), be_const_closure(run_deferred_closure) },
|
||||
{ be_const_key(get_free_heap, -1), be_const_func(l_getFreeHeap) },
|
||||
{ be_const_key(wifi, -1), be_const_func(l_wifi) },
|
||||
{ be_const_key(time_dump, -1), be_const_func(l_time_dump) },
|
||||
{ be_const_key(rtc, 24), be_const_func(l_rtc) },
|
||||
{ be_const_key(cb_dispatch, -1), be_const_closure(cb_dispatch_closure) },
|
||||
{ be_const_key(_get_cb, -1), be_const_func(l_get_cb) },
|
||||
{ be_const_key(resp_cmnd_failed, 72), be_const_func(l_respCmndFailed) },
|
||||
{ be_const_key(wire_scan, -1), be_const_closure(wire_scan_closure) },
|
||||
{ be_const_key(exec_cmd, -1), be_const_closure(exec_cmd_closure) },
|
||||
{ be_const_key(_cmd, 46), be_const_func(l_cmd) },
|
||||
{ be_const_key(remove_timer, -1), be_const_closure(remove_timer_closure) },
|
||||
{ be_const_key(time_str, 34), be_const_closure(time_str_closure) },
|
||||
{ be_const_key(response_append, -1), be_const_func(l_respAppend) },
|
||||
{ be_const_key(web_send_decimal, 60), be_const_func(l_webSendDecimal) },
|
||||
{ be_const_key(_drivers, 71), be_const_var(7) },
|
||||
{ be_const_key(delay, -1), be_const_func(l_delay) },
|
||||
{ be_const_key(_global_def, 37), be_const_comptr(&be_tasmota_global_struct) },
|
||||
{ be_const_key(resp_cmnd_failed, 39), be_const_func(l_respCmndFailed) },
|
||||
{ be_const_key(time_reached, -1), be_const_func(l_timereached) },
|
||||
{ be_const_key(_global_def, -1), be_const_comptr(&be_tasmota_global_struct) },
|
||||
{ be_const_key(resolvecmnd, -1), be_const_func(l_resolveCmnd) },
|
||||
{ be_const_key(_timers, -1), be_const_var(8) },
|
||||
{ be_const_key(event, 7), be_const_closure(event_closure) },
|
||||
{ be_const_key(wire2, -1), be_const_var(9) },
|
||||
{ be_const_key(scale_uint, -1), be_const_func(l_scaleuint) },
|
||||
{ be_const_key(get_power, 73), be_const_func(l_getpower) },
|
||||
{ be_const_key(millis, -1), be_const_func(l_millis) },
|
||||
{ be_const_key(save, 44), be_const_func(l_save) },
|
||||
{ be_const_key(_global_addr, -1), be_const_comptr(&TasmotaGlobal) },
|
||||
{ be_const_key(memory, -1), be_const_func(l_memory) },
|
||||
{ be_const_key(i2c_enabled, -1), be_const_func(l_i2cenabled) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
be_class_tasmota_map,
|
||||
73
|
||||
74
|
||||
);
|
||||
|
||||
BE_EXPORT_VARIABLE be_define_const_class(
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(be_class_tasmota_wire_map) {
|
||||
{ be_const_key(_end_transmission, 10), be_const_func(b_wire_endtransmission) },
|
||||
{ be_const_key(bus, -1), be_const_var(0) },
|
||||
{ be_const_key(_read, 7), be_const_func(b_wire_read) },
|
||||
{ be_const_key(read, -1), be_const_func(b_wire_validread) },
|
||||
{ be_const_key(_request_from, -1), be_const_func(b_wire_requestfrom) },
|
||||
{ be_const_key(init, -1), be_const_func(b_wire_init) },
|
||||
{ be_const_key(write_bytes, -1), be_const_closure(write_bytes_closure) },
|
||||
{ be_const_key(_begin_transmission, -1), be_const_func(b_wire_begintransmission) },
|
||||
{ be_const_key(scan, -1), be_const_func(b_wire_scan) },
|
||||
{ be_const_key(_write, 1), be_const_func(b_wire_write) },
|
||||
{ be_const_key(write, -1), be_const_func(b_wire_validwrite) },
|
||||
{ be_const_key(_available, -1), be_const_func(b_wire_available) },
|
||||
{ be_const_key(detect, -1), be_const_func(b_wire_detect) },
|
||||
{ be_const_key(bus, -1), be_const_var(0) },
|
||||
{ be_const_key(read_bytes, -1), be_const_closure(read_bytes_closure) },
|
||||
{ be_const_key(_request_from, -1), be_const_func(b_wire_requestfrom) },
|
||||
{ be_const_key(detect, -1), be_const_func(b_wire_detect) },
|
||||
{ be_const_key(scan, 2), be_const_func(b_wire_scan) },
|
||||
{ be_const_key(enabled, -1), be_const_func(b_wire_enabled) },
|
||||
{ be_const_key(_write, 13), be_const_func(b_wire_write) },
|
||||
{ be_const_key(read, -1), be_const_func(b_wire_validread) },
|
||||
{ be_const_key(_end_transmission, 8), be_const_func(b_wire_endtransmission) },
|
||||
{ be_const_key(_begin_transmission, -1), be_const_func(b_wire_begintransmission) },
|
||||
{ be_const_key(write_bytes, 7), be_const_closure(write_bytes_closure) },
|
||||
{ be_const_key(_read, -1), be_const_func(b_wire_read) },
|
||||
{ be_const_key(write, -1), be_const_func(b_wire_validwrite) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
be_class_tasmota_wire_map,
|
||||
14
|
||||
15
|
||||
);
|
||||
|
||||
BE_EXPORT_VARIABLE be_define_const_class(
|
||||
|
|
|
@ -1,281 +1,18 @@
|
|||
#include "be_constobj.h"
|
||||
|
||||
static be_define_const_map_slots(m_libgpio_map) {
|
||||
{ be_const_key(SENSOR_END, 167), be_const_int(250) },
|
||||
{ be_const_key(DHT11_OUT, -1), be_const_int(40) },
|
||||
{ be_const_key(HM10_TX, 199), be_const_int(139) },
|
||||
{ be_const_key(DHT22, 6), be_const_int(38) },
|
||||
{ be_const_key(ARIRFRCV, 226), be_const_int(98) },
|
||||
{ be_const_key(WEBCAM_HREF, 183), be_const_int(161) },
|
||||
{ be_const_key(SM16716_CLK, 168), be_const_int(91) },
|
||||
{ be_const_key(ZIGBEE_RST, 264), be_const_int(181) },
|
||||
{ be_const_key(KEY1_INV_NP, 223), be_const_int(4) },
|
||||
{ be_const_key(KEY1_TC, 81), be_const_int(169) },
|
||||
{ be_const_key(PROJECTOR_CTRL_RX, -1), be_const_int(225) },
|
||||
{ be_const_key(TFMINIPLUS_RX, -1), be_const_int(235) },
|
||||
{ be_const_key(SSD1331_CS, -1), be_const_int(208) },
|
||||
{ be_const_key(MP3_DFR562, 162), be_const_int(67) },
|
||||
{ be_const_key(WEBCAM_VSYNC, 140), be_const_int(160) },
|
||||
{ be_const_key(CNTR1, 246), be_const_int(11) },
|
||||
{ be_const_key(ROT1B_NP, -1), be_const_int(212) },
|
||||
{ be_const_key(ELECTRIQ_MOODL_TX, -1), be_const_int(145) },
|
||||
{ be_const_key(TASMOTACLIENT_RXD, -1), be_const_int(131) },
|
||||
{ be_const_key(NONE, -1), be_const_int(0) },
|
||||
{ be_const_key(RF_SENSOR, -1), be_const_int(75) },
|
||||
{ be_const_key(MAX31855CS, -1), be_const_int(78) },
|
||||
{ be_const_key(SPI_MOSI, 233), be_const_int(22) },
|
||||
{ be_const_key(I2S_OUT_DATA, -1), be_const_int(243) },
|
||||
{ be_const_key(HPMA_TX, 108), be_const_int(135) },
|
||||
{ be_const_key(TASMOTACLIENT_RST_INV, 156), be_const_int(133) },
|
||||
{ be_const_key(IEM3000_RX, -1), be_const_int(180) },
|
||||
{ be_const_key(BS814_DAT, 196), be_const_int(215) },
|
||||
{ be_const_key(OUTPUT_LO, -1), be_const_int(121) },
|
||||
{ be_const_key(SSD1351_CS, 236), be_const_int(204) },
|
||||
{ be_const_key(TM1637DIO, -1), be_const_int(223) },
|
||||
{ be_const_key(INTERRUPT, 240), be_const_int(249) },
|
||||
{ be_const_key(PN532_RXD, 195), be_const_int(90) },
|
||||
{ be_const_key(SM2135_CLK, -1), be_const_int(126) },
|
||||
{ be_const_key(DI, -1), be_const_int(94) },
|
||||
{ be_const_key(TM1638CLK, 87), be_const_int(64) },
|
||||
{ be_const_key(DSB_OUT, 65), be_const_int(42) },
|
||||
{ be_const_key(I2S_OUT_SLCT, -1), be_const_int(245) },
|
||||
{ be_const_key(RDM6300_RX, -1), be_const_int(113) },
|
||||
{ be_const_key(TUYA_RX, 59), be_const_int(72) },
|
||||
{ be_const_key(WIEGAND_D1, -1), be_const_int(217) },
|
||||
{ be_const_key(EPAPER42_CS, 133), be_const_int(203) },
|
||||
{ be_const_key(INPUT_PULLDOWN, -1), be_const_int(9) },
|
||||
{ be_const_key(A4988_DIR, 75), be_const_int(116) },
|
||||
{ be_const_key(NEOPOOL_RX, -1), be_const_int(219) },
|
||||
{ be_const_key(PZEM016_RX, 36), be_const_int(48) },
|
||||
{ be_const_key(digital_write, 225), be_const_func(gp_digital_write) },
|
||||
{ be_const_key(NRG_CF1, -1), be_const_int(83) },
|
||||
{ be_const_key(FTC532, -1), be_const_int(195) },
|
||||
{ be_const_key(DDS2382_TX, -1), be_const_int(122) },
|
||||
{ be_const_key(WEBCAM_RESET, 230), be_const_int(155) },
|
||||
{ be_const_key(TELEINFO_ENABLE, 42), be_const_int(177) },
|
||||
{ be_const_key(IRRECV, 89), be_const_int(34) },
|
||||
{ be_const_key(SDM120_RX, 148), be_const_int(61) },
|
||||
{ be_const_key(PMS5003_TX, -1), be_const_int(52) },
|
||||
{ be_const_key(CC1101_GDO2, -1), be_const_int(143) },
|
||||
{ be_const_key(HPMA_RX, 238), be_const_int(134) },
|
||||
{ be_const_key(MAX7219CS, -1), be_const_int(233) },
|
||||
{ be_const_key(CSE7766_RX, 46), be_const_int(97) },
|
||||
{ be_const_key(RISING, 103), be_const_int(1) },
|
||||
{ be_const_key(SPI_MISO, -1), be_const_int(21) },
|
||||
{ be_const_key(RFRECV, -1), be_const_int(36) },
|
||||
{ be_const_key(SHELLY_DIMMER_RST_INV, 228), be_const_int(190) },
|
||||
{ be_const_key(TASMOTACLIENT_RST, -1), be_const_int(132) },
|
||||
{ be_const_key(PULLDOWN, 189), be_const_int(8) },
|
||||
{ be_const_key(SSPI_CS, -1), be_const_int(29) },
|
||||
{ be_const_key(TUYA_TX, -1), be_const_int(71) },
|
||||
{ be_const_key(LED1_INV, 0), be_const_int(10) },
|
||||
{ be_const_key(digital_read, -1), be_const_func(gp_digital_read) },
|
||||
{ be_const_key(CSE7766_TX, 215), be_const_int(96) },
|
||||
{ be_const_key(DCKI, -1), be_const_int(95) },
|
||||
{ be_const_key(ILI9341_CS, -1), be_const_int(199) },
|
||||
{ be_const_key(pin_used, -1), be_const_func(gp_pin_used) },
|
||||
{ be_const_key(ADC_RANGE, 237), be_const_int(152) },
|
||||
{ be_const_key(PZEM0XX_TX, 31), be_const_int(46) },
|
||||
{ be_const_key(ROT1A_NP, -1), be_const_int(211) },
|
||||
{ be_const_key(ROT1A, 202), be_const_int(102) },
|
||||
{ be_const_key(HALLEFFECT, -1), be_const_int(237) },
|
||||
{ be_const_key(OPEN_DRAIN, -1), be_const_int(16) },
|
||||
{ be_const_key(TM1638DIO, 220), be_const_int(65) },
|
||||
{ be_const_key(IEM3000_TX, -1), be_const_int(179) },
|
||||
{ be_const_key(MAX7219DIN, 118), be_const_int(232) },
|
||||
{ be_const_key(A4988_ENA, -1), be_const_int(118) },
|
||||
{ be_const_key(MHZ_TXD, 23), be_const_int(44) },
|
||||
{ be_const_key(WEBCAM_PWDN, -1), be_const_int(154) },
|
||||
{ be_const_key(SDS0X1_RX, -1), be_const_int(55) },
|
||||
{ be_const_key(SPI_CS, -1), be_const_int(24) },
|
||||
{ be_const_key(BS814_CLK, -1), be_const_int(214) },
|
||||
{ be_const_key(CSE7761_RX, -1), be_const_int(229) },
|
||||
{ be_const_key(ADC_JOY, -1), be_const_int(104) },
|
||||
{ be_const_key(OPTION_A, 171), be_const_int(194) },
|
||||
{ be_const_key(RFSEND, -1), be_const_int(35) },
|
||||
{ be_const_key(HRE_DATA, 135), be_const_int(107) },
|
||||
{ be_const_key(BOILER_OT_TX, 221), be_const_int(167) },
|
||||
{ be_const_key(ETH_PHY_MDC, 30), be_const_int(174) },
|
||||
{ be_const_key(LED1, 11), be_const_int(9) },
|
||||
{ be_const_key(DDSU666_RX, 64), be_const_int(125) },
|
||||
{ be_const_key(MAX31855CLK, -1), be_const_int(79) },
|
||||
{ be_const_key(RA8876_CS, -1), be_const_int(205) },
|
||||
{ be_const_key(AZ_TXD, -1), be_const_int(76) },
|
||||
{ be_const_key(SBR_TX, -1), be_const_int(56) },
|
||||
{ be_const_key(REL1_INV, 212), be_const_int(8) },
|
||||
{ be_const_key(CC1101_GDO0, -1), be_const_int(142) },
|
||||
{ be_const_key(AZ_RXD, 149), be_const_int(77) },
|
||||
{ be_const_key(EPAPER29_CS, 229), be_const_int(202) },
|
||||
{ be_const_key(P9813_DAT, 177), be_const_int(193) },
|
||||
{ be_const_key(PWM1, -1), be_const_int(13) },
|
||||
{ be_const_key(INPUT, -1), be_const_int(239) },
|
||||
{ be_const_key(PN532_TXD, -1), be_const_int(89) },
|
||||
{ be_const_key(I2S_IN_DATA, -1), be_const_int(246) },
|
||||
{ be_const_key(SOLAXX1_TX, -1), be_const_int(109) },
|
||||
{ be_const_key(LEDLNK_INV, 208), be_const_int(18) },
|
||||
{ be_const_key(ADC_LIGHT, -1), be_const_int(149) },
|
||||
{ be_const_key(SDS0X1_TX, 92), be_const_int(54) },
|
||||
{ be_const_key(ADC_PH, 1), be_const_int(213) },
|
||||
{ be_const_key(WEBCAM_XCLK, 267), be_const_int(156) },
|
||||
{ be_const_key(ADC_BUTTON_INV, -1), be_const_int(151) },
|
||||
{ be_const_key(IBEACON_TX, 13), be_const_int(114) },
|
||||
{ be_const_key(SWT1_NP, -1), be_const_int(6) },
|
||||
{ be_const_key(SDCARD_CS, 62), be_const_int(210) },
|
||||
{ be_const_key(KEY1_PD, -1), be_const_int(240) },
|
||||
{ be_const_key(BUZZER, 69), be_const_int(15) },
|
||||
{ be_const_key(SM2135_DAT, -1), be_const_int(127) },
|
||||
{ be_const_key(CNTR1_NP, -1), be_const_int(12) },
|
||||
{ be_const_key(NRF24_CS, 49), be_const_int(197) },
|
||||
{ be_const_key(DYP_RX, -1), be_const_int(182) },
|
||||
{ be_const_key(IRSEND, -1), be_const_int(33) },
|
||||
{ be_const_key(WEBCAM_SIOC, 258), be_const_int(158) },
|
||||
{ be_const_key(MAX7219CLK, 56), be_const_int(231) },
|
||||
{ be_const_key(WIEGAND_D0, 165), be_const_int(216) },
|
||||
{ be_const_key(ZIGBEE_RX, -1), be_const_int(112) },
|
||||
{ be_const_key(CHANGE, 33), be_const_int(4) },
|
||||
{ be_const_key(AS608_RX, -1), be_const_int(188) },
|
||||
{ be_const_key(TCP_RX, -1), be_const_int(172) },
|
||||
{ be_const_key(PZEM017_RX, -1), be_const_int(49) },
|
||||
{ be_const_key(NRF24_DC, -1), be_const_int(198) },
|
||||
{ be_const_key(BACKLIGHT, 35), be_const_int(31) },
|
||||
{ be_const_key(SSPI_MOSI, -1), be_const_int(27) },
|
||||
{ be_const_key(MAX31855DO, -1), be_const_int(80) },
|
||||
{ be_const_key(LE01MR_RX, -1), be_const_int(140) },
|
||||
{ be_const_key(I2S_IN_SLCT, -1), be_const_int(248) },
|
||||
{ be_const_key(ETH_PHY_POWER, -1), be_const_int(173) },
|
||||
{ be_const_key(ADE7953_IRQ, 29), be_const_int(108) },
|
||||
{ be_const_key(SSPI_MISO, -1), be_const_int(26) },
|
||||
{ be_const_key(WINDMETER_SPEED, 79), be_const_int(168) },
|
||||
{ be_const_key(IBEACON_RX, -1), be_const_int(115) },
|
||||
{ be_const_key(TX2X_TXD_BLACK, 8), be_const_int(70) },
|
||||
{ be_const_key(TM1637CLK, 102), be_const_int(222) },
|
||||
{ be_const_key(KEY1_INV, -1), be_const_int(3) },
|
||||
{ be_const_key(BOILER_OT_RX, -1), be_const_int(166) },
|
||||
{ be_const_key(DDSU666_TX, -1), be_const_int(124) },
|
||||
{ be_const_key(WEBCAM_DATA, -1), be_const_int(159) },
|
||||
{ be_const_key(DDS2382_RX, -1), be_const_int(123) },
|
||||
{ be_const_key(EXS_ENABLE, 53), be_const_int(129) },
|
||||
{ be_const_key(AS608_TX, -1), be_const_int(187) },
|
||||
{ be_const_key(OLED_RESET, 100), be_const_int(32) },
|
||||
{ be_const_key(AS3935, -1), be_const_int(146) },
|
||||
{ be_const_key(LMT01, -1), be_const_int(178) },
|
||||
{ be_const_key(ADC_INPUT, -1), be_const_int(147) },
|
||||
{ be_const_key(SDM72_TX, 235), be_const_int(220) },
|
||||
{ be_const_key(ADC_TEMP, -1), be_const_int(148) },
|
||||
{ be_const_key(LEDLNK, 7), be_const_int(17) },
|
||||
{ be_const_key(DAC, -1), be_const_int(-1) },
|
||||
{ be_const_key(SAIR_RX, -1), be_const_int(51) },
|
||||
{ be_const_key(SOLAXX1_RX, -1), be_const_int(110) },
|
||||
{ be_const_key(WEBCAM_PCLK, -1), be_const_int(162) },
|
||||
{ be_const_key(KEY1_NP, 14), be_const_int(2) },
|
||||
{ be_const_key(TFMINIPLUS_TX, -1), be_const_int(234) },
|
||||
{ be_const_key(SR04_TRIG, -1), be_const_int(58) },
|
||||
{ be_const_key(A4988_STP, 182), be_const_int(117) },
|
||||
{ be_const_key(TASMOTACLIENT_TXD, -1), be_const_int(130) },
|
||||
{ be_const_key(HX711_DAT, 207), be_const_int(69) },
|
||||
{ be_const_key(HM10_RX, -1), be_const_int(138) },
|
||||
{ be_const_key(ARIRFSEL, 249), be_const_int(99) },
|
||||
{ be_const_key(MIEL_HVAC_TX, 141), be_const_int(183) },
|
||||
{ be_const_key(NRG_SEL, -1), be_const_int(81) },
|
||||
{ be_const_key(DEEPSLEEP, 132), be_const_int(128) },
|
||||
{ be_const_key(CSE7761_TX, -1), be_const_int(228) },
|
||||
{ be_const_key(WS2812, 18), be_const_int(43) },
|
||||
{ be_const_key(WE517_RX, 188), be_const_int(186) },
|
||||
{ be_const_key(PROJECTOR_CTRL_TX, -1), be_const_int(224) },
|
||||
{ be_const_key(SI7021, 242), be_const_int(39) },
|
||||
{ be_const_key(SM16716_SEL, -1), be_const_int(93) },
|
||||
{ be_const_key(KEY1_INV_PD, -1), be_const_int(241) },
|
||||
{ be_const_key(SPI_CLK, -1), be_const_int(23) },
|
||||
{ be_const_key(ZEROCROSS, -1), be_const_int(236) },
|
||||
{ be_const_key(OUTPUT_OPEN_DRAIN, -1), be_const_int(18) },
|
||||
{ be_const_key(REL1, -1), be_const_int(7) },
|
||||
{ be_const_key(NRG_SEL_INV, -1), be_const_int(82) },
|
||||
{ be_const_key(RC522_CS, -1), be_const_int(196) },
|
||||
{ be_const_key(ADC_BUTTON, -1), be_const_int(150) },
|
||||
{ be_const_key(SAIR_TX, -1), be_const_int(50) },
|
||||
{ be_const_key(OUTPUT_HI, 105), be_const_int(120) },
|
||||
{ be_const_key(LE01MR_TX, -1), be_const_int(141) },
|
||||
{ be_const_key(ILI9341_DC, 22), be_const_int(200) },
|
||||
{ be_const_key(SR04_ECHO, 263), be_const_int(59) },
|
||||
{ be_const_key(HJL_CF, 241), be_const_int(85) },
|
||||
{ be_const_key(I2S_OUT_CLK, -1), be_const_int(244) },
|
||||
{ be_const_key(MIEL_HVAC_RX, 12), be_const_int(184) },
|
||||
{ be_const_key(GPS_RX, 247), be_const_int(136) },
|
||||
{ be_const_key(pin_mode, -1), be_const_func(gp_pin_mode) },
|
||||
{ be_const_key(P9813_CLK, -1), be_const_int(192) },
|
||||
{ be_const_key(ZIGBEE_TX, 262), be_const_int(111) },
|
||||
{ be_const_key(dac_voltage, -1), be_const_func(gp_dac_voltage) },
|
||||
{ be_const_key(INPUT_PULLUP, -1), be_const_int(5) },
|
||||
{ be_const_key(SDM120_TX, -1), be_const_int(60) },
|
||||
{ be_const_key(HRXL_RX, -1), be_const_int(144) },
|
||||
{ be_const_key(pin, -1), be_const_func(gp_pin) },
|
||||
{ be_const_key(HRE_CLOCK, -1), be_const_int(106) },
|
||||
{ be_const_key(DHT11, -1), be_const_int(37) },
|
||||
{ be_const_key(PWM1_INV, 109), be_const_int(14) },
|
||||
{ be_const_key(A4988_MS1, 94), be_const_int(119) },
|
||||
{ be_const_key(SBR_RX, -1), be_const_int(57) },
|
||||
{ be_const_key(SWT1_PD, -1), be_const_int(242) },
|
||||
{ be_const_key(FALLING, 5), be_const_int(2) },
|
||||
{ be_const_key(PULLUP, -1), be_const_int(4) },
|
||||
{ be_const_key(TELEINFO_RX, -1), be_const_int(176) },
|
||||
{ be_const_key(MCP39F5_RX, -1), be_const_int(87) },
|
||||
{ be_const_key(ETH_PHY_MDIO, -1), be_const_int(175) },
|
||||
{ be_const_key(BL0940_RX, -1), be_const_int(170) },
|
||||
{ be_const_key(NEOPOOL_TX, 248), be_const_int(218) },
|
||||
{ be_const_key(VL53L0X_XSHUT1, -1), be_const_int(230) },
|
||||
{ be_const_key(MCP39F5_RST, 203), be_const_int(88) },
|
||||
{ be_const_key(HLW_CF, 231), be_const_int(84) },
|
||||
{ be_const_key(WEBCAM_PSRCS, -1), be_const_int(165) },
|
||||
{ be_const_key(SSD1331_DC, -1), be_const_int(209) },
|
||||
{ be_const_key(ST7789_CS, -1), be_const_int(206) },
|
||||
{ be_const_key(SDM72_RX, 66), be_const_int(221) },
|
||||
{ be_const_key(SSD1351_DC, -1), be_const_int(226) },
|
||||
{ be_const_key(SSPI_SCLK, -1), be_const_int(28) },
|
||||
{ be_const_key(I2S_IN_CLK, -1), be_const_int(247) },
|
||||
{ be_const_key(SM16716_DAT, -1), be_const_int(92) },
|
||||
{ be_const_key(I2C_SDA, -1), be_const_int(20) },
|
||||
{ be_const_key(PZEM004_RX, -1), be_const_int(47) },
|
||||
{ be_const_key(TCP_TX, -1), be_const_int(171) },
|
||||
{ be_const_key(SDM630_RX, -1), be_const_int(63) },
|
||||
{ be_const_key(SWT1, -1), be_const_int(5) },
|
||||
{ be_const_key(ROT1B, -1), be_const_int(103) },
|
||||
{ be_const_key(I2C_SCL, -1), be_const_int(19) },
|
||||
{ be_const_key(RXD, -1), be_const_int(101) },
|
||||
{ be_const_key(DSB, 261), be_const_int(41) },
|
||||
{ be_const_key(MCP39F5_TX, 252), be_const_int(86) },
|
||||
{ be_const_key(HIGH, 266), be_const_int(1) },
|
||||
{ be_const_key(RC522_RST, -1), be_const_int(191) },
|
||||
{ be_const_key(SSPI_DC, -1), be_const_int(30) },
|
||||
{ be_const_key(LOW, -1), be_const_int(0) },
|
||||
{ be_const_key(BUZZER_INV, -1), be_const_int(16) },
|
||||
{ be_const_key(XPT2046_CS, -1), be_const_int(227) },
|
||||
{ be_const_key(WEBCAM_HSD, -1), be_const_int(164) },
|
||||
{ be_const_key(TM1638STB, -1), be_const_int(66) },
|
||||
{ be_const_key(PMS5003_RX, -1), be_const_int(53) },
|
||||
{ be_const_key(SPI_DC, -1), be_const_int(25) },
|
||||
{ be_const_key(MHZ_RXD, -1), be_const_int(45) },
|
||||
{ be_const_key(ILI9488_CS, 119), be_const_int(201) },
|
||||
{ be_const_key(HX711_SCK, 57), be_const_int(68) },
|
||||
{ be_const_key(SDM630_TX, 227), be_const_int(62) },
|
||||
{ be_const_key(SHELLY_DIMMER_BOOT0, -1), be_const_int(189) },
|
||||
{ be_const_key(EPD_DATA, -1), be_const_int(238) },
|
||||
{ be_const_key(WE517_TX, -1), be_const_int(185) },
|
||||
{ be_const_key(TXD, 234), be_const_int(100) },
|
||||
{ be_const_key(OUTPUT, -1), be_const_int(2) },
|
||||
{ be_const_key(SSPI_MAX31865_CS1, -1), be_const_int(105) },
|
||||
{ be_const_key(WEBCAM_PSCLK, -1), be_const_int(163) },
|
||||
{ be_const_key(WEBCAM_SIOD, -1), be_const_int(157) },
|
||||
{ be_const_key(MGC3130_RESET, -1), be_const_int(74) },
|
||||
{ be_const_key(KEY1, -1), be_const_int(1) },
|
||||
{ be_const_key(MGC3130_XFER, -1), be_const_int(73) },
|
||||
{ be_const_key(ST7789_DC, 245), be_const_int(207) },
|
||||
{ be_const_key(GPS_TX, 123), be_const_int(137) },
|
||||
{ be_const_key(ADC_CT_POWER, 58), be_const_int(153) },
|
||||
{ be_const_key(member, -1), be_const_func(gp_member) },
|
||||
{ be_const_key(digital_write, -1), be_const_func(gp_digital_write) },
|
||||
{ be_const_key(pin_mode, 1), be_const_func(gp_pin_mode) },
|
||||
{ be_const_key(pin_used, -1), be_const_func(gp_pin_used) },
|
||||
{ be_const_key(dac_voltage, -1), be_const_func(gp_dac_voltage) },
|
||||
{ be_const_key(digital_read, 3), be_const_func(gp_digital_read) },
|
||||
};
|
||||
|
||||
static be_define_const_map(
|
||||
m_libgpio_map,
|
||||
270
|
||||
7
|
||||
);
|
||||
|
||||
static be_define_const_module(
|
||||
|
|
|
@ -1125,15 +1125,20 @@ static int m_buffer(bvm *vm)
|
|||
/*
|
||||
* External API
|
||||
*/
|
||||
BERRY_API void be_pushbytes(bvm *vm, const void * bytes, size_t len)
|
||||
BERRY_API void * be_pushbytes(bvm *vm, const void * bytes, size_t len)
|
||||
{
|
||||
bytes_new_object(vm, len);
|
||||
buf_impl attr = m_read_attributes(vm, -1);
|
||||
if ((int32_t)len > attr.size) { len = attr.size; } /* double check if the buffer allocated was smaller */
|
||||
memmove((void*)attr.bufptr, bytes, len);
|
||||
if (bytes) { /* if bytes is null, buffer is filled with zeros */
|
||||
memmove((void*)attr.bufptr, bytes, len);
|
||||
} else {
|
||||
memset((void*)attr.bufptr, 0, len);
|
||||
}
|
||||
attr.len = len;
|
||||
m_write_attributes(vm, -1, &attr); /* update instance */
|
||||
/* bytes instance is on top of stack */
|
||||
return (void*)attr.bufptr;
|
||||
}
|
||||
|
||||
BERRY_API const void *be_tobytes(bvm *vm, int rel_index, size_t *len)
|
||||
|
|
|
@ -15,6 +15,7 @@ extern "C" {
|
|||
#include "be_object.h"
|
||||
#include "be_gc.h"
|
||||
#include "be_map.h"
|
||||
#include "be_list.h"
|
||||
#include "be_class.h"
|
||||
#include "be_string.h"
|
||||
#include "be_module.h"
|
||||
|
@ -92,6 +93,21 @@ extern "C" {
|
|||
.type = BE_MODULE \
|
||||
}
|
||||
|
||||
#define be_const_simple_instance(_instance) { \
|
||||
.v.c = (_instance), \
|
||||
.type = BE_INSTANCE \
|
||||
}
|
||||
|
||||
#define be_const_map(_map) { \
|
||||
.v.c = &(_map), \
|
||||
.type = BE_MAP \
|
||||
}
|
||||
|
||||
#define be_const_list(_list) { \
|
||||
.v.c = &(_list), \
|
||||
.type = BE_LIST \
|
||||
}
|
||||
|
||||
#define be_define_const_map_slots(_name) \
|
||||
const bmapnode _name##_slots[] =
|
||||
|
||||
|
@ -164,6 +180,26 @@ const bntvmodule be_native_module(_module) = { \
|
|||
.info.name = _module_name \
|
||||
}
|
||||
|
||||
/* only instances with no super and no sub instance are supported */
|
||||
/* primarily for `list` and `map`*/
|
||||
#define be_nested_simple_instance(_class_ptr, _members) \
|
||||
& (const binstance) { \
|
||||
be_const_header(BE_INSTANCE), \
|
||||
.super = NULL, \
|
||||
.sub = NULL, \
|
||||
._class = (bclass*) _class_ptr, \
|
||||
.members = _members \
|
||||
}
|
||||
|
||||
// #define be_local_instance(_name, _class_ptr, _members) \
|
||||
// static const binstance i_##_name = { \
|
||||
// be_const_header(BE_INSTANCE), \
|
||||
// .super = NULL, \
|
||||
// .sub = NULL, \
|
||||
// ._class = (bclass*) _class_ptr, \
|
||||
// .members = _members \
|
||||
// }
|
||||
|
||||
#define be_nested_map(_size, _slots) \
|
||||
& (const bmap) { \
|
||||
be_const_header(BE_MAP), \
|
||||
|
@ -173,6 +209,14 @@ const bntvmodule be_native_module(_module) = { \
|
|||
.count = _size \
|
||||
}
|
||||
|
||||
#define be_nested_list(_size, _items) \
|
||||
& (const blist) { \
|
||||
be_const_header(BE_LIST), \
|
||||
.count = _size, \
|
||||
.capacity = _size, \
|
||||
.data = _items \
|
||||
}
|
||||
|
||||
#define be_nested_string(_str, _hash, _len) \
|
||||
{ \
|
||||
{ .s=(be_nested_const_str(_str, _hash, _len )) \
|
||||
|
@ -284,16 +328,19 @@ const bvector _name = { \
|
|||
(void*)_data, (void*)(_data + (_size) - 1) \
|
||||
}
|
||||
|
||||
#define be_define_const_native_module(_module, _init) \
|
||||
#define be_define_const_native_module(_module) \
|
||||
const bntvmodule be_native_module(_module) = { \
|
||||
#_module, \
|
||||
0, 0, \
|
||||
(bmodule*)&(m_lib##_module), \
|
||||
_init \
|
||||
(bmodule*)&(m_lib##_module) \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* provide pointers to map and list classes for solidified code */
|
||||
extern const bclass be_class_list;
|
||||
extern const bclass be_class_map;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -69,7 +69,6 @@ static int m_findmember(bvm *vm)
|
|||
if (top >= 2 && (be_isinstance(vm, 1) || be_ismodule(vm, 1) || be_isclass(vm, 1)) && be_isstring(vm, 2)) {
|
||||
int ret = be_execprotected(vm, &m_findmember_protected, (void*) be_tostring(vm, 2));
|
||||
if (ret == BE_OK) {
|
||||
// be_getmember(vm, 1, be_tostring(vm, 2));
|
||||
be_return(vm);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -121,7 +121,7 @@ static int m_find(bvm *vm)
|
|||
be_return(vm);
|
||||
}
|
||||
|
||||
static int m_has(bvm *vm)
|
||||
static int m_contains(bvm *vm)
|
||||
{
|
||||
be_getmember(vm, 1, ".p");
|
||||
map_check_data(vm, 2);
|
||||
|
@ -279,6 +279,8 @@ void be_load_maplib(bvm *vm)
|
|||
{ "item", m_item },
|
||||
{ "setitem", m_setitem },
|
||||
{ "find", m_find },
|
||||
{ "contains", m_contains },
|
||||
{ "has", m_contains }, /* deprecated */
|
||||
{ "size", m_size },
|
||||
{ "insert", m_insert },
|
||||
{ "iter", m_iter },
|
||||
|
@ -298,7 +300,8 @@ class be_class_map (scope: global, name: map) {
|
|||
item, func(m_item)
|
||||
setitem, func(m_setitem)
|
||||
find, func(m_find)
|
||||
has, func(m_has)
|
||||
contains, func(m_contains)
|
||||
has, func(m_contains)
|
||||
size, func(m_size)
|
||||
insert, func(m_insert)
|
||||
iter, func(m_iter)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "be_string.h"
|
||||
#include "be_vector.h"
|
||||
#include "be_class.h"
|
||||
#include "be_list.h"
|
||||
#include "be_debug.h"
|
||||
#include "be_map.h"
|
||||
#include "be_vm.h"
|
||||
|
@ -17,6 +18,9 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
extern const bclass be_class_list;
|
||||
extern const bclass be_class_map;
|
||||
|
||||
#if BE_USE_SOLIDIFY_MODULE
|
||||
#include <inttypes.h>
|
||||
|
||||
|
@ -33,6 +37,50 @@
|
|||
be_writestring(__lbuf); \
|
||||
} while (0)
|
||||
|
||||
static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, const char *key);
|
||||
|
||||
static void m_solidify_map(bvm *vm, bmap * map, const char *class_name)
|
||||
{
|
||||
logfmt(" be_nested_map(%i,\n", map->count);
|
||||
|
||||
logfmt(" ( (struct bmapnode*) &(const bmapnode[]) {\n");
|
||||
for (int i = 0; i < map->size; i++) {
|
||||
bmapnode * node = &map->slots[i];
|
||||
if (node->key.type == BE_NIL) {
|
||||
continue; /* key not used */
|
||||
}
|
||||
if (node->key.type != BE_STRING) {
|
||||
char error[64];
|
||||
snprintf(error, sizeof(error), "Unsupported type in key: %i", node->key.type);
|
||||
be_raise(vm, "internal_error", error);
|
||||
}
|
||||
int key_next = node->key.next;
|
||||
size_t len = strlen(str(node->key.v.s));
|
||||
if (0xFFFFFF == key_next) {
|
||||
key_next = -1; /* more readable */
|
||||
}
|
||||
logfmt(" { be_nested_key(\"%s\", %i, %zu, %i), ", str(node->key.v.s), be_strhash(node->key.v.s), len >= 255 ? 255 : len, key_next);
|
||||
m_solidify_bvalue(vm, &node->value, class_name, str(node->key.v.s));
|
||||
|
||||
logfmt(" },\n");
|
||||
}
|
||||
logfmt(" }))"); // TODO need terminal comma?
|
||||
|
||||
}
|
||||
|
||||
static void m_solidify_list(bvm *vm, blist * list, const char *class_name)
|
||||
{
|
||||
logfmt(" be_nested_list(%i,\n", list->count);
|
||||
|
||||
logfmt(" ( (struct bvalue*) &(const bvalue[]) {\n");
|
||||
for (int i = 0; i < list->count; i++) {
|
||||
logfmt(" ");
|
||||
m_solidify_bvalue(vm, &list->data[i], class_name, "");
|
||||
logfmt(",\n");
|
||||
}
|
||||
logfmt(" }))"); // TODO need terminal comma?
|
||||
}
|
||||
|
||||
// pass key name in case of class, or NULL if none
|
||||
static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, const char *key)
|
||||
{
|
||||
|
@ -88,6 +136,35 @@ static void m_solidify_bvalue(bvm *vm, bvalue * value, const char *classname, co
|
|||
case BE_NTVFUNC:
|
||||
logfmt("be_const_func(be_ntv_%s_%s)", classname ? classname : "unknown", key ? key : "unknown");
|
||||
break;
|
||||
case BE_INSTANCE:
|
||||
{
|
||||
binstance * ins = (binstance *) var_toobj(value);
|
||||
bclass * cl = ins->_class;
|
||||
if (ins->super || ins->sub) {
|
||||
be_raise(vm, "internal_error", "instance must not have a super/sub class");
|
||||
} else if (cl->nvar != 1) {
|
||||
be_raise(vm, "internal_error", "instance must have only one instance variable");
|
||||
} else if ((cl != &be_class_map && cl != &be_class_list) || 1) { // TODO
|
||||
const char * cl_ptr = "";
|
||||
if (cl == &be_class_map) { cl_ptr = "map"; }
|
||||
if (cl == &be_class_list) { cl_ptr = "list"; }
|
||||
logfmt("be_const_simple_instance(be_nested_simple_instance(&be_class_%s, {\n", cl_ptr);
|
||||
if (cl == &be_class_map) {
|
||||
logfmt(" be_const_map( * ");
|
||||
} else {
|
||||
logfmt(" be_const_list( * ");
|
||||
}
|
||||
m_solidify_bvalue(vm, &ins->members[0], classname, key);
|
||||
logfmt(" ) } ))");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BE_MAP:
|
||||
m_solidify_map(vm, (bmap *) var_toobj(value), classname);
|
||||
break;
|
||||
case BE_LIST:
|
||||
m_solidify_list(vm, (blist *) var_toobj(value), classname);
|
||||
break;
|
||||
default:
|
||||
{
|
||||
char error[64];
|
||||
|
@ -166,7 +243,9 @@ static void m_solidify_proto(bvm *vm, bproto *pr, const char * func_name, int bu
|
|||
}
|
||||
|
||||
logfmt("%*s(be_nested_const_str(\"%s\", %i, %i)),\n", indent, "", str(pr->name), be_strhash(pr->name), str_len(pr->name));
|
||||
logfmt("%*s(be_nested_const_str(\"%s\", %i, %i)),\n", indent, "", func_source, be_strhash(pr->source), str_len(pr->source));
|
||||
// logfmt("%*s(be_nested_const_str(\"%s\", %i, %i)),\n", indent, "", func_source, be_strhash(pr->source), str_len(pr->source));
|
||||
// hard-code source as "input" for solidified
|
||||
logfmt("%*s((bstring*) &be_const_str_input),\n");
|
||||
|
||||
logfmt("%*s( &(const binstruction[%2d]) { /* code */\n", indent, "", pr->codesize);
|
||||
for (int pc = 0; pc < pr->codesize; pc++) {
|
||||
|
@ -253,27 +332,8 @@ static void m_solidify_subclass(bvm *vm, bclass *cl, int builtins)
|
|||
}
|
||||
|
||||
if (cl->members) {
|
||||
logfmt(" be_nested_map(%i,\n", cl->members->count);
|
||||
|
||||
logfmt(" ( (struct bmapnode*) &(const bmapnode[]) {\n");
|
||||
for (int i = 0; i < cl->members->count; i++) {
|
||||
bmapnode * node = &cl->members->slots[i];
|
||||
if (node->key.type != BE_STRING) {
|
||||
char error[64];
|
||||
snprintf(error, sizeof(error), "Unsupported type in key: %i", node->key.type);
|
||||
be_raise(vm, "internal_error", error);
|
||||
}
|
||||
int key_next = node->key.next;
|
||||
size_t len = strlen(str(node->key.v.s));
|
||||
if (0xFFFFFF == key_next) {
|
||||
key_next = -1; /* more readable */
|
||||
}
|
||||
logfmt(" { be_nested_key(\"%s\", %i, %zu, %i), ", str(node->key.v.s), be_strhash(node->key.v.s), len >= 255 ? 255 : len, key_next);
|
||||
m_solidify_bvalue(vm, &node->value, class_name, str(node->key.v.s));
|
||||
|
||||
logfmt(" },\n");
|
||||
}
|
||||
logfmt(" })),\n");
|
||||
m_solidify_map(vm, cl->members, class_name);
|
||||
logfmt(",\n");
|
||||
} else {
|
||||
logfmt(" NULL,\n");
|
||||
}
|
||||
|
@ -299,7 +359,8 @@ static void m_solidify_class(bvm *vm, bclass *cl, int builtins)
|
|||
|
||||
static void m_solidify_module(bvm *vm, bmodule *ml, int builtins)
|
||||
{
|
||||
const char * module_name = ml->info.name;
|
||||
const char * module_name = be_module_name(ml);
|
||||
if (!module_name) { module_name = ""; }
|
||||
|
||||
/* iterate on members to dump closures */
|
||||
if (ml->table) {
|
||||
|
@ -323,33 +384,14 @@ static void m_solidify_module(bvm *vm, bmodule *ml, int builtins)
|
|||
logfmt(" \"%s\",\n", module_name);
|
||||
|
||||
if (ml->table) {
|
||||
logfmt(" be_nested_map(%i,\n", ml->table->count);
|
||||
|
||||
logfmt(" ( (struct bmapnode*) &(const bmapnode[]) {\n");
|
||||
for (int i = 0; i < ml->table->count; i++) {
|
||||
bmapnode * node = &ml->table->slots[i];
|
||||
if (node->key.type != BE_STRING) {
|
||||
char error[64];
|
||||
snprintf(error, sizeof(error), "Unsupported type in key: %i", node->key.type);
|
||||
be_raise(vm, "internal_error", error);
|
||||
}
|
||||
int key_next = node->key.next;
|
||||
size_t len = strlen(str(node->key.v.s));
|
||||
if (0xFFFFFF == key_next) {
|
||||
key_next = -1; /* more readable */
|
||||
}
|
||||
logfmt(" { be_nested_key(\"%s\", %i, %zu, %i), ", str(node->key.v.s), be_strhash(node->key.v.s), len >= 255 ? 255 : len, key_next);
|
||||
m_solidify_bvalue(vm, &node->value, module_name, str(node->key.v.s));
|
||||
|
||||
logfmt(" },\n");
|
||||
}
|
||||
logfmt(" }))\n");
|
||||
m_solidify_map(vm, ml->table, module_name);
|
||||
logfmt("\n");
|
||||
} else {
|
||||
logfmt(" NULL,\n");
|
||||
}
|
||||
logfmt(");\n");
|
||||
logfmt("BE_EXPORT_VARIABLE be_define_const_native_module(%s, NULL);\n", module_name);
|
||||
logfmt("/********************************************************************\n");
|
||||
logfmt("/********************************************************************/\n");
|
||||
|
||||
}
|
||||
|
||||
|
@ -366,6 +408,8 @@ static int m_dump(bvm *vm)
|
|||
m_solidify_class(vm, var_toobj(v), be_builtin_count(vm));
|
||||
} else if (var_ismodule(v)) {
|
||||
m_solidify_module(vm, var_toobj(v), be_builtin_count(vm));
|
||||
} else {
|
||||
be_raise(vm, "value_error", "unsupported type");
|
||||
}
|
||||
}
|
||||
be_return_nil(vm);
|
||||
|
|
|
@ -821,7 +821,6 @@ newframe: /* a new call frame */
|
|||
vm->counter_get++;
|
||||
#endif
|
||||
bvalue a_temp; /* copy result to a temp variable because the stack may be relocated in virtual member calls */
|
||||
// bvalue *a = RA(), *b = RKB(), *c = RKC();
|
||||
bvalue *b = RKB(), *c = RKC();
|
||||
if (var_isinstance(b) && var_isstr(c)) {
|
||||
obj_attribute(vm, b, var_tostr(c), &a_temp);
|
||||
|
@ -834,6 +833,7 @@ newframe: /* a new call frame */
|
|||
reg = vm->reg;
|
||||
} else {
|
||||
attribute_error(vm, "attribute", b, c);
|
||||
a_temp = *RA(); /* avoid gcc warning for uninitialized variable a_temp, this code is never reached */
|
||||
}
|
||||
bvalue *a = RA();
|
||||
*a = a_temp; /* assign the resul to the specified register on the updated stack */
|
||||
|
|
|
@ -562,7 +562,7 @@ BERRY_API void be_module_path(bvm *vm);
|
|||
BERRY_API void be_module_path_set(bvm *vm, const char *path);
|
||||
|
||||
/* bytes operations */
|
||||
BERRY_API void be_pushbytes(bvm *vm, const void *buf, size_t len);
|
||||
BERRY_API void* be_pushbytes(bvm *vm, const void *buf, size_t len);
|
||||
BERRY_API const void* be_tobytes(bvm *vm, int index, size_t *len);
|
||||
|
||||
/* registry operation */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "epd_driver.h"
|
||||
|
||||
|
||||
#include "waveforms/ED047TC2.h"
|
||||
#include "waveforms/epdiy_ED047TC1.h"
|
||||
#include "waveforms/epdiy_ED060SC4.h"
|
||||
#include "waveforms/epdiy_ED060XC3.h"
|
||||
|
|
|
@ -86,7 +86,7 @@ typedef struct {
|
|||
|
||||
|
||||
|
||||
|
||||
extern const EpdWaveform ed047tc2;
|
||||
extern const EpdWaveform epdiy_ED060SC4;
|
||||
extern const EpdWaveform epdiy_ED097OC4;
|
||||
extern const EpdWaveform epdiy_ED047TC1;
|
||||
|
@ -96,7 +96,8 @@ extern const EpdWaveform epdiy_ED060SCT;
|
|||
extern const EpdWaveform epdiy_ED133UT2;
|
||||
|
||||
#if defined(CONFIG_EPD_DISPLAY_TYPE_ED047TC1)
|
||||
#define EPD_BUILTIN_WAVEFORM &epdiy_ED047TC1
|
||||
//#define EPD_BUILTIN_WAVEFORM &epdiy_ED047TC1
|
||||
#define EPD_BUILTIN_WAVEFORM &ed047tc2
|
||||
#elif defined(CONFIG_EPD_DISPLAY_TYPE_ED060SC4)
|
||||
#define EPD_BUILTIN_WAVEFORM &epdiy_ED060SC4
|
||||
#elif defined(CONFIG_EPD_DISPLAY_TYPE_ED060XC3)
|
||||
|
@ -143,5 +144,3 @@ typedef struct {
|
|||
|
||||
|
||||
#endif // EPD_INTERNALS_H
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -91,8 +91,9 @@ lib_extra_dirs = ${library.lib_extra_dirs}
|
|||
[env:tasmota32_base]
|
||||
; *** Uncomment next lines ";" to enable Beta Tasmota Arduino version ESP32 IDF4.4
|
||||
;platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
|
||||
;platform_packages = ${core32.platform_packages}
|
||||
; framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
; platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
|
||||
; platformio/tool-mklittlefs @ ~1.203.200522
|
||||
build_unflags = ${esp32_defaults.build_unflags}
|
||||
build_flags = ${esp32_defaults.build_flags}
|
||||
|
||||
|
|
|
@ -28,7 +28,18 @@ build_flags = ${esp_defaults.build_flags}
|
|||
[core32]
|
||||
platform = espressif32 @ 3.3.1
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/1.0.7.5/tasmota-arduinoespressif32-release_v3.3.5.tar.gz
|
||||
platformio/tool-esptoolpy @ ~1.30100
|
||||
platformio/toolchain-xtensa32 @ ~2.50200.0
|
||||
platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
|
||||
platformio/tool-mklittlefs @ ~1.203.200522
|
||||
build_unflags = ${esp32_defaults.build_unflags}
|
||||
build_flags = ${esp32_defaults.build_flags}
|
||||
|
||||
|
||||
[core32solo1]
|
||||
platform = espressif32 @ 3.3.1
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/1.0.7.5/tasmota-arduinoespressif32-solo1-release_v3.3.5.tar.gz
|
||||
platformio/toolchain-xtensa32 @ ~2.50200.0
|
||||
platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
|
||||
platformio/tool-mklittlefs @ ~1.203.200522
|
||||
build_unflags = ${esp32_defaults.build_unflags}
|
||||
build_flags = ${esp32_defaults.build_flags}
|
|
@ -1,11 +1,26 @@
|
|||
; *** Tasmota32 development core version ESP32 IDF4.4
|
||||
[env:tasmota32-dev]
|
||||
extends = env:tasmota32idf4
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/511/framework-arduinoespressif32-release_v4.4-432c3c78c.tar.gz
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/516/framework-arduinoespressif32-release_v4.4-432c3c78c.tar.gz
|
||||
platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
|
||||
platformio/tool-mklittlefs @ ~1.203.200522
|
||||
build_flags = ${env:tasmota32idf4.build_flags}
|
||||
-D FIRMWARE_TASMOTA32
|
||||
|
||||
;*** Beta Tasmota version for ESP32-S2
|
||||
;*** Example how to override the standard core with [tasmota32-dev] core
|
||||
[env:tasmota32s2]
|
||||
extends = env:tasmota32-dev
|
||||
platform_packages = ${env:tasmota32-dev.platform_packages}
|
||||
board = esp32s2
|
||||
build_flags = ${env:tasmota32idf4.build_flags}
|
||||
lib_extra_dirs = lib/libesp32
|
||||
lib/libesp32_lvgl
|
||||
lib/lib_basic
|
||||
lib/lib_i2c
|
||||
lib/lib_ssl
|
||||
lib/lib_display
|
||||
|
||||
[env:tasmota-rangeextender]
|
||||
build_flags = ${env.build_flags}
|
||||
-D FIRMWARE_RANGE_EXTENDER
|
||||
|
@ -13,24 +28,6 @@ build_flags = ${env.build_flags}
|
|||
-D USE_WIFI_RANGE_EXTENDER
|
||||
-D USE_WIFI_RANGE_EXTENDER_NAPT
|
||||
|
||||
; *** Beta Tasmota version for ESP32 IDF4.4.
|
||||
[env:tasmota32idf4]
|
||||
extends = env:tasmota32_base
|
||||
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
build_unflags = ${env:tasmota32_base.build_unflags}
|
||||
-Wswitch-unreachable
|
||||
-Wstringop-overflow
|
||||
-Wincompatible-pointer-types
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-Wno-switch-unreachable
|
||||
-Wno-stringop-overflow
|
||||
; ***Uncomment next two lines to enable BLE
|
||||
;-DUSE_BLE_ESP32
|
||||
;-DUSE_MI_ESP32
|
||||
;-DESP32_STAGE=true
|
||||
|
||||
[env:tasmota32-rangeextender]
|
||||
extends = env:tasmota32idf4
|
||||
build_flags = ${env:tasmota32idf4.build_flags}
|
||||
|
@ -38,32 +35,6 @@ build_flags = ${env:tasmota32idf4.build_flags}
|
|||
-D USE_WIFI_RANGE_EXTENDER
|
||||
-D USE_WIFI_RANGE_EXTENDER_NAPT
|
||||
|
||||
;*** Beta Tasmota version for ESP32-S2
|
||||
[env:tasmota32s2]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32s2
|
||||
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
build_unflags = ${env:tasmota32_base.build_unflags}
|
||||
-Wswitch-unreachable
|
||||
-Wstringop-overflow
|
||||
-Wincompatible-pointer-types
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-Wno-switch-unreachable
|
||||
-Wno-stringop-overflow
|
||||
lib_extra_dirs = lib/libesp32
|
||||
lib/libesp32_lvgl
|
||||
lib/lib_basic
|
||||
lib/lib_i2c
|
||||
lib/lib_ssl
|
||||
lib/lib_display
|
||||
lib_ignore =
|
||||
NimBLE-Arduino
|
||||
TTGO TWatch Library
|
||||
ESP32-HomeKit
|
||||
Micro-RTSP
|
||||
|
||||
; *** Debug version used for PlatformIO Home Project Inspection
|
||||
[env:tasmota-debug]
|
||||
build_type = debug
|
||||
|
@ -93,8 +64,7 @@ build_flags = ${env:tasmota32_base.build_flags}
|
|||
[env:tasmota32solo1-ocd]
|
||||
;build_type = debug
|
||||
extends = env:tasmota32_base
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/1.0.7.5/tasmota-arduinoespressif32-solo1-release_v3.3.5.tar.gz
|
||||
platform_packages = ${core32solo1.platform_packages}
|
||||
board = esp32_solo1_4M
|
||||
debug_tool = esp-prog
|
||||
upload_protocol = esp-prog
|
||||
|
|
|
@ -33,6 +33,20 @@ lib_ignore =
|
|||
; Disable next if you want to use ArduinoOTA in Tasmota32 (default disabled)
|
||||
ArduinoOTA
|
||||
|
||||
[env:tasmota32idf4]
|
||||
extends = env:tasmota32_base
|
||||
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip
|
||||
platformio/tool-mklittlefs @ ~1.203.200522
|
||||
build_unflags = ${env:tasmota32_base.build_unflags}
|
||||
-Wswitch-unreachable
|
||||
-Wstringop-overflow
|
||||
-Wincompatible-pointer-types
|
||||
-Wnonnull-compare
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-Wno-switch-unreachable
|
||||
-Wno-stringop-overflow
|
||||
|
||||
[env:tasmota32]
|
||||
extends = env:tasmota32_base
|
||||
|
@ -50,8 +64,7 @@ build_flags = ${env:tasmota32_base.build_flags} -DFIRMWARE_TASMOTA32
|
|||
|
||||
[env:tasmota32solo1]
|
||||
extends = env:tasmota32_base
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/1.0.7.5/tasmota-arduinoespressif32-solo1-release_v3.3.5.tar.gz
|
||||
platform_packages = ${core32solo1.platform_packages}
|
||||
build_flags = ${env:tasmota32_base.build_flags} -DFIRMWARE_TASMOTA32
|
||||
|
||||
[env:tasmota32-webcam]
|
||||
|
@ -94,35 +107,29 @@ build_flags = ${env:tasmota32_base.build_flags} -DUSE_IR_REMOTE_FULL
|
|||
lib_extra_dirs = lib/libesp32, lib/lib_basic
|
||||
|
||||
[env:tasmota32c3]
|
||||
extends = env:tasmota32_base
|
||||
board = esp32c3
|
||||
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
|
||||
platform_packages = ${core32.platform_packages}
|
||||
framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1rc1/framework-arduinoespressif32-release_IDF4.4.tar.gz
|
||||
build_unflags = ${env:tasmota32_base.build_unflags}
|
||||
-Wswitch-unreachable
|
||||
-Wstringop-overflow
|
||||
-Wincompatible-pointer-types
|
||||
-mtarget-align
|
||||
-DNDEBUG
|
||||
build_flags = ${env:tasmota32_base.build_flags}
|
||||
-Wno-switch-unreachable
|
||||
-Wno-stringop-overflow
|
||||
extends = env:tasmota32idf4
|
||||
board = esp32c3
|
||||
platform = ${env:tasmota32idf4.platform}
|
||||
platform_packages = ${env:tasmota32idf4.platform_packages}
|
||||
build_unflags = ${env:tasmota32idf4.build_unflags}
|
||||
-mtarget-align
|
||||
-DNDEBUG
|
||||
build_flags = ${env:tasmota32idf4.build_flags}
|
||||
; *** Comment next two lines to disable BLE
|
||||
; -DUSE_BLE_ESP32
|
||||
; -DUSE_MI_ESP32
|
||||
;-DESP32_STAGE=true
|
||||
lib_extra_dirs = lib/libesp32
|
||||
lib/libesp32_div
|
||||
lib/libesp32_lvgl
|
||||
lib/lib_basic
|
||||
lib/lib_i2c
|
||||
lib/lib_ssl
|
||||
lib/lib_display
|
||||
lib_ignore =
|
||||
TTGO TWatch Library
|
||||
ESP32-HomeKit
|
||||
Micro-RTSP
|
||||
; -DUSE_BLE_ESP32
|
||||
; -DUSE_MI_ESP32
|
||||
;-DESP32_STAGE=true
|
||||
lib_extra_dirs = lib/libesp32
|
||||
lib/libesp32_div
|
||||
lib/libesp32_lvgl
|
||||
lib/lib_basic
|
||||
lib/lib_i2c
|
||||
lib/lib_ssl
|
||||
lib/lib_display
|
||||
lib_ignore =
|
||||
TTGO TWatch Library
|
||||
ESP32-HomeKit
|
||||
Micro-RTSP
|
||||
|
||||
[env:tasmota32-AF]
|
||||
extends = env:tasmota32_base
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
-------------------------------------------------------------#
|
||||
class AXP192_M5Stack_Core2 : AXP192
|
||||
def init()
|
||||
super(self, AXP192).init()
|
||||
super(self).init()
|
||||
|
||||
if self.wire
|
||||
# Disable vbus hold limit
|
||||
|
@ -116,6 +116,20 @@ class AXP192_M5Stack_Core2 : AXP192
|
|||
self.write8(0x12, self.read8(0x12) | 0x40) # set EXTEN to enable 5v boost
|
||||
end
|
||||
end
|
||||
|
||||
# Dimmer in percentage
|
||||
def set_displaydimmer(x)
|
||||
var v = tasmota.scale_uint(x, 0, 100, 2500, 3300)
|
||||
self.set_lcd_voltage(v)
|
||||
end
|
||||
|
||||
# respond to display events
|
||||
def display(cmd, idx, payload, raw)
|
||||
if cmd == "dim" || cmd == "power"
|
||||
self.set_displaydimmer(idx)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
axp = AXP192_M5Stack_Core2()
|
||||
|
|
|
@ -0,0 +1,284 @@
|
|||
/********************************************************************
|
||||
* Generated code, don't edit
|
||||
*******************************************************************/
|
||||
|
||||
const be_constint_t lv_gpio_constants[] = {
|
||||
|
||||
{ "A4988_DIR", (int32_t) GPIO_A4988_DIR },
|
||||
{ "A4988_ENA", (int32_t) GPIO_A4988_ENA },
|
||||
{ "A4988_MS1", (int32_t) GPIO_A4988_MS1 },
|
||||
{ "A4988_STP", (int32_t) GPIO_A4988_STP },
|
||||
{ "ADC_BUTTON", (int32_t) GPIO_ADC_BUTTON },
|
||||
{ "ADC_BUTTON_INV", (int32_t) GPIO_ADC_BUTTON_INV },
|
||||
{ "ADC_CT_POWER", (int32_t) GPIO_ADC_CT_POWER },
|
||||
{ "ADC_INPUT", (int32_t) GPIO_ADC_INPUT },
|
||||
{ "ADC_JOY", (int32_t) GPIO_ADC_JOY },
|
||||
{ "ADC_LIGHT", (int32_t) GPIO_ADC_LIGHT },
|
||||
{ "ADC_PH", (int32_t) GPIO_ADC_PH },
|
||||
{ "ADC_RANGE", (int32_t) GPIO_ADC_RANGE },
|
||||
{ "ADC_TEMP", (int32_t) GPIO_ADC_TEMP },
|
||||
{ "ADE7953_IRQ", (int32_t) GPIO_ADE7953_IRQ },
|
||||
{ "ARIRFRCV", (int32_t) GPIO_ARIRFRCV },
|
||||
{ "ARIRFSEL", (int32_t) GPIO_ARIRFSEL },
|
||||
{ "AS3935", (int32_t) GPIO_AS3935 },
|
||||
{ "AS608_RX", (int32_t) GPIO_AS608_RX },
|
||||
{ "AS608_TX", (int32_t) GPIO_AS608_TX },
|
||||
{ "AZ_RXD", (int32_t) GPIO_AZ_RXD },
|
||||
{ "AZ_TXD", (int32_t) GPIO_AZ_TXD },
|
||||
{ "BACKLIGHT", (int32_t) GPIO_BACKLIGHT },
|
||||
{ "BL0939_RX", (int32_t) GPIO_BL0939_RX },
|
||||
{ "BL0940_RX", (int32_t) GPIO_BL0940_RX },
|
||||
{ "BL0942_RX", (int32_t) GPIO_BL0942_RX },
|
||||
{ "BOILER_OT_RX", (int32_t) GPIO_BOILER_OT_RX },
|
||||
{ "BOILER_OT_TX", (int32_t) GPIO_BOILER_OT_TX },
|
||||
{ "BS814_CLK", (int32_t) GPIO_BS814_CLK },
|
||||
{ "BS814_DAT", (int32_t) GPIO_BS814_DAT },
|
||||
{ "BUZZER", (int32_t) GPIO_BUZZER },
|
||||
{ "BUZZER_INV", (int32_t) GPIO_BUZZER_INV },
|
||||
{ "CC1101_GDO0", (int32_t) GPIO_CC1101_GDO0 },
|
||||
{ "CC1101_GDO2", (int32_t) GPIO_CC1101_GDO2 },
|
||||
{ "CHANGE", CHANGE },
|
||||
{ "CNTR1", (int32_t) GPIO_CNTR1 },
|
||||
{ "CNTR1_NP", (int32_t) GPIO_CNTR1_NP },
|
||||
{ "CSE7761_RX", (int32_t) GPIO_CSE7761_RX },
|
||||
{ "CSE7761_TX", (int32_t) GPIO_CSE7761_TX },
|
||||
{ "CSE7766_RX", (int32_t) GPIO_CSE7766_RX },
|
||||
{ "CSE7766_TX", (int32_t) GPIO_CSE7766_TX },
|
||||
{ "DAC", (int32_t) -1 },
|
||||
{ "DCKI", (int32_t) GPIO_DCKI },
|
||||
{ "DDS2382_RX", (int32_t) GPIO_DDS2382_RX },
|
||||
{ "DDS2382_TX", (int32_t) GPIO_DDS2382_TX },
|
||||
{ "DDSU666_RX", (int32_t) GPIO_DDSU666_RX },
|
||||
{ "DDSU666_TX", (int32_t) GPIO_DDSU666_TX },
|
||||
{ "DEEPSLEEP", (int32_t) GPIO_DEEPSLEEP },
|
||||
{ "DHT11", (int32_t) GPIO_DHT11 },
|
||||
{ "DHT11_OUT", (int32_t) GPIO_DHT11_OUT },
|
||||
{ "DHT22", (int32_t) GPIO_DHT22 },
|
||||
{ "DI", (int32_t) GPIO_DI },
|
||||
{ "DSB", (int32_t) GPIO_DSB },
|
||||
{ "DSB_OUT", (int32_t) GPIO_DSB_OUT },
|
||||
{ "DYP_RX", (int32_t) GPIO_DYP_RX },
|
||||
{ "ELECTRIQ_MOODL_TX", (int32_t) GPIO_ELECTRIQ_MOODL_TX },
|
||||
{ "EPAPER29_CS", (int32_t) GPIO_EPAPER29_CS },
|
||||
{ "EPAPER42_CS", (int32_t) GPIO_EPAPER42_CS },
|
||||
{ "EPD_DATA", (int32_t) GPIO_EPD_DATA },
|
||||
{ "ETH_PHY_MDC", (int32_t) GPIO_ETH_PHY_MDC },
|
||||
{ "ETH_PHY_MDIO", (int32_t) GPIO_ETH_PHY_MDIO },
|
||||
{ "ETH_PHY_POWER", (int32_t) GPIO_ETH_PHY_POWER },
|
||||
{ "EXS_ENABLE", (int32_t) GPIO_EXS_ENABLE },
|
||||
{ "FALLING", FALLING },
|
||||
{ "FTC532", (int32_t) GPIO_FTC532 },
|
||||
{ "GPS_RX", (int32_t) GPIO_GPS_RX },
|
||||
{ "GPS_TX", (int32_t) GPIO_GPS_TX },
|
||||
{ "HALLEFFECT", (int32_t) GPIO_HALLEFFECT },
|
||||
{ "HEARTBEAT", (int32_t) GPIO_HEARTBEAT },
|
||||
{ "HEARTBEAT_INV", (int32_t) GPIO_HEARTBEAT_INV },
|
||||
{ "HIGH", HIGH },
|
||||
{ "HJL_CF", (int32_t) GPIO_HJL_CF },
|
||||
{ "HLW_CF", (int32_t) GPIO_HLW_CF },
|
||||
{ "HM10_RX", (int32_t) GPIO_HM10_RX },
|
||||
{ "HM10_TX", (int32_t) GPIO_HM10_TX },
|
||||
{ "HM330X_SET", (int32_t) GPIO_HM330X_SET },
|
||||
{ "HPMA_RX", (int32_t) GPIO_HPMA_RX },
|
||||
{ "HPMA_TX", (int32_t) GPIO_HPMA_TX },
|
||||
{ "HRE_CLOCK", (int32_t) GPIO_HRE_CLOCK },
|
||||
{ "HRE_DATA", (int32_t) GPIO_HRE_DATA },
|
||||
{ "HRG15_TX", (int32_t) GPIO_HRG15_TX },
|
||||
{ "HRXL_RX", (int32_t) GPIO_HRXL_RX },
|
||||
{ "HX711_DAT", (int32_t) GPIO_HX711_DAT },
|
||||
{ "HX711_SCK", (int32_t) GPIO_HX711_SCK },
|
||||
{ "I2C_SCL", (int32_t) GPIO_I2C_SCL },
|
||||
{ "I2C_SDA", (int32_t) GPIO_I2C_SDA },
|
||||
{ "I2S_IN_CLK", (int32_t) GPIO_I2S_IN_CLK },
|
||||
{ "I2S_IN_DATA", (int32_t) GPIO_I2S_IN_DATA },
|
||||
{ "I2S_IN_SLCT", (int32_t) GPIO_I2S_IN_SLCT },
|
||||
{ "I2S_OUT_CLK", (int32_t) GPIO_I2S_OUT_CLK },
|
||||
{ "I2S_OUT_DATA", (int32_t) GPIO_I2S_OUT_DATA },
|
||||
{ "I2S_OUT_SLCT", (int32_t) GPIO_I2S_OUT_SLCT },
|
||||
{ "IBEACON_RX", (int32_t) GPIO_IBEACON_RX },
|
||||
{ "IBEACON_TX", (int32_t) GPIO_IBEACON_TX },
|
||||
{ "IEM3000_RX", (int32_t) GPIO_IEM3000_RX },
|
||||
{ "IEM3000_TX", (int32_t) GPIO_IEM3000_TX },
|
||||
{ "ILI9341_CS", (int32_t) GPIO_ILI9341_CS },
|
||||
{ "ILI9341_DC", (int32_t) GPIO_ILI9341_DC },
|
||||
{ "ILI9488_CS", (int32_t) GPIO_ILI9488_CS },
|
||||
{ "INPUT", (int32_t) GPIO_INPUT },
|
||||
{ "INPUT_PULLDOWN", INPUT_PULLDOWN },
|
||||
{ "INPUT_PULLUP", INPUT_PULLUP },
|
||||
{ "INTERRUPT", (int32_t) GPIO_INTERRUPT },
|
||||
{ "IRRECV", (int32_t) GPIO_IRRECV },
|
||||
{ "IRSEND", (int32_t) GPIO_IRSEND },
|
||||
{ "KEY1", (int32_t) GPIO_KEY1 },
|
||||
{ "KEY1_INV", (int32_t) GPIO_KEY1_INV },
|
||||
{ "KEY1_INV_NP", (int32_t) GPIO_KEY1_INV_NP },
|
||||
{ "KEY1_INV_PD", (int32_t) GPIO_KEY1_INV_PD },
|
||||
{ "KEY1_NP", (int32_t) GPIO_KEY1_NP },
|
||||
{ "KEY1_PD", (int32_t) GPIO_KEY1_PD },
|
||||
{ "KEY1_TC", (int32_t) GPIO_KEY1_TC },
|
||||
{ "LE01MR_RX", (int32_t) GPIO_LE01MR_RX },
|
||||
{ "LE01MR_TX", (int32_t) GPIO_LE01MR_TX },
|
||||
{ "LED1", (int32_t) GPIO_LED1 },
|
||||
{ "LED1_INV", (int32_t) GPIO_LED1_INV },
|
||||
{ "LEDLNK", (int32_t) GPIO_LEDLNK },
|
||||
{ "LEDLNK_INV", (int32_t) GPIO_LEDLNK_INV },
|
||||
{ "LMT01", (int32_t) GPIO_LMT01 },
|
||||
{ "LOW", LOW },
|
||||
{ "MAX31855CLK", (int32_t) GPIO_MAX31855CLK },
|
||||
{ "MAX31855CS", (int32_t) GPIO_MAX31855CS },
|
||||
{ "MAX31855DO", (int32_t) GPIO_MAX31855DO },
|
||||
{ "MAX7219CLK", (int32_t) GPIO_MAX7219CLK },
|
||||
{ "MAX7219CS", (int32_t) GPIO_MAX7219CS },
|
||||
{ "MAX7219DIN", (int32_t) GPIO_MAX7219DIN },
|
||||
{ "MCP2515_CS", (int32_t) GPIO_MCP2515_CS },
|
||||
{ "MCP39F5_RST", (int32_t) GPIO_MCP39F5_RST },
|
||||
{ "MCP39F5_RX", (int32_t) GPIO_MCP39F5_RX },
|
||||
{ "MCP39F5_TX", (int32_t) GPIO_MCP39F5_TX },
|
||||
{ "MGC3130_RESET", (int32_t) GPIO_MGC3130_RESET },
|
||||
{ "MGC3130_XFER", (int32_t) GPIO_MGC3130_XFER },
|
||||
{ "MHZ_RXD", (int32_t) GPIO_MHZ_RXD },
|
||||
{ "MHZ_TXD", (int32_t) GPIO_MHZ_TXD },
|
||||
{ "MIEL_HVAC_RX", (int32_t) GPIO_MIEL_HVAC_RX },
|
||||
{ "MIEL_HVAC_TX", (int32_t) GPIO_MIEL_HVAC_TX },
|
||||
{ "MP3_DFR562", (int32_t) GPIO_MP3_DFR562 },
|
||||
{ "NEOPOOL_RX", (int32_t) GPIO_NEOPOOL_RX },
|
||||
{ "NEOPOOL_TX", (int32_t) GPIO_NEOPOOL_TX },
|
||||
{ "NONE", (int32_t) GPIO_NONE },
|
||||
{ "NRF24_CS", (int32_t) GPIO_NRF24_CS },
|
||||
{ "NRF24_DC", (int32_t) GPIO_NRF24_DC },
|
||||
{ "NRG_CF1", (int32_t) GPIO_NRG_CF1 },
|
||||
{ "NRG_SEL", (int32_t) GPIO_NRG_SEL },
|
||||
{ "NRG_SEL_INV", (int32_t) GPIO_NRG_SEL_INV },
|
||||
{ "OLED_RESET", (int32_t) GPIO_OLED_RESET },
|
||||
{ "OPEN_DRAIN", OPEN_DRAIN },
|
||||
{ "OPTION_A", (int32_t) GPIO_OPTION_A },
|
||||
{ "OUTPUT", OUTPUT },
|
||||
{ "OUTPUT_HI", (int32_t) GPIO_OUTPUT_HI },
|
||||
{ "OUTPUT_LO", (int32_t) GPIO_OUTPUT_LO },
|
||||
{ "OUTPUT_OPEN_DRAIN", OUTPUT_OPEN_DRAIN },
|
||||
{ "P9813_CLK", (int32_t) GPIO_P9813_CLK },
|
||||
{ "P9813_DAT", (int32_t) GPIO_P9813_DAT },
|
||||
{ "PMS5003_RX", (int32_t) GPIO_PMS5003_RX },
|
||||
{ "PMS5003_TX", (int32_t) GPIO_PMS5003_TX },
|
||||
{ "PN532_RXD", (int32_t) GPIO_PN532_RXD },
|
||||
{ "PN532_TXD", (int32_t) GPIO_PN532_TXD },
|
||||
{ "PROJECTOR_CTRL_RX", (int32_t) GPIO_PROJECTOR_CTRL_RX },
|
||||
{ "PROJECTOR_CTRL_TX", (int32_t) GPIO_PROJECTOR_CTRL_TX },
|
||||
{ "PULLDOWN", PULLDOWN },
|
||||
{ "PULLUP", PULLUP },
|
||||
{ "PWM1", (int32_t) GPIO_PWM1 },
|
||||
{ "PWM1_INV", (int32_t) GPIO_PWM1_INV },
|
||||
{ "PZEM004_RX", (int32_t) GPIO_PZEM004_RX },
|
||||
{ "PZEM016_RX", (int32_t) GPIO_PZEM016_RX },
|
||||
{ "PZEM017_RX", (int32_t) GPIO_PZEM017_RX },
|
||||
{ "PZEM0XX_TX", (int32_t) GPIO_PZEM0XX_TX },
|
||||
{ "RA8876_CS", (int32_t) GPIO_RA8876_CS },
|
||||
{ "RC522_CS", (int32_t) GPIO_RC522_CS },
|
||||
{ "RC522_RST", (int32_t) GPIO_RC522_RST },
|
||||
{ "RDM6300_RX", (int32_t) GPIO_RDM6300_RX },
|
||||
{ "REL1", (int32_t) GPIO_REL1 },
|
||||
{ "REL1_INV", (int32_t) GPIO_REL1_INV },
|
||||
{ "RFRECV", (int32_t) GPIO_RFRECV },
|
||||
{ "RFSEND", (int32_t) GPIO_RFSEND },
|
||||
{ "RF_SENSOR", (int32_t) GPIO_RF_SENSOR },
|
||||
{ "RISING", RISING },
|
||||
{ "ROT1A", (int32_t) GPIO_ROT1A },
|
||||
{ "ROT1A_NP", (int32_t) GPIO_ROT1A_NP },
|
||||
{ "ROT1B", (int32_t) GPIO_ROT1B },
|
||||
{ "ROT1B_NP", (int32_t) GPIO_ROT1B_NP },
|
||||
{ "RXD", (int32_t) GPIO_RXD },
|
||||
{ "SAIR_RX", (int32_t) GPIO_SAIR_RX },
|
||||
{ "SAIR_TX", (int32_t) GPIO_SAIR_TX },
|
||||
{ "SBR_RX", (int32_t) GPIO_SBR_RX },
|
||||
{ "SBR_TX", (int32_t) GPIO_SBR_TX },
|
||||
{ "SDCARD_CS", (int32_t) GPIO_SDCARD_CS },
|
||||
{ "SDM120_RX", (int32_t) GPIO_SDM120_RX },
|
||||
{ "SDM120_TX", (int32_t) GPIO_SDM120_TX },
|
||||
{ "SDM630_RX", (int32_t) GPIO_SDM630_RX },
|
||||
{ "SDM630_TX", (int32_t) GPIO_SDM630_TX },
|
||||
{ "SDM72_RX", (int32_t) GPIO_SDM72_RX },
|
||||
{ "SDM72_TX", (int32_t) GPIO_SDM72_TX },
|
||||
{ "SDS0X1_RX", (int32_t) GPIO_SDS0X1_RX },
|
||||
{ "SDS0X1_TX", (int32_t) GPIO_SDS0X1_TX },
|
||||
{ "SENSOR_END", (int32_t) GPIO_SENSOR_END },
|
||||
{ "SHELLY_DIMMER_BOOT0", (int32_t) GPIO_SHELLY_DIMMER_BOOT0 },
|
||||
{ "SHELLY_DIMMER_RST_INV", (int32_t) GPIO_SHELLY_DIMMER_RST_INV },
|
||||
{ "SI7021", (int32_t) GPIO_SI7021 },
|
||||
{ "SM16716_CLK", (int32_t) GPIO_SM16716_CLK },
|
||||
{ "SM16716_DAT", (int32_t) GPIO_SM16716_DAT },
|
||||
{ "SM16716_SEL", (int32_t) GPIO_SM16716_SEL },
|
||||
{ "SM2135_CLK", (int32_t) GPIO_SM2135_CLK },
|
||||
{ "SM2135_DAT", (int32_t) GPIO_SM2135_DAT },
|
||||
{ "SOLAXX1_RX", (int32_t) GPIO_SOLAXX1_RX },
|
||||
{ "SOLAXX1_TX", (int32_t) GPIO_SOLAXX1_TX },
|
||||
{ "SPI_CLK", (int32_t) GPIO_SPI_CLK },
|
||||
{ "SPI_CS", (int32_t) GPIO_SPI_CS },
|
||||
{ "SPI_DC", (int32_t) GPIO_SPI_DC },
|
||||
{ "SPI_MISO", (int32_t) GPIO_SPI_MISO },
|
||||
{ "SPI_MOSI", (int32_t) GPIO_SPI_MOSI },
|
||||
{ "SR04_ECHO", (int32_t) GPIO_SR04_ECHO },
|
||||
{ "SR04_TRIG", (int32_t) GPIO_SR04_TRIG },
|
||||
{ "SSD1331_CS", (int32_t) GPIO_SSD1331_CS },
|
||||
{ "SSD1331_DC", (int32_t) GPIO_SSD1331_DC },
|
||||
{ "SSD1351_CS", (int32_t) GPIO_SSD1351_CS },
|
||||
{ "SSD1351_DC", (int32_t) GPIO_SSD1351_DC },
|
||||
{ "SSPI_CS", (int32_t) GPIO_SSPI_CS },
|
||||
{ "SSPI_DC", (int32_t) GPIO_SSPI_DC },
|
||||
{ "SSPI_MAX31865_CS1", (int32_t) GPIO_SSPI_MAX31865_CS1 },
|
||||
{ "SSPI_MISO", (int32_t) GPIO_SSPI_MISO },
|
||||
{ "SSPI_MOSI", (int32_t) GPIO_SSPI_MOSI },
|
||||
{ "SSPI_SCLK", (int32_t) GPIO_SSPI_SCLK },
|
||||
{ "ST7789_CS", (int32_t) GPIO_ST7789_CS },
|
||||
{ "ST7789_DC", (int32_t) GPIO_ST7789_DC },
|
||||
{ "SWT1", (int32_t) GPIO_SWT1 },
|
||||
{ "SWT1_NP", (int32_t) GPIO_SWT1_NP },
|
||||
{ "SWT1_PD", (int32_t) GPIO_SWT1_PD },
|
||||
{ "TASMOTACLIENT_RST", (int32_t) GPIO_TASMOTACLIENT_RST },
|
||||
{ "TASMOTACLIENT_RST_INV", (int32_t) GPIO_TASMOTACLIENT_RST_INV },
|
||||
{ "TASMOTACLIENT_RXD", (int32_t) GPIO_TASMOTACLIENT_RXD },
|
||||
{ "TASMOTACLIENT_TXD", (int32_t) GPIO_TASMOTACLIENT_TXD },
|
||||
{ "TCP_RX", (int32_t) GPIO_TCP_RX },
|
||||
{ "TCP_TX", (int32_t) GPIO_TCP_TX },
|
||||
{ "TELEINFO_ENABLE", (int32_t) GPIO_TELEINFO_ENABLE },
|
||||
{ "TELEINFO_RX", (int32_t) GPIO_TELEINFO_RX },
|
||||
{ "TFMINIPLUS_RX", (int32_t) GPIO_TFMINIPLUS_RX },
|
||||
{ "TFMINIPLUS_TX", (int32_t) GPIO_TFMINIPLUS_TX },
|
||||
{ "TM1637CLK", (int32_t) GPIO_TM1637CLK },
|
||||
{ "TM1637DIO", (int32_t) GPIO_TM1637DIO },
|
||||
{ "TM1638CLK", (int32_t) GPIO_TM1638CLK },
|
||||
{ "TM1638DIO", (int32_t) GPIO_TM1638DIO },
|
||||
{ "TM1638STB", (int32_t) GPIO_TM1638STB },
|
||||
{ "TUYA_RX", (int32_t) GPIO_TUYA_RX },
|
||||
{ "TUYA_TX", (int32_t) GPIO_TUYA_TX },
|
||||
{ "TX2X_TXD_BLACK", (int32_t) GPIO_TX2X_TXD_BLACK },
|
||||
{ "TXD", (int32_t) GPIO_TXD },
|
||||
{ "VINDRIKTNING_RX", (int32_t) GPIO_VINDRIKTNING_RX },
|
||||
{ "VL53L0X_XSHUT1", (int32_t) GPIO_VL53L0X_XSHUT1 },
|
||||
{ "WE517_RX", (int32_t) GPIO_WE517_RX },
|
||||
{ "WE517_TX", (int32_t) GPIO_WE517_TX },
|
||||
{ "WEBCAM_DATA", (int32_t) GPIO_WEBCAM_DATA },
|
||||
{ "WEBCAM_HREF", (int32_t) GPIO_WEBCAM_HREF },
|
||||
{ "WEBCAM_HSD", (int32_t) GPIO_WEBCAM_HSD },
|
||||
{ "WEBCAM_PCLK", (int32_t) GPIO_WEBCAM_PCLK },
|
||||
{ "WEBCAM_PSCLK", (int32_t) GPIO_WEBCAM_PSCLK },
|
||||
{ "WEBCAM_PSRCS", (int32_t) GPIO_WEBCAM_PSRCS },
|
||||
{ "WEBCAM_PWDN", (int32_t) GPIO_WEBCAM_PWDN },
|
||||
{ "WEBCAM_RESET", (int32_t) GPIO_WEBCAM_RESET },
|
||||
{ "WEBCAM_SIOC", (int32_t) GPIO_WEBCAM_SIOC },
|
||||
{ "WEBCAM_SIOD", (int32_t) GPIO_WEBCAM_SIOD },
|
||||
{ "WEBCAM_VSYNC", (int32_t) GPIO_WEBCAM_VSYNC },
|
||||
{ "WEBCAM_XCLK", (int32_t) GPIO_WEBCAM_XCLK },
|
||||
{ "WIEGAND_D0", (int32_t) GPIO_WIEGAND_D0 },
|
||||
{ "WIEGAND_D1", (int32_t) GPIO_WIEGAND_D1 },
|
||||
{ "WINDMETER_SPEED", (int32_t) GPIO_WINDMETER_SPEED },
|
||||
{ "WS2812", (int32_t) GPIO_WS2812 },
|
||||
{ "XPT2046_CS", (int32_t) GPIO_XPT2046_CS },
|
||||
{ "ZEROCROSS", (int32_t) GPIO_ZEROCROSS },
|
||||
{ "ZIGBEE_RST", (int32_t) GPIO_ZIGBEE_RST },
|
||||
{ "ZIGBEE_RX", (int32_t) GPIO_ZIGBEE_RX },
|
||||
{ "ZIGBEE_TX", (int32_t) GPIO_ZIGBEE_TX },
|
||||
|
||||
};
|
||||
|
||||
const size_t lv_gpio_constants_size = sizeof(lv_gpio_constants)/sizeof(lv_gpio_constants[0]);
|
||||
|
||||
/********************************************************************/
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v9.5.0.9
|
||||
* Updated until v10.0.0.1
|
||||
\*********************************************************************/
|
||||
|
||||
//#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Herzschlag"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
* Use online command StateText to translate ON, OFF, HOLD and TOGGLE.
|
||||
* Use online command Prefix to translate cmnd, stat and tele.
|
||||
*
|
||||
* Updated until v9.5.0.9 - Last update 16.10.2021
|
||||
* Updated until v9.5.0.9 - Last update 03.11.2021
|
||||
\*********************************************************************/
|
||||
|
||||
#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
|
||||
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 - RX"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 - TX"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Battito cardiaco"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "А"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "А"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "A"
|
||||
|
|
|
@ -842,6 +842,7 @@
|
|||
#define D_SENSOR_HRG15_RX "HRG15 Rx"
|
||||
#define D_SENSOR_HRG15_TX "HRG15 Tx"
|
||||
#define D_SENSOR_VINDRIKTNING_RX "VINDRIKTNING"
|
||||
#define D_SENSOR_HEARTBEAT "Heartbeat"
|
||||
|
||||
// Units
|
||||
#define D_UNIT_AMPERE "安培"
|
||||
|
|
|
@ -348,7 +348,6 @@
|
|||
#define ZIGBEE_DISTINCT_TOPICS false // [SetOption89] Enable unique device topic based on Zigbee device ShortAddr
|
||||
#define ZIGBEE_RMV_ZBRECEIVED false // [SetOption100] Remove ZbReceived form JSON message
|
||||
#define ZIGBEE_INDEX_EP false // [SetOption101] Add the source endpoint as suffix to attributes, ex `Power3` instead of `Power` if sent from endpoint 3
|
||||
#define WATCHDOG_TASK_SECONDS 10 // [ESP32 only] Task Watchdog Timer (TWDT) time in seconds - detecting Tasmota running for a prolonged period of time without yielding with `esp_task_wdt_reset()`
|
||||
|
||||
/*********************************************************************************************\
|
||||
* END OF SECTION 1
|
||||
|
@ -854,8 +853,8 @@
|
|||
#define IR_RCV_WHILE_SENDING 0 // Turns on receiver while sending messages, i.e. receive your own. This is unreliable and can cause IR timing issues
|
||||
|
||||
// -- Zigbee interface ----------------------------
|
||||
//#define USE_ZIGBEE // Enable serial communication with Zigbee CC2530 flashed with ZNP (+49k code, +3k mem)
|
||||
#define USE_ZIGBEE_ZNP // Enable ZNP protocol, needed for CC2530 based devices
|
||||
//#define USE_ZIGBEE // Enable serial communication with Zigbee CC2530/CC2652 flashed with ZNP or EFR32 flashed with EZSP (+49k code, +3k mem)
|
||||
#define USE_ZIGBEE_ZNP // Enable ZNP protocol, needed for CC2530/CC2652 based devices
|
||||
// #define USE_ZIGBEE_EZSP // Enable EZSP protocol, needed for EFR32 EmberZNet based devices, like Sonoff Zigbee bridge
|
||||
// Note: USE_ZIGBEE_ZNP and USE_ZIGBEE_EZSP are mutually incompatible, you must select exactly one
|
||||
// #define USE_ZIGBEE_EEPROM // Use the EEPROM from the Sonoff ZBBridge to save Zigbee configuration and data
|
||||
|
@ -1053,6 +1052,15 @@
|
|||
//#define DEBUG_TASMOTA_SENSOR // Enable sensor debug messages
|
||||
//#define USE_DEBUG_DRIVER // Use xdrv_99_debug.ino providing commands CpuChk, CfgXor, CfgDump, CfgPeek and CfgPoke
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Profiling features
|
||||
\*********************************************************************************************/
|
||||
|
||||
//#define USE_PROFILING // Enable profiling
|
||||
//#define PROFILE_THRESHOLD 70 // Minimum duration in milliseconds to start logging
|
||||
//#define USE_PROFILE_DRIVER // Enable driver profiling
|
||||
//#define USE_PROFILE_FUNCTION // Enable driver function profiling
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Optional firmware configurations
|
||||
* Select none or just one for optional features and sensors as configured in tasmota_configurations.h
|
||||
|
|
|
@ -733,9 +733,10 @@ typedef struct {
|
|||
uint8_t shd_leading_edge; // F5B
|
||||
uint16_t shd_warmup_brightness; // F5C
|
||||
uint8_t shd_warmup_time; // F5E
|
||||
uint8_t light_step_pixels; // F5F
|
||||
uint8_t tcp_config; // F5F
|
||||
uint8_t light_step_pixels; // F60
|
||||
|
||||
uint8_t free_f5f[60]; // F60 - Decrement if adding new Setting variables just above and below
|
||||
uint8_t free_f60[5f]; // F61 - Decrement if adding new Setting variables just above and below
|
||||
|
||||
// Only 32 bit boundary variables below
|
||||
|
||||
|
|
|
@ -66,35 +66,6 @@ void OsWatchTicker(void)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef ESP32
|
||||
#include "esp_task_wdt.h"
|
||||
void TWDTInit(void) {
|
||||
// enable Task Watchdog Timer
|
||||
esp_task_wdt_init(WATCHDOG_TASK_SECONDS, true);
|
||||
// if (ret != ESP_OK) { AddLog(LOG_LEVEL_ERROR, "HDW: cannot init Task WDT %i", ret); }
|
||||
esp_task_wdt_add(nullptr);
|
||||
// if (ret != ESP_OK) { AddLog(LOG_LEVEL_ERROR, "HDW: cannot start Task WDT %i", ret); }
|
||||
}
|
||||
|
||||
void TWDTRestore(void) {
|
||||
// restore default WDT values
|
||||
esp_task_wdt_init(WATCHDOG_TASK_SECONDS, false);
|
||||
}
|
||||
|
||||
void TWDTLoop(void) {
|
||||
esp_task_wdt_reset();
|
||||
}
|
||||
|
||||
// custom handler
|
||||
extern "C" {
|
||||
void __attribute__((weak)) esp_task_wdt_isr_user_handler(void)
|
||||
{
|
||||
Serial.printf(">>>>>----------\n");
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
void OsWatchInit(void)
|
||||
{
|
||||
oswatch_blocked_loop = RtcSettings.oswatch_blocked_loop;
|
||||
|
@ -1818,7 +1789,7 @@ uint32_t JsonParsePath(JsonParserObject *jobj, const char *spath, char delim, fl
|
|||
* Serial
|
||||
\*********************************************************************************************/
|
||||
|
||||
String GetSerialConfig(void) {
|
||||
String GetSerialConfig(uint8_t serial_config) {
|
||||
// Settings->serial_config layout
|
||||
// b000000xx - 5, 6, 7 or 8 data bits
|
||||
// b00000x00 - 1 or 2 stop bits
|
||||
|
@ -1827,26 +1798,63 @@ String GetSerialConfig(void) {
|
|||
const static char kParity[] PROGMEM = "NEOI";
|
||||
|
||||
char config[4];
|
||||
config[0] = '5' + (Settings->serial_config & 0x3);
|
||||
config[1] = pgm_read_byte(&kParity[(Settings->serial_config >> 3) & 0x3]);
|
||||
config[2] = '1' + ((Settings->serial_config >> 2) & 0x1);
|
||||
config[0] = '5' + (serial_config & 0x3);
|
||||
config[1] = pgm_read_byte(&kParity[(serial_config >> 3) & 0x3]);
|
||||
config[2] = '1' + ((serial_config >> 2) & 0x1);
|
||||
config[3] = '\0';
|
||||
return String(config);
|
||||
}
|
||||
|
||||
#if defined(ESP32) && CONFIG_IDF_TARGET_ESP32C3
|
||||
// temporary workaround, see https://github.com/espressif/arduino-esp32/issues/5287
|
||||
#include <driver/uart.h>
|
||||
uint32_t GetSerialBaudrate(void) {
|
||||
uint32_t br;
|
||||
uart_get_baudrate(0, &br);
|
||||
return (br / 300) * 300; // Fix ESP32 strange results like 115201
|
||||
String GetSerialConfig(void) {
|
||||
return GetSerialConfig(Settings->serial_config);
|
||||
}
|
||||
#else
|
||||
|
||||
int8_t ParseSerialConfig(const char *pstr)
|
||||
{
|
||||
if (strlen(pstr) < 3)
|
||||
return -1;
|
||||
|
||||
int8_t serial_config = (uint8_t)atoi(pstr);
|
||||
if (serial_config < 5 || serial_config > 8)
|
||||
return -1;
|
||||
serial_config -= 5;
|
||||
|
||||
char parity = (pstr[1] & 0xdf);
|
||||
if ('E' == parity) {
|
||||
serial_config += 0x08; // Even parity
|
||||
}
|
||||
else if ('O' == parity) {
|
||||
serial_config += 0x10; // Odd parity
|
||||
}
|
||||
else if ('N' != parity) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ('2' == pstr[2]) {
|
||||
serial_config += 0x04; // Stop bits 2
|
||||
}
|
||||
else if ('1' != pstr[2]) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return serial_config;
|
||||
}
|
||||
|
||||
|
||||
// workaround disabled 05.11.2021 solved with https://github.com/espressif/arduino-esp32/pull/5549
|
||||
//#if defined(ESP32) && CONFIG_IDF_TARGET_ESP32C3
|
||||
// temporary workaround, see https://github.com/espressif/arduino-esp32/issues/5287
|
||||
//#include <driver/uart.h>
|
||||
//uint32_t GetSerialBaudrate(void) {
|
||||
// uint32_t br;
|
||||
// uart_get_baudrate(0, &br);
|
||||
// return (br / 300) * 300; // Fix ESP32 strange results like 115201
|
||||
//}
|
||||
//#else
|
||||
uint32_t GetSerialBaudrate(void) {
|
||||
return (Serial.baudRate() / 300) * 300; // Fix ESP32 strange results like 115201
|
||||
}
|
||||
#endif
|
||||
//#endif
|
||||
|
||||
#ifdef ESP8266
|
||||
void SetSerialSwap(void) {
|
||||
|
|
|
@ -93,6 +93,10 @@ void ResponseCmndFloat(float value, uint32_t decimals) {
|
|||
Response_P(PSTR("{\"%s\":%*_f}"), XdrvMailbox.command, decimals, &value); // Return float value without quotes
|
||||
}
|
||||
|
||||
void ResponseCmndIdxFloat(float value, uint32_t decimals) {
|
||||
Response_P(PSTR("{\"%s%d\":%*_f}"), XdrvMailbox.command, XdrvMailbox.index, decimals, &value); // Return float value without quotes
|
||||
}
|
||||
|
||||
void ResponseCmndIdxNumber(int value) {
|
||||
Response_P(S_JSON_COMMAND_INDEX_NVALUE, XdrvMailbox.command, XdrvMailbox.index, value);
|
||||
}
|
||||
|
@ -1521,28 +1525,8 @@ void CmndSerialConfig(void)
|
|||
}
|
||||
}
|
||||
else if ((XdrvMailbox.payload >= 5) && (XdrvMailbox.payload <= 8)) {
|
||||
uint8_t serial_config = XdrvMailbox.payload -5; // Data bits 5, 6, 7 or 8, No parity and 1 stop bit
|
||||
|
||||
bool valid = true;
|
||||
char parity = (XdrvMailbox.data[1] & 0xdf);
|
||||
if ('E' == parity) {
|
||||
serial_config += 0x08; // Even parity
|
||||
}
|
||||
else if ('O' == parity) {
|
||||
serial_config += 0x10; // Odd parity
|
||||
}
|
||||
else if ('N' != parity) {
|
||||
valid = false;
|
||||
}
|
||||
|
||||
if ('2' == XdrvMailbox.data[2]) {
|
||||
serial_config += 0x04; // Stop bits 2
|
||||
}
|
||||
else if ('1' != XdrvMailbox.data[2]) {
|
||||
valid = false;
|
||||
}
|
||||
|
||||
if (valid) {
|
||||
int8_t serial_config = ParseSerialConfig(XdrvMailbox.data);
|
||||
if (serial_config >= 0) {
|
||||
SetSerialConfig(serial_config);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,16 +17,18 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//#define USE_PROFILING
|
||||
|
||||
#define PROFILE_THRESHOLD 70 // Minimum duration in milliseconds to start logging
|
||||
//#define USE_PROFILE_DRIVER
|
||||
#define USE_PROFILE_FUNCTION
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Profiling features
|
||||
\*********************************************************************************************/
|
||||
|
||||
// Moved to my_user_config.h (and user_config_override.h)
|
||||
//#define USE_PROFILING // Enable profiling
|
||||
//#define PROFILE_THRESHOLD 70 // Minimum duration in milliseconds to start logging
|
||||
//#define USE_PROFILE_DRIVER // Enable driver profiling
|
||||
//#define USE_PROFILE_FUNCTION // Enable driver function profiling
|
||||
|
||||
/*
|
||||
// Moved to tasmota_globals.h fixing compile warnings
|
||||
#ifndef USE_PROFILING
|
||||
#undef USE_PROFILE_DRIVER
|
||||
#undef USE_PROFILE_FUNCTION
|
||||
|
@ -43,13 +45,17 @@
|
|||
#else
|
||||
#define PROFILE_FUNCTION(DRIVER, INDEX, FUNCTION, START)
|
||||
#endif // USE_PROFILE_DRIVER
|
||||
|
||||
*/
|
||||
/*********************************************************************************************\
|
||||
* Profiling services
|
||||
\*********************************************************************************************/
|
||||
|
||||
#ifdef USE_PROFILING
|
||||
|
||||
#ifndef PROFILE_THRESHOLD
|
||||
#define PROFILE_THRESHOLD 70 // Minimum duration in milliseconds to start logging
|
||||
#endif
|
||||
|
||||
// Below needs to be inline with enum XsnsFunctions
|
||||
const char kXSnsFunctions[] PROGMEM = "SETTINGS_OVERRIDE|PIN_STATE|MODULE_INIT|PRE_INIT|INIT|"
|
||||
"LOOP|EVERY_50_MSECOND|EVERY_100_MSECOND|EVERY_200_MSECOND|EVERY_250_MSECOND|EVERY_SECOND|"
|
||||
|
|
|
@ -377,6 +377,12 @@ void RtcSecond(void)
|
|||
static uint32_t last_sync = 0;
|
||||
static bool mutex = false;
|
||||
|
||||
if ((TasmotaGlobal.init_state >= INIT_GPIOS) && PinUsed(GPIO_HEARTBEAT)) {
|
||||
digitalWrite(Pin(GPIO_HEARTBEAT), ~TasmotaGlobal.heartbeat_inverted &1);
|
||||
delayMicroseconds(50);
|
||||
digitalWrite(Pin(GPIO_HEARTBEAT), TasmotaGlobal.heartbeat_inverted);
|
||||
}
|
||||
|
||||
if (mutex) { return; }
|
||||
|
||||
if (Rtc.time_synced) {
|
||||
|
|
|
@ -1766,6 +1766,10 @@ void GpioInit(void)
|
|||
TasmotaGlobal.ledlnk_inverted = 1;
|
||||
mpin -= (AGPIO(GPIO_LEDLNK_INV) - AGPIO(GPIO_LEDLNK));
|
||||
}
|
||||
else if (mpin == AGPIO(GPIO_HEARTBEAT_INV)) {
|
||||
TasmotaGlobal.heartbeat_inverted = 1;
|
||||
mpin -= (AGPIO(GPIO_HEARTBEAT_INV) - AGPIO(GPIO_HEARTBEAT));
|
||||
}
|
||||
else if ((mpin >= AGPIO(GPIO_PWM1_INV)) && (mpin < (AGPIO(GPIO_PWM1_INV) + MAX_PWMS))) {
|
||||
bitSet(TasmotaGlobal.pwm_inverted, mpin - AGPIO(GPIO_PWM1_INV));
|
||||
mpin -= (AGPIO(GPIO_PWM1_INV) - AGPIO(GPIO_PWM1));
|
||||
|
@ -1891,6 +1895,11 @@ void GpioInit(void)
|
|||
#endif // ESP8266
|
||||
}
|
||||
|
||||
if (PinUsed(GPIO_HEARTBEAT)) {
|
||||
pinMode(Pin(GPIO_HEARTBEAT), OUTPUT);
|
||||
digitalWrite(Pin(GPIO_HEARTBEAT), TasmotaGlobal.heartbeat_inverted);
|
||||
}
|
||||
|
||||
// Digital input
|
||||
for (uint32_t i = 0; i < MAX_SWITCHES; i++) {
|
||||
if (PinUsed(GPIO_INPUT, i)) {
|
||||
|
|
|
@ -73,7 +73,6 @@ const uint8_t MAX_XDRV_DRIVERS = 96; // Max number of allowed driver driv
|
|||
const uint8_t MAX_XSNS_DRIVERS = 128; // Max number of allowed sensor drivers
|
||||
const uint8_t MAX_I2C_DRIVERS = 96; // Max number of allowed i2c drivers
|
||||
const uint8_t MAX_SHUTTERS = 4; // Max number of shutters
|
||||
const uint8_t MAX_SHUTTER_RELAYS = 8; // Max number of shutter relays
|
||||
const uint8_t MAX_SHUTTER_KEYS = 4; // Max number of shutter keys or buttons
|
||||
const uint8_t MAX_PCF8574 = 4; // Max number of PCF8574 devices
|
||||
const uint8_t MAX_RULE_SETS = 3; // Max number of rule sets of size 512 characters
|
||||
|
@ -278,6 +277,8 @@ enum GetDateAndTimeOptions { DT_LOCAL, DT_UTC, DT_LOCALNOTZ, DT_DST, DT_STD, DT_
|
|||
|
||||
enum LoggingLevels {LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE};
|
||||
|
||||
enum InitStates {INIT_NONE, INIT_GPIOS, INIT_DONE};
|
||||
|
||||
enum WifiConfigOptions {WIFI_RESTART, EX_WIFI_SMARTCONFIG, WIFI_MANAGER, EX_WIFI_WPSCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL, WIFI_MANAGER_RESET_ONLY, MAX_WIFI_OPTION};
|
||||
|
||||
enum SwitchModeOptions {TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE, TOGGLEMULTI,
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include <StreamString.h> // Webserver, Updater
|
||||
#include <ext_printf.h>
|
||||
#include <SBuffer.hpp>
|
||||
#include <LList.h>
|
||||
#include <JsonParser.h>
|
||||
#include <JsonGenerator.h>
|
||||
#ifdef USE_ARDUINO_OTA
|
||||
|
@ -148,6 +149,8 @@ struct TasmotaGlobal_t {
|
|||
bool enable_logging; // Enable logging
|
||||
|
||||
StateBitfield global_state; // Global states (currently Wifi and Mqtt) (8 bits)
|
||||
uint8_t init_state; // Tasmota init state
|
||||
uint8_t heartbeat_inverted; // Heartbeat pulse inverted flag
|
||||
uint8_t spi_enabled; // SPI configured
|
||||
uint8_t soft_spi_enabled; // Software SPI configured
|
||||
uint8_t blinks; // Number of LED blinks
|
||||
|
@ -317,9 +320,6 @@ void setup(void) {
|
|||
SettingsLoad();
|
||||
SettingsDelta();
|
||||
|
||||
#ifdef ESP32
|
||||
// TWDTInit(); // Start Task WDT for ESP32 - FreeRTOS only
|
||||
#endif
|
||||
OsWatchInit();
|
||||
|
||||
TasmotaGlobal.seriallog_level = Settings->seriallog_level;
|
||||
|
@ -430,6 +430,8 @@ void setup(void) {
|
|||
XdrvCall(FUNC_PRE_INIT);
|
||||
XsnsCall(FUNC_PRE_INIT);
|
||||
|
||||
TasmotaGlobal.init_state = INIT_GPIOS;
|
||||
|
||||
SetPowerOnState();
|
||||
WifiConnect();
|
||||
|
||||
|
@ -512,9 +514,6 @@ void Scheduler(void) {
|
|||
#endif // USE_DISCOVERY
|
||||
#endif // ESP8266
|
||||
|
||||
#ifdef ESP32
|
||||
// TWDTLoop();
|
||||
#endif
|
||||
OsWatchLoop();
|
||||
ButtonLoop();
|
||||
SwitchLoop();
|
||||
|
|
|
@ -495,6 +495,23 @@ bool first_device_group_is_local = true;
|
|||
#define SHOW_FREE_MEM(WHERE)
|
||||
#endif
|
||||
|
||||
#ifndef USE_PROFILING
|
||||
#undef USE_PROFILE_DRIVER
|
||||
#undef USE_PROFILE_FUNCTION
|
||||
#endif
|
||||
|
||||
#ifdef USE_PROFILE_DRIVER
|
||||
#define PROFILE_DRIVER(DRIVER, FUNCTION, START) AddLogDriver(DRIVER, FUNCTION, START)
|
||||
#else
|
||||
#define PROFILE_DRIVER(DRIVER, FUNCTION, START)
|
||||
#endif // USE_PROFILE_DRIVER
|
||||
|
||||
#ifdef USE_PROFILE_FUNCTION
|
||||
#define PROFILE_FUNCTION(DRIVER, INDEX, FUNCTION, START) AddLogFunction(DRIVER, INDEX, FUNCTION, START)
|
||||
#else
|
||||
#define PROFILE_FUNCTION(DRIVER, INDEX, FUNCTION, START)
|
||||
#endif // USE_PROFILE_DRIVER
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Macro for SetOption synonyms
|
||||
*
|
||||
|
|
|
@ -175,6 +175,7 @@ enum UserSelectablePins {
|
|||
GPIO_BL0939_RX, // BL0939 Serial interface (Dual R3 v2)
|
||||
GPIO_BL0942_RX, // BL0942 Serial interface
|
||||
GPIO_HM330X_SET, // HM330X SET pin (sleep when low)
|
||||
GPIO_HEARTBEAT, GPIO_HEARTBEAT_INV,
|
||||
GPIO_SENSOR_END };
|
||||
|
||||
enum ProgramSelectablePins {
|
||||
|
@ -369,7 +370,8 @@ const char kSensorNames[] PROGMEM =
|
|||
D_SENSOR_VINDRIKTNING_RX "|"
|
||||
D_SENSOR_BL0939_RX "|"
|
||||
D_SENSOR_BL0942_RX "|"
|
||||
D_SENSOR_HM330X_SET
|
||||
D_SENSOR_HM330X_SET "|"
|
||||
D_SENSOR_HEARTBEAT "|" D_SENSOR_HEARTBEAT "_i|"
|
||||
;
|
||||
|
||||
const char kSensorNamesFixed[] PROGMEM =
|
||||
|
@ -428,6 +430,8 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
#endif
|
||||
AGPIO(GPIO_OUTPUT_HI), // Fixed output high
|
||||
AGPIO(GPIO_OUTPUT_LO), // Fixed output low
|
||||
AGPIO(GPIO_HEARTBEAT), // Every second pulsed high
|
||||
AGPIO(GPIO_HEARTBEAT_INV), // Every second pulsed low
|
||||
#ifdef USE_FTC532
|
||||
AGPIO(GPIO_FTC532), // FTC532 touch input
|
||||
#endif
|
||||
|
|
|
@ -2794,9 +2794,6 @@ void HandleUploadLoop(void) {
|
|||
Web.upload_error = 2; // Not enough space
|
||||
return;
|
||||
}
|
||||
#ifdef ESP32
|
||||
// TWDTLoop();
|
||||
#endif
|
||||
if (upload.totalSize && !(upload.totalSize % 102400)) {
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_UPLOAD "Progress %d kB"), upload.totalSize / 1024);
|
||||
}
|
||||
|
|
|
@ -1941,6 +1941,7 @@ void ExecuteCommandBlock(const char * commands, int len)
|
|||
//Going to insert the command into backlog
|
||||
String sCurrentCommand = oneCommand;
|
||||
sCurrentCommand.trim();
|
||||
/*
|
||||
if (sCurrentCommand.length() > 0
|
||||
&& backlog.size() < MAX_BACKLOG && !TasmotaGlobal.backlog_mutex)
|
||||
{
|
||||
|
@ -1950,6 +1951,12 @@ void ExecuteCommandBlock(const char * commands, int len)
|
|||
TasmotaGlobal.backlog_mutex = false;
|
||||
insertPosition++;
|
||||
}
|
||||
*/
|
||||
if ((sCurrentCommand.length() > 0) && (backlog.size() < MAX_BACKLOG)) {
|
||||
//Insert into backlog
|
||||
backlog.add(insertPosition, sCurrentCommand);
|
||||
insertPosition++;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -106,12 +106,11 @@ void TasDiscoverMessage(void) {
|
|||
#ifdef USE_SHUTTER
|
||||
if (Settings->flag3.shutter_mode) {
|
||||
for (uint32_t k = 0; k < MAX_SHUTTERS; k++) {
|
||||
if (0 == Settings->shutter_startrelay[k]) {
|
||||
break;
|
||||
if (Settings->shutter_startrelay[k] > 0) {
|
||||
Shutter[Settings->shutter_startrelay[k]-1] = Shutter[Settings->shutter_startrelay[k]] = 1;
|
||||
} else {
|
||||
if (Settings->shutter_startrelay[k] > 0 && Settings->shutter_startrelay[k] <= MAX_SHUTTER_RELAYS) {
|
||||
Shutter[Settings->shutter_startrelay[k]-1] = Shutter[Settings->shutter_startrelay[k]] = 1;
|
||||
}
|
||||
// terminate loop at first INVALID Settings->shutter_startrelay[i].
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -300,4 +299,4 @@ bool Xdrv12(uint8_t function) {
|
|||
return result;
|
||||
}
|
||||
|
||||
#endif // USE_TASMOTA_DISCOVERY
|
||||
#endif // USE_TASMOTA_DISCOVERY
|
||||
|
|
|
@ -1,18 +1,14 @@
|
|||
/*
|
||||
xdrv_12_home_assistant.ino - home assistant support for Tasmota
|
||||
|
||||
Copyright (C) 2021 Erik Montnemery, Federico Leoni and Theo Arends
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
@ -259,12 +255,11 @@ void HassDiscoverMessage(void) {
|
|||
#ifdef USE_SHUTTER
|
||||
if (Settings->flag3.shutter_mode) {
|
||||
for (uint32_t k = 0; k < MAX_SHUTTERS; k++) {
|
||||
if (0 == Settings->shutter_startrelay[k]) {
|
||||
break;
|
||||
if (Settings->shutter_startrelay[k] > 0) {
|
||||
Shutter[Settings->shutter_startrelay[k]-1] = Shutter[Settings->shutter_startrelay[k]] = 1;
|
||||
} else {
|
||||
if (Settings->shutter_startrelay[k] > 0 && Settings->shutter_startrelay[k] <= MAX_SHUTTER_RELAYS) {
|
||||
Shutter[Settings->shutter_startrelay[k]-1] = Shutter[Settings->shutter_startrelay[k]] = 1;
|
||||
}
|
||||
// terminate loop at first INVALID Settings->shutter_startrelay[i].
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -441,7 +436,7 @@ void HAssAnnounceRelayLight(void)
|
|||
uint8_t TuyaRel = 0;
|
||||
uint8_t TuyaRelInv = 0;
|
||||
uint8_t TuyaDim = 0;
|
||||
uint8_t shutter_mask = 0;
|
||||
power_t shutter_mask = 0;
|
||||
|
||||
#ifdef ESP8266
|
||||
if (PWM_DIMMER == TasmotaGlobal.module_type ) { PwmMod = true; } //
|
||||
|
@ -463,9 +458,12 @@ void HAssAnnounceRelayLight(void)
|
|||
#ifdef USE_SHUTTER
|
||||
if (Settings->flag3.shutter_mode) {
|
||||
for (uint32_t i = 0; i < MAX_SHUTTERS; i++) {
|
||||
if (Settings->shutter_startrelay[i] > 0 && Settings->shutter_startrelay[i] <= MAX_SHUTTER_RELAYS) {
|
||||
if (Settings->shutter_startrelay[i] > 0 ) {
|
||||
bitSet(shutter_mask, Settings->shutter_startrelay[i] -1);
|
||||
bitSet(shutter_mask, Settings->shutter_startrelay[i]);
|
||||
} else {
|
||||
// terminate loop at first INVALID Settings->shutter_startrelay[i].
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -503,7 +501,7 @@ void HAssAnnounceRelayLight(void)
|
|||
|
||||
if (bitRead(shutter_mask, i-1)) {
|
||||
// suppress shutter relays
|
||||
#ifdef USE_LIGHT
|
||||
#ifdef USE_LIGHT
|
||||
} else if ((i < Light.device) && !RelayX) {
|
||||
err_flag = true;
|
||||
AddLog(LOG_LEVEL_ERROR, PSTR("%s"), kHAssError2);
|
||||
|
@ -1003,7 +1001,7 @@ void HAssAnnounceShutters(void)
|
|||
snprintf_P(unique_id, sizeof(unique_id), PSTR("%06X_SHT_%d"), ESP_getChipId(), i + 1);
|
||||
snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/cover/%s/config"), unique_id);
|
||||
|
||||
if (Settings->flag.hass_discovery && Settings->flag3.shutter_mode && Settings->shutter_startrelay[i] > 0 && Settings->shutter_startrelay[i] <= MAX_SHUTTER_RELAYS) {
|
||||
if (Settings->flag.hass_discovery && Settings->flag3.shutter_mode && Settings->shutter_startrelay[i] > 0) {
|
||||
ShowTopic = 0; // Show the new generated topic
|
||||
if (i > MAX_FRIENDLYNAMES) {
|
||||
snprintf_P(stemp1, sizeof(stemp1), PSTR("%s Shutter %d"), SettingsText(SET_DEVICENAME), i + 1);
|
||||
|
@ -1025,6 +1023,9 @@ void HAssAnnounceShutters(void)
|
|||
|
||||
TryResponseAppend_P(HASS_DISCOVER_DEVICE_INFO_SHORT, unique_id, ESP_getChipId());
|
||||
TryResponseAppend_P(PSTR("}"));
|
||||
} else {
|
||||
// terminate loop at first INVALID Settings->shutter_startrelay[i].
|
||||
break;
|
||||
}
|
||||
|
||||
TasmotaGlobal.masterlog_level = ShowTopic;
|
||||
|
|
|
@ -1861,6 +1861,10 @@ void DisplaySetPower(void)
|
|||
XdspCall(FUNC_DISPLAY_POWER);
|
||||
} else {
|
||||
renderer->DisplayOnff(disp_power);
|
||||
#ifdef USE_BERRY
|
||||
// still call Berry virtual display in case it is not managed entirely by renderer
|
||||
Xdsp18(FUNC_DISPLAY_POWER);
|
||||
#endif // USE_BERRY
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1961,6 +1965,10 @@ void ApplyDisplayDimmer(void) {
|
|||
}
|
||||
if (renderer) {
|
||||
renderer->dim8(dimmer8, dimmer8_gamma); // provide 8 bits and gamma corrected dimmer in 8 bits
|
||||
#ifdef USE_BERRY
|
||||
// still call Berry virtual display in case it is not managed entirely by renderer
|
||||
Xdsp18(FUNC_DISPLAY_DIM);
|
||||
#endif // USE_BERRY
|
||||
} else {
|
||||
XdspCall(FUNC_DISPLAY_DIM);
|
||||
}
|
||||
|
|
|
@ -95,6 +95,8 @@ protected:
|
|||
uint8_t _reserved; // power state if the type supports it
|
||||
};
|
||||
|
||||
Z_Data z_data_unk; // dummy object to mark that data is unknown
|
||||
|
||||
Z_Data_Type Z_Data::CharToDataType(char c) {
|
||||
if (c) {
|
||||
if (c == '_') {
|
||||
|
@ -676,7 +678,7 @@ const M & Z_Data_Set::find(uint8_t ep) const {
|
|||
// Output: if reference is null, instantiate object and add it at the end of the list
|
||||
template <class M>
|
||||
M & Z_Data_Set::addIfNull(M & cur, uint8_t ep) {
|
||||
if (nullptr == &cur) {
|
||||
if (&z_data_unk == &cur) {
|
||||
LList_elt<M> * elt = new LList_elt<M>();
|
||||
elt->val()._endpoint = ep;
|
||||
this->addToLast((LList_elt<Z_Data>*)elt);
|
||||
|
@ -697,7 +699,7 @@ const Z_Data & Z_Data_Set::find(Z_Data_Type type, uint8_t ep) const {
|
|||
}
|
||||
}
|
||||
}
|
||||
return *(Z_Data*)nullptr;
|
||||
return z_data_unk; // mark as unknown
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
|
|
|
@ -796,7 +796,7 @@ String Z_Devices::dumpCoordinator(void) const {
|
|||
String Z_Devices::dumpDevice(uint32_t dump_mode, const Z_Device & device) const {
|
||||
JsonGeneratorArray json_arr;
|
||||
|
||||
if (&device == nullptr) {
|
||||
if (&device == &device_unk) {
|
||||
if (dump_mode < 2) {
|
||||
// dump light mode for all devices
|
||||
for (const auto & device2 : _devices) {
|
||||
|
|
|
@ -152,21 +152,22 @@ void ZigbeeHueGroups(String * lights) {
|
|||
}
|
||||
|
||||
void ZigbeeSendHue(uint16_t shortaddr, uint16_t cluster, uint8_t cmd, const SBuffer & s) {
|
||||
ZCLMessage zcl(&s ? s.len() : 0);
|
||||
ZCLMessage zcl(s.len());
|
||||
zcl.shortaddr = shortaddr;
|
||||
zcl.cluster = cluster;
|
||||
zcl.cmd = cmd;
|
||||
zcl.clusterSpecific = true;
|
||||
zcl.needResponse = true;
|
||||
zcl.direct = false; // discover route
|
||||
if (&s) { zcl.buf.replace(s); }
|
||||
zcl.buf.replace(s);
|
||||
zigbeeZCLSendCmd(zcl);
|
||||
}
|
||||
|
||||
// Send commands
|
||||
// Power On/Off
|
||||
void ZigbeeHuePower(uint16_t shortaddr, bool power) {
|
||||
ZigbeeSendHue(shortaddr, 0x0006, power ? 1 : 0, *(SBuffer*)nullptr);
|
||||
SBuffer s(0);
|
||||
ZigbeeSendHue(shortaddr, 0x0006, power ? 1 : 0, s);
|
||||
zigbee_devices.getShortAddr(shortaddr).setPower(power, 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -281,7 +281,6 @@ void ZigbeeInputLoop(void) {
|
|||
// Initialize internal structures
|
||||
void ZigbeeInitSerial(void)
|
||||
{
|
||||
// AddLog(LOG_LEVEL_INFO, PSTR("ZigbeeInit Mem1 = %d"), ESP_getFreeHeap());
|
||||
zigbee.active = false;
|
||||
if (PinUsed(GPIO_ZIGBEE_RX) && PinUsed(GPIO_ZIGBEE_TX)) {
|
||||
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR(D_LOG_ZIGBEE "GPIOs Rx:%d Tx:%d"), Pin(GPIO_ZIGBEE_RX), Pin(GPIO_ZIGBEE_TX));
|
||||
|
@ -293,9 +292,7 @@ void ZigbeeInitSerial(void)
|
|||
uint32_t aligned_buffer = ((uint32_t)TasmotaGlobal.serial_in_buffer + 3) & ~3;
|
||||
zigbee_buffer = new PreAllocatedSBuffer(sizeof(TasmotaGlobal.serial_in_buffer) - 3, (char*) aligned_buffer);
|
||||
} else {
|
||||
// AddLog(LOG_LEVEL_INFO, PSTR("ZigbeeInit Mem2 = %d"), ESP_getFreeHeap());
|
||||
zigbee_buffer = new SBuffer(ZIGBEE_BUFFER_SIZE);
|
||||
// AddLog(LOG_LEVEL_INFO, PSTR("ZigbeeInit Mem3 = %d"), ESP_getFreeHeap());
|
||||
}
|
||||
|
||||
if (PinUsed(GPIO_ZIGBEE_RST)) {
|
||||
|
@ -312,7 +309,6 @@ void ZigbeeInitSerial(void)
|
|||
zigbee.state_machine = true; // start the state machine
|
||||
ZigbeeSerial->flush();
|
||||
}
|
||||
// AddLog(LOG_LEVEL_INFO, PSTR("ZigbeeInit Mem9 = %d"), ESP_getFreeHeap());
|
||||
}
|
||||
|
||||
#ifdef USE_ZIGBEE_ZNP
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue