From 243411916b218395bf989f5a02e3afe966cf129c Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Mon, 3 Jun 2024 14:50:59 +0200
Subject: [PATCH 001/252] Bump v14.1.0.1
---
CHANGELOG.md | 20 +++++++++++---
FIRMWARE.md | 2 +-
README.md | 2 +-
RELEASENOTES.md | 46 +++----------------------------
tasmota/include/tasmota_version.h | 2 +-
5 files changed, 23 insertions(+), 49 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e527fcfac..26c4ae1f9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,12 +3,26 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
-## [14.0.0.4]
+## [14.1.0.1]
### Added
-- SML FastExit for binary SML parsing (#21497)
### Breaking Changed
+### Changed
+
+### Fixed
+
+### Removed
+
+## [Released]
+
+## [14.1.0] 20240603
+- Release Rachel
+
+## [14.0.0.4] 20240603
+### Added
+- SML FastExit for binary SML parsing (#21497)
+
### Changed
- GPIOViewer from v1.5.3 to v1.5.4 (No functional change)
- TCP bridge increased baudrate selection (#21528)
@@ -76,8 +90,6 @@ All notable changes to this project will be documented in this file.
### Removed
- Support of old insecure fingerprint algorithm. Deprecated since v8.4.0 (#21417)
-## [Released]
-
## [14.0.0] 20240515
- Release Rodney
diff --git a/FIRMWARE.md b/FIRMWARE.md
index 3e3bc594d..91fa97923 100644
--- a/FIRMWARE.md
+++ b/FIRMWARE.md
@@ -18,7 +18,7 @@ See [CHANGELOG.md](https://github.com/arendst/Tasmota/blob/development/tasmota/C
## Development
-[](https://github.com/arendst/Tasmota)
+[](https://github.com/arendst/Tasmota)
[](http://ota.tasmota.com/tasmota/)
[](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+CI%22)
[](https://github.com/arendst/Tasmota/actions?query=workflow%3A%22Tasmota+ESP32+CI%22)
diff --git a/README.md b/README.md
index 746d7c4f2..b33390c3b 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ Firmware binaries can be downloaded from http://ota.tasmota.com/tasmota/release/
## Development
-[](https://github.com/arendst/Tasmota)
+[](https://github.com/arendst/Tasmota)
[](http://ota.tasmota.com/tasmota/)
[](https://github.com/arendst/Tasmota/actions/workflows/build_all_the_things.yml)
[](https://github.com/arendst/Tasmota/actions/workflows/Tasmota_build_devel.yml)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 030fa8183..01031a582 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -40,7 +40,7 @@ This release will be supported from ESP32/Arduino library Core version **3.0.0**
Support of ESP8266 Core versions before 2.7.6 and ESP32 Core versions before 3.0.0 have been removed.
-### Known issues with v14.0.0
+### Known issues with v14.1.0
Due to the change from ESP32 Arduino Core2/IDF4 to Arduino Core3/IDF5 not all functionality has been restored. The following features are known not to work on ESP32:
- Wifi Range Extender [#21200](https://github.com/arendst/Tasmota/issues/21200)
@@ -80,7 +80,7 @@ Latest released binaries can be downloaded from
- http://ota.tasmota.com/tasmota/release
Historical binaries can be downloaded from
-- http://ota.tasmota.com/tasmota/release-14.0.0
+- http://ota.tasmota.com/tasmota/release-14.1.0
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz``
@@ -109,7 +109,7 @@ Latest released binaries can be downloaded from
- https://ota.tasmota.com/tasmota32/release
Historical binaries can be downloaded from
-- https://ota.tasmota.com/tasmota32/release-14.0.0
+- https://ota.tasmota.com/tasmota32/release-14.1.0
The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasmota.com/tasmota32/release/tasmota32.bin``
@@ -119,49 +119,11 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
[Complete list](BUILDS.md) of available feature and sensors.
-## Changelog v14.0.0.4
+## Changelog v14.1.0.1
### Added
-- Optional command ``WebRun`` (as WebQuery extension) [#21364](https://github.com/arendst/Tasmota/issues/21364)
-- Support for Knx dimmer and color [#21434](https://github.com/arendst/Tasmota/issues/21434)
-- SML FastExit for binary SML parsing [#21497](https://github.com/arendst/Tasmota/issues/21497)
-- Berry add reuse of methods for interface-like code reuse [#21500](https://github.com/arendst/Tasmota/issues/21500)
-- Support for Matter 1.3 Water leak detectors [#21456](https://github.com/arendst/Tasmota/issues/21456)
-
-### Breaking Changed
### Changed
-- ESP32 Core3 platform update from 2024.05.11 to 2024.05.13 [#21524](https://github.com/arendst/Tasmota/issues/21524)
-- GPIOViewer from v1.5.2 to v1.5.4
-- On universal display remove default backlight power if a PWM channel is used for backlight
-- TCP bridge increased baudrate selection [#21528](https://github.com/arendst/Tasmota/issues/21528)
-- Support W5500 SPI ethernet using four SPI GPIOs only without IRQ and RESET
-- ESP32 compiler option from `target-align` to `no-target-align` [#21407](https://github.com/arendst/Tasmota/issues/21407)
-- ESP32 I2S audio improvements [#21433](https://github.com/arendst/Tasmota/issues/21433)
-- Berry binary compiled with gcc [#21426](https://github.com/arendst/Tasmota/issues/21426)
-- Berry allow easy solidification of external Berry [#21430](https://github.com/arendst/Tasmota/issues/21430)
-- Berry change internal storage of parent class for methods [#21490](https://github.com/arendst/Tasmota/issues/21490)
-- Berry coc parser keeps order of variables [#21542](https://github.com/arendst/Tasmota/issues/21542)
### Fixed
-- Domoticz re-subscribe on MQTT reconnect. Regression from v13.4.0.3 [#21281](https://github.com/arendst/Tasmota/issues/21281)
-- Watchdog restart or freeze if ``displaytext`` is more than 128 characters [#21401](https://github.com/arendst/Tasmota/issues/21401)
-- Wrong timeout in `WebQuery` and `webclient` since Core3 [#21442](https://github.com/arendst/Tasmota/issues/21442)
-- uDisplay Parallel display on Core3 [#21529](https://github.com/arendst/Tasmota/issues/21529)
-- UfsServe watchdog on large folder [#21486](https://github.com/arendst/Tasmota/issues/21486)
-- SML compile error when median-filter is disabled [#21495](https://github.com/arendst/Tasmota/issues/21495)
-- Hydreon RG15 malformed JSON string [#21508](https://github.com/arendst/Tasmota/issues/21508)
-- Telegram TLS fingerprint, remove CA validation [#21514](https://github.com/arendst/Tasmota/issues/21514)
-- Zigbee crash when removing `ZbName` [#21449](https://github.com/arendst/Tasmota/issues/21449)
-- Avoid connection errors when switching to safeboot to upload OTA firmware [#21428](https://github.com/arendst/Tasmota/issues/21428)
-- ESP32 slow response when using UDP as in emulation [#21470](https://github.com/arendst/Tasmota/issues/21470)
-- ESP32 BLE fix scanning [#21451](https://github.com/arendst/Tasmota/issues/21451)
-- ESP32 I2S multiple fixes [#21511](https://github.com/arendst/Tasmota/issues/21511)
-- I2S APLL not supported on all SOCs [#21483](https://github.com/arendst/Tasmota/issues/21483)
-- Webradio crash with invalid url [#21446](https://github.com/arendst/Tasmota/issues/21446)
-- Berry Leds matrix alternate more and error about 'bri' attribute [#21431](https://github.com/arendst/Tasmota/issues/21431)
-- LVGL exception when using tjpegd [#21544](https://github.com/arendst/Tasmota/issues/21544)
-- Matter auto-fix IPv6 link-local zone id when network reconnects [#21494](https://github.com/arendst/Tasmota/issues/21494)
### Removed
-- Support of old insecure fingerprint algorithm. Deprecated since v8.4.0 [#21417](https://github.com/arendst/Tasmota/issues/21417)
-- Deprecated code from drivers, `USE_TTGO_WATCH` and `USE_M5STACK_CORE2` [#21533](https://github.com/arendst/Tasmota/issues/21533)
diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h
index a46bf1d7d..31371855c 100644
--- a/tasmota/include/tasmota_version.h
+++ b/tasmota/include/tasmota_version.h
@@ -22,6 +22,6 @@
#define TASMOTA_SHA_SHORT // Filled by Github sed
-const uint32_t TASMOTA_VERSION = 0x0E000004; // 14.0.0.4
+const uint32_t TASMOTA_VERSION = 0x0E010001; // 14.1.0.1
#endif // _TASMOTA_VERSION_H_
From a51c511d526acd4a1b78c71ec1502ba5f3702fdf Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Mon, 3 Jun 2024 21:14:44 +0200
Subject: [PATCH 002/252] Berry bytes solidification (#21558)
* Berry prepare for bytes() solidification
* Berry solidification of bytes objects
* Berry solidification of `bytes` instances
---
CHANGELOG.md | 1 +
lib/libesp32/berry/src/be_byteslib.c | 105 ++++++++++++--------
lib/libesp32/berry/src/be_byteslib.h | 44 ++++++++
lib/libesp32/berry/src/be_class.h | 10 ++
lib/libesp32/berry/src/be_constobj.h | 45 +++++++++
lib/libesp32/berry/src/be_object.h | 1 +
lib/libesp32/berry/src/be_solidifylib.c | 32 ++++--
lib/libesp32/berry/tools/coc/bytes_build.py | 41 ++++++++
lib/libesp32/berry/tools/coc/coc | 7 ++
lib/libesp32/berry/tools/coc/coc_parser.py | 14 +++
10 files changed, 250 insertions(+), 50 deletions(-)
create mode 100644 lib/libesp32/berry/src/be_byteslib.h
create mode 100644 lib/libesp32/berry/tools/coc/bytes_build.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 26c4ae1f9..3bd18f5d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
## [14.1.0.1]
### Added
+- Berry solidification of `bytes` instances
### Breaking Changed
diff --git a/lib/libesp32/berry/src/be_byteslib.c b/lib/libesp32/berry/src/be_byteslib.c
index 1789dca94..5c50a36ba 100644
--- a/lib/libesp32/berry/src/be_byteslib.c
+++ b/lib/libesp32/berry/src/be_byteslib.c
@@ -16,28 +16,7 @@
#include "be_constobj.h"
#include
#include
-
-#define BYTES_DEFAULT_SIZE 28 // default pre-reserved size for buffer (keep 4 bytes for len/size)
-#define BYTES_OVERHEAD 4 // bytes overhead to be added when allocating (used to store len and size)
-#define BYTES_HEADROOM 8 // keep a natural headroom of 8 bytes when resizing
-
-#define BYTES_SIZE_FIXED -1 // if size is -1, then the bytes object cannot be reized
-#define BYTES_SIZE_MAPPED -2 // if size is -2, then the bytes object is mapped to a fixed memory region, i.e. cannot be resized
-
-#define BYTES_RESIZE_ERROR "attribute_error"
-#define BYTES_RESIZE_MESSAGE "bytes object size if fixed and cannot be resized"
-/* be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); */
-
-typedef struct buf_impl {
- int32_t size; // size in bytes of the buffer
- int32_t len; // current size of the data in buffer. Invariant: len <= size
- uint8_t *bufptr; // the actual data
- int32_t prev_size; // previous value read from the instance
- int32_t prev_len; // previous value read from the instance
- uint8_t *prev_bufptr;
- bbool fixed; // is size fixed? (actually encoded as negative size)
- bbool mapped;
-} buf_impl;
+#include "be_byteslib.h"
/********************************************************************
** Base64 lib from https://github.com/Densaugeo/base64_arduino
@@ -481,7 +460,16 @@ static void buf_add_hex(buf_impl* attr, const char *hex, size_t len)
********************************************************************/
/* if the bufptr is null, don't try to dereference and raise an exception instead */
-static void check_ptr(bvm *vm, buf_impl* attr) {
+static void check_ptr(bvm *vm, const buf_impl* attr) {
+ if (!attr->bufptr) {
+ be_raise(vm, "value_error", "operation not allowed on pointer");
+ }
+}
+
+static void check_ptr_modifiable(bvm *vm, const buf_impl* attr) {
+ if (attr->solidified) {
+ be_raise(vm, "value_error", BYTES_READ_ONLY_MESSAGE);
+ }
if (!attr->bufptr) {
be_raise(vm, "value_error", "operation not allowed on pointer");
}
@@ -504,10 +492,14 @@ buf_impl m_read_attributes(bvm *vm, int idx)
int32_t signed_size = be_toint(vm, -1);
attr.fixed = bfalse;
attr.mapped = bfalse;
+ attr.solidified = bfalse;
if (signed_size < 0) {
if (signed_size == BYTES_SIZE_MAPPED) {
attr.mapped = btrue;
}
+ if (signed_size == BYTES_SIZE_SOLIDIFIED) {
+ attr.solidified = btrue;
+ }
signed_size = attr.len;
attr.fixed = btrue;
}
@@ -516,10 +508,18 @@ buf_impl m_read_attributes(bvm *vm, int idx)
return attr;
}
+static void m_assert_not_readlonly(bvm *vm, const buf_impl* attr)
+{
+ if (attr->solidified) {
+ be_raise(vm, "value_error", BYTES_READ_ONLY_MESSAGE);
+ }
+}
+
/* Write back attributes to the bytes instance, only if values changed after loading */
/* stack item 1 must contain the instance */
void m_write_attributes(bvm *vm, int rel_idx, const buf_impl * attr)
{
+ m_assert_not_readlonly(vm, attr);
int idx = be_absindex(vm, rel_idx);
if (attr->bufptr != attr->prev_bufptr) {
be_pushcomptr(vm, attr->bufptr);
@@ -549,6 +549,7 @@ void m_write_attributes(bvm *vm, int rel_idx, const buf_impl * attr)
// buf_impl * bytes_realloc(bvm *vm, buf_impl *oldbuf, int32_t size)
void bytes_realloc(bvm *vm, buf_impl * attr, int32_t size)
{
+ m_assert_not_readlonly(vm, attr);
if (!attr->fixed && size < 4) { size = 4; }
if (size > vm->bytesmaxsize) { size = vm->bytesmaxsize; }
size_t oldsize = attr->bufptr ? attr->size : 0;
@@ -590,7 +591,7 @@ static void bytes_new_object(bvm *vm, size_t size)
static int m_init(bvm *vm)
{
int argc = be_top(vm);
- buf_impl attr = { 0, 0, NULL, 0, -1, NULL, bfalse, bfalse }; /* initialize prev_values to invalid to force a write at the end */
+ buf_impl attr = { 0, 0, NULL, 0, -1, NULL, bfalse, bfalse, bfalse }; /* initialize prev_values to invalid to force a write at the end */
/* size cannot be 0, len cannot be negative */
const char * hex_in = NULL;
@@ -713,7 +714,7 @@ buf_impl bytes_check_data(bvm *vm, size_t add_size) {
return attr;
}
-static size_t tohex(char * out, size_t outsz, const uint8_t * in, size_t insz) {
+size_t be_bytes_tohex(char * out, size_t outsz, const uint8_t * in, size_t insz) {
static const char * hex = "0123456789ABCDEF";
const uint8_t * pin = in;
char * pout = out;
@@ -745,7 +746,7 @@ static int m_tostring(bvm *vm)
char * hex_out = be_pushbuffer(vm, hex_len);
size_t l = be_strlcpy(hex_out, "bytes('", hex_len);
- l += tohex(&hex_out[l], hex_len - l, attr.bufptr, len);
+ l += be_bytes_tohex(&hex_out[l], hex_len - l, attr.bufptr, len);
if (truncated) {
l += be_strlcpy(&hex_out[l], "...", hex_len - l);
}
@@ -767,7 +768,7 @@ static int m_tohex(bvm *vm)
size_t hex_len = len * 2 + 1;
char * hex_out = be_pushbuffer(vm, hex_len);
- size_t l = tohex(hex_out, hex_len, attr.bufptr, len);
+ size_t l = be_bytes_tohex(hex_out, hex_len, attr.bufptr, len);
be_pushnstring(vm, hex_out, l); /* make escape string from buffer */
be_remove(vm, -2); /* remove buffer */
@@ -795,7 +796,7 @@ static int m_fromstring(bvm *vm)
const char *s = be_tostring(vm, 2);
int32_t len = be_strlen(vm, 2); /* calling be_strlen to support null chars in string */
buf_impl attr = bytes_check_data(vm, 0);
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed && attr.len != len) {
be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE);
}
@@ -823,7 +824,7 @@ static int m_add(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 4); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed) { be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); }
if (argc >= 2 && be_isint(vm, 2)) {
int32_t v = be_toint(vm, 2);
@@ -949,7 +950,7 @@ static int m_set(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (argc >=3 && be_isint(vm, 2) && be_isint(vm, 3)) {
int32_t idx = be_toint(vm, 2);
int32_t value = be_toint(vm, 3);
@@ -985,7 +986,7 @@ static int m_setfloat(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (argc >=3 && be_isint(vm, 2) && (be_isint(vm, 3) || be_isreal(vm, 3))) {
int32_t idx = be_toint(vm, 2);
float val_f = (float) be_toreal(vm, 3);
@@ -1011,7 +1012,7 @@ static int m_addfloat(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 4); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed) { be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); }
if (argc >=2 && (be_isint(vm, 2) || be_isreal(vm, 2))) {
float val_f = (float) be_toreal(vm, 2);
@@ -1040,7 +1041,7 @@ static int m_setbytes(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (argc >=3 && be_isint(vm, 2) && (be_isbytes(vm, 3))) {
int32_t idx = be_toint(vm, 2);
size_t from_len_total;
@@ -1084,7 +1085,7 @@ static int m_reverse(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
int32_t idx = 0; /* start from index 0 */
int32_t len = attr.len; /* entire len */
@@ -1135,7 +1136,7 @@ static int m_setitem(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (argc >=3 && be_isint(vm, 2) && be_isint(vm, 3)) {
int index = be_toint(vm, 2);
int val = be_toint(vm, 3);
@@ -1153,7 +1154,7 @@ static int m_item(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = bytes_check_data(vm, 0); /* we reserve 4 bytes anyways */
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (argc >=2 && be_isint(vm, 2)) { /* single byte */
int index = be_toint(vm,2);
if (index < 0) {
@@ -1215,6 +1216,7 @@ static int m_resize(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = m_read_attributes(vm, 1);
+ check_ptr_modifiable(vm, &attr);
if (argc <= 1 || !be_isint(vm, 2)) {
be_raise(vm, "type_error", "size must be of type 'int'");
@@ -1237,6 +1239,7 @@ static int m_resize(bvm *vm)
static int m_clear(bvm *vm)
{
buf_impl attr = m_read_attributes(vm, 1);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed) { be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); }
attr.len = 0;
m_write_attributes(vm, 1, &attr); /* update instance */
@@ -1293,7 +1296,7 @@ static int m_connect(bvm *vm)
{
int argc = be_top(vm);
buf_impl attr = m_read_attributes(vm, 1);
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed) { be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); }
if (argc >= 2 && (be_isbytes(vm, 2) || be_isint(vm, 2) || be_isstring(vm, 2))) {
if (be_isint(vm, 2)) {
@@ -1390,7 +1393,7 @@ static int m_fromb64(bvm *vm)
int32_t bin_len = decode_base64_length((unsigned char*)s); /* do a first pass to calculate the buffer size */
buf_impl attr = m_read_attributes(vm, 1);
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed && attr.len != bin_len) {
be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE);
}
@@ -1429,7 +1432,7 @@ static int m_fromhex(bvm *vm)
int32_t bin_len = (s_len - from) / 2;
buf_impl attr = m_read_attributes(vm, 1);
- check_ptr(vm, &attr);
+ check_ptr_modifiable(vm, &attr);
if (attr.fixed && attr.len != bin_len) {
be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE);
}
@@ -1483,6 +1486,18 @@ static int m_is_mapped(bvm *vm)
be_return(vm);
}
+/*
+ * Returns `btrue` if the buffer is solidified and read only
+ *
+ * `isreadonly() -> bool`
+ */
+static int m_is_readonly(bvm *vm)
+{
+ buf_impl attr = m_read_attributes(vm, 1);
+ be_pushbool(vm, attr.solidified);
+ be_return(vm);
+}
+
/*
* Change the pointer to a mapped buffer.
*
@@ -1497,6 +1512,9 @@ static int m_change_buffer(bvm *vm)
int argc = be_top(vm);
if (argc >= 2 && be_iscomptr(vm, 2)) {
buf_impl attr = m_read_attributes(vm, 1);
+ if (attr.solidified) {
+ be_raise(vm, "value_error", BYTES_READ_ONLY_MESSAGE);
+ }
if (!attr.mapped) {
be_raise(vm, "type_error", "bytes() object must be mapped");
}
@@ -1764,11 +1782,12 @@ void be_load_byteslib(bvm *vm)
{
static const bnfuncinfo members[] = {
{ ".p", NULL },
- { ".size", NULL },
{ ".len", NULL },
+ { ".size", NULL },
{ "_buffer", m_buffer },
{ "_change_buffer", m_change_buffer },
{ "ismapped", m_is_mapped },
+ { "isreadonly", m_is_readonly },
{ "init", m_init },
{ "deinit", m_deinit },
{ "tostring", m_tostring },
@@ -1810,14 +1829,18 @@ void be_load_byteslib(bvm *vm)
be_regclass(vm, "bytes", members);
}
#else
+
+#include "../generate/be_const_bytes_def.h"
+
/* @const_object_info_begin
class be_class_bytes (scope: global, name: bytes) {
.p, var
- .size, var
.len, var
+ .size, var
_buffer, func(m_buffer)
_change_buffer, func(m_change_buffer)
ismapped, func(m_is_mapped)
+ isreadonly, func(m_is_readonly)
init, func(m_init)
deinit, func(m_deinit)
tostring, func(m_tostring)
diff --git a/lib/libesp32/berry/src/be_byteslib.h b/lib/libesp32/berry/src/be_byteslib.h
new file mode 100644
index 000000000..bcf98d125
--- /dev/null
+++ b/lib/libesp32/berry/src/be_byteslib.h
@@ -0,0 +1,44 @@
+/********************************************************************
+** Copyright (c) 2018-2020 Guan Wenliang - Stephan Hadinger
+** This file is part of the Berry default interpreter.
+** skiars@qq.com, https://github.com/Skiars/berry
+** See Copyright Notice in the LICENSE file or at
+** https://github.com/Skiars/berry/blob/master/LICENSE
+********************************************************************/
+#ifndef __BE_BYTESLIB_H
+#define __BE_BYTESLIB_H
+
+#include "be_object.h"
+
+#define BYTES_DEFAULT_SIZE 28 /* default pre-reserved size for buffer (keep 4 bytes for len/size) */
+#define BYTES_OVERHEAD 4 /* bytes overhead to be added when allocating (used to store len and size) */
+#define BYTES_HEADROOM 8 /* keep a natural headroom of 8 bytes when resizing */
+
+#define BYTES_SIZE_FIXED -1 /* if size is -1, then the bytes object cannot be reized */
+#define BYTES_SIZE_MAPPED -2 /* if size is -2, then the bytes object is mapped to a fixed memory region, i.e. cannot be resized */
+#define BYTES_SIZE_SOLIDIFIED -3 /* is size is -3, then the bytes object is solidified and cannot be resized nor modified */
+
+#define BYTES_RESIZE_ERROR "attribute_error"
+#define BYTES_RESIZE_MESSAGE "bytes object size if fixed and cannot be resized"
+#define BYTES_READ_ONLY_MESSAGE "bytes object is read only"
+/* be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); */
+
+typedef struct buf_impl {
+ int32_t size; // size in bytes of the buffer
+ int32_t len; // current size of the data in buffer. Invariant: len <= size
+ uint8_t *bufptr; // the actual data
+ int32_t prev_size; // previous value read from the instance
+ int32_t prev_len; // previous value read from the instance
+ uint8_t *prev_bufptr;
+ bbool fixed; // is size fixed? (actually encoded as negative size)
+ bbool mapped;
+ bbool solidified;
+} buf_impl;
+
+size_t be_bytes_tohex(char * out, size_t outsz, const uint8_t * in, size_t insz);
+
+#if BE_USE_PRECOMPILED_OBJECT
+#include "../generate/be_const_bytes.h"
+#endif
+
+#endif
diff --git a/lib/libesp32/berry/src/be_class.h b/lib/libesp32/berry/src/be_class.h
index f80ca8799..12f317b5f 100644
--- a/lib/libesp32/berry/src/be_class.h
+++ b/lib/libesp32/berry/src/be_class.h
@@ -49,6 +49,16 @@ struct binstance {
bvalue members[1]; /* members variable data field */
};
+/* special structure accepting 3 instance variables used only for bytes() solidification */
+struct binstance_arg3 {
+ bcommon_header;
+ struct binstance *super;
+ struct binstance *sub;
+ bclass *_class;
+ bgcobject *gray; /* for gc gray list */
+ bvalue members[3]; /* members variable data field */
+};
+
bclass* be_newclass(bvm *vm, bstring *name, bclass *super);
void be_class_compress(bvm *vm, bclass *c);
int be_class_attribute(bvm *vm, bclass *c, bstring *attr);
diff --git a/lib/libesp32/berry/src/be_constobj.h b/lib/libesp32/berry/src/be_constobj.h
index 34245050a..f478b3150 100644
--- a/lib/libesp32/berry/src/be_constobj.h
+++ b/lib/libesp32/berry/src/be_constobj.h
@@ -19,6 +19,7 @@ extern "C" {
#include "be_class.h"
#include "be_string.h"
#include "be_module.h"
+#include "be_byteslib.h"
#ifndef __cplusplus
@@ -27,6 +28,25 @@ extern "C" {
.type = (_t), \
.marked = GC_CONST
+#define be_define_const_bytes(_name, ...) \
+ const uint8_t be_const_bin_##_name[] = { __VA_ARGS__ }
+
+#define be_const_bytes_instance(_bytes) { \
+ .v.c = ( \
+ & (const binstance_arg3) { \
+ be_const_header(BE_INSTANCE), \
+ .super = NULL, \
+ .sub = NULL, \
+ ._class = (bclass*) &be_class_bytes, \
+ .members = { \
+ be_const_comptr(&be_const_bin_##_bytes), \
+ be_const_int(sizeof(#_bytes) / 2), \
+ be_const_int(BYTES_SIZE_SOLIDIFIED) \
+ } \
+ }), \
+ .type = BE_INSTANCE \
+}
+
#define be_define_const_str_weak(_name, _s, _len) \
const bcstring be_const_str_##_name = { \
.next = NULL, \
@@ -232,6 +252,27 @@ const bntvmodule_t be_native_module(_module) = { \
.members = _members \
}
+#define be_nested_simple_instance_1_arg(_class_ptr, arg0) \
+ & (const binstance) { \
+ be_const_header(BE_INSTANCE), \
+ .super = NULL, \
+ .sub = NULL, \
+ ._class = (bclass*) _class_ptr, \
+ .members = { arg0 } \
+ }
+
+
+/* only instances with no super and no sub instance are supported */
+/* primarily for `list` and `map`*/
+#define be_nested_simple_instance_3_args(_class_ptr, arg0, arg1, arg2) \
+ & (const binstance_arg3) { \
+ be_const_header(BE_INSTANCE), \
+ .super = NULL, \
+ .sub = NULL, \
+ ._class = (bclass*) _class_ptr, \
+ .members = { arg0, arg1, arg2 } \
+ }
+
#define be_nested_map(_size, _slots) \
& (const bmap) { \
be_const_header(BE_MAP), \
@@ -298,6 +339,9 @@ const bntvmodule_t be_native_module(_module) = { \
#else
+#define be_define_const_bytes(_name, ...) \
+ const uint8_t be_const_bin_##_name[] = { __VA_ARGS__ }
+
#define be_define_const_str_weak(_name, _s, _len) \
const bcstring be_const_str_##_name = { \
NULL, \
@@ -440,6 +484,7 @@ const bntvmodule_t be_native_module_##_module = { \
/* provide pointers to map and list classes for solidified code */
extern const bclass be_class_list;
extern const bclass be_class_map;
+extern const bclass be_class_bytes;
#ifdef __cplusplus
}
diff --git a/lib/libesp32/berry/src/be_object.h b/lib/libesp32/berry/src/be_object.h
index e386cfa25..d479f9b10 100644
--- a/lib/libesp32/berry/src/be_object.h
+++ b/lib/libesp32/berry/src/be_object.h
@@ -62,6 +62,7 @@ typedef struct bclosure bclosure;
typedef struct bntvclos bntvclos;
typedef struct bclass bclass;
typedef struct binstance binstance;
+typedef struct binstance_arg3 binstance_arg3;
typedef struct blist blist;
typedef struct bmap bmap;
typedef struct bupval bupval;
diff --git a/lib/libesp32/berry/src/be_solidifylib.c b/lib/libesp32/berry/src/be_solidifylib.c
index 78d5c6b41..5691dce5e 100644
--- a/lib/libesp32/berry/src/be_solidifylib.c
+++ b/lib/libesp32/berry/src/be_solidifylib.c
@@ -17,6 +17,7 @@
#include "be_decoder.h"
#include "be_sys.h"
#include "be_mem.h"
+#include "be_byteslib.h"
#include
#include
#include
@@ -24,6 +25,7 @@
extern const bclass be_class_list;
extern const bclass be_class_map;
+extern const bclass be_class_bytes;
#if BE_USE_SOLIDIFY_MODULE
#include
@@ -288,20 +290,32 @@ static void m_solidify_bvalue(bvm *vm, bbool str_literal, const bvalue * 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 if (cl == &be_class_list) { cl_ptr = "list"; }
+ else if (cl == &be_class_bytes) { cl_ptr = "bytes"; }
+ else { be_raise(vm, "internal_error", "unsupported class"); }
+
+ if (cl == &be_class_bytes) {
+ const void * bufptr = var_toobj(&ins->members[0]);
+ int32_t len = var_toint(&ins->members[1]);
+ size_t hex_len = len * 2 + 1;
+
+ char * hex_out = be_pushbuffer(vm, hex_len);
+ be_bytes_tohex(hex_out, hex_len, bufptr, len);
+ logfmt("be_const_bytes_instance(%s)", hex_out);
+ be_pop(vm, 1);
} else {
- logfmt(" be_const_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, str_literal, &ins->members[0], prefixname, key, fout);
+ logfmt(" ) } ))");
}
- m_solidify_bvalue(vm, str_literal, &ins->members[0], prefixname, key, fout);
- logfmt(" ) } ))");
}
}
break;
diff --git a/lib/libesp32/berry/tools/coc/bytes_build.py b/lib/libesp32/berry/tools/coc/bytes_build.py
new file mode 100644
index 000000000..ab266f0af
--- /dev/null
+++ b/lib/libesp32/berry/tools/coc/bytes_build.py
@@ -0,0 +1,41 @@
+import json
+
+class bytes_build:
+ def __init__(self, map):
+ self.map = map.copy()
+
+ def build(self, path):
+ prefix = path + "/be_const_bytes"
+ self.writefile(prefix + "_def.h", self.build_bytes_def())
+ self.writefile(prefix + ".h", self.build_bytes_ext())
+
+ def writefile(self, filename, text):
+ buf = ""
+ try:
+ with open(filename) as f:
+ buf = f.read()
+ except FileNotFoundError:
+ pass
+ if buf != text:
+ with open(filename, "w") as f:
+ f.write(text)
+
+ def build_bytes_def(self):
+ ostr = ""
+ ostr += "/* binary arrays */\n"
+ ostr += "be_define_const_bytes(,);\n"
+ for k in self.map:
+ ostr += "be_define_const_bytes("
+ ostr += k + ", " + ", ".join( [ "0x" + k[i:i+2] for i in range(0, len(k), 2)] )
+ ostr += ");\n"
+
+ return ostr
+
+ def build_bytes_ext(self):
+ ostr = ""
+ ostr += "/* extern binary arrays */\n"
+ ostr += "extern const uint8_t be_const_bin_[];\n"
+ for k in self.map:
+ ostr += "extern const uint8_t be_const_bin_" + k + "[];\n"
+
+ return ostr
\ No newline at end of file
diff --git a/lib/libesp32/berry/tools/coc/coc b/lib/libesp32/berry/tools/coc/coc
index b80d0ac08..ffc833433 100755
--- a/lib/libesp32/berry/tools/coc/coc
+++ b/lib/libesp32/berry/tools/coc/coc
@@ -4,6 +4,7 @@ import re
import os
from coc_parser import *
from str_build import *
+from bytes_build import *
from block_builder import *
from macro_table import *
@@ -20,6 +21,7 @@ class builder:
self.strmap = {}
self.strmap_weak = {}
self.strmap_long = {}
+ self.bytesmap = {}
self.macro = macro_table()
for path in self.config:
@@ -30,6 +32,9 @@ class builder:
sb = str_build(self.strmap, self.strmap_weak, self.strmap_long)
sb.build(self.output)
+
+ sbytes = bytes_build(self.bytesmap)
+ sbytes.build(self.output)
def parse_file(self, filename):
if re.search(r"\.(h|c|cc|cpp)$", filename):
@@ -45,6 +50,8 @@ class builder:
self.strmap_weak[s] = 0
for s in parser.strtab_long:
self.strmap_long[s] = 0
+ for s in parser.bintab:
+ self.bytesmap[s] = 0
for obj in parser.objects:
builder = block_builder(obj, self.macro)
for s in builder.strtab:
diff --git a/lib/libesp32/berry/tools/coc/coc_parser.py b/lib/libesp32/berry/tools/coc/coc_parser.py
index 68c81a2ba..7319dc337 100644
--- a/lib/libesp32/berry/tools/coc/coc_parser.py
+++ b/lib/libesp32/berry/tools/coc/coc_parser.py
@@ -23,10 +23,12 @@ class coc_parser:
self.strtab = set()
self.strtab_weak = set()
self.strtab_long = set()
+ self.bintab = set()
self.text = text
self.parsers = {
"@const_object_info_begin": self.parse_object,
"be_const_str_": self.parse_string,
+ "be_const_bytes_instance(": self.parse_bin,
"be_const_key(": self.parse_string,
"be_nested_str(": self.parse_string,
"be_const_key_weak(": self.parse_string_weak,
@@ -77,6 +79,7 @@ class coc_parser:
def parse_word(self):
self.skip_space()
r = re.match(r"\w+", self.text)
+ if not r: return None
self.text = self.text[r.end(0):]
return r[0]
@@ -120,6 +123,7 @@ class coc_parser:
def parse_string(self):
if not self.text[0].isalnum() and self.text[0] != '_': return # do not proceed, maybe false positive in solidify
ident = self.parse_word()
+ if not ident: return
literal = unescape_operator(ident)
if not literal in self.strtab:
self.strtab.add(literal)
@@ -128,6 +132,7 @@ class coc_parser:
def parse_string_weak(self):
if not self.text[0].isalnum() and self.text[0] != '_': return # do not proceed, maybe false positive in solidify
ident = self.parse_word()
+ if not ident: return
literal = unescape_operator(ident)
if not literal in self.strtab:
self.strtab_weak.add(literal)
@@ -136,10 +141,19 @@ class coc_parser:
def parse_string_long(self):
if not self.text[0].isalnum() and self.text[0] != '_': return # do not proceed, maybe false positive in solidify
ident = self.parse_word()
+ if not ident: return
literal = unescape_operator(ident)
if not literal in self.strtab:
self.strtab_long.add(literal)
+ def parse_bin(self):
+ ident = self.parse_word()
+ if not ident: return
+ if not re.fullmatch(r"[0-9A-Za-z]*", ident): return
+ if not ident in self.bintab:
+ self.bintab.add(ident)
+ # print(f"str '{ident}' -> {literal}")
+
#################################################################################
# Parse a block of definition like module, class...
#################################################################################
From 4f732477dd7f082ec187b673744021c5cb352e77 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Mon, 3 Jun 2024 21:46:58 +0200
Subject: [PATCH 003/252] Matter support for Air Quality sensors (#21559)
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 3 +
.../berry_matter/src/embedded/Matter_IM.be | 2 +-
.../src/embedded/Matter_Plugin_0.be | 30 +-
.../src/embedded/Matter_Plugin_1_Device.be | 37 +
.../src/embedded/Matter_Plugin_2_Light1.be | 8 +-
.../src/embedded/Matter_Plugin_2_OnOff.be | 6 +-
.../src/embedded/Matter_Plugin_2_Sensor.be | 6 +-
.../Matter_Plugin_2_Sensor_Air_Quality.be | 219 ++
.../Matter_Plugin_2_Sensor_Contact.be | 13 +-
.../Matter_Plugin_2_Sensor_Occupancy.be | 13 +-
...tter_Plugin_3_Bridge_Sensor_Air_Quality.be | 112 +
.../src/embedded/Matter_Plugin_3_Light2.be | 8 +-
.../src/embedded/Matter_Plugin_3_Light3.be | 12 +-
.../Matter_Plugin_4_Bridge_Sensor_Flow.be | 23 +-
.../Matter_Plugin_4_Bridge_Sensor_Humidity.be | 23 +-
...tter_Plugin_4_Bridge_Sensor_Illuminance.be | 23 +-
.../Matter_Plugin_4_Bridge_Sensor_Pressure.be | 23 +-
.../Matter_Plugin_4_Bridge_Sensor_Temp.be | 23 +-
.../embedded/Matter_Plugin_5_Bridge_Light2.be | 31 +-
.../embedded/Matter_Plugin_5_Bridge_Light3.be | 40 +-
...Matter_Plugin_9_Virt_Sensor_Air_Quality.be | 34 +
.../berry_matter/src/embedded/Matter_TLV.be | 14 +
.../berry_matter/src/embedded/Matter_UI.be | 2 +
.../src/solidify/solidified_Matter_IM.h | 52 +-
.../src/solidify/solidified_Matter_Plugin_0.h | 1516 ++++++------
.../solidified_Matter_Plugin_1_Device.h | 118 +-
...ified_Matter_Plugin_2_Sensor_Air_Quality.h | 816 +++++++
...olidified_Matter_Plugin_2_Sensor_Contact.h | 58 +-
...idified_Matter_Plugin_2_Sensor_Occupancy.h | 58 +-
...atter_Plugin_3_Bridge_Sensor_Air_Quality.h | 404 ++++
.../solidified_Matter_Plugin_3_Light2.h | 39 +-
.../solidified_Matter_Plugin_3_Light3.h | 27 +-
...ified_Matter_Plugin_4_Bridge_Sensor_Flow.h | 92 +-
...d_Matter_Plugin_4_Bridge_Sensor_Humidity.h | 92 +-
...atter_Plugin_4_Bridge_Sensor_Illuminance.h | 92 +-
...d_Matter_Plugin_4_Bridge_Sensor_Pressure.h | 92 +-
...ified_Matter_Plugin_4_Bridge_Sensor_Temp.h | 90 +-
...solidified_Matter_Plugin_5_Bridge_Light2.h | 125 +-
...solidified_Matter_Plugin_5_Bridge_Light3.h | 150 +-
..._Matter_Plugin_9_Virt_Sensor_Air_Quality.h | 27 +
.../src/solidify/solidified_Matter_TLV.h | 2075 +++++++++--------
.../src/solidify/solidified_Matter_UI.h | 2 +-
.../solidify/solidified_Matter_zz_Device.h | 87 +-
44 files changed, 3849 insertions(+), 2869 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bd18f5d1..7cbe99336 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
## [14.1.0.1]
### Added
- Berry solidification of `bytes` instances
+- Matter support for Air Quality sensors
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 3d7233f48..c87cb24ee 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -229,6 +229,8 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_1_Device.h"
#include "solidify/solidified_Matter_Plugin_2_OnOff.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_OnOff.h"
+#include "solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h"
+#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h"
#include "solidify/solidified_Matter_Plugin_3_Light0.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light0.h"
#include "solidify/solidified_Matter_Plugin_2_Light1.h"
@@ -271,6 +273,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h"
+#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h"
#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_z_All.h"
#include "solidify/solidified_Matter_zz_Device.h"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 1e4ca0a78..d0977b242 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -830,7 +830,7 @@ class Matter_IM
tasmota.log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s",
msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0, sub.subscription_id, query.fabric_filtered), 3)
if query.event_requests != nil && size(query.event_requests) > 0
- tasmota.log(f"MTR: >Subscribe (%6i) event_requests_size={size(query.event_requests)}", 3)
+ tasmota.log(f"MTR: >Subscribe ({msg.session.local_session_id:6i}) event_requests_size={size(query.event_requests)}", 3)
end
var ret = self._inner_process_read_request(msg.session, query, msg, true #-no_log-#)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index d8315c3ec..8f89f7d3f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -480,10 +480,38 @@ class Matter_Plugin
# The map is pre-cleaned and contains only keys declared in
# `self.UPDATE_COMMANDS` with the adequate case
# (no need to handle case-insensitive)
- def update_virtual(payload_json)
+ def update_virtual(payload)
# pass
end
+ #######################################################################
+ # _parse_update_virtual: parse a single value out of MtrUpdate JSON
+ #
+ # Used internally by `update_virtual`
+ #
+ # Args
+ # payload: the native payload (converted from JSON) from MtrUpdate
+ # key: key name in the JSON payload to read from, do nothing if key does not exist or content is `null`
+ # old_val: previous value, used to detect a change or return the value unchanged
+ # type_func: type enforcer for value, typically `int`, `bool`, `str`, `number`, `real`
+ # cluster/attribute: in case the value has change, publish a change to cluster/attribute
+ #
+ # Returns:
+ # `old_val` if key does not exist, JSON value is `null`, or value is unchanged
+ # or new value from JSON (which is the new shadow value)
+ #
+ def _parse_update_virtual(payload, key, old_val, type_func, cluster, attribute)
+ var val = payload.find(key)
+ if (val != nil)
+ val = type_func(val)
+ if (val != old_val)
+ self.attribute_updated(cluster, attribute)
+ end
+ return val
+ end
+ return old_val
+ end
+
end
matter.Plugin = Matter_Plugin
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
index 619646386..94d0145bf 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
@@ -200,9 +200,46 @@ class Matter_Plugin_Device : Matter_Plugin
# sensors
_stats_json_inner("shadow_contact", "Contact")
_stats_json_inner("shadow_occupancy", "Occupancy")
+
+ # air quality
+ _stats_json_inner("shadow_air_quality", "AirQuality")
+ _stats_json_inner("shadow_co2", "CO2")
+ _stats_json_inner("shadow_pm1", "PM1")
+ _stats_json_inner("shadow_pm2_5", "PM2.5")
+ _stats_json_inner("shadow_pm10", "PM10")
+ _stats_json_inner("shadow_tvoc", "TVOC")
+
# print(ret)
return ret
end
+ #######################################################################
+ # _parse_sensor_entry: internal helper function
+ #
+ # Used internally by `update_virtual`
+ #
+ # Args
+ # payload: the native payload (converted from JSON) from MtrUpdate
+ # key: key name in the JSON payload to read from, do nothing if key does not exist or content is `null`
+ # type_func: type enforcer for value, typically `int`, `bool`, `str`, `number`, `real`
+ # old_val: previous value, used to detect a change or return the value unchanged
+ # cluster/attribute: in case the value has change, publish a change to cluster/attribute
+ #
+ # Returns:
+ # `old_val` if key does not exist, JSON value is `null`, or value is unchanged
+ # or new value from JSON (which is the new shadow value)
+ #
+ def _parse_sensor_entry(payload, key, old_val, type_func, cluster, attribute)
+ var val = payload.find(key)
+ if (val != nil)
+ val = type_func(val)
+ if val != old_val
+ self.attribute_updated(cluster, attribute) # CurrentPositionTiltPercent100ths
+ end
+ return val
+ end
+ return old_val
+ end
+
end
matter.Plugin_Device = Matter_Plugin_Device
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
index ab6de67fe..2b0e42255 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
@@ -230,16 +230,16 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_onoff = payload_json.find("Power")
- var val_bri = payload_json.find("Bri")
+ def update_virtual(payload)
+ var val_onoff = payload.find("Power")
+ var val_bri = payload.find("Bri")
if val_bri != nil
self.set_bri(int(val_bri), val_onoff)
return # don't call super() because we already handeld 'Power'
elif val_onoff != nil
self.set_onoff(bool(val_onoff))
end
- super(self).update_virtual(payload_json)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be
index 89f3a5430..0c9dc1edb 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be
@@ -149,12 +149,12 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_onoff = payload_json.find("Power")
+ def update_virtual(payload)
+ var val_onoff = payload.find("Power")
if val_onoff != nil
self.set_onoff(bool(val_onoff))
end
- super(self).update_virtual(payload_json)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
index a702a11af..f2b2e7f3f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
@@ -93,8 +93,8 @@ class Matter_Plugin_Sensor : Matter_Plugin_Device
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val = payload_json.find(self.JSON_NAME)
+ def update_virtual(payload)
+ var val = payload.find(self.JSON_NAME)
if val != nil
if type(val) == 'bool' val = int(val) end
@@ -103,7 +103,7 @@ class Matter_Plugin_Sensor : Matter_Plugin_Device
self.shadow_value = val
end
end
- super(self).update_virtual(payload_json)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
new file mode 100644
index 000000000..42af25401
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
@@ -0,0 +1,219 @@
+#
+# Matter_Plugin_Sensor_Air_Quality.be - implements the behavior for a Air_Quality sensor
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Sensor_Air_Quality,weak
+
+class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
+ static var TYPE = "airquality" # name of the plug-in in json
+ static var DISPLAY_NAME = "Air Quality" # display name of the plug-in
+ static var ARG = "airquality" # additional argument name (or empty if none)
+ static var ARG_HINT = "Device key (ex: SCD40)"
+# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var JSON_NAME = "AirQuality" # Name of the sensor attribute in JSON payloads
+ static var UPDATE_TIME = 30000 # update every 30 s
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "AirQuality", "CO2", "PM1", "PM2.5", "PM10", "TVOC", "NO2")
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ 0x005B: [0], # Air Quality - no writable
+ 0x040D: [0,1,2,8,9], # Carbon Dioxide Concentration Measurement
+ 0x042C: [0,1,2,8,9], # PM1 Concentration Measurement
+ 0x042A: [0,1,2,8,9], # PM2.5 Concentration Measurement
+ 0x042D: [0,1,2,8,9], # PM10 Concentration Measurement
+ 0x042E: [0,1,2,8,9], # TVOC Total Volatile Organic Compounds Concentration Measurement
+ 0x0413: [0,1,2,8,9], # Nitrogen Dioxide Concentration Measurement
+ })
+
+ static var TYPES = { 0x002C: 1 } # Air Quality, rev 1
+
+ var prefix # key prefix in JSON
+ var shadow_air_quality # Human readable air quality index
+ # 0: Unknown
+ # 1: Good
+ # 4: Poor
+ # var shadow_pb0_3
+ # var shadow_pb0_5
+ # var shadow_pb1
+ # var shadow_pb2_5
+ # var shadow_pb5
+ # var shadow_pb10
+ var shadow_pm1
+ var shadow_pm2_5
+ # var shadow_pm5
+ var shadow_pm10
+ var shadow_co2
+ # var shadow_eco2
+ var shadow_no2
+ var shadow_tvoc
+
+ #############################################################
+ # Constructor
+ def init(device, endpoint, config)
+ super(self).init(device, endpoint, config)
+ self.shadow_air_quality = false
+ end
+
+ #############################################################
+ # parse_configuration
+ #
+ # Parse configuration map
+ def parse_configuration(config)
+ self.prefix = str(config.find(self.ARG))
+ end
+
+
+ #############################################################
+ # parse sensor
+ #
+ # parse the output from `ShutterPosition`
+ # Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}`
+ def _parse_sensor_entry(v, key, old_val, cluster, attribute)
+ var val = v.find(key)
+ if (val != nil)
+ if val != old_val
+ self.attribute_updated(cluster, attribute) # CurrentPositionTiltPercent100ths
+ end
+ return val
+ end
+ return old_val
+ end
+ #
+ def parse_sensors(payload)
+ var v = payload.find(self.prefix)
+ if (v != nil)
+ # CO2
+ self.shadow_co2 = self._parse_sensor_entry(v, "CarbonDioxide", self.shadow_co2, number, 0x040D, 0x0000)
+ # PM1
+ self.shadow_pm1 = self._parse_sensor_entry(v, "PM1", self.shadow_pm1, number, 0x042C, 0x0000)
+ # PM2.5
+ self.shadow_pm2_5 = self._parse_sensor_entry(v, "PM2.5", self.shadow_pm2_5, number, 0x042A, 0x0000)
+ # PM10
+ self.shadow_pm10 = self._parse_sensor_entry(v, "PM10", self.shadow_pm10, number, 0x042D, 0x0000)
+ # TVOC
+ self.shadow_tvoc = self._parse_sensor_entry(v, "TVOC", self.shadow_tvoc, number, 0x042E, 0x0000)
+ # NO2
+ self.shadow_no2 = self._parse_sensor_entry(v, "NO2", self.shadow_no2, number, 0x0413, 0x0000)
+ end
+ super(self).parse_sensors(payload) # parse other shutter values
+ end
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute(session, ctx, tlv_solo)
+ var TLV = matter.TLV
+ var cluster = ctx.cluster
+ var attribute = ctx.attribute
+ var ret
+
+ # mutualize code for all values
+ # Args
+ # shadow_value: value of the shadow for the type
+ # unit: unit of value, `0`=PPM if not specified
+ #
+ # Returns
+ # `nil`: no attribute match
+ # : TLV value
+ def handle_value(shadow_value, unit)
+ if (unit == nil) unit = 0 end # default unit is `0` = PPM
+ if attribute == 0x0000 # ---------- Measured Value / float ----------
+ if shadow_value != nil
+ return tlv_solo.set(TLV.FLOAT, shadow_value)
+ else
+ return tlv_solo.set(TLV.NULL, nil)
+ end
+ elif attribute == 0x0001 # ---------- MinMeasured Value / float ----------
+ return tlv_solo.set(TLV.NULL, nil)
+ elif attribute == 0x0002 # ---------- MaxMeasured Value / float ----------
+ return tlv_solo.set(TLV.NULL, nil)
+ elif attribute == 0x0008 # ---------- MeasurementUnit / u8 ----------
+ return tlv_solo.set(TLV.U1, unit)
+ elif attribute == 0x0009 # ---------- MeasurementMedium / u8 ----------
+ return tlv_solo.set(TLV.U1, 0) # 0 = Air
+ elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
+ return tlv_solo.set(TLV.U4, 1) # MEA = NumericMeasurement
+ end
+ return nil
+ end
+
+ # ====================================================================================================
+ if cluster == 0x005B # ========== Air Quality ==========
+ if attribute == 0x0000 # ---------- AirQuality / U8 ----------
+ if self.shadow_air_quality != nil
+ return tlv_solo.set(TLV.U1, self.shadow_air_quality)
+ else
+ return tlv_solo.set(TLV.NULL, nil)
+ end
+ # elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
+ # return tlv_solo.set(TLV.U4, 0) #
+ end
+
+ # ====================================================================================================
+ elif cluster == 0x040D # ========== Carbon Dioxide Concentration Measurement ==========
+ if (ret := handle_value(self.shadow_co2))
+ return ret
+ end
+ # ====================================================================================================
+ elif cluster == 0x042C # ========== PM1 Concentration Measurement ==========
+ if (ret := handle_value(self.shadow_pm1))
+ return ret
+ end
+ # ====================================================================================================
+ elif cluster == 0x042A # ========== PM2.5 Concentration Measurement ==========
+ if (ret := handle_value(self.shadow_pm2_5))
+ return ret
+ end
+ # ====================================================================================================
+ elif cluster == 0x042D # ========== PM10 Concentration Measurement ==========
+ if (ret := handle_value(self.shadow_pm10))
+ return ret
+ end
+ # ====================================================================================================
+ elif cluster == 0x042E # ========== TVOC ==========
+ if (ret := handle_value(self.shadow_tvoc))
+ return ret
+ end
+ # ====================================================================================================
+ elif cluster == 0x0413 # ========== NO2 ==========
+ if (ret := handle_value(self.shadow_no2))
+ return ret
+ end
+
+ end
+ return super(self).read_attribute(session, ctx, tlv_solo)
+ end
+
+ #######################################################################
+ # update_virtual
+ #
+ # Update internal state for virtual devices
+ def update_virtual(payload)
+ self.shadow_air_quality = self._parse_update_virtual(payload, "AirQuality", number, self.shadow_air_quality, 0x005B, 0x0000)
+ self.shadow_co2 = self._parse_update_virtual(payload, "CO2", self.shadow_co2, number, 0x040D, 0x0000)
+ self.shadow_pm1 = self._parse_update_virtual(payload, "PM1", self.shadow_pm1, number, 0x042C, 0x0000)
+ self.shadow_pm2_5 = self._parse_update_virtual(payload, "PM2.5", self.shadow_pm2_5, number, 0x042A, 0x0000)
+ self.shadow_pm10 = self._parse_update_virtual(payload, "PM10", self.shadow_pm10, number, 0x042D, 0x0000)
+ self.shadow_tvoc = self._parse_update_virtual(payload, "TVOC", self.shadow_tvoc, number, 0x042E, 0x0000)
+ super(self).update_virtual(payload)
+ end
+
+end
+matter.Plugin_Sensor_Air_Quality = Matter_Plugin_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
index b7d683039..a6c2f7193 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
@@ -102,16 +102,9 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_onoff = payload_json.find("Contact")
- if val_onoff != nil
- val_onoff = bool(val_onoff)
- if self.shadow_contact != val_onoff
- self.attribute_updated(0x0045, 0x0000)
- self.shadow_contact = val_onoff
- end
- end
- super(self).update_virtual(payload_json)
+ def update_virtual(payload)
+ self.shadow_contact = self._parse_update_virtual(payload, "Contact", self.shadow_contact, bool, 0x0045, 0x0000)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
index 2d9f09323..fbc6bf84b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
@@ -106,16 +106,9 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_onoff = payload_json.find("Occupancy")
- if val_onoff != nil
- val_onoff = bool(val_onoff)
- if self.shadow_occupancy != val_onoff
- self.attribute_updated(0x0406, 0x0000)
- self.shadow_occupancy = val_onoff
- end
- end
- super(self).update_virtual(payload_json)
+ def update_virtual(payload)
+ self.val_onoff = self._parse_update_virtual(payload, "Occupancy", self.val_onoff, bool, 0x0406, 0x0000)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be
new file mode 100644
index 000000000..b0515eb9e
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be
@@ -0,0 +1,112 @@
+#
+# Matter_Plugin_Bridge_Sensor_Contact.be - implements Air Quality Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Air_Quality,weak
+
+class Matter_Plugin_Bridge_Sensor_Air_Quality : Matter_Plugin_Bridge_HTTP
+ static var TYPE = "http_airquality" # name of the plug-in in json
+ static var DISPLAY_NAME = "Air Quality" # display name of the plug-in
+ static var ARG = "airquality" # additional argument name (or empty if none)
+ static var ARG_HINT = "Sensor Model"
+# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 5000 # update every 5s
+ static var UPDATE_CMD = "Status 8" # command to send for updates
+
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ 0x005B: [0], # Air Quality - no writable
+ 0x040D: [0,1,2,8,9], # Carbon Dioxide Concentration Measurement
+ 0x042C: [0,1,2,8,9], # PM1 Concentration Measurement
+ 0x042A: [0,1,2,8,9], # PM2.5 Concentration Measurement
+ 0x042D: [0,1,2,8,9], # PM10 Concentration Measurement
+ 0x042E: [0,1,2,8,9], # TVOC Total Volatile Organic Compounds Concentration Measurement
+ 0x0413: [0,1,2,8,9], # Nitrogen Dioxide Concentration Measurement
+ })
+
+ static var TYPES = { 0x002C: 1 } # Air Quality, rev 1
+
+ var prefix # key prefix in JSON
+ var shadow_air_quality # Human readable air quality index
+ # 0: Unknown
+ # 1: Good
+ # 4: Poor
+ # var shadow_pb0_3
+ # var shadow_pb0_5
+ # var shadow_pb1
+ # var shadow_pb2_5
+ # var shadow_pb5
+ # var shadow_pb10
+ var shadow_pm1
+ var shadow_pm2_5
+ # var shadow_pm5
+ var shadow_pm10
+ var shadow_co2
+ # var shadow_eco2
+ var shadow_no2
+ var shadow_tvoc
+
+ #############################################################
+ # Constructor
+ def init(device, endpoint, arguments)
+ super(self).init(device, endpoint, arguments)
+ self.prefix = str(arguments.find(self.ARG))
+ end
+
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_update(data, index)
+ if index == 8 # Status 8
+ var values = data.find(self.prefix)
+ end
+ end
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute = matter.Plugin_Sensor_Air_Quality.read_attribute
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ def web_values_single(name, val)
+ if val != nil
+ import webserver
+ webserver.content_send(f"{name} {val:i} ")
+ end
+ end
+
+ self.web_values_prefix() # display '| ' and name if present
+ web_values_single("Air", self.shadow_air_quality)
+ web_values_single("PM1", self.shadow_pm1)
+ web_values_single("PM2.5", self.shadow_pm2_5)
+ web_values_single("PM10", self.shadow_pm10)
+ web_values_single("CO2", self.shadow_co2)
+ web_values_single("NO2", self.shadow_no2)
+ web_values_single("TVOC", self.shadow_tvoc)
+ end
+
+end
+matter.Plugin_Bridge_Sensor_Air_Quality = Matter_Plugin_Bridge_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
index 265514e29..066d0a850 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
@@ -120,7 +120,7 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
self.update_shadow_lazy()
if attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ----------
- return tlv_solo.set(TLV.U1, self.shadow_ct)
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_ct) # if `nil` it is replaced with TLV.NULL
elif attribute == 0x0008 # ---------- ColorMode / u1 ----------
return tlv_solo.set(TLV.U1, 2)# 2 = ColorTemperatureMireds
elif attribute == 0x000F # ---------- Options / u1 ----------
@@ -179,12 +179,12 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_ct = int(payload_json.find("CT")) # int or nil
+ def update_virtual(payload)
+ var val_ct = int(payload.find("CT")) # int or nil
if (val_ct != nil)
self.set_ct(val_ct)
end
- super(self).update_virtual(payload_json)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
index a0b77dd21..5f51f2bdc 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
@@ -127,9 +127,9 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
self.update_shadow_lazy()
if attribute == 0x0000 # ---------- CurrentHue / u1 ----------
- return tlv_solo.set(TLV.U1, self.shadow_hue)
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_hue)
elif attribute == 0x0001 # ---------- CurrentSaturation / u2 ----------
- return tlv_solo.set(TLV.U1, self.shadow_sat)
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_sat)
elif attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ----------
return tlv_solo.set(TLV.U1, 0)
elif attribute == 0x0008 # ---------- ColorMode / u1 ----------
@@ -213,13 +213,13 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
# update_virtual
#
# Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_hue = int(payload_json.find("Hue")) # int or nil
- var val_sat = int(payload_json.find("Sat")) # int or nil
+ def update_virtual(payload)
+ var val_hue = int(payload.find("Hue")) # int or nil
+ var val_sat = int(payload.find("Sat")) # int or nil
if (val_hue != nil) || (val_sat != nil)
self.set_hue_sat(val_hue, val_sat)
end
- super(self).update_virtual(payload_json)
+ super(self).update_virtual(payload)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
index 24f765768..a3e236acd 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
@@ -53,28 +53,7 @@ class Matter_Plugin_Bridge_Sensor_Flow : Matter_Plugin_Bridge_Sensor
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0404 # ========== Flow Measurement 2.1.2 p.127 ==========
- if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value)) # MeasuredValue represents 10 x flow in m3/h.
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.U2, 0) # 0 m3/h
- elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.U2, 65534) # 65534 m3/h
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ static var read_attribute = matter.Plugin_Sensor_Flow.read_attribute
#############################################################
# web_values
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
index 05e25437a..d6801ced4 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
@@ -53,28 +53,7 @@ class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0405 # ========== Humidity Measurement 2.4 p.98 ==========
- if attribute == 0x0000 # ---------- Humidity / u16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- MinMeasuredValue / u16 ----------
- return tlv_solo.set(TLV.U2, 500) # 0%
- elif attribute == 0x0002 # ---------- MaxMeasuredValue / u16 ----------
- return tlv_solo.set(TLV.U2, 10000) # 100%
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Sensor_Humidity.read_attribute
#############################################################
# web_values
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
index 88e0e32ee..df31caec6 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
@@ -60,28 +60,7 @@ class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0400 # ========== Illuminance Measurement 2.2 p.95 ==========
- if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.U2, 1) # 1 lux
- elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.U2, 0xFFFE)
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Sensor_Illuminance.read_attribute
#############################################################
# web_values
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
index 53b78393a..6b40a7b60 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
@@ -53,28 +53,7 @@ class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0403 # ========== Pressure Measurement 2.4 p.98 ==========
- if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.I2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.I2, 500) # 500 hPA
- elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
- return tlv_solo.set(TLV.I2, 1500) # 1500 hPA
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Sensor_Pressure.read_attribute
#############################################################
# web_values
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
index 8ee8f73d1..daaaaa9f9 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
@@ -56,28 +56,7 @@ class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0402 # ========== Temperature Measurement 2.3 p.97 ==========
- if attribute == 0x0000 # ---------- MeasuredValue / i16 (*100) ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.I2, self.shadow_value)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 (*100) ----------
- return tlv_solo.set(TLV.I2, -5000) # -50 °C
- elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 (*100) ----------
- return tlv_solo.set(TLV.I2, 15000) # 150 °C
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Sensor_Temp.read_attribute
#############################################################
# web_values
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
index 0c8595885..8d5622315 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
@@ -92,36 +92,7 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
- self.update_shadow_lazy()
- if attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ----------
- if self.shadow_ct != nil
- return tlv_solo.set(TLV.U1, self.shadow_ct)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0008 # ---------- ColorMode / u1 ----------
- return tlv_solo.set(TLV.U1, 2)# 2 = ColorTemperatureMireds
- elif attribute == 0x000F # ---------- Options / u1 ----------
- return tlv_solo.set(TLV.U1, 0)
- elif attribute == 0x400B # ---------- ColorTempPhysicalMinMireds / u2 ----------
- return tlv_solo.set(TLV.U1, self.ct_min)
- elif attribute == 0x400C # ---------- ColorTempPhysicalMaxMireds / u2 ----------
- return tlv_solo.set(TLV.U1, self.ct_max)
-
- elif attribute == 0x400A # ---------- ColorCapabilities / map32 ----------
- return tlv_solo.set(TLV.U4, 0x10) # CT
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Light2.read_attribute
#############################################################
# Invoke a command
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
index 5b4f0ab30..950048118 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
@@ -92,45 +92,7 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
#############################################################
# read an attribute
#
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
- self.update_shadow_lazy()
- if attribute == 0x0000 # ---------- CurrentHue / u1 ----------
- if self.shadow_hue != nil
- return tlv_solo.set(TLV.U1, self.shadow_hue)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- CurrentSaturation / u2 ----------
- if self.shadow_sat != nil
- return tlv_solo.set(TLV.U1, self.shadow_sat)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0007 # ---------- ColorTemperatureMireds / u2 ----------
- return tlv_solo.set(TLV.U1, 0)
- elif attribute == 0x0008 # ---------- ColorMode / u1 ----------
- return tlv_solo.set(TLV.U1, 0)# 0 = CurrentHue and CurrentSaturation
- elif attribute == 0x000F # ---------- Options / u1 ----------
- return tlv_solo.set(TLV.U1, 0)
- elif attribute == 0x4001 # ---------- EnhancedColorMode / u1 ----------
- return tlv_solo.set(TLV.U1, 0)
- elif attribute == 0x400A # ---------- ColorCapabilities / map32 ----------
- return tlv_solo.set(TLV.U4, 0x01) # HS
-
- # Defined Primaries Information Attribute Set
- elif attribute == 0x0010 # ---------- NumberOfPrimaries / u1 ----------
- return tlv_solo.set(TLV.U1, 0)
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
+ def read_attribute = matter.Plugin_Light3.read_attribute
#############################################################
# Invoke a command
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
new file mode 100644
index 000000000..f969398c3
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
@@ -0,0 +1,34 @@
+#
+# Matter_Plugin_9_Virt_Sensor_Air_Quality.be - implements the behavior for a Virtual Air Quality Sensor
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Virt_Sensor_Air_Quality,weak
+
+class Matter_Plugin_Virt_Sensor_Air_Quality : Matter_Plugin_Sensor_Air_Quality
+ static var TYPE = "v_airquality" # name of the plug-in in json
+ static var DISPLAY_NAME = "v.Air Quality" # display name of the plug-in
+ static var ARG = "" # no arg for virtual device
+ static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
+ static var VIRTUAL = true # virtual device
+
+end
+matter.Plugin_Virt_Sensor_Air_Quality = Matter_Plugin_Virt_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
index 74a10d25a..a48e4cbef 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
@@ -141,6 +141,20 @@ class Matter_TLV
return self
end
end
+
+ #############################################################
+ # set value, equivalent to create_TLV() without allocation
+ #
+ # if value is `nil` replace with TLV.NULL
+ def set_or_nil(t, value)
+ self.reset()
+ if (value == nil) t = 0x14 end # force TLV.NULL
+ if value != nil || t == 0x14 #-t == matter.TLV.NULL-# # put the actual number for performance
+ self.typ = t
+ self.val = value
+ return self
+ end
+ end
#############################################################
# neutral converter
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index d5f6d6e1b..a325ead88 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -34,8 +34,10 @@ import matter
class Matter_UI
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt"
"|temperature|pressure|illuminance|humidity|occupancy|onoff|contact|flow|waterleak"
+ "|airquality"
"|-virtual|v_relay|v_light0|v_light1|v_light2|v_light3"
"|v_temp|v_pressure|v_illuminance|v_humidity|v_occupancy|v_contact|v_flow|v_waterleak"
+ "|v_airquality"
static var _CLASSES_TYPES2= "|http_relay|http_light0|http_light1|http_light2|http_light3"
"|http_temperature|http_pressure|http_illuminance|http_humidity"
"|http_occupancy|http_contact|http_flow|http_waterleak"
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 463f9f498..8a8b3fe8d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -3484,13 +3484,13 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/* K27 */ be_nested_str_weak(fabric_filtered),
/* K28 */ be_const_int(3),
/* K29 */ be_nested_str_weak(event_requests),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X25_X256i_X29_X20event_requests_size_X3D_X25s),
+ /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20event_requests_size_X3D_X25s),
/* K31 */ be_nested_str_weak(_inner_process_read_request),
/* K32 */ be_nested_str_weak(send_subscribe_response),
}),
be_str_weak(subscribe_request),
&be_const_str_solidified,
- ( &(const binstruction[99]) { /* code */
+ ( &(const binstruction[101]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -3559,37 +3559,39 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0x881C071D, // 0041 GETMBR R7 R3 K29
0x4C200000, // 0042 LDNIL R8
0x201C0E08, // 0043 NE R7 R7 R8
- 0x781E000E, // 0044 JMPF R7 #0054
+ 0x781E0010, // 0044 JMPF R7 #0056
0x601C000C, // 0045 GETGBL R7 G12
0x8820071D, // 0046 GETMBR R8 R3 K29
0x7C1C0200, // 0047 CALL R7 1
0x241C0F19, // 0048 GT R7 R7 K25
- 0x781E0009, // 0049 JMPF R7 #0054
+ 0x781E000B, // 0049 JMPF R7 #0056
0xB81E2000, // 004A GETNGBL R7 K16
0x8C1C0F11, // 004B GETMET R7 R7 K17
0x60240018, // 004C GETGBL R9 G24
0x5828001E, // 004D LDCONST R10 K30
- 0x602C000C, // 004E GETGBL R11 G12
- 0x8830071D, // 004F GETMBR R12 R3 K29
- 0x7C2C0200, // 0050 CALL R11 1
- 0x7C240400, // 0051 CALL R9 2
- 0x5828001C, // 0052 LDCONST R10 K28
- 0x7C1C0600, // 0053 CALL R7 3
- 0x8C1C011F, // 0054 GETMET R7 R0 K31
- 0x88240306, // 0055 GETMBR R9 R1 K6
- 0x5C280600, // 0056 MOVE R10 R3
- 0x5C2C0200, // 0057 MOVE R11 R1
- 0x50300200, // 0058 LDBOOL R12 1 0
- 0x7C1C0A00, // 0059 CALL R7 5
- 0x8820091A, // 005A GETMBR R8 R4 K26
- 0x901E3408, // 005B SETMBR R7 K26 R8
- 0x8C200120, // 005C GETMET R8 R0 K32
- 0x5C280200, // 005D MOVE R10 R1
- 0x5C2C0E00, // 005E MOVE R11 R7
- 0x5C300800, // 005F MOVE R12 R4
- 0x7C200800, // 0060 CALL R8 4
- 0x50200200, // 0061 LDBOOL R8 1 0
- 0x80041000, // 0062 RET 1 R8
+ 0x882C0306, // 004E GETMBR R11 R1 K6
+ 0x882C1713, // 004F GETMBR R11 R11 K19
+ 0x6030000C, // 0050 GETGBL R12 G12
+ 0x8834071D, // 0051 GETMBR R13 R3 K29
+ 0x7C300200, // 0052 CALL R12 1
+ 0x7C240600, // 0053 CALL R9 3
+ 0x5828001C, // 0054 LDCONST R10 K28
+ 0x7C1C0600, // 0055 CALL R7 3
+ 0x8C1C011F, // 0056 GETMET R7 R0 K31
+ 0x88240306, // 0057 GETMBR R9 R1 K6
+ 0x5C280600, // 0058 MOVE R10 R3
+ 0x5C2C0200, // 0059 MOVE R11 R1
+ 0x50300200, // 005A LDBOOL R12 1 0
+ 0x7C1C0A00, // 005B CALL R7 5
+ 0x8820091A, // 005C GETMBR R8 R4 K26
+ 0x901E3408, // 005D SETMBR R7 K26 R8
+ 0x8C200120, // 005E GETMET R8 R0 K32
+ 0x5C280200, // 005F MOVE R10 R1
+ 0x5C2C0E00, // 0060 MOVE R11 R7
+ 0x5C300800, // 0061 MOVE R12 R4
+ 0x7C200800, // 0062 CALL R8 4
+ 0x50200200, // 0063 LDBOOL R8 1 0
+ 0x80041000, // 0064 RET 1 R8
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 544c53173..e22e8111a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -7,174 +7,12 @@
extern const bclass be_class_Matter_Plugin;
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: contains_cluster
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_every_250ms, /* name */
+be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(update_next),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(jitter),
- /* K3 */ be_nested_str_weak(UPDATE_TIME),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
- /* K6 */ be_nested_str_weak(tick),
- /* K7 */ be_nested_str_weak(device),
- /* K8 */ be_nested_str_weak(update_shadow),
- /* K9 */ be_nested_str_weak(millis),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060005, // 0003 JMPF R1 #000A
- 0xB8060200, // 0004 GETNGBL R1 K1
- 0x8C040302, // 0005 GETMET R1 R1 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x90020001, // 0008 SETMBR R0 K0 R1
- 0x70020010, // 0009 JMP #001B
- 0xB8060800, // 000A GETNGBL R1 K4
- 0x8C040305, // 000B GETMET R1 R1 K5
- 0x880C0100, // 000C GETMBR R3 R0 K0
- 0x7C040400, // 000D CALL R1 2
- 0x7806000B, // 000E JMPF R1 #001B
- 0x88040106, // 000F GETMBR R1 R0 K6
- 0x88080107, // 0010 GETMBR R2 R0 K7
- 0x88080506, // 0011 GETMBR R2 R2 K6
- 0x20040202, // 0012 NE R1 R1 R2
- 0x78060001, // 0013 JMPF R1 #0016
- 0x8C040108, // 0014 GETMET R1 R0 K8
- 0x7C040200, // 0015 CALL R1 1
- 0xB8060800, // 0016 GETNGBL R1 K4
- 0x8C040309, // 0017 GETMET R1 R1 K9
- 0x880C0103, // 0018 GETMBR R3 R0 K3
- 0x7C040400, // 0019 CALL R1 2
- 0x90020001, // 001A SETMBR R0 K0 R1
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: subscribe_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_init, /* name */
- be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(clusters),
- /* K3 */ be_nested_str_weak(consolidate_clusters),
- /* K4 */ be_nested_str_weak(parse_configuration),
- /* K5 */ be_nested_str_weak(node_label),
- /* K6 */ be_nested_str_weak(find),
- /* K7 */ be_nested_str_weak(name),
- /* K8 */ be_nested_str_weak(),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x8C100103, // 0002 GETMET R4 R0 K3
- 0x7C100200, // 0003 CALL R4 1
- 0x90020404, // 0004 SETMBR R0 K2 R4
- 0x8C100104, // 0005 GETMET R4 R0 K4
- 0x5C180600, // 0006 MOVE R6 R3
- 0x7C100400, // 0007 CALL R4 2
- 0x8C100706, // 0008 GETMET R4 R3 K6
- 0x58180007, // 0009 LDCONST R6 K7
- 0x581C0008, // 000A LDCONST R7 K8
- 0x7C100600, // 000B CALL R4 3
- 0x90020A04, // 000C SETMBR R0 K5 R4
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_name
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_set_name, /* name */
- be_nested_proto(
- 6, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -183,21 +21,17 @@ be_local_closure(class_Matter_Plugin_set_name, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
- /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(contains),
}),
- be_str_weak(set_name),
+ be_str_weak(contains_cluster),
&be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
+ ( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0003, // 0002 JMPF R2 #0007
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x54120038, // 0004 LDINT R4 57
- 0x54160004, // 0005 LDINT R5 5
- 0x7C080600, // 0006 CALL R2 3
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0x80000000, // 0008 RET 0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -205,13 +39,98 @@ be_local_closure(class_Matter_Plugin_set_name, /* name */
/********************************************************************
-** Solidified function: subscribe_event
+** Solidified function: append_state_json
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
+be_local_closure(class_Matter_Plugin_append_state_json, /* name */
be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ }),
+ be_str_weak(append_state_json),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80060000, // 0000 RET 1 K0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_state_json, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(node_label),
+ /* K2 */ be_nested_str_weak(_X2C_X22Name_X22_X3A_X25s),
+ /* K3 */ be_nested_str_weak(dump),
+ /* K4 */ be_nested_str_weak(),
+ /* K5 */ be_nested_str_weak(append_state_json),
+ /* K6 */ be_nested_str_weak(_X7B_X22Ep_X22_X3A_X25i_X25s_X25s_X7D),
+ /* K7 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(state_json),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x780A0006, // 0002 JMPF R2 #000A
+ 0x60080018, // 0003 GETGBL R2 G24
+ 0x580C0002, // 0004 LDCONST R3 K2
+ 0x8C100303, // 0005 GETMET R4 R1 K3
+ 0x88180101, // 0006 GETMBR R6 R0 K1
+ 0x7C100400, // 0007 CALL R4 2
+ 0x7C080400, // 0008 CALL R2 2
+ 0x70020000, // 0009 JMP #000B
+ 0x58080004, // 000A LDCONST R2 K4
+ 0x8C0C0105, // 000B GETMET R3 R0 K5
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0007, // 000D JMPF R3 #0016
+ 0x60100018, // 000E GETGBL R4 G24
+ 0x58140006, // 000F LDCONST R5 K6
+ 0x88180107, // 0010 GETMBR R6 R0 K7
+ 0x5C1C0400, // 0011 MOVE R7 R2
+ 0x5C200600, // 0012 MOVE R8 R3
+ 0x7C100800, // 0013 CALL R4 4
+ 0x80040800, // 0014 RET 1 R4
+ 0x70020001, // 0015 JMP #0018
+ 0x4C100000, // 0016 LDNIL R4
+ 0x80040800, // 0017 RET 1 R4
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: timed_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_timed_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -219,11 +138,11 @@ be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(subscribe_event),
+ be_str_weak(timed_request),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
})
)
);
@@ -256,79 +175,68 @@ be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
/********************************************************************
-** Solidified function: publish_command
+** Solidified function: has
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_publish_command, /* name */
+be_local_closure(class_Matter_Plugin_has, /* name */
be_nested_proto(
- 16, /* nstack */
- 7, /* argc */
+ 6, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(_X25s_X3A_X25s),
- /* K2 */ be_nested_str_weak(dump),
- /* K3 */ be_nested_str_weak(_X25s_X2C_X25s_X3A_X25s),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(publish_command),
- /* K6 */ be_nested_str_weak(MtrReceived),
- /* K7 */ be_nested_str_weak(endpoint),
- /* K8 */ be_nested_str_weak(node_label),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(endpoints),
+ /* K3 */ be_nested_str_weak(find),
}),
- be_str_weak(publish_command),
+ be_str_weak(has),
&be_const_str_solidified,
- ( &(const binstruction[46]) { /* code */
- 0xA41E0000, // 0000 IMPORT R7 K0
- 0x60200018, // 0001 GETGBL R8 G24
- 0x58240001, // 0002 LDCONST R9 K1
- 0x8C280F02, // 0003 GETMET R10 R7 K2
- 0x5C300200, // 0004 MOVE R12 R1
- 0x7C280400, // 0005 CALL R10 2
- 0x8C2C0F02, // 0006 GETMET R11 R7 K2
- 0x5C340400, // 0007 MOVE R13 R2
- 0x7C2C0400, // 0008 CALL R11 2
- 0x7C200600, // 0009 CALL R8 3
- 0x4C240000, // 000A LDNIL R9
- 0x20240609, // 000B NE R9 R3 R9
- 0x7826000A, // 000C JMPF R9 #0018
- 0x60240018, // 000D GETGBL R9 G24
- 0x58280003, // 000E LDCONST R10 K3
- 0x5C2C1000, // 000F MOVE R11 R8
- 0x8C300F02, // 0010 GETMET R12 R7 K2
- 0x5C380600, // 0011 MOVE R14 R3
- 0x7C300400, // 0012 CALL R12 2
- 0x8C340F02, // 0013 GETMET R13 R7 K2
- 0x5C3C0800, // 0014 MOVE R15 R4
- 0x7C340400, // 0015 CALL R13 2
- 0x7C240800, // 0016 CALL R9 4
- 0x5C201200, // 0017 MOVE R8 R9
- 0x4C240000, // 0018 LDNIL R9
- 0x20240A09, // 0019 NE R9 R5 R9
- 0x7826000A, // 001A JMPF R9 #0026
- 0x60240018, // 001B GETGBL R9 G24
- 0x58280003, // 001C LDCONST R10 K3
- 0x5C2C1000, // 001D MOVE R11 R8
- 0x8C300F02, // 001E GETMET R12 R7 K2
- 0x5C380A00, // 001F MOVE R14 R5
- 0x7C300400, // 0020 CALL R12 2
- 0x8C340F02, // 0021 GETMET R13 R7 K2
- 0x5C3C0C00, // 0022 MOVE R15 R6
- 0x7C340400, // 0023 CALL R13 2
- 0x7C240800, // 0024 CALL R9 4
- 0x5C201200, // 0025 MOVE R8 R9
- 0xB8260800, // 0026 GETNGBL R9 K4
- 0x8C241305, // 0027 GETMET R9 R9 K5
- 0x582C0006, // 0028 LDCONST R11 K6
- 0x88300107, // 0029 GETMBR R12 R0 K7
- 0x88340108, // 002A GETMBR R13 R0 K8
- 0x5C381000, // 002B MOVE R14 R8
- 0x7C240A00, // 002C CALL R9 5
- 0x80000000, // 002D RET 0
+ ( &(const binstruction[15]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x780E0006, // 0004 JMPF R3 #000C
+ 0x880C0102, // 0005 GETMBR R3 R0 K2
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x5C140400, // 0007 MOVE R5 R2
+ 0x7C0C0400, // 0008 CALL R3 2
+ 0x4C100000, // 0009 LDNIL R4
+ 0x200C0604, // 000A NE R3 R3 R4
+ 0x740E0000, // 000B JMPT R3 #000D
+ 0x500C0001, // 000C LDBOOL R3 0 1
+ 0x500C0200, // 000D LDBOOL R3 1 0
+ 0x80040600, // 000E RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_virtual, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
})
)
);
@@ -584,92 +492,6 @@ be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: write_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_write_attribute, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(write_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_attribute_list
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_attribute_list),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140012, // 0003 GETGBL R5 G18
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_read_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(read_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: ack_request
********************************************************************/
@@ -713,6 +535,32 @@ be_local_closure(class_Matter_Plugin_ack_request, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: write_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_write_attribute, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(write_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: get_cluster_list_sorted
********************************************************************/
@@ -747,12 +595,12 @@ be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
/********************************************************************
-** Solidified function: attribute_updated
+** Solidified function: init
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
+be_local_closure(class_Matter_Plugin_init, /* name */
be_nested_proto(
- 10, /* nstack */
+ 8, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
@@ -760,22 +608,34 @@ be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(attribute_updated),
- /* K2 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(clusters),
+ /* K3 */ be_nested_str_weak(consolidate_clusters),
+ /* K4 */ be_nested_str_weak(parse_configuration),
+ /* K5 */ be_nested_str_weak(node_label),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_nested_str_weak(name),
+ /* K8 */ be_nested_str_weak(),
}),
- be_str_weak(attribute_updated),
+ be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80000000, // 0007 RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x8C100103, // 0002 GETMET R4 R0 K3
+ 0x7C100200, // 0003 CALL R4 1
+ 0x90020404, // 0004 SETMBR R0 K2 R4
+ 0x8C100104, // 0005 GETMET R4 R0 K4
+ 0x5C180600, // 0006 MOVE R6 R3
+ 0x7C100400, // 0007 CALL R4 2
+ 0x8C100706, // 0008 GETMET R4 R3 K6
+ 0x58180007, // 0009 LDCONST R6 K7
+ 0x581C0008, // 000A LDCONST R7 K8
+ 0x7C100600, // 000B CALL R4 3
+ 0x90020A04, // 000C SETMBR R0 K5 R4
+ 0x80000000, // 000D RET 0
})
)
);
@@ -783,13 +643,114 @@ be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
/********************************************************************
-** Solidified function: timed_request
+** Solidified function: ui_string_to_conf
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_timed_request, /* name */
+be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
+ 8, /* nstack */
+ 3, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(ARG_TYPE),
+ }),
+ be_str_weak(ui_string_to_conf),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x780A0004, // 0003 JMPF R2 #0009
+ 0x78120003, // 0004 JMPF R4 #0009
+ 0x5C180A00, // 0005 MOVE R6 R5
+ 0x5C1C0400, // 0006 MOVE R7 R2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x98040806, // 0008 SETIDX R1 R4 R6
+ 0x80040200, // 0009 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_every_250ms, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_next),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(jitter),
+ /* K3 */ be_nested_str_weak(UPDATE_TIME),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(time_reached),
+ /* K6 */ be_nested_str_weak(tick),
+ /* K7 */ be_nested_str_weak(device),
+ /* K8 */ be_nested_str_weak(update_shadow),
+ /* K9 */ be_nested_str_weak(millis),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060005, // 0003 JMPF R1 #000A
+ 0xB8060200, // 0004 GETNGBL R1 K1
+ 0x8C040302, // 0005 GETMET R1 R1 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x90020001, // 0008 SETMBR R0 K0 R1
+ 0x70020010, // 0009 JMP #001B
+ 0xB8060800, // 000A GETNGBL R1 K4
+ 0x8C040305, // 000B GETMET R1 R1 K5
+ 0x880C0100, // 000C GETMBR R3 R0 K0
+ 0x7C040400, // 000D CALL R1 2
+ 0x7806000B, // 000E JMPF R1 #001B
+ 0x88040106, // 000F GETMBR R1 R0 K6
+ 0x88080107, // 0010 GETMBR R2 R0 K7
+ 0x88080506, // 0011 GETMBR R2 R2 K6
+ 0x20040202, // 0012 NE R1 R1 R2
+ 0x78060001, // 0013 JMPF R1 #0016
+ 0x8C040108, // 0014 GETMET R1 R0 K8
+ 0x7C040200, // 0015 CALL R1 1
+ 0xB8060800, // 0016 GETNGBL R1 K4
+ 0x8C040309, // 0017 GETMET R1 R1 K9
+ 0x880C0103, // 0018 GETMBR R3 R0 K3
+ 0x7C040400, // 0019 CALL R1 2
+ 0x90020001, // 001A SETMBR R0 K0 R1
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -797,11 +758,115 @@ be_local_closure(class_Matter_Plugin_timed_request, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(timed_request),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: subscribe_event
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(subscribe_event),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_attribute_list
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_attribute_list),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140012, // 0003 GETGBL R5 G18
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _parse_update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin__parse_update_virtual, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(_parse_update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x8C1C0300, // 0000 GETMET R7 R1 K0
+ 0x5C240400, // 0001 MOVE R9 R2
+ 0x7C1C0400, // 0002 CALL R7 2
+ 0x4C200000, // 0003 LDNIL R8
+ 0x20200E08, // 0004 NE R8 R7 R8
+ 0x7822000A, // 0005 JMPF R8 #0011
+ 0x5C200800, // 0006 MOVE R8 R4
+ 0x5C240E00, // 0007 MOVE R9 R7
+ 0x7C200200, // 0008 CALL R8 1
+ 0x5C1C1000, // 0009 MOVE R7 R8
+ 0x20200E03, // 000A NE R8 R7 R3
+ 0x78220003, // 000B JMPF R8 #0010
+ 0x8C200101, // 000C GETMET R8 R0 K1
+ 0x5C280A00, // 000D MOVE R10 R5
+ 0x5C2C0C00, // 000E MOVE R11 R6
+ 0x7C200600, // 000F CALL R8 3
+ 0x80040E00, // 0010 RET 1 R7
+ 0x80040600, // 0011 RET 1 R3
})
)
);
@@ -837,201 +902,13 @@ be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
/********************************************************************
-** Solidified function: update_shadow
+** Solidified function: subscribe_attribute
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x88040300, // 0001 GETMBR R1 R1 K0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: consolidate_update_commands
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
- }),
- be_str_weak(consolidate_update_commands),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: append_state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_append_state_json, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- }),
- be_str_weak(append_state_json),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80060000, // 0000 RET 1 K0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_state_json, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(node_label),
- /* K2 */ be_nested_str_weak(_X2C_X22Name_X22_X3A_X25s),
- /* K3 */ be_nested_str_weak(dump),
- /* K4 */ be_nested_str_weak(),
- /* K5 */ be_nested_str_weak(append_state_json),
- /* K6 */ be_nested_str_weak(_X7B_X22Ep_X22_X3A_X25i_X25s_X25s_X7D),
- /* K7 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(state_json),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x780A0006, // 0002 JMPF R2 #000A
- 0x60080018, // 0003 GETGBL R2 G24
- 0x580C0002, // 0004 LDCONST R3 K2
- 0x8C100303, // 0005 GETMET R4 R1 K3
- 0x88180101, // 0006 GETMBR R6 R0 K1
- 0x7C100400, // 0007 CALL R4 2
- 0x7C080400, // 0008 CALL R2 2
- 0x70020000, // 0009 JMP #000B
- 0x58080004, // 000A LDCONST R2 K4
- 0x8C0C0105, // 000B GETMET R3 R0 K5
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0007, // 000D JMPF R3 #0016
- 0x60100018, // 000E GETGBL R4 G24
- 0x58140006, // 000F LDCONST R5 K6
- 0x88180107, // 0010 GETMBR R6 R0 K7
- 0x5C1C0400, // 0011 MOVE R7 R2
- 0x5C200600, // 0012 MOVE R8 R3
- 0x7C100800, // 0013 CALL R4 4
- 0x80040800, // 0014 RET 1 R4
- 0x70020001, // 0015 JMP #0018
- 0x4C100000, // 0016 LDNIL R4
- 0x80040800, // 0017 RET 1 R4
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: has
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_has, /* name */
+be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
be_nested_proto(
6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(endpoints),
- /* K3 */ be_nested_str_weak(find),
- }),
- be_str_weak(has),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x780E0006, // 0004 JMPF R3 #000C
- 0x880C0102, // 0005 GETMBR R3 R0 K2
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x5C140400, // 0007 MOVE R5 R2
- 0x7C0C0400, // 0008 CALL R3 2
- 0x4C100000, // 0009 LDNIL R4
- 0x200C0604, // 000A NE R3 R3 R4
- 0x740E0000, // 000B JMPT R3 #000D
- 0x500C0001, // 000C LDBOOL R3 0 1
- 0x500C0200, // 000D LDBOOL R3 1 0
- 0x80040600, // 000E RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_invoke_request, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
+ 5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -1039,103 +916,11 @@ be_local_closure(class_Matter_Plugin_invoke_request, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(invoke_request),
+ be_str_weak(subscribe_attribute),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow_lazy
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow_lazy),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x88080500, // 0002 GETMBR R2 R2 K0
- 0x20040202, // 0003 NE R1 R1 R2
- 0x78060004, // 0004 JMPF R1 #000A
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x7C040200, // 0006 CALL R1 1
- 0x88040101, // 0007 GETMBR R1 R0 K1
- 0x88040300, // 0008 GETMBR R1 R1 K0
- 0x90020001, // 0009 SETMBR R0 K0 R1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_virtual, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: consolidate_clusters
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(CLUSTERS),
- }),
- be_str_weak(consolidate_clusters),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
})
)
);
@@ -1194,10 +979,10 @@ be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
/********************************************************************
-** Solidified function: get_name
+** Solidified function: consolidate_update_commands
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_name, /* name */
+be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -1208,9 +993,9 @@ be_local_closure(class_Matter_Plugin_get_name, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
+ /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
}),
- be_str_weak(get_name),
+ be_str_weak(consolidate_update_commands),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -1249,12 +1034,120 @@ be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
/********************************************************************
-** Solidified function: contains_cluster
+** Solidified function: get_name
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
+be_local_closure(class_Matter_Plugin_get_name, /* name */
be_nested_proto(
- 5, /* nstack */
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(node_label),
+ }),
+ be_str_weak(get_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: publish_command
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_publish_command, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(_X25s_X3A_X25s),
+ /* K2 */ be_nested_str_weak(dump),
+ /* K3 */ be_nested_str_weak(_X25s_X2C_X25s_X3A_X25s),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(publish_command),
+ /* K6 */ be_nested_str_weak(MtrReceived),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(node_label),
+ }),
+ be_str_weak(publish_command),
+ &be_const_str_solidified,
+ ( &(const binstruction[46]) { /* code */
+ 0xA41E0000, // 0000 IMPORT R7 K0
+ 0x60200018, // 0001 GETGBL R8 G24
+ 0x58240001, // 0002 LDCONST R9 K1
+ 0x8C280F02, // 0003 GETMET R10 R7 K2
+ 0x5C300200, // 0004 MOVE R12 R1
+ 0x7C280400, // 0005 CALL R10 2
+ 0x8C2C0F02, // 0006 GETMET R11 R7 K2
+ 0x5C340400, // 0007 MOVE R13 R2
+ 0x7C2C0400, // 0008 CALL R11 2
+ 0x7C200600, // 0009 CALL R8 3
+ 0x4C240000, // 000A LDNIL R9
+ 0x20240609, // 000B NE R9 R3 R9
+ 0x7826000A, // 000C JMPF R9 #0018
+ 0x60240018, // 000D GETGBL R9 G24
+ 0x58280003, // 000E LDCONST R10 K3
+ 0x5C2C1000, // 000F MOVE R11 R8
+ 0x8C300F02, // 0010 GETMET R12 R7 K2
+ 0x5C380600, // 0011 MOVE R14 R3
+ 0x7C300400, // 0012 CALL R12 2
+ 0x8C340F02, // 0013 GETMET R13 R7 K2
+ 0x5C3C0800, // 0014 MOVE R15 R4
+ 0x7C340400, // 0015 CALL R13 2
+ 0x7C240800, // 0016 CALL R9 4
+ 0x5C201200, // 0017 MOVE R8 R9
+ 0x4C240000, // 0018 LDNIL R9
+ 0x20240A09, // 0019 NE R9 R5 R9
+ 0x7826000A, // 001A JMPF R9 #0026
+ 0x60240018, // 001B GETGBL R9 G24
+ 0x58280003, // 001C LDCONST R10 K3
+ 0x5C2C1000, // 001D MOVE R11 R8
+ 0x8C300F02, // 001E GETMET R12 R7 K2
+ 0x5C380A00, // 001F MOVE R14 R5
+ 0x7C300400, // 0020 CALL R12 2
+ 0x8C340F02, // 0021 GETMET R13 R7 K2
+ 0x5C3C0C00, // 0022 MOVE R15 R6
+ 0x7C340400, // 0023 CALL R13 2
+ 0x7C240800, // 0024 CALL R9 4
+ 0x5C201200, // 0025 MOVE R8 R9
+ 0xB8260800, // 0026 GETNGBL R9 K4
+ 0x8C241305, // 0027 GETMET R9 R9 K5
+ 0x582C0006, // 0028 LDCONST R11 K6
+ 0x88300107, // 0029 GETMBR R12 R0 K7
+ 0x88340108, // 002A GETMBR R13 R0 K8
+ 0x5C381000, // 002B MOVE R14 R8
+ 0x7C240A00, // 002C CALL R9 5
+ 0x80000000, // 002D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_name
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_set_name, /* name */
+ be_nested_proto(
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1263,17 +1156,153 @@ be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
+ /* K0 */ be_nested_str_weak(node_label),
+ /* K1 */ be_nested_str_weak(attribute_updated),
}),
- be_str_weak(contains_cluster),
+ be_str_weak(set_name),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0003, // 0002 JMPF R2 #0007
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x54120038, // 0004 LDINT R4 57
+ 0x54160004, // 0005 LDINT R5 5
+ 0x7C080600, // 0006 CALL R2 3
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow_lazy
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow_lazy),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x88080500, // 0002 GETMBR R2 R2 K0
+ 0x20040202, // 0003 NE R1 R1 R2
+ 0x78060004, // 0004 JMPF R1 #000A
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x7C040200, // 0006 CALL R1 1
+ 0x88040101, // 0007 GETMBR R1 R0 K1
+ 0x88040300, // 0008 GETMBR R1 R1 K0
+ 0x90020001, // 0009 SETMBR R0 K0 R1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040101, // 0000 GETMBR R1 R0 K1
+ 0x88040300, // 0001 GETMBR R1 R1 K0
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: invoke_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_invoke_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K2 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80000000, // 0007 RET 0
})
)
);
@@ -1307,37 +1336,53 @@ be_local_closure(class_Matter_Plugin_is_local_device, /* name */
/********************************************************************
-** Solidified function: ui_string_to_conf
+** Solidified function: consolidate_clusters
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
+be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 4, /* varg */
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(ARG_TYPE),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(CLUSTERS),
}),
- be_str_weak(ui_string_to_conf),
+ be_str_weak(consolidate_clusters),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x780A0004, // 0003 JMPF R2 #0009
- 0x78120003, // 0004 JMPF R4 #0009
- 0x5C180A00, // 0005 MOVE R6 R5
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C180200, // 0007 CALL R6 1
- 0x98040806, // 0008 SETIDX R1 R4 R6
- 0x80040200, // 0009 RET 1 R1
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_event
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_read_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(read_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
})
)
);
@@ -1350,37 +1395,45 @@ be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
be_local_class(Matter_Plugin,
6,
NULL,
- be_nested_map(50,
+ be_nested_map(51,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak() },
- { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(258, -1), be_const_int(5) },
- { be_const_key_int(49, -1), be_const_int(4) },
- })) ) } )) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
- { be_const_key_weak(subscribe_attribute, 33), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(COMMANDS, 21), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_nil() },
- })) ) } )) },
- { be_const_key_weak(endpoint, -1), be_const_var(2) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
+ { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
+ { be_const_key_weak(state_json, -1), be_const_closure(class_Matter_Plugin_state_json_closure) },
+ { be_const_key_weak(read_event, 38), be_const_closure(class_Matter_Plugin_read_event_closure) },
+ { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
+ { be_const_key_weak(consolidate_clusters, -1), be_const_closure(class_Matter_Plugin_consolidate_clusters_closure) },
+ { be_const_key_weak(has, -1), be_const_closure(class_Matter_Plugin_has_closure) },
+ { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
+ { be_const_key_weak(is_local_device, -1), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
+ { be_const_key_weak(UPDATE_TIME, 0), be_const_int(5000) },
+ { be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
+ { be_const_key_weak(get_endpoint, 2), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
+ { be_const_key_weak(ui_conf_to_string, 24), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
+ { be_const_key_weak(UPDATE_COMMANDS, 48), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
- { be_const_key_weak(VIRTUAL, -1), be_const_bool(0) },
+ { be_const_key_weak(ui_string_to_conf, -1), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
+ { be_const_key_weak(every_250ms, 27), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
{ be_const_key_weak(device, -1), be_const_var(1) },
- { be_const_key_weak(subscribe_event, 3), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
- { be_const_key_weak(clusters, -1), be_const_var(3) },
- { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
- { be_const_key_weak(is_local_device, 29), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
- { be_const_key_weak(CLUSTER_REVISIONS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(ARG, -1), be_nested_str_weak() },
+ { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
+ { be_const_key_weak(get_attribute_list, -1), be_const_closure(class_Matter_Plugin_get_attribute_list_closure) },
+ { be_const_key_weak(write_attribute, 39), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
+ { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
+ { be_const_key_weak(consolidate_update_commands, 12), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
+ { be_const_key_weak(subscribe_attribute, -1), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
+ { be_const_key_weak(contains_cluster, 23), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
+ { be_const_key_weak(update_next, -1), be_const_var(0) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin__X3Clambda_X3E_closure) },
+ { be_const_key_weak(get_name, 30), be_const_closure(class_Matter_Plugin_get_name_closure) },
+ { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
+ { be_const_key_weak(TYPE, 34), be_nested_str_weak() },
+ { be_const_key_weak(tick, -1), be_const_var(4) },
+ { be_const_key_weak(CLUSTER_REVISIONS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(25,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_int(5) },
@@ -1409,14 +1462,20 @@ be_local_class(Matter_Plugin,
{ be_const_key_int(6, -1), be_const_int(5) },
{ be_const_key_int(1024, -1), be_const_int(3) },
})) ) } )) },
- { be_const_key_weak(contains_cluster, -1), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
- { be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
- { be_const_key_weak(parse_configuration, 34), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
- { be_const_key_weak(read_event, 28), be_const_closure(class_Matter_Plugin_read_event_closure) },
- { be_const_key_weak(get_name, 43), be_const_closure(class_Matter_Plugin_get_name_closure) },
- { be_const_key_weak(contains_attribute, 31), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
- { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(clusters, -1), be_const_var(3) },
+ { be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_nil() },
+ })) ) } )) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
+ { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
+ { be_const_key_weak(_parse_update_virtual, 47), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
+ { be_const_key_weak(parse_sensors, 19), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
+ { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -1434,31 +1493,18 @@ be_local_class(Matter_Plugin,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
- { be_const_key_weak(timed_request, 13), be_const_closure(class_Matter_Plugin_timed_request_closure) },
- { be_const_key_weak(get_endpoint, -1), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
- { be_const_key_weak(consolidate_clusters, -1), be_const_closure(class_Matter_Plugin_consolidate_clusters_closure) },
- { be_const_key_weak(append_state_json, 18), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
- { be_const_key_weak(ui_conf_to_string, 41), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
- { be_const_key_weak(TYPE, 32), be_nested_str_weak() },
- { be_const_key_weak(state_json, -1), be_const_closure(class_Matter_Plugin_state_json_closure) },
- { be_const_key_weak(tick, -1), be_const_var(4) },
- { be_const_key_weak(ARG, 47), be_nested_str_weak() },
- { be_const_key_weak(write_attribute, 36), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
- { be_const_key_weak(has, -1), be_const_closure(class_Matter_Plugin_has_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
- { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
- { be_const_key_weak(update_shadow, 22), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
- { be_const_key_weak(node_label, 42), be_const_var(5) },
- { be_const_key_weak(update_next, -1), be_const_var(0) },
- { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, 17), be_nested_str_weak(_Not_X20used_) },
- { be_const_key_weak(parse_sensors, 15), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
- { be_const_key_weak(get_attribute_list, -1), be_const_closure(class_Matter_Plugin_get_attribute_list_closure) },
- { be_const_key_weak(ui_string_to_conf, -1), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
- { be_const_key_weak(consolidate_update_commands, 2), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
+ { be_const_key_weak(VIRTUAL, -1), be_const_bool(0) },
+ { be_const_key_weak(DISPLAY_NAME, 10), be_nested_str_weak() },
+ { be_const_key_weak(node_label, 9), be_const_var(5) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
+ { be_const_key_weak(endpoint, -1), be_const_var(2) },
+ { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(258, -1), be_const_int(5) },
+ { be_const_key_int(49, -1), be_const_int(4) },
+ })) ) } )) },
})),
be_str_weak(Matter_Plugin)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
index 83ab36871..0cb5a26f7 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
@@ -328,7 +328,7 @@ be_local_closure(class_Matter_Plugin_Device_append_state_json, /* name */
&be_class_Matter_Plugin_Device,
}),
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[42]) { /* constants */
/* K0 */ be_nested_str_weak(introspect),
/* K1 */ be_nested_str_weak(json),
/* K2 */ be_nested_str_weak(),
@@ -359,10 +359,22 @@ be_local_closure(class_Matter_Plugin_Device_append_state_json, /* name */
/* K27 */ be_nested_str_weak(Contact),
/* K28 */ be_nested_str_weak(shadow_occupancy),
/* K29 */ be_nested_str_weak(Occupancy),
+ /* K30 */ be_nested_str_weak(shadow_air_quality),
+ /* K31 */ be_nested_str_weak(AirQuality),
+ /* K32 */ be_nested_str_weak(shadow_co2),
+ /* K33 */ be_nested_str_weak(CO2),
+ /* K34 */ be_nested_str_weak(shadow_pm1),
+ /* K35 */ be_nested_str_weak(PM1),
+ /* K36 */ be_nested_str_weak(shadow_pm2_5),
+ /* K37 */ be_nested_str_weak(PM2_X2E5),
+ /* K38 */ be_nested_str_weak(shadow_pm10),
+ /* K39 */ be_nested_str_weak(PM10),
+ /* K40 */ be_nested_str_weak(shadow_tvoc),
+ /* K41 */ be_nested_str_weak(TVOC),
}),
be_str_weak(append_state_json),
&be_const_str_solidified,
- ( &(const binstruction[71]) { /* code */
+ ( &(const binstruction[95]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
0x580C0002, // 0002 LDCONST R3 K2
@@ -432,8 +444,77 @@ be_local_closure(class_Matter_Plugin_Device_append_state_json, /* name */
0x581C001C, // 0042 LDCONST R7 K28
0x5820001D, // 0043 LDCONST R8 K29
0x7C180400, // 0044 CALL R6 2
- 0xA0000000, // 0045 CLOSE R0
- 0x80040600, // 0046 RET 1 R3
+ 0x5C180800, // 0045 MOVE R6 R4
+ 0x581C001E, // 0046 LDCONST R7 K30
+ 0x5820001F, // 0047 LDCONST R8 K31
+ 0x7C180400, // 0048 CALL R6 2
+ 0x5C180800, // 0049 MOVE R6 R4
+ 0x581C0020, // 004A LDCONST R7 K32
+ 0x58200021, // 004B LDCONST R8 K33
+ 0x7C180400, // 004C CALL R6 2
+ 0x5C180800, // 004D MOVE R6 R4
+ 0x581C0022, // 004E LDCONST R7 K34
+ 0x58200023, // 004F LDCONST R8 K35
+ 0x7C180400, // 0050 CALL R6 2
+ 0x5C180800, // 0051 MOVE R6 R4
+ 0x581C0024, // 0052 LDCONST R7 K36
+ 0x58200025, // 0053 LDCONST R8 K37
+ 0x7C180400, // 0054 CALL R6 2
+ 0x5C180800, // 0055 MOVE R6 R4
+ 0x581C0026, // 0056 LDCONST R7 K38
+ 0x58200027, // 0057 LDCONST R8 K39
+ 0x7C180400, // 0058 CALL R6 2
+ 0x5C180800, // 0059 MOVE R6 R4
+ 0x581C0028, // 005A LDCONST R7 K40
+ 0x58200029, // 005B LDCONST R8 K41
+ 0x7C180400, // 005C CALL R6 2
+ 0xA0000000, // 005D CLOSE R0
+ 0x80040600, // 005E RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _parse_sensor_entry
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device__parse_sensor_entry, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(_parse_sensor_entry),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x8C1C0300, // 0000 GETMET R7 R1 K0
+ 0x5C240400, // 0001 MOVE R9 R2
+ 0x7C1C0400, // 0002 CALL R7 2
+ 0x4C200000, // 0003 LDNIL R8
+ 0x20200E08, // 0004 NE R8 R7 R8
+ 0x7822000A, // 0005 JMPF R8 #0011
+ 0x5C200800, // 0006 MOVE R8 R4
+ 0x5C240E00, // 0007 MOVE R9 R7
+ 0x7C200200, // 0008 CALL R8 1
+ 0x5C1C1000, // 0009 MOVE R7 R8
+ 0x20200E03, // 000A NE R8 R7 R3
+ 0x78220003, // 000B JMPF R8 #0010
+ 0x8C200101, // 000C GETMET R8 R0 K1
+ 0x5C280A00, // 000D MOVE R10 R5
+ 0x5C2C0C00, // 000E MOVE R11 R6
+ 0x7C200600, // 000F CALL R8 3
+ 0x80040E00, // 0010 RET 1 R7
+ 0x80040600, // 0011 RET 1 R3
})
)
);
@@ -534,17 +615,18 @@ extern const bclass be_class_Matter_Plugin;
be_local_class(Matter_Plugin_Device,
0,
&be_class_Matter_Plugin,
- be_nested_map(6,
+ be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Device_read_attribute_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Device_invoke_request_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(19, -1), be_const_int(1) },
- })) ) } )) },
+ { be_const_key_weak(read_attribute, 1), be_const_closure(class_Matter_Plugin_Device_read_attribute_closure) },
+ { be_const_key_weak(invoke_request, 4), be_const_closure(class_Matter_Plugin_Device_invoke_request_closure) },
{ be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_Device_append_state_json_closure) },
- { be_const_key_weak(CLUSTERS, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(NON_BRIDGE_VENDOR, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(2,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(4631),
+ be_const_int(4993),
+ })) ) } )) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -617,12 +699,12 @@ be_local_class(Matter_Plugin_Device,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(NON_BRIDGE_VENDOR, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(2,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(4631),
- be_const_int(4993),
+ { be_const_key_weak(TYPES, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(19, -1), be_const_int(1) },
})) ) } )) },
+ { be_const_key_weak(_parse_sensor_entry, -1), be_const_closure(class_Matter_Plugin_Device__parse_sensor_entry_closure) },
})),
be_str_weak(Matter_Plugin_Device)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
new file mode 100644
index 000000000..179f66f25
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
@@ -0,0 +1,816 @@
+/* Solidification of Matter_Plugin_2_Sensor_Air_Quality.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+
+/********************************************************************
+** Solidified function: _parse_sensor_entry
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 6, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(_parse_sensor_entry),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x8C180300, // 0000 GETMET R6 R1 K0
+ 0x5C200400, // 0001 MOVE R8 R2
+ 0x7C180400, // 0002 CALL R6 2
+ 0x4C1C0000, // 0003 LDNIL R7
+ 0x201C0C07, // 0004 NE R7 R6 R7
+ 0x781E0006, // 0005 JMPF R7 #000D
+ 0x201C0C03, // 0006 NE R7 R6 R3
+ 0x781E0003, // 0007 JMPF R7 #000C
+ 0x8C1C0101, // 0008 GETMET R7 R0 K1
+ 0x5C240800, // 0009 MOVE R9 R4
+ 0x5C280A00, // 000A MOVE R10 R5
+ 0x7C1C0600, // 000B CALL R7 3
+ 0x80040C00, // 000C RET 1 R6
+ 0x80040600, // 000D RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_air_quality),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(AirQuality),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(shadow_co2),
+ /* K5 */ be_nested_str_weak(CO2),
+ /* K6 */ be_nested_str_weak(shadow_pm1),
+ /* K7 */ be_nested_str_weak(PM1),
+ /* K8 */ be_nested_str_weak(shadow_pm2_5),
+ /* K9 */ be_nested_str_weak(PM2_X2E5),
+ /* K10 */ be_nested_str_weak(shadow_pm10),
+ /* K11 */ be_nested_str_weak(PM10),
+ /* K12 */ be_nested_str_weak(shadow_tvoc),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[61]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x60180007, // 0003 GETGBL R6 G7
+ 0x881C0100, // 0004 GETMBR R7 R0 K0
+ 0x5422005A, // 0005 LDINT R8 91
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x8C080101, // 0009 GETMET R2 R0 K1
+ 0x5C100200, // 000A MOVE R4 R1
+ 0x58140005, // 000B LDCONST R5 K5
+ 0x88180104, // 000C GETMBR R6 R0 K4
+ 0x601C0007, // 000D GETGBL R7 G7
+ 0x5422040C, // 000E LDINT R8 1037
+ 0x58240003, // 000F LDCONST R9 K3
+ 0x7C080E00, // 0010 CALL R2 7
+ 0x90020802, // 0011 SETMBR R0 K4 R2
+ 0x8C080101, // 0012 GETMET R2 R0 K1
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x58140007, // 0014 LDCONST R5 K7
+ 0x88180106, // 0015 GETMBR R6 R0 K6
+ 0x601C0007, // 0016 GETGBL R7 G7
+ 0x5422042B, // 0017 LDINT R8 1068
+ 0x58240003, // 0018 LDCONST R9 K3
+ 0x7C080E00, // 0019 CALL R2 7
+ 0x90020C02, // 001A SETMBR R0 K6 R2
+ 0x8C080101, // 001B GETMET R2 R0 K1
+ 0x5C100200, // 001C MOVE R4 R1
+ 0x58140009, // 001D LDCONST R5 K9
+ 0x88180108, // 001E GETMBR R6 R0 K8
+ 0x601C0007, // 001F GETGBL R7 G7
+ 0x54220429, // 0020 LDINT R8 1066
+ 0x58240003, // 0021 LDCONST R9 K3
+ 0x7C080E00, // 0022 CALL R2 7
+ 0x90021002, // 0023 SETMBR R0 K8 R2
+ 0x8C080101, // 0024 GETMET R2 R0 K1
+ 0x5C100200, // 0025 MOVE R4 R1
+ 0x5814000B, // 0026 LDCONST R5 K11
+ 0x8818010A, // 0027 GETMBR R6 R0 K10
+ 0x601C0007, // 0028 GETGBL R7 G7
+ 0x5422042C, // 0029 LDINT R8 1069
+ 0x58240003, // 002A LDCONST R9 K3
+ 0x7C080E00, // 002B CALL R2 7
+ 0x90021402, // 002C SETMBR R0 K10 R2
+ 0x8C080101, // 002D GETMET R2 R0 K1
+ 0x5C100200, // 002E MOVE R4 R1
+ 0x5814000D, // 002F LDCONST R5 K13
+ 0x8818010C, // 0030 GETMBR R6 R0 K12
+ 0x601C0007, // 0031 GETGBL R7 G7
+ 0x5422042D, // 0032 LDINT R8 1070
+ 0x58240003, // 0033 LDCONST R9 K3
+ 0x7C080E00, // 0034 CALL R2 7
+ 0x90021802, // 0035 SETMBR R0 K12 R2
+ 0x60080003, // 0036 GETGBL R2 G3
+ 0x5C0C0000, // 0037 MOVE R3 R0
+ 0x7C080200, // 0038 CALL R2 1
+ 0x8C08050E, // 0039 GETMET R2 R2 K14
+ 0x5C100200, // 003A MOVE R4 R1
+ 0x7C080400, // 003B CALL R2 2
+ 0x80000000, // 003C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(prefix),
+ /* K2 */ be_nested_str_weak(shadow_co2),
+ /* K3 */ be_nested_str_weak(_parse_sensor_entry),
+ /* K4 */ be_nested_str_weak(CarbonDioxide),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(shadow_pm1),
+ /* K7 */ be_nested_str_weak(PM1),
+ /* K8 */ be_nested_str_weak(shadow_pm2_5),
+ /* K9 */ be_nested_str_weak(PM2_X2E5),
+ /* K10 */ be_nested_str_weak(shadow_pm10),
+ /* K11 */ be_nested_str_weak(PM10),
+ /* K12 */ be_nested_str_weak(shadow_tvoc),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(shadow_no2),
+ /* K15 */ be_nested_str_weak(NO2),
+ /* K16 */ be_nested_str_weak(parse_sensors),
+ }),
+ be_str_weak(parse_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[67]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x200C0403, // 0004 NE R3 R2 R3
+ 0x780E0035, // 0005 JMPF R3 #003C
+ 0x8C0C0103, // 0006 GETMET R3 R0 K3
+ 0x5C140400, // 0007 MOVE R5 R2
+ 0x58180004, // 0008 LDCONST R6 K4
+ 0x881C0102, // 0009 GETMBR R7 R0 K2
+ 0x60200007, // 000A GETGBL R8 G7
+ 0x5426040C, // 000B LDINT R9 1037
+ 0x58280005, // 000C LDCONST R10 K5
+ 0x7C0C0E00, // 000D CALL R3 7
+ 0x90020403, // 000E SETMBR R0 K2 R3
+ 0x8C0C0103, // 000F GETMET R3 R0 K3
+ 0x5C140400, // 0010 MOVE R5 R2
+ 0x58180007, // 0011 LDCONST R6 K7
+ 0x881C0106, // 0012 GETMBR R7 R0 K6
+ 0x60200007, // 0013 GETGBL R8 G7
+ 0x5426042B, // 0014 LDINT R9 1068
+ 0x58280005, // 0015 LDCONST R10 K5
+ 0x7C0C0E00, // 0016 CALL R3 7
+ 0x90020C03, // 0017 SETMBR R0 K6 R3
+ 0x8C0C0103, // 0018 GETMET R3 R0 K3
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x58180009, // 001A LDCONST R6 K9
+ 0x881C0108, // 001B GETMBR R7 R0 K8
+ 0x60200007, // 001C GETGBL R8 G7
+ 0x54260429, // 001D LDINT R9 1066
+ 0x58280005, // 001E LDCONST R10 K5
+ 0x7C0C0E00, // 001F CALL R3 7
+ 0x90021003, // 0020 SETMBR R0 K8 R3
+ 0x8C0C0103, // 0021 GETMET R3 R0 K3
+ 0x5C140400, // 0022 MOVE R5 R2
+ 0x5818000B, // 0023 LDCONST R6 K11
+ 0x881C010A, // 0024 GETMBR R7 R0 K10
+ 0x60200007, // 0025 GETGBL R8 G7
+ 0x5426042C, // 0026 LDINT R9 1069
+ 0x58280005, // 0027 LDCONST R10 K5
+ 0x7C0C0E00, // 0028 CALL R3 7
+ 0x90021403, // 0029 SETMBR R0 K10 R3
+ 0x8C0C0103, // 002A GETMET R3 R0 K3
+ 0x5C140400, // 002B MOVE R5 R2
+ 0x5818000D, // 002C LDCONST R6 K13
+ 0x881C010C, // 002D GETMBR R7 R0 K12
+ 0x60200007, // 002E GETGBL R8 G7
+ 0x5426042D, // 002F LDINT R9 1070
+ 0x58280005, // 0030 LDCONST R10 K5
+ 0x7C0C0E00, // 0031 CALL R3 7
+ 0x90021803, // 0032 SETMBR R0 K12 R3
+ 0x8C0C0103, // 0033 GETMET R3 R0 K3
+ 0x5C140400, // 0034 MOVE R5 R2
+ 0x5818000F, // 0035 LDCONST R6 K15
+ 0x881C010E, // 0036 GETMBR R7 R0 K14
+ 0x60200007, // 0037 GETGBL R8 G7
+ 0x54260412, // 0038 LDINT R9 1043
+ 0x58280005, // 0039 LDCONST R10 K5
+ 0x7C0C0E00, // 003A CALL R3 7
+ 0x90021C03, // 003B SETMBR R0 K14 R3
+ 0x600C0003, // 003C GETGBL R3 G3
+ 0x5C100000, // 003D MOVE R4 R0
+ 0x7C0C0200, // 003E CALL R3 1
+ 0x8C0C0710, // 003F GETMET R3 R3 K16
+ 0x5C140200, // 0040 MOVE R5 R1
+ 0x7C0C0400, // 0041 CALL R3 2
+ 0x80000000, // 0042 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 3]) { /* upvals */
+ be_local_const_upval(1, 6),
+ be_local_const_upval(1, 3),
+ be_local_const_upval(1, 4),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(set),
+ /* K2 */ be_nested_str_weak(FLOAT),
+ /* K3 */ be_nested_str_weak(NULL),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(U1),
+ /* K7 */ be_nested_str_weak(U4),
+ }),
+ be_str_weak(handle_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[85]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x58040000, // 0003 LDCONST R1 K0
+ 0x68080000, // 0004 GETUPV R2 U0
+ 0x1C080500, // 0005 EQ R2 R2 K0
+ 0x780A0012, // 0006 JMPF R2 #001A
+ 0x4C080000, // 0007 LDNIL R2
+ 0x20080002, // 0008 NE R2 R0 R2
+ 0x780A0007, // 0009 JMPF R2 #0012
+ 0x68080001, // 000A GETUPV R2 U1
+ 0x8C080501, // 000B GETMET R2 R2 K1
+ 0x68100002, // 000C GETUPV R4 U2
+ 0x88100902, // 000D GETMBR R4 R4 K2
+ 0x5C140000, // 000E MOVE R5 R0
+ 0x7C080600, // 000F CALL R2 3
+ 0x80040400, // 0010 RET 1 R2
+ 0x70020006, // 0011 JMP #0019
+ 0x68080001, // 0012 GETUPV R2 U1
+ 0x8C080501, // 0013 GETMET R2 R2 K1
+ 0x68100002, // 0014 GETUPV R4 U2
+ 0x88100903, // 0015 GETMBR R4 R4 K3
+ 0x4C140000, // 0016 LDNIL R5
+ 0x7C080600, // 0017 CALL R2 3
+ 0x80040400, // 0018 RET 1 R2
+ 0x70020038, // 0019 JMP #0053
+ 0x68080000, // 001A GETUPV R2 U0
+ 0x1C080504, // 001B EQ R2 R2 K4
+ 0x780A0007, // 001C JMPF R2 #0025
+ 0x68080001, // 001D GETUPV R2 U1
+ 0x8C080501, // 001E GETMET R2 R2 K1
+ 0x68100002, // 001F GETUPV R4 U2
+ 0x88100903, // 0020 GETMBR R4 R4 K3
+ 0x4C140000, // 0021 LDNIL R5
+ 0x7C080600, // 0022 CALL R2 3
+ 0x80040400, // 0023 RET 1 R2
+ 0x7002002D, // 0024 JMP #0053
+ 0x68080000, // 0025 GETUPV R2 U0
+ 0x1C080505, // 0026 EQ R2 R2 K5
+ 0x780A0007, // 0027 JMPF R2 #0030
+ 0x68080001, // 0028 GETUPV R2 U1
+ 0x8C080501, // 0029 GETMET R2 R2 K1
+ 0x68100002, // 002A GETUPV R4 U2
+ 0x88100903, // 002B GETMBR R4 R4 K3
+ 0x4C140000, // 002C LDNIL R5
+ 0x7C080600, // 002D CALL R2 3
+ 0x80040400, // 002E RET 1 R2
+ 0x70020022, // 002F JMP #0053
+ 0x68080000, // 0030 GETUPV R2 U0
+ 0x540E0007, // 0031 LDINT R3 8
+ 0x1C080403, // 0032 EQ R2 R2 R3
+ 0x780A0007, // 0033 JMPF R2 #003C
+ 0x68080001, // 0034 GETUPV R2 U1
+ 0x8C080501, // 0035 GETMET R2 R2 K1
+ 0x68100002, // 0036 GETUPV R4 U2
+ 0x88100906, // 0037 GETMBR R4 R4 K6
+ 0x5C140200, // 0038 MOVE R5 R1
+ 0x7C080600, // 0039 CALL R2 3
+ 0x80040400, // 003A RET 1 R2
+ 0x70020016, // 003B JMP #0053
+ 0x68080000, // 003C GETUPV R2 U0
+ 0x540E0008, // 003D LDINT R3 9
+ 0x1C080403, // 003E EQ R2 R2 R3
+ 0x780A0007, // 003F JMPF R2 #0048
+ 0x68080001, // 0040 GETUPV R2 U1
+ 0x8C080501, // 0041 GETMET R2 R2 K1
+ 0x68100002, // 0042 GETUPV R4 U2
+ 0x88100906, // 0043 GETMBR R4 R4 K6
+ 0x58140000, // 0044 LDCONST R5 K0
+ 0x7C080600, // 0045 CALL R2 3
+ 0x80040400, // 0046 RET 1 R2
+ 0x7002000A, // 0047 JMP #0053
+ 0x68080000, // 0048 GETUPV R2 U0
+ 0x540EFFFB, // 0049 LDINT R3 65532
+ 0x1C080403, // 004A EQ R2 R2 R3
+ 0x780A0006, // 004B JMPF R2 #0053
+ 0x68080001, // 004C GETUPV R2 U1
+ 0x8C080501, // 004D GETMET R2 R2 K1
+ 0x68100002, // 004E GETUPV R4 U2
+ 0x88100907, // 004F GETMBR R4 R4 K7
+ 0x58140004, // 0050 LDCONST R5 K4
+ 0x7C080600, // 0051 CALL R2 3
+ 0x80040400, // 0052 RET 1 R2
+ 0x4C080000, // 0053 LDNIL R2
+ 0x80040400, // 0054 RET 1 R2
+ })
+ ),
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(shadow_air_quality),
+ /* K6 */ be_nested_str_weak(set),
+ /* K7 */ be_nested_str_weak(U1),
+ /* K8 */ be_nested_str_weak(NULL),
+ /* K9 */ be_nested_str_weak(shadow_co2),
+ /* K10 */ be_nested_str_weak(shadow_pm1),
+ /* K11 */ be_nested_str_weak(shadow_pm2_5),
+ /* K12 */ be_nested_str_weak(shadow_pm10),
+ /* K13 */ be_nested_str_weak(shadow_tvoc),
+ /* K14 */ be_nested_str_weak(shadow_no2),
+ /* K15 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[104]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x4C1C0000, // 0004 LDNIL R7
+ 0x84200000, // 0005 CLOSURE R8 P0
+ 0x5426005A, // 0006 LDINT R9 91
+ 0x1C240A09, // 0007 EQ R9 R5 R9
+ 0x78260013, // 0008 JMPF R9 #001D
+ 0x1C240D04, // 0009 EQ R9 R6 K4
+ 0x78260010, // 000A JMPF R9 #001C
+ 0x88240105, // 000B GETMBR R9 R0 K5
+ 0x4C280000, // 000C LDNIL R10
+ 0x2024120A, // 000D NE R9 R9 R10
+ 0x78260006, // 000E JMPF R9 #0016
+ 0x8C240706, // 000F GETMET R9 R3 K6
+ 0x882C0907, // 0010 GETMBR R11 R4 K7
+ 0x88300105, // 0011 GETMBR R12 R0 K5
+ 0x7C240600, // 0012 CALL R9 3
+ 0xA0000000, // 0013 CLOSE R0
+ 0x80041200, // 0014 RET 1 R9
+ 0x70020005, // 0015 JMP #001C
+ 0x8C240706, // 0016 GETMET R9 R3 K6
+ 0x882C0908, // 0017 GETMBR R11 R4 K8
+ 0x4C300000, // 0018 LDNIL R12
+ 0x7C240600, // 0019 CALL R9 3
+ 0xA0000000, // 001A CLOSE R0
+ 0x80041200, // 001B RET 1 R9
+ 0x70020040, // 001C JMP #005E
+ 0x5426040C, // 001D LDINT R9 1037
+ 0x1C240A09, // 001E EQ R9 R5 R9
+ 0x78260007, // 001F JMPF R9 #0028
+ 0x5C241000, // 0020 MOVE R9 R8
+ 0x88280109, // 0021 GETMBR R10 R0 K9
+ 0x7C240200, // 0022 CALL R9 1
+ 0x5C1C1200, // 0023 MOVE R7 R9
+ 0x78260001, // 0024 JMPF R9 #0027
+ 0xA0000000, // 0025 CLOSE R0
+ 0x80040E00, // 0026 RET 1 R7
+ 0x70020035, // 0027 JMP #005E
+ 0x5426042B, // 0028 LDINT R9 1068
+ 0x1C240A09, // 0029 EQ R9 R5 R9
+ 0x78260007, // 002A JMPF R9 #0033
+ 0x5C241000, // 002B MOVE R9 R8
+ 0x8828010A, // 002C GETMBR R10 R0 K10
+ 0x7C240200, // 002D CALL R9 1
+ 0x5C1C1200, // 002E MOVE R7 R9
+ 0x78260001, // 002F JMPF R9 #0032
+ 0xA0000000, // 0030 CLOSE R0
+ 0x80040E00, // 0031 RET 1 R7
+ 0x7002002A, // 0032 JMP #005E
+ 0x54260429, // 0033 LDINT R9 1066
+ 0x1C240A09, // 0034 EQ R9 R5 R9
+ 0x78260007, // 0035 JMPF R9 #003E
+ 0x5C241000, // 0036 MOVE R9 R8
+ 0x8828010B, // 0037 GETMBR R10 R0 K11
+ 0x7C240200, // 0038 CALL R9 1
+ 0x5C1C1200, // 0039 MOVE R7 R9
+ 0x78260001, // 003A JMPF R9 #003D
+ 0xA0000000, // 003B CLOSE R0
+ 0x80040E00, // 003C RET 1 R7
+ 0x7002001F, // 003D JMP #005E
+ 0x5426042C, // 003E LDINT R9 1069
+ 0x1C240A09, // 003F EQ R9 R5 R9
+ 0x78260007, // 0040 JMPF R9 #0049
+ 0x5C241000, // 0041 MOVE R9 R8
+ 0x8828010C, // 0042 GETMBR R10 R0 K12
+ 0x7C240200, // 0043 CALL R9 1
+ 0x5C1C1200, // 0044 MOVE R7 R9
+ 0x78260001, // 0045 JMPF R9 #0048
+ 0xA0000000, // 0046 CLOSE R0
+ 0x80040E00, // 0047 RET 1 R7
+ 0x70020014, // 0048 JMP #005E
+ 0x5426042D, // 0049 LDINT R9 1070
+ 0x1C240A09, // 004A EQ R9 R5 R9
+ 0x78260007, // 004B JMPF R9 #0054
+ 0x5C241000, // 004C MOVE R9 R8
+ 0x8828010D, // 004D GETMBR R10 R0 K13
+ 0x7C240200, // 004E CALL R9 1
+ 0x5C1C1200, // 004F MOVE R7 R9
+ 0x78260001, // 0050 JMPF R9 #0053
+ 0xA0000000, // 0051 CLOSE R0
+ 0x80040E00, // 0052 RET 1 R7
+ 0x70020009, // 0053 JMP #005E
+ 0x54260412, // 0054 LDINT R9 1043
+ 0x1C240A09, // 0055 EQ R9 R5 R9
+ 0x78260006, // 0056 JMPF R9 #005E
+ 0x5C241000, // 0057 MOVE R9 R8
+ 0x8828010E, // 0058 GETMBR R10 R0 K14
+ 0x7C240200, // 0059 CALL R9 1
+ 0x5C1C1200, // 005A MOVE R7 R9
+ 0x78260001, // 005B JMPF R9 #005E
+ 0xA0000000, // 005C CLOSE R0
+ 0x80040E00, // 005D RET 1 R7
+ 0x60240003, // 005E GETGBL R9 G3
+ 0x5C280000, // 005F MOVE R10 R0
+ 0x7C240200, // 0060 CALL R9 1
+ 0x8C24130F, // 0061 GETMET R9 R9 K15
+ 0x5C2C0200, // 0062 MOVE R11 R1
+ 0x5C300400, // 0063 MOVE R12 R2
+ 0x5C340600, // 0064 MOVE R13 R3
+ 0x7C240800, // 0065 CALL R9 4
+ 0xA0000000, // 0066 CLOSE R0
+ 0x80041200, // 0067 RET 1 R9
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(prefix),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x60080008, // 0000 GETGBL R2 G8
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x7C080200, // 0004 CALL R2 1
+ 0x90020002, // 0005 SETMBR R0 K0 R2
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_air_quality),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_Air_Quality
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_class(Matter_Plugin_Sensor_Air_Quality,
+ 8,
+ &be_class_Matter_Plugin_Device,
+ be_nested_map(23,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_update_virtual_closure) },
+ { be_const_key_weak(shadow_pm10, 0), be_const_var(4) },
+ { be_const_key_weak(ARG, 1), be_nested_str_weak(airquality) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(airquality) },
+ { be_const_key_weak(parse_configuration, 21), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration_closure) },
+ { be_const_key_weak(shadow_no2, -1), be_const_var(6) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(30000) },
+ { be_const_key_weak(UPDATE_COMMANDS, 13), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(AirQuality),
+ be_nested_str_weak(CO2),
+ be_nested_str_weak(PM1),
+ be_nested_str_weak(PM2_X2E5),
+ be_nested_str_weak(PM10),
+ be_nested_str_weak(TVOC),
+ be_nested_str_weak(NO2),
+ })) ) } )) },
+ { be_const_key_weak(shadow_pm2_5, -1), be_const_var(3) },
+ { be_const_key_weak(shadow_air_quality, -1), be_const_var(1) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute_closure) },
+ { be_const_key_weak(shadow_tvoc, -1), be_const_var(7) },
+ { be_const_key_weak(prefix, -1), be_const_var(0) },
+ { be_const_key_weak(TYPES, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(44, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(_parse_sensor_entry, 19), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry_closure) },
+ { be_const_key_weak(shadow_pm1, 9), be_const_var(2) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Air_X20Quality) },
+ { be_const_key_weak(parse_sensors, 7), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors_closure) },
+ { be_const_key_weak(shadow_co2, -1), be_const_var(5) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_init_closure) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Device_X20key_X20_X28ex_X3A_X20SCD40_X29) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(12,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(1068, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1069, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1070, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(5, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1037, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(91, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1066, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1043, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(AirQuality) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_Air_Quality)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
index f4124fc0d..9882dd40f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
@@ -269,7 +269,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_read_attribute, /* name */
extern const bclass be_class_Matter_Plugin_Sensor_Contact;
be_local_closure(class_Matter_Plugin_Sensor_Contact_update_virtual, /* name */
be_nested_proto(
- 7, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -277,42 +277,32 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_update_virtual, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Contact,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Contact),
- /* K2 */ be_nested_str_weak(shadow_contact),
- /* K3 */ be_nested_str_weak(attribute_updated),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(update_virtual),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_contact),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Contact),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
}),
be_str_weak(update_virtual),
&be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x200C0403, // 0004 NE R3 R2 R3
- 0x780E000B, // 0005 JMPF R3 #0012
- 0x600C0017, // 0006 GETGBL R3 G23
- 0x5C100400, // 0007 MOVE R4 R2
- 0x7C0C0200, // 0008 CALL R3 1
- 0x5C080600, // 0009 MOVE R2 R3
- 0x880C0102, // 000A GETMBR R3 R0 K2
- 0x200C0602, // 000B NE R3 R3 R2
- 0x780E0004, // 000C JMPF R3 #0012
- 0x8C0C0103, // 000D GETMET R3 R0 K3
- 0x54160044, // 000E LDINT R5 69
- 0x58180004, // 000F LDCONST R6 K4
- 0x7C0C0600, // 0010 CALL R3 3
- 0x90020402, // 0011 SETMBR R0 K2 R2
- 0x600C0003, // 0012 GETGBL R3 G3
- 0x5C100000, // 0013 MOVE R4 R0
- 0x7C0C0200, // 0014 CALL R3 1
- 0x8C0C0705, // 0015 GETMET R3 R3 K5
- 0x5C140200, // 0016 MOVE R5 R1
- 0x7C0C0400, // 0017 CALL R3 2
- 0x80000000, // 0018 RET 0
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220044, // 0005 LDINT R8 69
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
index eb2704d72..d74be2a22 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
@@ -39,7 +39,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E, /* name
extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name */
be_nested_proto(
- 7, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -47,42 +47,32 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Occupancy,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Occupancy),
- /* K2 */ be_nested_str_weak(shadow_occupancy),
- /* K3 */ be_nested_str_weak(attribute_updated),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(update_virtual),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(val_onoff),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Occupancy),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
}),
be_str_weak(update_virtual),
&be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x200C0403, // 0004 NE R3 R2 R3
- 0x780E000B, // 0005 JMPF R3 #0012
- 0x600C0017, // 0006 GETGBL R3 G23
- 0x5C100400, // 0007 MOVE R4 R2
- 0x7C0C0200, // 0008 CALL R3 1
- 0x5C080600, // 0009 MOVE R2 R3
- 0x880C0102, // 000A GETMBR R3 R0 K2
- 0x200C0602, // 000B NE R3 R3 R2
- 0x780E0004, // 000C JMPF R3 #0012
- 0x8C0C0103, // 000D GETMET R3 R0 K3
- 0x54160405, // 000E LDINT R5 1030
- 0x58180004, // 000F LDCONST R6 K4
- 0x7C0C0600, // 0010 CALL R3 3
- 0x90020402, // 0011 SETMBR R0 K2 R2
- 0x600C0003, // 0012 GETGBL R3 G3
- 0x5C100000, // 0013 MOVE R4 R0
- 0x7C0C0200, // 0014 CALL R3 1
- 0x8C0C0705, // 0015 GETMET R3 R3 K5
- 0x5C140200, // 0016 MOVE R5 R1
- 0x7C0C0400, // 0017 CALL R3 2
- 0x80000000, // 0018 RET 0
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220405, // 0005 LDINT R8 1030
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
new file mode 100644
index 000000000..fa6b7f956
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
@@ -0,0 +1,404 @@
+/* Solidification of Matter_Plugin_3_Bridge_Sensor_Air_Quality.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Air_Quality'
+extern bclosure *class_Matter_Plugin_Sensor_Air_Quality_read_attribute;
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(content_send),
+ /* K2 */ be_nested_str_weak(_X25s_X20_X25i_X20),
+ }),
+ be_str_weak(web_values_single),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0007, // 0002 JMPF R2 #000B
+ 0xA40A0000, // 0003 IMPORT R2 K0
+ 0x8C0C0501, // 0004 GETMET R3 R2 K1
+ 0x60140018, // 0005 GETGBL R5 G24
+ 0x58180002, // 0006 LDCONST R6 K2
+ 0x5C1C0000, // 0007 MOVE R7 R0
+ 0x5C200200, // 0008 MOVE R8 R1
+ 0x7C140600, // 0009 CALL R5 3
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x80000000, // 000B RET 0
+ })
+ ),
+ &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(web_values_prefix),
+ /* K1 */ be_nested_str_weak(Air),
+ /* K2 */ be_nested_str_weak(shadow_air_quality),
+ /* K3 */ be_nested_str_weak(PM1),
+ /* K4 */ be_nested_str_weak(shadow_pm1),
+ /* K5 */ be_nested_str_weak(PM2_X2E5),
+ /* K6 */ be_nested_str_weak(shadow_pm2_5),
+ /* K7 */ be_nested_str_weak(PM10),
+ /* K8 */ be_nested_str_weak(shadow_pm10),
+ /* K9 */ be_nested_str_weak(CO2),
+ /* K10 */ be_nested_str_weak(shadow_co2),
+ /* K11 */ be_nested_str_weak(NO2),
+ /* K12 */ be_nested_str_weak(shadow_no2),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(shadow_tvoc),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x84040000, // 0000 CLOSURE R1 P0
+ 0x8C080100, // 0001 GETMET R2 R0 K0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C080200, // 0003 MOVE R2 R1
+ 0x580C0001, // 0004 LDCONST R3 K1
+ 0x88100102, // 0005 GETMBR R4 R0 K2
+ 0x7C080400, // 0006 CALL R2 2
+ 0x5C080200, // 0007 MOVE R2 R1
+ 0x580C0003, // 0008 LDCONST R3 K3
+ 0x88100104, // 0009 GETMBR R4 R0 K4
+ 0x7C080400, // 000A CALL R2 2
+ 0x5C080200, // 000B MOVE R2 R1
+ 0x580C0005, // 000C LDCONST R3 K5
+ 0x88100106, // 000D GETMBR R4 R0 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x5C080200, // 000F MOVE R2 R1
+ 0x580C0007, // 0010 LDCONST R3 K7
+ 0x88100108, // 0011 GETMBR R4 R0 K8
+ 0x7C080400, // 0012 CALL R2 2
+ 0x5C080200, // 0013 MOVE R2 R1
+ 0x580C0009, // 0014 LDCONST R3 K9
+ 0x8810010A, // 0015 GETMBR R4 R0 K10
+ 0x7C080400, // 0016 CALL R2 2
+ 0x5C080200, // 0017 MOVE R2 R1
+ 0x580C000B, // 0018 LDCONST R3 K11
+ 0x8810010C, // 0019 GETMBR R4 R0 K12
+ 0x7C080400, // 001A CALL R2 2
+ 0x5C080200, // 001B MOVE R2 R1
+ 0x580C000D, // 001C LDCONST R3 K13
+ 0x8810010E, // 001D GETMBR R4 R0 K14
+ 0x7C080400, // 001E CALL R2 2
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(prefix),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(ARG),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x60100008, // 0008 GETGBL R4 G8
+ 0x8C140702, // 0009 GETMET R5 R3 K2
+ 0x881C0103, // 000A GETMBR R7 R0 K3
+ 0x7C140400, // 000B CALL R5 2
+ 0x7C100200, // 000C CALL R4 1
+ 0x90020204, // 000D SETMBR R0 K1 R4
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_update
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_update, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(prefix),
+ }),
+ be_str_weak(parse_update),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x540E0007, // 0000 LDINT R3 8
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0002, // 0002 JMPF R3 #0006
+ 0x8C0C0300, // 0003 GETMET R3 R1 K0
+ 0x88140101, // 0004 GETMBR R5 R0 K1
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Air_Quality
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
+be_local_class(Matter_Plugin_Bridge_Sensor_Air_Quality,
+ 8,
+ &be_class_Matter_Plugin_Bridge_HTTP,
+ be_nested_map(20,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X208) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Air_X20Quality) },
+ { be_const_key_weak(shadow_tvoc, 8), be_const_var(7) },
+ { be_const_key_weak(shadow_pm10, 7), be_const_var(4) },
+ { be_const_key_weak(shadow_pm2_5, -1), be_const_var(3) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Sensor_X20Model) },
+ { be_const_key_weak(shadow_co2, -1), be_const_var(5) },
+ { be_const_key_weak(parse_update, 18), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_update_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute_closure) },
+ { be_const_key_weak(prefix, 13), be_const_var(0) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(44, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values_closure) },
+ { be_const_key_weak(shadow_pm1, 11), be_const_var(2) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_airquality) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(12,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(1068, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1069, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1070, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(5, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1037, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(91, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1066, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(1043, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(11,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(8),
+ be_const_int(9),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_init_closure) },
+ { be_const_key_weak(UPDATE_TIME, 3), be_const_int(5000) },
+ { be_const_key_weak(shadow_no2, 4), be_const_var(6) },
+ { be_const_key_weak(shadow_air_quality, -1), be_const_var(1) },
+ { be_const_key_weak(ARG, 0), be_nested_str_weak(airquality) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Air_Quality)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
index cdf9539d2..c69dec160 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
@@ -340,21 +340,22 @@ be_local_closure(class_Matter_Plugin_Light2_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light2,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_nested_str_weak(set),
+ /* K5 */ be_nested_str_weak(set_or_nil),
/* K6 */ be_nested_str_weak(U1),
/* K7 */ be_nested_str_weak(shadow_ct),
- /* K8 */ be_const_int(2),
- /* K9 */ be_const_int(0),
- /* K10 */ be_nested_str_weak(ct_min),
- /* K11 */ be_nested_str_weak(ct_max),
- /* K12 */ be_nested_str_weak(U4),
- /* K13 */ be_nested_str_weak(read_attribute),
+ /* K8 */ be_nested_str_weak(set),
+ /* K9 */ be_const_int(2),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(ct_min),
+ /* K12 */ be_nested_str_weak(ct_max),
+ /* K13 */ be_nested_str_weak(U4),
+ /* K14 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
@@ -380,51 +381,51 @@ be_local_closure(class_Matter_Plugin_Light2_read_attribute, /* name */
0x541E0007, // 0012 LDINT R7 8
0x1C1C0C07, // 0013 EQ R7 R6 R7
0x781E0005, // 0014 JMPF R7 #001B
- 0x8C1C0705, // 0015 GETMET R7 R3 K5
+ 0x8C1C0708, // 0015 GETMET R7 R3 K8
0x88240906, // 0016 GETMBR R9 R4 K6
- 0x58280008, // 0017 LDCONST R10 K8
+ 0x58280009, // 0017 LDCONST R10 K9
0x7C1C0600, // 0018 CALL R7 3
0x80040E00, // 0019 RET 1 R7
0x70020022, // 001A JMP #003E
0x541E000E, // 001B LDINT R7 15
0x1C1C0C07, // 001C EQ R7 R6 R7
0x781E0005, // 001D JMPF R7 #0024
- 0x8C1C0705, // 001E GETMET R7 R3 K5
+ 0x8C1C0708, // 001E GETMET R7 R3 K8
0x88240906, // 001F GETMBR R9 R4 K6
- 0x58280009, // 0020 LDCONST R10 K9
+ 0x5828000A, // 0020 LDCONST R10 K10
0x7C1C0600, // 0021 CALL R7 3
0x80040E00, // 0022 RET 1 R7
0x70020019, // 0023 JMP #003E
0x541E400A, // 0024 LDINT R7 16395
0x1C1C0C07, // 0025 EQ R7 R6 R7
0x781E0005, // 0026 JMPF R7 #002D
- 0x8C1C0705, // 0027 GETMET R7 R3 K5
+ 0x8C1C0708, // 0027 GETMET R7 R3 K8
0x88240906, // 0028 GETMBR R9 R4 K6
- 0x8828010A, // 0029 GETMBR R10 R0 K10
+ 0x8828010B, // 0029 GETMBR R10 R0 K11
0x7C1C0600, // 002A CALL R7 3
0x80040E00, // 002B RET 1 R7
0x70020010, // 002C JMP #003E
0x541E400B, // 002D LDINT R7 16396
0x1C1C0C07, // 002E EQ R7 R6 R7
0x781E0005, // 002F JMPF R7 #0036
- 0x8C1C0705, // 0030 GETMET R7 R3 K5
+ 0x8C1C0708, // 0030 GETMET R7 R3 K8
0x88240906, // 0031 GETMBR R9 R4 K6
- 0x8828010B, // 0032 GETMBR R10 R0 K11
+ 0x8828010C, // 0032 GETMBR R10 R0 K12
0x7C1C0600, // 0033 CALL R7 3
0x80040E00, // 0034 RET 1 R7
0x70020007, // 0035 JMP #003E
0x541EFFFB, // 0036 LDINT R7 65532
0x1C1C0C07, // 0037 EQ R7 R6 R7
0x781E0004, // 0038 JMPF R7 #003E
- 0x8C1C0705, // 0039 GETMET R7 R3 K5
- 0x8824090C, // 003A GETMBR R9 R4 K12
+ 0x8C1C0708, // 0039 GETMET R7 R3 K8
+ 0x8824090D, // 003A GETMBR R9 R4 K13
0x542A000F, // 003B LDINT R10 16
0x7C1C0600, // 003C CALL R7 3
0x80040E00, // 003D RET 1 R7
0x601C0003, // 003E GETGBL R7 G3
0x5C200000, // 003F MOVE R8 R0
0x7C1C0200, // 0040 CALL R7 1
- 0x8C1C0F0D, // 0041 GETMET R7 R7 K13
+ 0x8C1C0F0E, // 0041 GETMET R7 R7 K14
0x5C240200, // 0042 MOVE R9 R1
0x5C280400, // 0043 MOVE R10 R2
0x5C2C0600, // 0044 MOVE R11 R3
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
index 2a4feefc7..8df599ab7 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
@@ -531,20 +531,21 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light3,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
+ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(set),
+ /* K6 */ be_nested_str_weak(set_or_nil),
/* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(shadow_hue),
/* K9 */ be_const_int(1),
/* K10 */ be_nested_str_weak(shadow_sat),
- /* K11 */ be_nested_str_weak(U4),
- /* K12 */ be_nested_str_weak(read_attribute),
+ /* K11 */ be_nested_str_weak(set),
+ /* K12 */ be_nested_str_weak(U4),
+ /* K13 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
@@ -577,7 +578,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E0006, // 0019 LDINT R7 7
0x1C1C0C07, // 001A EQ R7 R6 R7
0x781E0005, // 001B JMPF R7 #0022
- 0x8C1C0706, // 001C GETMET R7 R3 K6
+ 0x8C1C070B, // 001C GETMET R7 R3 K11
0x88240907, // 001D GETMBR R9 R4 K7
0x58280005, // 001E LDCONST R10 K5
0x7C1C0600, // 001F CALL R7 3
@@ -586,7 +587,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E0007, // 0022 LDINT R7 8
0x1C1C0C07, // 0023 EQ R7 R6 R7
0x781E0005, // 0024 JMPF R7 #002B
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
+ 0x8C1C070B, // 0025 GETMET R7 R3 K11
0x88240907, // 0026 GETMBR R9 R4 K7
0x58280005, // 0027 LDCONST R10 K5
0x7C1C0600, // 0028 CALL R7 3
@@ -595,7 +596,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E000E, // 002B LDINT R7 15
0x1C1C0C07, // 002C EQ R7 R6 R7
0x781E0005, // 002D JMPF R7 #0034
- 0x8C1C0706, // 002E GETMET R7 R3 K6
+ 0x8C1C070B, // 002E GETMET R7 R3 K11
0x88240907, // 002F GETMBR R9 R4 K7
0x58280005, // 0030 LDCONST R10 K5
0x7C1C0600, // 0031 CALL R7 3
@@ -604,7 +605,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E4000, // 0034 LDINT R7 16385
0x1C1C0C07, // 0035 EQ R7 R6 R7
0x781E0005, // 0036 JMPF R7 #003D
- 0x8C1C0706, // 0037 GETMET R7 R3 K6
+ 0x8C1C070B, // 0037 GETMET R7 R3 K11
0x88240907, // 0038 GETMBR R9 R4 K7
0x58280005, // 0039 LDCONST R10 K5
0x7C1C0600, // 003A CALL R7 3
@@ -613,7 +614,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E4009, // 003D LDINT R7 16394
0x1C1C0C07, // 003E EQ R7 R6 R7
0x781E0005, // 003F JMPF R7 #0046
- 0x8C1C0706, // 0040 GETMET R7 R3 K6
+ 0x8C1C070B, // 0040 GETMET R7 R3 K11
0x88240907, // 0041 GETMBR R9 R4 K7
0x58280009, // 0042 LDCONST R10 K9
0x7C1C0600, // 0043 CALL R7 3
@@ -622,7 +623,7 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541E000F, // 0046 LDINT R7 16
0x1C1C0C07, // 0047 EQ R7 R6 R7
0x781E0005, // 0048 JMPF R7 #004F
- 0x8C1C0706, // 0049 GETMET R7 R3 K6
+ 0x8C1C070B, // 0049 GETMET R7 R3 K11
0x88240907, // 004A GETMBR R9 R4 K7
0x58280005, // 004B LDCONST R10 K5
0x7C1C0600, // 004C CALL R7 3
@@ -631,15 +632,15 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
0x541EFFFB, // 004F LDINT R7 65532
0x1C1C0C07, // 0050 EQ R7 R6 R7
0x781E0004, // 0051 JMPF R7 #0057
- 0x8C1C0706, // 0052 GETMET R7 R3 K6
- 0x8824090B, // 0053 GETMBR R9 R4 K11
+ 0x8C1C070B, // 0052 GETMET R7 R3 K11
+ 0x8824090C, // 0053 GETMBR R9 R4 K12
0x58280009, // 0054 LDCONST R10 K9
0x7C1C0600, // 0055 CALL R7 3
0x80040E00, // 0056 RET 1 R7
0x601C0003, // 0057 GETGBL R7 G3
0x5C200000, // 0058 MOVE R8 R0
0x7C1C0200, // 0059 CALL R7 1
- 0x8C1C0F0C, // 005A GETMET R7 R7 K12
+ 0x8C1C0F0D, // 005A GETMET R7 R7 K13
0x5C240200, // 005B MOVE R9 R1
0x5C280400, // 005C MOVE R10 R2
0x5C2C0600, // 005D MOVE R11 R3
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
index 2bd05cb2e..b8f7cb5b0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
@@ -71,94 +71,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Sensor_Flow_value_changed, /* name
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Flow_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Flow,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0403, // 0004 LDINT R7 1028
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x58280004, // 001F LDCONST R10 K4
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542AFFFD, // 0027 LDINT R10 65534
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Flow'
+extern bclosure *class_Matter_Plugin_Sensor_Flow_read_attribute;
/********************************************************************
** Solidified function: web_values
@@ -218,7 +132,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Flow,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(774, -1), be_const_int(1) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Flow_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_static_closure(class_Matter_Plugin_Sensor_Flow_read_attribute_closure) },
{ be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Flow_value_changed_closure) },
{ be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Flow) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_flow) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
index 5805df777..0c1681ff3 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
@@ -71,94 +71,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_value_changed, /*
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Humidity,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0404, // 0004 LDINT R7 1029
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x542A01F3, // 001F LDINT R10 500
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542A270F, // 0027 LDINT R10 10000
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Humidity'
+extern bclosure *class_Matter_Plugin_Sensor_Humidity_read_attribute;
/********************************************************************
** Solidified function: web_values
@@ -226,7 +140,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(775, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Humidity_read_attribute_closure) },
{ be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_value_changed_closure) },
{ be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Humidity) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_humidity) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
index e31c317b6..49558b390 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
@@ -83,94 +83,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_value_changed,
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Illuminance,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E03FF, // 0004 LDINT R7 1024
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x58280009, // 001F LDCONST R10 K9
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542AFFFD, // 0027 LDINT R10 65534
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Illuminance'
+extern bclosure *class_Matter_Plugin_Sensor_Illuminance_read_attribute;
/********************************************************************
** Solidified function: web_values
@@ -230,7 +144,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(262, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_read_attribute_closure) },
{ be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_value_changed_closure) },
{ be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Illuminance) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_illuminance) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
index 1e4078565..4a8cf45cd 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
@@ -70,94 +70,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_value_changed, /*
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Pressure,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(I2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0402, // 0004 LDINT R7 1027
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x542A01F3, // 001F LDINT R10 500
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542A05DB, // 0027 LDINT R10 1500
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Pressure'
+extern bclosure *class_Matter_Plugin_Sensor_Pressure_read_attribute;
/********************************************************************
** Solidified function: web_values
@@ -217,7 +131,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(773, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Pressure_read_attribute_closure) },
{ be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_value_changed_closure) },
{ be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Pressure) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_pressure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
index 491a9e29c..001b3984d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
@@ -83,92 +83,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Sensor_Temp_value_changed, /* name
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Temp_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Temp,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(I2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[49]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0401, // 0004 LDINT R7 1026
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0020, // 0006 JMPF R7 #0028
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000F, // 0008 JMPF R7 #0019
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x7002000E, // 0018 JMP #0028
- 0x1C1C0D09, // 0019 EQ R7 R6 K9
- 0x781E0005, // 001A JMPF R7 #0021
- 0x8C1C0706, // 001B GETMET R7 R3 K6
- 0x88240907, // 001C GETMBR R9 R4 K7
- 0x5429EC77, // 001D LDINT R10 -5000
- 0x7C1C0600, // 001E CALL R7 3
- 0x80040E00, // 001F RET 1 R7
- 0x70020006, // 0020 JMP #0028
- 0x1C1C0D0A, // 0021 EQ R7 R6 K10
- 0x781E0004, // 0022 JMPF R7 #0028
- 0x8C1C0706, // 0023 GETMET R7 R3 K6
- 0x88240907, // 0024 GETMBR R9 R4 K7
- 0x542A3A97, // 0025 LDINT R10 15000
- 0x7C1C0600, // 0026 CALL R7 3
- 0x80040E00, // 0027 RET 1 R7
- 0x601C0003, // 0028 GETGBL R7 G3
- 0x5C200000, // 0029 MOVE R8 R0
- 0x7C1C0200, // 002A CALL R7 1
- 0x8C1C0F0B, // 002B GETMET R7 R7 K11
- 0x5C240200, // 002C MOVE R9 R1
- 0x5C280400, // 002D MOVE R10 R2
- 0x5C2C0600, // 002E MOVE R11 R3
- 0x7C1C0800, // 002F CALL R7 4
- 0x80040E00, // 0030 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Temp'
+extern bclosure *class_Matter_Plugin_Sensor_Temp_read_attribute;
/********************************************************************
** Solidified function: web_values
@@ -236,7 +152,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(770, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Temp_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Temp_read_attribute_closure) },
{ be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Temp_value_changed_closure) },
{ be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Temperature) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_temperature) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
index 8015c80ee..703f9b595 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
@@ -354,127 +354,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Light2_invoke_request, /* name */
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_nested_str_weak(shadow_ct),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U1),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(2),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(ct_min),
- /* K12 */ be_nested_str_weak(ct_max),
- /* K13 */ be_nested_str_weak(U4),
- /* K14 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[81]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E02FF, // 0004 LDINT R7 768
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0040, // 0006 JMPF R7 #0048
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x541E0006, // 0009 LDINT R7 7
- 0x1C1C0C07, // 000A EQ R7 R6 R7
- 0x781E000F, // 000B JMPF R7 #001C
- 0x881C0105, // 000C GETMBR R7 R0 K5
- 0x4C200000, // 000D LDNIL R8
- 0x201C0E08, // 000E NE R7 R7 R8
- 0x781E0005, // 000F JMPF R7 #0016
- 0x8C1C0706, // 0010 GETMET R7 R3 K6
- 0x88240907, // 0011 GETMBR R9 R4 K7
- 0x88280105, // 0012 GETMBR R10 R0 K5
- 0x7C1C0600, // 0013 CALL R7 3
- 0x80040E00, // 0014 RET 1 R7
- 0x70020004, // 0015 JMP #001B
- 0x8C1C0706, // 0016 GETMET R7 R3 K6
- 0x88240908, // 0017 GETMBR R9 R4 K8
- 0x4C280000, // 0018 LDNIL R10
- 0x7C1C0600, // 0019 CALL R7 3
- 0x80040E00, // 001A RET 1 R7
- 0x7002002B, // 001B JMP #0048
- 0x541E0007, // 001C LDINT R7 8
- 0x1C1C0C07, // 001D EQ R7 R6 R7
- 0x781E0005, // 001E JMPF R7 #0025
- 0x8C1C0706, // 001F GETMET R7 R3 K6
- 0x88240907, // 0020 GETMBR R9 R4 K7
- 0x58280009, // 0021 LDCONST R10 K9
- 0x7C1C0600, // 0022 CALL R7 3
- 0x80040E00, // 0023 RET 1 R7
- 0x70020022, // 0024 JMP #0048
- 0x541E000E, // 0025 LDINT R7 15
- 0x1C1C0C07, // 0026 EQ R7 R6 R7
- 0x781E0005, // 0027 JMPF R7 #002E
- 0x8C1C0706, // 0028 GETMET R7 R3 K6
- 0x88240907, // 0029 GETMBR R9 R4 K7
- 0x5828000A, // 002A LDCONST R10 K10
- 0x7C1C0600, // 002B CALL R7 3
- 0x80040E00, // 002C RET 1 R7
- 0x70020019, // 002D JMP #0048
- 0x541E400A, // 002E LDINT R7 16395
- 0x1C1C0C07, // 002F EQ R7 R6 R7
- 0x781E0005, // 0030 JMPF R7 #0037
- 0x8C1C0706, // 0031 GETMET R7 R3 K6
- 0x88240907, // 0032 GETMBR R9 R4 K7
- 0x8828010B, // 0033 GETMBR R10 R0 K11
- 0x7C1C0600, // 0034 CALL R7 3
- 0x80040E00, // 0035 RET 1 R7
- 0x70020010, // 0036 JMP #0048
- 0x541E400B, // 0037 LDINT R7 16396
- 0x1C1C0C07, // 0038 EQ R7 R6 R7
- 0x781E0005, // 0039 JMPF R7 #0040
- 0x8C1C0706, // 003A GETMET R7 R3 K6
- 0x88240907, // 003B GETMBR R9 R4 K7
- 0x8828010C, // 003C GETMBR R10 R0 K12
- 0x7C1C0600, // 003D CALL R7 3
- 0x80040E00, // 003E RET 1 R7
- 0x70020007, // 003F JMP #0048
- 0x541E4009, // 0040 LDINT R7 16394
- 0x1C1C0C07, // 0041 EQ R7 R6 R7
- 0x781E0004, // 0042 JMPF R7 #0048
- 0x8C1C0706, // 0043 GETMET R7 R3 K6
- 0x8824090D, // 0044 GETMBR R9 R4 K13
- 0x542A000F, // 0045 LDINT R10 16
- 0x7C1C0600, // 0046 CALL R7 3
- 0x80040E00, // 0047 RET 1 R7
- 0x601C0003, // 0048 GETGBL R7 G3
- 0x5C200000, // 0049 MOVE R8 R0
- 0x7C1C0200, // 004A CALL R7 1
- 0x8C1C0F0E, // 004B GETMET R7 R7 K14
- 0x5C240200, // 004C MOVE R9 R1
- 0x5C280400, // 004D MOVE R10 R2
- 0x5C2C0600, // 004E MOVE R11 R3
- 0x7C1C0800, // 004F CALL R7 4
- 0x80040E00, // 0050 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Light2'
+extern bclosure *class_Matter_Plugin_Light2_read_attribute;
/********************************************************************
** Solidified function: update_ct_minmax
@@ -659,7 +540,7 @@ be_local_class(Matter_Plugin_Bridge_Light2,
{ be_const_key_weak(shadow_ct, -1), be_const_var(0) },
{ be_const_key_weak(update_ct_minmax, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_update_ct_minmax_closure) },
{ be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_invoke_request_closure) },
- { be_const_key_weak(read_attribute, 10), be_const_closure(class_Matter_Plugin_Bridge_Light2_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, 10), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
{ be_const_key_weak(ct_min, -1), be_const_var(1) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light2) },
})),
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
index 303f3ecc7..31cbfdca5 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
@@ -298,152 +298,8 @@ be_local_closure(class_Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */
);
/*******************************************************************/
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(shadow_hue),
- /* K7 */ be_nested_str_weak(set),
- /* K8 */ be_nested_str_weak(U1),
- /* K9 */ be_nested_str_weak(NULL),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(shadow_sat),
- /* K12 */ be_nested_str_weak(U4),
- /* K13 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[107]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E02FF, // 0004 LDINT R7 768
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E005A, // 0006 JMPF R7 #0062
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E000F, // 000A JMPF R7 #001B
- 0x881C0106, // 000B GETMBR R7 R0 K6
- 0x4C200000, // 000C LDNIL R8
- 0x201C0E08, // 000D NE R7 R7 R8
- 0x781E0005, // 000E JMPF R7 #0015
- 0x8C1C0707, // 000F GETMET R7 R3 K7
- 0x88240908, // 0010 GETMBR R9 R4 K8
- 0x88280106, // 0011 GETMBR R10 R0 K6
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0707, // 0015 GETMET R7 R3 K7
- 0x88240909, // 0016 GETMBR R9 R4 K9
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x70020046, // 001A JMP #0062
- 0x1C1C0D0A, // 001B EQ R7 R6 K10
- 0x781E000F, // 001C JMPF R7 #002D
- 0x881C010B, // 001D GETMBR R7 R0 K11
- 0x4C200000, // 001E LDNIL R8
- 0x201C0E08, // 001F NE R7 R7 R8
- 0x781E0005, // 0020 JMPF R7 #0027
- 0x8C1C0707, // 0021 GETMET R7 R3 K7
- 0x88240908, // 0022 GETMBR R9 R4 K8
- 0x8828010B, // 0023 GETMBR R10 R0 K11
- 0x7C1C0600, // 0024 CALL R7 3
- 0x80040E00, // 0025 RET 1 R7
- 0x70020004, // 0026 JMP #002C
- 0x8C1C0707, // 0027 GETMET R7 R3 K7
- 0x88240909, // 0028 GETMBR R9 R4 K9
- 0x4C280000, // 0029 LDNIL R10
- 0x7C1C0600, // 002A CALL R7 3
- 0x80040E00, // 002B RET 1 R7
- 0x70020034, // 002C JMP #0062
- 0x541E0006, // 002D LDINT R7 7
- 0x1C1C0C07, // 002E EQ R7 R6 R7
- 0x781E0005, // 002F JMPF R7 #0036
- 0x8C1C0707, // 0030 GETMET R7 R3 K7
- 0x88240908, // 0031 GETMBR R9 R4 K8
- 0x58280005, // 0032 LDCONST R10 K5
- 0x7C1C0600, // 0033 CALL R7 3
- 0x80040E00, // 0034 RET 1 R7
- 0x7002002B, // 0035 JMP #0062
- 0x541E0007, // 0036 LDINT R7 8
- 0x1C1C0C07, // 0037 EQ R7 R6 R7
- 0x781E0005, // 0038 JMPF R7 #003F
- 0x8C1C0707, // 0039 GETMET R7 R3 K7
- 0x88240908, // 003A GETMBR R9 R4 K8
- 0x58280005, // 003B LDCONST R10 K5
- 0x7C1C0600, // 003C CALL R7 3
- 0x80040E00, // 003D RET 1 R7
- 0x70020022, // 003E JMP #0062
- 0x541E000E, // 003F LDINT R7 15
- 0x1C1C0C07, // 0040 EQ R7 R6 R7
- 0x781E0005, // 0041 JMPF R7 #0048
- 0x8C1C0707, // 0042 GETMET R7 R3 K7
- 0x88240908, // 0043 GETMBR R9 R4 K8
- 0x58280005, // 0044 LDCONST R10 K5
- 0x7C1C0600, // 0045 CALL R7 3
- 0x80040E00, // 0046 RET 1 R7
- 0x70020019, // 0047 JMP #0062
- 0x541E4000, // 0048 LDINT R7 16385
- 0x1C1C0C07, // 0049 EQ R7 R6 R7
- 0x781E0005, // 004A JMPF R7 #0051
- 0x8C1C0707, // 004B GETMET R7 R3 K7
- 0x88240908, // 004C GETMBR R9 R4 K8
- 0x58280005, // 004D LDCONST R10 K5
- 0x7C1C0600, // 004E CALL R7 3
- 0x80040E00, // 004F RET 1 R7
- 0x70020010, // 0050 JMP #0062
- 0x541E4009, // 0051 LDINT R7 16394
- 0x1C1C0C07, // 0052 EQ R7 R6 R7
- 0x781E0005, // 0053 JMPF R7 #005A
- 0x8C1C0707, // 0054 GETMET R7 R3 K7
- 0x8824090C, // 0055 GETMBR R9 R4 K12
- 0x5828000A, // 0056 LDCONST R10 K10
- 0x7C1C0600, // 0057 CALL R7 3
- 0x80040E00, // 0058 RET 1 R7
- 0x70020007, // 0059 JMP #0062
- 0x541E000F, // 005A LDINT R7 16
- 0x1C1C0C07, // 005B EQ R7 R6 R7
- 0x781E0004, // 005C JMPF R7 #0062
- 0x8C1C0707, // 005D GETMET R7 R3 K7
- 0x88240908, // 005E GETMBR R9 R4 K8
- 0x58280005, // 005F LDCONST R10 K5
- 0x7C1C0600, // 0060 CALL R7 3
- 0x80040E00, // 0061 RET 1 R7
- 0x601C0003, // 0062 GETGBL R7 G3
- 0x5C200000, // 0063 MOVE R8 R0
- 0x7C1C0200, // 0064 CALL R7 1
- 0x8C1C0F0D, // 0065 GETMET R7 R7 K13
- 0x5C240200, // 0066 MOVE R9 R1
- 0x5C280400, // 0067 MOVE R10 R2
- 0x5C2C0600, // 0068 MOVE R11 R3
- 0x7C1C0800, // 0069 CALL R7 4
- 0x80040E00, // 006A RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Light3'
+extern bclosure *class_Matter_Plugin_Light3_read_attribute;
/********************************************************************
** Solidified function: invoke_request
@@ -835,7 +691,7 @@ be_local_class(Matter_Plugin_Bridge_Light3,
{ be_const_key_int(269, -1), be_const_int(2) },
})) ) } )) },
{ be_const_key_weak(shadow_sat, -1), be_const_var(1) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Bridge_Light3_read_attribute_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light3_read_attribute_closure) },
})),
be_str_weak(Matter_Plugin_Bridge_Light3)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h
new file mode 100644
index 000000000..74d87f05f
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h
@@ -0,0 +1,27 @@
+/* Solidification of Matter_Plugin_9_Virt_Sensor_Air_Quality.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Virt_Sensor_Air_Quality;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Virt_Sensor_Air_Quality
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_class(Matter_Plugin_Virt_Sensor_Air_Quality,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(v_X2EAir_X20Quality) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(v_airquality) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(ARG, 2), be_nested_str_weak() },
+ })),
+ be_str_weak(Matter_Plugin_Virt_Sensor_Air_Quality)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
index 7df38a55c..d88b86b6b 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
@@ -7,37 +7,12 @@
extern const bclass be_class_Matter_TLV_item;
/********************************************************************
-** Solidified function: to_TLV
+** Solidified function: reset
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_to_TLV, /* name */
+be_local_closure(class_Matter_TLV_item_reset, /* name */
be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(to_TLV),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80040000, // 0000 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_parent
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_set_parent, /* name */
- be_nested_proto(
- 2, /* nstack */
+ 3, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -45,14 +20,29 @@ be_local_closure(class_Matter_TLV_item_set_parent, /* name */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(parent),
+ /* K1 */ be_nested_str_weak(next_idx),
+ /* K2 */ be_nested_str_weak(tag_vendor),
+ /* K3 */ be_nested_str_weak(tag_profile),
+ /* K4 */ be_nested_str_weak(tag_number),
+ /* K5 */ be_nested_str_weak(tag_sub),
+ /* K6 */ be_nested_str_weak(typ),
+ /* K7 */ be_nested_str_weak(val),
}),
- be_str_weak(set_parent),
+ be_str_weak(reset),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
+ ( &(const binstruction[10]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x90020202, // 0002 SETMBR R0 K1 R2
+ 0x90020402, // 0003 SETMBR R0 K2 R2
+ 0x90020602, // 0004 SETMBR R0 K3 R2
+ 0x90020802, // 0005 SETMBR R0 K4 R2
+ 0x90020A02, // 0006 SETMBR R0 K5 R2
+ 0x90020C02, // 0007 SETMBR R0 K6 R2
+ 0x90020E02, // 0008 SETMBR R0 K7 R2
+ 0x80000000, // 0009 RET 0
})
)
);
@@ -60,279 +50,43 @@ be_local_closure(class_Matter_TLV_item_set_parent, /* name */
/********************************************************************
-** Solidified function: set_fulltag
+** Solidified function: set_or_nil
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_set_fulltag, /* name */
+be_local_closure(class_Matter_TLV_item_set_or_nil, /* name */
be_nested_proto(
- 6, /* nstack */
- 4, /* argc */
+ 5, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tag_vendor),
- /* K1 */ be_nested_str_weak(tag_profile),
- /* K2 */ be_nested_str_weak(tag_number),
- /* K3 */ be_nested_str_weak(tag_sub),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(reset),
+ /* K1 */ be_nested_str_weak(typ),
+ /* K2 */ be_nested_str_weak(val),
}),
- be_str_weak(set_fulltag),
+ be_str_weak(set_or_nil),
&be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x60100009, // 0000 GETGBL R4 G9
- 0x5C140200, // 0001 MOVE R5 R1
- 0x7C100200, // 0002 CALL R4 1
- 0x90020004, // 0003 SETMBR R0 K0 R4
- 0x60100009, // 0004 GETGBL R4 G9
- 0x5C140400, // 0005 MOVE R5 R2
- 0x7C100200, // 0006 CALL R4 1
- 0x90020204, // 0007 SETMBR R0 K1 R4
- 0x60100009, // 0008 GETGBL R4 G9
- 0x5C140600, // 0009 MOVE R5 R3
- 0x7C100200, // 000A CALL R4 1
- 0x90020404, // 000B SETMBR R0 K2 R4
- 0x4C100000, // 000C LDNIL R4
- 0x90020604, // 000D SETMBR R0 K3 R4
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_contextspecific
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_set_contextspecific, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(set_fulltag),
- /* K1 */ be_nested_str_weak(tag_sub),
- }),
- be_str_weak(set_contextspecific),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x7C080200, // 0001 CALL R2 1
- 0x60080009, // 0002 GETGBL R2 G9
- 0x5C0C0200, // 0003 MOVE R3 R1
- 0x7C080200, // 0004 CALL R2 1
- 0x90020202, // 0005 SETMBR R0 K1 R2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: sort
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_sort, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_TLV_item),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(_cmp_gt),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(sort),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080010, // 0001 GETGBL R2 G16
- 0x600C000C, // 0002 GETGBL R3 G12
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x040C0701, // 0005 SUB R3 R3 K1
- 0x400E0203, // 0006 CONNECT R3 K1 R3
- 0x7C080200, // 0007 CALL R2 1
- 0xA8020013, // 0008 EXBLK 0 #001D
- 0x5C0C0400, // 0009 MOVE R3 R2
- 0x7C0C0000, // 000A CALL R3 0
- 0x94100003, // 000B GETIDX R4 R0 R3
- 0x5C140600, // 000C MOVE R5 R3
- 0x24180B02, // 000D GT R6 R5 K2
- 0x781A000B, // 000E JMPF R6 #001B
- 0x04180B01, // 000F SUB R6 R5 K1
- 0x94180006, // 0010 GETIDX R6 R0 R6
- 0x8C180D03, // 0011 GETMET R6 R6 K3
- 0x5C200800, // 0012 MOVE R8 R4
- 0x7C180400, // 0013 CALL R6 2
- 0x24180D02, // 0014 GT R6 R6 K2
- 0x781A0004, // 0015 JMPF R6 #001B
- 0x04180B01, // 0016 SUB R6 R5 K1
- 0x94180006, // 0017 GETIDX R6 R0 R6
- 0x98000A06, // 0018 SETIDX R0 R5 R6
- 0x04140B01, // 0019 SUB R5 R5 K1
- 0x7001FFF1, // 001A JMP #000D
- 0x98000A04, // 001B SETIDX R0 R5 R4
- 0x7001FFEB, // 001C JMP #0009
- 0x58080004, // 001D LDCONST R2 K4
- 0xAC080200, // 001E CATCH R2 1 0
- 0xB0080000, // 001F RAISE 2 R0 R0
- 0x80040000, // 0020 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: to_str_val
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_to_str_val, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(val),
- /* K1 */ be_nested_str_weak(int),
- /* K2 */ be_nested_str_weak(typ),
- /* K3 */ be_nested_str_weak(TLV),
- /* K4 */ be_nested_str_weak(U1),
- /* K5 */ be_nested_str_weak(U8),
- /* K6 */ be_nested_str_weak(U),
- /* K7 */ be_nested_str_weak(bool),
- /* K8 */ be_nested_str_weak(true),
- /* K9 */ be_nested_str_weak(false),
- /* K10 */ be_nested_str_weak(null),
- /* K11 */ be_nested_str_weak(real),
- /* K12 */ be_nested_str_weak(string),
- /* K13 */ be_nested_str_weak(int64),
- /* K14 */ be_nested_str_weak(tostring),
- /* K15 */ be_nested_str_weak(instance),
- }),
- be_str_weak(to_str_val),
- &be_const_str_solidified,
- ( &(const binstruction[98]) { /* code */
- 0x60040004, // 0000 GETGBL R1 G4
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x7C040200, // 0002 CALL R1 1
- 0x1C040301, // 0003 EQ R1 R1 K1
- 0x78060014, // 0004 JMPF R1 #001A
- 0x88040102, // 0005 GETMBR R1 R0 K2
- 0x88080103, // 0006 GETMBR R2 R0 K3
- 0x88080504, // 0007 GETMBR R2 R2 K4
- 0x28040202, // 0008 GE R1 R1 R2
- 0x7806000A, // 0009 JMPF R1 #0015
- 0x88040102, // 000A GETMBR R1 R0 K2
- 0x88080103, // 000B GETMBR R2 R0 K3
- 0x88080505, // 000C GETMBR R2 R2 K5
- 0x18040202, // 000D LE R1 R1 R2
- 0x78060005, // 000E JMPF R1 #0015
- 0x60040008, // 000F GETGBL R1 G8
- 0x88080100, // 0010 GETMBR R2 R0 K0
- 0x7C040200, // 0011 CALL R1 1
- 0x00040306, // 0012 ADD R1 R1 K6
- 0x80040200, // 0013 RET 1 R1
- 0x70020003, // 0014 JMP #0019
- 0x60040008, // 0015 GETGBL R1 G8
- 0x88080100, // 0016 GETMBR R2 R0 K0
- 0x7C040200, // 0017 CALL R1 1
- 0x80040200, // 0018 RET 1 R1
- 0x70020046, // 0019 JMP #0061
- 0x60040004, // 001A GETGBL R1 G4
- 0x88080100, // 001B GETMBR R2 R0 K0
- 0x7C040200, // 001C CALL R1 1
- 0x1C040307, // 001D EQ R1 R1 K7
- 0x78060006, // 001E JMPF R1 #0026
- 0x88040100, // 001F GETMBR R1 R0 K0
- 0x78060001, // 0020 JMPF R1 #0023
- 0x58040008, // 0021 LDCONST R1 K8
- 0x70020000, // 0022 JMP #0024
- 0x58040009, // 0023 LDCONST R1 K9
- 0x80040200, // 0024 RET 1 R1
- 0x7002003A, // 0025 JMP #0061
- 0x88040100, // 0026 GETMBR R1 R0 K0
- 0x4C080000, // 0027 LDNIL R2
- 0x1C040202, // 0028 EQ R1 R1 R2
- 0x78060001, // 0029 JMPF R1 #002C
- 0x80061400, // 002A RET 1 K10
- 0x70020034, // 002B JMP #0061
- 0x60040004, // 002C GETGBL R1 G4
- 0x88080100, // 002D GETMBR R2 R0 K0
- 0x7C040200, // 002E CALL R1 1
- 0x1C04030B, // 002F EQ R1 R1 K11
- 0x78060004, // 0030 JMPF R1 #0036
- 0x60040008, // 0031 GETGBL R1 G8
- 0x88080100, // 0032 GETMBR R2 R0 K0
- 0x7C040200, // 0033 CALL R1 1
- 0x80040200, // 0034 RET 1 R1
- 0x7002002A, // 0035 JMP #0061
- 0x60040004, // 0036 GETGBL R1 G4
- 0x88080100, // 0037 GETMBR R2 R0 K0
- 0x7C040200, // 0038 CALL R1 1
- 0x1C04030C, // 0039 EQ R1 R1 K12
- 0x78060002, // 003A JMPF R1 #003E
- 0x88040100, // 003B GETMBR R1 R0 K0
- 0x80040200, // 003C RET 1 R1
- 0x70020022, // 003D JMP #0061
- 0x6004000F, // 003E GETGBL R1 G15
- 0x88080100, // 003F GETMBR R2 R0 K0
- 0xB80E1A00, // 0040 GETNGBL R3 K13
- 0x7C040400, // 0041 CALL R1 2
- 0x78060014, // 0042 JMPF R1 #0058
- 0x88040102, // 0043 GETMBR R1 R0 K2
- 0x88080103, // 0044 GETMBR R2 R0 K3
- 0x88080504, // 0045 GETMBR R2 R2 K4
- 0x28040202, // 0046 GE R1 R1 R2
- 0x7806000A, // 0047 JMPF R1 #0053
- 0x88040102, // 0048 GETMBR R1 R0 K2
- 0x88080103, // 0049 GETMBR R2 R0 K3
- 0x88080505, // 004A GETMBR R2 R2 K5
- 0x18040202, // 004B LE R1 R1 R2
- 0x78060005, // 004C JMPF R1 #0053
- 0x88040100, // 004D GETMBR R1 R0 K0
- 0x8C04030E, // 004E GETMET R1 R1 K14
- 0x7C040200, // 004F CALL R1 1
- 0x00040306, // 0050 ADD R1 R1 K6
- 0x80040200, // 0051 RET 1 R1
- 0x70020003, // 0052 JMP #0057
- 0x88040100, // 0053 GETMBR R1 R0 K0
- 0x8C04030E, // 0054 GETMET R1 R1 K14
- 0x7C040200, // 0055 CALL R1 1
- 0x80040200, // 0056 RET 1 R1
- 0x70020008, // 0057 JMP #0061
- 0x60040004, // 0058 GETGBL R1 G4
- 0x88080100, // 0059 GETMBR R2 R0 K0
- 0x7C040200, // 005A CALL R1 1
- 0x1C04030F, // 005B EQ R1 R1 K15
- 0x78060003, // 005C JMPF R1 #0061
- 0x8C04010E, // 005D GETMET R1 R0 K14
- 0x500C0200, // 005E LDBOOL R3 1 0
- 0x7C040400, // 005F CALL R1 2
- 0x80040200, // 0060 RET 1 R1
- 0x80000000, // 0061 RET 0
+ ( &(const binstruction[16]) { /* code */
+ 0x8C0C0100, // 0000 GETMET R3 R0 K0
+ 0x7C0C0200, // 0001 CALL R3 1
+ 0x4C0C0000, // 0002 LDNIL R3
+ 0x1C0C0403, // 0003 EQ R3 R2 R3
+ 0x780E0000, // 0004 JMPF R3 #0006
+ 0x54060013, // 0005 LDINT R1 20
+ 0x4C0C0000, // 0006 LDNIL R3
+ 0x200C0403, // 0007 NE R3 R2 R3
+ 0x740E0002, // 0008 JMPT R3 #000C
+ 0x540E0013, // 0009 LDINT R3 20
+ 0x1C0C0203, // 000A EQ R3 R1 R3
+ 0x780E0002, // 000B JMPF R3 #000F
+ 0x90020201, // 000C SETMBR R0 K1 R1
+ 0x90020402, // 000D SETMBR R0 K2 R2
+ 0x80040000, // 000E RET 1 R0
+ 0x80000000, // 000F RET 0
})
)
);
@@ -655,42 +409,39 @@ be_local_closure(class_Matter_TLV_item_encode_len, /* name */
/********************************************************************
-** Solidified function: reset
+** Solidified function: set
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_reset, /* name */
+be_local_closure(class_Matter_TLV_item_set, /* name */
be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
+ 5, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(parent),
- /* K1 */ be_nested_str_weak(next_idx),
- /* K2 */ be_nested_str_weak(tag_vendor),
- /* K3 */ be_nested_str_weak(tag_profile),
- /* K4 */ be_nested_str_weak(tag_number),
- /* K5 */ be_nested_str_weak(tag_sub),
- /* K6 */ be_nested_str_weak(typ),
- /* K7 */ be_nested_str_weak(val),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(reset),
+ /* K1 */ be_nested_str_weak(typ),
+ /* K2 */ be_nested_str_weak(val),
}),
- be_str_weak(reset),
+ be_str_weak(set),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x90020202, // 0002 SETMBR R0 K1 R2
- 0x90020402, // 0003 SETMBR R0 K2 R2
- 0x90020602, // 0004 SETMBR R0 K3 R2
- 0x90020802, // 0005 SETMBR R0 K4 R2
- 0x90020A02, // 0006 SETMBR R0 K5 R2
- 0x90020C02, // 0007 SETMBR R0 K6 R2
- 0x90020E02, // 0008 SETMBR R0 K7 R2
- 0x80000000, // 0009 RET 0
+ ( &(const binstruction[12]) { /* code */
+ 0x8C0C0100, // 0000 GETMET R3 R0 K0
+ 0x7C0C0200, // 0001 CALL R3 1
+ 0x4C0C0000, // 0002 LDNIL R3
+ 0x200C0403, // 0003 NE R3 R2 R3
+ 0x740E0002, // 0004 JMPT R3 #0008
+ 0x540E0013, // 0005 LDINT R3 20
+ 0x1C0C0203, // 0006 EQ R3 R1 R3
+ 0x780E0002, // 0007 JMPF R3 #000B
+ 0x90020201, // 0008 SETMBR R0 K1 R1
+ 0x90020402, // 0009 SETMBR R0 K2 R2
+ 0x80040000, // 000A RET 1 R0
+ 0x80000000, // 000B RET 0
})
)
);
@@ -698,40 +449,433 @@ be_local_closure(class_Matter_TLV_item_reset, /* name */
/********************************************************************
-** Solidified function: create_TLV
+** Solidified function: to_TLV
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_create_TLV, /* name */
+be_local_closure(class_Matter_TLV_item_to_TLV, /* name */
be_nested_proto(
- 4, /* nstack */
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(to_TLV),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80040000, // 0000 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: tostring
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_tostring, /* name */
+ be_nested_proto(
+ 7, /* nstack */
2, /* argc */
- 4, /* varg */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_TLV_item),
- /* K1 */ be_nested_str_weak(typ),
- /* K2 */ be_nested_str_weak(val),
+ ( &(const bvalue[34]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(tag_profile),
+ /* K2 */ be_nested_str_weak(Matter_X3A_X3A),
+ /* K3 */ be_nested_str_weak(tag_number),
+ /* K4 */ be_nested_str_weak(0x_X2508X_X20),
+ /* K5 */ be_nested_str_weak(tag_vendor),
+ /* K6 */ be_nested_str_weak(0x_X2504X_X3A_X3A),
+ /* K7 */ be_nested_str_weak(0x_X2504X_X3A),
+ /* K8 */ be_nested_str_weak(tag_sub),
+ /* K9 */ be_nested_str_weak(_X25i_X20),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(_X3D_X20),
+ /* K12 */ be_nested_str_weak(val),
+ /* K13 */ be_nested_str_weak(int),
+ /* K14 */ be_nested_str_weak(_X25i),
+ /* K15 */ be_nested_str_weak(typ),
+ /* K16 */ be_nested_str_weak(TLV),
+ /* K17 */ be_nested_str_weak(U1),
+ /* K18 */ be_nested_str_weak(U8),
+ /* K19 */ be_nested_str_weak(U),
+ /* K20 */ be_nested_str_weak(bool),
+ /* K21 */ be_nested_str_weak(true),
+ /* K22 */ be_nested_str_weak(false),
+ /* K23 */ be_nested_str_weak(null),
+ /* K24 */ be_nested_str_weak(real),
+ /* K25 */ be_nested_str_weak(_X25g),
+ /* K26 */ be_nested_str_weak(string),
+ /* K27 */ be_nested_str_weak(_X22_X25s_X22),
+ /* K28 */ be_nested_str_weak(int64),
+ /* K29 */ be_nested_str_weak(tostring),
+ /* K30 */ be_nested_str_weak(instance),
+ /* K31 */ be_nested_str_weak(_X25s),
+ /* K32 */ be_nested_str_weak(tohex),
+ /* K33 */ be_nested_str_weak(_X20),
}),
- be_str_weak(create_TLV),
+ be_str_weak(tostring),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
+ ( &(const binstruction[167]) { /* code */
0x58080000, // 0000 LDCONST R2 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x200C0203, // 0002 NE R3 R1 R3
- 0x740E0002, // 0003 JMPT R3 #0007
- 0x540E0013, // 0004 LDINT R3 20
- 0x1C0C0003, // 0005 EQ R3 R0 R3
- 0x780E0004, // 0006 JMPF R3 #000C
- 0x5C0C0400, // 0007 MOVE R3 R2
- 0x7C0C0000, // 0008 CALL R3 0
- 0x900E0200, // 0009 SETMBR R3 K1 R0
- 0x900E0401, // 000A SETMBR R3 K2 R1
- 0x80040600, // 000B RET 1 R3
- 0x80000000, // 000C RET 0
+ 0xA802009C, // 0001 EXBLK 0 #009F
+ 0x500C0200, // 0002 LDBOOL R3 1 0
+ 0x200C0203, // 0003 NE R3 R1 R3
+ 0x780E0038, // 0004 JMPF R3 #003E
+ 0x880C0101, // 0005 GETMBR R3 R0 K1
+ 0x5411FFFE, // 0006 LDINT R4 -1
+ 0x1C0C0604, // 0007 EQ R3 R3 R4
+ 0x780E000A, // 0008 JMPF R3 #0014
+ 0x00080502, // 0009 ADD R2 R2 K2
+ 0x880C0103, // 000A GETMBR R3 R0 K3
+ 0x4C100000, // 000B LDNIL R4
+ 0x200C0604, // 000C NE R3 R3 R4
+ 0x780E0004, // 000D JMPF R3 #0013
+ 0x600C0018, // 000E GETGBL R3 G24
+ 0x58100004, // 000F LDCONST R4 K4
+ 0x88140103, // 0010 GETMBR R5 R0 K3
+ 0x7C0C0400, // 0011 CALL R3 2
+ 0x00080403, // 0012 ADD R2 R2 R3
+ 0x70020023, // 0013 JMP #0038
+ 0x880C0105, // 0014 GETMBR R3 R0 K5
+ 0x4C100000, // 0015 LDNIL R4
+ 0x200C0604, // 0016 NE R3 R3 R4
+ 0x780E0004, // 0017 JMPF R3 #001D
+ 0x600C0018, // 0018 GETGBL R3 G24
+ 0x58100006, // 0019 LDCONST R4 K6
+ 0x88140105, // 001A GETMBR R5 R0 K5
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x00080403, // 001C ADD R2 R2 R3
+ 0x880C0101, // 001D GETMBR R3 R0 K1
+ 0x4C100000, // 001E LDNIL R4
+ 0x200C0604, // 001F NE R3 R3 R4
+ 0x780E0004, // 0020 JMPF R3 #0026
+ 0x600C0018, // 0021 GETGBL R3 G24
+ 0x58100007, // 0022 LDCONST R4 K7
+ 0x88140101, // 0023 GETMBR R5 R0 K1
+ 0x7C0C0400, // 0024 CALL R3 2
+ 0x00080403, // 0025 ADD R2 R2 R3
+ 0x880C0103, // 0026 GETMBR R3 R0 K3
+ 0x4C100000, // 0027 LDNIL R4
+ 0x200C0604, // 0028 NE R3 R3 R4
+ 0x780E0004, // 0029 JMPF R3 #002F
+ 0x600C0018, // 002A GETGBL R3 G24
+ 0x58100004, // 002B LDCONST R4 K4
+ 0x88140103, // 002C GETMBR R5 R0 K3
+ 0x7C0C0400, // 002D CALL R3 2
+ 0x00080403, // 002E ADD R2 R2 R3
+ 0x880C0108, // 002F GETMBR R3 R0 K8
+ 0x4C100000, // 0030 LDNIL R4
+ 0x200C0604, // 0031 NE R3 R3 R4
+ 0x780E0004, // 0032 JMPF R3 #0038
+ 0x600C0018, // 0033 GETGBL R3 G24
+ 0x58100009, // 0034 LDCONST R4 K9
+ 0x88140108, // 0035 GETMBR R5 R0 K8
+ 0x7C0C0400, // 0036 CALL R3 2
+ 0x00080403, // 0037 ADD R2 R2 R3
+ 0x600C000C, // 0038 GETGBL R3 G12
+ 0x5C100400, // 0039 MOVE R4 R2
+ 0x7C0C0200, // 003A CALL R3 1
+ 0x240C070A, // 003B GT R3 R3 K10
+ 0x780E0000, // 003C JMPF R3 #003E
+ 0x0008050B, // 003D ADD R2 R2 K11
+ 0x600C0004, // 003E GETGBL R3 G4
+ 0x8810010C, // 003F GETMBR R4 R0 K12
+ 0x7C0C0200, // 0040 CALL R3 1
+ 0x1C0C070D, // 0041 EQ R3 R3 K13
+ 0x780E0010, // 0042 JMPF R3 #0054
+ 0x600C0018, // 0043 GETGBL R3 G24
+ 0x5810000E, // 0044 LDCONST R4 K14
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x7C0C0400, // 0046 CALL R3 2
+ 0x00080403, // 0047 ADD R2 R2 R3
+ 0x880C010F, // 0048 GETMBR R3 R0 K15
+ 0x88100110, // 0049 GETMBR R4 R0 K16
+ 0x88100911, // 004A GETMBR R4 R4 K17
+ 0x280C0604, // 004B GE R3 R3 R4
+ 0x780E0005, // 004C JMPF R3 #0053
+ 0x880C010F, // 004D GETMBR R3 R0 K15
+ 0x88100110, // 004E GETMBR R4 R0 K16
+ 0x88100912, // 004F GETMBR R4 R4 K18
+ 0x180C0604, // 0050 LE R3 R3 R4
+ 0x780E0000, // 0051 JMPF R3 #0053
+ 0x00080513, // 0052 ADD R2 R2 K19
+ 0x70020048, // 0053 JMP #009D
+ 0x600C0004, // 0054 GETGBL R3 G4
+ 0x8810010C, // 0055 GETMBR R4 R0 K12
+ 0x7C0C0200, // 0056 CALL R3 1
+ 0x1C0C0714, // 0057 EQ R3 R3 K20
+ 0x780E0006, // 0058 JMPF R3 #0060
+ 0x880C010C, // 0059 GETMBR R3 R0 K12
+ 0x780E0001, // 005A JMPF R3 #005D
+ 0x580C0015, // 005B LDCONST R3 K21
+ 0x70020000, // 005C JMP #005E
+ 0x580C0016, // 005D LDCONST R3 K22
+ 0x00080403, // 005E ADD R2 R2 R3
+ 0x7002003C, // 005F JMP #009D
+ 0x880C010C, // 0060 GETMBR R3 R0 K12
+ 0x4C100000, // 0061 LDNIL R4
+ 0x1C0C0604, // 0062 EQ R3 R3 R4
+ 0x780E0001, // 0063 JMPF R3 #0066
+ 0x00080517, // 0064 ADD R2 R2 K23
+ 0x70020036, // 0065 JMP #009D
+ 0x600C0004, // 0066 GETGBL R3 G4
+ 0x8810010C, // 0067 GETMBR R4 R0 K12
+ 0x7C0C0200, // 0068 CALL R3 1
+ 0x1C0C0718, // 0069 EQ R3 R3 K24
+ 0x780E0005, // 006A JMPF R3 #0071
+ 0x600C0018, // 006B GETGBL R3 G24
+ 0x58100019, // 006C LDCONST R4 K25
+ 0x8814010C, // 006D GETMBR R5 R0 K12
+ 0x7C0C0400, // 006E CALL R3 2
+ 0x00080403, // 006F ADD R2 R2 R3
+ 0x7002002B, // 0070 JMP #009D
+ 0x600C0004, // 0071 GETGBL R3 G4
+ 0x8810010C, // 0072 GETMBR R4 R0 K12
+ 0x7C0C0200, // 0073 CALL R3 1
+ 0x1C0C071A, // 0074 EQ R3 R3 K26
+ 0x780E0005, // 0075 JMPF R3 #007C
+ 0x600C0018, // 0076 GETGBL R3 G24
+ 0x5810001B, // 0077 LDCONST R4 K27
+ 0x8814010C, // 0078 GETMBR R5 R0 K12
+ 0x7C0C0400, // 0079 CALL R3 2
+ 0x00080403, // 007A ADD R2 R2 R3
+ 0x70020020, // 007B JMP #009D
+ 0x600C000F, // 007C GETGBL R3 G15
+ 0x8810010C, // 007D GETMBR R4 R0 K12
+ 0xB8163800, // 007E GETNGBL R5 K28
+ 0x7C0C0400, // 007F CALL R3 2
+ 0x780E000F, // 0080 JMPF R3 #0091
+ 0x880C010C, // 0081 GETMBR R3 R0 K12
+ 0x8C0C071D, // 0082 GETMET R3 R3 K29
+ 0x7C0C0200, // 0083 CALL R3 1
+ 0x00080403, // 0084 ADD R2 R2 R3
+ 0x880C010F, // 0085 GETMBR R3 R0 K15
+ 0x88100110, // 0086 GETMBR R4 R0 K16
+ 0x88100911, // 0087 GETMBR R4 R4 K17
+ 0x280C0604, // 0088 GE R3 R3 R4
+ 0x780E0005, // 0089 JMPF R3 #0090
+ 0x880C010F, // 008A GETMBR R3 R0 K15
+ 0x88100110, // 008B GETMBR R4 R0 K16
+ 0x88100912, // 008C GETMBR R4 R4 K18
+ 0x180C0604, // 008D LE R3 R3 R4
+ 0x780E0000, // 008E JMPF R3 #0090
+ 0x00080513, // 008F ADD R2 R2 K19
+ 0x7002000B, // 0090 JMP #009D
+ 0x600C0004, // 0091 GETGBL R3 G4
+ 0x8810010C, // 0092 GETMBR R4 R0 K12
+ 0x7C0C0200, // 0093 CALL R3 1
+ 0x1C0C071E, // 0094 EQ R3 R3 K30
+ 0x780E0006, // 0095 JMPF R3 #009D
+ 0x600C0018, // 0096 GETGBL R3 G24
+ 0x5810001F, // 0097 LDCONST R4 K31
+ 0x8814010C, // 0098 GETMBR R5 R0 K12
+ 0x8C140B20, // 0099 GETMET R5 R5 K32
+ 0x7C140200, // 009A CALL R5 1
+ 0x7C0C0400, // 009B CALL R3 2
+ 0x00080403, // 009C ADD R2 R2 R3
+ 0xA8040001, // 009D EXBLK 1 1
+ 0x70020006, // 009E JMP #00A6
+ 0xAC0C0002, // 009F CATCH R3 0 2
+ 0x70020003, // 00A0 JMP #00A5
+ 0x00140721, // 00A1 ADD R5 R3 K33
+ 0x00140A04, // 00A2 ADD R5 R5 R4
+ 0x80040A00, // 00A3 RET 1 R5
+ 0x70020000, // 00A4 JMP #00A6
+ 0xB0080000, // 00A5 RAISE 2 R0 R0
+ 0x80040400, // 00A6 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: to_str_val
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_to_str_val, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(val),
+ /* K1 */ be_nested_str_weak(int),
+ /* K2 */ be_nested_str_weak(typ),
+ /* K3 */ be_nested_str_weak(TLV),
+ /* K4 */ be_nested_str_weak(U1),
+ /* K5 */ be_nested_str_weak(U8),
+ /* K6 */ be_nested_str_weak(U),
+ /* K7 */ be_nested_str_weak(bool),
+ /* K8 */ be_nested_str_weak(true),
+ /* K9 */ be_nested_str_weak(false),
+ /* K10 */ be_nested_str_weak(null),
+ /* K11 */ be_nested_str_weak(real),
+ /* K12 */ be_nested_str_weak(string),
+ /* K13 */ be_nested_str_weak(int64),
+ /* K14 */ be_nested_str_weak(tostring),
+ /* K15 */ be_nested_str_weak(instance),
+ }),
+ be_str_weak(to_str_val),
+ &be_const_str_solidified,
+ ( &(const binstruction[98]) { /* code */
+ 0x60040004, // 0000 GETGBL R1 G4
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040301, // 0003 EQ R1 R1 K1
+ 0x78060014, // 0004 JMPF R1 #001A
+ 0x88040102, // 0005 GETMBR R1 R0 K2
+ 0x88080103, // 0006 GETMBR R2 R0 K3
+ 0x88080504, // 0007 GETMBR R2 R2 K4
+ 0x28040202, // 0008 GE R1 R1 R2
+ 0x7806000A, // 0009 JMPF R1 #0015
+ 0x88040102, // 000A GETMBR R1 R0 K2
+ 0x88080103, // 000B GETMBR R2 R0 K3
+ 0x88080505, // 000C GETMBR R2 R2 K5
+ 0x18040202, // 000D LE R1 R1 R2
+ 0x78060005, // 000E JMPF R1 #0015
+ 0x60040008, // 000F GETGBL R1 G8
+ 0x88080100, // 0010 GETMBR R2 R0 K0
+ 0x7C040200, // 0011 CALL R1 1
+ 0x00040306, // 0012 ADD R1 R1 K6
+ 0x80040200, // 0013 RET 1 R1
+ 0x70020003, // 0014 JMP #0019
+ 0x60040008, // 0015 GETGBL R1 G8
+ 0x88080100, // 0016 GETMBR R2 R0 K0
+ 0x7C040200, // 0017 CALL R1 1
+ 0x80040200, // 0018 RET 1 R1
+ 0x70020046, // 0019 JMP #0061
+ 0x60040004, // 001A GETGBL R1 G4
+ 0x88080100, // 001B GETMBR R2 R0 K0
+ 0x7C040200, // 001C CALL R1 1
+ 0x1C040307, // 001D EQ R1 R1 K7
+ 0x78060006, // 001E JMPF R1 #0026
+ 0x88040100, // 001F GETMBR R1 R0 K0
+ 0x78060001, // 0020 JMPF R1 #0023
+ 0x58040008, // 0021 LDCONST R1 K8
+ 0x70020000, // 0022 JMP #0024
+ 0x58040009, // 0023 LDCONST R1 K9
+ 0x80040200, // 0024 RET 1 R1
+ 0x7002003A, // 0025 JMP #0061
+ 0x88040100, // 0026 GETMBR R1 R0 K0
+ 0x4C080000, // 0027 LDNIL R2
+ 0x1C040202, // 0028 EQ R1 R1 R2
+ 0x78060001, // 0029 JMPF R1 #002C
+ 0x80061400, // 002A RET 1 K10
+ 0x70020034, // 002B JMP #0061
+ 0x60040004, // 002C GETGBL R1 G4
+ 0x88080100, // 002D GETMBR R2 R0 K0
+ 0x7C040200, // 002E CALL R1 1
+ 0x1C04030B, // 002F EQ R1 R1 K11
+ 0x78060004, // 0030 JMPF R1 #0036
+ 0x60040008, // 0031 GETGBL R1 G8
+ 0x88080100, // 0032 GETMBR R2 R0 K0
+ 0x7C040200, // 0033 CALL R1 1
+ 0x80040200, // 0034 RET 1 R1
+ 0x7002002A, // 0035 JMP #0061
+ 0x60040004, // 0036 GETGBL R1 G4
+ 0x88080100, // 0037 GETMBR R2 R0 K0
+ 0x7C040200, // 0038 CALL R1 1
+ 0x1C04030C, // 0039 EQ R1 R1 K12
+ 0x78060002, // 003A JMPF R1 #003E
+ 0x88040100, // 003B GETMBR R1 R0 K0
+ 0x80040200, // 003C RET 1 R1
+ 0x70020022, // 003D JMP #0061
+ 0x6004000F, // 003E GETGBL R1 G15
+ 0x88080100, // 003F GETMBR R2 R0 K0
+ 0xB80E1A00, // 0040 GETNGBL R3 K13
+ 0x7C040400, // 0041 CALL R1 2
+ 0x78060014, // 0042 JMPF R1 #0058
+ 0x88040102, // 0043 GETMBR R1 R0 K2
+ 0x88080103, // 0044 GETMBR R2 R0 K3
+ 0x88080504, // 0045 GETMBR R2 R2 K4
+ 0x28040202, // 0046 GE R1 R1 R2
+ 0x7806000A, // 0047 JMPF R1 #0053
+ 0x88040102, // 0048 GETMBR R1 R0 K2
+ 0x88080103, // 0049 GETMBR R2 R0 K3
+ 0x88080505, // 004A GETMBR R2 R2 K5
+ 0x18040202, // 004B LE R1 R1 R2
+ 0x78060005, // 004C JMPF R1 #0053
+ 0x88040100, // 004D GETMBR R1 R0 K0
+ 0x8C04030E, // 004E GETMET R1 R1 K14
+ 0x7C040200, // 004F CALL R1 1
+ 0x00040306, // 0050 ADD R1 R1 K6
+ 0x80040200, // 0051 RET 1 R1
+ 0x70020003, // 0052 JMP #0057
+ 0x88040100, // 0053 GETMBR R1 R0 K0
+ 0x8C04030E, // 0054 GETMET R1 R1 K14
+ 0x7C040200, // 0055 CALL R1 1
+ 0x80040200, // 0056 RET 1 R1
+ 0x70020008, // 0057 JMP #0061
+ 0x60040004, // 0058 GETGBL R1 G4
+ 0x88080100, // 0059 GETMBR R2 R0 K0
+ 0x7C040200, // 005A CALL R1 1
+ 0x1C04030F, // 005B EQ R1 R1 K15
+ 0x78060003, // 005C JMPF R1 #0061
+ 0x8C04010E, // 005D GETMET R1 R0 K14
+ 0x500C0200, // 005E LDBOOL R3 1 0
+ 0x7C040400, // 005F CALL R1 2
+ 0x80040200, // 0060 RET 1 R1
+ 0x80000000, // 0061 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_fulltag
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_set_fulltag, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(tag_vendor),
+ /* K1 */ be_nested_str_weak(tag_profile),
+ /* K2 */ be_nested_str_weak(tag_number),
+ /* K3 */ be_nested_str_weak(tag_sub),
+ }),
+ be_str_weak(set_fulltag),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x60100009, // 0000 GETGBL R4 G9
+ 0x5C140200, // 0001 MOVE R5 R1
+ 0x7C100200, // 0002 CALL R4 1
+ 0x90020004, // 0003 SETMBR R0 K0 R4
+ 0x60100009, // 0004 GETGBL R4 G9
+ 0x5C140400, // 0005 MOVE R5 R2
+ 0x7C100200, // 0006 CALL R4 1
+ 0x90020204, // 0007 SETMBR R0 K1 R4
+ 0x60100009, // 0008 GETGBL R4 G9
+ 0x5C140600, // 0009 MOVE R5 R3
+ 0x7C100200, // 000A CALL R4 1
+ 0x90020404, // 000B SETMBR R0 K2 R4
+ 0x4C100000, // 000C LDNIL R4
+ 0x90020604, // 000D SETMBR R0 K3 R4
+ 0x80000000, // 000E RET 0
})
)
);
@@ -892,10 +1036,10 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
/********************************************************************
-** Solidified function: _encode_tag_len
+** Solidified function: set_commonprofile
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item__encode_tag_len, /* name */
+be_local_closure(class_Matter_TLV_item_set_commonprofile, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@@ -905,73 +1049,18 @@ be_local_closure(class_Matter_TLV_item__encode_tag_len, /* name */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(tag_number),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(tag_vendor),
- /* K3 */ be_nested_str_weak(tag_profile),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(tag_sub),
- /* K6 */ be_const_int(2),
- /* K7 */ be_const_int(1),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(set_fulltag),
}),
- be_str_weak(_encode_tag_len),
+ be_str_weak(set_commonprofile),
&be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060001, // 0003 JMPF R1 #0006
- 0x88040100, // 0004 GETMBR R1 R0 K0
- 0x70020000, // 0005 JMP #0007
- 0x58040001, // 0006 LDCONST R1 K1
- 0x540AFFFF, // 0007 LDINT R2 65536
- 0x28080202, // 0008 GE R2 R1 R2
- 0x740A0002, // 0009 JMPT R2 #000D
- 0x14080301, // 000A LT R2 R1 K1
- 0x740A0000, // 000B JMPT R2 #000D
- 0x50080001, // 000C LDBOOL R2 0 1
- 0x50080200, // 000D LDBOOL R2 1 0
- 0x580C0001, // 000E LDCONST R3 K1
- 0x88100102, // 000F GETMBR R4 R0 K2
- 0x4C140000, // 0010 LDNIL R5
- 0x20100805, // 0011 NE R4 R4 R5
- 0x78120006, // 0012 JMPF R4 #001A
- 0x780A0002, // 0013 JMPF R2 #0017
- 0x54120008, // 0014 LDINT R4 9
- 0x80040800, // 0015 RET 1 R4
- 0x70020001, // 0016 JMP #0019
- 0x54120006, // 0017 LDINT R4 7
- 0x80040800, // 0018 RET 1 R4
- 0x7002001A, // 0019 JMP #0035
- 0x88100103, // 001A GETMBR R4 R0 K3
- 0x5415FFFE, // 001B LDINT R5 -1
- 0x1C100805, // 001C EQ R4 R4 R5
- 0x78120005, // 001D JMPF R4 #0024
- 0x780A0002, // 001E JMPF R2 #0022
- 0x54120004, // 001F LDINT R4 5
- 0x80040800, // 0020 RET 1 R4
- 0x70020000, // 0021 JMP #0023
- 0x80060800, // 0022 RET 1 K4
- 0x70020010, // 0023 JMP #0035
- 0x88100103, // 0024 GETMBR R4 R0 K3
- 0x4C140000, // 0025 LDNIL R5
- 0x20100805, // 0026 NE R4 R4 R5
- 0x78120005, // 0027 JMPF R4 #002E
- 0x780A0002, // 0028 JMPF R2 #002C
- 0x54120004, // 0029 LDINT R4 5
- 0x80040800, // 002A RET 1 R4
- 0x70020000, // 002B JMP #002D
- 0x80060800, // 002C RET 1 K4
- 0x70020006, // 002D JMP #0035
- 0x88100105, // 002E GETMBR R4 R0 K5
- 0x4C140000, // 002F LDNIL R5
- 0x20100805, // 0030 NE R4 R4 R5
- 0x78120001, // 0031 JMPF R4 #0034
- 0x80060C00, // 0032 RET 1 K6
- 0x70020000, // 0033 JMP #0035
- 0x80060E00, // 0034 RET 1 K7
- 0x80000000, // 0035 RET 0
+ ( &(const binstruction[ 6]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x5411FFFE, // 0002 LDINT R4 -1
+ 0x4C140000, // 0003 LDNIL R5
+ 0x7C040800, // 0004 CALL R1 4
+ 0x80000000, // 0005 RET 0
})
)
);
@@ -979,39 +1068,360 @@ be_local_closure(class_Matter_TLV_item__encode_tag_len, /* name */
/********************************************************************
-** Solidified function: set
+** Solidified function: _encode_tag
********************************************************************/
extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_set, /* name */
+be_local_closure(class_Matter_TLV_item__encode_tag, /* name */
be_nested_proto(
- 5, /* nstack */
- 3, /* argc */
+ 9, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(reset),
- /* K1 */ be_nested_str_weak(typ),
- /* K2 */ be_nested_str_weak(val),
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tag_number),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(tag_vendor),
+ /* K3 */ be_nested_str_weak(add),
+ /* K4 */ be_nested_str_weak(typ),
+ /* K5 */ be_const_int(1),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(tag_profile),
+ /* K8 */ be_nested_str_weak(tag_sub),
}),
- be_str_weak(set),
+ be_str_weak(_encode_tag),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x8C0C0100, // 0000 GETMET R3 R0 K0
- 0x7C0C0200, // 0001 CALL R3 1
- 0x4C0C0000, // 0002 LDNIL R3
- 0x200C0403, // 0003 NE R3 R2 R3
- 0x740E0002, // 0004 JMPT R3 #0008
- 0x540E0013, // 0005 LDINT R3 20
- 0x1C0C0203, // 0006 EQ R3 R1 R3
- 0x780E0002, // 0007 JMPF R3 #000B
- 0x90020201, // 0008 SETMBR R0 K1 R1
- 0x90020402, // 0009 SETMBR R0 K2 R2
- 0x80040000, // 000A RET 1 R0
- 0x80000000, // 000B RET 0
+ ( &(const binstruction[133]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x20080403, // 0002 NE R2 R2 R3
+ 0x780A0001, // 0003 JMPF R2 #0006
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x70020000, // 0005 JMP #0007
+ 0x58080001, // 0006 LDCONST R2 K1
+ 0x540EFFFF, // 0007 LDINT R3 65536
+ 0x280C0403, // 0008 GE R3 R2 R3
+ 0x740E0002, // 0009 JMPT R3 #000D
+ 0x140C0501, // 000A LT R3 R2 K1
+ 0x740E0000, // 000B JMPT R3 #000D
+ 0x500C0001, // 000C LDBOOL R3 0 1
+ 0x500C0200, // 000D LDBOOL R3 1 0
+ 0x58100001, // 000E LDCONST R4 K1
+ 0x88140102, // 000F GETMBR R5 R0 K2
+ 0x4C180000, // 0010 LDNIL R6
+ 0x20140A06, // 0011 NE R5 R5 R6
+ 0x78160026, // 0012 JMPF R5 #003A
+ 0x780E0012, // 0013 JMPF R3 #0027
+ 0x8C140303, // 0014 GETMET R5 R1 K3
+ 0x541E00DF, // 0015 LDINT R7 224
+ 0x88200104, // 0016 GETMBR R8 R0 K4
+ 0x001C0E08, // 0017 ADD R7 R7 R8
+ 0x58200005, // 0018 LDCONST R8 K5
+ 0x7C140600, // 0019 CALL R5 3
+ 0x8C140303, // 001A GETMET R5 R1 K3
+ 0x881C0102, // 001B GETMBR R7 R0 K2
+ 0x58200006, // 001C LDCONST R8 K6
+ 0x7C140600, // 001D CALL R5 3
+ 0x8C140303, // 001E GETMET R5 R1 K3
+ 0x881C0107, // 001F GETMBR R7 R0 K7
+ 0x58200006, // 0020 LDCONST R8 K6
+ 0x7C140600, // 0021 CALL R5 3
+ 0x8C140303, // 0022 GETMET R5 R1 K3
+ 0x881C0100, // 0023 GETMBR R7 R0 K0
+ 0x54220003, // 0024 LDINT R8 4
+ 0x7C140600, // 0025 CALL R5 3
+ 0x70020011, // 0026 JMP #0039
+ 0x8C140303, // 0027 GETMET R5 R1 K3
+ 0x541E00BF, // 0028 LDINT R7 192
+ 0x88200104, // 0029 GETMBR R8 R0 K4
+ 0x001C0E08, // 002A ADD R7 R7 R8
+ 0x58200005, // 002B LDCONST R8 K5
+ 0x7C140600, // 002C CALL R5 3
+ 0x8C140303, // 002D GETMET R5 R1 K3
+ 0x881C0102, // 002E GETMBR R7 R0 K2
+ 0x58200006, // 002F LDCONST R8 K6
+ 0x7C140600, // 0030 CALL R5 3
+ 0x8C140303, // 0031 GETMET R5 R1 K3
+ 0x881C0107, // 0032 GETMBR R7 R0 K7
+ 0x58200006, // 0033 LDCONST R8 K6
+ 0x7C140600, // 0034 CALL R5 3
+ 0x8C140303, // 0035 GETMET R5 R1 K3
+ 0x881C0100, // 0036 GETMBR R7 R0 K0
+ 0x58200006, // 0037 LDCONST R8 K6
+ 0x7C140600, // 0038 CALL R5 3
+ 0x70020049, // 0039 JMP #0084
+ 0x88140107, // 003A GETMBR R5 R0 K7
+ 0x5419FFFE, // 003B LDINT R6 -1
+ 0x1C140A06, // 003C EQ R5 R5 R6
+ 0x78160016, // 003D JMPF R5 #0055
+ 0x780E000A, // 003E JMPF R3 #004A
+ 0x8C140303, // 003F GETMET R5 R1 K3
+ 0x541E005F, // 0040 LDINT R7 96
+ 0x88200104, // 0041 GETMBR R8 R0 K4
+ 0x001C0E08, // 0042 ADD R7 R7 R8
+ 0x58200005, // 0043 LDCONST R8 K5
+ 0x7C140600, // 0044 CALL R5 3
+ 0x8C140303, // 0045 GETMET R5 R1 K3
+ 0x881C0100, // 0046 GETMBR R7 R0 K0
+ 0x54220003, // 0047 LDINT R8 4
+ 0x7C140600, // 0048 CALL R5 3
+ 0x70020009, // 0049 JMP #0054
+ 0x8C140303, // 004A GETMET R5 R1 K3
+ 0x541E003F, // 004B LDINT R7 64
+ 0x88200104, // 004C GETMBR R8 R0 K4
+ 0x001C0E08, // 004D ADD R7 R7 R8
+ 0x58200005, // 004E LDCONST R8 K5
+ 0x7C140600, // 004F CALL R5 3
+ 0x8C140303, // 0050 GETMET R5 R1 K3
+ 0x881C0100, // 0051 GETMBR R7 R0 K0
+ 0x58200006, // 0052 LDCONST R8 K6
+ 0x7C140600, // 0053 CALL R5 3
+ 0x7002002E, // 0054 JMP #0084
+ 0x88140107, // 0055 GETMBR R5 R0 K7
+ 0x4C180000, // 0056 LDNIL R6
+ 0x20140A06, // 0057 NE R5 R5 R6
+ 0x78160016, // 0058 JMPF R5 #0070
+ 0x780E000A, // 0059 JMPF R3 #0065
+ 0x8C140303, // 005A GETMET R5 R1 K3
+ 0x541E009F, // 005B LDINT R7 160
+ 0x88200104, // 005C GETMBR R8 R0 K4
+ 0x001C0E08, // 005D ADD R7 R7 R8
+ 0x58200005, // 005E LDCONST R8 K5
+ 0x7C140600, // 005F CALL R5 3
+ 0x8C140303, // 0060 GETMET R5 R1 K3
+ 0x881C0100, // 0061 GETMBR R7 R0 K0
+ 0x54220003, // 0062 LDINT R8 4
+ 0x7C140600, // 0063 CALL R5 3
+ 0x70020009, // 0064 JMP #006F
+ 0x8C140303, // 0065 GETMET R5 R1 K3
+ 0x541E007F, // 0066 LDINT R7 128
+ 0x88200104, // 0067 GETMBR R8 R0 K4
+ 0x001C0E08, // 0068 ADD R7 R7 R8
+ 0x58200005, // 0069 LDCONST R8 K5
+ 0x7C140600, // 006A CALL R5 3
+ 0x8C140303, // 006B GETMET R5 R1 K3
+ 0x881C0100, // 006C GETMBR R7 R0 K0
+ 0x58200006, // 006D LDCONST R8 K6
+ 0x7C140600, // 006E CALL R5 3
+ 0x70020013, // 006F JMP #0084
+ 0x88140108, // 0070 GETMBR R5 R0 K8
+ 0x4C180000, // 0071 LDNIL R6
+ 0x20140A06, // 0072 NE R5 R5 R6
+ 0x7816000A, // 0073 JMPF R5 #007F
+ 0x8C140303, // 0074 GETMET R5 R1 K3
+ 0x541E001F, // 0075 LDINT R7 32
+ 0x88200104, // 0076 GETMBR R8 R0 K4
+ 0x001C0E08, // 0077 ADD R7 R7 R8
+ 0x58200005, // 0078 LDCONST R8 K5
+ 0x7C140600, // 0079 CALL R5 3
+ 0x8C140303, // 007A GETMET R5 R1 K3
+ 0x881C0108, // 007B GETMBR R7 R0 K8
+ 0x58200005, // 007C LDCONST R8 K5
+ 0x7C140600, // 007D CALL R5 3
+ 0x70020004, // 007E JMP #0084
+ 0x8C140303, // 007F GETMET R5 R1 K3
+ 0x881C0104, // 0080 GETMBR R7 R0 K4
+ 0x001E0207, // 0081 ADD R7 K1 R7
+ 0x58200005, // 0082 LDCONST R8 K5
+ 0x7C140600, // 0083 CALL R5 3
+ 0x80000000, // 0084 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: sort
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_sort, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_TLV_item),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(_cmp_gt),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(sort),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080010, // 0001 GETGBL R2 G16
+ 0x600C000C, // 0002 GETGBL R3 G12
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x040C0701, // 0005 SUB R3 R3 K1
+ 0x400E0203, // 0006 CONNECT R3 K1 R3
+ 0x7C080200, // 0007 CALL R2 1
+ 0xA8020013, // 0008 EXBLK 0 #001D
+ 0x5C0C0400, // 0009 MOVE R3 R2
+ 0x7C0C0000, // 000A CALL R3 0
+ 0x94100003, // 000B GETIDX R4 R0 R3
+ 0x5C140600, // 000C MOVE R5 R3
+ 0x24180B02, // 000D GT R6 R5 K2
+ 0x781A000B, // 000E JMPF R6 #001B
+ 0x04180B01, // 000F SUB R6 R5 K1
+ 0x94180006, // 0010 GETIDX R6 R0 R6
+ 0x8C180D03, // 0011 GETMET R6 R6 K3
+ 0x5C200800, // 0012 MOVE R8 R4
+ 0x7C180400, // 0013 CALL R6 2
+ 0x24180D02, // 0014 GT R6 R6 K2
+ 0x781A0004, // 0015 JMPF R6 #001B
+ 0x04180B01, // 0016 SUB R6 R5 K1
+ 0x94180006, // 0017 GETIDX R6 R0 R6
+ 0x98000A06, // 0018 SETIDX R0 R5 R6
+ 0x04140B01, // 0019 SUB R5 R5 K1
+ 0x7001FFF1, // 001A JMP #000D
+ 0x98000A04, // 001B SETIDX R0 R5 R4
+ 0x7001FFEB, // 001C JMP #0009
+ 0x58080004, // 001D LDCONST R2 K4
+ 0xAC080200, // 001E CATCH R2 1 0
+ 0xB0080000, // 001F RAISE 2 R0 R0
+ 0x80040000, // 0020 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_init, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(parent),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _cmp_gt
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item__cmp_gt, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(tag_vendor),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(tag_profile),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(tag_number),
+ /* K5 */ be_nested_str_weak(tag_sub),
+ }),
+ be_str_weak(_cmp_gt),
+ &be_const_str_solidified,
+ ( &(const binstruction[72]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x20080403, // 0002 NE R2 R2 R3
+ 0x780A0012, // 0003 JMPF R2 #0017
+ 0x88080300, // 0004 GETMBR R2 R1 K0
+ 0x4C0C0000, // 0005 LDNIL R3
+ 0x1C080403, // 0006 EQ R2 R2 R3
+ 0x780A0000, // 0007 JMPF R2 #0009
+ 0x80060200, // 0008 RET 1 K1
+ 0x88080100, // 0009 GETMBR R2 R0 K0
+ 0x880C0300, // 000A GETMBR R3 R1 K0
+ 0x24080403, // 000B GT R2 R2 R3
+ 0x780A0000, // 000C JMPF R2 #000E
+ 0x80060200, // 000D RET 1 K1
+ 0x88080100, // 000E GETMBR R2 R0 K0
+ 0x880C0300, // 000F GETMBR R3 R1 K0
+ 0x1C080403, // 0010 EQ R2 R2 R3
+ 0x780A0004, // 0011 JMPF R2 #0017
+ 0x88080102, // 0012 GETMBR R2 R0 K2
+ 0x880C0302, // 0013 GETMBR R3 R1 K2
+ 0x24080403, // 0014 GT R2 R2 R3
+ 0x780A0000, // 0015 JMPF R2 #0017
+ 0x80060200, // 0016 RET 1 K1
+ 0x88080102, // 0017 GETMBR R2 R0 K2
+ 0x540DFFFE, // 0018 LDINT R3 -1
+ 0x1C080403, // 0019 EQ R2 R2 R3
+ 0x780A0005, // 001A JMPF R2 #0021
+ 0x88080302, // 001B GETMBR R2 R1 K2
+ 0x4C0C0000, // 001C LDNIL R3
+ 0x1C080403, // 001D EQ R2 R2 R3
+ 0x780A0000, // 001E JMPF R2 #0020
+ 0x80060200, // 001F RET 1 K1
+ 0x70020008, // 0020 JMP #002A
+ 0x88080102, // 0021 GETMBR R2 R0 K2
+ 0x4C0C0000, // 0022 LDNIL R3
+ 0x1C080403, // 0023 EQ R2 R2 R3
+ 0x780A0004, // 0024 JMPF R2 #002A
+ 0x88080302, // 0025 GETMBR R2 R1 K2
+ 0x540DFFFE, // 0026 LDINT R3 -1
+ 0x1C080403, // 0027 EQ R2 R2 R3
+ 0x780A0000, // 0028 JMPF R2 #002A
+ 0x80060600, // 0029 RET 1 K3
+ 0x88080104, // 002A GETMBR R2 R0 K4
+ 0x4C0C0000, // 002B LDNIL R3
+ 0x20080403, // 002C NE R2 R2 R3
+ 0x780A000A, // 002D JMPF R2 #0039
+ 0x88080304, // 002E GETMBR R2 R1 K4
+ 0x4C0C0000, // 002F LDNIL R3
+ 0x1C080403, // 0030 EQ R2 R2 R3
+ 0x780A0000, // 0031 JMPF R2 #0033
+ 0x80060200, // 0032 RET 1 K1
+ 0x88080104, // 0033 GETMBR R2 R0 K4
+ 0x880C0304, // 0034 GETMBR R3 R1 K4
+ 0x24080403, // 0035 GT R2 R2 R3
+ 0x780A0000, // 0036 JMPF R2 #0038
+ 0x80060200, // 0037 RET 1 K1
+ 0x80060600, // 0038 RET 1 K3
+ 0x88080105, // 0039 GETMBR R2 R0 K5
+ 0x4C0C0000, // 003A LDNIL R3
+ 0x20080403, // 003B NE R2 R2 R3
+ 0x780A0009, // 003C JMPF R2 #0047
+ 0x88080305, // 003D GETMBR R2 R1 K5
+ 0x4C0C0000, // 003E LDNIL R3
+ 0x1C080403, // 003F EQ R2 R2 R3
+ 0x780A0000, // 0040 JMPF R2 #0042
+ 0x80060200, // 0041 RET 1 K1
+ 0x88080105, // 0042 GETMBR R2 R0 K5
+ 0x880C0305, // 0043 GETMBR R3 R1 K5
+ 0x24080403, // 0044 GT R2 R2 R3
+ 0x780A0000, // 0045 JMPF R2 #0047
+ 0x80060200, // 0046 RET 1 K1
+ 0x80060600, // 0047 RET 1 K3
})
)
);
@@ -1453,6 +1863,196 @@ be_local_closure(class_Matter_TLV_item_tlv2raw, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: _encode_tag_len
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item__encode_tag_len, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(tag_number),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(tag_vendor),
+ /* K3 */ be_nested_str_weak(tag_profile),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(tag_sub),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_const_int(1),
+ }),
+ be_str_weak(_encode_tag_len),
+ &be_const_str_solidified,
+ ( &(const binstruction[54]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060001, // 0003 JMPF R1 #0006
+ 0x88040100, // 0004 GETMBR R1 R0 K0
+ 0x70020000, // 0005 JMP #0007
+ 0x58040001, // 0006 LDCONST R1 K1
+ 0x540AFFFF, // 0007 LDINT R2 65536
+ 0x28080202, // 0008 GE R2 R1 R2
+ 0x740A0002, // 0009 JMPT R2 #000D
+ 0x14080301, // 000A LT R2 R1 K1
+ 0x740A0000, // 000B JMPT R2 #000D
+ 0x50080001, // 000C LDBOOL R2 0 1
+ 0x50080200, // 000D LDBOOL R2 1 0
+ 0x580C0001, // 000E LDCONST R3 K1
+ 0x88100102, // 000F GETMBR R4 R0 K2
+ 0x4C140000, // 0010 LDNIL R5
+ 0x20100805, // 0011 NE R4 R4 R5
+ 0x78120006, // 0012 JMPF R4 #001A
+ 0x780A0002, // 0013 JMPF R2 #0017
+ 0x54120008, // 0014 LDINT R4 9
+ 0x80040800, // 0015 RET 1 R4
+ 0x70020001, // 0016 JMP #0019
+ 0x54120006, // 0017 LDINT R4 7
+ 0x80040800, // 0018 RET 1 R4
+ 0x7002001A, // 0019 JMP #0035
+ 0x88100103, // 001A GETMBR R4 R0 K3
+ 0x5415FFFE, // 001B LDINT R5 -1
+ 0x1C100805, // 001C EQ R4 R4 R5
+ 0x78120005, // 001D JMPF R4 #0024
+ 0x780A0002, // 001E JMPF R2 #0022
+ 0x54120004, // 001F LDINT R4 5
+ 0x80040800, // 0020 RET 1 R4
+ 0x70020000, // 0021 JMP #0023
+ 0x80060800, // 0022 RET 1 K4
+ 0x70020010, // 0023 JMP #0035
+ 0x88100103, // 0024 GETMBR R4 R0 K3
+ 0x4C140000, // 0025 LDNIL R5
+ 0x20100805, // 0026 NE R4 R4 R5
+ 0x78120005, // 0027 JMPF R4 #002E
+ 0x780A0002, // 0028 JMPF R2 #002C
+ 0x54120004, // 0029 LDINT R4 5
+ 0x80040800, // 002A RET 1 R4
+ 0x70020000, // 002B JMP #002D
+ 0x80060800, // 002C RET 1 K4
+ 0x70020006, // 002D JMP #0035
+ 0x88100105, // 002E GETMBR R4 R0 K5
+ 0x4C140000, // 002F LDNIL R5
+ 0x20100805, // 0030 NE R4 R4 R5
+ 0x78120001, // 0031 JMPF R4 #0034
+ 0x80060C00, // 0032 RET 1 K6
+ 0x70020000, // 0033 JMP #0035
+ 0x80060E00, // 0034 RET 1 K7
+ 0x80000000, // 0035 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_contextspecific
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_set_contextspecific, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(set_fulltag),
+ /* K1 */ be_nested_str_weak(tag_sub),
+ }),
+ be_str_weak(set_contextspecific),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x60080009, // 0002 GETGBL R2 G9
+ 0x5C0C0200, // 0003 MOVE R3 R1
+ 0x7C080200, // 0004 CALL R2 1
+ 0x90020202, // 0005 SETMBR R0 K1 R2
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_parent
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_set_parent, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(parent),
+ }),
+ be_str_weak(set_parent),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: create_TLV
+********************************************************************/
+extern const bclass be_class_Matter_TLV_item;
+be_local_closure(class_Matter_TLV_item_create_TLV, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_TLV_item,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_TLV_item),
+ /* K1 */ be_nested_str_weak(typ),
+ /* K2 */ be_nested_str_weak(val),
+ }),
+ be_str_weak(create_TLV),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x200C0203, // 0002 NE R3 R1 R3
+ 0x740E0002, // 0003 JMPT R3 #0007
+ 0x540E0013, // 0004 LDINT R3 20
+ 0x1C0C0003, // 0005 EQ R3 R0 R3
+ 0x780E0004, // 0006 JMPF R3 #000C
+ 0x5C0C0400, // 0007 MOVE R3 R2
+ 0x7C0C0000, // 0008 CALL R3 0
+ 0x900E0200, // 0009 SETMBR R3 K1 R0
+ 0x900E0401, // 000A SETMBR R3 K2 R1
+ 0x80040600, // 000B RET 1 R3
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: set_anonymoustag
********************************************************************/
@@ -1482,601 +2082,46 @@ be_local_closure(class_Matter_TLV_item_set_anonymoustag, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: _cmp_gt
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item__cmp_gt, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(tag_vendor),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(tag_profile),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(tag_number),
- /* K5 */ be_nested_str_weak(tag_sub),
- }),
- be_str_weak(_cmp_gt),
- &be_const_str_solidified,
- ( &(const binstruction[72]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x20080403, // 0002 NE R2 R2 R3
- 0x780A0012, // 0003 JMPF R2 #0017
- 0x88080300, // 0004 GETMBR R2 R1 K0
- 0x4C0C0000, // 0005 LDNIL R3
- 0x1C080403, // 0006 EQ R2 R2 R3
- 0x780A0000, // 0007 JMPF R2 #0009
- 0x80060200, // 0008 RET 1 K1
- 0x88080100, // 0009 GETMBR R2 R0 K0
- 0x880C0300, // 000A GETMBR R3 R1 K0
- 0x24080403, // 000B GT R2 R2 R3
- 0x780A0000, // 000C JMPF R2 #000E
- 0x80060200, // 000D RET 1 K1
- 0x88080100, // 000E GETMBR R2 R0 K0
- 0x880C0300, // 000F GETMBR R3 R1 K0
- 0x1C080403, // 0010 EQ R2 R2 R3
- 0x780A0004, // 0011 JMPF R2 #0017
- 0x88080102, // 0012 GETMBR R2 R0 K2
- 0x880C0302, // 0013 GETMBR R3 R1 K2
- 0x24080403, // 0014 GT R2 R2 R3
- 0x780A0000, // 0015 JMPF R2 #0017
- 0x80060200, // 0016 RET 1 K1
- 0x88080102, // 0017 GETMBR R2 R0 K2
- 0x540DFFFE, // 0018 LDINT R3 -1
- 0x1C080403, // 0019 EQ R2 R2 R3
- 0x780A0005, // 001A JMPF R2 #0021
- 0x88080302, // 001B GETMBR R2 R1 K2
- 0x4C0C0000, // 001C LDNIL R3
- 0x1C080403, // 001D EQ R2 R2 R3
- 0x780A0000, // 001E JMPF R2 #0020
- 0x80060200, // 001F RET 1 K1
- 0x70020008, // 0020 JMP #002A
- 0x88080102, // 0021 GETMBR R2 R0 K2
- 0x4C0C0000, // 0022 LDNIL R3
- 0x1C080403, // 0023 EQ R2 R2 R3
- 0x780A0004, // 0024 JMPF R2 #002A
- 0x88080302, // 0025 GETMBR R2 R1 K2
- 0x540DFFFE, // 0026 LDINT R3 -1
- 0x1C080403, // 0027 EQ R2 R2 R3
- 0x780A0000, // 0028 JMPF R2 #002A
- 0x80060600, // 0029 RET 1 K3
- 0x88080104, // 002A GETMBR R2 R0 K4
- 0x4C0C0000, // 002B LDNIL R3
- 0x20080403, // 002C NE R2 R2 R3
- 0x780A000A, // 002D JMPF R2 #0039
- 0x88080304, // 002E GETMBR R2 R1 K4
- 0x4C0C0000, // 002F LDNIL R3
- 0x1C080403, // 0030 EQ R2 R2 R3
- 0x780A0000, // 0031 JMPF R2 #0033
- 0x80060200, // 0032 RET 1 K1
- 0x88080104, // 0033 GETMBR R2 R0 K4
- 0x880C0304, // 0034 GETMBR R3 R1 K4
- 0x24080403, // 0035 GT R2 R2 R3
- 0x780A0000, // 0036 JMPF R2 #0038
- 0x80060200, // 0037 RET 1 K1
- 0x80060600, // 0038 RET 1 K3
- 0x88080105, // 0039 GETMBR R2 R0 K5
- 0x4C0C0000, // 003A LDNIL R3
- 0x20080403, // 003B NE R2 R2 R3
- 0x780A0009, // 003C JMPF R2 #0047
- 0x88080305, // 003D GETMBR R2 R1 K5
- 0x4C0C0000, // 003E LDNIL R3
- 0x1C080403, // 003F EQ R2 R2 R3
- 0x780A0000, // 0040 JMPF R2 #0042
- 0x80060200, // 0041 RET 1 K1
- 0x88080105, // 0042 GETMBR R2 R0 K5
- 0x880C0305, // 0043 GETMBR R3 R1 K5
- 0x24080403, // 0044 GT R2 R2 R3
- 0x780A0000, // 0045 JMPF R2 #0047
- 0x80060200, // 0046 RET 1 K1
- 0x80060600, // 0047 RET 1 K3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _encode_tag
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item__encode_tag, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tag_number),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(tag_vendor),
- /* K3 */ be_nested_str_weak(add),
- /* K4 */ be_nested_str_weak(typ),
- /* K5 */ be_const_int(1),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(tag_profile),
- /* K8 */ be_nested_str_weak(tag_sub),
- }),
- be_str_weak(_encode_tag),
- &be_const_str_solidified,
- ( &(const binstruction[133]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x20080403, // 0002 NE R2 R2 R3
- 0x780A0001, // 0003 JMPF R2 #0006
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x70020000, // 0005 JMP #0007
- 0x58080001, // 0006 LDCONST R2 K1
- 0x540EFFFF, // 0007 LDINT R3 65536
- 0x280C0403, // 0008 GE R3 R2 R3
- 0x740E0002, // 0009 JMPT R3 #000D
- 0x140C0501, // 000A LT R3 R2 K1
- 0x740E0000, // 000B JMPT R3 #000D
- 0x500C0001, // 000C LDBOOL R3 0 1
- 0x500C0200, // 000D LDBOOL R3 1 0
- 0x58100001, // 000E LDCONST R4 K1
- 0x88140102, // 000F GETMBR R5 R0 K2
- 0x4C180000, // 0010 LDNIL R6
- 0x20140A06, // 0011 NE R5 R5 R6
- 0x78160026, // 0012 JMPF R5 #003A
- 0x780E0012, // 0013 JMPF R3 #0027
- 0x8C140303, // 0014 GETMET R5 R1 K3
- 0x541E00DF, // 0015 LDINT R7 224
- 0x88200104, // 0016 GETMBR R8 R0 K4
- 0x001C0E08, // 0017 ADD R7 R7 R8
- 0x58200005, // 0018 LDCONST R8 K5
- 0x7C140600, // 0019 CALL R5 3
- 0x8C140303, // 001A GETMET R5 R1 K3
- 0x881C0102, // 001B GETMBR R7 R0 K2
- 0x58200006, // 001C LDCONST R8 K6
- 0x7C140600, // 001D CALL R5 3
- 0x8C140303, // 001E GETMET R5 R1 K3
- 0x881C0107, // 001F GETMBR R7 R0 K7
- 0x58200006, // 0020 LDCONST R8 K6
- 0x7C140600, // 0021 CALL R5 3
- 0x8C140303, // 0022 GETMET R5 R1 K3
- 0x881C0100, // 0023 GETMBR R7 R0 K0
- 0x54220003, // 0024 LDINT R8 4
- 0x7C140600, // 0025 CALL R5 3
- 0x70020011, // 0026 JMP #0039
- 0x8C140303, // 0027 GETMET R5 R1 K3
- 0x541E00BF, // 0028 LDINT R7 192
- 0x88200104, // 0029 GETMBR R8 R0 K4
- 0x001C0E08, // 002A ADD R7 R7 R8
- 0x58200005, // 002B LDCONST R8 K5
- 0x7C140600, // 002C CALL R5 3
- 0x8C140303, // 002D GETMET R5 R1 K3
- 0x881C0102, // 002E GETMBR R7 R0 K2
- 0x58200006, // 002F LDCONST R8 K6
- 0x7C140600, // 0030 CALL R5 3
- 0x8C140303, // 0031 GETMET R5 R1 K3
- 0x881C0107, // 0032 GETMBR R7 R0 K7
- 0x58200006, // 0033 LDCONST R8 K6
- 0x7C140600, // 0034 CALL R5 3
- 0x8C140303, // 0035 GETMET R5 R1 K3
- 0x881C0100, // 0036 GETMBR R7 R0 K0
- 0x58200006, // 0037 LDCONST R8 K6
- 0x7C140600, // 0038 CALL R5 3
- 0x70020049, // 0039 JMP #0084
- 0x88140107, // 003A GETMBR R5 R0 K7
- 0x5419FFFE, // 003B LDINT R6 -1
- 0x1C140A06, // 003C EQ R5 R5 R6
- 0x78160016, // 003D JMPF R5 #0055
- 0x780E000A, // 003E JMPF R3 #004A
- 0x8C140303, // 003F GETMET R5 R1 K3
- 0x541E005F, // 0040 LDINT R7 96
- 0x88200104, // 0041 GETMBR R8 R0 K4
- 0x001C0E08, // 0042 ADD R7 R7 R8
- 0x58200005, // 0043 LDCONST R8 K5
- 0x7C140600, // 0044 CALL R5 3
- 0x8C140303, // 0045 GETMET R5 R1 K3
- 0x881C0100, // 0046 GETMBR R7 R0 K0
- 0x54220003, // 0047 LDINT R8 4
- 0x7C140600, // 0048 CALL R5 3
- 0x70020009, // 0049 JMP #0054
- 0x8C140303, // 004A GETMET R5 R1 K3
- 0x541E003F, // 004B LDINT R7 64
- 0x88200104, // 004C GETMBR R8 R0 K4
- 0x001C0E08, // 004D ADD R7 R7 R8
- 0x58200005, // 004E LDCONST R8 K5
- 0x7C140600, // 004F CALL R5 3
- 0x8C140303, // 0050 GETMET R5 R1 K3
- 0x881C0100, // 0051 GETMBR R7 R0 K0
- 0x58200006, // 0052 LDCONST R8 K6
- 0x7C140600, // 0053 CALL R5 3
- 0x7002002E, // 0054 JMP #0084
- 0x88140107, // 0055 GETMBR R5 R0 K7
- 0x4C180000, // 0056 LDNIL R6
- 0x20140A06, // 0057 NE R5 R5 R6
- 0x78160016, // 0058 JMPF R5 #0070
- 0x780E000A, // 0059 JMPF R3 #0065
- 0x8C140303, // 005A GETMET R5 R1 K3
- 0x541E009F, // 005B LDINT R7 160
- 0x88200104, // 005C GETMBR R8 R0 K4
- 0x001C0E08, // 005D ADD R7 R7 R8
- 0x58200005, // 005E LDCONST R8 K5
- 0x7C140600, // 005F CALL R5 3
- 0x8C140303, // 0060 GETMET R5 R1 K3
- 0x881C0100, // 0061 GETMBR R7 R0 K0
- 0x54220003, // 0062 LDINT R8 4
- 0x7C140600, // 0063 CALL R5 3
- 0x70020009, // 0064 JMP #006F
- 0x8C140303, // 0065 GETMET R5 R1 K3
- 0x541E007F, // 0066 LDINT R7 128
- 0x88200104, // 0067 GETMBR R8 R0 K4
- 0x001C0E08, // 0068 ADD R7 R7 R8
- 0x58200005, // 0069 LDCONST R8 K5
- 0x7C140600, // 006A CALL R5 3
- 0x8C140303, // 006B GETMET R5 R1 K3
- 0x881C0100, // 006C GETMBR R7 R0 K0
- 0x58200006, // 006D LDCONST R8 K6
- 0x7C140600, // 006E CALL R5 3
- 0x70020013, // 006F JMP #0084
- 0x88140108, // 0070 GETMBR R5 R0 K8
- 0x4C180000, // 0071 LDNIL R6
- 0x20140A06, // 0072 NE R5 R5 R6
- 0x7816000A, // 0073 JMPF R5 #007F
- 0x8C140303, // 0074 GETMET R5 R1 K3
- 0x541E001F, // 0075 LDINT R7 32
- 0x88200104, // 0076 GETMBR R8 R0 K4
- 0x001C0E08, // 0077 ADD R7 R7 R8
- 0x58200005, // 0078 LDCONST R8 K5
- 0x7C140600, // 0079 CALL R5 3
- 0x8C140303, // 007A GETMET R5 R1 K3
- 0x881C0108, // 007B GETMBR R7 R0 K8
- 0x58200005, // 007C LDCONST R8 K5
- 0x7C140600, // 007D CALL R5 3
- 0x70020004, // 007E JMP #0084
- 0x8C140303, // 007F GETMET R5 R1 K3
- 0x881C0104, // 0080 GETMBR R7 R0 K4
- 0x001E0207, // 0081 ADD R7 K1 R7
- 0x58200005, // 0082 LDCONST R8 K5
- 0x7C140600, // 0083 CALL R5 3
- 0x80000000, // 0084 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: tostring
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_tostring, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[34]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- /* K1 */ be_nested_str_weak(tag_profile),
- /* K2 */ be_nested_str_weak(Matter_X3A_X3A),
- /* K3 */ be_nested_str_weak(tag_number),
- /* K4 */ be_nested_str_weak(0x_X2508X_X20),
- /* K5 */ be_nested_str_weak(tag_vendor),
- /* K6 */ be_nested_str_weak(0x_X2504X_X3A_X3A),
- /* K7 */ be_nested_str_weak(0x_X2504X_X3A),
- /* K8 */ be_nested_str_weak(tag_sub),
- /* K9 */ be_nested_str_weak(_X25i_X20),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(_X3D_X20),
- /* K12 */ be_nested_str_weak(val),
- /* K13 */ be_nested_str_weak(int),
- /* K14 */ be_nested_str_weak(_X25i),
- /* K15 */ be_nested_str_weak(typ),
- /* K16 */ be_nested_str_weak(TLV),
- /* K17 */ be_nested_str_weak(U1),
- /* K18 */ be_nested_str_weak(U8),
- /* K19 */ be_nested_str_weak(U),
- /* K20 */ be_nested_str_weak(bool),
- /* K21 */ be_nested_str_weak(true),
- /* K22 */ be_nested_str_weak(false),
- /* K23 */ be_nested_str_weak(null),
- /* K24 */ be_nested_str_weak(real),
- /* K25 */ be_nested_str_weak(_X25g),
- /* K26 */ be_nested_str_weak(string),
- /* K27 */ be_nested_str_weak(_X22_X25s_X22),
- /* K28 */ be_nested_str_weak(int64),
- /* K29 */ be_nested_str_weak(tostring),
- /* K30 */ be_nested_str_weak(instance),
- /* K31 */ be_nested_str_weak(_X25s),
- /* K32 */ be_nested_str_weak(tohex),
- /* K33 */ be_nested_str_weak(_X20),
- }),
- be_str_weak(tostring),
- &be_const_str_solidified,
- ( &(const binstruction[167]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0xA802009C, // 0001 EXBLK 0 #009F
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x200C0203, // 0003 NE R3 R1 R3
- 0x780E0038, // 0004 JMPF R3 #003E
- 0x880C0101, // 0005 GETMBR R3 R0 K1
- 0x5411FFFE, // 0006 LDINT R4 -1
- 0x1C0C0604, // 0007 EQ R3 R3 R4
- 0x780E000A, // 0008 JMPF R3 #0014
- 0x00080502, // 0009 ADD R2 R2 K2
- 0x880C0103, // 000A GETMBR R3 R0 K3
- 0x4C100000, // 000B LDNIL R4
- 0x200C0604, // 000C NE R3 R3 R4
- 0x780E0004, // 000D JMPF R3 #0013
- 0x600C0018, // 000E GETGBL R3 G24
- 0x58100004, // 000F LDCONST R4 K4
- 0x88140103, // 0010 GETMBR R5 R0 K3
- 0x7C0C0400, // 0011 CALL R3 2
- 0x00080403, // 0012 ADD R2 R2 R3
- 0x70020023, // 0013 JMP #0038
- 0x880C0105, // 0014 GETMBR R3 R0 K5
- 0x4C100000, // 0015 LDNIL R4
- 0x200C0604, // 0016 NE R3 R3 R4
- 0x780E0004, // 0017 JMPF R3 #001D
- 0x600C0018, // 0018 GETGBL R3 G24
- 0x58100006, // 0019 LDCONST R4 K6
- 0x88140105, // 001A GETMBR R5 R0 K5
- 0x7C0C0400, // 001B CALL R3 2
- 0x00080403, // 001C ADD R2 R2 R3
- 0x880C0101, // 001D GETMBR R3 R0 K1
- 0x4C100000, // 001E LDNIL R4
- 0x200C0604, // 001F NE R3 R3 R4
- 0x780E0004, // 0020 JMPF R3 #0026
- 0x600C0018, // 0021 GETGBL R3 G24
- 0x58100007, // 0022 LDCONST R4 K7
- 0x88140101, // 0023 GETMBR R5 R0 K1
- 0x7C0C0400, // 0024 CALL R3 2
- 0x00080403, // 0025 ADD R2 R2 R3
- 0x880C0103, // 0026 GETMBR R3 R0 K3
- 0x4C100000, // 0027 LDNIL R4
- 0x200C0604, // 0028 NE R3 R3 R4
- 0x780E0004, // 0029 JMPF R3 #002F
- 0x600C0018, // 002A GETGBL R3 G24
- 0x58100004, // 002B LDCONST R4 K4
- 0x88140103, // 002C GETMBR R5 R0 K3
- 0x7C0C0400, // 002D CALL R3 2
- 0x00080403, // 002E ADD R2 R2 R3
- 0x880C0108, // 002F GETMBR R3 R0 K8
- 0x4C100000, // 0030 LDNIL R4
- 0x200C0604, // 0031 NE R3 R3 R4
- 0x780E0004, // 0032 JMPF R3 #0038
- 0x600C0018, // 0033 GETGBL R3 G24
- 0x58100009, // 0034 LDCONST R4 K9
- 0x88140108, // 0035 GETMBR R5 R0 K8
- 0x7C0C0400, // 0036 CALL R3 2
- 0x00080403, // 0037 ADD R2 R2 R3
- 0x600C000C, // 0038 GETGBL R3 G12
- 0x5C100400, // 0039 MOVE R4 R2
- 0x7C0C0200, // 003A CALL R3 1
- 0x240C070A, // 003B GT R3 R3 K10
- 0x780E0000, // 003C JMPF R3 #003E
- 0x0008050B, // 003D ADD R2 R2 K11
- 0x600C0004, // 003E GETGBL R3 G4
- 0x8810010C, // 003F GETMBR R4 R0 K12
- 0x7C0C0200, // 0040 CALL R3 1
- 0x1C0C070D, // 0041 EQ R3 R3 K13
- 0x780E0010, // 0042 JMPF R3 #0054
- 0x600C0018, // 0043 GETGBL R3 G24
- 0x5810000E, // 0044 LDCONST R4 K14
- 0x8814010C, // 0045 GETMBR R5 R0 K12
- 0x7C0C0400, // 0046 CALL R3 2
- 0x00080403, // 0047 ADD R2 R2 R3
- 0x880C010F, // 0048 GETMBR R3 R0 K15
- 0x88100110, // 0049 GETMBR R4 R0 K16
- 0x88100911, // 004A GETMBR R4 R4 K17
- 0x280C0604, // 004B GE R3 R3 R4
- 0x780E0005, // 004C JMPF R3 #0053
- 0x880C010F, // 004D GETMBR R3 R0 K15
- 0x88100110, // 004E GETMBR R4 R0 K16
- 0x88100912, // 004F GETMBR R4 R4 K18
- 0x180C0604, // 0050 LE R3 R3 R4
- 0x780E0000, // 0051 JMPF R3 #0053
- 0x00080513, // 0052 ADD R2 R2 K19
- 0x70020048, // 0053 JMP #009D
- 0x600C0004, // 0054 GETGBL R3 G4
- 0x8810010C, // 0055 GETMBR R4 R0 K12
- 0x7C0C0200, // 0056 CALL R3 1
- 0x1C0C0714, // 0057 EQ R3 R3 K20
- 0x780E0006, // 0058 JMPF R3 #0060
- 0x880C010C, // 0059 GETMBR R3 R0 K12
- 0x780E0001, // 005A JMPF R3 #005D
- 0x580C0015, // 005B LDCONST R3 K21
- 0x70020000, // 005C JMP #005E
- 0x580C0016, // 005D LDCONST R3 K22
- 0x00080403, // 005E ADD R2 R2 R3
- 0x7002003C, // 005F JMP #009D
- 0x880C010C, // 0060 GETMBR R3 R0 K12
- 0x4C100000, // 0061 LDNIL R4
- 0x1C0C0604, // 0062 EQ R3 R3 R4
- 0x780E0001, // 0063 JMPF R3 #0066
- 0x00080517, // 0064 ADD R2 R2 K23
- 0x70020036, // 0065 JMP #009D
- 0x600C0004, // 0066 GETGBL R3 G4
- 0x8810010C, // 0067 GETMBR R4 R0 K12
- 0x7C0C0200, // 0068 CALL R3 1
- 0x1C0C0718, // 0069 EQ R3 R3 K24
- 0x780E0005, // 006A JMPF R3 #0071
- 0x600C0018, // 006B GETGBL R3 G24
- 0x58100019, // 006C LDCONST R4 K25
- 0x8814010C, // 006D GETMBR R5 R0 K12
- 0x7C0C0400, // 006E CALL R3 2
- 0x00080403, // 006F ADD R2 R2 R3
- 0x7002002B, // 0070 JMP #009D
- 0x600C0004, // 0071 GETGBL R3 G4
- 0x8810010C, // 0072 GETMBR R4 R0 K12
- 0x7C0C0200, // 0073 CALL R3 1
- 0x1C0C071A, // 0074 EQ R3 R3 K26
- 0x780E0005, // 0075 JMPF R3 #007C
- 0x600C0018, // 0076 GETGBL R3 G24
- 0x5810001B, // 0077 LDCONST R4 K27
- 0x8814010C, // 0078 GETMBR R5 R0 K12
- 0x7C0C0400, // 0079 CALL R3 2
- 0x00080403, // 007A ADD R2 R2 R3
- 0x70020020, // 007B JMP #009D
- 0x600C000F, // 007C GETGBL R3 G15
- 0x8810010C, // 007D GETMBR R4 R0 K12
- 0xB8163800, // 007E GETNGBL R5 K28
- 0x7C0C0400, // 007F CALL R3 2
- 0x780E000F, // 0080 JMPF R3 #0091
- 0x880C010C, // 0081 GETMBR R3 R0 K12
- 0x8C0C071D, // 0082 GETMET R3 R3 K29
- 0x7C0C0200, // 0083 CALL R3 1
- 0x00080403, // 0084 ADD R2 R2 R3
- 0x880C010F, // 0085 GETMBR R3 R0 K15
- 0x88100110, // 0086 GETMBR R4 R0 K16
- 0x88100911, // 0087 GETMBR R4 R4 K17
- 0x280C0604, // 0088 GE R3 R3 R4
- 0x780E0005, // 0089 JMPF R3 #0090
- 0x880C010F, // 008A GETMBR R3 R0 K15
- 0x88100110, // 008B GETMBR R4 R0 K16
- 0x88100912, // 008C GETMBR R4 R4 K18
- 0x180C0604, // 008D LE R3 R3 R4
- 0x780E0000, // 008E JMPF R3 #0090
- 0x00080513, // 008F ADD R2 R2 K19
- 0x7002000B, // 0090 JMP #009D
- 0x600C0004, // 0091 GETGBL R3 G4
- 0x8810010C, // 0092 GETMBR R4 R0 K12
- 0x7C0C0200, // 0093 CALL R3 1
- 0x1C0C071E, // 0094 EQ R3 R3 K30
- 0x780E0006, // 0095 JMPF R3 #009D
- 0x600C0018, // 0096 GETGBL R3 G24
- 0x5810001F, // 0097 LDCONST R4 K31
- 0x8814010C, // 0098 GETMBR R5 R0 K12
- 0x8C140B20, // 0099 GETMET R5 R5 K32
- 0x7C140200, // 009A CALL R5 1
- 0x7C0C0400, // 009B CALL R3 2
- 0x00080403, // 009C ADD R2 R2 R3
- 0xA8040001, // 009D EXBLK 1 1
- 0x70020006, // 009E JMP #00A6
- 0xAC0C0002, // 009F CATCH R3 0 2
- 0x70020003, // 00A0 JMP #00A5
- 0x00140721, // 00A1 ADD R5 R3 K33
- 0x00140A04, // 00A2 ADD R5 R5 R4
- 0x80040A00, // 00A3 RET 1 R5
- 0x70020000, // 00A4 JMP #00A6
- 0xB0080000, // 00A5 RAISE 2 R0 R0
- 0x80040400, // 00A6 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_commonprofile
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_set_commonprofile, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(set_fulltag),
- }),
- be_str_weak(set_commonprofile),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x5411FFFE, // 0002 LDINT R4 -1
- 0x4C140000, // 0003 LDNIL R5
- 0x7C040800, // 0004 CALL R1 4
- 0x80000000, // 0005 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_TLV_item;
-be_local_closure(class_Matter_TLV_item_init, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_TLV_item,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(parent),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_TLV_item
********************************************************************/
be_local_class(Matter_TLV_item,
8,
NULL,
- be_nested_map(31,
+ be_nested_map(32,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(is_array, 17), be_const_bool(0) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_TLV_item_init_closure) },
- { be_const_key_weak(set_parent, -1), be_const_closure(class_Matter_TLV_item_set_parent_closure) },
- { be_const_key_weak(set_fulltag, -1), be_const_closure(class_Matter_TLV_item_set_fulltag_closure) },
- { be_const_key_weak(typ, -1), be_const_var(6) },
- { be_const_key_weak(parse, 30), be_const_closure(class_Matter_TLV_item_parse_closure) },
- { be_const_key_weak(parent, 22), be_const_var(0) },
- { be_const_key_weak(to_str_val, -1), be_const_closure(class_Matter_TLV_item_to_str_val_closure) },
- { be_const_key_weak(encode_len, 4), be_const_closure(class_Matter_TLV_item_encode_len_closure) },
- { be_const_key_weak(TLV, 20), be_const_class(be_class_Matter_TLV) },
- { be_const_key_weak(reset, 0), be_const_closure(class_Matter_TLV_item_reset_closure) },
- { be_const_key_weak(tag_profile, -1), be_const_var(3) },
- { be_const_key_weak(create_TLV, -1), be_const_static_closure(class_Matter_TLV_item_create_TLV_closure) },
- { be_const_key_weak(tag_sub, -1), be_const_var(5) },
- { be_const_key_weak(tag_vendor, -1), be_const_var(2) },
- { be_const_key_weak(tostring, -1), be_const_closure(class_Matter_TLV_item_tostring_closure) },
- { be_const_key_weak(val, 5), be_const_var(7) },
- { be_const_key_weak(_encode_tag, -1), be_const_closure(class_Matter_TLV_item__encode_tag_closure) },
- { be_const_key_weak(_cmp_gt, -1), be_const_closure(class_Matter_TLV_item__cmp_gt_closure) },
- { be_const_key_weak(_encode_tag_len, 25), be_const_closure(class_Matter_TLV_item__encode_tag_len_closure) },
- { be_const_key_weak(is_struct, -1), be_const_bool(0) },
- { be_const_key_weak(tlv2raw, -1), be_const_closure(class_Matter_TLV_item_tlv2raw_closure) },
- { be_const_key_weak(sort, -1), be_const_static_closure(class_Matter_TLV_item_sort_closure) },
- { be_const_key_weak(is_list, -1), be_const_bool(0) },
- { be_const_key_weak(to_TLV, 18), be_const_closure(class_Matter_TLV_item_to_TLV_closure) },
+ { be_const_key_weak(reset, -1), be_const_closure(class_Matter_TLV_item_reset_closure) },
+ { be_const_key_weak(set_or_nil, -1), be_const_closure(class_Matter_TLV_item_set_or_nil_closure) },
+ { be_const_key_weak(set_anonymoustag, 30), be_const_closure(class_Matter_TLV_item_set_anonymoustag_closure) },
{ be_const_key_weak(set, -1), be_const_closure(class_Matter_TLV_item_set_closure) },
- { be_const_key_weak(set_anonymoustag, 15), be_const_closure(class_Matter_TLV_item_set_anonymoustag_closure) },
+ { be_const_key_weak(create_TLV, -1), be_const_static_closure(class_Matter_TLV_item_create_TLV_closure) },
+ { be_const_key_weak(tostring, 22), be_const_closure(class_Matter_TLV_item_tostring_closure) },
+ { be_const_key_weak(tag_sub, -1), be_const_var(5) },
+ { be_const_key_weak(is_array, -1), be_const_bool(0) },
+ { be_const_key_weak(to_str_val, 4), be_const_closure(class_Matter_TLV_item_to_str_val_closure) },
+ { be_const_key_weak(parent, -1), be_const_var(0) },
+ { be_const_key_weak(is_list, -1), be_const_bool(0) },
+ { be_const_key_weak(is_struct, -1), be_const_bool(0) },
+ { be_const_key_weak(parse, -1), be_const_closure(class_Matter_TLV_item_parse_closure) },
+ { be_const_key_weak(set_parent, -1), be_const_closure(class_Matter_TLV_item_set_parent_closure) },
{ be_const_key_weak(set_commonprofile, -1), be_const_closure(class_Matter_TLV_item_set_commonprofile_closure) },
+ { be_const_key_weak(_encode_tag, -1), be_const_closure(class_Matter_TLV_item__encode_tag_closure) },
+ { be_const_key_weak(TLV, -1), be_const_class(be_class_Matter_TLV) },
+ { be_const_key_weak(sort, 25), be_const_static_closure(class_Matter_TLV_item_sort_closure) },
+ { be_const_key_weak(tag_vendor, -1), be_const_var(2) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_TLV_item_init_closure) },
+ { be_const_key_weak(_cmp_gt, -1), be_const_closure(class_Matter_TLV_item__cmp_gt_closure) },
{ be_const_key_weak(tag_number, -1), be_const_var(4) },
- { be_const_key_weak(next_idx, 1), be_const_var(1) },
+ { be_const_key_weak(tlv2raw, -1), be_const_closure(class_Matter_TLV_item_tlv2raw_closure) },
+ { be_const_key_weak(_encode_tag_len, -1), be_const_closure(class_Matter_TLV_item__encode_tag_len_closure) },
+ { be_const_key_weak(next_idx, -1), be_const_var(1) },
+ { be_const_key_weak(tag_profile, 16), be_const_var(3) },
+ { be_const_key_weak(typ, -1), be_const_var(6) },
{ be_const_key_weak(set_contextspecific, -1), be_const_closure(class_Matter_TLV_item_set_contextspecific_closure) },
+ { be_const_key_weak(val, 13), be_const_var(7) },
+ { be_const_key_weak(to_TLV, 9), be_const_closure(class_Matter_TLV_item_to_TLV_closure) },
+ { be_const_key_weak(set_fulltag, -1), be_const_closure(class_Matter_TLV_item_set_fulltag_closure) },
+ { be_const_key_weak(encode_len, 2), be_const_closure(class_Matter_TLV_item_encode_len_closure) },
})),
be_str_weak(Matter_TLV_item)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index 8bae5ab68..4ed01b4c6 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -3419,7 +3419,7 @@ be_local_class(Matter_UI,
{ be_const_key_weak(show_commissioning_info, -1), be_const_closure(class_Matter_UI_show_commissioning_info_closure) },
{ be_const_key_weak(page_part_ctl, 18), be_const_closure(class_Matter_UI_page_part_ctl_closure) },
{ be_const_key_weak(show_fabric_info, -1), be_const_closure(class_Matter_UI_show_fabric_info_closure) },
- { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Cwaterleak_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_waterleak) },
+ { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_waterleak_X7Cv_airquality) },
{ be_const_key_weak(web_get_arg, -1), be_const_closure(class_Matter_UI_web_get_arg_closure) },
{ be_const_key_weak(plugin_option, 5), be_const_closure(class_Matter_UI_plugin_option_closure) },
{ be_const_key_weak(web_add_config_button, -1), be_const_closure(class_Matter_UI_web_add_config_button_closure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index 3a49183ff..b1ad4546f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -6284,52 +6284,55 @@ be_local_class(Matter_Device,
{ be_const_key_weak(stop, 14), be_const_closure(class_Matter_Device_stop_closure) },
{ be_const_key_weak(stop_basic_commissioning, 13), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
{ be_const_key_weak(plugins_classes, 10), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(44,
+ be_const_map( * be_nested_map(47,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(humidity, 37), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
- { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
- { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
- { be_const_key_weak(http_flow, 25), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
- { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
- { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
- { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
- { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
- { be_const_key_weak(illuminance, 22), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(v_light3, 33), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
- { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(v_light1, 14), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
- { be_const_key_weak(http_occupancy, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(http_illuminance, 12), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
- { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
- { be_const_key_weak(light2, -1), be_const_class(be_class_Matter_Plugin_Light2) },
- { be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
+ { be_const_key_weak(v_waterleak, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
{ be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
- { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
+ { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
+ { be_const_key_weak(humidity, 17), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
+ { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
{ be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
- { be_const_key_weak(shutter, 28), be_const_class(be_class_Matter_Plugin_Shutter) },
- { be_const_key_weak(http_light0, 24), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
- { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
- { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(v_contact, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(root, 7), be_const_class(be_class_Matter_Plugin_Root) },
- { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
- { be_const_key_weak(v_illuminance, 8), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(v_light2, 26), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_light0, 4), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
- { be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
- { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
- { be_const_key_weak(shutter_X2Btilt, 43), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
- { be_const_key_weak(http_waterleak, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(http_relay, 16), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
- { be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
- { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
{ be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
+ { be_const_key_weak(airquality, -1), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
+ { be_const_key_weak(http_flow, 36), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
+ { be_const_key_weak(v_illuminance, 24), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
+ { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(http_light1, 26), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(http_light0, 6), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
+ { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
+ { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
+ { be_const_key_weak(contact, 10), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
+ { be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
+ { be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
+ { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
+ { be_const_key_weak(http_illuminance, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
+ { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
+ { be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
+ { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
+ { be_const_key_weak(flow, 34), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
+ { be_const_key_weak(shutter, 5), be_const_class(be_class_Matter_Plugin_Shutter) },
+ { be_const_key_weak(v_pressure, 2), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
+ { be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
+ { be_const_key_weak(v_light2, 39), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
+ { be_const_key_weak(v_airquality, 42), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(light2, 3), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
+ { be_const_key_weak(illuminance, 40), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
+ { be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
+ { be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
+ { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(http_waterleak, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
+ { be_const_key_weak(http_occupancy, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
+ { be_const_key_weak(root, 29), be_const_class(be_class_Matter_Plugin_Root) },
})) ) } )) },
{ be_const_key_weak(tick, 9), be_const_var(10) },
{ be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(17) },
From 01f9097acb08ae5b051321905e7cc3790984adaa Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Mon, 3 Jun 2024 22:53:13 +0200
Subject: [PATCH 004/252] Add default value for `SetOption151` (#21560)
---
tasmota/my_user_config.h | 7 +++++++
tasmota/tasmota_support/settings.ino | 3 +++
2 files changed, 10 insertions(+)
diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h
index 8bc62baae..3692c6715 100644
--- a/tasmota/my_user_config.h
+++ b/tasmota/my_user_config.h
@@ -1014,6 +1014,9 @@
#define USE_ZIGBEE_MAXTIME_LIGHT 60*60 // 1h
#define USE_ZIGBEE_MAXTIME_LIFT 4*60*60 // 4h
+// -- Matter support (ESP32 and variants) ----------------------------
+#define MATTER_ENABLED false // Is Matter enabled by default (ie `SO151 1`)
+
// -- Other sensors/drivers -----------------------
//#define USE_SHIFT595 // Add support for 74xx595 8-bit shift registers (+0k7 code)
@@ -1239,6 +1242,10 @@
// #define BE_LV_WIDGET_TABVIEW
// #define BE_LV_WIDGET_TILEVIEW
+// -- Matter protocol ---------------------------------
+ // #define USE_MATTER_DEVICE // Enable Matter device support (+420KB)
+ // Enabled by default in standard ESP32 binary
+
#endif // ESP32
/*********************************************************************************************\
diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino
index 24dc0d636..ca13e46a1 100644
--- a/tasmota/tasmota_support/settings.ino
+++ b/tasmota/tasmota_support/settings.ino
@@ -1425,6 +1425,9 @@ void SettingsDefaultSet2(void) {
#endif
#endif // FIRMWARE_MINIMAL
+ // Matter
+ flag6.matter_enabled |= MATTER_ENABLED;
+
Settings->flag = flag;
Settings->flag2 = flag2;
Settings->flag3 = flag3;
From 7d87bf0dcc261ca4194b8e5103a7dbbfe38bb93a Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 4 Jun 2024 09:37:02 +0200
Subject: [PATCH 005/252] Update changelogs
---
CHANGELOG.md | 4 ++--
RELEASENOTES.md | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7cbe99336..7517f6d26 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,8 +5,8 @@ All notable changes to this project will be documented in this file.
## [14.1.0.1]
### Added
-- Berry solidification of `bytes` instances
-- Matter support for Air Quality sensors
+- Berry solidification of `bytes` instances (#21558)
+- Matter support for Air Quality sensors (#21559)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 01031a582..0a917c20e 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -121,6 +121,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
## Changelog v14.1.0.1
### Added
+- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
+- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
### Changed
From dcc70213842e67efa8dadaed96dbdc9036055bb4 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 4 Jun 2024 14:19:11 +0200
Subject: [PATCH 006/252] Remove GPIO_I2S_BCLK_IN, GPIO_I2S_WS_IN
---
tasmota/include/tasmota_template.h | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h
index 78343eb5a..b1a9ee913 100644
--- a/tasmota/include/tasmota_template.h
+++ b/tasmota/include/tasmota_template.h
@@ -166,8 +166,8 @@ enum UserSelectablePins {
#ifdef ESP32
GPIO_KEY1_PD, GPIO_KEY1_INV_PD, GPIO_SWT1_PD,
#endif
- GPIO_I2S_DOUT, GPIO_I2S_BCLK, GPIO_I2S_WS,
- GPIO_I2S_DIN, GPIO_I2S_BCLK_IN, GPIO_I2S_WS_IN,
+ GPIO_I2S_DOUT, GPIO_I2S_BCLK, GPIO_I2S_WS, GPIO_I2S_DIN,
+ GPIO_I2S_BCLK_IN, GPIO_I2S_WS_IN, // Spare since 20240603
GPIO_INTERRUPT,
GPIO_MCP2515_CS, // MCP2515 Chip Select
GPIO_HRG15_TX, GPIO_HRG15_RX, // Hydreon RG-15 rain sensor serial interface
@@ -429,8 +429,8 @@ const char kSensorNames[] PROGMEM =
#ifdef ESP32
D_SENSOR_BUTTON "_d|" D_SENSOR_BUTTON "_id|" D_SENSOR_SWITCH "_d|"
#endif
- D_SENSOR_I2S_DOUT "|" D_SENSOR_I2S_BCLK "|" D_SENSOR_I2S_WS "|"
- D_SENSOR_I2S_DIN "|" D_SENSOR_I2S_BCLK_IN "|" D_SENSOR_I2S_WS_IN "|"
+ D_SENSOR_I2S_DOUT "|" D_SENSOR_I2S_BCLK "|" D_SENSOR_I2S_WS "|" D_SENSOR_I2S_DIN "|"
+ D_SENSOR_I2S_BCLK_IN "|" D_SENSOR_I2S_WS_IN "|"
D_SENSOR_INTERRUPT "|"
D_SENSOR_MCP2515_CS "|"
D_SENSOR_HRG15_TX "|" D_SENSOR_HRG15_RX "|"
@@ -600,10 +600,6 @@ const uint16_t kGpioNiceList[] PROGMEM = {
AGPIO(GPIO_I2S_WS) + MAX_I2S, // I2S word select
AGPIO(GPIO_I2S_DIN) + MAX_I2S, // I2S IN Data
#endif
-#ifdef USE_I2S
- AGPIO(GPIO_I2S_BCLK_IN) + MAX_I2S, // I2S bit clock in
- AGPIO(GPIO_I2S_WS_IN) + MAX_I2S, // I2S word select in
-#endif
#ifdef USE_SPI
AGPIO(GPIO_SPI_MISO) + MAX_SPI, // SPI MISO
From 7ae86d336b63493e76f5e31e3670cecf13771a02 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 4 Jun 2024 16:45:08 +0200
Subject: [PATCH 007/252] add uTouch settings
---
tasmota/displaydesc/Lanbon_L8_display.ini | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tasmota/displaydesc/Lanbon_L8_display.ini b/tasmota/displaydesc/Lanbon_L8_display.ini
index 23ffc0f07..b1f66f350 100644
--- a/tasmota/displaydesc/Lanbon_L8_display.ini
+++ b/tasmota/displaydesc/Lanbon_L8_display.ini
@@ -18,5 +18,19 @@
:2,00,00,00,02
:3,60,00,00,03
:i,20,21
-:TI1,38,0,4
+:UTI,FT6336U,I1,38,*,*
+RD A0
+CP 02
+RTF
+RT
+:UTT
+RDM 00 16
+MV 2 1
+RT
+:UTX
+MV 3 2
+RT
+:UTY
+MV 5 2
+RT
#
From 89b4376e3160b304924802de76cd057827f15a64 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 4 Jun 2024 17:03:05 +0200
Subject: [PATCH 008/252] uTouch for m5core2
---
tasmota/displaydesc/M5stack_core2_display.ini | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tasmota/displaydesc/M5stack_core2_display.ini b/tasmota/displaydesc/M5stack_core2_display.ini
index 9426de46b..216e8b76d 100644
--- a/tasmota/displaydesc/M5stack_core2_display.ini
+++ b/tasmota/displaydesc/M5stack_core2_display.ini
@@ -34,5 +34,19 @@ E1,0F,00,0E,14,03,11,07,31,C1,48,08,0F,0C,31,36,0F
:2,C8,00,00,02
:3,68,00,00,85
:i,21,20
-:TI2,38,22,21
+:UTI,FT6336U,I2,38,22,21
+RD A0
+CP 02
+RTF
+RT
+:UTT
+RDM 00 16
+MV 2 1
+RT
+:UTX
+MV 3 2
+RT
+:UTY
+MV 5 2
+RT
#
From 9e168d84d7e172f5f4b6d0497f4f12ad8c63ff28 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Tue, 4 Jun 2024 23:30:01 +0200
Subject: [PATCH 009/252] Berry `input()` returns empty string and does not
crash (#21565)
---
CHANGELOG.md | 1 +
lib/libesp32/berry_tasmota/src/be_port.cpp | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7517f6d26..88c52a8ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file.
### Changed
### Fixed
+- Berry `input()` returns empty string and does not crash
### Removed
diff --git a/lib/libesp32/berry_tasmota/src/be_port.cpp b/lib/libesp32/berry_tasmota/src/be_port.cpp
index 0c70bf61c..db40e153f 100644
--- a/lib/libesp32/berry_tasmota/src/be_port.cpp
+++ b/lib/libesp32/berry_tasmota/src/be_port.cpp
@@ -216,7 +216,10 @@ extern "C" {
BERRY_API char* be_readstring(char *buffer, size_t size)
{
- return be_fgets(stdin, buffer, (int)size);
+ if ((size > 0) && (buffer != NULL)) {
+ *buffer = 0;
+ }
+ return buffer;
}
/* use the standard library implementation file API. */
From f3fa9dfd9bb175414e42bc1148f9210c1b25d6b2 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Wed, 5 Jun 2024 12:53:13 +0200
Subject: [PATCH 010/252] Update M5stack_core2_display.ini
---
tasmota/displaydesc/M5stack_core2_display.ini | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tasmota/displaydesc/M5stack_core2_display.ini b/tasmota/displaydesc/M5stack_core2_display.ini
index 216e8b76d..b0b0b82d2 100644
--- a/tasmota/displaydesc/M5stack_core2_display.ini
+++ b/tasmota/displaydesc/M5stack_core2_display.ini
@@ -34,7 +34,7 @@ E1,0F,00,0E,14,03,11,07,31,C1,48,08,0F,0C,31,36,0F
:2,C8,00,00,02
:3,68,00,00,85
:i,21,20
-:UTI,FT6336U,I2,38,22,21
+:UTI,FT6336U,I2,38,-1,-1
RD A0
CP 02
RTF
From e198ffb22df695c4bcdc948b81133ccb7fe4ea88 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Wed, 5 Jun 2024 15:07:38 +0200
Subject: [PATCH 011/252] Tasmota esp32 platform 2024.06.10 (#21569)
---
platformio_tasmota32.ini | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/platformio_tasmota32.ini b/platformio_tasmota32.ini
index b90c3aaa8..23eed748f 100644
--- a/platformio_tasmota32.ini
+++ b/platformio_tasmota32.ini
@@ -81,7 +81,7 @@ lib_ignore = ${esp32_defaults.lib_ignore}
ccronexpr
[core32]
-platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.05.13/platform-espressif32.zip
+platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.10/platform-espressif32.zip
platform_packages =
build_unflags = ${esp32_defaults.build_unflags}
build_flags = ${esp32_defaults.build_flags}
From 0bcb9815566edd0e9848bdf1bc7f5771d9942c98 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Wed, 5 Jun 2024 23:13:48 +0200
Subject: [PATCH 012/252] Matter refactoring of bridged devices (#21575)
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 36 +-
.../src/embedded/Matter_HTTP_remote.be | 77 +-
.../src/embedded/Matter_Plugin_0.be | 5 +-
.../src/embedded/Matter_Plugin_1_Device.be | 227 +-
.../embedded/Matter_Plugin_2_Bridge_HTTP.be | 296 ---
...n_2_OnOff.be => Matter_Plugin_2_Light0.be} | 101 +-
.../src/embedded/Matter_Plugin_2_Light1.be | 136 +-
.../src/embedded/Matter_Plugin_2_Sensor.be | 59 +
.../Matter_Plugin_2_Sensor_Contact.be | 43 +-
.../Matter_Plugin_2_Sensor_Occupancy.be | 44 +-
.../embedded/Matter_Plugin_2_Sensor_OnOff.be | 2 +-
.../Matter_Plugin_2_Sensor_Waterleak.be | 50 +-
.../embedded/Matter_Plugin_3_Bridge_Light0.be | 156 --
.../embedded/Matter_Plugin_3_Bridge_Sensor.be | 122 -
.../Matter_Plugin_3_Bridge_Sensor_Contact.be | 110 -
...Matter_Plugin_3_Bridge_Sensor_Occupancy.be | 114 -
...Matter_Plugin_3_Bridge_Sensor_Waterleak.be | 110 -
.../src/embedded/Matter_Plugin_3_Light2.be | 72 +-
.../src/embedded/Matter_Plugin_3_Light3.be | 91 +-
...n_3_Light0.be => Matter_Plugin_3_OnOff.be} | 18 +-
.../embedded/Matter_Plugin_3_Sensor_Flow.be | 15 +
.../Matter_Plugin_3_Sensor_Humidity.be | 16 +
.../Matter_Plugin_3_Sensor_Illuminance.be | 16 +
.../Matter_Plugin_3_Sensor_Pressure.be | 16 +
.../embedded/Matter_Plugin_3_Sensor_Temp.be | 30 +-
.../embedded/Matter_Plugin_4_Bridge_Light1.be | 184 --
.../Matter_Plugin_4_Bridge_Sensor_Flow.be | 70 -
.../Matter_Plugin_4_Bridge_Sensor_Humidity.be | 70 -
...tter_Plugin_4_Bridge_Sensor_Illuminance.be | 77 -
.../Matter_Plugin_4_Bridge_Sensor_Pressure.be | 70 -
.../Matter_Plugin_4_Bridge_Sensor_Temp.be | 73 -
.../embedded/Matter_Plugin_5_Bridge_Light2.be | 155 --
.../embedded/Matter_Plugin_5_Bridge_Light3.be | 176 --
.../embedded/Matter_Plugin_8_Bridge_Light0.be | 32 +
.../embedded/Matter_Plugin_8_Bridge_Light1.be | 34 +
.../embedded/Matter_Plugin_8_Bridge_Light2.be | 34 +
.../embedded/Matter_Plugin_8_Bridge_Light3.be | 34 +
...Off.be => Matter_Plugin_8_Bridge_OnOff.be} | 0
...ter_Plugin_8_Bridge_Sensor_Air_Quality.be} | 79 +-
.../Matter_Plugin_8_Bridge_Sensor_Contact.be | 36 +
.../Matter_Plugin_8_Bridge_Sensor_Flow.be | 30 +
.../Matter_Plugin_8_Bridge_Sensor_Humidity.be | 30 +
...tter_Plugin_8_Bridge_Sensor_Illuminance.be | 30 +
...Matter_Plugin_8_Bridge_Sensor_Occupancy.be | 36 +
.../Matter_Plugin_8_Bridge_Sensor_Pressure.be | 30 +
.../Matter_Plugin_8_Bridge_Sensor_Temp.be | 30 +
...Matter_Plugin_8_Bridge_Sensor_Waterleak.be | 32 +
.../embedded/Matter_Plugin_9_Virt_Light0.be | 1 -
.../embedded/Matter_Plugin_9_Virt_Light1.be | 1 -
.../embedded/Matter_Plugin_9_Virt_Light2.be | 1 -
.../embedded/Matter_Plugin_9_Virt_Light3.be | 1 -
.../embedded/Matter_Plugin_9_Virt_OnOff.be | 1 -
...Matter_Plugin_9_Virt_Sensor_Air_Quality.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Contact.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Flow.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Humidity.be | 1 -
...Matter_Plugin_9_Virt_Sensor_Illuminance.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Occupancy.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Pressure.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Temp.be | 1 -
.../Matter_Plugin_9_Virt_Sensor_Waterleak.be | 1 -
.../berry_matter/src/embedded/Matter_UI.be | 26 +-
.../solidify/solidified_Matter_HTTP_remote.h | 1538 ++++++------
.../src/solidify/solidified_Matter_Plugin_0.h | 2068 +++++++++--------
.../solidified_Matter_Plugin_1_Device.h | 1237 ++++++++--
.../solidified_Matter_Plugin_2_Bridge_HTTP.h | 934 --------
....h => solidified_Matter_Plugin_2_Light0.h} | 855 ++++---
.../solidified_Matter_Plugin_2_Light1.h | 1332 ++++++-----
.../solidified_Matter_Plugin_2_Sensor.h | 591 +++--
...olidified_Matter_Plugin_2_Sensor_Contact.h | 581 +++--
...idified_Matter_Plugin_2_Sensor_Occupancy.h | 681 +++---
.../solidified_Matter_Plugin_2_Sensor_OnOff.h | 2 +-
...idified_Matter_Plugin_2_Sensor_Waterleak.h | 450 ++--
...solidified_Matter_Plugin_3_Bridge_Light0.h | 574 -----
...solidified_Matter_Plugin_3_Bridge_Sensor.h | 315 ---
...atter_Plugin_3_Bridge_Sensor_Air_Quality.h | 404 ----
...ed_Matter_Plugin_3_Bridge_Sensor_Contact.h | 431 ----
..._Matter_Plugin_3_Bridge_Sensor_Occupancy.h | 452 ----
..._Matter_Plugin_3_Bridge_Sensor_Waterleak.h | 431 ----
.../solidified_Matter_Plugin_3_Light2.h | 789 ++++---
.../solidified_Matter_Plugin_3_Light3.h | 790 +++++--
...0.h => solidified_Matter_Plugin_3_OnOff.h} | 20 +-
.../solidified_Matter_Plugin_3_Sensor_Flow.h | 57 +-
...lidified_Matter_Plugin_3_Sensor_Humidity.h | 65 +-
...ified_Matter_Plugin_3_Sensor_Illuminance.h | 57 +-
...lidified_Matter_Plugin_3_Sensor_Pressure.h | 57 +-
.../solidified_Matter_Plugin_3_Sensor_Temp.h | 110 +-
...solidified_Matter_Plugin_4_Bridge_Light1.h | 648 ------
...ified_Matter_Plugin_4_Bridge_Sensor_Flow.h | 229 --
...d_Matter_Plugin_4_Bridge_Sensor_Humidity.h | 237 --
...atter_Plugin_4_Bridge_Sensor_Illuminance.h | 241 --
...d_Matter_Plugin_4_Bridge_Sensor_Pressure.h | 228 --
...ified_Matter_Plugin_4_Bridge_Sensor_Temp.h | 249 --
...solidified_Matter_Plugin_5_Bridge_Light2.h | 550 -----
...solidified_Matter_Plugin_5_Bridge_Light3.h | 699 ------
...solidified_Matter_Plugin_8_Bridge_Light0.h | 25 +
...solidified_Matter_Plugin_8_Bridge_Light1.h | 54 +
...solidified_Matter_Plugin_8_Bridge_Light2.h | 54 +
...solidified_Matter_Plugin_8_Bridge_Light3.h | 54 +
...solidified_Matter_Plugin_8_Bridge_OnOff.h} | 2 +-
...atter_Plugin_8_Bridge_Sensor_Air_Quality.h | 167 ++
...ed_Matter_Plugin_8_Bridge_Sensor_Contact.h | 26 +
...ified_Matter_Plugin_8_Bridge_Sensor_Flow.h | 24 +
...d_Matter_Plugin_8_Bridge_Sensor_Humidity.h | 24 +
...atter_Plugin_8_Bridge_Sensor_Illuminance.h | 24 +
..._Matter_Plugin_8_Bridge_Sensor_Occupancy.h | 26 +
...d_Matter_Plugin_8_Bridge_Sensor_Pressure.h | 24 +
...ified_Matter_Plugin_8_Bridge_Sensor_Temp.h | 24 +
..._Matter_Plugin_8_Bridge_Sensor_Waterleak.h | 26 +
.../src/solidify/solidified_Matter_UI.h | 230 +-
.../solidify/solidified_Matter_zz_Device.h | 22 +-
112 files changed, 8951 insertions(+), 13102 deletions(-)
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Bridge_HTTP.be
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_OnOff.be => Matter_Plugin_2_Light0.be} (61%)
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Light0.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Contact.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Occupancy.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Waterleak.be
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_3_Light0.be => Matter_Plugin_3_OnOff.be} (69%)
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Light1.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light0.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light1.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light2.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light3.be
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_4_Bridge_OnOff.be => Matter_Plugin_8_Bridge_OnOff.be} (100%)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_3_Bridge_Sensor_Air_Quality.be => Matter_Plugin_8_Bridge_Sensor_Air_Quality.be} (55%)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Contact.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Flow.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Humidity.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Illuminance.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Occupancy.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Pressure.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Temp.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Waterleak.be
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_2_OnOff.h => solidified_Matter_Plugin_2_Light0.h} (54%)
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Light0.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_3_Light0.h => solidified_Matter_Plugin_3_OnOff.h} (73%)
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Light1.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light0.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light1.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light2.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light3.h
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_4_Bridge_OnOff.h => solidified_Matter_Plugin_8_Bridge_OnOff.h} (98%)
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Humidity.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Illuminance.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Occupancy.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Pressure.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Temp.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 88c52a8ba..e1561c8fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
### Breaking Changed
### Changed
+- Matter refactoring of bridged devices
### Fixed
- Berry `input()` returns empty string and does not crash
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index c87cb24ee..38659c774 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -227,11 +227,11 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_1_Root.h"
#include "solidify/solidified_Matter_Plugin_1_Aggregator.h"
#include "solidify/solidified_Matter_Plugin_1_Device.h"
-#include "solidify/solidified_Matter_Plugin_2_OnOff.h"
+#include "solidify/solidified_Matter_Plugin_3_OnOff.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_OnOff.h"
#include "solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h"
-#include "solidify/solidified_Matter_Plugin_3_Light0.h"
+#include "solidify/solidified_Matter_Plugin_2_Light0.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light0.h"
#include "solidify/solidified_Matter_Plugin_2_Light1.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light1.h"
@@ -259,22 +259,20 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h"
-#include "solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_OnOff.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Light0.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Light1.h"
-#include "solidify/solidified_Matter_Plugin_5_Bridge_Light2.h"
-#include "solidify/solidified_Matter_Plugin_5_Bridge_Light3.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h"
-#include "solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h"
-#include "solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_OnOff.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Light0.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Light1.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Light2.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Light3.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Pressure.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Temp.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Illuminance.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Humidity.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Occupancy.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_z_All.h"
#include "solidify/solidified_Matter_zz_Device.h"
@@ -462,7 +460,7 @@ module matter (scope: global, strings: weak) {
// Plugins - only the core classes, all others are taken from `matter_device.plugins_classes`
Plugin_Root, class(be_class_Matter_Plugin_Root) // Generic behavior common to all devices
Plugin_Aggregator, class(be_class_Matter_Plugin_Aggregator) // Aggregator
- Plugin_Bridge_HTTP, class(be_class_Matter_Plugin_Bridge_HTTP) // HTTP bridge superclass
+ Plugin_Device, class(be_class_Matter_Plugin_Device) // Device
}
@const_object_info_end */
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be b/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
index b466dc83d..854fb820a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
@@ -49,6 +49,23 @@ class Matter_HTTP_remote : Matter_HTTP_async
# `nil` if current request is synchronous
var reachable # is the device reachable
var reachable_utc # last tick when the reachability was seen (avoids sending superfluous ping commands)
+
+ static var STATUS_PREFIX = [
+ "Status", # 0
+ "StatusPRM", # 1
+ "StatusFWR", # 2
+ "StatusLOG", # 3
+ "StatusMEM", # 4
+ "StatusNET", # 5
+ "StatusMQT", # 6
+ "StatusTIM", # 7
+ nil, # 8 is deprecated and synonym of 10
+ "StatusPTH", # 9
+ "StatusSNS", # 10
+ "StatusSTS", # 11
+ "StatusSTK", # 12
+ "StatusSHT" # 13
+ ]
# information gathered about the remote device (name, version...)
static var UPDATE_TIME = 5000 # update every 5s until first response
@@ -73,9 +90,9 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.info = {}
if self.device
# we need different callbacks per command (don't create a single one for both calls)
- self.add_schedule(self.UPDATE_CMD0, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
- self.add_schedule(self.UPDATE_CMD2, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
- self.add_schedule(self.UPDATE_CMD5, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
+ self.add_schedule(self.UPDATE_CMD0, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response_and_call_method(status,payload,cmd,self,self.parse_status_http))
+ self.add_schedule(self.UPDATE_CMD2, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response_and_call_method(status,payload,cmd,self,self.parse_status_http))
+ self.add_schedule(self.UPDATE_CMD5, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response_and_call_method(status,payload,cmd,self,self.parse_status_http))
end
end
@@ -87,28 +104,40 @@ class Matter_HTTP_remote : Matter_HTTP_async
#############################################################
# parse response for `Status` and `Status 2`
- def parse_status_response(status, payload, cmd)
+ #
+ # Payload can be a string (unparsed) or a map
+ def parse_status_response_and_call_method(status, payload, cmd, obj, method)
if status != nil && status > 0
# device is known to be reachable
self.device_is_alive(true)
- import json
- var j = json.load(payload)
- var code = nil # index of Status
- if j
- # filter
- if j.contains("Status") # Status 0 (actually `Status` wihtout any number)
- j = j["Status"]
- code = 0
- elif j.contains("StatusFWR") # Status 2
- j = j["StatusFWR"]
- code = 2
- elif j.contains("StatusNET") # Status 5
- j = j["StatusNET"]
- code = 5
+ var j = payload
+ if type(j) == 'string'
+ import json
+ j = json.load(j)
+ end
+ var code = nil # index of Status, nil of none
+ if j != nil
+
+ # detect any Status prefix and compute Status
+ var i = 0
+ var prefix_tab = self.STATUS_PREFIX # move to local variable to avoid many dereferencing
+ while i < size(prefix_tab)
+ var status_prefix = prefix_tab[i]
+ if status_prefix != nil
+ if j.contains(status_prefix)
+ j = j[status_prefix]
+ code = i
+ break
+ end
+ end
+ i = i + 1
end
- # convert to shadow values
- self.parse_update(j, code) # call parser
+
+ # dispatch to method in charge of converting to shadow values
+ method(obj, j, code)
+ else
+ tasmota.log(f"MTR: *** failed to parse JSON response {payload=}", 3)
end
end
end
@@ -116,8 +145,8 @@ class Matter_HTTP_remote : Matter_HTTP_async
#############################################################
# Stub for updating shadow values (local copies of what we published to the Matter gateway)
#
- # This call is synnchronous and blocking.
- def parse_update(data, index)
+ # This call is synchronous and blocking.
+ def parse_status_http(data, index)
var changed = false
if index == 0 # Status
var device_name = data.find("DeviceName") # we consider 'Tasmota' as the non-information default
@@ -254,7 +283,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = cmd
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
- tasmota.log(format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3)
+ tasmota.log(format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
var ret = self.begin(cmd_url)
end
@@ -273,7 +302,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = nil
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
- tasmota.log(format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3)
+ tasmota.log(format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
var ret = super(self).begin_sync(cmd_url, timeout)
var payload_short = (ret) ? ret : 'nil'
if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 8f89f7d3f..28716b38a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -34,6 +34,7 @@ class Matter_Plugin
# Behavior of the plugin, frequency at which `update_shadow()` is called
static var UPDATE_TIME = 5000 # default is every 5 seconds
static var VIRTUAL = false # set to true only for virtual devices
+ static var BRIDGE = false # set to true only for bridged devices (ESP8266 or OpenBK)
var update_next # next timestamp for update
# Configuration of the plugin: clusters and type
static var CLUSTERS = matter.consolidate_clusters(_class, {
@@ -143,14 +144,14 @@ class Matter_Plugin
# Returns true if it's a local device, or false for a
# remotely device controlled via HTTP
def is_local_device()
- return true
+ return !(self.BRIDGE)
end
#############################################################
# Stub for updating shadow values (local copies of what we published to the Matter gateway)
#
# This method should collect the data from the local or remote device
- # and call `parse_update()` when data is available.
+ # and call `parse_status()` when data is available.
#
# TO BE OVERRIDDEN
# This call is synnchronous and blocking.
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
index 94d0145bf..8efaad8b7 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
@@ -19,9 +19,23 @@
import matter
+#@ solidify:Matter_Plugin_Device.GetOptionReader,weak
#@ solidify:Matter_Plugin_Device,weak
class Matter_Plugin_Device : Matter_Plugin
+ # Following arguments are specific to bridge devices
+ # static var TYPE = "" # name of the plug-in in json
+ # static var DISPLAY_NAME = "" # display name of the plug-in
+ # static var ARG = "" # additional argument name (or empty if none)
+ static var ARG_HTTP = "url" # domain name
+ # static var UPDATE_TIME = 3000 # update every 3s
+ static var UPDATE_CMD = "Status 11" # command to send for updates
+ static var PROBE_TIMEOUT = 1700 # timeout of 1800 ms for probing, which gives at least 1s for TCP recovery
+ static var SYNC_TIMEOUT = 500 # timeout of 700 ms for probing
+
+ var http_remote # instance of Matter_HTTP_remote
+
+ # clusters for general devices
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
0x0039: [3,5,0x0A,0x0F,0x11,0x12], # Bridged Device Basic Information 9.13 p.485
@@ -38,6 +52,18 @@ class Matter_Plugin_Device : Matter_Plugin
# var tick # tick value when it was last updated
# var node_label # name of the endpoint, used only in bridge mode, "" if none
+ #############################################################
+ # Constructor
+ def init(device, endpoint, arguments)
+ super(self).init(device, endpoint, arguments)
+
+ if self.BRIDGE
+ var addr = arguments.find(self.ARG_HTTP)
+ self.http_remote = self.device.register_http_remote(addr, self.PROBE_TIMEOUT)
+ self.register_cmd_cb()
+ end
+ end
+
#############################################################
# read an attribute
#
@@ -86,24 +112,55 @@ class Matter_Plugin_Device : Matter_Plugin
end
# ====================================================================================================
- elif cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
+ elif cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
import string
if attribute == 0x0003 # ---------- ProductName / string ----------
- return tlv_solo.set(TLV.UTF1, tasmota.cmd("DeviceName", true)['DeviceName'])
+ if self.BRIDGE
+ var name = self.http_remote.get_info().find("name")
+ if name
+ return tlv_solo.set(TLV.UTF1, name)
+ else
+ return tlv_solo.set(TLV.NULL, nil)
+ end
+ else
+ return tlv_solo.set(TLV.UTF1, tasmota.cmd("DeviceName", true)['DeviceName'])
+ end
elif attribute == 0x0005 # ---------- NodeLabel / string ----------
return tlv_solo.set(TLV.UTF1, self.get_name())
elif attribute == 0x000A # ---------- SoftwareVersionString / string ----------
- var version_full = tasmota.cmd("Status 2", true)['StatusFWR']['Version']
- var version_end = string.find(version_full, '(')
- if version_end > 0 version_full = version_full[0..version_end - 1] end
- return tlv_solo.set(TLV.UTF1, version_full)
- elif attribute == 0x000F # ---------- SerialNumber / string ----------
- return tlv_solo.set(TLV.UTF1, tasmota.wifi().find("mac", ""))
+ if self.BRIDGE
+ var version_full = self.http_remote.get_info().find("version")
+ if version_full
+ var version_end = string.find(version_full, '(')
+ if version_end > 0 version_full = version_full[0..version_end - 1] end
+ return tlv_solo.set(TLV.UTF1, version_full)
+ else
+ return tlv_solo.set(TLV.NULL, nil)
+ end
+ else
+ var version_full = tasmota.cmd("Status 2", true)['StatusFWR']['Version']
+ var version_end = string.find(version_full, '(')
+ if version_end > 0 version_full = version_full[0..version_end - 1] end
+ return tlv_solo.set(TLV.UTF1, version_full)
+ end
+ elif attribute == 0x000F || attribute == 0x0012 # ---------- SerialNumber / string ----------
+ if self.BRIDGE
+ var mac = self.http_remote.get_info().find("mac")
+ if mac
+ return tlv_solo.set(TLV.UTF1, mac)
+ else
+ return tlv_solo.set(TLV.NULL, nil)
+ end
+ else
+ return tlv_solo.set(TLV.UTF1, tasmota.wifi().find("mac", ""))
+ end
elif attribute == 0x0011 # ---------- Reachable / bool ----------
- return tlv_solo.set(TLV.BOOL, 1) # by default we are reachable
- elif attribute == 0x0012 # ---------- UniqueID / string 32 max ----------
- return tlv_solo.set(TLV.UTF1, tasmota.wifi().find("mac", ""))
+ if self.BRIDGE
+ return tlv_solo.set(TLV.BOOL, self.http_remote.reachable) # TODO find a way to do a ping
+ else
+ return tlv_solo.set(TLV.BOOL, 1) # by default we are reachable
+ end
end
end
@@ -213,6 +270,154 @@ class Matter_Plugin_Device : Matter_Plugin
return ret
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # register_cmd_cb
+ #
+ # Register recurrent command and callback
+ # Defined as a separate method to allow override
+ def register_cmd_cb()
+ self.http_remote.add_schedule(self.UPDATE_CMD, self.UPDATE_TIME,
+ / status,payload,cmd -> self.parse_http_response(status,payload,cmd))
+ end
+
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This method should collect the data from the local or remote device
+ # and call `parse_status(, )` when data is available.
+ def update_shadow()
+ if self.BRIDGE && self.tick != self.device.tick # don't force an update if we just received it
+ var ret = self.call_remote_sync(self.UPDATE_CMD)
+ if ret
+ self.parse_http_response(1, ret, self.UPDATE_CMD)
+ end
+ end
+ self.tick = self.device.tick
+ end
+
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # TO BE OVERRIDDEN
+ def parse_status(data, index)
+ end
+
+ #############################################################
+ # call_remote_sync
+ #
+ # Call a remote Tasmota device, returns Berry native map or nil
+ # arg can be nil, in this case `cmd` has it all
+ def call_remote_sync(cmd, arg)
+ if self.BRIDGE
+ # if !self.http_remote return nil end
+ import json
+
+ var retry = 2 # try 2 times if first failed
+ if arg != nil cmd = cmd + ' ' + str(arg) end
+ while retry > 0
+ var ret = self.http_remote.call_sync(cmd, self.SYNC_TIMEOUT)
+ if ret != nil
+ self.http_remote.device_is_alive(true)
+ var j = json.load(ret)
+ return j
+ end
+ retry -= 1
+ tasmota.log("MTR: HTTP GET retrying", 3)
+ end
+ self.http_remote.device_is_alive(false)
+ return nil
+ end
+ end
+
+ #############################################################
+ # parse_http_response
+ #
+ # Parse response from HTTP API and update shadows
+ # We support:
+ # `Status 8`: {"StatusSNS":{ [...] }}
+ # `Status 11`: {"StatusSTS":{ [...] }}
+ # `Status 13`: {"StatusSHT":{ [...] }}
+ def parse_http_response(status, payload, cmd)
+ if self.BRIDGE
+ self.tick = self.device.tick # avoid new force update in same tick
+ self.http_remote.parse_status_response_and_call_method(status, payload, cmd, self, self.parse_status)
+ end
+ end
+
+ #############################################################
+ # every_250ms
+ #
+ # check if the timer expired and update_shadow() needs to be called
+ def every_250ms()
+ if self.BRIDGE
+ self.http_remote.scheduler() # defer to HTTP scheduler
+ # avoid calling update_shadow() since it's not applicable for HTTP remote
+ else
+ super(self).every_250ms()
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ static var PREFIX = "| %s "
+ def web_values()
+ import webserver
+ self.web_values_prefix()
+ webserver.content_send("<-- (" + self.DISPLAY_NAME + ") -->")
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+
+ # Show on/off value as html
+ def web_value_onoff(onoff)
+ var onoff_html = (onoff != nil ? (onoff ? "On " : "Off") : "")
+ return onoff_html
+ end
+
+ #############################################################
+ # GetOption reader to decode `SetOption` values from `Status 3`
+ static class GetOptionReader
+ var flag, flag2, flag3, flag4, flag5, flag6
+
+ def init(j)
+ if j == nil raise "value_error", "invalid json" end
+ var so = j['SetOption']
+ self.flag = bytes().fromhex(so[0]).reverse()
+ self.flag2 = bytes().fromhex(so[1])
+ self.flag3 = bytes().fromhex(so[2]).reverse()
+ self.flag4 = bytes().fromhex(so[3]).reverse()
+ self.flag5 = bytes().fromhex(so[4]).reverse()
+ self.flag6 = bytes().fromhex(so[5]).reverse()
+ end
+ def getoption(x)
+ if x < 32 # SetOption0 .. 31 = Settings->flag
+ return self.flag.getbits(x, 1)
+ elif x < 50 # SetOption32 .. 49 = Settings->param
+ return self.flag2.get(x - 32, 1)
+ elif x < 82 # SetOption50 .. 81 = Settings->flag3
+ return self.flag3.getbits(x - 50, 1)
+ elif x < 114 # SetOption82 .. 113 = Settings->flag4
+ return self.flag4.getbits(x - 82, 1)
+ elif x < 146 # SetOption114 .. 145 = Settings->flag5
+ return self.flag5.getbits(x - 114, 1)
+ elif x < 178 # SetOption146 .. 177 = Settings->flag6
+ return self.flag6.getbits(x - 146, 1)
+ end
+ end
+ end
+ #############################################################
+ #############################################################
+
#######################################################################
# _parse_sensor_entry: internal helper function
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Bridge_HTTP.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Bridge_HTTP.be
deleted file mode 100644
index 75b2316df..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Bridge_HTTP.be
+++ /dev/null
@@ -1,296 +0,0 @@
-#
-# Matter_Plugin_Bridge_HTTP.be - implements base class for a Bridge via HTTP
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_HTTP.GetOptionReader,weak
-#@ solidify:Matter_Plugin_Bridge_HTTP,weak
-
-class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
- static var TYPE = "" # name of the plug-in in json
- static var DISPLAY_NAME = "" # display name of the plug-in
- static var ARG = "" # additional argument name (or empty if none)
- static var ARG_HTTP = "url" # domain name
- static var UPDATE_TIME = 3000 # update every 3s
- static var UPDATE_CMD = "Status 11" # command to send for updates
- static var PROBE_TIMEOUT = 1700 # timeout of 1800 ms for probing, which gives at least 1s for TCP recovery
- static var SYNC_TIMEOUT = 500 # timeout of 700 ms for probing
- # static var CLUSTERS = {
- # # 0x001D: inherited # Descriptor Cluster 9.5 p.453
- # # 0x0003: inherited # Identify 1.2 p.16
- # # 0x0004: inherited # Groups 1.3 p.21
- # # 0x0005: inherited # Scenes 1.4 p.30 - no writable
- # # 0x0006: [0], # On/Off 1.5 p.48
-
- # # 0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
- # # 0x0039: [0x11] # Bridged Device Basic Information 9.13 p.485
-
- # }
-
- var http_remote # instance of Matter_HTTP_remote
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
-
- var addr = arguments.find(self.ARG_HTTP)
- self.http_remote = self.device.register_http_remote(addr, self.PROBE_TIMEOUT)
- self.register_cmd_cb()
- end
-
- #############################################################
- # is_local_device
- #
- # Returns true if it's a local device, or false for a
- # remotely device controlled via HTTP
- def is_local_device()
- return false
- end
-
- #############################################################
- # register_cmd_cb
- #
- # Register recurrent command and callback
- # Defined as a separate method to allow override
- def register_cmd_cb()
- self.http_remote.add_schedule(self.UPDATE_CMD, self.UPDATE_TIME,
- / status,payload,cmd -> self.parse_http_response(status,payload,cmd))
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This method should collect the data from the local or remote device
- # and call `parse_update()` when data is available.
- def update_shadow()
- self.tick = self.device.tick
- var ret = self.call_remote_sync(self.UPDATE_CMD)
- if ret
- self.parse_http_response(1, ret, self.UPDATE_CMD)
- end
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # TO BE OVERRIDDEN
- def parse_update(data, index)
- end
-
- #############################################################
- # call_remote_sync
- #
- # Call a remote Tasmota device, returns Berry native map or nil
- # arg can be nil, in this case `cmd` has it all
- def call_remote_sync(cmd, arg)
- # if !self.http_remote return nil end
- import json
-
- var retry = 2 # try 2 times if first failed
- if arg != nil cmd = cmd + ' ' + str(arg) end
- while retry > 0
- var ret = self.http_remote.call_sync(cmd, self.SYNC_TIMEOUT)
- if ret != nil
- self.http_remote.device_is_alive(true)
- var j = json.load(ret)
- return j
- end
- retry -= 1
- tasmota.log("MTR: HTTP GET retrying", 3)
- end
- self.http_remote.device_is_alive(false)
- return nil
- end
-
- #############################################################
- # parse_http_response
- #
- # Parse response from HTTP API and update shadows
- # We support:
- # `Status 8`: {"StatusSNS":{ [...] }}
- # `Status 11`: {"StatusSTS":{ [...] }}
- # `Status 13`: {"StatusSHT":{ [...] }}
- def parse_http_response(status, payload, cmd)
- if status > 0
- # device is known to be reachable
- self.http_remote.device_is_alive(true)
- var tick = self.device.tick
-
- import json
- var j = json.load(payload)
- var code = nil # index of Status
- if j
- # filter
- if j.contains("StatusSNS") # Status 8
- j = j["StatusSNS"]
- code = 8
- elif j.contains("StatusSTS") # Status 11
- j = j["StatusSTS"]
- code = 11
- elif j.contains("StatusSHT") # Status 13
- j = j["StatusSTS"]
- code = 13
- end
- # convert to shadow values
- self.parse_update(j, code) # call parser
- end
- end
- end
-
- # #############################################################
- # # is_reachable()
- # #
- # # Pings the device and checks if it's reachable
- # def is_reachable_lazy_sync()
- # var cur_tick = self.device.tick
- # if cur_tick != self.tick
- # var ret = self.call_remote_sync("", "") # empty command works as a ping
- # self.http_remote.device_is_alive(ret != nil)
- # end
- # return self.http_remote.reachable
- # end
-
- #############################################################
- # read attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
- import string
-
- if attribute == 0x0003 # ---------- ProductName / string ----------
- var name = self.http_remote.get_info().find("name")
- if name
- return tlv_solo.set(TLV.UTF1, name)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x000A # ---------- SoftwareVersionString / string ----------
- var version_full = self.http_remote.get_info().find("version")
- if version_full
- var version_end = string.find(version_full, '(')
- if version_end > 0 version_full = version_full[0..version_end - 1] end
- return tlv_solo.set(TLV.UTF1, version_full)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x000F || attribute == 0x0012 # ---------- SerialNumber || UniqueID / string ----------
- var mac = self.http_remote.get_info().find("mac")
- if mac
- return tlv_solo.set(TLV.UTF1, mac)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0011 # ---------- Reachable / bool ----------
- # self.is_reachable_lazy_sync() # Not needed anymore
- return tlv_solo.set(TLV.BOOL, self.http_remote.reachable) # TODO find a way to do a ping
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # every_250ms
- #
- # check if the timer expired and update_shadow() needs to be called
- def every_250ms()
- self.http_remote.scheduler() # defer to HTTP scheduler
- # avoid calling update_shadow() since it's not applicable for HTTP remote
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- static var PREFIX = "| %s "
- def web_values()
- import webserver
- self.web_values_prefix()
- webserver.content_send("<-- (" + self.DISPLAY_NAME + ") -->")
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-
- # Show on/off value as html
- def web_value_onoff(onoff)
- var onoff_html = (onoff != nil ? (onoff ? "On " : "Off") : "")
- return onoff_html
- end
-
- #############################################################
- # GetOption reader to decode `SetOption` values from `Status 3`
- static class GetOptionReader
- var flag, flag2, flag3, flag4, flag5, flag6
-
- def init(j)
- if j == nil raise "value_error", "invalid json" end
- var so = j['SetOption']
- self.flag = bytes().fromhex(so[0]).reverse()
- self.flag2 = bytes().fromhex(so[1])
- self.flag3 = bytes().fromhex(so[2]).reverse()
- self.flag4 = bytes().fromhex(so[3]).reverse()
- self.flag5 = bytes().fromhex(so[4]).reverse()
- self.flag6 = bytes().fromhex(so[5]).reverse()
- end
- def getoption(x)
- if x < 32 # SetOption0 .. 31 = Settings->flag
- return self.flag.getbits(x, 1)
- elif x < 50 # SetOption32 .. 49 = Settings->param
- return self.flag2.get(x - 32, 1)
- elif x < 82 # SetOption50 .. 81 = Settings->flag3
- return self.flag3.getbits(x - 50, 1)
- elif x < 114 # SetOption82 .. 113 = Settings->flag4
- return self.flag4.getbits(x - 82, 1)
- elif x < 146 # SetOption114 .. 145 = Settings->flag5
- return self.flag5.getbits(x - 114, 1)
- elif x < 178 # SetOption146 .. 177 = Settings->flag6
- return self.flag6.getbits(x - 146, 1)
- end
- end
- end
-
- #- Examples
-
- import json
-
- var p = '{"SerialLog":2,"WebLog":3,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["Livebox-781A",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C80001800600003C5A0A192800000000","00000080","00006000","00006000","00000020"]}'
- var j = json.load(p)
-
- var gor = matter.Plugin_Bridge_HTTP.GetOptionReader(j)
- assert(gor.getoption(151) == 1)
- assert(gor.getoption(150) == 0)
- assert(gor.getoption(32) == 40)
- assert(gor.getoption(37) == 128)
-
- -#
-end
-matter.Plugin_Bridge_HTTP = Matter_Plugin_Bridge_HTTP
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light0.be
similarity index 61%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light0.be
index 0c9dc1edb..348bbc090 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_OnOff.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light0.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_OnOff.be - implements the behavior for a Relay (OnOff)
+# Matter_Plugin_Light0.be - implements the behavior for a generic Lighting (OnOff only)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -21,11 +21,11 @@ import matter
# Matter plug-in for core behavior
-#@ solidify:Matter_Plugin_OnOff,weak
+#@ solidify:Matter_Plugin_Light0,weak
-class Matter_Plugin_OnOff : Matter_Plugin_Device
- static var TYPE = "relay" # name of the plug-in in json
- static var DISPLAY_NAME = "Relay" # display name of the plug-in
+class Matter_Plugin_Light0 : Matter_Plugin_Device
+ static var TYPE = "light0" # name of the plug-in in json
+ static var DISPLAY_NAME = "Light 0 On" # display name of the plug-in
static var ARG = "relay" # additional argument name (or empty if none)
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var ARG_HINT = "Relay number"
@@ -38,7 +38,7 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
0x0006: [0], # On/Off 1.5 p.48
})
static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Power")
- static var TYPES = { 0x010A: 2 } # On/Off Plug-in Unit
+ static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
# Inherited
# var device # reference to the `device` global object
@@ -46,8 +46,8 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
# var tick # tick value when it was last updated
# var node_label # name of the endpoint, used only in bridge mode, "" if none
+ var tasmota_relay_index # Relay number in Tasmota (1 based), may be nil for Lights 1/2/3 internal
var shadow_onoff # (bool) status of the light power on/off
- var tasmota_relay_index # Relay number in Tasmota (zero based)
#############################################################
# Constructor
@@ -61,21 +61,24 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
#
# Parse configuration map
def parse_configuration(config)
- self.tasmota_relay_index = int(config.find(self.ARG #-'relay'-#, 1))
- if self.tasmota_relay_index <= 0 self.tasmota_relay_index = 1 end
+ # with Light0 we always need relay number but we don't for Light1/2/3 so self.tasmota_relay_index may be `nil`
+ self.tasmota_relay_index = int(config.find(self.ARG #-'relay'-#, nil))
+ if (self.tasmota_relay_index != nil && self.tasmota_relay_index <= 0) self.tasmota_relay_index = 1 end
end
#############################################################
# Update shadow
#
def update_shadow()
- if !self.VIRTUAL
- var pow = tasmota.get_power(self.tasmota_relay_index - 1)
- if pow != nil
- if self.shadow_onoff != bool(pow)
- self.attribute_updated(0x0006, 0x0000)
+ if !self.VIRTUAL && !self.BRIDGE
+ if (self.tasmota_relay_index != nil)
+ var pow = tasmota.get_power(self.tasmota_relay_index - 1)
+ if pow != nil
+ if self.shadow_onoff != bool(pow)
+ self.attribute_updated(0x0006, 0x0000)
+ end
+ self.shadow_onoff = pow
end
- self.shadow_onoff = pow
end
end
super(self).update_shadow()
@@ -85,14 +88,26 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
# Model
#
def set_onoff(pow)
- if !self.VIRTUAL
- tasmota.set_power(self.tasmota_relay_index - 1, bool(pow))
- self.update_shadow()
- else
+ if self.BRIDGE
+ var ret = self.call_remote_sync("Power" + str(self.tasmota_relay_index), pow ? "1" : "0")
+ if ret != nil
+ self.parse_status(ret, 11) # update shadow from return value
+ # self.tick = self.device.tick # prevent an explicit Status11 for as it is not needed if the subscription update is sent in same tick
+ end
+ elif self.VIRTUAL
if pow != self.shadow_onoff
self.attribute_updated(0x0006, 0x0000)
self.shadow_onoff = pow
end
+ else
+ if (self.tasmota_relay_index != nil)
+ tasmota.set_power(self.tasmota_relay_index - 1, bool(pow))
+ self.update_shadow()
+ else
+ import light
+ light.set({'power':pow})
+ self.update_shadow()
+ end
end
end
@@ -157,5 +172,51 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 11 # Status 11
+ var state = false
+
+ if self.tasmota_relay_index == 1 && data.contains("POWER") # special case, can be `POWER` or `POWER1`
+ state = (data.find("POWER") == "ON")
+ else
+ state = (data.find("POWER" + str(self.tasmota_relay_index)) == "ON")
+ end
+
+ if self.shadow_onoff != bool(state)
+ self.attribute_updated(0x0006, 0x0000)
+ self.shadow_onoff = state
+ end
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("%s", self.web_value_onoff(self.shadow_onoff)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Power" + str(self.tasmota_relay_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
end
-matter.Plugin_OnOff = Matter_Plugin_OnOff
+matter.Plugin_Light0 = Matter_Plugin_Light0
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
index 2b0e42255..c88ec645f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
@@ -23,19 +23,19 @@ import matter
#@ solidify:Matter_Plugin_Light1,weak
-class Matter_Plugin_Light1 : Matter_Plugin_Device
+class Matter_Plugin_Light1 : Matter_Plugin_Light0
static var TYPE = "light1" # name of the plug-in in json
static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
- static var UPDATE_TIME = 250 # update every 250ms
+ # static var UPDATE_TIME = 250 # update every 250ms
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
- 0x0006: [0], # On/Off 1.5 p.48
+ # 0x0006: [0], # On/Off 1.5 p.48
0x0008: [0,2,3,0x0F,0x11], # Level Control 1.6 p.57
})
- static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Power", "Bri")
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Bri")
static var TYPES = { 0x0101: 2 } # Dimmable Light
# Inherited
@@ -44,22 +44,34 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
# var tick # tick value when it was last updated
# var node_label # name of the endpoint, used only in bridge mode, "" if none
- var shadow_onoff # (bool) status of the light power on/off
+ # var tasmota_relay_index # Relay number in Tasmota (1 based), nil for internal light
+ # var shadow_onoff # (bool) status of the light power on/off
var shadow_bri # (int 0..254) brightness before Gamma correction - as per Matter 255 is not allowed
#############################################################
# Constructor
def init(device, endpoint, arguments)
super(self).init(device, endpoint, arguments)
- self.shadow_onoff = false
self.shadow_bri = 0
end
+ #############################################################
+ # parse_configuration
+ #
+ # Parse configuration map
+ def parse_configuration(config)
+ # with Light0 we always need relay number but we don't for Light1/2/3 so self.tasmota_relay_index may be `nil`
+ if self.BRIDGE
+ self.tasmota_relay_index = int(config.find(self.ARG #-'relay'-#, nil))
+ if (self.tasmota_relay_index != nil && self.tasmota_relay_index <= 0) self.tasmota_relay_index = 1 end
+ end
+ end
+
#############################################################
# Update shadow
#
def update_shadow()
- if !self.VIRTUAL
+ if !self.VIRTUAL && !self.BRIDGE
import light
var light_status = light.get()
if light_status != nil
@@ -81,19 +93,6 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
super(self).update_shadow() # superclass manages 'power'
end
- def set_onoff(pow)
- if !self.VIRTUAL
- import light
- light.set({'power':pow})
- self.update_shadow()
- else
- if pow != self.shadow_onoff
- self.attribute_updated(0x0006, 0x0000)
- self.shadow_onoff = pow
- end
- end
- end
-
#############################################################
# Set Bri
#
@@ -103,16 +102,13 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
if (bri_254 < 0) bri_254 = 0 end
if (bri_254 > 254) bri_254 = 254 end
pow = (pow != nil) ? bool(pow) : nil # nil or bool
- if !self.VIRTUAL
- import light
- var bri_255 = tasmota.scale_uint(bri_254, 0, 254, 0, 255)
- if pow == nil
- light.set({'bri': bri_255})
- else
- light.set({'bri': bri_255, 'power': pow})
+ if self.BRIDGE
+ var dimmer = tasmota.scale_uint(bri_254, 0, 254, 0, 100)
+ var ret = self.call_remote_sync("Dimmer", str(dimmer))
+ if ret != nil
+ self.parse_status(ret, 11) # update shadow from return value
end
- self.update_shadow()
- else
+ elif self.VIRTUAL
if (pow != nil) && (pow != self.shadow_onoff)
self.attribute_updated(0x0006, 0x0000)
self.shadow_onoff = pow
@@ -121,6 +117,15 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
self.attribute_updated(0x0008, 0x0000)
self.shadow_bri = bri_254
end
+ else
+ import light
+ var bri_255 = tasmota.scale_uint(bri_254, 0, 254, 0, 255)
+ if pow == nil
+ light.set({'bri': bri_255})
+ else
+ light.set({'bri': bri_255, 'power': pow})
+ end
+ self.update_shadow()
end
end
@@ -133,14 +138,7 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
var attribute = ctx.attribute
# ====================================================================================================
- if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
- self.update_shadow_lazy()
- if attribute == 0x0000 # ---------- OnOff / bool ----------
- return tlv_solo.set(TLV.BOOL, self.shadow_onoff)
- end
-
- # ====================================================================================================
- elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
+ if cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
self.update_shadow_lazy()
if attribute == 0x0000 # ---------- CurrentLevel / u1 ----------
return tlv_solo.set(TLV.U1, self.shadow_bri)
@@ -170,23 +168,7 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
var command = ctx.command
# ====================================================================================================
- if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
- self.update_shadow_lazy()
- if command == 0x0000 # ---------- Off ----------
- self.set_onoff(false)
- self.publish_command('Power', 0)
- return true
- elif command == 0x0001 # ---------- On ----------
- self.set_onoff(true)
- self.publish_command('Power', 1)
- return true
- elif command == 0x0002 # ---------- Toggle ----------
- self.set_onoff(!self.shadow_onoff)
- self.publish_command('Power', self.shadow_onoff ? 1 : 0)
- return true
- end
- # ====================================================================================================
- elif cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
+ if cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
self.update_shadow_lazy()
if command == 0x0000 # ---------- MoveToLevel ----------
var bri_254 = val.findsubval(0) # Hue 0..254
@@ -236,11 +218,53 @@ class Matter_Plugin_Light1 : Matter_Plugin_Device
if val_bri != nil
self.set_bri(int(val_bri), val_onoff)
return # don't call super() because we already handeld 'Power'
- elif val_onoff != nil
- self.set_onoff(bool(val_onoff))
end
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ super(self).parse_status(data, index)
+
+ if index == 11 # Status 11
+ var dimmer = int(data.find("Dimmer")) # 0..100
+ if dimmer != nil
+ var bri = tasmota.scale_uint(dimmer, 0, 100, 0, 254)
+ if bri != self.shadow_bri
+ self.attribute_updated(0x0008, 0x0000)
+ self.shadow_bri = bri
+ end
+ end
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("%s %s", self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer()))
+ end
+
+ # Show on/off value as html
+ def web_value_dimmer()
+ var bri_html = ""
+ if self.shadow_bri != nil
+ var bri = tasmota.scale_uint(self.shadow_bri, 0, 254, 0, 100)
+ bri_html = format("%i%%", bri)
+ end
+ return "🔅 " + bri_html;
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Light1 = Matter_Plugin_Light1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
index f2b2e7f3f..2e3f7c18a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
@@ -26,11 +26,20 @@ import matter
class Matter_Plugin_Sensor : Matter_Plugin_Device
static var ARG = "filter" # additional argument name (or empty if none)
static var ARG_HINT = "Filter pattern"
+ static var UPDATE_CMD = "Status 10" # command to send for updates
static var UPDATE_TIME = 5000 # update sensor every 5s
static var JSON_NAME = "" # Name of the sensor attribute in JSON payloads
var tasmota_sensor_filter # Rule-type filter to the value, like "ESP32#Temperature"
var tasmota_sensor_matcher # Actual matcher object
var shadow_value # Last known value
+
+ var temp_unit # temperature unit, "C" or "F"
+ static var TEMP_C = "C"
+ static var TEMP_F = "F"
+ var pressure_unit # pressure unit, "hPa" or "mmHg" or "inHg"
+ static var PRESSURE_HPA = "hPa"
+ static var PRESSURE_MMHG = "mmHg"
+ static var PRESSURE_INHG = "inHg"
#############################################################
# Constructor
@@ -52,6 +61,8 @@ class Matter_Plugin_Sensor : Matter_Plugin_Device
if self.tasmota_sensor_filter
self.tasmota_sensor_matcher = tasmota.Rule_Matcher.parse(self.tasmota_sensor_filter)
end
+ self.temp_unit = self.TEMP_C
+ self.pressure_unit = self.PRESSURE_HPA
end
#############################################################
@@ -106,5 +117,53 @@ class Matter_Plugin_Sensor : Matter_Plugin_Device
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # TO BE OVERRIDDEN
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ if data.contains("TempUnit")
+ self.temp_unit = data["TempUnit"]
+ end
+ if data.contains("PressureUnit")
+ self.pressure_unit = data["PressureUnit"]
+ end
+ if self.tasmota_sensor_matcher
+ var val = self.pre_value(real(self.tasmota_sensor_matcher.match(data)))
+ if val != nil
+ if val != self.shadow_value
+ self.value_changed()
+ self.shadow_value = val
+ end
+ end
+ end
+ end
+ end
+
+ #############################################################
+ # Return the first item in the filter
+ def filter_name_html()
+ if self.tasmota_sensor_filter
+ import string
+ import webserver
+ return webserver.html_escape(string.split(self.tasmota_sensor_filter, '#')[0])
+ end
+ return ""
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if (!name) name = self.filter_name_html() end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor = Matter_Plugin_Sensor
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
index a6c2f7193..026104263 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
@@ -63,7 +63,7 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
if !self.VIRTUAL
var switch_str = "Switch" + str(self.tasmota_switch_index)
- var j = tasmota.cmd("Status 8", true)
+ var j = tasmota.cmd("Status 10", true)
if j != nil j = j.find("StatusSNS") end
if j != nil && j.contains(switch_str)
var state = (j.find(switch_str) == "ON")
@@ -107,5 +107,46 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ var state = false
+
+ state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
+
+ if self.shadow_contact != nil && self.shadow_contact != bool(state)
+ self.attribute_updated(0x0045, 0x0000)
+ end
+ self.shadow_contact = state
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_contact)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Switch" + str(self.tasmota_switch_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
end
matter.Plugin_Sensor_Contact = Matter_Plugin_Sensor_Contact
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
index fbc6bf84b..1a48ba716 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
@@ -63,7 +63,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
if !self.VIRTUAL
var switch_str = "Switch" + str(self.tasmota_switch_index)
- var j = tasmota.cmd("Status 8", true)
+ var j = tasmota.cmd("Status 10", true)
if j != nil j = j.find("StatusSNS") end
if j != nil && j.contains(switch_str)
var state = (j.find(switch_str) == "ON")
@@ -111,5 +111,47 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ var state = false
+
+ state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
+
+ if self.shadow_occupancy != nil && self.shadow_occupancy != bool(state)
+ self.attribute_updated(0x0406, 0x0000)
+ end
+ self.shadow_occupancy = state
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("Occupancy%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_occupancy)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Switch" + str(self.tasmota_switch_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Occupancy = Matter_Plugin_Sensor_Occupancy
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be
index a2d2af9e6..21e0c779b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be
@@ -53,7 +53,7 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
if !self.VIRTUAL
var switch_str = "Switch" + str(self.tasmota_switch_index)
- var j = tasmota.cmd("Status 8", true)
+ var j = tasmota.cmd("Status 10", true)
if j != nil j = j.find("StatusSNS") end
if j != nil && j.contains(switch_str)
var state = (j.find(switch_str) == "ON")
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
index 04e8a4644..680ad5b91 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
@@ -64,7 +64,7 @@ class Matter_Plugin_Sensor_Waterleak : Matter_Plugin_Device
if !self.VIRTUAL
var switch_str = "Switch" + str(self.tasmota_switch_index)
- var j = tasmota.cmd("Status 8", true)
+ var j = tasmota.cmd("Status 10", true)
if j != nil j = j.find("StatusSNS") end
if j != nil && j.contains(switch_str)
var state = (j.find(switch_str) == "ON")
@@ -88,11 +88,7 @@ class Matter_Plugin_Sensor_Waterleak : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x0045 # ========== Boolean State ==========
if attribute == 0x0000 # ---------- StateValue / bool ----------
- if self.shadow_leak != nil
- return tlv_solo.set(TLV.BOOL, self.shadow_leak)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set(TLV.BOOL, self.shadow_leak)
end
end
@@ -115,5 +111,47 @@ class Matter_Plugin_Sensor_Waterleak : Matter_Plugin_Device
super(self).update_virtual(payload_json)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ var state = false
+
+ state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
+
+ if self.shadow_leak != nil && self.shadow_leak != bool(state)
+ self.attribute_updated(0x0045, 0x0000)
+ end
+ self.shadow_leak = state
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("Waterleak%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_leak)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Switch" + str(self.tasmota_switch_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Waterleak = Matter_Plugin_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Light0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Light0.be
deleted file mode 100644
index 87c0e22f9..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Light0.be
+++ /dev/null
@@ -1,156 +0,0 @@
-#
-# Matter_Plugin_Bridge_Light0.be - implements the behavior for a remote generic Lighting (OnOff only) via HTTP
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Light0,weak
-
-class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
- static var TYPE = "http_light0" # name of the plug-in in json
- static var DISPLAY_NAME = "Light 0 On" # display name of the plug-in
- static var ARG = "relay" # additional argument name (or empty if none)
- static var ARG_HINT = "Power number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- # static var UPDATE_TIME = 3000 # update every 3s
- # static var UPDATE_CMD = "Status 11" # command to send for updates
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- # 0x001D: inherited # Descriptor Cluster 9.5 p.453
- # 0x0003: inherited # Identify 1.2 p.16
- # 0x0004: inherited # Groups 1.3 p.21
- # 0x0005: inherited # Scenes 1.4 p.30 - no writable
- 0x0006: [0], # On/Off 1.5 p.48
- })
- static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
-
- var tasmota_relay_index # Relay number in Tasmota (one based)
- var shadow_onoff # fake status for now # TODO
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.shadow_onoff = false
- self.tasmota_relay_index = int(arguments.find(self.ARG #-'relay'-#, 1))
- if self.tasmota_relay_index <= 0 self.tasmota_relay_index = 1 end
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- if index == 11 # Status 11
- var state = false
-
- if self.tasmota_relay_index == 1 && data.contains("POWER") # special case, can be `POWER` or `POWER1`
- state = (data.find("POWER") == "ON")
- else
- state = (data.find("POWER" + str(self.tasmota_relay_index)) == "ON")
- end
-
- if self.shadow_onoff != nil && self.shadow_onoff != bool(state)
- self.attribute_updated(0x0006, 0x0000)
- end
- self.shadow_onoff = state
- end
- end
-
- #############################################################
- # Model
- #
- def set_onoff(v)
- var ret = self.call_remote_sync("Power" + str(self.tasmota_relay_index), v ? "1" : "0")
- if ret != nil
- self.parse_update(ret, 11) # update shadow from return value
- # self.tick = self.device.tick # prevent an explicit Status11 for as it is not needed if the subscription update is sent in same tick
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
- self.update_shadow_lazy()
- if attribute == 0x0000 # ---------- OnOff / bool ----------
- return tlv_solo.set(TLV.BOOL, self.shadow_onoff)
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # Invoke a command
- #
- # returns a TLV object if successful, contains the response
- # or an `int` to indicate a status
- def invoke_request(session, val, ctx)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var command = ctx.command
-
- # ====================================================================================================
- if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
- if command == 0x0000 # ---------- Off ----------
- self.set_onoff(false)
- self.publish_command('Power', 0)
- return true
- elif command == 0x0001 # ---------- On ----------
- self.set_onoff(true)
- self.publish_command('Power', 1)
- return true
- elif command == 0x0002 # ---------- Toggle ----------
- self.set_onoff(!self.shadow_onoff)
- self.publish_command('Power', self.shadow_onoff ? 1 : 0)
- return true
- end
- end
-
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("%s", self.web_value_onoff(self.shadow_onoff)))
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if !name
- name = "Power" + str(self.tasmota_relay_index)
- end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-
-end
-matter.Plugin_Bridge_Light0 = Matter_Plugin_Bridge_Light0
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor.be
deleted file mode 100644
index 301c1c02a..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor.be
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor.be - implements base class for a Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor,weak
-
-class Matter_Plugin_Bridge_Sensor : Matter_Plugin_Bridge_HTTP
- # static var TYPE = "" # name of the plug-in in json
- # static var DISPLAY_NAME = "" # display name of the plug-in
- static var ARG = "filter" # additional argument name (or empty if none)
- static var ARG_HTTP = "url" # domain name
- static var ARG_HINT = "Filter pattern"
- static var UPDATE_TIME = 5000 # update every 5s
- static var UPDATE_CMD = "Status 8" # command to send for updates
- static var PROBE_TIMEOUT = 1700 # timeout of 1700 ms for probing, which gives at least 1s for TCP recovery
- # static var SYNC_TIMEOUT = 500 # timeout of 700 ms for probing
- var tasmota_sensor_filter # Rule-type filter to the value, like "ESP32#Temperature"
- var tasmota_sensor_matcher # Actual matcher object
- var shadow_value # Last known value
- var temp_unit # temperature unit, "C" or "F"
- static var TEMP_C = "C"
- static var TEMP_F = "F"
- var pressure_unit # pressure unit, "hPa" or "mmHg" or "inHg"
- static var PRESSURE_HPA = "hPa"
- static var PRESSURE_MMHG = "mmHg"
- static var PRESSURE_INHG = "inHg"
-
- #############################################################
- # parse_configuration
- #
- # Parse configuration map
- def parse_configuration(config)
- self.tasmota_sensor_filter = config.find(self.ARG#-'filter'-#)
- if self.tasmota_sensor_filter
- self.tasmota_sensor_matcher = tasmota.Rule_Matcher.parse(self.tasmota_sensor_filter)
- end
- self.temp_unit = self.TEMP_C
- self.pressure_unit = self.PRESSURE_HPA
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # TO BE OVERRIDDEN
- def parse_update(data, index)
- if index == 8 # Status 8
- if data.contains("TempUnit")
- self.temp_unit = data["TempUnit"]
- end
- if data.contains("PressureUnit")
- self.pressure_unit = data["PressureUnit"]
- end
- if self.tasmota_sensor_matcher
- var val = self.pre_value(real(self.tasmota_sensor_matcher.match(data)))
- if val != nil
- if val != self.shadow_value
- self.value_changed()
- self.shadow_value = val
- end
- end
- end
- end
- end
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- # self.attribute_updated(0x0402, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- return val
- end
-
- #############################################################
- # Return the first item in the filter
- def filter_name_html()
- if self.tasmota_sensor_filter
- import string
- import webserver
- return webserver.html_escape(string.split(self.tasmota_sensor_filter, '#')[0])
- end
- return ""
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if (!name) name = self.filter_name_html() end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-
-end
-matter.Plugin_Bridge_Sensor = Matter_Plugin_Bridge_Sensor
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Contact.be
deleted file mode 100644
index fe8373987..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Contact.be
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Contact.be - implements Contact Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Contact,weak
-
-class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
- static var TYPE = "http_contact" # name of the plug-in in json
- static var DISPLAY_NAME = "Contact" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 5000 # update every 5s
- static var UPDATE_CMD = "Status 8" # command to send for updates
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0045: [0], # Boolean State p.70 - no writable
- })
- static var TYPES = { 0x0015: 1 } # Contact Sensor, rev 1
-
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_contact
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.tasmota_switch_index = int(arguments.find(self.ARG #-'switch'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- if index == 8 # Status 8
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_contact != nil && self.shadow_contact != bool(state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_contact = state
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0045 # ========== Boolean State ==========
- if attribute == 0x0000 # ---------- StateValue / bool ----------
- if self.shadow_contact != nil
- return tlv_solo.set(TLV.BOOL, self.shadow_contact)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_contact)))
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if !name
- name = "Switch" + str(self.tasmota_switch_index)
- end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-end
-matter.Plugin_Bridge_Sensor_Contact = Matter_Plugin_Bridge_Sensor_Contact
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Occupancy.be
deleted file mode 100644
index 1ed2c5c59..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Occupancy.be
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Occupancy.be - implements base class for a Occupancy Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Occupancy,weak
-
-class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
- static var TYPE = "http_occupancy" # name of the plug-in in json
- static var DISPLAY_NAME = "Occupancy" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 5000 # update every 5s
- static var UPDATE_CMD = "Status 8" # command to send for updates
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0406: [0,1,2], # Occupancy Sensing p.105 - no writable
- })
- static var TYPES = { 0x0107: 2 } # Occupancy Sensor, rev 2
-
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_occupancy
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.tasmota_switch_index = int(arguments.find(self.ARG #-'relay'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- if index == 8 # Status 8
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_occupancy != nil && self.shadow_occupancy != bool(state)
- self.attribute_updated(0x0406, 0x0000)
- end
- self.shadow_occupancy = state
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0406 # ========== Occupancy Sensing ==========
- if attribute == 0x0000 # ---------- Occupancy / U8 ----------
- if self.shadow_occupancy != nil
- return tlv_solo.set(TLV.U1, self.shadow_occupancy)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0001 # ---------- OccupancySensorType / enum8 ----------
- return tlv_solo.set(TLV.U1, 3) # physical contact
- elif attribute == 0x0002 # ---------- OccupancySensorTypeBitmap / u8 ----------
- return tlv_solo.set(TLV.U1, 0) # unknown
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Occupancy%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_occupancy)))
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if !name
- name = "Switch" + str(self.tasmota_switch_index)
- end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-end
-matter.Plugin_Bridge_Sensor_Occupancy = Matter_Plugin_Bridge_Sensor_Occupancy
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Waterleak.be
deleted file mode 100644
index aa7c7c7d1..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Waterleak.be
+++ /dev/null
@@ -1,110 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Waterleak.be - implements Waterleak Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2024 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Waterleak,weak
-
-class Matter_Plugin_Bridge_Sensor_Waterleak : Matter_Plugin_Bridge_HTTP
- static var TYPE = "http_waterleak" # name of the plug-in in json
- static var DISPLAY_NAME = "Waterleak" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 5000 # update every 5s
- static var UPDATE_CMD = "Status 8" # command to send for updates
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0045: [0], # Boolean State p.70 - no writable
- })
- static var TYPES = { 0x0043: 1 } # Waterleak Sensor, rev 1
-
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_Waterleak
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.tasmota_switch_index = int(arguments.find(self.ARG #-'switch'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- if index == 8 # Status 8
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_Waterleak != nil && self.shadow_Waterleak != bool(state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_Waterleak = state
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0045 # ========== Boolean State ==========
- if attribute == 0x0000 # ---------- StateValue / bool ----------
- if self.shadow_Waterleak != nil
- return tlv_solo.set(TLV.BOOL, self.shadow_Waterleak)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Waterleak%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_Waterleak)))
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if !name
- name = "Switch" + str(self.tasmota_switch_index)
- end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
-end
-matter.Plugin_Bridge_Sensor_Waterleak = Matter_Plugin_Bridge_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
index 066d0a850..2458484c4 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
@@ -53,7 +53,9 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# Constructor
def init(device, endpoint, arguments)
super(self).init(device, endpoint, arguments)
- self.shadow_ct = 325
+ if !self.BRIDGE # in BRIDGE mode keep default to nil
+ self.shadow_ct = 325
+ end
self.update_ct_minmax() # read SetOption to adjust ct min/max
end
@@ -61,7 +63,7 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# Update shadow
#
def update_shadow()
- if !self.VIRTUAL
+ if !self.VIRTUAL && !self.BRIDGE
import light
self.update_ct_minmax()
super(self).update_shadow()
@@ -96,15 +98,20 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
def set_ct(ct)
if ct < self.ct_min ct = self.ct_min end
if ct > self.ct_max ct = self.ct_max end
- if !self.VIRTUAL
- import light
- light.set({'ct': ct})
- self.update_shadow()
- else
+ if self.BRIDGE
+ var ret = self.call_remote_sync("CT", str(ct))
+ if ret != nil
+ self.parse_status(ret, 11) # update shadow from return value
+ end
+ elif self.VIRTUAL
if ct != self.shadow_ct
self.attribute_updated(0x0300, 0x0007)
self.shadow_ct = ct
end
+ else
+ import light
+ light.set({'ct': ct})
+ self.update_shadow()
end
end
@@ -144,7 +151,6 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# returns a TLV object if successful, contains the response
# or an `int` to indicate a status
def invoke_request(session, val, ctx)
- import light
var TLV = matter.TLV
var cluster = ctx.cluster
var command = ctx.command
@@ -154,6 +160,8 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
self.update_shadow_lazy()
if command == 0x000A # ---------- MoveToColorTemperature ----------
var ct_in = val.findsubval(0) # CT
+ if ct_in < self.ct_min ct_in = self.ct_min end
+ if ct_in > self.ct_max ct_in = self.ct_max end
self.set_ct(ct_in)
ctx.log = "ct:"+str(ct_in)
self.publish_command('CT', ct_in)
@@ -187,5 +195,53 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # TO BE OVERRIDDEN
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ super(self).parse_status(data, index)
+
+ if index == 11 # Status 11
+ var ct = int(data.find("CT")) # 153..500
+ if ct != nil
+ if ct != self.shadow_ct
+ if ct < self.ct_min ct = self.ct_min end
+ if ct > self.ct_max ct = self.ct_max end
+ self.attribute_updated(0x0300, 0x0007)
+ self.shadow_ct = ct
+ end
+ end
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("%s %s %s",
+ self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
+ self.web_value_ct()))
+ end
+
+ # Show on/off value as html
+ def web_value_ct()
+ var ct_html = ""
+ if self.shadow_ct != nil
+ var ct_k = (((1000000 / self.shadow_ct) + 25) / 50) * 50 # convert in Kelvin
+ ct_html = format("%iK", ct_k)
+ end
+ return "⚪ " + ct_html;
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Light2 = Matter_Plugin_Light2
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
index 5f51f2bdc..bbc4e447a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
@@ -62,9 +62,9 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
# Update shadow
#
def update_shadow()
- super(self).update_shadow()
- if !self.VIRTUAL
+ if !self.VIRTUAL && !self.BRIDGE
import light
+ super(self).update_shadow()
var light_status = light.get()
if light_status != nil
var hue = light_status.find('hue', nil)
@@ -74,6 +74,8 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
if hue != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue end
if sat != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat end
end
+ else
+ super(self).update_shadow()
end
end
@@ -93,7 +95,29 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
if sat_254 > 254 sat_254 = 254 end
end
- if !self.VIRTUAL
+ if self.BRIDGE
+ if hue_254 != nil
+ var hue_360 = tasmota.scale_uint(hue_254, 0, 254, 0, 360)
+ var ret = self.call_remote_sync("HSBColor1", hue_360)
+ if ret != nil
+ self.parse_status(ret, 11) # update shadow from return value
+ end
+ end
+ if sat_254 != nil
+ var sat_100 = tasmota.scale_uint(sat_254, 0, 254, 0, 100)
+ var ret = self.call_remote_sync("HSBColor2", sat_100)
+ if ret != nil
+ self.parse_status(ret, 11) # update shadow from return value
+ end
+ end
+ elif self.VIRTUAL
+ if hue_254 != nil
+ if hue_254 != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue_254 end
+ end
+ if sat_254 != nil
+ if sat_254 != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat_254 end
+ end
+ else
var hue_360 = (hue_254 != nil) ? tasmota.scale_uint(hue_254, 0, 254, 0, 360) : nil
var sat_255 = (sat_254 != nil) ? tasmota.scale_uint(sat_254, 0, 254, 0, 255) : nil
@@ -105,13 +129,6 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
light.set({'sat': sat_255})
end
self.update_shadow()
- else
- if hue_254 != nil
- if hue_254 != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue_254 end
- end
- if sat_254 != nil
- if sat_254 != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat_254 end
- end
end
end
@@ -222,5 +239,59 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ super(self).parse_status(data, index)
+
+ if index == 11 # Status 11
+ var hsb = data.find("HSBColor")
+ if hsb
+ import string
+ var hsb_list = string.split(hsb, ",")
+ var hue = int(hsb_list[0])
+ var sat = int(hsb_list[1])
+ # dimmer is already available
+
+ if hue != nil hue = tasmota.scale_uint(hue, 0, 360, 0, 254) else hue = self.shadow_hue end
+ if sat != nil sat = tasmota.scale_uint(sat, 0, 100, 0, 254) else sat = self.shadow_sat end
+ if hue != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue end
+ if sat != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat end
+ end
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("%s %s %s",
+ self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
+ self.web_value_RGB()))
+ end
+
+ # Show on/off value as html
+ def web_value_RGB()
+ if self.shadow_hue != nil && self.shadow_sat != nil
+ var l = light_state(3) # RGB virtual light state object
+ l.set_bri(255) # set full brightness to get full range RGB
+ l.set_huesat(tasmota.scale_uint(self.shadow_hue, 0, 254, 0, 360), tasmota.scale_uint(self.shadow_sat, 0, 254, 0, 255))
+ var rgb_hex = format("#%02X%02X%02X", l.r, l.g, l.b)
+ var rgb_html = format(' %s', rgb_hex, rgb_hex)
+ return rgb_html
+ end
+ return ""
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Light3 = Matter_Plugin_Light3
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_OnOff.be
similarity index 69%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light0.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_OnOff.be
index 9c2108ebf..806bfa875 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_OnOff.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Light0.be - implements the behavior for a generic Lighting (OnOff only)
+# Matter_Plugin_OnOff.be - implements the behavior for a Relay (OnOff)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -21,12 +21,13 @@ import matter
# Matter plug-in for core behavior
-#@ solidify:Matter_Plugin_Light0,weak
+#@ solidify:Matter_Plugin_OnOff,weak
-class Matter_Plugin_Light0 : Matter_Plugin_OnOff
- static var TYPE = "light0" # name of the plug-in in json
- static var DISPLAY_NAME = "Light 0 On" # display name of the plug-in
- static var TYPES = { 0x0100: 2 } # OnOff Light, but not actually used because Relay is managed by OnOff
+class Matter_Plugin_OnOff : Matter_Plugin_Light0
+ static var TYPE = "relay" # name of the plug-in in json
+ static var DISPLAY_NAME = "Relay" # display name of the plug-in
+
+ static var TYPES = { 0x010A: 2 } # On/Off Plug-in Unit
# Inherited
# var device # reference to the `device` global object
@@ -34,7 +35,8 @@ class Matter_Plugin_Light0 : Matter_Plugin_OnOff
# var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
# var tick # tick value when it was last updated
# var node_label # name of the endpoint, used only in bridge mode, "" if none
- # var shadow_onoff # (bool) status of the light power on/off
+ # var shadow_onoff # (bool) status of the light power on/off
+ # var tasmota_relay_index # Relay number in Tasmota (zero based)
end
-matter.Plugin_Light0 = Matter_Plugin_Light0
+matter.Plugin_OnOff = Matter_Plugin_OnOff
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
index 9e418d453..cadf46b2b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
@@ -77,5 +77,20 @@ class Matter_Plugin_Sensor_Flow : Matter_Plugin_Sensor
return super(self).read_attribute(session, ctx, tlv_solo)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("⛅ %i m³/h",
+ int(self.shadow_value)))
+ end
+ #############################################################
+ #############################################################
end
matter.Plugin_Sensor_Flow = Matter_Plugin_Sensor_Flow
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
index 94c7d4a90..089a780ef 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
@@ -77,5 +77,21 @@ class Matter_Plugin_Sensor_Humidity : Matter_Plugin_Sensor
return super(self).read_attribute(session, ctx, tlv_solo)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("💧 %2.0f%%",
+ self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Humidity = Matter_Plugin_Sensor_Humidity
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
index ac6144b30..943e7ade2 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
@@ -84,5 +84,21 @@ class Matter_Plugin_Sensor_Illuminance : Matter_Plugin_Sensor
return super(self).read_attribute(session, ctx, tlv_solo)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("🔅 %i lux",
+ int(self.shadow_value)))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Illuminance = Matter_Plugin_Sensor_Illuminance
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
index b41f21a97..4eb020eb0 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
@@ -77,5 +77,21 @@ class Matter_Plugin_Sensor_Pressure : Matter_Plugin_Sensor
return super(self).read_attribute(session, ctx, tlv_solo)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("⛅ %i hPa",
+ int(self.shadow_value)))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Pressure = Matter_Plugin_Sensor_Pressure
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
index a6a540595..aa114a25e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
@@ -39,10 +39,18 @@ class Matter_Plugin_Sensor_Temp : Matter_Plugin_Sensor
# This must be overriden.
# This allows to convert the raw sensor value to the target one, typically int
def pre_value(val)
- if tasmota.get_option(8) == 1 # Fahrenheit
- val = (val - 32) / 1.8
+ # TODO simplify
+ if self.BRIDGE
+ if self.temp_unit == self.TEMP_F # Fahrenheit
+ val = (val - 32) / 1.8
+ end
+ return val != nil ? int(val * 100) : nil
+ else
+ if tasmota.get_option(8) == 1 # Fahrenheit
+ val = (val - 32) / 1.8
+ end
+ return val != nil ? int(val * 100) : nil
end
- return val != nil ? int(val * 100) : nil
end
#############################################################
@@ -80,5 +88,21 @@ class Matter_Plugin_Sensor_Temp : Matter_Plugin_Sensor
return super(self).read_attribute(session, ctx, tlv_solo)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("☀️ %.1f °C",
+ self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
+ end
+ #############################################################
+ #############################################################
+
end
matter.Plugin_Sensor_Temp = Matter_Plugin_Sensor_Temp
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Light1.be
deleted file mode 100644
index e2ada8078..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Light1.be
+++ /dev/null
@@ -1,184 +0,0 @@
-#
-# Matter_Plugin_Bridge_Light1.be - implements the behavior for a remote generic Lighting (Dimmer) via HTTP
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Light1,weak
-
-class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
- static var TYPE = "http_light1" # name of the plug-in in json
- static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
- # static var ARG = "relay" # additional argument name (or empty if none)
- # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- # 0x001D: inherited # Descriptor Cluster 9.5 p.453
- # 0x0003: inherited # Identify 1.2 p.16
- # 0x0004: inherited # Groups 1.3 p.21
- # 0x0005: inherited # Scenes 1.4 p.30 - no writable
- # 0x0006: inherited # On/Off 1.5 p.48
- 0x0008: [0,2,3,0x0F,0x11], # Level Control 1.6 p.57
- })
- static var TYPES = { 0x0101: 2 } # Dimmable Light
-
- var shadow_bri
- # var tasmota_relay_index # ingerited
- # var shadow_onoff # inherited
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- super(self).parse_update(data, index)
-
- if index == 11 # Status 11
- var dimmer = int(data.find("Dimmer")) # 0..100
- if dimmer != nil
- var bri = tasmota.scale_uint(dimmer, 0, 100, 0, 254)
- if bri != self.shadow_bri
- self.attribute_updated(0x0008, 0x0000)
- self.shadow_bri = bri
- end
- end
- end
- end
-
- #############################################################
- # Model
- #
- def set_bri(v)
- var dimmer = tasmota.scale_uint(v, 0, 254, 0, 100)
- var ret = self.call_remote_sync("Dimmer", str(dimmer))
- if ret != nil
- self.parse_update(ret, 11) # update shadow from return value
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
- self.update_shadow_lazy()
- if attribute == 0x0000 # ---------- CurrentLevel / u1 ----------
- if self.shadow_bri != nil
- return tlv_solo.set(TLV.U1, self.shadow_bri)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- elif attribute == 0x0002 # ---------- MinLevel / u1 ----------
- return tlv_solo.set(TLV.U1, 0)
- elif attribute == 0x0003 # ---------- MaxLevel / u1 ----------
- return tlv_solo.set(TLV.U1, 254)
- elif attribute == 0x000F # ---------- Options / map8 ----------
- return tlv_solo.set(TLV.U1, 0) #
- elif attribute == 0x0011 # ---------- OnLevel / u1 ----------
- if self.shadow_bri != nil
- return tlv_solo.set(TLV.U1, self.shadow_bri)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # Invoke a command
- #
- # returns a TLV object if successful, contains the response
- # or an `int` to indicate a status
- def invoke_request(session, val, ctx)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var command = ctx.command
-
- # ====================================================================================================
- if cluster == 0x0008 # ========== Level Control 1.6 p.57 ==========
- if command == 0x0000 # ---------- MoveToLevel ----------
- var bri_in = val.findsubval(0) # Hue 0..254
- self.set_bri(bri_in)
- ctx.log = "bri:"+str(bri_in)
- self.publish_command('Bri', tasmota.scale_uint(bri_in, 0, 254, 0, 255),
- 'Dimmer', tasmota.scale_uint(bri_in, 0, 254, 0, 100))
- return true
- elif command == 0x0001 # ---------- Move ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0002 # ---------- Step ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0003 # ---------- Stop ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0004 # ---------- MoveToLevelWithOnOff ----------
- var bri_in = val.findsubval(0) # Hue 0..254
- self.set_bri(bri_in)
- var onoff = bri_in > 0
- self.set_onoff(onoff)
- ctx.log = "bri:"+str(bri_in)
- self.publish_command('Bri', tasmota.scale_uint(bri_in, 0, 254, 0, 255),
- 'Dimmer', tasmota.scale_uint(bri_in, 0, 254, 0, 100),
- 'Power', onoff ? 1 : 0)
- return true
- elif command == 0x0005 # ---------- MoveWithOnOff ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0006 # ---------- StepWithOnOff ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0007 # ---------- StopWithOnOff ----------
- # TODO, we don't really support it
- return true
- end
-
- else
- return super(self).invoke_request(session, val, ctx)
- end
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("%s %s", self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer()))
- end
-
- # Show on/off value as html
- def web_value_dimmer()
- var bri_html = ""
- if self.shadow_bri != nil
- var bri = tasmota.scale_uint(self.shadow_bri, 0, 254, 0, 100)
- bri_html = format("%i%%", bri)
- end
- return "🔅 " + bri_html;
- end
-end
-matter.Plugin_Bridge_Light1 = Matter_Plugin_Bridge_Light1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
deleted file mode 100644
index a3e236acd..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Flow.be
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Flow.be - implements base class for a Flow Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Flow,weak
-
-class Matter_Plugin_Bridge_Sensor_Flow : Matter_Plugin_Bridge_Sensor
- static var TYPE = "http_flow" # name of the plug-in in json
- static var DISPLAY_NAME = "Flow" # display name of the plug-in
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0404: [0,1,2], # Flow Measurement
- })
- static var TYPES = { 0x0306: 1 } # Flow Sensor, rev 1
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- self.attribute_updated(0x0404, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- return val != nil ? int(val * 10) : nil # MeasuredValue represents 10 x flow in m3/h
- end
-
- #############################################################
- # read an attribute
- #
- static var read_attribute = matter.Plugin_Sensor_Flow.read_attribute
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("⛅ %i m3/h",
- int(self.shadow_value)))
- end
-
-end
-matter.Plugin_Bridge_Sensor_Flow = Matter_Plugin_Bridge_Sensor_Flow
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
deleted file mode 100644
index d6801ced4..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Humidity.be
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Humidity.be - implements base class for a Humidity Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Humidity,weak
-
-class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
- static var TYPE = "http_humidity" # name of the plug-in in json
- static var DISPLAY_NAME = "Humidity" # display name of the plug-in
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0405: [0,1,2], # Humidity Measurement p.102 - no writable
- })
- static var TYPES = { 0x0307: 2 } # Humidity Sensor, rev 2
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- self.attribute_updated(0x0405, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- return val != nil ? int(val * 100) : nil # 1/100th of percentage
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Sensor_Humidity.read_attribute
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("💧 %2.0f%%",
- self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
- end
-
-end
-matter.Plugin_Bridge_Sensor_Humidity = Matter_Plugin_Bridge_Sensor_Humidity
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
deleted file mode 100644
index df31caec6..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Illuminance.be
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Illuminance.be - implements base class for a Light/Illuminance Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Illuminance,weak
-
-class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
- static var TYPE = "http_illuminance" # name of the plug-in in json
- static var DISPLAY_NAME = "Illuminance" # display name of the plug-in
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0400: [0,1,2], # Illuminance Measurement p.95 - no writable
- })
- static var TYPES = { 0x0106: 2 } # Illuminance Sensor, rev 2
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- self.attribute_updated(0x0400, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- if val == nil return nil end
- import math
-
- if val < 0
- return 0
- else
- return math.log10(val + 1) * 10000
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Sensor_Illuminance.read_attribute
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("🔅 %ilux",
- int(self.shadow_value)))
- end
-
-end
-matter.Plugin_Bridge_Sensor_Illuminance = Matter_Plugin_Bridge_Sensor_Illuminance
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
deleted file mode 100644
index 6b40a7b60..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Pressure.be
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Temp.be - implements base class for a Pressure Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Pressure,weak
-
-class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
- static var TYPE = "http_pressure" # name of the plug-in in json
- static var DISPLAY_NAME = "Pressure" # display name of the plug-in
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0403: [0,1,2], # Pressure Measurement
- })
- static var TYPES = { 0x0305: 2 } # Temperature Sensor, rev 2
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- self.attribute_updated(0x0403, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- return val != nil ? int(val) : nil
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Sensor_Pressure.read_attribute
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("⛅ %i hPa",
- int(self.shadow_value)))
- end
-
-end
-matter.Plugin_Bridge_Sensor_Pressure = Matter_Plugin_Bridge_Sensor_Pressure
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
deleted file mode 100644
index daaaaa9f9..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_Sensor_Temp.be
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Matter_Plugin_Bridge_Sensor_Temp.be - implements base class for a Temperature Sensor via HTTP to Tasmota
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Sensor_Temp,weak
-
-class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
- static var TYPE = "http_temperature" # name of the plug-in in json
- static var DISPLAY_NAME = "Temperature" # display name of the plug-in
-
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0402: [0,1,2], # Temperature Measurement p.97 - no writable
- })
- static var TYPES = { 0x0302: 2 } # Temperature Sensor, rev 2
-
- #############################################################
- # Called when the value changed compared to shadow value
- #
- # This must be overriden.
- # This is where you call `self.attribute_updated(, )`
- def value_changed()
- self.attribute_updated(0x0402, 0x0000)
- end
-
- #############################################################
- # Pre-process value
- #
- # This must be overriden.
- # This allows to convert the raw sensor value to the target one, typically int
- def pre_value(val)
- if self.temp_unit == self.TEMP_F # Fahrenheit
- val = (val - 32) / 1.8
- end
- return val != nil ? int(val * 100) : nil
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Sensor_Temp.read_attribute
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("☀️ %.1f °C",
- self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
- end
-
-end
-matter.Plugin_Bridge_Sensor_Temp = Matter_Plugin_Bridge_Sensor_Temp
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
deleted file mode 100644
index 8d5622315..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light2.be
+++ /dev/null
@@ -1,155 +0,0 @@
-#
-# Matter_Plugin_Bridge_Light2.be - implements the behavior for a remote generic Lighting (CT) via HTTP
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Light2,weak
-
-class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
- static var TYPE = "http_light2" # name of the plug-in in json
- static var DISPLAY_NAME = "Light 2 CT" # display name of the plug-in
- # static var ARG = "relay" # additional argument name (or empty if none)
- # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- # 0x001D: inherited # Descriptor Cluster 9.5 p.453
- # 0x0003: inherited # Identify 1.2 p.16
- # 0x0004: inherited # Groups 1.3 p.21
- # 0x0005: inherited # Scenes 1.4 p.30 - no writable
- # 0x0006: inherited # On/Off 1.5 p.48
- # 0x0008: inherited # Level Control 1.6 p.57
- 0x0300: [7,8,0xF,0x400A,0x400B,0x400C], # Color Control 3.2 p.111
- })
- static var TYPES = { 0x010C: 2 } # Dimmable Light
-
- var shadow_ct
- var ct_min, ct_max
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.update_ct_minmax()
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # TO BE OVERRIDDEN
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- super(self).parse_update(data, index)
-
- if index == 11 # Status 11
- var ct = int(data.find("CT")) # 153..500
- if ct != nil
- if ct != self.shadow_ct
- if ct < self.ct_min ct = self.ct_min end
- if ct > self.ct_max ct = self.ct_max end
- self.attribute_updated(0x0300, 0x0007)
- self.shadow_ct = ct
- end
- end
- end
- end
-
- #############################################################
- # Update ct_min/max
- #
- def update_ct_minmax()
- var ct_alexa_mode = tasmota.get_option(82) # if set, range is 200..380 instead of 153...500
- self.ct_min = ct_alexa_mode ? 200 : 153
- self.ct_max = ct_alexa_mode ? 380 : 500
- end
-
- #############################################################
- # Model
- #
- def set_ct(v)
- var ret = self.call_remote_sync("CT", str(v))
- if ret != nil
- self.parse_update(ret, 11) # update shadow from return value
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Light2.read_attribute
-
- #############################################################
- # Invoke a command
- #
- # returns a TLV object if successful, contains the response
- # or an `int` to indicate a status
- def invoke_request(session, val, ctx)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var command = ctx.command
-
- # ====================================================================================================
- if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
- if command == 0x000A # ---------- MoveToColorTemperature ----------
- var ct_in = val.findsubval(0) # CT
- if ct_in < self.ct_min ct_in = self.ct_min end
- if ct_in > self.ct_max ct_in = self.ct_max end
- self.set_ct(ct_in)
- ctx.log = "ct:"+str(ct_in)
- self.publish_command('CT', ct_in)
- return true
- elif command == 0x0047 # ---------- StopMoveStep ----------
- # TODO, we don't really support it
- return true
- elif command == 0x004B # ---------- MoveColorTemperature ----------
- # TODO, we don't really support it
- return true
- elif command == 0x004C # ---------- StepColorTemperature ----------
- # TODO, we don't really support it
- return true
- end
-
- else
- return super(self).invoke_request(session, val, ctx)
- end
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("%s %s %s",
- self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
- self.web_value_ct()))
- end
-
- # Show on/off value as html
- def web_value_ct()
- var ct_html = ""
- if self.shadow_ct != nil
- var ct_k = (((1000000 / self.shadow_ct) + 25) / 50) * 50 # convert in Kelvin
- ct_html = format("%iK", ct_k)
- end
- return "⚪ " + ct_html;
- end
-end
-matter.Plugin_Bridge_Light2 = Matter_Plugin_Bridge_Light2
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
deleted file mode 100644
index 950048118..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_5_Bridge_Light3.be
+++ /dev/null
@@ -1,176 +0,0 @@
-#
-# Matter_Plugin_Bridge_Light3.be - implements the behavior for a remote generic Lighting (RGB) via HTTP
-#
-# Copyright (C) 2023 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Bridge_Light3,weak
-
-class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
- static var TYPE = "http_light3" # name of the plug-in in json
- static var DISPLAY_NAME = "Light 3 RGB" # display name of the plug-in
- # static var ARG = "relay" # additional argument name (or empty if none)
- # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- # 0x001D: inherited # Descriptor Cluster 9.5 p.453
- # 0x0003: inherited # Identify 1.2 p.16
- # 0x0004: inherited # Groups 1.3 p.21
- # 0x0005: inherited # Scenes 1.4 p.30 - no writable
- # 0x0006: inherited # On/Off 1.5 p.48
- # 0x0008: inherited # Level Control 1.6 p.57
- 0x0300: [0,1,7,8,0xF,0x4001,0x400A], # Color Control 3.2 p.111
- })
- static var TYPES = { 0x010D: 2 } # Extended Color Light
-
- var shadow_hue, shadow_sat # 0..254
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- end
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_update(data, index)
- super(self).parse_update(data, index)
-
- if index == 11 # Status 11
- var hsb = data.find("HSBColor")
- if hsb
- import string
- var hsb_list = string.split(hsb, ",")
- var hue = int(hsb_list[0])
- var sat = int(hsb_list[1])
- # dimmer is already available
-
- if hue != nil hue = tasmota.scale_uint(hue, 0, 360, 0, 254) else hue = self.shadow_hue end
- if sat != nil sat = tasmota.scale_uint(sat, 0, 100, 0, 254) else sat = self.shadow_sat end
- if hue != self.shadow_hue self.attribute_updated(0x0300, 0x0000) self.shadow_hue = hue end
- if sat != self.shadow_sat self.attribute_updated(0x0300, 0x0001) self.shadow_sat = sat end
- end
- end
- end
-
- #############################################################
- # Model
- #
- def set_hue(v)
- var hue_360 = tasmota.scale_uint(v, 0, 254, 0, 360)
- var ret = self.call_remote_sync("HSBColor1", hue_360)
- if ret != nil
- self.parse_update(ret, 11) # update shadow from return value
- end
- end
- def set_sat(v)
- var sat_100 = tasmota.scale_uint(v, 0, 254, 0, 100)
- var ret = self.call_remote_sync("HSBColor2", sat_100)
- if ret != nil
- self.parse_update(ret, 11) # update shadow from return value
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Light3.read_attribute
-
- #############################################################
- # Invoke a command
- #
- # returns a TLV object if successful, contains the response
- # or an `int` to indicate a status
- def invoke_request(session, val, ctx)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var command = ctx.command
-
- # ====================================================================================================
- if cluster == 0x0300 # ========== Color Control 3.2 p.111 ==========
- if command == 0x0000 # ---------- MoveToHue ----------
- var hue_in = val.findsubval(0) # Hue 0..254
- self.set_hue(hue_in)
- ctx.log = "hue:"+str(hue_in)
- self.publish_command('Hue', hue_in)
- return true
- elif command == 0x0001 # ---------- MoveHue ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0002 # ---------- StepHue ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0003 # ---------- MoveToSaturation ----------
- var sat_in = val.findsubval(0) # Sat 0..254
- self.set_sat(sat_in)
- ctx.log = "sat:"+str(sat_in)
- self.publish_command('Sat', sat_in)
- return true
- elif command == 0x0004 # ---------- MoveSaturation ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0005 # ---------- StepSaturation ----------
- # TODO, we don't really support it
- return true
- elif command == 0x0006 # ---------- MoveToHueAndSaturation ----------
- var hue_in = val.findsubval(0) # Hue 0..254
- var sat_in = val.findsubval(1) # Sat 0..254
- self.set_hue(hue_in)
- self.set_sat(sat_in)
- ctx.log = "hue:"+str(hue_in)+" sat:"+str(sat_in)
- self.publish_command('Hue', hue_in, 'Sat', sat_in)
- return true
- elif command == 0x0047 # ---------- StopMoveStep ----------
- # TODO, we don't really support it
- return true
- end
-
- else
- return super(self).invoke_request(session, val, ctx)
- end
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("%s %s %s",
- self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
- self.web_value_RGB()))
- end
-
- # Show on/off value as html
- def web_value_RGB()
- if self.shadow_hue != nil && self.shadow_sat != nil
- var l = light_state(3) # RGB virtual light state object
- l.set_bri(255) # set full brightness to get full range RGB
- l.set_huesat(tasmota.scale_uint(self.shadow_hue, 0, 254, 0, 360), tasmota.scale_uint(self.shadow_sat, 0, 254, 0, 255))
- var rgb_hex = format("#%02X%02X%02X", l.r, l.g, l.b)
- var rgb_html = format(' %s', rgb_hex, rgb_hex)
- return rgb_html
- end
- return ""
- end
-end
-matter.Plugin_Bridge_Light3 = Matter_Plugin_Bridge_Light3
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light0.be
new file mode 100644
index 000000000..e8c444908
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light0.be
@@ -0,0 +1,32 @@
+#
+# Matter_Plugin_Bridge_Light0.be - implements the behavior for a remote generic Lighting (OnOff only) via HTTP
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Light0,weak
+
+class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Light0
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_light0" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Light 0 On" # display name of the plug-in
+ static var UPDATE_TIME = 3000 # update every 3s
+end
+matter.Plugin_Bridge_Light0 = Matter_Plugin_Bridge_Light0
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light1.be
new file mode 100644
index 000000000..36df0c048
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light1.be
@@ -0,0 +1,34 @@
+#
+# Matter_Plugin_Bridge_Light1.be - implements the behavior for a remote generic Lighting (Dimmer) via HTTP
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Light1,weak
+
+class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Light1
+ static var BRIDGE = true
+ static var TYPE = "http_light1" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Light 1 Dimmer" # display name of the plug-in
+ static var ARG = "relay" # additional argument name (or empty if none)
+ static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 3000 # update every 3s
+end
+matter.Plugin_Bridge_Light1 = Matter_Plugin_Bridge_Light1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light2.be
new file mode 100644
index 000000000..85c6ca91d
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light2.be
@@ -0,0 +1,34 @@
+#
+# Matter_Plugin_Bridge_Light2.be - implements the behavior for a remote generic Lighting (CT) via HTTP
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Light2,weak
+
+class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Light2
+ static var BRIDGE = true
+ static var TYPE = "http_light2" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Light 2 CT" # display name of the plug-in
+ static var ARG = "relay" # additional argument name (or empty if none)
+ static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 3000 # update every 3s
+end
+matter.Plugin_Bridge_Light2 = Matter_Plugin_Bridge_Light2
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light3.be
new file mode 100644
index 000000000..0d41d6721
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Light3.be
@@ -0,0 +1,34 @@
+#
+# Matter_Plugin_Bridge_Light3.be - implements the behavior for a remote generic Lighting (RGB) via HTTP
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Light3,weak
+
+class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Light3
+ static var BRIDGE = true
+ static var TYPE = "http_light3" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Light 3 RGB" # display name of the plug-in
+ static var ARG = "relay" # additional argument name (or empty if none)
+ static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 3000 # update every 3s
+end
+matter.Plugin_Bridge_Light3 = Matter_Plugin_Bridge_Light3
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_OnOff.be
similarity index 100%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Bridge_OnOff.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_OnOff.be
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
similarity index 55%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
index b0515eb9e..c7a3571f0 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Bridge_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
@@ -23,69 +23,58 @@ import matter
#@ solidify:Matter_Plugin_Bridge_Sensor_Air_Quality,weak
-class Matter_Plugin_Bridge_Sensor_Air_Quality : Matter_Plugin_Bridge_HTTP
+class Matter_Plugin_Bridge_Sensor_Air_Quality : Matter_Plugin_Sensor_Air_Quality
+ static var BRIDGE = true
static var TYPE = "http_airquality" # name of the plug-in in json
- static var DISPLAY_NAME = "Air Quality" # display name of the plug-in
- static var ARG = "airquality" # additional argument name (or empty if none)
- static var ARG_HINT = "Sensor Model"
+ # static var DISPLAY_NAME = "Air Quality" # display name of the plug-in
+ # static var ARG = "airquality" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Sensor Model"
# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var UPDATE_TIME = 5000 # update every 5s
- static var UPDATE_CMD = "Status 8" # command to send for updates
+ static var UPDATE_CMD = "Status 10" # command to send for updates
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x005B: [0], # Air Quality - no writable
- 0x040D: [0,1,2,8,9], # Carbon Dioxide Concentration Measurement
- 0x042C: [0,1,2,8,9], # PM1 Concentration Measurement
- 0x042A: [0,1,2,8,9], # PM2.5 Concentration Measurement
- 0x042D: [0,1,2,8,9], # PM10 Concentration Measurement
- 0x042E: [0,1,2,8,9], # TVOC Total Volatile Organic Compounds Concentration Measurement
- 0x0413: [0,1,2,8,9], # Nitrogen Dioxide Concentration Measurement
- })
+ # static var CLUSTERS = matter.consolidate_clusters(_class, {
+ # 0x005B: [0], # Air Quality - no writable
+ # 0x040D: [0,1,2,8,9], # Carbon Dioxide Concentration Measurement
+ # 0x042C: [0,1,2,8,9], # PM1 Concentration Measurement
+ # 0x042A: [0,1,2,8,9], # PM2.5 Concentration Measurement
+ # 0x042D: [0,1,2,8,9], # PM10 Concentration Measurement
+ # 0x042E: [0,1,2,8,9], # TVOC Total Volatile Organic Compounds Concentration Measurement
+ # 0x0413: [0,1,2,8,9], # Nitrogen Dioxide Concentration Measurement
+ # })
- static var TYPES = { 0x002C: 1 } # Air Quality, rev 1
+ # static var TYPES = { 0x002C: 1 } # Air Quality, rev 1
- var prefix # key prefix in JSON
- var shadow_air_quality # Human readable air quality index
+ # var prefix # key prefix in JSON
+ # var shadow_air_quality # Human readable air quality index
# 0: Unknown
# 1: Good
# 4: Poor
- # var shadow_pb0_3
- # var shadow_pb0_5
- # var shadow_pb1
- # var shadow_pb2_5
- # var shadow_pb5
- # var shadow_pb10
- var shadow_pm1
- var shadow_pm2_5
- # var shadow_pm5
- var shadow_pm10
- var shadow_co2
- # var shadow_eco2
- var shadow_no2
- var shadow_tvoc
-
- #############################################################
- # Constructor
- def init(device, endpoint, arguments)
- super(self).init(device, endpoint, arguments)
- self.prefix = str(arguments.find(self.ARG))
- end
+ # # var shadow_pb0_3
+ # # var shadow_pb0_5
+ # # var shadow_pb1
+ # # var shadow_pb2_5
+ # # var shadow_pb5
+ # # var shadow_pb10
+ # var shadow_pm1
+ # var shadow_pm2_5
+ # # var shadow_pm5
+ # var shadow_pm10
+ # var shadow_co2
+ # # var shadow_eco2
+ # var shadow_no2
+ # var shadow_tvoc
#############################################################
# Stub for updating shadow values (local copies of what we published to the Matter gateway)
#
# This call is synnchronous and blocking.
- def parse_update(data, index)
- if index == 8 # Status 8
+ def parse_status(data, index)
+ if index == 10 # Status 10
var values = data.find(self.prefix)
end
end
- #############################################################
- # read an attribute
- #
- def read_attribute = matter.Plugin_Sensor_Air_Quality.read_attribute
-
#############################################################
# web_values
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Contact.be
new file mode 100644
index 000000000..4175ddf53
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Contact.be
@@ -0,0 +1,36 @@
+#
+# Matter_Plugin_Bridge_Sensor_Contact.be - implements Contact Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Contact,weak
+
+class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Sensor_Contact
+ static var BRIDGE = true
+ static var TYPE = "http_contact" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Contact" # display name of the plug-in
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 5000 # update every 5s
+ static var UPDATE_CMD = "Status 10" # command to send for updates
+end
+matter.Plugin_Bridge_Sensor_Contact = Matter_Plugin_Bridge_Sensor_Contact
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Flow.be
new file mode 100644
index 000000000..5dfc2309c
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Flow.be
@@ -0,0 +1,30 @@
+#
+# Matter_Plugin_Bridge_Sensor_Flow.be - implements base class for a Flow Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Flow,weak
+
+class Matter_Plugin_Bridge_Sensor_Flow : Matter_Plugin_Sensor_Flow
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_flow" # name of the plug-in in json
+end
+matter.Plugin_Bridge_Sensor_Flow = Matter_Plugin_Bridge_Sensor_Flow
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Humidity.be
new file mode 100644
index 000000000..17a79f087
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Humidity.be
@@ -0,0 +1,30 @@
+#
+# Matter_Plugin_Bridge_Sensor_Humidity.be - implements base class for a Humidity Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Humidity,weak
+
+class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Sensor_Humidity
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_humidity" # name of the plug-in in json
+end
+matter.Plugin_Bridge_Sensor_Humidity = Matter_Plugin_Bridge_Sensor_Humidity
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Illuminance.be
new file mode 100644
index 000000000..4e1df74c5
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Illuminance.be
@@ -0,0 +1,30 @@
+#
+# Matter_Plugin_Bridge_Sensor_Illuminance.be - implements base class for a Light/Illuminance Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Illuminance,weak
+
+class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Sensor_Illuminance
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_illuminance" # name of the plug-in in json
+end
+matter.Plugin_Bridge_Sensor_Illuminance = Matter_Plugin_Bridge_Sensor_Illuminance
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Occupancy.be
new file mode 100644
index 000000000..06cfe2fb5
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Occupancy.be
@@ -0,0 +1,36 @@
+#
+# Matter_Plugin_Bridge_Sensor_Occupancy.be - implements base class for a Occupancy Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Occupancy,weak
+
+class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Sensor_Occupancy
+ static var BRIDGE = true
+ static var TYPE = "http_occupancy" # name of the plug-in in json
+ # static var DISPLAY_NAME = "Occupancy" # display name of the plug-in
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 5000 # update every 5s
+ static var UPDATE_CMD = "Status 10" # command to send for updates
+end
+matter.Plugin_Bridge_Sensor_Occupancy = Matter_Plugin_Bridge_Sensor_Occupancy
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Pressure.be
new file mode 100644
index 000000000..978a21dd8
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Pressure.be
@@ -0,0 +1,30 @@
+#
+# Matter_Plugin_Bridge_Sensor_Temp.be - implements base class for a Pressure Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Pressure,weak
+
+class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Sensor_Pressure
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_pressure" # name of the plug-in in json
+end
+matter.Plugin_Bridge_Sensor_Pressure = Matter_Plugin_Bridge_Sensor_Pressure
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Temp.be
new file mode 100644
index 000000000..a30e6d56f
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Temp.be
@@ -0,0 +1,30 @@
+#
+# Matter_Plugin_Bridge_Sensor_Temp.be - implements base class for a Temperature Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Temp,weak
+
+class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Sensor_Temp
+ static var BRIDGE = true # flag as bridged device
+ static var TYPE = "http_temperature" # name of the plug-in in json
+end
+matter.Plugin_Bridge_Sensor_Temp = Matter_Plugin_Bridge_Sensor_Temp
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Waterleak.be
new file mode 100644
index 000000000..352c61995
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Waterleak.be
@@ -0,0 +1,32 @@
+#
+# Matter_Plugin_Bridge_Sensor_Waterleak.be - implements Waterleak Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2024 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Waterleak,weak
+
+class Matter_Plugin_Bridge_Sensor_Waterleak : Matter_Plugin_Sensor_Waterleak
+ static var BRIDGE = true
+ static var TYPE = "http_waterleak" # name of the plug-in in json
+ static var UPDATE_TIME = 5000 # update every 5s
+ static var UPDATE_CMD = "Status 10" # command to send for updates
+end
+matter.Plugin_Bridge_Sensor_Waterleak = Matter_Plugin_Bridge_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light0.be
index cbe90af7d..65eb8988b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light0.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Light0 : Matter_Plugin_Light0
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Light0 = Matter_Plugin_Virt_Light0
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light1.be
index 8697bf2df..be198d422 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light1.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light1.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Light1 : Matter_Plugin_Light1
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Light1 = Matter_Plugin_Virt_Light1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light2.be
index 20876b842..1a57172fd 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light2.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light2.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Light2 : Matter_Plugin_Light2
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Light2 = Matter_Plugin_Virt_Light2
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light3.be
index 15e7e2ae1..7889545e7 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light3.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Light3.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Light3 : Matter_Plugin_Light3
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Light3 = Matter_Plugin_Virt_Light3
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_OnOff.be
index d9bb5403b..fa501b373 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_OnOff.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_OnOff.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_OnOff : Matter_Plugin_OnOff
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_OnOff = Matter_Plugin_Virt_OnOff
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
index f969398c3..23218b55d 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Air_Quality.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Air_Quality : Matter_Plugin_Sensor_Air_Quality
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Air_Quality = Matter_Plugin_Virt_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Contact.be
index 0cf722866..af7b4aff1 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Contact.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Contact.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Contact : Matter_Plugin_Sensor_Contact
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Contact = Matter_Plugin_Virt_Sensor_Contact
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Flow.be
index e915ab77e..e79d85071 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Flow.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Flow.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Flow : Matter_Plugin_Sensor_Flow
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Flow = Matter_Plugin_Virt_Sensor_Flow
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Humidity.be
index 0fb033a55..e5644cd57 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Humidity.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Humidity.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Humidity : Matter_Plugin_Sensor_Humidity
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Humidity = Matter_Plugin_Virt_Sensor_Humidity
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Illuminance.be
index 76090f41a..1e44ac7f7 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Illuminance.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Illuminance.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Illuminance : Matter_Plugin_Sensor_Illuminance
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Illuminance = Matter_Plugin_Virt_Sensor_Illuminance
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Occupancy.be
index 9b4f82004..876db5536 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Occupancy.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Occupancy.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Occupancy : Matter_Plugin_Sensor_Occupancy
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Occupancy = Matter_Plugin_Virt_Sensor_Occupancy
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Pressure.be
index c661b2b0d..a610f09db 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Pressure.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Pressure.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Pressure : Matter_Plugin_Sensor_Pressure
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Pressure = Matter_Plugin_Virt_Sensor_Pressure
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Temp.be
index 8ad2b11e3..2b835a4be 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Temp.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Temp.be
@@ -29,6 +29,5 @@ class Matter_Plugin_Virt_Sensor_Temp : Matter_Plugin_Sensor_Temp
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Temp = Matter_Plugin_Virt_Sensor_Temp
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
index a2bde6498..63573b214 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
@@ -30,6 +30,5 @@ class Matter_Plugin_Virt_Sensor_Waterleak : Matter_Plugin_Virt_Sensor_Waterleak
static var ARG = "" # no arg for virtual device
static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
static var VIRTUAL = true # virtual device
-
end
matter.Plugin_Virt_Sensor_Waterleak = Matter_Plugin_Virt_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index a325ead88..0b31305b9 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -559,11 +559,11 @@ class Matter_UI
end
#---------------------------------------------------------------------- -#
- # Generate configuration map from Status 8 and Status 11
+ # Generate configuration map from Status 10 and Status 11
#
# Returns a list of maps: [ {"type":"temperature", "filter":"ESP32#Temperature"} ]
#---------------------------------------------------------------------- -#
- def generate_config_from_status(status8, status11)
+ def generate_config_from_status(status10, status11)
var config_list = []
# count `Power` and `Power`
@@ -614,7 +614,7 @@ class Matter_UI
# detect sensors
- config_list += self.device.autoconf_sensors_list(status8)
+ config_list += self.device.autoconf_sensors_list(status10)
return config_list
end
@@ -627,24 +627,24 @@ class Matter_UI
import json
if url == '' return end
- var timeout = matter.Plugin_Bridge_HTTP.PROBE_TIMEOUT
+ var timeout = matter.Plugin_Device.PROBE_TIMEOUT
var http_remote = matter.HTTP_remote(nil, url, timeout)
- # Status 8
- var status8 = http_remote.call_sync('Status 8', timeout)
- if status8 != nil status8 = json.load(status8) end
- if status8 != nil status8 = status8.find('StatusSNS') end
+ # Status 10
+ var status10 = http_remote.call_sync('Status 10', timeout)
+ if status10 != nil status10 = json.load(status10) end
+ if status10 != nil status10 = status10.find('StatusSNS') end
# Status 11
var status11
- if status8 != nil
+ if status10 != nil
status11 = http_remote.call_sync('Status 11', timeout)
if status11 != nil status11 = json.load(status11) end
if status11 != nil status11 = status11.find('StatusSTS') end
end
- if status8 != nil && status11 != nil
- tasmota.log(format("MTR: probed '%s' status8=%s satus11=%s", url, str(status8), str(status11)), 3)
+ if status10 != nil && status11 != nil
+ tasmota.log(format("MTR: probed '%s' status10=%s satus11=%s", url, str(status10), str(status11)), 3)
- var config_list = self.generate_config_from_status(status8, status11)
+ var config_list = self.generate_config_from_status(status10, status11)
self.show_plugins_hints_js(self._CLASSES_TYPES2)
@@ -1028,7 +1028,7 @@ class Matter_UI
while idx < size(self.device.plugins)
var plg = self.device.plugins[idx]
- if isinstance(plg, matter.Plugin_Bridge_HTTP)
+ if plg.BRIDGE
if bridge_plugin_by_host == nil bridge_plugin_by_host = {} end
var host = plg.http_remote.addr
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
index 8e516d7ac..3328ff109 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
@@ -7,39 +7,55 @@
extern const bclass be_class_Matter_HTTP_remote;
/********************************************************************
-** Solidified function: device_is_alive
+** Solidified function: add_schedule
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_device_is_alive, /* name */
+be_local_closure(class_Matter_HTTP_remote_add_schedule, /* name */
be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
+ 8, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(reachable),
- /* K1 */ be_nested_str_weak(reachable_utc),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(rtc_utc),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_update_time_map),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(jitter),
+ /* K5 */ be_nested_str_weak(add_async_cb),
}),
- be_str_weak(device_is_alive),
+ be_str_weak(add_schedule),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x78060006, // 0000 JMPF R1 #0008
- 0x50080200, // 0001 LDBOOL R2 1 0
- 0x90020002, // 0002 SETMBR R0 K0 R2
- 0xB80A0400, // 0003 GETNGBL R2 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020202, // 0006 SETMBR R0 K1 R2
- 0x70020001, // 0007 JMP #000A
- 0x50080000, // 0008 LDBOOL R2 0 0
- 0x90020002, // 0009 SETMBR R0 K0 R2
- 0x80000000, // 000A RET 0
+ ( &(const binstruction[25]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x7C100400, // 0003 CALL R4 2
+ 0x78120003, // 0004 JMPF R4 #0009
+ 0x88100100, // 0005 GETMBR R4 R0 K0
+ 0x94100801, // 0006 GETIDX R4 R4 R1
+ 0x14100404, // 0007 LT R4 R2 R4
+ 0x78120007, // 0008 JMPF R4 #0011
+ 0x88100100, // 0009 GETMBR R4 R0 K0
+ 0x98100202, // 000A SETIDX R4 R1 R2
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0xB8160600, // 000C GETNGBL R5 K3
+ 0x8C140B04, // 000D GETMET R5 R5 K4
+ 0x5C1C0400, // 000E MOVE R7 R2
+ 0x7C140400, // 000F CALL R5 2
+ 0x98100205, // 0010 SETIDX R4 R1 R5
+ 0x4C100000, // 0011 LDNIL R4
+ 0x20100604, // 0012 NE R4 R3 R4
+ 0x78120003, // 0013 JMPF R4 #0018
+ 0x8C100105, // 0014 GETMET R4 R0 K5
+ 0x5C180600, // 0015 MOVE R6 R3
+ 0x5C1C0200, // 0016 MOVE R7 R1
+ 0x7C100600, // 0017 CALL R4 3
+ 0x80000000, // 0018 RET 0
})
)
);
@@ -47,10 +63,95 @@ be_local_closure(class_Matter_HTTP_remote_device_is_alive, /* name */
/********************************************************************
-** Solidified function: parse_update
+** Solidified function: dispatch_cb
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_parse_update, /* name */
+be_local_closure(class_Matter_HTTP_remote_dispatch_cb, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(async_cb_map),
+ /* K2 */ be_nested_str_weak(keys),
+ /* K3 */ be_nested_str_weak(current_cmd),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(dispatch_cb),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x60100010, // 0001 GETGBL R4 G16
+ 0x88140101, // 0002 GETMBR R5 R0 K1
+ 0x8C140B02, // 0003 GETMET R5 R5 K2
+ 0x7C140200, // 0004 CALL R5 1
+ 0x7C100200, // 0005 CALL R4 1
+ 0xA802000F, // 0006 EXBLK 0 #0017
+ 0x5C140800, // 0007 MOVE R5 R4
+ 0x7C140000, // 0008 CALL R5 0
+ 0x88180101, // 0009 GETMBR R6 R0 K1
+ 0x94180C05, // 000A GETIDX R6 R6 R5
+ 0x881C0103, // 000B GETMBR R7 R0 K3
+ 0x1C1C0C07, // 000C EQ R7 R6 R7
+ 0x741E0002, // 000D JMPT R7 #0011
+ 0x4C1C0000, // 000E LDNIL R7
+ 0x1C1C0C07, // 000F EQ R7 R6 R7
+ 0x781E0004, // 0010 JMPF R7 #0016
+ 0x5C1C0A00, // 0011 MOVE R7 R5
+ 0x5C200200, // 0012 MOVE R8 R1
+ 0x5C240400, // 0013 MOVE R9 R2
+ 0x88280103, // 0014 GETMBR R10 R0 K3
+ 0x7C1C0600, // 0015 CALL R7 3
+ 0x7001FFEF, // 0016 JMP #0007
+ 0x58100004, // 0017 LDCONST R4 K4
+ 0xAC100200, // 0018 CATCH R4 1 0
+ 0xB0080000, // 0019 RAISE 2 R0 R0
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_info
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_get_info, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(info),
+ }),
+ be_str_weak(get_info),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status_http
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
be_nested_proto(
12, /* nstack */
3, /* argc */
@@ -90,7 +191,7 @@ be_local_closure(class_Matter_HTTP_remote_parse_update, /* name */
/* K26 */ be_nested_str_weak(UPDATE_CMD5),
/* K27 */ be_nested_str_weak(info_changed),
}),
- be_str_weak(parse_update),
+ be_str_weak(parse_status_http),
&be_const_str_solidified,
( &(const binstruction[145]) { /* code */
0x500C0000, // 0000 LDBOOL R3 0 0
@@ -245,120 +346,67 @@ be_local_closure(class_Matter_HTTP_remote_parse_update, /* name */
/********************************************************************
-** Solidified function: call_sync
+** Solidified function: set_info
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_call_sync, /* name */
+be_local_closure(class_Matter_HTTP_remote_set_info, /* name */
be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
+ 2, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[24]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(webserver),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(wifi),
- /* K4 */ be_nested_str_weak(up),
- /* K5 */ be_nested_str_weak(eth),
- /* K6 */ be_nested_str_weak(current_cmd),
- /* K7 */ be_nested_str_weak(_X2Fcm_X3Fcmnd_X3D),
- /* K8 */ be_nested_str_weak(tr),
- /* K9 */ be_nested_str_weak(_X20),
- /* K10 */ be_nested_str_weak(_X2B),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
- /* K13 */ be_nested_str_weak(addr),
- /* K14 */ be_nested_str_weak(port),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(begin_sync),
- /* K17 */ be_nested_str_weak(nil),
- /* K18 */ be_const_int(0),
- /* K19 */ be_nested_str_weak(_X2E_X2E_X2E),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X2Dresp_X20_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
- /* K21 */ be_nested_str_weak(millis),
- /* K22 */ be_nested_str_weak(time_start),
- /* K23 */ be_nested_str_weak(payload),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(info),
}),
- be_str_weak(call_sync),
+ be_str_weak(set_info),
&be_const_str_solidified,
- ( &(const binstruction[72]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0xA4120200, // 0001 IMPORT R4 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x7C140200, // 0004 CALL R5 1
- 0x94140B04, // 0005 GETIDX R5 R5 K4
- 0x74160006, // 0006 JMPT R5 #000E
- 0xB8160400, // 0007 GETNGBL R5 K2
- 0x8C140B05, // 0008 GETMET R5 R5 K5
- 0x7C140200, // 0009 CALL R5 1
- 0x94140B04, // 000A GETIDX R5 R5 K4
- 0x74160001, // 000B JMPT R5 #000E
- 0x4C140000, // 000C LDNIL R5
- 0x80040A00, // 000D RET 1 R5
- 0x4C140000, // 000E LDNIL R5
- 0x90020C05, // 000F SETMBR R0 K6 R5
- 0x8C140708, // 0010 GETMET R5 R3 K8
- 0x5C1C0200, // 0011 MOVE R7 R1
- 0x58200009, // 0012 LDCONST R8 K9
- 0x5824000A, // 0013 LDCONST R9 K10
- 0x7C140800, // 0014 CALL R5 4
- 0x00160E05, // 0015 ADD R5 K7 R5
- 0xB81A0400, // 0016 GETNGBL R6 K2
- 0x8C180D0B, // 0017 GETMET R6 R6 K11
- 0x60200018, // 0018 GETGBL R8 G24
- 0x5824000C, // 0019 LDCONST R9 K12
- 0x8828010D, // 001A GETMBR R10 R0 K13
- 0x882C010E, // 001B GETMBR R11 R0 K14
- 0x5C300A00, // 001C MOVE R12 R5
- 0x7C200800, // 001D CALL R8 4
- 0x5824000F, // 001E LDCONST R9 K15
- 0x7C180600, // 001F CALL R6 3
- 0x60180003, // 0020 GETGBL R6 G3
- 0x5C1C0000, // 0021 MOVE R7 R0
- 0x7C180200, // 0022 CALL R6 1
- 0x8C180D10, // 0023 GETMET R6 R6 K16
- 0x5C200A00, // 0024 MOVE R8 R5
- 0x5C240400, // 0025 MOVE R9 R2
- 0x7C180600, // 0026 CALL R6 3
- 0x781A0001, // 0027 JMPF R6 #002A
- 0x5C1C0C00, // 0028 MOVE R7 R6
- 0x70020000, // 0029 JMP #002B
- 0x581C0011, // 002A LDCONST R7 K17
- 0x6020000C, // 002B GETGBL R8 G12
- 0x5C240E00, // 002C MOVE R9 R7
- 0x7C200200, // 002D CALL R8 1
- 0x5426001D, // 002E LDINT R9 30
- 0x24201009, // 002F GT R8 R8 R9
- 0x78220004, // 0030 JMPF R8 #0036
- 0x5422001C, // 0031 LDINT R8 29
- 0x40222408, // 0032 CONNECT R8 K18 R8
- 0x94200E08, // 0033 GETIDX R8 R7 R8
- 0x00201113, // 0034 ADD R8 R8 K19
- 0x5C1C1000, // 0035 MOVE R7 R8
- 0xB8220400, // 0036 GETNGBL R8 K2
- 0x8C20110B, // 0037 GETMET R8 R8 K11
- 0x60280018, // 0038 GETGBL R10 G24
- 0x582C0014, // 0039 LDCONST R11 K20
- 0xB8320400, // 003A GETNGBL R12 K2
- 0x8C301915, // 003B GETMET R12 R12 K21
- 0x7C300200, // 003C CALL R12 1
- 0x88340116, // 003D GETMBR R13 R0 K22
- 0x0430180D, // 003E SUB R12 R12 R13
- 0x8834010D, // 003F GETMBR R13 R0 K13
- 0x6038000C, // 0040 GETGBL R14 G12
- 0x883C0117, // 0041 GETMBR R15 R0 K23
- 0x7C380200, // 0042 CALL R14 1
- 0x5C3C0E00, // 0043 MOVE R15 R7
- 0x7C280A00, // 0044 CALL R10 5
- 0x582C000F, // 0045 LDCONST R11 K15
- 0x7C200600, // 0046 CALL R8 3
- 0x80040C00, // 0047 RET 1 R6
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: device_is_alive
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_device_is_alive, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(reachable),
+ /* K1 */ be_nested_str_weak(reachable_utc),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(rtc_utc),
+ }),
+ be_str_weak(device_is_alive),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x78060006, // 0000 JMPF R1 #0008
+ 0x50080200, // 0001 LDBOOL R2 1 0
+ 0x90020002, // 0002 SETMBR R0 K0 R2
+ 0xB80A0400, // 0003 GETNGBL R2 K2
+ 0x8C080503, // 0004 GETMET R2 R2 K3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020202, // 0006 SETMBR R0 K1 R2
+ 0x70020001, // 0007 JMP #000A
+ 0x50080000, // 0008 LDBOOL R2 0 0
+ 0x90020002, // 0009 SETMBR R0 K0 R2
+ 0x80000000, // 000A RET 0
})
)
);
@@ -449,6 +497,113 @@ be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: probe_async
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_probe_async, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(webserver),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(wifi),
+ /* K4 */ be_nested_str_weak(up),
+ /* K5 */ be_nested_str_weak(eth),
+ /* K6 */ be_nested_str_weak(current_cmd),
+ /* K7 */ be_nested_str_weak(_X2Fcm_X3Fcmnd_X3D),
+ /* K8 */ be_nested_str_weak(tr),
+ /* K9 */ be_nested_str_weak(_X20),
+ /* K10 */ be_nested_str_weak(_X2B),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_nested_str_weak(port),
+ /* K15 */ be_nested_str_weak(begin),
+ }),
+ be_str_weak(probe_async),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0xB8120400, // 0002 GETNGBL R4 K2
+ 0x8C100903, // 0003 GETMET R4 R4 K3
+ 0x7C100200, // 0004 CALL R4 1
+ 0x94100904, // 0005 GETIDX R4 R4 K4
+ 0x74120006, // 0006 JMPT R4 #000E
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x8C100905, // 0008 GETMET R4 R4 K5
+ 0x7C100200, // 0009 CALL R4 1
+ 0x94100904, // 000A GETIDX R4 R4 K4
+ 0x74120001, // 000B JMPT R4 #000E
+ 0x4C100000, // 000C LDNIL R4
+ 0x80040800, // 000D RET 1 R4
+ 0x90020C01, // 000E SETMBR R0 K6 R1
+ 0x8C100508, // 000F GETMET R4 R2 K8
+ 0x5C180200, // 0010 MOVE R6 R1
+ 0x581C0009, // 0011 LDCONST R7 K9
+ 0x5820000A, // 0012 LDCONST R8 K10
+ 0x7C100800, // 0013 CALL R4 4
+ 0x00120E04, // 0014 ADD R4 K7 R4
+ 0xB8160400, // 0015 GETNGBL R5 K2
+ 0x8C140B0B, // 0016 GETMET R5 R5 K11
+ 0x601C0018, // 0017 GETGBL R7 G24
+ 0x5820000C, // 0018 LDCONST R8 K12
+ 0x8824010D, // 0019 GETMBR R9 R0 K13
+ 0x8828010E, // 001A GETMBR R10 R0 K14
+ 0x5C2C0800, // 001B MOVE R11 R4
+ 0x7C1C0800, // 001C CALL R7 4
+ 0x54220003, // 001D LDINT R8 4
+ 0x7C140600, // 001E CALL R5 3
+ 0x8C14010F, // 001F GETMET R5 R0 K15
+ 0x5C1C0800, // 0020 MOVE R7 R4
+ 0x7C140400, // 0021 CALL R5 2
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: info_changed
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_info_changed, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(info_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: web_last_seen
********************************************************************/
@@ -498,120 +653,313 @@ be_local_closure(class_Matter_HTTP_remote_web_last_seen, /* name */
/********************************************************************
-** Solidified function: event_http_failed
+** Solidified function: init
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_event_http_failed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(current_cmd),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20failed),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(dispatch_cb),
- /* K6 */ be_nested_str_weak(http_status),
- }),
- be_str_weak(event_http_failed),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x58100004, // 0008 LDCONST R4 K4
- 0x7C040600, // 0009 CALL R1 3
- 0x8C040105, // 000A GETMET R1 R0 K5
- 0x880C0106, // 000B GETMBR R3 R0 K6
- 0x4C100000, // 000C LDNIL R4
- 0x7C040600, // 000D CALL R1 3
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_status_response
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_parse_status_response, /* name */
+be_local_closure(class_Matter_HTTP_remote_init, /* name */
be_nested_proto(
11, /* nstack */
- 4, /* argc */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 4]) {
+ be_nested_proto(
+ 10, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status_response_and_call_method),
+ /* K1 */ be_nested_str_weak(parse_status_http),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x68200000, // 0005 GETUPV R8 U0
+ 0x68240000, // 0006 GETUPV R9 U0
+ 0x88241301, // 0007 GETMBR R9 R9 K1
+ 0x7C0C0C00, // 0008 CALL R3 6
+ 0x80040600, // 0009 RET 1 R3
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status_response_and_call_method),
+ /* K1 */ be_nested_str_weak(parse_status_http),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x68200000, // 0005 GETUPV R8 U0
+ 0x68240000, // 0006 GETUPV R9 U0
+ 0x88241301, // 0007 GETMBR R9 R9 K1
+ 0x7C0C0C00, // 0008 CALL R3 6
+ 0x80040600, // 0009 RET 1 R3
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status_response_and_call_method),
+ /* K1 */ be_nested_str_weak(parse_status_http),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x68200000, // 0005 GETUPV R8 U0
+ 0x68240000, // 0006 GETUPV R9 U0
+ 0x88241301, // 0007 GETMBR R9 R9 K1
+ 0x7C0C0C00, // 0008 CALL R3 6
+ 0x80040600, // 0009 RET 1 R3
+ })
+ ),
+ &be_class_Matter_HTTP_remote,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(probe_update_time_map),
+ /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
+ /* K3 */ be_nested_str_weak(async_cb_map),
+ /* K4 */ be_nested_str_weak(current_cmd),
+ /* K5 */ be_nested_str_weak(reachable),
+ /* K6 */ be_nested_str_weak(init),
+ /* K7 */ be_nested_str_weak(info),
+ /* K8 */ be_nested_str_weak(add_schedule),
+ /* K9 */ be_nested_str_weak(UPDATE_CMD0),
+ /* K10 */ be_nested_str_weak(UPDATE_TIME),
+ /* K11 */ be_nested_str_weak(UPDATE_CMD2),
+ /* K12 */ be_nested_str_weak(UPDATE_CMD5),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60140013, // 0001 GETGBL R5 G19
+ 0x7C140000, // 0002 CALL R5 0
+ 0x90020205, // 0003 SETMBR R0 K1 R5
+ 0x60140013, // 0004 GETGBL R5 G19
+ 0x7C140000, // 0005 CALL R5 0
+ 0x90020405, // 0006 SETMBR R0 K2 R5
+ 0x60140013, // 0007 GETGBL R5 G19
+ 0x7C140000, // 0008 CALL R5 0
+ 0x90020605, // 0009 SETMBR R0 K3 R5
+ 0x4C140000, // 000A LDNIL R5
+ 0x90020805, // 000B SETMBR R0 K4 R5
+ 0x50140000, // 000C LDBOOL R5 0 0
+ 0x90020A05, // 000D SETMBR R0 K5 R5
+ 0x60140003, // 000E GETGBL R5 G3
+ 0x5C180000, // 000F MOVE R6 R0
+ 0x7C140200, // 0010 CALL R5 1
+ 0x8C140B06, // 0011 GETMET R5 R5 K6
+ 0x5C1C0400, // 0012 MOVE R7 R2
+ 0x5422004F, // 0013 LDINT R8 80
+ 0x5C240600, // 0014 MOVE R9 R3
+ 0x5C280800, // 0015 MOVE R10 R4
+ 0x7C140A00, // 0016 CALL R5 5
+ 0x60140013, // 0017 GETGBL R5 G19
+ 0x7C140000, // 0018 CALL R5 0
+ 0x90020E05, // 0019 SETMBR R0 K7 R5
+ 0x88140100, // 001A GETMBR R5 R0 K0
+ 0x7816000E, // 001B JMPF R5 #002B
+ 0x8C140108, // 001C GETMET R5 R0 K8
+ 0x881C0109, // 001D GETMBR R7 R0 K9
+ 0x8820010A, // 001E GETMBR R8 R0 K10
+ 0x84240000, // 001F CLOSURE R9 P0
+ 0x7C140800, // 0020 CALL R5 4
+ 0x8C140108, // 0021 GETMET R5 R0 K8
+ 0x881C010B, // 0022 GETMBR R7 R0 K11
+ 0x8820010A, // 0023 GETMBR R8 R0 K10
+ 0x84240001, // 0024 CLOSURE R9 P1
+ 0x7C140800, // 0025 CALL R5 4
+ 0x8C140108, // 0026 GETMET R5 R0 K8
+ 0x881C010C, // 0027 GETMBR R7 R0 K12
+ 0x8820010A, // 0028 GETMBR R8 R0 K10
+ 0x84240002, // 0029 CLOSURE R9 P2
+ 0x7C140800, // 002A CALL R5 4
+ 0xA0000000, // 002B CLOSE R0
+ 0x80000000, // 002C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: change_schedule
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_change_schedule, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_update_time_map),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(jitter),
+ }),
+ be_str_weak(change_schedule),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x780E0007, // 0004 JMPF R3 #000D
+ 0x880C0100, // 0005 GETMBR R3 R0 K0
+ 0x980C0202, // 0006 SETIDX R3 R1 R2
+ 0x880C0102, // 0007 GETMBR R3 R0 K2
+ 0xB8120600, // 0008 GETNGBL R4 K3
+ 0x8C100904, // 0009 GETMET R4 R4 K4
+ 0x5C180400, // 000A MOVE R6 R2
+ 0x7C100400, // 000B CALL R4 2
+ 0x980C0204, // 000C SETIDX R3 R1 R4
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status_response_and_call_method
+********************************************************************/
+extern const bclass be_class_Matter_HTTP_remote;
+be_local_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 6, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_HTTP_remote,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(device_is_alive),
- /* K2 */ be_nested_str_weak(json),
- /* K3 */ be_nested_str_weak(load),
- /* K4 */ be_nested_str_weak(contains),
- /* K5 */ be_nested_str_weak(Status),
- /* K6 */ be_nested_str_weak(StatusFWR),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(StatusNET),
- /* K9 */ be_nested_str_weak(parse_update),
+ /* K2 */ be_nested_str_weak(string),
+ /* K3 */ be_nested_str_weak(json),
+ /* K4 */ be_nested_str_weak(load),
+ /* K5 */ be_nested_str_weak(STATUS_PREFIX),
+ /* K6 */ be_nested_str_weak(contains),
+ /* K7 */ be_const_int(1),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(log),
+ /* K10 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X20failed_X20to_X20parse_X20JSON_X20response_X20payload_X3D_X25s),
+ /* K11 */ be_const_int(3),
}),
- be_str_weak(parse_status_response),
+ be_str_weak(parse_status_response_and_call_method),
&be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x20100204, // 0001 NE R4 R1 R4
- 0x78120022, // 0002 JMPF R4 #0026
- 0x24100300, // 0003 GT R4 R1 K0
- 0x78120020, // 0004 JMPF R4 #0026
- 0x8C100101, // 0005 GETMET R4 R0 K1
- 0x50180200, // 0006 LDBOOL R6 1 0
- 0x7C100400, // 0007 CALL R4 2
- 0xA4120400, // 0008 IMPORT R4 K2
- 0x8C140903, // 0009 GETMET R5 R4 K3
- 0x5C1C0400, // 000A MOVE R7 R2
- 0x7C140400, // 000B CALL R5 2
- 0x4C180000, // 000C LDNIL R6
- 0x78160017, // 000D JMPF R5 #0026
- 0x8C1C0B04, // 000E GETMET R7 R5 K4
- 0x58240005, // 000F LDCONST R9 K5
- 0x7C1C0400, // 0010 CALL R7 2
- 0x781E0002, // 0011 JMPF R7 #0015
- 0x94140B05, // 0012 GETIDX R5 R5 K5
- 0x58180000, // 0013 LDCONST R6 K0
- 0x7002000C, // 0014 JMP #0022
- 0x8C1C0B04, // 0015 GETMET R7 R5 K4
- 0x58240006, // 0016 LDCONST R9 K6
- 0x7C1C0400, // 0017 CALL R7 2
- 0x781E0002, // 0018 JMPF R7 #001C
- 0x94140B06, // 0019 GETIDX R5 R5 K6
- 0x58180007, // 001A LDCONST R6 K7
- 0x70020005, // 001B JMP #0022
- 0x8C1C0B04, // 001C GETMET R7 R5 K4
- 0x58240008, // 001D LDCONST R9 K8
- 0x7C1C0400, // 001E CALL R7 2
- 0x781E0001, // 001F JMPF R7 #0022
- 0x94140B08, // 0020 GETIDX R5 R5 K8
- 0x541A0004, // 0021 LDINT R6 5
- 0x8C1C0109, // 0022 GETMET R7 R0 K9
- 0x5C240A00, // 0023 MOVE R9 R5
- 0x5C280C00, // 0024 MOVE R10 R6
- 0x7C1C0600, // 0025 CALL R7 3
- 0x80000000, // 0026 RET 0
+ ( &(const binstruction[58]) { /* code */
+ 0x4C180000, // 0000 LDNIL R6
+ 0x20180206, // 0001 NE R6 R1 R6
+ 0x781A0035, // 0002 JMPF R6 #0039
+ 0x24180300, // 0003 GT R6 R1 K0
+ 0x781A0033, // 0004 JMPF R6 #0039
+ 0x8C180101, // 0005 GETMET R6 R0 K1
+ 0x50200200, // 0006 LDBOOL R8 1 0
+ 0x7C180400, // 0007 CALL R6 2
+ 0x5C180400, // 0008 MOVE R6 R2
+ 0x601C0004, // 0009 GETGBL R7 G4
+ 0x5C200C00, // 000A MOVE R8 R6
+ 0x7C1C0200, // 000B CALL R7 1
+ 0x1C1C0F02, // 000C EQ R7 R7 K2
+ 0x781E0004, // 000D JMPF R7 #0013
+ 0xA41E0600, // 000E IMPORT R7 K3
+ 0x8C200F04, // 000F GETMET R8 R7 K4
+ 0x5C280C00, // 0010 MOVE R10 R6
+ 0x7C200400, // 0011 CALL R8 2
+ 0x5C181000, // 0012 MOVE R6 R8
+ 0x4C1C0000, // 0013 LDNIL R7
+ 0x4C200000, // 0014 LDNIL R8
+ 0x20200C08, // 0015 NE R8 R6 R8
+ 0x78220019, // 0016 JMPF R8 #0031
+ 0x58200000, // 0017 LDCONST R8 K0
+ 0x88240105, // 0018 GETMBR R9 R0 K5
+ 0x6028000C, // 0019 GETGBL R10 G12
+ 0x5C2C1200, // 001A MOVE R11 R9
+ 0x7C280200, // 001B CALL R10 1
+ 0x1428100A, // 001C LT R10 R8 R10
+ 0x782A000C, // 001D JMPF R10 #002B
+ 0x94281208, // 001E GETIDX R10 R9 R8
+ 0x4C2C0000, // 001F LDNIL R11
+ 0x202C140B, // 0020 NE R11 R10 R11
+ 0x782E0006, // 0021 JMPF R11 #0029
+ 0x8C2C0D06, // 0022 GETMET R11 R6 K6
+ 0x5C341400, // 0023 MOVE R13 R10
+ 0x7C2C0400, // 0024 CALL R11 2
+ 0x782E0002, // 0025 JMPF R11 #0029
+ 0x94180C0A, // 0026 GETIDX R6 R6 R10
+ 0x5C1C1000, // 0027 MOVE R7 R8
+ 0x70020001, // 0028 JMP #002B
+ 0x00201107, // 0029 ADD R8 R8 K7
+ 0x7001FFED, // 002A JMP #0019
+ 0x5C280A00, // 002B MOVE R10 R5
+ 0x5C2C0800, // 002C MOVE R11 R4
+ 0x5C300C00, // 002D MOVE R12 R6
+ 0x5C340E00, // 002E MOVE R13 R7
+ 0x7C280600, // 002F CALL R10 3
+ 0x70020007, // 0030 JMP #0039
+ 0xB8221000, // 0031 GETNGBL R8 K8
+ 0x8C201109, // 0032 GETMET R8 R8 K9
+ 0x60280018, // 0033 GETGBL R10 G24
+ 0x582C000A, // 0034 LDCONST R11 K10
+ 0x5C300400, // 0035 MOVE R12 R2
+ 0x7C280400, // 0036 CALL R10 2
+ 0x582C000B, // 0037 LDCONST R11 K11
+ 0x7C200600, // 0038 CALL R8 3
+ 0x80000000, // 0039 RET 0
})
)
);
@@ -619,116 +967,120 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_response, /* name */
/********************************************************************
-** Solidified function: get_info
+** Solidified function: call_sync
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_get_info, /* name */
+be_local_closure(class_Matter_HTTP_remote_call_sync, /* name */
be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
+ 16, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(info),
+ ( &(const bvalue[24]) { /* constants */
+ /* K0 */ be_nested_str_weak(string),
+ /* K1 */ be_nested_str_weak(webserver),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(wifi),
+ /* K4 */ be_nested_str_weak(up),
+ /* K5 */ be_nested_str_weak(eth),
+ /* K6 */ be_nested_str_weak(current_cmd),
+ /* K7 */ be_nested_str_weak(_X2Fcm_X3Fcmnd_X3D),
+ /* K8 */ be_nested_str_weak(tr),
+ /* K9 */ be_nested_str_weak(_X20),
+ /* K10 */ be_nested_str_weak(_X2B),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_nested_str_weak(port),
+ /* K15 */ be_nested_str_weak(begin_sync),
+ /* K16 */ be_nested_str_weak(nil),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(_X2E_X2E_X2E),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X2Dresp_X20_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
+ /* K20 */ be_nested_str_weak(millis),
+ /* K21 */ be_nested_str_weak(time_start),
+ /* K22 */ be_nested_str_weak(payload),
+ /* K23 */ be_const_int(3),
}),
- be_str_weak(get_info),
+ be_str_weak(call_sync),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: event_http_timeout
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_event_http_timeout, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(current_cmd),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i),
- /* K4 */ be_nested_str_weak(http_status),
- /* K5 */ be_nested_str_weak(phase),
- /* K6 */ be_nested_str_weak(status),
- /* K7 */ be_nested_str_weak(payload),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(dispatch_cb),
- }),
- be_str_weak(event_http_timeout),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x600C0018, // 0007 GETGBL R3 G24
- 0x58100003, // 0008 LDCONST R4 K3
- 0x88140104, // 0009 GETMBR R5 R0 K4
- 0x88180105, // 000A GETMBR R6 R0 K5
- 0x881C0106, // 000B GETMBR R7 R0 K6
- 0x6020000C, // 000C GETGBL R8 G12
- 0x88240107, // 000D GETMBR R9 R0 K7
- 0x7C200200, // 000E CALL R8 1
- 0x7C0C0A00, // 000F CALL R3 5
- 0x58100008, // 0010 LDCONST R4 K8
- 0x7C040600, // 0011 CALL R1 3
- 0x8C040109, // 0012 GETMET R1 R0 K9
- 0x880C0104, // 0013 GETMBR R3 R0 K4
- 0x4C100000, // 0014 LDNIL R4
- 0x7C040600, // 0015 CALL R1 3
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: info_changed
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_info_changed, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(info_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
+ ( &(const binstruction[72]) { /* code */
+ 0xA40E0000, // 0000 IMPORT R3 K0
+ 0xA4120200, // 0001 IMPORT R4 K1
+ 0xB8160400, // 0002 GETNGBL R5 K2
+ 0x8C140B03, // 0003 GETMET R5 R5 K3
+ 0x7C140200, // 0004 CALL R5 1
+ 0x94140B04, // 0005 GETIDX R5 R5 K4
+ 0x74160006, // 0006 JMPT R5 #000E
+ 0xB8160400, // 0007 GETNGBL R5 K2
+ 0x8C140B05, // 0008 GETMET R5 R5 K5
+ 0x7C140200, // 0009 CALL R5 1
+ 0x94140B04, // 000A GETIDX R5 R5 K4
+ 0x74160001, // 000B JMPT R5 #000E
+ 0x4C140000, // 000C LDNIL R5
+ 0x80040A00, // 000D RET 1 R5
+ 0x4C140000, // 000E LDNIL R5
+ 0x90020C05, // 000F SETMBR R0 K6 R5
+ 0x8C140708, // 0010 GETMET R5 R3 K8
+ 0x5C1C0200, // 0011 MOVE R7 R1
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x5824000A, // 0013 LDCONST R9 K10
+ 0x7C140800, // 0014 CALL R5 4
+ 0x00160E05, // 0015 ADD R5 K7 R5
+ 0xB81A0400, // 0016 GETNGBL R6 K2
+ 0x8C180D0B, // 0017 GETMET R6 R6 K11
+ 0x60200018, // 0018 GETGBL R8 G24
+ 0x5824000C, // 0019 LDCONST R9 K12
+ 0x8828010D, // 001A GETMBR R10 R0 K13
+ 0x882C010E, // 001B GETMBR R11 R0 K14
+ 0x5C300A00, // 001C MOVE R12 R5
+ 0x7C200800, // 001D CALL R8 4
+ 0x54260003, // 001E LDINT R9 4
+ 0x7C180600, // 001F CALL R6 3
+ 0x60180003, // 0020 GETGBL R6 G3
+ 0x5C1C0000, // 0021 MOVE R7 R0
+ 0x7C180200, // 0022 CALL R6 1
+ 0x8C180D0F, // 0023 GETMET R6 R6 K15
+ 0x5C200A00, // 0024 MOVE R8 R5
+ 0x5C240400, // 0025 MOVE R9 R2
+ 0x7C180600, // 0026 CALL R6 3
+ 0x781A0001, // 0027 JMPF R6 #002A
+ 0x5C1C0C00, // 0028 MOVE R7 R6
+ 0x70020000, // 0029 JMP #002B
+ 0x581C0010, // 002A LDCONST R7 K16
+ 0x6020000C, // 002B GETGBL R8 G12
+ 0x5C240E00, // 002C MOVE R9 R7
+ 0x7C200200, // 002D CALL R8 1
+ 0x5426001D, // 002E LDINT R9 30
+ 0x24201009, // 002F GT R8 R8 R9
+ 0x78220004, // 0030 JMPF R8 #0036
+ 0x5422001C, // 0031 LDINT R8 29
+ 0x40222208, // 0032 CONNECT R8 K17 R8
+ 0x94200E08, // 0033 GETIDX R8 R7 R8
+ 0x00201112, // 0034 ADD R8 R8 K18
+ 0x5C1C1000, // 0035 MOVE R7 R8
+ 0xB8220400, // 0036 GETNGBL R8 K2
+ 0x8C20110B, // 0037 GETMET R8 R8 K11
+ 0x60280018, // 0038 GETGBL R10 G24
+ 0x582C0013, // 0039 LDCONST R11 K19
+ 0xB8320400, // 003A GETNGBL R12 K2
+ 0x8C301914, // 003B GETMET R12 R12 K20
+ 0x7C300200, // 003C CALL R12 1
+ 0x88340115, // 003D GETMBR R13 R0 K21
+ 0x0430180D, // 003E SUB R12 R12 R13
+ 0x8834010D, // 003F GETMBR R13 R0 K13
+ 0x6038000C, // 0040 GETGBL R14 G12
+ 0x883C0116, // 0041 GETMBR R15 R0 K22
+ 0x7C380200, // 0042 CALL R14 1
+ 0x5C3C0E00, // 0043 MOVE R15 R7
+ 0x7C280A00, // 0044 CALL R10 5
+ 0x582C0017, // 0045 LDCONST R11 K23
+ 0x7C200600, // 0046 CALL R8 3
+ 0x80040C00, // 0047 RET 1 R6
})
)
);
@@ -837,132 +1189,46 @@ be_local_closure(class_Matter_HTTP_remote_scheduler, /* name */
/********************************************************************
-** Solidified function: add_schedule
+** Solidified function: event_http_failed
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_add_schedule, /* name */
+be_local_closure(class_Matter_HTTP_remote_event_http_failed, /* name */
be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
+ 5, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_update_time_map),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(jitter),
- /* K5 */ be_nested_str_weak(add_async_cb),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(current_cmd),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20failed),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(dispatch_cb),
+ /* K6 */ be_nested_str_weak(http_status),
}),
- be_str_weak(add_schedule),
+ be_str_weak(event_http_failed),
&be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x5C180200, // 0002 MOVE R6 R1
- 0x7C100400, // 0003 CALL R4 2
- 0x78120003, // 0004 JMPF R4 #0009
- 0x88100100, // 0005 GETMBR R4 R0 K0
- 0x94100801, // 0006 GETIDX R4 R4 R1
- 0x14100404, // 0007 LT R4 R2 R4
- 0x78120007, // 0008 JMPF R4 #0011
- 0x88100100, // 0009 GETMBR R4 R0 K0
- 0x98100202, // 000A SETIDX R4 R1 R2
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0xB8160600, // 000C GETNGBL R5 K3
- 0x8C140B04, // 000D GETMET R5 R5 K4
- 0x5C1C0400, // 000E MOVE R7 R2
- 0x7C140400, // 000F CALL R5 2
- 0x98100205, // 0010 SETIDX R4 R1 R5
- 0x4C100000, // 0011 LDNIL R4
- 0x20100604, // 0012 NE R4 R3 R4
- 0x78120003, // 0013 JMPF R4 #0018
- 0x8C100105, // 0014 GETMET R4 R0 K5
- 0x5C180600, // 0015 MOVE R6 R3
- 0x5C1C0200, // 0016 MOVE R7 R1
- 0x7C100600, // 0017 CALL R4 3
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: probe_async
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_probe_async, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(string),
- /* K1 */ be_nested_str_weak(webserver),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(wifi),
- /* K4 */ be_nested_str_weak(up),
- /* K5 */ be_nested_str_weak(eth),
- /* K6 */ be_nested_str_weak(current_cmd),
- /* K7 */ be_nested_str_weak(_X2Fcm_X3Fcmnd_X3D),
- /* K8 */ be_nested_str_weak(tr),
- /* K9 */ be_nested_str_weak(_X20),
- /* K10 */ be_nested_str_weak(_X2B),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
- /* K13 */ be_nested_str_weak(addr),
- /* K14 */ be_nested_str_weak(port),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(begin),
- }),
- be_str_weak(probe_async),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0xB8120400, // 0002 GETNGBL R4 K2
- 0x8C100903, // 0003 GETMET R4 R4 K3
- 0x7C100200, // 0004 CALL R4 1
- 0x94100904, // 0005 GETIDX R4 R4 K4
- 0x74120006, // 0006 JMPT R4 #000E
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x8C100905, // 0008 GETMET R4 R4 K5
- 0x7C100200, // 0009 CALL R4 1
- 0x94100904, // 000A GETIDX R4 R4 K4
- 0x74120001, // 000B JMPT R4 #000E
+ ( &(const binstruction[15]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060000, // 0003 JMPF R1 #0005
+ 0x80000200, // 0004 RET 0
+ 0xB8060200, // 0005 GETNGBL R1 K1
+ 0x8C040302, // 0006 GETMET R1 R1 K2
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x58100004, // 0008 LDCONST R4 K4
+ 0x7C040600, // 0009 CALL R1 3
+ 0x8C040105, // 000A GETMET R1 R0 K5
+ 0x880C0106, // 000B GETMBR R3 R0 K6
0x4C100000, // 000C LDNIL R4
- 0x80040800, // 000D RET 1 R4
- 0x90020C01, // 000E SETMBR R0 K6 R1
- 0x8C100508, // 000F GETMET R4 R2 K8
- 0x5C180200, // 0010 MOVE R6 R1
- 0x581C0009, // 0011 LDCONST R7 K9
- 0x5820000A, // 0012 LDCONST R8 K10
- 0x7C100800, // 0013 CALL R4 4
- 0x00120E04, // 0014 ADD R4 K7 R4
- 0xB8160400, // 0015 GETNGBL R5 K2
- 0x8C140B0B, // 0016 GETMET R5 R5 K11
- 0x601C0018, // 0017 GETGBL R7 G24
- 0x5820000C, // 0018 LDCONST R8 K12
- 0x8824010D, // 0019 GETMBR R9 R0 K13
- 0x8828010E, // 001A GETMBR R10 R0 K14
- 0x5C2C0800, // 001B MOVE R11 R4
- 0x7C1C0800, // 001C CALL R7 4
- 0x5820000F, // 001D LDCONST R8 K15
- 0x7C140600, // 001E CALL R5 3
- 0x8C140110, // 001F GETMET R5 R0 K16
- 0x5C1C0800, // 0020 MOVE R7 R4
- 0x7C140400, // 0021 CALL R5 2
- 0x80000000, // 0022 RET 0
+ 0x7C040600, // 000D CALL R1 3
+ 0x80000000, // 000E RET 0
})
)
);
@@ -999,291 +1265,57 @@ be_local_closure(class_Matter_HTTP_remote_add_async_cb, /* name */
/********************************************************************
-** Solidified function: set_info
+** Solidified function: event_http_timeout
********************************************************************/
extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_set_info, /* name */
+be_local_closure(class_Matter_HTTP_remote_event_http_timeout, /* name */
be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
+ 10, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(info),
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(current_cmd),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i),
+ /* K4 */ be_nested_str_weak(http_status),
+ /* K5 */ be_nested_str_weak(phase),
+ /* K6 */ be_nested_str_weak(status),
+ /* K7 */ be_nested_str_weak(payload),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(dispatch_cb),
}),
- be_str_weak(set_info),
+ be_str_weak(event_http_timeout),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: dispatch_cb
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_dispatch_cb, /* name */
- be_nested_proto(
- 11, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(async_cb_map),
- /* K2 */ be_nested_str_weak(keys),
- /* K3 */ be_nested_str_weak(current_cmd),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(dispatch_cb),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x60100010, // 0001 GETGBL R4 G16
- 0x88140101, // 0002 GETMBR R5 R0 K1
- 0x8C140B02, // 0003 GETMET R5 R5 K2
- 0x7C140200, // 0004 CALL R5 1
- 0x7C100200, // 0005 CALL R4 1
- 0xA802000F, // 0006 EXBLK 0 #0017
- 0x5C140800, // 0007 MOVE R5 R4
- 0x7C140000, // 0008 CALL R5 0
- 0x88180101, // 0009 GETMBR R6 R0 K1
- 0x94180C05, // 000A GETIDX R6 R6 R5
- 0x881C0103, // 000B GETMBR R7 R0 K3
- 0x1C1C0C07, // 000C EQ R7 R6 R7
- 0x741E0002, // 000D JMPT R7 #0011
- 0x4C1C0000, // 000E LDNIL R7
- 0x1C1C0C07, // 000F EQ R7 R6 R7
- 0x781E0004, // 0010 JMPF R7 #0016
- 0x5C1C0A00, // 0011 MOVE R7 R5
- 0x5C200200, // 0012 MOVE R8 R1
- 0x5C240400, // 0013 MOVE R9 R2
- 0x88280103, // 0014 GETMBR R10 R0 K3
- 0x7C1C0600, // 0015 CALL R7 3
- 0x7001FFEF, // 0016 JMP #0007
- 0x58100004, // 0017 LDCONST R4 K4
- 0xAC100200, // 0018 CATCH R4 1 0
- 0xB0080000, // 0019 RAISE 2 R0 R0
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: change_schedule
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_change_schedule, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_HTTP_remote,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_update_time_map),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(jitter),
- }),
- be_str_weak(change_schedule),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x780E0007, // 0004 JMPF R3 #000D
- 0x880C0100, // 0005 GETMBR R3 R0 K0
- 0x980C0202, // 0006 SETIDX R3 R1 R2
- 0x880C0102, // 0007 GETMBR R3 R0 K2
- 0xB8120600, // 0008 GETNGBL R4 K3
- 0x8C100904, // 0009 GETMET R4 R4 K4
- 0x5C180400, // 000A MOVE R6 R2
- 0x7C100400, // 000B CALL R4 2
- 0x980C0204, // 000C SETIDX R3 R1 R4
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_HTTP_remote;
-be_local_closure(class_Matter_HTTP_remote_init, /* name */
- be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 4]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_status_response),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_status_response),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_status_response),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_HTTP_remote,
- }),
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(probe_update_time_map),
- /* K2 */ be_nested_str_weak(probe_next_timestamp_map),
- /* K3 */ be_nested_str_weak(async_cb_map),
- /* K4 */ be_nested_str_weak(current_cmd),
- /* K5 */ be_nested_str_weak(reachable),
- /* K6 */ be_nested_str_weak(init),
- /* K7 */ be_nested_str_weak(info),
- /* K8 */ be_nested_str_weak(add_schedule),
- /* K9 */ be_nested_str_weak(UPDATE_CMD0),
- /* K10 */ be_nested_str_weak(UPDATE_TIME),
- /* K11 */ be_nested_str_weak(UPDATE_CMD2),
- /* K12 */ be_nested_str_weak(UPDATE_CMD5),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60140013, // 0001 GETGBL R5 G19
- 0x7C140000, // 0002 CALL R5 0
- 0x90020205, // 0003 SETMBR R0 K1 R5
- 0x60140013, // 0004 GETGBL R5 G19
- 0x7C140000, // 0005 CALL R5 0
- 0x90020405, // 0006 SETMBR R0 K2 R5
- 0x60140013, // 0007 GETGBL R5 G19
- 0x7C140000, // 0008 CALL R5 0
- 0x90020605, // 0009 SETMBR R0 K3 R5
- 0x4C140000, // 000A LDNIL R5
- 0x90020805, // 000B SETMBR R0 K4 R5
- 0x50140000, // 000C LDBOOL R5 0 0
- 0x90020A05, // 000D SETMBR R0 K5 R5
- 0x60140003, // 000E GETGBL R5 G3
- 0x5C180000, // 000F MOVE R6 R0
- 0x7C140200, // 0010 CALL R5 1
- 0x8C140B06, // 0011 GETMET R5 R5 K6
- 0x5C1C0400, // 0012 MOVE R7 R2
- 0x5422004F, // 0013 LDINT R8 80
- 0x5C240600, // 0014 MOVE R9 R3
- 0x5C280800, // 0015 MOVE R10 R4
- 0x7C140A00, // 0016 CALL R5 5
- 0x60140013, // 0017 GETGBL R5 G19
- 0x7C140000, // 0018 CALL R5 0
- 0x90020E05, // 0019 SETMBR R0 K7 R5
- 0x88140100, // 001A GETMBR R5 R0 K0
- 0x7816000E, // 001B JMPF R5 #002B
- 0x8C140108, // 001C GETMET R5 R0 K8
- 0x881C0109, // 001D GETMBR R7 R0 K9
- 0x8820010A, // 001E GETMBR R8 R0 K10
- 0x84240000, // 001F CLOSURE R9 P0
- 0x7C140800, // 0020 CALL R5 4
- 0x8C140108, // 0021 GETMET R5 R0 K8
- 0x881C010B, // 0022 GETMBR R7 R0 K11
- 0x8820010A, // 0023 GETMBR R8 R0 K10
- 0x84240001, // 0024 CLOSURE R9 P1
- 0x7C140800, // 0025 CALL R5 4
- 0x8C140108, // 0026 GETMET R5 R0 K8
- 0x881C010C, // 0027 GETMBR R7 R0 K12
- 0x8820010A, // 0028 GETMBR R8 R0 K10
- 0x84240002, // 0029 CLOSURE R9 P2
- 0x7C140800, // 002A CALL R5 4
- 0xA0000000, // 002B CLOSE R0
- 0x80000000, // 002C RET 0
+ ( &(const binstruction[23]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060000, // 0003 JMPF R1 #0005
+ 0x80000200, // 0004 RET 0
+ 0xB8060200, // 0005 GETNGBL R1 K1
+ 0x8C040302, // 0006 GETMET R1 R1 K2
+ 0x600C0018, // 0007 GETGBL R3 G24
+ 0x58100003, // 0008 LDCONST R4 K3
+ 0x88140104, // 0009 GETMBR R5 R0 K4
+ 0x88180105, // 000A GETMBR R6 R0 K5
+ 0x881C0106, // 000B GETMBR R7 R0 K6
+ 0x6020000C, // 000C GETGBL R8 G12
+ 0x88240107, // 000D GETMBR R9 R0 K7
+ 0x7C200200, // 000E CALL R8 1
+ 0x7C0C0A00, // 000F CALL R3 5
+ 0x58100008, // 0010 LDCONST R4 K8
+ 0x7C040600, // 0011 CALL R1 3
+ 0x8C040109, // 0012 GETMET R1 R0 K9
+ 0x880C0104, // 0013 GETMBR R3 R0 K4
+ 0x4C100000, // 0014 LDNIL R4
+ 0x7C040600, // 0015 CALL R1 3
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -1297,39 +1329,57 @@ extern const bclass be_class_Matter_HTTP_async;
be_local_class(Matter_HTTP_remote,
8,
&be_class_Matter_HTTP_async,
- be_nested_map(31,
+ be_nested_map(32,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(device_is_alive, -1), be_const_closure(class_Matter_HTTP_remote_device_is_alive_closure) },
- { be_const_key_weak(reachable, 21), be_const_var(5) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_HTTP_remote_parse_update_closure) },
- { be_const_key_weak(UPDATE_TIME, 7), be_const_int(5000) },
- { be_const_key_weak(web_last_seen, 30), be_const_closure(class_Matter_HTTP_remote_web_last_seen_closure) },
- { be_const_key_weak(call_sync, 4), be_const_closure(class_Matter_HTTP_remote_call_sync_closure) },
- { be_const_key_weak(change_schedule, 19), be_const_closure(class_Matter_HTTP_remote_change_schedule_closure) },
- { be_const_key_weak(device, -1), be_const_var(0) },
- { be_const_key_weak(UPDATE_CMD5, -1), be_nested_str_weak(Status_X205) },
- { be_const_key_weak(get_info, 17), be_const_closure(class_Matter_HTTP_remote_get_info_closure) },
- { be_const_key_weak(info, -1), be_const_var(7) },
- { be_const_key_weak(event_http_timeout, -1), be_const_closure(class_Matter_HTTP_remote_event_http_timeout_closure) },
- { be_const_key_weak(info_changed, -1), be_const_closure(class_Matter_HTTP_remote_info_changed_closure) },
{ be_const_key_weak(add_schedule, -1), be_const_closure(class_Matter_HTTP_remote_add_schedule_closure) },
+ { be_const_key_weak(event_http_timeout, 10), be_const_closure(class_Matter_HTTP_remote_event_http_timeout_closure) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(add_async_cb, 31), be_const_closure(class_Matter_HTTP_remote_add_async_cb_closure) },
+ { be_const_key_weak(get_info, -1), be_const_closure(class_Matter_HTTP_remote_get_info_closure) },
+ { be_const_key_weak(info, 21), be_const_var(7) },
+ { be_const_key_weak(event_http_failed, -1), be_const_closure(class_Matter_HTTP_remote_event_http_failed_closure) },
{ be_const_key_weak(UPDATE_TIME2, -1), be_const_int(300000) },
- { be_const_key_weak(scheduler, -1), be_const_closure(class_Matter_HTTP_remote_scheduler_closure) },
- { be_const_key_weak(parse_status_response, 13), be_const_closure(class_Matter_HTTP_remote_parse_status_response_closure) },
- { be_const_key_weak(probe_async, 18), be_const_closure(class_Matter_HTTP_remote_probe_async_closure) },
- { be_const_key_weak(probe_update_time_map, -1), be_const_var(1) },
- { be_const_key_weak(reachable_utc, -1), be_const_var(6) },
- { be_const_key_weak(probe_next_timestamp_map, -1), be_const_var(2) },
- { be_const_key_weak(async_cb_map, -1), be_const_var(3) },
- { be_const_key_weak(current_cmd, -1), be_const_var(4) },
- { be_const_key_weak(set_info, -1), be_const_closure(class_Matter_HTTP_remote_set_info_closure) },
- { be_const_key_weak(dispatch_cb, -1), be_const_closure(class_Matter_HTTP_remote_dispatch_cb_closure) },
- { be_const_key_weak(UPDATE_CMD2, -1), be_nested_str_weak(Status_X202) },
- { be_const_key_weak(UPDATE_CMD0, -1), be_nested_str_weak(Status) },
- { be_const_key_weak(event_http_failed, 3), be_const_closure(class_Matter_HTTP_remote_event_http_failed_closure) },
- { be_const_key_weak(add_async_cb, 6), be_const_closure(class_Matter_HTTP_remote_add_async_cb_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_HTTP_remote_init_closure) },
+ { be_const_key_weak(set_info, 2), be_const_closure(class_Matter_HTTP_remote_set_info_closure) },
+ { be_const_key_weak(scheduler, 27), be_const_closure(class_Matter_HTTP_remote_scheduler_closure) },
+ { be_const_key_weak(web_last_seen, -1), be_const_closure(class_Matter_HTTP_remote_web_last_seen_closure) },
{ be_const_key_weak(event_http_finished, -1), be_const_closure(class_Matter_HTTP_remote_event_http_finished_closure) },
+ { be_const_key_weak(STATUS_PREFIX, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(14,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Status),
+ be_nested_str_weak(StatusPRM),
+ be_nested_str_weak(StatusFWR),
+ be_nested_str_weak(StatusLOG),
+ be_nested_str_weak(StatusMEM),
+ be_nested_str_weak(StatusNET),
+ be_nested_str_weak(StatusMQT),
+ be_nested_str_weak(StatusTIM),
+ be_const_nil(),
+ be_nested_str_weak(StatusPTH),
+ be_nested_str_weak(StatusSNS),
+ be_nested_str_weak(StatusSTS),
+ be_nested_str_weak(StatusSTK),
+ be_nested_str_weak(StatusSHT),
+ })) ) } )) },
+ { be_const_key_weak(current_cmd, -1), be_const_var(4) },
+ { be_const_key_weak(probe_async, 7), be_const_closure(class_Matter_HTTP_remote_probe_async_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_HTTP_remote_init_closure) },
+ { be_const_key_weak(reachable, 1), be_const_var(5) },
+ { be_const_key_weak(probe_next_timestamp_map, -1), be_const_var(2) },
+ { be_const_key_weak(change_schedule, 15), be_const_closure(class_Matter_HTTP_remote_change_schedule_closure) },
+ { be_const_key_weak(device, 18), be_const_var(0) },
+ { be_const_key_weak(async_cb_map, -1), be_const_var(3) },
+ { be_const_key_weak(reachable_utc, -1), be_const_var(6) },
+ { be_const_key_weak(parse_status_response_and_call_method, -1), be_const_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method_closure) },
+ { be_const_key_weak(UPDATE_CMD2, -1), be_nested_str_weak(Status_X202) },
+ { be_const_key_weak(probe_update_time_map, -1), be_const_var(1) },
+ { be_const_key_weak(call_sync, -1), be_const_closure(class_Matter_HTTP_remote_call_sync_closure) },
+ { be_const_key_weak(device_is_alive, 9), be_const_closure(class_Matter_HTTP_remote_device_is_alive_closure) },
+ { be_const_key_weak(info_changed, -1), be_const_closure(class_Matter_HTTP_remote_info_changed_closure) },
+ { be_const_key_weak(parse_status_http, 6), be_const_closure(class_Matter_HTTP_remote_parse_status_http_closure) },
+ { be_const_key_weak(dispatch_cb, 3), be_const_closure(class_Matter_HTTP_remote_dispatch_cb_closure) },
+ { be_const_key_weak(UPDATE_CMD5, -1), be_nested_str_weak(Status_X205) },
+ { be_const_key_weak(UPDATE_CMD0, -1), be_nested_str_weak(Status) },
})),
be_str_weak(Matter_HTTP_remote)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index e22e8111a..4321835ea 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -7,58 +7,25 @@
extern const bclass be_class_Matter_Plugin;
/********************************************************************
-** Solidified function: contains_cluster
+** Solidified function: invoke_request
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
+be_local_closure(class_Matter_Plugin_invoke_request, /* name */
be_nested_proto(
5, /* nstack */
- 2, /* argc */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
- }),
- be_str_weak(contains_cluster),
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: append_state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_append_state_json, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- }),
- be_str_weak(append_state_json),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80060000, // 0000 RET 1 K0
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
})
)
);
@@ -124,10 +91,53 @@ be_local_closure(class_Matter_Plugin_state_json, /* name */
/********************************************************************
-** Solidified function: timed_request
+** Solidified function: ack_request
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_timed_request, /* name */
+be_local_closure(class_Matter_Plugin_ack_request, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(im),
+ /* K4 */ be_nested_str_weak(send_ack_now),
+ }),
+ be_str_weak(ack_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x200C0403, // 0002 NE R3 R2 R3
+ 0x780E0005, // 0003 JMPF R3 #000A
+ 0x880C0101, // 0004 GETMBR R3 R0 K1
+ 0x880C0702, // 0005 GETMBR R3 R3 K2
+ 0x880C0703, // 0006 GETMBR R3 R3 K3
+ 0x8C0C0704, // 0007 GETMET R3 R3 K4
+ 0x5C140400, // 0008 MOVE R5 R2
+ 0x7C0C0400, // 0009 CALL R3 2
+ 0x4C0C0000, // 000A LDNIL R3
+ 0x90060003, // 000B SETMBR R1 K0 R3
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: write_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_write_attribute, /* name */
be_nested_proto(
5, /* nstack */
4, /* argc */
@@ -138,7 +148,7 @@ be_local_closure(class_Matter_Plugin_timed_request, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(timed_request),
+ be_str_weak(write_attribute),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x4C100000, // 0000 LDNIL R4
@@ -150,24 +160,117 @@ be_local_closure(class_Matter_Plugin_timed_request, /* name */
/********************************************************************
-** Solidified function: parse_sensors
+** Solidified function: consolidate_update_commands
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
+be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
be_nested_proto(
2, /* nstack */
- 2, /* argc */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_sensors),
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
+ }),
+ be_str_weak(consolidate_update_commands),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: append_state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_append_state_json, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ }),
+ be_str_weak(append_state_json),
&be_const_str_solidified,
( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
+ 0x80060000, // 0000 RET 1 K0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_every_250ms, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_next),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(jitter),
+ /* K3 */ be_nested_str_weak(UPDATE_TIME),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(time_reached),
+ /* K6 */ be_nested_str_weak(tick),
+ /* K7 */ be_nested_str_weak(device),
+ /* K8 */ be_nested_str_weak(update_shadow),
+ /* K9 */ be_nested_str_weak(millis),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060005, // 0003 JMPF R1 #000A
+ 0xB8060200, // 0004 GETNGBL R1 K1
+ 0x8C040302, // 0005 GETMET R1 R1 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x90020001, // 0008 SETMBR R0 K0 R1
+ 0x70020010, // 0009 JMP #001B
+ 0xB8060800, // 000A GETNGBL R1 K4
+ 0x8C040305, // 000B GETMET R1 R1 K5
+ 0x880C0100, // 000C GETMBR R3 R0 K0
+ 0x7C040400, // 000D CALL R1 2
+ 0x7806000B, // 000E JMPF R1 #001B
+ 0x88040106, // 000F GETMBR R1 R0 K6
+ 0x88080107, // 0010 GETMBR R2 R0 K7
+ 0x88080506, // 0011 GETMBR R2 R2 K6
+ 0x20040202, // 0012 NE R1 R1 R2
+ 0x78060001, // 0013 JMPF R1 #0016
+ 0x8C040108, // 0014 GETMET R1 R0 K8
+ 0x7C040200, // 0015 CALL R1 1
+ 0xB8060800, // 0016 GETNGBL R1 K4
+ 0x8C040309, // 0017 GETMET R1 R1 K9
+ 0x880C0103, // 0018 GETMBR R3 R0 K3
+ 0x7C040400, // 0019 CALL R1 2
+ 0x90020001, // 001A SETMBR R0 K0 R1
+ 0x80000000, // 001B RET 0
})
)
);
@@ -218,6 +321,392 @@ be_local_closure(class_Matter_Plugin_has, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: update_shadow_lazy
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow_lazy),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x88080500, // 0002 GETMBR R2 R2 K0
+ 0x20040202, // 0003 NE R1 R1 R2
+ 0x78060004, // 0004 JMPF R1 #000A
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x7C040200, // 0006 CALL R1 1
+ 0x88040101, // 0007 GETMBR R1 R0 K1
+ 0x88040300, // 0008 GETMBR R1 R1 K0
+ 0x90020001, // 0009 SETMBR R0 K0 R1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_name
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_set_name, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(node_label),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(set_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0003, // 0002 JMPF R2 #0007
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x54120038, // 0004 LDINT R4 57
+ 0x54160004, // 0005 LDINT R5 5
+ 0x7C080600, // 0006 CALL R2 3
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040008, // 0000 GETGBL R1 G8
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040101, // 0000 GETMBR R1 R0 K1
+ 0x88040300, // 0001 GETMBR R1 R1 K0
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: timed_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_timed_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(timed_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_init, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(clusters),
+ /* K3 */ be_nested_str_weak(consolidate_clusters),
+ /* K4 */ be_nested_str_weak(parse_configuration),
+ /* K5 */ be_nested_str_weak(node_label),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_nested_str_weak(name),
+ /* K8 */ be_nested_str_weak(),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x8C100103, // 0002 GETMET R4 R0 K3
+ 0x7C100200, // 0003 CALL R4 1
+ 0x90020404, // 0004 SETMBR R0 K2 R4
+ 0x8C100104, // 0005 GETMET R4 R0 K4
+ 0x5C180600, // 0006 MOVE R6 R3
+ 0x7C100400, // 0007 CALL R4 2
+ 0x8C100706, // 0008 GETMET R4 R3 K6
+ 0x58180007, // 0009 LDCONST R6 K7
+ 0x581C0008, // 000A LDCONST R7 K8
+ 0x7C100600, // 000B CALL R4 3
+ 0x90020A04, // 000C SETMBR R0 K5 R4
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_local_device
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_is_local_device, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ }),
+ be_str_weak(is_local_device),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x50040001, // 0002 LDBOOL R1 0 1
+ 0x50040200, // 0003 LDBOOL R1 1 0
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ui_string_to_conf
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(ARG_TYPE),
+ }),
+ be_str_weak(ui_string_to_conf),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x780A0004, // 0003 JMPF R2 #0009
+ 0x78120003, // 0004 JMPF R4 #0009
+ 0x5C180A00, // 0005 MOVE R6 R5
+ 0x5C1C0400, // 0006 MOVE R7 R2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x98040806, // 0008 SETIDX R1 R4 R6
+ 0x80040200, // 0009 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_cluster_list_sorted
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(k2l),
+ /* K2 */ be_nested_str_weak(clusters),
+ }),
+ be_str_weak(get_cluster_list_sorted),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ui_conf_to_string
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(ui_conf_to_string),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x780E0006, // 0002 JMPF R3 #000A
+ 0x60100008, // 0003 GETGBL R4 G8
+ 0x8C140302, // 0004 GETMET R5 R1 K2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x58200003, // 0006 LDCONST R8 K3
+ 0x7C140600, // 0007 CALL R5 3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x70020000, // 0009 JMP #000B
+ 0x58100003, // 000A LDCONST R4 K3
+ 0x80040800, // 000B RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K2 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_virtual
********************************************************************/
@@ -243,6 +732,434 @@ be_local_closure(class_Matter_Plugin_update_virtual, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: _parse_update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin__parse_update_virtual, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(_parse_update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x8C1C0300, // 0000 GETMET R7 R1 K0
+ 0x5C240400, // 0001 MOVE R9 R2
+ 0x7C1C0400, // 0002 CALL R7 2
+ 0x4C200000, // 0003 LDNIL R8
+ 0x20200E08, // 0004 NE R8 R7 R8
+ 0x7822000A, // 0005 JMPF R8 #0011
+ 0x5C200800, // 0006 MOVE R8 R4
+ 0x5C240E00, // 0007 MOVE R9 R7
+ 0x7C200200, // 0008 CALL R8 1
+ 0x5C1C1000, // 0009 MOVE R7 R8
+ 0x20200E03, // 000A NE R8 R7 R3
+ 0x78220003, // 000B JMPF R8 #0010
+ 0x8C200101, // 000C GETMET R8 R0 K1
+ 0x5C280A00, // 000D MOVE R10 R5
+ 0x5C2C0C00, // 000E MOVE R11 R6
+ 0x7C200600, // 000F CALL R8 3
+ 0x80040E00, // 0010 RET 1 R7
+ 0x80040600, // 0011 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: consolidate_clusters
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(CLUSTERS),
+ }),
+ be_str_weak(consolidate_clusters),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_name
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_name, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(node_label),
+ }),
+ be_str_weak(get_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(get_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: subscribe_event
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(subscribe_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_event
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_read_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(read_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_attribute_list
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_attribute_list),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140012, // 0003 GETGBL R5 G18
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: publish_command
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_publish_command, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(_X25s_X3A_X25s),
+ /* K2 */ be_nested_str_weak(dump),
+ /* K3 */ be_nested_str_weak(_X25s_X2C_X25s_X3A_X25s),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(publish_command),
+ /* K6 */ be_nested_str_weak(MtrReceived),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(node_label),
+ }),
+ be_str_weak(publish_command),
+ &be_const_str_solidified,
+ ( &(const binstruction[46]) { /* code */
+ 0xA41E0000, // 0000 IMPORT R7 K0
+ 0x60200018, // 0001 GETGBL R8 G24
+ 0x58240001, // 0002 LDCONST R9 K1
+ 0x8C280F02, // 0003 GETMET R10 R7 K2
+ 0x5C300200, // 0004 MOVE R12 R1
+ 0x7C280400, // 0005 CALL R10 2
+ 0x8C2C0F02, // 0006 GETMET R11 R7 K2
+ 0x5C340400, // 0007 MOVE R13 R2
+ 0x7C2C0400, // 0008 CALL R11 2
+ 0x7C200600, // 0009 CALL R8 3
+ 0x4C240000, // 000A LDNIL R9
+ 0x20240609, // 000B NE R9 R3 R9
+ 0x7826000A, // 000C JMPF R9 #0018
+ 0x60240018, // 000D GETGBL R9 G24
+ 0x58280003, // 000E LDCONST R10 K3
+ 0x5C2C1000, // 000F MOVE R11 R8
+ 0x8C300F02, // 0010 GETMET R12 R7 K2
+ 0x5C380600, // 0011 MOVE R14 R3
+ 0x7C300400, // 0012 CALL R12 2
+ 0x8C340F02, // 0013 GETMET R13 R7 K2
+ 0x5C3C0800, // 0014 MOVE R15 R4
+ 0x7C340400, // 0015 CALL R13 2
+ 0x7C240800, // 0016 CALL R9 4
+ 0x5C201200, // 0017 MOVE R8 R9
+ 0x4C240000, // 0018 LDNIL R9
+ 0x20240A09, // 0019 NE R9 R5 R9
+ 0x7826000A, // 001A JMPF R9 #0026
+ 0x60240018, // 001B GETGBL R9 G24
+ 0x58280003, // 001C LDCONST R10 K3
+ 0x5C2C1000, // 001D MOVE R11 R8
+ 0x8C300F02, // 001E GETMET R12 R7 K2
+ 0x5C380A00, // 001F MOVE R14 R5
+ 0x7C300400, // 0020 CALL R12 2
+ 0x8C340F02, // 0021 GETMET R13 R7 K2
+ 0x5C3C0C00, // 0022 MOVE R15 R6
+ 0x7C340400, // 0023 CALL R13 2
+ 0x7C240800, // 0024 CALL R9 4
+ 0x5C201200, // 0025 MOVE R8 R9
+ 0xB8260800, // 0026 GETNGBL R9 K4
+ 0x8C241305, // 0027 GETMET R9 R9 K5
+ 0x582C0006, // 0028 LDCONST R11 K6
+ 0x88300107, // 0029 GETMBR R12 R0 K7
+ 0x88340108, // 002A GETMBR R13 R0 K8
+ 0x5C381000, // 002B MOVE R14 R8
+ 0x7C240A00, // 002C CALL R9 5
+ 0x80000000, // 002D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: contains_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(contains_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x20100604, // 0005 NE R4 R3 R4
+ 0x7812000C, // 0006 JMPF R4 #0014
+ 0x58100002, // 0007 LDCONST R4 K2
+ 0x6014000C, // 0008 GETGBL R5 G12
+ 0x5C180600, // 0009 MOVE R6 R3
+ 0x7C140200, // 000A CALL R5 1
+ 0x14140805, // 000B LT R5 R4 R5
+ 0x78160006, // 000C JMPF R5 #0014
+ 0x94140604, // 000D GETIDX R5 R3 R4
+ 0x1C140A02, // 000E EQ R5 R5 R2
+ 0x78160001, // 000F JMPF R5 #0012
+ 0x50140200, // 0010 LDBOOL R5 1 0
+ 0x80040A00, // 0011 RET 1 R5
+ 0x00100903, // 0012 ADD R4 R4 K3
+ 0x7001FFF3, // 0013 JMP #0008
+ 0x50100000, // 0014 LDBOOL R4 0 0
+ 0x80040800, // 0015 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: contains_cluster
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(contains),
+ }),
+ be_str_weak(contains_cluster),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -451,456 +1368,6 @@ be_local_closure(class_Matter_Plugin_read_attribute, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: ui_conf_to_string
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(ui_conf_to_string),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x780E0006, // 0002 JMPF R3 #000A
- 0x60100008, // 0003 GETGBL R4 G8
- 0x8C140302, // 0004 GETMET R5 R1 K2
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x58200003, // 0006 LDCONST R8 K3
- 0x7C140600, // 0007 CALL R5 3
- 0x7C100200, // 0008 CALL R4 1
- 0x70020000, // 0009 JMP #000B
- 0x58100003, // 000A LDCONST R4 K3
- 0x80040800, // 000B RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ack_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ack_request, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(msg),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(im),
- /* K4 */ be_nested_str_weak(send_ack_now),
- }),
- be_str_weak(ack_request),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x200C0403, // 0002 NE R3 R2 R3
- 0x780E0005, // 0003 JMPF R3 #000A
- 0x880C0101, // 0004 GETMBR R3 R0 K1
- 0x880C0702, // 0005 GETMBR R3 R3 K2
- 0x880C0703, // 0006 GETMBR R3 R3 K3
- 0x8C0C0704, // 0007 GETMET R3 R3 K4
- 0x5C140400, // 0008 MOVE R5 R2
- 0x7C0C0400, // 0009 CALL R3 2
- 0x4C0C0000, // 000A LDNIL R3
- 0x90060003, // 000B SETMBR R1 K0 R3
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: write_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_write_attribute, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(write_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_cluster_list_sorted
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(k2l),
- /* K2 */ be_nested_str_weak(clusters),
- }),
- be_str_weak(get_cluster_list_sorted),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x7C040400, // 0003 CALL R1 2
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_init, /* name */
- be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(clusters),
- /* K3 */ be_nested_str_weak(consolidate_clusters),
- /* K4 */ be_nested_str_weak(parse_configuration),
- /* K5 */ be_nested_str_weak(node_label),
- /* K6 */ be_nested_str_weak(find),
- /* K7 */ be_nested_str_weak(name),
- /* K8 */ be_nested_str_weak(),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x8C100103, // 0002 GETMET R4 R0 K3
- 0x7C100200, // 0003 CALL R4 1
- 0x90020404, // 0004 SETMBR R0 K2 R4
- 0x8C100104, // 0005 GETMET R4 R0 K4
- 0x5C180600, // 0006 MOVE R6 R3
- 0x7C100400, // 0007 CALL R4 2
- 0x8C100706, // 0008 GETMET R4 R3 K6
- 0x58180007, // 0009 LDCONST R6 K7
- 0x581C0008, // 000A LDCONST R7 K8
- 0x7C100600, // 000B CALL R4 3
- 0x90020A04, // 000C SETMBR R0 K5 R4
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ui_string_to_conf
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(ARG_TYPE),
- }),
- be_str_weak(ui_string_to_conf),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x780A0004, // 0003 JMPF R2 #0009
- 0x78120003, // 0004 JMPF R4 #0009
- 0x5C180A00, // 0005 MOVE R6 R5
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C180200, // 0007 CALL R6 1
- 0x98040806, // 0008 SETIDX R1 R4 R6
- 0x80040200, // 0009 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_250ms
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_every_250ms, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(update_next),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(jitter),
- /* K3 */ be_nested_str_weak(UPDATE_TIME),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
- /* K6 */ be_nested_str_weak(tick),
- /* K7 */ be_nested_str_weak(device),
- /* K8 */ be_nested_str_weak(update_shadow),
- /* K9 */ be_nested_str_weak(millis),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060005, // 0003 JMPF R1 #000A
- 0xB8060200, // 0004 GETNGBL R1 K1
- 0x8C040302, // 0005 GETMET R1 R1 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x90020001, // 0008 SETMBR R0 K0 R1
- 0x70020010, // 0009 JMP #001B
- 0xB8060800, // 000A GETNGBL R1 K4
- 0x8C040305, // 000B GETMET R1 R1 K5
- 0x880C0100, // 000C GETMBR R3 R0 K0
- 0x7C040400, // 000D CALL R1 2
- 0x7806000B, // 000E JMPF R1 #001B
- 0x88040106, // 000F GETMBR R1 R0 K6
- 0x88080107, // 0010 GETMBR R2 R0 K7
- 0x88080506, // 0011 GETMBR R2 R2 K6
- 0x20040202, // 0012 NE R1 R1 R2
- 0x78060001, // 0013 JMPF R1 #0016
- 0x8C040108, // 0014 GETMET R1 R0 K8
- 0x7C040200, // 0015 CALL R1 1
- 0xB8060800, // 0016 GETNGBL R1 K4
- 0x8C040309, // 0017 GETMET R1 R1 K9
- 0x880C0103, // 0018 GETMBR R3 R0 K3
- 0x7C040400, // 0019 CALL R1 2
- 0x90020001, // 001A SETMBR R0 K0 R1
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: subscribe_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_attribute_list
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_attribute_list),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140012, // 0003 GETGBL R5 G18
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _parse_update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin__parse_update_virtual, /* name */
- be_nested_proto(
- 12, /* nstack */
- 7, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(_parse_update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x8C1C0300, // 0000 GETMET R7 R1 K0
- 0x5C240400, // 0001 MOVE R9 R2
- 0x7C1C0400, // 0002 CALL R7 2
- 0x4C200000, // 0003 LDNIL R8
- 0x20200E08, // 0004 NE R8 R7 R8
- 0x7822000A, // 0005 JMPF R8 #0011
- 0x5C200800, // 0006 MOVE R8 R4
- 0x5C240E00, // 0007 MOVE R9 R7
- 0x7C200200, // 0008 CALL R8 1
- 0x5C1C1000, // 0009 MOVE R7 R8
- 0x20200E03, // 000A NE R8 R7 R3
- 0x78220003, // 000B JMPF R8 #0010
- 0x8C200101, // 000C GETMET R8 R0 K1
- 0x5C280A00, // 000D MOVE R10 R5
- 0x5C2C0C00, // 000E MOVE R11 R6
- 0x7C200600, // 000F CALL R8 3
- 0x80040E00, // 0010 RET 1 R7
- 0x80040600, // 0011 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(get_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: subscribe_attribute
********************************************************************/
@@ -927,513 +1394,59 @@ be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: contains_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_const_int(0),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(contains_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x20100604, // 0005 NE R4 R3 R4
- 0x7812000C, // 0006 JMPF R4 #0014
- 0x58100002, // 0007 LDCONST R4 K2
- 0x6014000C, // 0008 GETGBL R5 G12
- 0x5C180600, // 0009 MOVE R6 R3
- 0x7C140200, // 000A CALL R5 1
- 0x14140805, // 000B LT R5 R4 R5
- 0x78160006, // 000C JMPF R5 #0014
- 0x94140604, // 000D GETIDX R5 R3 R4
- 0x1C140A02, // 000E EQ R5 R5 R2
- 0x78160001, // 000F JMPF R5 #0012
- 0x50140200, // 0010 LDBOOL R5 1 0
- 0x80040A00, // 0011 RET 1 R5
- 0x00100903, // 0012 ADD R4 R4 K3
- 0x7001FFF3, // 0013 JMP #0008
- 0x50100000, // 0014 LDBOOL R4 0 0
- 0x80040800, // 0015 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: consolidate_update_commands
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
- }),
- be_str_weak(consolidate_update_commands),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040008, // 0000 GETGBL R1 G8
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_name
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_name, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
- }),
- be_str_weak(get_name),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: publish_command
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_publish_command, /* name */
- be_nested_proto(
- 16, /* nstack */
- 7, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(_X25s_X3A_X25s),
- /* K2 */ be_nested_str_weak(dump),
- /* K3 */ be_nested_str_weak(_X25s_X2C_X25s_X3A_X25s),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(publish_command),
- /* K6 */ be_nested_str_weak(MtrReceived),
- /* K7 */ be_nested_str_weak(endpoint),
- /* K8 */ be_nested_str_weak(node_label),
- }),
- be_str_weak(publish_command),
- &be_const_str_solidified,
- ( &(const binstruction[46]) { /* code */
- 0xA41E0000, // 0000 IMPORT R7 K0
- 0x60200018, // 0001 GETGBL R8 G24
- 0x58240001, // 0002 LDCONST R9 K1
- 0x8C280F02, // 0003 GETMET R10 R7 K2
- 0x5C300200, // 0004 MOVE R12 R1
- 0x7C280400, // 0005 CALL R10 2
- 0x8C2C0F02, // 0006 GETMET R11 R7 K2
- 0x5C340400, // 0007 MOVE R13 R2
- 0x7C2C0400, // 0008 CALL R11 2
- 0x7C200600, // 0009 CALL R8 3
- 0x4C240000, // 000A LDNIL R9
- 0x20240609, // 000B NE R9 R3 R9
- 0x7826000A, // 000C JMPF R9 #0018
- 0x60240018, // 000D GETGBL R9 G24
- 0x58280003, // 000E LDCONST R10 K3
- 0x5C2C1000, // 000F MOVE R11 R8
- 0x8C300F02, // 0010 GETMET R12 R7 K2
- 0x5C380600, // 0011 MOVE R14 R3
- 0x7C300400, // 0012 CALL R12 2
- 0x8C340F02, // 0013 GETMET R13 R7 K2
- 0x5C3C0800, // 0014 MOVE R15 R4
- 0x7C340400, // 0015 CALL R13 2
- 0x7C240800, // 0016 CALL R9 4
- 0x5C201200, // 0017 MOVE R8 R9
- 0x4C240000, // 0018 LDNIL R9
- 0x20240A09, // 0019 NE R9 R5 R9
- 0x7826000A, // 001A JMPF R9 #0026
- 0x60240018, // 001B GETGBL R9 G24
- 0x58280003, // 001C LDCONST R10 K3
- 0x5C2C1000, // 001D MOVE R11 R8
- 0x8C300F02, // 001E GETMET R12 R7 K2
- 0x5C380A00, // 001F MOVE R14 R5
- 0x7C300400, // 0020 CALL R12 2
- 0x8C340F02, // 0021 GETMET R13 R7 K2
- 0x5C3C0C00, // 0022 MOVE R15 R6
- 0x7C340400, // 0023 CALL R13 2
- 0x7C240800, // 0024 CALL R9 4
- 0x5C201200, // 0025 MOVE R8 R9
- 0xB8260800, // 0026 GETNGBL R9 K4
- 0x8C241305, // 0027 GETMET R9 R9 K5
- 0x582C0006, // 0028 LDCONST R11 K6
- 0x88300107, // 0029 GETMBR R12 R0 K7
- 0x88340108, // 002A GETMBR R13 R0 K8
- 0x5C381000, // 002B MOVE R14 R8
- 0x7C240A00, // 002C CALL R9 5
- 0x80000000, // 002D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_name
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_set_name, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
- /* K1 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(set_name),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0003, // 0002 JMPF R2 #0007
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x54120038, // 0004 LDINT R4 57
- 0x54160004, // 0005 LDINT R5 5
- 0x7C080600, // 0006 CALL R2 3
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow_lazy
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow_lazy),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x88080500, // 0002 GETMBR R2 R2 K0
- 0x20040202, // 0003 NE R1 R1 R2
- 0x78060004, // 0004 JMPF R1 #000A
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x7C040200, // 0006 CALL R1 1
- 0x88040101, // 0007 GETMBR R1 R0 K1
- 0x88040300, // 0008 GETMBR R1 R1 K0
- 0x90020001, // 0009 SETMBR R0 K0 R1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x88040300, // 0001 GETMBR R1 R1 K0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_invoke_request, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attribute_updated
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(attribute_updated),
- /* K2 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(attribute_updated),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_local_device
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_is_local_device, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(is_local_device),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x50040200, // 0000 LDBOOL R1 1 0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: consolidate_clusters
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(CLUSTERS),
- }),
- be_str_weak(consolidate_clusters),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_read_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(read_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Plugin
********************************************************************/
be_local_class(Matter_Plugin,
6,
NULL,
- be_nested_map(51,
+ be_nested_map(52,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
- { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
- { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
- { be_const_key_weak(state_json, -1), be_const_closure(class_Matter_Plugin_state_json_closure) },
- { be_const_key_weak(read_event, 38), be_const_closure(class_Matter_Plugin_read_event_closure) },
- { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
- { be_const_key_weak(consolidate_clusters, -1), be_const_closure(class_Matter_Plugin_consolidate_clusters_closure) },
- { be_const_key_weak(has, -1), be_const_closure(class_Matter_Plugin_has_closure) },
- { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
- { be_const_key_weak(is_local_device, -1), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
- { be_const_key_weak(UPDATE_TIME, 0), be_const_int(5000) },
+ { be_const_key_weak(subscribe_attribute, 34), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
+ { be_const_key_weak(state_json, 38), be_const_closure(class_Matter_Plugin_state_json_closure) },
+ { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
+ { be_const_key_weak(device, -1), be_const_var(1) },
{ be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
- { be_const_key_weak(get_endpoint, 2), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
- { be_const_key_weak(ui_conf_to_string, 24), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
- { be_const_key_weak(UPDATE_COMMANDS, 48), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
+ { be_const_key_weak(is_local_device, 2), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
+ { be_const_key_weak(write_attribute, -1), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(0) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(CLUSTERS, 51), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
- { be_const_key_weak(ui_string_to_conf, -1), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
- { be_const_key_weak(every_250ms, 27), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
- { be_const_key_weak(device, -1), be_const_var(1) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak() },
- { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
+ { be_const_key_weak(every_250ms, 0), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
+ { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
{ be_const_key_weak(get_attribute_list, -1), be_const_closure(class_Matter_Plugin_get_attribute_list_closure) },
- { be_const_key_weak(write_attribute, 39), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
- { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
- { be_const_key_weak(consolidate_update_commands, 12), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
- { be_const_key_weak(subscribe_attribute, -1), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
- { be_const_key_weak(contains_cluster, 23), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
- { be_const_key_weak(update_next, -1), be_const_var(0) },
+ { be_const_key_weak(has, 5), be_const_closure(class_Matter_Plugin_has_closure) },
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin__X3Clambda_X3E_closure) },
- { be_const_key_weak(get_name, 30), be_const_closure(class_Matter_Plugin_get_name_closure) },
- { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
- { be_const_key_weak(TYPE, 34), be_nested_str_weak() },
- { be_const_key_weak(tick, -1), be_const_var(4) },
- { be_const_key_weak(CLUSTER_REVISIONS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
+ { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
+ { be_const_key_weak(endpoint, 6), be_const_var(2) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
+ { be_const_key_weak(clusters, -1), be_const_var(3) },
+ { be_const_key_weak(VIRTUAL, 9), be_const_bool(0) },
+ { be_const_key_weak(CLUSTER_REVISIONS, 23), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(25,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_int(5) },
@@ -1462,49 +1475,42 @@ be_local_class(Matter_Plugin,
{ be_const_key_int(6, -1), be_const_int(5) },
{ be_const_key_int(1024, -1), be_const_int(3) },
})) ) } )) },
- { be_const_key_weak(clusters, -1), be_const_var(3) },
- { be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_nil() },
- })) ) } )) },
+ { be_const_key_weak(consolidate_update_commands, 17), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
+ { be_const_key_weak(ui_conf_to_string, -1), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
+ { be_const_key_weak(_parse_update_virtual, 21), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
+ { be_const_key_weak(update_virtual, 36), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
- { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
- { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
- { be_const_key_weak(_parse_update_virtual, 47), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
- { be_const_key_weak(parse_sensors, 19), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
- { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(VIRTUAL, -1), be_const_bool(0) },
- { be_const_key_weak(DISPLAY_NAME, 10), be_nested_str_weak() },
- { be_const_key_weak(node_label, 9), be_const_var(5) },
{ be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
- { be_const_key_weak(endpoint, -1), be_const_var(2) },
+ { be_const_key_weak(invoke_request, 27), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
+ { be_const_key_weak(node_label, -1), be_const_var(5) },
+ { be_const_key_weak(update_shadow, 30), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
+ { be_const_key_weak(consolidate_clusters, -1), be_const_closure(class_Matter_Plugin_consolidate_clusters_closure) },
+ { be_const_key_weak(get_name, -1), be_const_closure(class_Matter_Plugin_get_name_closure) },
+ { be_const_key_weak(update_next, -1), be_const_var(0) },
+ { be_const_key_weak(get_endpoint, -1), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
{ be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(2,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(258, -1), be_const_int(5) },
{ be_const_key_int(49, -1), be_const_int(4) },
})) ) } )) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak() },
+ { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak() },
+ { be_const_key_weak(read_event, -1), be_const_closure(class_Matter_Plugin_read_event_closure) },
+ { be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_nil() },
+ })) ) } )) },
+ { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
+ { be_const_key_weak(DISPLAY_NAME, 14), be_nested_str_weak() },
+ { be_const_key_weak(ui_string_to_conf, 13), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
+ { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
+ { be_const_key_weak(tick, -1), be_const_var(4) },
+ { be_const_key_weak(contains_cluster, -1), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
+ { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
})),
be_str_weak(Matter_Plugin)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
index 0cb5a26f7..7c40c1080 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
@@ -4,8 +4,747 @@
\********************************************************************/
#include "be_constobj.h"
+extern const bclass be_class_GetOptionReader;
+
+/********************************************************************
+** Solidified function: getoption
+********************************************************************/
+extern const bclass be_class_GetOptionReader;
+be_local_closure(class_GetOptionReader_getoption, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_GetOptionReader,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(flag),
+ /* K1 */ be_nested_str_weak(getbits),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(flag2),
+ /* K4 */ be_nested_str_weak(get),
+ /* K5 */ be_nested_str_weak(flag3),
+ /* K6 */ be_nested_str_weak(flag4),
+ /* K7 */ be_nested_str_weak(flag5),
+ /* K8 */ be_nested_str_weak(flag6),
+ }),
+ be_str_weak(getoption),
+ &be_const_str_solidified,
+ ( &(const binstruction[65]) { /* code */
+ 0x540A001F, // 0000 LDINT R2 32
+ 0x14080202, // 0001 LT R2 R1 R2
+ 0x780A0006, // 0002 JMPF R2 #000A
+ 0x88080100, // 0003 GETMBR R2 R0 K0
+ 0x8C080501, // 0004 GETMET R2 R2 K1
+ 0x5C100200, // 0005 MOVE R4 R1
+ 0x58140002, // 0006 LDCONST R5 K2
+ 0x7C080600, // 0007 CALL R2 3
+ 0x80040400, // 0008 RET 1 R2
+ 0x70020035, // 0009 JMP #0040
+ 0x540A0031, // 000A LDINT R2 50
+ 0x14080202, // 000B LT R2 R1 R2
+ 0x780A0007, // 000C JMPF R2 #0015
+ 0x88080103, // 000D GETMBR R2 R0 K3
+ 0x8C080504, // 000E GETMET R2 R2 K4
+ 0x5412001F, // 000F LDINT R4 32
+ 0x04100204, // 0010 SUB R4 R1 R4
+ 0x58140002, // 0011 LDCONST R5 K2
+ 0x7C080600, // 0012 CALL R2 3
+ 0x80040400, // 0013 RET 1 R2
+ 0x7002002A, // 0014 JMP #0040
+ 0x540A0051, // 0015 LDINT R2 82
+ 0x14080202, // 0016 LT R2 R1 R2
+ 0x780A0007, // 0017 JMPF R2 #0020
+ 0x88080105, // 0018 GETMBR R2 R0 K5
+ 0x8C080501, // 0019 GETMET R2 R2 K1
+ 0x54120031, // 001A LDINT R4 50
+ 0x04100204, // 001B SUB R4 R1 R4
+ 0x58140002, // 001C LDCONST R5 K2
+ 0x7C080600, // 001D CALL R2 3
+ 0x80040400, // 001E RET 1 R2
+ 0x7002001F, // 001F JMP #0040
+ 0x540A0071, // 0020 LDINT R2 114
+ 0x14080202, // 0021 LT R2 R1 R2
+ 0x780A0007, // 0022 JMPF R2 #002B
+ 0x88080106, // 0023 GETMBR R2 R0 K6
+ 0x8C080501, // 0024 GETMET R2 R2 K1
+ 0x54120051, // 0025 LDINT R4 82
+ 0x04100204, // 0026 SUB R4 R1 R4
+ 0x58140002, // 0027 LDCONST R5 K2
+ 0x7C080600, // 0028 CALL R2 3
+ 0x80040400, // 0029 RET 1 R2
+ 0x70020014, // 002A JMP #0040
+ 0x540A0091, // 002B LDINT R2 146
+ 0x14080202, // 002C LT R2 R1 R2
+ 0x780A0007, // 002D JMPF R2 #0036
+ 0x88080107, // 002E GETMBR R2 R0 K7
+ 0x8C080501, // 002F GETMET R2 R2 K1
+ 0x54120071, // 0030 LDINT R4 114
+ 0x04100204, // 0031 SUB R4 R1 R4
+ 0x58140002, // 0032 LDCONST R5 K2
+ 0x7C080600, // 0033 CALL R2 3
+ 0x80040400, // 0034 RET 1 R2
+ 0x70020009, // 0035 JMP #0040
+ 0x540A00B1, // 0036 LDINT R2 178
+ 0x14080202, // 0037 LT R2 R1 R2
+ 0x780A0006, // 0038 JMPF R2 #0040
+ 0x88080108, // 0039 GETMBR R2 R0 K8
+ 0x8C080501, // 003A GETMET R2 R2 K1
+ 0x54120091, // 003B LDINT R4 146
+ 0x04100204, // 003C SUB R4 R1 R4
+ 0x58140002, // 003D LDCONST R5 K2
+ 0x7C080600, // 003E CALL R2 3
+ 0x80040400, // 003F RET 1 R2
+ 0x80000000, // 0040 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_GetOptionReader;
+be_local_closure(class_GetOptionReader_init, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_GetOptionReader,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(value_error),
+ /* K1 */ be_nested_str_weak(invalid_X20json),
+ /* K2 */ be_nested_str_weak(SetOption),
+ /* K3 */ be_nested_str_weak(flag),
+ /* K4 */ be_nested_str_weak(fromhex),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(reverse),
+ /* K7 */ be_nested_str_weak(flag2),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(flag3),
+ /* K10 */ be_const_int(2),
+ /* K11 */ be_nested_str_weak(flag4),
+ /* K12 */ be_const_int(3),
+ /* K13 */ be_nested_str_weak(flag5),
+ /* K14 */ be_nested_str_weak(flag6),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[54]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0xB0060101, // 0003 RAISE 1 K0 K1
+ 0x94080302, // 0004 GETIDX R2 R1 K2
+ 0x600C0015, // 0005 GETGBL R3 G21
+ 0x7C0C0000, // 0006 CALL R3 0
+ 0x8C0C0704, // 0007 GETMET R3 R3 K4
+ 0x94140505, // 0008 GETIDX R5 R2 K5
+ 0x7C0C0400, // 0009 CALL R3 2
+ 0x8C0C0706, // 000A GETMET R3 R3 K6
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x90020603, // 000C SETMBR R0 K3 R3
+ 0x600C0015, // 000D GETGBL R3 G21
+ 0x7C0C0000, // 000E CALL R3 0
+ 0x8C0C0704, // 000F GETMET R3 R3 K4
+ 0x94140508, // 0010 GETIDX R5 R2 K8
+ 0x7C0C0400, // 0011 CALL R3 2
+ 0x90020E03, // 0012 SETMBR R0 K7 R3
+ 0x600C0015, // 0013 GETGBL R3 G21
+ 0x7C0C0000, // 0014 CALL R3 0
+ 0x8C0C0704, // 0015 GETMET R3 R3 K4
+ 0x9414050A, // 0016 GETIDX R5 R2 K10
+ 0x7C0C0400, // 0017 CALL R3 2
+ 0x8C0C0706, // 0018 GETMET R3 R3 K6
+ 0x7C0C0200, // 0019 CALL R3 1
+ 0x90021203, // 001A SETMBR R0 K9 R3
+ 0x600C0015, // 001B GETGBL R3 G21
+ 0x7C0C0000, // 001C CALL R3 0
+ 0x8C0C0704, // 001D GETMET R3 R3 K4
+ 0x9414050C, // 001E GETIDX R5 R2 K12
+ 0x7C0C0400, // 001F CALL R3 2
+ 0x8C0C0706, // 0020 GETMET R3 R3 K6
+ 0x7C0C0200, // 0021 CALL R3 1
+ 0x90021603, // 0022 SETMBR R0 K11 R3
+ 0x600C0015, // 0023 GETGBL R3 G21
+ 0x7C0C0000, // 0024 CALL R3 0
+ 0x8C0C0704, // 0025 GETMET R3 R3 K4
+ 0x54160003, // 0026 LDINT R5 4
+ 0x94140405, // 0027 GETIDX R5 R2 R5
+ 0x7C0C0400, // 0028 CALL R3 2
+ 0x8C0C0706, // 0029 GETMET R3 R3 K6
+ 0x7C0C0200, // 002A CALL R3 1
+ 0x90021A03, // 002B SETMBR R0 K13 R3
+ 0x600C0015, // 002C GETGBL R3 G21
+ 0x7C0C0000, // 002D CALL R3 0
+ 0x8C0C0704, // 002E GETMET R3 R3 K4
+ 0x54160004, // 002F LDINT R5 5
+ 0x94140405, // 0030 GETIDX R5 R2 R5
+ 0x7C0C0400, // 0031 CALL R3 2
+ 0x8C0C0706, // 0032 GETMET R3 R3 K6
+ 0x7C0C0200, // 0033 CALL R3 1
+ 0x90021C03, // 0034 SETMBR R0 K14 R3
+ 0x80000000, // 0035 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: GetOptionReader
+********************************************************************/
+be_local_class(GetOptionReader,
+ 6,
+ NULL,
+ be_nested_map(8,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(flag2, -1), be_const_var(1) },
+ { be_const_key_weak(flag4, -1), be_const_var(3) },
+ { be_const_key_weak(getoption, -1), be_const_closure(class_GetOptionReader_getoption_closure) },
+ { be_const_key_weak(init, 5), be_const_closure(class_GetOptionReader_init_closure) },
+ { be_const_key_weak(flag3, -1), be_const_var(2) },
+ { be_const_key_weak(flag6, -1), be_const_var(5) },
+ { be_const_key_weak(flag5, -1), be_const_var(4) },
+ { be_const_key_weak(flag, 0), be_const_var(0) },
+ })),
+ be_str_weak(GetOptionReader)
+);
+
extern const bclass be_class_Matter_Plugin_Device;
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_parse_status, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_cmd_cb
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_register_cmd_cb, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_http_response),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x7C0C0800, // 0005 CALL R3 4
+ 0x80040600, // 0006 RET 1 R3
+ })
+ ),
+ &be_class_Matter_Plugin_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remote),
+ /* K1 */ be_nested_str_weak(add_schedule),
+ /* K2 */ be_nested_str_weak(UPDATE_CMD),
+ /* K3 */ be_nested_str_weak(UPDATE_TIME),
+ }),
+ be_str_weak(register_cmd_cb),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x88100103, // 0003 GETMBR R4 R0 K3
+ 0x84140000, // 0004 CLOSURE R5 P0
+ 0x7C040800, // 0005 CALL R1 4
+ 0xA0000000, // 0006 CLOSE R0
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_web_values, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28),
+ /* K4 */ be_nested_str_weak(DISPLAY_NAME),
+ /* K5 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x88100104, // 0004 GETMBR R4 R0 K4
+ 0x00120604, // 0005 ADD R4 K3 R4
+ 0x00100905, // 0006 ADD R4 R4 K5
+ 0x7C080400, // 0007 CALL R2 2
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_every_250ms, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(http_remote),
+ /* K2 */ be_nested_str_weak(scheduler),
+ /* K3 */ be_nested_str_weak(every_250ms),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060003, // 0001 JMPF R1 #0006
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x8C040302, // 0003 GETMET R1 R1 K2
+ 0x7C040200, // 0004 CALL R1 1
+ 0x70020004, // 0005 JMP #000B
+ 0x60040003, // 0006 GETGBL R1 G3
+ 0x5C080000, // 0007 MOVE R2 R0
+ 0x7C040200, // 0008 CALL R1 1
+ 0x8C040303, // 0009 GETMET R1 R1 K3
+ 0x7C040200, // 000A CALL R1 1
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_value_onoff
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_web_value_onoff, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(_X3Cb_X3EOn_X3C_X2Fb_X3E),
+ /* K1 */ be_nested_str_weak(Off),
+ /* K2 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_value_onoff),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0004, // 0002 JMPF R2 #0008
+ 0x78060001, // 0003 JMPF R1 #0006
+ 0x58080000, // 0004 LDCONST R2 K0
+ 0x70020000, // 0005 JMP #0007
+ 0x58080001, // 0006 LDCONST R2 K1
+ 0x70020000, // 0007 JMP #0009
+ 0x58080002, // 0008 LDCONST R2 K2
+ 0x80040400, // 0009 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: invoke_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_invoke_request, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(command),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_const_int(1),
+ /* K7 */ be_nested_str_weak(Matter_TLV_struct),
+ /* K8 */ be_nested_str_weak(add_TLV),
+ /* K9 */ be_nested_str_weak(U2),
+ /* K10 */ be_nested_str_weak(invoke_request),
+ }),
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[51]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140702, // 0002 GETMBR R5 R3 K2
+ 0x88180703, // 0003 GETMBR R6 R3 K3
+ 0x1C1C0B04, // 0004 EQ R7 R5 K4
+ 0x781E0016, // 0005 JMPF R7 #001D
+ 0x1C1C0D05, // 0006 EQ R7 R6 K5
+ 0x781E0002, // 0007 JMPF R7 #000B
+ 0x501C0200, // 0008 LDBOOL R7 1 0
+ 0x80040E00, // 0009 RET 1 R7
+ 0x70020010, // 000A JMP #001C
+ 0x1C1C0D06, // 000B EQ R7 R6 K6
+ 0x781E0009, // 000C JMPF R7 #0017
+ 0x8C1C0907, // 000D GETMET R7 R4 K7
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x8C200F08, // 000F GETMET R8 R7 K8
+ 0x58280005, // 0010 LDCONST R10 K5
+ 0x882C0909, // 0011 GETMBR R11 R4 K9
+ 0x58300005, // 0012 LDCONST R12 K5
+ 0x7C200800, // 0013 CALL R8 4
+ 0x900E0705, // 0014 SETMBR R3 K3 K5
+ 0x80040E00, // 0015 RET 1 R7
+ 0x70020004, // 0016 JMP #001C
+ 0x541E003F, // 0017 LDINT R7 64
+ 0x1C1C0C07, // 0018 EQ R7 R6 R7
+ 0x781E0001, // 0019 JMPF R7 #001C
+ 0x501C0200, // 001A LDBOOL R7 1 0
+ 0x80040E00, // 001B RET 1 R7
+ 0x70020014, // 001C JMP #0032
+ 0x541E0003, // 001D LDINT R7 4
+ 0x1C1C0A07, // 001E EQ R7 R5 R7
+ 0x781E0002, // 001F JMPF R7 #0023
+ 0x501C0200, // 0020 LDBOOL R7 1 0
+ 0x80040E00, // 0021 RET 1 R7
+ 0x7002000E, // 0022 JMP #0032
+ 0x541E0004, // 0023 LDINT R7 5
+ 0x1C1C0A07, // 0024 EQ R7 R5 R7
+ 0x781E0002, // 0025 JMPF R7 #0029
+ 0x501C0200, // 0026 LDBOOL R7 1 0
+ 0x80040E00, // 0027 RET 1 R7
+ 0x70020008, // 0028 JMP #0032
+ 0x601C0003, // 0029 GETGBL R7 G3
+ 0x5C200000, // 002A MOVE R8 R0
+ 0x7C1C0200, // 002B CALL R7 1
+ 0x8C1C0F0A, // 002C GETMET R7 R7 K10
+ 0x5C240200, // 002D MOVE R9 R1
+ 0x5C280400, // 002E MOVE R10 R2
+ 0x5C2C0600, // 002F MOVE R11 R3
+ 0x7C1C0800, // 0030 CALL R7 4
+ 0x80040E00, // 0031 RET 1 R7
+ 0x80000000, // 0032 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_update_shadow, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(tick),
+ /* K2 */ be_nested_str_weak(device),
+ /* K3 */ be_nested_str_weak(call_remote_sync),
+ /* K4 */ be_nested_str_weak(UPDATE_CMD),
+ /* K5 */ be_nested_str_weak(parse_http_response),
+ /* K6 */ be_const_int(1),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x7806000D, // 0001 JMPF R1 #0010
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x88080102, // 0003 GETMBR R2 R0 K2
+ 0x88080501, // 0004 GETMBR R2 R2 K1
+ 0x20040202, // 0005 NE R1 R1 R2
+ 0x78060008, // 0006 JMPF R1 #0010
+ 0x8C040103, // 0007 GETMET R1 R0 K3
+ 0x880C0104, // 0008 GETMBR R3 R0 K4
+ 0x7C040400, // 0009 CALL R1 2
+ 0x78060004, // 000A JMPF R1 #0010
+ 0x8C080105, // 000B GETMET R2 R0 K5
+ 0x58100006, // 000C LDCONST R4 K6
+ 0x5C140200, // 000D MOVE R5 R1
+ 0x88180104, // 000E GETMBR R6 R0 K4
+ 0x7C080800, // 000F CALL R2 4
+ 0x88040102, // 0010 GETMBR R1 R0 K2
+ 0x88040301, // 0011 GETMBR R1 R1 K1
+ 0x90020201, // 0012 SETMBR R0 K1 R1
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: call_remote_sync
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(json),
+ /* K2 */ be_const_int(2),
+ /* K3 */ be_nested_str_weak(_X20),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(http_remote),
+ /* K6 */ be_nested_str_weak(call_sync),
+ /* K7 */ be_nested_str_weak(SYNC_TIMEOUT),
+ /* K8 */ be_nested_str_weak(device_is_alive),
+ /* K9 */ be_nested_str_weak(load),
+ /* K10 */ be_const_int(1),
+ /* K11 */ be_nested_str_weak(tasmota),
+ /* K12 */ be_nested_str_weak(log),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying),
+ /* K14 */ be_const_int(3),
+ }),
+ be_str_weak(call_remote_sync),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x780E0029, // 0001 JMPF R3 #002C
+ 0xA40E0200, // 0002 IMPORT R3 K1
+ 0x58100002, // 0003 LDCONST R4 K2
+ 0x4C140000, // 0004 LDNIL R5
+ 0x20140405, // 0005 NE R5 R2 R5
+ 0x78160005, // 0006 JMPF R5 #000D
+ 0x00140303, // 0007 ADD R5 R1 K3
+ 0x60180008, // 0008 GETGBL R6 G8
+ 0x5C1C0400, // 0009 MOVE R7 R2
+ 0x7C180200, // 000A CALL R6 1
+ 0x00140A06, // 000B ADD R5 R5 R6
+ 0x5C040A00, // 000C MOVE R1 R5
+ 0x24140904, // 000D GT R5 R4 K4
+ 0x78160016, // 000E JMPF R5 #0026
+ 0x88140105, // 000F GETMBR R5 R0 K5
+ 0x8C140B06, // 0010 GETMET R5 R5 K6
+ 0x5C1C0200, // 0011 MOVE R7 R1
+ 0x88200107, // 0012 GETMBR R8 R0 K7
+ 0x7C140600, // 0013 CALL R5 3
+ 0x4C180000, // 0014 LDNIL R6
+ 0x20180A06, // 0015 NE R6 R5 R6
+ 0x781A0007, // 0016 JMPF R6 #001F
+ 0x88180105, // 0017 GETMBR R6 R0 K5
+ 0x8C180D08, // 0018 GETMET R6 R6 K8
+ 0x50200200, // 0019 LDBOOL R8 1 0
+ 0x7C180400, // 001A CALL R6 2
+ 0x8C180709, // 001B GETMET R6 R3 K9
+ 0x5C200A00, // 001C MOVE R8 R5
+ 0x7C180400, // 001D CALL R6 2
+ 0x80040C00, // 001E RET 1 R6
+ 0x0410090A, // 001F SUB R4 R4 K10
+ 0xB81A1600, // 0020 GETNGBL R6 K11
+ 0x8C180D0C, // 0021 GETMET R6 R6 K12
+ 0x5820000D, // 0022 LDCONST R8 K13
+ 0x5824000E, // 0023 LDCONST R9 K14
+ 0x7C180600, // 0024 CALL R6 3
+ 0x7001FFE6, // 0025 JMP #000D
+ 0x88140105, // 0026 GETMBR R5 R0 K5
+ 0x8C140B08, // 0027 GETMET R5 R5 K8
+ 0x501C0000, // 0028 LDBOOL R7 0 0
+ 0x7C140400, // 0029 CALL R5 2
+ 0x4C140000, // 002A LDNIL R5
+ 0x80040A00, // 002B RET 1 R5
+ 0x80000000, // 002C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_http_response
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_parse_http_response, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(tick),
+ /* K2 */ be_nested_str_weak(device),
+ /* K3 */ be_nested_str_weak(http_remote),
+ /* K4 */ be_nested_str_weak(parse_status_response_and_call_method),
+ /* K5 */ be_nested_str_weak(parse_status),
+ }),
+ be_str_weak(parse_http_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x7812000A, // 0001 JMPF R4 #000D
+ 0x88100102, // 0002 GETMBR R4 R0 K2
+ 0x88100901, // 0003 GETMBR R4 R4 K1
+ 0x90020204, // 0004 SETMBR R0 K1 R4
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x8C100904, // 0006 GETMET R4 R4 K4
+ 0x5C180200, // 0007 MOVE R6 R1
+ 0x5C1C0400, // 0008 MOVE R7 R2
+ 0x5C200600, // 0009 MOVE R8 R3
+ 0x5C240000, // 000A MOVE R9 R0
+ 0x88280105, // 000B GETMBR R10 R0 K5
+ 0x7C100C00, // 000C CALL R4 6
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(PREFIX),
+ /* K4 */ be_nested_str_weak(html_escape),
+ /* K5 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C0C0302, // 0003 GETMET R3 R1 K2
+ 0x60140018, // 0004 GETGBL R5 G24
+ 0x88180103, // 0005 GETMBR R6 R0 K3
+ 0x780A0003, // 0006 JMPF R2 #000B
+ 0x8C1C0304, // 0007 GETMET R7 R1 K4
+ 0x5C240400, // 0008 MOVE R9 R2
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x70020000, // 000A JMP #000C
+ 0x581C0005, // 000B LDCONST R7 K5
+ 0x7C140400, // 000C CALL R5 2
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -20,7 +759,7 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Device,
1, /* has constants */
- ( &(const bvalue[36]) { /* constants */
+ ( &(const bvalue[43]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
@@ -43,24 +782,31 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
/* K19 */ be_nested_str_weak(device),
/* K20 */ be_nested_str_weak(disable_bridge_mode),
/* K21 */ be_nested_str_weak(string),
- /* K22 */ be_nested_str_weak(UTF1),
- /* K23 */ be_nested_str_weak(tasmota),
- /* K24 */ be_nested_str_weak(cmd),
- /* K25 */ be_nested_str_weak(DeviceName),
- /* K26 */ be_nested_str_weak(get_name),
- /* K27 */ be_nested_str_weak(Status_X202),
- /* K28 */ be_nested_str_weak(StatusFWR),
- /* K29 */ be_nested_str_weak(Version),
- /* K30 */ be_nested_str_weak(_X28),
- /* K31 */ be_nested_str_weak(wifi),
- /* K32 */ be_nested_str_weak(mac),
- /* K33 */ be_nested_str_weak(),
- /* K34 */ be_nested_str_weak(BOOL),
- /* K35 */ be_nested_str_weak(read_attribute),
+ /* K22 */ be_nested_str_weak(BRIDGE),
+ /* K23 */ be_nested_str_weak(http_remote),
+ /* K24 */ be_nested_str_weak(get_info),
+ /* K25 */ be_nested_str_weak(name),
+ /* K26 */ be_nested_str_weak(UTF1),
+ /* K27 */ be_nested_str_weak(NULL),
+ /* K28 */ be_nested_str_weak(tasmota),
+ /* K29 */ be_nested_str_weak(cmd),
+ /* K30 */ be_nested_str_weak(DeviceName),
+ /* K31 */ be_nested_str_weak(get_name),
+ /* K32 */ be_nested_str_weak(version),
+ /* K33 */ be_nested_str_weak(_X28),
+ /* K34 */ be_nested_str_weak(Status_X202),
+ /* K35 */ be_nested_str_weak(StatusFWR),
+ /* K36 */ be_nested_str_weak(Version),
+ /* K37 */ be_nested_str_weak(mac),
+ /* K38 */ be_nested_str_weak(wifi),
+ /* K39 */ be_nested_str_weak(),
+ /* K40 */ be_nested_str_weak(BOOL),
+ /* K41 */ be_nested_str_weak(reachable),
+ /* K42 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[189]) { /* code */
+ ( &(const binstruction[258]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
@@ -82,7 +828,7 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x58280005, // 0012 LDCONST R10 K5
0x7C1C0600, // 0013 CALL R7 3
0x80040E00, // 0014 RET 1 R7
- 0x7002009D, // 0015 JMP #00B4
+ 0x700200E2, // 0015 JMP #00F9
0x541E0003, // 0016 LDINT R7 4
0x1C1C0A07, // 0017 EQ R7 R5 R7
0x781E0004, // 0018 JMPF R7 #001E
@@ -90,11 +836,11 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x781E0001, // 001A JMPF R7 #001D
0x4C1C0000, // 001B LDNIL R7
0x80040E00, // 001C RET 1 R7
- 0x70020095, // 001D JMP #00B4
+ 0x700200DA, // 001D JMP #00F9
0x541E0004, // 001E LDINT R7 5
0x1C1C0A07, // 001F EQ R7 R5 R7
0x781E0000, // 0020 JMPF R7 #0022
- 0x70020091, // 0021 JMP #00B4
+ 0x700200D6, // 0021 JMP #00F9
0x541E001C, // 0022 LDINT R7 29
0x1C1C0A07, // 0023 EQ R7 R5 R7
0x781E0034, // 0024 JMPF R7 #005A
@@ -150,106 +896,231 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x58380008, // 0056 LDCONST R14 K8
0x7C280800, // 0057 CALL R10 4
0x80040E00, // 0058 RET 1 R7
- 0x70020059, // 0059 JMP #00B4
+ 0x7002009E, // 0059 JMP #00F9
0x541E0038, // 005A LDINT R7 57
0x1C1C0A07, // 005B EQ R7 R5 R7
- 0x781E0056, // 005C JMPF R7 #00B4
+ 0x781E009B, // 005C JMPF R7 #00F9
0xA41E2A00, // 005D IMPORT R7 K21
0x1C200D04, // 005E EQ R8 R6 K4
- 0x7822000A, // 005F JMPF R8 #006B
- 0x8C200706, // 0060 GETMET R8 R3 K6
- 0x88280916, // 0061 GETMBR R10 R4 K22
- 0xB82E2E00, // 0062 GETNGBL R11 K23
- 0x8C2C1718, // 0063 GETMET R11 R11 K24
- 0x58340019, // 0064 LDCONST R13 K25
- 0x50380200, // 0065 LDBOOL R14 1 0
- 0x7C2C0600, // 0066 CALL R11 3
- 0x942C1719, // 0067 GETIDX R11 R11 K25
- 0x7C200600, // 0068 CALL R8 3
- 0x80041000, // 0069 RET 1 R8
- 0x70020048, // 006A JMP #00B4
- 0x54220004, // 006B LDINT R8 5
- 0x1C200C08, // 006C EQ R8 R6 R8
- 0x78220006, // 006D JMPF R8 #0075
- 0x8C200706, // 006E GETMET R8 R3 K6
- 0x88280916, // 006F GETMBR R10 R4 K22
- 0x8C2C011A, // 0070 GETMET R11 R0 K26
- 0x7C2C0200, // 0071 CALL R11 1
- 0x7C200600, // 0072 CALL R8 3
- 0x80041000, // 0073 RET 1 R8
- 0x7002003E, // 0074 JMP #00B4
- 0x54220009, // 0075 LDINT R8 10
- 0x1C200C08, // 0076 EQ R8 R6 R8
- 0x78220015, // 0077 JMPF R8 #008E
- 0xB8222E00, // 0078 GETNGBL R8 K23
- 0x8C201118, // 0079 GETMET R8 R8 K24
- 0x5828001B, // 007A LDCONST R10 K27
- 0x502C0200, // 007B LDBOOL R11 1 0
- 0x7C200600, // 007C CALL R8 3
- 0x9420111C, // 007D GETIDX R8 R8 K28
- 0x9420111D, // 007E GETIDX R8 R8 K29
- 0x8C240F11, // 007F GETMET R9 R7 K17
- 0x5C2C1000, // 0080 MOVE R11 R8
- 0x5830001E, // 0081 LDCONST R12 K30
- 0x7C240600, // 0082 CALL R9 3
- 0x24281305, // 0083 GT R10 R9 K5
- 0x782A0002, // 0084 JMPF R10 #0088
- 0x04281308, // 0085 SUB R10 R9 K8
- 0x402A0A0A, // 0086 CONNECT R10 K5 R10
- 0x9420100A, // 0087 GETIDX R8 R8 R10
- 0x8C280706, // 0088 GETMET R10 R3 K6
- 0x88300916, // 0089 GETMBR R12 R4 K22
- 0x5C341000, // 008A MOVE R13 R8
- 0x7C280600, // 008B CALL R10 3
- 0x80041400, // 008C RET 1 R10
- 0x70020025, // 008D JMP #00B4
- 0x5422000E, // 008E LDINT R8 15
- 0x1C200C08, // 008F EQ R8 R6 R8
- 0x7822000B, // 0090 JMPF R8 #009D
- 0x8C200706, // 0091 GETMET R8 R3 K6
- 0x88280916, // 0092 GETMBR R10 R4 K22
- 0xB82E2E00, // 0093 GETNGBL R11 K23
- 0x8C2C171F, // 0094 GETMET R11 R11 K31
- 0x7C2C0200, // 0095 CALL R11 1
- 0x8C2C1711, // 0096 GETMET R11 R11 K17
- 0x58340020, // 0097 LDCONST R13 K32
- 0x58380021, // 0098 LDCONST R14 K33
- 0x7C2C0600, // 0099 CALL R11 3
- 0x7C200600, // 009A CALL R8 3
- 0x80041000, // 009B RET 1 R8
- 0x70020016, // 009C JMP #00B4
- 0x54220010, // 009D LDINT R8 17
- 0x1C200C08, // 009E EQ R8 R6 R8
- 0x78220005, // 009F JMPF R8 #00A6
- 0x8C200706, // 00A0 GETMET R8 R3 K6
- 0x88280922, // 00A1 GETMBR R10 R4 K34
- 0x582C0008, // 00A2 LDCONST R11 K8
- 0x7C200600, // 00A3 CALL R8 3
- 0x80041000, // 00A4 RET 1 R8
- 0x7002000D, // 00A5 JMP #00B4
- 0x54220011, // 00A6 LDINT R8 18
- 0x1C200C08, // 00A7 EQ R8 R6 R8
- 0x7822000A, // 00A8 JMPF R8 #00B4
- 0x8C200706, // 00A9 GETMET R8 R3 K6
- 0x88280916, // 00AA GETMBR R10 R4 K22
- 0xB82E2E00, // 00AB GETNGBL R11 K23
- 0x8C2C171F, // 00AC GETMET R11 R11 K31
- 0x7C2C0200, // 00AD CALL R11 1
- 0x8C2C1711, // 00AE GETMET R11 R11 K17
- 0x58340020, // 00AF LDCONST R13 K32
- 0x58380021, // 00B0 LDCONST R14 K33
- 0x7C2C0600, // 00B1 CALL R11 3
- 0x7C200600, // 00B2 CALL R8 3
- 0x80041000, // 00B3 RET 1 R8
- 0x601C0003, // 00B4 GETGBL R7 G3
- 0x5C200000, // 00B5 MOVE R8 R0
- 0x7C1C0200, // 00B6 CALL R7 1
- 0x8C1C0F23, // 00B7 GETMET R7 R7 K35
- 0x5C240200, // 00B8 MOVE R9 R1
- 0x5C280400, // 00B9 MOVE R10 R2
- 0x5C2C0600, // 00BA MOVE R11 R3
- 0x7C1C0800, // 00BB CALL R7 4
- 0x80040E00, // 00BC RET 1 R7
+ 0x7822001F, // 005F JMPF R8 #0080
+ 0x88200116, // 0060 GETMBR R8 R0 K22
+ 0x78220012, // 0061 JMPF R8 #0075
+ 0x88200117, // 0062 GETMBR R8 R0 K23
+ 0x8C201118, // 0063 GETMET R8 R8 K24
+ 0x7C200200, // 0064 CALL R8 1
+ 0x8C201111, // 0065 GETMET R8 R8 K17
+ 0x58280019, // 0066 LDCONST R10 K25
+ 0x7C200400, // 0067 CALL R8 2
+ 0x78220005, // 0068 JMPF R8 #006F
+ 0x8C240706, // 0069 GETMET R9 R3 K6
+ 0x882C091A, // 006A GETMBR R11 R4 K26
+ 0x5C301000, // 006B MOVE R12 R8
+ 0x7C240600, // 006C CALL R9 3
+ 0x80041200, // 006D RET 1 R9
+ 0x70020004, // 006E JMP #0074
+ 0x8C240706, // 006F GETMET R9 R3 K6
+ 0x882C091B, // 0070 GETMBR R11 R4 K27
+ 0x4C300000, // 0071 LDNIL R12
+ 0x7C240600, // 0072 CALL R9 3
+ 0x80041200, // 0073 RET 1 R9
+ 0x70020009, // 0074 JMP #007F
+ 0x8C200706, // 0075 GETMET R8 R3 K6
+ 0x8828091A, // 0076 GETMBR R10 R4 K26
+ 0xB82E3800, // 0077 GETNGBL R11 K28
+ 0x8C2C171D, // 0078 GETMET R11 R11 K29
+ 0x5834001E, // 0079 LDCONST R13 K30
+ 0x50380200, // 007A LDBOOL R14 1 0
+ 0x7C2C0600, // 007B CALL R11 3
+ 0x942C171E, // 007C GETIDX R11 R11 K30
+ 0x7C200600, // 007D CALL R8 3
+ 0x80041000, // 007E RET 1 R8
+ 0x70020078, // 007F JMP #00F9
+ 0x54220004, // 0080 LDINT R8 5
+ 0x1C200C08, // 0081 EQ R8 R6 R8
+ 0x78220006, // 0082 JMPF R8 #008A
+ 0x8C200706, // 0083 GETMET R8 R3 K6
+ 0x8828091A, // 0084 GETMBR R10 R4 K26
+ 0x8C2C011F, // 0085 GETMET R11 R0 K31
+ 0x7C2C0200, // 0086 CALL R11 1
+ 0x7C200600, // 0087 CALL R8 3
+ 0x80041000, // 0088 RET 1 R8
+ 0x7002006E, // 0089 JMP #00F9
+ 0x54220009, // 008A LDINT R8 10
+ 0x1C200C08, // 008B EQ R8 R6 R8
+ 0x78220033, // 008C JMPF R8 #00C1
+ 0x88200116, // 008D GETMBR R8 R0 K22
+ 0x7822001B, // 008E JMPF R8 #00AB
+ 0x88200117, // 008F GETMBR R8 R0 K23
+ 0x8C201118, // 0090 GETMET R8 R8 K24
+ 0x7C200200, // 0091 CALL R8 1
+ 0x8C201111, // 0092 GETMET R8 R8 K17
+ 0x58280020, // 0093 LDCONST R10 K32
+ 0x7C200400, // 0094 CALL R8 2
+ 0x7822000E, // 0095 JMPF R8 #00A5
+ 0x8C240F11, // 0096 GETMET R9 R7 K17
+ 0x5C2C1000, // 0097 MOVE R11 R8
+ 0x58300021, // 0098 LDCONST R12 K33
+ 0x7C240600, // 0099 CALL R9 3
+ 0x24281305, // 009A GT R10 R9 K5
+ 0x782A0002, // 009B JMPF R10 #009F
+ 0x04281308, // 009C SUB R10 R9 K8
+ 0x402A0A0A, // 009D CONNECT R10 K5 R10
+ 0x9420100A, // 009E GETIDX R8 R8 R10
+ 0x8C280706, // 009F GETMET R10 R3 K6
+ 0x8830091A, // 00A0 GETMBR R12 R4 K26
+ 0x5C341000, // 00A1 MOVE R13 R8
+ 0x7C280600, // 00A2 CALL R10 3
+ 0x80041400, // 00A3 RET 1 R10
+ 0x70020004, // 00A4 JMP #00AA
+ 0x8C240706, // 00A5 GETMET R9 R3 K6
+ 0x882C091B, // 00A6 GETMBR R11 R4 K27
+ 0x4C300000, // 00A7 LDNIL R12
+ 0x7C240600, // 00A8 CALL R9 3
+ 0x80041200, // 00A9 RET 1 R9
+ 0x70020014, // 00AA JMP #00C0
+ 0xB8223800, // 00AB GETNGBL R8 K28
+ 0x8C20111D, // 00AC GETMET R8 R8 K29
+ 0x58280022, // 00AD LDCONST R10 K34
+ 0x502C0200, // 00AE LDBOOL R11 1 0
+ 0x7C200600, // 00AF CALL R8 3
+ 0x94201123, // 00B0 GETIDX R8 R8 K35
+ 0x94201124, // 00B1 GETIDX R8 R8 K36
+ 0x8C240F11, // 00B2 GETMET R9 R7 K17
+ 0x5C2C1000, // 00B3 MOVE R11 R8
+ 0x58300021, // 00B4 LDCONST R12 K33
+ 0x7C240600, // 00B5 CALL R9 3
+ 0x24281305, // 00B6 GT R10 R9 K5
+ 0x782A0002, // 00B7 JMPF R10 #00BB
+ 0x04281308, // 00B8 SUB R10 R9 K8
+ 0x402A0A0A, // 00B9 CONNECT R10 K5 R10
+ 0x9420100A, // 00BA GETIDX R8 R8 R10
+ 0x8C280706, // 00BB GETMET R10 R3 K6
+ 0x8830091A, // 00BC GETMBR R12 R4 K26
+ 0x5C341000, // 00BD MOVE R13 R8
+ 0x7C280600, // 00BE CALL R10 3
+ 0x80041400, // 00BF RET 1 R10
+ 0x70020037, // 00C0 JMP #00F9
+ 0x5422000E, // 00C1 LDINT R8 15
+ 0x1C200C08, // 00C2 EQ R8 R6 R8
+ 0x74220002, // 00C3 JMPT R8 #00C7
+ 0x54220011, // 00C4 LDINT R8 18
+ 0x1C200C08, // 00C5 EQ R8 R6 R8
+ 0x78220020, // 00C6 JMPF R8 #00E8
+ 0x88200116, // 00C7 GETMBR R8 R0 K22
+ 0x78220012, // 00C8 JMPF R8 #00DC
+ 0x88200117, // 00C9 GETMBR R8 R0 K23
+ 0x8C201118, // 00CA GETMET R8 R8 K24
+ 0x7C200200, // 00CB CALL R8 1
+ 0x8C201111, // 00CC GETMET R8 R8 K17
+ 0x58280025, // 00CD LDCONST R10 K37
+ 0x7C200400, // 00CE CALL R8 2
+ 0x78220005, // 00CF JMPF R8 #00D6
+ 0x8C240706, // 00D0 GETMET R9 R3 K6
+ 0x882C091A, // 00D1 GETMBR R11 R4 K26
+ 0x5C301000, // 00D2 MOVE R12 R8
+ 0x7C240600, // 00D3 CALL R9 3
+ 0x80041200, // 00D4 RET 1 R9
+ 0x70020004, // 00D5 JMP #00DB
+ 0x8C240706, // 00D6 GETMET R9 R3 K6
+ 0x882C091B, // 00D7 GETMBR R11 R4 K27
+ 0x4C300000, // 00D8 LDNIL R12
+ 0x7C240600, // 00D9 CALL R9 3
+ 0x80041200, // 00DA RET 1 R9
+ 0x7002000A, // 00DB JMP #00E7
+ 0x8C200706, // 00DC GETMET R8 R3 K6
+ 0x8828091A, // 00DD GETMBR R10 R4 K26
+ 0xB82E3800, // 00DE GETNGBL R11 K28
+ 0x8C2C1726, // 00DF GETMET R11 R11 K38
+ 0x7C2C0200, // 00E0 CALL R11 1
+ 0x8C2C1711, // 00E1 GETMET R11 R11 K17
+ 0x58340025, // 00E2 LDCONST R13 K37
+ 0x58380027, // 00E3 LDCONST R14 K39
+ 0x7C2C0600, // 00E4 CALL R11 3
+ 0x7C200600, // 00E5 CALL R8 3
+ 0x80041000, // 00E6 RET 1 R8
+ 0x70020010, // 00E7 JMP #00F9
+ 0x54220010, // 00E8 LDINT R8 17
+ 0x1C200C08, // 00E9 EQ R8 R6 R8
+ 0x7822000D, // 00EA JMPF R8 #00F9
+ 0x88200116, // 00EB GETMBR R8 R0 K22
+ 0x78220006, // 00EC JMPF R8 #00F4
+ 0x8C200706, // 00ED GETMET R8 R3 K6
+ 0x88280928, // 00EE GETMBR R10 R4 K40
+ 0x882C0117, // 00EF GETMBR R11 R0 K23
+ 0x882C1729, // 00F0 GETMBR R11 R11 K41
+ 0x7C200600, // 00F1 CALL R8 3
+ 0x80041000, // 00F2 RET 1 R8
+ 0x70020004, // 00F3 JMP #00F9
+ 0x8C200706, // 00F4 GETMET R8 R3 K6
+ 0x88280928, // 00F5 GETMBR R10 R4 K40
+ 0x582C0008, // 00F6 LDCONST R11 K8
+ 0x7C200600, // 00F7 CALL R8 3
+ 0x80041000, // 00F8 RET 1 R8
+ 0x601C0003, // 00F9 GETGBL R7 G3
+ 0x5C200000, // 00FA MOVE R8 R0
+ 0x7C1C0200, // 00FB CALL R7 1
+ 0x8C1C0F2A, // 00FC GETMET R7 R7 K42
+ 0x5C240200, // 00FD MOVE R9 R1
+ 0x5C280400, // 00FE MOVE R10 R2
+ 0x5C2C0600, // 00FF MOVE R11 R3
+ 0x7C1C0800, // 0100 CALL R7 4
+ 0x80040E00, // 0101 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_closure(class_Matter_Plugin_Device_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(ARG_HTTP),
+ /* K4 */ be_nested_str_weak(http_remote),
+ /* K5 */ be_nested_str_weak(device),
+ /* K6 */ be_nested_str_weak(register_http_remote),
+ /* K7 */ be_nested_str_weak(PROBE_TIMEOUT),
+ /* K8 */ be_nested_str_weak(register_cmd_cb),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x88100101, // 0008 GETMBR R4 R0 K1
+ 0x7812000A, // 0009 JMPF R4 #0015
+ 0x8C100702, // 000A GETMET R4 R3 K2
+ 0x88180103, // 000B GETMBR R6 R0 K3
+ 0x7C100400, // 000C CALL R4 2
+ 0x88140105, // 000D GETMBR R5 R0 K5
+ 0x8C140B06, // 000E GETMET R5 R5 K6
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x88200107, // 0010 GETMBR R8 R0 K7
+ 0x7C140600, // 0011 CALL R5 3
+ 0x90020805, // 0012 SETMBR R0 K4 R5
+ 0x8C140108, // 0013 GETMET R5 R0 K8
+ 0x7C140200, // 0014 CALL R5 1
+ 0x80000000, // 0015 RET 0
})
)
);
@@ -521,112 +1392,30 @@ be_local_closure(class_Matter_Plugin_Device__parse_sensor_entry, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
-be_local_closure(class_Matter_Plugin_Device_invoke_request, /* name */
- be_nested_proto(
- 13, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Device,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(command),
- /* K4 */ be_const_int(3),
- /* K5 */ be_const_int(0),
- /* K6 */ be_const_int(1),
- /* K7 */ be_nested_str_weak(Matter_TLV_struct),
- /* K8 */ be_nested_str_weak(add_TLV),
- /* K9 */ be_nested_str_weak(U2),
- /* K10 */ be_nested_str_weak(invoke_request),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140702, // 0002 GETMBR R5 R3 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x1C1C0B04, // 0004 EQ R7 R5 K4
- 0x781E0016, // 0005 JMPF R7 #001D
- 0x1C1C0D05, // 0006 EQ R7 R6 K5
- 0x781E0002, // 0007 JMPF R7 #000B
- 0x501C0200, // 0008 LDBOOL R7 1 0
- 0x80040E00, // 0009 RET 1 R7
- 0x70020010, // 000A JMP #001C
- 0x1C1C0D06, // 000B EQ R7 R6 K6
- 0x781E0009, // 000C JMPF R7 #0017
- 0x8C1C0907, // 000D GETMET R7 R4 K7
- 0x7C1C0200, // 000E CALL R7 1
- 0x8C200F08, // 000F GETMET R8 R7 K8
- 0x58280005, // 0010 LDCONST R10 K5
- 0x882C0909, // 0011 GETMBR R11 R4 K9
- 0x58300005, // 0012 LDCONST R12 K5
- 0x7C200800, // 0013 CALL R8 4
- 0x900E0705, // 0014 SETMBR R3 K3 K5
- 0x80040E00, // 0015 RET 1 R7
- 0x70020004, // 0016 JMP #001C
- 0x541E003F, // 0017 LDINT R7 64
- 0x1C1C0C07, // 0018 EQ R7 R6 R7
- 0x781E0001, // 0019 JMPF R7 #001C
- 0x501C0200, // 001A LDBOOL R7 1 0
- 0x80040E00, // 001B RET 1 R7
- 0x70020014, // 001C JMP #0032
- 0x541E0003, // 001D LDINT R7 4
- 0x1C1C0A07, // 001E EQ R7 R5 R7
- 0x781E0002, // 001F JMPF R7 #0023
- 0x501C0200, // 0020 LDBOOL R7 1 0
- 0x80040E00, // 0021 RET 1 R7
- 0x7002000E, // 0022 JMP #0032
- 0x541E0004, // 0023 LDINT R7 5
- 0x1C1C0A07, // 0024 EQ R7 R5 R7
- 0x781E0002, // 0025 JMPF R7 #0029
- 0x501C0200, // 0026 LDBOOL R7 1 0
- 0x80040E00, // 0027 RET 1 R7
- 0x70020008, // 0028 JMP #0032
- 0x601C0003, // 0029 GETGBL R7 G3
- 0x5C200000, // 002A MOVE R8 R0
- 0x7C1C0200, // 002B CALL R7 1
- 0x8C1C0F0A, // 002C GETMET R7 R7 K10
- 0x5C240200, // 002D MOVE R9 R1
- 0x5C280400, // 002E MOVE R10 R2
- 0x5C2C0600, // 002F MOVE R11 R3
- 0x7C1C0800, // 0030 CALL R7 4
- 0x80040E00, // 0031 RET 1 R7
- 0x80000000, // 0032 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Plugin_Device
********************************************************************/
extern const bclass be_class_Matter_Plugin;
be_local_class(Matter_Plugin_Device,
- 0,
+ 1,
&be_class_Matter_Plugin,
- be_nested_map(7,
+ be_nested_map(24,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, 1), be_const_closure(class_Matter_Plugin_Device_read_attribute_closure) },
- { be_const_key_weak(invoke_request, 4), be_const_closure(class_Matter_Plugin_Device_invoke_request_closure) },
- { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_Device_append_state_json_closure) },
- { be_const_key_weak(NON_BRIDGE_VENDOR, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(2,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(4631),
- be_const_int(4993),
+ { be_const_key_weak(ARG_HTTP, -1), be_nested_str_weak(url) },
+ { be_const_key_weak(_parse_sensor_entry, -1), be_const_closure(class_Matter_Plugin_Device__parse_sensor_entry_closure) },
+ { be_const_key_weak(TYPES, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(19, -1), be_const_int(1) },
})) ) } )) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(parse_status, 12), be_const_closure(class_Matter_Plugin_Device_parse_status_closure) },
+ { be_const_key_weak(http_remote, -1), be_const_var(0) },
+ { be_const_key_weak(register_cmd_cb, 6), be_const_closure(class_Matter_Plugin_Device_register_cmd_cb_closure) },
+ { be_const_key_weak(GetOptionReader, 16), be_const_class(be_class_GetOptionReader) },
+ { be_const_key_weak(append_state_json, 19), be_const_closure(class_Matter_Plugin_Device_append_state_json_closure) },
+ { be_const_key_weak(web_values, 22), be_const_closure(class_Matter_Plugin_Device_web_values_closure) },
+ { be_const_key_weak(PREFIX, -1), be_nested_str_weak(_X7C_X20_X3Ci_X3E_X25s_X3C_X2Fi_X3E_X20) },
+ { be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -699,12 +1488,24 @@ be_local_class(Matter_Plugin_Device,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(TYPES, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(19, -1), be_const_int(1) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Device_invoke_request_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Device_init_closure) },
+ { be_const_key_weak(PROBE_TIMEOUT, 20), be_const_int(1700) },
+ { be_const_key_weak(SYNC_TIMEOUT, -1), be_const_int(500) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2011) },
+ { be_const_key_weak(parse_http_response, -1), be_const_closure(class_Matter_Plugin_Device_parse_http_response_closure) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Device_web_values_prefix_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Device_read_attribute_closure) },
+ { be_const_key_weak(call_remote_sync, 21), be_const_closure(class_Matter_Plugin_Device_call_remote_sync_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Device_update_shadow_closure) },
+ { be_const_key_weak(web_value_onoff, -1), be_const_closure(class_Matter_Plugin_Device_web_value_onoff_closure) },
+ { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Plugin_Device_every_250ms_closure) },
+ { be_const_key_weak(NON_BRIDGE_VENDOR, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(2,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(4631),
+ be_const_int(4993),
})) ) } )) },
- { be_const_key_weak(_parse_sensor_entry, -1), be_const_closure(class_Matter_Plugin_Device__parse_sensor_entry_closure) },
})),
be_str_weak(Matter_Plugin_Device)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h
deleted file mode 100644
index bdbd6be1f..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Bridge_HTTP.h
+++ /dev/null
@@ -1,934 +0,0 @@
-/* Solidification of Matter_Plugin_2_Bridge_HTTP.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_GetOptionReader;
-
-/********************************************************************
-** Solidified function: getoption
-********************************************************************/
-extern const bclass be_class_GetOptionReader;
-be_local_closure(class_GetOptionReader_getoption, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_GetOptionReader,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(flag),
- /* K1 */ be_nested_str_weak(getbits),
- /* K2 */ be_const_int(1),
- /* K3 */ be_nested_str_weak(flag2),
- /* K4 */ be_nested_str_weak(get),
- /* K5 */ be_nested_str_weak(flag3),
- /* K6 */ be_nested_str_weak(flag4),
- /* K7 */ be_nested_str_weak(flag5),
- /* K8 */ be_nested_str_weak(flag6),
- }),
- be_str_weak(getoption),
- &be_const_str_solidified,
- ( &(const binstruction[65]) { /* code */
- 0x540A001F, // 0000 LDINT R2 32
- 0x14080202, // 0001 LT R2 R1 R2
- 0x780A0006, // 0002 JMPF R2 #000A
- 0x88080100, // 0003 GETMBR R2 R0 K0
- 0x8C080501, // 0004 GETMET R2 R2 K1
- 0x5C100200, // 0005 MOVE R4 R1
- 0x58140002, // 0006 LDCONST R5 K2
- 0x7C080600, // 0007 CALL R2 3
- 0x80040400, // 0008 RET 1 R2
- 0x70020035, // 0009 JMP #0040
- 0x540A0031, // 000A LDINT R2 50
- 0x14080202, // 000B LT R2 R1 R2
- 0x780A0007, // 000C JMPF R2 #0015
- 0x88080103, // 000D GETMBR R2 R0 K3
- 0x8C080504, // 000E GETMET R2 R2 K4
- 0x5412001F, // 000F LDINT R4 32
- 0x04100204, // 0010 SUB R4 R1 R4
- 0x58140002, // 0011 LDCONST R5 K2
- 0x7C080600, // 0012 CALL R2 3
- 0x80040400, // 0013 RET 1 R2
- 0x7002002A, // 0014 JMP #0040
- 0x540A0051, // 0015 LDINT R2 82
- 0x14080202, // 0016 LT R2 R1 R2
- 0x780A0007, // 0017 JMPF R2 #0020
- 0x88080105, // 0018 GETMBR R2 R0 K5
- 0x8C080501, // 0019 GETMET R2 R2 K1
- 0x54120031, // 001A LDINT R4 50
- 0x04100204, // 001B SUB R4 R1 R4
- 0x58140002, // 001C LDCONST R5 K2
- 0x7C080600, // 001D CALL R2 3
- 0x80040400, // 001E RET 1 R2
- 0x7002001F, // 001F JMP #0040
- 0x540A0071, // 0020 LDINT R2 114
- 0x14080202, // 0021 LT R2 R1 R2
- 0x780A0007, // 0022 JMPF R2 #002B
- 0x88080106, // 0023 GETMBR R2 R0 K6
- 0x8C080501, // 0024 GETMET R2 R2 K1
- 0x54120051, // 0025 LDINT R4 82
- 0x04100204, // 0026 SUB R4 R1 R4
- 0x58140002, // 0027 LDCONST R5 K2
- 0x7C080600, // 0028 CALL R2 3
- 0x80040400, // 0029 RET 1 R2
- 0x70020014, // 002A JMP #0040
- 0x540A0091, // 002B LDINT R2 146
- 0x14080202, // 002C LT R2 R1 R2
- 0x780A0007, // 002D JMPF R2 #0036
- 0x88080107, // 002E GETMBR R2 R0 K7
- 0x8C080501, // 002F GETMET R2 R2 K1
- 0x54120071, // 0030 LDINT R4 114
- 0x04100204, // 0031 SUB R4 R1 R4
- 0x58140002, // 0032 LDCONST R5 K2
- 0x7C080600, // 0033 CALL R2 3
- 0x80040400, // 0034 RET 1 R2
- 0x70020009, // 0035 JMP #0040
- 0x540A00B1, // 0036 LDINT R2 178
- 0x14080202, // 0037 LT R2 R1 R2
- 0x780A0006, // 0038 JMPF R2 #0040
- 0x88080108, // 0039 GETMBR R2 R0 K8
- 0x8C080501, // 003A GETMET R2 R2 K1
- 0x54120091, // 003B LDINT R4 146
- 0x04100204, // 003C SUB R4 R1 R4
- 0x58140002, // 003D LDCONST R5 K2
- 0x7C080600, // 003E CALL R2 3
- 0x80040400, // 003F RET 1 R2
- 0x80000000, // 0040 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_GetOptionReader;
-be_local_closure(class_GetOptionReader_init, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_GetOptionReader,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(value_error),
- /* K1 */ be_nested_str_weak(invalid_X20json),
- /* K2 */ be_nested_str_weak(SetOption),
- /* K3 */ be_nested_str_weak(flag),
- /* K4 */ be_nested_str_weak(fromhex),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(reverse),
- /* K7 */ be_nested_str_weak(flag2),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(flag3),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(flag4),
- /* K12 */ be_const_int(3),
- /* K13 */ be_nested_str_weak(flag5),
- /* K14 */ be_nested_str_weak(flag6),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0xB0060101, // 0003 RAISE 1 K0 K1
- 0x94080302, // 0004 GETIDX R2 R1 K2
- 0x600C0015, // 0005 GETGBL R3 G21
- 0x7C0C0000, // 0006 CALL R3 0
- 0x8C0C0704, // 0007 GETMET R3 R3 K4
- 0x94140505, // 0008 GETIDX R5 R2 K5
- 0x7C0C0400, // 0009 CALL R3 2
- 0x8C0C0706, // 000A GETMET R3 R3 K6
- 0x7C0C0200, // 000B CALL R3 1
- 0x90020603, // 000C SETMBR R0 K3 R3
- 0x600C0015, // 000D GETGBL R3 G21
- 0x7C0C0000, // 000E CALL R3 0
- 0x8C0C0704, // 000F GETMET R3 R3 K4
- 0x94140508, // 0010 GETIDX R5 R2 K8
- 0x7C0C0400, // 0011 CALL R3 2
- 0x90020E03, // 0012 SETMBR R0 K7 R3
- 0x600C0015, // 0013 GETGBL R3 G21
- 0x7C0C0000, // 0014 CALL R3 0
- 0x8C0C0704, // 0015 GETMET R3 R3 K4
- 0x9414050A, // 0016 GETIDX R5 R2 K10
- 0x7C0C0400, // 0017 CALL R3 2
- 0x8C0C0706, // 0018 GETMET R3 R3 K6
- 0x7C0C0200, // 0019 CALL R3 1
- 0x90021203, // 001A SETMBR R0 K9 R3
- 0x600C0015, // 001B GETGBL R3 G21
- 0x7C0C0000, // 001C CALL R3 0
- 0x8C0C0704, // 001D GETMET R3 R3 K4
- 0x9414050C, // 001E GETIDX R5 R2 K12
- 0x7C0C0400, // 001F CALL R3 2
- 0x8C0C0706, // 0020 GETMET R3 R3 K6
- 0x7C0C0200, // 0021 CALL R3 1
- 0x90021603, // 0022 SETMBR R0 K11 R3
- 0x600C0015, // 0023 GETGBL R3 G21
- 0x7C0C0000, // 0024 CALL R3 0
- 0x8C0C0704, // 0025 GETMET R3 R3 K4
- 0x54160003, // 0026 LDINT R5 4
- 0x94140405, // 0027 GETIDX R5 R2 R5
- 0x7C0C0400, // 0028 CALL R3 2
- 0x8C0C0706, // 0029 GETMET R3 R3 K6
- 0x7C0C0200, // 002A CALL R3 1
- 0x90021A03, // 002B SETMBR R0 K13 R3
- 0x600C0015, // 002C GETGBL R3 G21
- 0x7C0C0000, // 002D CALL R3 0
- 0x8C0C0704, // 002E GETMET R3 R3 K4
- 0x54160004, // 002F LDINT R5 5
- 0x94140405, // 0030 GETIDX R5 R2 R5
- 0x7C0C0400, // 0031 CALL R3 2
- 0x8C0C0706, // 0032 GETMET R3 R3 K6
- 0x7C0C0200, // 0033 CALL R3 1
- 0x90021C03, // 0034 SETMBR R0 K14 R3
- 0x80000000, // 0035 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: GetOptionReader
-********************************************************************/
-be_local_class(GetOptionReader,
- 6,
- NULL,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(flag2, -1), be_const_var(1) },
- { be_const_key_weak(flag4, -1), be_const_var(3) },
- { be_const_key_weak(getoption, -1), be_const_closure(class_GetOptionReader_getoption_closure) },
- { be_const_key_weak(init, 5), be_const_closure(class_GetOptionReader_init_closure) },
- { be_const_key_weak(flag3, -1), be_const_var(2) },
- { be_const_key_weak(flag6, -1), be_const_var(5) },
- { be_const_key_weak(flag5, -1), be_const_var(4) },
- { be_const_key_weak(flag, 0), be_const_var(0) },
- })),
- be_str_weak(GetOptionReader)
-);
-
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-
-/********************************************************************
-** Solidified function: call_remote_sync
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_call_remote_sync, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_const_int(2),
- /* K2 */ be_nested_str_weak(_X20),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(http_remote),
- /* K5 */ be_nested_str_weak(call_sync),
- /* K6 */ be_nested_str_weak(SYNC_TIMEOUT),
- /* K7 */ be_nested_str_weak(device_is_alive),
- /* K8 */ be_nested_str_weak(load),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying),
- /* K13 */ be_const_int(3),
- }),
- be_str_weak(call_remote_sync),
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x4C140000, // 0002 LDNIL R5
- 0x20140405, // 0003 NE R5 R2 R5
- 0x78160005, // 0004 JMPF R5 #000B
- 0x00140302, // 0005 ADD R5 R1 K2
- 0x60180008, // 0006 GETGBL R6 G8
- 0x5C1C0400, // 0007 MOVE R7 R2
- 0x7C180200, // 0008 CALL R6 1
- 0x00140A06, // 0009 ADD R5 R5 R6
- 0x5C040A00, // 000A MOVE R1 R5
- 0x24140903, // 000B GT R5 R4 K3
- 0x78160016, // 000C JMPF R5 #0024
- 0x88140104, // 000D GETMBR R5 R0 K4
- 0x8C140B05, // 000E GETMET R5 R5 K5
- 0x5C1C0200, // 000F MOVE R7 R1
- 0x88200106, // 0010 GETMBR R8 R0 K6
- 0x7C140600, // 0011 CALL R5 3
- 0x4C180000, // 0012 LDNIL R6
- 0x20180A06, // 0013 NE R6 R5 R6
- 0x781A0007, // 0014 JMPF R6 #001D
- 0x88180104, // 0015 GETMBR R6 R0 K4
- 0x8C180D07, // 0016 GETMET R6 R6 K7
- 0x50200200, // 0017 LDBOOL R8 1 0
- 0x7C180400, // 0018 CALL R6 2
- 0x8C180708, // 0019 GETMET R6 R3 K8
- 0x5C200A00, // 001A MOVE R8 R5
- 0x7C180400, // 001B CALL R6 2
- 0x80040C00, // 001C RET 1 R6
- 0x04100909, // 001D SUB R4 R4 K9
- 0xB81A1400, // 001E GETNGBL R6 K10
- 0x8C180D0B, // 001F GETMET R6 R6 K11
- 0x5820000C, // 0020 LDCONST R8 K12
- 0x5824000D, // 0021 LDCONST R9 K13
- 0x7C180600, // 0022 CALL R6 3
- 0x7001FFE6, // 0023 JMP #000B
- 0x88140104, // 0024 GETMBR R5 R0 K4
- 0x8C140B07, // 0025 GETMET R5 R5 K7
- 0x501C0000, // 0026 LDBOOL R7 0 0
- 0x7C140400, // 0027 CALL R5 2
- 0x4C140000, // 0028 LDNIL R5
- 0x80040A00, // 0029 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_value_onoff
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_web_value_onoff, /* name */
- be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(_X3Cb_X3EOn_X3C_X2Fb_X3E),
- /* K1 */ be_nested_str_weak(Off),
- /* K2 */ be_nested_str_weak(),
- }),
- be_str_weak(web_value_onoff),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0004, // 0002 JMPF R2 #0008
- 0x78060001, // 0003 JMPF R1 #0006
- 0x58080000, // 0004 LDCONST R2 K0
- 0x70020000, // 0005 JMP #0007
- 0x58080001, // 0006 LDCONST R2 K1
- 0x70020000, // 0007 JMP #0009
- 0x58080002, // 0008 LDCONST R2 K2
- 0x80040400, // 0009 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_http_response
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_parse_http_response, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(http_remote),
- /* K2 */ be_nested_str_weak(device_is_alive),
- /* K3 */ be_nested_str_weak(device),
- /* K4 */ be_nested_str_weak(tick),
- /* K5 */ be_nested_str_weak(json),
- /* K6 */ be_nested_str_weak(load),
- /* K7 */ be_nested_str_weak(contains),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(StatusSTS),
- /* K10 */ be_nested_str_weak(StatusSHT),
- /* K11 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(parse_http_response),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x24100300, // 0000 GT R4 R1 K0
- 0x78120023, // 0001 JMPF R4 #0026
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x8C100902, // 0003 GETMET R4 R4 K2
- 0x50180200, // 0004 LDBOOL R6 1 0
- 0x7C100400, // 0005 CALL R4 2
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x88100904, // 0007 GETMBR R4 R4 K4
- 0xA4160A00, // 0008 IMPORT R5 K5
- 0x8C180B06, // 0009 GETMET R6 R5 K6
- 0x5C200400, // 000A MOVE R8 R2
- 0x7C180400, // 000B CALL R6 2
- 0x4C1C0000, // 000C LDNIL R7
- 0x781A0017, // 000D JMPF R6 #0026
- 0x8C200D07, // 000E GETMET R8 R6 K7
- 0x58280008, // 000F LDCONST R10 K8
- 0x7C200400, // 0010 CALL R8 2
- 0x78220002, // 0011 JMPF R8 #0015
- 0x94180D08, // 0012 GETIDX R6 R6 K8
- 0x541E0007, // 0013 LDINT R7 8
- 0x7002000C, // 0014 JMP #0022
- 0x8C200D07, // 0015 GETMET R8 R6 K7
- 0x58280009, // 0016 LDCONST R10 K9
- 0x7C200400, // 0017 CALL R8 2
- 0x78220002, // 0018 JMPF R8 #001C
- 0x94180D09, // 0019 GETIDX R6 R6 K9
- 0x541E000A, // 001A LDINT R7 11
- 0x70020005, // 001B JMP #0022
- 0x8C200D07, // 001C GETMET R8 R6 K7
- 0x5828000A, // 001D LDCONST R10 K10
- 0x7C200400, // 001E CALL R8 2
- 0x78220001, // 001F JMPF R8 #0022
- 0x94180D09, // 0020 GETIDX R6 R6 K9
- 0x541E000C, // 0021 LDINT R7 13
- 0x8C20010B, // 0022 GETMET R8 R0 K11
- 0x5C280C00, // 0023 MOVE R10 R6
- 0x5C2C0E00, // 0024 MOVE R11 R7
- 0x7C200600, // 0025 CALL R8 3
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_web_values, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28),
- /* K4 */ be_nested_str_weak(DISPLAY_NAME),
- /* K5 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x88100104, // 0004 GETMBR R4 R0 K4
- 0x00120604, // 0005 ADD R4 K3 R4
- 0x00100905, // 0006 ADD R4 R4 K5
- 0x7C080400, // 0007 CALL R2 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_local_device
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_is_local_device, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(is_local_device),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG_HTTP),
- /* K3 */ be_nested_str_weak(http_remote),
- /* K4 */ be_nested_str_weak(device),
- /* K5 */ be_nested_str_weak(register_http_remote),
- /* K6 */ be_nested_str_weak(PROBE_TIMEOUT),
- /* K7 */ be_nested_str_weak(register_cmd_cb),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x8C100701, // 0008 GETMET R4 R3 K1
- 0x88180102, // 0009 GETMBR R6 R0 K2
- 0x7C100400, // 000A CALL R4 2
- 0x88140104, // 000B GETMBR R5 R0 K4
- 0x8C140B05, // 000C GETMET R5 R5 K5
- 0x5C1C0800, // 000D MOVE R7 R4
- 0x88200106, // 000E GETMBR R8 R0 K6
- 0x7C140600, // 000F CALL R5 3
- 0x90020605, // 0010 SETMBR R0 K3 R5
- 0x8C140107, // 0011 GETMET R5 R0 K7
- 0x7C140200, // 0012 CALL R5 1
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_parse_update, /* name */
- be_nested_proto(
- 3, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
- be_nested_proto(
- 14, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(string),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(http_remote),
- /* K7 */ be_nested_str_weak(get_info),
- /* K8 */ be_nested_str_weak(find),
- /* K9 */ be_nested_str_weak(name),
- /* K10 */ be_nested_str_weak(set),
- /* K11 */ be_nested_str_weak(UTF1),
- /* K12 */ be_nested_str_weak(NULL),
- /* K13 */ be_nested_str_weak(version),
- /* K14 */ be_nested_str_weak(_X28),
- /* K15 */ be_const_int(0),
- /* K16 */ be_const_int(1),
- /* K17 */ be_nested_str_weak(mac),
- /* K18 */ be_nested_str_weak(BOOL),
- /* K19 */ be_nested_str_weak(reachable),
- /* K20 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[103]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0038, // 0004 LDINT R7 57
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0056, // 0006 JMPF R7 #005E
- 0xA41E0800, // 0007 IMPORT R7 K4
- 0x1C200D05, // 0008 EQ R8 R6 K5
- 0x78220012, // 0009 JMPF R8 #001D
- 0x88200106, // 000A GETMBR R8 R0 K6
- 0x8C201107, // 000B GETMET R8 R8 K7
- 0x7C200200, // 000C CALL R8 1
- 0x8C201108, // 000D GETMET R8 R8 K8
- 0x58280009, // 000E LDCONST R10 K9
- 0x7C200400, // 000F CALL R8 2
- 0x78220005, // 0010 JMPF R8 #0017
- 0x8C24070A, // 0011 GETMET R9 R3 K10
- 0x882C090B, // 0012 GETMBR R11 R4 K11
- 0x5C301000, // 0013 MOVE R12 R8
- 0x7C240600, // 0014 CALL R9 3
- 0x80041200, // 0015 RET 1 R9
- 0x70020004, // 0016 JMP #001C
- 0x8C24070A, // 0017 GETMET R9 R3 K10
- 0x882C090C, // 0018 GETMBR R11 R4 K12
- 0x4C300000, // 0019 LDNIL R12
- 0x7C240600, // 001A CALL R9 3
- 0x80041200, // 001B RET 1 R9
- 0x70020040, // 001C JMP #005E
- 0x54220009, // 001D LDINT R8 10
- 0x1C200C08, // 001E EQ R8 R6 R8
- 0x7822001B, // 001F JMPF R8 #003C
- 0x88200106, // 0020 GETMBR R8 R0 K6
- 0x8C201107, // 0021 GETMET R8 R8 K7
- 0x7C200200, // 0022 CALL R8 1
- 0x8C201108, // 0023 GETMET R8 R8 K8
- 0x5828000D, // 0024 LDCONST R10 K13
- 0x7C200400, // 0025 CALL R8 2
- 0x7822000E, // 0026 JMPF R8 #0036
- 0x8C240F08, // 0027 GETMET R9 R7 K8
- 0x5C2C1000, // 0028 MOVE R11 R8
- 0x5830000E, // 0029 LDCONST R12 K14
- 0x7C240600, // 002A CALL R9 3
- 0x2428130F, // 002B GT R10 R9 K15
- 0x782A0002, // 002C JMPF R10 #0030
- 0x04281310, // 002D SUB R10 R9 K16
- 0x402A1E0A, // 002E CONNECT R10 K15 R10
- 0x9420100A, // 002F GETIDX R8 R8 R10
- 0x8C28070A, // 0030 GETMET R10 R3 K10
- 0x8830090B, // 0031 GETMBR R12 R4 K11
- 0x5C341000, // 0032 MOVE R13 R8
- 0x7C280600, // 0033 CALL R10 3
- 0x80041400, // 0034 RET 1 R10
- 0x70020004, // 0035 JMP #003B
- 0x8C24070A, // 0036 GETMET R9 R3 K10
- 0x882C090C, // 0037 GETMBR R11 R4 K12
- 0x4C300000, // 0038 LDNIL R12
- 0x7C240600, // 0039 CALL R9 3
- 0x80041200, // 003A RET 1 R9
- 0x70020021, // 003B JMP #005E
- 0x5422000E, // 003C LDINT R8 15
- 0x1C200C08, // 003D EQ R8 R6 R8
- 0x74220002, // 003E JMPT R8 #0042
- 0x54220011, // 003F LDINT R8 18
- 0x1C200C08, // 0040 EQ R8 R6 R8
- 0x78220012, // 0041 JMPF R8 #0055
- 0x88200106, // 0042 GETMBR R8 R0 K6
- 0x8C201107, // 0043 GETMET R8 R8 K7
- 0x7C200200, // 0044 CALL R8 1
- 0x8C201108, // 0045 GETMET R8 R8 K8
- 0x58280011, // 0046 LDCONST R10 K17
- 0x7C200400, // 0047 CALL R8 2
- 0x78220005, // 0048 JMPF R8 #004F
- 0x8C24070A, // 0049 GETMET R9 R3 K10
- 0x882C090B, // 004A GETMBR R11 R4 K11
- 0x5C301000, // 004B MOVE R12 R8
- 0x7C240600, // 004C CALL R9 3
- 0x80041200, // 004D RET 1 R9
- 0x70020004, // 004E JMP #0054
- 0x8C24070A, // 004F GETMET R9 R3 K10
- 0x882C090C, // 0050 GETMBR R11 R4 K12
- 0x4C300000, // 0051 LDNIL R12
- 0x7C240600, // 0052 CALL R9 3
- 0x80041200, // 0053 RET 1 R9
- 0x70020008, // 0054 JMP #005E
- 0x54220010, // 0055 LDINT R8 17
- 0x1C200C08, // 0056 EQ R8 R6 R8
- 0x78220005, // 0057 JMPF R8 #005E
- 0x8C20070A, // 0058 GETMET R8 R3 K10
- 0x88280912, // 0059 GETMBR R10 R4 K18
- 0x882C0106, // 005A GETMBR R11 R0 K6
- 0x882C1713, // 005B GETMBR R11 R11 K19
- 0x7C200600, // 005C CALL R8 3
- 0x80041000, // 005D RET 1 R8
- 0x601C0003, // 005E GETGBL R7 G3
- 0x5C200000, // 005F MOVE R8 R0
- 0x7C1C0200, // 0060 CALL R7 1
- 0x8C1C0F14, // 0061 GETMET R7 R7 K20
- 0x5C240200, // 0062 MOVE R9 R1
- 0x5C280400, // 0063 MOVE R10 R2
- 0x5C2C0600, // 0064 MOVE R11 R3
- 0x7C1C0800, // 0065 CALL R7 4
- 0x80040E00, // 0066 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(PREFIX),
- /* K4 */ be_nested_str_weak(html_escape),
- /* K5 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C0C0302, // 0003 GETMET R3 R1 K2
- 0x60140018, // 0004 GETGBL R5 G24
- 0x88180103, // 0005 GETMBR R6 R0 K3
- 0x780A0003, // 0006 JMPF R2 #000B
- 0x8C1C0304, // 0007 GETMET R7 R1 K4
- 0x5C240400, // 0008 MOVE R9 R2
- 0x7C1C0400, // 0009 CALL R7 2
- 0x70020000, // 000A JMP #000C
- 0x581C0005, // 000B LDCONST R7 K5
- 0x7C140400, // 000C CALL R5 2
- 0x7C0C0400, // 000D CALL R3 2
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_cmd_cb
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_register_cmd_cb, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_http_response),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_Plugin_Bridge_HTTP,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remote),
- /* K1 */ be_nested_str_weak(add_schedule),
- /* K2 */ be_nested_str_weak(UPDATE_CMD),
- /* K3 */ be_nested_str_weak(UPDATE_TIME),
- }),
- be_str_weak(register_cmd_cb),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x88100103, // 0003 GETMBR R4 R0 K3
- 0x84140000, // 0004 CLOSURE R5 P0
- 0x7C040800, // 0005 CALL R1 4
- 0xA0000000, // 0006 CLOSE R0
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_update_shadow, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(call_remote_sync),
- /* K3 */ be_nested_str_weak(UPDATE_CMD),
- /* K4 */ be_nested_str_weak(parse_http_response),
- /* K5 */ be_const_int(1),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x88040300, // 0001 GETMBR R1 R1 K0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x880C0103, // 0004 GETMBR R3 R0 K3
- 0x7C040400, // 0005 CALL R1 2
- 0x78060004, // 0006 JMPF R1 #000C
- 0x8C080104, // 0007 GETMET R2 R0 K4
- 0x58100005, // 0008 LDCONST R4 K5
- 0x5C140200, // 0009 MOVE R5 R1
- 0x88180103, // 000A GETMBR R6 R0 K3
- 0x7C080800, // 000B CALL R2 4
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_250ms
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_closure(class_Matter_Plugin_Bridge_HTTP_every_250ms, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_HTTP,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remote),
- /* K1 */ be_nested_str_weak(scheduler),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_HTTP
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
-be_local_class(Matter_Plugin_Bridge_HTTP,
- 1,
- &be_class_Matter_Plugin_Device,
- be_nested_map(23,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2011) },
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_every_250ms_closure) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak() },
- { be_const_key_weak(call_remote_sync, 22), be_const_closure(class_Matter_Plugin_Bridge_HTTP_call_remote_sync_closure) },
- { be_const_key_weak(web_value_onoff, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_web_value_onoff_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_update_shadow_closure) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
- { be_const_key_weak(GetOptionReader, 5), be_const_class(be_class_GetOptionReader) },
- { be_const_key_weak(parse_http_response, 21), be_const_closure(class_Matter_Plugin_Bridge_HTTP_parse_http_response_closure) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_parse_update_closure) },
- { be_const_key_weak(SYNC_TIMEOUT, 18), be_const_int(500) },
- { be_const_key_weak(is_local_device, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_is_local_device_closure) },
- { be_const_key_weak(PREFIX, 17), be_nested_str_weak(_X7C_X20_X3Ci_X3E_X25s_X3C_X2Fi_X3E_X20) },
- { be_const_key_weak(http_remote, 1), be_const_var(0) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_init_closure) },
- { be_const_key_weak(ARG_HTTP, -1), be_nested_str_weak(url) },
- { be_const_key_weak(DISPLAY_NAME, 9), be_nested_str_weak() },
- { be_const_key_weak(web_values_prefix, 19), be_const_closure(class_Matter_Plugin_Bridge_HTTP_web_values_prefix_closure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_read_attribute_closure) },
- { be_const_key_weak(PROBE_TIMEOUT, -1), be_const_int(1700) },
- { be_const_key_weak(register_cmd_cb, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_register_cmd_cb_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_HTTP_web_values_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak() },
- })),
- be_str_weak(Matter_Plugin_Bridge_HTTP)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_OnOff.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light0.h
similarity index 54%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_OnOff.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light0.h
index 3933c1c2f..71079d66b 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_OnOff.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light0.h
@@ -1,16 +1,487 @@
-/* Solidification of Matter_Plugin_2_OnOff.h */
+/* Solidification of Matter_Plugin_2_Light0.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
-extern const bclass be_class_Matter_Plugin_OnOff;
+extern const bclass be_class_Matter_Plugin_Light0;
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_nested_str_weak(update_shadow_lazy),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(set),
+ /* K7 */ be_nested_str_weak(BOOL),
+ /* K8 */ be_nested_str_weak(shadow_onoff),
+ /* K9 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0005, // 0004 LDINT R7 6
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0008, // 0006 JMPF R7 #0010
+ 0x8C1C0104, // 0007 GETMET R7 R0 K4
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x1C1C0D05, // 0009 EQ R7 R6 K5
+ 0x781E0004, // 000A JMPF R7 #0010
+ 0x8C1C0706, // 000B GETMET R7 R3 K6
+ 0x88240907, // 000C GETMBR R9 R4 K7
+ 0x88280108, // 000D GETMBR R10 R0 K8
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x601C0003, // 0010 GETGBL R7 G3
+ 0x5C200000, // 0011 MOVE R8 R0
+ 0x7C1C0200, // 0012 CALL R7 1
+ 0x8C1C0F09, // 0013 GETMET R7 R7 K9
+ 0x5C240200, // 0014 MOVE R9 R1
+ 0x5C280400, // 0015 MOVE R10 R2
+ 0x5C2C0600, // 0016 MOVE R11 R3
+ 0x7C1C0800, // 0017 CALL R7 4
+ 0x80040E00, // 0018 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_update_virtual, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(Power),
+ /* K2 */ be_nested_str_weak(set_onoff),
+ /* K3 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x58100001, // 0001 LDCONST R4 K1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x200C0403, // 0004 NE R3 R2 R3
+ 0x780E0004, // 0005 JMPF R3 #000B
+ 0x8C0C0102, // 0006 GETMET R3 R0 K2
+ 0x60140017, // 0007 GETGBL R5 G23
+ 0x5C180400, // 0008 MOVE R6 R2
+ 0x7C140200, // 0009 CALL R5 1
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x600C0003, // 000B GETGBL R3 G3
+ 0x5C100000, // 000C MOVE R4 R0
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x8C0C0703, // 000E GETMET R3 R3 K3
+ 0x5C140200, // 000F MOVE R5 R1
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_relay_index),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(contains),
+ /* K3 */ be_nested_str_weak(POWER),
+ /* K4 */ be_nested_str_weak(find),
+ /* K5 */ be_nested_str_weak(ON),
+ /* K6 */ be_nested_str_weak(shadow_onoff),
+ /* K7 */ be_nested_str_weak(attribute_updated),
+ /* K8 */ be_const_int(0),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[37]) { /* code */
+ 0x540E000A, // 0000 LDINT R3 11
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0020, // 0002 JMPF R3 #0024
+ 0x500C0000, // 0003 LDBOOL R3 0 0
+ 0x88100100, // 0004 GETMBR R4 R0 K0
+ 0x1C100901, // 0005 EQ R4 R4 K1
+ 0x78120009, // 0006 JMPF R4 #0011
+ 0x8C100302, // 0007 GETMET R4 R1 K2
+ 0x58180003, // 0008 LDCONST R6 K3
+ 0x7C100400, // 0009 CALL R4 2
+ 0x78120005, // 000A JMPF R4 #0011
+ 0x8C100304, // 000B GETMET R4 R1 K4
+ 0x58180003, // 000C LDCONST R6 K3
+ 0x7C100400, // 000D CALL R4 2
+ 0x1C100905, // 000E EQ R4 R4 K5
+ 0x5C0C0800, // 000F MOVE R3 R4
+ 0x70020007, // 0010 JMP #0019
+ 0x8C100304, // 0011 GETMET R4 R1 K4
+ 0x60180008, // 0012 GETGBL R6 G8
+ 0x881C0100, // 0013 GETMBR R7 R0 K0
+ 0x7C180200, // 0014 CALL R6 1
+ 0x001A0606, // 0015 ADD R6 K3 R6
+ 0x7C100400, // 0016 CALL R4 2
+ 0x1C100905, // 0017 EQ R4 R4 K5
+ 0x5C0C0800, // 0018 MOVE R3 R4
+ 0x88100106, // 0019 GETMBR R4 R0 K6
+ 0x60140017, // 001A GETGBL R5 G23
+ 0x5C180600, // 001B MOVE R6 R3
+ 0x7C140200, // 001C CALL R5 1
+ 0x20100805, // 001D NE R4 R4 R5
+ 0x78120004, // 001E JMPF R4 #0024
+ 0x8C100107, // 001F GETMET R4 R0 K7
+ 0x541A0005, // 0020 LDINT R6 6
+ 0x581C0008, // 0021 LDCONST R7 K8
+ 0x7C100600, // 0022 CALL R4 3
+ 0x90020C03, // 0023 SETMBR R0 K6 R3
+ 0x80000000, // 0024 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_relay_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_const_int(1),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x4C180000, // 0003 LDNIL R6
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0008 LDNIL R3
+ 0x20080403, // 0009 NE R2 R2 R3
+ 0x780A0003, // 000A JMPF R2 #000F
+ 0x88080100, // 000B GETMBR R2 R0 K0
+ 0x18080503, // 000C LE R2 R2 K3
+ 0x780A0000, // 000D JMPF R2 #000F
+ 0x90020104, // 000E SETMBR R0 K0 K4
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_onoff
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_set_onoff, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(call_remote_sync),
+ /* K2 */ be_nested_str_weak(Power),
+ /* K3 */ be_nested_str_weak(tasmota_relay_index),
+ /* K4 */ be_nested_str_weak(1),
+ /* K5 */ be_nested_str_weak(0),
+ /* K6 */ be_nested_str_weak(parse_status),
+ /* K7 */ be_nested_str_weak(VIRTUAL),
+ /* K8 */ be_nested_str_weak(shadow_onoff),
+ /* K9 */ be_nested_str_weak(attribute_updated),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(tasmota),
+ /* K12 */ be_nested_str_weak(set_power),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(update_shadow),
+ /* K15 */ be_nested_str_weak(light),
+ /* K16 */ be_nested_str_weak(set),
+ /* K17 */ be_nested_str_weak(power),
+ }),
+ be_str_weak(set_onoff),
+ &be_const_str_solidified,
+ ( &(const binstruction[55]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0011, // 0001 JMPF R2 #0014
+ 0x8C080101, // 0002 GETMET R2 R0 K1
+ 0x60100008, // 0003 GETGBL R4 G8
+ 0x88140103, // 0004 GETMBR R5 R0 K3
+ 0x7C100200, // 0005 CALL R4 1
+ 0x00120404, // 0006 ADD R4 K2 R4
+ 0x78060001, // 0007 JMPF R1 #000A
+ 0x58140004, // 0008 LDCONST R5 K4
+ 0x70020000, // 0009 JMP #000B
+ 0x58140005, // 000A LDCONST R5 K5
+ 0x7C080600, // 000B CALL R2 3
+ 0x4C0C0000, // 000C LDNIL R3
+ 0x200C0403, // 000D NE R3 R2 R3
+ 0x780E0003, // 000E JMPF R3 #0013
+ 0x8C0C0106, // 000F GETMET R3 R0 K6
+ 0x5C140400, // 0010 MOVE R5 R2
+ 0x541A000A, // 0011 LDINT R6 11
+ 0x7C0C0600, // 0012 CALL R3 3
+ 0x70020021, // 0013 JMP #0036
+ 0x88080107, // 0014 GETMBR R2 R0 K7
+ 0x780A0008, // 0015 JMPF R2 #001F
+ 0x88080108, // 0016 GETMBR R2 R0 K8
+ 0x20080202, // 0017 NE R2 R1 R2
+ 0x780A0004, // 0018 JMPF R2 #001E
+ 0x8C080109, // 0019 GETMET R2 R0 K9
+ 0x54120005, // 001A LDINT R4 6
+ 0x5814000A, // 001B LDCONST R5 K10
+ 0x7C080600, // 001C CALL R2 3
+ 0x90021001, // 001D SETMBR R0 K8 R1
+ 0x70020016, // 001E JMP #0036
+ 0x88080103, // 001F GETMBR R2 R0 K3
+ 0x4C0C0000, // 0020 LDNIL R3
+ 0x20080403, // 0021 NE R2 R2 R3
+ 0x780A000A, // 0022 JMPF R2 #002E
+ 0xB80A1600, // 0023 GETNGBL R2 K11
+ 0x8C08050C, // 0024 GETMET R2 R2 K12
+ 0x88100103, // 0025 GETMBR R4 R0 K3
+ 0x0410090D, // 0026 SUB R4 R4 K13
+ 0x60140017, // 0027 GETGBL R5 G23
+ 0x5C180200, // 0028 MOVE R6 R1
+ 0x7C140200, // 0029 CALL R5 1
+ 0x7C080600, // 002A CALL R2 3
+ 0x8C08010E, // 002B GETMET R2 R0 K14
+ 0x7C080200, // 002C CALL R2 1
+ 0x70020007, // 002D JMP #0036
+ 0xA40A1E00, // 002E IMPORT R2 K15
+ 0x8C0C0510, // 002F GETMET R3 R2 K16
+ 0x60140013, // 0030 GETGBL R5 G19
+ 0x7C140000, // 0031 CALL R5 0
+ 0x98162201, // 0032 SETIDX R5 K17 R1
+ 0x7C0C0400, // 0033 CALL R3 2
+ 0x8C0C010E, // 0034 GETMET R3 R0 K14
+ 0x7C0C0200, // 0035 CALL R3 1
+ 0x80000000, // 0036 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_update_shadow, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(VIRTUAL),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(tasmota_relay_index),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(get_power),
+ /* K5 */ be_const_int(1),
+ /* K6 */ be_nested_str_weak(shadow_onoff),
+ /* K7 */ be_nested_str_weak(attribute_updated),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x74060018, // 0001 JMPT R1 #001B
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x74060016, // 0003 JMPT R1 #001B
+ 0x88040102, // 0004 GETMBR R1 R0 K2
+ 0x4C080000, // 0005 LDNIL R2
+ 0x20040202, // 0006 NE R1 R1 R2
+ 0x78060012, // 0007 JMPF R1 #001B
+ 0xB8060600, // 0008 GETNGBL R1 K3
+ 0x8C040304, // 0009 GETMET R1 R1 K4
+ 0x880C0102, // 000A GETMBR R3 R0 K2
+ 0x040C0705, // 000B SUB R3 R3 K5
+ 0x7C040400, // 000C CALL R1 2
+ 0x4C080000, // 000D LDNIL R2
+ 0x20080202, // 000E NE R2 R1 R2
+ 0x780A000A, // 000F JMPF R2 #001B
+ 0x88080106, // 0010 GETMBR R2 R0 K6
+ 0x600C0017, // 0011 GETGBL R3 G23
+ 0x5C100200, // 0012 MOVE R4 R1
+ 0x7C0C0200, // 0013 CALL R3 1
+ 0x20080403, // 0014 NE R2 R2 R3
+ 0x780A0003, // 0015 JMPF R2 #001A
+ 0x8C080107, // 0016 GETMET R2 R0 K7
+ 0x54120005, // 0017 LDINT R4 6
+ 0x58140008, // 0018 LDCONST R5 K8
+ 0x7C080600, // 0019 CALL R2 3
+ 0x90020C01, // 001A SETMBR R0 K6 R1
+ 0x60040003, // 001B GETGBL R1 G3
+ 0x5C080000, // 001C MOVE R2 R0
+ 0x7C040200, // 001D CALL R1 1
+ 0x8C040309, // 001E GETMET R1 R1 K9
+ 0x7C040200, // 001F CALL R1 1
+ 0x80000000, // 0020 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_web_values, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X25s),
+ /* K4 */ be_nested_str_weak(web_value_onoff),
+ /* K5 */ be_nested_str_weak(shadow_onoff),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x8C180104, // 0006 GETMET R6 R0 K4
+ 0x88200105, // 0007 GETMBR R8 R0 K5
+ 0x7C180400, // 0008 CALL R6 2
+ 0x7C100400, // 0009 CALL R4 2
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light0,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_onoff),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
/********************************************************************
** Solidified function: invoke_request
********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_invoke_request, /* name */
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_invoke_request, /* name */
be_nested_proto(
11, /* nstack */
4, /* argc */
@@ -18,7 +489,7 @@ be_local_closure(class_Matter_Plugin_OnOff_invoke_request, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
+ &be_class_Matter_Plugin_Light0,
1, /* has constants */
( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
@@ -95,159 +566,10 @@ be_local_closure(class_Matter_Plugin_OnOff_invoke_request, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(shadow_onoff),
- /* K9 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0005, // 0004 LDINT R7 6
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0008, // 0006 JMPF R7 #0010
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E0004, // 000A JMPF R7 #0010
- 0x8C1C0706, // 000B GETMET R7 R3 K6
- 0x88240907, // 000C GETMBR R9 R4 K7
- 0x88280108, // 000D GETMBR R10 R0 K8
- 0x7C1C0600, // 000E CALL R7 3
- 0x80040E00, // 000F RET 1 R7
- 0x601C0003, // 0010 GETGBL R7 G3
- 0x5C200000, // 0011 MOVE R8 R0
- 0x7C1C0200, // 0012 CALL R7 1
- 0x8C1C0F09, // 0013 GETMET R7 R7 K9
- 0x5C240200, // 0014 MOVE R9 R1
- 0x5C280400, // 0015 MOVE R10 R2
- 0x5C2C0600, // 0016 MOVE R11 R3
- 0x7C1C0800, // 0017 CALL R7 4
- 0x80040E00, // 0018 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_relay_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_update_virtual, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Power),
- /* K2 */ be_nested_str_weak(set_onoff),
- /* K3 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x200C0403, // 0004 NE R3 R2 R3
- 0x780E0004, // 0005 JMPF R3 #000B
- 0x8C0C0102, // 0006 GETMET R3 R0 K2
- 0x60140017, // 0007 GETGBL R5 G23
- 0x5C180400, // 0008 MOVE R6 R2
- 0x7C140200, // 0009 CALL R5 1
- 0x7C0C0400, // 000A CALL R3 2
- 0x600C0003, // 000B GETGBL R3 G3
- 0x5C100000, // 000C MOVE R4 R0
- 0x7C0C0200, // 000D CALL R3 1
- 0x8C0C0703, // 000E GETMET R3 R3 K3
- 0x5C140200, // 000F MOVE R5 R1
- 0x7C0C0400, // 0010 CALL R3 2
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function:
********************************************************************/
-be_local_closure(class_Matter_Plugin_OnOff__X3Clambda_X3E, /* name */
+be_local_closure(class_Matter_Plugin_Light0__X3Clambda_X3E, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -272,54 +594,53 @@ be_local_closure(class_Matter_Plugin_OnOff__X3Clambda_X3E, /* name */
/********************************************************************
-** Solidified function: set_onoff
+** Solidified function: web_values_prefix
********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_set_onoff, /* name */
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_closure(class_Matter_Plugin_Light0_web_values_prefix, /* name */
be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
+ 10, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
+ &be_class_Matter_Plugin_Light0,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(set_power),
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Power),
/* K3 */ be_nested_str_weak(tasmota_relay_index),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(update_shadow),
- /* K6 */ be_nested_str_weak(shadow_onoff),
- /* K7 */ be_nested_str_weak(attribute_updated),
- /* K8 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
}),
- be_str_weak(set_onoff),
+ be_str_weak(web_values_prefix),
&be_const_str_solidified,
( &(const binstruction[22]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A000A, // 0001 JMPT R2 #000D
- 0xB80A0200, // 0002 GETNGBL R2 K1
- 0x8C080502, // 0003 GETMET R2 R2 K2
- 0x88100103, // 0004 GETMBR R4 R0 K3
- 0x04100904, // 0005 SUB R4 R4 K4
- 0x60140017, // 0006 GETGBL R5 G23
- 0x5C180200, // 0007 MOVE R6 R1
- 0x7C140200, // 0008 CALL R5 1
- 0x7C080600, // 0009 CALL R2 3
- 0x8C080105, // 000A GETMET R2 R0 K5
- 0x7C080200, // 000B CALL R2 1
- 0x70020007, // 000C JMP #0015
- 0x88080106, // 000D GETMBR R2 R0 K6
- 0x20080202, // 000E NE R2 R1 R2
- 0x780A0004, // 000F JMPF R2 #0015
- 0x8C080107, // 0010 GETMET R2 R0 K7
- 0x54120005, // 0011 LDINT R4 6
- 0x58140008, // 0012 LDCONST R5 K8
- 0x7C080600, // 0013 CALL R2 3
- 0x90020C01, // 0014 SETMBR R0 K6 R1
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
0x80000000, // 0015 RET 0
})
)
@@ -328,126 +649,26 @@ be_local_closure(class_Matter_Plugin_OnOff_set_onoff, /* name */
/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_update_shadow, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(get_power),
- /* K3 */ be_nested_str_weak(tasmota_relay_index),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(attribute_updated),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x74060012, // 0001 JMPT R1 #0015
- 0xB8060200, // 0002 GETNGBL R1 K1
- 0x8C040302, // 0003 GETMET R1 R1 K2
- 0x880C0103, // 0004 GETMBR R3 R0 K3
- 0x040C0704, // 0005 SUB R3 R3 K4
- 0x7C040400, // 0006 CALL R1 2
- 0x4C080000, // 0007 LDNIL R2
- 0x20080202, // 0008 NE R2 R1 R2
- 0x780A000A, // 0009 JMPF R2 #0015
- 0x88080105, // 000A GETMBR R2 R0 K5
- 0x600C0017, // 000B GETGBL R3 G23
- 0x5C100200, // 000C MOVE R4 R1
- 0x7C0C0200, // 000D CALL R3 1
- 0x20080403, // 000E NE R2 R2 R3
- 0x780A0003, // 000F JMPF R2 #0014
- 0x8C080106, // 0010 GETMET R2 R0 K6
- 0x54120005, // 0011 LDINT R4 6
- 0x58140007, // 0012 LDCONST R5 K7
- 0x7C080600, // 0013 CALL R2 3
- 0x90020A01, // 0014 SETMBR R0 K5 R1
- 0x60040003, // 0015 GETGBL R1 G3
- 0x5C080000, // 0016 MOVE R2 R0
- 0x7C040200, // 0017 CALL R1 1
- 0x8C040308, // 0018 GETMET R1 R1 K8
- 0x7C040200, // 0019 CALL R1 1
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_closure(class_Matter_Plugin_OnOff_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_OnOff,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_onoff),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_OnOff
+** Solidified class: Matter_Plugin_Light0
********************************************************************/
extern const bclass be_class_Matter_Plugin_Device;
-be_local_class(Matter_Plugin_OnOff,
+be_local_class(Matter_Plugin_Light0,
2,
&be_class_Matter_Plugin_Device,
- be_nested_map(18,
+ be_nested_map(21,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(relay) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(266, -1), be_const_int(2) },
- })) ) } )) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light0_read_attribute_closure) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light0_update_virtual_closure) },
+ { be_const_key_weak(tasmota_relay_index, 1), be_const_var(0) },
+ { be_const_key_weak(parse_status, 5), be_const_closure(class_Matter_Plugin_Light0_parse_status_closure) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Light0_parse_configuration_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Power),
})) ) } )) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(set_onoff, -1), be_const_closure(class_Matter_Plugin_Light0_set_onoff_closure) },
+ { be_const_key_weak(CLUSTERS, 19), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -531,21 +752,25 @@ be_local_class(Matter_Plugin_OnOff,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_OnOff_invoke_request_closure) },
- { be_const_key_weak(read_attribute, 16), be_const_closure(class_Matter_Plugin_OnOff_read_attribute_closure) },
- { be_const_key_weak(parse_configuration, 13), be_const_closure(class_Matter_Plugin_OnOff_parse_configuration_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_OnOff_update_virtual_closure) },
- { be_const_key_weak(DISPLAY_NAME, 14), be_nested_str_weak(Relay) },
- { be_const_key_weak(ARG_TYPE, 12), be_const_static_closure(class_Matter_Plugin_OnOff__X3Clambda_X3E_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light0_init_closure) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(250) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(light0) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light0_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, 8), be_nested_str_weak(Light_X200_X20On) },
+ { be_const_key_weak(shadow_onoff, -1), be_const_var(1) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light0_invoke_request_closure) },
{ be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
- { be_const_key_weak(shadow_onoff, -1), be_const_var(0) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_OnOff_update_shadow_closure) },
- { be_const_key_weak(ARG_HINT, 11), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_OnOff_init_closure) },
- { be_const_key_weak(set_onoff, -1), be_const_closure(class_Matter_Plugin_OnOff_set_onoff_closure) },
- { be_const_key_weak(tasmota_relay_index, -1), be_const_var(1) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Light0__X3Clambda_X3E_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(256, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light0_update_shadow_closure) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Light0_web_values_prefix_closure) },
})),
- be_str_weak(Matter_Plugin_OnOff)
+ be_str_weak(Matter_Plugin_Light0)
);
/********************************************************************/
/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h
index 0eba3d7fe..9ca95cf99 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h
@@ -6,403 +6,6 @@
extern const bclass be_class_Matter_Plugin_Light1;
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light1;
-be_local_closure(class_Matter_Plugin_Light1_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_onoff),
- /* K2 */ be_nested_str_weak(shadow_bri),
- /* K3 */ be_const_int(0),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x90020503, // 000A SETMBR R0 K2 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light1;
-be_local_closure(class_Matter_Plugin_Light1_invoke_request, /* name */
- be_nested_proto(
- 22, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light1,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(light),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(TLV),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(command),
- /* K5 */ be_nested_str_weak(update_shadow_lazy),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str_weak(set_onoff),
- /* K8 */ be_nested_str_weak(publish_command),
- /* K9 */ be_nested_str_weak(Power),
- /* K10 */ be_const_int(1),
- /* K11 */ be_const_int(2),
- /* K12 */ be_nested_str_weak(shadow_onoff),
- /* K13 */ be_nested_str_weak(findsubval),
- /* K14 */ be_nested_str_weak(set_bri),
- /* K15 */ be_nested_str_weak(log),
- /* K16 */ be_nested_str_weak(bri_X3A),
- /* K17 */ be_nested_str_weak(Bri),
- /* K18 */ be_nested_str_weak(Dimmer),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(scale_uint),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(invoke_request),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[167]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0xB8160200, // 0001 GETNGBL R5 K1
- 0x88140B02, // 0002 GETMBR R5 R5 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x881C0704, // 0004 GETMBR R7 R3 K4
- 0x54220005, // 0005 LDINT R8 6
- 0x1C200C08, // 0006 EQ R8 R6 R8
- 0x7822002C, // 0007 JMPF R8 #0035
- 0x8C200105, // 0008 GETMET R8 R0 K5
- 0x7C200200, // 0009 CALL R8 1
- 0x1C200F06, // 000A EQ R8 R7 K6
- 0x78220009, // 000B JMPF R8 #0016
- 0x8C200107, // 000C GETMET R8 R0 K7
- 0x50280000, // 000D LDBOOL R10 0 0
- 0x7C200400, // 000E CALL R8 2
- 0x8C200108, // 000F GETMET R8 R0 K8
- 0x58280009, // 0010 LDCONST R10 K9
- 0x582C0006, // 0011 LDCONST R11 K6
- 0x7C200600, // 0012 CALL R8 3
- 0x50200200, // 0013 LDBOOL R8 1 0
- 0x80041000, // 0014 RET 1 R8
- 0x7002001D, // 0015 JMP #0034
- 0x1C200F0A, // 0016 EQ R8 R7 K10
- 0x78220009, // 0017 JMPF R8 #0022
- 0x8C200107, // 0018 GETMET R8 R0 K7
- 0x50280200, // 0019 LDBOOL R10 1 0
- 0x7C200400, // 001A CALL R8 2
- 0x8C200108, // 001B GETMET R8 R0 K8
- 0x58280009, // 001C LDCONST R10 K9
- 0x582C000A, // 001D LDCONST R11 K10
- 0x7C200600, // 001E CALL R8 3
- 0x50200200, // 001F LDBOOL R8 1 0
- 0x80041000, // 0020 RET 1 R8
- 0x70020011, // 0021 JMP #0034
- 0x1C200F0B, // 0022 EQ R8 R7 K11
- 0x7822000F, // 0023 JMPF R8 #0034
- 0x8C200107, // 0024 GETMET R8 R0 K7
- 0x8828010C, // 0025 GETMBR R10 R0 K12
- 0x782A0000, // 0026 JMPF R10 #0028
- 0x50280001, // 0027 LDBOOL R10 0 1
- 0x50280200, // 0028 LDBOOL R10 1 0
- 0x7C200400, // 0029 CALL R8 2
- 0x8C200108, // 002A GETMET R8 R0 K8
- 0x58280009, // 002B LDCONST R10 K9
- 0x882C010C, // 002C GETMBR R11 R0 K12
- 0x782E0001, // 002D JMPF R11 #0030
- 0x582C000A, // 002E LDCONST R11 K10
- 0x70020000, // 002F JMP #0031
- 0x582C0006, // 0030 LDCONST R11 K6
- 0x7C200600, // 0031 CALL R8 3
- 0x50200200, // 0032 LDBOOL R8 1 0
- 0x80041000, // 0033 RET 1 R8
- 0x70020070, // 0034 JMP #00A6
- 0x54220007, // 0035 LDINT R8 8
- 0x1C200C08, // 0036 EQ R8 R6 R8
- 0x78220064, // 0037 JMPF R8 #009D
- 0x8C200105, // 0038 GETMET R8 R0 K5
- 0x7C200200, // 0039 CALL R8 1
- 0x1C200F06, // 003A EQ R8 R7 K6
- 0x7822001A, // 003B JMPF R8 #0057
- 0x8C20050D, // 003C GETMET R8 R2 K13
- 0x58280006, // 003D LDCONST R10 K6
- 0x7C200400, // 003E CALL R8 2
- 0x8C24010E, // 003F GETMET R9 R0 K14
- 0x5C2C1000, // 0040 MOVE R11 R8
- 0x7C240400, // 0041 CALL R9 2
- 0x60240008, // 0042 GETGBL R9 G8
- 0x5C281000, // 0043 MOVE R10 R8
- 0x7C240200, // 0044 CALL R9 1
- 0x00262009, // 0045 ADD R9 K16 R9
- 0x900E1E09, // 0046 SETMBR R3 K15 R9
- 0x8C240108, // 0047 GETMET R9 R0 K8
- 0x582C0011, // 0048 LDCONST R11 K17
- 0x5C301000, // 0049 MOVE R12 R8
- 0x58340012, // 004A LDCONST R13 K18
- 0xB83A2600, // 004B GETNGBL R14 K19
- 0x8C381D14, // 004C GETMET R14 R14 K20
- 0x5C401000, // 004D MOVE R16 R8
- 0x58440006, // 004E LDCONST R17 K6
- 0x544A00FD, // 004F LDINT R18 254
- 0x584C0006, // 0050 LDCONST R19 K6
- 0x54520063, // 0051 LDINT R20 100
- 0x7C380C00, // 0052 CALL R14 6
- 0x7C240A00, // 0053 CALL R9 5
- 0x50240200, // 0054 LDBOOL R9 1 0
- 0x80041200, // 0055 RET 1 R9
- 0x70020044, // 0056 JMP #009C
- 0x1C200F0A, // 0057 EQ R8 R7 K10
- 0x78220002, // 0058 JMPF R8 #005C
- 0x50200200, // 0059 LDBOOL R8 1 0
- 0x80041000, // 005A RET 1 R8
- 0x7002003F, // 005B JMP #009C
- 0x1C200F0B, // 005C EQ R8 R7 K11
- 0x78220002, // 005D JMPF R8 #0061
- 0x50200200, // 005E LDBOOL R8 1 0
- 0x80041000, // 005F RET 1 R8
- 0x7002003A, // 0060 JMP #009C
- 0x1C200F15, // 0061 EQ R8 R7 K21
- 0x78220002, // 0062 JMPF R8 #0066
- 0x50200200, // 0063 LDBOOL R8 1 0
- 0x80041000, // 0064 RET 1 R8
- 0x70020035, // 0065 JMP #009C
- 0x54220003, // 0066 LDINT R8 4
- 0x1C200E08, // 0067 EQ R8 R7 R8
- 0x78220021, // 0068 JMPF R8 #008B
- 0x8C20050D, // 0069 GETMET R8 R2 K13
- 0x58280006, // 006A LDCONST R10 K6
- 0x7C200400, // 006B CALL R8 2
- 0x24241106, // 006C GT R9 R8 K6
- 0x8C28010E, // 006D GETMET R10 R0 K14
- 0x5C301000, // 006E MOVE R12 R8
- 0x5C341200, // 006F MOVE R13 R9
- 0x7C280600, // 0070 CALL R10 3
- 0x60280008, // 0071 GETGBL R10 G8
- 0x5C2C1000, // 0072 MOVE R11 R8
- 0x7C280200, // 0073 CALL R10 1
- 0x002A200A, // 0074 ADD R10 K16 R10
- 0x900E1E0A, // 0075 SETMBR R3 K15 R10
- 0x8C280108, // 0076 GETMET R10 R0 K8
- 0x58300011, // 0077 LDCONST R12 K17
- 0x5C341000, // 0078 MOVE R13 R8
- 0x58380012, // 0079 LDCONST R14 K18
- 0xB83E2600, // 007A GETNGBL R15 K19
- 0x8C3C1F14, // 007B GETMET R15 R15 K20
- 0x5C441000, // 007C MOVE R17 R8
- 0x58480006, // 007D LDCONST R18 K6
- 0x544E00FD, // 007E LDINT R19 254
- 0x58500006, // 007F LDCONST R20 K6
- 0x54560063, // 0080 LDINT R21 100
- 0x7C3C0C00, // 0081 CALL R15 6
- 0x58400009, // 0082 LDCONST R16 K9
- 0x78260001, // 0083 JMPF R9 #0086
- 0x5844000A, // 0084 LDCONST R17 K10
- 0x70020000, // 0085 JMP #0087
- 0x58440006, // 0086 LDCONST R17 K6
- 0x7C280E00, // 0087 CALL R10 7
- 0x50280200, // 0088 LDBOOL R10 1 0
- 0x80041400, // 0089 RET 1 R10
- 0x70020010, // 008A JMP #009C
- 0x54220004, // 008B LDINT R8 5
- 0x1C200E08, // 008C EQ R8 R7 R8
- 0x78220002, // 008D JMPF R8 #0091
- 0x50200200, // 008E LDBOOL R8 1 0
- 0x80041000, // 008F RET 1 R8
- 0x7002000A, // 0090 JMP #009C
- 0x54220005, // 0091 LDINT R8 6
- 0x1C200E08, // 0092 EQ R8 R7 R8
- 0x78220002, // 0093 JMPF R8 #0097
- 0x50200200, // 0094 LDBOOL R8 1 0
- 0x80041000, // 0095 RET 1 R8
- 0x70020004, // 0096 JMP #009C
- 0x54220006, // 0097 LDINT R8 7
- 0x1C200E08, // 0098 EQ R8 R7 R8
- 0x78220001, // 0099 JMPF R8 #009C
- 0x50200200, // 009A LDBOOL R8 1 0
- 0x80041000, // 009B RET 1 R8
- 0x70020008, // 009C JMP #00A6
- 0x60200003, // 009D GETGBL R8 G3
- 0x5C240000, // 009E MOVE R9 R0
- 0x7C200200, // 009F CALL R8 1
- 0x8C201116, // 00A0 GETMET R8 R8 K22
- 0x5C280200, // 00A1 MOVE R10 R1
- 0x5C2C0400, // 00A2 MOVE R11 R2
- 0x5C300600, // 00A3 MOVE R12 R3
- 0x7C200800, // 00A4 CALL R8 4
- 0x80041000, // 00A5 RET 1 R8
- 0x80000000, // 00A6 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_onoff
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light1;
-be_local_closure(class_Matter_Plugin_Light1_set_onoff, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(light),
- /* K2 */ be_nested_str_weak(set),
- /* K3 */ be_nested_str_weak(power),
- /* K4 */ be_nested_str_weak(update_shadow),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(attribute_updated),
- /* K7 */ be_const_int(0),
- }),
- be_str_weak(set_onoff),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0008, // 0001 JMPT R2 #000B
- 0xA40A0200, // 0002 IMPORT R2 K1
- 0x8C0C0502, // 0003 GETMET R3 R2 K2
- 0x60140013, // 0004 GETGBL R5 G19
- 0x7C140000, // 0005 CALL R5 0
- 0x98160601, // 0006 SETIDX R5 K3 R1
- 0x7C0C0400, // 0007 CALL R3 2
- 0x8C0C0104, // 0008 GETMET R3 R0 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x70020007, // 000A JMP #0013
- 0x88080105, // 000B GETMBR R2 R0 K5
- 0x20080202, // 000C NE R2 R1 R2
- 0x780A0004, // 000D JMPF R2 #0013
- 0x8C080106, // 000E GETMET R2 R0 K6
- 0x54120005, // 000F LDINT R4 6
- 0x58140007, // 0010 LDCONST R5 K7
- 0x7C080600, // 0011 CALL R2 3
- 0x90020A01, // 0012 SETMBR R0 K5 R1
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light1;
-be_local_closure(class_Matter_Plugin_Light1_update_shadow, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light1,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(light),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(power),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(attribute_updated),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(bri),
- /* K9 */ be_nested_str_weak(tasmota),
- /* K10 */ be_nested_str_weak(scale_uint),
- /* K11 */ be_nested_str_weak(shadow_bri),
- /* K12 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x74060029, // 0001 JMPT R1 #002C
- 0xA4060200, // 0002 IMPORT R1 K1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x7C080200, // 0004 CALL R2 1
- 0x4C0C0000, // 0005 LDNIL R3
- 0x200C0403, // 0006 NE R3 R2 R3
- 0x780E0023, // 0007 JMPF R3 #002C
- 0x8C0C0503, // 0008 GETMET R3 R2 K3
- 0x58140004, // 0009 LDCONST R5 K4
- 0x4C180000, // 000A LDNIL R6
- 0x7C0C0600, // 000B CALL R3 3
- 0x88100105, // 000C GETMBR R4 R0 K5
- 0x20100604, // 000D NE R4 R3 R4
- 0x78120004, // 000E JMPF R4 #0014
- 0x8C100106, // 000F GETMET R4 R0 K6
- 0x541A0005, // 0010 LDINT R6 6
- 0x581C0007, // 0011 LDCONST R7 K7
- 0x7C100600, // 0012 CALL R4 3
- 0x90020A03, // 0013 SETMBR R0 K5 R3
- 0x8C100503, // 0014 GETMET R4 R2 K3
- 0x58180008, // 0015 LDCONST R6 K8
- 0x4C1C0000, // 0016 LDNIL R7
- 0x7C100600, // 0017 CALL R4 3
- 0x4C140000, // 0018 LDNIL R5
- 0x20140805, // 0019 NE R5 R4 R5
- 0x78160010, // 001A JMPF R5 #002C
- 0xB8161200, // 001B GETNGBL R5 K9
- 0x8C140B0A, // 001C GETMET R5 R5 K10
- 0x5C1C0800, // 001D MOVE R7 R4
- 0x58200007, // 001E LDCONST R8 K7
- 0x542600FE, // 001F LDINT R9 255
- 0x58280007, // 0020 LDCONST R10 K7
- 0x542E00FD, // 0021 LDINT R11 254
- 0x7C140C00, // 0022 CALL R5 6
- 0x5C100A00, // 0023 MOVE R4 R5
- 0x8814010B, // 0024 GETMBR R5 R0 K11
- 0x20140805, // 0025 NE R5 R4 R5
- 0x78160004, // 0026 JMPF R5 #002C
- 0x8C140106, // 0027 GETMET R5 R0 K6
- 0x541E0007, // 0028 LDINT R7 8
- 0x58200007, // 0029 LDCONST R8 K7
- 0x7C140600, // 002A CALL R5 3
- 0x90021604, // 002B SETMBR R0 K11 R4
- 0x60040003, // 002C GETGBL R1 G3
- 0x5C080000, // 002D MOVE R2 R0
- 0x7C040200, // 002E CALL R1 1
- 0x8C04030C, // 002F GETMET R1 R1 K12
- 0x7C040200, // 0030 CALL R1 1
- 0x80000000, // 0031 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: update_virtual
********************************************************************/
@@ -417,17 +20,16 @@ be_local_closure(class_Matter_Plugin_Light1_update_virtual, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light1,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(find),
/* K1 */ be_nested_str_weak(Power),
/* K2 */ be_nested_str_weak(Bri),
/* K3 */ be_nested_str_weak(set_bri),
- /* K4 */ be_nested_str_weak(set_onoff),
- /* K5 */ be_nested_str_weak(update_virtual),
+ /* K4 */ be_nested_str_weak(update_virtual),
}),
be_str_weak(update_virtual),
&be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
+ ( &(const binstruction[23]) { /* code */
0x8C080300, // 0000 GETMET R2 R1 K0
0x58100001, // 0001 LDCONST R4 K1
0x7C080400, // 0002 CALL R2 2
@@ -436,7 +38,7 @@ be_local_closure(class_Matter_Plugin_Light1_update_virtual, /* name */
0x7C0C0400, // 0005 CALL R3 2
0x4C100000, // 0006 LDNIL R4
0x20100604, // 0007 NE R4 R3 R4
- 0x78120007, // 0008 JMPF R4 #0011
+ 0x78120006, // 0008 JMPF R4 #0010
0x8C100103, // 0009 GETMET R4 R0 K3
0x60180009, // 000A GETGBL R6 G9
0x5C1C0600, // 000B MOVE R7 R3
@@ -444,133 +46,13 @@ be_local_closure(class_Matter_Plugin_Light1_update_virtual, /* name */
0x5C1C0400, // 000D MOVE R7 R2
0x7C100600, // 000E CALL R4 3
0x80000800, // 000F RET 0
- 0x70020007, // 0010 JMP #0019
- 0x4C100000, // 0011 LDNIL R4
- 0x20100404, // 0012 NE R4 R2 R4
- 0x78120004, // 0013 JMPF R4 #0019
- 0x8C100104, // 0014 GETMET R4 R0 K4
- 0x60180017, // 0015 GETGBL R6 G23
- 0x5C1C0400, // 0016 MOVE R7 R2
- 0x7C180200, // 0017 CALL R6 1
- 0x7C100400, // 0018 CALL R4 2
- 0x60100003, // 0019 GETGBL R4 G3
- 0x5C140000, // 001A MOVE R5 R0
- 0x7C100200, // 001B CALL R4 1
- 0x8C100905, // 001C GETMET R4 R4 K5
- 0x5C180200, // 001D MOVE R6 R1
- 0x7C100400, // 001E CALL R4 2
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light1;
-be_local_closure(class_Matter_Plugin_Light1_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light1,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(shadow_onoff),
- /* K9 */ be_nested_str_weak(U1),
- /* K10 */ be_nested_str_weak(shadow_bri),
- /* K11 */ be_const_int(2),
- /* K12 */ be_const_int(3),
- /* K13 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[72]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0005, // 0004 LDINT R7 6
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0009, // 0006 JMPF R7 #0011
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E0004, // 000A JMPF R7 #0010
- 0x8C1C0706, // 000B GETMET R7 R3 K6
- 0x88240907, // 000C GETMBR R9 R4 K7
- 0x88280108, // 000D GETMBR R10 R0 K8
- 0x7C1C0600, // 000E CALL R7 3
- 0x80040E00, // 000F RET 1 R7
- 0x7002002D, // 0010 JMP #003F
- 0x541E0007, // 0011 LDINT R7 8
- 0x1C1C0A07, // 0012 EQ R7 R5 R7
- 0x781E002A, // 0013 JMPF R7 #003F
- 0x8C1C0104, // 0014 GETMET R7 R0 K4
- 0x7C1C0200, // 0015 CALL R7 1
- 0x1C1C0D05, // 0016 EQ R7 R6 K5
- 0x781E0005, // 0017 JMPF R7 #001E
- 0x8C1C0706, // 0018 GETMET R7 R3 K6
- 0x88240909, // 0019 GETMBR R9 R4 K9
- 0x8828010A, // 001A GETMBR R10 R0 K10
- 0x7C1C0600, // 001B CALL R7 3
- 0x80040E00, // 001C RET 1 R7
- 0x70020020, // 001D JMP #003F
- 0x1C1C0D0B, // 001E EQ R7 R6 K11
- 0x781E0005, // 001F JMPF R7 #0026
- 0x8C1C0706, // 0020 GETMET R7 R3 K6
- 0x88240909, // 0021 GETMBR R9 R4 K9
- 0x58280005, // 0022 LDCONST R10 K5
- 0x7C1C0600, // 0023 CALL R7 3
- 0x80040E00, // 0024 RET 1 R7
- 0x70020018, // 0025 JMP #003F
- 0x1C1C0D0C, // 0026 EQ R7 R6 K12
- 0x781E0005, // 0027 JMPF R7 #002E
- 0x8C1C0706, // 0028 GETMET R7 R3 K6
- 0x88240909, // 0029 GETMBR R9 R4 K9
- 0x542A00FD, // 002A LDINT R10 254
- 0x7C1C0600, // 002B CALL R7 3
- 0x80040E00, // 002C RET 1 R7
- 0x70020010, // 002D JMP #003F
- 0x541E000E, // 002E LDINT R7 15
- 0x1C1C0C07, // 002F EQ R7 R6 R7
- 0x781E0005, // 0030 JMPF R7 #0037
- 0x8C1C0706, // 0031 GETMET R7 R3 K6
- 0x88240909, // 0032 GETMBR R9 R4 K9
- 0x58280005, // 0033 LDCONST R10 K5
- 0x7C1C0600, // 0034 CALL R7 3
- 0x80040E00, // 0035 RET 1 R7
- 0x70020007, // 0036 JMP #003F
- 0x541E0010, // 0037 LDINT R7 17
- 0x1C1C0C07, // 0038 EQ R7 R6 R7
- 0x781E0004, // 0039 JMPF R7 #003F
- 0x8C1C0706, // 003A GETMET R7 R3 K6
- 0x88240909, // 003B GETMBR R9 R4 K9
- 0x8828010A, // 003C GETMBR R10 R0 K10
- 0x7C1C0600, // 003D CALL R7 3
- 0x80040E00, // 003E RET 1 R7
- 0x601C0003, // 003F GETGBL R7 G3
- 0x5C200000, // 0040 MOVE R8 R0
- 0x7C1C0200, // 0041 CALL R7 1
- 0x8C1C0F0D, // 0042 GETMET R7 R7 K13
- 0x5C240200, // 0043 MOVE R9 R1
- 0x5C280400, // 0044 MOVE R10 R2
- 0x5C2C0600, // 0045 MOVE R11 R3
- 0x7C1C0800, // 0046 CALL R7 4
- 0x80040E00, // 0047 RET 1 R7
+ 0x60100003, // 0010 GETGBL R4 G3
+ 0x5C140000, // 0011 MOVE R5 R0
+ 0x7C100200, // 0012 CALL R4 1
+ 0x8C100904, // 0013 GETMET R4 R4 K4
+ 0x5C180200, // 0014 MOVE R6 R1
+ 0x7C100400, // 0015 CALL R4 2
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -591,23 +73,27 @@ be_local_closure(class_Matter_Plugin_Light1_set_bri, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light1,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
+ ( &(const bvalue[16]) { /* constants */
/* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(light),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(scale_uint),
- /* K5 */ be_nested_str_weak(set),
- /* K6 */ be_nested_str_weak(bri),
- /* K7 */ be_nested_str_weak(power),
- /* K8 */ be_nested_str_weak(update_shadow),
- /* K9 */ be_nested_str_weak(shadow_onoff),
- /* K10 */ be_nested_str_weak(attribute_updated),
- /* K11 */ be_nested_str_weak(shadow_bri),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(scale_uint),
+ /* K4 */ be_nested_str_weak(call_remote_sync),
+ /* K5 */ be_nested_str_weak(Dimmer),
+ /* K6 */ be_nested_str_weak(parse_status),
+ /* K7 */ be_nested_str_weak(VIRTUAL),
+ /* K8 */ be_nested_str_weak(shadow_onoff),
+ /* K9 */ be_nested_str_weak(attribute_updated),
+ /* K10 */ be_nested_str_weak(shadow_bri),
+ /* K11 */ be_nested_str_weak(light),
+ /* K12 */ be_nested_str_weak(set),
+ /* K13 */ be_nested_str_weak(bri),
+ /* K14 */ be_nested_str_weak(power),
+ /* K15 */ be_nested_str_weak(update_shadow),
}),
be_str_weak(set_bri),
&be_const_str_solidified,
- ( &(const binstruction[65]) { /* code */
+ ( &(const binstruction[89]) { /* code */
0x140C0300, // 0000 LT R3 R1 K0
0x780E0000, // 0001 JMPF R3 #0003
0x58040000, // 0002 LDCONST R1 K0
@@ -625,54 +111,683 @@ be_local_closure(class_Matter_Plugin_Light1_set_bri, /* name */
0x4C0C0000, // 000E LDNIL R3
0x5C080600, // 000F MOVE R2 R3
0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x740E001A, // 0011 JMPT R3 #002D
- 0xA40E0400, // 0012 IMPORT R3 K2
- 0xB8120600, // 0013 GETNGBL R4 K3
- 0x8C100904, // 0014 GETMET R4 R4 K4
- 0x5C180200, // 0015 MOVE R6 R1
- 0x581C0000, // 0016 LDCONST R7 K0
- 0x542200FD, // 0017 LDINT R8 254
- 0x58240000, // 0018 LDCONST R9 K0
- 0x542A00FE, // 0019 LDINT R10 255
- 0x7C100C00, // 001A CALL R4 6
- 0x4C140000, // 001B LDNIL R5
- 0x1C140405, // 001C EQ R5 R2 R5
- 0x78160005, // 001D JMPF R5 #0024
- 0x8C140705, // 001E GETMET R5 R3 K5
- 0x601C0013, // 001F GETGBL R7 G19
- 0x7C1C0000, // 0020 CALL R7 0
- 0x981E0C04, // 0021 SETIDX R7 K6 R4
- 0x7C140400, // 0022 CALL R5 2
- 0x70020005, // 0023 JMP #002A
- 0x8C140705, // 0024 GETMET R5 R3 K5
- 0x601C0013, // 0025 GETGBL R7 G19
- 0x7C1C0000, // 0026 CALL R7 0
- 0x981E0C04, // 0027 SETIDX R7 K6 R4
- 0x981E0E02, // 0028 SETIDX R7 K7 R2
- 0x7C140400, // 0029 CALL R5 2
- 0x8C140108, // 002A GETMET R5 R0 K8
- 0x7C140200, // 002B CALL R5 1
- 0x70020012, // 002C JMP #0040
- 0x4C0C0000, // 002D LDNIL R3
+ 0x780E0015, // 0011 JMPF R3 #0028
+ 0xB80E0400, // 0012 GETNGBL R3 K2
+ 0x8C0C0703, // 0013 GETMET R3 R3 K3
+ 0x5C140200, // 0014 MOVE R5 R1
+ 0x58180000, // 0015 LDCONST R6 K0
+ 0x541E00FD, // 0016 LDINT R7 254
+ 0x58200000, // 0017 LDCONST R8 K0
+ 0x54260063, // 0018 LDINT R9 100
+ 0x7C0C0C00, // 0019 CALL R3 6
+ 0x8C100104, // 001A GETMET R4 R0 K4
+ 0x58180005, // 001B LDCONST R6 K5
+ 0x601C0008, // 001C GETGBL R7 G8
+ 0x5C200600, // 001D MOVE R8 R3
+ 0x7C1C0200, // 001E CALL R7 1
+ 0x7C100600, // 001F CALL R4 3
+ 0x4C140000, // 0020 LDNIL R5
+ 0x20140805, // 0021 NE R5 R4 R5
+ 0x78160003, // 0022 JMPF R5 #0027
+ 0x8C140106, // 0023 GETMET R5 R0 K6
+ 0x5C1C0800, // 0024 MOVE R7 R4
+ 0x5422000A, // 0025 LDINT R8 11
+ 0x7C140600, // 0026 CALL R5 3
+ 0x7002002F, // 0027 JMP #0058
+ 0x880C0107, // 0028 GETMBR R3 R0 K7
+ 0x780E0013, // 0029 JMPF R3 #003E
+ 0x4C0C0000, // 002A LDNIL R3
+ 0x200C0403, // 002B NE R3 R2 R3
+ 0x780E0007, // 002C JMPF R3 #0035
+ 0x880C0108, // 002D GETMBR R3 R0 K8
0x200C0403, // 002E NE R3 R2 R3
- 0x780E0007, // 002F JMPF R3 #0038
- 0x880C0109, // 0030 GETMBR R3 R0 K9
- 0x200C0403, // 0031 NE R3 R2 R3
- 0x780E0004, // 0032 JMPF R3 #0038
- 0x8C0C010A, // 0033 GETMET R3 R0 K10
- 0x54160005, // 0034 LDINT R5 6
- 0x58180000, // 0035 LDCONST R6 K0
- 0x7C0C0600, // 0036 CALL R3 3
- 0x90021202, // 0037 SETMBR R0 K9 R2
- 0x880C010B, // 0038 GETMBR R3 R0 K11
- 0x200C0203, // 0039 NE R3 R1 R3
- 0x780E0004, // 003A JMPF R3 #0040
- 0x8C0C010A, // 003B GETMET R3 R0 K10
- 0x54160007, // 003C LDINT R5 8
- 0x58180000, // 003D LDCONST R6 K0
- 0x7C0C0600, // 003E CALL R3 3
- 0x90021601, // 003F SETMBR R0 K11 R1
- 0x80000000, // 0040 RET 0
+ 0x780E0004, // 002F JMPF R3 #0035
+ 0x8C0C0109, // 0030 GETMET R3 R0 K9
+ 0x54160005, // 0031 LDINT R5 6
+ 0x58180000, // 0032 LDCONST R6 K0
+ 0x7C0C0600, // 0033 CALL R3 3
+ 0x90021002, // 0034 SETMBR R0 K8 R2
+ 0x880C010A, // 0035 GETMBR R3 R0 K10
+ 0x200C0203, // 0036 NE R3 R1 R3
+ 0x780E0004, // 0037 JMPF R3 #003D
+ 0x8C0C0109, // 0038 GETMET R3 R0 K9
+ 0x54160007, // 0039 LDINT R5 8
+ 0x58180000, // 003A LDCONST R6 K0
+ 0x7C0C0600, // 003B CALL R3 3
+ 0x90021401, // 003C SETMBR R0 K10 R1
+ 0x70020019, // 003D JMP #0058
+ 0xA40E1600, // 003E IMPORT R3 K11
+ 0xB8120400, // 003F GETNGBL R4 K2
+ 0x8C100903, // 0040 GETMET R4 R4 K3
+ 0x5C180200, // 0041 MOVE R6 R1
+ 0x581C0000, // 0042 LDCONST R7 K0
+ 0x542200FD, // 0043 LDINT R8 254
+ 0x58240000, // 0044 LDCONST R9 K0
+ 0x542A00FE, // 0045 LDINT R10 255
+ 0x7C100C00, // 0046 CALL R4 6
+ 0x4C140000, // 0047 LDNIL R5
+ 0x1C140405, // 0048 EQ R5 R2 R5
+ 0x78160005, // 0049 JMPF R5 #0050
+ 0x8C14070C, // 004A GETMET R5 R3 K12
+ 0x601C0013, // 004B GETGBL R7 G19
+ 0x7C1C0000, // 004C CALL R7 0
+ 0x981E1A04, // 004D SETIDX R7 K13 R4
+ 0x7C140400, // 004E CALL R5 2
+ 0x70020005, // 004F JMP #0056
+ 0x8C14070C, // 0050 GETMET R5 R3 K12
+ 0x601C0013, // 0051 GETGBL R7 G19
+ 0x7C1C0000, // 0052 CALL R7 0
+ 0x981E1A04, // 0053 SETIDX R7 K13 R4
+ 0x981E1C02, // 0054 SETIDX R7 K14 R2
+ 0x7C140400, // 0055 CALL R5 2
+ 0x8C14010F, // 0056 GETMET R5 R0 K15
+ 0x7C140200, // 0057 CALL R5 1
+ 0x80000000, // 0058 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_bri),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x90020302, // 0008 SETMBR R0 K1 K2
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_update_shadow, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(VIRTUAL),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(light),
+ /* K3 */ be_nested_str_weak(get),
+ /* K4 */ be_nested_str_weak(find),
+ /* K5 */ be_nested_str_weak(power),
+ /* K6 */ be_nested_str_weak(shadow_onoff),
+ /* K7 */ be_nested_str_weak(attribute_updated),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(bri),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(scale_uint),
+ /* K12 */ be_nested_str_weak(shadow_bri),
+ /* K13 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[52]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x7406002B, // 0001 JMPT R1 #002E
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x74060029, // 0003 JMPT R1 #002E
+ 0xA4060400, // 0004 IMPORT R1 K2
+ 0x8C080303, // 0005 GETMET R2 R1 K3
+ 0x7C080200, // 0006 CALL R2 1
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x200C0403, // 0008 NE R3 R2 R3
+ 0x780E0023, // 0009 JMPF R3 #002E
+ 0x8C0C0504, // 000A GETMET R3 R2 K4
+ 0x58140005, // 000B LDCONST R5 K5
+ 0x4C180000, // 000C LDNIL R6
+ 0x7C0C0600, // 000D CALL R3 3
+ 0x88100106, // 000E GETMBR R4 R0 K6
+ 0x20100604, // 000F NE R4 R3 R4
+ 0x78120004, // 0010 JMPF R4 #0016
+ 0x8C100107, // 0011 GETMET R4 R0 K7
+ 0x541A0005, // 0012 LDINT R6 6
+ 0x581C0008, // 0013 LDCONST R7 K8
+ 0x7C100600, // 0014 CALL R4 3
+ 0x90020C03, // 0015 SETMBR R0 K6 R3
+ 0x8C100504, // 0016 GETMET R4 R2 K4
+ 0x58180009, // 0017 LDCONST R6 K9
+ 0x4C1C0000, // 0018 LDNIL R7
+ 0x7C100600, // 0019 CALL R4 3
+ 0x4C140000, // 001A LDNIL R5
+ 0x20140805, // 001B NE R5 R4 R5
+ 0x78160010, // 001C JMPF R5 #002E
+ 0xB8161400, // 001D GETNGBL R5 K10
+ 0x8C140B0B, // 001E GETMET R5 R5 K11
+ 0x5C1C0800, // 001F MOVE R7 R4
+ 0x58200008, // 0020 LDCONST R8 K8
+ 0x542600FE, // 0021 LDINT R9 255
+ 0x58280008, // 0022 LDCONST R10 K8
+ 0x542E00FD, // 0023 LDINT R11 254
+ 0x7C140C00, // 0024 CALL R5 6
+ 0x5C100A00, // 0025 MOVE R4 R5
+ 0x8814010C, // 0026 GETMBR R5 R0 K12
+ 0x20140805, // 0027 NE R5 R4 R5
+ 0x78160004, // 0028 JMPF R5 #002E
+ 0x8C140107, // 0029 GETMET R5 R0 K7
+ 0x541E0007, // 002A LDINT R7 8
+ 0x58200008, // 002B LDCONST R8 K8
+ 0x7C140600, // 002C CALL R5 3
+ 0x90021804, // 002D SETMBR R0 K12 R4
+ 0x60040003, // 002E GETGBL R1 G3
+ 0x5C080000, // 002F MOVE R2 R0
+ 0x7C040200, // 0030 CALL R1 1
+ 0x8C04030D, // 0031 GETMET R1 R1 K13
+ 0x7C040200, // 0032 CALL R1 1
+ 0x80000000, // 0033 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(tasmota_relay_index),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(ARG),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_const_int(1),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A000E, // 0001 JMPF R2 #0011
+ 0x60080009, // 0002 GETGBL R2 G9
+ 0x8C0C0302, // 0003 GETMET R3 R1 K2
+ 0x88140103, // 0004 GETMBR R5 R0 K3
+ 0x4C180000, // 0005 LDNIL R6
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x7C080200, // 0007 CALL R2 1
+ 0x90020202, // 0008 SETMBR R0 K1 R2
+ 0x88080101, // 0009 GETMBR R2 R0 K1
+ 0x4C0C0000, // 000A LDNIL R3
+ 0x20080403, // 000B NE R2 R2 R3
+ 0x780A0003, // 000C JMPF R2 #0011
+ 0x88080101, // 000D GETMBR R2 R0 K1
+ 0x18080504, // 000E LE R2 R2 K4
+ 0x780A0000, // 000F JMPF R2 #0011
+ 0x90020305, // 0010 SETMBR R0 K1 K5
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_parse_status, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(Dimmer),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(scale_uint),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(shadow_bri),
+ /* K7 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0700, // 0003 GETMET R3 R3 K0
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x540E000A, // 0007 LDINT R3 11
+ 0x1C0C0403, // 0008 EQ R3 R2 R3
+ 0x780E0017, // 0009 JMPF R3 #0022
+ 0x600C0009, // 000A GETGBL R3 G9
+ 0x8C100301, // 000B GETMET R4 R1 K1
+ 0x58180002, // 000C LDCONST R6 K2
+ 0x7C100400, // 000D CALL R4 2
+ 0x7C0C0200, // 000E CALL R3 1
+ 0x4C100000, // 000F LDNIL R4
+ 0x20100604, // 0010 NE R4 R3 R4
+ 0x7812000F, // 0011 JMPF R4 #0022
+ 0xB8120600, // 0012 GETNGBL R4 K3
+ 0x8C100904, // 0013 GETMET R4 R4 K4
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x581C0005, // 0015 LDCONST R7 K5
+ 0x54220063, // 0016 LDINT R8 100
+ 0x58240005, // 0017 LDCONST R9 K5
+ 0x542A00FD, // 0018 LDINT R10 254
+ 0x7C100C00, // 0019 CALL R4 6
+ 0x88140106, // 001A GETMBR R5 R0 K6
+ 0x20140805, // 001B NE R5 R4 R5
+ 0x78160004, // 001C JMPF R5 #0022
+ 0x8C140107, // 001D GETMET R5 R0 K7
+ 0x541E0007, // 001E LDINT R7 8
+ 0x58200005, // 001F LDCONST R8 K5
+ 0x7C140600, // 0020 CALL R5 3
+ 0x90020C04, // 0021 SETMBR R0 K6 R4
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_nested_str_weak(update_shadow_lazy),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(set),
+ /* K7 */ be_nested_str_weak(U1),
+ /* K8 */ be_nested_str_weak(shadow_bri),
+ /* K9 */ be_const_int(2),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[59]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0007, // 0004 LDINT R7 8
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E002A, // 0006 JMPF R7 #0032
+ 0x8C1C0104, // 0007 GETMET R7 R0 K4
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x1C1C0D05, // 0009 EQ R7 R6 K5
+ 0x781E0005, // 000A JMPF R7 #0011
+ 0x8C1C0706, // 000B GETMET R7 R3 K6
+ 0x88240907, // 000C GETMBR R9 R4 K7
+ 0x88280108, // 000D GETMBR R10 R0 K8
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x70020020, // 0010 JMP #0032
+ 0x1C1C0D09, // 0011 EQ R7 R6 K9
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0706, // 0013 GETMET R7 R3 K6
+ 0x88240907, // 0014 GETMBR R9 R4 K7
+ 0x58280005, // 0015 LDCONST R10 K5
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x70020018, // 0018 JMP #0032
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0005, // 001A JMPF R7 #0021
+ 0x8C1C0706, // 001B GETMET R7 R3 K6
+ 0x88240907, // 001C GETMBR R9 R4 K7
+ 0x542A00FD, // 001D LDINT R10 254
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x70020010, // 0020 JMP #0032
+ 0x541E000E, // 0021 LDINT R7 15
+ 0x1C1C0C07, // 0022 EQ R7 R6 R7
+ 0x781E0005, // 0023 JMPF R7 #002A
+ 0x8C1C0706, // 0024 GETMET R7 R3 K6
+ 0x88240907, // 0025 GETMBR R9 R4 K7
+ 0x58280005, // 0026 LDCONST R10 K5
+ 0x7C1C0600, // 0027 CALL R7 3
+ 0x80040E00, // 0028 RET 1 R7
+ 0x70020007, // 0029 JMP #0032
+ 0x541E0010, // 002A LDINT R7 17
+ 0x1C1C0C07, // 002B EQ R7 R6 R7
+ 0x781E0004, // 002C JMPF R7 #0032
+ 0x8C1C0706, // 002D GETMET R7 R3 K6
+ 0x88240907, // 002E GETMBR R9 R4 K7
+ 0x88280108, // 002F GETMBR R10 R0 K8
+ 0x7C1C0600, // 0030 CALL R7 3
+ 0x80040E00, // 0031 RET 1 R7
+ 0x601C0003, // 0032 GETGBL R7 G3
+ 0x5C200000, // 0033 MOVE R8 R0
+ 0x7C1C0200, // 0034 CALL R7 1
+ 0x8C1C0F0B, // 0035 GETMET R7 R7 K11
+ 0x5C240200, // 0036 MOVE R9 R1
+ 0x5C280400, // 0037 MOVE R10 R2
+ 0x5C2C0600, // 0038 MOVE R11 R3
+ 0x7C1C0800, // 0039 CALL R7 4
+ 0x80040E00, // 003A RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: invoke_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_invoke_request, /* name */
+ be_nested_proto(
+ 22, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[21]) { /* constants */
+ /* K0 */ be_nested_str_weak(light),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(TLV),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(command),
+ /* K5 */ be_nested_str_weak(update_shadow_lazy),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(findsubval),
+ /* K8 */ be_nested_str_weak(set_bri),
+ /* K9 */ be_nested_str_weak(log),
+ /* K10 */ be_nested_str_weak(bri_X3A),
+ /* K11 */ be_nested_str_weak(publish_command),
+ /* K12 */ be_nested_str_weak(Bri),
+ /* K13 */ be_nested_str_weak(Dimmer),
+ /* K14 */ be_nested_str_weak(tasmota),
+ /* K15 */ be_nested_str_weak(scale_uint),
+ /* K16 */ be_const_int(1),
+ /* K17 */ be_const_int(2),
+ /* K18 */ be_const_int(3),
+ /* K19 */ be_nested_str_weak(Power),
+ /* K20 */ be_nested_str_weak(invoke_request),
+ }),
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[119]) { /* code */
+ 0xA4120000, // 0000 IMPORT R4 K0
+ 0xB8160200, // 0001 GETNGBL R5 K1
+ 0x88140B02, // 0002 GETMBR R5 R5 K2
+ 0x88180703, // 0003 GETMBR R6 R3 K3
+ 0x881C0704, // 0004 GETMBR R7 R3 K4
+ 0x54220007, // 0005 LDINT R8 8
+ 0x1C200C08, // 0006 EQ R8 R6 R8
+ 0x78220064, // 0007 JMPF R8 #006D
+ 0x8C200105, // 0008 GETMET R8 R0 K5
+ 0x7C200200, // 0009 CALL R8 1
+ 0x1C200F06, // 000A EQ R8 R7 K6
+ 0x7822001A, // 000B JMPF R8 #0027
+ 0x8C200507, // 000C GETMET R8 R2 K7
+ 0x58280006, // 000D LDCONST R10 K6
+ 0x7C200400, // 000E CALL R8 2
+ 0x8C240108, // 000F GETMET R9 R0 K8
+ 0x5C2C1000, // 0010 MOVE R11 R8
+ 0x7C240400, // 0011 CALL R9 2
+ 0x60240008, // 0012 GETGBL R9 G8
+ 0x5C281000, // 0013 MOVE R10 R8
+ 0x7C240200, // 0014 CALL R9 1
+ 0x00261409, // 0015 ADD R9 K10 R9
+ 0x900E1209, // 0016 SETMBR R3 K9 R9
+ 0x8C24010B, // 0017 GETMET R9 R0 K11
+ 0x582C000C, // 0018 LDCONST R11 K12
+ 0x5C301000, // 0019 MOVE R12 R8
+ 0x5834000D, // 001A LDCONST R13 K13
+ 0xB83A1C00, // 001B GETNGBL R14 K14
+ 0x8C381D0F, // 001C GETMET R14 R14 K15
+ 0x5C401000, // 001D MOVE R16 R8
+ 0x58440006, // 001E LDCONST R17 K6
+ 0x544A00FD, // 001F LDINT R18 254
+ 0x584C0006, // 0020 LDCONST R19 K6
+ 0x54520063, // 0021 LDINT R20 100
+ 0x7C380C00, // 0022 CALL R14 6
+ 0x7C240A00, // 0023 CALL R9 5
+ 0x50240200, // 0024 LDBOOL R9 1 0
+ 0x80041200, // 0025 RET 1 R9
+ 0x70020044, // 0026 JMP #006C
+ 0x1C200F10, // 0027 EQ R8 R7 K16
+ 0x78220002, // 0028 JMPF R8 #002C
+ 0x50200200, // 0029 LDBOOL R8 1 0
+ 0x80041000, // 002A RET 1 R8
+ 0x7002003F, // 002B JMP #006C
+ 0x1C200F11, // 002C EQ R8 R7 K17
+ 0x78220002, // 002D JMPF R8 #0031
+ 0x50200200, // 002E LDBOOL R8 1 0
+ 0x80041000, // 002F RET 1 R8
+ 0x7002003A, // 0030 JMP #006C
+ 0x1C200F12, // 0031 EQ R8 R7 K18
+ 0x78220002, // 0032 JMPF R8 #0036
+ 0x50200200, // 0033 LDBOOL R8 1 0
+ 0x80041000, // 0034 RET 1 R8
+ 0x70020035, // 0035 JMP #006C
+ 0x54220003, // 0036 LDINT R8 4
+ 0x1C200E08, // 0037 EQ R8 R7 R8
+ 0x78220021, // 0038 JMPF R8 #005B
+ 0x8C200507, // 0039 GETMET R8 R2 K7
+ 0x58280006, // 003A LDCONST R10 K6
+ 0x7C200400, // 003B CALL R8 2
+ 0x24241106, // 003C GT R9 R8 K6
+ 0x8C280108, // 003D GETMET R10 R0 K8
+ 0x5C301000, // 003E MOVE R12 R8
+ 0x5C341200, // 003F MOVE R13 R9
+ 0x7C280600, // 0040 CALL R10 3
+ 0x60280008, // 0041 GETGBL R10 G8
+ 0x5C2C1000, // 0042 MOVE R11 R8
+ 0x7C280200, // 0043 CALL R10 1
+ 0x002A140A, // 0044 ADD R10 K10 R10
+ 0x900E120A, // 0045 SETMBR R3 K9 R10
+ 0x8C28010B, // 0046 GETMET R10 R0 K11
+ 0x5830000C, // 0047 LDCONST R12 K12
+ 0x5C341000, // 0048 MOVE R13 R8
+ 0x5838000D, // 0049 LDCONST R14 K13
+ 0xB83E1C00, // 004A GETNGBL R15 K14
+ 0x8C3C1F0F, // 004B GETMET R15 R15 K15
+ 0x5C441000, // 004C MOVE R17 R8
+ 0x58480006, // 004D LDCONST R18 K6
+ 0x544E00FD, // 004E LDINT R19 254
+ 0x58500006, // 004F LDCONST R20 K6
+ 0x54560063, // 0050 LDINT R21 100
+ 0x7C3C0C00, // 0051 CALL R15 6
+ 0x58400013, // 0052 LDCONST R16 K19
+ 0x78260001, // 0053 JMPF R9 #0056
+ 0x58440010, // 0054 LDCONST R17 K16
+ 0x70020000, // 0055 JMP #0057
+ 0x58440006, // 0056 LDCONST R17 K6
+ 0x7C280E00, // 0057 CALL R10 7
+ 0x50280200, // 0058 LDBOOL R10 1 0
+ 0x80041400, // 0059 RET 1 R10
+ 0x70020010, // 005A JMP #006C
+ 0x54220004, // 005B LDINT R8 5
+ 0x1C200E08, // 005C EQ R8 R7 R8
+ 0x78220002, // 005D JMPF R8 #0061
+ 0x50200200, // 005E LDBOOL R8 1 0
+ 0x80041000, // 005F RET 1 R8
+ 0x7002000A, // 0060 JMP #006C
+ 0x54220005, // 0061 LDINT R8 6
+ 0x1C200E08, // 0062 EQ R8 R7 R8
+ 0x78220002, // 0063 JMPF R8 #0067
+ 0x50200200, // 0064 LDBOOL R8 1 0
+ 0x80041000, // 0065 RET 1 R8
+ 0x70020004, // 0066 JMP #006C
+ 0x54220006, // 0067 LDINT R8 7
+ 0x1C200E08, // 0068 EQ R8 R7 R8
+ 0x78220001, // 0069 JMPF R8 #006C
+ 0x50200200, // 006A LDBOOL R8 1 0
+ 0x80041000, // 006B RET 1 R8
+ 0x70020008, // 006C JMP #0076
+ 0x60200003, // 006D GETGBL R8 G3
+ 0x5C240000, // 006E MOVE R9 R0
+ 0x7C200200, // 006F CALL R8 1
+ 0x8C201114, // 0070 GETMET R8 R8 K20
+ 0x5C280200, // 0071 MOVE R10 R1
+ 0x5C2C0400, // 0072 MOVE R11 R2
+ 0x5C300600, // 0073 MOVE R12 R3
+ 0x7C200800, // 0074 CALL R8 4
+ 0x80041000, // 0075 RET 1 R8
+ 0x80000000, // 0076 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_value_dimmer
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_web_value_dimmer, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(shadow_bri),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(scale_uint),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(_X25i_X25_X25),
+ /* K6 */ be_nested_str_weak(_X26_X23128261_X3B_X20),
+ }),
+ be_str_weak(web_value_dimmer),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x4C0C0000, // 0002 LDNIL R3
+ 0x20080403, // 0003 NE R2 R2 R3
+ 0x780A000C, // 0004 JMPF R2 #0012
+ 0xB80A0400, // 0005 GETNGBL R2 K2
+ 0x8C080503, // 0006 GETMET R2 R2 K3
+ 0x88100101, // 0007 GETMBR R4 R0 K1
+ 0x58140004, // 0008 LDCONST R5 K4
+ 0x541A00FD, // 0009 LDINT R6 254
+ 0x581C0004, // 000A LDCONST R7 K4
+ 0x54220063, // 000B LDINT R8 100
+ 0x7C080C00, // 000C CALL R2 6
+ 0x600C0018, // 000D GETGBL R3 G24
+ 0x58100005, // 000E LDCONST R4 K5
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x5C040600, // 0011 MOVE R1 R3
+ 0x000A0C01, // 0012 ADD R2 K6 R1
+ 0x80040400, // 0013 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_closure(class_Matter_Plugin_Light1_web_values, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light1,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X25s_X20_X25s),
+ /* K4 */ be_nested_str_weak(web_value_onoff),
+ /* K5 */ be_nested_str_weak(shadow_onoff),
+ /* K6 */ be_nested_str_weak(web_value_dimmer),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x8C180104, // 0006 GETMET R6 R0 K4
+ 0x88200105, // 0007 GETMBR R8 R0 K5
+ 0x7C180400, // 0008 CALL R6 2
+ 0x8C1C0106, // 0009 GETMET R7 R0 K6
+ 0x7C1C0200, // 000A CALL R7 1
+ 0x7C100600, // 000B CALL R4 3
+ 0x7C080400, // 000C CALL R2 2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -682,28 +797,32 @@ be_local_closure(class_Matter_Plugin_Light1_set_bri, /* name */
/********************************************************************
** Solidified class: Matter_Plugin_Light1
********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
+extern const bclass be_class_Matter_Plugin_Light0;
be_local_class(Matter_Plugin_Light1,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(15,
+ 1,
+ &be_class_Matter_Plugin_Light0,
+ be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, 1), be_const_closure(class_Matter_Plugin_Light1_update_virtual_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light1_web_values_closure) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Light1_parse_status_closure) },
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light1_init_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light1_update_shadow_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light1_invoke_request_closure) },
- { be_const_key_weak(set_onoff, -1), be_const_closure(class_Matter_Plugin_Light1_set_onoff_closure) },
- { be_const_key_weak(TYPE, 10), be_nested_str_weak(light1) },
- { be_const_key_weak(update_virtual, 11), be_const_closure(class_Matter_Plugin_Light1_update_virtual_closure) },
- { be_const_key_weak(UPDATE_TIME, 8), be_const_int(250) },
- { be_const_key_weak(shadow_bri, 1), be_const_var(1) },
{ be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X201_X20Dimmer) },
+ { be_const_key_weak(update_shadow, 6), be_const_closure(class_Matter_Plugin_Light1_update_shadow_closure) },
+ { be_const_key_weak(shadow_bri, 15), be_const_var(0) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(2,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Power),
be_nested_str_weak(Bri),
})) ) } )) },
- { be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(invoke_request, 2), be_const_closure(class_Matter_Plugin_Light1_invoke_request_closure) },
+ { be_const_key_weak(TYPES, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(257, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(CLUSTERS, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(29, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -802,14 +921,11 @@ be_local_class(Matter_Plugin_Light1,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(257, -1), be_const_int(2) },
- })) ) } )) },
+ { be_const_key_weak(set_bri, 8), be_const_closure(class_Matter_Plugin_Light1_set_bri_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light1_read_attribute_closure) },
- { be_const_key_weak(shadow_onoff, -1), be_const_var(0) },
- { be_const_key_weak(set_bri, -1), be_const_closure(class_Matter_Plugin_Light1_set_bri_closure) },
+ { be_const_key_weak(TYPE, 4), be_nested_str_weak(light1) },
+ { be_const_key_weak(web_value_dimmer, -1), be_const_closure(class_Matter_Plugin_Light1_web_value_dimmer_closure) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Light1_parse_configuration_closure) },
})),
be_str_weak(Matter_Plugin_Light1)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
index 82087ee1d..efe206a1c 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
@@ -6,6 +6,370 @@
extern const bclass be_class_Matter_Plugin_Sensor;
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_parse_status, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(contains),
+ /* K1 */ be_nested_str_weak(TempUnit),
+ /* K2 */ be_nested_str_weak(temp_unit),
+ /* K3 */ be_nested_str_weak(PressureUnit),
+ /* K4 */ be_nested_str_weak(pressure_unit),
+ /* K5 */ be_nested_str_weak(tasmota_sensor_matcher),
+ /* K6 */ be_nested_str_weak(pre_value),
+ /* K7 */ be_nested_str_weak(match),
+ /* K8 */ be_nested_str_weak(shadow_value),
+ /* K9 */ be_nested_str_weak(value_changed),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E001E, // 0002 JMPF R3 #0022
+ 0x8C0C0300, // 0003 GETMET R3 R1 K0
+ 0x58140001, // 0004 LDCONST R5 K1
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x780E0001, // 0006 JMPF R3 #0009
+ 0x940C0301, // 0007 GETIDX R3 R1 K1
+ 0x90020403, // 0008 SETMBR R0 K2 R3
+ 0x8C0C0300, // 0009 GETMET R3 R1 K0
+ 0x58140003, // 000A LDCONST R5 K3
+ 0x7C0C0400, // 000B CALL R3 2
+ 0x780E0001, // 000C JMPF R3 #000F
+ 0x940C0303, // 000D GETIDX R3 R1 K3
+ 0x90020803, // 000E SETMBR R0 K4 R3
+ 0x880C0105, // 000F GETMBR R3 R0 K5
+ 0x780E0010, // 0010 JMPF R3 #0022
+ 0x8C0C0106, // 0011 GETMET R3 R0 K6
+ 0x6014000A, // 0012 GETGBL R5 G10
+ 0x88180105, // 0013 GETMBR R6 R0 K5
+ 0x8C180D07, // 0014 GETMET R6 R6 K7
+ 0x5C200200, // 0015 MOVE R8 R1
+ 0x7C180400, // 0016 CALL R6 2
+ 0x7C140200, // 0017 CALL R5 1
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x4C100000, // 0019 LDNIL R4
+ 0x20100604, // 001A NE R4 R3 R4
+ 0x78120005, // 001B JMPF R4 #0022
+ 0x88100108, // 001C GETMBR R4 R0 K8
+ 0x20100604, // 001D NE R4 R3 R4
+ 0x78120002, // 001E JMPF R4 #0022
+ 0x8C100109, // 001F GETMET R4 R0 K9
+ 0x7C100200, // 0020 CALL R4 1
+ 0x90021003, // 0021 SETMBR R0 K8 R3
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_parse_configuration, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_sensor_filter),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_nested_str_weak(tasmota_sensor_matcher),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(Rule_Matcher),
+ /* K6 */ be_nested_str_weak(parse),
+ /* K7 */ be_nested_str_weak(temp_unit),
+ /* K8 */ be_nested_str_weak(TEMP_C),
+ /* K9 */ be_nested_str_weak(pressure_unit),
+ /* K10 */ be_nested_str_weak(PRESSURE_HPA),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x8C080301, // 0000 GETMET R2 R1 K1
+ 0x88100102, // 0001 GETMBR R4 R0 K2
+ 0x7C080400, // 0002 CALL R2 2
+ 0x90020002, // 0003 SETMBR R0 K0 R2
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x780A0005, // 0005 JMPF R2 #000C
+ 0xB80A0800, // 0006 GETNGBL R2 K4
+ 0x88080505, // 0007 GETMBR R2 R2 K5
+ 0x8C080506, // 0008 GETMET R2 R2 K6
+ 0x88100100, // 0009 GETMBR R4 R0 K0
+ 0x7C080400, // 000A CALL R2 2
+ 0x90020602, // 000B SETMBR R0 K3 R2
+ 0x88080108, // 000C GETMBR R2 R0 K8
+ 0x90020E02, // 000D SETMBR R0 K7 R2
+ 0x8808010A, // 000E GETMBR R2 R0 K10
+ 0x90021202, // 000F SETMBR R0 K9 R2
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: pre_value
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_pre_value, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(pre_value),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80040200, // 0000 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_parse_sensors, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(VIRTUAL),
+ /* K1 */ be_nested_str_weak(tasmota_sensor_matcher),
+ /* K2 */ be_nested_str_weak(pre_value),
+ /* K3 */ be_nested_str_weak(match),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ /* K5 */ be_nested_str_weak(value_changed),
+ }),
+ be_str_weak(parse_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x740A0012, // 0001 JMPT R2 #0015
+ 0x88080101, // 0002 GETMBR R2 R0 K1
+ 0x780A0010, // 0003 JMPF R2 #0015
+ 0x8C080102, // 0004 GETMET R2 R0 K2
+ 0x6010000A, // 0005 GETGBL R4 G10
+ 0x88140101, // 0006 GETMBR R5 R0 K1
+ 0x8C140B03, // 0007 GETMET R5 R5 K3
+ 0x5C1C0200, // 0008 MOVE R7 R1
+ 0x7C140400, // 0009 CALL R5 2
+ 0x7C100200, // 000A CALL R4 1
+ 0x7C080400, // 000B CALL R2 2
+ 0x4C0C0000, // 000C LDNIL R3
+ 0x200C0403, // 000D NE R3 R2 R3
+ 0x780E0005, // 000E JMPF R3 #0015
+ 0x880C0104, // 000F GETMBR R3 R0 K4
+ 0x200C0403, // 0010 NE R3 R2 R3
+ 0x780E0002, // 0011 JMPF R3 #0015
+ 0x8C0C0105, // 0012 GETMET R3 R0 K5
+ 0x7C0C0200, // 0013 CALL R3 1
+ 0x90020802, // 0014 SETMBR R0 K4 R2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: value_changed
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_value_changed, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(value_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(add_read_sensors_schedule),
+ /* K2 */ be_nested_str_weak(UPDATE_TIME),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x8C100301, // 0008 GETMET R4 R1 K1
+ 0x88180102, // 0009 GETMBR R6 R0 K2
+ 0x7C100400, // 000A CALL R4 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: filter_name_html
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_filter_name_html, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_sensor_filter),
+ /* K1 */ be_nested_str_weak(string),
+ /* K2 */ be_nested_str_weak(webserver),
+ /* K3 */ be_nested_str_weak(html_escape),
+ /* K4 */ be_nested_str_weak(split),
+ /* K5 */ be_nested_str_weak(_X23),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(filter_name_html),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060009, // 0001 JMPF R1 #000C
+ 0xA4060200, // 0002 IMPORT R1 K1
+ 0xA40A0400, // 0003 IMPORT R2 K2
+ 0x8C0C0503, // 0004 GETMET R3 R2 K3
+ 0x8C140304, // 0005 GETMET R5 R1 K4
+ 0x881C0100, // 0006 GETMBR R7 R0 K0
+ 0x58200005, // 0007 LDCONST R8 K5
+ 0x7C140600, // 0008 CALL R5 3
+ 0x94140B06, // 0009 GETIDX R5 R5 K6
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x80040600, // 000B RET 1 R3
+ 0x80060E00, // 000C RET 1 K7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor;
+be_local_closure(class_Matter_Plugin_Sensor_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(filter_name_html),
+ /* K3 */ be_nested_str_weak(content_send),
+ /* K4 */ be_nested_str_weak(PREFIX),
+ /* K5 */ be_nested_str_weak(html_escape),
+ /* K6 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0002, // 0004 JMPT R3 #0008
+ 0x8C0C0102, // 0005 GETMET R3 R0 K2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0x5C080600, // 0007 MOVE R2 R3
+ 0x8C0C0303, // 0008 GETMET R3 R1 K3
+ 0x60140018, // 0009 GETGBL R5 G24
+ 0x88180104, // 000A GETMBR R6 R0 K4
+ 0x780A0003, // 000B JMPF R2 #0010
+ 0x8C1C0305, // 000C GETMET R7 R1 K5
+ 0x5C240400, // 000D MOVE R9 R2
+ 0x7C1C0400, // 000E CALL R7 2
+ 0x70020000, // 000F JMP #0011
+ 0x581C0006, // 0010 LDCONST R7 K6
+ 0x7C140400, // 0011 CALL R5 2
+ 0x7C0C0400, // 0012 CALL R3 2
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_virtual
********************************************************************/
@@ -65,216 +429,39 @@ be_local_closure(class_Matter_Plugin_Sensor_update_virtual, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: parse_sensors
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor;
-be_local_closure(class_Matter_Plugin_Sensor_parse_sensors, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(tasmota_sensor_matcher),
- /* K2 */ be_nested_str_weak(pre_value),
- /* K3 */ be_nested_str_weak(match),
- /* K4 */ be_nested_str_weak(shadow_value),
- /* K5 */ be_nested_str_weak(value_changed),
- }),
- be_str_weak(parse_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0012, // 0001 JMPT R2 #0015
- 0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A0010, // 0003 JMPF R2 #0015
- 0x8C080102, // 0004 GETMET R2 R0 K2
- 0x6010000A, // 0005 GETGBL R4 G10
- 0x88140101, // 0006 GETMBR R5 R0 K1
- 0x8C140B03, // 0007 GETMET R5 R5 K3
- 0x5C1C0200, // 0008 MOVE R7 R1
- 0x7C140400, // 0009 CALL R5 2
- 0x7C100200, // 000A CALL R4 1
- 0x7C080400, // 000B CALL R2 2
- 0x4C0C0000, // 000C LDNIL R3
- 0x200C0403, // 000D NE R3 R2 R3
- 0x780E0005, // 000E JMPF R3 #0015
- 0x880C0104, // 000F GETMBR R3 R0 K4
- 0x200C0403, // 0010 NE R3 R2 R3
- 0x780E0002, // 0011 JMPF R3 #0015
- 0x8C0C0105, // 0012 GETMET R3 R0 K5
- 0x7C0C0200, // 0013 CALL R3 1
- 0x90020802, // 0014 SETMBR R0 K4 R2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor;
-be_local_closure(class_Matter_Plugin_Sensor_parse_configuration, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_sensor_filter),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(tasmota_sensor_matcher),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(Rule_Matcher),
- /* K6 */ be_nested_str_weak(parse),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x8C080301, // 0000 GETMET R2 R1 K1
- 0x88100102, // 0001 GETMBR R4 R0 K2
- 0x7C080400, // 0002 CALL R2 2
- 0x90020002, // 0003 SETMBR R0 K0 R2
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x780A0005, // 0005 JMPF R2 #000C
- 0xB80A0800, // 0006 GETNGBL R2 K4
- 0x88080505, // 0007 GETMBR R2 R2 K5
- 0x8C080506, // 0008 GETMET R2 R2 K6
- 0x88100100, // 0009 GETMBR R4 R0 K0
- 0x7C080400, // 000A CALL R2 2
- 0x90020602, // 000B SETMBR R0 K3 R2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor;
-be_local_closure(class_Matter_Plugin_Sensor_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(add_read_sensors_schedule),
- /* K2 */ be_nested_str_weak(UPDATE_TIME),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x8C100301, // 0008 GETMET R4 R1 K1
- 0x88180102, // 0009 GETMBR R6 R0 K2
- 0x7C100400, // 000A CALL R4 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor;
-be_local_closure(class_Matter_Plugin_Sensor_pre_value, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80040200, // 0000 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor;
-be_local_closure(class_Matter_Plugin_Sensor_value_changed, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Plugin_Sensor
********************************************************************/
extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Sensor,
- 3,
+ 5,
&be_class_Matter_Plugin_Device,
- be_nested_map(13,
+ be_nested_map(24,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG, 1), be_nested_str_weak(filter) },
- { be_const_key_weak(value_changed, -1), be_const_closure(class_Matter_Plugin_Sensor_value_changed_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_update_virtual_closure) },
- { be_const_key_weak(ARG_HINT, 9), be_nested_str_weak(Filter_X20pattern) },
- { be_const_key_weak(tasmota_sensor_matcher, -1), be_const_var(1) },
- { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_Sensor_parse_sensors_closure) },
- { be_const_key_weak(JSON_NAME, 8), be_nested_str_weak() },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_parse_configuration_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_init_closure) },
- { be_const_key_weak(pre_value, 12), be_const_closure(class_Matter_Plugin_Sensor_pre_value_closure) },
- { be_const_key_weak(shadow_value, -1), be_const_var(2) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(tasmota_sensor_filter, -1), be_const_var(0) },
+ { be_const_key_weak(TEMP_C, -1), be_nested_str_weak(C) },
+ { be_const_key_weak(tasmota_sensor_matcher, -1), be_const_var(1) },
+ { be_const_key_weak(shadow_value, 19), be_const_var(2) },
+ { be_const_key_weak(PRESSURE_MMHG, -1), be_nested_str_weak(mmHg) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Sensor_parse_status_closure) },
+ { be_const_key_weak(TEMP_F, -1), be_nested_str_weak(F) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_update_virtual_closure) },
+ { be_const_key_weak(pre_value, 7), be_const_closure(class_Matter_Plugin_Sensor_pre_value_closure) },
+ { be_const_key_weak(ARG_HINT, 14), be_nested_str_weak(Filter_X20pattern) },
+ { be_const_key_weak(tasmota_sensor_filter, 6), be_const_var(0) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
+ { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_Sensor_parse_sensors_closure) },
+ { be_const_key_weak(parse_configuration, 20), be_const_closure(class_Matter_Plugin_Sensor_parse_configuration_closure) },
+ { be_const_key_weak(PRESSURE_INHG, -1), be_nested_str_weak(inHg) },
+ { be_const_key_weak(ARG, 11), be_nested_str_weak(filter) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_web_values_prefix_closure) },
+ { be_const_key_weak(filter_name_html, 16), be_const_closure(class_Matter_Plugin_Sensor_filter_name_html_closure) },
+ { be_const_key_weak(PRESSURE_HPA, -1), be_nested_str_weak(hPa) },
+ { be_const_key_weak(init, 5), be_const_closure(class_Matter_Plugin_Sensor_init_closure) },
+ { be_const_key_weak(value_changed, 21), be_const_closure(class_Matter_Plugin_Sensor_value_changed_closure) },
+ { be_const_key_weak(pressure_unit, -1), be_const_var(4) },
+ { be_const_key_weak(temp_unit, -1), be_const_var(3) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak() },
})),
be_str_weak(Matter_Plugin_Sensor)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
index 9882dd40f..b0f63d3c8 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
@@ -6,195 +6,6 @@
extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_contact),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_update_shadow, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X208),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_contact),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0044, // 0026 LDINT R6 69
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -263,6 +74,181 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_read_attribute, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_contact),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_update_shadow, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_shadow),
+ /* K1 */ be_nested_str_weak(VIRTUAL),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(cmd),
+ /* K6 */ be_nested_str_weak(Status_X2010),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(StatusSNS),
+ /* K9 */ be_nested_str_weak(contains),
+ /* K10 */ be_nested_str_weak(ON),
+ /* K11 */ be_nested_str_weak(shadow_contact),
+ /* K12 */ be_nested_str_weak(attribute_updated),
+ /* K13 */ be_const_int(0),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[43]) { /* code */
+ 0x60040003, // 0000 GETGBL R1 G3
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x8C040300, // 0003 GETMET R1 R1 K0
+ 0x7C040200, // 0004 CALL R1 1
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x74060022, // 0006 JMPT R1 #002A
+ 0x60040008, // 0007 GETGBL R1 G8
+ 0x88080103, // 0008 GETMBR R2 R0 K3
+ 0x7C040200, // 0009 CALL R1 1
+ 0x00060401, // 000A ADD R1 K2 R1
+ 0xB80A0800, // 000B GETNGBL R2 K4
+ 0x8C080505, // 000C GETMET R2 R2 K5
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x50140200, // 000E LDBOOL R5 1 0
+ 0x7C080600, // 000F CALL R2 3
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x200C0403, // 0011 NE R3 R2 R3
+ 0x780E0003, // 0012 JMPF R3 #0017
+ 0x8C0C0507, // 0013 GETMET R3 R2 K7
+ 0x58140008, // 0014 LDCONST R5 K8
+ 0x7C0C0400, // 0015 CALL R3 2
+ 0x5C080600, // 0016 MOVE R2 R3
+ 0x4C0C0000, // 0017 LDNIL R3
+ 0x200C0403, // 0018 NE R3 R2 R3
+ 0x780E000F, // 0019 JMPF R3 #002A
+ 0x8C0C0509, // 001A GETMET R3 R2 K9
+ 0x5C140200, // 001B MOVE R5 R1
+ 0x7C0C0400, // 001C CALL R3 2
+ 0x780E000B, // 001D JMPF R3 #002A
+ 0x8C0C0507, // 001E GETMET R3 R2 K7
+ 0x5C140200, // 001F MOVE R5 R1
+ 0x7C0C0400, // 0020 CALL R3 2
+ 0x1C0C070A, // 0021 EQ R3 R3 K10
+ 0x8810010B, // 0022 GETMBR R4 R0 K11
+ 0x20100803, // 0023 NE R4 R4 R3
+ 0x78120003, // 0024 JMPF R4 #0029
+ 0x8C10010C, // 0025 GETMET R4 R0 K12
+ 0x541A0044, // 0026 LDINT R6 69
+ 0x581C000D, // 0027 LDCONST R7 K13
+ 0x7C100600, // 0028 CALL R4 3
+ 0x90021603, // 0029 SETMBR R0 K11 R3
+ 0x80000000, // 002A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_virtual
********************************************************************/
@@ -309,6 +295,180 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_update_virtual, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(Switch),
+ /* K2 */ be_nested_str_weak(tasmota_switch_index),
+ /* K3 */ be_nested_str_weak(ON),
+ /* K4 */ be_nested_str_weak(shadow_contact),
+ /* K5 */ be_nested_str_weak(attribute_updated),
+ /* K6 */ be_const_int(0),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0017, // 0002 JMPF R3 #001B
+ 0x500C0000, // 0003 LDBOOL R3 0 0
+ 0x8C100300, // 0004 GETMET R4 R1 K0
+ 0x60180008, // 0005 GETGBL R6 G8
+ 0x881C0102, // 0006 GETMBR R7 R0 K2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x001A0206, // 0008 ADD R6 K1 R6
+ 0x7C100400, // 0009 CALL R4 2
+ 0x1C100903, // 000A EQ R4 R4 K3
+ 0x5C0C0800, // 000B MOVE R3 R4
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x4C140000, // 000D LDNIL R5
+ 0x20100805, // 000E NE R4 R4 R5
+ 0x78120009, // 000F JMPF R4 #001A
+ 0x88100104, // 0010 GETMBR R4 R0 K4
+ 0x60140017, // 0011 GETGBL R5 G23
+ 0x5C180600, // 0012 MOVE R6 R3
+ 0x7C140200, // 0013 CALL R5 1
+ 0x20100805, // 0014 NE R4 R4 R5
+ 0x78120003, // 0015 JMPF R4 #001A
+ 0x8C100105, // 0016 GETMET R4 R0 K5
+ 0x541A0044, // 0017 LDINT R6 69
+ 0x581C0006, // 0018 LDCONST R7 K6
+ 0x7C100600, // 0019 CALL R4 3
+ 0x90020803, // 001A SETMBR R0 K4 R3
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Contact_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_contact),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Contact
********************************************************************/
@@ -316,29 +476,31 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Sensor_Contact,
2,
&be_class_Matter_Plugin_Device,
- be_nested_map(16,
+ be_nested_map(19,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 4), be_const_static_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(shadow_contact, -1), be_const_var(1) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_init_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_virtual_closure) },
- { be_const_key_weak(update_shadow, 15), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_shadow_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_read_attribute_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(21, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(parse_configuration, 7), be_const_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Contact),
})) ) } )) },
- { be_const_key_weak(ARG, 6), be_nested_str_weak(switch) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(750) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Contact) },
- { be_const_key_weak(tasmota_switch_index, 11), be_const_var(0) },
- { be_const_key_weak(TYPES, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(21, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_shadow_closure) },
+ { be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Contact) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_closure) },
+ { be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_prefix_closure) },
+ { be_const_key_weak(shadow_contact, 4), be_const_var(1) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_virtual_closure) },
+ { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Contact_parse_status_closure) },
+ { be_const_key_weak(ARG_HINT, 18), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
+ { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -422,9 +584,10 @@ be_local_class(Matter_Plugin_Sensor_Contact,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(TYPE, 9), be_nested_str_weak(contact) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_read_attribute_closure) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration_closure) },
+ { be_const_key_weak(UPDATE_TIME, 2), be_const_int(750) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(contact) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_init_closure) },
})),
be_str_weak(Matter_Plugin_Sensor_Contact)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
index d74be2a22..9d3fe0e4d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
@@ -6,241 +6,6 @@
extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(val_onoff),
- /* K1 */ be_nested_str_weak(_parse_update_virtual),
- /* K2 */ be_nested_str_weak(Occupancy),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x8C080101, // 0000 GETMET R2 R0 K1
- 0x5C100200, // 0001 MOVE R4 R1
- 0x58140002, // 0002 LDCONST R5 K2
- 0x88180100, // 0003 GETMBR R6 R0 K0
- 0x601C0017, // 0004 GETGBL R7 G23
- 0x54220405, // 0005 LDINT R8 1030
- 0x58240003, // 0006 LDCONST R9 K3
- 0x7C080E00, // 0007 CALL R2 7
- 0x90020002, // 0008 SETMBR R0 K0 R2
- 0x60080003, // 0009 GETGBL R2 G3
- 0x5C0C0000, // 000A MOVE R3 R0
- 0x7C080200, // 000B CALL R2 1
- 0x8C080504, // 000C GETMET R2 R2 K4
- 0x5C100200, // 000D MOVE R4 R1
- 0x7C080400, // 000E CALL R2 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_occupancy),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X208),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_occupancy),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0405, // 0026 LDINT R6 1030
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -328,6 +93,401 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute, /* name
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_occupancy),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_shadow),
+ /* K1 */ be_nested_str_weak(VIRTUAL),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(cmd),
+ /* K6 */ be_nested_str_weak(Status_X2010),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(StatusSNS),
+ /* K9 */ be_nested_str_weak(contains),
+ /* K10 */ be_nested_str_weak(ON),
+ /* K11 */ be_nested_str_weak(shadow_occupancy),
+ /* K12 */ be_nested_str_weak(attribute_updated),
+ /* K13 */ be_const_int(0),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[43]) { /* code */
+ 0x60040003, // 0000 GETGBL R1 G3
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x8C040300, // 0003 GETMET R1 R1 K0
+ 0x7C040200, // 0004 CALL R1 1
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x74060022, // 0006 JMPT R1 #002A
+ 0x60040008, // 0007 GETGBL R1 G8
+ 0x88080103, // 0008 GETMBR R2 R0 K3
+ 0x7C040200, // 0009 CALL R1 1
+ 0x00060401, // 000A ADD R1 K2 R1
+ 0xB80A0800, // 000B GETNGBL R2 K4
+ 0x8C080505, // 000C GETMET R2 R2 K5
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x50140200, // 000E LDBOOL R5 1 0
+ 0x7C080600, // 000F CALL R2 3
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x200C0403, // 0011 NE R3 R2 R3
+ 0x780E0003, // 0012 JMPF R3 #0017
+ 0x8C0C0507, // 0013 GETMET R3 R2 K7
+ 0x58140008, // 0014 LDCONST R5 K8
+ 0x7C0C0400, // 0015 CALL R3 2
+ 0x5C080600, // 0016 MOVE R2 R3
+ 0x4C0C0000, // 0017 LDNIL R3
+ 0x200C0403, // 0018 NE R3 R2 R3
+ 0x780E000F, // 0019 JMPF R3 #002A
+ 0x8C0C0509, // 001A GETMET R3 R2 K9
+ 0x5C140200, // 001B MOVE R5 R1
+ 0x7C0C0400, // 001C CALL R3 2
+ 0x780E000B, // 001D JMPF R3 #002A
+ 0x8C0C0507, // 001E GETMET R3 R2 K7
+ 0x5C140200, // 001F MOVE R5 R1
+ 0x7C0C0400, // 0020 CALL R3 2
+ 0x1C0C070A, // 0021 EQ R3 R3 K10
+ 0x8810010B, // 0022 GETMBR R4 R0 K11
+ 0x20100803, // 0023 NE R4 R4 R3
+ 0x78120003, // 0024 JMPF R4 #0029
+ 0x8C10010C, // 0025 GETMET R4 R0 K12
+ 0x541A0405, // 0026 LDINT R6 1030
+ 0x581C000D, // 0027 LDCONST R7 K13
+ 0x7C100600, // 0028 CALL R4 3
+ 0x90021603, // 0029 SETMBR R0 K11 R3
+ 0x80000000, // 002A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(val_onoff),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Occupancy),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220405, // 0005 LDINT R8 1030
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(Switch),
+ /* K2 */ be_nested_str_weak(tasmota_switch_index),
+ /* K3 */ be_nested_str_weak(ON),
+ /* K4 */ be_nested_str_weak(shadow_occupancy),
+ /* K5 */ be_nested_str_weak(attribute_updated),
+ /* K6 */ be_const_int(0),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0017, // 0002 JMPF R3 #001B
+ 0x500C0000, // 0003 LDBOOL R3 0 0
+ 0x8C100300, // 0004 GETMET R4 R1 K0
+ 0x60180008, // 0005 GETGBL R6 G8
+ 0x881C0102, // 0006 GETMBR R7 R0 K2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x001A0206, // 0008 ADD R6 K1 R6
+ 0x7C100400, // 0009 CALL R4 2
+ 0x1C100903, // 000A EQ R4 R4 K3
+ 0x5C0C0800, // 000B MOVE R3 R4
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x4C140000, // 000D LDNIL R5
+ 0x20100805, // 000E NE R4 R4 R5
+ 0x78120009, // 000F JMPF R4 #001A
+ 0x88100104, // 0010 GETMBR R4 R0 K4
+ 0x60140017, // 0011 GETGBL R5 G23
+ 0x5C180600, // 0012 MOVE R6 R3
+ 0x7C140200, // 0013 CALL R5 1
+ 0x20100805, // 0014 NE R4 R4 R5
+ 0x78120003, // 0015 JMPF R4 #001A
+ 0x8C100105, // 0016 GETMET R4 R0 K5
+ 0x541A0405, // 0017 LDINT R6 1030
+ 0x581C0006, // 0018 LDCONST R7 K6
+ 0x7C100600, // 0019 CALL R4 3
+ 0x90020803, // 001A SETMBR R0 K4 R3
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Occupancy_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_occupancy),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Occupancy
********************************************************************/
@@ -335,18 +495,31 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Sensor_Occupancy,
2,
&be_class_Matter_Plugin_Device,
- be_nested_map(16,
+ be_nested_map(19,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 2), be_const_static_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_init_closure) },
- { be_const_key_weak(tasmota_switch_index, 9), be_const_var(0) },
- { be_const_key_weak(update_shadow, 14), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Occupancy) },
- { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(263, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(shadow_occupancy, -1), be_const_var(1) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(1,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Occupancy),
+ })) ) } )) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(750) },
- { be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Occupancy) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_closure) },
+ { be_const_key_weak(parse_configuration, 4), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration_closure) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow_closure) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual_closure) },
+ { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_parse_status_closure) },
+ { be_const_key_weak(ARG_HINT, 18), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
+ { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -432,20 +605,10 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(read_attribute, 4), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(263, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(1,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(Occupancy),
- })) ) } )) },
- { be_const_key_weak(TYPE, 6), be_nested_str_weak(occupancy) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration_closure) },
- { be_const_key_weak(shadow_occupancy, -1), be_const_var(1) },
+ { be_const_key_weak(tasmota_switch_index, 7), be_const_var(0) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(occupancy) },
+ { be_const_key_weak(ARG_TYPE, 2), be_const_static_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_init_closure) },
})),
be_str_weak(Matter_Plugin_Sensor_Occupancy)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h
index 8934ec9f9..1d82ec3fa 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h
@@ -54,7 +54,7 @@ be_local_closure(class_Matter_Plugin_Sensor_OnOff_update_shadow, /* name */
/* K3 */ be_nested_str_weak(tasmota_switch_index),
/* K4 */ be_nested_str_weak(tasmota),
/* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X208),
+ /* K6 */ be_nested_str_weak(Status_X2010),
/* K7 */ be_nested_str_weak(find),
/* K8 */ be_nested_str_weak(StatusSNS),
/* K9 */ be_nested_str_weak(contains),
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
index a69548646..2973b20d5 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
@@ -7,26 +7,56 @@
extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
/********************************************************************
-** Solidified function:
+** Solidified function: read_attribute
********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E, /* name */
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute, /* name */
be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(set),
+ /* K6 */ be_nested_str_weak(BOOL),
+ /* K7 */ be_nested_str_weak(shadow_leak),
+ /* K8 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
+ ( &(const binstruction[23]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0044, // 0004 LDINT R7 69
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0006, // 0006 JMPF R7 #000E
+ 0x1C1C0D04, // 0007 EQ R7 R6 K4
+ 0x781E0004, // 0008 JMPF R7 #000E
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x88280107, // 000B GETMBR R10 R0 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x601C0003, // 000E GETGBL R7 G3
+ 0x5C200000, // 000F MOVE R8 R0
+ 0x7C1C0200, // 0010 CALL R7 1
+ 0x8C1C0F08, // 0011 GETMET R7 R7 K8
+ 0x5C240200, // 0012 MOVE R9 R1
+ 0x5C280400, // 0013 MOVE R10 R2
+ 0x5C2C0600, // 0014 MOVE R11 R3
+ 0x7C1C0800, // 0015 CALL R7 4
+ 0x80040E00, // 0016 RET 1 R7
})
)
);
@@ -71,6 +101,61 @@ be_local_closure(class_Matter_Plugin_Sensor_Waterleak_init, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_shadow
********************************************************************/
@@ -92,7 +177,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow, /* name *
/* K3 */ be_nested_str_weak(tasmota_switch_index),
/* K4 */ be_nested_str_weak(tasmota),
/* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X208),
+ /* K6 */ be_nested_str_weak(Status_X2010),
/* K7 */ be_nested_str_weak(find),
/* K8 */ be_nested_str_weak(StatusSNS),
/* K9 */ be_nested_str_weak(contains),
@@ -153,116 +238,6 @@ be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow, /* name *
/*******************************************************************/
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_leak),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0044, // 0004 LDINT R7 69
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0010, // 0006 JMPF R7 #0018
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000E, // 0008 JMPF R7 #0018
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x601C0003, // 0018 GETGBL R7 G3
- 0x5C200000, // 0019 MOVE R8 R0
- 0x7C1C0200, // 001A CALL R7 1
- 0x8C1C0F09, // 001B GETMET R7 R7 K9
- 0x5C240200, // 001C MOVE R9 R1
- 0x5C280400, // 001D MOVE R10 R2
- 0x5C2C0600, // 001E MOVE R11 R3
- 0x7C1C0800, // 001F CALL R7 4
- 0x80040E00, // 0020 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: update_virtual
********************************************************************/
@@ -319,6 +294,180 @@ be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual, /* name
/*******************************************************************/
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(Switch),
+ /* K2 */ be_nested_str_weak(tasmota_switch_index),
+ /* K3 */ be_nested_str_weak(ON),
+ /* K4 */ be_nested_str_weak(shadow_leak),
+ /* K5 */ be_nested_str_weak(attribute_updated),
+ /* K6 */ be_const_int(0),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0017, // 0002 JMPF R3 #001B
+ 0x500C0000, // 0003 LDBOOL R3 0 0
+ 0x8C100300, // 0004 GETMET R4 R1 K0
+ 0x60180008, // 0005 GETGBL R6 G8
+ 0x881C0102, // 0006 GETMBR R7 R0 K2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x001A0206, // 0008 ADD R6 K1 R6
+ 0x7C100400, // 0009 CALL R4 2
+ 0x1C100903, // 000A EQ R4 R4 K3
+ 0x5C0C0800, // 000B MOVE R3 R4
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x4C140000, // 000D LDNIL R5
+ 0x20100805, // 000E NE R4 R4 R5
+ 0x78120009, // 000F JMPF R4 #001A
+ 0x88100104, // 0010 GETMBR R4 R0 K4
+ 0x60140017, // 0011 GETGBL R5 G23
+ 0x5C180600, // 0012 MOVE R6 R3
+ 0x7C140200, // 0013 CALL R5 1
+ 0x20100805, // 0014 NE R4 R4 R5
+ 0x78120003, // 0015 JMPF R4 #001A
+ 0x8C100105, // 0016 GETMET R4 R0 K5
+ 0x541A0044, // 0017 LDINT R6 69
+ 0x581C0006, // 0018 LDCONST R7 K6
+ 0x7C100600, // 0019 CALL R4 3
+ 0x90020803, // 001A SETMBR R0 K4 R3
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Waterleak_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_leak),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Waterleak
********************************************************************/
@@ -326,18 +475,31 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Sensor_Waterleak,
2,
&be_class_Matter_Plugin_Device,
- be_nested_map(16,
+ be_nested_map(19,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 2), be_const_static_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(67, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(tasmota_switch_index, 7), be_const_var(0) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(1,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Waterleak),
+ })) ) } )) },
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_init_closure) },
- { be_const_key_weak(shadow_leak, 15), be_const_var(1) },
- { be_const_key_weak(update_shadow, 4), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Waterleak) },
- { be_const_key_weak(ARG, 11), be_nested_str_weak(switch) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(750) },
- { be_const_key_weak(CLUSTERS, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(shadow_leak, 6), be_const_var(1) },
+ { be_const_key_weak(web_values, 18), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_closure) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration_closure) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow_closure) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual_closure) },
+ { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_parse_status_closure) },
+ { be_const_key_weak(ARG_HINT, 4), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
+ { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -421,20 +583,10 @@ be_local_class(Matter_Plugin_Sensor_Waterleak,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(tasmota_switch_index, 9), be_const_var(0) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(1,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(Waterleak),
- })) ) } )) },
- { be_const_key_weak(read_attribute, 14), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute_closure) },
- { be_const_key_weak(TYPE, 6), be_nested_str_weak(waterleak) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(67, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration_closure) },
+ { be_const_key_weak(UPDATE_TIME, 2), be_const_int(750) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(waterleak) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Waterleak) },
})),
be_str_weak(Matter_Plugin_Sensor_Waterleak)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Light0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Light0.h
deleted file mode 100644
index fb95b30e9..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Light0.h
+++ /dev/null
@@ -1,574 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Light0.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-
-/********************************************************************
-** Solidified function: set_onoff
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_set_onoff, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(call_remote_sync),
- /* K1 */ be_nested_str_weak(Power),
- /* K2 */ be_nested_str_weak(tasmota_relay_index),
- /* K3 */ be_nested_str_weak(1),
- /* K4 */ be_nested_str_weak(0),
- /* K5 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(set_onoff),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x60100008, // 0001 GETGBL R4 G8
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x7C100200, // 0003 CALL R4 1
- 0x00120204, // 0004 ADD R4 K1 R4
- 0x78060001, // 0005 JMPF R1 #0008
- 0x58140003, // 0006 LDCONST R5 K3
- 0x70020000, // 0007 JMP #0009
- 0x58140004, // 0008 LDCONST R5 K4
- 0x7C080600, // 0009 CALL R2 3
- 0x4C0C0000, // 000A LDNIL R3
- 0x200C0403, // 000B NE R3 R2 R3
- 0x780E0003, // 000C JMPF R3 #0011
- 0x8C0C0105, // 000D GETMET R3 R0 K5
- 0x5C140400, // 000E MOVE R5 R2
- 0x541A000A, // 000F LDINT R6 11
- 0x7C0C0600, // 0010 CALL R3 3
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_onoff),
- /* K2 */ be_nested_str_weak(tasmota_relay_index),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(ARG),
- /* K5 */ be_const_int(1),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x60100009, // 000A GETGBL R4 G9
- 0x8C140703, // 000B GETMET R5 R3 K3
- 0x881C0104, // 000C GETMBR R7 R0 K4
- 0x58200005, // 000D LDCONST R8 K5
- 0x7C140600, // 000E CALL R5 3
- 0x7C100200, // 000F CALL R4 1
- 0x90020404, // 0010 SETMBR R0 K2 R4
- 0x88100102, // 0011 GETMBR R4 R0 K2
- 0x18100906, // 0012 LE R4 R4 K6
- 0x78120000, // 0013 JMPF R4 #0015
- 0x90020505, // 0014 SETMBR R0 K2 K5
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(shadow_onoff),
- /* K9 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0005, // 0004 LDINT R7 6
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0008, // 0006 JMPF R7 #0010
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E0004, // 000A JMPF R7 #0010
- 0x8C1C0706, // 000B GETMET R7 R3 K6
- 0x88240907, // 000C GETMBR R9 R4 K7
- 0x88280108, // 000D GETMBR R10 R0 K8
- 0x7C1C0600, // 000E CALL R7 3
- 0x80040E00, // 000F RET 1 R7
- 0x601C0003, // 0010 GETGBL R7 G3
- 0x5C200000, // 0011 MOVE R8 R0
- 0x7C1C0200, // 0012 CALL R7 1
- 0x8C1C0F09, // 0013 GETMET R7 R7 K9
- 0x5C240200, // 0014 MOVE R9 R1
- 0x5C280400, // 0015 MOVE R10 R2
- 0x5C2C0600, // 0016 MOVE R11 R3
- 0x7C1C0800, // 0017 CALL R7 4
- 0x80040E00, // 0018 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Bridge_Light0__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_parse_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_relay_index),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(POWER),
- /* K4 */ be_nested_str_weak(find),
- /* K5 */ be_nested_str_weak(ON),
- /* K6 */ be_nested_str_weak(shadow_onoff),
- /* K7 */ be_nested_str_weak(attribute_updated),
- /* K8 */ be_const_int(0),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
- 0x540E000A, // 0000 LDINT R3 11
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0024, // 0002 JMPF R3 #0028
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x1C100901, // 0005 EQ R4 R4 K1
- 0x78120009, // 0006 JMPF R4 #0011
- 0x8C100302, // 0007 GETMET R4 R1 K2
- 0x58180003, // 0008 LDCONST R6 K3
- 0x7C100400, // 0009 CALL R4 2
- 0x78120005, // 000A JMPF R4 #0011
- 0x8C100304, // 000B GETMET R4 R1 K4
- 0x58180003, // 000C LDCONST R6 K3
- 0x7C100400, // 000D CALL R4 2
- 0x1C100905, // 000E EQ R4 R4 K5
- 0x5C0C0800, // 000F MOVE R3 R4
- 0x70020007, // 0010 JMP #0019
- 0x8C100304, // 0011 GETMET R4 R1 K4
- 0x60180008, // 0012 GETGBL R6 G8
- 0x881C0100, // 0013 GETMBR R7 R0 K0
- 0x7C180200, // 0014 CALL R6 1
- 0x001A0606, // 0015 ADD R6 K3 R6
- 0x7C100400, // 0016 CALL R4 2
- 0x1C100905, // 0017 EQ R4 R4 K5
- 0x5C0C0800, // 0018 MOVE R3 R4
- 0x88100106, // 0019 GETMBR R4 R0 K6
- 0x4C140000, // 001A LDNIL R5
- 0x20100805, // 001B NE R4 R4 R5
- 0x78120009, // 001C JMPF R4 #0027
- 0x88100106, // 001D GETMBR R4 R0 K6
- 0x60140017, // 001E GETGBL R5 G23
- 0x5C180600, // 001F MOVE R6 R3
- 0x7C140200, // 0020 CALL R5 1
- 0x20100805, // 0021 NE R4 R4 R5
- 0x78120003, // 0022 JMPF R4 #0027
- 0x8C100107, // 0023 GETMET R4 R0 K7
- 0x541A0005, // 0024 LDINT R6 6
- 0x581C0008, // 0025 LDCONST R7 K8
- 0x7C100600, // 0026 CALL R4 3
- 0x90020C03, // 0027 SETMBR R0 K6 R3
- 0x80000000, // 0028 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_invoke_request, /* name */
- be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(command),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(set_onoff),
- /* K6 */ be_nested_str_weak(publish_command),
- /* K7 */ be_nested_str_weak(Power),
- /* K8 */ be_const_int(1),
- /* K9 */ be_const_int(2),
- /* K10 */ be_nested_str_weak(shadow_onoff),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140702, // 0002 GETMBR R5 R3 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x541E0005, // 0004 LDINT R7 6
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0029, // 0006 JMPF R7 #0031
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0009, // 0008 JMPF R7 #0013
- 0x8C1C0105, // 0009 GETMET R7 R0 K5
- 0x50240000, // 000A LDBOOL R9 0 0
- 0x7C1C0400, // 000B CALL R7 2
- 0x8C1C0106, // 000C GETMET R7 R0 K6
- 0x58240007, // 000D LDCONST R9 K7
- 0x58280004, // 000E LDCONST R10 K4
- 0x7C1C0600, // 000F CALL R7 3
- 0x501C0200, // 0010 LDBOOL R7 1 0
- 0x80040E00, // 0011 RET 1 R7
- 0x7002001D, // 0012 JMP #0031
- 0x1C1C0D08, // 0013 EQ R7 R6 K8
- 0x781E0009, // 0014 JMPF R7 #001F
- 0x8C1C0105, // 0015 GETMET R7 R0 K5
- 0x50240200, // 0016 LDBOOL R9 1 0
- 0x7C1C0400, // 0017 CALL R7 2
- 0x8C1C0106, // 0018 GETMET R7 R0 K6
- 0x58240007, // 0019 LDCONST R9 K7
- 0x58280008, // 001A LDCONST R10 K8
- 0x7C1C0600, // 001B CALL R7 3
- 0x501C0200, // 001C LDBOOL R7 1 0
- 0x80040E00, // 001D RET 1 R7
- 0x70020011, // 001E JMP #0031
- 0x1C1C0D09, // 001F EQ R7 R6 K9
- 0x781E000F, // 0020 JMPF R7 #0031
- 0x8C1C0105, // 0021 GETMET R7 R0 K5
- 0x8824010A, // 0022 GETMBR R9 R0 K10
- 0x78260000, // 0023 JMPF R9 #0025
- 0x50240001, // 0024 LDBOOL R9 0 1
- 0x50240200, // 0025 LDBOOL R9 1 0
- 0x7C1C0400, // 0026 CALL R7 2
- 0x8C1C0106, // 0027 GETMET R7 R0 K6
- 0x58240007, // 0028 LDCONST R9 K7
- 0x8828010A, // 0029 GETMBR R10 R0 K10
- 0x782A0001, // 002A JMPF R10 #002D
- 0x58280008, // 002B LDCONST R10 K8
- 0x70020000, // 002C JMP #002E
- 0x58280004, // 002D LDCONST R10 K4
- 0x7C1C0600, // 002E CALL R7 3
- 0x501C0200, // 002F LDBOOL R7 1 0
- 0x80040E00, // 0030 RET 1 R7
- 0x80000000, // 0031 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_web_values, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X25s),
- /* K4 */ be_nested_str_weak(web_value_onoff),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x8C180104, // 0006 GETMET R6 R0 K4
- 0x88200105, // 0007 GETMBR R8 R0 K5
- 0x7C180400, // 0008 CALL R6 2
- 0x7C100400, // 0009 CALL R4 2
- 0x7C080400, // 000A CALL R2 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_closure(class_Matter_Plugin_Bridge_Light0_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light0,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(Power),
- /* K3 */ be_nested_str_weak(tasmota_relay_index),
- /* K4 */ be_nested_str_weak(content_send),
- /* K5 */ be_nested_str_weak(PREFIX),
- /* K6 */ be_nested_str_weak(html_escape),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x600C0008, // 0005 GETGBL R3 G8
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x000E0403, // 0008 ADD R3 K2 R3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x8C0C0304, // 000A GETMET R3 R1 K4
- 0x60140018, // 000B GETGBL R5 G24
- 0x88180105, // 000C GETMBR R6 R0 K5
- 0x780A0003, // 000D JMPF R2 #0012
- 0x8C1C0306, // 000E GETMET R7 R1 K6
- 0x5C240400, // 000F MOVE R9 R2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020000, // 0011 JMP #0013
- 0x581C0007, // 0012 LDCONST R7 K7
- 0x7C140400, // 0013 CALL R5 2
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Light0
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Light0,
- 2,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(shadow_onoff, 5), be_const_var(1) },
- { be_const_key_weak(tasmota_relay_index, 4), be_const_var(0) },
- { be_const_key_weak(set_onoff, -1), be_const_closure(class_Matter_Plugin_Bridge_Light0_set_onoff_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Light0_init_closure) },
- { be_const_key_weak(web_values_prefix, 9), be_const_closure(class_Matter_Plugin_Bridge_Light0_web_values_prefix_closure) },
- { be_const_key_weak(web_values, 15), be_const_closure(class_Matter_Plugin_Bridge_Light0_web_values_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light0) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_Plugin_Bridge_Light0_parse_update_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Power_X3Cx_X3E_X20number) },
- { be_const_key_weak(read_attribute, 12), be_const_closure(class_Matter_Plugin_Bridge_Light0_read_attribute_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Bridge_Light0_invoke_request_closure) },
- { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Light_X200_X20On) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(256, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Bridge_Light0__X3Clambda_X3E_closure) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Light0)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h
deleted file mode 100644
index 3263e3908..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Sensor.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_parse_configuration, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_sensor_filter),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(tasmota_sensor_matcher),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(Rule_Matcher),
- /* K6 */ be_nested_str_weak(parse),
- /* K7 */ be_nested_str_weak(temp_unit),
- /* K8 */ be_nested_str_weak(TEMP_C),
- /* K9 */ be_nested_str_weak(pressure_unit),
- /* K10 */ be_nested_str_weak(PRESSURE_HPA),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x8C080301, // 0000 GETMET R2 R1 K1
- 0x88100102, // 0001 GETMBR R4 R0 K2
- 0x7C080400, // 0002 CALL R2 2
- 0x90020002, // 0003 SETMBR R0 K0 R2
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x780A0005, // 0005 JMPF R2 #000C
- 0xB80A0800, // 0006 GETNGBL R2 K4
- 0x88080505, // 0007 GETMBR R2 R2 K5
- 0x8C080506, // 0008 GETMET R2 R2 K6
- 0x88100100, // 0009 GETMBR R4 R0 K0
- 0x7C080400, // 000A CALL R2 2
- 0x90020602, // 000B SETMBR R0 K3 R2
- 0x88080108, // 000C GETMBR R2 R0 K8
- 0x90020E02, // 000D SETMBR R0 K7 R2
- 0x8808010A, // 000E GETMBR R2 R0 K10
- 0x90021202, // 000F SETMBR R0 K9 R2
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_value_changed, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(filter_name_html),
- /* K3 */ be_nested_str_weak(content_send),
- /* K4 */ be_nested_str_weak(PREFIX),
- /* K5 */ be_nested_str_weak(html_escape),
- /* K6 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0002, // 0004 JMPT R3 #0008
- 0x8C0C0102, // 0005 GETMET R3 R0 K2
- 0x7C0C0200, // 0006 CALL R3 1
- 0x5C080600, // 0007 MOVE R2 R3
- 0x8C0C0303, // 0008 GETMET R3 R1 K3
- 0x60140018, // 0009 GETGBL R5 G24
- 0x88180104, // 000A GETMBR R6 R0 K4
- 0x780A0003, // 000B JMPF R2 #0010
- 0x8C1C0305, // 000C GETMET R7 R1 K5
- 0x5C240400, // 000D MOVE R9 R2
- 0x7C1C0400, // 000E CALL R7 2
- 0x70020000, // 000F JMP #0011
- 0x581C0006, // 0010 LDCONST R7 K6
- 0x7C140400, // 0011 CALL R5 2
- 0x7C0C0400, // 0012 CALL R3 2
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_parse_update, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(contains),
- /* K1 */ be_nested_str_weak(TempUnit),
- /* K2 */ be_nested_str_weak(temp_unit),
- /* K3 */ be_nested_str_weak(PressureUnit),
- /* K4 */ be_nested_str_weak(pressure_unit),
- /* K5 */ be_nested_str_weak(tasmota_sensor_matcher),
- /* K6 */ be_nested_str_weak(pre_value),
- /* K7 */ be_nested_str_weak(match),
- /* K8 */ be_nested_str_weak(shadow_value),
- /* K9 */ be_nested_str_weak(value_changed),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x540E0007, // 0000 LDINT R3 8
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E001E, // 0002 JMPF R3 #0022
- 0x8C0C0300, // 0003 GETMET R3 R1 K0
- 0x58140001, // 0004 LDCONST R5 K1
- 0x7C0C0400, // 0005 CALL R3 2
- 0x780E0001, // 0006 JMPF R3 #0009
- 0x940C0301, // 0007 GETIDX R3 R1 K1
- 0x90020403, // 0008 SETMBR R0 K2 R3
- 0x8C0C0300, // 0009 GETMET R3 R1 K0
- 0x58140003, // 000A LDCONST R5 K3
- 0x7C0C0400, // 000B CALL R3 2
- 0x780E0001, // 000C JMPF R3 #000F
- 0x940C0303, // 000D GETIDX R3 R1 K3
- 0x90020803, // 000E SETMBR R0 K4 R3
- 0x880C0105, // 000F GETMBR R3 R0 K5
- 0x780E0010, // 0010 JMPF R3 #0022
- 0x8C0C0106, // 0011 GETMET R3 R0 K6
- 0x6014000A, // 0012 GETGBL R5 G10
- 0x88180105, // 0013 GETMBR R6 R0 K5
- 0x8C180D07, // 0014 GETMET R6 R6 K7
- 0x5C200200, // 0015 MOVE R8 R1
- 0x7C180400, // 0016 CALL R6 2
- 0x7C140200, // 0017 CALL R5 1
- 0x7C0C0400, // 0018 CALL R3 2
- 0x4C100000, // 0019 LDNIL R4
- 0x20100604, // 001A NE R4 R3 R4
- 0x78120005, // 001B JMPF R4 #0022
- 0x88100108, // 001C GETMBR R4 R0 K8
- 0x20100604, // 001D NE R4 R3 R4
- 0x78120002, // 001E JMPF R4 #0022
- 0x8C100109, // 001F GETMET R4 R0 K9
- 0x7C100200, // 0020 CALL R4 1
- 0x90021003, // 0021 SETMBR R0 K8 R3
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: filter_name_html
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_filter_name_html, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_sensor_filter),
- /* K1 */ be_nested_str_weak(string),
- /* K2 */ be_nested_str_weak(webserver),
- /* K3 */ be_nested_str_weak(html_escape),
- /* K4 */ be_nested_str_weak(split),
- /* K5 */ be_nested_str_weak(_X23),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(filter_name_html),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060009, // 0001 JMPF R1 #000C
- 0xA4060200, // 0002 IMPORT R1 K1
- 0xA40A0400, // 0003 IMPORT R2 K2
- 0x8C0C0503, // 0004 GETMET R3 R2 K3
- 0x8C140304, // 0005 GETMET R5 R1 K4
- 0x881C0100, // 0006 GETMBR R7 R0 K0
- 0x58200005, // 0007 LDCONST R8 K5
- 0x7C140600, // 0008 CALL R5 3
- 0x94140B06, // 0009 GETIDX R5 R5 K6
- 0x7C0C0400, // 000A CALL R3 2
- 0x80040600, // 000B RET 1 R3
- 0x80060E00, // 000C RET 1 K7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_pre_value, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80040200, // 0000 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Sensor,
- 5,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(22,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(tasmota_sensor_filter, -1), be_const_var(0) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Filter_X20pattern) },
- { be_const_key_weak(shadow_value, -1), be_const_var(2) },
- { be_const_key_weak(pre_value, 10), be_const_closure(class_Matter_Plugin_Bridge_Sensor_pre_value_closure) },
- { be_const_key_weak(ARG_HTTP, -1), be_nested_str_weak(url) },
- { be_const_key_weak(pressure_unit, -1), be_const_var(4) },
- { be_const_key_weak(tasmota_sensor_matcher, -1), be_const_var(1) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(filter) },
- { be_const_key_weak(PRESSURE_MMHG, -1), be_nested_str_weak(mmHg) },
- { be_const_key_weak(value_changed, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_value_changed_closure) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_parse_update_closure) },
- { be_const_key_weak(TEMP_C, -1), be_nested_str_weak(C) },
- { be_const_key_weak(temp_unit, 4), be_const_var(3) },
- { be_const_key_weak(PRESSURE_INHG, -1), be_nested_str_weak(inHg) },
- { be_const_key_weak(PRESSURE_HPA, 18), be_nested_str_weak(hPa) },
- { be_const_key_weak(PROBE_TIMEOUT, 16), be_const_int(1700) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_web_values_prefix_closure) },
- { be_const_key_weak(UPDATE_CMD, 13), be_nested_str_weak(Status_X208) },
- { be_const_key_weak(TEMP_F, -1), be_nested_str_weak(F) },
- { be_const_key_weak(filter_name_html, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_filter_name_html_closure) },
- { be_const_key_weak(UPDATE_TIME, 3), be_const_int(5000) },
- { be_const_key_weak(parse_configuration, 2), be_const_closure(class_Matter_Plugin_Bridge_Sensor_parse_configuration_closure) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
deleted file mode 100644
index fa6b7f956..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Air_Quality.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Sensor_Air_Quality.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Air_Quality'
-extern bclosure *class_Matter_Plugin_Sensor_Air_Quality_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(content_send),
- /* K2 */ be_nested_str_weak(_X25s_X20_X25i_X20),
- }),
- be_str_weak(web_values_single),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0007, // 0002 JMPF R2 #000B
- 0xA40A0000, // 0003 IMPORT R2 K0
- 0x8C0C0501, // 0004 GETMET R3 R2 K1
- 0x60140018, // 0005 GETGBL R5 G24
- 0x58180002, // 0006 LDCONST R6 K2
- 0x5C1C0000, // 0007 MOVE R7 R0
- 0x5C200200, // 0008 MOVE R8 R1
- 0x7C140600, // 0009 CALL R5 3
- 0x7C0C0400, // 000A CALL R3 2
- 0x80000000, // 000B RET 0
- })
- ),
- &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
- }),
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(web_values_prefix),
- /* K1 */ be_nested_str_weak(Air),
- /* K2 */ be_nested_str_weak(shadow_air_quality),
- /* K3 */ be_nested_str_weak(PM1),
- /* K4 */ be_nested_str_weak(shadow_pm1),
- /* K5 */ be_nested_str_weak(PM2_X2E5),
- /* K6 */ be_nested_str_weak(shadow_pm2_5),
- /* K7 */ be_nested_str_weak(PM10),
- /* K8 */ be_nested_str_weak(shadow_pm10),
- /* K9 */ be_nested_str_weak(CO2),
- /* K10 */ be_nested_str_weak(shadow_co2),
- /* K11 */ be_nested_str_weak(NO2),
- /* K12 */ be_nested_str_weak(shadow_no2),
- /* K13 */ be_nested_str_weak(TVOC),
- /* K14 */ be_nested_str_weak(shadow_tvoc),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x84040000, // 0000 CLOSURE R1 P0
- 0x8C080100, // 0001 GETMET R2 R0 K0
- 0x7C080200, // 0002 CALL R2 1
- 0x5C080200, // 0003 MOVE R2 R1
- 0x580C0001, // 0004 LDCONST R3 K1
- 0x88100102, // 0005 GETMBR R4 R0 K2
- 0x7C080400, // 0006 CALL R2 2
- 0x5C080200, // 0007 MOVE R2 R1
- 0x580C0003, // 0008 LDCONST R3 K3
- 0x88100104, // 0009 GETMBR R4 R0 K4
- 0x7C080400, // 000A CALL R2 2
- 0x5C080200, // 000B MOVE R2 R1
- 0x580C0005, // 000C LDCONST R3 K5
- 0x88100106, // 000D GETMBR R4 R0 K6
- 0x7C080400, // 000E CALL R2 2
- 0x5C080200, // 000F MOVE R2 R1
- 0x580C0007, // 0010 LDCONST R3 K7
- 0x88100108, // 0011 GETMBR R4 R0 K8
- 0x7C080400, // 0012 CALL R2 2
- 0x5C080200, // 0013 MOVE R2 R1
- 0x580C0009, // 0014 LDCONST R3 K9
- 0x8810010A, // 0015 GETMBR R4 R0 K10
- 0x7C080400, // 0016 CALL R2 2
- 0x5C080200, // 0017 MOVE R2 R1
- 0x580C000B, // 0018 LDCONST R3 K11
- 0x8810010C, // 0019 GETMBR R4 R0 K12
- 0x7C080400, // 001A CALL R2 2
- 0x5C080200, // 001B MOVE R2 R1
- 0x580C000D, // 001C LDCONST R3 K13
- 0x8810010E, // 001D GETMBR R4 R0 K14
- 0x7C080400, // 001E CALL R2 2
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(prefix),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(ARG),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x60100008, // 0008 GETGBL R4 G8
- 0x8C140702, // 0009 GETMET R5 R3 K2
- 0x881C0103, // 000A GETMBR R7 R0 K3
- 0x7C140400, // 000B CALL R5 2
- 0x7C100200, // 000C CALL R4 1
- 0x90020204, // 000D SETMBR R0 K1 R4
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_update, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(prefix),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x540E0007, // 0000 LDINT R3 8
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0002, // 0002 JMPF R3 #0006
- 0x8C0C0300, // 0003 GETMET R3 R1 K0
- 0x88140101, // 0004 GETMBR R5 R0 K1
- 0x7C0C0400, // 0005 CALL R3 2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Air_Quality
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Sensor_Air_Quality,
- 8,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(20,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X208) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Air_X20Quality) },
- { be_const_key_weak(shadow_tvoc, 8), be_const_var(7) },
- { be_const_key_weak(shadow_pm10, 7), be_const_var(4) },
- { be_const_key_weak(shadow_pm2_5, -1), be_const_var(3) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Sensor_X20Model) },
- { be_const_key_weak(shadow_co2, -1), be_const_var(5) },
- { be_const_key_weak(parse_update, 18), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_update_closure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute_closure) },
- { be_const_key_weak(prefix, 13), be_const_var(0) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(44, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values_closure) },
- { be_const_key_weak(shadow_pm1, 11), be_const_var(2) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_airquality) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(12,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(1068, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1069, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1070, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1037, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(91, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1066, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1043, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(8),
- be_const_int(9),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_init_closure) },
- { be_const_key_weak(UPDATE_TIME, 3), be_const_int(5000) },
- { be_const_key_weak(shadow_no2, 4), be_const_var(6) },
- { be_const_key_weak(shadow_air_quality, -1), be_const_var(1) },
- { be_const_key_weak(ARG, 0), be_nested_str_weak(airquality) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Air_Quality)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h
deleted file mode 100644
index 5f27166aa..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Contact.h
+++ /dev/null
@@ -1,431 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Sensor_Contact.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(tasmota_switch_index),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(ARG),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x60100009, // 0008 GETGBL R4 G9
- 0x8C140702, // 0009 GETMET R5 R3 K2
- 0x881C0103, // 000A GETMBR R7 R0 K3
- 0x58200004, // 000B LDCONST R8 K4
- 0x7C140600, // 000C CALL R5 3
- 0x7C100200, // 000D CALL R4 1
- 0x90020204, // 000E SETMBR R0 K1 R4
- 0x88100101, // 000F GETMBR R4 R0 K1
- 0x18100905, // 0010 LE R4 R4 K5
- 0x78120000, // 0011 JMPF R4 #0013
- 0x90020304, // 0012 SETMBR R0 K1 K4
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(content_send),
- /* K5 */ be_nested_str_weak(PREFIX),
- /* K6 */ be_nested_str_weak(html_escape),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x600C0008, // 0005 GETGBL R3 G8
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x000E0403, // 0008 ADD R3 K2 R3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x8C0C0304, // 000A GETMET R3 R1 K4
- 0x60140018, // 000B GETGBL R5 G24
- 0x88180105, // 000C GETMBR R6 R0 K5
- 0x780A0003, // 000D JMPF R2 #0012
- 0x8C1C0306, // 000E GETMET R7 R1 K6
- 0x5C240400, // 000F MOVE R9 R2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020000, // 0011 JMP #0013
- 0x581C0007, // 0012 LDCONST R7 K7
- 0x7C140400, // 0013 CALL R5 2
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact_parse_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_contact),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0007, // 0000 LDINT R3 8
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0044, // 0017 LDINT R6 69
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_contact),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0044, // 0004 LDINT R7 69
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0010, // 0006 JMPF R7 #0018
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000E, // 0008 JMPF R7 #0018
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x601C0003, // 0018 GETGBL R7 G3
- 0x5C200000, // 0019 MOVE R8 R0
- 0x7C1C0200, // 001A CALL R7 1
- 0x8C1C0F09, // 001B GETMET R7 R7 K9
- 0x5C240200, // 001C MOVE R9 R1
- 0x5C280400, // 001D MOVE R10 R2
- 0x5C2C0600, // 001E MOVE R11 R3
- 0x7C1C0800, // 001F CALL R7 4
- 0x80040E00, // 0020 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Contact_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Contact_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_contact),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Contact
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Sensor_Contact,
- 2,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 5), be_const_static_closure(class_Matter_Plugin_Bridge_Sensor_Contact__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, 4), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(shadow_contact, -1), be_const_var(1) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Contact_init_closure) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Contact_web_values_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Contact) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
- { be_const_key_weak(parse_update, 11), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Contact_parse_update_closure) },
- { be_const_key_weak(read_attribute, 12), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Contact_read_attribute_closure) },
- { be_const_key_weak(CLUSTERS, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(69, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(TYPES, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(21, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(TYPE, 6), be_nested_str_weak(http_contact) },
- { be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
- { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X208) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Contact)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h
deleted file mode 100644
index d4ff1c804..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Occupancy.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Sensor_Occupancy.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(tasmota_switch_index),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(ARG),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x60100009, // 0008 GETGBL R4 G9
- 0x8C140702, // 0009 GETMET R5 R3 K2
- 0x881C0103, // 000A GETMBR R7 R0 K3
- 0x58200004, // 000B LDCONST R8 K4
- 0x7C140600, // 000C CALL R5 3
- 0x7C100200, // 000D CALL R4 1
- 0x90020204, // 000E SETMBR R0 K1 R4
- 0x88100101, // 000F GETMBR R4 R0 K1
- 0x18100905, // 0010 LE R4 R4 K5
- 0x78120000, // 0011 JMPF R4 #0013
- 0x90020304, // 0012 SETMBR R0 K1 K4
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_parse_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_occupancy),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0007, // 0000 LDINT R3 8
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0405, // 0017 LDINT R6 1030
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(content_send),
- /* K5 */ be_nested_str_weak(PREFIX),
- /* K6 */ be_nested_str_weak(html_escape),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x600C0008, // 0005 GETGBL R3 G8
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x000E0403, // 0008 ADD R3 K2 R3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x8C0C0304, // 000A GETMET R3 R1 K4
- 0x60140018, // 000B GETGBL R5 G24
- 0x88180105, // 000C GETMBR R6 R0 K5
- 0x780A0003, // 000D JMPF R2 #0012
- 0x8C1C0306, // 000E GETMET R7 R1 K6
- 0x5C240400, // 000F MOVE R9 R2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020000, // 0011 JMP #0013
- 0x581C0007, // 0012 LDCONST R7 K7
- 0x7C140400, // 0013 CALL R5 2
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_occupancy),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U1),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
- /* K10 */ be_const_int(3),
- /* K11 */ be_const_int(2),
- /* K12 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[49]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0405, // 0004 LDINT R7 1030
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0020, // 0006 JMPF R7 #0028
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000F, // 0008 JMPF R7 #0019
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x7002000E, // 0018 JMP #0028
- 0x1C1C0D09, // 0019 EQ R7 R6 K9
- 0x781E0005, // 001A JMPF R7 #0021
- 0x8C1C0706, // 001B GETMET R7 R3 K6
- 0x88240907, // 001C GETMBR R9 R4 K7
- 0x5828000A, // 001D LDCONST R10 K10
- 0x7C1C0600, // 001E CALL R7 3
- 0x80040E00, // 001F RET 1 R7
- 0x70020006, // 0020 JMP #0028
- 0x1C1C0D0B, // 0021 EQ R7 R6 K11
- 0x781E0004, // 0022 JMPF R7 #0028
- 0x8C1C0706, // 0023 GETMET R7 R3 K6
- 0x88240907, // 0024 GETMBR R9 R4 K7
- 0x58280004, // 0025 LDCONST R10 K4
- 0x7C1C0600, // 0026 CALL R7 3
- 0x80040E00, // 0027 RET 1 R7
- 0x601C0003, // 0028 GETGBL R7 G3
- 0x5C200000, // 0029 MOVE R8 R0
- 0x7C1C0200, // 002A CALL R7 1
- 0x8C1C0F0C, // 002B GETMET R7 R7 K12
- 0x5C240200, // 002C MOVE R9 R1
- 0x5C280400, // 002D MOVE R10 R2
- 0x5C2C0600, // 002E MOVE R11 R3
- 0x7C1C0800, // 002F CALL R7 4
- 0x80040E00, // 0030 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Occupancy_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_occupancy),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Occupancy
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
- 2,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 4), be_const_static_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, 12), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(shadow_occupancy, -1), be_const_var(1) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_init_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_web_values_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Occupancy) },
- { be_const_key_weak(TYPES, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(263, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
- { be_const_key_weak(parse_update, 14), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_parse_update_closure) },
- { be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1030, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(tasmota_switch_index, 6), be_const_var(0) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute_closure) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix_closure) },
- { be_const_key_weak(TYPE, 5), be_nested_str_weak(http_occupancy) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(UPDATE_CMD, 2), be_nested_str_weak(Status_X208) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Occupancy)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h
deleted file mode 100644
index 48d9a153b..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Bridge_Sensor_Waterleak.h
+++ /dev/null
@@ -1,431 +0,0 @@
-/* Solidification of Matter_Plugin_3_Bridge_Sensor_Waterleak.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(content_send),
- /* K5 */ be_nested_str_weak(PREFIX),
- /* K6 */ be_nested_str_weak(html_escape),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x600C0008, // 0005 GETGBL R3 G8
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x000E0403, // 0008 ADD R3 K2 R3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x8C0C0304, // 000A GETMET R3 R1 K4
- 0x60140018, // 000B GETGBL R5 G24
- 0x88180105, // 000C GETMBR R6 R0 K5
- 0x780A0003, // 000D JMPF R2 #0012
- 0x8C1C0306, // 000E GETMET R7 R1 K6
- 0x5C240400, // 000F MOVE R9 R2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020000, // 0011 JMP #0013
- 0x581C0007, // 0012 LDCONST R7 K7
- 0x7C140400, // 0013 CALL R5 2
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(tasmota_switch_index),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(ARG),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x60100009, // 0008 GETGBL R4 G9
- 0x8C140702, // 0009 GETMET R5 R3 K2
- 0x881C0103, // 000A GETMBR R7 R0 K3
- 0x58200004, // 000B LDCONST R8 K4
- 0x7C140600, // 000C CALL R5 3
- 0x7C100200, // 000D CALL R4 1
- 0x90020204, // 000E SETMBR R0 K1 R4
- 0x88100101, // 000F GETMBR R4 R0 K1
- 0x18100905, // 0010 LE R4 R4 K5
- 0x78120000, // 0011 JMPF R4 #0013
- 0x90020304, // 0012 SETMBR R0 K1 K4
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Waterleak_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_Waterleak),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_parse_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_Waterleak),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0007, // 0000 LDINT R3 8
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0044, // 0017 LDINT R6 69
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_Waterleak),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0044, // 0004 LDINT R7 69
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0010, // 0006 JMPF R7 #0018
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000E, // 0008 JMPF R7 #0018
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x601C0003, // 0018 GETGBL R7 G3
- 0x5C200000, // 0019 MOVE R8 R0
- 0x7C1C0200, // 001A CALL R7 1
- 0x8C1C0F09, // 001B GETMET R7 R7 K9
- 0x5C240200, // 001C MOVE R9 R1
- 0x5C280400, // 001D MOVE R10 R2
- 0x5C2C0600, // 001E MOVE R11 R3
- 0x7C1C0800, // 001F CALL R7 4
- 0x80040E00, // 0020 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Waterleak
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
-be_local_class(Matter_Plugin_Bridge_Sensor_Waterleak,
- 2,
- &be_class_Matter_Plugin_Bridge_HTTP,
- be_nested_map(16,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ARG_TYPE, 4), be_const_static_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak__X3Clambda_X3E_closure) },
- { be_const_key_weak(ARG_HINT, 2), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_web_values_prefix_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_init_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_web_values_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Waterleak) },
- { be_const_key_weak(TYPES, 9), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(67, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
- { be_const_key_weak(parse_update, 12), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_parse_update_closure) },
- { be_const_key_weak(CLUSTERS, 11), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(69, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(tasmota_switch_index, 6), be_const_var(0) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Waterleak_read_attribute_closure) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(TYPE, 5), be_nested_str_weak(http_waterleak) },
- { be_const_key_weak(shadow_Waterleak, -1), be_const_var(1) },
- { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X208) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Waterleak)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
index c69dec160..c6db3cd7e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
@@ -7,40 +7,81 @@
extern const bclass be_class_Matter_Plugin_Light2;
/********************************************************************
-** Solidified function: init
+** Solidified function: set_ct
********************************************************************/
extern const bclass be_class_Matter_Plugin_Light2;
-be_local_closure(class_Matter_Plugin_Light2_init, /* name */
+be_local_closure(class_Matter_Plugin_Light2_set_ct, /* name */
be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
+ 7, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin_Light2,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_ct),
- /* K2 */ be_nested_str_weak(update_ct_minmax),
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(ct_min),
+ /* K1 */ be_nested_str_weak(ct_max),
+ /* K2 */ be_nested_str_weak(BRIDGE),
+ /* K3 */ be_nested_str_weak(call_remote_sync),
+ /* K4 */ be_nested_str_weak(CT),
+ /* K5 */ be_nested_str_weak(parse_status),
+ /* K6 */ be_nested_str_weak(VIRTUAL),
+ /* K7 */ be_nested_str_weak(shadow_ct),
+ /* K8 */ be_nested_str_weak(attribute_updated),
+ /* K9 */ be_nested_str_weak(light),
+ /* K10 */ be_nested_str_weak(set),
+ /* K11 */ be_nested_str_weak(ct),
+ /* K12 */ be_nested_str_weak(update_shadow),
}),
- be_str_weak(init),
+ be_str_weak(set_ct),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x54120144, // 0008 LDINT R4 325
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x8C100102, // 000A GETMET R4 R0 K2
- 0x7C100200, // 000B CALL R4 1
- 0x80000000, // 000C RET 0
+ ( &(const binstruction[44]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x14080202, // 0001 LT R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x88040100, // 0003 GETMBR R1 R0 K0
+ 0x88080101, // 0004 GETMBR R2 R0 K1
+ 0x24080202, // 0005 GT R2 R1 R2
+ 0x780A0000, // 0006 JMPF R2 #0008
+ 0x88040101, // 0007 GETMBR R1 R0 K1
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x780A000D, // 0009 JMPF R2 #0018
+ 0x8C080103, // 000A GETMET R2 R0 K3
+ 0x58100004, // 000B LDCONST R4 K4
+ 0x60140008, // 000C GETGBL R5 G8
+ 0x5C180200, // 000D MOVE R6 R1
+ 0x7C140200, // 000E CALL R5 1
+ 0x7C080600, // 000F CALL R2 3
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x200C0403, // 0011 NE R3 R2 R3
+ 0x780E0003, // 0012 JMPF R3 #0017
+ 0x8C0C0105, // 0013 GETMET R3 R0 K5
+ 0x5C140400, // 0014 MOVE R5 R2
+ 0x541A000A, // 0015 LDINT R6 11
+ 0x7C0C0600, // 0016 CALL R3 3
+ 0x70020012, // 0017 JMP #002B
+ 0x88080106, // 0018 GETMBR R2 R0 K6
+ 0x780A0008, // 0019 JMPF R2 #0023
+ 0x88080107, // 001A GETMBR R2 R0 K7
+ 0x20080202, // 001B NE R2 R1 R2
+ 0x780A0004, // 001C JMPF R2 #0022
+ 0x8C080108, // 001D GETMET R2 R0 K8
+ 0x541202FF, // 001E LDINT R4 768
+ 0x54160006, // 001F LDINT R5 7
+ 0x7C080600, // 0020 CALL R2 3
+ 0x90020E01, // 0021 SETMBR R0 K7 R1
+ 0x70020007, // 0022 JMP #002B
+ 0xA40A1200, // 0023 IMPORT R2 K9
+ 0x8C0C050A, // 0024 GETMET R3 R2 K10
+ 0x60140013, // 0025 GETGBL R5 G19
+ 0x7C140000, // 0026 CALL R5 0
+ 0x98161601, // 0027 SETIDX R5 K11 R1
+ 0x7C0C0400, // 0028 CALL R3 2
+ 0x8C0C010C, // 0029 GETMET R3 R0 K12
+ 0x7C0C0200, // 002A CALL R3 1
+ 0x80000000, // 002B RET 0
})
)
);
@@ -53,7 +94,7 @@ be_local_closure(class_Matter_Plugin_Light2_init, /* name */
extern const bclass be_class_Matter_Plugin_Light2;
be_local_closure(class_Matter_Plugin_Light2_invoke_request, /* name */
be_nested_proto(
- 13, /* nstack */
+ 12, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
@@ -61,265 +102,92 @@ be_local_closure(class_Matter_Plugin_Light2_invoke_request, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light2,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(light),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(TLV),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(command),
- /* K5 */ be_nested_str_weak(update_shadow_lazy),
- /* K6 */ be_nested_str_weak(findsubval),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(set_ct),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(ct_X3A),
- /* K11 */ be_nested_str_weak(publish_command),
- /* K12 */ be_nested_str_weak(CT),
- /* K13 */ be_nested_str_weak(invoke_request),
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(command),
+ /* K4 */ be_nested_str_weak(update_shadow_lazy),
+ /* K5 */ be_nested_str_weak(findsubval),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(ct_min),
+ /* K8 */ be_nested_str_weak(ct_max),
+ /* K9 */ be_nested_str_weak(set_ct),
+ /* K10 */ be_nested_str_weak(log),
+ /* K11 */ be_nested_str_weak(ct_X3A),
+ /* K12 */ be_nested_str_weak(publish_command),
+ /* K13 */ be_nested_str_weak(CT),
+ /* K14 */ be_nested_str_weak(invoke_request),
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[59]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0xB8160200, // 0001 GETNGBL R5 K1
- 0x88140B02, // 0002 GETMBR R5 R5 K2
+ ( &(const binstruction[66]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140702, // 0002 GETMBR R5 R3 K2
0x88180703, // 0003 GETMBR R6 R3 K3
- 0x881C0704, // 0004 GETMBR R7 R3 K4
- 0x542202FF, // 0005 LDINT R8 768
- 0x1C200C08, // 0006 EQ R8 R6 R8
- 0x78220028, // 0007 JMPF R8 #0031
- 0x8C200105, // 0008 GETMET R8 R0 K5
- 0x7C200200, // 0009 CALL R8 1
- 0x54220009, // 000A LDINT R8 10
- 0x1C200E08, // 000B EQ R8 R7 R8
- 0x78220011, // 000C JMPF R8 #001F
- 0x8C200506, // 000D GETMET R8 R2 K6
- 0x58280007, // 000E LDCONST R10 K7
- 0x7C200400, // 000F CALL R8 2
- 0x8C240108, // 0010 GETMET R9 R0 K8
- 0x5C2C1000, // 0011 MOVE R11 R8
- 0x7C240400, // 0012 CALL R9 2
- 0x60240008, // 0013 GETGBL R9 G8
- 0x5C281000, // 0014 MOVE R10 R8
- 0x7C240200, // 0015 CALL R9 1
- 0x00261409, // 0016 ADD R9 K10 R9
- 0x900E1209, // 0017 SETMBR R3 K9 R9
- 0x8C24010B, // 0018 GETMET R9 R0 K11
- 0x582C000C, // 0019 LDCONST R11 K12
- 0x5C301000, // 001A MOVE R12 R8
- 0x7C240600, // 001B CALL R9 3
- 0x50240200, // 001C LDBOOL R9 1 0
- 0x80041200, // 001D RET 1 R9
- 0x70020010, // 001E JMP #0030
- 0x54220046, // 001F LDINT R8 71
- 0x1C200E08, // 0020 EQ R8 R7 R8
- 0x78220002, // 0021 JMPF R8 #0025
- 0x50200200, // 0022 LDBOOL R8 1 0
- 0x80041000, // 0023 RET 1 R8
- 0x7002000A, // 0024 JMP #0030
- 0x5422004A, // 0025 LDINT R8 75
- 0x1C200E08, // 0026 EQ R8 R7 R8
- 0x78220002, // 0027 JMPF R8 #002B
- 0x50200200, // 0028 LDBOOL R8 1 0
- 0x80041000, // 0029 RET 1 R8
- 0x70020004, // 002A JMP #0030
- 0x5422004B, // 002B LDINT R8 76
- 0x1C200E08, // 002C EQ R8 R7 R8
- 0x78220001, // 002D JMPF R8 #0030
- 0x50200200, // 002E LDBOOL R8 1 0
- 0x80041000, // 002F RET 1 R8
- 0x70020008, // 0030 JMP #003A
- 0x60200003, // 0031 GETGBL R8 G3
- 0x5C240000, // 0032 MOVE R9 R0
- 0x7C200200, // 0033 CALL R8 1
- 0x8C20110D, // 0034 GETMET R8 R8 K13
- 0x5C280200, // 0035 MOVE R10 R1
- 0x5C2C0400, // 0036 MOVE R11 R2
- 0x5C300600, // 0037 MOVE R12 R3
- 0x7C200800, // 0038 CALL R8 4
- 0x80041000, // 0039 RET 1 R8
- 0x80000000, // 003A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light2;
-be_local_closure(class_Matter_Plugin_Light2_update_shadow, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(VIRTUAL),
- /* K1 */ be_nested_str_weak(light),
- /* K2 */ be_nested_str_weak(update_ct_minmax),
- /* K3 */ be_nested_str_weak(update_shadow),
- /* K4 */ be_nested_str_weak(get),
- /* K5 */ be_nested_str_weak(find),
- /* K6 */ be_nested_str_weak(ct),
- /* K7 */ be_nested_str_weak(shadow_ct),
- /* K8 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[38]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x7406001D, // 0001 JMPT R1 #0020
- 0xA4060200, // 0002 IMPORT R1 K1
- 0x8C080102, // 0003 GETMET R2 R0 K2
- 0x7C080200, // 0004 CALL R2 1
- 0x60080003, // 0005 GETGBL R2 G3
- 0x5C0C0000, // 0006 MOVE R3 R0
- 0x7C080200, // 0007 CALL R2 1
- 0x8C080503, // 0008 GETMET R2 R2 K3
- 0x7C080200, // 0009 CALL R2 1
- 0x8C080304, // 000A GETMET R2 R1 K4
- 0x7C080200, // 000B CALL R2 1
- 0x4C0C0000, // 000C LDNIL R3
- 0x200C0403, // 000D NE R3 R2 R3
- 0x780E000F, // 000E JMPF R3 #001F
- 0x8C0C0505, // 000F GETMET R3 R2 K5
- 0x58140006, // 0010 LDCONST R5 K6
- 0x4C180000, // 0011 LDNIL R6
- 0x7C0C0600, // 0012 CALL R3 3
- 0x4C100000, // 0013 LDNIL R4
- 0x1C100604, // 0014 EQ R4 R3 R4
- 0x78120000, // 0015 JMPF R4 #0017
- 0x880C0107, // 0016 GETMBR R3 R0 K7
- 0x88100107, // 0017 GETMBR R4 R0 K7
- 0x20100604, // 0018 NE R4 R3 R4
- 0x78120004, // 0019 JMPF R4 #001F
- 0x8C100108, // 001A GETMET R4 R0 K8
- 0x541A02FF, // 001B LDINT R6 768
- 0x541E0006, // 001C LDINT R7 7
- 0x7C100600, // 001D CALL R4 3
- 0x90020E03, // 001E SETMBR R0 K7 R3
- 0x70020004, // 001F JMP #0025
- 0x60040003, // 0020 GETGBL R1 G3
- 0x5C080000, // 0021 MOVE R2 R0
- 0x7C040200, // 0022 CALL R1 1
- 0x8C040303, // 0023 GETMET R1 R1 K3
- 0x7C040200, // 0024 CALL R1 1
- 0x80000000, // 0025 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light2;
-be_local_closure(class_Matter_Plugin_Light2_update_virtual, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(CT),
- /* K2 */ be_nested_str_weak(set_ct),
- /* K3 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0300, // 0001 GETMET R3 R1 K0
- 0x58140001, // 0002 LDCONST R5 K1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x7C080200, // 0004 CALL R2 1
- 0x4C0C0000, // 0005 LDNIL R3
- 0x200C0403, // 0006 NE R3 R2 R3
- 0x780E0002, // 0007 JMPF R3 #000B
- 0x8C0C0102, // 0008 GETMET R3 R0 K2
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x600C0003, // 000B GETGBL R3 G3
- 0x5C100000, // 000C MOVE R4 R0
- 0x7C0C0200, // 000D CALL R3 1
- 0x8C0C0703, // 000E GETMET R3 R3 K3
- 0x5C140200, // 000F MOVE R5 R1
- 0x7C0C0400, // 0010 CALL R3 2
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_ct
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light2;
-be_local_closure(class_Matter_Plugin_Light2_set_ct, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(ct_min),
- /* K1 */ be_nested_str_weak(ct_max),
- /* K2 */ be_nested_str_weak(VIRTUAL),
- /* K3 */ be_nested_str_weak(light),
- /* K4 */ be_nested_str_weak(set),
- /* K5 */ be_nested_str_weak(ct),
- /* K6 */ be_nested_str_weak(update_shadow),
- /* K7 */ be_nested_str_weak(shadow_ct),
- /* K8 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(set_ct),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x14080202, // 0001 LT R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x88040100, // 0003 GETMBR R1 R0 K0
- 0x88080101, // 0004 GETMBR R2 R0 K1
- 0x24080202, // 0005 GT R2 R1 R2
- 0x780A0000, // 0006 JMPF R2 #0008
- 0x88040101, // 0007 GETMBR R1 R0 K1
- 0x88080102, // 0008 GETMBR R2 R0 K2
- 0x740A0008, // 0009 JMPT R2 #0013
- 0xA40A0600, // 000A IMPORT R2 K3
- 0x8C0C0504, // 000B GETMET R3 R2 K4
- 0x60140013, // 000C GETGBL R5 G19
- 0x7C140000, // 000D CALL R5 0
- 0x98160A01, // 000E SETIDX R5 K5 R1
- 0x7C0C0400, // 000F CALL R3 2
- 0x8C0C0106, // 0010 GETMET R3 R0 K6
- 0x7C0C0200, // 0011 CALL R3 1
- 0x70020007, // 0012 JMP #001B
- 0x88080107, // 0013 GETMBR R2 R0 K7
- 0x20080202, // 0014 NE R2 R1 R2
- 0x780A0004, // 0015 JMPF R2 #001B
- 0x8C080108, // 0016 GETMET R2 R0 K8
- 0x541202FF, // 0017 LDINT R4 768
- 0x54160006, // 0018 LDINT R5 7
- 0x7C080600, // 0019 CALL R2 3
- 0x90020E01, // 001A SETMBR R0 K7 R1
- 0x80000000, // 001B RET 0
+ 0x541E02FF, // 0004 LDINT R7 768
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0030, // 0006 JMPF R7 #0038
+ 0x8C1C0104, // 0007 GETMET R7 R0 K4
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x541E0009, // 0009 LDINT R7 10
+ 0x1C1C0C07, // 000A EQ R7 R6 R7
+ 0x781E0019, // 000B JMPF R7 #0026
+ 0x8C1C0505, // 000C GETMET R7 R2 K5
+ 0x58240006, // 000D LDCONST R9 K6
+ 0x7C1C0400, // 000E CALL R7 2
+ 0x88200107, // 000F GETMBR R8 R0 K7
+ 0x14200E08, // 0010 LT R8 R7 R8
+ 0x78220000, // 0011 JMPF R8 #0013
+ 0x881C0107, // 0012 GETMBR R7 R0 K7
+ 0x88200108, // 0013 GETMBR R8 R0 K8
+ 0x24200E08, // 0014 GT R8 R7 R8
+ 0x78220000, // 0015 JMPF R8 #0017
+ 0x881C0108, // 0016 GETMBR R7 R0 K8
+ 0x8C200109, // 0017 GETMET R8 R0 K9
+ 0x5C280E00, // 0018 MOVE R10 R7
+ 0x7C200400, // 0019 CALL R8 2
+ 0x60200008, // 001A GETGBL R8 G8
+ 0x5C240E00, // 001B MOVE R9 R7
+ 0x7C200200, // 001C CALL R8 1
+ 0x00221608, // 001D ADD R8 K11 R8
+ 0x900E1408, // 001E SETMBR R3 K10 R8
+ 0x8C20010C, // 001F GETMET R8 R0 K12
+ 0x5828000D, // 0020 LDCONST R10 K13
+ 0x5C2C0E00, // 0021 MOVE R11 R7
+ 0x7C200600, // 0022 CALL R8 3
+ 0x50200200, // 0023 LDBOOL R8 1 0
+ 0x80041000, // 0024 RET 1 R8
+ 0x70020010, // 0025 JMP #0037
+ 0x541E0046, // 0026 LDINT R7 71
+ 0x1C1C0C07, // 0027 EQ R7 R6 R7
+ 0x781E0002, // 0028 JMPF R7 #002C
+ 0x501C0200, // 0029 LDBOOL R7 1 0
+ 0x80040E00, // 002A RET 1 R7
+ 0x7002000A, // 002B JMP #0037
+ 0x541E004A, // 002C LDINT R7 75
+ 0x1C1C0C07, // 002D EQ R7 R6 R7
+ 0x781E0002, // 002E JMPF R7 #0032
+ 0x501C0200, // 002F LDBOOL R7 1 0
+ 0x80040E00, // 0030 RET 1 R7
+ 0x70020004, // 0031 JMP #0037
+ 0x541E004B, // 0032 LDINT R7 76
+ 0x1C1C0C07, // 0033 EQ R7 R6 R7
+ 0x781E0001, // 0034 JMPF R7 #0037
+ 0x501C0200, // 0035 LDBOOL R7 1 0
+ 0x80040E00, // 0036 RET 1 R7
+ 0x70020008, // 0037 JMP #0041
+ 0x601C0003, // 0038 GETGBL R7 G3
+ 0x5C200000, // 0039 MOVE R8 R0
+ 0x7C1C0200, // 003A CALL R7 1
+ 0x8C1C0F0E, // 003B GETMET R7 R7 K14
+ 0x5C240200, // 003C MOVE R9 R1
+ 0x5C280400, // 003D MOVE R10 R2
+ 0x5C2C0600, // 003E MOVE R11 R3
+ 0x7C1C0800, // 003F CALL R7 4
+ 0x80040E00, // 0040 RET 1 R7
+ 0x80000000, // 0041 RET 0
})
)
);
@@ -437,6 +305,53 @@ be_local_closure(class_Matter_Plugin_Light2_read_attribute, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_update_virtual, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(CT),
+ /* K2 */ be_nested_str_weak(set_ct),
+ /* K3 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0300, // 0001 GETMET R3 R1 K0
+ 0x58140001, // 0002 LDCONST R5 K1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x7C080200, // 0004 CALL R2 1
+ 0x4C0C0000, // 0005 LDNIL R3
+ 0x200C0403, // 0006 NE R3 R2 R3
+ 0x780E0002, // 0007 JMPF R3 #000B
+ 0x8C0C0102, // 0008 GETMET R3 R0 K2
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x600C0003, // 000B GETGBL R3 G3
+ 0x5C100000, // 000C MOVE R4 R0
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x8C0C0703, // 000E GETMET R3 R3 K3
+ 0x5C140200, // 000F MOVE R5 R1
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_ct_minmax
********************************************************************/
@@ -481,6 +396,291 @@ be_local_closure(class_Matter_Plugin_Light2_update_ct_minmax, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(shadow_ct),
+ /* K3 */ be_nested_str_weak(update_ct_minmax),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x88100101, // 0008 GETMBR R4 R0 K1
+ 0x74120001, // 0009 JMPT R4 #000C
+ 0x54120144, // 000A LDINT R4 325
+ 0x90020404, // 000B SETMBR R0 K2 R4
+ 0x8C100103, // 000C GETMET R4 R0 K3
+ 0x7C100200, // 000D CALL R4 1
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
+ /* K4 */ be_nested_str_weak(web_value_onoff),
+ /* K5 */ be_nested_str_weak(shadow_onoff),
+ /* K6 */ be_nested_str_weak(web_value_dimmer),
+ /* K7 */ be_nested_str_weak(web_value_ct),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x8C180104, // 0006 GETMET R6 R0 K4
+ 0x88200105, // 0007 GETMBR R8 R0 K5
+ 0x7C180400, // 0008 CALL R6 2
+ 0x8C1C0106, // 0009 GETMET R7 R0 K6
+ 0x7C1C0200, // 000A CALL R7 1
+ 0x8C200107, // 000B GETMET R8 R0 K7
+ 0x7C200200, // 000C CALL R8 1
+ 0x7C100800, // 000D CALL R4 4
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(CT),
+ /* K3 */ be_nested_str_weak(shadow_ct),
+ /* K4 */ be_nested_str_weak(ct_min),
+ /* K5 */ be_nested_str_weak(ct_max),
+ /* K6 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0700, // 0003 GETMET R3 R3 K0
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x540E000A, // 0007 LDINT R3 11
+ 0x1C0C0403, // 0008 EQ R3 R2 R3
+ 0x780E0017, // 0009 JMPF R3 #0022
+ 0x600C0009, // 000A GETGBL R3 G9
+ 0x8C100301, // 000B GETMET R4 R1 K1
+ 0x58180002, // 000C LDCONST R6 K2
+ 0x7C100400, // 000D CALL R4 2
+ 0x7C0C0200, // 000E CALL R3 1
+ 0x4C100000, // 000F LDNIL R4
+ 0x20100604, // 0010 NE R4 R3 R4
+ 0x7812000F, // 0011 JMPF R4 #0022
+ 0x88100103, // 0012 GETMBR R4 R0 K3
+ 0x20100604, // 0013 NE R4 R3 R4
+ 0x7812000C, // 0014 JMPF R4 #0022
+ 0x88100104, // 0015 GETMBR R4 R0 K4
+ 0x14100604, // 0016 LT R4 R3 R4
+ 0x78120000, // 0017 JMPF R4 #0019
+ 0x880C0104, // 0018 GETMBR R3 R0 K4
+ 0x88100105, // 0019 GETMBR R4 R0 K5
+ 0x24100604, // 001A GT R4 R3 R4
+ 0x78120000, // 001B JMPF R4 #001D
+ 0x880C0105, // 001C GETMBR R3 R0 K5
+ 0x8C100106, // 001D GETMET R4 R0 K6
+ 0x541A02FF, // 001E LDINT R6 768
+ 0x541E0006, // 001F LDINT R7 7
+ 0x7C100600, // 0020 CALL R4 3
+ 0x90020603, // 0021 SETMBR R0 K3 R3
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_value_ct
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_web_value_ct, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(shadow_ct),
+ /* K2 */ be_const_int(1000000),
+ /* K3 */ be_nested_str_weak(_X25iK),
+ /* K4 */ be_nested_str_weak(_X26_X239898_X3B_X20),
+ }),
+ be_str_weak(web_value_ct),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x4C0C0000, // 0002 LDNIL R3
+ 0x20080403, // 0003 NE R2 R2 R3
+ 0x780A000C, // 0004 JMPF R2 #0012
+ 0x88080101, // 0005 GETMBR R2 R0 K1
+ 0x0C0A0402, // 0006 DIV R2 K2 R2
+ 0x540E0018, // 0007 LDINT R3 25
+ 0x00080403, // 0008 ADD R2 R2 R3
+ 0x540E0031, // 0009 LDINT R3 50
+ 0x0C080403, // 000A DIV R2 R2 R3
+ 0x540E0031, // 000B LDINT R3 50
+ 0x08080403, // 000C MUL R2 R2 R3
+ 0x600C0018, // 000D GETGBL R3 G24
+ 0x58100003, // 000E LDCONST R4 K3
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x5C040600, // 0011 MOVE R1 R3
+ 0x000A0801, // 0012 ADD R2 K4 R1
+ 0x80040400, // 0013 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_closure(class_Matter_Plugin_Light2_update_shadow, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light2,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(VIRTUAL),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(light),
+ /* K3 */ be_nested_str_weak(update_ct_minmax),
+ /* K4 */ be_nested_str_weak(update_shadow),
+ /* K5 */ be_nested_str_weak(get),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_nested_str_weak(ct),
+ /* K8 */ be_nested_str_weak(shadow_ct),
+ /* K9 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x7406001F, // 0001 JMPT R1 #0022
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x7406001D, // 0003 JMPT R1 #0022
+ 0xA4060400, // 0004 IMPORT R1 K2
+ 0x8C080103, // 0005 GETMET R2 R0 K3
+ 0x7C080200, // 0006 CALL R2 1
+ 0x60080003, // 0007 GETGBL R2 G3
+ 0x5C0C0000, // 0008 MOVE R3 R0
+ 0x7C080200, // 0009 CALL R2 1
+ 0x8C080504, // 000A GETMET R2 R2 K4
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080305, // 000C GETMET R2 R1 K5
+ 0x7C080200, // 000D CALL R2 1
+ 0x4C0C0000, // 000E LDNIL R3
+ 0x200C0403, // 000F NE R3 R2 R3
+ 0x780E000F, // 0010 JMPF R3 #0021
+ 0x8C0C0506, // 0011 GETMET R3 R2 K6
+ 0x58140007, // 0012 LDCONST R5 K7
+ 0x4C180000, // 0013 LDNIL R6
+ 0x7C0C0600, // 0014 CALL R3 3
+ 0x4C100000, // 0015 LDNIL R4
+ 0x1C100604, // 0016 EQ R4 R3 R4
+ 0x78120000, // 0017 JMPF R4 #0019
+ 0x880C0108, // 0018 GETMBR R3 R0 K8
+ 0x88100108, // 0019 GETMBR R4 R0 K8
+ 0x20100604, // 001A NE R4 R3 R4
+ 0x78120004, // 001B JMPF R4 #0021
+ 0x8C100109, // 001C GETMET R4 R0 K9
+ 0x541A02FF, // 001D LDINT R6 768
+ 0x541E0006, // 001E LDINT R7 7
+ 0x7C100600, // 001F CALL R4 3
+ 0x90021003, // 0020 SETMBR R0 K8 R3
+ 0x70020004, // 0021 JMP #0027
+ 0x60040003, // 0022 GETGBL R1 G3
+ 0x5C080000, // 0023 MOVE R2 R0
+ 0x7C040200, // 0024 CALL R1 1
+ 0x8C040304, // 0025 GETMET R1 R1 K4
+ 0x7C040200, // 0026 CALL R1 1
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Light2
********************************************************************/
@@ -488,29 +688,23 @@ extern const bclass be_class_Matter_Plugin_Light1;
be_local_class(Matter_Plugin_Light2,
3,
&be_class_Matter_Plugin_Light1,
- be_nested_map(15,
+ be_nested_map(18,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light2_init_closure) },
- { be_const_key_weak(shadow_ct, -1), be_const_var(0) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light2_invoke_request_closure) },
- { be_const_key_weak(ct_max, -1), be_const_var(2) },
- { be_const_key_weak(update_shadow, 10), be_const_closure(class_Matter_Plugin_Light2_update_shadow_closure) },
- { be_const_key_weak(update_virtual, 8), be_const_closure(class_Matter_Plugin_Light2_update_virtual_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X202_X20CT) },
- { be_const_key_weak(set_ct, -1), be_const_closure(class_Matter_Plugin_Light2_set_ct_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light2_update_shadow_closure) },
+ { be_const_key_weak(set_ct, 13), be_const_closure(class_Matter_Plugin_Light2_set_ct_closure) },
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(268, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(UPDATE_COMMANDS, 17), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(3,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Power),
be_nested_str_weak(Bri),
be_nested_str_weak(CT),
})) ) } )) },
- { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -624,10 +818,19 @@ be_local_class(Matter_Plugin_Light2,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(update_ct_minmax, -1), be_const_closure(class_Matter_Plugin_Light2_update_ct_minmax_closure) },
- { be_const_key_weak(read_attribute, 11), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
- { be_const_key_weak(ct_min, -1), be_const_var(1) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light2_invoke_request_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
+ { be_const_key_weak(shadow_ct, 0), be_const_var(0) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Light2_update_virtual_closure) },
+ { be_const_key_weak(DISPLAY_NAME, 16), be_nested_str_weak(Light_X202_X20CT) },
+ { be_const_key_weak(web_value_ct, 11), be_const_closure(class_Matter_Plugin_Light2_web_value_ct_closure) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Light2_parse_status_closure) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(light2) },
+ { be_const_key_weak(ct_min, 12), be_const_var(1) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light2_web_values_closure) },
+ { be_const_key_weak(init, 10), be_const_closure(class_Matter_Plugin_Light2_init_closure) },
+ { be_const_key_weak(update_ct_minmax, -1), be_const_closure(class_Matter_Plugin_Light2_update_ct_minmax_closure) },
+ { be_const_key_weak(ct_max, -1), be_const_var(2) },
})),
be_str_weak(Matter_Plugin_Light2)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
index 8df599ab7..254d280dc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
@@ -63,148 +63,6 @@ be_local_closure(class_Matter_Plugin_Light3_update_virtual, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: set_hue_sat
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Light3;
-be_local_closure(class_Matter_Plugin_Light3_set_hue_sat, /* name */
- be_nested_proto(
- 11, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Light3,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(scale_uint),
- /* K4 */ be_nested_str_weak(light),
- /* K5 */ be_nested_str_weak(set),
- /* K6 */ be_nested_str_weak(hue),
- /* K7 */ be_nested_str_weak(sat),
- /* K8 */ be_nested_str_weak(update_shadow),
- /* K9 */ be_nested_str_weak(shadow_hue),
- /* K10 */ be_nested_str_weak(attribute_updated),
- /* K11 */ be_nested_str_weak(shadow_sat),
- /* K12 */ be_const_int(1),
- }),
- be_str_weak(set_hue_sat),
- &be_const_str_solidified,
- ( &(const binstruction[104]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x200C0203, // 0001 NE R3 R1 R3
- 0x780E0006, // 0002 JMPF R3 #000A
- 0x140C0300, // 0003 LT R3 R1 K0
- 0x780E0000, // 0004 JMPF R3 #0006
- 0x58040000, // 0005 LDCONST R1 K0
- 0x540E00FD, // 0006 LDINT R3 254
- 0x240C0203, // 0007 GT R3 R1 R3
- 0x780E0000, // 0008 JMPF R3 #000A
- 0x540600FD, // 0009 LDINT R1 254
- 0x4C0C0000, // 000A LDNIL R3
- 0x200C0403, // 000B NE R3 R2 R3
- 0x780E0006, // 000C JMPF R3 #0014
- 0x140C0500, // 000D LT R3 R2 K0
- 0x780E0000, // 000E JMPF R3 #0010
- 0x58080000, // 000F LDCONST R2 K0
- 0x540E00FD, // 0010 LDINT R3 254
- 0x240C0403, // 0011 GT R3 R2 R3
- 0x780E0000, // 0012 JMPF R3 #0014
- 0x540A00FD, // 0013 LDINT R2 254
- 0x880C0101, // 0014 GETMBR R3 R0 K1
- 0x740E003A, // 0015 JMPT R3 #0051
- 0x4C0C0000, // 0016 LDNIL R3
- 0x200C0203, // 0017 NE R3 R1 R3
- 0x780E0008, // 0018 JMPF R3 #0022
- 0xB80E0400, // 0019 GETNGBL R3 K2
- 0x8C0C0703, // 001A GETMET R3 R3 K3
- 0x5C140200, // 001B MOVE R5 R1
- 0x58180000, // 001C LDCONST R6 K0
- 0x541E00FD, // 001D LDINT R7 254
- 0x58200000, // 001E LDCONST R8 K0
- 0x54260167, // 001F LDINT R9 360
- 0x7C0C0C00, // 0020 CALL R3 6
- 0x70020000, // 0021 JMP #0023
- 0x4C0C0000, // 0022 LDNIL R3
- 0x4C100000, // 0023 LDNIL R4
- 0x20100404, // 0024 NE R4 R2 R4
- 0x78120008, // 0025 JMPF R4 #002F
- 0xB8120400, // 0026 GETNGBL R4 K2
- 0x8C100903, // 0027 GETMET R4 R4 K3
- 0x5C180400, // 0028 MOVE R6 R2
- 0x581C0000, // 0029 LDCONST R7 K0
- 0x542200FD, // 002A LDINT R8 254
- 0x58240000, // 002B LDCONST R9 K0
- 0x542A00FE, // 002C LDINT R10 255
- 0x7C100C00, // 002D CALL R4 6
- 0x70020000, // 002E JMP #0030
- 0x4C100000, // 002F LDNIL R4
- 0x4C140000, // 0030 LDNIL R5
- 0x20140605, // 0031 NE R5 R3 R5
- 0x7816000A, // 0032 JMPF R5 #003E
- 0x4C140000, // 0033 LDNIL R5
- 0x20140805, // 0034 NE R5 R4 R5
- 0x78160007, // 0035 JMPF R5 #003E
- 0xB8160800, // 0036 GETNGBL R5 K4
- 0x8C140B05, // 0037 GETMET R5 R5 K5
- 0x601C0013, // 0038 GETGBL R7 G19
- 0x7C1C0000, // 0039 CALL R7 0
- 0x981E0C03, // 003A SETIDX R7 K6 R3
- 0x981E0E04, // 003B SETIDX R7 K7 R4
- 0x7C140400, // 003C CALL R5 2
- 0x7002000F, // 003D JMP #004E
- 0x4C140000, // 003E LDNIL R5
- 0x20140605, // 003F NE R5 R3 R5
- 0x78160006, // 0040 JMPF R5 #0048
- 0xB8160800, // 0041 GETNGBL R5 K4
- 0x8C140B05, // 0042 GETMET R5 R5 K5
- 0x601C0013, // 0043 GETGBL R7 G19
- 0x7C1C0000, // 0044 CALL R7 0
- 0x981E0C03, // 0045 SETIDX R7 K6 R3
- 0x7C140400, // 0046 CALL R5 2
- 0x70020005, // 0047 JMP #004E
- 0xB8160800, // 0048 GETNGBL R5 K4
- 0x8C140B05, // 0049 GETMET R5 R5 K5
- 0x601C0013, // 004A GETGBL R7 G19
- 0x7C1C0000, // 004B CALL R7 0
- 0x981E0E04, // 004C SETIDX R7 K7 R4
- 0x7C140400, // 004D CALL R5 2
- 0x8C140108, // 004E GETMET R5 R0 K8
- 0x7C140200, // 004F CALL R5 1
- 0x70020015, // 0050 JMP #0067
- 0x4C0C0000, // 0051 LDNIL R3
- 0x200C0203, // 0052 NE R3 R1 R3
- 0x780E0007, // 0053 JMPF R3 #005C
- 0x880C0109, // 0054 GETMBR R3 R0 K9
- 0x200C0203, // 0055 NE R3 R1 R3
- 0x780E0004, // 0056 JMPF R3 #005C
- 0x8C0C010A, // 0057 GETMET R3 R0 K10
- 0x541602FF, // 0058 LDINT R5 768
- 0x58180000, // 0059 LDCONST R6 K0
- 0x7C0C0600, // 005A CALL R3 3
- 0x90021201, // 005B SETMBR R0 K9 R1
- 0x4C0C0000, // 005C LDNIL R3
- 0x200C0403, // 005D NE R3 R2 R3
- 0x780E0007, // 005E JMPF R3 #0067
- 0x880C010B, // 005F GETMBR R3 R0 K11
- 0x200C0403, // 0060 NE R3 R2 R3
- 0x780E0004, // 0061 JMPF R3 #0067
- 0x8C0C010A, // 0062 GETMET R3 R0 K10
- 0x541602FF, // 0063 LDINT R5 768
- 0x5818000C, // 0064 LDCONST R6 K12
- 0x7C0C0600, // 0065 CALL R3 3
- 0x90021602, // 0066 SETMBR R0 K11 R2
- 0x80000000, // 0067 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: invoke_request
********************************************************************/
@@ -426,91 +284,487 @@ be_local_closure(class_Matter_Plugin_Light3_update_shadow, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Light3,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(VIRTUAL),
+ /* K1 */ be_nested_str_weak(BRIDGE),
/* K2 */ be_nested_str_weak(light),
- /* K3 */ be_nested_str_weak(get),
- /* K4 */ be_nested_str_weak(find),
- /* K5 */ be_nested_str_weak(hue),
- /* K6 */ be_nested_str_weak(sat),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(scale_uint),
- /* K9 */ be_const_int(0),
- /* K10 */ be_nested_str_weak(shadow_hue),
- /* K11 */ be_nested_str_weak(shadow_sat),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(update_shadow),
+ /* K4 */ be_nested_str_weak(get),
+ /* K5 */ be_nested_str_weak(find),
+ /* K6 */ be_nested_str_weak(hue),
+ /* K7 */ be_nested_str_weak(sat),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(scale_uint),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(shadow_hue),
+ /* K12 */ be_nested_str_weak(shadow_sat),
+ /* K13 */ be_nested_str_weak(attribute_updated),
+ /* K14 */ be_const_int(1),
}),
be_str_weak(update_shadow),
&be_const_str_solidified,
- ( &(const binstruction[66]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060039, // 0006 JMPT R1 #0041
- 0xA4060400, // 0007 IMPORT R1 K2
- 0x8C080303, // 0008 GETMET R2 R1 K3
+ ( &(const binstruction[74]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x74060041, // 0001 JMPT R1 #0044
+ 0x88040101, // 0002 GETMBR R1 R0 K1
+ 0x7406003F, // 0003 JMPT R1 #0044
+ 0xA4060400, // 0004 IMPORT R1 K2
+ 0x60080003, // 0005 GETGBL R2 G3
+ 0x5C0C0000, // 0006 MOVE R3 R0
+ 0x7C080200, // 0007 CALL R2 1
+ 0x8C080503, // 0008 GETMET R2 R2 K3
0x7C080200, // 0009 CALL R2 1
+ 0x8C080304, // 000A GETMET R2 R1 K4
+ 0x7C080200, // 000B CALL R2 1
+ 0x4C0C0000, // 000C LDNIL R3
+ 0x200C0403, // 000D NE R3 R2 R3
+ 0x780E0033, // 000E JMPF R3 #0043
+ 0x8C0C0505, // 000F GETMET R3 R2 K5
+ 0x58140006, // 0010 LDCONST R5 K6
+ 0x4C180000, // 0011 LDNIL R6
+ 0x7C0C0600, // 0012 CALL R3 3
+ 0x8C100505, // 0013 GETMET R4 R2 K5
+ 0x58180007, // 0014 LDCONST R6 K7
+ 0x4C1C0000, // 0015 LDNIL R7
+ 0x7C100600, // 0016 CALL R4 3
+ 0x4C140000, // 0017 LDNIL R5
+ 0x20140605, // 0018 NE R5 R3 R5
+ 0x78160009, // 0019 JMPF R5 #0024
+ 0xB8161000, // 001A GETNGBL R5 K8
+ 0x8C140B09, // 001B GETMET R5 R5 K9
+ 0x5C1C0600, // 001C MOVE R7 R3
+ 0x5820000A, // 001D LDCONST R8 K10
+ 0x54260167, // 001E LDINT R9 360
+ 0x5828000A, // 001F LDCONST R10 K10
+ 0x542E00FD, // 0020 LDINT R11 254
+ 0x7C140C00, // 0021 CALL R5 6
+ 0x5C0C0A00, // 0022 MOVE R3 R5
+ 0x70020000, // 0023 JMP #0025
+ 0x880C010B, // 0024 GETMBR R3 R0 K11
+ 0x4C140000, // 0025 LDNIL R5
+ 0x20140805, // 0026 NE R5 R4 R5
+ 0x78160009, // 0027 JMPF R5 #0032
+ 0xB8161000, // 0028 GETNGBL R5 K8
+ 0x8C140B09, // 0029 GETMET R5 R5 K9
+ 0x5C1C0800, // 002A MOVE R7 R4
+ 0x5820000A, // 002B LDCONST R8 K10
+ 0x542600FE, // 002C LDINT R9 255
+ 0x5828000A, // 002D LDCONST R10 K10
+ 0x542E00FD, // 002E LDINT R11 254
+ 0x7C140C00, // 002F CALL R5 6
+ 0x5C100A00, // 0030 MOVE R4 R5
+ 0x70020000, // 0031 JMP #0033
+ 0x8810010C, // 0032 GETMBR R4 R0 K12
+ 0x8814010B, // 0033 GETMBR R5 R0 K11
+ 0x20140605, // 0034 NE R5 R3 R5
+ 0x78160004, // 0035 JMPF R5 #003B
+ 0x8C14010D, // 0036 GETMET R5 R0 K13
+ 0x541E02FF, // 0037 LDINT R7 768
+ 0x5820000A, // 0038 LDCONST R8 K10
+ 0x7C140600, // 0039 CALL R5 3
+ 0x90021603, // 003A SETMBR R0 K11 R3
+ 0x8814010C, // 003B GETMBR R5 R0 K12
+ 0x20140805, // 003C NE R5 R4 R5
+ 0x78160004, // 003D JMPF R5 #0043
+ 0x8C14010D, // 003E GETMET R5 R0 K13
+ 0x541E02FF, // 003F LDINT R7 768
+ 0x5820000E, // 0040 LDCONST R8 K14
+ 0x7C140600, // 0041 CALL R5 3
+ 0x90021804, // 0042 SETMBR R0 K12 R4
+ 0x70020004, // 0043 JMP #0049
+ 0x60040003, // 0044 GETGBL R1 G3
+ 0x5C080000, // 0045 MOVE R2 R0
+ 0x7C040200, // 0046 CALL R1 1
+ 0x8C040303, // 0047 GETMET R1 R1 K3
+ 0x7C040200, // 0048 CALL R1 1
+ 0x80000000, // 0049 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_value_RGB
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light3;
+be_local_closure(class_Matter_Plugin_Light3_web_value_RGB, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light3,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_hue),
+ /* K1 */ be_nested_str_weak(shadow_sat),
+ /* K2 */ be_nested_str_weak(light_state),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(set_bri),
+ /* K5 */ be_nested_str_weak(set_huesat),
+ /* K6 */ be_nested_str_weak(tasmota),
+ /* K7 */ be_nested_str_weak(scale_uint),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(_X23_X2502X_X2502X_X2502X),
+ /* K10 */ be_nested_str_weak(r),
+ /* K11 */ be_nested_str_weak(g),
+ /* K12 */ be_nested_str_weak(b),
+ /* K13 */ be_nested_str_weak(_X3Ci_X20class_X3D_X22bxm_X22_X20style_X3D_X22_X2D_X2Dcl_X3A_X25s_X22_X3E_X3C_X2Fi_X3E_X25s),
+ /* K14 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_value_RGB),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060027, // 0003 JMPF R1 #002C
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x20040202, // 0006 NE R1 R1 R2
+ 0x78060023, // 0007 JMPF R1 #002C
+ 0xB8060400, // 0008 GETNGBL R1 K2
+ 0x58080003, // 0009 LDCONST R2 K3
+ 0x7C040200, // 000A CALL R1 1
+ 0x8C080304, // 000B GETMET R2 R1 K4
+ 0x541200FE, // 000C LDINT R4 255
+ 0x7C080400, // 000D CALL R2 2
+ 0x8C080305, // 000E GETMET R2 R1 K5
+ 0xB8120C00, // 000F GETNGBL R4 K6
+ 0x8C100907, // 0010 GETMET R4 R4 K7
+ 0x88180100, // 0011 GETMBR R6 R0 K0
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x542200FD, // 0013 LDINT R8 254
+ 0x58240008, // 0014 LDCONST R9 K8
+ 0x542A0167, // 0015 LDINT R10 360
+ 0x7C100C00, // 0016 CALL R4 6
+ 0xB8160C00, // 0017 GETNGBL R5 K6
+ 0x8C140B07, // 0018 GETMET R5 R5 K7
+ 0x881C0101, // 0019 GETMBR R7 R0 K1
+ 0x58200008, // 001A LDCONST R8 K8
+ 0x542600FD, // 001B LDINT R9 254
+ 0x58280008, // 001C LDCONST R10 K8
+ 0x542E00FE, // 001D LDINT R11 255
+ 0x7C140C00, // 001E CALL R5 6
+ 0x7C080600, // 001F CALL R2 3
+ 0x60080018, // 0020 GETGBL R2 G24
+ 0x580C0009, // 0021 LDCONST R3 K9
+ 0x8810030A, // 0022 GETMBR R4 R1 K10
+ 0x8814030B, // 0023 GETMBR R5 R1 K11
+ 0x8818030C, // 0024 GETMBR R6 R1 K12
+ 0x7C080800, // 0025 CALL R2 4
+ 0x600C0018, // 0026 GETGBL R3 G24
+ 0x5810000D, // 0027 LDCONST R4 K13
+ 0x5C140400, // 0028 MOVE R5 R2
+ 0x5C180400, // 0029 MOVE R6 R2
+ 0x7C0C0600, // 002A CALL R3 3
+ 0x80040600, // 002B RET 1 R3
+ 0x80061C00, // 002C RET 1 K14
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_hue_sat
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light3;
+be_local_closure(class_Matter_Plugin_Light3_set_hue_sat, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light3,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(BRIDGE),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(scale_uint),
+ /* K4 */ be_nested_str_weak(call_remote_sync),
+ /* K5 */ be_nested_str_weak(HSBColor1),
+ /* K6 */ be_nested_str_weak(parse_status),
+ /* K7 */ be_nested_str_weak(HSBColor2),
+ /* K8 */ be_nested_str_weak(VIRTUAL),
+ /* K9 */ be_nested_str_weak(shadow_hue),
+ /* K10 */ be_nested_str_weak(attribute_updated),
+ /* K11 */ be_nested_str_weak(shadow_sat),
+ /* K12 */ be_const_int(1),
+ /* K13 */ be_nested_str_weak(light),
+ /* K14 */ be_nested_str_weak(set),
+ /* K15 */ be_nested_str_weak(hue),
+ /* K16 */ be_nested_str_weak(sat),
+ /* K17 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(set_hue_sat),
+ &be_const_str_solidified,
+ ( &(const binstruction[151]) { /* code */
+ 0x4C0C0000, // 0000 LDNIL R3
+ 0x200C0203, // 0001 NE R3 R1 R3
+ 0x780E0006, // 0002 JMPF R3 #000A
+ 0x140C0300, // 0003 LT R3 R1 K0
+ 0x780E0000, // 0004 JMPF R3 #0006
+ 0x58040000, // 0005 LDCONST R1 K0
+ 0x540E00FD, // 0006 LDINT R3 254
+ 0x240C0203, // 0007 GT R3 R1 R3
+ 0x780E0000, // 0008 JMPF R3 #000A
+ 0x540600FD, // 0009 LDINT R1 254
0x4C0C0000, // 000A LDNIL R3
0x200C0403, // 000B NE R3 R2 R3
- 0x780E0033, // 000C JMPF R3 #0041
- 0x8C0C0504, // 000D GETMET R3 R2 K4
- 0x58140005, // 000E LDCONST R5 K5
- 0x4C180000, // 000F LDNIL R6
- 0x7C0C0600, // 0010 CALL R3 3
- 0x8C100504, // 0011 GETMET R4 R2 K4
- 0x58180006, // 0012 LDCONST R6 K6
- 0x4C1C0000, // 0013 LDNIL R7
- 0x7C100600, // 0014 CALL R4 3
- 0x4C140000, // 0015 LDNIL R5
- 0x20140605, // 0016 NE R5 R3 R5
- 0x78160009, // 0017 JMPF R5 #0022
- 0xB8160E00, // 0018 GETNGBL R5 K7
- 0x8C140B08, // 0019 GETMET R5 R5 K8
- 0x5C1C0600, // 001A MOVE R7 R3
- 0x58200009, // 001B LDCONST R8 K9
- 0x54260167, // 001C LDINT R9 360
- 0x58280009, // 001D LDCONST R10 K9
- 0x542E00FD, // 001E LDINT R11 254
- 0x7C140C00, // 001F CALL R5 6
- 0x5C0C0A00, // 0020 MOVE R3 R5
- 0x70020000, // 0021 JMP #0023
- 0x880C010A, // 0022 GETMBR R3 R0 K10
- 0x4C140000, // 0023 LDNIL R5
- 0x20140805, // 0024 NE R5 R4 R5
- 0x78160009, // 0025 JMPF R5 #0030
- 0xB8160E00, // 0026 GETNGBL R5 K7
- 0x8C140B08, // 0027 GETMET R5 R5 K8
- 0x5C1C0800, // 0028 MOVE R7 R4
- 0x58200009, // 0029 LDCONST R8 K9
- 0x542600FE, // 002A LDINT R9 255
- 0x58280009, // 002B LDCONST R10 K9
- 0x542E00FD, // 002C LDINT R11 254
- 0x7C140C00, // 002D CALL R5 6
- 0x5C100A00, // 002E MOVE R4 R5
- 0x70020000, // 002F JMP #0031
- 0x8810010B, // 0030 GETMBR R4 R0 K11
- 0x8814010A, // 0031 GETMBR R5 R0 K10
- 0x20140605, // 0032 NE R5 R3 R5
- 0x78160004, // 0033 JMPF R5 #0039
- 0x8C14010C, // 0034 GETMET R5 R0 K12
- 0x541E02FF, // 0035 LDINT R7 768
- 0x58200009, // 0036 LDCONST R8 K9
- 0x7C140600, // 0037 CALL R5 3
- 0x90021403, // 0038 SETMBR R0 K10 R3
- 0x8814010B, // 0039 GETMBR R5 R0 K11
- 0x20140805, // 003A NE R5 R4 R5
- 0x78160004, // 003B JMPF R5 #0041
- 0x8C14010C, // 003C GETMET R5 R0 K12
- 0x541E02FF, // 003D LDINT R7 768
- 0x5820000D, // 003E LDCONST R8 K13
- 0x7C140600, // 003F CALL R5 3
- 0x90021604, // 0040 SETMBR R0 K11 R4
- 0x80000000, // 0041 RET 0
+ 0x780E0006, // 000C JMPF R3 #0014
+ 0x140C0500, // 000D LT R3 R2 K0
+ 0x780E0000, // 000E JMPF R3 #0010
+ 0x58080000, // 000F LDCONST R2 K0
+ 0x540E00FD, // 0010 LDINT R3 254
+ 0x240C0403, // 0011 GT R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x540A00FD, // 0013 LDINT R2 254
+ 0x880C0101, // 0014 GETMBR R3 R0 K1
+ 0x780E002C, // 0015 JMPF R3 #0043
+ 0x4C0C0000, // 0016 LDNIL R3
+ 0x200C0203, // 0017 NE R3 R1 R3
+ 0x780E0012, // 0018 JMPF R3 #002C
+ 0xB80E0400, // 0019 GETNGBL R3 K2
+ 0x8C0C0703, // 001A GETMET R3 R3 K3
+ 0x5C140200, // 001B MOVE R5 R1
+ 0x58180000, // 001C LDCONST R6 K0
+ 0x541E00FD, // 001D LDINT R7 254
+ 0x58200000, // 001E LDCONST R8 K0
+ 0x54260167, // 001F LDINT R9 360
+ 0x7C0C0C00, // 0020 CALL R3 6
+ 0x8C100104, // 0021 GETMET R4 R0 K4
+ 0x58180005, // 0022 LDCONST R6 K5
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C100600, // 0024 CALL R4 3
+ 0x4C140000, // 0025 LDNIL R5
+ 0x20140805, // 0026 NE R5 R4 R5
+ 0x78160003, // 0027 JMPF R5 #002C
+ 0x8C140106, // 0028 GETMET R5 R0 K6
+ 0x5C1C0800, // 0029 MOVE R7 R4
+ 0x5422000A, // 002A LDINT R8 11
+ 0x7C140600, // 002B CALL R5 3
+ 0x4C0C0000, // 002C LDNIL R3
+ 0x200C0403, // 002D NE R3 R2 R3
+ 0x780E0012, // 002E JMPF R3 #0042
+ 0xB80E0400, // 002F GETNGBL R3 K2
+ 0x8C0C0703, // 0030 GETMET R3 R3 K3
+ 0x5C140400, // 0031 MOVE R5 R2
+ 0x58180000, // 0032 LDCONST R6 K0
+ 0x541E00FD, // 0033 LDINT R7 254
+ 0x58200000, // 0034 LDCONST R8 K0
+ 0x54260063, // 0035 LDINT R9 100
+ 0x7C0C0C00, // 0036 CALL R3 6
+ 0x8C100104, // 0037 GETMET R4 R0 K4
+ 0x58180007, // 0038 LDCONST R6 K7
+ 0x5C1C0600, // 0039 MOVE R7 R3
+ 0x7C100600, // 003A CALL R4 3
+ 0x4C140000, // 003B LDNIL R5
+ 0x20140805, // 003C NE R5 R4 R5
+ 0x78160003, // 003D JMPF R5 #0042
+ 0x8C140106, // 003E GETMET R5 R0 K6
+ 0x5C1C0800, // 003F MOVE R7 R4
+ 0x5422000A, // 0040 LDINT R8 11
+ 0x7C140600, // 0041 CALL R5 3
+ 0x70020052, // 0042 JMP #0096
+ 0x880C0108, // 0043 GETMBR R3 R0 K8
+ 0x780E0016, // 0044 JMPF R3 #005C
+ 0x4C0C0000, // 0045 LDNIL R3
+ 0x200C0203, // 0046 NE R3 R1 R3
+ 0x780E0007, // 0047 JMPF R3 #0050
+ 0x880C0109, // 0048 GETMBR R3 R0 K9
+ 0x200C0203, // 0049 NE R3 R1 R3
+ 0x780E0004, // 004A JMPF R3 #0050
+ 0x8C0C010A, // 004B GETMET R3 R0 K10
+ 0x541602FF, // 004C LDINT R5 768
+ 0x58180000, // 004D LDCONST R6 K0
+ 0x7C0C0600, // 004E CALL R3 3
+ 0x90021201, // 004F SETMBR R0 K9 R1
+ 0x4C0C0000, // 0050 LDNIL R3
+ 0x200C0403, // 0051 NE R3 R2 R3
+ 0x780E0007, // 0052 JMPF R3 #005B
+ 0x880C010B, // 0053 GETMBR R3 R0 K11
+ 0x200C0403, // 0054 NE R3 R2 R3
+ 0x780E0004, // 0055 JMPF R3 #005B
+ 0x8C0C010A, // 0056 GETMET R3 R0 K10
+ 0x541602FF, // 0057 LDINT R5 768
+ 0x5818000C, // 0058 LDCONST R6 K12
+ 0x7C0C0600, // 0059 CALL R3 3
+ 0x90021602, // 005A SETMBR R0 K11 R2
+ 0x70020039, // 005B JMP #0096
+ 0x4C0C0000, // 005C LDNIL R3
+ 0x200C0203, // 005D NE R3 R1 R3
+ 0x780E0008, // 005E JMPF R3 #0068
+ 0xB80E0400, // 005F GETNGBL R3 K2
+ 0x8C0C0703, // 0060 GETMET R3 R3 K3
+ 0x5C140200, // 0061 MOVE R5 R1
+ 0x58180000, // 0062 LDCONST R6 K0
+ 0x541E00FD, // 0063 LDINT R7 254
+ 0x58200000, // 0064 LDCONST R8 K0
+ 0x54260167, // 0065 LDINT R9 360
+ 0x7C0C0C00, // 0066 CALL R3 6
+ 0x70020000, // 0067 JMP #0069
+ 0x4C0C0000, // 0068 LDNIL R3
+ 0x4C100000, // 0069 LDNIL R4
+ 0x20100404, // 006A NE R4 R2 R4
+ 0x78120008, // 006B JMPF R4 #0075
+ 0xB8120400, // 006C GETNGBL R4 K2
+ 0x8C100903, // 006D GETMET R4 R4 K3
+ 0x5C180400, // 006E MOVE R6 R2
+ 0x581C0000, // 006F LDCONST R7 K0
+ 0x542200FD, // 0070 LDINT R8 254
+ 0x58240000, // 0071 LDCONST R9 K0
+ 0x542A00FE, // 0072 LDINT R10 255
+ 0x7C100C00, // 0073 CALL R4 6
+ 0x70020000, // 0074 JMP #0076
+ 0x4C100000, // 0075 LDNIL R4
+ 0x4C140000, // 0076 LDNIL R5
+ 0x20140605, // 0077 NE R5 R3 R5
+ 0x7816000A, // 0078 JMPF R5 #0084
+ 0x4C140000, // 0079 LDNIL R5
+ 0x20140805, // 007A NE R5 R4 R5
+ 0x78160007, // 007B JMPF R5 #0084
+ 0xB8161A00, // 007C GETNGBL R5 K13
+ 0x8C140B0E, // 007D GETMET R5 R5 K14
+ 0x601C0013, // 007E GETGBL R7 G19
+ 0x7C1C0000, // 007F CALL R7 0
+ 0x981E1E03, // 0080 SETIDX R7 K15 R3
+ 0x981E2004, // 0081 SETIDX R7 K16 R4
+ 0x7C140400, // 0082 CALL R5 2
+ 0x7002000F, // 0083 JMP #0094
+ 0x4C140000, // 0084 LDNIL R5
+ 0x20140605, // 0085 NE R5 R3 R5
+ 0x78160006, // 0086 JMPF R5 #008E
+ 0xB8161A00, // 0087 GETNGBL R5 K13
+ 0x8C140B0E, // 0088 GETMET R5 R5 K14
+ 0x601C0013, // 0089 GETGBL R7 G19
+ 0x7C1C0000, // 008A CALL R7 0
+ 0x981E1E03, // 008B SETIDX R7 K15 R3
+ 0x7C140400, // 008C CALL R5 2
+ 0x70020005, // 008D JMP #0094
+ 0xB8161A00, // 008E GETNGBL R5 K13
+ 0x8C140B0E, // 008F GETMET R5 R5 K14
+ 0x601C0013, // 0090 GETGBL R7 G19
+ 0x7C1C0000, // 0091 CALL R7 0
+ 0x981E2004, // 0092 SETIDX R7 K16 R4
+ 0x7C140400, // 0093 CALL R5 2
+ 0x8C140111, // 0094 GETMET R5 R0 K17
+ 0x7C140200, // 0095 CALL R5 1
+ 0x80000000, // 0096 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light3;
+be_local_closure(class_Matter_Plugin_Light3_parse_status, /* name */
+ be_nested_proto(
+ 15, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light3,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(parse_status),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(HSBColor),
+ /* K3 */ be_nested_str_weak(string),
+ /* K4 */ be_nested_str_weak(split),
+ /* K5 */ be_nested_str_weak(_X2C),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_const_int(1),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(scale_uint),
+ /* K10 */ be_nested_str_weak(shadow_hue),
+ /* K11 */ be_nested_str_weak(shadow_sat),
+ /* K12 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[70]) { /* code */
+ 0x600C0003, // 0000 GETGBL R3 G3
+ 0x5C100000, // 0001 MOVE R4 R0
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0700, // 0003 GETMET R3 R3 K0
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x5C180400, // 0005 MOVE R6 R2
+ 0x7C0C0600, // 0006 CALL R3 3
+ 0x540E000A, // 0007 LDINT R3 11
+ 0x1C0C0403, // 0008 EQ R3 R2 R3
+ 0x780E003A, // 0009 JMPF R3 #0045
+ 0x8C0C0301, // 000A GETMET R3 R1 K1
+ 0x58140002, // 000B LDCONST R5 K2
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x780E0036, // 000D JMPF R3 #0045
+ 0xA4120600, // 000E IMPORT R4 K3
+ 0x8C140904, // 000F GETMET R5 R4 K4
+ 0x5C1C0600, // 0010 MOVE R7 R3
+ 0x58200005, // 0011 LDCONST R8 K5
+ 0x7C140600, // 0012 CALL R5 3
+ 0x60180009, // 0013 GETGBL R6 G9
+ 0x941C0B06, // 0014 GETIDX R7 R5 K6
+ 0x7C180200, // 0015 CALL R6 1
+ 0x601C0009, // 0016 GETGBL R7 G9
+ 0x94200B07, // 0017 GETIDX R8 R5 K7
+ 0x7C1C0200, // 0018 CALL R7 1
+ 0x4C200000, // 0019 LDNIL R8
+ 0x20200C08, // 001A NE R8 R6 R8
+ 0x78220009, // 001B JMPF R8 #0026
+ 0xB8221000, // 001C GETNGBL R8 K8
+ 0x8C201109, // 001D GETMET R8 R8 K9
+ 0x5C280C00, // 001E MOVE R10 R6
+ 0x582C0006, // 001F LDCONST R11 K6
+ 0x54320167, // 0020 LDINT R12 360
+ 0x58340006, // 0021 LDCONST R13 K6
+ 0x543A00FD, // 0022 LDINT R14 254
+ 0x7C200C00, // 0023 CALL R8 6
+ 0x5C181000, // 0024 MOVE R6 R8
+ 0x70020000, // 0025 JMP #0027
+ 0x8818010A, // 0026 GETMBR R6 R0 K10
+ 0x4C200000, // 0027 LDNIL R8
+ 0x20200E08, // 0028 NE R8 R7 R8
+ 0x78220009, // 0029 JMPF R8 #0034
+ 0xB8221000, // 002A GETNGBL R8 K8
+ 0x8C201109, // 002B GETMET R8 R8 K9
+ 0x5C280E00, // 002C MOVE R10 R7
+ 0x582C0006, // 002D LDCONST R11 K6
+ 0x54320063, // 002E LDINT R12 100
+ 0x58340006, // 002F LDCONST R13 K6
+ 0x543A00FD, // 0030 LDINT R14 254
+ 0x7C200C00, // 0031 CALL R8 6
+ 0x5C1C1000, // 0032 MOVE R7 R8
+ 0x70020000, // 0033 JMP #0035
+ 0x881C010B, // 0034 GETMBR R7 R0 K11
+ 0x8820010A, // 0035 GETMBR R8 R0 K10
+ 0x20200C08, // 0036 NE R8 R6 R8
+ 0x78220004, // 0037 JMPF R8 #003D
+ 0x8C20010C, // 0038 GETMET R8 R0 K12
+ 0x542A02FF, // 0039 LDINT R10 768
+ 0x582C0006, // 003A LDCONST R11 K6
+ 0x7C200600, // 003B CALL R8 3
+ 0x90021406, // 003C SETMBR R0 K10 R6
+ 0x8820010B, // 003D GETMBR R8 R0 K11
+ 0x20200E08, // 003E NE R8 R7 R8
+ 0x78220004, // 003F JMPF R8 #0045
+ 0x8C20010C, // 0040 GETMET R8 R0 K12
+ 0x542A02FF, // 0041 LDINT R10 768
+ 0x582C0007, // 0042 LDCONST R11 K7
+ 0x7C200600, // 0043 CALL R8 3
+ 0x90021607, // 0044 SETMBR R0 K11 R7
+ 0x80000000, // 0045 RET 0
})
)
);
@@ -652,6 +906,55 @@ be_local_closure(class_Matter_Plugin_Light3_read_attribute, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light3;
+be_local_closure(class_Matter_Plugin_Light3_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Light3,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
+ /* K4 */ be_nested_str_weak(web_value_onoff),
+ /* K5 */ be_nested_str_weak(shadow_onoff),
+ /* K6 */ be_nested_str_weak(web_value_dimmer),
+ /* K7 */ be_nested_str_weak(web_value_RGB),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x8C180104, // 0006 GETMET R6 R0 K4
+ 0x88200105, // 0007 GETMBR R8 R0 K5
+ 0x7C180400, // 0008 CALL R6 2
+ 0x8C1C0106, // 0009 GETMET R7 R0 K6
+ 0x7C1C0200, // 000A CALL R7 1
+ 0x8C200107, // 000B GETMET R8 R0 K7
+ 0x7C200200, // 000C CALL R8 1
+ 0x7C100800, // 000D CALL R4 4
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Light3
********************************************************************/
@@ -659,19 +962,30 @@ extern const bclass be_class_Matter_Plugin_Light1;
be_local_class(Matter_Plugin_Light3,
2,
&be_class_Matter_Plugin_Light1,
- be_nested_map(13,
+ be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, 1), be_const_closure(class_Matter_Plugin_Light3_update_virtual_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Light3_web_values_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(269, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Light3_init_closure) },
{ be_const_key_weak(shadow_hue, -1), be_const_var(0) },
- { be_const_key_weak(shadow_sat, -1), be_const_var(1) },
- { be_const_key_weak(update_virtual, 8), be_const_closure(class_Matter_Plugin_Light3_update_virtual_closure) },
{ be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Light3_update_shadow_closure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light3_read_attribute_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Light3_invoke_request_closure) },
- { be_const_key_weak(init, 9), be_const_closure(class_Matter_Plugin_Light3_init_closure) },
- { be_const_key_weak(set_hue_sat, 3), be_const_closure(class_Matter_Plugin_Light3_set_hue_sat_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(light3) },
{ be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X203_X20RGB) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(UPDATE_COMMANDS, 15), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(4,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Power),
+ be_nested_str_weak(Bri),
+ be_nested_str_weak(Hue),
+ be_nested_str_weak(Sat),
+ })) ) } )) },
+ { be_const_key_weak(read_attribute, 2), be_const_closure(class_Matter_Plugin_Light3_read_attribute_closure) },
+ { be_const_key_weak(set_hue_sat, -1), be_const_closure(class_Matter_Plugin_Light3_set_hue_sat_closure) },
+ { be_const_key_weak(CLUSTERS, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -787,19 +1101,11 @@ be_local_class(Matter_Plugin_Light3,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(UPDATE_COMMANDS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(4,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(Power),
- be_nested_str_weak(Bri),
- be_nested_str_weak(Hue),
- be_nested_str_weak(Sat),
- })) ) } )) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(269, -1), be_const_int(2) },
- })) ) } )) },
+ { be_const_key_weak(invoke_request, 12), be_const_closure(class_Matter_Plugin_Light3_invoke_request_closure) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Light3_parse_status_closure) },
+ { be_const_key_weak(TYPE, 6), be_nested_str_weak(light3) },
+ { be_const_key_weak(shadow_sat, -1), be_const_var(1) },
+ { be_const_key_weak(web_value_RGB, -1), be_const_closure(class_Matter_Plugin_Light3_web_value_RGB_closure) },
})),
be_str_weak(Matter_Plugin_Light3)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_OnOff.h
similarity index 73%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light0.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_OnOff.h
index 4ede0e4d9..17b0381a3 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_OnOff.h
@@ -1,29 +1,29 @@
-/* Solidification of Matter_Plugin_3_Light0.h */
+/* Solidification of Matter_Plugin_3_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
-extern const bclass be_class_Matter_Plugin_Light0;
+extern const bclass be_class_Matter_Plugin_OnOff;
/********************************************************************
-** Solidified class: Matter_Plugin_Light0
+** Solidified class: Matter_Plugin_OnOff
********************************************************************/
-extern const bclass be_class_Matter_Plugin_OnOff;
-be_local_class(Matter_Plugin_Light0,
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_class(Matter_Plugin_OnOff,
0,
- &be_class_Matter_Plugin_OnOff,
+ &be_class_Matter_Plugin_Light0,
be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X200_X20On) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(light0) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Relay) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(relay) },
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(256, -1), be_const_int(2) },
+ { be_const_key_int(266, -1), be_const_int(2) },
})) ) } )) },
})),
- be_str_weak(Matter_Plugin_Light0)
+ be_str_weak(Matter_Plugin_OnOff)
);
/********************************************************************/
/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
index 97cae5f0b..dafda9e24 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
@@ -160,6 +160,48 @@ be_local_closure(class_Matter_Plugin_Sensor_Flow_pre_value, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Flow;
+be_local_closure(class_Matter_Plugin_Sensor_Flow_web_values, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Flow,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20m_X26sup3_X3B_X2Fh),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x60180009, // 0006 GETGBL R6 G9
+ 0x881C0104, // 0007 GETMBR R7 R0 K4
+ 0x7C180200, // 0008 CALL R6 1
+ 0x7C100400, // 0009 CALL R4 2
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Flow
********************************************************************/
@@ -167,23 +209,20 @@ extern const bclass be_class_Matter_Plugin_Sensor;
be_local_class(Matter_Plugin_Sensor_Flow,
0,
&be_class_Matter_Plugin_Sensor,
- be_nested_map(9,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Flow) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(flow) },
- { be_const_key_weak(TYPES, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(774, -1), be_const_int(1) },
})) ) } )) },
+ { be_const_key_weak(value_changed, 8), be_const_closure(class_Matter_Plugin_Sensor_Flow_value_changed_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Flow_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Flow),
})) ) } )) },
- { be_const_key_weak(value_changed, 7), be_const_closure(class_Matter_Plugin_Sensor_Flow_value_changed_closure) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Flow) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Flow_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -270,7 +309,11 @@ be_local_class(Matter_Plugin_Sensor_Flow,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Flow) },
{ be_const_key_weak(pre_value, -1), be_const_closure(class_Matter_Plugin_Sensor_Flow_pre_value_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Flow_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Flow) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(flow) },
})),
be_str_weak(Matter_Plugin_Sensor_Flow)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
index c2d3fc521..fde45bb62 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
@@ -160,6 +160,56 @@ be_local_closure(class_Matter_Plugin_Sensor_Humidity_pre_value, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Humidity;
+be_local_closure(class_Matter_Plugin_Sensor_Humidity_web_values, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Humidity,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26_X23x1F4A7_X3B_X20_X252_X2E0f_X25_X25),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x4C1C0000, // 0007 LDNIL R7
+ 0x20180C07, // 0008 NE R6 R6 R7
+ 0x781A0005, // 0009 JMPF R6 #0010
+ 0x6018000A, // 000A GETGBL R6 G10
+ 0x881C0104, // 000B GETMBR R7 R0 K4
+ 0x7C180200, // 000C CALL R6 1
+ 0x541E0063, // 000D LDINT R7 100
+ 0x0C180C07, // 000E DIV R6 R6 R7
+ 0x70020000, // 000F JMP #0011
+ 0x4C180000, // 0010 LDNIL R6
+ 0x7C100400, // 0011 CALL R4 2
+ 0x7C080400, // 0012 CALL R2 2
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Humidity
********************************************************************/
@@ -167,23 +217,20 @@ extern const bclass be_class_Matter_Plugin_Sensor;
be_local_class(Matter_Plugin_Sensor_Humidity,
0,
&be_class_Matter_Plugin_Sensor,
- be_nested_map(9,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Humidity) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(humidity) },
- { be_const_key_weak(TYPES, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(775, -1), be_const_int(2) },
})) ) } )) },
+ { be_const_key_weak(value_changed, 8), be_const_closure(class_Matter_Plugin_Sensor_Humidity_value_changed_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Humidity_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Humidity),
})) ) } )) },
- { be_const_key_weak(value_changed, 7), be_const_closure(class_Matter_Plugin_Sensor_Humidity_value_changed_closure) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Humidity) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Humidity_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -270,7 +317,11 @@ be_local_class(Matter_Plugin_Sensor_Humidity,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Humidity) },
{ be_const_key_weak(pre_value, -1), be_const_closure(class_Matter_Plugin_Sensor_Humidity_pre_value_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Humidity_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Humidity) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(humidity) },
})),
be_str_weak(Matter_Plugin_Sensor_Humidity)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
index aea99a7cb..147369bde 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
@@ -172,6 +172,48 @@ be_local_closure(class_Matter_Plugin_Sensor_Illuminance_pre_value, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Illuminance;
+be_local_closure(class_Matter_Plugin_Sensor_Illuminance_web_values, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Illuminance,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26_X23128261_X3B_X20_X25i_X20lux),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x60180009, // 0006 GETGBL R6 G9
+ 0x881C0104, // 0007 GETMBR R7 R0 K4
+ 0x7C180200, // 0008 CALL R6 1
+ 0x7C100400, // 0009 CALL R4 2
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Illuminance
********************************************************************/
@@ -179,23 +221,20 @@ extern const bclass be_class_Matter_Plugin_Sensor;
be_local_class(Matter_Plugin_Sensor_Illuminance,
0,
&be_class_Matter_Plugin_Sensor,
- be_nested_map(9,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Illuminance) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(illuminance) },
- { be_const_key_weak(TYPES, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(262, -1), be_const_int(2) },
})) ) } )) },
+ { be_const_key_weak(value_changed, 8), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_value_changed_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Illuminance),
})) ) } )) },
- { be_const_key_weak(value_changed, 7), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_value_changed_closure) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Illuminance) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -282,7 +321,11 @@ be_local_class(Matter_Plugin_Sensor_Illuminance,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Illuminance) },
{ be_const_key_weak(pre_value, -1), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_pre_value_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Illuminance) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(illuminance) },
})),
be_str_weak(Matter_Plugin_Sensor_Illuminance)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
index 245a4b5f1..a14b2f339 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
@@ -159,6 +159,48 @@ be_local_closure(class_Matter_Plugin_Sensor_Pressure_pre_value, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Pressure;
+be_local_closure(class_Matter_Plugin_Sensor_Pressure_web_values, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Pressure,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20hPa),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x60180009, // 0006 GETGBL R6 G9
+ 0x881C0104, // 0007 GETMBR R7 R0 K4
+ 0x7C180200, // 0008 CALL R6 1
+ 0x7C100400, // 0009 CALL R4 2
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Pressure
********************************************************************/
@@ -166,23 +208,20 @@ extern const bclass be_class_Matter_Plugin_Sensor;
be_local_class(Matter_Plugin_Sensor_Pressure,
0,
&be_class_Matter_Plugin_Sensor,
- be_nested_map(9,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Pressure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(pressure) },
- { be_const_key_weak(TYPES, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(773, -1), be_const_int(2) },
})) ) } )) },
+ { be_const_key_weak(value_changed, 8), be_const_closure(class_Matter_Plugin_Sensor_Pressure_value_changed_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Pressure_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Pressure),
})) ) } )) },
- { be_const_key_weak(value_changed, 7), be_const_closure(class_Matter_Plugin_Sensor_Pressure_value_changed_closure) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Pressure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Pressure_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -269,7 +308,11 @@ be_local_class(Matter_Plugin_Sensor_Pressure,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Pressure) },
{ be_const_key_weak(pre_value, -1), be_const_closure(class_Matter_Plugin_Sensor_Pressure_pre_value_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Pressure_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Pressure) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(pressure) },
})),
be_str_weak(Matter_Plugin_Sensor_Pressure)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
index 785235cd0..d0b9e7473 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
@@ -138,20 +138,23 @@ be_local_closure(class_Matter_Plugin_Sensor_Temp_pre_value, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Temp,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(get_option),
- /* K2 */ be_const_int(1),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K1 */ be_nested_str_weak(temp_unit),
+ /* K2 */ be_nested_str_weak(TEMP_F),
/* K3 */ be_const_real_hex(0x3FE66666),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(get_option),
+ /* K6 */ be_const_int(1),
}),
be_str_weak(pre_value),
&be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x54120007, // 0002 LDINT R4 8
- 0x7C080400, // 0003 CALL R2 2
- 0x1C080502, // 0004 EQ R2 R2 K2
+ ( &(const binstruction[42]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0012, // 0001 JMPF R2 #0015
+ 0x88080101, // 0002 GETMBR R2 R0 K1
+ 0x880C0102, // 0003 GETMBR R3 R0 K2
+ 0x1C080403, // 0004 EQ R2 R2 R3
0x780A0003, // 0005 JMPF R2 #000A
0x540A001F, // 0006 LDINT R2 32
0x04080202, // 0007 SUB R2 R1 R2
@@ -167,6 +170,78 @@ be_local_closure(class_Matter_Plugin_Sensor_Temp_pre_value, /* name */
0x70020000, // 0011 JMP #0013
0x4C080000, // 0012 LDNIL R2
0x80040400, // 0013 RET 1 R2
+ 0x70020013, // 0014 JMP #0029
+ 0xB80A0800, // 0015 GETNGBL R2 K4
+ 0x8C080505, // 0016 GETMET R2 R2 K5
+ 0x54120007, // 0017 LDINT R4 8
+ 0x7C080400, // 0018 CALL R2 2
+ 0x1C080506, // 0019 EQ R2 R2 K6
+ 0x780A0003, // 001A JMPF R2 #001F
+ 0x540A001F, // 001B LDINT R2 32
+ 0x04080202, // 001C SUB R2 R1 R2
+ 0x0C080503, // 001D DIV R2 R2 K3
+ 0x5C040400, // 001E MOVE R1 R2
+ 0x4C080000, // 001F LDNIL R2
+ 0x20080202, // 0020 NE R2 R1 R2
+ 0x780A0004, // 0021 JMPF R2 #0027
+ 0x60080009, // 0022 GETGBL R2 G9
+ 0x540E0063, // 0023 LDINT R3 100
+ 0x080C0203, // 0024 MUL R3 R1 R3
+ 0x7C080200, // 0025 CALL R2 1
+ 0x70020000, // 0026 JMP #0028
+ 0x4C080000, // 0027 LDNIL R2
+ 0x80040400, // 0028 RET 1 R2
+ 0x80000000, // 0029 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Temp;
+be_local_closure(class_Matter_Plugin_Sensor_Temp_web_values, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Temp,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(_X26_X23x2600_X3B_X26_X23xFE0F_X3B_X20_X25_X2E1f_X20_XC2_XB0C),
+ /* K4 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x4C1C0000, // 0007 LDNIL R7
+ 0x20180C07, // 0008 NE R6 R6 R7
+ 0x781A0005, // 0009 JMPF R6 #0010
+ 0x6018000A, // 000A GETGBL R6 G10
+ 0x881C0104, // 000B GETMBR R7 R0 K4
+ 0x7C180200, // 000C CALL R6 1
+ 0x541E0063, // 000D LDINT R7 100
+ 0x0C180C07, // 000E DIV R6 R6 R7
+ 0x70020000, // 000F JMP #0011
+ 0x4C180000, // 0010 LDNIL R6
+ 0x7C100400, // 0011 CALL R4 2
+ 0x7C080400, // 0012 CALL R2 2
+ 0x80000000, // 0013 RET 0
})
)
);
@@ -180,23 +255,20 @@ extern const bclass be_class_Matter_Plugin_Sensor;
be_local_class(Matter_Plugin_Sensor_Temp,
0,
&be_class_Matter_Plugin_Sensor,
- be_nested_map(9,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Temperature) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(temperature) },
- { be_const_key_weak(TYPES, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(770, -1), be_const_int(2) },
})) ) } )) },
+ { be_const_key_weak(value_changed, 8), be_const_closure(class_Matter_Plugin_Sensor_Temp_value_changed_closure) },
+ { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Temp_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Temperature),
})) ) } )) },
- { be_const_key_weak(value_changed, 7), be_const_closure(class_Matter_Plugin_Sensor_Temp_value_changed_closure) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Temperature) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Temp_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -283,7 +355,11 @@ be_local_class(Matter_Plugin_Sensor_Temp,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(Temperature) },
{ be_const_key_weak(pre_value, -1), be_const_closure(class_Matter_Plugin_Sensor_Temp_pre_value_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Temp_web_values_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Temperature) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(temperature) },
})),
be_str_weak(Matter_Plugin_Sensor_Temp)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Light1.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Light1.h
deleted file mode 100644
index ce56fbb49..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Light1.h
+++ /dev/null
@@ -1,648 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Light1.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_invoke_request, /* name */
- be_nested_proto(
- 21, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(command),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(findsubval),
- /* K6 */ be_nested_str_weak(set_bri),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(bri_X3A),
- /* K9 */ be_nested_str_weak(publish_command),
- /* K10 */ be_nested_str_weak(Bri),
- /* K11 */ be_nested_str_weak(tasmota),
- /* K12 */ be_nested_str_weak(scale_uint),
- /* K13 */ be_nested_str_weak(Dimmer),
- /* K14 */ be_const_int(1),
- /* K15 */ be_const_int(2),
- /* K16 */ be_const_int(3),
- /* K17 */ be_nested_str_weak(set_onoff),
- /* K18 */ be_nested_str_weak(Power),
- /* K19 */ be_nested_str_weak(invoke_request),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[132]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140702, // 0002 GETMBR R5 R3 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x541E0007, // 0004 LDINT R7 8
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0072, // 0006 JMPF R7 #007A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0021, // 0008 JMPF R7 #002B
- 0x8C1C0505, // 0009 GETMET R7 R2 K5
- 0x58240004, // 000A LDCONST R9 K4
- 0x7C1C0400, // 000B CALL R7 2
- 0x8C200106, // 000C GETMET R8 R0 K6
- 0x5C280E00, // 000D MOVE R10 R7
- 0x7C200400, // 000E CALL R8 2
- 0x60200008, // 000F GETGBL R8 G8
- 0x5C240E00, // 0010 MOVE R9 R7
- 0x7C200200, // 0011 CALL R8 1
- 0x00221008, // 0012 ADD R8 K8 R8
- 0x900E0E08, // 0013 SETMBR R3 K7 R8
- 0x8C200109, // 0014 GETMET R8 R0 K9
- 0x5828000A, // 0015 LDCONST R10 K10
- 0xB82E1600, // 0016 GETNGBL R11 K11
- 0x8C2C170C, // 0017 GETMET R11 R11 K12
- 0x5C340E00, // 0018 MOVE R13 R7
- 0x58380004, // 0019 LDCONST R14 K4
- 0x543E00FD, // 001A LDINT R15 254
- 0x58400004, // 001B LDCONST R16 K4
- 0x544600FE, // 001C LDINT R17 255
- 0x7C2C0C00, // 001D CALL R11 6
- 0x5830000D, // 001E LDCONST R12 K13
- 0xB8361600, // 001F GETNGBL R13 K11
- 0x8C341B0C, // 0020 GETMET R13 R13 K12
- 0x5C3C0E00, // 0021 MOVE R15 R7
- 0x58400004, // 0022 LDCONST R16 K4
- 0x544600FD, // 0023 LDINT R17 254
- 0x58480004, // 0024 LDCONST R18 K4
- 0x544E0063, // 0025 LDINT R19 100
- 0x7C340C00, // 0026 CALL R13 6
- 0x7C200A00, // 0027 CALL R8 5
- 0x50200200, // 0028 LDBOOL R8 1 0
- 0x80041000, // 0029 RET 1 R8
- 0x7002004D, // 002A JMP #0079
- 0x1C1C0D0E, // 002B EQ R7 R6 K14
- 0x781E0002, // 002C JMPF R7 #0030
- 0x501C0200, // 002D LDBOOL R7 1 0
- 0x80040E00, // 002E RET 1 R7
- 0x70020048, // 002F JMP #0079
- 0x1C1C0D0F, // 0030 EQ R7 R6 K15
- 0x781E0002, // 0031 JMPF R7 #0035
- 0x501C0200, // 0032 LDBOOL R7 1 0
- 0x80040E00, // 0033 RET 1 R7
- 0x70020043, // 0034 JMP #0079
- 0x1C1C0D10, // 0035 EQ R7 R6 K16
- 0x781E0002, // 0036 JMPF R7 #003A
- 0x501C0200, // 0037 LDBOOL R7 1 0
- 0x80040E00, // 0038 RET 1 R7
- 0x7002003E, // 0039 JMP #0079
- 0x541E0003, // 003A LDINT R7 4
- 0x1C1C0C07, // 003B EQ R7 R6 R7
- 0x781E002A, // 003C JMPF R7 #0068
- 0x8C1C0505, // 003D GETMET R7 R2 K5
- 0x58240004, // 003E LDCONST R9 K4
- 0x7C1C0400, // 003F CALL R7 2
- 0x8C200106, // 0040 GETMET R8 R0 K6
- 0x5C280E00, // 0041 MOVE R10 R7
- 0x7C200400, // 0042 CALL R8 2
- 0x24200F04, // 0043 GT R8 R7 K4
- 0x8C240111, // 0044 GETMET R9 R0 K17
- 0x5C2C1000, // 0045 MOVE R11 R8
- 0x7C240400, // 0046 CALL R9 2
- 0x60240008, // 0047 GETGBL R9 G8
- 0x5C280E00, // 0048 MOVE R10 R7
- 0x7C240200, // 0049 CALL R9 1
- 0x00261009, // 004A ADD R9 K8 R9
- 0x900E0E09, // 004B SETMBR R3 K7 R9
- 0x8C240109, // 004C GETMET R9 R0 K9
- 0x582C000A, // 004D LDCONST R11 K10
- 0xB8321600, // 004E GETNGBL R12 K11
- 0x8C30190C, // 004F GETMET R12 R12 K12
- 0x5C380E00, // 0050 MOVE R14 R7
- 0x583C0004, // 0051 LDCONST R15 K4
- 0x544200FD, // 0052 LDINT R16 254
- 0x58440004, // 0053 LDCONST R17 K4
- 0x544A00FE, // 0054 LDINT R18 255
- 0x7C300C00, // 0055 CALL R12 6
- 0x5834000D, // 0056 LDCONST R13 K13
- 0xB83A1600, // 0057 GETNGBL R14 K11
- 0x8C381D0C, // 0058 GETMET R14 R14 K12
- 0x5C400E00, // 0059 MOVE R16 R7
- 0x58440004, // 005A LDCONST R17 K4
- 0x544A00FD, // 005B LDINT R18 254
- 0x584C0004, // 005C LDCONST R19 K4
- 0x54520063, // 005D LDINT R20 100
- 0x7C380C00, // 005E CALL R14 6
- 0x583C0012, // 005F LDCONST R15 K18
- 0x78220001, // 0060 JMPF R8 #0063
- 0x5840000E, // 0061 LDCONST R16 K14
- 0x70020000, // 0062 JMP #0064
- 0x58400004, // 0063 LDCONST R16 K4
- 0x7C240E00, // 0064 CALL R9 7
- 0x50240200, // 0065 LDBOOL R9 1 0
- 0x80041200, // 0066 RET 1 R9
- 0x70020010, // 0067 JMP #0079
- 0x541E0004, // 0068 LDINT R7 5
- 0x1C1C0C07, // 0069 EQ R7 R6 R7
- 0x781E0002, // 006A JMPF R7 #006E
- 0x501C0200, // 006B LDBOOL R7 1 0
- 0x80040E00, // 006C RET 1 R7
- 0x7002000A, // 006D JMP #0079
- 0x541E0005, // 006E LDINT R7 6
- 0x1C1C0C07, // 006F EQ R7 R6 R7
- 0x781E0002, // 0070 JMPF R7 #0074
- 0x501C0200, // 0071 LDBOOL R7 1 0
- 0x80040E00, // 0072 RET 1 R7
- 0x70020004, // 0073 JMP #0079
- 0x541E0006, // 0074 LDINT R7 7
- 0x1C1C0C07, // 0075 EQ R7 R6 R7
- 0x781E0001, // 0076 JMPF R7 #0079
- 0x501C0200, // 0077 LDBOOL R7 1 0
- 0x80040E00, // 0078 RET 1 R7
- 0x70020008, // 0079 JMP #0083
- 0x601C0003, // 007A GETGBL R7 G3
- 0x5C200000, // 007B MOVE R8 R0
- 0x7C1C0200, // 007C CALL R7 1
- 0x8C1C0F13, // 007D GETMET R7 R7 K19
- 0x5C240200, // 007E MOVE R9 R1
- 0x5C280400, // 007F MOVE R10 R2
- 0x5C2C0600, // 0080 MOVE R11 R3
- 0x7C1C0800, // 0081 CALL R7 4
- 0x80040E00, // 0082 RET 1 R7
- 0x80000000, // 0083 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(update_shadow_lazy),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(shadow_bri),
- /* K7 */ be_nested_str_weak(set),
- /* K8 */ be_nested_str_weak(U1),
- /* K9 */ be_nested_str_weak(NULL),
- /* K10 */ be_const_int(2),
- /* K11 */ be_const_int(3),
- /* K12 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[79]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0007, // 0004 LDINT R7 8
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E003E, // 0006 JMPF R7 #0046
- 0x8C1C0104, // 0007 GETMET R7 R0 K4
- 0x7C1C0200, // 0008 CALL R7 1
- 0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E000F, // 000A JMPF R7 #001B
- 0x881C0106, // 000B GETMBR R7 R0 K6
- 0x4C200000, // 000C LDNIL R8
- 0x201C0E08, // 000D NE R7 R7 R8
- 0x781E0005, // 000E JMPF R7 #0015
- 0x8C1C0707, // 000F GETMET R7 R3 K7
- 0x88240908, // 0010 GETMBR R9 R4 K8
- 0x88280106, // 0011 GETMBR R10 R0 K6
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0707, // 0015 GETMET R7 R3 K7
- 0x88240909, // 0016 GETMBR R9 R4 K9
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002002A, // 001A JMP #0046
- 0x1C1C0D0A, // 001B EQ R7 R6 K10
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0707, // 001D GETMET R7 R3 K7
- 0x88240908, // 001E GETMBR R9 R4 K8
- 0x58280005, // 001F LDCONST R10 K5
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020022, // 0022 JMP #0046
- 0x1C1C0D0B, // 0023 EQ R7 R6 K11
- 0x781E0005, // 0024 JMPF R7 #002B
- 0x8C1C0707, // 0025 GETMET R7 R3 K7
- 0x88240908, // 0026 GETMBR R9 R4 K8
- 0x542A00FD, // 0027 LDINT R10 254
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x7002001A, // 002A JMP #0046
- 0x541E000E, // 002B LDINT R7 15
- 0x1C1C0C07, // 002C EQ R7 R6 R7
- 0x781E0005, // 002D JMPF R7 #0034
- 0x8C1C0707, // 002E GETMET R7 R3 K7
- 0x88240908, // 002F GETMBR R9 R4 K8
- 0x58280005, // 0030 LDCONST R10 K5
- 0x7C1C0600, // 0031 CALL R7 3
- 0x80040E00, // 0032 RET 1 R7
- 0x70020011, // 0033 JMP #0046
- 0x541E0010, // 0034 LDINT R7 17
- 0x1C1C0C07, // 0035 EQ R7 R6 R7
- 0x781E000E, // 0036 JMPF R7 #0046
- 0x881C0106, // 0037 GETMBR R7 R0 K6
- 0x4C200000, // 0038 LDNIL R8
- 0x201C0E08, // 0039 NE R7 R7 R8
- 0x781E0005, // 003A JMPF R7 #0041
- 0x8C1C0707, // 003B GETMET R7 R3 K7
- 0x88240908, // 003C GETMBR R9 R4 K8
- 0x88280106, // 003D GETMBR R10 R0 K6
- 0x7C1C0600, // 003E CALL R7 3
- 0x80040E00, // 003F RET 1 R7
- 0x70020004, // 0040 JMP #0046
- 0x8C1C0707, // 0041 GETMET R7 R3 K7
- 0x88240909, // 0042 GETMBR R9 R4 K9
- 0x4C280000, // 0043 LDNIL R10
- 0x7C1C0600, // 0044 CALL R7 3
- 0x80040E00, // 0045 RET 1 R7
- 0x601C0003, // 0046 GETGBL R7 G3
- 0x5C200000, // 0047 MOVE R8 R0
- 0x7C1C0200, // 0048 CALL R7 1
- 0x8C1C0F0C, // 0049 GETMET R7 R7 K12
- 0x5C240200, // 004A MOVE R9 R1
- 0x5C280400, // 004B MOVE R10 R2
- 0x5C2C0600, // 004C MOVE R11 R3
- 0x7C1C0800, // 004D CALL R7 4
- 0x80040E00, // 004E RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_web_values, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X25s_X20_X25s),
- /* K4 */ be_nested_str_weak(web_value_onoff),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(web_value_dimmer),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x8C180104, // 0006 GETMET R6 R0 K4
- 0x88200105, // 0007 GETMBR R8 R0 K5
- 0x7C180400, // 0008 CALL R6 2
- 0x8C1C0106, // 0009 GETMET R7 R0 K6
- 0x7C1C0200, // 000A CALL R7 1
- 0x7C100600, // 000B CALL R4 3
- 0x7C080400, // 000C CALL R2 2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_bri
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_set_bri, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(scale_uint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(call_remote_sync),
- /* K4 */ be_nested_str_weak(Dimmer),
- /* K5 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(set_bri),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x58140002, // 0003 LDCONST R5 K2
- 0x541A00FD, // 0004 LDINT R6 254
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x54220063, // 0006 LDINT R8 100
- 0x7C080C00, // 0007 CALL R2 6
- 0x8C0C0103, // 0008 GETMET R3 R0 K3
- 0x58140004, // 0009 LDCONST R5 K4
- 0x60180008, // 000A GETGBL R6 G8
- 0x5C1C0400, // 000B MOVE R7 R2
- 0x7C180200, // 000C CALL R6 1
- 0x7C0C0600, // 000D CALL R3 3
- 0x4C100000, // 000E LDNIL R4
- 0x20100604, // 000F NE R4 R3 R4
- 0x78120003, // 0010 JMPF R4 #0015
- 0x8C100105, // 0011 GETMET R4 R0 K5
- 0x5C180600, // 0012 MOVE R6 R3
- 0x541E000A, // 0013 LDINT R7 11
- 0x7C100600, // 0014 CALL R4 3
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_parse_update, /* name */
- be_nested_proto(
- 11, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_update),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(Dimmer),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(scale_uint),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(shadow_bri),
- /* K7 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0700, // 0003 GETMET R3 R3 K0
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x540E000A, // 0007 LDINT R3 11
- 0x1C0C0403, // 0008 EQ R3 R2 R3
- 0x780E0017, // 0009 JMPF R3 #0022
- 0x600C0009, // 000A GETGBL R3 G9
- 0x8C100301, // 000B GETMET R4 R1 K1
- 0x58180002, // 000C LDCONST R6 K2
- 0x7C100400, // 000D CALL R4 2
- 0x7C0C0200, // 000E CALL R3 1
- 0x4C100000, // 000F LDNIL R4
- 0x20100604, // 0010 NE R4 R3 R4
- 0x7812000F, // 0011 JMPF R4 #0022
- 0xB8120600, // 0012 GETNGBL R4 K3
- 0x8C100904, // 0013 GETMET R4 R4 K4
- 0x5C180600, // 0014 MOVE R6 R3
- 0x581C0005, // 0015 LDCONST R7 K5
- 0x54220063, // 0016 LDINT R8 100
- 0x58240005, // 0017 LDCONST R9 K5
- 0x542A00FD, // 0018 LDINT R10 254
- 0x7C100C00, // 0019 CALL R4 6
- 0x88140106, // 001A GETMBR R5 R0 K6
- 0x20140805, // 001B NE R5 R4 R5
- 0x78160004, // 001C JMPF R5 #0022
- 0x8C140107, // 001D GETMET R5 R0 K7
- 0x541E0007, // 001E LDINT R7 8
- 0x58200005, // 001F LDCONST R8 K5
- 0x7C140600, // 0020 CALL R5 3
- 0x90020C04, // 0021 SETMBR R0 K6 R4
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_value_dimmer
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_closure(class_Matter_Plugin_Bridge_Light1_web_value_dimmer, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light1,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- /* K1 */ be_nested_str_weak(shadow_bri),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(scale_uint),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(_X25i_X25_X25),
- /* K6 */ be_nested_str_weak(_X26_X23128261_X3B_X20),
- }),
- be_str_weak(web_value_dimmer),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x4C0C0000, // 0002 LDNIL R3
- 0x20080403, // 0003 NE R2 R2 R3
- 0x780A000C, // 0004 JMPF R2 #0012
- 0xB80A0400, // 0005 GETNGBL R2 K2
- 0x8C080503, // 0006 GETMET R2 R2 K3
- 0x88100101, // 0007 GETMBR R4 R0 K1
- 0x58140004, // 0008 LDCONST R5 K4
- 0x541A00FD, // 0009 LDINT R6 254
- 0x581C0004, // 000A LDCONST R7 K4
- 0x54220063, // 000B LDINT R8 100
- 0x7C080C00, // 000C CALL R2 6
- 0x600C0018, // 000D GETGBL R3 G24
- 0x58100005, // 000E LDCONST R4 K5
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x5C040600, // 0011 MOVE R1 R3
- 0x000A0C01, // 0012 ADD R2 K6 R1
- 0x80040400, // 0013 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Light1
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light0;
-be_local_class(Matter_Plugin_Bridge_Light1,
- 1,
- &be_class_Matter_Plugin_Bridge_Light0,
- be_nested_map(11,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(web_value_dimmer, -1), be_const_closure(class_Matter_Plugin_Bridge_Light1_web_value_dimmer_closure) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_Plugin_Bridge_Light1_parse_update_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light1) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Bridge_Light1_read_attribute_closure) },
- { be_const_key_weak(TYPES, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(257, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(shadow_bri, -1), be_const_var(0) },
- { be_const_key_weak(CLUSTERS, 5), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(7,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(8, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(2),
- be_const_int(3),
- be_const_int(15),
- be_const_int(17),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(set_bri, -1), be_const_closure(class_Matter_Plugin_Bridge_Light1_set_bri_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X201_X20Dimmer) },
- { be_const_key_weak(web_values, 1), be_const_closure(class_Matter_Plugin_Bridge_Light1_web_values_closure) },
- { be_const_key_weak(invoke_request, 0), be_const_closure(class_Matter_Plugin_Bridge_Light1_invoke_request_closure) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Light1)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
deleted file mode 100644
index b8f7cb5b0..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Flow.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Sensor_Flow.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Flow_pre_value, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Flow,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0004, // 0002 JMPF R2 #0008
- 0x60080009, // 0003 GETGBL R2 G9
- 0x540E0009, // 0004 LDINT R3 10
- 0x080C0203, // 0005 MUL R3 R1 R3
- 0x7C080200, // 0006 CALL R2 1
- 0x70020000, // 0007 JMP #0009
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Flow_value_changed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Flow,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- }),
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0403, // 0001 LDINT R3 1028
- 0x58100001, // 0002 LDCONST R4 K1
- 0x7C040600, // 0003 CALL R1 3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Flow'
-extern bclosure *class_Matter_Plugin_Sensor_Flow_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Flow_web_values, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Flow,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20m3_X2Fh),
- /* K4 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x60180009, // 0006 GETGBL R6 G9
- 0x881C0104, // 0007 GETMBR R7 R0 K4
- 0x7C180200, // 0008 CALL R6 1
- 0x7C100400, // 0009 CALL R4 2
- 0x7C080400, // 000A CALL R2 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Flow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_class(Matter_Plugin_Bridge_Sensor_Flow,
- 0,
- &be_class_Matter_Plugin_Bridge_Sensor,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pre_value, 1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Flow_pre_value_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Flow_web_values_closure) },
- { be_const_key_weak(TYPES, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(774, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_static_closure(class_Matter_Plugin_Sensor_Flow_read_attribute_closure) },
- { be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Flow_value_changed_closure) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Flow) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_flow) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1028, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Flow)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
deleted file mode 100644
index 0c1681ff3..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Humidity.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Sensor_Humidity.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_pre_value, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Humidity,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0004, // 0002 JMPF R2 #0008
- 0x60080009, // 0003 GETGBL R2 G9
- 0x540E0063, // 0004 LDINT R3 100
- 0x080C0203, // 0005 MUL R3 R1 R3
- 0x7C080200, // 0006 CALL R2 1
- 0x70020000, // 0007 JMP #0009
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_value_changed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Humidity,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- }),
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0404, // 0001 LDINT R3 1029
- 0x58100001, // 0002 LDCONST R4 K1
- 0x7C040600, // 0003 CALL R1 3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Humidity'
-extern bclosure *class_Matter_Plugin_Sensor_Humidity_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_web_values, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Humidity,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26_X23x1F4A7_X3B_X20_X252_X2E0f_X25_X25),
- /* K4 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x4C1C0000, // 0007 LDNIL R7
- 0x20180C07, // 0008 NE R6 R6 R7
- 0x781A0005, // 0009 JMPF R6 #0010
- 0x6018000A, // 000A GETGBL R6 G10
- 0x881C0104, // 000B GETMBR R7 R0 K4
- 0x7C180200, // 000C CALL R6 1
- 0x541E0063, // 000D LDINT R7 100
- 0x0C180C07, // 000E DIV R6 R6 R7
- 0x70020000, // 000F JMP #0011
- 0x4C180000, // 0010 LDNIL R6
- 0x7C100400, // 0011 CALL R4 2
- 0x7C080400, // 0012 CALL R2 2
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Humidity
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
- 0,
- &be_class_Matter_Plugin_Bridge_Sensor,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pre_value, 1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_pre_value_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_web_values_closure) },
- { be_const_key_weak(TYPES, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(775, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Humidity_read_attribute_closure) },
- { be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Humidity_value_changed_closure) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Humidity) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_humidity) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1029, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Humidity)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
deleted file mode 100644
index 49558b390..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Illuminance.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Sensor_Illuminance.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_pre_value, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Illuminance,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(math),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(log10),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0001, // 0002 JMPF R2 #0005
- 0x4C080000, // 0003 LDNIL R2
- 0x80040400, // 0004 RET 1 R2
- 0xA40A0000, // 0005 IMPORT R2 K0
- 0x140C0301, // 0006 LT R3 R1 K1
- 0x780E0001, // 0007 JMPF R3 #000A
- 0x80060200, // 0008 RET 1 K1
- 0x70020005, // 0009 JMP #0010
- 0x8C0C0502, // 000A GETMET R3 R2 K2
- 0x00140303, // 000B ADD R5 R1 K3
- 0x7C0C0400, // 000C CALL R3 2
- 0x5412270F, // 000D LDINT R4 10000
- 0x080C0604, // 000E MUL R3 R3 R4
- 0x80040600, // 000F RET 1 R3
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_value_changed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Illuminance,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- }),
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E03FF, // 0001 LDINT R3 1024
- 0x58100001, // 0002 LDCONST R4 K1
- 0x7C040600, // 0003 CALL R1 3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Illuminance'
-extern bclosure *class_Matter_Plugin_Sensor_Illuminance_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_web_values, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Illuminance,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26_X23128261_X3B_X20_X25ilux),
- /* K4 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x60180009, // 0006 GETGBL R6 G9
- 0x881C0104, // 0007 GETMBR R7 R0 K4
- 0x7C180200, // 0008 CALL R6 1
- 0x7C100400, // 0009 CALL R4 2
- 0x7C080400, // 000A CALL R2 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Illuminance
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
- 0,
- &be_class_Matter_Plugin_Bridge_Sensor,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pre_value, 1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_pre_value_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_web_values_closure) },
- { be_const_key_weak(TYPES, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(262, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Illuminance_read_attribute_closure) },
- { be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Illuminance_value_changed_closure) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Illuminance) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_illuminance) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1024, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Illuminance)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
deleted file mode 100644
index 4a8cf45cd..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Pressure.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Sensor_Pressure.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_pre_value, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Pressure,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0003, // 0002 JMPF R2 #0007
- 0x60080009, // 0003 GETGBL R2 G9
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x70020000, // 0006 JMP #0008
- 0x4C080000, // 0007 LDNIL R2
- 0x80040400, // 0008 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_value_changed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Pressure,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- }),
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0402, // 0001 LDINT R3 1027
- 0x58100001, // 0002 LDCONST R4 K1
- 0x7C040600, // 0003 CALL R1 3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Pressure'
-extern bclosure *class_Matter_Plugin_Sensor_Pressure_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_web_values, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Pressure,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20hPa),
- /* K4 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x60180009, // 0006 GETGBL R6 G9
- 0x881C0104, // 0007 GETMBR R7 R0 K4
- 0x7C180200, // 0008 CALL R6 1
- 0x7C100400, // 0009 CALL R4 2
- 0x7C080400, // 000A CALL R2 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Pressure
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
- 0,
- &be_class_Matter_Plugin_Bridge_Sensor,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pre_value, 1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_pre_value_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_web_values_closure) },
- { be_const_key_weak(TYPES, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(773, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Pressure_read_attribute_closure) },
- { be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Pressure_value_changed_closure) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Pressure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_pressure) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(1027, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Pressure)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
deleted file mode 100644
index 001b3984d..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_Sensor_Temp.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/* Solidification of Matter_Plugin_4_Bridge_Sensor_Temp.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
-
-/********************************************************************
-** Solidified function: pre_value
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Temp_pre_value, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Temp,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(temp_unit),
- /* K1 */ be_nested_str_weak(TEMP_F),
- /* K2 */ be_const_real_hex(0x3FE66666),
- }),
- be_str_weak(pre_value),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x1C080403, // 0002 EQ R2 R2 R3
- 0x780A0003, // 0003 JMPF R2 #0008
- 0x540A001F, // 0004 LDINT R2 32
- 0x04080202, // 0005 SUB R2 R1 R2
- 0x0C080502, // 0006 DIV R2 R2 K2
- 0x5C040400, // 0007 MOVE R1 R2
- 0x4C080000, // 0008 LDNIL R2
- 0x20080202, // 0009 NE R2 R1 R2
- 0x780A0004, // 000A JMPF R2 #0010
- 0x60080009, // 000B GETGBL R2 G9
- 0x540E0063, // 000C LDINT R3 100
- 0x080C0203, // 000D MUL R3 R1 R3
- 0x7C080200, // 000E CALL R2 1
- 0x70020000, // 000F JMP #0011
- 0x4C080000, // 0010 LDNIL R2
- 0x80040400, // 0011 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: value_changed
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Temp_value_changed, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Temp,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- }),
- be_str_weak(value_changed),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x540E0401, // 0001 LDINT R3 1026
- 0x58100001, // 0002 LDCONST R4 K1
- 0x7C040600, // 0003 CALL R1 3
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Temp'
-extern bclosure *class_Matter_Plugin_Sensor_Temp_read_attribute;
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Temp_web_values, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Temp,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X26_X23x2600_X3B_X26_X23xFE0F_X3B_X20_X25_X2E1f_X20_XC2_XB0C),
- /* K4 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x4C1C0000, // 0007 LDNIL R7
- 0x20180C07, // 0008 NE R6 R6 R7
- 0x781A0005, // 0009 JMPF R6 #0010
- 0x6018000A, // 000A GETGBL R6 G10
- 0x881C0104, // 000B GETMBR R7 R0 K4
- 0x7C180200, // 000C CALL R6 1
- 0x541E0063, // 000D LDINT R7 100
- 0x0C180C07, // 000E DIV R6 R6 R7
- 0x70020000, // 000F JMP #0011
- 0x4C180000, // 0010 LDNIL R6
- 0x7C100400, // 0011 CALL R4 2
- 0x7C080400, // 0012 CALL R2 2
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Sensor_Temp
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
-be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
- 0,
- &be_class_Matter_Plugin_Bridge_Sensor,
- be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(pre_value, 1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Temp_pre_value_closure) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Temp_web_values_closure) },
- { be_const_key_weak(TYPES, 3), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(770, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(read_attribute, 7), be_const_closure(class_Matter_Plugin_Sensor_Temp_read_attribute_closure) },
- { be_const_key_weak(value_changed, 6), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Temp_value_changed_closure) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Temperature) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_temperature) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(1026, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Sensor_Temp)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
deleted file mode 100644
index 703f9b595..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light2.h
+++ /dev/null
@@ -1,550 +0,0 @@
-/* Solidification of Matter_Plugin_5_Bridge_Light2.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(update_ct_minmax),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_parse_update, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_update),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(CT),
- /* K3 */ be_nested_str_weak(shadow_ct),
- /* K4 */ be_nested_str_weak(ct_min),
- /* K5 */ be_nested_str_weak(ct_max),
- /* K6 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0700, // 0003 GETMET R3 R3 K0
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x540E000A, // 0007 LDINT R3 11
- 0x1C0C0403, // 0008 EQ R3 R2 R3
- 0x780E0017, // 0009 JMPF R3 #0022
- 0x600C0009, // 000A GETGBL R3 G9
- 0x8C100301, // 000B GETMET R4 R1 K1
- 0x58180002, // 000C LDCONST R6 K2
- 0x7C100400, // 000D CALL R4 2
- 0x7C0C0200, // 000E CALL R3 1
- 0x4C100000, // 000F LDNIL R4
- 0x20100604, // 0010 NE R4 R3 R4
- 0x7812000F, // 0011 JMPF R4 #0022
- 0x88100103, // 0012 GETMBR R4 R0 K3
- 0x20100604, // 0013 NE R4 R3 R4
- 0x7812000C, // 0014 JMPF R4 #0022
- 0x88100104, // 0015 GETMBR R4 R0 K4
- 0x14100604, // 0016 LT R4 R3 R4
- 0x78120000, // 0017 JMPF R4 #0019
- 0x880C0104, // 0018 GETMBR R3 R0 K4
- 0x88100105, // 0019 GETMBR R4 R0 K5
- 0x24100604, // 001A GT R4 R3 R4
- 0x78120000, // 001B JMPF R4 #001D
- 0x880C0105, // 001C GETMBR R3 R0 K5
- 0x8C100106, // 001D GETMET R4 R0 K6
- 0x541A02FF, // 001E LDINT R6 768
- 0x541E0006, // 001F LDINT R7 7
- 0x7C100600, // 0020 CALL R4 3
- 0x90020603, // 0021 SETMBR R0 K3 R3
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
- /* K4 */ be_nested_str_weak(web_value_onoff),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(web_value_dimmer),
- /* K7 */ be_nested_str_weak(web_value_ct),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x8C180104, // 0006 GETMET R6 R0 K4
- 0x88200105, // 0007 GETMBR R8 R0 K5
- 0x7C180400, // 0008 CALL R6 2
- 0x8C1C0106, // 0009 GETMET R7 R0 K6
- 0x7C1C0200, // 000A CALL R7 1
- 0x8C200107, // 000B GETMET R8 R0 K7
- 0x7C200200, // 000C CALL R8 1
- 0x7C100800, // 000D CALL R4 4
- 0x7C080400, // 000E CALL R2 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_value_ct
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_web_value_ct, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- /* K1 */ be_nested_str_weak(shadow_ct),
- /* K2 */ be_const_int(1000000),
- /* K3 */ be_nested_str_weak(_X25iK),
- /* K4 */ be_nested_str_weak(_X26_X239898_X3B_X20),
- }),
- be_str_weak(web_value_ct),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x4C0C0000, // 0002 LDNIL R3
- 0x20080403, // 0003 NE R2 R2 R3
- 0x780A000C, // 0004 JMPF R2 #0012
- 0x88080101, // 0005 GETMBR R2 R0 K1
- 0x0C0A0402, // 0006 DIV R2 K2 R2
- 0x540E0018, // 0007 LDINT R3 25
- 0x00080403, // 0008 ADD R2 R2 R3
- 0x540E0031, // 0009 LDINT R3 50
- 0x0C080403, // 000A DIV R2 R2 R3
- 0x540E0031, // 000B LDINT R3 50
- 0x08080403, // 000C MUL R2 R2 R3
- 0x600C0018, // 000D GETGBL R3 G24
- 0x58100003, // 000E LDCONST R4 K3
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x5C040600, // 0011 MOVE R1 R3
- 0x000A0801, // 0012 ADD R2 K4 R1
- 0x80040400, // 0013 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_ct
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_set_ct, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(call_remote_sync),
- /* K1 */ be_nested_str_weak(CT),
- /* K2 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(set_ct),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x60140008, // 0002 GETGBL R5 G8
- 0x5C180200, // 0003 MOVE R6 R1
- 0x7C140200, // 0004 CALL R5 1
- 0x7C080600, // 0005 CALL R2 3
- 0x4C0C0000, // 0006 LDNIL R3
- 0x200C0403, // 0007 NE R3 R2 R3
- 0x780E0003, // 0008 JMPF R3 #000D
- 0x8C0C0102, // 0009 GETMET R3 R0 K2
- 0x5C140400, // 000A MOVE R5 R2
- 0x541A000A, // 000B LDINT R6 11
- 0x7C0C0600, // 000C CALL R3 3
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_invoke_request, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(command),
- /* K4 */ be_nested_str_weak(findsubval),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(ct_min),
- /* K7 */ be_nested_str_weak(ct_max),
- /* K8 */ be_nested_str_weak(set_ct),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(ct_X3A),
- /* K11 */ be_nested_str_weak(publish_command),
- /* K12 */ be_nested_str_weak(CT),
- /* K13 */ be_nested_str_weak(invoke_request),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[64]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140702, // 0002 GETMBR R5 R3 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x541E02FF, // 0004 LDINT R7 768
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E002E, // 0006 JMPF R7 #0036
- 0x541E0009, // 0007 LDINT R7 10
- 0x1C1C0C07, // 0008 EQ R7 R6 R7
- 0x781E0019, // 0009 JMPF R7 #0024
- 0x8C1C0504, // 000A GETMET R7 R2 K4
- 0x58240005, // 000B LDCONST R9 K5
- 0x7C1C0400, // 000C CALL R7 2
- 0x88200106, // 000D GETMBR R8 R0 K6
- 0x14200E08, // 000E LT R8 R7 R8
- 0x78220000, // 000F JMPF R8 #0011
- 0x881C0106, // 0010 GETMBR R7 R0 K6
- 0x88200107, // 0011 GETMBR R8 R0 K7
- 0x24200E08, // 0012 GT R8 R7 R8
- 0x78220000, // 0013 JMPF R8 #0015
- 0x881C0107, // 0014 GETMBR R7 R0 K7
- 0x8C200108, // 0015 GETMET R8 R0 K8
- 0x5C280E00, // 0016 MOVE R10 R7
- 0x7C200400, // 0017 CALL R8 2
- 0x60200008, // 0018 GETGBL R8 G8
- 0x5C240E00, // 0019 MOVE R9 R7
- 0x7C200200, // 001A CALL R8 1
- 0x00221408, // 001B ADD R8 K10 R8
- 0x900E1208, // 001C SETMBR R3 K9 R8
- 0x8C20010B, // 001D GETMET R8 R0 K11
- 0x5828000C, // 001E LDCONST R10 K12
- 0x5C2C0E00, // 001F MOVE R11 R7
- 0x7C200600, // 0020 CALL R8 3
- 0x50200200, // 0021 LDBOOL R8 1 0
- 0x80041000, // 0022 RET 1 R8
- 0x70020010, // 0023 JMP #0035
- 0x541E0046, // 0024 LDINT R7 71
- 0x1C1C0C07, // 0025 EQ R7 R6 R7
- 0x781E0002, // 0026 JMPF R7 #002A
- 0x501C0200, // 0027 LDBOOL R7 1 0
- 0x80040E00, // 0028 RET 1 R7
- 0x7002000A, // 0029 JMP #0035
- 0x541E004A, // 002A LDINT R7 75
- 0x1C1C0C07, // 002B EQ R7 R6 R7
- 0x781E0002, // 002C JMPF R7 #0030
- 0x501C0200, // 002D LDBOOL R7 1 0
- 0x80040E00, // 002E RET 1 R7
- 0x70020004, // 002F JMP #0035
- 0x541E004B, // 0030 LDINT R7 76
- 0x1C1C0C07, // 0031 EQ R7 R6 R7
- 0x781E0001, // 0032 JMPF R7 #0035
- 0x501C0200, // 0033 LDBOOL R7 1 0
- 0x80040E00, // 0034 RET 1 R7
- 0x70020008, // 0035 JMP #003F
- 0x601C0003, // 0036 GETGBL R7 G3
- 0x5C200000, // 0037 MOVE R8 R0
- 0x7C1C0200, // 0038 CALL R7 1
- 0x8C1C0F0D, // 0039 GETMET R7 R7 K13
- 0x5C240200, // 003A MOVE R9 R1
- 0x5C280400, // 003B MOVE R10 R2
- 0x5C2C0600, // 003C MOVE R11 R3
- 0x7C1C0800, // 003D CALL R7 4
- 0x80040E00, // 003E RET 1 R7
- 0x80000000, // 003F RET 0
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Light2'
-extern bclosure *class_Matter_Plugin_Light2_read_attribute;
-
-/********************************************************************
-** Solidified function: update_ct_minmax
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light2;
-be_local_closure(class_Matter_Plugin_Bridge_Light2_update_ct_minmax, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light2,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(get_option),
- /* K2 */ be_nested_str_weak(ct_min),
- /* K3 */ be_nested_str_weak(ct_max),
- }),
- be_str_weak(update_ct_minmax),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x540E0051, // 0002 LDINT R3 82
- 0x7C040400, // 0003 CALL R1 2
- 0x78060001, // 0004 JMPF R1 #0007
- 0x540A00C7, // 0005 LDINT R2 200
- 0x70020000, // 0006 JMP #0008
- 0x540A0098, // 0007 LDINT R2 153
- 0x90020402, // 0008 SETMBR R0 K2 R2
- 0x78060001, // 0009 JMPF R1 #000C
- 0x540A017B, // 000A LDINT R2 380
- 0x70020000, // 000B JMP #000D
- 0x540A01F3, // 000C LDINT R2 500
- 0x90020602, // 000D SETMBR R0 K3 R2
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Light2
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_class(Matter_Plugin_Bridge_Light2,
- 3,
- &be_class_Matter_Plugin_Bridge_Light1,
- be_nested_map(15,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_init_closure) },
- { be_const_key_weak(parse_update, 9), be_const_closure(class_Matter_Plugin_Bridge_Light2_parse_update_closure) },
- { be_const_key_weak(web_values, 11), be_const_closure(class_Matter_Plugin_Bridge_Light2_web_values_closure) },
- { be_const_key_weak(ct_max, -1), be_const_var(2) },
- { be_const_key_weak(CLUSTERS, 14), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(2),
- be_const_int(3),
- be_const_int(15),
- be_const_int(17),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(7),
- be_const_int(8),
- be_const_int(15),
- be_const_int(16394),
- be_const_int(16395),
- be_const_int(16396),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(268, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(web_value_ct, 8), be_const_closure(class_Matter_Plugin_Bridge_Light2_web_value_ct_closure) },
- { be_const_key_weak(set_ct, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_set_ct_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X202_X20CT) },
- { be_const_key_weak(shadow_ct, -1), be_const_var(0) },
- { be_const_key_weak(update_ct_minmax, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_update_ct_minmax_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Bridge_Light2_invoke_request_closure) },
- { be_const_key_weak(read_attribute, 10), be_const_closure(class_Matter_Plugin_Light2_read_attribute_closure) },
- { be_const_key_weak(ct_min, -1), be_const_var(1) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light2) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Light2)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
deleted file mode 100644
index 31cbfdca5..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_5_Bridge_Light3.h
+++ /dev/null
@@ -1,699 +0,0 @@
-/* Solidification of Matter_Plugin_5_Bridge_Light3.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-
-/********************************************************************
-** Solidified function: set_sat
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_set_sat, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(scale_uint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(call_remote_sync),
- /* K4 */ be_nested_str_weak(HSBColor2),
- /* K5 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(set_sat),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x58140002, // 0003 LDCONST R5 K2
- 0x541A00FD, // 0004 LDINT R6 254
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x54220063, // 0006 LDINT R8 100
- 0x7C080C00, // 0007 CALL R2 6
- 0x8C0C0103, // 0008 GETMET R3 R0 K3
- 0x58140004, // 0009 LDCONST R5 K4
- 0x5C180400, // 000A MOVE R6 R2
- 0x7C0C0600, // 000B CALL R3 3
- 0x4C100000, // 000C LDNIL R4
- 0x20100604, // 000D NE R4 R3 R4
- 0x78120003, // 000E JMPF R4 #0013
- 0x8C100105, // 000F GETMET R4 R0 K5
- 0x5C180600, // 0010 MOVE R6 R3
- 0x541E000A, // 0011 LDINT R7 11
- 0x7C100600, // 0012 CALL R4 3
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_update
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_parse_update, /* name */
- be_nested_proto(
- 15, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(parse_update),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(HSBColor),
- /* K3 */ be_nested_str_weak(string),
- /* K4 */ be_nested_str_weak(split),
- /* K5 */ be_nested_str_weak(_X2C),
- /* K6 */ be_const_int(0),
- /* K7 */ be_const_int(1),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(scale_uint),
- /* K10 */ be_nested_str_weak(shadow_hue),
- /* K11 */ be_nested_str_weak(shadow_sat),
- /* K12 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(parse_update),
- &be_const_str_solidified,
- ( &(const binstruction[70]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0700, // 0003 GETMET R3 R3 K0
- 0x5C140200, // 0004 MOVE R5 R1
- 0x5C180400, // 0005 MOVE R6 R2
- 0x7C0C0600, // 0006 CALL R3 3
- 0x540E000A, // 0007 LDINT R3 11
- 0x1C0C0403, // 0008 EQ R3 R2 R3
- 0x780E003A, // 0009 JMPF R3 #0045
- 0x8C0C0301, // 000A GETMET R3 R1 K1
- 0x58140002, // 000B LDCONST R5 K2
- 0x7C0C0400, // 000C CALL R3 2
- 0x780E0036, // 000D JMPF R3 #0045
- 0xA4120600, // 000E IMPORT R4 K3
- 0x8C140904, // 000F GETMET R5 R4 K4
- 0x5C1C0600, // 0010 MOVE R7 R3
- 0x58200005, // 0011 LDCONST R8 K5
- 0x7C140600, // 0012 CALL R5 3
- 0x60180009, // 0013 GETGBL R6 G9
- 0x941C0B06, // 0014 GETIDX R7 R5 K6
- 0x7C180200, // 0015 CALL R6 1
- 0x601C0009, // 0016 GETGBL R7 G9
- 0x94200B07, // 0017 GETIDX R8 R5 K7
- 0x7C1C0200, // 0018 CALL R7 1
- 0x4C200000, // 0019 LDNIL R8
- 0x20200C08, // 001A NE R8 R6 R8
- 0x78220009, // 001B JMPF R8 #0026
- 0xB8221000, // 001C GETNGBL R8 K8
- 0x8C201109, // 001D GETMET R8 R8 K9
- 0x5C280C00, // 001E MOVE R10 R6
- 0x582C0006, // 001F LDCONST R11 K6
- 0x54320167, // 0020 LDINT R12 360
- 0x58340006, // 0021 LDCONST R13 K6
- 0x543A00FD, // 0022 LDINT R14 254
- 0x7C200C00, // 0023 CALL R8 6
- 0x5C181000, // 0024 MOVE R6 R8
- 0x70020000, // 0025 JMP #0027
- 0x8818010A, // 0026 GETMBR R6 R0 K10
- 0x4C200000, // 0027 LDNIL R8
- 0x20200E08, // 0028 NE R8 R7 R8
- 0x78220009, // 0029 JMPF R8 #0034
- 0xB8221000, // 002A GETNGBL R8 K8
- 0x8C201109, // 002B GETMET R8 R8 K9
- 0x5C280E00, // 002C MOVE R10 R7
- 0x582C0006, // 002D LDCONST R11 K6
- 0x54320063, // 002E LDINT R12 100
- 0x58340006, // 002F LDCONST R13 K6
- 0x543A00FD, // 0030 LDINT R14 254
- 0x7C200C00, // 0031 CALL R8 6
- 0x5C1C1000, // 0032 MOVE R7 R8
- 0x70020000, // 0033 JMP #0035
- 0x881C010B, // 0034 GETMBR R7 R0 K11
- 0x8820010A, // 0035 GETMBR R8 R0 K10
- 0x20200C08, // 0036 NE R8 R6 R8
- 0x78220004, // 0037 JMPF R8 #003D
- 0x8C20010C, // 0038 GETMET R8 R0 K12
- 0x542A02FF, // 0039 LDINT R10 768
- 0x582C0006, // 003A LDCONST R11 K6
- 0x7C200600, // 003B CALL R8 3
- 0x90021406, // 003C SETMBR R0 K10 R6
- 0x8820010B, // 003D GETMBR R8 R0 K11
- 0x20200E08, // 003E NE R8 R7 R8
- 0x78220004, // 003F JMPF R8 #0045
- 0x8C20010C, // 0040 GETMET R8 R0 K12
- 0x542A02FF, // 0041 LDINT R10 768
- 0x582C0007, // 0042 LDCONST R11 K7
- 0x7C200600, // 0043 CALL R8 3
- 0x90021607, // 0044 SETMBR R0 K11 R7
- 0x80000000, // 0045 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
- /* K4 */ be_nested_str_weak(web_value_onoff),
- /* K5 */ be_nested_str_weak(shadow_onoff),
- /* K6 */ be_nested_str_weak(web_value_dimmer),
- /* K7 */ be_nested_str_weak(web_value_RGB),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x8C180104, // 0006 GETMET R6 R0 K4
- 0x88200105, // 0007 GETMBR R8 R0 K5
- 0x7C180400, // 0008 CALL R6 2
- 0x8C1C0106, // 0009 GETMET R7 R0 K6
- 0x7C1C0200, // 000A CALL R7 1
- 0x8C200107, // 000B GETMET R8 R0 K7
- 0x7C200200, // 000C CALL R8 1
- 0x7C100800, // 000D CALL R4 4
- 0x7C080400, // 000E CALL R2 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_value_RGB
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(shadow_hue),
- /* K1 */ be_nested_str_weak(shadow_sat),
- /* K2 */ be_nested_str_weak(light_state),
- /* K3 */ be_const_int(3),
- /* K4 */ be_nested_str_weak(set_bri),
- /* K5 */ be_nested_str_weak(set_huesat),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(scale_uint),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(_X23_X2502X_X2502X_X2502X),
- /* K10 */ be_nested_str_weak(r),
- /* K11 */ be_nested_str_weak(g),
- /* K12 */ be_nested_str_weak(b),
- /* K13 */ be_nested_str_weak(_X3Ci_X20class_X3D_X22bxm_X22_X20style_X3D_X22_X2D_X2Dcl_X3A_X25s_X22_X3E_X3C_X2Fi_X3E_X25s),
- /* K14 */ be_nested_str_weak(),
- }),
- be_str_weak(web_value_RGB),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060027, // 0003 JMPF R1 #002C
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x20040202, // 0006 NE R1 R1 R2
- 0x78060023, // 0007 JMPF R1 #002C
- 0xB8060400, // 0008 GETNGBL R1 K2
- 0x58080003, // 0009 LDCONST R2 K3
- 0x7C040200, // 000A CALL R1 1
- 0x8C080304, // 000B GETMET R2 R1 K4
- 0x541200FE, // 000C LDINT R4 255
- 0x7C080400, // 000D CALL R2 2
- 0x8C080305, // 000E GETMET R2 R1 K5
- 0xB8120C00, // 000F GETNGBL R4 K6
- 0x8C100907, // 0010 GETMET R4 R4 K7
- 0x88180100, // 0011 GETMBR R6 R0 K0
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x542200FD, // 0013 LDINT R8 254
- 0x58240008, // 0014 LDCONST R9 K8
- 0x542A0167, // 0015 LDINT R10 360
- 0x7C100C00, // 0016 CALL R4 6
- 0xB8160C00, // 0017 GETNGBL R5 K6
- 0x8C140B07, // 0018 GETMET R5 R5 K7
- 0x881C0101, // 0019 GETMBR R7 R0 K1
- 0x58200008, // 001A LDCONST R8 K8
- 0x542600FD, // 001B LDINT R9 254
- 0x58280008, // 001C LDCONST R10 K8
- 0x542E00FE, // 001D LDINT R11 255
- 0x7C140C00, // 001E CALL R5 6
- 0x7C080600, // 001F CALL R2 3
- 0x60080018, // 0020 GETGBL R2 G24
- 0x580C0009, // 0021 LDCONST R3 K9
- 0x8810030A, // 0022 GETMBR R4 R1 K10
- 0x8814030B, // 0023 GETMBR R5 R1 K11
- 0x8818030C, // 0024 GETMBR R6 R1 K12
- 0x7C080800, // 0025 CALL R2 4
- 0x600C0018, // 0026 GETGBL R3 G24
- 0x5810000D, // 0027 LDCONST R4 K13
- 0x5C140400, // 0028 MOVE R5 R2
- 0x5C180400, // 0029 MOVE R6 R2
- 0x7C0C0600, // 002A CALL R3 3
- 0x80040600, // 002B RET 1 R3
- 0x80061C00, // 002C RET 1 K14
- })
- )
-);
-/*******************************************************************/
-
-// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Light3'
-extern bclosure *class_Matter_Plugin_Light3_read_attribute;
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_invoke_request, /* name */
- be_nested_proto(
- 15, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(command),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(findsubval),
- /* K6 */ be_nested_str_weak(set_hue),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(hue_X3A),
- /* K9 */ be_nested_str_weak(publish_command),
- /* K10 */ be_nested_str_weak(Hue),
- /* K11 */ be_const_int(1),
- /* K12 */ be_const_int(2),
- /* K13 */ be_const_int(3),
- /* K14 */ be_nested_str_weak(set_sat),
- /* K15 */ be_nested_str_weak(sat_X3A),
- /* K16 */ be_nested_str_weak(Sat),
- /* K17 */ be_nested_str_weak(_X20sat_X3A),
- /* K18 */ be_nested_str_weak(invoke_request),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[119]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140702, // 0002 GETMBR R5 R3 K2
- 0x88180703, // 0003 GETMBR R6 R3 K3
- 0x541E02FF, // 0004 LDINT R7 768
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0065, // 0006 JMPF R7 #006D
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x8C1C0505, // 0009 GETMET R7 R2 K5
- 0x58240004, // 000A LDCONST R9 K4
- 0x7C1C0400, // 000B CALL R7 2
- 0x8C200106, // 000C GETMET R8 R0 K6
- 0x5C280E00, // 000D MOVE R10 R7
- 0x7C200400, // 000E CALL R8 2
- 0x60200008, // 000F GETGBL R8 G8
- 0x5C240E00, // 0010 MOVE R9 R7
- 0x7C200200, // 0011 CALL R8 1
- 0x00221008, // 0012 ADD R8 K8 R8
- 0x900E0E08, // 0013 SETMBR R3 K7 R8
- 0x8C200109, // 0014 GETMET R8 R0 K9
- 0x5828000A, // 0015 LDCONST R10 K10
- 0x5C2C0E00, // 0016 MOVE R11 R7
- 0x7C200600, // 0017 CALL R8 3
- 0x50200200, // 0018 LDBOOL R8 1 0
- 0x80041000, // 0019 RET 1 R8
- 0x70020050, // 001A JMP #006C
- 0x1C1C0D0B, // 001B EQ R7 R6 K11
- 0x781E0002, // 001C JMPF R7 #0020
- 0x501C0200, // 001D LDBOOL R7 1 0
- 0x80040E00, // 001E RET 1 R7
- 0x7002004B, // 001F JMP #006C
- 0x1C1C0D0C, // 0020 EQ R7 R6 K12
- 0x781E0002, // 0021 JMPF R7 #0025
- 0x501C0200, // 0022 LDBOOL R7 1 0
- 0x80040E00, // 0023 RET 1 R7
- 0x70020046, // 0024 JMP #006C
- 0x1C1C0D0D, // 0025 EQ R7 R6 K13
- 0x781E0011, // 0026 JMPF R7 #0039
- 0x8C1C0505, // 0027 GETMET R7 R2 K5
- 0x58240004, // 0028 LDCONST R9 K4
- 0x7C1C0400, // 0029 CALL R7 2
- 0x8C20010E, // 002A GETMET R8 R0 K14
- 0x5C280E00, // 002B MOVE R10 R7
- 0x7C200400, // 002C CALL R8 2
- 0x60200008, // 002D GETGBL R8 G8
- 0x5C240E00, // 002E MOVE R9 R7
- 0x7C200200, // 002F CALL R8 1
- 0x00221E08, // 0030 ADD R8 K15 R8
- 0x900E0E08, // 0031 SETMBR R3 K7 R8
- 0x8C200109, // 0032 GETMET R8 R0 K9
- 0x58280010, // 0033 LDCONST R10 K16
- 0x5C2C0E00, // 0034 MOVE R11 R7
- 0x7C200600, // 0035 CALL R8 3
- 0x50200200, // 0036 LDBOOL R8 1 0
- 0x80041000, // 0037 RET 1 R8
- 0x70020032, // 0038 JMP #006C
- 0x541E0003, // 0039 LDINT R7 4
- 0x1C1C0C07, // 003A EQ R7 R6 R7
- 0x781E0002, // 003B JMPF R7 #003F
- 0x501C0200, // 003C LDBOOL R7 1 0
- 0x80040E00, // 003D RET 1 R7
- 0x7002002C, // 003E JMP #006C
- 0x541E0004, // 003F LDINT R7 5
- 0x1C1C0C07, // 0040 EQ R7 R6 R7
- 0x781E0002, // 0041 JMPF R7 #0045
- 0x501C0200, // 0042 LDBOOL R7 1 0
- 0x80040E00, // 0043 RET 1 R7
- 0x70020026, // 0044 JMP #006C
- 0x541E0005, // 0045 LDINT R7 6
- 0x1C1C0C07, // 0046 EQ R7 R6 R7
- 0x781E001E, // 0047 JMPF R7 #0067
- 0x8C1C0505, // 0048 GETMET R7 R2 K5
- 0x58240004, // 0049 LDCONST R9 K4
- 0x7C1C0400, // 004A CALL R7 2
- 0x8C200505, // 004B GETMET R8 R2 K5
- 0x5828000B, // 004C LDCONST R10 K11
- 0x7C200400, // 004D CALL R8 2
- 0x8C240106, // 004E GETMET R9 R0 K6
- 0x5C2C0E00, // 004F MOVE R11 R7
- 0x7C240400, // 0050 CALL R9 2
- 0x8C24010E, // 0051 GETMET R9 R0 K14
- 0x5C2C1000, // 0052 MOVE R11 R8
- 0x7C240400, // 0053 CALL R9 2
- 0x60240008, // 0054 GETGBL R9 G8
- 0x5C280E00, // 0055 MOVE R10 R7
- 0x7C240200, // 0056 CALL R9 1
- 0x00261009, // 0057 ADD R9 K8 R9
- 0x00241311, // 0058 ADD R9 R9 K17
- 0x60280008, // 0059 GETGBL R10 G8
- 0x5C2C1000, // 005A MOVE R11 R8
- 0x7C280200, // 005B CALL R10 1
- 0x0024120A, // 005C ADD R9 R9 R10
- 0x900E0E09, // 005D SETMBR R3 K7 R9
- 0x8C240109, // 005E GETMET R9 R0 K9
- 0x582C000A, // 005F LDCONST R11 K10
- 0x5C300E00, // 0060 MOVE R12 R7
- 0x58340010, // 0061 LDCONST R13 K16
- 0x5C381000, // 0062 MOVE R14 R8
- 0x7C240A00, // 0063 CALL R9 5
- 0x50240200, // 0064 LDBOOL R9 1 0
- 0x80041200, // 0065 RET 1 R9
- 0x70020004, // 0066 JMP #006C
- 0x541E0046, // 0067 LDINT R7 71
- 0x1C1C0C07, // 0068 EQ R7 R6 R7
- 0x781E0001, // 0069 JMPF R7 #006C
- 0x501C0200, // 006A LDBOOL R7 1 0
- 0x80040E00, // 006B RET 1 R7
- 0x70020008, // 006C JMP #0076
- 0x601C0003, // 006D GETGBL R7 G3
- 0x5C200000, // 006E MOVE R8 R0
- 0x7C1C0200, // 006F CALL R7 1
- 0x8C1C0F12, // 0070 GETMET R7 R7 K18
- 0x5C240200, // 0071 MOVE R9 R1
- 0x5C280400, // 0072 MOVE R10 R2
- 0x5C2C0600, // 0073 MOVE R11 R3
- 0x7C1C0800, // 0074 CALL R7 4
- 0x80040E00, // 0075 RET 1 R7
- 0x80000000, // 0076 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_hue
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_set_hue, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(scale_uint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(call_remote_sync),
- /* K4 */ be_nested_str_weak(HSBColor1),
- /* K5 */ be_nested_str_weak(parse_update),
- }),
- be_str_weak(set_hue),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x58140002, // 0003 LDCONST R5 K2
- 0x541A00FD, // 0004 LDINT R6 254
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x54220167, // 0006 LDINT R8 360
- 0x7C080C00, // 0007 CALL R2 6
- 0x8C0C0103, // 0008 GETMET R3 R0 K3
- 0x58140004, // 0009 LDCONST R5 K4
- 0x5C180400, // 000A MOVE R6 R2
- 0x7C0C0600, // 000B CALL R3 3
- 0x4C100000, // 000C LDNIL R4
- 0x20100604, // 000D NE R4 R3 R4
- 0x78120003, // 000E JMPF R4 #0013
- 0x8C100105, // 000F GETMET R4 R0 K5
- 0x5C180600, // 0010 MOVE R6 R3
- 0x541E000A, // 0011 LDINT R7 11
- 0x7C100600, // 0012 CALL R4 3
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light3;
-be_local_closure(class_Matter_Plugin_Bridge_Light3_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Light3,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Bridge_Light3
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Light1;
-be_local_class(Matter_Plugin_Bridge_Light3,
- 2,
- &be_class_Matter_Plugin_Bridge_Light1,
- be_nested_map(14,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(set_sat, 6), be_const_closure(class_Matter_Plugin_Bridge_Light3_set_sat_closure) },
- { be_const_key_weak(init, 8), be_const_closure(class_Matter_Plugin_Bridge_Light3_init_closure) },
- { be_const_key_weak(parse_update, -1), be_const_closure(class_Matter_Plugin_Bridge_Light3_parse_update_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light3) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Light3_web_values_closure) },
- { be_const_key_weak(web_value_RGB, 1), be_const_closure(class_Matter_Plugin_Bridge_Light3_web_value_RGB_closure) },
- { be_const_key_weak(CLUSTERS, 13), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(8,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(8, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(11,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(2),
- be_const_int(3),
- be_const_int(15),
- be_const_int(17),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(5, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(768, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(13,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(7),
- be_const_int(8),
- be_const_int(15),
- be_const_int(16385),
- be_const_int(16394),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_Bridge_Light3_invoke_request_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Light_X203_X20RGB) },
- { be_const_key_weak(set_hue, 11), be_const_closure(class_Matter_Plugin_Bridge_Light3_set_hue_closure) },
- { be_const_key_weak(shadow_hue, 9), be_const_var(0) },
- { be_const_key_weak(TYPES, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(269, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(shadow_sat, -1), be_const_var(1) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Light3_read_attribute_closure) },
- })),
- be_str_weak(Matter_Plugin_Bridge_Light3)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light0.h
new file mode 100644
index 000000000..de83054ba
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light0.h
@@ -0,0 +1,25 @@
+/* Solidification of Matter_Plugin_8_Bridge_Light0.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Light0;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Light0
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light0;
+be_local_class(Matter_Plugin_Bridge_Light0,
+ 0,
+ &be_class_Matter_Plugin_Light0,
+ be_nested_map(3,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(3000) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light0) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Light0)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light1.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light1.h
new file mode 100644
index 000000000..cd50b370a
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light1.h
@@ -0,0 +1,54 @@
+/* Solidification of Matter_Plugin_8_Bridge_Light1.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Light1;
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Bridge_Light1__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Light1
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light1;
+be_local_class(Matter_Plugin_Bridge_Light1,
+ 0,
+ &be_class_Matter_Plugin_Light1,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light1) },
+ { be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
+ { be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light1__X3Clambda_X3E_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Light1)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light2.h
new file mode 100644
index 000000000..e21b658e0
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light2.h
@@ -0,0 +1,54 @@
+/* Solidification of Matter_Plugin_8_Bridge_Light2.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Light2;
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Bridge_Light2__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Light2
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light2;
+be_local_class(Matter_Plugin_Bridge_Light2,
+ 0,
+ &be_class_Matter_Plugin_Light2,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light2) },
+ { be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
+ { be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light2__X3Clambda_X3E_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Light2)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light3.h
new file mode 100644
index 000000000..ef62d3a68
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Light3.h
@@ -0,0 +1,54 @@
+/* Solidification of Matter_Plugin_8_Bridge_Light3.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Light3;
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Bridge_Light3__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Light3
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Light3;
+be_local_class(Matter_Plugin_Bridge_Light3,
+ 0,
+ &be_class_Matter_Plugin_Light3,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(http_light3) },
+ { be_const_key_weak(UPDATE_TIME, 2), be_const_int(3000) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(relay) },
+ { be_const_key_weak(ARG_TYPE, 0), be_const_static_closure(class_Matter_Plugin_Bridge_Light3__X3Clambda_X3E_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Light3)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_OnOff.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_OnOff.h
similarity index 98%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_OnOff.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_OnOff.h
index 7e53d6f4c..7ac5d5852 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Bridge_OnOff.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_OnOff.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_4_Bridge_OnOff.h */
+/* Solidification of Matter_Plugin_8_Bridge_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
new file mode 100644
index 000000000..70f535d0f
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
@@ -0,0 +1,167 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Air_Quality.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_status, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(prefix),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0002, // 0002 JMPF R3 #0006
+ 0x8C0C0300, // 0003 GETMET R3 R1 K0
+ 0x88140101, // 0004 GETMBR R5 R0 K1
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(content_send),
+ /* K2 */ be_nested_str_weak(_X25s_X20_X25i_X20),
+ }),
+ be_str_weak(web_values_single),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0007, // 0002 JMPF R2 #000B
+ 0xA40A0000, // 0003 IMPORT R2 K0
+ 0x8C0C0501, // 0004 GETMET R3 R2 K1
+ 0x60140018, // 0005 GETGBL R5 G24
+ 0x58180002, // 0006 LDCONST R6 K2
+ 0x5C1C0000, // 0007 MOVE R7 R0
+ 0x5C200200, // 0008 MOVE R8 R1
+ 0x7C140600, // 0009 CALL R5 3
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x80000000, // 000B RET 0
+ })
+ ),
+ &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(web_values_prefix),
+ /* K1 */ be_nested_str_weak(Air),
+ /* K2 */ be_nested_str_weak(shadow_air_quality),
+ /* K3 */ be_nested_str_weak(PM1),
+ /* K4 */ be_nested_str_weak(shadow_pm1),
+ /* K5 */ be_nested_str_weak(PM2_X2E5),
+ /* K6 */ be_nested_str_weak(shadow_pm2_5),
+ /* K7 */ be_nested_str_weak(PM10),
+ /* K8 */ be_nested_str_weak(shadow_pm10),
+ /* K9 */ be_nested_str_weak(CO2),
+ /* K10 */ be_nested_str_weak(shadow_co2),
+ /* K11 */ be_nested_str_weak(NO2),
+ /* K12 */ be_nested_str_weak(shadow_no2),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(shadow_tvoc),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x84040000, // 0000 CLOSURE R1 P0
+ 0x8C080100, // 0001 GETMET R2 R0 K0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C080200, // 0003 MOVE R2 R1
+ 0x580C0001, // 0004 LDCONST R3 K1
+ 0x88100102, // 0005 GETMBR R4 R0 K2
+ 0x7C080400, // 0006 CALL R2 2
+ 0x5C080200, // 0007 MOVE R2 R1
+ 0x580C0003, // 0008 LDCONST R3 K3
+ 0x88100104, // 0009 GETMBR R4 R0 K4
+ 0x7C080400, // 000A CALL R2 2
+ 0x5C080200, // 000B MOVE R2 R1
+ 0x580C0005, // 000C LDCONST R3 K5
+ 0x88100106, // 000D GETMBR R4 R0 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x5C080200, // 000F MOVE R2 R1
+ 0x580C0007, // 0010 LDCONST R3 K7
+ 0x88100108, // 0011 GETMBR R4 R0 K8
+ 0x7C080400, // 0012 CALL R2 2
+ 0x5C080200, // 0013 MOVE R2 R1
+ 0x580C0009, // 0014 LDCONST R3 K9
+ 0x8810010A, // 0015 GETMBR R4 R0 K10
+ 0x7C080400, // 0016 CALL R2 2
+ 0x5C080200, // 0017 MOVE R2 R1
+ 0x580C000B, // 0018 LDCONST R3 K11
+ 0x8810010C, // 0019 GETMBR R4 R0 K12
+ 0x7C080400, // 001A CALL R2 2
+ 0x5C080200, // 001B MOVE R2 R1
+ 0x580C000D, // 001C LDCONST R3 K13
+ 0x8810010E, // 001D GETMBR R4 R0 K14
+ 0x7C080400, // 001E CALL R2 2
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Air_Quality
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_class(Matter_Plugin_Bridge_Sensor_Air_Quality,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_airquality) },
+ { be_const_key_weak(BRIDGE, 4), be_const_bool(1) },
+ { be_const_key_weak(UPDATE_CMD, 5), be_nested_str_weak(Status_X2010) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values_closure) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_status_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Air_Quality)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h
new file mode 100644
index 000000000..170284b74
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h
@@ -0,0 +1,26 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Contact.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Contact;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Contact
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_class(Matter_Plugin_Bridge_Sensor_Contact,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Contact,
+ be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, 2), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_contact) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Contact)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h
new file mode 100644
index 000000000..08ef3a345
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h
@@ -0,0 +1,24 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Flow.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Flow;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Flow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Flow;
+be_local_class(Matter_Plugin_Bridge_Sensor_Flow,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Flow,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_flow) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Flow)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Humidity.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Humidity.h
new file mode 100644
index 000000000..878f9629c
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Humidity.h
@@ -0,0 +1,24 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Humidity.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Humidity;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Humidity
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Humidity;
+be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Humidity,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_humidity) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Humidity)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Illuminance.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Illuminance.h
new file mode 100644
index 000000000..6ef7a803f
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Illuminance.h
@@ -0,0 +1,24 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Illuminance.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Illuminance;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Illuminance
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Illuminance;
+be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Illuminance,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_illuminance) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Illuminance)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Occupancy.h
new file mode 100644
index 000000000..a72539571
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Occupancy.h
@@ -0,0 +1,26 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Occupancy.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Occupancy;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Occupancy
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, 2), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_occupancy) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Occupancy)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Pressure.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Pressure.h
new file mode 100644
index 000000000..e6d246669
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Pressure.h
@@ -0,0 +1,24 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Pressure.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Pressure;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Pressure
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Pressure;
+be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Pressure,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_pressure) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Pressure)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Temp.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Temp.h
new file mode 100644
index 000000000..04a2b8f81
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Temp.h
@@ -0,0 +1,24 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Temp.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Temp;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Temp
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Temp;
+be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Temp,
+ be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_temperature) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Temp)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h
new file mode 100644
index 000000000..40ceb74e5
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h
@@ -0,0 +1,26 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Waterleak.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Waterleak;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Waterleak
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_class(Matter_Plugin_Bridge_Sensor_Waterleak,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, 2), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_waterleak) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Waterleak)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index 4ed01b4c6..d53f5099f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -1148,11 +1148,11 @@ be_local_closure(class_Matter_UI_show_remote_autoconf, /* name */
/* K1 */ be_nested_str_weak(json),
/* K2 */ be_nested_str_weak(),
/* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Plugin_Bridge_HTTP),
+ /* K4 */ be_nested_str_weak(Plugin_Device),
/* K5 */ be_nested_str_weak(PROBE_TIMEOUT),
/* K6 */ be_nested_str_weak(HTTP_remote),
/* K7 */ be_nested_str_weak(call_sync),
- /* K8 */ be_nested_str_weak(Status_X208),
+ /* K8 */ be_nested_str_weak(Status_X2010),
/* K9 */ be_nested_str_weak(load),
/* K10 */ be_nested_str_weak(find),
/* K11 */ be_nested_str_weak(StatusSNS),
@@ -1160,7 +1160,7 @@ be_local_closure(class_Matter_UI_show_remote_autoconf, /* name */
/* K13 */ be_nested_str_weak(StatusSTS),
/* K14 */ be_nested_str_weak(tasmota),
/* K15 */ be_nested_str_weak(log),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20probed_X20_X27_X25s_X27_X20status8_X3D_X25s_X20satus11_X3D_X25s),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20probed_X20_X27_X25s_X27_X20status10_X3D_X25s_X20satus11_X3D_X25s),
/* K17 */ be_const_int(3),
/* K18 */ be_nested_str_weak(generate_config_from_status),
/* K19 */ be_nested_str_weak(show_plugins_hints_js),
@@ -1827,16 +1827,16 @@ be_local_closure(class_Matter_UI_show_bridge_status, /* name */
/* K1 */ be_nested_str_weak(plugins),
/* K2 */ be_nested_str_weak(webserver),
/* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(Plugin_Bridge_HTTP),
- /* K6 */ be_nested_str_weak(http_remote),
- /* K7 */ be_nested_str_weak(addr),
- /* K8 */ be_nested_str_weak(contains),
- /* K9 */ be_nested_str_weak(push),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(content_send),
- /* K12 */ be_nested_str_weak(_X3Chr_X3E),
- /* K13 */ be_nested_str_weak(_X3Ctable_X20style_X3D_X27width_X3A100_X25_X27_X3E),
+ /* K4 */ be_nested_str_weak(BRIDGE),
+ /* K5 */ be_nested_str_weak(http_remote),
+ /* K6 */ be_nested_str_weak(addr),
+ /* K7 */ be_nested_str_weak(contains),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(content_send),
+ /* K11 */ be_nested_str_weak(_X3Chr_X3E),
+ /* K12 */ be_nested_str_weak(_X3Ctable_X20style_X3D_X27width_X3A100_X25_X27_X3E),
+ /* K13 */ be_nested_str_weak(matter),
/* K14 */ be_nested_str_weak(_STYLESHEET),
/* K15 */ be_nested_str_weak(k2l),
/* K16 */ be_nested_str_weak(html_escape),
@@ -1853,7 +1853,7 @@ be_local_closure(class_Matter_UI_show_bridge_status, /* name */
}),
be_str_weak(show_bridge_status),
&be_const_str_solidified,
- ( &(const binstruction[122]) { /* code */
+ ( &(const binstruction[118]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x4C080000, // 0002 LDNIL R2
@@ -1868,114 +1868,110 @@ be_local_closure(class_Matter_UI_show_bridge_status, /* name */
0x88140B01, // 000B GETMBR R5 R5 K1
0x7C100200, // 000C CALL R4 1
0x14100604, // 000D LT R4 R3 R4
- 0x7812001D, // 000E JMPF R4 #002D
+ 0x78120019, // 000E JMPF R4 #0029
0x88100100, // 000F GETMBR R4 R0 K0
0x88100901, // 0010 GETMBR R4 R4 K1
0x94100803, // 0011 GETIDX R4 R4 R3
- 0x6014000F, // 0012 GETGBL R5 G15
- 0x5C180800, // 0013 MOVE R6 R4
- 0xB81E0800, // 0014 GETNGBL R7 K4
- 0x881C0F05, // 0015 GETMBR R7 R7 K5
- 0x7C140400, // 0016 CALL R5 2
- 0x78160012, // 0017 JMPF R5 #002B
- 0x4C140000, // 0018 LDNIL R5
- 0x1C140405, // 0019 EQ R5 R2 R5
- 0x78160002, // 001A JMPF R5 #001E
- 0x60140013, // 001B GETGBL R5 G19
- 0x7C140000, // 001C CALL R5 0
- 0x5C080A00, // 001D MOVE R2 R5
- 0x88140906, // 001E GETMBR R5 R4 K6
- 0x88140B07, // 001F GETMBR R5 R5 K7
- 0x8C180508, // 0020 GETMET R6 R2 K8
- 0x5C200A00, // 0021 MOVE R8 R5
- 0x7C180400, // 0022 CALL R6 2
- 0x741A0002, // 0023 JMPT R6 #0027
- 0x60180012, // 0024 GETGBL R6 G18
- 0x7C180000, // 0025 CALL R6 0
- 0x98080A06, // 0026 SETIDX R2 R5 R6
- 0x94180405, // 0027 GETIDX R6 R2 R5
- 0x8C180D09, // 0028 GETMET R6 R6 K9
- 0x5C200800, // 0029 MOVE R8 R4
- 0x7C180400, // 002A CALL R6 2
- 0x000C070A, // 002B ADD R3 R3 K10
- 0x7001FFDB, // 002C JMP #0009
- 0x4C100000, // 002D LDNIL R4
- 0x1C100404, // 002E EQ R4 R2 R4
- 0x78120000, // 002F JMPF R4 #0031
- 0x80000800, // 0030 RET 0
- 0x8C10030B, // 0031 GETMET R4 R1 K11
- 0x5818000C, // 0032 LDCONST R6 K12
- 0x7C100400, // 0033 CALL R4 2
- 0x8C10030B, // 0034 GETMET R4 R1 K11
- 0x5818000D, // 0035 LDCONST R6 K13
+ 0x88140904, // 0012 GETMBR R5 R4 K4
+ 0x78160012, // 0013 JMPF R5 #0027
+ 0x4C140000, // 0014 LDNIL R5
+ 0x1C140405, // 0015 EQ R5 R2 R5
+ 0x78160002, // 0016 JMPF R5 #001A
+ 0x60140013, // 0017 GETGBL R5 G19
+ 0x7C140000, // 0018 CALL R5 0
+ 0x5C080A00, // 0019 MOVE R2 R5
+ 0x88140905, // 001A GETMBR R5 R4 K5
+ 0x88140B06, // 001B GETMBR R5 R5 K6
+ 0x8C180507, // 001C GETMET R6 R2 K7
+ 0x5C200A00, // 001D MOVE R8 R5
+ 0x7C180400, // 001E CALL R6 2
+ 0x741A0002, // 001F JMPT R6 #0023
+ 0x60180012, // 0020 GETGBL R6 G18
+ 0x7C180000, // 0021 CALL R6 0
+ 0x98080A06, // 0022 SETIDX R2 R5 R6
+ 0x94180405, // 0023 GETIDX R6 R2 R5
+ 0x8C180D08, // 0024 GETMET R6 R6 K8
+ 0x5C200800, // 0025 MOVE R8 R4
+ 0x7C180400, // 0026 CALL R6 2
+ 0x000C0709, // 0027 ADD R3 R3 K9
+ 0x7001FFDF, // 0028 JMP #0009
+ 0x4C100000, // 0029 LDNIL R4
+ 0x1C100404, // 002A EQ R4 R2 R4
+ 0x78120000, // 002B JMPF R4 #002D
+ 0x80000800, // 002C RET 0
+ 0x8C10030A, // 002D GETMET R4 R1 K10
+ 0x5818000B, // 002E LDCONST R6 K11
+ 0x7C100400, // 002F CALL R4 2
+ 0x8C10030A, // 0030 GETMET R4 R1 K10
+ 0x5818000C, // 0031 LDCONST R6 K12
+ 0x7C100400, // 0032 CALL R4 2
+ 0x8C10030A, // 0033 GETMET R4 R1 K10
+ 0xB81A1A00, // 0034 GETNGBL R6 K13
+ 0x88180D0E, // 0035 GETMBR R6 R6 K14
0x7C100400, // 0036 CALL R4 2
- 0x8C10030B, // 0037 GETMET R4 R1 K11
- 0xB81A0800, // 0038 GETNGBL R6 K4
- 0x88180D0E, // 0039 GETMBR R6 R6 K14
- 0x7C100400, // 003A CALL R4 2
- 0x60100010, // 003B GETGBL R4 G16
- 0x88140100, // 003C GETMBR R5 R0 K0
- 0x8C140B0F, // 003D GETMET R5 R5 K15
- 0x5C1C0400, // 003E MOVE R7 R2
- 0x7C140400, // 003F CALL R5 2
- 0x7C100200, // 0040 CALL R4 1
- 0xA8020030, // 0041 EXBLK 0 #0073
- 0x5C140800, // 0042 MOVE R5 R4
- 0x7C140000, // 0043 CALL R5 0
- 0x8C180310, // 0044 GETMET R6 R1 K16
- 0x5C200A00, // 0045 MOVE R8 R5
- 0x7C180400, // 0046 CALL R6 2
- 0x8C1C0310, // 0047 GETMET R7 R1 K16
- 0x88240100, // 0048 GETMBR R9 R0 K0
- 0x8C241311, // 0049 GETMET R9 R9 K17
- 0x5C2C0A00, // 004A MOVE R11 R5
- 0x7C240400, // 004B CALL R9 2
- 0x8C241312, // 004C GETMET R9 R9 K18
- 0x582C0013, // 004D LDCONST R11 K19
- 0x5C300A00, // 004E MOVE R12 R5
- 0x7C240600, // 004F CALL R9 3
- 0x7C1C0400, // 0050 CALL R7 2
- 0x8C20030B, // 0051 GETMET R8 R1 K11
- 0x60280018, // 0052 GETGBL R10 G24
- 0x582C0014, // 0053 LDCONST R11 K20
- 0x5C300C00, // 0054 MOVE R12 R6
- 0x5C340C00, // 0055 MOVE R13 R6
- 0x5C380E00, // 0056 MOVE R14 R7
- 0x7C280800, // 0057 CALL R10 4
- 0x7C200400, // 0058 CALL R8 2
- 0x94200405, // 0059 GETIDX R8 R2 R5
- 0x94201103, // 005A GETIDX R8 R8 K3
- 0x88201106, // 005B GETMBR R8 R8 K6
- 0x8C24030B, // 005C GETMET R9 R1 K11
- 0x8C2C1115, // 005D GETMET R11 R8 K21
- 0x7C2C0200, // 005E CALL R11 1
- 0x7C240400, // 005F CALL R9 2
- 0x60240010, // 0060 GETGBL R9 G16
- 0x94280405, // 0061 GETIDX R10 R2 R5
- 0x7C240200, // 0062 CALL R9 1
- 0xA802000A, // 0063 EXBLK 0 #006F
- 0x5C281200, // 0064 MOVE R10 R9
- 0x7C280000, // 0065 CALL R10 0
- 0x8C2C030B, // 0066 GETMET R11 R1 K11
- 0x58340016, // 0067 LDCONST R13 K22
- 0x7C2C0400, // 0068 CALL R11 2
- 0x8C2C1517, // 0069 GETMET R11 R10 K23
- 0x7C2C0200, // 006A CALL R11 1
- 0x8C2C030B, // 006B GETMET R11 R1 K11
- 0x58340018, // 006C LDCONST R13 K24
- 0x7C2C0400, // 006D CALL R11 2
- 0x7001FFF4, // 006E JMP #0064
- 0x58240019, // 006F LDCONST R9 K25
- 0xAC240200, // 0070 CATCH R9 1 0
+ 0x60100010, // 0037 GETGBL R4 G16
+ 0x88140100, // 0038 GETMBR R5 R0 K0
+ 0x8C140B0F, // 0039 GETMET R5 R5 K15
+ 0x5C1C0400, // 003A MOVE R7 R2
+ 0x7C140400, // 003B CALL R5 2
+ 0x7C100200, // 003C CALL R4 1
+ 0xA8020030, // 003D EXBLK 0 #006F
+ 0x5C140800, // 003E MOVE R5 R4
+ 0x7C140000, // 003F CALL R5 0
+ 0x8C180310, // 0040 GETMET R6 R1 K16
+ 0x5C200A00, // 0041 MOVE R8 R5
+ 0x7C180400, // 0042 CALL R6 2
+ 0x8C1C0310, // 0043 GETMET R7 R1 K16
+ 0x88240100, // 0044 GETMBR R9 R0 K0
+ 0x8C241311, // 0045 GETMET R9 R9 K17
+ 0x5C2C0A00, // 0046 MOVE R11 R5
+ 0x7C240400, // 0047 CALL R9 2
+ 0x8C241312, // 0048 GETMET R9 R9 K18
+ 0x582C0013, // 0049 LDCONST R11 K19
+ 0x5C300A00, // 004A MOVE R12 R5
+ 0x7C240600, // 004B CALL R9 3
+ 0x7C1C0400, // 004C CALL R7 2
+ 0x8C20030A, // 004D GETMET R8 R1 K10
+ 0x60280018, // 004E GETGBL R10 G24
+ 0x582C0014, // 004F LDCONST R11 K20
+ 0x5C300C00, // 0050 MOVE R12 R6
+ 0x5C340C00, // 0051 MOVE R13 R6
+ 0x5C380E00, // 0052 MOVE R14 R7
+ 0x7C280800, // 0053 CALL R10 4
+ 0x7C200400, // 0054 CALL R8 2
+ 0x94200405, // 0055 GETIDX R8 R2 R5
+ 0x94201103, // 0056 GETIDX R8 R8 K3
+ 0x88201105, // 0057 GETMBR R8 R8 K5
+ 0x8C24030A, // 0058 GETMET R9 R1 K10
+ 0x8C2C1115, // 0059 GETMET R11 R8 K21
+ 0x7C2C0200, // 005A CALL R11 1
+ 0x7C240400, // 005B CALL R9 2
+ 0x60240010, // 005C GETGBL R9 G16
+ 0x94280405, // 005D GETIDX R10 R2 R5
+ 0x7C240200, // 005E CALL R9 1
+ 0xA802000A, // 005F EXBLK 0 #006B
+ 0x5C281200, // 0060 MOVE R10 R9
+ 0x7C280000, // 0061 CALL R10 0
+ 0x8C2C030A, // 0062 GETMET R11 R1 K10
+ 0x58340016, // 0063 LDCONST R13 K22
+ 0x7C2C0400, // 0064 CALL R11 2
+ 0x8C2C1517, // 0065 GETMET R11 R10 K23
+ 0x7C2C0200, // 0066 CALL R11 1
+ 0x8C2C030A, // 0067 GETMET R11 R1 K10
+ 0x58340018, // 0068 LDCONST R13 K24
+ 0x7C2C0400, // 0069 CALL R11 2
+ 0x7001FFF4, // 006A JMP #0060
+ 0x58240019, // 006B LDCONST R9 K25
+ 0xAC240200, // 006C CATCH R9 1 0
+ 0xB0080000, // 006D RAISE 2 R0 R0
+ 0x7001FFCE, // 006E JMP #003E
+ 0x58100019, // 006F LDCONST R4 K25
+ 0xAC100200, // 0070 CATCH R4 1 0
0xB0080000, // 0071 RAISE 2 R0 R0
- 0x7001FFCE, // 0072 JMP #0042
- 0x58100019, // 0073 LDCONST R4 K25
- 0xAC100200, // 0074 CATCH R4 1 0
- 0xB0080000, // 0075 RAISE 2 R0 R0
- 0x8C10030B, // 0076 GETMET R4 R1 K11
- 0x5818001A, // 0077 LDCONST R6 K26
- 0x7C100400, // 0078 CALL R4 2
- 0x80000000, // 0079 RET 0
+ 0x8C10030A, // 0072 GETMET R4 R1 K10
+ 0x5818001A, // 0073 LDCONST R6 K26
+ 0x7C100400, // 0074 CALL R4 2
+ 0x80000000, // 0075 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index b1ad4546f..28b846893 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -6286,7 +6286,7 @@ be_local_class(Matter_Device,
{ be_const_key_weak(plugins_classes, 10), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(47,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(v_waterleak, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(v_waterleak, 26), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
{ be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
{ be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
{ be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
@@ -6300,36 +6300,36 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_illuminance, 24), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
{ be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(http_light1, 26), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(http_light1, 39), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
{ be_const_key_weak(http_light0, 6), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
{ be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
{ be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
{ be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(contact, 10), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(light1, 10), be_const_class(be_class_Matter_Plugin_Light1) },
{ be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
{ be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
{ be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
{ be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
{ be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
{ be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(http_illuminance, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
{ be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
{ be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
{ be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(flow, 34), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
+ { be_const_key_weak(illuminance, 34), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
{ be_const_key_weak(shutter, 5), be_const_class(be_class_Matter_Plugin_Shutter) },
{ be_const_key_weak(v_pressure, 2), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_light2, 39), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(v_light2, 40), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
{ be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
- { be_const_key_weak(v_airquality, 42), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(v_airquality, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
{ be_const_key_weak(light2, 3), be_const_class(be_class_Matter_Plugin_Light2) },
{ be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(illuminance, 40), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
+ { be_const_key_weak(http_illuminance, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
+ { be_const_key_weak(relay, 42), be_const_class(be_class_Matter_Plugin_OnOff) },
{ be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
- { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
+ { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
{ be_const_key_weak(http_waterleak, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
{ be_const_key_weak(http_occupancy, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
{ be_const_key_weak(root, 29), be_const_class(be_class_Matter_Plugin_Root) },
From f68e2285e8aca8f4820962c619120a2c0b7cc4f0 Mon Sep 17 00:00:00 2001
From: Marius Bezuidenhout
Date: Thu, 6 Jun 2024 09:39:23 +0200
Subject: [PATCH 013/252] Fixed incorrect output size clamping (#21568)
---
tasmota/tasmota_support/support.ino | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tasmota/tasmota_support/support.ino b/tasmota/tasmota_support/support.ino
index 0552a30d1..57f207c67 100755
--- a/tasmota/tasmota_support/support.ino
+++ b/tasmota/tasmota_support/support.ino
@@ -646,7 +646,7 @@ int32_t HexToBytes(const char* hex, uint8_t* out, size_t out_len) {
}
size_t bytes_out = len / 2;
- if (bytes_out < out_len) {
+ if (bytes_out > out_len) {
bytes_out = out_len;
}
From c7083629e15a6e5ac46a2cb248c642441dd4a74b Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 6 Jun 2024 16:29:20 +0200
Subject: [PATCH 014/252] update changelogs
---
CHANGELOG.md | 5 +++--
RELEASENOTES.md | 9 ++++++---
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e1561c8fc..88bbfbb1b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,10 +11,11 @@ All notable changes to this project will be documented in this file.
### Breaking Changed
### Changed
-- Matter refactoring of bridged devices
+- Matter refactoring of bridged devices (#21575)
+- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 (#21569)
### Fixed
-- Berry `input()` returns empty string and does not crash
+- Berry `input()` returns empty string and does not crash (#21565)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 0a917c20e..5e2f81d1e 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -36,9 +36,9 @@ While fallback or downgrading is common practice it was never supported due to S
This release will be supported from ESP8266/Arduino library Core version **2.7.6** due to reported security and stability issues on previous Core version. This will also support gzipped binaries.
-This release will be supported from ESP32/Arduino library Core version **3.0.0**.
+This release will be supported from ESP32/Arduino library Core version **3.0.1**.
-Support of ESP8266 Core versions before 2.7.6 and ESP32 Core versions before 3.0.0 have been removed.
+Support of ESP8266 Core versions before 2.7.6 and ESP32 Core versions before 3.0.1 have been removed.
### Known issues with v14.1.0
@@ -85,7 +85,7 @@ Historical binaries can be downloaded from
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz``
### ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-S2 and ESP32-S3 based
-The following binary downloads have been compiled with ESP32/Arduino library core version **3.0.0**.
+The following binary downloads have been compiled with ESP32/Arduino library core version **3.0.1**.
- **tasmota32.bin** = The Tasmota version with most drivers including additional sensors and KNX for 4M+ flash. **RECOMMENDED RELEASE BINARY**
- **tasmota32solo1.bin** = The Tasmota version with most drivers including additional sensors and KNX for single core ESP32 and 4M+ flash.
@@ -125,7 +125,10 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
### Changed
+- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
+- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
### Fixed
+- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
### Removed
From a99c6d67bb2d89a3f571f1d63c1ae8c962e8ad93 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 6 Jun 2024 18:14:30 +0200
Subject: [PATCH 015/252] Add XIAO ESP32S3 Sense camera pins
---
lib/default/headers/camera_pins.h | 41 ++++++++++++++++++++++++++++---
1 file changed, 38 insertions(+), 3 deletions(-)
diff --git a/lib/default/headers/camera_pins.h b/lib/default/headers/camera_pins.h
index 6640b0905..d274e664c 100644
--- a/lib/default/headers/camera_pins.h
+++ b/lib/default/headers/camera_pins.h
@@ -1,4 +1,3 @@
-
#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
@@ -14,6 +13,7 @@
#define Y4_GPIO_NUM 18
#define Y3_GPIO_NUM 5
#define Y2_GPIO_NUM 4
+
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
@@ -33,12 +33,12 @@
#define Y4_GPIO_NUM 14
#define Y3_GPIO_NUM 13
#define Y2_GPIO_NUM 34
+
#define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25
#elif defined(CAMERA_MODEL_ESP32S3_EYE)
-
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
#define XCLK_GPIO_NUM 15
@@ -73,6 +73,7 @@
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32
+
#define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
@@ -92,6 +93,7 @@
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32
+
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
@@ -111,6 +113,7 @@
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32
+
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
@@ -130,6 +133,7 @@
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 17
+
#define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
@@ -149,6 +153,7 @@
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 32
+
#define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21
@@ -168,6 +173,7 @@
#define Y4_GPIO_NUM 19
#define Y3_GPIO_NUM 18
#define Y2_GPIO_NUM 5
+
#define VSYNC_GPIO_NUM 25
#define HREF_GPIO_NUM 23
#define PCLK_GPIO_NUM 22
@@ -187,6 +193,7 @@
#define Y4_GPIO_NUM 4
#define Y3_GPIO_NUM 14
#define Y2_GPIO_NUM 5
+
#define VSYNC_GPIO_NUM 27
#define HREF_GPIO_NUM 25
#define PCLK_GPIO_NUM 19
@@ -206,6 +213,7 @@
#define Y4_GPIO_NUM 14
#define Y3_GPIO_NUM 13
#define Y2_GPIO_NUM 34
+
#define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25
@@ -225,6 +233,7 @@
#define Y4_GPIO_NUM 14
#define Y3_GPIO_NUM 13
#define Y2_GPIO_NUM 34
+
#define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25
@@ -244,6 +253,7 @@
#define Y4_GPIO_NUM 4
#define Y3_GPIO_NUM 14
#define Y2_GPIO_NUM 5
+
#define VSYNC_GPIO_NUM 27
#define HREF_GPIO_NUM 25
#define PCLK_GPIO_NUM 19
@@ -263,6 +273,7 @@
#define Y4_GPIO_NUM 4
#define Y3_GPIO_NUM 14
#define Y2_GPIO_NUM 5
+
#define VSYNC_GPIO_NUM 27
#define HREF_GPIO_NUM 25
#define PCLK_GPIO_NUM 19
@@ -282,6 +293,7 @@
#define Y4_GPIO_NUM 26
#define Y3_GPIO_NUM 13
#define Y2_GPIO_NUM 34
+
#define VSYNC_GPIO_NUM 5
#define HREF_GPIO_NUM 27
#define PCLK_GPIO_NUM 25
@@ -302,12 +314,12 @@
#define Y4_GPIO_NUM 8
#define Y3_GPIO_NUM 9
#define Y2_GPIO_NUM 11
+
#define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13
#elif defined(CAMERA_MODEL_TTGO_T_CAM_SIM)
-
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 18
#define XCLK_GPIO_NUM 14
@@ -322,6 +334,7 @@
#define Y4_GPIO_NUM 8
#define Y3_GPIO_NUM 9
#define Y2_GPIO_NUM 11
+
#define VSYNC_GPIO_NUM 6
#define HREF_GPIO_NUM 7
#define PCLK_GPIO_NUM 13
@@ -332,6 +345,27 @@
#define PCIE_TX_PIN 45
#define PCIE_RX_PIN 46
#define PCIE_LED_PIN 21
+
+#elif defined(CAMERA_MODEL_XIAO_ESP32S3_SENSE)
+#define PWDN_GPIO_NUM -1
+#define RESET_GPIO_NUM -1
+#define XCLK_GPIO_NUM 10
+#define SIOD_GPIO_NUM 40
+#define SIOC_GPIO_NUM 39
+
+#define Y9_GPIO_NUM 48
+#define Y8_GPIO_NUM 11
+#define Y7_GPIO_NUM 12
+#define Y6_GPIO_NUM 14
+#define Y5_GPIO_NUM 16
+#define Y4_GPIO_NUM 18
+#define Y3_GPIO_NUM 17
+#define Y2_GPIO_NUM 15
+
+#define VSYNC_GPIO_NUM 38
+#define HREF_GPIO_NUM 47
+#define PCLK_GPIO_NUM 13
+
#else
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM -1
@@ -347,6 +381,7 @@
#define Y4_GPIO_NUM -1
#define Y3_GPIO_NUM -1
#define Y2_GPIO_NUM -1
+
#define VSYNC_GPIO_NUM -1
#define HREF_GPIO_NUM -1
#define PCLK_GPIO_NUM -1
From d16a502f36b1840cbc5c5a48f098c366009a2098 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 6 Jun 2024 22:11:52 +0200
Subject: [PATCH 016/252] Berry fix potential crash when solidifying loaded
bytecode (#21583)
---
lib/libesp32/berry/src/be_bytecode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/libesp32/berry/src/be_bytecode.c b/lib/libesp32/berry/src/be_bytecode.c
index a636567fa..8db2f90da 100644
--- a/lib/libesp32/berry/src/be_bytecode.c
+++ b/lib/libesp32/berry/src/be_bytecode.c
@@ -524,8 +524,8 @@ static void load_proto_table(bvm *vm, void *fp, bproto *proto, int info, int ver
{
int size = (int)load_long(fp); /* proto count */
if (size) {
- bproto **p = be_malloc(vm, sizeof(bproto *) * size);
- memset(p, 0, sizeof(bproto *) * size);
+ bproto **p = be_malloc(vm, sizeof(bproto *) * (size + 1));
+ memset(p, 0, sizeof(bproto *) * (size + 1));
proto->ptab = p;
proto->nproto = size;
while (size--) {
From 9350f68ac509f022ad3877c27e79485ee4038214 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 7 Jun 2024 11:48:52 +0200
Subject: [PATCH 017/252] Replace optional MQTT_TELE_RETAIN to Energy Margins
message by ``SensorRetain``
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino | 12 +++++++++---
tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino | 6 +-----
tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino | 6 +-----
5 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 88bbfbb1b..5825555a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file.
### Changed
- Matter refactoring of bridged devices (#21575)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 (#21569)
+- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 5e2f81d1e..33fce959a 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -125,6 +125,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
### Changed
+- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino b/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
index 9a793f8d1..6cde49eb3 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
@@ -861,13 +861,19 @@ void MqttPublishPrefixTopicRulesProcess_P(uint32_t prefix, const char* subtopic)
MqttPublishPrefixTopicRulesProcess_P(prefix, subtopic, false);
}
-void MqttPublishTeleSensor(void) {
- // Publish tele//SENSOR default ResponseData string with optional retained
+void MqttPublishTele(const char* subtopic) {
+ // Publish tele// default ResponseData string with optional retained
// then process rules
#ifdef USE_INFLUXDB
InfluxDbProcess(1); // Use a copy of ResponseData
#endif
- MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_RSLT_SENSOR), Settings->flag.mqtt_sensor_retain); // CMND_SENSORRETAIN
+ MqttPublishPrefixTopicRulesProcess_P(TELE, subtopic, Settings->flag.mqtt_sensor_retain); // CMND_SENSORRETAIN
+}
+
+void MqttPublishTeleSensor(void) {
+ // Publish tele//SENSOR default ResponseData string with optional retained
+ // then process rules
+ MqttPublishTele(PSTR(D_RSLT_SENSOR));
}
void MqttPublishPowerState(uint32_t device) {
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
index 0d15ffd4f..7f1498278 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
@@ -29,10 +29,6 @@
//#define USE_ENERGY_MARGIN_DETECTION
// #define USE_ENERGY_POWER_LIMIT
-#ifndef MQTT_TELE_RETAIN
-#define MQTT_TELE_RETAIN 0
-#endif
-
#define ENERGY_NONE 0
#define ENERGY_WATCHDOG 4 // Allow up to 4 seconds before deciding no valid data present
@@ -564,7 +560,7 @@ void EnergyMarginCheck(void) {
}
if (jsonflg) {
ResponseJsonEndEnd();
- MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_RSLT_MARGINS), MQTT_TELE_RETAIN);
+ MqttPublishTele(PSTR(D_RSLT_MARGINS));
EnergyMqttShow();
Energy->margin_stable = 3; // Allow 2 seconds to stabilize before reporting
}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 64f4f271a..790fc79a6 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -26,10 +26,6 @@
#define XDRV_03 3
#define XSNS_03 3
-#ifndef MQTT_TELE_RETAIN
-#define MQTT_TELE_RETAIN 0
-#endif
-
#define ENERGY_NONE 0
#define ENERGY_WATCHDOG 4 // Allow up to 4 seconds before deciding no valid data present
@@ -787,7 +783,7 @@ void EnergyMarginCheck(void) {
}
if (jsonflg) {
ResponseJsonEndEnd();
- MqttPublishPrefixTopicRulesProcess_P(TELE, PSTR(D_RSLT_MARGINS), MQTT_TELE_RETAIN);
+ MqttPublishTele(PSTR(D_RSLT_MARGINS));
EnergyMqttShow();
Energy->margin_stable = 3; // Allow 2 seconds to stabilize before reporting
}
From 8479da0afb7f514ef86ac5c7baaa602fcc6ecd25 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Fri, 7 Jun 2024 13:04:44 +0200
Subject: [PATCH 018/252] Remove obsolete comment in my_user_config.h
---
tasmota/my_user_config.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h
index 3692c6715..3b5e334a8 100644
--- a/tasmota/my_user_config.h
+++ b/tasmota/my_user_config.h
@@ -446,8 +446,7 @@
// #define USE_MQTT_TLS_CA_CERT // [DEPRECATED] Now TLS supports dual mode using SetOption132 - this flag is now ignored
// #define USE_MQTT_AWS_IOT_LIGHT // Enable MQTT for AWS IoT in light mode, with user/password instead of private certificate
// #define USE_MQTT_AWS_IOT // [Deprecated] Enable MQTT for AWS IoT - requires a private key (+11.9k code, +0.4k mem)
- // Note: you need to generate a private key + certificate per device and update 'tasmota/tasmota_aws_iot.cpp'
- // Full documentation here: https://github.com/arendst/Tasmota/wiki/AWS-IoT
+ // Full documentation here: https://github.com/arendst/Tasmota/wiki/AWS-IoT
// for USE_4K_RSA (support for 4096 bits certificates, instead of 2048), you need to uncommend `-DUSE_4K_RSA` in `build_flags` from `platform.ini` or `platform_override.ini`
// -- MQTT - TLS - Azure IoT & IoT Central ---------
From 5a1ae70549dd8935426b17586f06e98687e89017 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Fri, 7 Jun 2024 19:48:03 +0200
Subject: [PATCH 019/252] Matter filter suffix automatically added for sensors
(#21589)
---
CHANGELOG.md | 1 +
.../src/embedded/Matter_Plugin_2_Sensor.be | 14 ++--
.../solidified_Matter_Plugin_2_Sensor.h | 67 +++++++++++--------
3 files changed, 49 insertions(+), 33 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5825555a2..f6caafd66 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file.
- Matter refactoring of bridged devices (#21575)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 (#21569)
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
+- Matter filter suffix automatically added for sensors
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
index 2e3f7c18a..7ea57693e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor.be
@@ -72,12 +72,14 @@ class Matter_Plugin_Sensor : Matter_Plugin_Device
# it to json.
def parse_sensors(payload)
if !self.VIRTUAL && self.tasmota_sensor_matcher
- var val = self.pre_value(real(self.tasmota_sensor_matcher.match(payload)))
- if val != nil
- if val != self.shadow_value
- self.value_changed()
- self.shadow_value = val
- end
+ var val = self.tasmota_sensor_matcher.match(payload)
+ if isinstance(val, map) # if the filter returns a map, we use the default JSON_NAME like "Temperature"
+ val = val.find(self.JSON_NAME)
+ end
+ val = self.pre_value(real(val))
+ if (val != nil) && (val != self.shadow_value)
+ self.value_changed()
+ self.shadow_value = val
end
end
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
index efe206a1c..19c189e9e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor.h
@@ -160,7 +160,7 @@ be_local_closure(class_Matter_Plugin_Sensor_pre_value, /* name */
extern const bclass be_class_Matter_Plugin_Sensor;
be_local_closure(class_Matter_Plugin_Sensor_parse_sensors, /* name */
be_nested_proto(
- 8, /* nstack */
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -168,39 +168,52 @@ be_local_closure(class_Matter_Plugin_Sensor_parse_sensors, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(VIRTUAL),
/* K1 */ be_nested_str_weak(tasmota_sensor_matcher),
- /* K2 */ be_nested_str_weak(pre_value),
- /* K3 */ be_nested_str_weak(match),
- /* K4 */ be_nested_str_weak(shadow_value),
- /* K5 */ be_nested_str_weak(value_changed),
+ /* K2 */ be_nested_str_weak(match),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(JSON_NAME),
+ /* K5 */ be_nested_str_weak(pre_value),
+ /* K6 */ be_nested_str_weak(shadow_value),
+ /* K7 */ be_nested_str_weak(value_changed),
}),
be_str_weak(parse_sensors),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
+ ( &(const binstruction[33]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0012, // 0001 JMPT R2 #0015
+ 0x740A001D, // 0001 JMPT R2 #0020
0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A0010, // 0003 JMPF R2 #0015
- 0x8C080102, // 0004 GETMET R2 R0 K2
- 0x6010000A, // 0005 GETGBL R4 G10
- 0x88140101, // 0006 GETMBR R5 R0 K1
- 0x8C140B03, // 0007 GETMET R5 R5 K3
- 0x5C1C0200, // 0008 MOVE R7 R1
- 0x7C140400, // 0009 CALL R5 2
- 0x7C100200, // 000A CALL R4 1
- 0x7C080400, // 000B CALL R2 2
- 0x4C0C0000, // 000C LDNIL R3
- 0x200C0403, // 000D NE R3 R2 R3
- 0x780E0005, // 000E JMPF R3 #0015
- 0x880C0104, // 000F GETMBR R3 R0 K4
- 0x200C0403, // 0010 NE R3 R2 R3
- 0x780E0002, // 0011 JMPF R3 #0015
- 0x8C0C0105, // 0012 GETMET R3 R0 K5
- 0x7C0C0200, // 0013 CALL R3 1
- 0x90020802, // 0014 SETMBR R0 K4 R2
- 0x80000000, // 0015 RET 0
+ 0x780A001B, // 0003 JMPF R2 #0020
+ 0x88080101, // 0004 GETMBR R2 R0 K1
+ 0x8C080502, // 0005 GETMET R2 R2 K2
+ 0x5C100200, // 0006 MOVE R4 R1
+ 0x7C080400, // 0007 CALL R2 2
+ 0x600C000F, // 0008 GETGBL R3 G15
+ 0x5C100400, // 0009 MOVE R4 R2
+ 0x60140013, // 000A GETGBL R5 G19
+ 0x7C0C0400, // 000B CALL R3 2
+ 0x780E0003, // 000C JMPF R3 #0011
+ 0x8C0C0503, // 000D GETMET R3 R2 K3
+ 0x88140104, // 000E GETMBR R5 R0 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x5C080600, // 0010 MOVE R2 R3
+ 0x8C0C0105, // 0011 GETMET R3 R0 K5
+ 0x6014000A, // 0012 GETGBL R5 G10
+ 0x5C180400, // 0013 MOVE R6 R2
+ 0x7C140200, // 0014 CALL R5 1
+ 0x7C0C0400, // 0015 CALL R3 2
+ 0x5C080600, // 0016 MOVE R2 R3
+ 0x4C0C0000, // 0017 LDNIL R3
+ 0x200C0403, // 0018 NE R3 R2 R3
+ 0x780E0005, // 0019 JMPF R3 #0020
+ 0x880C0106, // 001A GETMBR R3 R0 K6
+ 0x200C0403, // 001B NE R3 R2 R3
+ 0x780E0002, // 001C JMPF R3 #0020
+ 0x8C0C0107, // 001D GETMET R3 R0 K7
+ 0x7C0C0200, // 001E CALL R3 1
+ 0x90020C02, // 001F SETMBR R0 K6 R2
+ 0x80000000, // 0020 RET 0
})
)
);
From 02cd72403dd9e50cf0e027c29aebd93745757b93 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Fri, 7 Jun 2024 20:44:17 +0200
Subject: [PATCH 020/252] Matter size optimization (#21590)
---
lib/libesp32/berry_matter/solidify_all.be | 2 +-
.../src/embedded/Matter_Commissioning.be | 304 +-
.../src/embedded/Matter_Commissioning_Data.be | 63 +-
.../src/embedded/Matter_Control_Message.be | 8 +-
.../src/embedded/Matter_Fabric.be | 8 +-
.../src/embedded/Matter_HTTP_remote.be | 22 +-
.../berry_matter/src/embedded/Matter_IM.be | 126 +-
.../src/embedded/Matter_IM_Message.be | 54 +-
.../src/embedded/Matter_IM_Subscription.be | 6 +-
.../src/embedded/Matter_Message.be | 22 +-
.../src/embedded/Matter_MessageHandler.be | 42 +-
.../src/embedded/Matter_Plugin_1_Device.be | 14 +-
.../src/embedded/Matter_Plugin_1_Root.be | 84 +-
.../Matter_Plugin_2_Sensor_Air_Quality.be | 12 +-
.../Matter_Plugin_2_Sensor_Contact.be | 6 +-
.../Matter_Plugin_2_Sensor_Occupancy.be | 6 +-
.../src/embedded/Matter_Plugin_2_Shutter.be | 8 +-
.../embedded/Matter_Plugin_3_Sensor_Flow.be | 6 +-
.../Matter_Plugin_3_Sensor_Humidity.be | 6 +-
.../Matter_Plugin_3_Sensor_Illuminance.be | 6 +-
.../Matter_Plugin_3_Sensor_Pressure.be | 6 +-
.../embedded/Matter_Plugin_3_Sensor_Temp.be | 6 +-
.../src/embedded/Matter_Profiler.be | 6 +-
.../src/embedded/Matter_Session.be | 4 +-
.../src/embedded/Matter_Session_Store.be | 14 +-
.../src/embedded/Matter_TCP_async.be | 2 +-
.../berry_matter/src/embedded/Matter_TLV.be | 4 +-
.../src/embedded/Matter_UDPServer.be | 16 +-
.../berry_matter/src/embedded/Matter_UI.be | 40 +-
.../src/embedded/Matter_zz_Device.be | 148 +-
.../solidified_Matter_Commissioning.h | 2876 ++++++++--------
.../solidified_Matter_Commissioning_Data.h | 464 ++-
.../solidified_Matter_Control_Message.h | 193 +-
.../src/solidify/solidified_Matter_Fabric.h | 250 +-
.../solidify/solidified_Matter_HTTP_remote.h | 581 ++--
.../src/solidify/solidified_Matter_IM.h | 2225 ++++++-------
.../solidify/solidified_Matter_IM_Message.h | 161 +-
.../solidified_Matter_IM_Subscription.h | 65 +-
.../src/solidify/solidified_Matter_Message.h | 297 +-
.../solidified_Matter_MessageHandler.h | 697 ++--
.../solidified_Matter_Plugin_1_Device.h | 373 +--
.../solidified_Matter_Plugin_1_Root.h | 1727 +++++-----
...ified_Matter_Plugin_2_Sensor_Air_Quality.h | 252 +-
...olidified_Matter_Plugin_2_Sensor_Contact.h | 55 +-
...idified_Matter_Plugin_2_Sensor_Occupancy.h | 86 +-
.../solidified_Matter_Plugin_2_Shutter.h | 121 +-
.../solidified_Matter_Plugin_3_Sensor_Flow.h | 90 +-
...lidified_Matter_Plugin_3_Sensor_Humidity.h | 90 +-
...ified_Matter_Plugin_3_Sensor_Illuminance.h | 90 +-
...lidified_Matter_Plugin_3_Sensor_Pressure.h | 90 +-
.../solidified_Matter_Plugin_3_Sensor_Temp.h | 86 +-
.../src/solidify/solidified_Matter_Profiler.h | 89 +-
.../src/solidify/solidified_Matter_Session.h | 30 +-
.../solidified_Matter_Session_Store.h | 238 +-
.../solidify/solidified_Matter_TCP_async.h | 45 +-
.../src/solidify/solidified_Matter_TLV.h | 55 +-
.../solidify/solidified_Matter_UDPServer.h | 262 +-
.../src/solidify/solidified_Matter_UI.h | 1748 +++++-----
.../solidify/solidified_Matter_zz_Device.h | 2941 ++++++++---------
59 files changed, 8439 insertions(+), 8889 deletions(-)
diff --git a/lib/libesp32/berry_matter/solidify_all.be b/lib/libesp32/berry_matter/solidify_all.be
index 026d07cfc..d5b357707 100755
--- a/lib/libesp32/berry_matter/solidify_all.be
+++ b/lib/libesp32/berry_matter/solidify_all.be
@@ -12,7 +12,7 @@ import sys
sys.path().push('src/embedded') # allow to import from src/embedded
# globals that need to exist to make compilation succeed
-var globs = "path,ctypes_bytes_dyn,tasmota,ccronexpr,gpio,light,webclient,load,MD5,lv,light_state,udp,tcpclientasync,"
+var globs = "path,ctypes_bytes_dyn,tasmota,ccronexpr,gpio,light,webclient,load,MD5,lv,light_state,udp,tcpclientasync,log,"
"lv_clock,lv_clock_icon,lv_signal_arcs,lv_signal_bars,lv_wifi_arcs_icon,lv_wifi_arcs,"
"lv_wifi_bars_icon,lv_wifi_bars,"
"_lvgl,"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
index d2427a2ce..024b1bb53 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
@@ -45,7 +45,7 @@ class Matter_Commisioning_Context
#############################################################
def add_session(local_session_id, initiator_session_id, i2r, r2i, ac)
# create session object
- tasmota.log(format("MTR: add_session local_session_id=%i initiator_session_id=%i", local_session_id, initiator_session_id), 4)
+ log(format("MTR: add_session local_session_id=%i initiator_session_id=%i", local_session_id, initiator_session_id), 4)
var session = self.device.sessions.create_session(local_session_id, initiator_session_id)
session.set_keys(i2r, r2i, ac)
@@ -54,11 +54,11 @@ class Matter_Commisioning_Context
def process_incoming(msg)
#
if !self.device.is_commissioning_open() && msg.opcode >= 0x20 && msg.opcode <= 0x24
- tasmota.log("MTR: commissioning not open", 2)
+ log("MTR: commissioning not open", 2)
return false
end
- # tasmota.log("MTR: received message " + matter.inspect(msg), 4)
+ # log("MTR: received message " + matter.inspect(msg), 4)
if msg.opcode == 0x10
# don't need to do anything, the message is acked already before this call
elif msg.opcode == 0x20
@@ -74,7 +74,7 @@ class Matter_Commisioning_Context
elif msg.opcode == 0x40
return self.parse_StatusReport(msg)
else
- tasmota.log(format("MTR: >????????? Unknown OpCode (secure channel) %02X", msg.opcode), 2)
+ log(format("MTR: >????????? Unknown OpCode (secure channel) %02X", msg.opcode), 2)
return false
end
@@ -109,8 +109,8 @@ class Matter_Commisioning_Context
var session = msg.session
# sanity checks
if msg.opcode != 0x20 || msg.local_session_id != 0 || msg.protocol_id != 0
- tasmota.log("MTR: invalid PBKDFParamRequest message", 2)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: invalid PBKDFParamRequest message", 2)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
@@ -121,8 +121,8 @@ class Matter_Commisioning_Context
# sanity check for PBKDFParamRequest
if pbkdfparamreq.passcodeId != 0
- tasmota.log("MTR: non-zero passcode id", 2)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: non-zero passcode id", 2)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
@@ -130,7 +130,7 @@ class Matter_Commisioning_Context
# record the initiator_session_id
session.__future_initiator_session_id = pbkdfparamreq.initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id()
- tasmota.log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
+ log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
# prepare response
var pbkdfparamresp = matter.PBKDFParamResponse()
@@ -141,9 +141,9 @@ class Matter_Commisioning_Context
pbkdfparamresp.responderSessionId = session.__future_local_session_id
pbkdfparamresp.pbkdf_parameters_salt = self.device.commissioning_salt
pbkdfparamresp.pbkdf_parameters_iterations = self.device.commissioning_iterations
- # tasmota.log("MTR: pbkdfparamresp: " + str(matter.inspect(pbkdfparamresp)), 4)
+ # log("MTR: pbkdfparamresp: " + str(matter.inspect(pbkdfparamresp)), 4)
var pbkdfparamresp_raw = pbkdfparamresp.tlv2raw()
- # tasmota.log("MTR: pbkdfparamresp_raw: " + pbkdfparamresp_raw.tohex(), 4)
+ # log("MTR: pbkdfparamresp_raw: " + pbkdfparamresp_raw.tohex(), 4)
session.__Msg2 = pbkdfparamresp_raw
@@ -160,15 +160,15 @@ class Matter_Commisioning_Context
var session = msg.session
# sanity checks
if msg.opcode != 0x22 || msg.local_session_id != 0 || msg.protocol_id != 0
- tasmota.log("MTR: invalid Pake1 message", 3)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: invalid Pake1 message", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
var pake1 = matter.Pake1().parse(msg.raw, msg.app_payload_idx)
var pA = pake1.pA
- # tasmota.log("MTR: received pA=" + pA.tohex(), 4)
+ # log("MTR: received pA=" + pA.tohex(), 4)
# instanciate SPAKE
# for testing purpose, we don't send `w1` to make sure
@@ -179,13 +179,13 @@ class Matter_Commisioning_Context
# compute pB
spake.compute_pB(y)
- # tasmota.log("MTR: y=" + y.tohex(), 4)
- # tasmota.log("MTR: pb=" + spake.pB.tohex(), 4)
+ # log("MTR: y=" + y.tohex(), 4)
+ # log("MTR: pb=" + spake.pB.tohex(), 4)
# compute ZV
spake.compute_ZV_verifier(pA)
- # tasmota.log("MTR: Z=" + spake.Z.tohex(), 4)
- # tasmota.log("MTR: V=" + spake.V.tohex(), 4)
+ # log("MTR: Z=" + spake.Z.tohex(), 4)
+ # log("MTR: V=" + spake.V.tohex(), 4)
var context = crypto.SHA256()
context.update(bytes().fromstring(self.Matter_Context_Prefix))
@@ -193,7 +193,7 @@ class Matter_Commisioning_Context
context.update(session.__Msg2)
var context_hash = context.out()
- # tasmota.log("MTR: Context=" + context_hash.tohex(), 4)
+ # log("MTR: Context=" + context_hash.tohex(), 4)
# add pA
spake.pA = pA
@@ -201,31 +201,31 @@ class Matter_Commisioning_Context
spake.set_context(context_hash)
spake.compute_TT_hash(true) # `true` to indicate it's Matter variant to SPAKE2+
- # tasmota.log("MTR: ------------------------------", 4)
- # tasmota.log("MTR: Context = " + spake.Context.tohex(), 4)
- # tasmota.log("MTR: M = " + spake.M.tohex(), 4)
- # tasmota.log("MTR: N = " + spake.N.tohex(), 4)
- # tasmota.log("MTR: pA = " + spake.pA.tohex(), 4)
- # tasmota.log("MTR: pB = " + spake.pB.tohex(), 4)
- # tasmota.log("MTR: Z = " + spake.Z.tohex(), 4)
- # tasmota.log("MTR: V = " + spake.V.tohex(), 4)
- # tasmota.log("MTR: w0 = " + spake.w0.tohex(), 4)
- # tasmota.log("MTR: ------------------------------", 4)
+ # log("MTR: ------------------------------", 4)
+ # log("MTR: Context = " + spake.Context.tohex(), 4)
+ # log("MTR: M = " + spake.M.tohex(), 4)
+ # log("MTR: N = " + spake.N.tohex(), 4)
+ # log("MTR: pA = " + spake.pA.tohex(), 4)
+ # log("MTR: pB = " + spake.pB.tohex(), 4)
+ # log("MTR: Z = " + spake.Z.tohex(), 4)
+ # log("MTR: V = " + spake.V.tohex(), 4)
+ # log("MTR: w0 = " + spake.w0.tohex(), 4)
+ # log("MTR: ------------------------------", 4)
- # tasmota.log("MTR: Kmain =" + spake.Kmain.tohex(), 4)
+ # log("MTR: Kmain =" + spake.Kmain.tohex(), 4)
- # tasmota.log("MTR: KcA =" + spake.KcA.tohex(), 4)
- # tasmota.log("MTR: KcB =" + spake.KcB.tohex(), 4)
- # tasmota.log("MTR: K_shared=" + spake.K_shared.tohex(), 4)
- # tasmota.log("MTR: Ke =" + spake.Ke.tohex(), 4)
- # tasmota.log("MTR: cB=" + spake.cB.tohex(), 4)
+ # log("MTR: KcA =" + spake.KcA.tohex(), 4)
+ # log("MTR: KcB =" + spake.KcB.tohex(), 4)
+ # log("MTR: K_shared=" + spake.K_shared.tohex(), 4)
+ # log("MTR: Ke =" + spake.Ke.tohex(), 4)
+ # log("MTR: cB=" + spake.cB.tohex(), 4)
var pake2 = matter.Pake2()
pake2.pB = spake.pB
pake2.cB = spake.cB
- # tasmota.log("MTR: pake2: " + matter.inspect(pake2), 4)
+ # log("MTR: pake2: " + matter.inspect(pake2), 4)
var pake2_raw = pake2.tlv2raw()
- # tasmota.log("MTR: pake2_raw: " + pake2_raw.tohex(), 4)
+ # log("MTR: pake2_raw: " + pake2_raw.tohex(), 4)
session.__spake_cA = spake.cA
session.__spake_Ke = spake.Ke
@@ -235,7 +235,7 @@ class Matter_Commisioning_Context
var raw = resp.encode_frame(pake2_raw)
# log the fact that a new commissioning is starting
- tasmota.log(format("MTR: New Commissioning (PASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port), 2)
+ log(format("MTR: New Commissioning (PASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port), 2)
self.responder.send_response_frame(resp)
return true
@@ -246,20 +246,20 @@ class Matter_Commisioning_Context
var session = msg.session
# sanity checks
if msg.opcode != 0x24 || msg.local_session_id != 0 || msg.protocol_id != 0
- tasmota.log("MTR: invalid Pake3 message", 3)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: invalid Pake3 message", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
var pake3 = matter.Pake3().parse(msg.raw, msg.app_payload_idx)
var cA = pake3.cA
- # tasmota.log("MTR: received cA=" + cA.tohex(), 4)
+ # log("MTR: received cA=" + cA.tohex(), 4)
# check the value against computed
if cA != session.__spake_cA
- tasmota.log("MTR: invalid cA received", 3)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: invalid cA received", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
@@ -271,12 +271,12 @@ class Matter_Commisioning_Context
var R2IKey = session_keys[16..31]
var AttestationChallenge = session_keys[32..47]
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: session_keys=" + session_keys.tohex(), 4)
- # tasmota.log("MTR: I2RKey =" + I2RKey.tohex(), 4)
- # tasmota.log("MTR: R2IKey =" + R2IKey.tohex(), 4)
- # tasmota.log("MTR: AC =" + AttestationChallenge.tohex(), 4)
- # tasmota.log("MTR: ******************************", 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: session_keys=" + session_keys.tohex(), 4)
+ # log("MTR: I2RKey =" + I2RKey.tohex(), 4)
+ # log("MTR: R2IKey =" + R2IKey.tohex(), 4)
+ # log("MTR: AC =" + AttestationChallenge.tohex(), 4)
+ # log("MTR: ******************************", 4)
# StatusReport(GeneralCode: SUCCESS, ProtocolId: SECURE_CHANNEL, ProtocolCode: SESSION_ESTABLISHMENT_SUCCESS)
self.send_status_report(msg, 0x00, 0x0000, 0x0000, false)
@@ -290,20 +290,20 @@ class Matter_Commisioning_Context
# Validate Sigma1 Destination ID, p.162
# traverse all existing fabrics
if tasmota.loglevel(4)
- tasmota.log("MTR: SEARCHING: destinationId=" + destinationId.tohex(), 4)
+ log("MTR: SEARCHING: destinationId=" + destinationId.tohex(), 4)
end
for fabric : self.device.sessions.fabrics
if fabric.noc == nil || fabric.fabric_id == nil || fabric.device_id == nil continue end
# compute candidateDestinationId, Section 4.13.2.4.1, "Destination Identifier"
var destinationMessage = initiatorRandom + fabric.get_ca_pub() + fabric.fabric_id + fabric.device_id
var key = fabric.get_ipk_group_key()
- # tasmota.log("MTR: SIGMA1: destinationMessage=" + destinationMessage.tohex(), 4)
- # tasmota.log("MTR: SIGMA1: key_ipk=" + key.tohex(), 4)
+ # log("MTR: SIGMA1: destinationMessage=" + destinationMessage.tohex(), 4)
+ # log("MTR: SIGMA1: key_ipk=" + key.tohex(), 4)
var h = crypto.HMAC_SHA256(key)
h.update(destinationMessage)
var candidateDestinationId = h.out()
if tasmota.loglevel(4)
- tasmota.log("MTR: SIGMA1: candidateDestinationId=" + candidateDestinationId.tohex(), 4)
+ log("MTR: SIGMA1: candidateDestinationId=" + candidateDestinationId.tohex(), 4)
end
if candidateDestinationId == destinationId
return fabric
@@ -311,7 +311,7 @@ class Matter_Commisioning_Context
end
# TODO if there is only 1 fabric, we can try to use it anyways
# if size(self.device.sessions.fabrics) == 1
- # tasmota.log("MTR: *** Could not find fabric, trying only fabric in store", 2)
+ # log("MTR: *** Could not find fabric, trying only fabric in store", 2)
# return self.device.sessions.fabrics[0]
# end
return nil
@@ -322,19 +322,19 @@ class Matter_Commisioning_Context
var session = msg.session
# sanity checks
if msg.opcode != 0x30 || msg.local_session_id != 0 || msg.protocol_id != 0
- # tasmota.log("MTR: invalid Sigma1 message", 3)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ # log("MTR: invalid Sigma1 message", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
var sigma1 = matter.Sigma1().parse(msg.raw, msg.app_payload_idx)
- # tasmota.log(format("MTR: sigma1=%s", matter.inspect(sigma1)), 4)
+ # log(format("MTR: sigma1=%s", matter.inspect(sigma1)), 4)
session.__initiator_pub = sigma1.initiatorEphPubKey
# find session
var is_resumption = (sigma1.resumptionID != nil && sigma1.initiatorResumeMIC != nil)
- # tasmota.log(format("MTR: is_resumption=%i", is_resumption ? 1 : 0), 4)
+ # log(format("MTR: is_resumption=%i", is_resumption ? 1 : 0), 4)
# TODO disable resumption until fixed
is_resumption = false
@@ -342,7 +342,7 @@ class Matter_Commisioning_Context
var session_resumption
if is_resumption
session_resumption = self.device.sessions.find_session_by_resumption_id(sigma1.resumptionID)
- # tasmota.log(format("MTR: session_resumption found session=%s session_resumption=%s", matter.inspect(session), matter.inspect(session_resumption)), 4)
+ # log(format("MTR: session_resumption found session=%s session_resumption=%s", matter.inspect(session), matter.inspect(session_resumption)), 4)
if session_resumption == nil || session_resumption._fabric == nil
is_resumption = false
end
@@ -362,19 +362,19 @@ class Matter_Commisioning_Context
var Resume1MICPayload = ec.decrypt(encrypted)
var decrypted_tag = ec.tag()
- # tasmota.log("****************************************", 4)
- # tasmota.log("MTR: * s1rk = " + s1rk.tohex(), 4)
- # tasmota.log("MTR: * tag = " + tag.tohex(), 4)
- # tasmota.log("MTR: * Resume1MICPayload = " + Resume1MICPayload.tohex(), 4)
- # tasmota.log("MTR: * decrypted_tag = " + decrypted_tag.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("****************************************", 4)
+ # log("MTR: * s1rk = " + s1rk.tohex(), 4)
+ # log("MTR: * tag = " + tag.tohex(), 4)
+ # log("MTR: * Resume1MICPayload = " + Resume1MICPayload.tohex(), 4)
+ # log("MTR: * decrypted_tag = " + decrypted_tag.tohex(), 4)
+ # log("****************************************", 4)
if tag == decrypted_tag
session._fabric = session_resumption._fabric
session._source_node_id = msg.source_node_id
session.set_mode_CASE()
session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id()
- tasmota.log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
+ log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
# Generate and Send Sigma2_Resume
session.shared_secret = session_resumption.shared_secret
@@ -395,13 +395,13 @@ class Matter_Commisioning_Context
sigma2resume.responderSessionID = session.__future_local_session_id
sigma2resume.sigma2ResumeMIC = Resume2MIC
- # tasmota.log("****************************************", 4)
- # tasmota.log("MTR: * s2rk = " + s2rk.tohex(), 4)
- # tasmota.log("MTR: * s2rk_salt = " + s2rk_salt.tohex(), 4)
- # tasmota.log("MTR: * new_resumption_id = " + session.resumption_id.tohex(), 4)
- # tasmota.log("MTR: * responderSessionID= " + str(session.__future_local_session_id), 4)
- # tasmota.log("MTR: * sigma2ResumeMIC = " + Resume2MIC.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("****************************************", 4)
+ # log("MTR: * s2rk = " + s2rk.tohex(), 4)
+ # log("MTR: * s2rk_salt = " + s2rk_salt.tohex(), 4)
+ # log("MTR: * new_resumption_id = " + session.resumption_id.tohex(), 4)
+ # log("MTR: * responderSessionID= " + str(session.__future_local_session_id), 4)
+ # log("MTR: * sigma2ResumeMIC = " + Resume2MIC.tohex(), 4)
+ # log("****************************************", 4)
# # compute session key, p.178
var session_keys = crypto.HKDF_SHA256().derive(session.shared_secret #- input key -#,
sigma1.initiatorRandom + session.resumption_id #- salt -#,
@@ -412,16 +412,16 @@ class Matter_Commisioning_Context
var ac = session_keys[32..47]
var created = tasmota.rtc_utc()
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: I2RKey =" + i2r.tohex(), 4)
- # tasmota.log("MTR: R2IKey =" + r2i.tohex(), 4)
- # tasmota.log("MTR: AC =" + ac.tohex(), 4)
- # tasmota.log("MTR: ******************************", 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: I2RKey =" + i2r.tohex(), 4)
+ # log("MTR: R2IKey =" + r2i.tohex(), 4)
+ # log("MTR: AC =" + ac.tohex(), 4)
+ # log("MTR: ******************************", 4)
var sigma2resume_raw = sigma2resume.tlv2raw()
session.__Msg1 = nil
- # tasmota.log("MTR: sigma2resume: " + matter.inspect(sigma2resume), 4)
- # tasmota.log("MTR: sigma2resume_raw: " + sigma2resume_raw.tohex(), 4)
+ # log("MTR: sigma2resume: " + matter.inspect(sigma2resume), 4)
+ # log("MTR: sigma2resume_raw: " + sigma2resume_raw.tohex(), 4)
# now package the response message
var resp = msg.build_response(0x33 #-sigma-2-resume-#, true)
@@ -453,7 +453,7 @@ class Matter_Commisioning_Context
session._fabric = fabric
if session == nil || session._fabric == nil
- tasmota.log("MTR: StatusReport(GeneralCode: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: NO_SHARED_TRUST_ROOTS)", 3)
+ log("MTR: StatusReport(GeneralCode: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: NO_SHARED_TRUST_ROOTS)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0001, false)
return false
end
@@ -462,26 +462,26 @@ class Matter_Commisioning_Context
session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id()
- tasmota.log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
+ log(format("MTR: +Session (%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
- # tasmota.log("MTR: fabric="+matter.inspect(session._fabric), 4)
- # tasmota.log("MTR: no_private_key="+session.get_pk().tohex(), 4)
- # tasmota.log("MTR: noc ="+session.get_noc().tohex(), 4)
+ # log("MTR: fabric="+matter.inspect(session._fabric), 4)
+ # log("MTR: no_private_key="+session.get_pk().tohex(), 4)
+ # log("MTR: noc ="+session.get_noc().tohex(), 4)
# if fabric.get_icac()
- # tasmota.log("MTR: icac ="+fabric.get_icac().tohex(), 4)
+ # log("MTR: icac ="+fabric.get_icac().tohex(), 4)
# end
- # tasmota.log("MTR: root_ca_cert ="+fabric.get_ca().tohex(), 4)
+ # log("MTR: root_ca_cert ="+fabric.get_ca().tohex(), 4)
# Compute Sigma2, p.162
session.resumption_id = crypto.random(16) # generate a new resumption id
session.__responder_priv = crypto.random(32)
session.__responder_pub = crypto.EC_P256().public_key(session.__responder_priv)
- # tasmota.log("MTR: ResponderEph_priv ="+session.__responder_priv.tohex(), 4)
- # tasmota.log("MTR: ResponderEph_pub ="+session.__responder_pub.tohex(), 4)
+ # log("MTR: ResponderEph_priv ="+session.__responder_priv.tohex(), 4)
+ # log("MTR: ResponderEph_pub ="+session.__responder_pub.tohex(), 4)
var responderRandom = crypto.random(32)
session.shared_secret = crypto.EC_P256().shared_key(session.__responder_priv, sigma1.initiatorEphPubKey)
- # tasmota.log("MTR: * shared_secret = " + session.shared_secret.tohex(), 4)
+ # log("MTR: * shared_secret = " + session.shared_secret.tohex(), 4)
var sigma2_tbsdata = matter.TLV.Matter_TLV_struct()
sigma2_tbsdata.add_TLV(1, matter.TLV.B2, fabric.get_noc())
@@ -490,10 +490,10 @@ class Matter_Commisioning_Context
sigma2_tbsdata.add_TLV(4, matter.TLV.B2, sigma1.initiatorEphPubKey)
var TBSData2Signature = crypto.EC_P256().ecdsa_sign_sha256(fabric.get_pk(), sigma2_tbsdata.tlv2raw())
- # tasmota.log("****************************************", 4)
- # tasmota.log("MTR: * fabric.get_pk = " + str(fabric.get_pk()), 4)
- # tasmota.log("MTR: * sigma2_tbsdata = " + str(sigma2_tbsdata), 4)
- # tasmota.log("MTR: * TBSData2Signature = " + TBSData2Signature.tohex(), 4)
+ # log("****************************************", 4)
+ # log("MTR: * fabric.get_pk = " + str(fabric.get_pk()), 4)
+ # log("MTR: * sigma2_tbsdata = " + str(sigma2_tbsdata), 4)
+ # log("MTR: * TBSData2Signature = " + TBSData2Signature.tohex(), 4)
var sigma2_tbedata = matter.TLV.Matter_TLV_struct()
sigma2_tbedata.add_TLV(1, matter.TLV.B2, fabric.get_noc())
@@ -502,47 +502,47 @@ class Matter_Commisioning_Context
sigma2_tbedata.add_TLV(4, matter.TLV.B2, session.resumption_id)
# compute TranscriptHash = Crypto_Hash(message = Msg1)
- # tasmota.log("****************************************", 4)
+ # log("****************************************", 4)
session.__Msg1 = sigma1.Msg1
- # tasmota.log("MTR: * resumptionid = " + session.resumption_id.tohex(), 4)
- # tasmota.log("MTR: * MSG1 = " + session.__Msg1.tohex(), 4)
+ # log("MTR: * resumptionid = " + session.resumption_id.tohex(), 4)
+ # log("MTR: * MSG1 = " + session.__Msg1.tohex(), 4)
var TranscriptHash = crypto.SHA256().update(session.__Msg1).out()
- # tasmota.log("MTR: TranscriptHash =" + TranscriptHash.tohex(), 4)
+ # log("MTR: TranscriptHash =" + TranscriptHash.tohex(), 4)
# Compute S2K, p.175
var s2k_info = bytes().fromstring(self.S2K_Info)
var s2k_salt = fabric.get_ipk_group_key() + responderRandom + session.__responder_pub + TranscriptHash
var s2k = crypto.HKDF_SHA256().derive(session.shared_secret, s2k_salt, s2k_info, 16)
- # tasmota.log("MTR: * SharedSecret = " + session.shared_secret.tohex(), 4)
- # tasmota.log("MTR: * s2k_salt = " + s2k_salt.tohex(), 4)
- # tasmota.log("MTR: * s2k = " + s2k.tohex(), 4)
+ # log("MTR: * SharedSecret = " + session.shared_secret.tohex(), 4)
+ # log("MTR: * s2k_salt = " + s2k_salt.tohex(), 4)
+ # log("MTR: * s2k = " + s2k.tohex(), 4)
var sigma2_tbedata_raw = sigma2_tbedata.tlv2raw()
- # tasmota.log("MTR: * TBEData2Raw = " + sigma2_tbedata_raw.tohex(), 4)
+ # log("MTR: * TBEData2Raw = " + sigma2_tbedata_raw.tohex(), 4)
# // `AES_CCM.init(secret_key:bytes(16 or 32), iv:bytes(7..13), aad:bytes(), data_len:int, tag_len:int) -> instance`
var aes = crypto.AES_CCM(s2k, bytes().fromstring(self.TBEData2_Nonce), bytes(), size(sigma2_tbedata_raw), 16)
var TBEData2Encrypted = aes.encrypt(sigma2_tbedata_raw) + aes.tag()
- # tasmota.log("MTR: * TBEData2Enc = " + TBEData2Encrypted.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("MTR: * TBEData2Enc = " + TBEData2Encrypted.tohex(), 4)
+ # log("****************************************", 4)
var sigma2 = matter.Sigma2()
sigma2.responderRandom = responderRandom
sigma2.responderSessionId = session.__future_local_session_id
sigma2.responderEphPubKey = session.__responder_pub
sigma2.encrypted2 = TBEData2Encrypted
- # tasmota.log("MTR: sigma2: " + matter.inspect(sigma2), 4)
+ # log("MTR: sigma2: " + matter.inspect(sigma2), 4)
var sigma2_raw = sigma2.tlv2raw()
session.__Msg2 = sigma2_raw
- # tasmota.log("MTR: sigma2_raw: " + sigma2_raw.tohex(), 4)
+ # log("MTR: sigma2_raw: " + sigma2_raw.tohex(), 4)
# now package the response message
var resp = msg.build_response(0x31 #-sigma-2-#, true) # no reliable flag
var raw = resp.encode_frame(sigma2_raw)
# log the fact that a new connection is starting
- tasmota.log(format("MTR: New Connection (CASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port), 2)
+ log(format("MTR: New Connection (CASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port), 2)
self.responder.send_response_frame(resp)
return true
@@ -555,29 +555,29 @@ class Matter_Commisioning_Context
import crypto
# sanity checks
if msg.opcode != 0x32 || msg.local_session_id != 0 || msg.protocol_id != 0
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
var session = msg.session
var sigma3 = matter.Sigma3().parse(msg.raw, msg.app_payload_idx)
- # tasmota.log("****************************************", 4)
+ # log("****************************************", 4)
# compute TranscriptHash = Crypto_Hash(message = Msg1 || Msg2)
var TranscriptHash = crypto.SHA256().update(session.__Msg1).update(session.__Msg2).out()
- # tasmota.log("MTR: * session = " + str(session), 4)
- # tasmota.log("MTR: .ipk_epoch_key=" + str(session.get_ipk_epoch_key()), 4)
- # tasmota.log("MTR: .fabric_compr = " + str(session.get_fabric_compressed()), 4)
- # tasmota.log("MTR: * ipk_group_key = " + session.get_ipk_group_key().tohex(), 4)
- # tasmota.log("MTR: * TranscriptHash= " + TranscriptHash.tohex(), 4)
+ # log("MTR: * session = " + str(session), 4)
+ # log("MTR: .ipk_epoch_key=" + str(session.get_ipk_epoch_key()), 4)
+ # log("MTR: .fabric_compr = " + str(session.get_fabric_compressed()), 4)
+ # log("MTR: * ipk_group_key = " + session.get_ipk_group_key().tohex(), 4)
+ # log("MTR: * TranscriptHash= " + TranscriptHash.tohex(), 4)
var s3k_info = bytes().fromstring(self.S3K_Info)
var s3k = crypto.HKDF_SHA256().derive(session.shared_secret, session.get_ipk_group_key() + TranscriptHash, s3k_info, 16)
- # tasmota.log("****************************************", 4)
- # tasmota.log("MTR: * s3k_salt = " + (session.get_ipk_group_key() + TranscriptHash).tohex(), 4)
- # tasmota.log("MTR: * s3k = " + s3k.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("****************************************", 4)
+ # log("MTR: * s3k_salt = " + (session.get_ipk_group_key() + TranscriptHash).tohex(), 4)
+ # log("MTR: * s3k = " + s3k.tohex(), 4)
+ # log("****************************************", 4)
# decrypt
var encrypted = sigma3.TBEData3Encrypted[0..-17]
@@ -585,75 +585,75 @@ class Matter_Commisioning_Context
var ec = crypto.AES_CCM(s3k, bytes().fromstring(self.TBEData3_Nonce), bytes(), size(encrypted), 16)
var TBEData3 = ec.decrypt(encrypted)
var TBETag3 = ec.tag()
- # tasmota.log("MTR: * TBEData3 = " + TBEData3.tohex(), 4)
- # tasmota.log("MTR: * TBETag3 = " + TBETag3.tohex(), 4)
- # tasmota.log("MTR: * tag_sent = " + tag.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("MTR: * TBEData3 = " + TBEData3.tohex(), 4)
+ # log("MTR: * TBETag3 = " + TBETag3.tohex(), 4)
+ # log("MTR: * tag_sent = " + tag.tohex(), 4)
+ # log("****************************************", 4)
if TBETag3 != tag
- tasmota.log("MTR: Tag don't match", 3)
- tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
+ log("MTR: Tag don't match", 3)
+ log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 3)
self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
return false
end
var TBEData3TLV = matter.TLV.parse(TBEData3)
- # tasmota.log("MTR: * TBEData3TLV = " + str(TBEData3TLV), 4)
+ # log("MTR: * TBEData3TLV = " + str(TBEData3TLV), 4)
var initiatorNOC = TBEData3TLV.findsubval(1)
var initiatorICAC = TBEData3TLV.findsubval(2)
var ec_signature = TBEData3TLV.findsubval(3)
- # tasmota.log("MTR: * initiatorNOC = " + str(initiatorNOC), 4)
- # tasmota.log("MTR: * initiatorICAC = " + str(initiatorICAC), 4)
- # tasmota.log("MTR: * ec_signature = " + str(ec_signature), 4)
+ # log("MTR: * initiatorNOC = " + str(initiatorNOC), 4)
+ # log("MTR: * initiatorICAC = " + str(initiatorICAC), 4)
+ # log("MTR: * ec_signature = " + str(ec_signature), 4)
# Success = Crypto_VerifyChain(certificates = [TBEData3.initiatorNOC, TBEData3.initiatorICAC, TrustedRCAC]), when TBEData3.initiatorICAC is present
# TODO
var initiatorNOCTLV = matter.TLV.parse(initiatorNOC)
- # tasmota.log("MTR: initiatorNOCTLV = " + str(initiatorNOCTLV), 4)
+ # log("MTR: initiatorNOCTLV = " + str(initiatorNOCTLV), 4)
var initiatorNOCPubKey = initiatorNOCTLV.findsubval(9)
var initiatorNOCListDN = initiatorNOCTLV.findsub(6)
var initiatorFabricId = initiatorNOCListDN.findsubval(17)
if type(initiatorFabricId) == 'int' session.peer_node_id = int64.fromu32(initiatorFabricId).tobytes() else session.peer_node_id = initiatorFabricId.tobytes() end
- # tasmota.log("MTR: initiatorFabricId="+str(session.peer_node_id), 4)
+ # log("MTR: initiatorFabricId="+str(session.peer_node_id), 4)
var sigma3_tbs = matter.TLV.Matter_TLV_struct()
sigma3_tbs.add_TLV(1, matter.TLV.B1, initiatorNOC)
sigma3_tbs.add_TLV(2, matter.TLV.B1, initiatorICAC)
sigma3_tbs.add_TLV(3, matter.TLV.B1, session.__initiator_pub)
sigma3_tbs.add_TLV(4, matter.TLV.B1, session.__responder_pub)
- # tasmota.log("MTR: * sigma3_tbs = " + str(sigma3_tbs), 4)
+ # log("MTR: * sigma3_tbs = " + str(sigma3_tbs), 4)
var sigma3_tbs_raw = sigma3_tbs.tlv2raw()
- # tasmota.log("MTR: * sigma3_tbs_raw= " + sigma3_tbs_raw.tohex(), 4)
+ # log("MTR: * sigma3_tbs_raw= " + sigma3_tbs_raw.tohex(), 4)
- # tasmota.log("MTR: * initiatorNOCPubKey= " + initiatorNOCPubKey.tohex(), 4)
- # tasmota.log("MTR: * ec_signature = " + ec_signature.tohex(), 4)
- # tasmota.log("****************************************", 4)
+ # log("MTR: * initiatorNOCPubKey= " + initiatorNOCPubKey.tohex(), 4)
+ # log("MTR: * ec_signature = " + ec_signature.tohex(), 4)
+ # log("****************************************", 4)
# `crypto.EC_P256().ecdsa_verify_sha256(public_key:bytes(65), message:bytes(), hash:bytes()) -> bool`
var sigma3_tbs_valid = crypto.EC_P256().ecdsa_verify_sha256(initiatorNOCPubKey, sigma3_tbs_raw, ec_signature)
if !sigma3_tbs_valid
- tasmota.log("MTR: sigma3_tbs does not have a valid signature", 2)
- tasmota.log("MTR: ******************* Invalid signature, trying anyways", 2)
- # tasmota.log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 2)
+ log("MTR: sigma3_tbs does not have a valid signature", 2)
+ log("MTR: ******************* Invalid signature, trying anyways", 2)
+ # log("MTR: StatusReport(General Code: FAILURE, ProtocolId: SECURE_CHANNEL, ProtocolCode: INVALID_PARAMETER)", 2)
# self.send_status_report(msg, 0x01, 0x0000, 0x0002, false)
# return false
else
# All good, compute new keys
- tasmota.log("MTR: Sigma3 verified, computing new keys", 3)
+ log("MTR: Sigma3 verified, computing new keys", 3)
end
TranscriptHash = crypto.SHA256().update(session.__Msg1).update(session.__Msg2).update(sigma3.Msg3).out()
- # tasmota.log("MTR: * __Msg1 = " + session.__Msg1.tohex(), 4)
- # tasmota.log("MTR: * __Msg2 = " + session.__Msg2.tohex(), 4)
- # tasmota.log("MTR: * __Msg3 = " + sigma3.Msg3.tohex(), 4)
- # tasmota.log("MTR: * TranscriptHash = " + TranscriptHash.tohex(), 4)
+ # log("MTR: * __Msg1 = " + session.__Msg1.tohex(), 4)
+ # log("MTR: * __Msg2 = " + session.__Msg2.tohex(), 4)
+ # log("MTR: * __Msg3 = " + sigma3.Msg3.tohex(), 4)
+ # log("MTR: * TranscriptHash = " + TranscriptHash.tohex(), 4)
# we can now free __Msg1 and __Msg2
session.__Msg1 = nil
session.__Msg2 = nil
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: shared_secret =" + session.shared_secret.tohex(), 4)
- # tasmota.log("MTR: ipk + hash =" + (session.get_ipk_group_key() + TranscriptHash).tohex(), 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: shared_secret =" + session.shared_secret.tohex(), 4)
+ # log("MTR: ipk + hash =" + (session.get_ipk_group_key() + TranscriptHash).tohex(), 4)
# compute session key
var session_keys = crypto.HKDF_SHA256().derive(session.shared_secret #- input key -#,
session.get_ipk_group_key() + TranscriptHash #- salt -#,
@@ -664,11 +664,11 @@ class Matter_Commisioning_Context
var ac = session_keys[32..47]
var created = tasmota.rtc_utc()
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: I2RKey =" + i2r.tohex(), 4)
- # tasmota.log("MTR: R2IKey =" + r2i.tohex(), 4)
- # tasmota.log("MTR: AC =" + ac.tohex(), 4)
- # tasmota.log("MTR: ******************************", 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: I2RKey =" + i2r.tohex(), 4)
+ # log("MTR: R2IKey =" + r2i.tohex(), 4)
+ # log("MTR: AC =" + ac.tohex(), 4)
+ # log("MTR: ******************************", 4)
# StatusReport(GeneralCode: SUCCESS, ProtocolId: SECURE_CHANNEL, ProtocolCode: SESSION_ESTABLISHMENT_SUCCESS)
self.send_status_report(msg, 0x00, 0x0000, 0x0000, true)
@@ -691,7 +691,7 @@ class Matter_Commisioning_Context
# placeholder, nothing to run for now
def parse_StatusReport(msg)
var session = msg.session
- tasmota.log("MTR: >Status "+msg.raw[msg.app_payload_idx..].tohex(), 3)
+ log("MTR: >Status "+msg.raw[msg.app_payload_idx..].tohex(), 3)
return false # we don't explicitly ack the message
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning_Data.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning_Data.be
index 6103b71f7..8f2fa8aed 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning_Data.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning_Data.be
@@ -41,8 +41,9 @@ class Matter_PBKDFParamRequest
var SLEEPY_ACTIVE_INTERVAL
def parse(b, idx)
+ var TLV = matter.TLV
if idx == nil idx = 0 end
- var val = matter.TLV.parse(b, idx)
+ var val = TLV.parse(b, idx)
self.initiatorRandom = val.getsubval(1)
self.initiator_session_id = val.getsubval(2)
@@ -71,18 +72,19 @@ class Matter_PBKDFParamResponse
var SLEEPY_ACTIVE_INTERVAL
def tlv2raw(b)
- var s = matter.TLV.Matter_TLV_struct()
+ var TLV = matter.TLV
+ var s = TLV.Matter_TLV_struct()
# initiatorRandom
- s.add_TLV(1, matter.TLV.B1, self.initiatorRandom)
- s.add_TLV(2, matter.TLV.B1, self.responderRandom)
- s.add_TLV(3, matter.TLV.U2, self.responderSessionId)
+ s.add_TLV(1, TLV.B1, self.initiatorRandom)
+ s.add_TLV(2, TLV.B1, self.responderRandom)
+ s.add_TLV(3, TLV.U2, self.responderSessionId)
var s_pbkdf = s.add_struct(4)
- s_pbkdf.add_TLV(1, matter.TLV.U4, self.pbkdf_parameters_iterations)
- s_pbkdf.add_TLV(2, matter.TLV.B1, self.pbkdf_parameters_salt)
+ s_pbkdf.add_TLV(1, TLV.U4, self.pbkdf_parameters_iterations)
+ s_pbkdf.add_TLV(2, TLV.B1, self.pbkdf_parameters_salt)
if self.SLEEPY_IDLE_INTERVAL != nil || self.SLEEPY_ACTIVE_INTERVAL != nil
var s2 = s.add_struct(5)
- s2.add_TLV(1, matter.TLV.U4, self.SLEEPY_IDLE_INTERVAL)
- s2.add_TLV(2, matter.TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
+ s2.add_TLV(1, TLV.U4, self.SLEEPY_IDLE_INTERVAL)
+ s2.add_TLV(2, TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
end
return s.tlv2raw(b)
end
@@ -98,7 +100,7 @@ class Matter_Pake1
def parse(b, idx)
if idx == nil idx = 0 end
var val = matter.TLV.parse(b, idx)
- # tasmota.log("MTR: parsed TLV: " + str(val), 4)
+ # log("MTR: parsed TLV: " + str(val), 4)
self.pA = val.getsubval(1)
return self
@@ -114,10 +116,11 @@ class Matter_Pake2
var cB # 32 bytes
def tlv2raw(b)
- var s = matter.TLV.Matter_TLV_struct()
+ var TLV = matter.TLV
+ var s = TLV.Matter_TLV_struct()
#
- s.add_TLV(1, matter.TLV.B1, self.pB)
- s.add_TLV(2, matter.TLV.B1, self.cB)
+ s.add_TLV(1, TLV.B1, self.pB)
+ s.add_TLV(2, TLV.B1, self.cB)
return s.tlv2raw(b)
end
end
@@ -130,7 +133,7 @@ class Matter_Pake3
def parse(b, idx)
if idx == nil idx = 0 end
var val = matter.TLV.parse(b, idx)
- # tasmota.log("MTR: parsed TLV: " + str(val), 4)
+ # log("MTR: parsed TLV: " + str(val), 4)
self.cA = val.getsubval(1)
return self
@@ -157,7 +160,7 @@ class Matter_Sigma1
if idx == nil idx = 0 end
var val = matter.TLV.parse(b, idx)
self.Msg1 = b[idx..]
- # tasmota.log("MTR: Sigma1 TLV=" + str(val), 4)
+ # log("MTR: Sigma1 TLV=" + str(val), 4)
self.initiatorRandom = val.getsubval(1)
self.initiator_session_id = val.getsubval(2)
@@ -187,16 +190,17 @@ class Matter_Sigma2
var SLEEPY_ACTIVE_INTERVAL
def tlv2raw(b)
- var s = matter.TLV.Matter_TLV_struct()
+ var TLV = matter.TLV
+ var s = TLV.Matter_TLV_struct()
# initiatorRandom
- s.add_TLV(1, matter.TLV.B1, self.responderRandom)
- s.add_TLV(2, matter.TLV.U2, self.responderSessionId)
- s.add_TLV(3, matter.TLV.B1, self.responderEphPubKey)
- s.add_TLV(4, matter.TLV.B1, self.encrypted2)
+ s.add_TLV(1, TLV.B1, self.responderRandom)
+ s.add_TLV(2, TLV.U2, self.responderSessionId)
+ s.add_TLV(3, TLV.B1, self.responderEphPubKey)
+ s.add_TLV(4, TLV.B1, self.encrypted2)
if self.SLEEPY_IDLE_INTERVAL != nil || self.SLEEPY_ACTIVE_INTERVAL != nil
var s2 = s.add_struct(5)
- s2.add_TLV(1, matter.TLV.U4, self.SLEEPY_IDLE_INTERVAL)
- s2.add_TLV(2, matter.TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
+ s2.add_TLV(1, TLV.U4, self.SLEEPY_IDLE_INTERVAL)
+ s2.add_TLV(2, TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
end
return s.tlv2raw(b)
end
@@ -214,15 +218,16 @@ class Matter_Sigma2Resume
var SLEEPY_ACTIVE_INTERVAL
def tlv2raw(b)
- var s = matter.TLV.Matter_TLV_struct()
+ var TLV = matter.TLV
+ var s = TLV.Matter_TLV_struct()
# initiatorRandom
- s.add_TLV(1, matter.TLV.B1, self.resumptionID)
- s.add_TLV(2, matter.TLV.B1, self.sigma2ResumeMIC)
- s.add_TLV(3, matter.TLV.U2, self.responderSessionID)
+ s.add_TLV(1, TLV.B1, self.resumptionID)
+ s.add_TLV(2, TLV.B1, self.sigma2ResumeMIC)
+ s.add_TLV(3, TLV.U2, self.responderSessionID)
if self.SLEEPY_IDLE_INTERVAL != nil || self.SLEEPY_ACTIVE_INTERVAL != nil
var s2 = s.add_struct(4)
- s2.add_TLV(1, matter.TLV.U4, self.SLEEPY_IDLE_INTERVAL)
- s2.add_TLV(2, matter.TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
+ s2.add_TLV(1, TLV.U4, self.SLEEPY_IDLE_INTERVAL)
+ s2.add_TLV(2, TLV.U4, self.SLEEPY_ACTIVE_INTERVAL)
end
return s.tlv2raw(b)
end
@@ -240,7 +245,7 @@ class Matter_Sigma3
if idx == nil idx = 0 end
var val = matter.TLV.parse(b, idx)
self.Msg3 = b[idx..]
- # tasmota.log("MTR: Sigma3 TLV=" + str(val), 4)
+ # log("MTR: Sigma3 TLV=" + str(val), 4)
self.TBEData3Encrypted = val.getsubval(1)
return self
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
index d00c0cd53..0d640253a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Control_Message.be
@@ -39,13 +39,13 @@ class Matter_Control_Message
def process_incoming_control_message(msg)
- tasmota.log("MTR: received control message " + matter.inspect(msg), 3)
+ log("MTR: received control message " + matter.inspect(msg), 3)
if msg.opcode == 0x00
return self.parse_MsgCounterSyncReq(msg)
elif msg.opcode == 0x01
return self.parse_MsgCounterSyncRsp(msg)
else
- tasmota.log(format("MTR: >????????? Unknown OpCode (control message) %02X", msg.opcode), 2)
+ log(format("MTR: >????????? Unknown OpCode (control message) %02X", msg.opcode), 2)
return false
end
@@ -58,7 +58,7 @@ class Matter_Control_Message
# Not yet implemented
def parse_MsgCounterSyncReq(msg)
var session = msg.session
- tasmota.log(format("MTR: >MCSyncReq * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
+ log(format("MTR: >MCSyncReq * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
return false # we don't explicitly ack the message
end
@@ -68,7 +68,7 @@ class Matter_Control_Message
# Not yet implemented
def parse_MsgCounterSyncRsp(msg)
var session = msg.session
- tasmota.log(format("MTR: >MCSyncRsp * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
+ log(format("MTR: >MCSyncRsp * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
return false # we don't explicitly ack the message
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Fabric.be b/lib/libesp32/berry_matter/src/embedded/Matter_Fabric.be
index b77f1bd1a..a6f6ed3ed 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Fabric.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Fabric.be
@@ -193,7 +193,7 @@ class Matter_Fabric : Matter_Expirable
#
def counter_group_data_snd_next()
var next = self._counter_group_data_snd_impl.next()
- tasmota.log(f"MTR: . Counter_group_data_snd={next:i}", 3)
+ log(f"MTR: . Counter_group_data_snd={next:i}", 3)
if matter.Counter.is_greater(next, self.counter_group_data_snd)
self.counter_group_data_snd = next + self._GROUP_SND_INCR
if self.does_persist()
@@ -208,7 +208,7 @@ class Matter_Fabric : Matter_Expirable
#
def counter_group_ctrl_snd_next()
var next = self._counter_group_ctrl_snd_impl.next()
- tasmota.log(f"MTR: . Counter_group_ctrl_snd={next:i}", 3)
+ log(f"MTR: . Counter_group_ctrl_snd={next:i}", 3)
if matter.Counter.is_greater(next, self.counter_group_ctrl_snd)
self.counter_group_ctrl_snd = next + self._GROUP_SND_INCR
if self.does_persist()
@@ -222,13 +222,13 @@ class Matter_Fabric : Matter_Expirable
#############################################################
# Called before removal
def log_new_fabric()
- tasmota.log(format("MTR: +Fabric fab='%s' vendorid=%s", self.get_fabric_id().copy().reverse().tohex(), self.get_admin_vendor_name()), 3)
+ log(format("MTR: +Fabric fab='%s' vendorid=%s", self.get_fabric_id().copy().reverse().tohex(), self.get_admin_vendor_name()), 3)
end
#############################################################
# Called before removal
def before_remove()
- tasmota.log(format("MTR: -Fabric fab='%s' (removed)", self.get_fabric_id().copy().reverse().tohex()), 3)
+ log(format("MTR: -Fabric fab='%s' (removed)", self.get_fabric_id().copy().reverse().tohex()), 3)
end
#############################################################
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be b/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
index 854fb820a..ee9620a6b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_HTTP_remote.be
@@ -137,7 +137,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
# dispatch to method in charge of converting to shadow values
method(obj, j, code)
else
- tasmota.log(f"MTR: *** failed to parse JSON response {payload=}", 3)
+ log(f"MTR: *** failed to parse JSON response {payload=}", 3)
end
end
end
@@ -159,7 +159,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
else
self.info.remove("name")
end
- tasmota.log(f"MTR: update '{self.addr}' name='{device_name}'", 3)
+ log(f"MTR: update '{self.addr}' name='{device_name}'", 3)
changed = true
end
@@ -175,7 +175,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
else
self.info.remove('version')
end
- tasmota.log(f"MTR: update '{self.addr}' version='{version}'", 3)
+ log(f"MTR: update '{self.addr}' version='{version}'", 3)
changed = true
end
@@ -185,7 +185,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
else
self.info.remove('hardware')
end
- tasmota.log(f"MTR: update '{self.addr}' hardware='{hardware}'", 3)
+ log(f"MTR: update '{self.addr}' hardware='{hardware}'", 3)
changed = true
end
@@ -201,7 +201,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
else
self.info.remove("mac")
end
- tasmota.log(f"MTR: update '{self.addr}' mac='{mac}'", 3)
+ log(f"MTR: update '{self.addr}' mac='{mac}'", 3)
changed = true
end
@@ -283,7 +283,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = cmd
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
- tasmota.log(format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
+ log(format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
var ret = self.begin(cmd_url)
end
@@ -302,11 +302,11 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = nil
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
- tasmota.log(format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
+ log(format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 4)
var ret = super(self).begin_sync(cmd_url, timeout)
var payload_short = (ret) ? ret : 'nil'
if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end
- tasmota.log(format("MTR: HTTP sync-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
+ log(format("MTR: HTTP sync-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
return ret
end
@@ -314,17 +314,17 @@ class Matter_HTTP_remote : Matter_HTTP_async
if self.current_cmd == nil return end # do nothing if sync request
var payload_short = (self.payload != nil) ? self.payload : 'nil'
if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end
- tasmota.log(format("MTR: HTTP async-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
+ log(format("MTR: HTTP async-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
self.dispatch_cb(self.http_status, self.payload)
end
def event_http_failed()
if self.current_cmd == nil return end # do nothing if sync request
- tasmota.log("MTR: HTTP failed", 3)
+ log("MTR: HTTP failed", 3)
self.dispatch_cb(self.http_status, nil)
end
def event_http_timeout()
if self.current_cmd == nil return end # do nothing if sync request
- tasmota.log(format("MTR: HTTP timeout http_status=%i phase=%i tcp_status=%i size_payload=%i", self.http_status, self.phase, self.status, size(self.payload)), 3)
+ log(format("MTR: HTTP timeout http_status=%i phase=%i tcp_status=%i size_payload=%i", self.http_status, self.phase, self.status, size(self.payload)), 3)
self.dispatch_cb(self.http_status, nil)
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index d0977b242..5126757a4 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -52,24 +52,24 @@ class Matter_IM
if opcode == 0x02 # Read Request
var read_request_solo = self.read_request_solo.from_raw(msg.raw, msg.app_payload_idx)
if read_request_solo != nil
- # tasmota.log(f"MTR: process_incoming {read_request_solo=}")
+ # log(f"MTR: process_incoming {read_request_solo=}")
return self.process_read_request_solo(msg, read_request_solo)
end
elif opcode == 0x08 # Invoke Request
var invoke_request_solo = self.invoke_request_solo.from_raw(msg.raw, msg.app_payload_idx)
- # tasmota.log(f"MTR: {invoke_request_solo=} {msg.raw[msg.app_payload_idx .. ].tohex()} {msg.app_payload_idx=} {msg.raw.tohex()}")
+ # log(f"MTR: {invoke_request_solo=} {msg.raw[msg.app_payload_idx .. ].tohex()} {msg.app_payload_idx=} {msg.raw.tohex()}")
if invoke_request_solo != nil
return self.process_invoke_request_solo(msg, invoke_request_solo)
end
end
- # tasmota.log("MTR: received IM message " + matter.inspect(msg), 3)
+ # log("MTR: received IM message " + matter.inspect(msg), 3)
var val = matter.TLV.parse(msg.raw, msg.app_payload_idx)
- # tasmota.log("MTR: IM TLV: " + str(val), 3)
+ # log("MTR: IM TLV: " + str(val), 3)
# var InteractionModelRevision = val.findsubval(0xFF)
- # tasmota.log("MTR: InteractionModelRevision=" + (InteractionModelRevision != nil ? str(InteractionModelRevision) : "nil"), 4)
+ # log("MTR: InteractionModelRevision=" + (InteractionModelRevision != nil ? str(InteractionModelRevision) : "nil"), 4)
if opcode == 0x01 # Status Response
return self.process_status_response(msg, val)
@@ -108,7 +108,7 @@ class Matter_IM
def process_incoming_ack(msg)
# check if there is an exchange_id interested in receiving this
var message = self.find_sendqueue_by_exchangeid(msg.exchange_id)
- # tasmota.log(format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 4)
+ # log(format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 4)
if message
return message.ack_received(msg) # dispatch to IM_Message
end
@@ -139,7 +139,7 @@ class Matter_IM
end
if message.finish
- tasmota.log("MTR: remove IM message exch="+str(message.resp.exchange_id), 4)
+ log("MTR: remove IM message exch="+str(message.resp.exchange_id), 4)
self.send_queue.remove(idx)
else
idx += 1
@@ -208,11 +208,11 @@ class Matter_IM
if message
return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange
else
- tasmota.log(format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 4) # don't show 'SUCCESS' to not overflow logs with non-information
+ log(format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 4) # don't show 'SUCCESS' to not overflow logs with non-information
end
else
# error
- tasmota.log(format("MTR: >Status ERROR = 0x%02X", status), 3)
+ log(format("MTR: >Status ERROR = 0x%02X", status), 3)
if message
message.status_error_received(msg)
self.remove_sendqueue_by_exchangeid(msg.exchange_id)
@@ -253,23 +253,23 @@ class Matter_IM
# check if too big to encode as a single packet
if (res.is_list || res.is_array) && res.encode_len() > matter.IM_ReportData.MAX_MESSAGE
- # tasmota.log(f"MTR: >>>>>> long response", 3)
+ # log(f"MTR: >>>>>> long response", 3)
a1_raw_or_list = [] # we return a list of block
var a1_raw = bytes(48)
var empty_list = TLV.Matter_TLV_array()
self.attributedata2raw(a1_raw, ctx, empty_list, false)
a1_raw_or_list.push(a1_raw)
- # tasmota.log(f"MTR: >>>>>> long response global DELETE {a1_raw.tohex()}", 3)
+ # log(f"MTR: >>>>>> long response global DELETE {a1_raw.tohex()}", 3)
for elt:res.val
a1_raw = bytes(48)
# var list_item = TLV.Matter_TLV_array()
# list_item.val.push(elt)
self.attributedata2raw(a1_raw, ctx, elt, true #- add ListIndex:null -#)
- # tasmota.log(f"MTR: >>>>>> long response global ADD {a1_raw.tohex()}", 3)
+ # log(f"MTR: >>>>>> long response global ADD {a1_raw.tohex()}", 3)
a1_raw_or_list.push(a1_raw)
end
- # tasmota.log(f"MTR: >>>>>> long response global {a1_raw_or_list}", 3)
+ # log(f"MTR: >>>>>> long response global {a1_raw_or_list}", 3)
else
# normal encoding
# encode directly raw bytes()
@@ -278,7 +278,7 @@ class Matter_IM
end
if !no_log
- tasmota.log(f"MTR: >Read_Attr ({session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
+ log(f"MTR: >Read_Attr ({session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
end
elif ctx.status != nil
if direct # we report an error only if a concrete direct read, not with wildcards
@@ -287,12 +287,12 @@ class Matter_IM
self.attributestatus2raw(a1_raw_or_list, ctx, ctx.status)
if tasmota.loglevel(3)
- tasmota.log(format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3)
+ log(format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3)
end
end
else
if !no_log
- tasmota.log(format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3)
+ log(format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3)
end
# ignore if content is nil and status is undefined
if direct
@@ -368,9 +368,9 @@ class Matter_IM
# we need expansion, log first
if ctx.cluster != nil && ctx.attribute != nil
var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- tasmota.log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
+ log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
else
- tasmota.log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
+ log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
end
end
@@ -381,8 +381,8 @@ class Matter_IM
)
end
- # tasmota.log("MTR: ReportDataMessage=" + str(ret), 3)
- # tasmota.log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
+ # log("MTR: ReportDataMessage=" + str(ret), 3)
+ # log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
return ret
end
@@ -705,7 +705,7 @@ class Matter_IM
var pi = self.device.process_attribute_read_solo(ctx)
var res = nil
# matter.profiler.log("read_request_solo pi ok")
- # tasmota.log(f"MTR: process_read_request_solo {pi=}")
+ # log(f"MTR: process_read_request_solo {pi=}")
var raw # this is the bytes() block we need to add to response (or nil)
if pi != nil
@@ -721,7 +721,7 @@ class Matter_IM
# revert to standard
# the attribute will be read again, but it's hard to avoid it
res = nil # indicated to GC that we don't need it again
- tasmota.log(f"MTR: Response to big, revert to non-solo", 3)
+ log(f"MTR: Response to big, revert to non-solo", 3)
var val = matter.TLV.parse(msg.raw, msg.app_payload_idx)
return self.process_read_request(msg, val)
end
@@ -752,7 +752,7 @@ class Matter_IM
raw.add(0x18, 1) # add 18
else
- tasmota.log(f"MTR: >Read_Attr ({msg.session.local_session_id:6i}) {ctx} - IGNORED", 3)
+ log(f"MTR: >Read_Attr ({msg.session.local_session_id:6i}) {ctx} - IGNORED", 3)
return false
end
@@ -765,7 +765,7 @@ class Matter_IM
resp.encode_frame(raw, msg_raw) # payload in cleartext
resp.encrypt()
if tasmota.loglevel(4)
- tasmota.log(format("MTR: Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
- # tasmota.log(f"MTR: {res.tlv2raw().tohex()}", 3)
+ log(f"MTR: >Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
+ # log(f"MTR: {res.tlv2raw().tohex()}", 3)
end
# if matter.profiler.active && tasmota.loglevel(3)
- # tasmota.log(f"MTR: {raw=}", 3) # TODO remove before flight
+ # log(f"MTR: {raw=}", 3) # TODO remove before flight
# end
elif ctx.status != nil
var unsupported_attribute = (ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : "")
if tasmota.loglevel(3)
- tasmota.log(f"MTR: >Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - STATUS: 0x{ctx.status:02X} {unsupported_attribute}", 3)
+ log(f"MTR: >Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - STATUS: 0x{ctx.status:02X} {unsupported_attribute}", 3)
end
# if matter.profiler.active && tasmota.loglevel(3)
- # tasmota.log(f"MTR: {raw=}", 3) # TODO remove before flight
+ # log(f"MTR: {raw=}", 3) # TODO remove before flight
# end
else
if tasmota.loglevel(3)
- tasmota.log(f"MTR: >Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - IGNORED", 3)
+ log(f"MTR: >Read_Attr1({msg.session.local_session_id:6i}) {ctx}{attr_name} - IGNORED", 3)
end
end
@@ -813,7 +813,7 @@ class Matter_IM
self.subs_shop.remove_by_session(msg.session) # if `keep_subscriptions`, kill all subscriptions from current session
end
- # tasmota.log("MTR: received SubscribeRequestMessage=" + str(query), 3)
+ # log("MTR: received SubscribeRequestMessage=" + str(query), 3)
var sub = self.subs_shop.new_subscription(msg.session, query)
@@ -827,10 +827,10 @@ class Matter_IM
ctx.attribute = q.attribute
attr_req.push(str(ctx))
end
- tasmota.log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s",
+ log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s",
msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0, sub.subscription_id, query.fabric_filtered), 3)
if query.event_requests != nil && size(query.event_requests) > 0
- tasmota.log(f"MTR: >Subscribe ({msg.session.local_session_id:6i}) event_requests_size={size(query.event_requests)}", 3)
+ log(f"MTR: >Subscribe ({msg.session.local_session_id:6i}) event_requests_size={size(query.event_requests)}", 3)
end
var ret = self._inner_process_read_request(msg.session, query, msg, true #-no_log-#)
@@ -849,7 +849,7 @@ class Matter_IM
def process_invoke_request(msg, val)
# import debug
# structure is `ReadRequestMessage` 10.6.2 p.558
- # tasmota.log("MTR: IM:invoke_request processing start", 4)
+ # log("MTR: IM:invoke_request processing start", 4)
matter.profiler.log("invoke_request_start")
var ctx = matter.Path()
ctx.msg = msg
@@ -872,8 +872,8 @@ class Matter_IM
var res = self.device.invoke_request(msg.session, q.command_fields, ctx)
matter.profiler.log("COMMAND DONE")
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
- tasmota.log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
- # tasmota.log("MTR: Perf/Command = " + str(debug.counters()), 4)
+ log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
+ # log("MTR: Perf/Command = " + str(debug.counters()), 4)
ctx.log = nil
var raw = bytes(32)
# var a1 = matter.InvokeResponseIB()
@@ -882,7 +882,7 @@ class Matter_IM
self.invokeresponse2raw(raw, ctx, nil)
ret.invoke_responses.push(raw)
if tasmota.loglevel(3)
- tasmota.log(f"MTR: Command1 (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
+ log(format("MTR: >Command1 (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
end
- # tasmota.log("MTR: Perf/Command = " + str(debug.counters()), 4)
+ # log("MTR: Perf/Command = " + str(debug.counters()), 4)
ctx.log = nil
var raw = bytes(48)
@@ -948,24 +948,24 @@ class Matter_IM
self.invokeresponse2raw(raw, ctx, nil)
if tasmota.loglevel(3)
- tasmota.log(f"MTR: Command (%6i) TimedRequest=%i", msg.session.local_session_id, query.timeout), 3)
+ log(format("MTR: >Command (%6i) TimedRequest=%i", msg.session.local_session_id, query.timeout), 3)
# Send success status report
self.send_status(msg, matter.SUCCESS)
@@ -1159,7 +1159,7 @@ class Matter_IM
fake_read.attributes_requests.push(p1)
end
- tasmota.log(format("MTR: >>>> send elements before encode")
@@ -213,13 +213,13 @@ class Matter_IM_ReportData : Matter_IM_Message
# print(">>>>> send elements after encode")
resp.encrypt()
# print(">>>>> send elements after encrypt")
- # tasmota.log(format("MTR: 0
data.attribute_reports = next_elemnts
- # tasmota.log(format("MTR: to_be_sent_later size=%i exch=%i", size(data.attribute_reports), resp.exchange_id), 4)
+ # log(format("MTR: to_be_sent_later size=%i exch=%i", size(data.attribute_reports), resp.exchange_id), 4)
self.ready = false # wait for Status Report before continuing sending
# keep alive
else
@@ -256,7 +256,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# ack received, confirm the heartbeat
def ack_received(msg)
- # tasmota.log(format("MTR: IM_ReportDataSubscribed ack_received sub=%i", self.sub.subscription_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed ack_received sub=%i", self.sub.subscription_id), 3)
super(self).ack_received(msg)
if !self.report_data_phase
# if ack is received while all data is sent, means that it finished without error
@@ -271,14 +271,14 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# we received an ACK error, remove subscription
def status_error_received(msg)
- # tasmota.log(format("MTR: IM_ReportDataSubscribed status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
self.sub.remove_self()
end
# ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg)
- # tasmota.log(format("MTR: IM_ReportDataSubscribed status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
if self.report_data_phase
return super(self).status_ok_received(msg)
else
@@ -291,13 +291,13 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# returns true if transaction is complete (remove object from queue)
# default responder for data
def send_im(responder)
- # tasmota.log(format("MTR: IM_ReportDataSubscribed send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
- # tasmota.log(format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
+ # log(format("MTR: IM_ReportDataSubscribed send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
+ # log(format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
if !self.ready return false end
if size(self.data.attribute_reports) > 0 # do we have still attributes to send
if self.report_data_phase
super(self).send_im(responder)
- # tasmota.log(format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3)
+ # log(format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3)
if !self.finish return end # ReportData needs to continue
# ReportData is finished
self.report_data_phase = false
@@ -309,7 +309,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
resp.encode_frame()
resp.encrypt()
if tasmota.loglevel(4)
- tasmota.log(format("MTR: Sub_OK (%6i) sub=%i", msg.session.local_session_id, self.sub.subscription_id), 3)
+ log(format("MTR: >Sub_OK (%6i) sub=%i", msg.session.local_session_id, self.sub.subscription_id), 3)
end
return super(self).status_ok_received(msg)
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Subscription.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Subscription.be
index b9c67ae09..9181b3b02 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Subscription.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Subscription.be
@@ -81,12 +81,12 @@ class Matter_IM_Subscription
self.clear_before_arm()
self.is_keep_alive = false
- # tasmota.log("MTR: new subsctiption " + matter.inspect(self), 3)
+ # log("MTR: new subsctiption " + matter.inspect(self), 3)
end
# remove self from subs_shop list
def remove_self()
- tasmota.log("MTR: -Sub_Del ( ) sub=" + str(self.subscription_id), 3)
+ log("MTR: -Sub_Del ( ) sub=" + str(self.subscription_id), 3)
self.subs_shop.remove_sub(self)
end
@@ -103,7 +103,7 @@ class Matter_IM_Subscription
self.expiration = now + (self.max_interval - self.MAX_INTERVAL_MARGIN) * 1000
self.not_before = now + self.min_interval * 1000 - 1
if !self.is_keep_alive
- tasmota.log(format("MTR: .Sub_Done ( ) sub=%i", self.subscription_id), 3)
+ log(format("MTR: .Sub_Done ( ) sub=%i", self.subscription_id), 3)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
index f70d2f2b0..5a45b779f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
@@ -304,7 +304,7 @@ class Matter_Frame
if resp.local_session_id == 0
var op_name = matter.get_opcode_name(resp.opcode)
if !op_name op_name = format("0x%02X", resp.opcode) end
- tasmota.log(format("MTR: >>>>>>>>>>>>>>>>>>> Compute Privacy TODO", 2)
+ log("MTR: >>>>>>>>>>>>>>>>>>>> Compute Privacy TODO", 2)
var k = session.get_i2r_privacy()
var mic = raw[-16..] # take last 16 bytes as signature
var n = bytes().add(self.local_session_id, -2) + mic[5..15] # session in Big Endian
@@ -387,13 +387,13 @@ class Matter_Frame
n.resize(13) # add zeros
end
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: raw =" + raw.tohex(), 4)
- # tasmota.log("MTR: i2r =" + i2r.tohex(), 4)
- # tasmota.log("MTR: p =" + raw[payload_idx .. -17].tohex(), 4)
- # tasmota.log("MTR: a =" + raw[0 .. payload_idx - 1].tohex(), 4)
- # tasmota.log("MTR: n =" + n.tohex(), 4)
- # tasmota.log("MTR: mic =" + raw[-16..].tohex(), 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: raw =" + raw.tohex(), 4)
+ # log("MTR: i2r =" + i2r.tohex(), 4)
+ # log("MTR: p =" + raw[payload_idx .. -17].tohex(), 4)
+ # log("MTR: a =" + raw[0 .. payload_idx - 1].tohex(), 4)
+ # log("MTR: n =" + n.tohex(), 4)
+ # log("MTR: mic =" + raw[-16..].tohex(), 4)
# decrypt
var ret = crypto.AES_CCM.decrypt1(i2r, # secret key
@@ -405,7 +405,7 @@ class Matter_Frame
# succcess
raw.resize(size(raw) - tag_len) # remove MIC
else
- tasmota.log("MTR: rejected packet due to invalid MIC", 3)
+ log("MTR: rejected packet due to invalid MIC", 3)
end
return ret
end
@@ -451,7 +451,7 @@ class Matter_Frame
var r = matter.Frame(self.message_handler, raw)
r.decode_header()
r.decode_payload()
- # tasmota.log("MTR: sending decode: " + matter.inspect(r), 4)
+ # log("MTR: sending decode: " + matter.inspect(r), 4)
end
end
matter.Frame = Matter_Frame
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
index 63336e4f7..adff5a375 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
@@ -52,7 +52,7 @@ class Matter_MessageHandler
var resp = frame.build_standalone_ack(reliable)
resp.encode_frame()
if tasmota.loglevel(4)
- tasmota.log(format("MTR: Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3)
+ log(format("MTR: >Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3)
end
else
if tasmota.loglevel(4)
- tasmota.log(format("MTR: >rcv Ack (%6i) rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.message_counter, frame.x_flag_r ? "{reliable} " : "", frame.exchange_id, str(frame.ack_message_counter), addr, port), 4)
+ log(format("MTR: >rcv Ack (%6i) rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.message_counter, frame.x_flag_r ? "{reliable} " : "", frame.exchange_id, str(frame.ack_message_counter), addr, port), 4)
end
end
ret = self.commissioning.process_incoming(frame)
@@ -141,14 +141,14 @@ class Matter_MessageHandler
# encrypted message
# matter.profiler.log("msg_received_header_encrypted_message_received")
if tasmota.loglevel(4)
- tasmota.log(format("MTR: decode header: local_session_id=%i message_counter=%i", frame.local_session_id, frame.message_counter), 4)
+ log(format("MTR: decode header: local_session_id=%i message_counter=%i", frame.local_session_id, frame.message_counter), 4)
end
var session = self.device.sessions.get_session_by_local_session_id(frame.local_session_id)
# matter.profiler.log("msg_received_header_session_retrieved")
if session == nil
- tasmota.log("MTR: unknown local_session_id="+str(frame.local_session_id), 3)
- # tasmota.log("MTR: frame="+matter.inspect(frame), 3)
+ log("MTR: unknown local_session_id="+str(frame.local_session_id), 3)
+ # log("MTR: frame="+matter.inspect(frame), 3)
return false
end
# matter.profiler.log("msg_received_session_found")
@@ -160,7 +160,7 @@ class Matter_MessageHandler
# check if it's a duplicate
if !session.counter_rcv_validate(frame.message_counter, true)
if tasmota.loglevel(3)
- tasmota.log("MTR: . Duplicate encrypted message = " + str(frame.message_counter) + " counter=" + str(session.counter_rcv), 3)
+ log("MTR: . Duplicate encrypted message = " + str(frame.message_counter) + " counter=" + str(session.counter_rcv), 3)
end
self.send_encrypted_ack(frame, false #-not reliable-#)
return false
@@ -173,14 +173,14 @@ class Matter_MessageHandler
# matter.profiler.log("msg_received_payload_undecoded")
# continue decoding
- # tasmota.log(format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 4)
+ # log(format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 4)
frame.decode_payload()
# matter.profiler.log("msg_received_payload_decoded")
if tasmota.loglevel(4)
- tasmota.log("MTR: > Decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 4)
+ log("MTR: > Decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 4)
end
- # tasmota.log(format("MTR: >rcv (%6i) [%02X/%02X] rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.protocol_id, frame.opcode, frame.message_counter, frame.exchange_id, str(frame.ack_message_counter), frame.x_flag_r ? "{reliable} " : "", addr, port), 3)
+ # log(format("MTR: >rcv (%6i) [%02X/%02X] rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.protocol_id, frame.opcode, frame.message_counter, frame.exchange_id, str(frame.ack_message_counter), frame.x_flag_r ? "{reliable} " : "", addr, port), 3)
self.device.received_ack(frame) # remove acknowledge packet from sending list
@@ -188,7 +188,7 @@ class Matter_MessageHandler
var protocol_id = frame.protocol_id
if protocol_id == 0x0000 # PROTOCOL_ID_SECURE_CHANNEL
# it should not be encrypted
- # tasmota.log("MTR: PROTOCOL_ID_SECURE_CHANNEL " + matter.inspect(frame), 3)
+ # log("MTR: PROTOCOL_ID_SECURE_CHANNEL " + matter.inspect(frame), 3)
if frame.opcode == 0x10 # MRPStandaloneAcknowledgement
ret = self.im.process_incoming_ack(frame)
if ret
@@ -212,21 +212,21 @@ class Matter_MessageHandler
# -- PROTOCOL_ID_BDX is used for file transfer between devices, not used in Tasmota
# elif protocol_id == 0x0002 # PROTOCOL_ID_BDX -- BDX not handled at all in Tasmota
- # tasmota.log("MTR: PROTOCOL_ID_BDX not yet handled", 2)
+ # log("MTR: PROTOCOL_ID_BDX not yet handled", 2)
# return false # ignore for now TODO
# -- PROTOCOL_ID_USER_DIRECTED_COMMISSIONING is only used by devices, as a device we will not receive any
# elif protocol_id == 0x0003 # PROTOCOL_ID_USER_DIRECTED_COMMISSIONING
- # tasmota.log("MTR: PROTOCOL_ID_USER_DIRECTED_COMMISSIONING not yet handled", 2)
+ # log("MTR: PROTOCOL_ID_USER_DIRECTED_COMMISSIONING not yet handled", 2)
# return false # ignore for now TODO
else
- tasmota.log("MTR: ignoring unhandled protocol_id:"+str(protocol_id), 3)
+ log("MTR: ignoring unhandled protocol_id:"+str(protocol_id), 3)
end
end
return ret
except .. as e, m
- tasmota.log("MTR: MessageHandler::msg_received exception: "+str(e)+";"+str(m), 2)
+ log("MTR: MessageHandler::msg_received exception: "+str(e)+";"+str(m), 2)
if tasmota._debug_present
import debug
debug.traceback()
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
index 8efaad8b7..e9834cff5 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
@@ -118,11 +118,7 @@ class Matter_Plugin_Device : Matter_Plugin
if attribute == 0x0003 # ---------- ProductName / string ----------
if self.BRIDGE
var name = self.http_remote.get_info().find("name")
- if name
- return tlv_solo.set(TLV.UTF1, name)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.UTF1, name)
else
return tlv_solo.set(TLV.UTF1, tasmota.cmd("DeviceName", true)['DeviceName'])
end
@@ -147,11 +143,7 @@ class Matter_Plugin_Device : Matter_Plugin
elif attribute == 0x000F || attribute == 0x0012 # ---------- SerialNumber / string ----------
if self.BRIDGE
var mac = self.http_remote.get_info().find("mac")
- if mac
- return tlv_solo.set(TLV.UTF1, mac)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.UTF1, mac)
else
return tlv_solo.set(TLV.UTF1, tasmota.wifi().find("mac", ""))
end
@@ -325,7 +317,7 @@ class Matter_Plugin_Device : Matter_Plugin
return j
end
retry -= 1
- tasmota.log("MTR: HTTP GET retrying", 3)
+ log("MTR: HTTP GET retrying", 3)
end
self.http_remote.device_is_alive(false)
return nil
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
index 086d335aa..d58b6436f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
@@ -94,13 +94,13 @@ class Matter_Plugin_Root : Matter_Plugin
eth.add_TLV(2, TLV.BOOL, 1) # OffPremiseServicesReachableIPv4
eth.add_TLV(3, TLV.NULL, nil) # OffPremiseServicesReachableIPv6
var mac = bytes().fromhex(string.replace(tas_eth.find("mac", ""), ":", ""))
- eth.add_TLV(4, TLV.B1, mac) # HardwareAddress
- var ip4 = eth.add_array(5) # IPv4Addresses
+ eth.add_TLV(4, TLV.B1, mac) # HardwareAddress
+ var ip4 = eth.add_array(5) # IPv4Addresses
ip4.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_eth.find("ip", "")))
- var ip6 = eth.add_array(6) # IPv6Addresses
+ var ip6 = eth.add_array(6) # IPv6Addresses
ip6.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_eth.find("ip6local", "")))
ip6.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_eth.find("ip6", "")))
- eth.add_TLV(7, TLV.U1, 2) # InterfaceType, p646
+ eth.add_TLV(7, TLV.U1, 2) # InterfaceType, p646
end
var tas_wif = tasmota.wifi()
@@ -111,13 +111,13 @@ class Matter_Plugin_Root : Matter_Plugin
wif.add_TLV(2, TLV.BOOL, 1) # OffPremiseServicesReachableIPv4
wif.add_TLV(3, TLV.NULL, nil) # OffPremiseServicesReachableIPv6
var mac = bytes().fromhex(string.replace(tas_wif.find("mac", ""), ":", ""))
- wif.add_TLV(4, TLV.B1, mac) # HardwareAddress
- var ip4 = wif.add_array(5) # IPv4Addresses
+ wif.add_TLV(4, TLV.B1, mac) # HardwareAddress
+ var ip4 = wif.add_array(5) # IPv4Addresses
ip4.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_wif.find("ip", "")))
- var ip6 = wif.add_array(6) # IPv6Addresses
+ var ip6 = wif.add_array(6) # IPv6Addresses
ip6.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_wif.find("ip6local", "")))
ip6.add_TLV(nil, TLV.B1, matter.get_ip_bytes(tas_wif.find("ip6", "")))
- wif.add_TLV(7, TLV.U1, 1) # InterfaceType, p646
+ wif.add_TLV(7, TLV.U1, 1) # InterfaceType, p646
end
return nwi
elif attribute == 0x0001 # ---------- RebootCount u16 ----------
@@ -142,7 +142,7 @@ class Matter_Plugin_Root : Matter_Plugin
return tlv_solo.set(TLV.U1, 3) # MillisecondsGranularity (NTP every hour, i.e. 36ms max drift)
# TODO add some missing args
elif attribute == 0x0007 # ---------- LocalTime / epoch_us ----------
- var epoch_us = int64(tasmota.rtc()['local']) * int64(1000000)
+ var epoch_us = int64(tasmota.rtc('local')) * int64(1000000)
return tlv_solo.set(TLV.U8, epoch_us) # TODO test the conversion of int64()
end
@@ -201,16 +201,12 @@ class Matter_Plugin_Root : Matter_Plugin
elif attribute == 0x0001 # ---------- AdminFabricIndex / u16 ----------
var admin_fabric = self.device.commissioning_admin_fabric
if admin_fabric != nil
- return tlv_solo.set(TLV.U2, admin_fabric.get_fabric_index())
- else
- return tlv_solo.set(TLV.NULL, nil)
+ return tlv_solo.set_or_nil(TLV.U2, admin_fabric.get_fabric_index())
end
elif attribute == 0x0002 # ---------- AdminVendorId / u16 ----------
var admin_fabric = self.device.commissioning_admin_fabric
if admin_fabric != nil
- return tlv_solo.set(TLV.U2, admin_fabric.get_admin_vendor())
- else
- return tlv_solo.set(TLV.NULL, nil)
+ return tlv_solo.set_or_nil(TLV.U2, admin_fabric.get_admin_vendor())
end
end
@@ -426,7 +422,7 @@ class Matter_Plugin_Root : Matter_Plugin
var ac = session.get_ac()
var attestation_tbs = attestation_message + ac
- # tasmota.log("MTR: attestation_tbs=" + attestation_tbs.tohex(), 4)
+ # log("MTR: attestation_tbs=" + attestation_tbs.tohex(), 4)
var attestation_signature = crypto.EC_P256().ecdsa_sign_sha256(matter.DAC_Priv_FFF1_8000(), attestation_tbs)
@@ -444,7 +440,7 @@ class Matter_Plugin_Root : Matter_Plugin
var CSRNonce = val.findsubval(0) # octstr 32
if size(CSRNonce) != 32 return nil end # check size on nonce
var IsForUpdateNOC = val.findsubval(1, false) # bool
- # tasmota.log(format("MTR: CSRRequest CSRNonce=%s IsForUpdateNOC=%s", str(CSRNonce), str(IsForUpdateNOC)), 4)
+ # log(format("MTR: CSRRequest CSRNonce=%s IsForUpdateNOC=%s", str(CSRNonce), str(IsForUpdateNOC)), 4)
var csr = session.gen_CSR()
@@ -454,7 +450,7 @@ class Matter_Plugin_Root : Matter_Plugin
var nocsr_elements_message = nocsr_elements.tlv2raw()
# sign with attestation challenge
var nocsr_tbs = nocsr_elements_message + session.get_ac()
- # tasmota.log("MTR: nocsr_tbs=" + nocsr_tbs.tohex(), 4)
+ # log("MTR: nocsr_tbs=" + nocsr_tbs.tohex(), 4)
var attestation_signature = crypto.EC_P256().ecdsa_sign_sha256(matter.DAC_Priv_FFF1_8000(), nocsr_tbs)
# create CSRResponse
@@ -470,12 +466,12 @@ class Matter_Plugin_Root : Matter_Plugin
var RootCACertificate = val.findsubval(0) # octstr 400 max
# TODO - additional tests are expected according to 11.17.7.13. AddTrustedRootCertificate Command
session.set_temp_ca(RootCACertificate)
- # tasmota.log("MTR: received ca_root="+RootCACertificate.tohex(), 4)
+ # log("MTR: received ca_root="+RootCACertificate.tohex(), 4)
ctx.status = matter.SUCCESS # OK
return nil # trigger a standalone ack
elif command == 0x0006 # ---------- AddNOC ----------
- tasmota.log("MTR: AddNoc Args=" + str(val), 4)
+ log("MTR: AddNoc Args=" + str(val), 4)
var NOCValue = val.findsubval(0) # octstr max 400
var ICACValue = val.findsubval(1) # octstr max 400
# Apple sends an empty ICAC instead of a missing attribute, fix this
@@ -483,14 +479,14 @@ class Matter_Plugin_Root : Matter_Plugin
var IpkValue = val.findsubval(2) # octstr max 16
var CaseAdminSubject = val.findsubval(3)
var AdminVendorId = val.findsubval(4)
- # tasmota.log("MTR: AddNoc NOCValue=" + (NOCValue ? NOCValue.tohex() : ""), 3)
- # tasmota.log("MTR: AddNoc ICACValue=" + (ICACValue ? ICACValue.tohex() : ""), 3)
- # tasmota.log("MTR: AddNoc IpkValue=" + str(IpkValue), 3)
- # tasmota.log("MTR: AddNoc CaseAdminSubject=" + str(CaseAdminSubject), 3)
- # tasmota.log("MTR: AddNoc AdminVendorId=" + str(AdminVendorId), 3)
+ # log("MTR: AddNoc NOCValue=" + (NOCValue ? NOCValue.tohex() : ""), 3)
+ # log("MTR: AddNoc ICACValue=" + (ICACValue ? ICACValue.tohex() : ""), 3)
+ # log("MTR: AddNoc IpkValue=" + str(IpkValue), 3)
+ # log("MTR: AddNoc CaseAdminSubject=" + str(CaseAdminSubject), 3)
+ # log("MTR: AddNoc AdminVendorId=" + str(AdminVendorId), 3)
if session.get_temp_ca() == nil
- tasmota.log("MTR: Error: AdNOC without CA", 2)
+ log("MTR: Error: AdNOC without CA", 2)
return nil
end
@@ -506,23 +502,23 @@ class Matter_Plugin_Root : Matter_Plugin
var dnlist = noc_cert.findsub(6)
var fabric_id = dnlist.findsubval(21)
var deviceid = dnlist.findsubval(17)
- # tasmota.log("MTR: AddNoc noc_cert=" + str(noc_cert), 3)
- # tasmota.log("MTR: AddNoc dnlist=" + str(dnlist), 3)
+ # log("MTR: AddNoc noc_cert=" + str(noc_cert), 3)
+ # log("MTR: AddNoc dnlist=" + str(dnlist), 3)
if !fabric_id || !deviceid
- tasmota.log("MTR: Error: no fabricid nor deviceid in NOC certificate", 2)
+ log("MTR: Error: no fabricid nor deviceid in NOC certificate", 2)
return false
end
# convert fo bytes(8)
if type(fabric_id) == 'int' fabric_id = int64.fromu32(fabric_id).tobytes() else fabric_id = fabric_id.tobytes() end
if type(deviceid) == 'int' deviceid = int64.fromu32(deviceid).tobytes() else deviceid = deviceid.tobytes() end
- # tasmota.log("MTR: AddNoc fabric_id=" + str(fabric_id), 3)
- # tasmota.log("MTR: AddNoc deviceid=" + str(deviceid), 3)
+ # log("MTR: AddNoc fabric_id=" + str(fabric_id), 3)
+ # log("MTR: AddNoc deviceid=" + str(deviceid), 3)
var root_ca_pub = session.get_temp_ca_pub()
- # tasmota.log("MTR: AddNoc root_ca_pub=" + str(root_ca_pub), 3)
- # tasmota.log("MTR: AddNoc root_ca_pub=" + root_ca_pub.tohex(), 3)
+ # log("MTR: AddNoc root_ca_pub=" + str(root_ca_pub), 3)
+ # log("MTR: AddNoc root_ca_pub=" + root_ca_pub.tohex(), 3)
root_ca_pub = root_ca_pub[1..] # remove first byte as per Matter specification
var info = bytes().fromstring("CompressedFabric") # as per spec, 4.3.2.2 p.99
var hk = crypto.HKDF_SHA256()
@@ -531,7 +527,7 @@ class Matter_Plugin_Root : Matter_Plugin
var parent_fabric = session._fabric ? session._fabric : self.device.commissioning_admin_fabric # get parent fabric whether CASE or PASE
new_fabric.set_fabric_device(fabric_id, deviceid, k_fabric, parent_fabric)
- # tasmota.log("MTR: AddNoc k_fabric=" + str(k_fabric), 3)
+ # log("MTR: AddNoc k_fabric=" + str(k_fabric), 3)
# We have a candidate fabric, add it as expirable for 2 minutes
new_fabric.fabric_candidate()
@@ -543,10 +539,10 @@ class Matter_Plugin_Root : Matter_Plugin
session.set_expire_in_seconds(60)
end
- # tasmota.log("MTR: ------------------------------------------", 3)
- # tasmota.log("MTR: session=" + matter.inspect(session), 3)
- # tasmota.log("MTR: fabric=" + matter.inspect(session._fabric), 3)
- # tasmota.log("MTR: ------------------------------------------", 3)
+ # log("MTR: ------------------------------------------", 3)
+ # log("MTR: session=" + matter.inspect(session), 3)
+ # log("MTR: fabric=" + matter.inspect(session._fabric), 3)
+ # log("MTR: ------------------------------------------", 3)
new_fabric.log_new_fabric() # log that we registered a new fabric
new_fabric.assign_fabric_index()
# create NOCResponse
@@ -562,7 +558,7 @@ class Matter_Plugin_Root : Matter_Plugin
elif command == 0x0009 # ---------- UpdateFabricLabel ----------
var label = val.findsubval(0) # Label string max 32
session.set_fabric_label(label)
- tasmota.log(format("MTR: . Update fabric '%s' label='%s'", session._fabric.get_fabric_id().copy().reverse().tohex(), str(label)), 3)
+ log(format("MTR: . Update fabric '%s' label='%s'", session._fabric.get_fabric_id().copy().reverse().tohex(), str(label)), 3)
# create NOCResponse
# 0=StatusCode
@@ -580,7 +576,7 @@ class Matter_Plugin_Root : Matter_Plugin
for fab: self.device.sessions.active_fabrics()
if fab.get_fabric_index() == index
- # tasmota.log("MTR: removing fabric " + fab.get_fabric_id().copy().reverse().tohex(), 2)
+ # log("MTR: removing fabric " + fab.get_fabric_id().copy().reverse().tohex(), 2)
# defer actual removal to send a response
fab.mark_for_deletion() # this should not appear anymore in the list
tasmota.set_timer(2000, def () self.device.remove_fabric(fab) end)
@@ -596,7 +592,7 @@ class Matter_Plugin_Root : Matter_Plugin
return nocr
end
end
- tasmota.log("MTR: RemoveFabric fabric("+str(index)+") not found", 2)
+ log("MTR: RemoveFabric fabric("+str(index)+") not found", 2)
ctx.status = matter.INVALID_ACTION
return nil # trigger a standalone ack
@@ -612,7 +608,7 @@ class Matter_Plugin_Root : Matter_Plugin
var iterations = val.findsubval(3) # Iterations u4
var salt = val.findsubval(4) # Salt octstr
- tasmota.log(format("MTR: OpenCommissioningWindow(timeout=%i, passcode=%s, discriminator=%i, iterations=%i, salt=%s)",
+ log(format("MTR: OpenCommissioningWindow(timeout=%i, passcode=%s, discriminator=%i, iterations=%i, salt=%s)",
timeout, passcode_verifier.tohex(), discriminator, iterations, salt.tohex()), 4)
# check values
@@ -621,7 +617,7 @@ class Matter_Plugin_Root : Matter_Plugin
return nil # trigger a standalone ack
end
if size(passcode_verifier) != 32+65 || size(salt) < 16 || size(salt) > 32
- tasmota.log("MTR: wrong size for PAKE parameters", 2)
+ log("MTR: wrong size for PAKE parameters", 2)
ctx.status = matter.CONSTRAINT_ERROR
return nil # trigger a standalone ack
end
@@ -634,7 +630,7 @@ class Matter_Plugin_Root : Matter_Plugin
return true # OK
elif command == 0x0001 # ---------- OpenBasicCommissioningWindow ----------
var commissioning_timeout = val.findsubval(0) # CommissioningTimeout
- tasmota.log("MTR: OpenBasicCommissioningWindow commissioning_timeout="+str(commissioning_timeout), 3)
+ log("MTR: OpenBasicCommissioningWindow commissioning_timeout="+str(commissioning_timeout), 3)
self.device.start_root_basic_commissioning(commissioning_timeout)
return true
elif command == 0x0002 # ---------- RevokeCommissioning ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
index 42af25401..b4f2e8371 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
@@ -135,11 +135,7 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
def handle_value(shadow_value, unit)
if (unit == nil) unit = 0 end # default unit is `0` = PPM
if attribute == 0x0000 # ---------- Measured Value / float ----------
- if shadow_value != nil
- return tlv_solo.set(TLV.FLOAT, shadow_value)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.FLOAT, shadow_value)
elif attribute == 0x0001 # ---------- MinMeasured Value / float ----------
return tlv_solo.set(TLV.NULL, nil)
elif attribute == 0x0002 # ---------- MaxMeasured Value / float ----------
@@ -157,11 +153,7 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x005B # ========== Air Quality ==========
if attribute == 0x0000 # ---------- AirQuality / U8 ----------
- if self.shadow_air_quality != nil
- return tlv_solo.set(TLV.U1, self.shadow_air_quality)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_air_quality)
# elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
# return tlv_solo.set(TLV.U4, 0) #
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
index 026104263..9057ace50 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
@@ -87,11 +87,7 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x0045 # ========== Boolean State ==========
if attribute == 0x0000 # ---------- StateValue / bool ----------
- if self.shadow_contact != nil
- return tlv_solo.set(TLV.BOOL, self.shadow_contact)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.BOOL, self.shadow_contact)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
index 1a48ba716..f786bc82c 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
@@ -87,11 +87,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x0406 # ========== Occupancy Sensing ==========
if attribute == 0x0000 # ---------- Occupancy / U8 ----------
- if self.shadow_occupancy != nil
- return tlv_solo.set(TLV.U1, self.shadow_occupancy)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_occupancy)
elif attribute == 0x0001 # ---------- OccupancySensorType / enum8 ----------
return tlv_solo.set(TLV.U1, 3) # physical contact
elif attribute == 0x0002 # ---------- OccupancySensorTypeBitmap / u8 ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Shutter.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Shutter.be
index 704b2a7b9..d0fadc4a2 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Shutter.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Shutter.be
@@ -65,10 +65,10 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
if r_st13.contains('StatusSHT')
r_st13 = r_st13['StatusSHT'] # skip root
var d = r_st13.find("SHT"+str(self.tasmota_shutter_index), {}).find('Opt')
- # tasmota.log("MTR: opt: "+str(d))
+ # log("MTR: opt: "+str(d))
if d != nil
self.shadow_shutter_inverted = int(d[size(d)-1]) # inverted is at the most right character
- # tasmota.log("MTR: Inverted flag: "+str(self.shadow_shutter_inverted))
+ # log("MTR: Inverted flag: "+str(self.shadow_shutter_inverted))
end
end
end
@@ -162,7 +162,7 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
self.update_shadow()
return true
elif command == 0x0005 # ---------- GoToLiftPercentage ----------
- tasmota.log("MTR: Tilt = "+str(val), 2)
+ log("MTR: Tilt = "+str(val), 2)
var pos_100 = val.findsubval(0)
if pos_100 != nil
pos_100 = pos_100 / 100
@@ -191,7 +191,7 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
var k = "Shutter" + str(self.tasmota_shutter_index + 1)
if payload.contains(k)
var v = payload[k]
- # tasmota.log(format("MTR: getting shutter values(%i): %s", self.endpoint, str(v)), 2)
+ # log(format("MTR: getting shutter values(%i): %s", self.endpoint, str(v)), 2)
# Position
var val_pos = v.find("Position")
if val_pos != nil
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
index cadf46b2b..1650cc7b2 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Flow.be
@@ -62,11 +62,7 @@ class Matter_Plugin_Sensor_Flow : Matter_Plugin_Sensor
# ====================================================================================================
if cluster == 0x0404 # ========== Flow Measurement 2.4 p.98 ==========
if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value)) # MeasuredValue represents 10 x flow in m3/h.
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.U2, int(self.shadow_value)) # MeasuredValue represents 10 x flow in m3/h.
elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
return tlv_solo.set(TLV.U2, 0) # 0 m3/h
elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
index 089a780ef..2dd873f11 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Humidity.be
@@ -62,11 +62,7 @@ class Matter_Plugin_Sensor_Humidity : Matter_Plugin_Sensor
# ====================================================================================================
if cluster == 0x0405 # ========== Humidity Measurement 2.4 p.98 ==========
if attribute == 0x0000 # ---------- Humidity / u16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.U2, int(self.shadow_value))
elif attribute == 0x0001 # ---------- MinMeasuredValue / u16 ----------
return tlv_solo.set(TLV.U2, 500) # 0%
elif attribute == 0x0002 # ---------- MaxMeasuredValue / u16 ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
index 943e7ade2..0c19a2a4e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Illuminance.be
@@ -69,11 +69,7 @@ class Matter_Plugin_Sensor_Illuminance : Matter_Plugin_Sensor
# ====================================================================================================
if cluster == 0x0400 # ========== Illuminance Measurement 2.2 p.95 ==========
if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.U2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.U2, int(self.shadow_value))
elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
return tlv_solo.set(TLV.U2, 1) # 1 lux
elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
index 4eb020eb0..e3918d1d4 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Pressure.be
@@ -62,11 +62,7 @@ class Matter_Plugin_Sensor_Pressure : Matter_Plugin_Sensor
# ====================================================================================================
if cluster == 0x0403 # ========== Pressure Measurement 2.4 p.98 ==========
if attribute == 0x0000 # ---------- MeasuredValue / i16 ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.I2, int(self.shadow_value))
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.I2, int(self.shadow_value))
elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 ----------
return tlv_solo.set(TLV.I2, 500) # 500 hPA
elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
index aa114a25e..6a9ba5e4c 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Temp.be
@@ -73,11 +73,7 @@ class Matter_Plugin_Sensor_Temp : Matter_Plugin_Sensor
# ====================================================================================================
if cluster == 0x0402 # ========== Temperature Measurement 2.3 p.97 ==========
if attribute == 0x0000 # ---------- MeasuredValue / i16 (*100) ----------
- if self.shadow_value != nil
- return tlv_solo.set(TLV.I2, self.shadow_value)
- else
- return tlv_solo.set(TLV.NULL, nil)
- end
+ return tlv_solo.set_or_nil(TLV.I2, self.shadow_value)
elif attribute == 0x0001 # ---------- MinMeasuredValue / i16 (*100) ----------
return tlv_solo.set(TLV.I2, -5000) # -50 °C
elif attribute == 0x0002 # ---------- MaxMeasuredValue / i16 (*100) ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Profiler.be b/lib/libesp32/berry_matter/src/embedded/Matter_Profiler.be
index fb9f1dd56..501458d55 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Profiler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Profiler.be
@@ -80,14 +80,14 @@ class Matter_Profiler
def dump(loglevel)
if !self.active return end
self.log("<--end-->")
- tasmota.log("MTR: Profiler dump:", loglevel)
+ log("MTR: Profiler dump:", loglevel)
var origin = self.millis[0]
var allocs0 = self.allocs[0]
var reallocs0 = self.reallocs[0]
var idx = 1
while idx < self.len
- # tasmota.log(f"MTR: {self.millis[idx] - origin:4i} [{self.allocs[idx] - allocs0:4i}|{self.reallocs[idx] - reallocs0:4i}]'{self.names[idx]}'", loglevel)
- tasmota.log(f"MTR: {self.millis[idx] - origin:4i} [{self.allocs[idx] - allocs0:4i}]'{self.names[idx]}'", loglevel)
+ # log(f"MTR: {self.millis[idx] - origin:4i} [{self.allocs[idx] - allocs0:4i}|{self.reallocs[idx] - reallocs0:4i}]'{self.names[idx]}'", loglevel)
+ log(f"MTR: {self.millis[idx] - origin:4i} [{self.allocs[idx] - allocs0:4i}]'{self.names[idx]}'", loglevel)
idx += 1
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
index 2696d753a..db2d700e3 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
@@ -118,7 +118,7 @@ class Matter_Session : Matter_Expirable
#############################################################
# Called before removal
def before_remove()
- tasmota.log(format("MTR: -Session (%6i) (removed)", self.local_session_id), 3)
+ log(format("MTR: -Session (%6i) (removed)", self.local_session_id), 3)
end
#############################################################
@@ -128,7 +128,7 @@ class Matter_Session : Matter_Expirable
#
def counter_snd_next()
var next = self._counter_snd_impl.next()
- # tasmota.log(format("MTR: . Counter_snd=%i", next), 4)
+ # log(format("MTR: . Counter_snd=%i", next), 4)
if matter.Counter.is_greater(next, self.counter_snd)
self.counter_snd = next + self._COUNTER_SND_INCR
if self.does_persist()
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Session_Store.be b/lib/libesp32/berry_matter/src/embedded/Matter_Session_Store.be
index fb60595cb..473dc0dec 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Session_Store.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Session_Store.be
@@ -286,9 +286,9 @@ class Matter_Session_Store
var sessions = self.sessions
while i < size(sessions)
var session = sessions[i]
- tasmota.log(format("MTR: session.resumption_id=%s vs %s", str(session.resumption_id), str(resumption_id)), 4)
+ log(format("MTR: session.resumption_id=%s vs %s", str(session.resumption_id), str(resumption_id)), 4)
if session.resumption_id == resumption_id && session.shared_secret != nil
- # tasmota.log(format("MTR: session.shared_secret=%s", str(session.shared_secret)), 4)
+ # log(format("MTR: session.shared_secret=%s", str(session.shared_secret)), 4)
session.update()
return session
end
@@ -339,13 +339,13 @@ class Matter_Session_Store
# saving went well, now remove previous version and rename
path.remove(self._FABRICS)
if (path.rename(self._FABRICS_TEMP, self._FABRICS))
- tasmota.log(f"MTR: =Saved {fabrics_saved} fabric(s) and {sessions_saved} session(s)", 2)
+ log(f"MTR: =Saved {fabrics_saved} fabric(s) and {sessions_saved} session(s)", 2)
self.device.event_fabrics_saved() # signal event
else
- tasmota.log(f"MTR: Saving Fabrics failed", 2)
+ log(f"MTR: Saving Fabrics failed", 2)
end
except .. as e, m
- tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
+ log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
end
end
@@ -386,10 +386,10 @@ class Matter_Session_Store
self.fabrics.push(fabric)
end
- tasmota.log(format("MTR: Loaded %i fabric(s)", size(self.fabrics)), 2)
+ log(format("MTR: Loaded %i fabric(s)", size(self.fabrics)), 2)
except .. as e, m
if e != "io_error"
- tasmota.log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2)
+ log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2)
end
end
# persistables are normally not expiring
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_TCP_async.be b/lib/libesp32/berry_matter/src/embedded/Matter_TCP_async.be
index ed13b725c..b46fd4653 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_TCP_async.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_TCP_async.be
@@ -81,7 +81,7 @@ class Matter_TCP_async
end
return true
else
- tasmota.log(format("BRY: failed to resolve [%s]:%i", self.addr, self.port), 3)
+ log(format("BRY: failed to resolve [%s]:%i", self.addr, self.port), 3)
self.close()
self.status = -1
self.tcp_connected = false
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
index a48e4cbef..ab14e4a0e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
@@ -275,9 +275,9 @@ class Matter_TLV
elif item_type == TLV.NULL # null
# do nothing
elif item_type == TLV.EOC
- tasmota.log("MTR: unexpected eoc", 3)
+ log("MTR: unexpected eoc", 3)
else
- tasmota.log("MTR: unexpected type: " + str(item_type), 3)
+ log("MTR: unexpected type: " + str(item_type), 3)
end
self.next_idx = idx
return idx
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
index 62bc065c8..63d95004c 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
@@ -135,9 +135,9 @@ class Matter_UDPServer
var from_addr = self.udp_socket.remote_ip
var from_port = self.udp_socket.remote_port
if tasmota.loglevel(4)
- tasmota.log(format("MTR: UDP received from [%s]:%i", from_addr, from_port), 4)
+ log(format("MTR: UDP received from [%s]:%i", from_addr, from_port), 4)
end
- # tasmota.log("MTR: Perf/UDP_received = " + str(debug.counters()), 4)
+ # log("MTR: Perf/UDP_received = " + str(debug.counters()), 4)
if self.dispatch_cb
profiler.log("udp_loop_dispatch")
self.dispatch_cb(packet, from_addr, from_port)
@@ -165,11 +165,11 @@ class Matter_UDPServer
if ok
if tasmota.loglevel(4)
- tasmota.log(format("MTR: sending packet to '[%s]:%i'", packet.addr, packet.port), 4)
+ log(format("MTR: sending packet to '[%s]:%i'", packet.addr, packet.port), 4)
end
else
if tasmota.loglevel(3)
- tasmota.log(format("MTR: error sending packet to '[%s]:%i'", packet.addr, packet.port), 3)
+ log(format("MTR: error sending packet to '[%s]:%i'", packet.addr, packet.port), 3)
end
end
return ok
@@ -190,14 +190,14 @@ class Matter_UDPServer
var packet = self.packets_sent[idx]
if tasmota.time_reached(packet.next_try)
if packet.retries <= self.RETRIES
- tasmota.log("MTR: . Resending packet id=" + str(packet.msg_id), 4)
+ log("MTR: . Resending packet id=" + str(packet.msg_id), 4)
self.send(packet)
packet.next_try = tasmota.millis() + self._backoff_time(packet.retries)
packet.retries += 1
idx += 1
else
self.packets_sent.remove(idx)
- tasmota.log(format("MTR: . (%6i) Unacked packet '[%s]:%i' msg_id=%i", packet.session_id, packet.addr, packet.port, packet.msg_id), 3)
+ log(format("MTR: . (%6i) Unacked packet '[%s]:%i' msg_id=%i", packet.session_id, packet.addr, packet.port, packet.msg_id), 3)
end
else
idx += 1
@@ -211,14 +211,14 @@ class Matter_UDPServer
var id = msg.ack_message_counter
var exch = msg.exchange_id
if id == nil return end
- # tasmota.log("MTR: receveived ACK id="+str(id), 4)
+ # log("MTR: receveived ACK id="+str(id), 4)
var idx = 0
while idx < size(self.packets_sent)
var packet = self.packets_sent[idx]
if packet.msg_id == id && packet.exchange_id == exch
self.packets_sent.remove(idx)
if tasmota.loglevel(4)
- tasmota.log("MTR: . Removed packet from sending list id=" + str(id), 4)
+ log("MTR: . Removed packet from sending list id=" + str(id), 4)
end
else
idx += 1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index 0b31305b9..b0c291de1 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -368,7 +368,7 @@ class Matter_UI
end
end
self.device.sort_distinct(remotes)
- # tasmota.log("MTR: remotes: "+str(remotes), 4)
+ # log("MTR: remotes: "+str(remotes), 4)
for remote: remotes
@@ -642,7 +642,7 @@ class Matter_UI
end
if status10 != nil && status11 != nil
- tasmota.log(format("MTR: probed '%s' status10=%s satus11=%s", url, str(status10), str(status11)), 3)
+ log(format("MTR: probed '%s' status10=%s satus11=%s", url, str(status10), str(status11)), 3)
var config_list = self.generate_config_from_status(status10, status11)
@@ -752,14 +752,14 @@ class Matter_UI
# debug information about parameters
# for i:0..webserver.arg_size()-1
- # tasmota.log(format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i)))
+ # log(format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i)))
# end
#---------------------------------------------------------------------#
# Change Passcode and/or Passcode
#---------------------------------------------------------------------#
if webserver.has_arg("passcode") || webserver.has_arg("discriminator")
- tasmota.log(format("MTR: /matterc received '%s' command", 'passcode'), 3)
+ log(format("MTR: /matterc received '%s' command", 'passcode'), 3)
if webserver.has_arg("passcode")
self.device.root_passcode = int(webserver.arg("passcode"))
end
@@ -783,10 +783,10 @@ class Matter_UI
if matter_enabled_requested != self.matter_enabled()
if matter_enabled_requested
- tasmota.log(format("MTR: /matterc received '%s' command", 'enable'), 3)
+ log(format("MTR: /matterc received '%s' command", 'enable'), 3)
tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 1")
else
- tasmota.log(format("MTR: /matterc received '%s' command", 'disable'), 3)
+ log(format("MTR: /matterc received '%s' command", 'disable'), 3)
tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 0")
end
#- and force restart -#
@@ -808,7 +808,7 @@ class Matter_UI
# Delete Fabric
#---------------------------------------------------------------------#
elif webserver.has_arg("del_fabric")
- tasmota.log(format("MTR: /matterc received '%s' command", 'del_fabric'), 3)
+ log(format("MTR: /matterc received '%s' command", 'del_fabric'), 3)
var del_fabric = int(webserver.arg("del_fabric"))
var idx = 0
var fabrics = self.device.sessions.fabrics
@@ -827,7 +827,7 @@ class Matter_UI
# Reset to default auto-configuration
#---------------------------------------------------------------------#
elif webserver.has_arg("auto")
- tasmota.log(format("MTR: /matterc received '%s' command", 'auto'), 3)
+ log(format("MTR: /matterc received '%s' command", 'auto'), 3)
self.device.plugins_persist = false
self.device.save_param()
#- and force restart -#
@@ -837,7 +837,7 @@ class Matter_UI
# Apply new configuration template
#---------------------------------------------------------------------#
elif webserver.has_arg("config")
- tasmota.log(format("MTR: /matterc received '%s' command", 'config'), 3)
+ log(format("MTR: /matterc received '%s' command", 'config'), 3)
var needs_saving = false
# iterate by endpoint number
for i:0..webserver.arg_size()-1
@@ -851,25 +851,25 @@ class Matter_UI
if conf_ep != nil # found
var typ_class = self.device.plugins_classes.find(conf_ep.find('type', ''))
if typ_class != nil
- tasmota.log(format("MTR: ep=%i arg=%s", arg_ep, arg), 3)
+ log(format("MTR: ep=%i arg=%s", arg_ep, arg), 3)
# compute the actual value
var prev_arg = typ_class.ui_conf_to_string(typ_class, conf_ep)
var changed = (prev_arg != arg)
- tasmota.log(format("MTR: ep=%i prev_arg='%s' arg='%s' %s", arg_ep, prev_arg, arg, prev_arg != arg ? "changed" : ""), 3)
+ log(format("MTR: ep=%i prev_arg='%s' arg='%s' %s", arg_ep, prev_arg, arg, prev_arg != arg ? "changed" : ""), 3)
if changed
needs_saving = true
typ_class.ui_string_to_conf(typ_class, conf_ep, arg)
var pl = self.device.find_plugin_by_endpoint(arg_ep)
if pl
- tasmota.log(format("MTR: apply conf '%s' (%i) to %s", conf_ep, arg_ep, pl), 3)
+ log(format("MTR: apply conf '%s' (%i) to %s", conf_ep, arg_ep, pl), 3)
pl.parse_configuration(conf_ep)
end
end
end
else
- tasmota.log(format("MTR: ep=%i not found", arg_ep), 3)
+ log(format("MTR: ep=%i not found", arg_ep), 3)
end
elif string.find(arg_name, "nam") == 0 # 'nam' with i being the endpoint
var nam_ep = int(arg_name[3..]) # target endpoint as int
@@ -891,7 +891,7 @@ class Matter_UI
else
conf_ep.remove('name')
end
- tasmota.log(format("MTR: apply name '%s' (%i) to %s", conf_ep, nam_ep, pl), 3)
+ log(format("MTR: apply name '%s' (%i) to %s", conf_ep, nam_ep, pl), 3)
pl.parse_configuration(conf_ep)
end
end
@@ -899,10 +899,10 @@ class Matter_UI
end
end
- tasmota.log(format("MTR: config = %s", str(self.device.plugins_config)), 3)
+ log(format("MTR: config = %s", str(self.device.plugins_config)), 3)
if error
- tasmota.log(format("MTR: config error = %s", error), 3)
+ log(format("MTR: config error = %s", error), 3)
else
if needs_saving || !self.device.plugins_persist
self.device.plugins_persist = true
@@ -918,7 +918,7 @@ class Matter_UI
var typ = webserver.arg('pi')
var arg = webserver.arg('arg')
var nam = webserver.arg('nam')
- tasmota.log(format("MTR: add endpoint typ='%s' arg='%s'", typ, arg), 3)
+ log(format("MTR: add endpoint typ='%s' arg='%s'", typ, arg), 3)
# check if type exists
var typ_class = self.device.plugins_classes.find(typ)
@@ -958,12 +958,12 @@ class Matter_UI
# check if configuration is already present
var duplicate = false
for c: self.device.plugins_config # iterate on values, not on keys()
- # tasmota.log(format("MTR: map_compare '%s' ?= '%s' -> %s", str(c), str(config), str(self.equal_map(c,config))), 3)
+ # log(format("MTR: map_compare '%s' ?= '%s' -> %s", str(c), str(config), str(self.equal_map(c,config))), 3)
if self.equal_map(c,config) duplicate = true break end
end
# not a duplicate, add it
if !duplicate
- tasmota.log(format("MTR: remote add url='%s' type='%s' arg='%s'", url, typ, arg), 3)
+ log(format("MTR: remote add url='%s' type='%s' arg='%s'", url, typ, arg), 3)
self.device.bridge_add_endpoint(typ, config)
end
end
@@ -1004,7 +1004,7 @@ class Matter_UI
end
except .. as e, m
- tasmota.log(format("BRY: Exception> '%s' - %s", e, m), 2)
+ log(format("BRY: Exception> '%s' - %s", e, m), 2)
#- display error page -#
webserver.content_start("Parameter error") #- title of the web page -#
webserver.content_send_style() #- send standard Tasmota styles -#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 799d75e8e..7ef4ded6a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -162,7 +162,7 @@ class Matter_Device
# show Manual pairing code in logs
var pairing_code = self.compute_manual_pairing_code()
- tasmota.log(format("MTR: Manual pairing code: %s", pairing_code), 2)
+ log(format("MTR: Manual pairing code: %s", pairing_code), 2)
# output MQTT
var qr_code = self.compute_qrcode_content()
@@ -177,7 +177,7 @@ class Matter_Device
# Remove a fabric and clean all corresponding values and mDNS entries
def remove_fabric(fabric)
if fabric != nil
- tasmota.log("MTR: removing fabric " + fabric.get_fabric_id().copy().reverse().tohex(), 2)
+ log("MTR: removing fabric " + fabric.get_fabric_id().copy().reverse().tohex(), 2)
self.message_handler.im.subs_shop.remove_by_fabric(fabric)
self.mdns_remove_op_discovery(fabric)
self.sessions.remove_fabric(fabric)
@@ -187,7 +187,7 @@ class Matter_Device
# for fabric_index : sub_fabrics
# var fabric = self.sessions.find_fabric_by_index(fabric_index)
# if fabric != nil
- # tasmota.log("MTR: removing fabric " + fabric.get_fabric_id().copy().reverse().tohex(), 2)
+ # log("MTR: removing fabric " + fabric.get_fabric_id().copy().reverse().tohex(), 2)
# self.message_handler.im.subs_shop.remove_by_fabric(fabric)
# self.mdns_remove_op_discovery(fabric)
# self.sessions.remove_fabric(fabric)
@@ -266,12 +266,12 @@ class Matter_Device
# self.root_w1 = crypto.EC_P256().mod(w1s)
self.root_L = crypto.EC_P256().public_key(w1)
- # tasmota.log("MTR: ******************************", 4)
- # tasmota.log("MTR: salt = " + self.root_salt.tohex(), 4)
- # tasmota.log("MTR: passcode_hex = " + passcode.tohex(), 4)
- # tasmota.log("MTR: w0 = " + self.root_w0.tohex(), 4)
- # tasmota.log("MTR: L = " + self.root_L.tohex(), 4)
- # tasmota.log("MTR: ******************************", 4)
+ # log("MTR: ******************************", 4)
+ # log("MTR: salt = " + self.root_salt.tohex(), 4)
+ # log("MTR: passcode_hex = " + passcode.tohex(), 4)
+ # log("MTR: w0 = " + self.root_w0.tohex(), 4)
+ # log("MTR: L = " + self.root_L.tohex(), 4)
+ # log("MTR: ******************************", 4)
end
#############################################################
@@ -356,7 +356,7 @@ class Matter_Device
import json
var rs_json = tasmota.read_sensors()
if tasmota.loglevel(3)
- tasmota.log("MTR: read_sensors: "+str(rs_json), 3)
+ log("MTR: read_sensors: "+str(rs_json), 3)
end
if rs_json == nil return end
var rs = json.load(rs_json)
@@ -370,7 +370,7 @@ class Matter_Device
end
else
- tasmota.log("MTR: unable to parse read_sensors: "+str(rs_json), 3)
+ log("MTR: unable to parse read_sensors: "+str(rs_json), 3)
end
end
@@ -413,7 +413,7 @@ class Matter_Device
def _start_udp(port)
if self.udp_server return end # already started
if port == nil port = 5540 end
- tasmota.log("MTR: Starting UDP server on port: " + str(port), 2)
+ log("MTR: Starting UDP server on port: " + str(port), 2)
self.udp_server = matter.UDPServer(self, "", port)
self.udp_server.start(/ raw, addr, port -> self.msg_received(raw, addr, port))
end
@@ -462,7 +462,7 @@ class Matter_Device
var fabric = session.get_fabric()
var fabric_id = fabric.get_fabric_id().copy().reverse().tohex()
var vendor_name = fabric.get_admin_vendor_name()
- tasmota.log(f"MTR: --- Commissioning complete for Fabric '{fabric_id}' (Vendor {vendor_name}) ---", 2)
+ log(f"MTR: --- Commissioning complete for Fabric '{fabric_id}' (Vendor {vendor_name}) ---", 2)
self.stop_basic_commissioning() # by default close commissioning when it's complete
end
@@ -532,7 +532,7 @@ class Matter_Device
var direct = (ctx.endpoint != nil) && (ctx.cluster != nil) && (ctx.attribute != nil) # true if the target is a precise attribute, false if it results from an expansion and error are ignored
- # tasmota.log(f"MTR: process_attribute_expansion {str(ctx))}", 4)
+ # log(f"MTR: process_attribute_expansion {str(ctx))}", 4)
# build the generator for all endpoint/cluster/attributes candidates
var path_generator = matter.PathGenerator(self)
@@ -662,10 +662,10 @@ class Matter_Device
var f = open(self.FILENAME, "w")
f.write(j)
f.close()
- tasmota.log(format("MTR: =Saved parameters%s", self.plugins_persist ? " and configuration" : ""), 2)
+ log(format("MTR: =Saved parameters%s", self.plugins_persist ? " and configuration" : ""), 2)
return j
except .. as e, m
- tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
+ log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
return j
end
end
@@ -718,18 +718,18 @@ class Matter_Device
self.next_ep = j.find("nextep", self.next_ep)
self.plugins_config = j.find("config")
if self.plugins_config != nil
- tasmota.log(f"MTR: Load_config = {self.plugins_config}", 3)
+ log(f"MTR: Load_config = {self.plugins_config}", 3)
self.adjust_next_ep()
dirty = self.check_config_ep()
self.plugins_persist = true
end
self.plugins_config_remotes = j.find("remotes", {})
if self.plugins_config_remotes
- tasmota.log("MTR: load_remotes = " + str(self.plugins_config_remotes), 3)
+ log("MTR: load_remotes = " + str(self.plugins_config_remotes), 3)
end
except .. as e, m
if e != "io_error"
- tasmota.log("MTR: load_param Exception:" + str(e) + "|" + str(m), 2)
+ log("MTR: load_param Exception:" + str(e) + "|" + str(m), 2)
end
end
@@ -763,35 +763,35 @@ class Matter_Device
# {'32': {'filter': 'AXP192#Temperature', 'type': 'temperature'}, '40': {'filter': 'BMP280#Pressure', 'type': 'pressure'}, '34': {'filter': 'SHT3X#Temperature', 'type': 'temperature'}, '33': {'filter': 'BMP280#Temperature', 'type': 'temperature'}, '1': {'relay': 0, 'type': 'relay'}, '56': {'filter': 'SHT3X#Humidity', 'type': 'humidity'}, '0': {'type': 'root'}}
def _instantiate_plugins_from_config(config)
var endpoints = self.k2l_num(config)
- # tasmota.log("MTR: endpoints to be configured "+str(endpoints), 4)
- tasmota.log("MTR: Configuring endpoints", 2)
+ # log("MTR: endpoints to be configured "+str(endpoints), 4)
+ log("MTR: Configuring endpoints", 2)
# start with mandatory endpoint 0 for root node
self.plugins.push(matter.Plugin_Root(self, 0, {}))
- tasmota.log(format("MTR: endpoint = %5i type:%s%s", 0, 'root', ''), 2)
+ log(format("MTR: endpoint = %5i type:%s%s", 0, 'root', ''), 2)
# always include an aggregator for dynamic endpoints
self.plugins.push(matter.Plugin_Aggregator(self, matter.AGGREGATOR_ENDPOINT, {}))
- tasmota.log(format("MTR: endpoint = %5i type:%s%s", matter.AGGREGATOR_ENDPOINT, 'aggregator', ''), 2)
+ log(format("MTR: endpoint = %5i type:%s%s", matter.AGGREGATOR_ENDPOINT, 'aggregator', ''), 2)
for ep: endpoints
if ep == 0 continue end # skip endpoint 0
try
var plugin_conf = config[str(ep)]
- # tasmota.log(format("MTR: endpoint %i config %s", ep, plugin_conf), 3)
+ # log(format("MTR: endpoint %i config %s", ep, plugin_conf), 3)
var pi_class_name = plugin_conf.find('type')
- if pi_class_name == nil tasmota.log("MTR: no class name, skipping", 3) continue end
- if pi_class_name == 'root' tasmota.log("MTR: only one root node allowed", 3) continue end
+ if pi_class_name == nil log("MTR: no class name, skipping", 3) continue end
+ if pi_class_name == 'root' log("MTR: only one root node allowed", 3) continue end
var pi_class = self.plugins_classes.find(pi_class_name)
- if pi_class == nil tasmota.log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 2) continue end
+ if pi_class == nil log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 2) continue end
var pi = pi_class(self, ep, plugin_conf)
self.plugins.push(pi)
- tasmota.log(format("MTR: endpoint = %5i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
+ log(format("MTR: endpoint = %5i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
end
@@ -863,26 +863,26 @@ class Matter_Device
var eth = tasmota.eth()
self.hostname_eth = string.replace(eth.find("mac"), ':', '')
if !self.ipv4only || !eth.contains('ip6local')
- # tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')), 4)
+ # log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')), 4)
mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip',''), eth.find('ip6',''))
else
- tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, eth.find('ip','')), 3)
+ log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, eth.find('ip','')), 3)
mdns.add_hostname(self.hostname_eth, eth.find('ip',''))
end
else
var wifi = tasmota.wifi()
self.hostname_wifi = string.replace(wifi.find("mac"), ':', '')
if !self.ipv4only || !wifi.contains('ip6local')
- # tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')), 4)
+ # log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')), 4)
mdns.add_hostname(self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip',''), wifi.find('ip6',''))
else
- tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_wifi, wifi.find('ip','')), 3)
+ log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_wifi, wifi.find('ip','')), 3)
mdns.add_hostname(self.hostname_wifi, wifi.find('ip',''))
end
end
- tasmota.log(format("MTR: start mDNS on %s host '%s.local'", is_eth ? "eth" : "wifi", is_eth ? self.hostname_eth : self.hostname_wifi), 3)
+ log(format("MTR: start mDNS on %s host '%s.local'", is_eth ? "eth" : "wifi", is_eth ? self.hostname_eth : self.hostname_wifi), 3)
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
self.mdns_announce_op_discovery_all_fabrics()
@@ -908,50 +908,50 @@ class Matter_Device
try
if self.hostname_eth
# Add Matter `_matterc._udp` service
- # tasmota.log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_eth, self.hostname_eth), 4)
+ # log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_eth, self.hostname_eth), 4)
mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_eth, self.hostname_eth)
self.mdns_pase_eth = true
- tasmota.log(format("MTR: announce mDNS on %s '%s' ptr to `%s.local`", "eth", self.commissioning_instance_eth, self.hostname_eth), 2)
+ log(format("MTR: announce mDNS on %s '%s' ptr to `%s.local`", "eth", self.commissioning_instance_eth, self.hostname_eth), 2)
# `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil`
var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
subtype = "_S" + str((self.commissioning_discriminator & 0xF00) >> 8)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
subtype = "_V" + str(self.vendorid)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
subtype = "_CM1"
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
end
if self.hostname_wifi
- # tasmota.log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_wifi, self.hostname_wifi), 4)
+ # log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_wifi, self.hostname_wifi), 4)
mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_wifi, self.hostname_wifi)
self.mdns_pase_wifi = true
- tasmota.log(format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", "wifi", self.commissioning_instance_wifi, self.hostname_wifi), 3)
+ log(format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", "wifi", self.commissioning_instance_wifi, self.hostname_wifi), 3)
# `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil`
var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
subtype = "_S" + str((self.commissioning_discriminator & 0xF00) >> 8)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
subtype = "_V" + str(self.vendorid)
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
subtype = "_CM1"
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
end
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
end
@@ -963,19 +963,19 @@ class Matter_Device
try
if self.mdns_pase_eth
- tasmota.log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth), 3)
- tasmota.log(format("MTR: remove mDNS on %s '%s'", "eth", self.commissioning_instance_eth), 3)
+ log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth), 3)
+ log(format("MTR: remove mDNS on %s '%s'", "eth", self.commissioning_instance_eth), 3)
self.mdns_pase_eth = false
mdns.remove_service("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth)
end
if self.mdns_pase_wifi
- tasmota.log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi), 3)
- tasmota.log(format("MTR: remove mDNS on %s '%s'", "wifi", self.commissioning_instance_wifi), 3)
+ log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi), 3)
+ log(format("MTR: remove mDNS on %s '%s'", "wifi", self.commissioning_instance_wifi), 3)
self.mdns_pase_wifi = false
mdns.remove_service("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi)
end
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
end
@@ -997,25 +997,25 @@ class Matter_Device
var device_id = fabric.get_device_id().copy().reverse()
var k_fabric = fabric.get_fabric_compressed()
var op_node = k_fabric.tohex() + "-" + device_id.tohex()
- tasmota.log("MTR: Operational Discovery node = " + op_node, 3)
+ log("MTR: Operational Discovery node = " + op_node, 3)
# mdns
if (tasmota.eth().find("up"))
- tasmota.log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "eth", op_node, self.hostname_eth), 3)
+ log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "eth", op_node, self.hostname_eth), 3)
mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_eth)
var subtype = "_I" + k_fabric.tohex()
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matter", "_tcp", op_node, self.hostname_eth, subtype)
end
if (tasmota.wifi().find("up"))
- tasmota.log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "wifi", op_node, self.hostname_wifi), 3)
+ log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "wifi", op_node, self.hostname_wifi), 3)
mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_wifi)
var subtype = "_I" + k_fabric.tohex()
- tasmota.log("MTR: adding subtype: "+subtype, 3)
+ log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matter", "_tcp", op_node, self.hostname_wifi, subtype)
end
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
end
@@ -1040,15 +1040,15 @@ class Matter_Device
# mdns
if (tasmota.eth().find("up"))
- tasmota.log(format("MTR: remove mDNS on %s '%s'", "eth", op_node), 3)
+ log(format("MTR: remove mDNS on %s '%s'", "eth", op_node), 3)
mdns.remove_service("_matter", "_tcp", op_node, self.hostname_eth)
end
if (tasmota.wifi().find("up"))
- tasmota.log(format("MTR: remove mDNS on %s '%s'", "wifi", op_node), 3)
+ log(format("MTR: remove mDNS on %s '%s'", "wifi", op_node), 3)
mdns.remove_service("_matter", "_tcp", op_node, self.hostname_wifi)
end
except .. as e, m
- tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
+ log("MTR: Exception" + str(e) + "|" + str(m), 2)
end
end
@@ -1075,7 +1075,7 @@ class Matter_Device
self.plugins_config = self.autoconf_device_map()
self.plugins_config_remotes = {}
self.adjust_next_ep()
- tasmota.log("MTR: autoconfig = " + str(self.plugins_config), 3)
+ log("MTR: autoconfig = " + str(self.plugins_config), 3)
end
self._instantiate_plugins_from_config(self.plugins_config)
@@ -1117,7 +1117,7 @@ class Matter_Device
# handle shutters before relays (as we steal relays for shutters)
var r_st13 = tasmota.cmd("Status 13", true) # issue `Status 13`
var relays_reserved = [] # list of relays that are used for non-relay (shutters)
- tasmota.log("MTR: Status 13 = "+str(r_st13), 3)
+ log("MTR: Status 13 = "+str(r_st13), 3)
if r_st13 != nil && r_st13.contains('StatusSHT')
r_st13 = r_st13['StatusSHT'] # skip root
@@ -1127,14 +1127,14 @@ class Matter_Device
var k = 'SHT' + str(idx) # SHT is zero based
if !r_st13.contains(k) break end # no more SHTxxx
var d = r_st13[k]
- tasmota.log(format("MTR: '%s' = %s", k, str(d)), 3)
+ log(format("MTR: '%s' = %s", k, str(d)), 3)
var relay1 = d.find('Relay1', -1) # relay base 1 or -1 if none
var relay2 = d.find('Relay2', -1) # relay base 1 or -1 if none
if relay1 > 0 relays_reserved.push(relay1 - 1) end # mark relay1/2 as non-relays
if relay2 > 0 relays_reserved.push(relay2 - 1) end
- tasmota.log(f"MTR: {relay1=} {relay2=}", 3)
+ log(f"MTR: {relay1=} {relay2=}", 3)
# is there tilt support
var tilt_array = d.find('TiltConfig')
var tilt_config = tilt_array && (tilt_array[2] > 0)
@@ -1258,7 +1258,7 @@ class Matter_Device
# returns endpoint number newly allocated, or `nil` if failed
def bridge_add_endpoint(pi_class_name, plugin_conf)
var pi_class = self.plugins_classes.find(pi_class_name)
- if pi_class == nil tasmota.log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 3) return end
+ if pi_class == nil log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 3) return end
# get the next allocated endpoint number
var ep = self.next_ep
@@ -1275,7 +1275,7 @@ class Matter_Device
pi_conf[k] = plugin_conf[k]
end
# add to main
- tasmota.log(format("MTR: adding endpoint = %i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
+ log(format("MTR: adding endpoint = %i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
self.plugins_config[ep_str] = pi_conf
self.plugins_persist = true
self.next_ep += 1 # increment next allocated endpoint before saving
@@ -1298,10 +1298,10 @@ class Matter_Device
var f_in
if !self.plugins_config.contains(ep_str)
- tasmota.log("MTR: Cannot remove an enpoint not configured: " + ep_str, 3)
+ log("MTR: Cannot remove an enpoint not configured: " + ep_str, 3)
return
end
- tasmota.log(format("MTR: deleting endpoint = %i", ep), 2)
+ log(format("MTR: deleting endpoint = %i", ep), 2)
self.plugins_config.remove(ep_str)
self.plugins_persist = true
@@ -1344,12 +1344,12 @@ class Matter_Device
for k: self.plugins_config.keys() keys.push(int(k)) end
for ep: keys
if ep == 0
- tasmota.log("MTR: invalid entry with ep '0'", 2)
+ log("MTR: invalid entry with ep '0'", 2)
self.plugins_config.remove(str(ep))
dirty = true
elif ep == matter.AGGREGATOR_ENDPOINT
dirty = true
- tasmota.log(f"MTR: endpoint {ep} collides wit aggregator, relocating to {self.next_ep}", 2)
+ log(f"MTR: endpoint {ep} collides wit aggregator, relocating to {self.next_ep}", 2)
self.plugins_config[str(self.next_ep)] = self.plugins_config[str(ep)]
self.plugins_config.remove(str(ep))
self.next_ep += 1
@@ -1450,7 +1450,7 @@ class Matter_Device
# print("remotes_map2", remotes_map)
- # tasmota.log("MTR: remotes references: " + str(remotes_map), 3)
+ # log("MTR: remotes references: " + str(remotes_map), 3)
var remote_to_remove = [] # we first get the list of remotes to remove, to not interfere with map iterator
for remote:remotes_map.keys()
@@ -1460,7 +1460,7 @@ class Matter_Device
end
for remote: remote_to_remove
- tasmota.log("MTR: remove unused remote: " + remote.addr, 3)
+ log("MTR: remove unused remote: " + remote.addr, 3)
remote.close()
self.http_remotes.remove(remote.addr)
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
index 7223b049f..2582429b2 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
@@ -12,7 +12,7 @@ extern const bclass be_class_Matter_Commisioning_Context;
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_parse_StatusReport, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -20,34 +20,32 @@ be_local_closure(class_Matter_Commisioning_Context_parse_StatusReport, /* name
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_const_int(2147483647),
- /* K7 */ be_nested_str_weak(tohex),
- /* K8 */ be_const_int(3),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20),
+ /* K3 */ be_nested_str_weak(raw),
+ /* K4 */ be_nested_str_weak(app_payload_idx),
+ /* K5 */ be_const_int(2147483647),
+ /* K6 */ be_nested_str_weak(tohex),
+ /* K7 */ be_const_int(3),
}),
be_str_weak(parse_StatusReport),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
+ ( &(const binstruction[13]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x88140305, // 0003 GETMBR R5 R1 K5
- 0x40140B06, // 0004 CONNECT R5 R5 K6
- 0x88180304, // 0005 GETMBR R6 R1 K4
- 0x94140C05, // 0006 GETIDX R5 R6 R5
- 0x8C140B07, // 0007 GETMET R5 R5 K7
- 0x7C140200, // 0008 CALL R5 1
- 0x00160605, // 0009 ADD R5 K3 R5
- 0x58180008, // 000A LDCONST R6 K8
- 0x7C0C0600, // 000B CALL R3 3
- 0x500C0000, // 000C LDBOOL R3 0 0
- 0x80040600, // 000D RET 1 R3
+ 0x88100304, // 0002 GETMBR R4 R1 K4
+ 0x40100905, // 0003 CONNECT R4 R4 K5
+ 0x88140303, // 0004 GETMBR R5 R1 K3
+ 0x94100A04, // 0005 GETIDX R4 R5 R4
+ 0x8C100906, // 0006 GETMET R4 R4 K6
+ 0x7C100200, // 0007 CALL R4 1
+ 0x00120404, // 0008 ADD R4 K2 R4
+ 0x58140007, // 0009 LDCONST R5 K7
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x500C0000, // 000B LDBOOL R3 0 0
+ 0x80040600, // 000C RET 1 R3
})
)
);
@@ -60,7 +58,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_StatusReport, /* name
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_find_fabric_by_destination_id, /* name */
be_nested_proto(
- 14, /* nstack */
+ 13, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -91,80 +89,78 @@ be_local_closure(class_Matter_Commisioning_Context_find_fabric_by_destination_id
}),
be_str_weak(find_fabric_by_destination_id),
&be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
+ ( &(const binstruction[71]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x8C100902, // 0002 GETMET R4 R4 K2
0x541A0003, // 0003 LDINT R6 4
0x7C100400, // 0004 CALL R4 2
- 0x78120006, // 0005 JMPF R4 #000D
- 0xB8120200, // 0006 GETNGBL R4 K1
- 0x8C100903, // 0007 GETMET R4 R4 K3
- 0x8C180305, // 0008 GETMET R6 R1 K5
- 0x7C180200, // 0009 CALL R6 1
- 0x001A0806, // 000A ADD R6 K4 R6
- 0x541E0003, // 000B LDINT R7 4
- 0x7C100600, // 000C CALL R4 3
- 0x60100010, // 000D GETGBL R4 G16
- 0x88140106, // 000E GETMBR R5 R0 K6
- 0x88140B07, // 000F GETMBR R5 R5 K7
- 0x88140B08, // 0010 GETMBR R5 R5 K8
- 0x7C100200, // 0011 CALL R4 1
- 0xA8020030, // 0012 EXBLK 0 #0044
- 0x5C140800, // 0013 MOVE R5 R4
- 0x7C140000, // 0014 CALL R5 0
- 0x88180B09, // 0015 GETMBR R6 R5 K9
- 0x4C1C0000, // 0016 LDNIL R7
- 0x1C180C07, // 0017 EQ R6 R6 R7
- 0x741A0007, // 0018 JMPT R6 #0021
- 0x88180B0A, // 0019 GETMBR R6 R5 K10
- 0x4C1C0000, // 001A LDNIL R7
- 0x1C180C07, // 001B EQ R6 R6 R7
- 0x741A0003, // 001C JMPT R6 #0021
- 0x88180B0B, // 001D GETMBR R6 R5 K11
- 0x4C1C0000, // 001E LDNIL R7
- 0x1C180C07, // 001F EQ R6 R6 R7
- 0x781A0000, // 0020 JMPF R6 #0022
- 0x7001FFF0, // 0021 JMP #0013
- 0x8C180B0C, // 0022 GETMET R6 R5 K12
- 0x7C180200, // 0023 CALL R6 1
- 0x00180406, // 0024 ADD R6 R2 R6
- 0x881C0B0A, // 0025 GETMBR R7 R5 K10
- 0x00180C07, // 0026 ADD R6 R6 R7
- 0x881C0B0B, // 0027 GETMBR R7 R5 K11
- 0x00180C07, // 0028 ADD R6 R6 R7
- 0x8C1C0B0D, // 0029 GETMET R7 R5 K13
- 0x7C1C0200, // 002A CALL R7 1
- 0x8C20070E, // 002B GETMET R8 R3 K14
- 0x5C280E00, // 002C MOVE R10 R7
- 0x7C200400, // 002D CALL R8 2
- 0x8C24110F, // 002E GETMET R9 R8 K15
- 0x5C2C0C00, // 002F MOVE R11 R6
- 0x7C240400, // 0030 CALL R9 2
- 0x8C241110, // 0031 GETMET R9 R8 K16
- 0x7C240200, // 0032 CALL R9 1
- 0xB82A0200, // 0033 GETNGBL R10 K1
- 0x8C281502, // 0034 GETMET R10 R10 K2
- 0x54320003, // 0035 LDINT R12 4
- 0x7C280400, // 0036 CALL R10 2
- 0x782A0006, // 0037 JMPF R10 #003F
- 0xB82A0200, // 0038 GETNGBL R10 K1
- 0x8C281503, // 0039 GETMET R10 R10 K3
- 0x8C301305, // 003A GETMET R12 R9 K5
- 0x7C300200, // 003B CALL R12 1
- 0x0032220C, // 003C ADD R12 K17 R12
- 0x54360003, // 003D LDINT R13 4
- 0x7C280600, // 003E CALL R10 3
- 0x1C281201, // 003F EQ R10 R9 R1
- 0x782A0001, // 0040 JMPF R10 #0043
- 0xA8040001, // 0041 EXBLK 1 1
- 0x80040A00, // 0042 RET 1 R5
- 0x7001FFCE, // 0043 JMP #0013
- 0x58100012, // 0044 LDCONST R4 K18
- 0xAC100200, // 0045 CATCH R4 1 0
- 0xB0080000, // 0046 RAISE 2 R0 R0
- 0x4C100000, // 0047 LDNIL R4
- 0x80040800, // 0048 RET 1 R4
+ 0x78120005, // 0005 JMPF R4 #000C
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x8C140305, // 0007 GETMET R5 R1 K5
+ 0x7C140200, // 0008 CALL R5 1
+ 0x00160805, // 0009 ADD R5 K4 R5
+ 0x541A0003, // 000A LDINT R6 4
+ 0x7C100400, // 000B CALL R4 2
+ 0x60100010, // 000C GETGBL R4 G16
+ 0x88140106, // 000D GETMBR R5 R0 K6
+ 0x88140B07, // 000E GETMBR R5 R5 K7
+ 0x88140B08, // 000F GETMBR R5 R5 K8
+ 0x7C100200, // 0010 CALL R4 1
+ 0xA802002F, // 0011 EXBLK 0 #0042
+ 0x5C140800, // 0012 MOVE R5 R4
+ 0x7C140000, // 0013 CALL R5 0
+ 0x88180B09, // 0014 GETMBR R6 R5 K9
+ 0x4C1C0000, // 0015 LDNIL R7
+ 0x1C180C07, // 0016 EQ R6 R6 R7
+ 0x741A0007, // 0017 JMPT R6 #0020
+ 0x88180B0A, // 0018 GETMBR R6 R5 K10
+ 0x4C1C0000, // 0019 LDNIL R7
+ 0x1C180C07, // 001A EQ R6 R6 R7
+ 0x741A0003, // 001B JMPT R6 #0020
+ 0x88180B0B, // 001C GETMBR R6 R5 K11
+ 0x4C1C0000, // 001D LDNIL R7
+ 0x1C180C07, // 001E EQ R6 R6 R7
+ 0x781A0000, // 001F JMPF R6 #0021
+ 0x7001FFF0, // 0020 JMP #0012
+ 0x8C180B0C, // 0021 GETMET R6 R5 K12
+ 0x7C180200, // 0022 CALL R6 1
+ 0x00180406, // 0023 ADD R6 R2 R6
+ 0x881C0B0A, // 0024 GETMBR R7 R5 K10
+ 0x00180C07, // 0025 ADD R6 R6 R7
+ 0x881C0B0B, // 0026 GETMBR R7 R5 K11
+ 0x00180C07, // 0027 ADD R6 R6 R7
+ 0x8C1C0B0D, // 0028 GETMET R7 R5 K13
+ 0x7C1C0200, // 0029 CALL R7 1
+ 0x8C20070E, // 002A GETMET R8 R3 K14
+ 0x5C280E00, // 002B MOVE R10 R7
+ 0x7C200400, // 002C CALL R8 2
+ 0x8C24110F, // 002D GETMET R9 R8 K15
+ 0x5C2C0C00, // 002E MOVE R11 R6
+ 0x7C240400, // 002F CALL R9 2
+ 0x8C241110, // 0030 GETMET R9 R8 K16
+ 0x7C240200, // 0031 CALL R9 1
+ 0xB82A0200, // 0032 GETNGBL R10 K1
+ 0x8C281502, // 0033 GETMET R10 R10 K2
+ 0x54320003, // 0034 LDINT R12 4
+ 0x7C280400, // 0035 CALL R10 2
+ 0x782A0005, // 0036 JMPF R10 #003D
+ 0xB82A0600, // 0037 GETNGBL R10 K3
+ 0x8C2C1305, // 0038 GETMET R11 R9 K5
+ 0x7C2C0200, // 0039 CALL R11 1
+ 0x002E220B, // 003A ADD R11 K17 R11
+ 0x54320003, // 003B LDINT R12 4
+ 0x7C280400, // 003C CALL R10 2
+ 0x1C281201, // 003D EQ R10 R9 R1
+ 0x782A0001, // 003E JMPF R10 #0041
+ 0xA8040001, // 003F EXBLK 1 1
+ 0x80040A00, // 0040 RET 1 R5
+ 0x7001FFCF, // 0041 JMP #0012
+ 0x58100012, // 0042 LDCONST R4 K18
+ 0xAC100200, // 0043 CATCH R4 1 0
+ 0xB0080000, // 0044 RAISE 2 R0 R0
+ 0x4C100000, // 0045 LDNIL R4
+ 0x80040800, // 0046 RET 1 R4
})
)
);
@@ -210,39 +206,37 @@ be_local_closure(class_Matter_Commisioning_Context_add_session, /* name */
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20add_session_X20local_session_id_X3D_X25i_X20initiator_session_id_X3D_X25i),
- /* K3 */ be_nested_str_weak(device),
- /* K4 */ be_nested_str_weak(sessions),
- /* K5 */ be_nested_str_weak(create_session),
- /* K6 */ be_nested_str_weak(set_keys),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20add_session_X20local_session_id_X3D_X25i_X20initiator_session_id_X3D_X25i),
+ /* K2 */ be_nested_str_weak(device),
+ /* K3 */ be_nested_str_weak(sessions),
+ /* K4 */ be_nested_str_weak(create_session),
+ /* K5 */ be_nested_str_weak(set_keys),
}),
be_str_weak(add_session),
&be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
+ ( &(const binstruction[20]) { /* code */
0xB81A0000, // 0000 GETNGBL R6 K0
- 0x8C180D01, // 0001 GETMET R6 R6 K1
- 0x60200018, // 0002 GETGBL R8 G24
- 0x58240002, // 0003 LDCONST R9 K2
- 0x5C280200, // 0004 MOVE R10 R1
- 0x5C2C0400, // 0005 MOVE R11 R2
- 0x7C200600, // 0006 CALL R8 3
- 0x54260003, // 0007 LDINT R9 4
- 0x7C180600, // 0008 CALL R6 3
- 0x88180103, // 0009 GETMBR R6 R0 K3
- 0x88180D04, // 000A GETMBR R6 R6 K4
- 0x8C180D05, // 000B GETMET R6 R6 K5
- 0x5C200200, // 000C MOVE R8 R1
- 0x5C240400, // 000D MOVE R9 R2
- 0x7C180600, // 000E CALL R6 3
- 0x8C1C0D06, // 000F GETMET R7 R6 K6
- 0x5C240600, // 0010 MOVE R9 R3
- 0x5C280800, // 0011 MOVE R10 R4
- 0x5C2C0A00, // 0012 MOVE R11 R5
- 0x7C1C0800, // 0013 CALL R7 4
- 0x80000000, // 0014 RET 0
+ 0x601C0018, // 0001 GETGBL R7 G24
+ 0x58200001, // 0002 LDCONST R8 K1
+ 0x5C240200, // 0003 MOVE R9 R1
+ 0x5C280400, // 0004 MOVE R10 R2
+ 0x7C1C0600, // 0005 CALL R7 3
+ 0x54220003, // 0006 LDINT R8 4
+ 0x7C180400, // 0007 CALL R6 2
+ 0x88180102, // 0008 GETMBR R6 R0 K2
+ 0x88180D03, // 0009 GETMBR R6 R6 K3
+ 0x8C180D04, // 000A GETMET R6 R6 K4
+ 0x5C200200, // 000B MOVE R8 R1
+ 0x5C240400, // 000C MOVE R9 R2
+ 0x7C180600, // 000D CALL R6 3
+ 0x8C1C0D05, // 000E GETMET R7 R6 K5
+ 0x5C240600, // 000F MOVE R9 R3
+ 0x5C280800, // 0010 MOVE R10 R4
+ 0x5C2C0A00, // 0011 MOVE R11 R5
+ 0x7C1C0800, // 0012 CALL R7 4
+ 0x80000000, // 0013 RET 0
})
)
);
@@ -263,59 +257,58 @@ be_local_closure(class_Matter_Commisioning_Context_parse_PBKDFParamRequest, /*
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[48]) { /* constants */
+ ( &(const bvalue[47]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(session),
/* K2 */ be_nested_str_weak(opcode),
/* K3 */ be_nested_str_weak(local_session_id),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(protocol_id),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20invalid_X20PBKDFParamRequest_X20message),
- /* K9 */ be_const_int(2),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K11 */ be_const_int(3),
- /* K12 */ be_nested_str_weak(send_status_report),
- /* K13 */ be_const_int(1),
- /* K14 */ be_nested_str_weak(matter),
- /* K15 */ be_nested_str_weak(PBKDFParamRequest),
- /* K16 */ be_nested_str_weak(parse),
- /* K17 */ be_nested_str_weak(raw),
- /* K18 */ be_nested_str_weak(app_payload_idx),
- /* K19 */ be_nested_str_weak(set_mode_PASE),
- /* K20 */ be_nested_str_weak(__Msg1),
- /* K21 */ be_const_int(2147483647),
- /* K22 */ be_nested_str_weak(passcodeId),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20non_X2Dzero_X20passcode_X20id),
- /* K24 */ be_nested_str_weak(__future_initiator_session_id),
- /* K25 */ be_nested_str_weak(initiator_session_id),
- /* K26 */ be_nested_str_weak(__future_local_session_id),
- /* K27 */ be_nested_str_weak(device),
- /* K28 */ be_nested_str_weak(sessions),
- /* K29 */ be_nested_str_weak(gen_local_session_id),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
- /* K31 */ be_nested_str_weak(remote_ip),
- /* K32 */ be_nested_str_weak(remote_port),
- /* K33 */ be_nested_str_weak(PBKDFParamResponse),
- /* K34 */ be_nested_str_weak(initiatorRandom),
- /* K35 */ be_nested_str_weak(responderRandom),
- /* K36 */ be_nested_str_weak(random),
- /* K37 */ be_nested_str_weak(responderSessionId),
- /* K38 */ be_nested_str_weak(pbkdf_parameters_salt),
- /* K39 */ be_nested_str_weak(commissioning_salt),
- /* K40 */ be_nested_str_weak(pbkdf_parameters_iterations),
- /* K41 */ be_nested_str_weak(commissioning_iterations),
- /* K42 */ be_nested_str_weak(tlv2raw),
- /* K43 */ be_nested_str_weak(__Msg2),
- /* K44 */ be_nested_str_weak(build_response),
- /* K45 */ be_nested_str_weak(encode_frame),
- /* K46 */ be_nested_str_weak(responder),
- /* K47 */ be_nested_str_weak(send_response_frame),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20PBKDFParamRequest_X20message),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(send_status_report),
+ /* K12 */ be_const_int(1),
+ /* K13 */ be_nested_str_weak(matter),
+ /* K14 */ be_nested_str_weak(PBKDFParamRequest),
+ /* K15 */ be_nested_str_weak(parse),
+ /* K16 */ be_nested_str_weak(raw),
+ /* K17 */ be_nested_str_weak(app_payload_idx),
+ /* K18 */ be_nested_str_weak(set_mode_PASE),
+ /* K19 */ be_nested_str_weak(__Msg1),
+ /* K20 */ be_const_int(2147483647),
+ /* K21 */ be_nested_str_weak(passcodeId),
+ /* K22 */ be_nested_str_weak(MTR_X3A_X20non_X2Dzero_X20passcode_X20id),
+ /* K23 */ be_nested_str_weak(__future_initiator_session_id),
+ /* K24 */ be_nested_str_weak(initiator_session_id),
+ /* K25 */ be_nested_str_weak(__future_local_session_id),
+ /* K26 */ be_nested_str_weak(device),
+ /* K27 */ be_nested_str_weak(sessions),
+ /* K28 */ be_nested_str_weak(gen_local_session_id),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
+ /* K30 */ be_nested_str_weak(remote_ip),
+ /* K31 */ be_nested_str_weak(remote_port),
+ /* K32 */ be_nested_str_weak(PBKDFParamResponse),
+ /* K33 */ be_nested_str_weak(initiatorRandom),
+ /* K34 */ be_nested_str_weak(responderRandom),
+ /* K35 */ be_nested_str_weak(random),
+ /* K36 */ be_nested_str_weak(responderSessionId),
+ /* K37 */ be_nested_str_weak(pbkdf_parameters_salt),
+ /* K38 */ be_nested_str_weak(commissioning_salt),
+ /* K39 */ be_nested_str_weak(pbkdf_parameters_iterations),
+ /* K40 */ be_nested_str_weak(commissioning_iterations),
+ /* K41 */ be_nested_str_weak(tlv2raw),
+ /* K42 */ be_nested_str_weak(__Msg2),
+ /* K43 */ be_nested_str_weak(build_response),
+ /* K44 */ be_nested_str_weak(encode_frame),
+ /* K45 */ be_nested_str_weak(responder),
+ /* K46 */ be_nested_str_weak(send_response_frame),
}),
be_str_weak(parse_PBKDFParamRequest),
&be_const_str_solidified,
- ( &(const binstruction[118]) { /* code */
+ ( &(const binstruction[113]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -327,113 +320,108 @@ be_local_closure(class_Matter_Commisioning_Context_parse_PBKDFParamRequest, /*
0x74120002, // 0008 JMPT R4 #000C
0x88100305, // 0009 GETMBR R4 R1 K5
0x20100904, // 000A NE R4 R4 K4
- 0x78120012, // 000B JMPF R4 #001F
+ 0x78120010, // 000B JMPF R4 #001D
0xB8120C00, // 000C GETNGBL R4 K6
- 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x58140007, // 000D LDCONST R5 K7
0x58180008, // 000E LDCONST R6 K8
- 0x581C0009, // 000F LDCONST R7 K9
- 0x7C100600, // 0010 CALL R4 3
- 0xB8120C00, // 0011 GETNGBL R4 K6
- 0x8C100907, // 0012 GETMET R4 R4 K7
- 0x5818000A, // 0013 LDCONST R6 K10
- 0x581C000B, // 0014 LDCONST R7 K11
- 0x7C100600, // 0015 CALL R4 3
- 0x8C10010C, // 0016 GETMET R4 R0 K12
- 0x5C180200, // 0017 MOVE R6 R1
- 0x581C000D, // 0018 LDCONST R7 K13
- 0x58200004, // 0019 LDCONST R8 K4
- 0x58240009, // 001A LDCONST R9 K9
- 0x50280000, // 001B LDBOOL R10 0 0
- 0x7C100C00, // 001C CALL R4 6
- 0x50100000, // 001D LDBOOL R4 0 0
- 0x80040800, // 001E RET 1 R4
- 0xB8121C00, // 001F GETNGBL R4 K14
+ 0x7C100400, // 000F CALL R4 2
+ 0xB8120C00, // 0010 GETNGBL R4 K6
+ 0x58140009, // 0011 LDCONST R5 K9
+ 0x5818000A, // 0012 LDCONST R6 K10
+ 0x7C100400, // 0013 CALL R4 2
+ 0x8C10010B, // 0014 GETMET R4 R0 K11
+ 0x5C180200, // 0015 MOVE R6 R1
+ 0x581C000C, // 0016 LDCONST R7 K12
+ 0x58200004, // 0017 LDCONST R8 K4
+ 0x58240008, // 0018 LDCONST R9 K8
+ 0x50280000, // 0019 LDBOOL R10 0 0
+ 0x7C100C00, // 001A CALL R4 6
+ 0x50100000, // 001B LDBOOL R4 0 0
+ 0x80040800, // 001C RET 1 R4
+ 0xB8121A00, // 001D GETNGBL R4 K13
+ 0x8C10090E, // 001E GETMET R4 R4 K14
+ 0x7C100200, // 001F CALL R4 1
0x8C10090F, // 0020 GETMET R4 R4 K15
- 0x7C100200, // 0021 CALL R4 1
- 0x8C100910, // 0022 GETMET R4 R4 K16
- 0x88180311, // 0023 GETMBR R6 R1 K17
- 0x881C0312, // 0024 GETMBR R7 R1 K18
- 0x7C100600, // 0025 CALL R4 3
- 0x88140301, // 0026 GETMBR R5 R1 K1
- 0x8C140B13, // 0027 GETMET R5 R5 K19
- 0x7C140200, // 0028 CALL R5 1
- 0x88140312, // 0029 GETMBR R5 R1 K18
- 0x40140B15, // 002A CONNECT R5 R5 K21
- 0x88180311, // 002B GETMBR R6 R1 K17
- 0x94140C05, // 002C GETIDX R5 R6 R5
- 0x900E2805, // 002D SETMBR R3 K20 R5
- 0x88140916, // 002E GETMBR R5 R4 K22
- 0x20140B04, // 002F NE R5 R5 K4
- 0x78160012, // 0030 JMPF R5 #0044
- 0xB8160C00, // 0031 GETNGBL R5 K6
- 0x8C140B07, // 0032 GETMET R5 R5 K7
- 0x581C0017, // 0033 LDCONST R7 K23
- 0x58200009, // 0034 LDCONST R8 K9
- 0x7C140600, // 0035 CALL R5 3
- 0xB8160C00, // 0036 GETNGBL R5 K6
- 0x8C140B07, // 0037 GETMET R5 R5 K7
- 0x581C000A, // 0038 LDCONST R7 K10
- 0x5820000B, // 0039 LDCONST R8 K11
- 0x7C140600, // 003A CALL R5 3
- 0x8C14010C, // 003B GETMET R5 R0 K12
- 0x5C1C0200, // 003C MOVE R7 R1
- 0x5820000D, // 003D LDCONST R8 K13
- 0x58240004, // 003E LDCONST R9 K4
- 0x58280009, // 003F LDCONST R10 K9
- 0x502C0000, // 0040 LDBOOL R11 0 0
- 0x7C140C00, // 0041 CALL R5 6
- 0x50140000, // 0042 LDBOOL R5 0 0
- 0x80040A00, // 0043 RET 1 R5
- 0x88140919, // 0044 GETMBR R5 R4 K25
- 0x900E3005, // 0045 SETMBR R3 K24 R5
- 0x8814011B, // 0046 GETMBR R5 R0 K27
- 0x88140B1C, // 0047 GETMBR R5 R5 K28
- 0x8C140B1D, // 0048 GETMET R5 R5 K29
- 0x7C140200, // 0049 CALL R5 1
- 0x900E3405, // 004A SETMBR R3 K26 R5
- 0xB8160C00, // 004B GETNGBL R5 K6
- 0x8C140B07, // 004C GETMET R5 R5 K7
- 0x601C0018, // 004D GETGBL R7 G24
- 0x5820001E, // 004E LDCONST R8 K30
- 0x8824071A, // 004F GETMBR R9 R3 K26
- 0x8828031F, // 0050 GETMBR R10 R1 K31
- 0x882C0320, // 0051 GETMBR R11 R1 K32
- 0x7C1C0800, // 0052 CALL R7 4
- 0x5820000B, // 0053 LDCONST R8 K11
- 0x7C140600, // 0054 CALL R5 3
- 0xB8161C00, // 0055 GETNGBL R5 K14
- 0x8C140B21, // 0056 GETMET R5 R5 K33
- 0x7C140200, // 0057 CALL R5 1
- 0x88180922, // 0058 GETMBR R6 R4 K34
- 0x90164406, // 0059 SETMBR R5 K34 R6
- 0x8C180524, // 005A GETMET R6 R2 K36
- 0x5422001F, // 005B LDINT R8 32
- 0x7C180400, // 005C CALL R6 2
- 0x90164606, // 005D SETMBR R5 K35 R6
- 0x8818071A, // 005E GETMBR R6 R3 K26
- 0x90164A06, // 005F SETMBR R5 K37 R6
- 0x8818011B, // 0060 GETMBR R6 R0 K27
- 0x88180D27, // 0061 GETMBR R6 R6 K39
- 0x90164C06, // 0062 SETMBR R5 K38 R6
- 0x8818011B, // 0063 GETMBR R6 R0 K27
- 0x88180D29, // 0064 GETMBR R6 R6 K41
- 0x90165006, // 0065 SETMBR R5 K40 R6
- 0x8C180B2A, // 0066 GETMET R6 R5 K42
- 0x7C180200, // 0067 CALL R6 1
- 0x900E5606, // 0068 SETMBR R3 K43 R6
- 0x8C1C032C, // 0069 GETMET R7 R1 K44
- 0x54260020, // 006A LDINT R9 33
- 0x50280200, // 006B LDBOOL R10 1 0
- 0x7C1C0600, // 006C CALL R7 3
- 0x8C200F2D, // 006D GETMET R8 R7 K45
- 0x5C280C00, // 006E MOVE R10 R6
- 0x7C200400, // 006F CALL R8 2
- 0x8824012E, // 0070 GETMBR R9 R0 K46
- 0x8C24132F, // 0071 GETMET R9 R9 K47
- 0x5C2C0E00, // 0072 MOVE R11 R7
- 0x7C240400, // 0073 CALL R9 2
- 0x50240200, // 0074 LDBOOL R9 1 0
- 0x80041200, // 0075 RET 1 R9
+ 0x88180310, // 0021 GETMBR R6 R1 K16
+ 0x881C0311, // 0022 GETMBR R7 R1 K17
+ 0x7C100600, // 0023 CALL R4 3
+ 0x88140301, // 0024 GETMBR R5 R1 K1
+ 0x8C140B12, // 0025 GETMET R5 R5 K18
+ 0x7C140200, // 0026 CALL R5 1
+ 0x88140311, // 0027 GETMBR R5 R1 K17
+ 0x40140B14, // 0028 CONNECT R5 R5 K20
+ 0x88180310, // 0029 GETMBR R6 R1 K16
+ 0x94140C05, // 002A GETIDX R5 R6 R5
+ 0x900E2605, // 002B SETMBR R3 K19 R5
+ 0x88140915, // 002C GETMBR R5 R4 K21
+ 0x20140B04, // 002D NE R5 R5 K4
+ 0x78160010, // 002E JMPF R5 #0040
+ 0xB8160C00, // 002F GETNGBL R5 K6
+ 0x58180016, // 0030 LDCONST R6 K22
+ 0x581C0008, // 0031 LDCONST R7 K8
+ 0x7C140400, // 0032 CALL R5 2
+ 0xB8160C00, // 0033 GETNGBL R5 K6
+ 0x58180009, // 0034 LDCONST R6 K9
+ 0x581C000A, // 0035 LDCONST R7 K10
+ 0x7C140400, // 0036 CALL R5 2
+ 0x8C14010B, // 0037 GETMET R5 R0 K11
+ 0x5C1C0200, // 0038 MOVE R7 R1
+ 0x5820000C, // 0039 LDCONST R8 K12
+ 0x58240004, // 003A LDCONST R9 K4
+ 0x58280008, // 003B LDCONST R10 K8
+ 0x502C0000, // 003C LDBOOL R11 0 0
+ 0x7C140C00, // 003D CALL R5 6
+ 0x50140000, // 003E LDBOOL R5 0 0
+ 0x80040A00, // 003F RET 1 R5
+ 0x88140918, // 0040 GETMBR R5 R4 K24
+ 0x900E2E05, // 0041 SETMBR R3 K23 R5
+ 0x8814011A, // 0042 GETMBR R5 R0 K26
+ 0x88140B1B, // 0043 GETMBR R5 R5 K27
+ 0x8C140B1C, // 0044 GETMET R5 R5 K28
+ 0x7C140200, // 0045 CALL R5 1
+ 0x900E3205, // 0046 SETMBR R3 K25 R5
+ 0xB8160C00, // 0047 GETNGBL R5 K6
+ 0x60180018, // 0048 GETGBL R6 G24
+ 0x581C001D, // 0049 LDCONST R7 K29
+ 0x88200719, // 004A GETMBR R8 R3 K25
+ 0x8824031E, // 004B GETMBR R9 R1 K30
+ 0x8828031F, // 004C GETMBR R10 R1 K31
+ 0x7C180800, // 004D CALL R6 4
+ 0x581C000A, // 004E LDCONST R7 K10
+ 0x7C140400, // 004F CALL R5 2
+ 0xB8161A00, // 0050 GETNGBL R5 K13
+ 0x8C140B20, // 0051 GETMET R5 R5 K32
+ 0x7C140200, // 0052 CALL R5 1
+ 0x88180921, // 0053 GETMBR R6 R4 K33
+ 0x90164206, // 0054 SETMBR R5 K33 R6
+ 0x8C180523, // 0055 GETMET R6 R2 K35
+ 0x5422001F, // 0056 LDINT R8 32
+ 0x7C180400, // 0057 CALL R6 2
+ 0x90164406, // 0058 SETMBR R5 K34 R6
+ 0x88180719, // 0059 GETMBR R6 R3 K25
+ 0x90164806, // 005A SETMBR R5 K36 R6
+ 0x8818011A, // 005B GETMBR R6 R0 K26
+ 0x88180D26, // 005C GETMBR R6 R6 K38
+ 0x90164A06, // 005D SETMBR R5 K37 R6
+ 0x8818011A, // 005E GETMBR R6 R0 K26
+ 0x88180D28, // 005F GETMBR R6 R6 K40
+ 0x90164E06, // 0060 SETMBR R5 K39 R6
+ 0x8C180B29, // 0061 GETMET R6 R5 K41
+ 0x7C180200, // 0062 CALL R6 1
+ 0x900E5406, // 0063 SETMBR R3 K42 R6
+ 0x8C1C032B, // 0064 GETMET R7 R1 K43
+ 0x54260020, // 0065 LDINT R9 33
+ 0x50280200, // 0066 LDBOOL R10 1 0
+ 0x7C1C0600, // 0067 CALL R7 3
+ 0x8C200F2C, // 0068 GETMET R8 R7 K44
+ 0x5C280C00, // 0069 MOVE R10 R6
+ 0x7C200400, // 006A CALL R8 2
+ 0x8824012D, // 006B GETMBR R9 R0 K45
+ 0x8C24132E, // 006C GETMET R9 R9 K46
+ 0x5C2C0E00, // 006D MOVE R11 R7
+ 0x7C240400, // 006E CALL R9 2
+ 0x50240200, // 006F LDBOOL R9 1 0
+ 0x80041200, // 0070 RET 1 R9
})
)
);
@@ -503,7 +491,7 @@ be_local_closure(class_Matter_Commisioning_Context_send_status_report, /* name
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_parse_Pake1, /* name */
be_nested_proto(
- 21, /* nstack */
+ 20, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -511,63 +499,62 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Pake1, /* name */
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[52]) { /* constants */
+ ( &(const bvalue[51]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(session),
/* K2 */ be_nested_str_weak(opcode),
/* K3 */ be_nested_str_weak(local_session_id),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(protocol_id),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake1_X20message),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K11 */ be_nested_str_weak(send_status_report),
- /* K12 */ be_const_int(1),
- /* K13 */ be_const_int(2),
- /* K14 */ be_nested_str_weak(matter),
- /* K15 */ be_nested_str_weak(Pake1),
- /* K16 */ be_nested_str_weak(parse),
- /* K17 */ be_nested_str_weak(raw),
- /* K18 */ be_nested_str_weak(app_payload_idx),
- /* K19 */ be_nested_str_weak(pA),
- /* K20 */ be_nested_str_weak(SPAKE2P_Matter),
- /* K21 */ be_nested_str_weak(device),
- /* K22 */ be_nested_str_weak(commissioning_w0),
- /* K23 */ be_nested_str_weak(commissioning_L),
- /* K24 */ be_nested_str_weak(random),
- /* K25 */ be_nested_str_weak(compute_pB),
- /* K26 */ be_nested_str_weak(compute_ZV_verifier),
- /* K27 */ be_nested_str_weak(SHA256),
- /* K28 */ be_nested_str_weak(update),
- /* K29 */ be_nested_str_weak(fromstring),
- /* K30 */ be_nested_str_weak(Matter_Context_Prefix),
- /* K31 */ be_nested_str_weak(__Msg1),
- /* K32 */ be_nested_str_weak(__Msg2),
- /* K33 */ be_nested_str_weak(out),
- /* K34 */ be_nested_str_weak(set_context),
- /* K35 */ be_nested_str_weak(compute_TT_hash),
- /* K36 */ be_nested_str_weak(Pake2),
- /* K37 */ be_nested_str_weak(pB),
- /* K38 */ be_nested_str_weak(cB),
- /* K39 */ be_nested_str_weak(tlv2raw),
- /* K40 */ be_nested_str_weak(__spake_cA),
- /* K41 */ be_nested_str_weak(cA),
- /* K42 */ be_nested_str_weak(__spake_Ke),
- /* K43 */ be_nested_str_weak(Ke),
- /* K44 */ be_nested_str_weak(build_response),
- /* K45 */ be_nested_str_weak(encode_frame),
- /* K46 */ be_nested_str_weak(MTR_X3A_X20New_X20Commissioning_X20_X28PASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K47 */ be_nested_str_weak(__future_local_session_id),
- /* K48 */ be_nested_str_weak(_ip),
- /* K49 */ be_nested_str_weak(_port),
- /* K50 */ be_nested_str_weak(responder),
- /* K51 */ be_nested_str_weak(send_response_frame),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake1_X20message),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K10 */ be_nested_str_weak(send_status_report),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_const_int(2),
+ /* K13 */ be_nested_str_weak(matter),
+ /* K14 */ be_nested_str_weak(Pake1),
+ /* K15 */ be_nested_str_weak(parse),
+ /* K16 */ be_nested_str_weak(raw),
+ /* K17 */ be_nested_str_weak(app_payload_idx),
+ /* K18 */ be_nested_str_weak(pA),
+ /* K19 */ be_nested_str_weak(SPAKE2P_Matter),
+ /* K20 */ be_nested_str_weak(device),
+ /* K21 */ be_nested_str_weak(commissioning_w0),
+ /* K22 */ be_nested_str_weak(commissioning_L),
+ /* K23 */ be_nested_str_weak(random),
+ /* K24 */ be_nested_str_weak(compute_pB),
+ /* K25 */ be_nested_str_weak(compute_ZV_verifier),
+ /* K26 */ be_nested_str_weak(SHA256),
+ /* K27 */ be_nested_str_weak(update),
+ /* K28 */ be_nested_str_weak(fromstring),
+ /* K29 */ be_nested_str_weak(Matter_Context_Prefix),
+ /* K30 */ be_nested_str_weak(__Msg1),
+ /* K31 */ be_nested_str_weak(__Msg2),
+ /* K32 */ be_nested_str_weak(out),
+ /* K33 */ be_nested_str_weak(set_context),
+ /* K34 */ be_nested_str_weak(compute_TT_hash),
+ /* K35 */ be_nested_str_weak(Pake2),
+ /* K36 */ be_nested_str_weak(pB),
+ /* K37 */ be_nested_str_weak(cB),
+ /* K38 */ be_nested_str_weak(tlv2raw),
+ /* K39 */ be_nested_str_weak(__spake_cA),
+ /* K40 */ be_nested_str_weak(cA),
+ /* K41 */ be_nested_str_weak(__spake_Ke),
+ /* K42 */ be_nested_str_weak(Ke),
+ /* K43 */ be_nested_str_weak(build_response),
+ /* K44 */ be_nested_str_weak(encode_frame),
+ /* K45 */ be_nested_str_weak(MTR_X3A_X20New_X20Commissioning_X20_X28PASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K46 */ be_nested_str_weak(__future_local_session_id),
+ /* K47 */ be_nested_str_weak(_ip),
+ /* K48 */ be_nested_str_weak(_port),
+ /* K49 */ be_nested_str_weak(responder),
+ /* K50 */ be_nested_str_weak(send_response_frame),
}),
be_str_weak(parse_Pake1),
&be_const_str_solidified,
- ( &(const binstruction[115]) { /* code */
+ ( &(const binstruction[112]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -579,110 +566,107 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Pake1, /* name */
0x74120002, // 0008 JMPT R4 #000C
0x88100305, // 0009 GETMBR R4 R1 K5
0x20100904, // 000A NE R4 R4 K4
- 0x78120012, // 000B JMPF R4 #001F
+ 0x78120010, // 000B JMPF R4 #001D
0xB8120C00, // 000C GETNGBL R4 K6
- 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x58140007, // 000D LDCONST R5 K7
0x58180008, // 000E LDCONST R6 K8
- 0x581C0009, // 000F LDCONST R7 K9
- 0x7C100600, // 0010 CALL R4 3
- 0xB8120C00, // 0011 GETNGBL R4 K6
- 0x8C100907, // 0012 GETMET R4 R4 K7
- 0x5818000A, // 0013 LDCONST R6 K10
- 0x581C0009, // 0014 LDCONST R7 K9
- 0x7C100600, // 0015 CALL R4 3
- 0x8C10010B, // 0016 GETMET R4 R0 K11
- 0x5C180200, // 0017 MOVE R6 R1
- 0x581C000C, // 0018 LDCONST R7 K12
- 0x58200004, // 0019 LDCONST R8 K4
- 0x5824000D, // 001A LDCONST R9 K13
- 0x50280000, // 001B LDBOOL R10 0 0
- 0x7C100C00, // 001C CALL R4 6
- 0x50100000, // 001D LDBOOL R4 0 0
- 0x80040800, // 001E RET 1 R4
- 0xB8121C00, // 001F GETNGBL R4 K14
+ 0x7C100400, // 000F CALL R4 2
+ 0xB8120C00, // 0010 GETNGBL R4 K6
+ 0x58140009, // 0011 LDCONST R5 K9
+ 0x58180008, // 0012 LDCONST R6 K8
+ 0x7C100400, // 0013 CALL R4 2
+ 0x8C10010A, // 0014 GETMET R4 R0 K10
+ 0x5C180200, // 0015 MOVE R6 R1
+ 0x581C000B, // 0016 LDCONST R7 K11
+ 0x58200004, // 0017 LDCONST R8 K4
+ 0x5824000C, // 0018 LDCONST R9 K12
+ 0x50280000, // 0019 LDBOOL R10 0 0
+ 0x7C100C00, // 001A CALL R4 6
+ 0x50100000, // 001B LDBOOL R4 0 0
+ 0x80040800, // 001C RET 1 R4
+ 0xB8121A00, // 001D GETNGBL R4 K13
+ 0x8C10090E, // 001E GETMET R4 R4 K14
+ 0x7C100200, // 001F CALL R4 1
0x8C10090F, // 0020 GETMET R4 R4 K15
- 0x7C100200, // 0021 CALL R4 1
- 0x8C100910, // 0022 GETMET R4 R4 K16
- 0x88180311, // 0023 GETMBR R6 R1 K17
- 0x881C0312, // 0024 GETMBR R7 R1 K18
- 0x7C100600, // 0025 CALL R4 3
- 0x88140913, // 0026 GETMBR R5 R4 K19
- 0x8C180514, // 0027 GETMET R6 R2 K20
- 0x88200115, // 0028 GETMBR R8 R0 K21
- 0x88201116, // 0029 GETMBR R8 R8 K22
- 0x4C240000, // 002A LDNIL R9
- 0x88280115, // 002B GETMBR R10 R0 K21
- 0x88281517, // 002C GETMBR R10 R10 K23
- 0x7C180800, // 002D CALL R6 4
- 0x8C1C0518, // 002E GETMET R7 R2 K24
- 0x5426001F, // 002F LDINT R9 32
- 0x7C1C0400, // 0030 CALL R7 2
- 0x8C200D19, // 0031 GETMET R8 R6 K25
- 0x5C280E00, // 0032 MOVE R10 R7
- 0x7C200400, // 0033 CALL R8 2
- 0x8C200D1A, // 0034 GETMET R8 R6 K26
- 0x5C280A00, // 0035 MOVE R10 R5
- 0x7C200400, // 0036 CALL R8 2
- 0x8C20051B, // 0037 GETMET R8 R2 K27
- 0x7C200200, // 0038 CALL R8 1
- 0x8C24111C, // 0039 GETMET R9 R8 K28
- 0x602C0015, // 003A GETGBL R11 G21
- 0x7C2C0000, // 003B CALL R11 0
- 0x8C2C171D, // 003C GETMET R11 R11 K29
- 0x8834011E, // 003D GETMBR R13 R0 K30
- 0x7C2C0400, // 003E CALL R11 2
- 0x7C240400, // 003F CALL R9 2
- 0x8C24111C, // 0040 GETMET R9 R8 K28
- 0x882C071F, // 0041 GETMBR R11 R3 K31
- 0x7C240400, // 0042 CALL R9 2
- 0x8C24111C, // 0043 GETMET R9 R8 K28
- 0x882C0720, // 0044 GETMBR R11 R3 K32
- 0x7C240400, // 0045 CALL R9 2
- 0x8C241121, // 0046 GETMET R9 R8 K33
- 0x7C240200, // 0047 CALL R9 1
- 0x901A2605, // 0048 SETMBR R6 K19 R5
- 0x8C280D22, // 0049 GETMET R10 R6 K34
- 0x5C301200, // 004A MOVE R12 R9
- 0x7C280400, // 004B CALL R10 2
- 0x8C280D23, // 004C GETMET R10 R6 K35
- 0x50300200, // 004D LDBOOL R12 1 0
- 0x7C280400, // 004E CALL R10 2
- 0xB82A1C00, // 004F GETNGBL R10 K14
- 0x8C281524, // 0050 GETMET R10 R10 K36
- 0x7C280200, // 0051 CALL R10 1
+ 0x88180310, // 0021 GETMBR R6 R1 K16
+ 0x881C0311, // 0022 GETMBR R7 R1 K17
+ 0x7C100600, // 0023 CALL R4 3
+ 0x88140912, // 0024 GETMBR R5 R4 K18
+ 0x8C180513, // 0025 GETMET R6 R2 K19
+ 0x88200114, // 0026 GETMBR R8 R0 K20
+ 0x88201115, // 0027 GETMBR R8 R8 K21
+ 0x4C240000, // 0028 LDNIL R9
+ 0x88280114, // 0029 GETMBR R10 R0 K20
+ 0x88281516, // 002A GETMBR R10 R10 K22
+ 0x7C180800, // 002B CALL R6 4
+ 0x8C1C0517, // 002C GETMET R7 R2 K23
+ 0x5426001F, // 002D LDINT R9 32
+ 0x7C1C0400, // 002E CALL R7 2
+ 0x8C200D18, // 002F GETMET R8 R6 K24
+ 0x5C280E00, // 0030 MOVE R10 R7
+ 0x7C200400, // 0031 CALL R8 2
+ 0x8C200D19, // 0032 GETMET R8 R6 K25
+ 0x5C280A00, // 0033 MOVE R10 R5
+ 0x7C200400, // 0034 CALL R8 2
+ 0x8C20051A, // 0035 GETMET R8 R2 K26
+ 0x7C200200, // 0036 CALL R8 1
+ 0x8C24111B, // 0037 GETMET R9 R8 K27
+ 0x602C0015, // 0038 GETGBL R11 G21
+ 0x7C2C0000, // 0039 CALL R11 0
+ 0x8C2C171C, // 003A GETMET R11 R11 K28
+ 0x8834011D, // 003B GETMBR R13 R0 K29
+ 0x7C2C0400, // 003C CALL R11 2
+ 0x7C240400, // 003D CALL R9 2
+ 0x8C24111B, // 003E GETMET R9 R8 K27
+ 0x882C071E, // 003F GETMBR R11 R3 K30
+ 0x7C240400, // 0040 CALL R9 2
+ 0x8C24111B, // 0041 GETMET R9 R8 K27
+ 0x882C071F, // 0042 GETMBR R11 R3 K31
+ 0x7C240400, // 0043 CALL R9 2
+ 0x8C241120, // 0044 GETMET R9 R8 K32
+ 0x7C240200, // 0045 CALL R9 1
+ 0x901A2405, // 0046 SETMBR R6 K18 R5
+ 0x8C280D21, // 0047 GETMET R10 R6 K33
+ 0x5C301200, // 0048 MOVE R12 R9
+ 0x7C280400, // 0049 CALL R10 2
+ 0x8C280D22, // 004A GETMET R10 R6 K34
+ 0x50300200, // 004B LDBOOL R12 1 0
+ 0x7C280400, // 004C CALL R10 2
+ 0xB82A1A00, // 004D GETNGBL R10 K13
+ 0x8C281523, // 004E GETMET R10 R10 K35
+ 0x7C280200, // 004F CALL R10 1
+ 0x882C0D24, // 0050 GETMBR R11 R6 K36
+ 0x902A480B, // 0051 SETMBR R10 K36 R11
0x882C0D25, // 0052 GETMBR R11 R6 K37
0x902A4A0B, // 0053 SETMBR R10 K37 R11
- 0x882C0D26, // 0054 GETMBR R11 R6 K38
- 0x902A4C0B, // 0055 SETMBR R10 K38 R11
- 0x8C2C1527, // 0056 GETMET R11 R10 K39
- 0x7C2C0200, // 0057 CALL R11 1
- 0x88300D29, // 0058 GETMBR R12 R6 K41
- 0x900E500C, // 0059 SETMBR R3 K40 R12
- 0x88300D2B, // 005A GETMBR R12 R6 K43
- 0x900E540C, // 005B SETMBR R3 K42 R12
- 0x8C30032C, // 005C GETMET R12 R1 K44
- 0x543A0022, // 005D LDINT R14 35
- 0x503C0200, // 005E LDBOOL R15 1 0
- 0x7C300600, // 005F CALL R12 3
- 0x8C34192D, // 0060 GETMET R13 R12 K45
- 0x5C3C1600, // 0061 MOVE R15 R11
- 0x7C340400, // 0062 CALL R13 2
- 0xB83A0C00, // 0063 GETNGBL R14 K6
- 0x8C381D07, // 0064 GETMET R14 R14 K7
- 0x60400018, // 0065 GETGBL R16 G24
- 0x5844002E, // 0066 LDCONST R17 K46
- 0x8848072F, // 0067 GETMBR R18 R3 K47
- 0x884C0730, // 0068 GETMBR R19 R3 K48
- 0x88500731, // 0069 GETMBR R20 R3 K49
- 0x7C400800, // 006A CALL R16 4
- 0x5844000D, // 006B LDCONST R17 K13
- 0x7C380600, // 006C CALL R14 3
- 0x88380132, // 006D GETMBR R14 R0 K50
- 0x8C381D33, // 006E GETMET R14 R14 K51
- 0x5C401800, // 006F MOVE R16 R12
- 0x7C380400, // 0070 CALL R14 2
- 0x50380200, // 0071 LDBOOL R14 1 0
- 0x80041C00, // 0072 RET 1 R14
+ 0x8C2C1526, // 0054 GETMET R11 R10 K38
+ 0x7C2C0200, // 0055 CALL R11 1
+ 0x88300D28, // 0056 GETMBR R12 R6 K40
+ 0x900E4E0C, // 0057 SETMBR R3 K39 R12
+ 0x88300D2A, // 0058 GETMBR R12 R6 K42
+ 0x900E520C, // 0059 SETMBR R3 K41 R12
+ 0x8C30032B, // 005A GETMET R12 R1 K43
+ 0x543A0022, // 005B LDINT R14 35
+ 0x503C0200, // 005C LDBOOL R15 1 0
+ 0x7C300600, // 005D CALL R12 3
+ 0x8C34192C, // 005E GETMET R13 R12 K44
+ 0x5C3C1600, // 005F MOVE R15 R11
+ 0x7C340400, // 0060 CALL R13 2
+ 0xB83A0C00, // 0061 GETNGBL R14 K6
+ 0x603C0018, // 0062 GETGBL R15 G24
+ 0x5840002D, // 0063 LDCONST R16 K45
+ 0x8844072E, // 0064 GETMBR R17 R3 K46
+ 0x8848072F, // 0065 GETMBR R18 R3 K47
+ 0x884C0730, // 0066 GETMBR R19 R3 K48
+ 0x7C3C0800, // 0067 CALL R15 4
+ 0x5840000C, // 0068 LDCONST R16 K12
+ 0x7C380400, // 0069 CALL R14 2
+ 0x88380131, // 006A GETMBR R14 R0 K49
+ 0x8C381D32, // 006B GETMET R14 R14 K50
+ 0x5C401800, // 006C MOVE R16 R12
+ 0x7C380400, // 006D CALL R14 2
+ 0x50380200, // 006E LDBOOL R14 1 0
+ 0x80041C00, // 006F RET 1 R14
})
)
);
@@ -743,22 +727,22 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Pake3, /* name */
/* K3 */ be_nested_str_weak(local_session_id),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(protocol_id),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake3_X20message),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K11 */ be_nested_str_weak(send_status_report),
- /* K12 */ be_const_int(1),
- /* K13 */ be_const_int(2),
- /* K14 */ be_nested_str_weak(matter),
- /* K15 */ be_nested_str_weak(Pake3),
- /* K16 */ be_nested_str_weak(parse),
- /* K17 */ be_nested_str_weak(raw),
- /* K18 */ be_nested_str_weak(app_payload_idx),
- /* K19 */ be_nested_str_weak(cA),
- /* K20 */ be_nested_str_weak(__spake_cA),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20invalid_X20cA_X20received),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20Pake3_X20message),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K10 */ be_nested_str_weak(send_status_report),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_const_int(2),
+ /* K13 */ be_nested_str_weak(matter),
+ /* K14 */ be_nested_str_weak(Pake3),
+ /* K15 */ be_nested_str_weak(parse),
+ /* K16 */ be_nested_str_weak(raw),
+ /* K17 */ be_nested_str_weak(app_payload_idx),
+ /* K18 */ be_nested_str_weak(cA),
+ /* K19 */ be_nested_str_weak(__spake_cA),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20invalid_X20cA_X20received),
+ /* K21 */ be_nested_str_weak(tasmota),
/* K22 */ be_nested_str_weak(rtc_utc),
/* K23 */ be_nested_str_weak(HKDF_SHA256),
/* K24 */ be_nested_str_weak(derive),
@@ -771,7 +755,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Pake3, /* name */
}),
be_str_weak(parse_Pake3),
&be_const_str_solidified,
- ( &(const binstruction[105]) { /* code */
+ ( &(const binstruction[101]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -783,100 +767,96 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Pake3, /* name */
0x74120002, // 0008 JMPT R4 #000C
0x88100305, // 0009 GETMBR R4 R1 K5
0x20100904, // 000A NE R4 R4 K4
- 0x78120012, // 000B JMPF R4 #001F
+ 0x78120010, // 000B JMPF R4 #001D
0xB8120C00, // 000C GETNGBL R4 K6
- 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x58140007, // 000D LDCONST R5 K7
0x58180008, // 000E LDCONST R6 K8
- 0x581C0009, // 000F LDCONST R7 K9
- 0x7C100600, // 0010 CALL R4 3
- 0xB8120C00, // 0011 GETNGBL R4 K6
- 0x8C100907, // 0012 GETMET R4 R4 K7
- 0x5818000A, // 0013 LDCONST R6 K10
- 0x581C0009, // 0014 LDCONST R7 K9
- 0x7C100600, // 0015 CALL R4 3
- 0x8C10010B, // 0016 GETMET R4 R0 K11
- 0x5C180200, // 0017 MOVE R6 R1
- 0x581C000C, // 0018 LDCONST R7 K12
- 0x58200004, // 0019 LDCONST R8 K4
- 0x5824000D, // 001A LDCONST R9 K13
- 0x50280000, // 001B LDBOOL R10 0 0
- 0x7C100C00, // 001C CALL R4 6
- 0x50100000, // 001D LDBOOL R4 0 0
- 0x80040800, // 001E RET 1 R4
- 0xB8121C00, // 001F GETNGBL R4 K14
+ 0x7C100400, // 000F CALL R4 2
+ 0xB8120C00, // 0010 GETNGBL R4 K6
+ 0x58140009, // 0011 LDCONST R5 K9
+ 0x58180008, // 0012 LDCONST R6 K8
+ 0x7C100400, // 0013 CALL R4 2
+ 0x8C10010A, // 0014 GETMET R4 R0 K10
+ 0x5C180200, // 0015 MOVE R6 R1
+ 0x581C000B, // 0016 LDCONST R7 K11
+ 0x58200004, // 0017 LDCONST R8 K4
+ 0x5824000C, // 0018 LDCONST R9 K12
+ 0x50280000, // 0019 LDBOOL R10 0 0
+ 0x7C100C00, // 001A CALL R4 6
+ 0x50100000, // 001B LDBOOL R4 0 0
+ 0x80040800, // 001C RET 1 R4
+ 0xB8121A00, // 001D GETNGBL R4 K13
+ 0x8C10090E, // 001E GETMET R4 R4 K14
+ 0x7C100200, // 001F CALL R4 1
0x8C10090F, // 0020 GETMET R4 R4 K15
- 0x7C100200, // 0021 CALL R4 1
- 0x8C100910, // 0022 GETMET R4 R4 K16
- 0x88180311, // 0023 GETMBR R6 R1 K17
- 0x881C0312, // 0024 GETMBR R7 R1 K18
- 0x7C100600, // 0025 CALL R4 3
- 0x88140913, // 0026 GETMBR R5 R4 K19
- 0x88180714, // 0027 GETMBR R6 R3 K20
- 0x20180A06, // 0028 NE R6 R5 R6
- 0x781A0012, // 0029 JMPF R6 #003D
- 0xB81A0C00, // 002A GETNGBL R6 K6
- 0x8C180D07, // 002B GETMET R6 R6 K7
- 0x58200015, // 002C LDCONST R8 K21
- 0x58240009, // 002D LDCONST R9 K9
- 0x7C180600, // 002E CALL R6 3
- 0xB81A0C00, // 002F GETNGBL R6 K6
- 0x8C180D07, // 0030 GETMET R6 R6 K7
- 0x5820000A, // 0031 LDCONST R8 K10
- 0x58240009, // 0032 LDCONST R9 K9
- 0x7C180600, // 0033 CALL R6 3
- 0x8C18010B, // 0034 GETMET R6 R0 K11
- 0x5C200200, // 0035 MOVE R8 R1
- 0x5824000C, // 0036 LDCONST R9 K12
- 0x58280004, // 0037 LDCONST R10 K4
- 0x582C000D, // 0038 LDCONST R11 K13
- 0x50300000, // 0039 LDBOOL R12 0 0
- 0x7C180C00, // 003A CALL R6 6
- 0x50180000, // 003B LDBOOL R6 0 0
- 0x80040C00, // 003C RET 1 R6
- 0xB81A0C00, // 003D GETNGBL R6 K6
- 0x8C180D16, // 003E GETMET R6 R6 K22
- 0x7C180200, // 003F CALL R6 1
- 0x8C1C0517, // 0040 GETMET R7 R2 K23
- 0x7C1C0200, // 0041 CALL R7 1
- 0x8C1C0F18, // 0042 GETMET R7 R7 K24
- 0x88240719, // 0043 GETMBR R9 R3 K25
- 0x60280015, // 0044 GETGBL R10 G21
- 0x7C280000, // 0045 CALL R10 0
- 0x602C0015, // 0046 GETGBL R11 G21
- 0x7C2C0000, // 0047 CALL R11 0
- 0x8C2C171A, // 0048 GETMET R11 R11 K26
- 0x8834011B, // 0049 GETMBR R13 R0 K27
- 0x7C2C0400, // 004A CALL R11 2
- 0x5432002F, // 004B LDINT R12 48
- 0x7C1C0A00, // 004C CALL R7 5
- 0x5422000E, // 004D LDINT R8 15
- 0x40220808, // 004E CONNECT R8 K4 R8
- 0x94200E08, // 004F GETIDX R8 R7 R8
- 0x5426000F, // 0050 LDINT R9 16
- 0x542A001E, // 0051 LDINT R10 31
- 0x4024120A, // 0052 CONNECT R9 R9 R10
- 0x94240E09, // 0053 GETIDX R9 R7 R9
- 0x542A001F, // 0054 LDINT R10 32
- 0x542E002E, // 0055 LDINT R11 47
- 0x4028140B, // 0056 CONNECT R10 R10 R11
- 0x94280E0A, // 0057 GETIDX R10 R7 R10
- 0x8C2C010B, // 0058 GETMET R11 R0 K11
- 0x5C340200, // 0059 MOVE R13 R1
- 0x58380004, // 005A LDCONST R14 K4
- 0x583C0004, // 005B LDCONST R15 K4
- 0x58400004, // 005C LDCONST R16 K4
- 0x50440000, // 005D LDBOOL R17 0 0
- 0x7C2C0C00, // 005E CALL R11 6
- 0x8C2C011C, // 005F GETMET R11 R0 K28
- 0x8834071D, // 0060 GETMBR R13 R3 K29
- 0x8838071E, // 0061 GETMBR R14 R3 K30
- 0x5C3C1000, // 0062 MOVE R15 R8
- 0x5C401200, // 0063 MOVE R16 R9
- 0x5C441400, // 0064 MOVE R17 R10
- 0x5C480C00, // 0065 MOVE R18 R6
- 0x7C2C0E00, // 0066 CALL R11 7
- 0x502C0200, // 0067 LDBOOL R11 1 0
- 0x80041600, // 0068 RET 1 R11
+ 0x88180310, // 0021 GETMBR R6 R1 K16
+ 0x881C0311, // 0022 GETMBR R7 R1 K17
+ 0x7C100600, // 0023 CALL R4 3
+ 0x88140912, // 0024 GETMBR R5 R4 K18
+ 0x88180713, // 0025 GETMBR R6 R3 K19
+ 0x20180A06, // 0026 NE R6 R5 R6
+ 0x781A0010, // 0027 JMPF R6 #0039
+ 0xB81A0C00, // 0028 GETNGBL R6 K6
+ 0x581C0014, // 0029 LDCONST R7 K20
+ 0x58200008, // 002A LDCONST R8 K8
+ 0x7C180400, // 002B CALL R6 2
+ 0xB81A0C00, // 002C GETNGBL R6 K6
+ 0x581C0009, // 002D LDCONST R7 K9
+ 0x58200008, // 002E LDCONST R8 K8
+ 0x7C180400, // 002F CALL R6 2
+ 0x8C18010A, // 0030 GETMET R6 R0 K10
+ 0x5C200200, // 0031 MOVE R8 R1
+ 0x5824000B, // 0032 LDCONST R9 K11
+ 0x58280004, // 0033 LDCONST R10 K4
+ 0x582C000C, // 0034 LDCONST R11 K12
+ 0x50300000, // 0035 LDBOOL R12 0 0
+ 0x7C180C00, // 0036 CALL R6 6
+ 0x50180000, // 0037 LDBOOL R6 0 0
+ 0x80040C00, // 0038 RET 1 R6
+ 0xB81A2A00, // 0039 GETNGBL R6 K21
+ 0x8C180D16, // 003A GETMET R6 R6 K22
+ 0x7C180200, // 003B CALL R6 1
+ 0x8C1C0517, // 003C GETMET R7 R2 K23
+ 0x7C1C0200, // 003D CALL R7 1
+ 0x8C1C0F18, // 003E GETMET R7 R7 K24
+ 0x88240719, // 003F GETMBR R9 R3 K25
+ 0x60280015, // 0040 GETGBL R10 G21
+ 0x7C280000, // 0041 CALL R10 0
+ 0x602C0015, // 0042 GETGBL R11 G21
+ 0x7C2C0000, // 0043 CALL R11 0
+ 0x8C2C171A, // 0044 GETMET R11 R11 K26
+ 0x8834011B, // 0045 GETMBR R13 R0 K27
+ 0x7C2C0400, // 0046 CALL R11 2
+ 0x5432002F, // 0047 LDINT R12 48
+ 0x7C1C0A00, // 0048 CALL R7 5
+ 0x5422000E, // 0049 LDINT R8 15
+ 0x40220808, // 004A CONNECT R8 K4 R8
+ 0x94200E08, // 004B GETIDX R8 R7 R8
+ 0x5426000F, // 004C LDINT R9 16
+ 0x542A001E, // 004D LDINT R10 31
+ 0x4024120A, // 004E CONNECT R9 R9 R10
+ 0x94240E09, // 004F GETIDX R9 R7 R9
+ 0x542A001F, // 0050 LDINT R10 32
+ 0x542E002E, // 0051 LDINT R11 47
+ 0x4028140B, // 0052 CONNECT R10 R10 R11
+ 0x94280E0A, // 0053 GETIDX R10 R7 R10
+ 0x8C2C010A, // 0054 GETMET R11 R0 K10
+ 0x5C340200, // 0055 MOVE R13 R1
+ 0x58380004, // 0056 LDCONST R14 K4
+ 0x583C0004, // 0057 LDCONST R15 K4
+ 0x58400004, // 0058 LDCONST R16 K4
+ 0x50440000, // 0059 LDBOOL R17 0 0
+ 0x7C2C0C00, // 005A CALL R11 6
+ 0x8C2C011C, // 005B GETMET R11 R0 K28
+ 0x8834071D, // 005C GETMBR R13 R3 K29
+ 0x8838071E, // 005D GETMBR R14 R3 K30
+ 0x5C3C1000, // 005E MOVE R15 R8
+ 0x5C401200, // 005F MOVE R16 R9
+ 0x5C441400, // 0060 MOVE R17 R10
+ 0x5C480C00, // 0061 MOVE R18 R6
+ 0x7C2C0E00, // 0062 CALL R11 7
+ 0x502C0200, // 0063 LDBOOL R11 1 0
+ 0x80041600, // 0064 RET 1 R11
})
)
);
@@ -903,58 +883,58 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma3, /* name */
/* K2 */ be_nested_str_weak(local_session_id),
/* K3 */ be_const_int(0),
/* K4 */ be_nested_str_weak(protocol_id),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(send_status_report),
- /* K10 */ be_const_int(1),
- /* K11 */ be_const_int(2),
- /* K12 */ be_nested_str_weak(session),
- /* K13 */ be_nested_str_weak(matter),
- /* K14 */ be_nested_str_weak(Sigma3),
- /* K15 */ be_nested_str_weak(parse),
- /* K16 */ be_nested_str_weak(raw),
- /* K17 */ be_nested_str_weak(app_payload_idx),
- /* K18 */ be_nested_str_weak(SHA256),
- /* K19 */ be_nested_str_weak(update),
- /* K20 */ be_nested_str_weak(__Msg1),
- /* K21 */ be_nested_str_weak(__Msg2),
- /* K22 */ be_nested_str_weak(out),
- /* K23 */ be_nested_str_weak(fromstring),
- /* K24 */ be_nested_str_weak(S3K_Info),
- /* K25 */ be_nested_str_weak(HKDF_SHA256),
- /* K26 */ be_nested_str_weak(derive),
- /* K27 */ be_nested_str_weak(shared_secret),
- /* K28 */ be_nested_str_weak(get_ipk_group_key),
- /* K29 */ be_nested_str_weak(TBEData3Encrypted),
- /* K30 */ be_const_int(2147483647),
- /* K31 */ be_nested_str_weak(AES_CCM),
- /* K32 */ be_nested_str_weak(TBEData3_Nonce),
- /* K33 */ be_nested_str_weak(decrypt),
- /* K34 */ be_nested_str_weak(tag),
- /* K35 */ be_nested_str_weak(MTR_X3A_X20Tag_X20don_X27t_X20match),
- /* K36 */ be_nested_str_weak(TLV),
- /* K37 */ be_nested_str_weak(findsubval),
- /* K38 */ be_nested_str_weak(findsub),
- /* K39 */ be_nested_str_weak(int),
- /* K40 */ be_nested_str_weak(peer_node_id),
- /* K41 */ be_nested_str_weak(int64),
- /* K42 */ be_nested_str_weak(fromu32),
- /* K43 */ be_nested_str_weak(tobytes),
- /* K44 */ be_nested_str_weak(Matter_TLV_struct),
- /* K45 */ be_nested_str_weak(add_TLV),
- /* K46 */ be_nested_str_weak(B1),
- /* K47 */ be_nested_str_weak(__initiator_pub),
- /* K48 */ be_nested_str_weak(__responder_pub),
- /* K49 */ be_nested_str_weak(tlv2raw),
- /* K50 */ be_nested_str_weak(EC_P256),
- /* K51 */ be_nested_str_weak(ecdsa_verify_sha256),
- /* K52 */ be_nested_str_weak(MTR_X3A_X20sigma3_tbs_X20does_X20not_X20have_X20a_X20valid_X20signature),
- /* K53 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X20Invalid_X20signature_X2C_X20trying_X20anyways),
- /* K54 */ be_nested_str_weak(MTR_X3A_X20Sigma3_X20verified_X2C_X20computing_X20new_X20keys),
- /* K55 */ be_nested_str_weak(Msg3),
- /* K56 */ be_nested_str_weak(SEKeys_Info),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K7 */ be_const_int(3),
+ /* K8 */ be_nested_str_weak(send_status_report),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_const_int(2),
+ /* K11 */ be_nested_str_weak(session),
+ /* K12 */ be_nested_str_weak(matter),
+ /* K13 */ be_nested_str_weak(Sigma3),
+ /* K14 */ be_nested_str_weak(parse),
+ /* K15 */ be_nested_str_weak(raw),
+ /* K16 */ be_nested_str_weak(app_payload_idx),
+ /* K17 */ be_nested_str_weak(SHA256),
+ /* K18 */ be_nested_str_weak(update),
+ /* K19 */ be_nested_str_weak(__Msg1),
+ /* K20 */ be_nested_str_weak(__Msg2),
+ /* K21 */ be_nested_str_weak(out),
+ /* K22 */ be_nested_str_weak(fromstring),
+ /* K23 */ be_nested_str_weak(S3K_Info),
+ /* K24 */ be_nested_str_weak(HKDF_SHA256),
+ /* K25 */ be_nested_str_weak(derive),
+ /* K26 */ be_nested_str_weak(shared_secret),
+ /* K27 */ be_nested_str_weak(get_ipk_group_key),
+ /* K28 */ be_nested_str_weak(TBEData3Encrypted),
+ /* K29 */ be_const_int(2147483647),
+ /* K30 */ be_nested_str_weak(AES_CCM),
+ /* K31 */ be_nested_str_weak(TBEData3_Nonce),
+ /* K32 */ be_nested_str_weak(decrypt),
+ /* K33 */ be_nested_str_weak(tag),
+ /* K34 */ be_nested_str_weak(MTR_X3A_X20Tag_X20don_X27t_X20match),
+ /* K35 */ be_nested_str_weak(TLV),
+ /* K36 */ be_nested_str_weak(findsubval),
+ /* K37 */ be_nested_str_weak(findsub),
+ /* K38 */ be_nested_str_weak(int),
+ /* K39 */ be_nested_str_weak(peer_node_id),
+ /* K40 */ be_nested_str_weak(int64),
+ /* K41 */ be_nested_str_weak(fromu32),
+ /* K42 */ be_nested_str_weak(tobytes),
+ /* K43 */ be_nested_str_weak(Matter_TLV_struct),
+ /* K44 */ be_nested_str_weak(add_TLV),
+ /* K45 */ be_nested_str_weak(B1),
+ /* K46 */ be_nested_str_weak(__initiator_pub),
+ /* K47 */ be_nested_str_weak(__responder_pub),
+ /* K48 */ be_nested_str_weak(tlv2raw),
+ /* K49 */ be_nested_str_weak(EC_P256),
+ /* K50 */ be_nested_str_weak(ecdsa_verify_sha256),
+ /* K51 */ be_nested_str_weak(MTR_X3A_X20sigma3_tbs_X20does_X20not_X20have_X20a_X20valid_X20signature),
+ /* K52 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X2A_X20Invalid_X20signature_X2C_X20trying_X20anyways),
+ /* K53 */ be_nested_str_weak(MTR_X3A_X20Sigma3_X20verified_X2C_X20computing_X20new_X20keys),
+ /* K54 */ be_nested_str_weak(Msg3),
+ /* K55 */ be_nested_str_weak(SEKeys_Info),
+ /* K56 */ be_nested_str_weak(tasmota),
/* K57 */ be_nested_str_weak(rtc_utc),
/* K58 */ be_nested_str_weak(close),
/* K59 */ be_nested_str_weak(set_keys),
@@ -967,7 +947,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma3, /* name */
}),
be_str_weak(parse_Sigma3),
&be_const_str_solidified,
- ( &(const binstruction[286]) { /* code */
+ ( &(const binstruction[280]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x54120031, // 0002 LDINT R4 50
@@ -978,282 +958,276 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma3, /* name */
0x740E0002, // 0007 JMPT R3 #000B
0x880C0304, // 0008 GETMBR R3 R1 K4
0x200C0703, // 0009 NE R3 R3 K3
- 0x780E000D, // 000A JMPF R3 #0019
+ 0x780E000C, // 000A JMPF R3 #0018
0xB80E0A00, // 000B GETNGBL R3 K5
- 0x8C0C0706, // 000C GETMET R3 R3 K6
+ 0x58100006, // 000C LDCONST R4 K6
0x58140007, // 000D LDCONST R5 K7
- 0x58180008, // 000E LDCONST R6 K8
- 0x7C0C0600, // 000F CALL R3 3
- 0x8C0C0109, // 0010 GETMET R3 R0 K9
- 0x5C140200, // 0011 MOVE R5 R1
- 0x5818000A, // 0012 LDCONST R6 K10
- 0x581C0003, // 0013 LDCONST R7 K3
- 0x5820000B, // 0014 LDCONST R8 K11
- 0x50240000, // 0015 LDBOOL R9 0 0
- 0x7C0C0C00, // 0016 CALL R3 6
- 0x500C0000, // 0017 LDBOOL R3 0 0
- 0x80040600, // 0018 RET 1 R3
- 0x880C030C, // 0019 GETMBR R3 R1 K12
- 0xB8121A00, // 001A GETNGBL R4 K13
- 0x8C10090E, // 001B GETMET R4 R4 K14
- 0x7C100200, // 001C CALL R4 1
- 0x8C10090F, // 001D GETMET R4 R4 K15
- 0x88180310, // 001E GETMBR R6 R1 K16
- 0x881C0311, // 001F GETMBR R7 R1 K17
- 0x7C100600, // 0020 CALL R4 3
- 0x8C140512, // 0021 GETMET R5 R2 K18
- 0x7C140200, // 0022 CALL R5 1
- 0x8C140B13, // 0023 GETMET R5 R5 K19
- 0x881C0714, // 0024 GETMBR R7 R3 K20
- 0x7C140400, // 0025 CALL R5 2
- 0x8C140B13, // 0026 GETMET R5 R5 K19
- 0x881C0715, // 0027 GETMBR R7 R3 K21
- 0x7C140400, // 0028 CALL R5 2
- 0x8C140B16, // 0029 GETMET R5 R5 K22
- 0x7C140200, // 002A CALL R5 1
- 0x60180015, // 002B GETGBL R6 G21
- 0x7C180000, // 002C CALL R6 0
- 0x8C180D17, // 002D GETMET R6 R6 K23
- 0x88200118, // 002E GETMBR R8 R0 K24
- 0x7C180400, // 002F CALL R6 2
- 0x8C1C0519, // 0030 GETMET R7 R2 K25
- 0x7C1C0200, // 0031 CALL R7 1
- 0x8C1C0F1A, // 0032 GETMET R7 R7 K26
- 0x8824071B, // 0033 GETMBR R9 R3 K27
- 0x8C28071C, // 0034 GETMET R10 R3 K28
- 0x7C280200, // 0035 CALL R10 1
- 0x00281405, // 0036 ADD R10 R10 R5
- 0x5C2C0C00, // 0037 MOVE R11 R6
- 0x5432000F, // 0038 LDINT R12 16
- 0x7C1C0A00, // 0039 CALL R7 5
- 0x5421FFEE, // 003A LDINT R8 -17
- 0x40220608, // 003B CONNECT R8 K3 R8
- 0x8824091D, // 003C GETMBR R9 R4 K29
- 0x94201208, // 003D GETIDX R8 R9 R8
- 0x5429FFEF, // 003E LDINT R10 -16
- 0x4028151E, // 003F CONNECT R10 R10 K30
- 0x882C091D, // 0040 GETMBR R11 R4 K29
- 0x9424160A, // 0041 GETIDX R9 R11 R10
- 0x8C30051F, // 0042 GETMET R12 R2 K31
- 0x5C380E00, // 0043 MOVE R14 R7
- 0x603C0015, // 0044 GETGBL R15 G21
- 0x7C3C0000, // 0045 CALL R15 0
- 0x8C3C1F17, // 0046 GETMET R15 R15 K23
- 0x88440120, // 0047 GETMBR R17 R0 K32
- 0x7C3C0400, // 0048 CALL R15 2
- 0x60400015, // 0049 GETGBL R16 G21
- 0x7C400000, // 004A CALL R16 0
- 0x6044000C, // 004B GETGBL R17 G12
- 0x5C481000, // 004C MOVE R18 R8
- 0x7C440200, // 004D CALL R17 1
- 0x544A000F, // 004E LDINT R18 16
- 0x7C300C00, // 004F CALL R12 6
- 0x5C281800, // 0050 MOVE R10 R12
- 0x8C301521, // 0051 GETMET R12 R10 K33
- 0x5C381000, // 0052 MOVE R14 R8
- 0x7C300400, // 0053 CALL R12 2
- 0x5C2C1800, // 0054 MOVE R11 R12
- 0x8C301522, // 0055 GETMET R12 R10 K34
- 0x7C300200, // 0056 CALL R12 1
- 0x20341809, // 0057 NE R13 R12 R9
- 0x78360012, // 0058 JMPF R13 #006C
- 0xB8360A00, // 0059 GETNGBL R13 K5
- 0x8C341B06, // 005A GETMET R13 R13 K6
- 0x583C0023, // 005B LDCONST R15 K35
- 0x58400008, // 005C LDCONST R16 K8
- 0x7C340600, // 005D CALL R13 3
- 0xB8360A00, // 005E GETNGBL R13 K5
- 0x8C341B06, // 005F GETMET R13 R13 K6
- 0x583C0007, // 0060 LDCONST R15 K7
- 0x58400008, // 0061 LDCONST R16 K8
- 0x7C340600, // 0062 CALL R13 3
- 0x8C340109, // 0063 GETMET R13 R0 K9
- 0x5C3C0200, // 0064 MOVE R15 R1
- 0x5840000A, // 0065 LDCONST R16 K10
- 0x58440003, // 0066 LDCONST R17 K3
- 0x5848000B, // 0067 LDCONST R18 K11
- 0x504C0000, // 0068 LDBOOL R19 0 0
- 0x7C340C00, // 0069 CALL R13 6
- 0x50340000, // 006A LDBOOL R13 0 0
- 0x80041A00, // 006B RET 1 R13
- 0xB8361A00, // 006C GETNGBL R13 K13
- 0x88341B24, // 006D GETMBR R13 R13 K36
- 0x8C341B0F, // 006E GETMET R13 R13 K15
- 0x5C3C1600, // 006F MOVE R15 R11
- 0x7C340400, // 0070 CALL R13 2
- 0x8C381B25, // 0071 GETMET R14 R13 K37
- 0x5840000A, // 0072 LDCONST R16 K10
- 0x7C380400, // 0073 CALL R14 2
- 0x8C3C1B25, // 0074 GETMET R15 R13 K37
- 0x5844000B, // 0075 LDCONST R17 K11
- 0x7C3C0400, // 0076 CALL R15 2
- 0x8C401B25, // 0077 GETMET R16 R13 K37
- 0x58480008, // 0078 LDCONST R18 K8
- 0x7C400400, // 0079 CALL R16 2
- 0xB8461A00, // 007A GETNGBL R17 K13
- 0x88442324, // 007B GETMBR R17 R17 K36
- 0x8C44230F, // 007C GETMET R17 R17 K15
- 0x5C4C1C00, // 007D MOVE R19 R14
- 0x7C440400, // 007E CALL R17 2
- 0x8C482325, // 007F GETMET R18 R17 K37
- 0x54520008, // 0080 LDINT R20 9
- 0x7C480400, // 0081 CALL R18 2
- 0x8C4C2326, // 0082 GETMET R19 R17 K38
- 0x54560005, // 0083 LDINT R21 6
- 0x7C4C0400, // 0084 CALL R19 2
- 0x8C502725, // 0085 GETMET R20 R19 K37
- 0x545A0010, // 0086 LDINT R22 17
- 0x7C500400, // 0087 CALL R20 2
- 0x60540004, // 0088 GETGBL R21 G4
- 0x5C582800, // 0089 MOVE R22 R20
- 0x7C540200, // 008A CALL R21 1
- 0x1C542B27, // 008B EQ R21 R21 K39
- 0x78560007, // 008C JMPF R21 #0095
- 0xB8565200, // 008D GETNGBL R21 K41
+ 0x7C0C0400, // 000E CALL R3 2
+ 0x8C0C0108, // 000F GETMET R3 R0 K8
+ 0x5C140200, // 0010 MOVE R5 R1
+ 0x58180009, // 0011 LDCONST R6 K9
+ 0x581C0003, // 0012 LDCONST R7 K3
+ 0x5820000A, // 0013 LDCONST R8 K10
+ 0x50240000, // 0014 LDBOOL R9 0 0
+ 0x7C0C0C00, // 0015 CALL R3 6
+ 0x500C0000, // 0016 LDBOOL R3 0 0
+ 0x80040600, // 0017 RET 1 R3
+ 0x880C030B, // 0018 GETMBR R3 R1 K11
+ 0xB8121800, // 0019 GETNGBL R4 K12
+ 0x8C10090D, // 001A GETMET R4 R4 K13
+ 0x7C100200, // 001B CALL R4 1
+ 0x8C10090E, // 001C GETMET R4 R4 K14
+ 0x8818030F, // 001D GETMBR R6 R1 K15
+ 0x881C0310, // 001E GETMBR R7 R1 K16
+ 0x7C100600, // 001F CALL R4 3
+ 0x8C140511, // 0020 GETMET R5 R2 K17
+ 0x7C140200, // 0021 CALL R5 1
+ 0x8C140B12, // 0022 GETMET R5 R5 K18
+ 0x881C0713, // 0023 GETMBR R7 R3 K19
+ 0x7C140400, // 0024 CALL R5 2
+ 0x8C140B12, // 0025 GETMET R5 R5 K18
+ 0x881C0714, // 0026 GETMBR R7 R3 K20
+ 0x7C140400, // 0027 CALL R5 2
+ 0x8C140B15, // 0028 GETMET R5 R5 K21
+ 0x7C140200, // 0029 CALL R5 1
+ 0x60180015, // 002A GETGBL R6 G21
+ 0x7C180000, // 002B CALL R6 0
+ 0x8C180D16, // 002C GETMET R6 R6 K22
+ 0x88200117, // 002D GETMBR R8 R0 K23
+ 0x7C180400, // 002E CALL R6 2
+ 0x8C1C0518, // 002F GETMET R7 R2 K24
+ 0x7C1C0200, // 0030 CALL R7 1
+ 0x8C1C0F19, // 0031 GETMET R7 R7 K25
+ 0x8824071A, // 0032 GETMBR R9 R3 K26
+ 0x8C28071B, // 0033 GETMET R10 R3 K27
+ 0x7C280200, // 0034 CALL R10 1
+ 0x00281405, // 0035 ADD R10 R10 R5
+ 0x5C2C0C00, // 0036 MOVE R11 R6
+ 0x5432000F, // 0037 LDINT R12 16
+ 0x7C1C0A00, // 0038 CALL R7 5
+ 0x5421FFEE, // 0039 LDINT R8 -17
+ 0x40220608, // 003A CONNECT R8 K3 R8
+ 0x8824091C, // 003B GETMBR R9 R4 K28
+ 0x94201208, // 003C GETIDX R8 R9 R8
+ 0x5429FFEF, // 003D LDINT R10 -16
+ 0x4028151D, // 003E CONNECT R10 R10 K29
+ 0x882C091C, // 003F GETMBR R11 R4 K28
+ 0x9424160A, // 0040 GETIDX R9 R11 R10
+ 0x8C30051E, // 0041 GETMET R12 R2 K30
+ 0x5C380E00, // 0042 MOVE R14 R7
+ 0x603C0015, // 0043 GETGBL R15 G21
+ 0x7C3C0000, // 0044 CALL R15 0
+ 0x8C3C1F16, // 0045 GETMET R15 R15 K22
+ 0x8844011F, // 0046 GETMBR R17 R0 K31
+ 0x7C3C0400, // 0047 CALL R15 2
+ 0x60400015, // 0048 GETGBL R16 G21
+ 0x7C400000, // 0049 CALL R16 0
+ 0x6044000C, // 004A GETGBL R17 G12
+ 0x5C481000, // 004B MOVE R18 R8
+ 0x7C440200, // 004C CALL R17 1
+ 0x544A000F, // 004D LDINT R18 16
+ 0x7C300C00, // 004E CALL R12 6
+ 0x5C281800, // 004F MOVE R10 R12
+ 0x8C301520, // 0050 GETMET R12 R10 K32
+ 0x5C381000, // 0051 MOVE R14 R8
+ 0x7C300400, // 0052 CALL R12 2
+ 0x5C2C1800, // 0053 MOVE R11 R12
+ 0x8C301521, // 0054 GETMET R12 R10 K33
+ 0x7C300200, // 0055 CALL R12 1
+ 0x20341809, // 0056 NE R13 R12 R9
+ 0x78360010, // 0057 JMPF R13 #0069
+ 0xB8360A00, // 0058 GETNGBL R13 K5
+ 0x58380022, // 0059 LDCONST R14 K34
+ 0x583C0007, // 005A LDCONST R15 K7
+ 0x7C340400, // 005B CALL R13 2
+ 0xB8360A00, // 005C GETNGBL R13 K5
+ 0x58380006, // 005D LDCONST R14 K6
+ 0x583C0007, // 005E LDCONST R15 K7
+ 0x7C340400, // 005F CALL R13 2
+ 0x8C340108, // 0060 GETMET R13 R0 K8
+ 0x5C3C0200, // 0061 MOVE R15 R1
+ 0x58400009, // 0062 LDCONST R16 K9
+ 0x58440003, // 0063 LDCONST R17 K3
+ 0x5848000A, // 0064 LDCONST R18 K10
+ 0x504C0000, // 0065 LDBOOL R19 0 0
+ 0x7C340C00, // 0066 CALL R13 6
+ 0x50340000, // 0067 LDBOOL R13 0 0
+ 0x80041A00, // 0068 RET 1 R13
+ 0xB8361800, // 0069 GETNGBL R13 K12
+ 0x88341B23, // 006A GETMBR R13 R13 K35
+ 0x8C341B0E, // 006B GETMET R13 R13 K14
+ 0x5C3C1600, // 006C MOVE R15 R11
+ 0x7C340400, // 006D CALL R13 2
+ 0x8C381B24, // 006E GETMET R14 R13 K36
+ 0x58400009, // 006F LDCONST R16 K9
+ 0x7C380400, // 0070 CALL R14 2
+ 0x8C3C1B24, // 0071 GETMET R15 R13 K36
+ 0x5844000A, // 0072 LDCONST R17 K10
+ 0x7C3C0400, // 0073 CALL R15 2
+ 0x8C401B24, // 0074 GETMET R16 R13 K36
+ 0x58480007, // 0075 LDCONST R18 K7
+ 0x7C400400, // 0076 CALL R16 2
+ 0xB8461800, // 0077 GETNGBL R17 K12
+ 0x88442323, // 0078 GETMBR R17 R17 K35
+ 0x8C44230E, // 0079 GETMET R17 R17 K14
+ 0x5C4C1C00, // 007A MOVE R19 R14
+ 0x7C440400, // 007B CALL R17 2
+ 0x8C482324, // 007C GETMET R18 R17 K36
+ 0x54520008, // 007D LDINT R20 9
+ 0x7C480400, // 007E CALL R18 2
+ 0x8C4C2325, // 007F GETMET R19 R17 K37
+ 0x54560005, // 0080 LDINT R21 6
+ 0x7C4C0400, // 0081 CALL R19 2
+ 0x8C502724, // 0082 GETMET R20 R19 K36
+ 0x545A0010, // 0083 LDINT R22 17
+ 0x7C500400, // 0084 CALL R20 2
+ 0x60540004, // 0085 GETGBL R21 G4
+ 0x5C582800, // 0086 MOVE R22 R20
+ 0x7C540200, // 0087 CALL R21 1
+ 0x1C542B26, // 0088 EQ R21 R21 K38
+ 0x78560007, // 0089 JMPF R21 #0092
+ 0xB8565000, // 008A GETNGBL R21 K40
+ 0x8C542B29, // 008B GETMET R21 R21 K41
+ 0x5C5C2800, // 008C MOVE R23 R20
+ 0x7C540400, // 008D CALL R21 2
0x8C542B2A, // 008E GETMET R21 R21 K42
- 0x5C5C2800, // 008F MOVE R23 R20
- 0x7C540400, // 0090 CALL R21 2
- 0x8C542B2B, // 0091 GETMET R21 R21 K43
- 0x7C540200, // 0092 CALL R21 1
- 0x900E5015, // 0093 SETMBR R3 K40 R21
- 0x70020002, // 0094 JMP #0098
- 0x8C54292B, // 0095 GETMET R21 R20 K43
- 0x7C540200, // 0096 CALL R21 1
- 0x900E5015, // 0097 SETMBR R3 K40 R21
- 0xB8561A00, // 0098 GETNGBL R21 K13
- 0x88542B24, // 0099 GETMBR R21 R21 K36
- 0x8C542B2C, // 009A GETMET R21 R21 K44
- 0x7C540200, // 009B CALL R21 1
- 0x8C582B2D, // 009C GETMET R22 R21 K45
- 0x5860000A, // 009D LDCONST R24 K10
- 0xB8661A00, // 009E GETNGBL R25 K13
- 0x88643324, // 009F GETMBR R25 R25 K36
- 0x8864332E, // 00A0 GETMBR R25 R25 K46
- 0x5C681C00, // 00A1 MOVE R26 R14
- 0x7C580800, // 00A2 CALL R22 4
- 0x8C582B2D, // 00A3 GETMET R22 R21 K45
- 0x5860000B, // 00A4 LDCONST R24 K11
- 0xB8661A00, // 00A5 GETNGBL R25 K13
- 0x88643324, // 00A6 GETMBR R25 R25 K36
- 0x8864332E, // 00A7 GETMBR R25 R25 K46
- 0x5C681E00, // 00A8 MOVE R26 R15
- 0x7C580800, // 00A9 CALL R22 4
- 0x8C582B2D, // 00AA GETMET R22 R21 K45
- 0x58600008, // 00AB LDCONST R24 K8
- 0xB8661A00, // 00AC GETNGBL R25 K13
- 0x88643324, // 00AD GETMBR R25 R25 K36
- 0x8864332E, // 00AE GETMBR R25 R25 K46
- 0x8868072F, // 00AF GETMBR R26 R3 K47
- 0x7C580800, // 00B0 CALL R22 4
- 0x8C582B2D, // 00B1 GETMET R22 R21 K45
- 0x54620003, // 00B2 LDINT R24 4
- 0xB8661A00, // 00B3 GETNGBL R25 K13
- 0x88643324, // 00B4 GETMBR R25 R25 K36
- 0x8864332E, // 00B5 GETMBR R25 R25 K46
- 0x88680730, // 00B6 GETMBR R26 R3 K48
- 0x7C580800, // 00B7 CALL R22 4
- 0x8C582B31, // 00B8 GETMET R22 R21 K49
- 0x7C580200, // 00B9 CALL R22 1
- 0x8C5C0532, // 00BA GETMET R23 R2 K50
- 0x7C5C0200, // 00BB CALL R23 1
- 0x8C5C2F33, // 00BC GETMET R23 R23 K51
- 0x5C642400, // 00BD MOVE R25 R18
- 0x5C682C00, // 00BE MOVE R26 R22
- 0x5C6C2000, // 00BF MOVE R27 R16
- 0x7C5C0800, // 00C0 CALL R23 4
- 0x5C602E00, // 00C1 MOVE R24 R23
- 0x7462000A, // 00C2 JMPT R24 #00CE
- 0xB8620A00, // 00C3 GETNGBL R24 K5
- 0x8C603106, // 00C4 GETMET R24 R24 K6
- 0x58680034, // 00C5 LDCONST R26 K52
- 0x586C000B, // 00C6 LDCONST R27 K11
- 0x7C600600, // 00C7 CALL R24 3
- 0xB8620A00, // 00C8 GETNGBL R24 K5
- 0x8C603106, // 00C9 GETMET R24 R24 K6
- 0x58680035, // 00CA LDCONST R26 K53
- 0x586C000B, // 00CB LDCONST R27 K11
- 0x7C600600, // 00CC CALL R24 3
- 0x70020004, // 00CD JMP #00D3
- 0xB8620A00, // 00CE GETNGBL R24 K5
- 0x8C603106, // 00CF GETMET R24 R24 K6
- 0x58680036, // 00D0 LDCONST R26 K54
- 0x586C0008, // 00D1 LDCONST R27 K8
- 0x7C600600, // 00D2 CALL R24 3
- 0x8C600512, // 00D3 GETMET R24 R2 K18
- 0x7C600200, // 00D4 CALL R24 1
- 0x8C603113, // 00D5 GETMET R24 R24 K19
- 0x88680714, // 00D6 GETMBR R26 R3 K20
+ 0x7C540200, // 008F CALL R21 1
+ 0x900E4E15, // 0090 SETMBR R3 K39 R21
+ 0x70020002, // 0091 JMP #0095
+ 0x8C54292A, // 0092 GETMET R21 R20 K42
+ 0x7C540200, // 0093 CALL R21 1
+ 0x900E4E15, // 0094 SETMBR R3 K39 R21
+ 0xB8561800, // 0095 GETNGBL R21 K12
+ 0x88542B23, // 0096 GETMBR R21 R21 K35
+ 0x8C542B2B, // 0097 GETMET R21 R21 K43
+ 0x7C540200, // 0098 CALL R21 1
+ 0x8C582B2C, // 0099 GETMET R22 R21 K44
+ 0x58600009, // 009A LDCONST R24 K9
+ 0xB8661800, // 009B GETNGBL R25 K12
+ 0x88643323, // 009C GETMBR R25 R25 K35
+ 0x8864332D, // 009D GETMBR R25 R25 K45
+ 0x5C681C00, // 009E MOVE R26 R14
+ 0x7C580800, // 009F CALL R22 4
+ 0x8C582B2C, // 00A0 GETMET R22 R21 K44
+ 0x5860000A, // 00A1 LDCONST R24 K10
+ 0xB8661800, // 00A2 GETNGBL R25 K12
+ 0x88643323, // 00A3 GETMBR R25 R25 K35
+ 0x8864332D, // 00A4 GETMBR R25 R25 K45
+ 0x5C681E00, // 00A5 MOVE R26 R15
+ 0x7C580800, // 00A6 CALL R22 4
+ 0x8C582B2C, // 00A7 GETMET R22 R21 K44
+ 0x58600007, // 00A8 LDCONST R24 K7
+ 0xB8661800, // 00A9 GETNGBL R25 K12
+ 0x88643323, // 00AA GETMBR R25 R25 K35
+ 0x8864332D, // 00AB GETMBR R25 R25 K45
+ 0x8868072E, // 00AC GETMBR R26 R3 K46
+ 0x7C580800, // 00AD CALL R22 4
+ 0x8C582B2C, // 00AE GETMET R22 R21 K44
+ 0x54620003, // 00AF LDINT R24 4
+ 0xB8661800, // 00B0 GETNGBL R25 K12
+ 0x88643323, // 00B1 GETMBR R25 R25 K35
+ 0x8864332D, // 00B2 GETMBR R25 R25 K45
+ 0x8868072F, // 00B3 GETMBR R26 R3 K47
+ 0x7C580800, // 00B4 CALL R22 4
+ 0x8C582B30, // 00B5 GETMET R22 R21 K48
+ 0x7C580200, // 00B6 CALL R22 1
+ 0x8C5C0531, // 00B7 GETMET R23 R2 K49
+ 0x7C5C0200, // 00B8 CALL R23 1
+ 0x8C5C2F32, // 00B9 GETMET R23 R23 K50
+ 0x5C642400, // 00BA MOVE R25 R18
+ 0x5C682C00, // 00BB MOVE R26 R22
+ 0x5C6C2000, // 00BC MOVE R27 R16
+ 0x7C5C0800, // 00BD CALL R23 4
+ 0x5C602E00, // 00BE MOVE R24 R23
+ 0x74620008, // 00BF JMPT R24 #00C9
+ 0xB8620A00, // 00C0 GETNGBL R24 K5
+ 0x58640033, // 00C1 LDCONST R25 K51
+ 0x5868000A, // 00C2 LDCONST R26 K10
+ 0x7C600400, // 00C3 CALL R24 2
+ 0xB8620A00, // 00C4 GETNGBL R24 K5
+ 0x58640034, // 00C5 LDCONST R25 K52
+ 0x5868000A, // 00C6 LDCONST R26 K10
+ 0x7C600400, // 00C7 CALL R24 2
+ 0x70020003, // 00C8 JMP #00CD
+ 0xB8620A00, // 00C9 GETNGBL R24 K5
+ 0x58640035, // 00CA LDCONST R25 K53
+ 0x58680007, // 00CB LDCONST R26 K7
+ 0x7C600400, // 00CC CALL R24 2
+ 0x8C600511, // 00CD GETMET R24 R2 K17
+ 0x7C600200, // 00CE CALL R24 1
+ 0x8C603112, // 00CF GETMET R24 R24 K18
+ 0x88680713, // 00D0 GETMBR R26 R3 K19
+ 0x7C600400, // 00D1 CALL R24 2
+ 0x8C603112, // 00D2 GETMET R24 R24 K18
+ 0x88680714, // 00D3 GETMBR R26 R3 K20
+ 0x7C600400, // 00D4 CALL R24 2
+ 0x8C603112, // 00D5 GETMET R24 R24 K18
+ 0x88680936, // 00D6 GETMBR R26 R4 K54
0x7C600400, // 00D7 CALL R24 2
- 0x8C603113, // 00D8 GETMET R24 R24 K19
- 0x88680715, // 00D9 GETMBR R26 R3 K21
- 0x7C600400, // 00DA CALL R24 2
- 0x8C603113, // 00DB GETMET R24 R24 K19
- 0x88680937, // 00DC GETMBR R26 R4 K55
- 0x7C600400, // 00DD CALL R24 2
- 0x8C603116, // 00DE GETMET R24 R24 K22
- 0x7C600200, // 00DF CALL R24 1
- 0x5C143000, // 00E0 MOVE R5 R24
- 0x4C600000, // 00E1 LDNIL R24
- 0x900E2818, // 00E2 SETMBR R3 K20 R24
- 0x4C600000, // 00E3 LDNIL R24
- 0x900E2A18, // 00E4 SETMBR R3 K21 R24
- 0x8C600519, // 00E5 GETMET R24 R2 K25
- 0x7C600200, // 00E6 CALL R24 1
- 0x8C60311A, // 00E7 GETMET R24 R24 K26
- 0x8868071B, // 00E8 GETMBR R26 R3 K27
- 0x8C6C071C, // 00E9 GETMET R27 R3 K28
- 0x7C6C0200, // 00EA CALL R27 1
- 0x006C3605, // 00EB ADD R27 R27 R5
- 0x60700015, // 00EC GETGBL R28 G21
- 0x7C700000, // 00ED CALL R28 0
- 0x8C703917, // 00EE GETMET R28 R28 K23
- 0x88780138, // 00EF GETMBR R30 R0 K56
- 0x7C700400, // 00F0 CALL R28 2
- 0x5476002F, // 00F1 LDINT R29 48
- 0x7C600A00, // 00F2 CALL R24 5
- 0x5466000E, // 00F3 LDINT R25 15
- 0x40660619, // 00F4 CONNECT R25 K3 R25
- 0x94643019, // 00F5 GETIDX R25 R24 R25
- 0x546A000F, // 00F6 LDINT R26 16
- 0x546E001E, // 00F7 LDINT R27 31
- 0x4068341B, // 00F8 CONNECT R26 R26 R27
- 0x9468301A, // 00F9 GETIDX R26 R24 R26
- 0x546E001F, // 00FA LDINT R27 32
- 0x5472002E, // 00FB LDINT R28 47
- 0x406C361C, // 00FC CONNECT R27 R27 R28
- 0x946C301B, // 00FD GETIDX R27 R24 R27
- 0xB8720A00, // 00FE GETNGBL R28 K5
- 0x8C703939, // 00FF GETMET R28 R28 K57
- 0x7C700200, // 0100 CALL R28 1
- 0x8C740109, // 0101 GETMET R29 R0 K9
- 0x5C7C0200, // 0102 MOVE R31 R1
- 0x58800003, // 0103 LDCONST R32 K3
- 0x58840003, // 0104 LDCONST R33 K3
- 0x58880003, // 0105 LDCONST R34 K3
- 0x508C0200, // 0106 LDBOOL R35 1 0
- 0x7C740C00, // 0107 CALL R29 6
- 0x8C74073A, // 0108 GETMET R29 R3 K58
- 0x7C740200, // 0109 CALL R29 1
- 0x8C74073B, // 010A GETMET R29 R3 K59
- 0x5C7C3200, // 010B MOVE R31 R25
- 0x5C803400, // 010C MOVE R32 R26
- 0x5C843600, // 010D MOVE R33 R27
- 0x5C883800, // 010E MOVE R34 R28
- 0x7C740A00, // 010F CALL R29 5
- 0x900E7903, // 0110 SETMBR R3 K60 K3
- 0x8C74073D, // 0111 GETMET R29 R3 K61
- 0x7C740200, // 0112 CALL R29 1
- 0x8C74073E, // 0113 GETMET R29 R3 K62
- 0x507C0200, // 0114 LDBOOL R31 1 0
- 0x7C740400, // 0115 CALL R29 2
- 0x8C74073F, // 0116 GETMET R29 R3 K63
- 0x7C740200, // 0117 CALL R29 1
- 0x8C740740, // 0118 GETMET R29 R3 K64
- 0x7C740200, // 0119 CALL R29 1
- 0x8C740741, // 011A GETMET R29 R3 K65
- 0x7C740200, // 011B CALL R29 1
- 0x50740200, // 011C LDBOOL R29 1 0
- 0x80043A00, // 011D RET 1 R29
+ 0x8C603115, // 00D8 GETMET R24 R24 K21
+ 0x7C600200, // 00D9 CALL R24 1
+ 0x5C143000, // 00DA MOVE R5 R24
+ 0x4C600000, // 00DB LDNIL R24
+ 0x900E2618, // 00DC SETMBR R3 K19 R24
+ 0x4C600000, // 00DD LDNIL R24
+ 0x900E2818, // 00DE SETMBR R3 K20 R24
+ 0x8C600518, // 00DF GETMET R24 R2 K24
+ 0x7C600200, // 00E0 CALL R24 1
+ 0x8C603119, // 00E1 GETMET R24 R24 K25
+ 0x8868071A, // 00E2 GETMBR R26 R3 K26
+ 0x8C6C071B, // 00E3 GETMET R27 R3 K27
+ 0x7C6C0200, // 00E4 CALL R27 1
+ 0x006C3605, // 00E5 ADD R27 R27 R5
+ 0x60700015, // 00E6 GETGBL R28 G21
+ 0x7C700000, // 00E7 CALL R28 0
+ 0x8C703916, // 00E8 GETMET R28 R28 K22
+ 0x88780137, // 00E9 GETMBR R30 R0 K55
+ 0x7C700400, // 00EA CALL R28 2
+ 0x5476002F, // 00EB LDINT R29 48
+ 0x7C600A00, // 00EC CALL R24 5
+ 0x5466000E, // 00ED LDINT R25 15
+ 0x40660619, // 00EE CONNECT R25 K3 R25
+ 0x94643019, // 00EF GETIDX R25 R24 R25
+ 0x546A000F, // 00F0 LDINT R26 16
+ 0x546E001E, // 00F1 LDINT R27 31
+ 0x4068341B, // 00F2 CONNECT R26 R26 R27
+ 0x9468301A, // 00F3 GETIDX R26 R24 R26
+ 0x546E001F, // 00F4 LDINT R27 32
+ 0x5472002E, // 00F5 LDINT R28 47
+ 0x406C361C, // 00F6 CONNECT R27 R27 R28
+ 0x946C301B, // 00F7 GETIDX R27 R24 R27
+ 0xB8727000, // 00F8 GETNGBL R28 K56
+ 0x8C703939, // 00F9 GETMET R28 R28 K57
+ 0x7C700200, // 00FA CALL R28 1
+ 0x8C740108, // 00FB GETMET R29 R0 K8
+ 0x5C7C0200, // 00FC MOVE R31 R1
+ 0x58800003, // 00FD LDCONST R32 K3
+ 0x58840003, // 00FE LDCONST R33 K3
+ 0x58880003, // 00FF LDCONST R34 K3
+ 0x508C0200, // 0100 LDBOOL R35 1 0
+ 0x7C740C00, // 0101 CALL R29 6
+ 0x8C74073A, // 0102 GETMET R29 R3 K58
+ 0x7C740200, // 0103 CALL R29 1
+ 0x8C74073B, // 0104 GETMET R29 R3 K59
+ 0x5C7C3200, // 0105 MOVE R31 R25
+ 0x5C803400, // 0106 MOVE R32 R26
+ 0x5C843600, // 0107 MOVE R33 R27
+ 0x5C883800, // 0108 MOVE R34 R28
+ 0x7C740A00, // 0109 CALL R29 5
+ 0x900E7903, // 010A SETMBR R3 K60 K3
+ 0x8C74073D, // 010B GETMET R29 R3 K61
+ 0x7C740200, // 010C CALL R29 1
+ 0x8C74073E, // 010D GETMET R29 R3 K62
+ 0x507C0200, // 010E LDBOOL R31 1 0
+ 0x7C740400, // 010F CALL R29 2
+ 0x8C74073F, // 0110 GETMET R29 R3 K63
+ 0x7C740200, // 0111 CALL R29 1
+ 0x8C740740, // 0112 GETMET R29 R3 K64
+ 0x7C740200, // 0113 CALL R29 1
+ 0x8C740741, // 0114 GETMET R29 R3 K65
+ 0x7C740200, // 0115 CALL R29 1
+ 0x50740200, // 0116 LDBOOL R29 1 0
+ 0x80043A00, // 0117 RET 1 R29
})
)
);
@@ -1266,7 +1240,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma3, /* name */
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_process_incoming, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1274,115 +1248,112 @@ be_local_closure(class_Matter_Commisioning_Context_process_incoming, /* name *
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
+ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(device),
/* K1 */ be_nested_str_weak(is_commissioning_open),
/* K2 */ be_nested_str_weak(opcode),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(log),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(parse_PBKDFParamRequest),
- /* K8 */ be_nested_str_weak(parse_Pake1),
- /* K9 */ be_nested_str_weak(parse_Pake3),
- /* K10 */ be_nested_str_weak(parse_Sigma1),
- /* K11 */ be_nested_str_weak(parse_Sigma3),
- /* K12 */ be_nested_str_weak(parse_StatusReport),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28secure_X20channel_X29_X20_X2502X),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20commissioning_X20not_X20open),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(parse_PBKDFParamRequest),
+ /* K7 */ be_nested_str_weak(parse_Pake1),
+ /* K8 */ be_nested_str_weak(parse_Pake3),
+ /* K9 */ be_nested_str_weak(parse_Sigma1),
+ /* K10 */ be_nested_str_weak(parse_Sigma3),
+ /* K11 */ be_nested_str_weak(parse_StatusReport),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28secure_X20channel_X29_X20_X2502X),
}),
be_str_weak(process_incoming),
&be_const_str_solidified,
- ( &(const binstruction[90]) { /* code */
+ ( &(const binstruction[88]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x7C080200, // 0002 CALL R2 1
- 0x740A000E, // 0003 JMPT R2 #0013
+ 0x740A000D, // 0003 JMPT R2 #0012
0x88080302, // 0004 GETMBR R2 R1 K2
0x540E001F, // 0005 LDINT R3 32
0x28080403, // 0006 GE R2 R2 R3
- 0x780A000A, // 0007 JMPF R2 #0013
+ 0x780A0009, // 0007 JMPF R2 #0012
0x88080302, // 0008 GETMBR R2 R1 K2
0x540E0023, // 0009 LDINT R3 36
0x18080403, // 000A LE R2 R2 R3
- 0x780A0006, // 000B JMPF R2 #0013
+ 0x780A0005, // 000B JMPF R2 #0012
0xB80A0600, // 000C GETNGBL R2 K3
- 0x8C080504, // 000D GETMET R2 R2 K4
+ 0x580C0004, // 000D LDCONST R3 K4
0x58100005, // 000E LDCONST R4 K5
- 0x58140006, // 000F LDCONST R5 K6
- 0x7C080600, // 0010 CALL R2 3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x80040400, // 0012 RET 1 R2
- 0x88080302, // 0013 GETMBR R2 R1 K2
- 0x540E000F, // 0014 LDINT R3 16
- 0x1C080403, // 0015 EQ R2 R2 R3
- 0x780A0000, // 0016 JMPF R2 #0018
- 0x7002003F, // 0017 JMP #0058
- 0x88080302, // 0018 GETMBR R2 R1 K2
- 0x540E001F, // 0019 LDINT R3 32
- 0x1C080403, // 001A EQ R2 R2 R3
- 0x780A0004, // 001B JMPF R2 #0021
- 0x8C080107, // 001C GETMET R2 R0 K7
- 0x5C100200, // 001D MOVE R4 R1
- 0x7C080400, // 001E CALL R2 2
- 0x80040400, // 001F RET 1 R2
- 0x70020036, // 0020 JMP #0058
- 0x88080302, // 0021 GETMBR R2 R1 K2
- 0x540E0021, // 0022 LDINT R3 34
- 0x1C080403, // 0023 EQ R2 R2 R3
- 0x780A0004, // 0024 JMPF R2 #002A
- 0x8C080108, // 0025 GETMET R2 R0 K8
- 0x5C100200, // 0026 MOVE R4 R1
- 0x7C080400, // 0027 CALL R2 2
- 0x80040400, // 0028 RET 1 R2
- 0x7002002D, // 0029 JMP #0058
- 0x88080302, // 002A GETMBR R2 R1 K2
- 0x540E0023, // 002B LDINT R3 36
- 0x1C080403, // 002C EQ R2 R2 R3
- 0x780A0004, // 002D JMPF R2 #0033
- 0x8C080109, // 002E GETMET R2 R0 K9
- 0x5C100200, // 002F MOVE R4 R1
- 0x7C080400, // 0030 CALL R2 2
- 0x80040400, // 0031 RET 1 R2
- 0x70020024, // 0032 JMP #0058
- 0x88080302, // 0033 GETMBR R2 R1 K2
- 0x540E002F, // 0034 LDINT R3 48
- 0x1C080403, // 0035 EQ R2 R2 R3
- 0x780A0004, // 0036 JMPF R2 #003C
- 0x8C08010A, // 0037 GETMET R2 R0 K10
- 0x5C100200, // 0038 MOVE R4 R1
- 0x7C080400, // 0039 CALL R2 2
- 0x80040400, // 003A RET 1 R2
- 0x7002001B, // 003B JMP #0058
- 0x88080302, // 003C GETMBR R2 R1 K2
- 0x540E0031, // 003D LDINT R3 50
- 0x1C080403, // 003E EQ R2 R2 R3
- 0x780A0004, // 003F JMPF R2 #0045
- 0x8C08010B, // 0040 GETMET R2 R0 K11
- 0x5C100200, // 0041 MOVE R4 R1
- 0x7C080400, // 0042 CALL R2 2
- 0x80040400, // 0043 RET 1 R2
- 0x70020012, // 0044 JMP #0058
- 0x88080302, // 0045 GETMBR R2 R1 K2
- 0x540E003F, // 0046 LDINT R3 64
- 0x1C080403, // 0047 EQ R2 R2 R3
- 0x780A0004, // 0048 JMPF R2 #004E
- 0x8C08010C, // 0049 GETMET R2 R0 K12
- 0x5C100200, // 004A MOVE R4 R1
- 0x7C080400, // 004B CALL R2 2
- 0x80040400, // 004C RET 1 R2
- 0x70020009, // 004D JMP #0058
- 0xB80A0600, // 004E GETNGBL R2 K3
- 0x8C080504, // 004F GETMET R2 R2 K4
- 0x60100018, // 0050 GETGBL R4 G24
- 0x5814000D, // 0051 LDCONST R5 K13
- 0x88180302, // 0052 GETMBR R6 R1 K2
- 0x7C100400, // 0053 CALL R4 2
- 0x58140006, // 0054 LDCONST R5 K6
- 0x7C080600, // 0055 CALL R2 3
+ 0x7C080400, // 000F CALL R2 2
+ 0x50080000, // 0010 LDBOOL R2 0 0
+ 0x80040400, // 0011 RET 1 R2
+ 0x88080302, // 0012 GETMBR R2 R1 K2
+ 0x540E000F, // 0013 LDINT R3 16
+ 0x1C080403, // 0014 EQ R2 R2 R3
+ 0x780A0000, // 0015 JMPF R2 #0017
+ 0x7002003E, // 0016 JMP #0056
+ 0x88080302, // 0017 GETMBR R2 R1 K2
+ 0x540E001F, // 0018 LDINT R3 32
+ 0x1C080403, // 0019 EQ R2 R2 R3
+ 0x780A0004, // 001A JMPF R2 #0020
+ 0x8C080106, // 001B GETMET R2 R0 K6
+ 0x5C100200, // 001C MOVE R4 R1
+ 0x7C080400, // 001D CALL R2 2
+ 0x80040400, // 001E RET 1 R2
+ 0x70020035, // 001F JMP #0056
+ 0x88080302, // 0020 GETMBR R2 R1 K2
+ 0x540E0021, // 0021 LDINT R3 34
+ 0x1C080403, // 0022 EQ R2 R2 R3
+ 0x780A0004, // 0023 JMPF R2 #0029
+ 0x8C080107, // 0024 GETMET R2 R0 K7
+ 0x5C100200, // 0025 MOVE R4 R1
+ 0x7C080400, // 0026 CALL R2 2
+ 0x80040400, // 0027 RET 1 R2
+ 0x7002002C, // 0028 JMP #0056
+ 0x88080302, // 0029 GETMBR R2 R1 K2
+ 0x540E0023, // 002A LDINT R3 36
+ 0x1C080403, // 002B EQ R2 R2 R3
+ 0x780A0004, // 002C JMPF R2 #0032
+ 0x8C080108, // 002D GETMET R2 R0 K8
+ 0x5C100200, // 002E MOVE R4 R1
+ 0x7C080400, // 002F CALL R2 2
+ 0x80040400, // 0030 RET 1 R2
+ 0x70020023, // 0031 JMP #0056
+ 0x88080302, // 0032 GETMBR R2 R1 K2
+ 0x540E002F, // 0033 LDINT R3 48
+ 0x1C080403, // 0034 EQ R2 R2 R3
+ 0x780A0004, // 0035 JMPF R2 #003B
+ 0x8C080109, // 0036 GETMET R2 R0 K9
+ 0x5C100200, // 0037 MOVE R4 R1
+ 0x7C080400, // 0038 CALL R2 2
+ 0x80040400, // 0039 RET 1 R2
+ 0x7002001A, // 003A JMP #0056
+ 0x88080302, // 003B GETMBR R2 R1 K2
+ 0x540E0031, // 003C LDINT R3 50
+ 0x1C080403, // 003D EQ R2 R2 R3
+ 0x780A0004, // 003E JMPF R2 #0044
+ 0x8C08010A, // 003F GETMET R2 R0 K10
+ 0x5C100200, // 0040 MOVE R4 R1
+ 0x7C080400, // 0041 CALL R2 2
+ 0x80040400, // 0042 RET 1 R2
+ 0x70020011, // 0043 JMP #0056
+ 0x88080302, // 0044 GETMBR R2 R1 K2
+ 0x540E003F, // 0045 LDINT R3 64
+ 0x1C080403, // 0046 EQ R2 R2 R3
+ 0x780A0004, // 0047 JMPF R2 #004D
+ 0x8C08010B, // 0048 GETMET R2 R0 K11
+ 0x5C100200, // 0049 MOVE R4 R1
+ 0x7C080400, // 004A CALL R2 2
+ 0x80040400, // 004B RET 1 R2
+ 0x70020008, // 004C JMP #0056
+ 0xB80A0600, // 004D GETNGBL R2 K3
+ 0x600C0018, // 004E GETGBL R3 G24
+ 0x5810000C, // 004F LDCONST R4 K12
+ 0x88140302, // 0050 GETMBR R5 R1 K2
+ 0x7C0C0400, // 0051 CALL R3 2
+ 0x58100005, // 0052 LDCONST R4 K5
+ 0x7C080400, // 0053 CALL R2 2
+ 0x50080000, // 0054 LDBOOL R2 0 0
+ 0x80040400, // 0055 RET 1 R2
0x50080000, // 0056 LDBOOL R2 0 0
0x80040400, // 0057 RET 1 R2
- 0x50080000, // 0058 LDBOOL R2 0 0
- 0x80040400, // 0059 RET 1 R2
})
)
);
@@ -1410,55 +1381,55 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
/* K3 */ be_nested_str_weak(local_session_id),
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(protocol_id),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(send_status_report),
- /* K11 */ be_const_int(1),
- /* K12 */ be_const_int(2),
- /* K13 */ be_nested_str_weak(matter),
- /* K14 */ be_nested_str_weak(Sigma1),
- /* K15 */ be_nested_str_weak(parse),
- /* K16 */ be_nested_str_weak(raw),
- /* K17 */ be_nested_str_weak(app_payload_idx),
- /* K18 */ be_nested_str_weak(__initiator_pub),
- /* K19 */ be_nested_str_weak(initiatorEphPubKey),
- /* K20 */ be_nested_str_weak(resumptionID),
- /* K21 */ be_nested_str_weak(initiatorResumeMIC),
- /* K22 */ be_nested_str_weak(device),
- /* K23 */ be_nested_str_weak(sessions),
- /* K24 */ be_nested_str_weak(find_session_by_resumption_id),
- /* K25 */ be_nested_str_weak(_fabric),
- /* K26 */ be_nested_str_weak(initiatorRandom),
- /* K27 */ be_nested_str_weak(fromstring),
- /* K28 */ be_nested_str_weak(Sigma1_Resume),
- /* K29 */ be_nested_str_weak(HKDF_SHA256),
- /* K30 */ be_nested_str_weak(derive),
- /* K31 */ be_nested_str_weak(shared_secret),
- /* K32 */ be_nested_str_weak(NCASE_SigmaS1),
- /* K33 */ be_const_int(2147483647),
- /* K34 */ be_nested_str_weak(AES_CCM),
- /* K35 */ be_nested_str_weak(decrypt),
- /* K36 */ be_nested_str_weak(tag),
- /* K37 */ be_nested_str_weak(_source_node_id),
- /* K38 */ be_nested_str_weak(source_node_id),
- /* K39 */ be_nested_str_weak(set_mode_CASE),
- /* K40 */ be_nested_str_weak(__future_initiator_session_id),
- /* K41 */ be_nested_str_weak(initiator_session_id),
- /* K42 */ be_nested_str_weak(__future_local_session_id),
- /* K43 */ be_nested_str_weak(gen_local_session_id),
- /* K44 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
- /* K45 */ be_nested_str_weak(remote_ip),
- /* K46 */ be_nested_str_weak(remote_port),
- /* K47 */ be_nested_str_weak(resumption_id),
- /* K48 */ be_nested_str_weak(random),
- /* K49 */ be_nested_str_weak(Sigma2_Resume),
- /* K50 */ be_nested_str_weak(NCASE_SigmaS2),
- /* K51 */ be_nested_str_weak(Sigma2Resume),
- /* K52 */ be_nested_str_weak(responderSessionID),
- /* K53 */ be_nested_str_weak(sigma2ResumeMIC),
- /* K54 */ be_nested_str_weak(SessionResumptionKeys),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28General_X20Code_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20INVALID_PARAMETER_X29),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(send_status_report),
+ /* K10 */ be_const_int(1),
+ /* K11 */ be_const_int(2),
+ /* K12 */ be_nested_str_weak(matter),
+ /* K13 */ be_nested_str_weak(Sigma1),
+ /* K14 */ be_nested_str_weak(parse),
+ /* K15 */ be_nested_str_weak(raw),
+ /* K16 */ be_nested_str_weak(app_payload_idx),
+ /* K17 */ be_nested_str_weak(__initiator_pub),
+ /* K18 */ be_nested_str_weak(initiatorEphPubKey),
+ /* K19 */ be_nested_str_weak(resumptionID),
+ /* K20 */ be_nested_str_weak(initiatorResumeMIC),
+ /* K21 */ be_nested_str_weak(device),
+ /* K22 */ be_nested_str_weak(sessions),
+ /* K23 */ be_nested_str_weak(find_session_by_resumption_id),
+ /* K24 */ be_nested_str_weak(_fabric),
+ /* K25 */ be_nested_str_weak(initiatorRandom),
+ /* K26 */ be_nested_str_weak(fromstring),
+ /* K27 */ be_nested_str_weak(Sigma1_Resume),
+ /* K28 */ be_nested_str_weak(HKDF_SHA256),
+ /* K29 */ be_nested_str_weak(derive),
+ /* K30 */ be_nested_str_weak(shared_secret),
+ /* K31 */ be_nested_str_weak(NCASE_SigmaS1),
+ /* K32 */ be_const_int(2147483647),
+ /* K33 */ be_nested_str_weak(AES_CCM),
+ /* K34 */ be_nested_str_weak(decrypt),
+ /* K35 */ be_nested_str_weak(tag),
+ /* K36 */ be_nested_str_weak(_source_node_id),
+ /* K37 */ be_nested_str_weak(source_node_id),
+ /* K38 */ be_nested_str_weak(set_mode_CASE),
+ /* K39 */ be_nested_str_weak(__future_initiator_session_id),
+ /* K40 */ be_nested_str_weak(initiator_session_id),
+ /* K41 */ be_nested_str_weak(__future_local_session_id),
+ /* K42 */ be_nested_str_weak(gen_local_session_id),
+ /* K43 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
+ /* K44 */ be_nested_str_weak(remote_ip),
+ /* K45 */ be_nested_str_weak(remote_port),
+ /* K46 */ be_nested_str_weak(resumption_id),
+ /* K47 */ be_nested_str_weak(random),
+ /* K48 */ be_nested_str_weak(Sigma2_Resume),
+ /* K49 */ be_nested_str_weak(NCASE_SigmaS2),
+ /* K50 */ be_nested_str_weak(Sigma2Resume),
+ /* K51 */ be_nested_str_weak(responderSessionID),
+ /* K52 */ be_nested_str_weak(sigma2ResumeMIC),
+ /* K53 */ be_nested_str_weak(SessionResumptionKeys),
+ /* K54 */ be_nested_str_weak(tasmota),
/* K55 */ be_nested_str_weak(rtc_utc),
/* K56 */ be_nested_str_weak(tlv2raw),
/* K57 */ be_nested_str_weak(__Msg1),
@@ -1510,7 +1481,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
}),
be_str_weak(parse_Sigma1),
&be_const_str_solidified,
- ( &(const binstruction[481]) { /* code */
+ ( &(const binstruction[476]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -1522,476 +1493,471 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
0x74120002, // 0008 JMPT R4 #000C
0x88100305, // 0009 GETMBR R4 R1 K5
0x20100904, // 000A NE R4 R4 K4
- 0x7812000D, // 000B JMPF R4 #001A
+ 0x7812000C, // 000B JMPF R4 #0019
0xB8120C00, // 000C GETNGBL R4 K6
- 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x58140007, // 000D LDCONST R5 K7
0x58180008, // 000E LDCONST R6 K8
- 0x581C0009, // 000F LDCONST R7 K9
- 0x7C100600, // 0010 CALL R4 3
- 0x8C10010A, // 0011 GETMET R4 R0 K10
- 0x5C180200, // 0012 MOVE R6 R1
- 0x581C000B, // 0013 LDCONST R7 K11
- 0x58200004, // 0014 LDCONST R8 K4
- 0x5824000C, // 0015 LDCONST R9 K12
- 0x50280000, // 0016 LDBOOL R10 0 0
- 0x7C100C00, // 0017 CALL R4 6
- 0x50100000, // 0018 LDBOOL R4 0 0
- 0x80040800, // 0019 RET 1 R4
- 0xB8121A00, // 001A GETNGBL R4 K13
- 0x8C10090E, // 001B GETMET R4 R4 K14
- 0x7C100200, // 001C CALL R4 1
- 0x8C10090F, // 001D GETMET R4 R4 K15
- 0x88180310, // 001E GETMBR R6 R1 K16
- 0x881C0311, // 001F GETMBR R7 R1 K17
- 0x7C100600, // 0020 CALL R4 3
- 0x88140913, // 0021 GETMBR R5 R4 K19
- 0x900E2405, // 0022 SETMBR R3 K18 R5
- 0x88140914, // 0023 GETMBR R5 R4 K20
- 0x4C180000, // 0024 LDNIL R6
- 0x20140A06, // 0025 NE R5 R5 R6
- 0x78160003, // 0026 JMPF R5 #002B
- 0x88140915, // 0027 GETMBR R5 R4 K21
- 0x4C180000, // 0028 LDNIL R6
- 0x20140A06, // 0029 NE R5 R5 R6
- 0x74160000, // 002A JMPT R5 #002C
- 0x50140001, // 002B LDBOOL R5 0 1
- 0x50140200, // 002C LDBOOL R5 1 0
- 0x50140000, // 002D LDBOOL R5 0 0
- 0x4C180000, // 002E LDNIL R6
- 0x7816000D, // 002F JMPF R5 #003E
- 0x881C0116, // 0030 GETMBR R7 R0 K22
- 0x881C0F17, // 0031 GETMBR R7 R7 K23
- 0x8C1C0F18, // 0032 GETMET R7 R7 K24
- 0x88240914, // 0033 GETMBR R9 R4 K20
- 0x7C1C0400, // 0034 CALL R7 2
- 0x5C180E00, // 0035 MOVE R6 R7
- 0x4C1C0000, // 0036 LDNIL R7
- 0x1C1C0C07, // 0037 EQ R7 R6 R7
- 0x741E0003, // 0038 JMPT R7 #003D
- 0x881C0D19, // 0039 GETMBR R7 R6 K25
- 0x4C200000, // 003A LDNIL R8
- 0x1C1C0E08, // 003B EQ R7 R7 R8
- 0x781E0000, // 003C JMPF R7 #003E
- 0x50140000, // 003D LDBOOL R5 0 0
- 0x781600B5, // 003E JMPF R5 #00F5
- 0x881C091A, // 003F GETMBR R7 R4 K26
- 0x88200914, // 0040 GETMBR R8 R4 K20
- 0x001C0E08, // 0041 ADD R7 R7 R8
- 0x60200015, // 0042 GETGBL R8 G21
- 0x7C200000, // 0043 CALL R8 0
- 0x8C20111B, // 0044 GETMET R8 R8 K27
- 0x5828001C, // 0045 LDCONST R10 K28
- 0x7C200400, // 0046 CALL R8 2
- 0x8C24051D, // 0047 GETMET R9 R2 K29
- 0x7C240200, // 0048 CALL R9 1
- 0x8C24131E, // 0049 GETMET R9 R9 K30
- 0x882C0D1F, // 004A GETMBR R11 R6 K31
- 0x5C300E00, // 004B MOVE R12 R7
- 0x5C341000, // 004C MOVE R13 R8
- 0x543A000F, // 004D LDINT R14 16
- 0x7C240A00, // 004E CALL R9 5
- 0x60280015, // 004F GETGBL R10 G21
- 0x7C280000, // 0050 CALL R10 0
- 0x8C28151B, // 0051 GETMET R10 R10 K27
- 0x58300020, // 0052 LDCONST R12 K32
- 0x7C280400, // 0053 CALL R10 2
- 0x542DFFEE, // 0054 LDINT R11 -17
- 0x402E080B, // 0055 CONNECT R11 K4 R11
- 0x88300915, // 0056 GETMBR R12 R4 K21
- 0x942C180B, // 0057 GETIDX R11 R12 R11
- 0x5435FFEF, // 0058 LDINT R13 -16
- 0x40341B21, // 0059 CONNECT R13 R13 K33
- 0x88380915, // 005A GETMBR R14 R4 K21
- 0x94301C0D, // 005B GETIDX R12 R14 R13
- 0x8C3C0522, // 005C GETMET R15 R2 K34
- 0x5C441200, // 005D MOVE R17 R9
- 0x5C481400, // 005E MOVE R18 R10
- 0x604C0015, // 005F GETGBL R19 G21
- 0x7C4C0000, // 0060 CALL R19 0
- 0x6050000C, // 0061 GETGBL R20 G12
- 0x5C541600, // 0062 MOVE R21 R11
- 0x7C500200, // 0063 CALL R20 1
- 0x5456000F, // 0064 LDINT R21 16
- 0x7C3C0C00, // 0065 CALL R15 6
- 0x5C341E00, // 0066 MOVE R13 R15
- 0x8C3C1B23, // 0067 GETMET R15 R13 K35
- 0x5C441600, // 0068 MOVE R17 R11
- 0x7C3C0400, // 0069 CALL R15 2
- 0x5C381E00, // 006A MOVE R14 R15
- 0x8C3C1B24, // 006B GETMET R15 R13 K36
- 0x7C3C0200, // 006C CALL R15 1
- 0x1C40180F, // 006D EQ R16 R12 R15
- 0x78420084, // 006E JMPF R16 #00F4
- 0x88400D19, // 006F GETMBR R16 R6 K25
- 0x900E3210, // 0070 SETMBR R3 K25 R16
- 0x88400326, // 0071 GETMBR R16 R1 K38
- 0x900E4A10, // 0072 SETMBR R3 K37 R16
- 0x8C400727, // 0073 GETMET R16 R3 K39
- 0x7C400200, // 0074 CALL R16 1
- 0x88400929, // 0075 GETMBR R16 R4 K41
- 0x900E5010, // 0076 SETMBR R3 K40 R16
- 0x88400116, // 0077 GETMBR R16 R0 K22
- 0x88402117, // 0078 GETMBR R16 R16 K23
- 0x8C40212B, // 0079 GETMET R16 R16 K43
- 0x7C400200, // 007A CALL R16 1
- 0x900E5410, // 007B SETMBR R3 K42 R16
- 0xB8420C00, // 007C GETNGBL R16 K6
- 0x8C402107, // 007D GETMET R16 R16 K7
- 0x60480018, // 007E GETGBL R18 G24
- 0x584C002C, // 007F LDCONST R19 K44
- 0x8850072A, // 0080 GETMBR R20 R3 K42
- 0x8854032D, // 0081 GETMBR R21 R1 K45
- 0x8858032E, // 0082 GETMBR R22 R1 K46
- 0x7C480800, // 0083 CALL R18 4
- 0x584C0009, // 0084 LDCONST R19 K9
- 0x7C400600, // 0085 CALL R16 3
- 0x88400D1F, // 0086 GETMBR R16 R6 K31
- 0x900E3E10, // 0087 SETMBR R3 K31 R16
- 0x8C400530, // 0088 GETMET R16 R2 K48
- 0x544A000F, // 0089 LDINT R18 16
- 0x7C400400, // 008A CALL R16 2
- 0x900E5E10, // 008B SETMBR R3 K47 R16
- 0x60400015, // 008C GETGBL R16 G21
- 0x7C400000, // 008D CALL R16 0
- 0x8C40211B, // 008E GETMET R16 R16 K27
- 0x58480031, // 008F LDCONST R18 K49
- 0x7C400400, // 0090 CALL R16 2
- 0x8844091A, // 0091 GETMBR R17 R4 K26
- 0x8848072F, // 0092 GETMBR R18 R3 K47
- 0x00442212, // 0093 ADD R17 R17 R18
- 0x8C48051D, // 0094 GETMET R18 R2 K29
- 0x7C480200, // 0095 CALL R18 1
- 0x8C48251E, // 0096 GETMET R18 R18 K30
- 0x8850071F, // 0097 GETMBR R20 R3 K31
- 0x5C542200, // 0098 MOVE R21 R17
- 0x5C582000, // 0099 MOVE R22 R16
- 0x545E000F, // 009A LDINT R23 16
- 0x7C480A00, // 009B CALL R18 5
- 0x8C4C0522, // 009C GETMET R19 R2 K34
- 0x5C542400, // 009D MOVE R21 R18
- 0x60580015, // 009E GETGBL R22 G21
- 0x7C580000, // 009F CALL R22 0
- 0x8C582D1B, // 00A0 GETMET R22 R22 K27
- 0x58600032, // 00A1 LDCONST R24 K50
- 0x7C580400, // 00A2 CALL R22 2
- 0x605C0015, // 00A3 GETGBL R23 G21
- 0x7C5C0000, // 00A4 CALL R23 0
- 0x58600004, // 00A5 LDCONST R24 K4
- 0x5466000F, // 00A6 LDINT R25 16
- 0x7C4C0C00, // 00A7 CALL R19 6
- 0x8C502724, // 00A8 GETMET R20 R19 K36
- 0x7C500200, // 00A9 CALL R20 1
- 0xB8561A00, // 00AA GETNGBL R21 K13
- 0x8C542B33, // 00AB GETMET R21 R21 K51
- 0x7C540200, // 00AC CALL R21 1
- 0x8858072F, // 00AD GETMBR R22 R3 K47
- 0x90562816, // 00AE SETMBR R21 K20 R22
- 0x8858072A, // 00AF GETMBR R22 R3 K42
- 0x90566816, // 00B0 SETMBR R21 K52 R22
- 0x90566A14, // 00B1 SETMBR R21 K53 R20
- 0x8C58051D, // 00B2 GETMET R22 R2 K29
- 0x7C580200, // 00B3 CALL R22 1
- 0x8C582D1E, // 00B4 GETMET R22 R22 K30
- 0x8860071F, // 00B5 GETMBR R24 R3 K31
- 0x8864091A, // 00B6 GETMBR R25 R4 K26
- 0x8868072F, // 00B7 GETMBR R26 R3 K47
- 0x0064321A, // 00B8 ADD R25 R25 R26
- 0x60680015, // 00B9 GETGBL R26 G21
- 0x7C680000, // 00BA CALL R26 0
- 0x8C68351B, // 00BB GETMET R26 R26 K27
- 0x58700036, // 00BC LDCONST R28 K54
- 0x7C680400, // 00BD CALL R26 2
- 0x546E002F, // 00BE LDINT R27 48
- 0x7C580A00, // 00BF CALL R22 5
- 0x545E000E, // 00C0 LDINT R23 15
- 0x405E0817, // 00C1 CONNECT R23 K4 R23
- 0x945C2C17, // 00C2 GETIDX R23 R22 R23
- 0x5462000F, // 00C3 LDINT R24 16
- 0x5466001E, // 00C4 LDINT R25 31
- 0x40603019, // 00C5 CONNECT R24 R24 R25
- 0x94602C18, // 00C6 GETIDX R24 R22 R24
- 0x5466001F, // 00C7 LDINT R25 32
- 0x546A002E, // 00C8 LDINT R26 47
- 0x4064321A, // 00C9 CONNECT R25 R25 R26
- 0x94642C19, // 00CA GETIDX R25 R22 R25
- 0xB86A0C00, // 00CB GETNGBL R26 K6
- 0x8C683537, // 00CC GETMET R26 R26 K55
- 0x7C680200, // 00CD CALL R26 1
- 0x8C6C2B38, // 00CE GETMET R27 R21 K56
- 0x7C6C0200, // 00CF CALL R27 1
- 0x4C700000, // 00D0 LDNIL R28
- 0x900E721C, // 00D1 SETMBR R3 K57 R28
- 0x8C70033A, // 00D2 GETMET R28 R1 K58
- 0x547A0032, // 00D3 LDINT R30 51
- 0x507C0200, // 00D4 LDBOOL R31 1 0
- 0x7C700600, // 00D5 CALL R28 3
- 0x8C74393B, // 00D6 GETMET R29 R28 K59
- 0x5C7C3600, // 00D7 MOVE R31 R27
- 0x7C740400, // 00D8 CALL R29 2
- 0x8878013C, // 00D9 GETMBR R30 R0 K60
- 0x8C783D3D, // 00DA GETMET R30 R30 K61
- 0x5C803800, // 00DB MOVE R32 R28
- 0x7C780400, // 00DC CALL R30 2
- 0x8C78073E, // 00DD GETMET R30 R3 K62
- 0x7C780200, // 00DE CALL R30 1
- 0x8C78073F, // 00DF GETMET R30 R3 K63
- 0x5C802E00, // 00E0 MOVE R32 R23
- 0x5C843000, // 00E1 MOVE R33 R24
- 0x5C883200, // 00E2 MOVE R34 R25
- 0x5C8C3400, // 00E3 MOVE R35 R26
- 0x7C780A00, // 00E4 CALL R30 5
- 0x900E8104, // 00E5 SETMBR R3 K64 K4
- 0x8C780741, // 00E6 GETMET R30 R3 K65
- 0x7C780200, // 00E7 CALL R30 1
- 0x8C780742, // 00E8 GETMET R30 R3 K66
- 0x50800200, // 00E9 LDBOOL R32 1 0
- 0x7C780400, // 00EA CALL R30 2
- 0x8C780743, // 00EB GETMET R30 R3 K67
+ 0x7C100400, // 000F CALL R4 2
+ 0x8C100109, // 0010 GETMET R4 R0 K9
+ 0x5C180200, // 0011 MOVE R6 R1
+ 0x581C000A, // 0012 LDCONST R7 K10
+ 0x58200004, // 0013 LDCONST R8 K4
+ 0x5824000B, // 0014 LDCONST R9 K11
+ 0x50280000, // 0015 LDBOOL R10 0 0
+ 0x7C100C00, // 0016 CALL R4 6
+ 0x50100000, // 0017 LDBOOL R4 0 0
+ 0x80040800, // 0018 RET 1 R4
+ 0xB8121800, // 0019 GETNGBL R4 K12
+ 0x8C10090D, // 001A GETMET R4 R4 K13
+ 0x7C100200, // 001B CALL R4 1
+ 0x8C10090E, // 001C GETMET R4 R4 K14
+ 0x8818030F, // 001D GETMBR R6 R1 K15
+ 0x881C0310, // 001E GETMBR R7 R1 K16
+ 0x7C100600, // 001F CALL R4 3
+ 0x88140912, // 0020 GETMBR R5 R4 K18
+ 0x900E2205, // 0021 SETMBR R3 K17 R5
+ 0x88140913, // 0022 GETMBR R5 R4 K19
+ 0x4C180000, // 0023 LDNIL R6
+ 0x20140A06, // 0024 NE R5 R5 R6
+ 0x78160003, // 0025 JMPF R5 #002A
+ 0x88140914, // 0026 GETMBR R5 R4 K20
+ 0x4C180000, // 0027 LDNIL R6
+ 0x20140A06, // 0028 NE R5 R5 R6
+ 0x74160000, // 0029 JMPT R5 #002B
+ 0x50140001, // 002A LDBOOL R5 0 1
+ 0x50140200, // 002B LDBOOL R5 1 0
+ 0x50140000, // 002C LDBOOL R5 0 0
+ 0x4C180000, // 002D LDNIL R6
+ 0x7816000D, // 002E JMPF R5 #003D
+ 0x881C0115, // 002F GETMBR R7 R0 K21
+ 0x881C0F16, // 0030 GETMBR R7 R7 K22
+ 0x8C1C0F17, // 0031 GETMET R7 R7 K23
+ 0x88240913, // 0032 GETMBR R9 R4 K19
+ 0x7C1C0400, // 0033 CALL R7 2
+ 0x5C180E00, // 0034 MOVE R6 R7
+ 0x4C1C0000, // 0035 LDNIL R7
+ 0x1C1C0C07, // 0036 EQ R7 R6 R7
+ 0x741E0003, // 0037 JMPT R7 #003C
+ 0x881C0D18, // 0038 GETMBR R7 R6 K24
+ 0x4C200000, // 0039 LDNIL R8
+ 0x1C1C0E08, // 003A EQ R7 R7 R8
+ 0x781E0000, // 003B JMPF R7 #003D
+ 0x50140000, // 003C LDBOOL R5 0 0
+ 0x781600B4, // 003D JMPF R5 #00F3
+ 0x881C0919, // 003E GETMBR R7 R4 K25
+ 0x88200913, // 003F GETMBR R8 R4 K19
+ 0x001C0E08, // 0040 ADD R7 R7 R8
+ 0x60200015, // 0041 GETGBL R8 G21
+ 0x7C200000, // 0042 CALL R8 0
+ 0x8C20111A, // 0043 GETMET R8 R8 K26
+ 0x5828001B, // 0044 LDCONST R10 K27
+ 0x7C200400, // 0045 CALL R8 2
+ 0x8C24051C, // 0046 GETMET R9 R2 K28
+ 0x7C240200, // 0047 CALL R9 1
+ 0x8C24131D, // 0048 GETMET R9 R9 K29
+ 0x882C0D1E, // 0049 GETMBR R11 R6 K30
+ 0x5C300E00, // 004A MOVE R12 R7
+ 0x5C341000, // 004B MOVE R13 R8
+ 0x543A000F, // 004C LDINT R14 16
+ 0x7C240A00, // 004D CALL R9 5
+ 0x60280015, // 004E GETGBL R10 G21
+ 0x7C280000, // 004F CALL R10 0
+ 0x8C28151A, // 0050 GETMET R10 R10 K26
+ 0x5830001F, // 0051 LDCONST R12 K31
+ 0x7C280400, // 0052 CALL R10 2
+ 0x542DFFEE, // 0053 LDINT R11 -17
+ 0x402E080B, // 0054 CONNECT R11 K4 R11
+ 0x88300914, // 0055 GETMBR R12 R4 K20
+ 0x942C180B, // 0056 GETIDX R11 R12 R11
+ 0x5435FFEF, // 0057 LDINT R13 -16
+ 0x40341B20, // 0058 CONNECT R13 R13 K32
+ 0x88380914, // 0059 GETMBR R14 R4 K20
+ 0x94301C0D, // 005A GETIDX R12 R14 R13
+ 0x8C3C0521, // 005B GETMET R15 R2 K33
+ 0x5C441200, // 005C MOVE R17 R9
+ 0x5C481400, // 005D MOVE R18 R10
+ 0x604C0015, // 005E GETGBL R19 G21
+ 0x7C4C0000, // 005F CALL R19 0
+ 0x6050000C, // 0060 GETGBL R20 G12
+ 0x5C541600, // 0061 MOVE R21 R11
+ 0x7C500200, // 0062 CALL R20 1
+ 0x5456000F, // 0063 LDINT R21 16
+ 0x7C3C0C00, // 0064 CALL R15 6
+ 0x5C341E00, // 0065 MOVE R13 R15
+ 0x8C3C1B22, // 0066 GETMET R15 R13 K34
+ 0x5C441600, // 0067 MOVE R17 R11
+ 0x7C3C0400, // 0068 CALL R15 2
+ 0x5C381E00, // 0069 MOVE R14 R15
+ 0x8C3C1B23, // 006A GETMET R15 R13 K35
+ 0x7C3C0200, // 006B CALL R15 1
+ 0x1C40180F, // 006C EQ R16 R12 R15
+ 0x78420083, // 006D JMPF R16 #00F2
+ 0x88400D18, // 006E GETMBR R16 R6 K24
+ 0x900E3010, // 006F SETMBR R3 K24 R16
+ 0x88400325, // 0070 GETMBR R16 R1 K37
+ 0x900E4810, // 0071 SETMBR R3 K36 R16
+ 0x8C400726, // 0072 GETMET R16 R3 K38
+ 0x7C400200, // 0073 CALL R16 1
+ 0x88400928, // 0074 GETMBR R16 R4 K40
+ 0x900E4E10, // 0075 SETMBR R3 K39 R16
+ 0x88400115, // 0076 GETMBR R16 R0 K21
+ 0x88402116, // 0077 GETMBR R16 R16 K22
+ 0x8C40212A, // 0078 GETMET R16 R16 K42
+ 0x7C400200, // 0079 CALL R16 1
+ 0x900E5210, // 007A SETMBR R3 K41 R16
+ 0xB8420C00, // 007B GETNGBL R16 K6
+ 0x60440018, // 007C GETGBL R17 G24
+ 0x5848002B, // 007D LDCONST R18 K43
+ 0x884C0729, // 007E GETMBR R19 R3 K41
+ 0x8850032C, // 007F GETMBR R20 R1 K44
+ 0x8854032D, // 0080 GETMBR R21 R1 K45
+ 0x7C440800, // 0081 CALL R17 4
+ 0x58480008, // 0082 LDCONST R18 K8
+ 0x7C400400, // 0083 CALL R16 2
+ 0x88400D1E, // 0084 GETMBR R16 R6 K30
+ 0x900E3C10, // 0085 SETMBR R3 K30 R16
+ 0x8C40052F, // 0086 GETMET R16 R2 K47
+ 0x544A000F, // 0087 LDINT R18 16
+ 0x7C400400, // 0088 CALL R16 2
+ 0x900E5C10, // 0089 SETMBR R3 K46 R16
+ 0x60400015, // 008A GETGBL R16 G21
+ 0x7C400000, // 008B CALL R16 0
+ 0x8C40211A, // 008C GETMET R16 R16 K26
+ 0x58480030, // 008D LDCONST R18 K48
+ 0x7C400400, // 008E CALL R16 2
+ 0x88440919, // 008F GETMBR R17 R4 K25
+ 0x8848072E, // 0090 GETMBR R18 R3 K46
+ 0x00442212, // 0091 ADD R17 R17 R18
+ 0x8C48051C, // 0092 GETMET R18 R2 K28
+ 0x7C480200, // 0093 CALL R18 1
+ 0x8C48251D, // 0094 GETMET R18 R18 K29
+ 0x8850071E, // 0095 GETMBR R20 R3 K30
+ 0x5C542200, // 0096 MOVE R21 R17
+ 0x5C582000, // 0097 MOVE R22 R16
+ 0x545E000F, // 0098 LDINT R23 16
+ 0x7C480A00, // 0099 CALL R18 5
+ 0x8C4C0521, // 009A GETMET R19 R2 K33
+ 0x5C542400, // 009B MOVE R21 R18
+ 0x60580015, // 009C GETGBL R22 G21
+ 0x7C580000, // 009D CALL R22 0
+ 0x8C582D1A, // 009E GETMET R22 R22 K26
+ 0x58600031, // 009F LDCONST R24 K49
+ 0x7C580400, // 00A0 CALL R22 2
+ 0x605C0015, // 00A1 GETGBL R23 G21
+ 0x7C5C0000, // 00A2 CALL R23 0
+ 0x58600004, // 00A3 LDCONST R24 K4
+ 0x5466000F, // 00A4 LDINT R25 16
+ 0x7C4C0C00, // 00A5 CALL R19 6
+ 0x8C502723, // 00A6 GETMET R20 R19 K35
+ 0x7C500200, // 00A7 CALL R20 1
+ 0xB8561800, // 00A8 GETNGBL R21 K12
+ 0x8C542B32, // 00A9 GETMET R21 R21 K50
+ 0x7C540200, // 00AA CALL R21 1
+ 0x8858072E, // 00AB GETMBR R22 R3 K46
+ 0x90562616, // 00AC SETMBR R21 K19 R22
+ 0x88580729, // 00AD GETMBR R22 R3 K41
+ 0x90566616, // 00AE SETMBR R21 K51 R22
+ 0x90566814, // 00AF SETMBR R21 K52 R20
+ 0x8C58051C, // 00B0 GETMET R22 R2 K28
+ 0x7C580200, // 00B1 CALL R22 1
+ 0x8C582D1D, // 00B2 GETMET R22 R22 K29
+ 0x8860071E, // 00B3 GETMBR R24 R3 K30
+ 0x88640919, // 00B4 GETMBR R25 R4 K25
+ 0x8868072E, // 00B5 GETMBR R26 R3 K46
+ 0x0064321A, // 00B6 ADD R25 R25 R26
+ 0x60680015, // 00B7 GETGBL R26 G21
+ 0x7C680000, // 00B8 CALL R26 0
+ 0x8C68351A, // 00B9 GETMET R26 R26 K26
+ 0x58700035, // 00BA LDCONST R28 K53
+ 0x7C680400, // 00BB CALL R26 2
+ 0x546E002F, // 00BC LDINT R27 48
+ 0x7C580A00, // 00BD CALL R22 5
+ 0x545E000E, // 00BE LDINT R23 15
+ 0x405E0817, // 00BF CONNECT R23 K4 R23
+ 0x945C2C17, // 00C0 GETIDX R23 R22 R23
+ 0x5462000F, // 00C1 LDINT R24 16
+ 0x5466001E, // 00C2 LDINT R25 31
+ 0x40603019, // 00C3 CONNECT R24 R24 R25
+ 0x94602C18, // 00C4 GETIDX R24 R22 R24
+ 0x5466001F, // 00C5 LDINT R25 32
+ 0x546A002E, // 00C6 LDINT R26 47
+ 0x4064321A, // 00C7 CONNECT R25 R25 R26
+ 0x94642C19, // 00C8 GETIDX R25 R22 R25
+ 0xB86A6C00, // 00C9 GETNGBL R26 K54
+ 0x8C683537, // 00CA GETMET R26 R26 K55
+ 0x7C680200, // 00CB CALL R26 1
+ 0x8C6C2B38, // 00CC GETMET R27 R21 K56
+ 0x7C6C0200, // 00CD CALL R27 1
+ 0x4C700000, // 00CE LDNIL R28
+ 0x900E721C, // 00CF SETMBR R3 K57 R28
+ 0x8C70033A, // 00D0 GETMET R28 R1 K58
+ 0x547A0032, // 00D1 LDINT R30 51
+ 0x507C0200, // 00D2 LDBOOL R31 1 0
+ 0x7C700600, // 00D3 CALL R28 3
+ 0x8C74393B, // 00D4 GETMET R29 R28 K59
+ 0x5C7C3600, // 00D5 MOVE R31 R27
+ 0x7C740400, // 00D6 CALL R29 2
+ 0x8878013C, // 00D7 GETMBR R30 R0 K60
+ 0x8C783D3D, // 00D8 GETMET R30 R30 K61
+ 0x5C803800, // 00D9 MOVE R32 R28
+ 0x7C780400, // 00DA CALL R30 2
+ 0x8C78073E, // 00DB GETMET R30 R3 K62
+ 0x7C780200, // 00DC CALL R30 1
+ 0x8C78073F, // 00DD GETMET R30 R3 K63
+ 0x5C802E00, // 00DE MOVE R32 R23
+ 0x5C843000, // 00DF MOVE R33 R24
+ 0x5C883200, // 00E0 MOVE R34 R25
+ 0x5C8C3400, // 00E1 MOVE R35 R26
+ 0x7C780A00, // 00E2 CALL R30 5
+ 0x900E8104, // 00E3 SETMBR R3 K64 K4
+ 0x8C780741, // 00E4 GETMET R30 R3 K65
+ 0x7C780200, // 00E5 CALL R30 1
+ 0x8C780742, // 00E6 GETMET R30 R3 K66
+ 0x50800200, // 00E7 LDBOOL R32 1 0
+ 0x7C780400, // 00E8 CALL R30 2
+ 0x8C780743, // 00E9 GETMET R30 R3 K67
+ 0x7C780200, // 00EA CALL R30 1
+ 0x8C780744, // 00EB GETMET R30 R3 K68
0x7C780200, // 00EC CALL R30 1
- 0x8C780744, // 00ED GETMET R30 R3 K68
+ 0x8C780745, // 00ED GETMET R30 R3 K69
0x7C780200, // 00EE CALL R30 1
- 0x8C780745, // 00EF GETMET R30 R3 K69
- 0x7C780200, // 00F0 CALL R30 1
- 0x50780200, // 00F1 LDBOOL R30 1 0
- 0x80043C00, // 00F2 RET 1 R30
- 0x70020000, // 00F3 JMP #00F5
- 0x50140000, // 00F4 LDBOOL R5 0 0
- 0x5C1C0A00, // 00F5 MOVE R7 R5
- 0x741E00E7, // 00F6 JMPT R7 #01DF
- 0x8C1C0146, // 00F7 GETMET R7 R0 K70
- 0x88240947, // 00F8 GETMBR R9 R4 K71
- 0x8828091A, // 00F9 GETMBR R10 R4 K26
- 0x7C1C0600, // 00FA CALL R7 3
- 0x900E3207, // 00FB SETMBR R3 K25 R7
- 0x4C200000, // 00FC LDNIL R8
- 0x1C200608, // 00FD EQ R8 R3 R8
- 0x74220003, // 00FE JMPT R8 #0103
- 0x88200719, // 00FF GETMBR R8 R3 K25
- 0x4C240000, // 0100 LDNIL R9
- 0x1C201009, // 0101 EQ R8 R8 R9
- 0x7822000D, // 0102 JMPF R8 #0111
- 0xB8220C00, // 0103 GETNGBL R8 K6
- 0x8C201107, // 0104 GETMET R8 R8 K7
- 0x58280048, // 0105 LDCONST R10 K72
- 0x582C0009, // 0106 LDCONST R11 K9
- 0x7C200600, // 0107 CALL R8 3
- 0x8C20010A, // 0108 GETMET R8 R0 K10
- 0x5C280200, // 0109 MOVE R10 R1
- 0x582C000B, // 010A LDCONST R11 K11
- 0x58300004, // 010B LDCONST R12 K4
- 0x5834000B, // 010C LDCONST R13 K11
- 0x50380000, // 010D LDBOOL R14 0 0
- 0x7C200C00, // 010E CALL R8 6
- 0x50200000, // 010F LDBOOL R8 0 0
- 0x80041000, // 0110 RET 1 R8
- 0x88200326, // 0111 GETMBR R8 R1 K38
- 0x900E4A08, // 0112 SETMBR R3 K37 R8
- 0x8C200727, // 0113 GETMET R8 R3 K39
- 0x7C200200, // 0114 CALL R8 1
- 0x88200929, // 0115 GETMBR R8 R4 K41
- 0x900E5008, // 0116 SETMBR R3 K40 R8
- 0x88200116, // 0117 GETMBR R8 R0 K22
- 0x88201117, // 0118 GETMBR R8 R8 K23
- 0x8C20112B, // 0119 GETMET R8 R8 K43
- 0x7C200200, // 011A CALL R8 1
- 0x900E5408, // 011B SETMBR R3 K42 R8
- 0xB8220C00, // 011C GETNGBL R8 K6
- 0x8C201107, // 011D GETMET R8 R8 K7
- 0x60280018, // 011E GETGBL R10 G24
- 0x582C002C, // 011F LDCONST R11 K44
- 0x8830072A, // 0120 GETMBR R12 R3 K42
- 0x8834032D, // 0121 GETMBR R13 R1 K45
- 0x8838032E, // 0122 GETMBR R14 R1 K46
- 0x7C280800, // 0123 CALL R10 4
- 0x582C0009, // 0124 LDCONST R11 K9
- 0x7C200600, // 0125 CALL R8 3
- 0x8C200530, // 0126 GETMET R8 R2 K48
- 0x542A000F, // 0127 LDINT R10 16
+ 0x50780200, // 00EF LDBOOL R30 1 0
+ 0x80043C00, // 00F0 RET 1 R30
+ 0x70020000, // 00F1 JMP #00F3
+ 0x50140000, // 00F2 LDBOOL R5 0 0
+ 0x5C1C0A00, // 00F3 MOVE R7 R5
+ 0x741E00E4, // 00F4 JMPT R7 #01DA
+ 0x8C1C0146, // 00F5 GETMET R7 R0 K70
+ 0x88240947, // 00F6 GETMBR R9 R4 K71
+ 0x88280919, // 00F7 GETMBR R10 R4 K25
+ 0x7C1C0600, // 00F8 CALL R7 3
+ 0x900E3007, // 00F9 SETMBR R3 K24 R7
+ 0x4C200000, // 00FA LDNIL R8
+ 0x1C200608, // 00FB EQ R8 R3 R8
+ 0x74220003, // 00FC JMPT R8 #0101
+ 0x88200718, // 00FD GETMBR R8 R3 K24
+ 0x4C240000, // 00FE LDNIL R9
+ 0x1C201009, // 00FF EQ R8 R8 R9
+ 0x7822000C, // 0100 JMPF R8 #010E
+ 0xB8220C00, // 0101 GETNGBL R8 K6
+ 0x58240048, // 0102 LDCONST R9 K72
+ 0x58280008, // 0103 LDCONST R10 K8
+ 0x7C200400, // 0104 CALL R8 2
+ 0x8C200109, // 0105 GETMET R8 R0 K9
+ 0x5C280200, // 0106 MOVE R10 R1
+ 0x582C000A, // 0107 LDCONST R11 K10
+ 0x58300004, // 0108 LDCONST R12 K4
+ 0x5834000A, // 0109 LDCONST R13 K10
+ 0x50380000, // 010A LDBOOL R14 0 0
+ 0x7C200C00, // 010B CALL R8 6
+ 0x50200000, // 010C LDBOOL R8 0 0
+ 0x80041000, // 010D RET 1 R8
+ 0x88200325, // 010E GETMBR R8 R1 K37
+ 0x900E4808, // 010F SETMBR R3 K36 R8
+ 0x8C200726, // 0110 GETMET R8 R3 K38
+ 0x7C200200, // 0111 CALL R8 1
+ 0x88200928, // 0112 GETMBR R8 R4 K40
+ 0x900E4E08, // 0113 SETMBR R3 K39 R8
+ 0x88200115, // 0114 GETMBR R8 R0 K21
+ 0x88201116, // 0115 GETMBR R8 R8 K22
+ 0x8C20112A, // 0116 GETMET R8 R8 K42
+ 0x7C200200, // 0117 CALL R8 1
+ 0x900E5208, // 0118 SETMBR R3 K41 R8
+ 0xB8220C00, // 0119 GETNGBL R8 K6
+ 0x60240018, // 011A GETGBL R9 G24
+ 0x5828002B, // 011B LDCONST R10 K43
+ 0x882C0729, // 011C GETMBR R11 R3 K41
+ 0x8830032C, // 011D GETMBR R12 R1 K44
+ 0x8834032D, // 011E GETMBR R13 R1 K45
+ 0x7C240800, // 011F CALL R9 4
+ 0x58280008, // 0120 LDCONST R10 K8
+ 0x7C200400, // 0121 CALL R8 2
+ 0x8C20052F, // 0122 GETMET R8 R2 K47
+ 0x542A000F, // 0123 LDINT R10 16
+ 0x7C200400, // 0124 CALL R8 2
+ 0x900E5C08, // 0125 SETMBR R3 K46 R8
+ 0x8C20052F, // 0126 GETMET R8 R2 K47
+ 0x542A001F, // 0127 LDINT R10 32
0x7C200400, // 0128 CALL R8 2
- 0x900E5E08, // 0129 SETMBR R3 K47 R8
- 0x8C200530, // 012A GETMET R8 R2 K48
- 0x542A001F, // 012B LDINT R10 32
- 0x7C200400, // 012C CALL R8 2
- 0x900E9208, // 012D SETMBR R3 K73 R8
- 0x8C20054B, // 012E GETMET R8 R2 K75
- 0x7C200200, // 012F CALL R8 1
- 0x8C20114C, // 0130 GETMET R8 R8 K76
- 0x88280749, // 0131 GETMBR R10 R3 K73
+ 0x900E9208, // 0129 SETMBR R3 K73 R8
+ 0x8C20054B, // 012A GETMET R8 R2 K75
+ 0x7C200200, // 012B CALL R8 1
+ 0x8C20114C, // 012C GETMET R8 R8 K76
+ 0x88280749, // 012D GETMBR R10 R3 K73
+ 0x7C200400, // 012E CALL R8 2
+ 0x900E9408, // 012F SETMBR R3 K74 R8
+ 0x8C20052F, // 0130 GETMET R8 R2 K47
+ 0x542A001F, // 0131 LDINT R10 32
0x7C200400, // 0132 CALL R8 2
- 0x900E9408, // 0133 SETMBR R3 K74 R8
- 0x8C200530, // 0134 GETMET R8 R2 K48
- 0x542A001F, // 0135 LDINT R10 32
- 0x7C200400, // 0136 CALL R8 2
- 0x8C24054B, // 0137 GETMET R9 R2 K75
- 0x7C240200, // 0138 CALL R9 1
- 0x8C24134D, // 0139 GETMET R9 R9 K77
- 0x882C0749, // 013A GETMBR R11 R3 K73
- 0x88300913, // 013B GETMBR R12 R4 K19
- 0x7C240600, // 013C CALL R9 3
- 0x900E3E09, // 013D SETMBR R3 K31 R9
- 0xB8261A00, // 013E GETNGBL R9 K13
- 0x8824134E, // 013F GETMBR R9 R9 K78
- 0x8C24134F, // 0140 GETMET R9 R9 K79
- 0x7C240200, // 0141 CALL R9 1
- 0x8C281350, // 0142 GETMET R10 R9 K80
- 0x5830000B, // 0143 LDCONST R12 K11
- 0xB8361A00, // 0144 GETNGBL R13 K13
- 0x88341B4E, // 0145 GETMBR R13 R13 K78
- 0x88341B51, // 0146 GETMBR R13 R13 K81
- 0x8C380F52, // 0147 GETMET R14 R7 K82
- 0x7C380200, // 0148 CALL R14 1
- 0x7C280800, // 0149 CALL R10 4
- 0x8C281350, // 014A GETMET R10 R9 K80
- 0x5830000C, // 014B LDCONST R12 K12
- 0xB8361A00, // 014C GETNGBL R13 K13
- 0x88341B4E, // 014D GETMBR R13 R13 K78
- 0x88341B51, // 014E GETMBR R13 R13 K81
- 0x8C380F53, // 014F GETMET R14 R7 K83
- 0x7C380200, // 0150 CALL R14 1
- 0x7C280800, // 0151 CALL R10 4
- 0x8C281350, // 0152 GETMET R10 R9 K80
- 0x58300009, // 0153 LDCONST R12 K9
- 0xB8361A00, // 0154 GETNGBL R13 K13
- 0x88341B4E, // 0155 GETMBR R13 R13 K78
- 0x88341B51, // 0156 GETMBR R13 R13 K81
- 0x8838074A, // 0157 GETMBR R14 R3 K74
- 0x7C280800, // 0158 CALL R10 4
- 0x8C281350, // 0159 GETMET R10 R9 K80
- 0x54320003, // 015A LDINT R12 4
- 0xB8361A00, // 015B GETNGBL R13 K13
- 0x88341B4E, // 015C GETMBR R13 R13 K78
- 0x88341B51, // 015D GETMBR R13 R13 K81
- 0x88380913, // 015E GETMBR R14 R4 K19
- 0x7C280800, // 015F CALL R10 4
- 0x8C28054B, // 0160 GETMET R10 R2 K75
- 0x7C280200, // 0161 CALL R10 1
- 0x8C281554, // 0162 GETMET R10 R10 K84
- 0x8C300F55, // 0163 GETMET R12 R7 K85
- 0x7C300200, // 0164 CALL R12 1
- 0x8C341338, // 0165 GETMET R13 R9 K56
- 0x7C340200, // 0166 CALL R13 1
- 0x7C280600, // 0167 CALL R10 3
- 0xB82E1A00, // 0168 GETNGBL R11 K13
- 0x882C174E, // 0169 GETMBR R11 R11 K78
- 0x8C2C174F, // 016A GETMET R11 R11 K79
- 0x7C2C0200, // 016B CALL R11 1
- 0x8C301750, // 016C GETMET R12 R11 K80
- 0x5838000B, // 016D LDCONST R14 K11
- 0xB83E1A00, // 016E GETNGBL R15 K13
- 0x883C1F4E, // 016F GETMBR R15 R15 K78
- 0x883C1F51, // 0170 GETMBR R15 R15 K81
- 0x8C400F52, // 0171 GETMET R16 R7 K82
- 0x7C400200, // 0172 CALL R16 1
- 0x7C300800, // 0173 CALL R12 4
- 0x8C301750, // 0174 GETMET R12 R11 K80
- 0x5838000C, // 0175 LDCONST R14 K12
- 0xB83E1A00, // 0176 GETNGBL R15 K13
- 0x883C1F4E, // 0177 GETMBR R15 R15 K78
- 0x883C1F51, // 0178 GETMBR R15 R15 K81
- 0x8C400F53, // 0179 GETMET R16 R7 K83
- 0x7C400200, // 017A CALL R16 1
- 0x7C300800, // 017B CALL R12 4
- 0x8C301750, // 017C GETMET R12 R11 K80
- 0x58380009, // 017D LDCONST R14 K9
- 0xB83E1A00, // 017E GETNGBL R15 K13
- 0x883C1F4E, // 017F GETMBR R15 R15 K78
- 0x883C1F51, // 0180 GETMBR R15 R15 K81
- 0x5C401400, // 0181 MOVE R16 R10
- 0x7C300800, // 0182 CALL R12 4
- 0x8C301750, // 0183 GETMET R12 R11 K80
- 0x543A0003, // 0184 LDINT R14 4
- 0xB83E1A00, // 0185 GETNGBL R15 K13
- 0x883C1F4E, // 0186 GETMBR R15 R15 K78
- 0x883C1F51, // 0187 GETMBR R15 R15 K81
- 0x8840072F, // 0188 GETMBR R16 R3 K47
- 0x7C300800, // 0189 CALL R12 4
- 0x88300956, // 018A GETMBR R12 R4 K86
- 0x900E720C, // 018B SETMBR R3 K57 R12
- 0x8C300557, // 018C GETMET R12 R2 K87
- 0x7C300200, // 018D CALL R12 1
- 0x8C301958, // 018E GETMET R12 R12 K88
- 0x88380739, // 018F GETMBR R14 R3 K57
- 0x7C300400, // 0190 CALL R12 2
- 0x8C301959, // 0191 GETMET R12 R12 K89
- 0x7C300200, // 0192 CALL R12 1
- 0x60340015, // 0193 GETGBL R13 G21
- 0x7C340000, // 0194 CALL R13 0
- 0x8C341B1B, // 0195 GETMET R13 R13 K27
- 0x883C015A, // 0196 GETMBR R15 R0 K90
- 0x7C340400, // 0197 CALL R13 2
- 0x8C380F5B, // 0198 GETMET R14 R7 K91
- 0x7C380200, // 0199 CALL R14 1
- 0x00381C08, // 019A ADD R14 R14 R8
- 0x883C074A, // 019B GETMBR R15 R3 K74
- 0x00381C0F, // 019C ADD R14 R14 R15
- 0x00381C0C, // 019D ADD R14 R14 R12
- 0x8C3C051D, // 019E GETMET R15 R2 K29
- 0x7C3C0200, // 019F CALL R15 1
- 0x8C3C1F1E, // 01A0 GETMET R15 R15 K30
- 0x8844071F, // 01A1 GETMBR R17 R3 K31
- 0x5C481C00, // 01A2 MOVE R18 R14
- 0x5C4C1A00, // 01A3 MOVE R19 R13
- 0x5452000F, // 01A4 LDINT R20 16
- 0x7C3C0A00, // 01A5 CALL R15 5
- 0x8C401738, // 01A6 GETMET R16 R11 K56
- 0x7C400200, // 01A7 CALL R16 1
- 0x8C440522, // 01A8 GETMET R17 R2 K34
- 0x5C4C1E00, // 01A9 MOVE R19 R15
- 0x60500015, // 01AA GETGBL R20 G21
- 0x7C500000, // 01AB CALL R20 0
- 0x8C50291B, // 01AC GETMET R20 R20 K27
- 0x8858015C, // 01AD GETMBR R22 R0 K92
- 0x7C500400, // 01AE CALL R20 2
- 0x60540015, // 01AF GETGBL R21 G21
- 0x7C540000, // 01B0 CALL R21 0
- 0x6058000C, // 01B1 GETGBL R22 G12
- 0x5C5C2000, // 01B2 MOVE R23 R16
- 0x7C580200, // 01B3 CALL R22 1
- 0x545E000F, // 01B4 LDINT R23 16
- 0x7C440C00, // 01B5 CALL R17 6
- 0x8C48235D, // 01B6 GETMET R18 R17 K93
- 0x5C502000, // 01B7 MOVE R20 R16
- 0x7C480400, // 01B8 CALL R18 2
- 0x8C4C2324, // 01B9 GETMET R19 R17 K36
+ 0x8C24054B, // 0133 GETMET R9 R2 K75
+ 0x7C240200, // 0134 CALL R9 1
+ 0x8C24134D, // 0135 GETMET R9 R9 K77
+ 0x882C0749, // 0136 GETMBR R11 R3 K73
+ 0x88300912, // 0137 GETMBR R12 R4 K18
+ 0x7C240600, // 0138 CALL R9 3
+ 0x900E3C09, // 0139 SETMBR R3 K30 R9
+ 0xB8261800, // 013A GETNGBL R9 K12
+ 0x8824134E, // 013B GETMBR R9 R9 K78
+ 0x8C24134F, // 013C GETMET R9 R9 K79
+ 0x7C240200, // 013D CALL R9 1
+ 0x8C281350, // 013E GETMET R10 R9 K80
+ 0x5830000A, // 013F LDCONST R12 K10
+ 0xB8361800, // 0140 GETNGBL R13 K12
+ 0x88341B4E, // 0141 GETMBR R13 R13 K78
+ 0x88341B51, // 0142 GETMBR R13 R13 K81
+ 0x8C380F52, // 0143 GETMET R14 R7 K82
+ 0x7C380200, // 0144 CALL R14 1
+ 0x7C280800, // 0145 CALL R10 4
+ 0x8C281350, // 0146 GETMET R10 R9 K80
+ 0x5830000B, // 0147 LDCONST R12 K11
+ 0xB8361800, // 0148 GETNGBL R13 K12
+ 0x88341B4E, // 0149 GETMBR R13 R13 K78
+ 0x88341B51, // 014A GETMBR R13 R13 K81
+ 0x8C380F53, // 014B GETMET R14 R7 K83
+ 0x7C380200, // 014C CALL R14 1
+ 0x7C280800, // 014D CALL R10 4
+ 0x8C281350, // 014E GETMET R10 R9 K80
+ 0x58300008, // 014F LDCONST R12 K8
+ 0xB8361800, // 0150 GETNGBL R13 K12
+ 0x88341B4E, // 0151 GETMBR R13 R13 K78
+ 0x88341B51, // 0152 GETMBR R13 R13 K81
+ 0x8838074A, // 0153 GETMBR R14 R3 K74
+ 0x7C280800, // 0154 CALL R10 4
+ 0x8C281350, // 0155 GETMET R10 R9 K80
+ 0x54320003, // 0156 LDINT R12 4
+ 0xB8361800, // 0157 GETNGBL R13 K12
+ 0x88341B4E, // 0158 GETMBR R13 R13 K78
+ 0x88341B51, // 0159 GETMBR R13 R13 K81
+ 0x88380912, // 015A GETMBR R14 R4 K18
+ 0x7C280800, // 015B CALL R10 4
+ 0x8C28054B, // 015C GETMET R10 R2 K75
+ 0x7C280200, // 015D CALL R10 1
+ 0x8C281554, // 015E GETMET R10 R10 K84
+ 0x8C300F55, // 015F GETMET R12 R7 K85
+ 0x7C300200, // 0160 CALL R12 1
+ 0x8C341338, // 0161 GETMET R13 R9 K56
+ 0x7C340200, // 0162 CALL R13 1
+ 0x7C280600, // 0163 CALL R10 3
+ 0xB82E1800, // 0164 GETNGBL R11 K12
+ 0x882C174E, // 0165 GETMBR R11 R11 K78
+ 0x8C2C174F, // 0166 GETMET R11 R11 K79
+ 0x7C2C0200, // 0167 CALL R11 1
+ 0x8C301750, // 0168 GETMET R12 R11 K80
+ 0x5838000A, // 0169 LDCONST R14 K10
+ 0xB83E1800, // 016A GETNGBL R15 K12
+ 0x883C1F4E, // 016B GETMBR R15 R15 K78
+ 0x883C1F51, // 016C GETMBR R15 R15 K81
+ 0x8C400F52, // 016D GETMET R16 R7 K82
+ 0x7C400200, // 016E CALL R16 1
+ 0x7C300800, // 016F CALL R12 4
+ 0x8C301750, // 0170 GETMET R12 R11 K80
+ 0x5838000B, // 0171 LDCONST R14 K11
+ 0xB83E1800, // 0172 GETNGBL R15 K12
+ 0x883C1F4E, // 0173 GETMBR R15 R15 K78
+ 0x883C1F51, // 0174 GETMBR R15 R15 K81
+ 0x8C400F53, // 0175 GETMET R16 R7 K83
+ 0x7C400200, // 0176 CALL R16 1
+ 0x7C300800, // 0177 CALL R12 4
+ 0x8C301750, // 0178 GETMET R12 R11 K80
+ 0x58380008, // 0179 LDCONST R14 K8
+ 0xB83E1800, // 017A GETNGBL R15 K12
+ 0x883C1F4E, // 017B GETMBR R15 R15 K78
+ 0x883C1F51, // 017C GETMBR R15 R15 K81
+ 0x5C401400, // 017D MOVE R16 R10
+ 0x7C300800, // 017E CALL R12 4
+ 0x8C301750, // 017F GETMET R12 R11 K80
+ 0x543A0003, // 0180 LDINT R14 4
+ 0xB83E1800, // 0181 GETNGBL R15 K12
+ 0x883C1F4E, // 0182 GETMBR R15 R15 K78
+ 0x883C1F51, // 0183 GETMBR R15 R15 K81
+ 0x8840072E, // 0184 GETMBR R16 R3 K46
+ 0x7C300800, // 0185 CALL R12 4
+ 0x88300956, // 0186 GETMBR R12 R4 K86
+ 0x900E720C, // 0187 SETMBR R3 K57 R12
+ 0x8C300557, // 0188 GETMET R12 R2 K87
+ 0x7C300200, // 0189 CALL R12 1
+ 0x8C301958, // 018A GETMET R12 R12 K88
+ 0x88380739, // 018B GETMBR R14 R3 K57
+ 0x7C300400, // 018C CALL R12 2
+ 0x8C301959, // 018D GETMET R12 R12 K89
+ 0x7C300200, // 018E CALL R12 1
+ 0x60340015, // 018F GETGBL R13 G21
+ 0x7C340000, // 0190 CALL R13 0
+ 0x8C341B1A, // 0191 GETMET R13 R13 K26
+ 0x883C015A, // 0192 GETMBR R15 R0 K90
+ 0x7C340400, // 0193 CALL R13 2
+ 0x8C380F5B, // 0194 GETMET R14 R7 K91
+ 0x7C380200, // 0195 CALL R14 1
+ 0x00381C08, // 0196 ADD R14 R14 R8
+ 0x883C074A, // 0197 GETMBR R15 R3 K74
+ 0x00381C0F, // 0198 ADD R14 R14 R15
+ 0x00381C0C, // 0199 ADD R14 R14 R12
+ 0x8C3C051C, // 019A GETMET R15 R2 K28
+ 0x7C3C0200, // 019B CALL R15 1
+ 0x8C3C1F1D, // 019C GETMET R15 R15 K29
+ 0x8844071E, // 019D GETMBR R17 R3 K30
+ 0x5C481C00, // 019E MOVE R18 R14
+ 0x5C4C1A00, // 019F MOVE R19 R13
+ 0x5452000F, // 01A0 LDINT R20 16
+ 0x7C3C0A00, // 01A1 CALL R15 5
+ 0x8C401738, // 01A2 GETMET R16 R11 K56
+ 0x7C400200, // 01A3 CALL R16 1
+ 0x8C440521, // 01A4 GETMET R17 R2 K33
+ 0x5C4C1E00, // 01A5 MOVE R19 R15
+ 0x60500015, // 01A6 GETGBL R20 G21
+ 0x7C500000, // 01A7 CALL R20 0
+ 0x8C50291A, // 01A8 GETMET R20 R20 K26
+ 0x8858015C, // 01A9 GETMBR R22 R0 K92
+ 0x7C500400, // 01AA CALL R20 2
+ 0x60540015, // 01AB GETGBL R21 G21
+ 0x7C540000, // 01AC CALL R21 0
+ 0x6058000C, // 01AD GETGBL R22 G12
+ 0x5C5C2000, // 01AE MOVE R23 R16
+ 0x7C580200, // 01AF CALL R22 1
+ 0x545E000F, // 01B0 LDINT R23 16
+ 0x7C440C00, // 01B1 CALL R17 6
+ 0x8C48235D, // 01B2 GETMET R18 R17 K93
+ 0x5C502000, // 01B3 MOVE R20 R16
+ 0x7C480400, // 01B4 CALL R18 2
+ 0x8C4C2323, // 01B5 GETMET R19 R17 K35
+ 0x7C4C0200, // 01B6 CALL R19 1
+ 0x00482413, // 01B7 ADD R18 R18 R19
+ 0xB84E1800, // 01B8 GETNGBL R19 K12
+ 0x8C4C275E, // 01B9 GETMET R19 R19 K94
0x7C4C0200, // 01BA CALL R19 1
- 0x00482413, // 01BB ADD R18 R18 R19
- 0xB84E1A00, // 01BC GETNGBL R19 K13
- 0x8C4C275E, // 01BD GETMET R19 R19 K94
- 0x7C4C0200, // 01BE CALL R19 1
- 0x904EBE08, // 01BF SETMBR R19 K95 R8
- 0x8850072A, // 01C0 GETMBR R20 R3 K42
- 0x904EC014, // 01C1 SETMBR R19 K96 R20
- 0x8850074A, // 01C2 GETMBR R20 R3 K74
- 0x904EC214, // 01C3 SETMBR R19 K97 R20
- 0x904EC412, // 01C4 SETMBR R19 K98 R18
- 0x8C502738, // 01C5 GETMET R20 R19 K56
- 0x7C500200, // 01C6 CALL R20 1
- 0x900EC614, // 01C7 SETMBR R3 K99 R20
- 0x8C54033A, // 01C8 GETMET R21 R1 K58
- 0x545E0030, // 01C9 LDINT R23 49
- 0x50600200, // 01CA LDBOOL R24 1 0
- 0x7C540600, // 01CB CALL R21 3
- 0x8C582B3B, // 01CC GETMET R22 R21 K59
- 0x5C602800, // 01CD MOVE R24 R20
- 0x7C580400, // 01CE CALL R22 2
- 0xB85E0C00, // 01CF GETNGBL R23 K6
- 0x8C5C2F07, // 01D0 GETMET R23 R23 K7
- 0x60640018, // 01D1 GETGBL R25 G24
- 0x58680064, // 01D2 LDCONST R26 K100
- 0x886C072A, // 01D3 GETMBR R27 R3 K42
- 0x88700765, // 01D4 GETMBR R28 R3 K101
- 0x88740766, // 01D5 GETMBR R29 R3 K102
- 0x7C640800, // 01D6 CALL R25 4
- 0x5868000C, // 01D7 LDCONST R26 K12
- 0x7C5C0600, // 01D8 CALL R23 3
- 0x885C013C, // 01D9 GETMBR R23 R0 K60
- 0x8C5C2F3D, // 01DA GETMET R23 R23 K61
- 0x5C642A00, // 01DB MOVE R25 R21
- 0x7C5C0400, // 01DC CALL R23 2
- 0x505C0200, // 01DD LDBOOL R23 1 0
- 0x80042E00, // 01DE RET 1 R23
- 0x501C0200, // 01DF LDBOOL R7 1 0
- 0x80040E00, // 01E0 RET 1 R7
+ 0x904EBE08, // 01BB SETMBR R19 K95 R8
+ 0x88500729, // 01BC GETMBR R20 R3 K41
+ 0x904EC014, // 01BD SETMBR R19 K96 R20
+ 0x8850074A, // 01BE GETMBR R20 R3 K74
+ 0x904EC214, // 01BF SETMBR R19 K97 R20
+ 0x904EC412, // 01C0 SETMBR R19 K98 R18
+ 0x8C502738, // 01C1 GETMET R20 R19 K56
+ 0x7C500200, // 01C2 CALL R20 1
+ 0x900EC614, // 01C3 SETMBR R3 K99 R20
+ 0x8C54033A, // 01C4 GETMET R21 R1 K58
+ 0x545E0030, // 01C5 LDINT R23 49
+ 0x50600200, // 01C6 LDBOOL R24 1 0
+ 0x7C540600, // 01C7 CALL R21 3
+ 0x8C582B3B, // 01C8 GETMET R22 R21 K59
+ 0x5C602800, // 01C9 MOVE R24 R20
+ 0x7C580400, // 01CA CALL R22 2
+ 0xB85E0C00, // 01CB GETNGBL R23 K6
+ 0x60600018, // 01CC GETGBL R24 G24
+ 0x58640064, // 01CD LDCONST R25 K100
+ 0x88680729, // 01CE GETMBR R26 R3 K41
+ 0x886C0765, // 01CF GETMBR R27 R3 K101
+ 0x88700766, // 01D0 GETMBR R28 R3 K102
+ 0x7C600800, // 01D1 CALL R24 4
+ 0x5864000B, // 01D2 LDCONST R25 K11
+ 0x7C5C0400, // 01D3 CALL R23 2
+ 0x885C013C, // 01D4 GETMBR R23 R0 K60
+ 0x8C5C2F3D, // 01D5 GETMET R23 R23 K61
+ 0x5C642A00, // 01D6 MOVE R25 R21
+ 0x7C5C0400, // 01D7 CALL R23 2
+ 0x505C0200, // 01D8 LDBOOL R23 1 0
+ 0x80042E00, // 01D9 RET 1 R23
+ 0x501C0200, // 01DA LDBOOL R7 1 0
+ 0x80040E00, // 01DB RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning_Data.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning_Data.h
index 89b84b3fa..caf7aa635 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning_Data.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning_Data.h
@@ -12,7 +12,7 @@ extern const bclass be_class_Matter_PBKDFParamRequest;
extern const bclass be_class_Matter_PBKDFParamRequest;
be_local_closure(class_Matter_PBKDFParamRequest_parse, /* name */
be_nested_proto(
- 8, /* nstack */
+ 9, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -21,9 +21,9 @@ be_local_closure(class_Matter_PBKDFParamRequest_parse, /* name */
&be_class_Matter_PBKDFParamRequest,
1, /* has constants */
( &(const bvalue[16]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(TLV),
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_const_int(0),
/* K3 */ be_nested_str_weak(parse),
/* K4 */ be_nested_str_weak(initiatorRandom),
/* K5 */ be_nested_str_weak(getsubval),
@@ -41,46 +41,46 @@ be_local_closure(class_Matter_PBKDFParamRequest_parse, /* name */
be_str_weak(parse),
&be_const_str_solidified,
( &(const binstruction[41]) { /* code */
- 0x4C0C0000, // 0000 LDNIL R3
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0000, // 0002 JMPF R3 #0004
- 0x58080000, // 0003 LDCONST R2 K0
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x880C0702, // 0005 GETMBR R3 R3 K2
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x5C140200, // 0007 MOVE R5 R1
- 0x5C180400, // 0008 MOVE R6 R2
- 0x7C0C0600, // 0009 CALL R3 3
- 0x8C100705, // 000A GETMET R4 R3 K5
- 0x58180006, // 000B LDCONST R6 K6
- 0x7C100400, // 000C CALL R4 2
- 0x90020804, // 000D SETMBR R0 K4 R4
- 0x8C100705, // 000E GETMET R4 R3 K5
- 0x58180008, // 000F LDCONST R6 K8
- 0x7C100400, // 0010 CALL R4 2
- 0x90020E04, // 0011 SETMBR R0 K7 R4
- 0x8C100705, // 0012 GETMET R4 R3 K5
- 0x5818000A, // 0013 LDCONST R6 K10
- 0x7C100400, // 0014 CALL R4 2
- 0x90021204, // 0015 SETMBR R0 K9 R4
- 0x8C100705, // 0016 GETMET R4 R3 K5
- 0x541A0003, // 0017 LDINT R6 4
- 0x7C100400, // 0018 CALL R4 2
- 0x90021604, // 0019 SETMBR R0 K11 R4
- 0x8C10070C, // 001A GETMET R4 R3 K12
- 0x541A0004, // 001B LDINT R6 5
- 0x7C100400, // 001C CALL R4 2
- 0x4C140000, // 001D LDNIL R5
- 0x20140805, // 001E NE R5 R4 R5
- 0x78160007, // 001F JMPF R5 #0028
- 0x8C14090E, // 0020 GETMET R5 R4 K14
- 0x581C0006, // 0021 LDCONST R7 K6
- 0x7C140400, // 0022 CALL R5 2
- 0x90021A05, // 0023 SETMBR R0 K13 R5
- 0x8C14090E, // 0024 GETMET R5 R4 K14
- 0x581C0008, // 0025 LDCONST R7 K8
- 0x7C140400, // 0026 CALL R5 2
- 0x90021E05, // 0027 SETMBR R0 K15 R5
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x880C0701, // 0001 GETMBR R3 R3 K1
+ 0x4C100000, // 0002 LDNIL R4
+ 0x1C100404, // 0003 EQ R4 R2 R4
+ 0x78120000, // 0004 JMPF R4 #0006
+ 0x58080002, // 0005 LDCONST R2 K2
+ 0x8C100703, // 0006 GETMET R4 R3 K3
+ 0x5C180200, // 0007 MOVE R6 R1
+ 0x5C1C0400, // 0008 MOVE R7 R2
+ 0x7C100600, // 0009 CALL R4 3
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x581C0006, // 000B LDCONST R7 K6
+ 0x7C140400, // 000C CALL R5 2
+ 0x90020805, // 000D SETMBR R0 K4 R5
+ 0x8C140905, // 000E GETMET R5 R4 K5
+ 0x581C0008, // 000F LDCONST R7 K8
+ 0x7C140400, // 0010 CALL R5 2
+ 0x90020E05, // 0011 SETMBR R0 K7 R5
+ 0x8C140905, // 0012 GETMET R5 R4 K5
+ 0x581C000A, // 0013 LDCONST R7 K10
+ 0x7C140400, // 0014 CALL R5 2
+ 0x90021205, // 0015 SETMBR R0 K9 R5
+ 0x8C140905, // 0016 GETMET R5 R4 K5
+ 0x541E0003, // 0017 LDINT R7 4
+ 0x7C140400, // 0018 CALL R5 2
+ 0x90021605, // 0019 SETMBR R0 K11 R5
+ 0x8C14090C, // 001A GETMET R5 R4 K12
+ 0x541E0004, // 001B LDINT R7 5
+ 0x7C140400, // 001C CALL R5 2
+ 0x4C180000, // 001D LDNIL R6
+ 0x20180A06, // 001E NE R6 R5 R6
+ 0x781A0007, // 001F JMPF R6 #0028
+ 0x8C180B0E, // 0020 GETMET R6 R5 K14
+ 0x58200006, // 0021 LDCONST R8 K6
+ 0x7C180400, // 0022 CALL R6 2
+ 0x90021A06, // 0023 SETMBR R0 K13 R6
+ 0x8C180B0E, // 0024 GETMET R6 R5 K14
+ 0x58200008, // 0025 LDCONST R8 K8
+ 0x7C180400, // 0026 CALL R6 2
+ 0x90021E06, // 0027 SETMBR R0 K15 R6
0x80040000, // 0028 RET 1 R0
})
)
@@ -115,7 +115,7 @@ extern const bclass be_class_Matter_PBKDFParamResponse;
extern const bclass be_class_Matter_PBKDFParamResponse;
be_local_closure(class_Matter_PBKDFParamResponse_tlv2raw, /* name */
be_nested_proto(
- 10, /* nstack */
+ 11, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -146,78 +146,64 @@ be_local_closure(class_Matter_PBKDFParamResponse_tlv2raw, /* name */
}),
be_str_weak(tlv2raw),
&be_const_str_solidified,
- ( &(const binstruction[71]) { /* code */
+ ( &(const binstruction[57]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x88080501, // 0001 GETMBR R2 R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0x8C0C0503, // 0004 GETMET R3 R2 K3
- 0x58140004, // 0005 LDCONST R5 K4
- 0xB81A0000, // 0006 GETNGBL R6 K0
- 0x88180D01, // 0007 GETMBR R6 R6 K1
- 0x88180D05, // 0008 GETMBR R6 R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x7C0C0800, // 000A CALL R3 4
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x58140007, // 000C LDCONST R5 K7
- 0xB81A0000, // 000D GETNGBL R6 K0
- 0x88180D01, // 000E GETMBR R6 R6 K1
- 0x88180D05, // 000F GETMBR R6 R6 K5
- 0x881C0108, // 0010 GETMBR R7 R0 K8
- 0x7C0C0800, // 0011 CALL R3 4
- 0x8C0C0503, // 0012 GETMET R3 R2 K3
- 0x58140009, // 0013 LDCONST R5 K9
- 0xB81A0000, // 0014 GETNGBL R6 K0
- 0x88180D01, // 0015 GETMBR R6 R6 K1
- 0x88180D0A, // 0016 GETMBR R6 R6 K10
- 0x881C010B, // 0017 GETMBR R7 R0 K11
- 0x7C0C0800, // 0018 CALL R3 4
- 0x8C0C050C, // 0019 GETMET R3 R2 K12
- 0x54160003, // 001A LDINT R5 4
- 0x7C0C0400, // 001B CALL R3 2
- 0x8C100703, // 001C GETMET R4 R3 K3
- 0x58180004, // 001D LDCONST R6 K4
- 0xB81E0000, // 001E GETNGBL R7 K0
- 0x881C0F01, // 001F GETMBR R7 R7 K1
- 0x881C0F0D, // 0020 GETMBR R7 R7 K13
- 0x8820010E, // 0021 GETMBR R8 R0 K14
- 0x7C100800, // 0022 CALL R4 4
- 0x8C100703, // 0023 GETMET R4 R3 K3
- 0x58180007, // 0024 LDCONST R6 K7
- 0xB81E0000, // 0025 GETNGBL R7 K0
- 0x881C0F01, // 0026 GETMBR R7 R7 K1
- 0x881C0F05, // 0027 GETMBR R7 R7 K5
- 0x8820010F, // 0028 GETMBR R8 R0 K15
- 0x7C100800, // 0029 CALL R4 4
- 0x88100110, // 002A GETMBR R4 R0 K16
- 0x4C140000, // 002B LDNIL R5
- 0x20100805, // 002C NE R4 R4 R5
- 0x74120003, // 002D JMPT R4 #0032
- 0x88100111, // 002E GETMBR R4 R0 K17
- 0x4C140000, // 002F LDNIL R5
- 0x20100805, // 0030 NE R4 R4 R5
- 0x78120010, // 0031 JMPF R4 #0043
- 0x8C10050C, // 0032 GETMET R4 R2 K12
- 0x541A0004, // 0033 LDINT R6 5
- 0x7C100400, // 0034 CALL R4 2
- 0x8C140903, // 0035 GETMET R5 R4 K3
- 0x581C0004, // 0036 LDCONST R7 K4
- 0xB8220000, // 0037 GETNGBL R8 K0
- 0x88201101, // 0038 GETMBR R8 R8 K1
- 0x8820110D, // 0039 GETMBR R8 R8 K13
- 0x88240110, // 003A GETMBR R9 R0 K16
- 0x7C140800, // 003B CALL R5 4
- 0x8C140903, // 003C GETMET R5 R4 K3
- 0x581C0007, // 003D LDCONST R7 K7
- 0xB8220000, // 003E GETNGBL R8 K0
- 0x88201101, // 003F GETMBR R8 R8 K1
- 0x8820110D, // 0040 GETMBR R8 R8 K13
- 0x88240111, // 0041 GETMBR R9 R0 K17
- 0x7C140800, // 0042 CALL R5 4
- 0x8C100512, // 0043 GETMET R4 R2 K18
- 0x5C180200, // 0044 MOVE R6 R1
- 0x7C100400, // 0045 CALL R4 2
- 0x80040800, // 0046 RET 1 R4
+ 0x8C0C0502, // 0002 GETMET R3 R2 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C100703, // 0004 GETMET R4 R3 K3
+ 0x58180004, // 0005 LDCONST R6 K4
+ 0x881C0505, // 0006 GETMBR R7 R2 K5
+ 0x88200106, // 0007 GETMBR R8 R0 K6
+ 0x7C100800, // 0008 CALL R4 4
+ 0x8C100703, // 0009 GETMET R4 R3 K3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x881C0505, // 000B GETMBR R7 R2 K5
+ 0x88200108, // 000C GETMBR R8 R0 K8
+ 0x7C100800, // 000D CALL R4 4
+ 0x8C100703, // 000E GETMET R4 R3 K3
+ 0x58180009, // 000F LDCONST R6 K9
+ 0x881C050A, // 0010 GETMBR R7 R2 K10
+ 0x8820010B, // 0011 GETMBR R8 R0 K11
+ 0x7C100800, // 0012 CALL R4 4
+ 0x8C10070C, // 0013 GETMET R4 R3 K12
+ 0x541A0003, // 0014 LDINT R6 4
+ 0x7C100400, // 0015 CALL R4 2
+ 0x8C140903, // 0016 GETMET R5 R4 K3
+ 0x581C0004, // 0017 LDCONST R7 K4
+ 0x8820050D, // 0018 GETMBR R8 R2 K13
+ 0x8824010E, // 0019 GETMBR R9 R0 K14
+ 0x7C140800, // 001A CALL R5 4
+ 0x8C140903, // 001B GETMET R5 R4 K3
+ 0x581C0007, // 001C LDCONST R7 K7
+ 0x88200505, // 001D GETMBR R8 R2 K5
+ 0x8824010F, // 001E GETMBR R9 R0 K15
+ 0x7C140800, // 001F CALL R5 4
+ 0x88140110, // 0020 GETMBR R5 R0 K16
+ 0x4C180000, // 0021 LDNIL R6
+ 0x20140A06, // 0022 NE R5 R5 R6
+ 0x74160003, // 0023 JMPT R5 #0028
+ 0x88140111, // 0024 GETMBR R5 R0 K17
+ 0x4C180000, // 0025 LDNIL R6
+ 0x20140A06, // 0026 NE R5 R5 R6
+ 0x7816000C, // 0027 JMPF R5 #0035
+ 0x8C14070C, // 0028 GETMET R5 R3 K12
+ 0x541E0004, // 0029 LDINT R7 5
+ 0x7C140400, // 002A CALL R5 2
+ 0x8C180B03, // 002B GETMET R6 R5 K3
+ 0x58200004, // 002C LDCONST R8 K4
+ 0x8824050D, // 002D GETMBR R9 R2 K13
+ 0x88280110, // 002E GETMBR R10 R0 K16
+ 0x7C180800, // 002F CALL R6 4
+ 0x8C180B03, // 0030 GETMET R6 R5 K3
+ 0x58200007, // 0031 LDCONST R8 K7
+ 0x8824050D, // 0032 GETMBR R9 R2 K13
+ 0x88280111, // 0033 GETMBR R10 R0 K17
+ 0x7C180800, // 0034 CALL R6 4
+ 0x8C140712, // 0035 GETMET R5 R3 K18
+ 0x5C1C0200, // 0036 MOVE R7 R1
+ 0x7C140400, // 0037 CALL R5 2
+ 0x80040A00, // 0038 RET 1 R5
})
)
);
@@ -315,7 +301,7 @@ extern const bclass be_class_Matter_Pake2;
extern const bclass be_class_Matter_Pake2;
be_local_closure(class_Matter_Pake2_tlv2raw, /* name */
be_nested_proto(
- 8, /* nstack */
+ 9, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -337,29 +323,25 @@ be_local_closure(class_Matter_Pake2_tlv2raw, /* name */
}),
be_str_weak(tlv2raw),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
+ ( &(const binstruction[18]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x88080501, // 0001 GETMBR R2 R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0x8C0C0503, // 0004 GETMET R3 R2 K3
- 0x58140004, // 0005 LDCONST R5 K4
- 0xB81A0000, // 0006 GETNGBL R6 K0
- 0x88180D01, // 0007 GETMBR R6 R6 K1
- 0x88180D05, // 0008 GETMBR R6 R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x7C0C0800, // 000A CALL R3 4
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x58140007, // 000C LDCONST R5 K7
- 0xB81A0000, // 000D GETNGBL R6 K0
- 0x88180D01, // 000E GETMBR R6 R6 K1
- 0x88180D05, // 000F GETMBR R6 R6 K5
- 0x881C0108, // 0010 GETMBR R7 R0 K8
- 0x7C0C0800, // 0011 CALL R3 4
- 0x8C0C0509, // 0012 GETMET R3 R2 K9
- 0x5C140200, // 0013 MOVE R5 R1
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80040600, // 0015 RET 1 R3
+ 0x8C0C0502, // 0002 GETMET R3 R2 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C100703, // 0004 GETMET R4 R3 K3
+ 0x58180004, // 0005 LDCONST R6 K4
+ 0x881C0505, // 0006 GETMBR R7 R2 K5
+ 0x88200106, // 0007 GETMBR R8 R0 K6
+ 0x7C100800, // 0008 CALL R4 4
+ 0x8C100703, // 0009 GETMET R4 R3 K3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x881C0505, // 000B GETMBR R7 R2 K5
+ 0x88200108, // 000C GETMBR R8 R0 K8
+ 0x7C100800, // 000D CALL R4 4
+ 0x8C100709, // 000E GETMET R4 R3 K9
+ 0x5C180200, // 000F MOVE R6 R1
+ 0x7C100400, // 0010 CALL R4 2
+ 0x80040800, // 0011 RET 1 R4
})
)
);
@@ -573,7 +555,7 @@ extern const bclass be_class_Matter_Sigma2;
extern const bclass be_class_Matter_Sigma2;
be_local_closure(class_Matter_Sigma2_tlv2raw, /* name */
be_nested_proto(
- 9, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -603,68 +585,56 @@ be_local_closure(class_Matter_Sigma2_tlv2raw, /* name */
}),
be_str_weak(tlv2raw),
&be_const_str_solidified,
- ( &(const binstruction[61]) { /* code */
+ ( &(const binstruction[49]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x88080501, // 0001 GETMBR R2 R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0x8C0C0503, // 0004 GETMET R3 R2 K3
- 0x58140004, // 0005 LDCONST R5 K4
- 0xB81A0000, // 0006 GETNGBL R6 K0
- 0x88180D01, // 0007 GETMBR R6 R6 K1
- 0x88180D05, // 0008 GETMBR R6 R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x7C0C0800, // 000A CALL R3 4
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x58140007, // 000C LDCONST R5 K7
- 0xB81A0000, // 000D GETNGBL R6 K0
- 0x88180D01, // 000E GETMBR R6 R6 K1
- 0x88180D08, // 000F GETMBR R6 R6 K8
- 0x881C0109, // 0010 GETMBR R7 R0 K9
- 0x7C0C0800, // 0011 CALL R3 4
- 0x8C0C0503, // 0012 GETMET R3 R2 K3
- 0x5814000A, // 0013 LDCONST R5 K10
- 0xB81A0000, // 0014 GETNGBL R6 K0
- 0x88180D01, // 0015 GETMBR R6 R6 K1
- 0x88180D05, // 0016 GETMBR R6 R6 K5
- 0x881C010B, // 0017 GETMBR R7 R0 K11
- 0x7C0C0800, // 0018 CALL R3 4
- 0x8C0C0503, // 0019 GETMET R3 R2 K3
- 0x54160003, // 001A LDINT R5 4
- 0xB81A0000, // 001B GETNGBL R6 K0
- 0x88180D01, // 001C GETMBR R6 R6 K1
- 0x88180D05, // 001D GETMBR R6 R6 K5
- 0x881C010C, // 001E GETMBR R7 R0 K12
- 0x7C0C0800, // 001F CALL R3 4
- 0x880C010D, // 0020 GETMBR R3 R0 K13
- 0x4C100000, // 0021 LDNIL R4
- 0x200C0604, // 0022 NE R3 R3 R4
- 0x740E0003, // 0023 JMPT R3 #0028
- 0x880C010E, // 0024 GETMBR R3 R0 K14
- 0x4C100000, // 0025 LDNIL R4
- 0x200C0604, // 0026 NE R3 R3 R4
- 0x780E0010, // 0027 JMPF R3 #0039
- 0x8C0C050F, // 0028 GETMET R3 R2 K15
- 0x54160004, // 0029 LDINT R5 5
- 0x7C0C0400, // 002A CALL R3 2
- 0x8C100703, // 002B GETMET R4 R3 K3
- 0x58180004, // 002C LDCONST R6 K4
- 0xB81E0000, // 002D GETNGBL R7 K0
- 0x881C0F01, // 002E GETMBR R7 R7 K1
- 0x881C0F10, // 002F GETMBR R7 R7 K16
- 0x8820010D, // 0030 GETMBR R8 R0 K13
- 0x7C100800, // 0031 CALL R4 4
- 0x8C100703, // 0032 GETMET R4 R3 K3
- 0x58180007, // 0033 LDCONST R6 K7
- 0xB81E0000, // 0034 GETNGBL R7 K0
- 0x881C0F01, // 0035 GETMBR R7 R7 K1
- 0x881C0F10, // 0036 GETMBR R7 R7 K16
- 0x8820010E, // 0037 GETMBR R8 R0 K14
- 0x7C100800, // 0038 CALL R4 4
- 0x8C0C0511, // 0039 GETMET R3 R2 K17
- 0x5C140200, // 003A MOVE R5 R1
- 0x7C0C0400, // 003B CALL R3 2
- 0x80040600, // 003C RET 1 R3
+ 0x8C0C0502, // 0002 GETMET R3 R2 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C100703, // 0004 GETMET R4 R3 K3
+ 0x58180004, // 0005 LDCONST R6 K4
+ 0x881C0505, // 0006 GETMBR R7 R2 K5
+ 0x88200106, // 0007 GETMBR R8 R0 K6
+ 0x7C100800, // 0008 CALL R4 4
+ 0x8C100703, // 0009 GETMET R4 R3 K3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x881C0508, // 000B GETMBR R7 R2 K8
+ 0x88200109, // 000C GETMBR R8 R0 K9
+ 0x7C100800, // 000D CALL R4 4
+ 0x8C100703, // 000E GETMET R4 R3 K3
+ 0x5818000A, // 000F LDCONST R6 K10
+ 0x881C0505, // 0010 GETMBR R7 R2 K5
+ 0x8820010B, // 0011 GETMBR R8 R0 K11
+ 0x7C100800, // 0012 CALL R4 4
+ 0x8C100703, // 0013 GETMET R4 R3 K3
+ 0x541A0003, // 0014 LDINT R6 4
+ 0x881C0505, // 0015 GETMBR R7 R2 K5
+ 0x8820010C, // 0016 GETMBR R8 R0 K12
+ 0x7C100800, // 0017 CALL R4 4
+ 0x8810010D, // 0018 GETMBR R4 R0 K13
+ 0x4C140000, // 0019 LDNIL R5
+ 0x20100805, // 001A NE R4 R4 R5
+ 0x74120003, // 001B JMPT R4 #0020
+ 0x8810010E, // 001C GETMBR R4 R0 K14
+ 0x4C140000, // 001D LDNIL R5
+ 0x20100805, // 001E NE R4 R4 R5
+ 0x7812000C, // 001F JMPF R4 #002D
+ 0x8C10070F, // 0020 GETMET R4 R3 K15
+ 0x541A0004, // 0021 LDINT R6 5
+ 0x7C100400, // 0022 CALL R4 2
+ 0x8C140903, // 0023 GETMET R5 R4 K3
+ 0x581C0004, // 0024 LDCONST R7 K4
+ 0x88200510, // 0025 GETMBR R8 R2 K16
+ 0x8824010D, // 0026 GETMBR R9 R0 K13
+ 0x7C140800, // 0027 CALL R5 4
+ 0x8C140903, // 0028 GETMET R5 R4 K3
+ 0x581C0007, // 0029 LDCONST R7 K7
+ 0x88200510, // 002A GETMBR R8 R2 K16
+ 0x8824010E, // 002B GETMBR R9 R0 K14
+ 0x7C140800, // 002C CALL R5 4
+ 0x8C100711, // 002D GETMET R4 R3 K17
+ 0x5C180200, // 002E MOVE R6 R1
+ 0x7C100400, // 002F CALL R4 2
+ 0x80040800, // 0030 RET 1 R4
})
)
);
@@ -698,7 +668,7 @@ extern const bclass be_class_Matter_Sigma2Resume;
extern const bclass be_class_Matter_Sigma2Resume;
be_local_closure(class_Matter_Sigma2Resume_tlv2raw, /* name */
be_nested_proto(
- 9, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -727,61 +697,51 @@ be_local_closure(class_Matter_Sigma2Resume_tlv2raw, /* name */
}),
be_str_weak(tlv2raw),
&be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
+ ( &(const binstruction[44]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x88080501, // 0001 GETMBR R2 R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0x8C0C0503, // 0004 GETMET R3 R2 K3
- 0x58140004, // 0005 LDCONST R5 K4
- 0xB81A0000, // 0006 GETNGBL R6 K0
- 0x88180D01, // 0007 GETMBR R6 R6 K1
- 0x88180D05, // 0008 GETMBR R6 R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x7C0C0800, // 000A CALL R3 4
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x58140007, // 000C LDCONST R5 K7
- 0xB81A0000, // 000D GETNGBL R6 K0
- 0x88180D01, // 000E GETMBR R6 R6 K1
- 0x88180D05, // 000F GETMBR R6 R6 K5
- 0x881C0108, // 0010 GETMBR R7 R0 K8
- 0x7C0C0800, // 0011 CALL R3 4
- 0x8C0C0503, // 0012 GETMET R3 R2 K3
- 0x58140009, // 0013 LDCONST R5 K9
- 0xB81A0000, // 0014 GETNGBL R6 K0
- 0x88180D01, // 0015 GETMBR R6 R6 K1
- 0x88180D0A, // 0016 GETMBR R6 R6 K10
- 0x881C010B, // 0017 GETMBR R7 R0 K11
- 0x7C0C0800, // 0018 CALL R3 4
- 0x880C010C, // 0019 GETMBR R3 R0 K12
- 0x4C100000, // 001A LDNIL R4
- 0x200C0604, // 001B NE R3 R3 R4
- 0x740E0003, // 001C JMPT R3 #0021
- 0x880C010D, // 001D GETMBR R3 R0 K13
- 0x4C100000, // 001E LDNIL R4
- 0x200C0604, // 001F NE R3 R3 R4
- 0x780E0010, // 0020 JMPF R3 #0032
- 0x8C0C050E, // 0021 GETMET R3 R2 K14
- 0x54160003, // 0022 LDINT R5 4
- 0x7C0C0400, // 0023 CALL R3 2
- 0x8C100703, // 0024 GETMET R4 R3 K3
- 0x58180004, // 0025 LDCONST R6 K4
- 0xB81E0000, // 0026 GETNGBL R7 K0
- 0x881C0F01, // 0027 GETMBR R7 R7 K1
- 0x881C0F0F, // 0028 GETMBR R7 R7 K15
- 0x8820010C, // 0029 GETMBR R8 R0 K12
- 0x7C100800, // 002A CALL R4 4
- 0x8C100703, // 002B GETMET R4 R3 K3
- 0x58180007, // 002C LDCONST R6 K7
- 0xB81E0000, // 002D GETNGBL R7 K0
- 0x881C0F01, // 002E GETMBR R7 R7 K1
- 0x881C0F0F, // 002F GETMBR R7 R7 K15
- 0x8820010D, // 0030 GETMBR R8 R0 K13
- 0x7C100800, // 0031 CALL R4 4
- 0x8C0C0510, // 0032 GETMET R3 R2 K16
- 0x5C140200, // 0033 MOVE R5 R1
- 0x7C0C0400, // 0034 CALL R3 2
- 0x80040600, // 0035 RET 1 R3
+ 0x8C0C0502, // 0002 GETMET R3 R2 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C100703, // 0004 GETMET R4 R3 K3
+ 0x58180004, // 0005 LDCONST R6 K4
+ 0x881C0505, // 0006 GETMBR R7 R2 K5
+ 0x88200106, // 0007 GETMBR R8 R0 K6
+ 0x7C100800, // 0008 CALL R4 4
+ 0x8C100703, // 0009 GETMET R4 R3 K3
+ 0x58180007, // 000A LDCONST R6 K7
+ 0x881C0505, // 000B GETMBR R7 R2 K5
+ 0x88200108, // 000C GETMBR R8 R0 K8
+ 0x7C100800, // 000D CALL R4 4
+ 0x8C100703, // 000E GETMET R4 R3 K3
+ 0x58180009, // 000F LDCONST R6 K9
+ 0x881C050A, // 0010 GETMBR R7 R2 K10
+ 0x8820010B, // 0011 GETMBR R8 R0 K11
+ 0x7C100800, // 0012 CALL R4 4
+ 0x8810010C, // 0013 GETMBR R4 R0 K12
+ 0x4C140000, // 0014 LDNIL R5
+ 0x20100805, // 0015 NE R4 R4 R5
+ 0x74120003, // 0016 JMPT R4 #001B
+ 0x8810010D, // 0017 GETMBR R4 R0 K13
+ 0x4C140000, // 0018 LDNIL R5
+ 0x20100805, // 0019 NE R4 R4 R5
+ 0x7812000C, // 001A JMPF R4 #0028
+ 0x8C10070E, // 001B GETMET R4 R3 K14
+ 0x541A0003, // 001C LDINT R6 4
+ 0x7C100400, // 001D CALL R4 2
+ 0x8C140903, // 001E GETMET R5 R4 K3
+ 0x581C0004, // 001F LDCONST R7 K4
+ 0x8820050F, // 0020 GETMBR R8 R2 K15
+ 0x8824010C, // 0021 GETMBR R9 R0 K12
+ 0x7C140800, // 0022 CALL R5 4
+ 0x8C140903, // 0023 GETMET R5 R4 K3
+ 0x581C0007, // 0024 LDCONST R7 K7
+ 0x8820050F, // 0025 GETMBR R8 R2 K15
+ 0x8824010D, // 0026 GETMBR R9 R0 K13
+ 0x7C140800, // 0027 CALL R5 4
+ 0x8C100710, // 0028 GETMET R4 R3 K16
+ 0x5C180200, // 0029 MOVE R6 R1
+ 0x7C100400, // 002A CALL R4 2
+ 0x80040800, // 002B RET 1 R4
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
index 385ab8d33..85fec0872 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Control_Message.h
@@ -12,7 +12,7 @@ extern const bclass be_class_Matter_Control_Message;
extern const bclass be_class_Matter_Control_Message;
be_local_closure(class_Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */
be_nested_proto(
- 9, /* nstack */
+ 8, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -20,36 +20,34 @@ be_local_closure(class_Matter_Control_Message_parse_MsgCounterSyncRsp, /* name
0, /* has sup protos */
&be_class_Matter_Control_Message,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncRsp_X20_X2A_X20Not_X20implemented_X20_X25s),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_const_int(2147483647),
- /* K7 */ be_nested_str_weak(tohex),
- /* K8 */ be_const_int(2),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncRsp_X20_X2A_X20Not_X20implemented_X20_X25s),
+ /* K3 */ be_nested_str_weak(raw),
+ /* K4 */ be_nested_str_weak(app_payload_idx),
+ /* K5 */ be_const_int(2147483647),
+ /* K6 */ be_nested_str_weak(tohex),
+ /* K7 */ be_const_int(2),
}),
be_str_weak(parse_MsgCounterSyncRsp),
&be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
+ ( &(const binstruction[15]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x60140018, // 0003 GETGBL R5 G24
- 0x58180003, // 0004 LDCONST R6 K3
- 0x881C0305, // 0005 GETMBR R7 R1 K5
- 0x401C0F06, // 0006 CONNECT R7 R7 K6
- 0x88200304, // 0007 GETMBR R8 R1 K4
- 0x941C1007, // 0008 GETIDX R7 R8 R7
- 0x8C1C0F07, // 0009 GETMET R7 R7 K7
- 0x7C1C0200, // 000A CALL R7 1
- 0x7C140400, // 000B CALL R5 2
- 0x58180008, // 000C LDCONST R6 K8
- 0x7C0C0600, // 000D CALL R3 3
- 0x500C0000, // 000E LDBOOL R3 0 0
- 0x80040600, // 000F RET 1 R3
+ 0x60100018, // 0002 GETGBL R4 G24
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x88180304, // 0004 GETMBR R6 R1 K4
+ 0x40180D05, // 0005 CONNECT R6 R6 K5
+ 0x881C0303, // 0006 GETMBR R7 R1 K3
+ 0x94180E06, // 0007 GETIDX R6 R7 R6
+ 0x8C180D06, // 0008 GETMET R6 R6 K6
+ 0x7C180200, // 0009 CALL R6 1
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140007, // 000B LDCONST R5 K7
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x500C0000, // 000D LDBOOL R3 0 0
+ 0x80040600, // 000E RET 1 R3
})
)
);
@@ -62,7 +60,7 @@ be_local_closure(class_Matter_Control_Message_parse_MsgCounterSyncRsp, /* name
extern const bclass be_class_Matter_Control_Message;
be_local_closure(class_Matter_Control_Message_parse_MsgCounterSyncReq, /* name */
be_nested_proto(
- 9, /* nstack */
+ 8, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -70,36 +68,34 @@ be_local_closure(class_Matter_Control_Message_parse_MsgCounterSyncReq, /* name
0, /* has sup protos */
&be_class_Matter_Control_Message,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncReq_X20_X2A_X20Not_X20implemented_X20_X25s),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_const_int(2147483647),
- /* K7 */ be_nested_str_weak(tohex),
- /* K8 */ be_const_int(2),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncReq_X20_X2A_X20Not_X20implemented_X20_X25s),
+ /* K3 */ be_nested_str_weak(raw),
+ /* K4 */ be_nested_str_weak(app_payload_idx),
+ /* K5 */ be_const_int(2147483647),
+ /* K6 */ be_nested_str_weak(tohex),
+ /* K7 */ be_const_int(2),
}),
be_str_weak(parse_MsgCounterSyncReq),
&be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
+ ( &(const binstruction[15]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x60140018, // 0003 GETGBL R5 G24
- 0x58180003, // 0004 LDCONST R6 K3
- 0x881C0305, // 0005 GETMBR R7 R1 K5
- 0x401C0F06, // 0006 CONNECT R7 R7 K6
- 0x88200304, // 0007 GETMBR R8 R1 K4
- 0x941C1007, // 0008 GETIDX R7 R8 R7
- 0x8C1C0F07, // 0009 GETMET R7 R7 K7
- 0x7C1C0200, // 000A CALL R7 1
- 0x7C140400, // 000B CALL R5 2
- 0x58180008, // 000C LDCONST R6 K8
- 0x7C0C0600, // 000D CALL R3 3
- 0x500C0000, // 000E LDBOOL R3 0 0
- 0x80040600, // 000F RET 1 R3
+ 0x60100018, // 0002 GETGBL R4 G24
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x88180304, // 0004 GETMBR R6 R1 K4
+ 0x40180D05, // 0005 CONNECT R6 R6 K5
+ 0x881C0303, // 0006 GETMBR R7 R1 K3
+ 0x94180E06, // 0007 GETIDX R6 R7 R6
+ 0x8C180D06, // 0008 GETMET R6 R6 K6
+ 0x7C180200, // 0009 CALL R6 1
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140007, // 000B LDCONST R5 K7
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x500C0000, // 000D LDBOOL R3 0 0
+ 0x80040600, // 000E RET 1 R3
})
)
);
@@ -145,7 +141,7 @@ be_local_closure(class_Matter_Control_Message_init, /* name */
extern const bclass be_class_Matter_Control_Message;
be_local_closure(class_Matter_Control_Message_process_incoming_control_message, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -153,61 +149,58 @@ be_local_closure(class_Matter_Control_Message_process_incoming_control_message,
0, /* has sup protos */
&be_class_Matter_Control_Message,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20received_X20control_X20message_X20),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(inspect),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(opcode),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(parse_MsgCounterSyncReq),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(parse_MsgCounterSyncRsp),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28control_X20message_X29_X20_X2502X),
- /* K12 */ be_const_int(2),
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20received_X20control_X20message_X20),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(inspect),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(opcode),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(parse_MsgCounterSyncReq),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(parse_MsgCounterSyncRsp),
+ /* K10 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28control_X20message_X29_X20_X2502X),
+ /* K11 */ be_const_int(2),
}),
be_str_weak(process_incoming_control_message),
&be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
+ ( &(const binstruction[35]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0xB8120600, // 0002 GETNGBL R4 K3
- 0x8C100904, // 0003 GETMET R4 R4 K4
- 0x5C180200, // 0004 MOVE R6 R1
- 0x7C100400, // 0005 CALL R4 2
- 0x00120404, // 0006 ADD R4 K2 R4
- 0x58140005, // 0007 LDCONST R5 K5
- 0x7C080600, // 0008 CALL R2 3
- 0x88080306, // 0009 GETMBR R2 R1 K6
- 0x1C080507, // 000A EQ R2 R2 K7
- 0x780A0004, // 000B JMPF R2 #0011
- 0x8C080108, // 000C GETMET R2 R0 K8
- 0x5C100200, // 000D MOVE R4 R1
- 0x7C080400, // 000E CALL R2 2
- 0x80040400, // 000F RET 1 R2
- 0x70020011, // 0010 JMP #0023
- 0x88080306, // 0011 GETMBR R2 R1 K6
- 0x1C080509, // 0012 EQ R2 R2 K9
- 0x780A0004, // 0013 JMPF R2 #0019
- 0x8C08010A, // 0014 GETMET R2 R0 K10
- 0x5C100200, // 0015 MOVE R4 R1
- 0x7C080400, // 0016 CALL R2 2
- 0x80040400, // 0017 RET 1 R2
- 0x70020009, // 0018 JMP #0023
- 0xB80A0000, // 0019 GETNGBL R2 K0
- 0x8C080501, // 001A GETMET R2 R2 K1
- 0x60100018, // 001B GETGBL R4 G24
- 0x5814000B, // 001C LDCONST R5 K11
- 0x88180306, // 001D GETMBR R6 R1 K6
- 0x7C100400, // 001E CALL R4 2
- 0x5814000C, // 001F LDCONST R5 K12
- 0x7C080600, // 0020 CALL R2 3
+ 0xB80E0400, // 0001 GETNGBL R3 K2
+ 0x8C0C0703, // 0002 GETMET R3 R3 K3
+ 0x5C140200, // 0003 MOVE R5 R1
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0x000E0203, // 0005 ADD R3 K1 R3
+ 0x58100004, // 0006 LDCONST R4 K4
+ 0x7C080400, // 0007 CALL R2 2
+ 0x88080305, // 0008 GETMBR R2 R1 K5
+ 0x1C080506, // 0009 EQ R2 R2 K6
+ 0x780A0004, // 000A JMPF R2 #0010
+ 0x8C080107, // 000B GETMET R2 R0 K7
+ 0x5C100200, // 000C MOVE R4 R1
+ 0x7C080400, // 000D CALL R2 2
+ 0x80040400, // 000E RET 1 R2
+ 0x70020010, // 000F JMP #0021
+ 0x88080305, // 0010 GETMBR R2 R1 K5
+ 0x1C080508, // 0011 EQ R2 R2 K8
+ 0x780A0004, // 0012 JMPF R2 #0018
+ 0x8C080109, // 0013 GETMET R2 R0 K9
+ 0x5C100200, // 0014 MOVE R4 R1
+ 0x7C080400, // 0015 CALL R2 2
+ 0x80040400, // 0016 RET 1 R2
+ 0x70020008, // 0017 JMP #0021
+ 0xB80A0000, // 0018 GETNGBL R2 K0
+ 0x600C0018, // 0019 GETGBL R3 G24
+ 0x5810000A, // 001A LDCONST R4 K10
+ 0x88140305, // 001B GETMBR R5 R1 K5
+ 0x7C0C0400, // 001C CALL R3 2
+ 0x5810000B, // 001D LDCONST R4 K11
+ 0x7C080400, // 001E CALL R2 2
+ 0x50080000, // 001F LDBOOL R2 0 0
+ 0x80040400, // 0020 RET 1 R2
0x50080000, // 0021 LDBOOL R2 0 0
0x80040400, // 0022 RET 1 R2
- 0x50080000, // 0023 LDBOOL R2 0 0
- 0x80040400, // 0024 RET 1 R2
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Fabric.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Fabric.h
index 26dd17f72..267c4eb50 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Fabric.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Fabric.h
@@ -40,7 +40,7 @@ be_local_closure(class_Matter_Fabric_get_icac, /* name */
extern const bclass be_class_Matter_Fabric;
be_local_closure(class_Matter_Fabric_before_remove, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -48,35 +48,33 @@ be_local_closure(class_Matter_Fabric_before_remove, /* name */
0, /* has sup protos */
&be_class_Matter_Fabric,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(copy),
- /* K5 */ be_nested_str_weak(reverse),
- /* K6 */ be_nested_str_weak(tohex),
- /* K7 */ be_const_int(3),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(3),
}),
be_str_weak(before_remove),
&be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
+ ( &(const binstruction[15]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x600C0018, // 0002 GETGBL R3 G24
- 0x58100002, // 0003 LDCONST R4 K2
- 0x8C140103, // 0004 GETMET R5 R0 K3
- 0x7C140200, // 0005 CALL R5 1
- 0x8C140B04, // 0006 GETMET R5 R5 K4
- 0x7C140200, // 0007 CALL R5 1
- 0x8C140B05, // 0008 GETMET R5 R5 K5
- 0x7C140200, // 0009 CALL R5 1
- 0x8C140B06, // 000A GETMET R5 R5 K6
- 0x7C140200, // 000B CALL R5 1
- 0x7C0C0400, // 000C CALL R3 2
- 0x58100007, // 000D LDCONST R4 K7
- 0x7C040600, // 000E CALL R1 3
- 0x80000000, // 000F RET 0
+ 0x60080018, // 0001 GETGBL R2 G24
+ 0x580C0001, // 0002 LDCONST R3 K1
+ 0x8C100102, // 0003 GETMET R4 R0 K2
+ 0x7C100200, // 0004 CALL R4 1
+ 0x8C100903, // 0005 GETMET R4 R4 K3
+ 0x7C100200, // 0006 CALL R4 1
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x8C100905, // 0009 GETMET R4 R4 K5
+ 0x7C100200, // 000A CALL R4 1
+ 0x7C080400, // 000B CALL R2 2
+ 0x580C0006, // 000C LDCONST R3 K6
+ 0x7C040400, // 000D CALL R1 2
+ 0x80000000, // 000E RET 0
})
)
);
@@ -914,7 +912,7 @@ be_local_closure(class_Matter_Fabric_fabric_completed, /* name */
extern const bclass be_class_Matter_Fabric;
be_local_closure(class_Matter_Fabric_counter_group_data_snd_next, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -922,51 +920,49 @@ be_local_closure(class_Matter_Fabric_counter_group_data_snd_next, /* name */
0, /* has sup protos */
&be_class_Matter_Fabric,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(_counter_group_data_snd_impl),
/* K1 */ be_nested_str_weak(next),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_data_snd_X3D_X25i),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(Counter),
- /* K8 */ be_nested_str_weak(is_greater),
- /* K9 */ be_nested_str_weak(counter_group_data_snd),
- /* K10 */ be_nested_str_weak(_GROUP_SND_INCR),
- /* K11 */ be_nested_str_weak(does_persist),
- /* K12 */ be_nested_str_weak(save),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_data_snd_X3D_X25i),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(Counter),
+ /* K7 */ be_nested_str_weak(is_greater),
+ /* K8 */ be_nested_str_weak(counter_group_data_snd),
+ /* K9 */ be_nested_str_weak(_GROUP_SND_INCR),
+ /* K10 */ be_nested_str_weak(does_persist),
+ /* K11 */ be_nested_str_weak(save),
}),
be_str_weak(counter_group_data_snd_next),
&be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
+ ( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
0xB80A0400, // 0003 GETNGBL R2 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x60100018, // 0005 GETGBL R4 G24
- 0x58140004, // 0006 LDCONST R5 K4
- 0x5C180200, // 0007 MOVE R6 R1
- 0x7C100400, // 0008 CALL R4 2
- 0x58140005, // 0009 LDCONST R5 K5
- 0x7C080600, // 000A CALL R2 3
- 0xB80A0C00, // 000B GETNGBL R2 K6
- 0x88080507, // 000C GETMBR R2 R2 K7
- 0x8C080508, // 000D GETMET R2 R2 K8
- 0x5C100200, // 000E MOVE R4 R1
- 0x88140109, // 000F GETMBR R5 R0 K9
- 0x7C080600, // 0010 CALL R2 3
- 0x780A0007, // 0011 JMPF R2 #001A
- 0x8808010A, // 0012 GETMBR R2 R0 K10
- 0x00080202, // 0013 ADD R2 R1 R2
- 0x90021202, // 0014 SETMBR R0 K9 R2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x7C080200, // 0016 CALL R2 1
- 0x780A0001, // 0017 JMPF R2 #001A
- 0x8C08010C, // 0018 GETMET R2 R0 K12
- 0x7C080200, // 0019 CALL R2 1
- 0x80040200, // 001A RET 1 R1
+ 0x600C0018, // 0004 GETGBL R3 G24
+ 0x58100003, // 0005 LDCONST R4 K3
+ 0x5C140200, // 0006 MOVE R5 R1
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x58100004, // 0008 LDCONST R4 K4
+ 0x7C080400, // 0009 CALL R2 2
+ 0xB80A0A00, // 000A GETNGBL R2 K5
+ 0x88080506, // 000B GETMBR R2 R2 K6
+ 0x8C080507, // 000C GETMET R2 R2 K7
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x88140108, // 000E GETMBR R5 R0 K8
+ 0x7C080600, // 000F CALL R2 3
+ 0x780A0007, // 0010 JMPF R2 #0019
+ 0x88080109, // 0011 GETMBR R2 R0 K9
+ 0x00080202, // 0012 ADD R2 R1 R2
+ 0x90021002, // 0013 SETMBR R0 K8 R2
+ 0x8C08010A, // 0014 GETMET R2 R0 K10
+ 0x7C080200, // 0015 CALL R2 1
+ 0x780A0001, // 0016 JMPF R2 #0019
+ 0x8C08010B, // 0017 GETMET R2 R0 K11
+ 0x7C080200, // 0018 CALL R2 1
+ 0x80040200, // 0019 RET 1 R1
})
)
);
@@ -1067,7 +1063,7 @@ be_local_closure(class_Matter_Fabric_get_newest_session, /* name */
extern const bclass be_class_Matter_Fabric;
be_local_closure(class_Matter_Fabric_log_new_fabric, /* name */
be_nested_proto(
- 8, /* nstack */
+ 7, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1075,38 +1071,36 @@ be_local_closure(class_Matter_Fabric_log_new_fabric, /* name */
0, /* has sup protos */
&be_class_Matter_Fabric,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2BFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20vendorid_X3D_X25s),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(copy),
- /* K5 */ be_nested_str_weak(reverse),
- /* K6 */ be_nested_str_weak(tohex),
- /* K7 */ be_nested_str_weak(get_admin_vendor_name),
- /* K8 */ be_const_int(3),
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2BFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20vendorid_X3D_X25s),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(get_admin_vendor_name),
+ /* K7 */ be_const_int(3),
}),
be_str_weak(log_new_fabric),
&be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
+ ( &(const binstruction[17]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x600C0018, // 0002 GETGBL R3 G24
- 0x58100002, // 0003 LDCONST R4 K2
- 0x8C140103, // 0004 GETMET R5 R0 K3
- 0x7C140200, // 0005 CALL R5 1
- 0x8C140B04, // 0006 GETMET R5 R5 K4
- 0x7C140200, // 0007 CALL R5 1
- 0x8C140B05, // 0008 GETMET R5 R5 K5
- 0x7C140200, // 0009 CALL R5 1
- 0x8C140B06, // 000A GETMET R5 R5 K6
- 0x7C140200, // 000B CALL R5 1
- 0x8C180107, // 000C GETMET R6 R0 K7
- 0x7C180200, // 000D CALL R6 1
- 0x7C0C0600, // 000E CALL R3 3
- 0x58100008, // 000F LDCONST R4 K8
- 0x7C040600, // 0010 CALL R1 3
- 0x80000000, // 0011 RET 0
+ 0x60080018, // 0001 GETGBL R2 G24
+ 0x580C0001, // 0002 LDCONST R3 K1
+ 0x8C100102, // 0003 GETMET R4 R0 K2
+ 0x7C100200, // 0004 CALL R4 1
+ 0x8C100903, // 0005 GETMET R4 R4 K3
+ 0x7C100200, // 0006 CALL R4 1
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x8C100905, // 0009 GETMET R4 R4 K5
+ 0x7C100200, // 000A CALL R4 1
+ 0x8C140106, // 000B GETMET R5 R0 K6
+ 0x7C140200, // 000C CALL R5 1
+ 0x7C080600, // 000D CALL R2 3
+ 0x580C0007, // 000E LDCONST R3 K7
+ 0x7C040400, // 000F CALL R1 2
+ 0x80000000, // 0010 RET 0
})
)
);
@@ -1365,7 +1359,7 @@ be_local_closure(class_Matter_Fabric_writejson, /* name */
extern const bclass be_class_Matter_Fabric;
be_local_closure(class_Matter_Fabric_counter_group_ctrl_snd_next, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1373,51 +1367,49 @@ be_local_closure(class_Matter_Fabric_counter_group_ctrl_snd_next, /* name */
0, /* has sup protos */
&be_class_Matter_Fabric,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(_counter_group_ctrl_snd_impl),
/* K1 */ be_nested_str_weak(next),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_ctrl_snd_X3D_X25i),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(Counter),
- /* K8 */ be_nested_str_weak(is_greater),
- /* K9 */ be_nested_str_weak(counter_group_ctrl_snd),
- /* K10 */ be_nested_str_weak(_GROUP_SND_INCR),
- /* K11 */ be_nested_str_weak(does_persist),
- /* K12 */ be_nested_str_weak(save),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_ctrl_snd_X3D_X25i),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(Counter),
+ /* K7 */ be_nested_str_weak(is_greater),
+ /* K8 */ be_nested_str_weak(counter_group_ctrl_snd),
+ /* K9 */ be_nested_str_weak(_GROUP_SND_INCR),
+ /* K10 */ be_nested_str_weak(does_persist),
+ /* K11 */ be_nested_str_weak(save),
}),
be_str_weak(counter_group_ctrl_snd_next),
&be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
+ ( &(const binstruction[26]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
0xB80A0400, // 0003 GETNGBL R2 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x60100018, // 0005 GETGBL R4 G24
- 0x58140004, // 0006 LDCONST R5 K4
- 0x5C180200, // 0007 MOVE R6 R1
- 0x7C100400, // 0008 CALL R4 2
- 0x58140005, // 0009 LDCONST R5 K5
- 0x7C080600, // 000A CALL R2 3
- 0xB80A0C00, // 000B GETNGBL R2 K6
- 0x88080507, // 000C GETMBR R2 R2 K7
- 0x8C080508, // 000D GETMET R2 R2 K8
- 0x5C100200, // 000E MOVE R4 R1
- 0x88140109, // 000F GETMBR R5 R0 K9
- 0x7C080600, // 0010 CALL R2 3
- 0x780A0007, // 0011 JMPF R2 #001A
- 0x8808010A, // 0012 GETMBR R2 R0 K10
- 0x00080202, // 0013 ADD R2 R1 R2
- 0x90021202, // 0014 SETMBR R0 K9 R2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x7C080200, // 0016 CALL R2 1
- 0x780A0001, // 0017 JMPF R2 #001A
- 0x8C08010C, // 0018 GETMET R2 R0 K12
- 0x7C080200, // 0019 CALL R2 1
- 0x80040200, // 001A RET 1 R1
+ 0x600C0018, // 0004 GETGBL R3 G24
+ 0x58100003, // 0005 LDCONST R4 K3
+ 0x5C140200, // 0006 MOVE R5 R1
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x58100004, // 0008 LDCONST R4 K4
+ 0x7C080400, // 0009 CALL R2 2
+ 0xB80A0A00, // 000A GETNGBL R2 K5
+ 0x88080506, // 000B GETMBR R2 R2 K6
+ 0x8C080507, // 000C GETMET R2 R2 K7
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x88140108, // 000E GETMBR R5 R0 K8
+ 0x7C080600, // 000F CALL R2 3
+ 0x780A0007, // 0010 JMPF R2 #0019
+ 0x88080109, // 0011 GETMBR R2 R0 K9
+ 0x00080202, // 0012 ADD R2 R1 R2
+ 0x90021002, // 0013 SETMBR R0 K8 R2
+ 0x8C08010A, // 0014 GETMET R2 R0 K10
+ 0x7C080200, // 0015 CALL R2 1
+ 0x780A0001, // 0016 JMPF R2 #0019
+ 0x8C08010B, // 0017 GETMET R2 R0 K11
+ 0x7C080200, // 0018 CALL R2 1
+ 0x80040200, // 0019 RET 1 R1
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
index 3328ff109..812dbda25 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_HTTP_remote.h
@@ -153,7 +153,7 @@ be_local_closure(class_Matter_HTTP_remote_get_info, /* name */
extern const bclass be_class_Matter_HTTP_remote;
be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -161,7 +161,7 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[28]) { /* constants */
+ ( &(const bvalue[27]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(find),
/* K2 */ be_nested_str_weak(DeviceName),
@@ -169,34 +169,33 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
/* K4 */ be_nested_str_weak(info),
/* K5 */ be_nested_str_weak(name),
/* K6 */ be_nested_str_weak(remove),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20name_X3D_X27_X25s_X27),
- /* K10 */ be_nested_str_weak(addr),
- /* K11 */ be_const_int(3),
- /* K12 */ be_nested_str_weak(change_schedule),
- /* K13 */ be_nested_str_weak(UPDATE_CMD0),
- /* K14 */ be_nested_str_weak(UPDATE_TIME2),
- /* K15 */ be_const_int(2),
- /* K16 */ be_nested_str_weak(Version),
- /* K17 */ be_nested_str_weak(Hardware),
- /* K18 */ be_nested_str_weak(version),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20version_X3D_X27_X25s_X27),
- /* K20 */ be_nested_str_weak(hardware),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20hardware_X3D_X27_X25s_X27),
- /* K22 */ be_nested_str_weak(UPDATE_CMD2),
- /* K23 */ be_nested_str_weak(Mac),
- /* K24 */ be_nested_str_weak(mac),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20mac_X3D_X27_X25s_X27),
- /* K26 */ be_nested_str_weak(UPDATE_CMD5),
- /* K27 */ be_nested_str_weak(info_changed),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20name_X3D_X27_X25s_X27),
+ /* K9 */ be_nested_str_weak(addr),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(change_schedule),
+ /* K12 */ be_nested_str_weak(UPDATE_CMD0),
+ /* K13 */ be_nested_str_weak(UPDATE_TIME2),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(Version),
+ /* K16 */ be_nested_str_weak(Hardware),
+ /* K17 */ be_nested_str_weak(version),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20version_X3D_X27_X25s_X27),
+ /* K19 */ be_nested_str_weak(hardware),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20hardware_X3D_X27_X25s_X27),
+ /* K21 */ be_nested_str_weak(UPDATE_CMD2),
+ /* K22 */ be_nested_str_weak(Mac),
+ /* K23 */ be_nested_str_weak(mac),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20mac_X3D_X27_X25s_X27),
+ /* K25 */ be_nested_str_weak(UPDATE_CMD5),
+ /* K26 */ be_nested_str_weak(info_changed),
}),
be_str_weak(parse_status_http),
&be_const_str_solidified,
- ( &(const binstruction[145]) { /* code */
+ ( &(const binstruction[141]) { /* code */
0x500C0000, // 0000 LDBOOL R3 0 0
0x1C100500, // 0001 EQ R4 R2 K0
- 0x78120024, // 0002 JMPF R4 #0028
+ 0x78120023, // 0002 JMPF R4 #0027
0x8C100301, // 0003 GETMET R4 R1 K1
0x58180002, // 0004 LDCONST R6 K2
0x7C100400, // 0005 CALL R4 2
@@ -208,7 +207,7 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
0x581C0005, // 000B LDCONST R7 K5
0x7C140400, // 000C CALL R5 2
0x20140A04, // 000D NE R5 R5 R4
- 0x78160013, // 000E JMPF R5 #0023
+ 0x78160012, // 000E JMPF R5 #0022
0x4C140000, // 000F LDNIL R5
0x20140805, // 0010 NE R5 R4 R5
0x78160002, // 0011 JMPF R5 #0015
@@ -220,125 +219,121 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_http, /* name */
0x581C0005, // 0017 LDCONST R7 K5
0x7C140400, // 0018 CALL R5 2
0xB8160E00, // 0019 GETNGBL R5 K7
- 0x8C140B08, // 001A GETMET R5 R5 K8
- 0x601C0018, // 001B GETGBL R7 G24
- 0x58200009, // 001C LDCONST R8 K9
- 0x8824010A, // 001D GETMBR R9 R0 K10
- 0x5C280800, // 001E MOVE R10 R4
- 0x7C1C0600, // 001F CALL R7 3
- 0x5820000B, // 0020 LDCONST R8 K11
- 0x7C140600, // 0021 CALL R5 3
- 0x500C0200, // 0022 LDBOOL R3 1 0
- 0x8C14010C, // 0023 GETMET R5 R0 K12
- 0x881C010D, // 0024 GETMBR R7 R0 K13
- 0x8820010E, // 0025 GETMBR R8 R0 K14
- 0x7C140600, // 0026 CALL R5 3
- 0x70020064, // 0027 JMP #008D
- 0x1C10050F, // 0028 EQ R4 R2 K15
- 0x7812003E, // 0029 JMPF R4 #0069
- 0x8C100301, // 002A GETMET R4 R1 K1
- 0x58180010, // 002B LDCONST R6 K16
- 0x7C100400, // 002C CALL R4 2
- 0x8C140301, // 002D GETMET R5 R1 K1
- 0x581C0011, // 002E LDCONST R7 K17
- 0x7C140400, // 002F CALL R5 2
- 0x88180104, // 0030 GETMBR R6 R0 K4
- 0x8C180D01, // 0031 GETMET R6 R6 K1
- 0x58200012, // 0032 LDCONST R8 K18
- 0x7C180400, // 0033 CALL R6 2
- 0x20180C04, // 0034 NE R6 R6 R4
- 0x781A0013, // 0035 JMPF R6 #004A
- 0x4C180000, // 0036 LDNIL R6
- 0x20180806, // 0037 NE R6 R4 R6
- 0x781A0002, // 0038 JMPF R6 #003C
- 0x88180104, // 0039 GETMBR R6 R0 K4
- 0x981A2404, // 003A SETIDX R6 K18 R4
- 0x70020003, // 003B JMP #0040
- 0x88180104, // 003C GETMBR R6 R0 K4
- 0x8C180D06, // 003D GETMET R6 R6 K6
- 0x58200012, // 003E LDCONST R8 K18
- 0x7C180400, // 003F CALL R6 2
- 0xB81A0E00, // 0040 GETNGBL R6 K7
- 0x8C180D08, // 0041 GETMET R6 R6 K8
- 0x60200018, // 0042 GETGBL R8 G24
- 0x58240013, // 0043 LDCONST R9 K19
- 0x8828010A, // 0044 GETMBR R10 R0 K10
- 0x5C2C0800, // 0045 MOVE R11 R4
- 0x7C200600, // 0046 CALL R8 3
- 0x5824000B, // 0047 LDCONST R9 K11
- 0x7C180600, // 0048 CALL R6 3
- 0x500C0200, // 0049 LDBOOL R3 1 0
- 0x88180104, // 004A GETMBR R6 R0 K4
- 0x8C180D01, // 004B GETMET R6 R6 K1
- 0x58200014, // 004C LDCONST R8 K20
- 0x7C180400, // 004D CALL R6 2
- 0x20180C05, // 004E NE R6 R6 R5
- 0x781A0013, // 004F JMPF R6 #0064
- 0x4C180000, // 0050 LDNIL R6
- 0x20180A06, // 0051 NE R6 R5 R6
- 0x781A0002, // 0052 JMPF R6 #0056
- 0x88180104, // 0053 GETMBR R6 R0 K4
- 0x981A2805, // 0054 SETIDX R6 K20 R5
- 0x70020003, // 0055 JMP #005A
- 0x88180104, // 0056 GETMBR R6 R0 K4
- 0x8C180D06, // 0057 GETMET R6 R6 K6
- 0x58200014, // 0058 LDCONST R8 K20
- 0x7C180400, // 0059 CALL R6 2
- 0xB81A0E00, // 005A GETNGBL R6 K7
- 0x8C180D08, // 005B GETMET R6 R6 K8
- 0x60200018, // 005C GETGBL R8 G24
- 0x58240015, // 005D LDCONST R9 K21
- 0x8828010A, // 005E GETMBR R10 R0 K10
- 0x5C2C0A00, // 005F MOVE R11 R5
- 0x7C200600, // 0060 CALL R8 3
- 0x5824000B, // 0061 LDCONST R9 K11
- 0x7C180600, // 0062 CALL R6 3
- 0x500C0200, // 0063 LDBOOL R3 1 0
- 0x8C18010C, // 0064 GETMET R6 R0 K12
- 0x88200116, // 0065 GETMBR R8 R0 K22
- 0x8824010E, // 0066 GETMBR R9 R0 K14
- 0x7C180600, // 0067 CALL R6 3
- 0x70020023, // 0068 JMP #008D
- 0x54120004, // 0069 LDINT R4 5
- 0x1C100404, // 006A EQ R4 R2 R4
- 0x78120020, // 006B JMPF R4 #008D
- 0x8C100301, // 006C GETMET R4 R1 K1
- 0x58180017, // 006D LDCONST R6 K23
- 0x7C100400, // 006E CALL R4 2
- 0x88140104, // 006F GETMBR R5 R0 K4
- 0x8C140B01, // 0070 GETMET R5 R5 K1
- 0x581C0018, // 0071 LDCONST R7 K24
- 0x7C140400, // 0072 CALL R5 2
- 0x20140A04, // 0073 NE R5 R5 R4
- 0x78160013, // 0074 JMPF R5 #0089
- 0x4C140000, // 0075 LDNIL R5
- 0x20140805, // 0076 NE R5 R4 R5
- 0x78160002, // 0077 JMPF R5 #007B
+ 0x60180018, // 001A GETGBL R6 G24
+ 0x581C0008, // 001B LDCONST R7 K8
+ 0x88200109, // 001C GETMBR R8 R0 K9
+ 0x5C240800, // 001D MOVE R9 R4
+ 0x7C180600, // 001E CALL R6 3
+ 0x581C000A, // 001F LDCONST R7 K10
+ 0x7C140400, // 0020 CALL R5 2
+ 0x500C0200, // 0021 LDBOOL R3 1 0
+ 0x8C14010B, // 0022 GETMET R5 R0 K11
+ 0x881C010C, // 0023 GETMBR R7 R0 K12
+ 0x8820010D, // 0024 GETMBR R8 R0 K13
+ 0x7C140600, // 0025 CALL R5 3
+ 0x70020061, // 0026 JMP #0089
+ 0x1C10050E, // 0027 EQ R4 R2 K14
+ 0x7812003C, // 0028 JMPF R4 #0066
+ 0x8C100301, // 0029 GETMET R4 R1 K1
+ 0x5818000F, // 002A LDCONST R6 K15
+ 0x7C100400, // 002B CALL R4 2
+ 0x8C140301, // 002C GETMET R5 R1 K1
+ 0x581C0010, // 002D LDCONST R7 K16
+ 0x7C140400, // 002E CALL R5 2
+ 0x88180104, // 002F GETMBR R6 R0 K4
+ 0x8C180D01, // 0030 GETMET R6 R6 K1
+ 0x58200011, // 0031 LDCONST R8 K17
+ 0x7C180400, // 0032 CALL R6 2
+ 0x20180C04, // 0033 NE R6 R6 R4
+ 0x781A0012, // 0034 JMPF R6 #0048
+ 0x4C180000, // 0035 LDNIL R6
+ 0x20180806, // 0036 NE R6 R4 R6
+ 0x781A0002, // 0037 JMPF R6 #003B
+ 0x88180104, // 0038 GETMBR R6 R0 K4
+ 0x981A2204, // 0039 SETIDX R6 K17 R4
+ 0x70020003, // 003A JMP #003F
+ 0x88180104, // 003B GETMBR R6 R0 K4
+ 0x8C180D06, // 003C GETMET R6 R6 K6
+ 0x58200011, // 003D LDCONST R8 K17
+ 0x7C180400, // 003E CALL R6 2
+ 0xB81A0E00, // 003F GETNGBL R6 K7
+ 0x601C0018, // 0040 GETGBL R7 G24
+ 0x58200012, // 0041 LDCONST R8 K18
+ 0x88240109, // 0042 GETMBR R9 R0 K9
+ 0x5C280800, // 0043 MOVE R10 R4
+ 0x7C1C0600, // 0044 CALL R7 3
+ 0x5820000A, // 0045 LDCONST R8 K10
+ 0x7C180400, // 0046 CALL R6 2
+ 0x500C0200, // 0047 LDBOOL R3 1 0
+ 0x88180104, // 0048 GETMBR R6 R0 K4
+ 0x8C180D01, // 0049 GETMET R6 R6 K1
+ 0x58200013, // 004A LDCONST R8 K19
+ 0x7C180400, // 004B CALL R6 2
+ 0x20180C05, // 004C NE R6 R6 R5
+ 0x781A0012, // 004D JMPF R6 #0061
+ 0x4C180000, // 004E LDNIL R6
+ 0x20180A06, // 004F NE R6 R5 R6
+ 0x781A0002, // 0050 JMPF R6 #0054
+ 0x88180104, // 0051 GETMBR R6 R0 K4
+ 0x981A2605, // 0052 SETIDX R6 K19 R5
+ 0x70020003, // 0053 JMP #0058
+ 0x88180104, // 0054 GETMBR R6 R0 K4
+ 0x8C180D06, // 0055 GETMET R6 R6 K6
+ 0x58200013, // 0056 LDCONST R8 K19
+ 0x7C180400, // 0057 CALL R6 2
+ 0xB81A0E00, // 0058 GETNGBL R6 K7
+ 0x601C0018, // 0059 GETGBL R7 G24
+ 0x58200014, // 005A LDCONST R8 K20
+ 0x88240109, // 005B GETMBR R9 R0 K9
+ 0x5C280A00, // 005C MOVE R10 R5
+ 0x7C1C0600, // 005D CALL R7 3
+ 0x5820000A, // 005E LDCONST R8 K10
+ 0x7C180400, // 005F CALL R6 2
+ 0x500C0200, // 0060 LDBOOL R3 1 0
+ 0x8C18010B, // 0061 GETMET R6 R0 K11
+ 0x88200115, // 0062 GETMBR R8 R0 K21
+ 0x8824010D, // 0063 GETMBR R9 R0 K13
+ 0x7C180600, // 0064 CALL R6 3
+ 0x70020022, // 0065 JMP #0089
+ 0x54120004, // 0066 LDINT R4 5
+ 0x1C100404, // 0067 EQ R4 R2 R4
+ 0x7812001F, // 0068 JMPF R4 #0089
+ 0x8C100301, // 0069 GETMET R4 R1 K1
+ 0x58180016, // 006A LDCONST R6 K22
+ 0x7C100400, // 006B CALL R4 2
+ 0x88140104, // 006C GETMBR R5 R0 K4
+ 0x8C140B01, // 006D GETMET R5 R5 K1
+ 0x581C0017, // 006E LDCONST R7 K23
+ 0x7C140400, // 006F CALL R5 2
+ 0x20140A04, // 0070 NE R5 R5 R4
+ 0x78160012, // 0071 JMPF R5 #0085
+ 0x4C140000, // 0072 LDNIL R5
+ 0x20140805, // 0073 NE R5 R4 R5
+ 0x78160002, // 0074 JMPF R5 #0078
+ 0x88140104, // 0075 GETMBR R5 R0 K4
+ 0x98162E04, // 0076 SETIDX R5 K23 R4
+ 0x70020003, // 0077 JMP #007C
0x88140104, // 0078 GETMBR R5 R0 K4
- 0x98163004, // 0079 SETIDX R5 K24 R4
- 0x70020003, // 007A JMP #007F
- 0x88140104, // 007B GETMBR R5 R0 K4
- 0x8C140B06, // 007C GETMET R5 R5 K6
- 0x581C0018, // 007D LDCONST R7 K24
- 0x7C140400, // 007E CALL R5 2
- 0xB8160E00, // 007F GETNGBL R5 K7
- 0x8C140B08, // 0080 GETMET R5 R5 K8
- 0x601C0018, // 0081 GETGBL R7 G24
- 0x58200019, // 0082 LDCONST R8 K25
- 0x8824010A, // 0083 GETMBR R9 R0 K10
- 0x5C280800, // 0084 MOVE R10 R4
- 0x7C1C0600, // 0085 CALL R7 3
- 0x5820000B, // 0086 LDCONST R8 K11
- 0x7C140600, // 0087 CALL R5 3
- 0x500C0200, // 0088 LDBOOL R3 1 0
- 0x8C14010C, // 0089 GETMET R5 R0 K12
- 0x881C011A, // 008A GETMBR R7 R0 K26
- 0x8820010E, // 008B GETMBR R8 R0 K14
- 0x7C140600, // 008C CALL R5 3
- 0x780E0001, // 008D JMPF R3 #0090
- 0x8C10011B, // 008E GETMET R4 R0 K27
- 0x7C100200, // 008F CALL R4 1
- 0x80000000, // 0090 RET 0
+ 0x8C140B06, // 0079 GETMET R5 R5 K6
+ 0x581C0017, // 007A LDCONST R7 K23
+ 0x7C140400, // 007B CALL R5 2
+ 0xB8160E00, // 007C GETNGBL R5 K7
+ 0x60180018, // 007D GETGBL R6 G24
+ 0x581C0018, // 007E LDCONST R7 K24
+ 0x88200109, // 007F GETMBR R8 R0 K9
+ 0x5C240800, // 0080 MOVE R9 R4
+ 0x7C180600, // 0081 CALL R6 3
+ 0x581C000A, // 0082 LDCONST R7 K10
+ 0x7C140400, // 0083 CALL R5 2
+ 0x500C0200, // 0084 LDBOOL R3 1 0
+ 0x8C14010B, // 0085 GETMET R5 R0 K11
+ 0x881C0119, // 0086 GETMBR R7 R0 K25
+ 0x8820010D, // 0087 GETMBR R8 R0 K13
+ 0x7C140600, // 0088 CALL R5 3
+ 0x780E0001, // 0089 JMPF R3 #008C
+ 0x8C10011A, // 008A GETMET R4 R0 K26
+ 0x7C100200, // 008B CALL R4 1
+ 0x80000000, // 008C RET 0
})
)
);
@@ -419,7 +414,7 @@ be_local_closure(class_Matter_HTTP_remote_device_is_alive, /* name */
extern const bclass be_class_Matter_HTTP_remote;
be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -433,9 +428,9 @@ be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
/* K2 */ be_nested_str_weak(nil),
/* K3 */ be_const_int(0),
/* K4 */ be_nested_str_weak(_X2E_X2E_X2E),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X2Dresp_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X2Dresp_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
+ /* K7 */ be_nested_str_weak(tasmota),
/* K8 */ be_nested_str_weak(millis),
/* K9 */ be_nested_str_weak(time_start),
/* K10 */ be_nested_str_weak(addr),
@@ -445,7 +440,7 @@ be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
}),
be_str_weak(event_http_finished),
&be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
+ ( &(const binstruction[44]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
@@ -470,27 +465,26 @@ be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
0x00080504, // 0015 ADD R2 R2 K4
0x5C040400, // 0016 MOVE R1 R2
0xB80A0A00, // 0017 GETNGBL R2 K5
- 0x8C080506, // 0018 GETMET R2 R2 K6
- 0x60100018, // 0019 GETGBL R4 G24
- 0x58140007, // 001A LDCONST R5 K7
- 0xB81A0A00, // 001B GETNGBL R6 K5
- 0x8C180D08, // 001C GETMET R6 R6 K8
- 0x7C180200, // 001D CALL R6 1
- 0x881C0109, // 001E GETMBR R7 R0 K9
- 0x04180C07, // 001F SUB R6 R6 R7
- 0x881C010A, // 0020 GETMBR R7 R0 K10
- 0x6020000C, // 0021 GETGBL R8 G12
- 0x88240101, // 0022 GETMBR R9 R0 K1
- 0x7C200200, // 0023 CALL R8 1
- 0x5C240200, // 0024 MOVE R9 R1
- 0x7C100A00, // 0025 CALL R4 5
- 0x5814000B, // 0026 LDCONST R5 K11
- 0x7C080600, // 0027 CALL R2 3
- 0x8C08010C, // 0028 GETMET R2 R0 K12
- 0x8810010D, // 0029 GETMBR R4 R0 K13
- 0x88140101, // 002A GETMBR R5 R0 K1
- 0x7C080600, // 002B CALL R2 3
- 0x80000000, // 002C RET 0
+ 0x600C0018, // 0018 GETGBL R3 G24
+ 0x58100006, // 0019 LDCONST R4 K6
+ 0xB8160E00, // 001A GETNGBL R5 K7
+ 0x8C140B08, // 001B GETMET R5 R5 K8
+ 0x7C140200, // 001C CALL R5 1
+ 0x88180109, // 001D GETMBR R6 R0 K9
+ 0x04140A06, // 001E SUB R5 R5 R6
+ 0x8818010A, // 001F GETMBR R6 R0 K10
+ 0x601C000C, // 0020 GETGBL R7 G12
+ 0x88200101, // 0021 GETMBR R8 R0 K1
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0x5C200200, // 0023 MOVE R8 R1
+ 0x7C0C0A00, // 0024 CALL R3 5
+ 0x5810000B, // 0025 LDCONST R4 K11
+ 0x7C080400, // 0026 CALL R2 2
+ 0x8C08010C, // 0027 GETMET R2 R0 K12
+ 0x8810010D, // 0028 GETMBR R4 R0 K13
+ 0x88140101, // 0029 GETMBR R5 R0 K1
+ 0x7C080600, // 002A CALL R2 3
+ 0x80000000, // 002B RET 0
})
)
);
@@ -503,7 +497,7 @@ be_local_closure(class_Matter_HTTP_remote_event_http_finished, /* name */
extern const bclass be_class_Matter_HTTP_remote;
be_local_closure(class_Matter_HTTP_remote_probe_async, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -531,7 +525,7 @@ be_local_closure(class_Matter_HTTP_remote_probe_async, /* name */
}),
be_str_weak(probe_async),
&be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
+ ( &(const binstruction[34]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
0xB8120400, // 0002 GETNGBL R4 K2
@@ -553,20 +547,19 @@ be_local_closure(class_Matter_HTTP_remote_probe_async, /* name */
0x5820000A, // 0012 LDCONST R8 K10
0x7C100800, // 0013 CALL R4 4
0x00120E04, // 0014 ADD R4 K7 R4
- 0xB8160400, // 0015 GETNGBL R5 K2
- 0x8C140B0B, // 0016 GETMET R5 R5 K11
- 0x601C0018, // 0017 GETGBL R7 G24
- 0x5820000C, // 0018 LDCONST R8 K12
- 0x8824010D, // 0019 GETMBR R9 R0 K13
- 0x8828010E, // 001A GETMBR R10 R0 K14
- 0x5C2C0800, // 001B MOVE R11 R4
- 0x7C1C0800, // 001C CALL R7 4
- 0x54220003, // 001D LDINT R8 4
- 0x7C140600, // 001E CALL R5 3
- 0x8C14010F, // 001F GETMET R5 R0 K15
- 0x5C1C0800, // 0020 MOVE R7 R4
- 0x7C140400, // 0021 CALL R5 2
- 0x80000000, // 0022 RET 0
+ 0xB8161600, // 0015 GETNGBL R5 K11
+ 0x60180018, // 0016 GETGBL R6 G24
+ 0x581C000C, // 0017 LDCONST R7 K12
+ 0x8820010D, // 0018 GETMBR R8 R0 K13
+ 0x8824010E, // 0019 GETMBR R9 R0 K14
+ 0x5C280800, // 001A MOVE R10 R4
+ 0x7C180800, // 001B CALL R6 4
+ 0x541E0003, // 001C LDINT R7 4
+ 0x7C140400, // 001D CALL R5 2
+ 0x8C14010F, // 001E GETMET R5 R0 K15
+ 0x5C1C0800, // 001F MOVE R7 R4
+ 0x7C140400, // 0020 CALL R5 2
+ 0x80000000, // 0021 RET 0
})
)
);
@@ -885,7 +878,7 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method,
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
+ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(device_is_alive),
/* K2 */ be_nested_str_weak(string),
@@ -894,19 +887,18 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method,
/* K5 */ be_nested_str_weak(STATUS_PREFIX),
/* K6 */ be_nested_str_weak(contains),
/* K7 */ be_const_int(1),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X20failed_X20to_X20parse_X20JSON_X20response_X20payload_X3D_X25s),
- /* K11 */ be_const_int(3),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X2A_X2A_X2A_X20failed_X20to_X20parse_X20JSON_X20response_X20payload_X3D_X25s),
+ /* K10 */ be_const_int(3),
}),
be_str_weak(parse_status_response_and_call_method),
&be_const_str_solidified,
- ( &(const binstruction[58]) { /* code */
+ ( &(const binstruction[57]) { /* code */
0x4C180000, // 0000 LDNIL R6
0x20180206, // 0001 NE R6 R1 R6
- 0x781A0035, // 0002 JMPF R6 #0039
+ 0x781A0034, // 0002 JMPF R6 #0038
0x24180300, // 0003 GT R6 R1 K0
- 0x781A0033, // 0004 JMPF R6 #0039
+ 0x781A0032, // 0004 JMPF R6 #0038
0x8C180101, // 0005 GETMET R6 R0 K1
0x50200200, // 0006 LDBOOL R8 1 0
0x7C180400, // 0007 CALL R6 2
@@ -950,16 +942,15 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method,
0x5C300C00, // 002D MOVE R12 R6
0x5C340E00, // 002E MOVE R13 R7
0x7C280600, // 002F CALL R10 3
- 0x70020007, // 0030 JMP #0039
+ 0x70020006, // 0030 JMP #0038
0xB8221000, // 0031 GETNGBL R8 K8
- 0x8C201109, // 0032 GETMET R8 R8 K9
- 0x60280018, // 0033 GETGBL R10 G24
- 0x582C000A, // 0034 LDCONST R11 K10
- 0x5C300400, // 0035 MOVE R12 R2
- 0x7C280400, // 0036 CALL R10 2
- 0x582C000B, // 0037 LDCONST R11 K11
- 0x7C200600, // 0038 CALL R8 3
- 0x80000000, // 0039 RET 0
+ 0x60240018, // 0032 GETGBL R9 G24
+ 0x58280009, // 0033 LDCONST R10 K9
+ 0x5C2C0400, // 0034 MOVE R11 R2
+ 0x7C240400, // 0035 CALL R9 2
+ 0x5828000A, // 0036 LDCONST R10 K10
+ 0x7C200400, // 0037 CALL R8 2
+ 0x80000000, // 0038 RET 0
})
)
);
@@ -972,7 +963,7 @@ be_local_closure(class_Matter_HTTP_remote_parse_status_response_and_call_method,
extern const bclass be_class_Matter_HTTP_remote;
be_local_closure(class_Matter_HTTP_remote_call_sync, /* name */
be_nested_proto(
- 16, /* nstack */
+ 15, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1008,7 +999,7 @@ be_local_closure(class_Matter_HTTP_remote_call_sync, /* name */
}),
be_str_weak(call_sync),
&be_const_str_solidified,
- ( &(const binstruction[72]) { /* code */
+ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xA4120200, // 0001 IMPORT R4 K1
0xB8160400, // 0002 GETNGBL R5 K2
@@ -1031,56 +1022,54 @@ be_local_closure(class_Matter_HTTP_remote_call_sync, /* name */
0x5824000A, // 0013 LDCONST R9 K10
0x7C140800, // 0014 CALL R5 4
0x00160E05, // 0015 ADD R5 K7 R5
- 0xB81A0400, // 0016 GETNGBL R6 K2
- 0x8C180D0B, // 0017 GETMET R6 R6 K11
- 0x60200018, // 0018 GETGBL R8 G24
- 0x5824000C, // 0019 LDCONST R9 K12
- 0x8828010D, // 001A GETMBR R10 R0 K13
- 0x882C010E, // 001B GETMBR R11 R0 K14
- 0x5C300A00, // 001C MOVE R12 R5
- 0x7C200800, // 001D CALL R8 4
- 0x54260003, // 001E LDINT R9 4
- 0x7C180600, // 001F CALL R6 3
- 0x60180003, // 0020 GETGBL R6 G3
- 0x5C1C0000, // 0021 MOVE R7 R0
- 0x7C180200, // 0022 CALL R6 1
- 0x8C180D0F, // 0023 GETMET R6 R6 K15
- 0x5C200A00, // 0024 MOVE R8 R5
- 0x5C240400, // 0025 MOVE R9 R2
- 0x7C180600, // 0026 CALL R6 3
- 0x781A0001, // 0027 JMPF R6 #002A
- 0x5C1C0C00, // 0028 MOVE R7 R6
- 0x70020000, // 0029 JMP #002B
- 0x581C0010, // 002A LDCONST R7 K16
- 0x6020000C, // 002B GETGBL R8 G12
- 0x5C240E00, // 002C MOVE R9 R7
- 0x7C200200, // 002D CALL R8 1
- 0x5426001D, // 002E LDINT R9 30
- 0x24201009, // 002F GT R8 R8 R9
- 0x78220004, // 0030 JMPF R8 #0036
- 0x5422001C, // 0031 LDINT R8 29
- 0x40222208, // 0032 CONNECT R8 K17 R8
- 0x94200E08, // 0033 GETIDX R8 R7 R8
- 0x00201112, // 0034 ADD R8 R8 K18
- 0x5C1C1000, // 0035 MOVE R7 R8
- 0xB8220400, // 0036 GETNGBL R8 K2
- 0x8C20110B, // 0037 GETMET R8 R8 K11
- 0x60280018, // 0038 GETGBL R10 G24
- 0x582C0013, // 0039 LDCONST R11 K19
- 0xB8320400, // 003A GETNGBL R12 K2
- 0x8C301914, // 003B GETMET R12 R12 K20
- 0x7C300200, // 003C CALL R12 1
- 0x88340115, // 003D GETMBR R13 R0 K21
- 0x0430180D, // 003E SUB R12 R12 R13
- 0x8834010D, // 003F GETMBR R13 R0 K13
- 0x6038000C, // 0040 GETGBL R14 G12
- 0x883C0116, // 0041 GETMBR R15 R0 K22
- 0x7C380200, // 0042 CALL R14 1
- 0x5C3C0E00, // 0043 MOVE R15 R7
- 0x7C280A00, // 0044 CALL R10 5
- 0x582C0017, // 0045 LDCONST R11 K23
- 0x7C200600, // 0046 CALL R8 3
- 0x80040C00, // 0047 RET 1 R6
+ 0xB81A1600, // 0016 GETNGBL R6 K11
+ 0x601C0018, // 0017 GETGBL R7 G24
+ 0x5820000C, // 0018 LDCONST R8 K12
+ 0x8824010D, // 0019 GETMBR R9 R0 K13
+ 0x8828010E, // 001A GETMBR R10 R0 K14
+ 0x5C2C0A00, // 001B MOVE R11 R5
+ 0x7C1C0800, // 001C CALL R7 4
+ 0x54220003, // 001D LDINT R8 4
+ 0x7C180400, // 001E CALL R6 2
+ 0x60180003, // 001F GETGBL R6 G3
+ 0x5C1C0000, // 0020 MOVE R7 R0
+ 0x7C180200, // 0021 CALL R6 1
+ 0x8C180D0F, // 0022 GETMET R6 R6 K15
+ 0x5C200A00, // 0023 MOVE R8 R5
+ 0x5C240400, // 0024 MOVE R9 R2
+ 0x7C180600, // 0025 CALL R6 3
+ 0x781A0001, // 0026 JMPF R6 #0029
+ 0x5C1C0C00, // 0027 MOVE R7 R6
+ 0x70020000, // 0028 JMP #002A
+ 0x581C0010, // 0029 LDCONST R7 K16
+ 0x6020000C, // 002A GETGBL R8 G12
+ 0x5C240E00, // 002B MOVE R9 R7
+ 0x7C200200, // 002C CALL R8 1
+ 0x5426001D, // 002D LDINT R9 30
+ 0x24201009, // 002E GT R8 R8 R9
+ 0x78220004, // 002F JMPF R8 #0035
+ 0x5422001C, // 0030 LDINT R8 29
+ 0x40222208, // 0031 CONNECT R8 K17 R8
+ 0x94200E08, // 0032 GETIDX R8 R7 R8
+ 0x00201112, // 0033 ADD R8 R8 K18
+ 0x5C1C1000, // 0034 MOVE R7 R8
+ 0xB8221600, // 0035 GETNGBL R8 K11
+ 0x60240018, // 0036 GETGBL R9 G24
+ 0x58280013, // 0037 LDCONST R10 K19
+ 0xB82E0400, // 0038 GETNGBL R11 K2
+ 0x8C2C1714, // 0039 GETMET R11 R11 K20
+ 0x7C2C0200, // 003A CALL R11 1
+ 0x88300115, // 003B GETMBR R12 R0 K21
+ 0x042C160C, // 003C SUB R11 R11 R12
+ 0x8830010D, // 003D GETMBR R12 R0 K13
+ 0x6034000C, // 003E GETGBL R13 G12
+ 0x88380116, // 003F GETMBR R14 R0 K22
+ 0x7C340200, // 0040 CALL R13 1
+ 0x5C380E00, // 0041 MOVE R14 R7
+ 0x7C240A00, // 0042 CALL R9 5
+ 0x58280017, // 0043 LDCONST R10 K23
+ 0x7C200400, // 0044 CALL R8 2
+ 0x80040C00, // 0045 RET 1 R6
})
)
);
@@ -1202,33 +1191,31 @@ be_local_closure(class_Matter_HTTP_remote_event_http_failed, /* name */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
+ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(current_cmd),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20failed),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(dispatch_cb),
- /* K6 */ be_nested_str_weak(http_status),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20failed),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(dispatch_cb),
+ /* K5 */ be_nested_str_weak(http_status),
}),
be_str_weak(event_http_failed),
&be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
+ ( &(const binstruction[14]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
0x78060000, // 0003 JMPF R1 #0005
0x80000200, // 0004 RET 0
0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
+ 0x58080002, // 0006 LDCONST R2 K2
0x580C0003, // 0007 LDCONST R3 K3
- 0x58100004, // 0008 LDCONST R4 K4
- 0x7C040600, // 0009 CALL R1 3
- 0x8C040105, // 000A GETMET R1 R0 K5
- 0x880C0106, // 000B GETMBR R3 R0 K6
- 0x4C100000, // 000C LDNIL R4
- 0x7C040600, // 000D CALL R1 3
- 0x80000000, // 000E RET 0
+ 0x7C040400, // 0008 CALL R1 2
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x880C0105, // 000A GETMBR R3 R0 K5
+ 0x4C100000, // 000B LDNIL R4
+ 0x7C040600, // 000C CALL R1 3
+ 0x80000000, // 000D RET 0
})
)
);
@@ -1270,7 +1257,7 @@ be_local_closure(class_Matter_HTTP_remote_add_async_cb, /* name */
extern const bclass be_class_Matter_HTTP_remote;
be_local_closure(class_Matter_HTTP_remote_event_http_timeout, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1278,44 +1265,42 @@ be_local_closure(class_Matter_HTTP_remote_event_http_timeout, /* name */
0, /* has sup protos */
&be_class_Matter_HTTP_remote,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(current_cmd),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i),
- /* K4 */ be_nested_str_weak(http_status),
- /* K5 */ be_nested_str_weak(phase),
- /* K6 */ be_nested_str_weak(status),
- /* K7 */ be_nested_str_weak(payload),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(dispatch_cb),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i),
+ /* K3 */ be_nested_str_weak(http_status),
+ /* K4 */ be_nested_str_weak(phase),
+ /* K5 */ be_nested_str_weak(status),
+ /* K6 */ be_nested_str_weak(payload),
+ /* K7 */ be_const_int(3),
+ /* K8 */ be_nested_str_weak(dispatch_cb),
}),
be_str_weak(event_http_timeout),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
+ ( &(const binstruction[22]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
0x78060000, // 0003 JMPF R1 #0005
0x80000200, // 0004 RET 0
0xB8060200, // 0005 GETNGBL R1 K1
- 0x8C040302, // 0006 GETMET R1 R1 K2
- 0x600C0018, // 0007 GETGBL R3 G24
- 0x58100003, // 0008 LDCONST R4 K3
+ 0x60080018, // 0006 GETGBL R2 G24
+ 0x580C0002, // 0007 LDCONST R3 K2
+ 0x88100103, // 0008 GETMBR R4 R0 K3
0x88140104, // 0009 GETMBR R5 R0 K4
0x88180105, // 000A GETMBR R6 R0 K5
- 0x881C0106, // 000B GETMBR R7 R0 K6
- 0x6020000C, // 000C GETGBL R8 G12
- 0x88240107, // 000D GETMBR R9 R0 K7
- 0x7C200200, // 000E CALL R8 1
- 0x7C0C0A00, // 000F CALL R3 5
- 0x58100008, // 0010 LDCONST R4 K8
- 0x7C040600, // 0011 CALL R1 3
- 0x8C040109, // 0012 GETMET R1 R0 K9
- 0x880C0104, // 0013 GETMBR R3 R0 K4
- 0x4C100000, // 0014 LDNIL R4
- 0x7C040600, // 0015 CALL R1 3
- 0x80000000, // 0016 RET 0
+ 0x601C000C, // 000B GETGBL R7 G12
+ 0x88200106, // 000C GETMBR R8 R0 K6
+ 0x7C1C0200, // 000D CALL R7 1
+ 0x7C080A00, // 000E CALL R2 5
+ 0x580C0007, // 000F LDCONST R3 K7
+ 0x7C040400, // 0010 CALL R1 2
+ 0x8C040108, // 0011 GETMET R1 R0 K8
+ 0x880C0103, // 0012 GETMBR R3 R0 K3
+ 0x4C100000, // 0013 LDNIL R4
+ 0x7C040600, // 0014 CALL R1 3
+ 0x80000000, // 0015 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 8a8b3fe8d..fba6d4892 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -153,7 +153,7 @@ be_local_closure(class_Matter_IM_process_write_response, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_process_status_response, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -161,7 +161,7 @@ be_local_closure(class_Matter_IM_process_status_response, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(findsubval),
/* K1 */ be_const_int(0),
/* K2 */ be_nested_str_weak(find_sendqueue_by_exchangeid),
@@ -169,19 +169,18 @@ be_local_closure(class_Matter_IM_process_status_response, /* name */
/* K4 */ be_nested_str_weak(matter),
/* K5 */ be_nested_str_weak(SUCCESS),
/* K6 */ be_nested_str_weak(status_ok_received),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
- /* K10 */ be_nested_str_weak(session),
- /* K11 */ be_nested_str_weak(local_session_id),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
- /* K13 */ be_const_int(3),
- /* K14 */ be_nested_str_weak(status_error_received),
- /* K15 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(local_session_id),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
+ /* K12 */ be_const_int(3),
+ /* K13 */ be_nested_str_weak(status_error_received),
+ /* K14 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
}),
be_str_weak(process_status_response),
&be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
+ ( &(const binstruction[43]) { /* code */
0x8C0C0500, // 0000 GETMET R3 R2 K0
0x58140001, // 0001 LDCONST R5 K1
0x541A00FE, // 0002 LDINT R6 255
@@ -192,41 +191,39 @@ be_local_closure(class_Matter_IM_process_status_response, /* name */
0xB8160800, // 0007 GETNGBL R5 K4
0x88140B05, // 0008 GETMBR R5 R5 K5
0x1C140605, // 0009 EQ R5 R3 R5
- 0x78160010, // 000A JMPF R5 #001C
+ 0x7816000F, // 000A JMPF R5 #001B
0x78120004, // 000B JMPF R4 #0011
0x8C140906, // 000C GETMET R5 R4 K6
0x5C1C0200, // 000D MOVE R7 R1
0x7C140400, // 000E CALL R5 2
0x80040A00, // 000F RET 1 R5
- 0x70020009, // 0010 JMP #001B
+ 0x70020008, // 0010 JMP #001A
0xB8160E00, // 0011 GETNGBL R5 K7
- 0x8C140B08, // 0012 GETMET R5 R5 K8
- 0x601C0018, // 0013 GETGBL R7 G24
- 0x58200009, // 0014 LDCONST R8 K9
- 0x8824030A, // 0015 GETMBR R9 R1 K10
- 0x8824130B, // 0016 GETMBR R9 R9 K11
- 0x88280303, // 0017 GETMBR R10 R1 K3
- 0x7C1C0600, // 0018 CALL R7 3
- 0x54220003, // 0019 LDINT R8 4
- 0x7C140600, // 001A CALL R5 3
- 0x7002000E, // 001B JMP #002B
- 0xB8160E00, // 001C GETNGBL R5 K7
- 0x8C140B08, // 001D GETMET R5 R5 K8
- 0x601C0018, // 001E GETGBL R7 G24
- 0x5820000C, // 001F LDCONST R8 K12
- 0x5C240600, // 0020 MOVE R9 R3
- 0x7C1C0400, // 0021 CALL R7 2
- 0x5820000D, // 0022 LDCONST R8 K13
- 0x7C140600, // 0023 CALL R5 3
- 0x78120005, // 0024 JMPF R4 #002B
- 0x8C14090E, // 0025 GETMET R5 R4 K14
- 0x5C1C0200, // 0026 MOVE R7 R1
- 0x7C140400, // 0027 CALL R5 2
- 0x8C14010F, // 0028 GETMET R5 R0 K15
- 0x881C0303, // 0029 GETMBR R7 R1 K3
- 0x7C140400, // 002A CALL R5 2
- 0x50140000, // 002B LDBOOL R5 0 0
- 0x80040A00, // 002C RET 1 R5
+ 0x60180018, // 0012 GETGBL R6 G24
+ 0x581C0008, // 0013 LDCONST R7 K8
+ 0x88200309, // 0014 GETMBR R8 R1 K9
+ 0x8820110A, // 0015 GETMBR R8 R8 K10
+ 0x88240303, // 0016 GETMBR R9 R1 K3
+ 0x7C180600, // 0017 CALL R6 3
+ 0x541E0003, // 0018 LDINT R7 4
+ 0x7C140400, // 0019 CALL R5 2
+ 0x7002000D, // 001A JMP #0029
+ 0xB8160E00, // 001B GETNGBL R5 K7
+ 0x60180018, // 001C GETGBL R6 G24
+ 0x581C000B, // 001D LDCONST R7 K11
+ 0x5C200600, // 001E MOVE R8 R3
+ 0x7C180400, // 001F CALL R6 2
+ 0x581C000C, // 0020 LDCONST R7 K12
+ 0x7C140400, // 0021 CALL R5 2
+ 0x78120005, // 0022 JMPF R4 #0029
+ 0x8C14090D, // 0023 GETMET R5 R4 K13
+ 0x5C1C0200, // 0024 MOVE R7 R1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x8C14010E, // 0026 GETMET R5 R0 K14
+ 0x881C0303, // 0027 GETMBR R7 R1 K3
+ 0x7C140400, // 0028 CALL R5 2
+ 0x50140000, // 0029 LDBOOL R5 0 0
+ 0x80040A00, // 002A RET 1 R5
})
)
);
@@ -239,7 +236,7 @@ be_local_closure(class_Matter_IM_process_status_response, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_process_timed_request, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -247,23 +244,22 @@ be_local_closure(class_Matter_IM_process_timed_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
+ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TimedRequestMessage),
/* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(log),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
- /* K6 */ be_nested_str_weak(session),
- /* K7 */ be_nested_str_weak(local_session_id),
- /* K8 */ be_nested_str_weak(timeout),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(send_status),
- /* K11 */ be_nested_str_weak(SUCCESS),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
+ /* K5 */ be_nested_str_weak(session),
+ /* K6 */ be_nested_str_weak(local_session_id),
+ /* K7 */ be_nested_str_weak(timeout),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(send_status),
+ /* K10 */ be_nested_str_weak(SUCCESS),
}),
be_str_weak(process_timed_request),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
+ ( &(const binstruction[22]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -271,22 +267,21 @@ be_local_closure(class_Matter_IM_process_timed_request, /* name */
0x5C140400, // 0004 MOVE R5 R2
0x7C0C0400, // 0005 CALL R3 2
0xB8120600, // 0006 GETNGBL R4 K3
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x60180018, // 0008 GETGBL R6 G24
- 0x581C0005, // 0009 LDCONST R7 K5
- 0x88200306, // 000A GETMBR R8 R1 K6
- 0x88201107, // 000B GETMBR R8 R8 K7
- 0x88240708, // 000C GETMBR R9 R3 K8
- 0x7C180600, // 000D CALL R6 3
- 0x581C0009, // 000E LDCONST R7 K9
- 0x7C100600, // 000F CALL R4 3
- 0x8C10010A, // 0010 GETMET R4 R0 K10
- 0x5C180200, // 0011 MOVE R6 R1
- 0xB81E0000, // 0012 GETNGBL R7 K0
- 0x881C0F0B, // 0013 GETMBR R7 R7 K11
- 0x7C100600, // 0014 CALL R4 3
- 0x50100200, // 0015 LDBOOL R4 1 0
- 0x80040800, // 0016 RET 1 R4
+ 0x60140018, // 0007 GETGBL R5 G24
+ 0x58180004, // 0008 LDCONST R6 K4
+ 0x881C0305, // 0009 GETMBR R7 R1 K5
+ 0x881C0F06, // 000A GETMBR R7 R7 K6
+ 0x88200707, // 000B GETMBR R8 R3 K7
+ 0x7C140600, // 000C CALL R5 3
+ 0x58180008, // 000D LDCONST R6 K8
+ 0x7C100400, // 000E CALL R4 2
+ 0x8C100109, // 000F GETMET R4 R0 K9
+ 0x5C180200, // 0010 MOVE R6 R1
+ 0xB81E0000, // 0011 GETNGBL R7 K0
+ 0x881C0F0A, // 0012 GETMBR R7 R7 K10
+ 0x7C100600, // 0013 CALL R4 3
+ 0x50100200, // 0014 LDBOOL R4 1 0
+ 0x80040800, // 0015 RET 1 R4
})
)
);
@@ -408,7 +403,7 @@ be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
}),
be_str_weak(process_invoke_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[208]) { /* code */
+ ( &(const binstruction[203]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x880C0701, // 0001 GETMBR R3 R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@@ -452,171 +447,166 @@ be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
0x8C1C0F13, // 0028 GETMET R7 R7 K19
0x58240014, // 0029 LDCONST R9 K20
0x7C1C0400, // 002A CALL R7 2
- 0x781E000E, // 002B JMPF R7 #003B
- 0xB81E2400, // 002C GETNGBL R7 K18
- 0x8C1C0F02, // 002D GETMET R7 R7 K2
- 0x60240018, // 002E GETGBL R9 G24
- 0x58280015, // 002F LDCONST R10 K21
- 0x882C030C, // 0030 GETMBR R11 R1 K12
- 0x882C1716, // 0031 GETMBR R11 R11 K22
- 0x5C300800, // 0032 MOVE R12 R4
- 0x780E0001, // 0033 JMPF R3 #0036
- 0x5C340600, // 0034 MOVE R13 R3
- 0x70020000, // 0035 JMP #0037
- 0x58340011, // 0036 LDCONST R13 K17
- 0x5C380C00, // 0037 MOVE R14 R6
- 0x7C240A00, // 0038 CALL R9 5
- 0x58280014, // 0039 LDCONST R10 K20
- 0x7C1C0600, // 003A CALL R7 3
- 0x4C1C0000, // 003B LDNIL R7
- 0x900A0407, // 003C SETMBR R2 K2 R7
- 0x601C0015, // 003D GETGBL R7 G21
- 0x5422002F, // 003E LDINT R8 48
- 0x7C1C0200, // 003F CALL R7 1
- 0x8C200F17, // 0040 GETMET R8 R7 K23
- 0x58280018, // 0041 LDCONST R10 K24
- 0x542DFFFB, // 0042 LDINT R11 -4
- 0x7C200600, // 0043 CALL R8 3
- 0x8C200F17, // 0044 GETMET R8 R7 K23
- 0x58280019, // 0045 LDCONST R10 K25
- 0x582C0019, // 0046 LDCONST R11 K25
- 0x7C200600, // 0047 CALL R8 3
- 0x50200200, // 0048 LDBOOL R8 1 0
- 0x1C200A08, // 0049 EQ R8 R5 R8
- 0x74220004, // 004A JMPT R8 #0050
- 0x88200505, // 004B GETMBR R8 R2 K5
- 0xB8260000, // 004C GETNGBL R9 K0
- 0x8824131A, // 004D GETMBR R9 R9 K26
- 0x1C201009, // 004E EQ R8 R8 R9
- 0x78220017, // 004F JMPF R8 #0068
- 0xB8220000, // 0050 GETNGBL R8 K0
- 0x8820111A, // 0051 GETMBR R8 R8 K26
- 0x900A0A08, // 0052 SETMBR R2 K5 R8
- 0x8C20011B, // 0053 GETMET R8 R0 K27
- 0x5C280E00, // 0054 MOVE R10 R7
- 0x5C2C0400, // 0055 MOVE R11 R2
- 0x4C300000, // 0056 LDNIL R12
- 0x7C200800, // 0057 CALL R8 4
- 0xB8222400, // 0058 GETNGBL R8 K18
- 0x8C201113, // 0059 GETMET R8 R8 K19
- 0x58280014, // 005A LDCONST R10 K20
- 0x7C200400, // 005B CALL R8 2
- 0x78220009, // 005C JMPF R8 #0067
- 0xB8222400, // 005D GETNGBL R8 K18
- 0x8C201102, // 005E GETMET R8 R8 K2
- 0x60280018, // 005F GETGBL R10 G24
- 0x582C001C, // 0060 LDCONST R11 K28
- 0x8830030C, // 0061 GETMBR R12 R1 K12
- 0x88301916, // 0062 GETMBR R12 R12 K22
- 0x8834031D, // 0063 GETMBR R13 R1 K29
- 0x7C280600, // 0064 CALL R10 3
- 0x582C0014, // 0065 LDCONST R11 K20
- 0x7C200600, // 0066 CALL R8 3
- 0x70020046, // 0067 JMP #00AF
- 0x4C200000, // 0068 LDNIL R8
- 0x20200A08, // 0069 NE R8 R5 R8
- 0x78220018, // 006A JMPF R8 #0084
- 0x8C20011B, // 006B GETMET R8 R0 K27
- 0x5C280E00, // 006C MOVE R10 R7
- 0x5C2C0400, // 006D MOVE R11 R2
- 0x5C300A00, // 006E MOVE R12 R5
- 0x7C200800, // 006F CALL R8 4
- 0x5C200600, // 0070 MOVE R8 R3
- 0x74220000, // 0071 JMPT R8 #0073
- 0x580C0011, // 0072 LDCONST R3 K17
- 0xB8222400, // 0073 GETNGBL R8 K18
- 0x8C201113, // 0074 GETMET R8 R8 K19
- 0x58280014, // 0075 LDCONST R10 K20
- 0x7C200400, // 0076 CALL R8 2
- 0x7822000A, // 0077 JMPF R8 #0083
- 0xB8222400, // 0078 GETNGBL R8 K18
- 0x8C201102, // 0079 GETMET R8 R8 K2
- 0x60280018, // 007A GETGBL R10 G24
- 0x582C001E, // 007B LDCONST R11 K30
- 0x8830030C, // 007C GETMBR R12 R1 K12
- 0x88301916, // 007D GETMBR R12 R12 K22
- 0x5C340400, // 007E MOVE R13 R2
- 0x5C380600, // 007F MOVE R14 R3
- 0x7C280800, // 0080 CALL R10 4
- 0x582C0014, // 0081 LDCONST R11 K20
- 0x7C200600, // 0082 CALL R8 3
- 0x7002002A, // 0083 JMP #00AF
- 0x88200505, // 0084 GETMBR R8 R2 K5
- 0x4C240000, // 0085 LDNIL R9
- 0x20201009, // 0086 NE R8 R8 R9
- 0x78220015, // 0087 JMPF R8 #009E
- 0x8C20011B, // 0088 GETMET R8 R0 K27
- 0x5C280E00, // 0089 MOVE R10 R7
- 0x5C2C0400, // 008A MOVE R11 R2
- 0x4C300000, // 008B LDNIL R12
- 0x7C200800, // 008C CALL R8 4
- 0xB8222400, // 008D GETNGBL R8 K18
- 0x8C201113, // 008E GETMET R8 R8 K19
- 0x58280014, // 008F LDCONST R10 K20
- 0x7C200400, // 0090 CALL R8 2
- 0x7822000A, // 0091 JMPF R8 #009D
- 0xB8222400, // 0092 GETNGBL R8 K18
- 0x8C201102, // 0093 GETMET R8 R8 K2
- 0x60280018, // 0094 GETGBL R10 G24
- 0x582C001F, // 0095 LDCONST R11 K31
- 0x8830030C, // 0096 GETMBR R12 R1 K12
- 0x88301916, // 0097 GETMBR R12 R12 K22
- 0x88340505, // 0098 GETMBR R13 R2 K5
- 0x8838031D, // 0099 GETMBR R14 R1 K29
- 0x7C280800, // 009A CALL R10 4
- 0x582C0014, // 009B LDCONST R11 K20
- 0x7C200600, // 009C CALL R8 3
- 0x70020010, // 009D JMP #00AF
- 0xB8222400, // 009E GETNGBL R8 K18
- 0x8C201113, // 009F GETMET R8 R8 K19
- 0x58280014, // 00A0 LDCONST R10 K20
- 0x7C200400, // 00A1 CALL R8 2
- 0x78220009, // 00A2 JMPF R8 #00AD
- 0xB8222400, // 00A3 GETNGBL R8 K18
- 0x8C201102, // 00A4 GETMET R8 R8 K2
- 0x60280018, // 00A5 GETGBL R10 G24
- 0x582C0020, // 00A6 LDCONST R11 K32
- 0x8830030C, // 00A7 GETMBR R12 R1 K12
- 0x88301916, // 00A8 GETMBR R12 R12 K22
- 0x8834031D, // 00A9 GETMBR R13 R1 K29
- 0x7C280600, // 00AA CALL R10 3
- 0x582C0014, // 00AB LDCONST R11 K20
- 0x7C200600, // 00AC CALL R8 3
- 0x50200000, // 00AD LDBOOL R8 0 0
- 0x80041000, // 00AE RET 1 R8
- 0x8C200F17, // 00AF GETMET R8 R7 K23
- 0x58280021, // 00B0 LDCONST R10 K33
- 0x542DFFFB, // 00B1 LDINT R11 -4
- 0x7C200600, // 00B2 CALL R8 3
- 0x8C200F17, // 00B3 GETMET R8 R7 K23
- 0x542A0017, // 00B4 LDINT R10 24
- 0x582C0019, // 00B5 LDCONST R11 K25
- 0x7C200600, // 00B6 CALL R8 3
- 0x8C200322, // 00B7 GETMET R8 R1 K34
- 0x542A0008, // 00B8 LDINT R10 9
- 0x502C0200, // 00B9 LDBOOL R11 1 0
- 0x7C200600, // 00BA CALL R8 3
- 0x8824010A, // 00BB GETMBR R9 R0 K10
- 0x88241323, // 00BC GETMBR R9 R9 K35
- 0x88280324, // 00BD GETMBR R10 R1 K36
- 0x8C2C1525, // 00BE GETMET R11 R10 K37
- 0x7C2C0200, // 00BF CALL R11 1
- 0x8C2C1126, // 00C0 GETMET R11 R8 K38
- 0x5C340E00, // 00C1 MOVE R13 R7
- 0x5C381400, // 00C2 MOVE R14 R10
- 0x7C2C0600, // 00C3 CALL R11 3
- 0x8C2C1127, // 00C4 GETMET R11 R8 K39
- 0x7C2C0200, // 00C5 CALL R11 1
- 0x8C2C1328, // 00C6 GETMET R11 R9 K40
- 0x5C341000, // 00C7 MOVE R13 R8
+ 0x781E000D, // 002B JMPF R7 #003A
+ 0xB81E0400, // 002C GETNGBL R7 K2
+ 0x60200018, // 002D GETGBL R8 G24
+ 0x58240015, // 002E LDCONST R9 K21
+ 0x8828030C, // 002F GETMBR R10 R1 K12
+ 0x88281516, // 0030 GETMBR R10 R10 K22
+ 0x5C2C0800, // 0031 MOVE R11 R4
+ 0x780E0001, // 0032 JMPF R3 #0035
+ 0x5C300600, // 0033 MOVE R12 R3
+ 0x70020000, // 0034 JMP #0036
+ 0x58300011, // 0035 LDCONST R12 K17
+ 0x5C340C00, // 0036 MOVE R13 R6
+ 0x7C200A00, // 0037 CALL R8 5
+ 0x58240014, // 0038 LDCONST R9 K20
+ 0x7C1C0400, // 0039 CALL R7 2
+ 0x4C1C0000, // 003A LDNIL R7
+ 0x900A0407, // 003B SETMBR R2 K2 R7
+ 0x601C0015, // 003C GETGBL R7 G21
+ 0x5422002F, // 003D LDINT R8 48
+ 0x7C1C0200, // 003E CALL R7 1
+ 0x8C200F17, // 003F GETMET R8 R7 K23
+ 0x58280018, // 0040 LDCONST R10 K24
+ 0x542DFFFB, // 0041 LDINT R11 -4
+ 0x7C200600, // 0042 CALL R8 3
+ 0x8C200F17, // 0043 GETMET R8 R7 K23
+ 0x58280019, // 0044 LDCONST R10 K25
+ 0x582C0019, // 0045 LDCONST R11 K25
+ 0x7C200600, // 0046 CALL R8 3
+ 0x50200200, // 0047 LDBOOL R8 1 0
+ 0x1C200A08, // 0048 EQ R8 R5 R8
+ 0x74220004, // 0049 JMPT R8 #004F
+ 0x88200505, // 004A GETMBR R8 R2 K5
+ 0xB8260000, // 004B GETNGBL R9 K0
+ 0x8824131A, // 004C GETMBR R9 R9 K26
+ 0x1C201009, // 004D EQ R8 R8 R9
+ 0x78220016, // 004E JMPF R8 #0066
+ 0xB8220000, // 004F GETNGBL R8 K0
+ 0x8820111A, // 0050 GETMBR R8 R8 K26
+ 0x900A0A08, // 0051 SETMBR R2 K5 R8
+ 0x8C20011B, // 0052 GETMET R8 R0 K27
+ 0x5C280E00, // 0053 MOVE R10 R7
+ 0x5C2C0400, // 0054 MOVE R11 R2
+ 0x4C300000, // 0055 LDNIL R12
+ 0x7C200800, // 0056 CALL R8 4
+ 0xB8222400, // 0057 GETNGBL R8 K18
+ 0x8C201113, // 0058 GETMET R8 R8 K19
+ 0x58280014, // 0059 LDCONST R10 K20
+ 0x7C200400, // 005A CALL R8 2
+ 0x78220008, // 005B JMPF R8 #0065
+ 0xB8220400, // 005C GETNGBL R8 K2
+ 0x60240018, // 005D GETGBL R9 G24
+ 0x5828001C, // 005E LDCONST R10 K28
+ 0x882C030C, // 005F GETMBR R11 R1 K12
+ 0x882C1716, // 0060 GETMBR R11 R11 K22
+ 0x8830031D, // 0061 GETMBR R12 R1 K29
+ 0x7C240600, // 0062 CALL R9 3
+ 0x58280014, // 0063 LDCONST R10 K20
+ 0x7C200400, // 0064 CALL R8 2
+ 0x70020043, // 0065 JMP #00AA
+ 0x4C200000, // 0066 LDNIL R8
+ 0x20200A08, // 0067 NE R8 R5 R8
+ 0x78220017, // 0068 JMPF R8 #0081
+ 0x8C20011B, // 0069 GETMET R8 R0 K27
+ 0x5C280E00, // 006A MOVE R10 R7
+ 0x5C2C0400, // 006B MOVE R11 R2
+ 0x5C300A00, // 006C MOVE R12 R5
+ 0x7C200800, // 006D CALL R8 4
+ 0x5C200600, // 006E MOVE R8 R3
+ 0x74220000, // 006F JMPT R8 #0071
+ 0x580C0011, // 0070 LDCONST R3 K17
+ 0xB8222400, // 0071 GETNGBL R8 K18
+ 0x8C201113, // 0072 GETMET R8 R8 K19
+ 0x58280014, // 0073 LDCONST R10 K20
+ 0x7C200400, // 0074 CALL R8 2
+ 0x78220009, // 0075 JMPF R8 #0080
+ 0xB8220400, // 0076 GETNGBL R8 K2
+ 0x60240018, // 0077 GETGBL R9 G24
+ 0x5828001E, // 0078 LDCONST R10 K30
+ 0x882C030C, // 0079 GETMBR R11 R1 K12
+ 0x882C1716, // 007A GETMBR R11 R11 K22
+ 0x5C300400, // 007B MOVE R12 R2
+ 0x5C340600, // 007C MOVE R13 R3
+ 0x7C240800, // 007D CALL R9 4
+ 0x58280014, // 007E LDCONST R10 K20
+ 0x7C200400, // 007F CALL R8 2
+ 0x70020028, // 0080 JMP #00AA
+ 0x88200505, // 0081 GETMBR R8 R2 K5
+ 0x4C240000, // 0082 LDNIL R9
+ 0x20201009, // 0083 NE R8 R8 R9
+ 0x78220014, // 0084 JMPF R8 #009A
+ 0x8C20011B, // 0085 GETMET R8 R0 K27
+ 0x5C280E00, // 0086 MOVE R10 R7
+ 0x5C2C0400, // 0087 MOVE R11 R2
+ 0x4C300000, // 0088 LDNIL R12
+ 0x7C200800, // 0089 CALL R8 4
+ 0xB8222400, // 008A GETNGBL R8 K18
+ 0x8C201113, // 008B GETMET R8 R8 K19
+ 0x58280014, // 008C LDCONST R10 K20
+ 0x7C200400, // 008D CALL R8 2
+ 0x78220009, // 008E JMPF R8 #0099
+ 0xB8220400, // 008F GETNGBL R8 K2
+ 0x60240018, // 0090 GETGBL R9 G24
+ 0x5828001F, // 0091 LDCONST R10 K31
+ 0x882C030C, // 0092 GETMBR R11 R1 K12
+ 0x882C1716, // 0093 GETMBR R11 R11 K22
+ 0x88300505, // 0094 GETMBR R12 R2 K5
+ 0x8834031D, // 0095 GETMBR R13 R1 K29
+ 0x7C240800, // 0096 CALL R9 4
+ 0x58280014, // 0097 LDCONST R10 K20
+ 0x7C200400, // 0098 CALL R8 2
+ 0x7002000F, // 0099 JMP #00AA
+ 0xB8222400, // 009A GETNGBL R8 K18
+ 0x8C201113, // 009B GETMET R8 R8 K19
+ 0x58280014, // 009C LDCONST R10 K20
+ 0x7C200400, // 009D CALL R8 2
+ 0x78220008, // 009E JMPF R8 #00A8
+ 0xB8220400, // 009F GETNGBL R8 K2
+ 0x60240018, // 00A0 GETGBL R9 G24
+ 0x58280020, // 00A1 LDCONST R10 K32
+ 0x882C030C, // 00A2 GETMBR R11 R1 K12
+ 0x882C1716, // 00A3 GETMBR R11 R11 K22
+ 0x8830031D, // 00A4 GETMBR R12 R1 K29
+ 0x7C240600, // 00A5 CALL R9 3
+ 0x58280014, // 00A6 LDCONST R10 K20
+ 0x7C200400, // 00A7 CALL R8 2
+ 0x50200000, // 00A8 LDBOOL R8 0 0
+ 0x80041000, // 00A9 RET 1 R8
+ 0x8C200F17, // 00AA GETMET R8 R7 K23
+ 0x58280021, // 00AB LDCONST R10 K33
+ 0x542DFFFB, // 00AC LDINT R11 -4
+ 0x7C200600, // 00AD CALL R8 3
+ 0x8C200F17, // 00AE GETMET R8 R7 K23
+ 0x542A0017, // 00AF LDINT R10 24
+ 0x582C0019, // 00B0 LDCONST R11 K25
+ 0x7C200600, // 00B1 CALL R8 3
+ 0x8C200322, // 00B2 GETMET R8 R1 K34
+ 0x542A0008, // 00B3 LDINT R10 9
+ 0x502C0200, // 00B4 LDBOOL R11 1 0
+ 0x7C200600, // 00B5 CALL R8 3
+ 0x8824010A, // 00B6 GETMBR R9 R0 K10
+ 0x88241323, // 00B7 GETMBR R9 R9 K35
+ 0x88280324, // 00B8 GETMBR R10 R1 K36
+ 0x8C2C1525, // 00B9 GETMET R11 R10 K37
+ 0x7C2C0200, // 00BA CALL R11 1
+ 0x8C2C1126, // 00BB GETMET R11 R8 K38
+ 0x5C340E00, // 00BC MOVE R13 R7
+ 0x5C381400, // 00BD MOVE R14 R10
+ 0x7C2C0600, // 00BE CALL R11 3
+ 0x8C2C1127, // 00BF GETMET R11 R8 K39
+ 0x7C2C0200, // 00C0 CALL R11 1
+ 0x8C2C1328, // 00C1 GETMET R11 R9 K40
+ 0x5C341000, // 00C2 MOVE R13 R8
+ 0x7C2C0400, // 00C3 CALL R11 2
+ 0xB82E0000, // 00C4 GETNGBL R11 K0
+ 0x882C1701, // 00C5 GETMBR R11 R11 K1
+ 0x8C2C1702, // 00C6 GETMET R11 R11 K2
+ 0x58340029, // 00C7 LDCONST R13 K41
0x7C2C0400, // 00C8 CALL R11 2
- 0xB82E0000, // 00C9 GETNGBL R11 K0
- 0x882C1701, // 00CA GETMBR R11 R11 K1
- 0x8C2C1702, // 00CB GETMET R11 R11 K2
- 0x58340029, // 00CC LDCONST R13 K41
- 0x7C2C0400, // 00CD CALL R11 2
- 0x502C0200, // 00CE LDBOOL R11 1 0
- 0x80041600, // 00CF RET 1 R11
+ 0x502C0200, // 00C9 LDBOOL R11 1 0
+ 0x80041600, // 00CA RET 1 R11
})
)
);
@@ -852,7 +842,7 @@ be_local_closure(class_Matter_IM_send_ack_now, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_process_invoke_request, /* name */
be_nested_proto(
- 20, /* nstack */
+ 19, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -888,13 +878,13 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
/* K24 */ be_nested_str_weak(_X28),
/* K25 */ be_nested_str_weak(_X29_X20),
/* K26 */ be_nested_str_weak(),
- /* K27 */ be_nested_str_weak(tasmota),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
- /* K29 */ be_nested_str_weak(local_session_id),
- /* K30 */ be_const_int(3),
- /* K31 */ be_nested_str_weak(SUCCESS),
- /* K32 */ be_nested_str_weak(invokeresponse2raw),
- /* K33 */ be_nested_str_weak(push),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
+ /* K28 */ be_nested_str_weak(local_session_id),
+ /* K29 */ be_const_int(3),
+ /* K30 */ be_nested_str_weak(SUCCESS),
+ /* K31 */ be_nested_str_weak(invokeresponse2raw),
+ /* K32 */ be_nested_str_weak(push),
+ /* K33 */ be_nested_str_weak(tasmota),
/* K34 */ be_nested_str_weak(loglevel),
/* K35 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
/* K36 */ be_nested_str_weak(exchange_id),
@@ -907,7 +897,7 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
}),
be_str_weak(process_invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[233]) { /* code */
+ ( &(const binstruction[228]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x880C0701, // 0001 GETMBR R3 R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@@ -926,7 +916,7 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0x88140908, // 000F GETMBR R5 R4 K8
0x4C180000, // 0010 LDNIL R6
0x20140A06, // 0011 NE R5 R5 R6
- 0x781600D4, // 0012 JMPF R5 #00E8
+ 0x781600CF, // 0012 JMPF R5 #00E3
0xB8160000, // 0013 GETNGBL R5 K0
0x8C140B09, // 0014 GETMET R5 R5 K9
0x7C140200, // 0015 CALL R5 1
@@ -938,7 +928,7 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0x60180010, // 001B GETGBL R6 G16
0x881C0908, // 001C GETMBR R7 R4 K8
0x7C180200, // 001D CALL R6 1
- 0xA80200B7, // 001E EXBLK 0 #00D7
+ 0xA80200B2, // 001E EXBLK 0 #00D2
0x5C1C0C00, // 001F MOVE R7 R6
0x7C1C0000, // 0020 CALL R7 0
0x88200F0D, // 0021 GETMBR R8 R7 K13
@@ -983,164 +973,159 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0x002C1719, // 0048 ADD R11 R11 K25
0x70020000, // 0049 JMP #004B
0x582C001A, // 004A LDCONST R11 K26
- 0xB8323600, // 004B GETNGBL R12 K27
- 0x8C301902, // 004C GETMET R12 R12 K2
- 0x60380018, // 004D GETGBL R14 G24
- 0x583C001C, // 004E LDCONST R15 K28
- 0x88400315, // 004F GETMBR R16 R1 K21
- 0x8840211D, // 0050 GETMBR R16 R16 K29
- 0x5C441200, // 0051 MOVE R17 R9
- 0x78220001, // 0052 JMPF R8 #0055
- 0x5C481000, // 0053 MOVE R18 R8
- 0x70020000, // 0054 JMP #0056
- 0x5848001A, // 0055 LDCONST R18 K26
- 0x5C4C1600, // 0056 MOVE R19 R11
- 0x7C380A00, // 0057 CALL R14 5
- 0x583C001E, // 0058 LDCONST R15 K30
- 0x7C300600, // 0059 CALL R12 3
- 0x4C300000, // 005A LDNIL R12
- 0x900E040C, // 005B SETMBR R3 K2 R12
- 0x60300015, // 005C GETGBL R12 G21
- 0x5436001F, // 005D LDINT R13 32
- 0x7C300200, // 005E CALL R12 1
- 0x50340200, // 005F LDBOOL R13 1 0
- 0x1C34140D, // 0060 EQ R13 R10 R13
- 0x74360004, // 0061 JMPT R13 #0067
- 0x88340710, // 0062 GETMBR R13 R3 K16
- 0xB83A0000, // 0063 GETNGBL R14 K0
- 0x88381D1F, // 0064 GETMBR R14 R14 K31
- 0x1C341A0E, // 0065 EQ R13 R13 R14
- 0x7836001B, // 0066 JMPF R13 #0083
- 0xB8360000, // 0067 GETNGBL R13 K0
- 0x88341B1F, // 0068 GETMBR R13 R13 K31
- 0x900E200D, // 0069 SETMBR R3 K16 R13
- 0x8C340120, // 006A GETMET R13 R0 K32
- 0x5C3C1800, // 006B MOVE R15 R12
- 0x5C400600, // 006C MOVE R16 R3
- 0x4C440000, // 006D LDNIL R17
- 0x7C340800, // 006E CALL R13 4
- 0x88340B0B, // 006F GETMBR R13 R5 K11
- 0x8C341B21, // 0070 GETMET R13 R13 K33
- 0x5C3C1800, // 0071 MOVE R15 R12
- 0x7C340400, // 0072 CALL R13 2
- 0xB8363600, // 0073 GETNGBL R13 K27
- 0x8C341B22, // 0074 GETMET R13 R13 K34
- 0x583C001E, // 0075 LDCONST R15 K30
- 0x7C340400, // 0076 CALL R13 2
- 0x78360009, // 0077 JMPF R13 #0082
- 0xB8363600, // 0078 GETNGBL R13 K27
- 0x8C341B02, // 0079 GETMET R13 R13 K2
- 0x603C0018, // 007A GETGBL R15 G24
- 0x58400023, // 007B LDCONST R16 K35
- 0x88440315, // 007C GETMBR R17 R1 K21
- 0x8844231D, // 007D GETMBR R17 R17 K29
- 0x88480324, // 007E GETMBR R18 R1 K36
- 0x7C3C0600, // 007F CALL R15 3
- 0x5840001E, // 0080 LDCONST R16 K30
- 0x7C340600, // 0081 CALL R13 3
- 0x70020052, // 0082 JMP #00D6
- 0x4C340000, // 0083 LDNIL R13
- 0x2034140D, // 0084 NE R13 R10 R13
- 0x78360022, // 0085 JMPF R13 #00A9
- 0x8C340120, // 0086 GETMET R13 R0 K32
- 0x5C3C1800, // 0087 MOVE R15 R12
- 0x5C400600, // 0088 MOVE R16 R3
- 0x5C441400, // 0089 MOVE R17 R10
- 0x7C340800, // 008A CALL R13 4
- 0x88340B0B, // 008B GETMBR R13 R5 K11
- 0x8C341B21, // 008C GETMET R13 R13 K33
- 0x5C3C1800, // 008D MOVE R15 R12
- 0x7C340400, // 008E CALL R13 2
- 0xB8360000, // 008F GETNGBL R13 K0
- 0x8C341B12, // 0090 GETMET R13 R13 K18
- 0x883C070E, // 0091 GETMBR R15 R3 K14
- 0x8840070F, // 0092 GETMBR R16 R3 K15
- 0x7C340600, // 0093 CALL R13 3
- 0x5C201A00, // 0094 MOVE R8 R13
- 0x5C341000, // 0095 MOVE R13 R8
- 0x74360000, // 0096 JMPT R13 #0098
- 0x5820001A, // 0097 LDCONST R8 K26
- 0xB8363600, // 0098 GETNGBL R13 K27
- 0x8C341B22, // 0099 GETMET R13 R13 K34
- 0x583C001E, // 009A LDCONST R15 K30
- 0x7C340400, // 009B CALL R13 2
- 0x7836000A, // 009C JMPF R13 #00A8
- 0xB8363600, // 009D GETNGBL R13 K27
- 0x8C341B02, // 009E GETMET R13 R13 K2
- 0x603C0018, // 009F GETGBL R15 G24
- 0x58400025, // 00A0 LDCONST R16 K37
- 0x88440315, // 00A1 GETMBR R17 R1 K21
- 0x8844231D, // 00A2 GETMBR R17 R17 K29
- 0x5C480600, // 00A3 MOVE R18 R3
- 0x5C4C1000, // 00A4 MOVE R19 R8
- 0x7C3C0800, // 00A5 CALL R15 4
- 0x5840001E, // 00A6 LDCONST R16 K30
- 0x7C340600, // 00A7 CALL R13 3
- 0x7002002C, // 00A8 JMP #00D6
- 0x88340710, // 00A9 GETMBR R13 R3 K16
- 0x4C380000, // 00AA LDNIL R14
- 0x20341A0E, // 00AB NE R13 R13 R14
- 0x78360019, // 00AC JMPF R13 #00C7
- 0x8C340120, // 00AD GETMET R13 R0 K32
- 0x5C3C1800, // 00AE MOVE R15 R12
- 0x5C400600, // 00AF MOVE R16 R3
- 0x4C440000, // 00B0 LDNIL R17
- 0x7C340800, // 00B1 CALL R13 4
- 0x88340B0B, // 00B2 GETMBR R13 R5 K11
- 0x8C341B21, // 00B3 GETMET R13 R13 K33
- 0x5C3C1800, // 00B4 MOVE R15 R12
- 0x7C340400, // 00B5 CALL R13 2
- 0xB8363600, // 00B6 GETNGBL R13 K27
- 0x8C341B22, // 00B7 GETMET R13 R13 K34
- 0x583C001E, // 00B8 LDCONST R15 K30
- 0x7C340400, // 00B9 CALL R13 2
- 0x7836000A, // 00BA JMPF R13 #00C6
- 0xB8363600, // 00BB GETNGBL R13 K27
- 0x8C341B02, // 00BC GETMET R13 R13 K2
- 0x603C0018, // 00BD GETGBL R15 G24
- 0x58400026, // 00BE LDCONST R16 K38
- 0x88440315, // 00BF GETMBR R17 R1 K21
- 0x8844231D, // 00C0 GETMBR R17 R17 K29
- 0x88480710, // 00C1 GETMBR R18 R3 K16
- 0x884C0324, // 00C2 GETMBR R19 R1 K36
- 0x7C3C0800, // 00C3 CALL R15 4
- 0x5840001E, // 00C4 LDCONST R16 K30
- 0x7C340600, // 00C5 CALL R13 3
- 0x7002000E, // 00C6 JMP #00D6
- 0xB8363600, // 00C7 GETNGBL R13 K27
- 0x8C341B22, // 00C8 GETMET R13 R13 K34
- 0x583C001E, // 00C9 LDCONST R15 K30
- 0x7C340400, // 00CA CALL R13 2
- 0x78360009, // 00CB JMPF R13 #00D6
- 0xB8363600, // 00CC GETNGBL R13 K27
- 0x8C341B02, // 00CD GETMET R13 R13 K2
- 0x603C0018, // 00CE GETGBL R15 G24
- 0x58400027, // 00CF LDCONST R16 K39
- 0x88440315, // 00D0 GETMBR R17 R1 K21
- 0x8844231D, // 00D1 GETMBR R17 R17 K29
- 0x88480324, // 00D2 GETMBR R18 R1 K36
- 0x7C3C0600, // 00D3 CALL R15 3
- 0x5840001E, // 00D4 LDCONST R16 K30
- 0x7C340600, // 00D5 CALL R13 3
- 0x7001FF47, // 00D6 JMP #001F
- 0x58180028, // 00D7 LDCONST R6 K40
- 0xAC180200, // 00D8 CATCH R6 1 0
- 0xB0080000, // 00D9 RAISE 2 R0 R0
- 0x6018000C, // 00DA GETGBL R6 G12
- 0x881C0B0B, // 00DB GETMBR R7 R5 K11
- 0x7C180200, // 00DC CALL R6 1
- 0x24180D29, // 00DD GT R6 R6 K41
- 0x781A0004, // 00DE JMPF R6 #00E4
- 0x8C18012A, // 00DF GETMET R6 R0 K42
- 0x5C200200, // 00E0 MOVE R8 R1
- 0x5C240A00, // 00E1 MOVE R9 R5
- 0x7C180600, // 00E2 CALL R6 3
- 0x70020001, // 00E3 JMP #00E6
- 0x50180000, // 00E4 LDBOOL R6 0 0
- 0x80040C00, // 00E5 RET 1 R6
- 0x50180200, // 00E6 LDBOOL R6 1 0
- 0x80040C00, // 00E7 RET 1 R6
- 0x80000000, // 00E8 RET 0
+ 0xB8320400, // 004B GETNGBL R12 K2
+ 0x60340018, // 004C GETGBL R13 G24
+ 0x5838001B, // 004D LDCONST R14 K27
+ 0x883C0315, // 004E GETMBR R15 R1 K21
+ 0x883C1F1C, // 004F GETMBR R15 R15 K28
+ 0x5C401200, // 0050 MOVE R16 R9
+ 0x78220001, // 0051 JMPF R8 #0054
+ 0x5C441000, // 0052 MOVE R17 R8
+ 0x70020000, // 0053 JMP #0055
+ 0x5844001A, // 0054 LDCONST R17 K26
+ 0x5C481600, // 0055 MOVE R18 R11
+ 0x7C340A00, // 0056 CALL R13 5
+ 0x5838001D, // 0057 LDCONST R14 K29
+ 0x7C300400, // 0058 CALL R12 2
+ 0x4C300000, // 0059 LDNIL R12
+ 0x900E040C, // 005A SETMBR R3 K2 R12
+ 0x60300015, // 005B GETGBL R12 G21
+ 0x5436001F, // 005C LDINT R13 32
+ 0x7C300200, // 005D CALL R12 1
+ 0x50340200, // 005E LDBOOL R13 1 0
+ 0x1C34140D, // 005F EQ R13 R10 R13
+ 0x74360004, // 0060 JMPT R13 #0066
+ 0x88340710, // 0061 GETMBR R13 R3 K16
+ 0xB83A0000, // 0062 GETNGBL R14 K0
+ 0x88381D1E, // 0063 GETMBR R14 R14 K30
+ 0x1C341A0E, // 0064 EQ R13 R13 R14
+ 0x7836001A, // 0065 JMPF R13 #0081
+ 0xB8360000, // 0066 GETNGBL R13 K0
+ 0x88341B1E, // 0067 GETMBR R13 R13 K30
+ 0x900E200D, // 0068 SETMBR R3 K16 R13
+ 0x8C34011F, // 0069 GETMET R13 R0 K31
+ 0x5C3C1800, // 006A MOVE R15 R12
+ 0x5C400600, // 006B MOVE R16 R3
+ 0x4C440000, // 006C LDNIL R17
+ 0x7C340800, // 006D CALL R13 4
+ 0x88340B0B, // 006E GETMBR R13 R5 K11
+ 0x8C341B20, // 006F GETMET R13 R13 K32
+ 0x5C3C1800, // 0070 MOVE R15 R12
+ 0x7C340400, // 0071 CALL R13 2
+ 0xB8364200, // 0072 GETNGBL R13 K33
+ 0x8C341B22, // 0073 GETMET R13 R13 K34
+ 0x583C001D, // 0074 LDCONST R15 K29
+ 0x7C340400, // 0075 CALL R13 2
+ 0x78360008, // 0076 JMPF R13 #0080
+ 0xB8360400, // 0077 GETNGBL R13 K2
+ 0x60380018, // 0078 GETGBL R14 G24
+ 0x583C0023, // 0079 LDCONST R15 K35
+ 0x88400315, // 007A GETMBR R16 R1 K21
+ 0x8840211C, // 007B GETMBR R16 R16 K28
+ 0x88440324, // 007C GETMBR R17 R1 K36
+ 0x7C380600, // 007D CALL R14 3
+ 0x583C001D, // 007E LDCONST R15 K29
+ 0x7C340400, // 007F CALL R13 2
+ 0x7002004F, // 0080 JMP #00D1
+ 0x4C340000, // 0081 LDNIL R13
+ 0x2034140D, // 0082 NE R13 R10 R13
+ 0x78360021, // 0083 JMPF R13 #00A6
+ 0x8C34011F, // 0084 GETMET R13 R0 K31
+ 0x5C3C1800, // 0085 MOVE R15 R12
+ 0x5C400600, // 0086 MOVE R16 R3
+ 0x5C441400, // 0087 MOVE R17 R10
+ 0x7C340800, // 0088 CALL R13 4
+ 0x88340B0B, // 0089 GETMBR R13 R5 K11
+ 0x8C341B20, // 008A GETMET R13 R13 K32
+ 0x5C3C1800, // 008B MOVE R15 R12
+ 0x7C340400, // 008C CALL R13 2
+ 0xB8360000, // 008D GETNGBL R13 K0
+ 0x8C341B12, // 008E GETMET R13 R13 K18
+ 0x883C070E, // 008F GETMBR R15 R3 K14
+ 0x8840070F, // 0090 GETMBR R16 R3 K15
+ 0x7C340600, // 0091 CALL R13 3
+ 0x5C201A00, // 0092 MOVE R8 R13
+ 0x5C341000, // 0093 MOVE R13 R8
+ 0x74360000, // 0094 JMPT R13 #0096
+ 0x5820001A, // 0095 LDCONST R8 K26
+ 0xB8364200, // 0096 GETNGBL R13 K33
+ 0x8C341B22, // 0097 GETMET R13 R13 K34
+ 0x583C001D, // 0098 LDCONST R15 K29
+ 0x7C340400, // 0099 CALL R13 2
+ 0x78360009, // 009A JMPF R13 #00A5
+ 0xB8360400, // 009B GETNGBL R13 K2
+ 0x60380018, // 009C GETGBL R14 G24
+ 0x583C0025, // 009D LDCONST R15 K37
+ 0x88400315, // 009E GETMBR R16 R1 K21
+ 0x8840211C, // 009F GETMBR R16 R16 K28
+ 0x5C440600, // 00A0 MOVE R17 R3
+ 0x5C481000, // 00A1 MOVE R18 R8
+ 0x7C380800, // 00A2 CALL R14 4
+ 0x583C001D, // 00A3 LDCONST R15 K29
+ 0x7C340400, // 00A4 CALL R13 2
+ 0x7002002A, // 00A5 JMP #00D1
+ 0x88340710, // 00A6 GETMBR R13 R3 K16
+ 0x4C380000, // 00A7 LDNIL R14
+ 0x20341A0E, // 00A8 NE R13 R13 R14
+ 0x78360018, // 00A9 JMPF R13 #00C3
+ 0x8C34011F, // 00AA GETMET R13 R0 K31
+ 0x5C3C1800, // 00AB MOVE R15 R12
+ 0x5C400600, // 00AC MOVE R16 R3
+ 0x4C440000, // 00AD LDNIL R17
+ 0x7C340800, // 00AE CALL R13 4
+ 0x88340B0B, // 00AF GETMBR R13 R5 K11
+ 0x8C341B20, // 00B0 GETMET R13 R13 K32
+ 0x5C3C1800, // 00B1 MOVE R15 R12
+ 0x7C340400, // 00B2 CALL R13 2
+ 0xB8364200, // 00B3 GETNGBL R13 K33
+ 0x8C341B22, // 00B4 GETMET R13 R13 K34
+ 0x583C001D, // 00B5 LDCONST R15 K29
+ 0x7C340400, // 00B6 CALL R13 2
+ 0x78360009, // 00B7 JMPF R13 #00C2
+ 0xB8360400, // 00B8 GETNGBL R13 K2
+ 0x60380018, // 00B9 GETGBL R14 G24
+ 0x583C0026, // 00BA LDCONST R15 K38
+ 0x88400315, // 00BB GETMBR R16 R1 K21
+ 0x8840211C, // 00BC GETMBR R16 R16 K28
+ 0x88440710, // 00BD GETMBR R17 R3 K16
+ 0x88480324, // 00BE GETMBR R18 R1 K36
+ 0x7C380800, // 00BF CALL R14 4
+ 0x583C001D, // 00C0 LDCONST R15 K29
+ 0x7C340400, // 00C1 CALL R13 2
+ 0x7002000D, // 00C2 JMP #00D1
+ 0xB8364200, // 00C3 GETNGBL R13 K33
+ 0x8C341B22, // 00C4 GETMET R13 R13 K34
+ 0x583C001D, // 00C5 LDCONST R15 K29
+ 0x7C340400, // 00C6 CALL R13 2
+ 0x78360008, // 00C7 JMPF R13 #00D1
+ 0xB8360400, // 00C8 GETNGBL R13 K2
+ 0x60380018, // 00C9 GETGBL R14 G24
+ 0x583C0027, // 00CA LDCONST R15 K39
+ 0x88400315, // 00CB GETMBR R16 R1 K21
+ 0x8840211C, // 00CC GETMBR R16 R16 K28
+ 0x88440324, // 00CD GETMBR R17 R1 K36
+ 0x7C380600, // 00CE CALL R14 3
+ 0x583C001D, // 00CF LDCONST R15 K29
+ 0x7C340400, // 00D0 CALL R13 2
+ 0x7001FF4C, // 00D1 JMP #001F
+ 0x58180028, // 00D2 LDCONST R6 K40
+ 0xAC180200, // 00D3 CATCH R6 1 0
+ 0xB0080000, // 00D4 RAISE 2 R0 R0
+ 0x6018000C, // 00D5 GETGBL R6 G12
+ 0x881C0B0B, // 00D6 GETMBR R7 R5 K11
+ 0x7C180200, // 00D7 CALL R6 1
+ 0x24180D29, // 00D8 GT R6 R6 K41
+ 0x781A0004, // 00D9 JMPF R6 #00DF
+ 0x8C18012A, // 00DA GETMET R6 R0 K42
+ 0x5C200200, // 00DB MOVE R8 R1
+ 0x5C240A00, // 00DC MOVE R9 R5
+ 0x7C180600, // 00DD CALL R6 3
+ 0x70020001, // 00DE JMP #00E1
+ 0x50180000, // 00DF LDBOOL R6 0 0
+ 0x80040C00, // 00E0 RET 1 R6
+ 0x50180200, // 00E1 LDBOOL R6 1 0
+ 0x80040C00, // 00E2 RET 1 R6
+ 0x80000000, // 00E3 RET 0
})
)
);
@@ -1298,7 +1283,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
1, /* has sup protos */
( &(const struct bproto*[ 3]) {
be_nested_proto(
- 17, /* nstack */
+ 16, /* nstack */
5, /* argc */
0, /* varg */
1, /* has upvals */
@@ -1308,7 +1293,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0, /* has sup protos */
NULL,
1, /* has constants */
- ( &(const bvalue[26]) { /* constants */
+ ( &(const bvalue[25]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(get_attribute_name),
/* K2 */ be_nested_str_weak(cluster),
@@ -1328,17 +1313,16 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
/* K16 */ be_nested_str_weak(endpoint),
/* K17 */ be_nested_str_weak(write_responses),
/* K18 */ be_nested_str_weak(push),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(log),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
- /* K22 */ be_const_int(0),
- /* K23 */ be_const_int(2),
- /* K24 */ be_const_int(3),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20IGNORED),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
+ /* K21 */ be_const_int(0),
+ /* K22 */ be_const_int(2),
+ /* K23 */ be_const_int(3),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20IGNORED),
}),
be_str_weak(write_single_attribute),
&be_const_str_solidified,
- ( &(const binstruction[101]) { /* code */
+ ( &(const binstruction[99]) { /* code */
0xB8160000, // 0000 GETNGBL R5 K0
0x8C140B01, // 0001 GETMET R5 R5 K1
0x881C0502, // 0002 GETMBR R7 R2 K2
@@ -1371,8 +1355,8 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x881C0507, // 001D GETMBR R7 R2 K7
0x4C200000, // 001E LDNIL R8
0x201C0E08, // 001F NE R7 R7 R8
- 0x781E0037, // 0020 JMPF R7 #0059
- 0x78120035, // 0021 JMPF R4 #0058
+ 0x781E0036, // 0020 JMPF R7 #0058
+ 0x78120034, // 0021 JMPF R4 #0057
0xB81E0000, // 0022 GETNGBL R7 K0
0x8C1C0F0C, // 0023 GETMET R7 R7 K12
0x7C1C0200, // 0024 CALL R7 1
@@ -1401,45 +1385,43 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x5C280E00, // 003B MOVE R10 R7
0x7C200400, // 003C CALL R8 2
0xB8222600, // 003D GETNGBL R8 K19
- 0x8C201114, // 003E GETMET R8 R8 K20
- 0x60280018, // 003F GETGBL R10 G24
- 0x582C0015, // 0040 LDCONST R11 K21
- 0x60300008, // 0041 GETGBL R12 G8
- 0x5C340400, // 0042 MOVE R13 R2
- 0x7C300200, // 0043 CALL R12 1
- 0x5C340A00, // 0044 MOVE R13 R5
+ 0x60240018, // 003E GETGBL R9 G24
+ 0x58280014, // 003F LDCONST R10 K20
+ 0x602C0008, // 0040 GETGBL R11 G8
+ 0x5C300400, // 0041 MOVE R12 R2
+ 0x7C2C0200, // 0042 CALL R11 1
+ 0x5C300A00, // 0043 MOVE R12 R5
+ 0x88340507, // 0044 GETMBR R13 R2 K7
0x88380507, // 0045 GETMBR R14 R2 K7
- 0x883C0507, // 0046 GETMBR R15 R2 K7
- 0xB8420000, // 0047 GETNGBL R16 K0
- 0x8840210B, // 0048 GETMBR R16 R16 K11
- 0x1C3C1E10, // 0049 EQ R15 R15 R16
- 0x783E0001, // 004A JMPF R15 #004D
- 0x583C000B, // 004B LDCONST R15 K11
- 0x70020000, // 004C JMP #004E
- 0x583C0006, // 004D LDCONST R15 K6
- 0x7C280A00, // 004E CALL R10 5
- 0x882C0510, // 004F GETMBR R11 R2 K16
- 0x202C1716, // 0050 NE R11 R11 K22
- 0x782E0001, // 0051 JMPF R11 #0054
- 0x582C0017, // 0052 LDCONST R11 K23
- 0x70020000, // 0053 JMP #0055
- 0x582C0018, // 0054 LDCONST R11 K24
- 0x7C200600, // 0055 CALL R8 3
- 0x50200200, // 0056 LDBOOL R8 1 0
- 0x80041000, // 0057 RET 1 R8
- 0x7002000A, // 0058 JMP #0064
- 0xB81E2600, // 0059 GETNGBL R7 K19
- 0x8C1C0F14, // 005A GETMET R7 R7 K20
- 0x60240018, // 005B GETGBL R9 G24
- 0x58280019, // 005C LDCONST R10 K25
- 0x602C0008, // 005D GETGBL R11 G8
- 0x5C300400, // 005E MOVE R12 R2
- 0x7C2C0200, // 005F CALL R11 1
- 0x5C300A00, // 0060 MOVE R12 R5
- 0x7C240600, // 0061 CALL R9 3
- 0x58280018, // 0062 LDCONST R10 K24
- 0x7C1C0600, // 0063 CALL R7 3
- 0x80000000, // 0064 RET 0
+ 0xB83E0000, // 0046 GETNGBL R15 K0
+ 0x883C1F0B, // 0047 GETMBR R15 R15 K11
+ 0x1C381C0F, // 0048 EQ R14 R14 R15
+ 0x783A0001, // 0049 JMPF R14 #004C
+ 0x5838000B, // 004A LDCONST R14 K11
+ 0x70020000, // 004B JMP #004D
+ 0x58380006, // 004C LDCONST R14 K6
+ 0x7C240A00, // 004D CALL R9 5
+ 0x88280510, // 004E GETMBR R10 R2 K16
+ 0x20281515, // 004F NE R10 R10 K21
+ 0x782A0001, // 0050 JMPF R10 #0053
+ 0x58280016, // 0051 LDCONST R10 K22
+ 0x70020000, // 0052 JMP #0054
+ 0x58280017, // 0053 LDCONST R10 K23
+ 0x7C200400, // 0054 CALL R8 2
+ 0x50200200, // 0055 LDBOOL R8 1 0
+ 0x80041000, // 0056 RET 1 R8
+ 0x70020009, // 0057 JMP #0062
+ 0xB81E2600, // 0058 GETNGBL R7 K19
+ 0x60200018, // 0059 GETGBL R8 G24
+ 0x58240018, // 005A LDCONST R9 K24
+ 0x60280008, // 005B GETGBL R10 G8
+ 0x5C2C0400, // 005C MOVE R11 R2
+ 0x7C280200, // 005D CALL R10 1
+ 0x5C2C0A00, // 005E MOVE R11 R5
+ 0x7C200600, // 005F CALL R8 3
+ 0x58240017, // 0060 LDCONST R9 K23
+ 0x7C1C0400, // 0061 CALL R7 2
+ 0x80000000, // 0062 RET 0
})
),
be_nested_proto(
@@ -1472,7 +1454,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
&be_class_Matter_IM,
}),
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[29]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(WriteRequestMessage),
/* K2 */ be_nested_str_weak(from_TLV),
@@ -1493,20 +1475,19 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
/* K17 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
/* K18 */ be_nested_str_weak(INVALID_ACTION),
/* K19 */ be_nested_str_weak(get_attribute_name),
- /* K20 */ be_nested_str_weak(tasmota),
- /* K21 */ be_nested_str_weak(log),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
- /* K23 */ be_nested_str_weak(_X20_X28),
- /* K24 */ be_nested_str_weak(_X29),
- /* K25 */ be_nested_str_weak(),
- /* K26 */ be_const_int(3),
- /* K27 */ be_nested_str_weak(process_attribute_expansion),
- /* K28 */ be_nested_str_weak(stop_iteration),
- /* K29 */ be_nested_str_weak(send_write_response),
+ /* K20 */ be_nested_str_weak(log),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
+ /* K22 */ be_nested_str_weak(_X20_X28),
+ /* K23 */ be_nested_str_weak(_X29),
+ /* K24 */ be_nested_str_weak(),
+ /* K25 */ be_const_int(3),
+ /* K26 */ be_nested_str_weak(process_attribute_expansion),
+ /* K27 */ be_nested_str_weak(stop_iteration),
+ /* K28 */ be_nested_str_weak(send_write_response),
}),
be_str_weak(process_write_request),
&be_const_str_solidified,
- ( &(const binstruction[104]) { /* code */
+ ( &(const binstruction[103]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -1525,7 +1506,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x88200708, // 000F GETMBR R8 R3 K8
0x4C240000, // 0010 LDNIL R9
0x20201009, // 0011 NE R8 R8 R9
- 0x78220051, // 0012 JMPF R8 #0065
+ 0x78220050, // 0012 JMPF R8 #0064
0xB8220000, // 0013 GETNGBL R8 K0
0x8C201109, // 0014 GETMET R8 R8 K9
0x7C200200, // 0015 CALL R8 1
@@ -1535,7 +1516,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x60240010, // 0019 GETGBL R9 G16
0x88280708, // 001A GETMBR R10 R3 K8
0x7C240200, // 001B CALL R9 1
- 0xA802003D, // 001C EXBLK 0 #005B
+ 0xA802003C, // 001C EXBLK 0 #005A
0x5C281200, // 001D MOVE R10 R9
0x7C280000, // 001E CALL R10 0
0x882C150B, // 001F GETMBR R11 R10 K11
@@ -1571,46 +1552,45 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x88340F0D, // 003D GETMBR R13 R7 K13
0x4C380000, // 003E LDNIL R14
0x1C341A0E, // 003F EQ R13 R13 R14
- 0x78360012, // 0040 JMPF R13 #0054
+ 0x78360011, // 0040 JMPF R13 #0053
0xB8360000, // 0041 GETNGBL R13 K0
0x8C341B13, // 0042 GETMET R13 R13 K19
0x883C0F0E, // 0043 GETMBR R15 R7 K14
0x88400F0F, // 0044 GETMBR R16 R7 K15
0x7C340600, // 0045 CALL R13 3
0xB83A2800, // 0046 GETNGBL R14 K20
- 0x8C381D15, // 0047 GETMET R14 R14 K21
- 0x60400008, // 0048 GETGBL R16 G8
- 0x5C440E00, // 0049 MOVE R17 R7
- 0x7C400200, // 004A CALL R16 1
- 0x00422C10, // 004B ADD R16 K22 R16
- 0x78360002, // 004C JMPF R13 #0050
- 0x00462E0D, // 004D ADD R17 K23 R13
- 0x00442318, // 004E ADD R17 R17 K24
- 0x70020000, // 004F JMP #0051
- 0x58440019, // 0050 LDCONST R17 K25
- 0x00402011, // 0051 ADD R16 R16 R17
- 0x5844001A, // 0052 LDCONST R17 K26
- 0x7C380600, // 0053 CALL R14 3
- 0x88340104, // 0054 GETMBR R13 R0 K4
- 0x8C341B1B, // 0055 GETMET R13 R13 K27
- 0x5C3C0E00, // 0056 MOVE R15 R7
- 0x84400001, // 0057 CLOSURE R16 P1
- 0x7C340600, // 0058 CALL R13 3
- 0xA0240000, // 0059 CLOSE R9
- 0x7001FFC1, // 005A JMP #001D
- 0x5824001C, // 005B LDCONST R9 K28
- 0xAC240200, // 005C CATCH R9 1 0
- 0xB0080000, // 005D RAISE 2 R0 R0
- 0x5C240800, // 005E MOVE R9 R4
- 0x74260003, // 005F JMPT R9 #0064
- 0x8C24011D, // 0060 GETMET R9 R0 K29
- 0x5C2C0200, // 0061 MOVE R11 R1
- 0x5C301000, // 0062 MOVE R12 R8
- 0x7C240600, // 0063 CALL R9 3
- 0xA0200000, // 0064 CLOSE R8
- 0x50200200, // 0065 LDBOOL R8 1 0
- 0xA0000000, // 0066 CLOSE R0
- 0x80041000, // 0067 RET 1 R8
+ 0x603C0008, // 0047 GETGBL R15 G8
+ 0x5C400E00, // 0048 MOVE R16 R7
+ 0x7C3C0200, // 0049 CALL R15 1
+ 0x003E2A0F, // 004A ADD R15 K21 R15
+ 0x78360002, // 004B JMPF R13 #004F
+ 0x00422C0D, // 004C ADD R16 K22 R13
+ 0x00402117, // 004D ADD R16 R16 K23
+ 0x70020000, // 004E JMP #0050
+ 0x58400018, // 004F LDCONST R16 K24
+ 0x003C1E10, // 0050 ADD R15 R15 R16
+ 0x58400019, // 0051 LDCONST R16 K25
+ 0x7C380400, // 0052 CALL R14 2
+ 0x88340104, // 0053 GETMBR R13 R0 K4
+ 0x8C341B1A, // 0054 GETMET R13 R13 K26
+ 0x5C3C0E00, // 0055 MOVE R15 R7
+ 0x84400001, // 0056 CLOSURE R16 P1
+ 0x7C340600, // 0057 CALL R13 3
+ 0xA0240000, // 0058 CLOSE R9
+ 0x7001FFC2, // 0059 JMP #001D
+ 0x5824001B, // 005A LDCONST R9 K27
+ 0xAC240200, // 005B CATCH R9 1 0
+ 0xB0080000, // 005C RAISE 2 R0 R0
+ 0x5C240800, // 005D MOVE R9 R4
+ 0x74260003, // 005E JMPT R9 #0063
+ 0x8C24011C, // 005F GETMET R9 R0 K28
+ 0x5C2C0200, // 0060 MOVE R11 R1
+ 0x5C301000, // 0061 MOVE R12 R8
+ 0x7C240600, // 0062 CALL R9 3
+ 0xA0200000, // 0063 CLOSE R8
+ 0x50200200, // 0064 LDBOOL R8 1 0
+ 0xA0000000, // 0065 CLOSE R0
+ 0x80041000, // 0066 RET 1 R8
})
)
);
@@ -1769,7 +1749,7 @@ be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
+ ( &(const bvalue[24]) { /* constants */
/* K0 */ be_nested_str_weak(session),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(ReadRequestMessage),
@@ -1782,23 +1762,22 @@ be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
/* K9 */ be_nested_str_weak(attribute),
/* K10 */ be_nested_str_weak(push),
/* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(tasmota),
- /* K13 */ be_nested_str_weak(log),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
- /* K15 */ be_nested_str_weak(local_session_id),
- /* K16 */ be_nested_str_weak(subscription_id),
- /* K17 */ be_const_int(3),
- /* K18 */ be_nested_str_weak(is_keep_alive),
- /* K19 */ be_nested_str_weak(_inner_process_read_request),
- /* K20 */ be_nested_str_weak(suppress_response),
- /* K21 */ be_nested_str_weak(IM_ReportDataSubscribed),
- /* K22 */ be_nested_str_weak(_message_handler),
- /* K23 */ be_nested_str_weak(send_queue),
- /* K24 */ be_nested_str_weak(send_enqueued),
+ /* K12 */ be_nested_str_weak(log),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
+ /* K14 */ be_nested_str_weak(local_session_id),
+ /* K15 */ be_nested_str_weak(subscription_id),
+ /* K16 */ be_const_int(3),
+ /* K17 */ be_nested_str_weak(is_keep_alive),
+ /* K18 */ be_nested_str_weak(_inner_process_read_request),
+ /* K19 */ be_nested_str_weak(suppress_response),
+ /* K20 */ be_nested_str_weak(IM_ReportDataSubscribed),
+ /* K21 */ be_nested_str_weak(_message_handler),
+ /* K22 */ be_nested_str_weak(send_queue),
+ /* K23 */ be_nested_str_weak(send_enqueued),
}),
be_str_weak(send_subscribe_update),
&be_const_str_solidified,
- ( &(const binstruction[67]) { /* code */
+ ( &(const binstruction[66]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@@ -1832,40 +1811,39 @@ be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
0xAC100200, // 001E CATCH R4 1 0
0xB0080000, // 001F RAISE 2 R0 R0
0xB8121800, // 0020 GETNGBL R4 K12
- 0x8C10090D, // 0021 GETMET R4 R4 K13
- 0x60180018, // 0022 GETGBL R6 G24
- 0x581C000E, // 0023 LDCONST R7 K14
- 0x8820050F, // 0024 GETMBR R8 R2 K15
- 0x88240310, // 0025 GETMBR R9 R1 K16
- 0x7C180600, // 0026 CALL R6 3
- 0x581C0011, // 0027 LDCONST R7 K17
- 0x7C100600, // 0028 CALL R4 3
- 0x50100000, // 0029 LDBOOL R4 0 0
- 0x90062404, // 002A SETMBR R1 K18 R4
- 0x8C100113, // 002B GETMET R4 R0 K19
- 0x5C180400, // 002C MOVE R6 R2
- 0x5C1C0600, // 002D MOVE R7 R3
- 0x4C200000, // 002E LDNIL R8
- 0x7C100800, // 002F CALL R4 4
- 0x50140000, // 0030 LDBOOL R5 0 0
- 0x90122805, // 0031 SETMBR R4 K20 R5
- 0x88140310, // 0032 GETMBR R5 R1 K16
- 0x90122005, // 0033 SETMBR R4 K16 R5
- 0xB8160200, // 0034 GETNGBL R5 K1
- 0x8C140B15, // 0035 GETMET R5 R5 K21
- 0x881C0516, // 0036 GETMBR R7 R2 K22
- 0x5C200400, // 0037 MOVE R8 R2
- 0x5C240800, // 0038 MOVE R9 R4
- 0x5C280200, // 0039 MOVE R10 R1
- 0x7C140A00, // 003A CALL R5 5
- 0x88180117, // 003B GETMBR R6 R0 K23
- 0x8C180D0A, // 003C GETMET R6 R6 K10
- 0x5C200A00, // 003D MOVE R8 R5
- 0x7C180400, // 003E CALL R6 2
- 0x8C180118, // 003F GETMET R6 R0 K24
- 0x88200516, // 0040 GETMBR R8 R2 K22
- 0x7C180400, // 0041 CALL R6 2
- 0x80000000, // 0042 RET 0
+ 0x60140018, // 0021 GETGBL R5 G24
+ 0x5818000D, // 0022 LDCONST R6 K13
+ 0x881C050E, // 0023 GETMBR R7 R2 K14
+ 0x8820030F, // 0024 GETMBR R8 R1 K15
+ 0x7C140600, // 0025 CALL R5 3
+ 0x58180010, // 0026 LDCONST R6 K16
+ 0x7C100400, // 0027 CALL R4 2
+ 0x50100000, // 0028 LDBOOL R4 0 0
+ 0x90062204, // 0029 SETMBR R1 K17 R4
+ 0x8C100112, // 002A GETMET R4 R0 K18
+ 0x5C180400, // 002B MOVE R6 R2
+ 0x5C1C0600, // 002C MOVE R7 R3
+ 0x4C200000, // 002D LDNIL R8
+ 0x7C100800, // 002E CALL R4 4
+ 0x50140000, // 002F LDBOOL R5 0 0
+ 0x90122605, // 0030 SETMBR R4 K19 R5
+ 0x8814030F, // 0031 GETMBR R5 R1 K15
+ 0x90121E05, // 0032 SETMBR R4 K15 R5
+ 0xB8160200, // 0033 GETNGBL R5 K1
+ 0x8C140B14, // 0034 GETMET R5 R5 K20
+ 0x881C0515, // 0035 GETMBR R7 R2 K21
+ 0x5C200400, // 0036 MOVE R8 R2
+ 0x5C240800, // 0037 MOVE R9 R4
+ 0x5C280200, // 0038 MOVE R10 R1
+ 0x7C140A00, // 0039 CALL R5 5
+ 0x88180116, // 003A GETMBR R6 R0 K22
+ 0x8C180D0A, // 003B GETMET R6 R6 K10
+ 0x5C200A00, // 003C MOVE R8 R5
+ 0x7C180400, // 003D CALL R6 2
+ 0x8C180117, // 003E GETMET R6 R0 K23
+ 0x88200515, // 003F GETMBR R8 R2 K21
+ 0x7C180400, // 0040 CALL R6 2
+ 0x80000000, // 0041 RET 0
})
)
);
@@ -2218,7 +2196,7 @@ be_local_closure(class_Matter_IM_send_status, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
be_nested_proto(
- 19, /* nstack */
+ 18, /* nstack */
5, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2261,12 +2239,12 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
/* K19 */ be_nested_str_weak(push),
/* K20 */ be_nested_str_weak(val),
/* K21 */ be_nested_str_weak(stop_iteration),
- /* K22 */ be_nested_str_weak(tasmota),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
- /* K25 */ be_nested_str_weak(local_session_id),
- /* K26 */ be_const_int(3),
- /* K27 */ be_nested_str_weak(attributestatus2raw),
+ /* K22 */ be_nested_str_weak(log),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
+ /* K24 */ be_nested_str_weak(local_session_id),
+ /* K25 */ be_const_int(3),
+ /* K26 */ be_nested_str_weak(attributestatus2raw),
+ /* K27 */ be_nested_str_weak(tasmota),
/* K28 */ be_nested_str_weak(loglevel),
/* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
/* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
@@ -2277,7 +2255,7 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
}),
be_str_weak(read_single_attribute),
&be_const_str_solidified,
- ( &(const binstruction[238]) { /* code */
+ ( &(const binstruction[235]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0xB8160000, // 0002 GETNGBL R5 K0
@@ -2308,7 +2286,7 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
0x4C200000, // 001B LDNIL R8
0x4C240000, // 001C LDNIL R9
0x20240C09, // 001D NE R9 R6 R9
- 0x78260054, // 001E JMPF R9 #0074
+ 0x78260053, // 001E JMPF R9 #0073
0x58240007, // 001F LDCONST R9 K7
0x68280002, // 0020 GETUPV R10 U2
0x742A0002, // 0021 JMPT R10 #0025
@@ -2380,142 +2358,139 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
0x5C380C00, // 0063 MOVE R14 R6
0x7C280800, // 0064 CALL R10 4
0x68280002, // 0065 GETUPV R10 U2
- 0x742A000B, // 0066 JMPT R10 #0073
+ 0x742A000A, // 0066 JMPT R10 #0072
0xB82A2C00, // 0067 GETNGBL R10 K22
- 0x8C281517, // 0068 GETMET R10 R10 K23
- 0x60300018, // 0069 GETGBL R12 G24
- 0x58340018, // 006A LDCONST R13 K24
- 0x68380000, // 006B GETUPV R14 U0
- 0x88381D19, // 006C GETMBR R14 R14 K25
- 0x5C3C0400, // 006D MOVE R15 R2
- 0x5C400A00, // 006E MOVE R16 R5
- 0x5C441200, // 006F MOVE R17 R9
- 0x7C300A00, // 0070 CALL R12 5
- 0x5834001A, // 0071 LDCONST R13 K26
- 0x7C280600, // 0072 CALL R10 3
- 0x7002003B, // 0073 JMP #00B0
- 0x88240508, // 0074 GETMBR R9 R2 K8
- 0x4C280000, // 0075 LDNIL R10
- 0x2024120A, // 0076 NE R9 R9 R10
- 0x78260026, // 0077 JMPF R9 #009F
- 0x780E0024, // 0078 JMPF R3 #009E
- 0x60240015, // 0079 GETGBL R9 G21
- 0x542A002F, // 007A LDINT R10 48
- 0x7C240200, // 007B CALL R9 1
- 0x5C201200, // 007C MOVE R8 R9
- 0x68240001, // 007D GETUPV R9 U1
- 0x8C24131B, // 007E GETMET R9 R9 K27
- 0x5C2C1000, // 007F MOVE R11 R8
- 0x5C300400, // 0080 MOVE R12 R2
- 0x88340508, // 0081 GETMBR R13 R2 K8
- 0x7C240800, // 0082 CALL R9 4
- 0xB8262C00, // 0083 GETNGBL R9 K22
- 0x8C24131C, // 0084 GETMET R9 R9 K28
- 0x582C001A, // 0085 LDCONST R11 K26
- 0x7C240400, // 0086 CALL R9 2
- 0x78260015, // 0087 JMPF R9 #009E
- 0xB8262C00, // 0088 GETNGBL R9 K22
- 0x8C241317, // 0089 GETMET R9 R9 K23
- 0x602C0018, // 008A GETGBL R11 G24
- 0x5830001D, // 008B LDCONST R12 K29
- 0x68340000, // 008C GETUPV R13 U0
- 0x88341B19, // 008D GETMBR R13 R13 K25
- 0x60380008, // 008E GETGBL R14 G8
- 0x5C3C0400, // 008F MOVE R15 R2
- 0x7C380200, // 0090 CALL R14 1
- 0x5C3C0A00, // 0091 MOVE R15 R5
- 0x88400508, // 0092 GETMBR R16 R2 K8
- 0x88440508, // 0093 GETMBR R17 R2 K8
- 0xB84A0000, // 0094 GETNGBL R18 K0
- 0x8848251E, // 0095 GETMBR R18 R18 K30
- 0x1C442212, // 0096 EQ R17 R17 R18
- 0x78460001, // 0097 JMPF R17 #009A
- 0x5844001E, // 0098 LDCONST R17 K30
- 0x70020000, // 0099 JMP #009B
- 0x58440007, // 009A LDCONST R17 K7
- 0x7C2C0C00, // 009B CALL R11 6
- 0x5830001A, // 009C LDCONST R12 K26
- 0x7C240600, // 009D CALL R9 3
- 0x70020010, // 009E JMP #00B0
- 0x68240002, // 009F GETUPV R9 U2
- 0x7426000C, // 00A0 JMPT R9 #00AE
- 0xB8262C00, // 00A1 GETNGBL R9 K22
- 0x8C241317, // 00A2 GETMET R9 R9 K23
- 0x602C0018, // 00A3 GETGBL R11 G24
- 0x5830001F, // 00A4 LDCONST R12 K31
- 0x68340000, // 00A5 GETUPV R13 U0
- 0x88341B19, // 00A6 GETMBR R13 R13 K25
- 0x60380008, // 00A7 GETGBL R14 G8
- 0x5C3C0400, // 00A8 MOVE R15 R2
- 0x7C380200, // 00A9 CALL R14 1
- 0x5C3C0A00, // 00AA MOVE R15 R5
- 0x7C2C0800, // 00AB CALL R11 4
- 0x5830001A, // 00AC LDCONST R12 K26
- 0x7C240600, // 00AD CALL R9 3
- 0x780E0000, // 00AE JMPF R3 #00B0
- 0x501C0000, // 00AF LDBOOL R7 0 0
- 0x6024000F, // 00B0 GETGBL R9 G15
- 0x5C281000, // 00B1 MOVE R10 R8
- 0x602C0012, // 00B2 GETGBL R11 G18
- 0x7C240400, // 00B3 CALL R9 2
- 0x78260001, // 00B4 JMPF R9 #00B7
- 0x58240020, // 00B5 LDCONST R9 K32
- 0x70020000, // 00B6 JMP #00B8
- 0x4C240000, // 00B7 LDNIL R9
+ 0x602C0018, // 0068 GETGBL R11 G24
+ 0x58300017, // 0069 LDCONST R12 K23
+ 0x68340000, // 006A GETUPV R13 U0
+ 0x88341B18, // 006B GETMBR R13 R13 K24
+ 0x5C380400, // 006C MOVE R14 R2
+ 0x5C3C0A00, // 006D MOVE R15 R5
+ 0x5C401200, // 006E MOVE R16 R9
+ 0x7C2C0A00, // 006F CALL R11 5
+ 0x58300019, // 0070 LDCONST R12 K25
+ 0x7C280400, // 0071 CALL R10 2
+ 0x70020039, // 0072 JMP #00AD
+ 0x88240508, // 0073 GETMBR R9 R2 K8
+ 0x4C280000, // 0074 LDNIL R10
+ 0x2024120A, // 0075 NE R9 R9 R10
+ 0x78260025, // 0076 JMPF R9 #009D
+ 0x780E0023, // 0077 JMPF R3 #009C
+ 0x60240015, // 0078 GETGBL R9 G21
+ 0x542A002F, // 0079 LDINT R10 48
+ 0x7C240200, // 007A CALL R9 1
+ 0x5C201200, // 007B MOVE R8 R9
+ 0x68240001, // 007C GETUPV R9 U1
+ 0x8C24131A, // 007D GETMET R9 R9 K26
+ 0x5C2C1000, // 007E MOVE R11 R8
+ 0x5C300400, // 007F MOVE R12 R2
+ 0x88340508, // 0080 GETMBR R13 R2 K8
+ 0x7C240800, // 0081 CALL R9 4
+ 0xB8263600, // 0082 GETNGBL R9 K27
+ 0x8C24131C, // 0083 GETMET R9 R9 K28
+ 0x582C0019, // 0084 LDCONST R11 K25
+ 0x7C240400, // 0085 CALL R9 2
+ 0x78260014, // 0086 JMPF R9 #009C
+ 0xB8262C00, // 0087 GETNGBL R9 K22
+ 0x60280018, // 0088 GETGBL R10 G24
+ 0x582C001D, // 0089 LDCONST R11 K29
+ 0x68300000, // 008A GETUPV R12 U0
+ 0x88301918, // 008B GETMBR R12 R12 K24
+ 0x60340008, // 008C GETGBL R13 G8
+ 0x5C380400, // 008D MOVE R14 R2
+ 0x7C340200, // 008E CALL R13 1
+ 0x5C380A00, // 008F MOVE R14 R5
+ 0x883C0508, // 0090 GETMBR R15 R2 K8
+ 0x88400508, // 0091 GETMBR R16 R2 K8
+ 0xB8460000, // 0092 GETNGBL R17 K0
+ 0x8844231E, // 0093 GETMBR R17 R17 K30
+ 0x1C402011, // 0094 EQ R16 R16 R17
+ 0x78420001, // 0095 JMPF R16 #0098
+ 0x5840001E, // 0096 LDCONST R16 K30
+ 0x70020000, // 0097 JMP #0099
+ 0x58400007, // 0098 LDCONST R16 K7
+ 0x7C280C00, // 0099 CALL R10 6
+ 0x582C0019, // 009A LDCONST R11 K25
+ 0x7C240400, // 009B CALL R9 2
+ 0x7002000F, // 009C JMP #00AD
+ 0x68240002, // 009D GETUPV R9 U2
+ 0x7426000B, // 009E JMPT R9 #00AB
+ 0xB8262C00, // 009F GETNGBL R9 K22
+ 0x60280018, // 00A0 GETGBL R10 G24
+ 0x582C001F, // 00A1 LDCONST R11 K31
+ 0x68300000, // 00A2 GETUPV R12 U0
+ 0x88301918, // 00A3 GETMBR R12 R12 K24
+ 0x60340008, // 00A4 GETGBL R13 G8
+ 0x5C380400, // 00A5 MOVE R14 R2
+ 0x7C340200, // 00A6 CALL R13 1
+ 0x5C380A00, // 00A7 MOVE R14 R5
+ 0x7C280800, // 00A8 CALL R10 4
+ 0x582C0019, // 00A9 LDCONST R11 K25
+ 0x7C240400, // 00AA CALL R9 2
+ 0x780E0000, // 00AB JMPF R3 #00AD
+ 0x501C0000, // 00AC LDBOOL R7 0 0
+ 0x6024000F, // 00AD GETGBL R9 G15
+ 0x5C281000, // 00AE MOVE R10 R8
+ 0x602C0012, // 00AF GETGBL R11 G18
+ 0x7C240400, // 00B0 CALL R9 2
+ 0x78260001, // 00B1 JMPF R9 #00B4
+ 0x58240020, // 00B2 LDCONST R9 K32
+ 0x70020000, // 00B3 JMP #00B5
+ 0x4C240000, // 00B4 LDNIL R9
+ 0x4C280000, // 00B5 LDNIL R10
+ 0x2028100A, // 00B6 NE R10 R8 R10
+ 0x782A0031, // 00B7 JMPF R10 #00EA
0x4C280000, // 00B8 LDNIL R10
- 0x2028100A, // 00B9 NE R10 R8 R10
- 0x782A0031, // 00BA JMPF R10 #00ED
- 0x4C280000, // 00BB LDNIL R10
- 0x1C28120A, // 00BC EQ R10 R9 R10
- 0x782A0001, // 00BD JMPF R10 #00C0
- 0x5C281000, // 00BE MOVE R10 R8
- 0x70020000, // 00BF JMP #00C1
- 0x94281009, // 00C0 GETIDX R10 R8 R9
- 0x602C000C, // 00C1 GETGBL R11 G12
- 0x88300121, // 00C2 GETMBR R12 R0 K33
- 0x7C2C0200, // 00C3 CALL R11 1
- 0x1C2C1720, // 00C4 EQ R11 R11 K32
- 0x782E0004, // 00C5 JMPF R11 #00CB
- 0x882C0121, // 00C6 GETMBR R11 R0 K33
- 0x8C2C1713, // 00C7 GETMET R11 R11 K19
- 0x5C341400, // 00C8 MOVE R13 R10
- 0x7C2C0400, // 00C9 CALL R11 2
- 0x70020014, // 00CA JMP #00E0
- 0x882C0121, // 00CB GETMBR R11 R0 K33
- 0x5431FFFE, // 00CC LDINT R12 -1
- 0x942C160C, // 00CD GETIDX R11 R11 R12
- 0x6030000C, // 00CE GETGBL R12 G12
- 0x5C341600, // 00CF MOVE R13 R11
- 0x7C300200, // 00D0 CALL R12 1
- 0x6034000C, // 00D1 GETGBL R13 G12
- 0x5C381400, // 00D2 MOVE R14 R10
- 0x7C340200, // 00D3 CALL R13 1
- 0x0030180D, // 00D4 ADD R12 R12 R13
- 0xB8360000, // 00D5 GETNGBL R13 K0
- 0x88341B0F, // 00D6 GETMBR R13 R13 K15
- 0x88341B10, // 00D7 GETMBR R13 R13 K16
- 0x1830180D, // 00D8 LE R12 R12 R13
- 0x78320001, // 00D9 JMPF R12 #00DC
- 0x4030160A, // 00DA CONNECT R12 R11 R10
- 0x70020003, // 00DB JMP #00E0
- 0x88300121, // 00DC GETMBR R12 R0 K33
- 0x8C301913, // 00DD GETMET R12 R12 K19
- 0x5C381400, // 00DE MOVE R14 R10
- 0x7C300400, // 00DF CALL R12 2
- 0x4C2C0000, // 00E0 LDNIL R11
- 0x1C2C120B, // 00E1 EQ R11 R9 R11
- 0x782E0001, // 00E2 JMPF R11 #00E5
- 0x4C200000, // 00E3 LDNIL R8
- 0x70020006, // 00E4 JMP #00EC
- 0x00241322, // 00E5 ADD R9 R9 K34
- 0x602C000C, // 00E6 GETGBL R11 G12
- 0x5C301000, // 00E7 MOVE R12 R8
- 0x7C2C0200, // 00E8 CALL R11 1
- 0x282C120B, // 00E9 GE R11 R9 R11
- 0x782E0000, // 00EA JMPF R11 #00EC
- 0x4C200000, // 00EB LDNIL R8
- 0x7001FFCA, // 00EC JMP #00B8
- 0x80040E00, // 00ED RET 1 R7
+ 0x1C28120A, // 00B9 EQ R10 R9 R10
+ 0x782A0001, // 00BA JMPF R10 #00BD
+ 0x5C281000, // 00BB MOVE R10 R8
+ 0x70020000, // 00BC JMP #00BE
+ 0x94281009, // 00BD GETIDX R10 R8 R9
+ 0x602C000C, // 00BE GETGBL R11 G12
+ 0x88300121, // 00BF GETMBR R12 R0 K33
+ 0x7C2C0200, // 00C0 CALL R11 1
+ 0x1C2C1720, // 00C1 EQ R11 R11 K32
+ 0x782E0004, // 00C2 JMPF R11 #00C8
+ 0x882C0121, // 00C3 GETMBR R11 R0 K33
+ 0x8C2C1713, // 00C4 GETMET R11 R11 K19
+ 0x5C341400, // 00C5 MOVE R13 R10
+ 0x7C2C0400, // 00C6 CALL R11 2
+ 0x70020014, // 00C7 JMP #00DD
+ 0x882C0121, // 00C8 GETMBR R11 R0 K33
+ 0x5431FFFE, // 00C9 LDINT R12 -1
+ 0x942C160C, // 00CA GETIDX R11 R11 R12
+ 0x6030000C, // 00CB GETGBL R12 G12
+ 0x5C341600, // 00CC MOVE R13 R11
+ 0x7C300200, // 00CD CALL R12 1
+ 0x6034000C, // 00CE GETGBL R13 G12
+ 0x5C381400, // 00CF MOVE R14 R10
+ 0x7C340200, // 00D0 CALL R13 1
+ 0x0030180D, // 00D1 ADD R12 R12 R13
+ 0xB8360000, // 00D2 GETNGBL R13 K0
+ 0x88341B0F, // 00D3 GETMBR R13 R13 K15
+ 0x88341B10, // 00D4 GETMBR R13 R13 K16
+ 0x1830180D, // 00D5 LE R12 R12 R13
+ 0x78320001, // 00D6 JMPF R12 #00D9
+ 0x4030160A, // 00D7 CONNECT R12 R11 R10
+ 0x70020003, // 00D8 JMP #00DD
+ 0x88300121, // 00D9 GETMBR R12 R0 K33
+ 0x8C301913, // 00DA GETMET R12 R12 K19
+ 0x5C381400, // 00DB MOVE R14 R10
+ 0x7C300400, // 00DC CALL R12 2
+ 0x4C2C0000, // 00DD LDNIL R11
+ 0x1C2C120B, // 00DE EQ R11 R9 R11
+ 0x782E0001, // 00DF JMPF R11 #00E2
+ 0x4C200000, // 00E0 LDNIL R8
+ 0x70020006, // 00E1 JMP #00E9
+ 0x00241322, // 00E2 ADD R9 R9 K34
+ 0x602C000C, // 00E3 GETGBL R11 G12
+ 0x5C301000, // 00E4 MOVE R12 R8
+ 0x7C2C0200, // 00E5 CALL R11 1
+ 0x282C120B, // 00E6 GE R11 R9 R11
+ 0x782E0000, // 00E7 JMPF R11 #00E9
+ 0x4C200000, // 00E8 LDNIL R8
+ 0x7001FFCA, // 00E9 JMP #00B5
+ 0x80040E00, // 00EA RET 1 R7
})
),
be_nested_proto(
@@ -2546,7 +2521,7 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
&be_class_Matter_IM,
}),
1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
+ ( &(const bvalue[24]) { /* constants */
/* K0 */ be_nested_str_weak(device),
/* K1 */ be_nested_str_weak(get_active_endpoints),
/* K2 */ be_nested_str_weak(matter),
@@ -2562,20 +2537,19 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
/* K12 */ be_nested_str_weak(status),
/* K13 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
/* K14 */ be_nested_str_weak(get_attribute_name),
- /* K15 */ be_nested_str_weak(tasmota),
- /* K16 */ be_nested_str_weak(log),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
- /* K18 */ be_nested_str_weak(local_session_id),
- /* K19 */ be_nested_str_weak(_X20_X28),
- /* K20 */ be_nested_str_weak(_X29),
- /* K21 */ be_nested_str_weak(),
- /* K22 */ be_const_int(3),
- /* K23 */ be_nested_str_weak(process_attribute_expansion),
- /* K24 */ be_nested_str_weak(stop_iteration),
+ /* K15 */ be_nested_str_weak(log),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
+ /* K17 */ be_nested_str_weak(local_session_id),
+ /* K18 */ be_nested_str_weak(_X20_X28),
+ /* K19 */ be_nested_str_weak(_X29),
+ /* K20 */ be_nested_str_weak(),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(process_attribute_expansion),
+ /* K23 */ be_nested_str_weak(stop_iteration),
}),
be_str_weak(_inner_process_read_request),
&be_const_str_solidified,
- ( &(const binstruction[96]) { /* code */
+ ( &(const binstruction[94]) { /* code */
0x84140000, // 0000 CLOSURE R5 P0
0x88180100, // 0001 GETMBR R6 R0 K0
0x8C180D01, // 0002 GETMET R6 R6 K1
@@ -2593,7 +2567,7 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
0x60240010, // 000E GETGBL R9 G16
0x88280507, // 000F GETMBR R10 R2 K7
0x7C240200, // 0010 CALL R9 1
- 0xA8020048, // 0011 EXBLK 0 #005B
+ 0xA8020046, // 0011 EXBLK 0 #0059
0x5C281200, // 0012 MOVE R10 R9
0x7C280000, // 0013 CALL R10 0
0x882C1508, // 0014 GETMBR R11 R10 K8
@@ -2618,60 +2592,58 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
0x882C0F0A, // 0027 GETMBR R11 R7 K10
0x4C300000, // 0028 LDNIL R12
0x1C2C160C, // 0029 EQ R11 R11 R12
- 0x782E0029, // 002A JMPF R11 #0055
+ 0x782E0027, // 002A JMPF R11 #0053
0x882C0F09, // 002B GETMBR R11 R7 K9
0x4C300000, // 002C LDNIL R12
0x202C160C, // 002D NE R11 R11 R12
- 0x782E001A, // 002E JMPF R11 #004A
+ 0x782E0019, // 002E JMPF R11 #0049
0x882C0F0A, // 002F GETMBR R11 R7 K10
0x4C300000, // 0030 LDNIL R12
0x202C160C, // 0031 NE R11 R11 R12
- 0x782E0016, // 0032 JMPF R11 #004A
+ 0x782E0015, // 0032 JMPF R11 #0049
0xB82E0400, // 0033 GETNGBL R11 K2
0x8C2C170E, // 0034 GETMET R11 R11 K14
0x88340F09, // 0035 GETMBR R13 R7 K9
0x88380F0A, // 0036 GETMBR R14 R7 K10
0x7C2C0600, // 0037 CALL R11 3
0xB8321E00, // 0038 GETNGBL R12 K15
- 0x8C301910, // 0039 GETMET R12 R12 K16
- 0x60380018, // 003A GETGBL R14 G24
- 0x583C0011, // 003B LDCONST R15 K17
- 0x88400312, // 003C GETMBR R16 R1 K18
- 0x60440008, // 003D GETGBL R17 G8
- 0x5C480E00, // 003E MOVE R18 R7
- 0x7C440200, // 003F CALL R17 1
- 0x782E0002, // 0040 JMPF R11 #0044
- 0x004A260B, // 0041 ADD R18 K19 R11
- 0x00482514, // 0042 ADD R18 R18 K20
- 0x70020000, // 0043 JMP #0045
- 0x58480015, // 0044 LDCONST R18 K21
- 0x00442212, // 0045 ADD R17 R17 R18
- 0x7C380600, // 0046 CALL R14 3
- 0x583C0016, // 0047 LDCONST R15 K22
- 0x7C300600, // 0048 CALL R12 3
- 0x7002000A, // 0049 JMP #0055
- 0xB82E1E00, // 004A GETNGBL R11 K15
- 0x8C2C1710, // 004B GETMET R11 R11 K16
- 0x60340018, // 004C GETGBL R13 G24
- 0x58380011, // 004D LDCONST R14 K17
- 0x883C0312, // 004E GETMBR R15 R1 K18
- 0x60400008, // 004F GETGBL R16 G8
- 0x5C440E00, // 0050 MOVE R17 R7
- 0x7C400200, // 0051 CALL R16 1
- 0x7C340600, // 0052 CALL R13 3
- 0x58380016, // 0053 LDCONST R14 K22
- 0x7C2C0600, // 0054 CALL R11 3
- 0x882C0100, // 0055 GETMBR R11 R0 K0
- 0x8C2C1717, // 0056 GETMET R11 R11 K23
- 0x5C340E00, // 0057 MOVE R13 R7
- 0x84380001, // 0058 CLOSURE R14 P1
- 0x7C2C0600, // 0059 CALL R11 3
- 0x7001FFB6, // 005A JMP #0012
- 0x58240018, // 005B LDCONST R9 K24
- 0xAC240200, // 005C CATCH R9 1 0
- 0xB0080000, // 005D RAISE 2 R0 R0
- 0xA0000000, // 005E CLOSE R0
- 0x80041000, // 005F RET 1 R8
+ 0x60340018, // 0039 GETGBL R13 G24
+ 0x58380010, // 003A LDCONST R14 K16
+ 0x883C0311, // 003B GETMBR R15 R1 K17
+ 0x60400008, // 003C GETGBL R16 G8
+ 0x5C440E00, // 003D MOVE R17 R7
+ 0x7C400200, // 003E CALL R16 1
+ 0x782E0002, // 003F JMPF R11 #0043
+ 0x0046240B, // 0040 ADD R17 K18 R11
+ 0x00442313, // 0041 ADD R17 R17 K19
+ 0x70020000, // 0042 JMP #0044
+ 0x58440014, // 0043 LDCONST R17 K20
+ 0x00402011, // 0044 ADD R16 R16 R17
+ 0x7C340600, // 0045 CALL R13 3
+ 0x58380015, // 0046 LDCONST R14 K21
+ 0x7C300400, // 0047 CALL R12 2
+ 0x70020009, // 0048 JMP #0053
+ 0xB82E1E00, // 0049 GETNGBL R11 K15
+ 0x60300018, // 004A GETGBL R12 G24
+ 0x58340010, // 004B LDCONST R13 K16
+ 0x88380311, // 004C GETMBR R14 R1 K17
+ 0x603C0008, // 004D GETGBL R15 G8
+ 0x5C400E00, // 004E MOVE R16 R7
+ 0x7C3C0200, // 004F CALL R15 1
+ 0x7C300600, // 0050 CALL R12 3
+ 0x58340015, // 0051 LDCONST R13 K21
+ 0x7C2C0400, // 0052 CALL R11 2
+ 0x882C0100, // 0053 GETMBR R11 R0 K0
+ 0x8C2C1716, // 0054 GETMET R11 R11 K22
+ 0x5C340E00, // 0055 MOVE R13 R7
+ 0x84380001, // 0056 CLOSURE R14 P1
+ 0x7C2C0600, // 0057 CALL R11 3
+ 0x7001FFB8, // 0058 JMP #0012
+ 0x58240017, // 0059 LDCONST R9 K23
+ 0xAC240200, // 005A CATCH R9 1 0
+ 0xB0080000, // 005B RAISE 2 R0 R0
+ 0xA0000000, // 005C CLOSE R0
+ 0x80041000, // 005D RET 1 R8
})
)
);
@@ -2926,7 +2898,7 @@ be_local_closure(class_Matter_IM_find_sendqueue_by_exchangeid, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
be_nested_proto(
- 20, /* nstack */
+ 19, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2953,26 +2925,26 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/* K15 */ be_nested_str_weak(encode_len),
/* K16 */ be_nested_str_weak(IM_ReportData),
/* K17 */ be_nested_str_weak(MAX_MESSAGE),
- /* K18 */ be_nested_str_weak(tasmota),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Response_X20to_X20big_X2C_X20revert_X20to_X20non_X2Dsolo),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(TLV),
- /* K22 */ be_nested_str_weak(parse),
- /* K23 */ be_nested_str_weak(raw),
- /* K24 */ be_nested_str_weak(app_payload_idx),
- /* K25 */ be_nested_str_weak(process_read_request),
- /* K26 */ be_nested_str_weak(add),
- /* K27 */ be_const_int(1),
- /* K28 */ be_nested_str_weak(attributedata2raw),
- /* K29 */ be_const_int(405077761),
- /* K30 */ be_nested_str_weak(attributestatus2raw),
- /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X20_X2D_X20IGNORED),
- /* K32 */ be_nested_str_weak(local_session_id),
- /* K33 */ be_nested_str_weak(build_response),
- /* K34 */ be_nested_str_weak(message_handler),
- /* K35 */ be_nested_str_weak(clear),
- /* K36 */ be_nested_str_weak(encode_frame),
- /* K37 */ be_nested_str_weak(encrypt),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Response_X20to_X20big_X2C_X20revert_X20to_X20non_X2Dsolo),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_nested_str_weak(TLV),
+ /* K21 */ be_nested_str_weak(parse),
+ /* K22 */ be_nested_str_weak(raw),
+ /* K23 */ be_nested_str_weak(app_payload_idx),
+ /* K24 */ be_nested_str_weak(process_read_request),
+ /* K25 */ be_nested_str_weak(add),
+ /* K26 */ be_const_int(1),
+ /* K27 */ be_nested_str_weak(attributedata2raw),
+ /* K28 */ be_const_int(405077761),
+ /* K29 */ be_nested_str_weak(attributestatus2raw),
+ /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X20_X2D_X20IGNORED),
+ /* K31 */ be_nested_str_weak(local_session_id),
+ /* K32 */ be_nested_str_weak(build_response),
+ /* K33 */ be_nested_str_weak(message_handler),
+ /* K34 */ be_nested_str_weak(clear),
+ /* K35 */ be_nested_str_weak(encode_frame),
+ /* K36 */ be_nested_str_weak(encrypt),
+ /* K37 */ be_nested_str_weak(tasmota),
/* K38 */ be_nested_str_weak(loglevel),
/* K39 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s),
/* K40 */ be_nested_str_weak(message_counter),
@@ -2993,7 +2965,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
}),
be_str_weak(process_read_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[251]) { /* code */
+ ( &(const binstruction[245]) { /* code */
0xB80E0200, // 0000 GETNGBL R3 K1
0x880C0702, // 0001 GETMBR R3 R3 K2
0x900A0003, // 0002 SETMBR R2 K0 R3
@@ -3023,228 +2995,222 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
0x7C180400, // 001A CALL R6 2
0x4C180000, // 001B LDNIL R6
0x20180806, // 001C NE R6 R4 R6
- 0x781A0037, // 001D JMPF R6 #0056
+ 0x781A0036, // 001D JMPF R6 #0055
0x8818090D, // 001E GETMBR R6 R4 K13
0x741A0001, // 001F JMPT R6 #0022
0x8818090E, // 0020 GETMBR R6 R4 K14
- 0x781A0019, // 0021 JMPF R6 #003C
+ 0x781A0018, // 0021 JMPF R6 #003B
0x8C18090F, // 0022 GETMET R6 R4 K15
0x7C180200, // 0023 CALL R6 1
0xB81E0200, // 0024 GETNGBL R7 K1
0x881C0F10, // 0025 GETMBR R7 R7 K16
0x881C0F11, // 0026 GETMBR R7 R7 K17
0x24180C07, // 0027 GT R6 R6 R7
- 0x781A0012, // 0028 JMPF R6 #003C
+ 0x781A0011, // 0028 JMPF R6 #003B
0x4C100000, // 0029 LDNIL R4
- 0xB81A2400, // 002A GETNGBL R6 K18
- 0x8C180D0B, // 002B GETMET R6 R6 K11
- 0x60200018, // 002C GETGBL R8 G24
- 0x58240013, // 002D LDCONST R9 K19
- 0x7C200200, // 002E CALL R8 1
- 0x58240014, // 002F LDCONST R9 K20
- 0x7C180600, // 0030 CALL R6 3
- 0xB81A0200, // 0031 GETNGBL R6 K1
- 0x88180D15, // 0032 GETMBR R6 R6 K21
- 0x8C180D16, // 0033 GETMET R6 R6 K22
- 0x88200317, // 0034 GETMBR R8 R1 K23
- 0x88240318, // 0035 GETMBR R9 R1 K24
- 0x7C180600, // 0036 CALL R6 3
- 0x8C1C0119, // 0037 GETMET R7 R0 K25
- 0x5C240200, // 0038 MOVE R9 R1
- 0x5C280C00, // 0039 MOVE R10 R6
- 0x7C1C0600, // 003A CALL R7 3
- 0x80040E00, // 003B RET 1 R7
- 0x60180015, // 003C GETGBL R6 G21
- 0x541E002F, // 003D LDINT R7 48
- 0x7C180200, // 003E CALL R6 1
- 0x5C140C00, // 003F MOVE R5 R6
- 0x8C180B1A, // 0040 GETMET R6 R5 K26
- 0x54220014, // 0041 LDINT R8 21
- 0x5824001B, // 0042 LDCONST R9 K27
- 0x7C180600, // 0043 CALL R6 3
- 0x8C180B1A, // 0044 GETMET R6 R5 K26
- 0x54223600, // 0045 LDINT R8 13825
- 0x5425FFFD, // 0046 LDINT R9 -2
- 0x7C180600, // 0047 CALL R6 3
- 0x8C18011C, // 0048 GETMET R6 R0 K28
- 0x5C200A00, // 0049 MOVE R8 R5
- 0x5C240400, // 004A MOVE R9 R2
- 0x5C280800, // 004B MOVE R10 R4
- 0x7C180800, // 004C CALL R6 4
- 0x8C180B1A, // 004D GETMET R6 R5 K26
- 0x5820001D, // 004E LDCONST R8 K29
- 0x5425FFFB, // 004F LDINT R9 -4
- 0x7C180600, // 0050 CALL R6 3
- 0x8C180B1A, // 0051 GETMET R6 R5 K26
- 0x54220017, // 0052 LDINT R8 24
- 0x5824001B, // 0053 LDCONST R9 K27
- 0x7C180600, // 0054 CALL R6 3
- 0x70020029, // 0055 JMP #0080
- 0x88180500, // 0056 GETMBR R6 R2 K0
- 0x4C1C0000, // 0057 LDNIL R7
- 0x20180C07, // 0058 NE R6 R6 R7
- 0x781A0019, // 0059 JMPF R6 #0074
- 0x60180015, // 005A GETGBL R6 G21
- 0x541E002F, // 005B LDINT R7 48
- 0x7C180200, // 005C CALL R6 1
- 0x5C140C00, // 005D MOVE R5 R6
- 0x8C180B1A, // 005E GETMET R6 R5 K26
- 0x54220014, // 005F LDINT R8 21
- 0x5824001B, // 0060 LDCONST R9 K27
- 0x7C180600, // 0061 CALL R6 3
- 0x8C180B1A, // 0062 GETMET R6 R5 K26
- 0x54223600, // 0063 LDINT R8 13825
- 0x5425FFFD, // 0064 LDINT R9 -2
- 0x7C180600, // 0065 CALL R6 3
- 0x8C18011E, // 0066 GETMET R6 R0 K30
- 0x5C200A00, // 0067 MOVE R8 R5
- 0x5C240400, // 0068 MOVE R9 R2
- 0x88280500, // 0069 GETMBR R10 R2 K0
- 0x7C180800, // 006A CALL R6 4
- 0x8C180B1A, // 006B GETMET R6 R5 K26
- 0x5820001D, // 006C LDCONST R8 K29
- 0x5425FFFB, // 006D LDINT R9 -4
- 0x7C180600, // 006E CALL R6 3
- 0x8C180B1A, // 006F GETMET R6 R5 K26
- 0x54220017, // 0070 LDINT R8 24
- 0x5824001B, // 0071 LDCONST R9 K27
- 0x7C180600, // 0072 CALL R6 3
- 0x7002000B, // 0073 JMP #0080
- 0xB81A2400, // 0074 GETNGBL R6 K18
- 0x8C180D0B, // 0075 GETMET R6 R6 K11
- 0x60200018, // 0076 GETGBL R8 G24
- 0x5824001F, // 0077 LDCONST R9 K31
- 0x88280308, // 0078 GETMBR R10 R1 K8
- 0x88281520, // 0079 GETMBR R10 R10 K32
- 0x5C2C0400, // 007A MOVE R11 R2
- 0x7C200600, // 007B CALL R8 3
- 0x58240014, // 007C LDCONST R9 K20
- 0x7C180600, // 007D CALL R6 3
- 0x50180000, // 007E LDBOOL R6 0 0
- 0x80040C00, // 007F RET 1 R6
- 0x8C180321, // 0080 GETMET R6 R1 K33
- 0x54220004, // 0081 LDINT R8 5
- 0x50240200, // 0082 LDBOOL R9 1 0
- 0x7C180600, // 0083 CALL R6 3
- 0x881C0104, // 0084 GETMBR R7 R0 K4
- 0x881C0F22, // 0085 GETMBR R7 R7 K34
- 0x88200317, // 0086 GETMBR R8 R1 K23
- 0x8C241123, // 0087 GETMET R9 R8 K35
- 0x7C240200, // 0088 CALL R9 1
- 0x8C240D24, // 0089 GETMET R9 R6 K36
- 0x5C2C0A00, // 008A MOVE R11 R5
- 0x5C301000, // 008B MOVE R12 R8
- 0x7C240600, // 008C CALL R9 3
- 0x8C240D25, // 008D GETMET R9 R6 K37
- 0x7C240200, // 008E CALL R9 1
- 0xB8262400, // 008F GETNGBL R9 K18
- 0x8C241326, // 0090 GETMET R9 R9 K38
- 0x542E0003, // 0091 LDINT R11 4
- 0x7C240400, // 0092 CALL R9 2
- 0x7826000B, // 0093 JMPF R9 #00A0
- 0xB8262400, // 0094 GETNGBL R9 K18
- 0x8C24130B, // 0095 GETMET R9 R9 K11
- 0x602C0018, // 0096 GETGBL R11 G24
- 0x58300027, // 0097 LDCONST R12 K39
- 0x88340D08, // 0098 GETMBR R13 R6 K8
- 0x88341B20, // 0099 GETMBR R13 R13 K32
- 0x88380D28, // 009A GETMBR R14 R6 K40
- 0x883C0D29, // 009B GETMBR R15 R6 K41
- 0x88400D2A, // 009C GETMBR R16 R6 K42
- 0x7C2C0A00, // 009D CALL R11 5
- 0x54320003, // 009E LDINT R12 4
- 0x7C240600, // 009F CALL R9 3
- 0x8C240F2B, // 00A0 GETMET R9 R7 K43
- 0x5C2C0C00, // 00A1 MOVE R11 R6
- 0x7C240400, // 00A2 CALL R9 2
- 0xB8260200, // 00A3 GETNGBL R9 K1
- 0x8824130A, // 00A4 GETMBR R9 R9 K10
- 0x8C24130B, // 00A5 GETMET R9 R9 K11
- 0x582C002C, // 00A6 LDCONST R11 K44
- 0x7C240400, // 00A7 CALL R9 2
- 0xB8260200, // 00A8 GETNGBL R9 K1
- 0x8C24132D, // 00A9 GETMET R9 R9 K45
- 0x882C052E, // 00AA GETMBR R11 R2 K46
- 0x8830052F, // 00AB GETMBR R12 R2 K47
- 0x7C240600, // 00AC CALL R9 3
- 0x78260002, // 00AD JMPF R9 #00B1
- 0x002A6009, // 00AE ADD R10 K48 R9
- 0x00281531, // 00AF ADD R10 R10 K49
- 0x70020000, // 00B0 JMP #00B2
- 0x58280032, // 00B1 LDCONST R10 K50
- 0x5C241400, // 00B2 MOVE R9 R10
- 0x4C280000, // 00B3 LDNIL R10
- 0x2028080A, // 00B4 NE R10 R4 R10
- 0x782A0013, // 00B5 JMPF R10 #00CA
- 0xB82A2400, // 00B6 GETNGBL R10 K18
- 0x8C281526, // 00B7 GETMET R10 R10 K38
- 0x58300014, // 00B8 LDCONST R12 K20
- 0x7C280400, // 00B9 CALL R10 2
- 0x782A000D, // 00BA JMPF R10 #00C9
- 0x8C280933, // 00BB GETMET R10 R4 K51
- 0x7C280200, // 00BC CALL R10 1
- 0xB82E2400, // 00BD GETNGBL R11 K18
- 0x8C2C170B, // 00BE GETMET R11 R11 K11
- 0x60340018, // 00BF GETGBL R13 G24
- 0x58380034, // 00C0 LDCONST R14 K52
- 0x883C0308, // 00C1 GETMBR R15 R1 K8
- 0x883C1F20, // 00C2 GETMBR R15 R15 K32
- 0x5C400400, // 00C3 MOVE R16 R2
- 0x5C441200, // 00C4 MOVE R17 R9
- 0x5C481400, // 00C5 MOVE R18 R10
- 0x7C340A00, // 00C6 CALL R13 5
- 0x58380014, // 00C7 LDCONST R14 K20
- 0x7C2C0600, // 00C8 CALL R11 3
- 0x7002002E, // 00C9 JMP #00F9
+ 0xB81A1600, // 002A GETNGBL R6 K11
+ 0x601C0018, // 002B GETGBL R7 G24
+ 0x58200012, // 002C LDCONST R8 K18
+ 0x7C1C0200, // 002D CALL R7 1
+ 0x58200013, // 002E LDCONST R8 K19
+ 0x7C180400, // 002F CALL R6 2
+ 0xB81A0200, // 0030 GETNGBL R6 K1
+ 0x88180D14, // 0031 GETMBR R6 R6 K20
+ 0x8C180D15, // 0032 GETMET R6 R6 K21
+ 0x88200316, // 0033 GETMBR R8 R1 K22
+ 0x88240317, // 0034 GETMBR R9 R1 K23
+ 0x7C180600, // 0035 CALL R6 3
+ 0x8C1C0118, // 0036 GETMET R7 R0 K24
+ 0x5C240200, // 0037 MOVE R9 R1
+ 0x5C280C00, // 0038 MOVE R10 R6
+ 0x7C1C0600, // 0039 CALL R7 3
+ 0x80040E00, // 003A RET 1 R7
+ 0x60180015, // 003B GETGBL R6 G21
+ 0x541E002F, // 003C LDINT R7 48
+ 0x7C180200, // 003D CALL R6 1
+ 0x5C140C00, // 003E MOVE R5 R6
+ 0x8C180B19, // 003F GETMET R6 R5 K25
+ 0x54220014, // 0040 LDINT R8 21
+ 0x5824001A, // 0041 LDCONST R9 K26
+ 0x7C180600, // 0042 CALL R6 3
+ 0x8C180B19, // 0043 GETMET R6 R5 K25
+ 0x54223600, // 0044 LDINT R8 13825
+ 0x5425FFFD, // 0045 LDINT R9 -2
+ 0x7C180600, // 0046 CALL R6 3
+ 0x8C18011B, // 0047 GETMET R6 R0 K27
+ 0x5C200A00, // 0048 MOVE R8 R5
+ 0x5C240400, // 0049 MOVE R9 R2
+ 0x5C280800, // 004A MOVE R10 R4
+ 0x7C180800, // 004B CALL R6 4
+ 0x8C180B19, // 004C GETMET R6 R5 K25
+ 0x5820001C, // 004D LDCONST R8 K28
+ 0x5425FFFB, // 004E LDINT R9 -4
+ 0x7C180600, // 004F CALL R6 3
+ 0x8C180B19, // 0050 GETMET R6 R5 K25
+ 0x54220017, // 0051 LDINT R8 24
+ 0x5824001A, // 0052 LDCONST R9 K26
+ 0x7C180600, // 0053 CALL R6 3
+ 0x70020028, // 0054 JMP #007E
+ 0x88180500, // 0055 GETMBR R6 R2 K0
+ 0x4C1C0000, // 0056 LDNIL R7
+ 0x20180C07, // 0057 NE R6 R6 R7
+ 0x781A0019, // 0058 JMPF R6 #0073
+ 0x60180015, // 0059 GETGBL R6 G21
+ 0x541E002F, // 005A LDINT R7 48
+ 0x7C180200, // 005B CALL R6 1
+ 0x5C140C00, // 005C MOVE R5 R6
+ 0x8C180B19, // 005D GETMET R6 R5 K25
+ 0x54220014, // 005E LDINT R8 21
+ 0x5824001A, // 005F LDCONST R9 K26
+ 0x7C180600, // 0060 CALL R6 3
+ 0x8C180B19, // 0061 GETMET R6 R5 K25
+ 0x54223600, // 0062 LDINT R8 13825
+ 0x5425FFFD, // 0063 LDINT R9 -2
+ 0x7C180600, // 0064 CALL R6 3
+ 0x8C18011D, // 0065 GETMET R6 R0 K29
+ 0x5C200A00, // 0066 MOVE R8 R5
+ 0x5C240400, // 0067 MOVE R9 R2
+ 0x88280500, // 0068 GETMBR R10 R2 K0
+ 0x7C180800, // 0069 CALL R6 4
+ 0x8C180B19, // 006A GETMET R6 R5 K25
+ 0x5820001C, // 006B LDCONST R8 K28
+ 0x5425FFFB, // 006C LDINT R9 -4
+ 0x7C180600, // 006D CALL R6 3
+ 0x8C180B19, // 006E GETMET R6 R5 K25
+ 0x54220017, // 006F LDINT R8 24
+ 0x5824001A, // 0070 LDCONST R9 K26
+ 0x7C180600, // 0071 CALL R6 3
+ 0x7002000A, // 0072 JMP #007E
+ 0xB81A1600, // 0073 GETNGBL R6 K11
+ 0x601C0018, // 0074 GETGBL R7 G24
+ 0x5820001E, // 0075 LDCONST R8 K30
+ 0x88240308, // 0076 GETMBR R9 R1 K8
+ 0x8824131F, // 0077 GETMBR R9 R9 K31
+ 0x5C280400, // 0078 MOVE R10 R2
+ 0x7C1C0600, // 0079 CALL R7 3
+ 0x58200013, // 007A LDCONST R8 K19
+ 0x7C180400, // 007B CALL R6 2
+ 0x50180000, // 007C LDBOOL R6 0 0
+ 0x80040C00, // 007D RET 1 R6
+ 0x8C180320, // 007E GETMET R6 R1 K32
+ 0x54220004, // 007F LDINT R8 5
+ 0x50240200, // 0080 LDBOOL R9 1 0
+ 0x7C180600, // 0081 CALL R6 3
+ 0x881C0104, // 0082 GETMBR R7 R0 K4
+ 0x881C0F21, // 0083 GETMBR R7 R7 K33
+ 0x88200316, // 0084 GETMBR R8 R1 K22
+ 0x8C241122, // 0085 GETMET R9 R8 K34
+ 0x7C240200, // 0086 CALL R9 1
+ 0x8C240D23, // 0087 GETMET R9 R6 K35
+ 0x5C2C0A00, // 0088 MOVE R11 R5
+ 0x5C301000, // 0089 MOVE R12 R8
+ 0x7C240600, // 008A CALL R9 3
+ 0x8C240D24, // 008B GETMET R9 R6 K36
+ 0x7C240200, // 008C CALL R9 1
+ 0xB8264A00, // 008D GETNGBL R9 K37
+ 0x8C241326, // 008E GETMET R9 R9 K38
+ 0x542E0003, // 008F LDINT R11 4
+ 0x7C240400, // 0090 CALL R9 2
+ 0x7826000A, // 0091 JMPF R9 #009D
+ 0xB8261600, // 0092 GETNGBL R9 K11
+ 0x60280018, // 0093 GETGBL R10 G24
+ 0x582C0027, // 0094 LDCONST R11 K39
+ 0x88300D08, // 0095 GETMBR R12 R6 K8
+ 0x8830191F, // 0096 GETMBR R12 R12 K31
+ 0x88340D28, // 0097 GETMBR R13 R6 K40
+ 0x88380D29, // 0098 GETMBR R14 R6 K41
+ 0x883C0D2A, // 0099 GETMBR R15 R6 K42
+ 0x7C280A00, // 009A CALL R10 5
+ 0x542E0003, // 009B LDINT R11 4
+ 0x7C240400, // 009C CALL R9 2
+ 0x8C240F2B, // 009D GETMET R9 R7 K43
+ 0x5C2C0C00, // 009E MOVE R11 R6
+ 0x7C240400, // 009F CALL R9 2
+ 0xB8260200, // 00A0 GETNGBL R9 K1
+ 0x8824130A, // 00A1 GETMBR R9 R9 K10
+ 0x8C24130B, // 00A2 GETMET R9 R9 K11
+ 0x582C002C, // 00A3 LDCONST R11 K44
+ 0x7C240400, // 00A4 CALL R9 2
+ 0xB8260200, // 00A5 GETNGBL R9 K1
+ 0x8C24132D, // 00A6 GETMET R9 R9 K45
+ 0x882C052E, // 00A7 GETMBR R11 R2 K46
+ 0x8830052F, // 00A8 GETMBR R12 R2 K47
+ 0x7C240600, // 00A9 CALL R9 3
+ 0x78260002, // 00AA JMPF R9 #00AE
+ 0x002A6009, // 00AB ADD R10 K48 R9
+ 0x00281531, // 00AC ADD R10 R10 K49
+ 0x70020000, // 00AD JMP #00AF
+ 0x58280032, // 00AE LDCONST R10 K50
+ 0x5C241400, // 00AF MOVE R9 R10
+ 0x4C280000, // 00B0 LDNIL R10
+ 0x2028080A, // 00B1 NE R10 R4 R10
+ 0x782A0012, // 00B2 JMPF R10 #00C6
+ 0xB82A4A00, // 00B3 GETNGBL R10 K37
+ 0x8C281526, // 00B4 GETMET R10 R10 K38
+ 0x58300013, // 00B5 LDCONST R12 K19
+ 0x7C280400, // 00B6 CALL R10 2
+ 0x782A000C, // 00B7 JMPF R10 #00C5
+ 0x8C280933, // 00B8 GETMET R10 R4 K51
+ 0x7C280200, // 00B9 CALL R10 1
+ 0xB82E1600, // 00BA GETNGBL R11 K11
+ 0x60300018, // 00BB GETGBL R12 G24
+ 0x58340034, // 00BC LDCONST R13 K52
+ 0x88380308, // 00BD GETMBR R14 R1 K8
+ 0x88381D1F, // 00BE GETMBR R14 R14 K31
+ 0x5C3C0400, // 00BF MOVE R15 R2
+ 0x5C401200, // 00C0 MOVE R16 R9
+ 0x5C441400, // 00C1 MOVE R17 R10
+ 0x7C300A00, // 00C2 CALL R12 5
+ 0x58340013, // 00C3 LDCONST R13 K19
+ 0x7C2C0400, // 00C4 CALL R11 2
+ 0x7002002C, // 00C5 JMP #00F3
+ 0x88280500, // 00C6 GETMBR R10 R2 K0
+ 0x4C2C0000, // 00C7 LDNIL R11
+ 0x2028140B, // 00C8 NE R10 R10 R11
+ 0x782A0019, // 00C9 JMPF R10 #00E4
0x88280500, // 00CA GETMBR R10 R2 K0
- 0x4C2C0000, // 00CB LDNIL R11
- 0x2028140B, // 00CC NE R10 R10 R11
- 0x782A001A, // 00CD JMPF R10 #00E9
- 0x88280500, // 00CE GETMBR R10 R2 K0
- 0xB82E0200, // 00CF GETNGBL R11 K1
- 0x882C1706, // 00D0 GETMBR R11 R11 K6
- 0x1C28140B, // 00D1 EQ R10 R10 R11
- 0x782A0001, // 00D2 JMPF R10 #00D5
- 0x58280006, // 00D3 LDCONST R10 K6
- 0x70020000, // 00D4 JMP #00D6
- 0x58280032, // 00D5 LDCONST R10 K50
- 0xB82E2400, // 00D6 GETNGBL R11 K18
- 0x8C2C1726, // 00D7 GETMET R11 R11 K38
- 0x58340014, // 00D8 LDCONST R13 K20
- 0x7C2C0400, // 00D9 CALL R11 2
- 0x782E000C, // 00DA JMPF R11 #00E8
- 0xB82E2400, // 00DB GETNGBL R11 K18
- 0x8C2C170B, // 00DC GETMET R11 R11 K11
- 0x60340018, // 00DD GETGBL R13 G24
- 0x58380035, // 00DE LDCONST R14 K53
- 0x883C0308, // 00DF GETMBR R15 R1 K8
- 0x883C1F20, // 00E0 GETMBR R15 R15 K32
- 0x5C400400, // 00E1 MOVE R16 R2
- 0x5C441200, // 00E2 MOVE R17 R9
- 0x88480500, // 00E3 GETMBR R18 R2 K0
- 0x5C4C1400, // 00E4 MOVE R19 R10
- 0x7C340C00, // 00E5 CALL R13 6
- 0x58380014, // 00E6 LDCONST R14 K20
- 0x7C2C0600, // 00E7 CALL R11 3
- 0x7002000F, // 00E8 JMP #00F9
- 0xB82A2400, // 00E9 GETNGBL R10 K18
- 0x8C281526, // 00EA GETMET R10 R10 K38
- 0x58300014, // 00EB LDCONST R12 K20
- 0x7C280400, // 00EC CALL R10 2
- 0x782A000A, // 00ED JMPF R10 #00F9
- 0xB82A2400, // 00EE GETNGBL R10 K18
- 0x8C28150B, // 00EF GETMET R10 R10 K11
- 0x60300018, // 00F0 GETGBL R12 G24
- 0x58340036, // 00F1 LDCONST R13 K54
- 0x88380308, // 00F2 GETMBR R14 R1 K8
- 0x88381D20, // 00F3 GETMBR R14 R14 K32
- 0x5C3C0400, // 00F4 MOVE R15 R2
- 0x5C401200, // 00F5 MOVE R16 R9
- 0x7C300800, // 00F6 CALL R12 4
- 0x58340014, // 00F7 LDCONST R13 K20
- 0x7C280600, // 00F8 CALL R10 3
- 0x50280200, // 00F9 LDBOOL R10 1 0
- 0x80041400, // 00FA RET 1 R10
+ 0xB82E0200, // 00CB GETNGBL R11 K1
+ 0x882C1706, // 00CC GETMBR R11 R11 K6
+ 0x1C28140B, // 00CD EQ R10 R10 R11
+ 0x782A0001, // 00CE JMPF R10 #00D1
+ 0x58280006, // 00CF LDCONST R10 K6
+ 0x70020000, // 00D0 JMP #00D2
+ 0x58280032, // 00D1 LDCONST R10 K50
+ 0xB82E4A00, // 00D2 GETNGBL R11 K37
+ 0x8C2C1726, // 00D3 GETMET R11 R11 K38
+ 0x58340013, // 00D4 LDCONST R13 K19
+ 0x7C2C0400, // 00D5 CALL R11 2
+ 0x782E000B, // 00D6 JMPF R11 #00E3
+ 0xB82E1600, // 00D7 GETNGBL R11 K11
+ 0x60300018, // 00D8 GETGBL R12 G24
+ 0x58340035, // 00D9 LDCONST R13 K53
+ 0x88380308, // 00DA GETMBR R14 R1 K8
+ 0x88381D1F, // 00DB GETMBR R14 R14 K31
+ 0x5C3C0400, // 00DC MOVE R15 R2
+ 0x5C401200, // 00DD MOVE R16 R9
+ 0x88440500, // 00DE GETMBR R17 R2 K0
+ 0x5C481400, // 00DF MOVE R18 R10
+ 0x7C300C00, // 00E0 CALL R12 6
+ 0x58340013, // 00E1 LDCONST R13 K19
+ 0x7C2C0400, // 00E2 CALL R11 2
+ 0x7002000E, // 00E3 JMP #00F3
+ 0xB82A4A00, // 00E4 GETNGBL R10 K37
+ 0x8C281526, // 00E5 GETMET R10 R10 K38
+ 0x58300013, // 00E6 LDCONST R12 K19
+ 0x7C280400, // 00E7 CALL R10 2
+ 0x782A0009, // 00E8 JMPF R10 #00F3
+ 0xB82A1600, // 00E9 GETNGBL R10 K11
+ 0x602C0018, // 00EA GETGBL R11 G24
+ 0x58300036, // 00EB LDCONST R12 K54
+ 0x88340308, // 00EC GETMBR R13 R1 K8
+ 0x88341B1F, // 00ED GETMBR R13 R13 K31
+ 0x5C380400, // 00EE MOVE R14 R2
+ 0x5C3C1200, // 00EF MOVE R15 R9
+ 0x7C2C0800, // 00F0 CALL R11 4
+ 0x58300013, // 00F1 LDCONST R12 K19
+ 0x7C280400, // 00F2 CALL R10 2
+ 0x50280200, // 00F3 LDBOOL R10 1 0
+ 0x80041400, // 00F4 RET 1 R10
})
)
);
@@ -3257,7 +3223,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_send_enqueued, /* name */
be_nested_proto(
- 8, /* nstack */
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3265,29 +3231,28 @@ be_local_closure(class_Matter_IM_send_enqueued, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
+ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(send_queue),
/* K2 */ be_nested_str_weak(finish),
/* K3 */ be_nested_str_weak(ready),
/* K4 */ be_nested_str_weak(send_im),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
- /* K8 */ be_nested_str_weak(resp),
- /* K9 */ be_nested_str_weak(exchange_id),
- /* K10 */ be_nested_str_weak(remove),
- /* K11 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
+ /* K7 */ be_nested_str_weak(resp),
+ /* K8 */ be_nested_str_weak(exchange_id),
+ /* K9 */ be_nested_str_weak(remove),
+ /* K10 */ be_const_int(1),
}),
be_str_weak(send_enqueued),
&be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
+ ( &(const binstruction[33]) { /* code */
0x58080000, // 0000 LDCONST R2 K0
0x600C000C, // 0001 GETGBL R3 G12
0x88100101, // 0002 GETMBR R4 R0 K1
0x7C0C0200, // 0003 CALL R3 1
0x140C0403, // 0004 LT R3 R2 R3
- 0x780E001A, // 0005 JMPF R3 #0021
+ 0x780E0019, // 0005 JMPF R3 #0020
0x880C0101, // 0006 GETMBR R3 R0 K1
0x940C0602, // 0007 GETIDX R3 R3 R2
0x88100702, // 0008 GETMBR R4 R3 K2
@@ -3298,24 +3263,23 @@ be_local_closure(class_Matter_IM_send_enqueued, /* name */
0x5C180200, // 000D MOVE R6 R1
0x7C100400, // 000E CALL R4 2
0x88100702, // 000F GETMBR R4 R3 K2
- 0x7812000D, // 0010 JMPF R4 #001F
+ 0x7812000C, // 0010 JMPF R4 #001E
0xB8120A00, // 0011 GETNGBL R4 K5
- 0x8C100906, // 0012 GETMET R4 R4 K6
- 0x60180008, // 0013 GETGBL R6 G8
- 0x881C0708, // 0014 GETMBR R7 R3 K8
- 0x881C0F09, // 0015 GETMBR R7 R7 K9
- 0x7C180200, // 0016 CALL R6 1
- 0x001A0E06, // 0017 ADD R6 K7 R6
- 0x541E0003, // 0018 LDINT R7 4
- 0x7C100600, // 0019 CALL R4 3
- 0x88100101, // 001A GETMBR R4 R0 K1
- 0x8C10090A, // 001B GETMET R4 R4 K10
- 0x5C180400, // 001C MOVE R6 R2
- 0x7C100400, // 001D CALL R4 2
- 0x70020000, // 001E JMP #0020
- 0x0008050B, // 001F ADD R2 R2 K11
- 0x7001FFDF, // 0020 JMP #0001
- 0x80000000, // 0021 RET 0
+ 0x60140008, // 0012 GETGBL R5 G8
+ 0x88180707, // 0013 GETMBR R6 R3 K7
+ 0x88180D08, // 0014 GETMBR R6 R6 K8
+ 0x7C140200, // 0015 CALL R5 1
+ 0x00160C05, // 0016 ADD R5 K6 R5
+ 0x541A0003, // 0017 LDINT R6 4
+ 0x7C100400, // 0018 CALL R4 2
+ 0x88100101, // 0019 GETMBR R4 R0 K1
+ 0x8C100909, // 001A GETMET R4 R4 K9
+ 0x5C180400, // 001B MOVE R6 R2
+ 0x7C100400, // 001C CALL R4 2
+ 0x70020000, // 001D JMP #001F
+ 0x0008050A, // 001E ADD R2 R2 K10
+ 0x7001FFE0, // 001F JMP #0001
+ 0x80000000, // 0020 RET 0
})
)
);
@@ -3445,7 +3409,7 @@ be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_subscribe_request, /* name */
be_nested_proto(
- 18, /* nstack */
+ 17, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3453,7 +3417,7 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[33]) { /* constants */
+ ( &(const bvalue[32]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(SubscribeRequestMessage),
/* K2 */ be_nested_str_weak(from_TLV),
@@ -3470,27 +3434,26 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/* K13 */ be_nested_str_weak(attribute),
/* K14 */ be_nested_str_weak(push),
/* K15 */ be_nested_str_weak(stop_iteration),
- /* K16 */ be_nested_str_weak(tasmota),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s),
- /* K19 */ be_nested_str_weak(local_session_id),
- /* K20 */ be_nested_str_weak(concat),
- /* K21 */ be_nested_str_weak(_X20),
- /* K22 */ be_nested_str_weak(min_interval),
- /* K23 */ be_nested_str_weak(max_interval),
- /* K24 */ be_const_int(1),
- /* K25 */ be_const_int(0),
- /* K26 */ be_nested_str_weak(subscription_id),
- /* K27 */ be_nested_str_weak(fabric_filtered),
- /* K28 */ be_const_int(3),
- /* K29 */ be_nested_str_weak(event_requests),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20event_requests_size_X3D_X25s),
- /* K31 */ be_nested_str_weak(_inner_process_read_request),
- /* K32 */ be_nested_str_weak(send_subscribe_response),
+ /* K16 */ be_nested_str_weak(log),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s),
+ /* K18 */ be_nested_str_weak(local_session_id),
+ /* K19 */ be_nested_str_weak(concat),
+ /* K20 */ be_nested_str_weak(_X20),
+ /* K21 */ be_nested_str_weak(min_interval),
+ /* K22 */ be_nested_str_weak(max_interval),
+ /* K23 */ be_const_int(1),
+ /* K24 */ be_const_int(0),
+ /* K25 */ be_nested_str_weak(subscription_id),
+ /* K26 */ be_nested_str_weak(fabric_filtered),
+ /* K27 */ be_const_int(3),
+ /* K28 */ be_nested_str_weak(event_requests),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20event_requests_size_X3D_X25s),
+ /* K30 */ be_nested_str_weak(_inner_process_read_request),
+ /* K31 */ be_nested_str_weak(send_subscribe_response),
}),
be_str_weak(subscribe_request),
&be_const_str_solidified,
- ( &(const binstruction[101]) { /* code */
+ ( &(const binstruction[99]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -3536,62 +3499,60 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0xAC1C0200, // 002A CATCH R7 1 0
0xB0080000, // 002B RAISE 2 R0 R0
0xB81E2000, // 002C GETNGBL R7 K16
- 0x8C1C0F11, // 002D GETMET R7 R7 K17
- 0x60240018, // 002E GETGBL R9 G24
- 0x58280012, // 002F LDCONST R10 K18
- 0x882C0306, // 0030 GETMBR R11 R1 K6
- 0x882C1713, // 0031 GETMBR R11 R11 K19
- 0x8C300B14, // 0032 GETMET R12 R5 K20
- 0x58380015, // 0033 LDCONST R14 K21
- 0x7C300400, // 0034 CALL R12 2
+ 0x60200018, // 002D GETGBL R8 G24
+ 0x58240011, // 002E LDCONST R9 K17
+ 0x88280306, // 002F GETMBR R10 R1 K6
+ 0x88281512, // 0030 GETMBR R10 R10 K18
+ 0x8C2C0B13, // 0031 GETMET R11 R5 K19
+ 0x58340014, // 0032 LDCONST R13 K20
+ 0x7C2C0400, // 0033 CALL R11 2
+ 0x88300915, // 0034 GETMBR R12 R4 K21
0x88340916, // 0035 GETMBR R13 R4 K22
- 0x88380917, // 0036 GETMBR R14 R4 K23
- 0x883C0703, // 0037 GETMBR R15 R3 K3
- 0x783E0001, // 0038 JMPF R15 #003B
- 0x583C0018, // 0039 LDCONST R15 K24
- 0x70020000, // 003A JMP #003C
- 0x583C0019, // 003B LDCONST R15 K25
- 0x8840091A, // 003C GETMBR R16 R4 K26
- 0x8844071B, // 003D GETMBR R17 R3 K27
- 0x7C241000, // 003E CALL R9 8
- 0x5828001C, // 003F LDCONST R10 K28
- 0x7C1C0600, // 0040 CALL R7 3
- 0x881C071D, // 0041 GETMBR R7 R3 K29
- 0x4C200000, // 0042 LDNIL R8
- 0x201C0E08, // 0043 NE R7 R7 R8
- 0x781E0010, // 0044 JMPF R7 #0056
- 0x601C000C, // 0045 GETGBL R7 G12
- 0x8820071D, // 0046 GETMBR R8 R3 K29
- 0x7C1C0200, // 0047 CALL R7 1
- 0x241C0F19, // 0048 GT R7 R7 K25
- 0x781E000B, // 0049 JMPF R7 #0056
- 0xB81E2000, // 004A GETNGBL R7 K16
- 0x8C1C0F11, // 004B GETMET R7 R7 K17
- 0x60240018, // 004C GETGBL R9 G24
- 0x5828001E, // 004D LDCONST R10 K30
- 0x882C0306, // 004E GETMBR R11 R1 K6
- 0x882C1713, // 004F GETMBR R11 R11 K19
- 0x6030000C, // 0050 GETGBL R12 G12
- 0x8834071D, // 0051 GETMBR R13 R3 K29
- 0x7C300200, // 0052 CALL R12 1
- 0x7C240600, // 0053 CALL R9 3
- 0x5828001C, // 0054 LDCONST R10 K28
- 0x7C1C0600, // 0055 CALL R7 3
- 0x8C1C011F, // 0056 GETMET R7 R0 K31
- 0x88240306, // 0057 GETMBR R9 R1 K6
- 0x5C280600, // 0058 MOVE R10 R3
- 0x5C2C0200, // 0059 MOVE R11 R1
- 0x50300200, // 005A LDBOOL R12 1 0
- 0x7C1C0A00, // 005B CALL R7 5
- 0x8820091A, // 005C GETMBR R8 R4 K26
- 0x901E3408, // 005D SETMBR R7 K26 R8
- 0x8C200120, // 005E GETMET R8 R0 K32
- 0x5C280200, // 005F MOVE R10 R1
- 0x5C2C0E00, // 0060 MOVE R11 R7
- 0x5C300800, // 0061 MOVE R12 R4
- 0x7C200800, // 0062 CALL R8 4
- 0x50200200, // 0063 LDBOOL R8 1 0
- 0x80041000, // 0064 RET 1 R8
+ 0x88380703, // 0036 GETMBR R14 R3 K3
+ 0x783A0001, // 0037 JMPF R14 #003A
+ 0x58380017, // 0038 LDCONST R14 K23
+ 0x70020000, // 0039 JMP #003B
+ 0x58380018, // 003A LDCONST R14 K24
+ 0x883C0919, // 003B GETMBR R15 R4 K25
+ 0x8840071A, // 003C GETMBR R16 R3 K26
+ 0x7C201000, // 003D CALL R8 8
+ 0x5824001B, // 003E LDCONST R9 K27
+ 0x7C1C0400, // 003F CALL R7 2
+ 0x881C071C, // 0040 GETMBR R7 R3 K28
+ 0x4C200000, // 0041 LDNIL R8
+ 0x201C0E08, // 0042 NE R7 R7 R8
+ 0x781E000F, // 0043 JMPF R7 #0054
+ 0x601C000C, // 0044 GETGBL R7 G12
+ 0x8820071C, // 0045 GETMBR R8 R3 K28
+ 0x7C1C0200, // 0046 CALL R7 1
+ 0x241C0F18, // 0047 GT R7 R7 K24
+ 0x781E000A, // 0048 JMPF R7 #0054
+ 0xB81E2000, // 0049 GETNGBL R7 K16
+ 0x60200018, // 004A GETGBL R8 G24
+ 0x5824001D, // 004B LDCONST R9 K29
+ 0x88280306, // 004C GETMBR R10 R1 K6
+ 0x88281512, // 004D GETMBR R10 R10 K18
+ 0x602C000C, // 004E GETGBL R11 G12
+ 0x8830071C, // 004F GETMBR R12 R3 K28
+ 0x7C2C0200, // 0050 CALL R11 1
+ 0x7C200600, // 0051 CALL R8 3
+ 0x5824001B, // 0052 LDCONST R9 K27
+ 0x7C1C0400, // 0053 CALL R7 2
+ 0x8C1C011E, // 0054 GETMET R7 R0 K30
+ 0x88240306, // 0055 GETMBR R9 R1 K6
+ 0x5C280600, // 0056 MOVE R10 R3
+ 0x5C2C0200, // 0057 MOVE R11 R1
+ 0x50300200, // 0058 LDBOOL R12 1 0
+ 0x7C1C0A00, // 0059 CALL R7 5
+ 0x88200919, // 005A GETMBR R8 R4 K25
+ 0x901E3208, // 005B SETMBR R7 K25 R8
+ 0x8C20011F, // 005C GETMET R8 R0 K31
+ 0x5C280200, // 005D MOVE R10 R1
+ 0x5C2C0E00, // 005E MOVE R11 R7
+ 0x5C300800, // 005F MOVE R12 R4
+ 0x7C200800, // 0060 CALL R8 4
+ 0x50200200, // 0061 LDBOOL R8 1 0
+ 0x80041000, // 0062 RET 1 R8
})
)
);
@@ -3612,61 +3573,59 @@ be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25i),
- /* K4 */ be_nested_str_weak(local_session_id),
- /* K5 */ be_nested_str_weak(subscription_id),
- /* K6 */ be_const_int(3),
- /* K7 */ be_nested_str_weak(is_keep_alive),
- /* K8 */ be_nested_str_weak(matter),
- /* K9 */ be_nested_str_weak(ReportDataMessage),
- /* K10 */ be_nested_str_weak(suppress_response),
- /* K11 */ be_nested_str_weak(IM_SubscribedHeartbeat),
- /* K12 */ be_nested_str_weak(_message_handler),
- /* K13 */ be_nested_str_weak(send_queue),
- /* K14 */ be_nested_str_weak(push),
- /* K15 */ be_nested_str_weak(send_enqueued),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25i),
+ /* K3 */ be_nested_str_weak(local_session_id),
+ /* K4 */ be_nested_str_weak(subscription_id),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(is_keep_alive),
+ /* K7 */ be_nested_str_weak(matter),
+ /* K8 */ be_nested_str_weak(ReportDataMessage),
+ /* K9 */ be_nested_str_weak(suppress_response),
+ /* K10 */ be_nested_str_weak(IM_SubscribedHeartbeat),
+ /* K11 */ be_nested_str_weak(_message_handler),
+ /* K12 */ be_nested_str_weak(send_queue),
+ /* K13 */ be_nested_str_weak(push),
+ /* K14 */ be_nested_str_weak(send_enqueued),
}),
be_str_weak(send_subscribe_heartbeat),
&be_const_str_solidified,
- ( &(const binstruction[34]) { /* code */
+ ( &(const binstruction[33]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x60140018, // 0003 GETGBL R5 G24
- 0x58180003, // 0004 LDCONST R6 K3
- 0x881C0504, // 0005 GETMBR R7 R2 K4
- 0x88200305, // 0006 GETMBR R8 R1 K5
- 0x7C140600, // 0007 CALL R5 3
- 0x58180006, // 0008 LDCONST R6 K6
- 0x7C0C0600, // 0009 CALL R3 3
- 0x500C0200, // 000A LDBOOL R3 1 0
- 0x90060E03, // 000B SETMBR R1 K7 R3
- 0xB80E1000, // 000C GETNGBL R3 K8
- 0x8C0C0709, // 000D GETMET R3 R3 K9
- 0x7C0C0200, // 000E CALL R3 1
- 0x50100200, // 000F LDBOOL R4 1 0
- 0x900E1404, // 0010 SETMBR R3 K10 R4
- 0x88100305, // 0011 GETMBR R4 R1 K5
- 0x900E0A04, // 0012 SETMBR R3 K5 R4
- 0xB8121000, // 0013 GETNGBL R4 K8
- 0x8C10090B, // 0014 GETMET R4 R4 K11
- 0x8818050C, // 0015 GETMBR R6 R2 K12
- 0x5C1C0400, // 0016 MOVE R7 R2
- 0x5C200600, // 0017 MOVE R8 R3
- 0x5C240200, // 0018 MOVE R9 R1
- 0x7C100A00, // 0019 CALL R4 5
- 0x8814010D, // 001A GETMBR R5 R0 K13
- 0x8C140B0E, // 001B GETMET R5 R5 K14
- 0x5C1C0800, // 001C MOVE R7 R4
- 0x7C140400, // 001D CALL R5 2
- 0x8C14010F, // 001E GETMET R5 R0 K15
- 0x881C050C, // 001F GETMBR R7 R2 K12
- 0x7C140400, // 0020 CALL R5 2
- 0x80000000, // 0021 RET 0
+ 0x60100018, // 0002 GETGBL R4 G24
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x88180503, // 0004 GETMBR R6 R2 K3
+ 0x881C0304, // 0005 GETMBR R7 R1 K4
+ 0x7C100600, // 0006 CALL R4 3
+ 0x58140005, // 0007 LDCONST R5 K5
+ 0x7C0C0400, // 0008 CALL R3 2
+ 0x500C0200, // 0009 LDBOOL R3 1 0
+ 0x90060C03, // 000A SETMBR R1 K6 R3
+ 0xB80E0E00, // 000B GETNGBL R3 K7
+ 0x8C0C0708, // 000C GETMET R3 R3 K8
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x50100200, // 000E LDBOOL R4 1 0
+ 0x900E1204, // 000F SETMBR R3 K9 R4
+ 0x88100304, // 0010 GETMBR R4 R1 K4
+ 0x900E0804, // 0011 SETMBR R3 K4 R4
+ 0xB8120E00, // 0012 GETNGBL R4 K7
+ 0x8C10090A, // 0013 GETMET R4 R4 K10
+ 0x8818050B, // 0014 GETMBR R6 R2 K11
+ 0x5C1C0400, // 0015 MOVE R7 R2
+ 0x5C200600, // 0016 MOVE R8 R3
+ 0x5C240200, // 0017 MOVE R9 R1
+ 0x7C100A00, // 0018 CALL R4 5
+ 0x8814010C, // 0019 GETMBR R5 R0 K12
+ 0x8C140B0D, // 001A GETMET R5 R5 K13
+ 0x5C1C0800, // 001B MOVE R7 R4
+ 0x7C140400, // 001C CALL R5 2
+ 0x8C14010E, // 001D GETMET R5 R0 K14
+ 0x881C050B, // 001E GETMBR R7 R2 K11
+ 0x7C140400, // 001F CALL R5 2
+ 0x80000000, // 0020 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 95e1edc55..0daab0c27 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -74,7 +74,7 @@ be_local_closure(class_Matter_IM_Message_get_exchangeid, /* name */
extern const bclass be_class_Matter_IM_Message;
be_local_closure(class_Matter_IM_Message_send_im, /* name */
be_nested_proto(
- 13, /* nstack */
+ 12, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -105,7 +105,7 @@ be_local_closure(class_Matter_IM_Message_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
+ ( &(const binstruction[39]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
@@ -125,27 +125,26 @@ be_local_closure(class_Matter_IM_Message_send_im, /* name */
0x8C140B08, // 0010 GETMET R5 R5 K8
0x541E0003, // 0011 LDINT R7 4
0x7C140400, // 0012 CALL R5 2
- 0x7816000B, // 0013 JMPF R5 #0020
- 0xB8160E00, // 0014 GETNGBL R5 K7
- 0x8C140B09, // 0015 GETMET R5 R5 K9
- 0x601C0018, // 0016 GETGBL R7 G24
- 0x5820000A, // 0017 LDCONST R8 K10
- 0x8824050B, // 0018 GETMBR R9 R2 K11
- 0x8824130C, // 0019 GETMBR R9 R9 K12
- 0x8828050D, // 001A GETMBR R10 R2 K13
- 0x882C050E, // 001B GETMBR R11 R2 K14
- 0x8830050F, // 001C GETMBR R12 R2 K15
- 0x7C1C0A00, // 001D CALL R7 5
- 0x54220003, // 001E LDINT R8 4
- 0x7C140600, // 001F CALL R5 3
- 0x8C140310, // 0020 GETMET R5 R1 K16
- 0x5C1C0400, // 0021 MOVE R7 R2
- 0x7C140400, // 0022 CALL R5 2
- 0x8814050D, // 0023 GETMBR R5 R2 K13
- 0x90022205, // 0024 SETMBR R0 K17 R5
- 0x50140200, // 0025 LDBOOL R5 1 0
- 0x90022405, // 0026 SETMBR R0 K18 R5
- 0x80000000, // 0027 RET 0
+ 0x7816000A, // 0013 JMPF R5 #001F
+ 0xB8161200, // 0014 GETNGBL R5 K9
+ 0x60180018, // 0015 GETGBL R6 G24
+ 0x581C000A, // 0016 LDCONST R7 K10
+ 0x8820050B, // 0017 GETMBR R8 R2 K11
+ 0x8820110C, // 0018 GETMBR R8 R8 K12
+ 0x8824050D, // 0019 GETMBR R9 R2 K13
+ 0x8828050E, // 001A GETMBR R10 R2 K14
+ 0x882C050F, // 001B GETMBR R11 R2 K15
+ 0x7C180A00, // 001C CALL R6 5
+ 0x541E0003, // 001D LDINT R7 4
+ 0x7C140400, // 001E CALL R5 2
+ 0x8C140310, // 001F GETMET R5 R1 K16
+ 0x5C1C0400, // 0020 MOVE R7 R2
+ 0x7C140400, // 0021 CALL R5 2
+ 0x8814050D, // 0022 GETMBR R5 R2 K13
+ 0x90022205, // 0023 SETMBR R0 K17 R5
+ 0x50140200, // 0024 LDBOOL R5 1 0
+ 0x90022405, // 0025 SETMBR R0 K18 R5
+ 0x80000000, // 0026 RET 0
})
)
);
@@ -763,7 +762,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_ack_received, /* name */
extern const bclass be_class_Matter_IM_ReportDataSubscribed;
be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -796,7 +795,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[74]) { /* code */
+ ( &(const binstruction[73]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
@@ -806,7 +805,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
0x880C0702, // 0006 GETMBR R3 R3 K2
0x7C080200, // 0007 CALL R2 1
0x24080503, // 0008 GT R2 R2 K3
- 0x780A0031, // 0009 JMPF R2 #003C
+ 0x780A0030, // 0009 JMPF R2 #003B
0x88080104, // 000A GETMBR R2 R0 K4
0x780A000F, // 000B JMPF R2 #001C
0x60080003, // 000C GETGBL R2 G3
@@ -824,7 +823,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
0x90020002, // 0018 SETMBR R0 K0 R2
0x50080000, // 0019 LDBOOL R2 0 0
0x90020C02, // 001A SETMBR R0 K6 R2
- 0x7002001E, // 001B JMP #003B
+ 0x7002001D, // 001B JMP #003A
0x88080107, // 001C GETMBR R2 R0 K7
0x8C080508, // 001D GETMET R2 R2 K8
0x50100000, // 001E LDBOOL R4 0 0
@@ -837,40 +836,39 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
0x8C0C070C, // 0025 GETMET R3 R3 K12
0x54160003, // 0026 LDINT R5 4
0x7C0C0400, // 0027 CALL R3 2
- 0x780E000A, // 0028 JMPF R3 #0034
- 0xB80E1600, // 0029 GETNGBL R3 K11
- 0x8C0C070D, // 002A GETMET R3 R3 K13
- 0x60140018, // 002B GETGBL R5 G24
- 0x5818000E, // 002C LDCONST R6 K14
- 0x881C050F, // 002D GETMBR R7 R2 K15
- 0x881C0F10, // 002E GETMBR R7 R7 K16
- 0x88200511, // 002F GETMBR R8 R2 K17
- 0x88240512, // 0030 GETMBR R9 R2 K18
- 0x7C140800, // 0031 CALL R5 4
- 0x541A0003, // 0032 LDINT R6 4
- 0x7C0C0600, // 0033 CALL R3 3
- 0x8C0C0313, // 0034 GETMET R3 R1 K19
- 0x5C140400, // 0035 MOVE R5 R2
- 0x7C0C0400, // 0036 CALL R3 2
- 0x880C0512, // 0037 GETMBR R3 R2 K18
- 0x90022803, // 0038 SETMBR R0 K20 R3
- 0x500C0200, // 0039 LDBOOL R3 1 0
- 0x90020C03, // 003A SETMBR R0 K6 R3
- 0x7002000C, // 003B JMP #0049
- 0x88080104, // 003C GETMBR R2 R0 K4
- 0x780A0008, // 003D JMPF R2 #0047
- 0x60080003, // 003E GETGBL R2 G3
- 0x5C0C0000, // 003F MOVE R3 R0
- 0x7C080200, // 0040 CALL R2 1
- 0x8C080505, // 0041 GETMET R2 R2 K5
- 0x5C100200, // 0042 MOVE R4 R1
- 0x7C080400, // 0043 CALL R2 2
- 0x50080000, // 0044 LDBOOL R2 0 0
- 0x90020802, // 0045 SETMBR R0 K4 R2
- 0x70020001, // 0046 JMP #0049
- 0x50080200, // 0047 LDBOOL R2 1 0
- 0x90020C02, // 0048 SETMBR R0 K6 R2
- 0x80000000, // 0049 RET 0
+ 0x780E0009, // 0028 JMPF R3 #0033
+ 0xB80E1A00, // 0029 GETNGBL R3 K13
+ 0x60100018, // 002A GETGBL R4 G24
+ 0x5814000E, // 002B LDCONST R5 K14
+ 0x8818050F, // 002C GETMBR R6 R2 K15
+ 0x88180D10, // 002D GETMBR R6 R6 K16
+ 0x881C0511, // 002E GETMBR R7 R2 K17
+ 0x88200512, // 002F GETMBR R8 R2 K18
+ 0x7C100800, // 0030 CALL R4 4
+ 0x54160003, // 0031 LDINT R5 4
+ 0x7C0C0400, // 0032 CALL R3 2
+ 0x8C0C0313, // 0033 GETMET R3 R1 K19
+ 0x5C140400, // 0034 MOVE R5 R2
+ 0x7C0C0400, // 0035 CALL R3 2
+ 0x880C0512, // 0036 GETMBR R3 R2 K18
+ 0x90022803, // 0037 SETMBR R0 K20 R3
+ 0x500C0200, // 0038 LDBOOL R3 1 0
+ 0x90020C03, // 0039 SETMBR R0 K6 R3
+ 0x7002000C, // 003A JMP #0048
+ 0x88080104, // 003B GETMBR R2 R0 K4
+ 0x780A0008, // 003C JMPF R2 #0046
+ 0x60080003, // 003D GETGBL R2 G3
+ 0x5C0C0000, // 003E MOVE R3 R0
+ 0x7C080200, // 003F CALL R2 1
+ 0x8C080505, // 0040 GETMET R2 R2 K5
+ 0x5C100200, // 0041 MOVE R4 R1
+ 0x7C080400, // 0042 CALL R2 2
+ 0x50080000, // 0043 LDBOOL R2 0 0
+ 0x90020802, // 0044 SETMBR R0 K4 R2
+ 0x70020001, // 0045 JMP #0048
+ 0x50080200, // 0046 LDBOOL R2 1 0
+ 0x90020C02, // 0047 SETMBR R0 K6 R2
+ 0x80000000, // 0048 RET 0
})
)
);
@@ -1361,7 +1359,7 @@ be_local_closure(class_Matter_IM_SubscribeResponse_init, /* name */
extern const bclass be_class_Matter_IM_SubscribeResponse;
be_local_closure(class_Matter_IM_SubscribeResponse_status_ok_received, /* name */
be_nested_proto(
- 8, /* nstack */
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1383,30 +1381,29 @@ be_local_closure(class_Matter_IM_SubscribeResponse_status_ok_received, /* name
}),
be_str_weak(status_ok_received),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
+ ( &(const binstruction[22]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x58100002, // 0002 LDCONST R4 K2
0x7C080400, // 0003 CALL R2 2
- 0x780A000A, // 0004 JMPF R2 #0010
- 0xB80A0000, // 0005 GETNGBL R2 K0
- 0x8C080503, // 0006 GETMET R2 R2 K3
- 0x60100018, // 0007 GETGBL R4 G24
- 0x58140004, // 0008 LDCONST R5 K4
- 0x88180305, // 0009 GETMBR R6 R1 K5
- 0x88180D06, // 000A GETMBR R6 R6 K6
- 0x881C0107, // 000B GETMBR R7 R0 K7
- 0x881C0F08, // 000C GETMBR R7 R7 K8
- 0x7C100600, // 000D CALL R4 3
- 0x58140002, // 000E LDCONST R5 K2
- 0x7C080600, // 000F CALL R2 3
- 0x60080003, // 0010 GETGBL R2 G3
- 0x5C0C0000, // 0011 MOVE R3 R0
- 0x7C080200, // 0012 CALL R2 1
- 0x8C080509, // 0013 GETMET R2 R2 K9
- 0x5C100200, // 0014 MOVE R4 R1
- 0x7C080400, // 0015 CALL R2 2
- 0x80040400, // 0016 RET 1 R2
+ 0x780A0009, // 0004 JMPF R2 #000F
+ 0xB80A0600, // 0005 GETNGBL R2 K3
+ 0x600C0018, // 0006 GETGBL R3 G24
+ 0x58100004, // 0007 LDCONST R4 K4
+ 0x88140305, // 0008 GETMBR R5 R1 K5
+ 0x88140B06, // 0009 GETMBR R5 R5 K6
+ 0x88180107, // 000A GETMBR R6 R0 K7
+ 0x88180D08, // 000B GETMBR R6 R6 K8
+ 0x7C0C0600, // 000C CALL R3 3
+ 0x58100002, // 000D LDCONST R4 K2
+ 0x7C080400, // 000E CALL R2 2
+ 0x60080003, // 000F GETGBL R2 G3
+ 0x5C0C0000, // 0010 MOVE R3 R0
+ 0x7C080200, // 0011 CALL R2 1
+ 0x8C080509, // 0012 GETMET R2 R2 K9
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x80040400, // 0015 RET 1 R2
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
index 0f715f024..e10ec8aee 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
@@ -180,7 +180,7 @@ be_local_closure(class_Matter_IM_Subscription__add_attribute_unique_path, /* n
extern const bclass be_class_Matter_IM_Subscription;
be_local_closure(class_Matter_IM_Subscription_remove_self, /* name */
be_nested_proto(
- 5, /* nstack */
+ 4, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -188,31 +188,29 @@ be_local_closure(class_Matter_IM_Subscription_remove_self, /* name */
0, /* has sup protos */
&be_class_Matter_IM_Subscription,
1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2DSub_Del_X20_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D),
- /* K3 */ be_nested_str_weak(subscription_id),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(subs_shop),
- /* K6 */ be_nested_str_weak(remove_sub),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSub_Del_X20_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D),
+ /* K2 */ be_nested_str_weak(subscription_id),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(subs_shop),
+ /* K5 */ be_nested_str_weak(remove_sub),
}),
be_str_weak(remove_self),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
+ ( &(const binstruction[12]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x600C0008, // 0002 GETGBL R3 G8
- 0x88100103, // 0003 GETMBR R4 R0 K3
- 0x7C0C0200, // 0004 CALL R3 1
- 0x000E0403, // 0005 ADD R3 K2 R3
- 0x58100004, // 0006 LDCONST R4 K4
- 0x7C040600, // 0007 CALL R1 3
- 0x88040105, // 0008 GETMBR R1 R0 K5
- 0x8C040306, // 0009 GETMET R1 R1 K6
- 0x5C0C0000, // 000A MOVE R3 R0
- 0x7C040400, // 000B CALL R1 2
- 0x80000000, // 000C RET 0
+ 0x60080008, // 0001 GETGBL R2 G8
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0x000A0202, // 0004 ADD R2 K1 R2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x7C040400, // 0006 CALL R1 2
+ 0x88040104, // 0007 GETMBR R1 R0 K4
+ 0x8C040305, // 0008 GETMET R1 R1 K5
+ 0x5C0C0000, // 0009 MOVE R3 R0
+ 0x7C040400, // 000A CALL R1 2
+ 0x80000000, // 000B RET 0
})
)
);
@@ -329,7 +327,7 @@ be_local_closure(class_Matter_IM_Subscription_attribute_updated_ctx, /* name *
extern const bclass be_class_Matter_IM_Subscription;
be_local_closure(class_Matter_IM_Subscription_re_arm, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -355,7 +353,7 @@ be_local_closure(class_Matter_IM_Subscription_re_arm, /* name */
}),
be_str_weak(re_arm),
&be_const_str_solidified,
- ( &(const binstruction[29]) { /* code */
+ ( &(const binstruction[28]) { /* code */
0x50040000, // 0000 LDBOOL R1 0 0
0x90020001, // 0001 SETMBR R0 K0 R1
0xB8060200, // 0002 GETNGBL R1 K1
@@ -375,16 +373,15 @@ be_local_closure(class_Matter_IM_Subscription_re_arm, /* name */
0x04080508, // 0010 SUB R2 R2 K8
0x90020C02, // 0011 SETMBR R0 K6 R2
0x88080109, // 0012 GETMBR R2 R0 K9
- 0x740A0007, // 0013 JMPT R2 #001C
- 0xB80A0200, // 0014 GETNGBL R2 K1
- 0x8C08050A, // 0015 GETMET R2 R2 K10
- 0x60100018, // 0016 GETGBL R4 G24
- 0x5814000B, // 0017 LDCONST R5 K11
- 0x8818010C, // 0018 GETMBR R6 R0 K12
- 0x7C100400, // 0019 CALL R4 2
- 0x5814000D, // 001A LDCONST R5 K13
- 0x7C080600, // 001B CALL R2 3
- 0x80000000, // 001C RET 0
+ 0x740A0006, // 0013 JMPT R2 #001B
+ 0xB80A1400, // 0014 GETNGBL R2 K10
+ 0x600C0018, // 0015 GETGBL R3 G24
+ 0x5810000B, // 0016 LDCONST R4 K11
+ 0x8814010C, // 0017 GETMBR R5 R0 K12
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x5810000D, // 0019 LDCONST R4 K13
+ 0x7C080400, // 001A CALL R2 2
+ 0x80000000, // 001B RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
index fdbb70859..22bb7bc99 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
@@ -458,7 +458,7 @@ be_local_closure(class_Matter_Frame_build_standalone_ack, /* name */
extern const bclass be_class_Matter_Frame;
be_local_closure(class_Matter_Frame_build_response, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
@@ -466,7 +466,7 @@ be_local_closure(class_Matter_Frame_build_response, /* name */
0, /* has sup protos */
&be_class_Matter_Frame,
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[29]) { /* constants */
/* K0 */ be_nested_str_weak(message_handler),
/* K1 */ be_nested_str_weak(remote_ip),
/* K2 */ be_nested_str_weak(remote_port),
@@ -493,14 +493,13 @@ be_local_closure(class_Matter_Frame_build_response, /* name */
/* K23 */ be_nested_str_weak(matter),
/* K24 */ be_nested_str_weak(get_opcode_name),
/* K25 */ be_nested_str_weak(0x_X2502X),
- /* K26 */ be_nested_str_weak(tasmota),
- /* K27 */ be_nested_str_weak(log),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
- /* K29 */ be_const_int(3),
+ /* K26 */ be_nested_str_weak(log),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
+ /* K28 */ be_const_int(3),
}),
be_str_weak(build_response),
&be_const_str_solidified,
- ( &(const binstruction[91]) { /* code */
+ ( &(const binstruction[90]) { /* code */
0x4C100000, // 0000 LDNIL R4
0x1C100604, // 0001 EQ R4 R3 R4
0x78120005, // 0002 JMPF R4 #0009
@@ -569,7 +568,7 @@ be_local_closure(class_Matter_Frame_build_response, /* name */
0x900E2804, // 0041 SETMBR R3 K20 R4
0x8810070A, // 0042 GETMBR R4 R3 K10
0x1C100908, // 0043 EQ R4 R4 K8
- 0x78120014, // 0044 JMPF R4 #005A
+ 0x78120013, // 0044 JMPF R4 #0059
0xB8122E00, // 0045 GETNGBL R4 K23
0x8C100918, // 0046 GETMET R4 R4 K24
0x88180711, // 0047 GETMBR R6 R3 K17
@@ -582,16 +581,15 @@ be_local_closure(class_Matter_Frame_build_response, /* name */
0x7C140400, // 004E CALL R5 2
0x5C100A00, // 004F MOVE R4 R5
0xB8163400, // 0050 GETNGBL R5 K26
- 0x8C140B1B, // 0051 GETMET R5 R5 K27
- 0x601C0018, // 0052 GETGBL R7 G24
- 0x5820001C, // 0053 LDCONST R8 K28
- 0x88240709, // 0054 GETMBR R9 R3 K9
- 0x8824130A, // 0055 GETMBR R9 R9 K10
- 0x5C280800, // 0056 MOVE R10 R4
- 0x7C1C0600, // 0057 CALL R7 3
- 0x5820001D, // 0058 LDCONST R8 K29
- 0x7C140600, // 0059 CALL R5 3
- 0x80040600, // 005A RET 1 R3
+ 0x60180018, // 0051 GETGBL R6 G24
+ 0x581C001B, // 0052 LDCONST R7 K27
+ 0x88200709, // 0053 GETMBR R8 R3 K9
+ 0x8820110A, // 0054 GETMBR R8 R8 K10
+ 0x5C240800, // 0055 MOVE R9 R4
+ 0x7C180600, // 0056 CALL R6 3
+ 0x581C001C, // 0057 LDCONST R7 K28
+ 0x7C140400, // 0058 CALL R5 2
+ 0x80040600, // 0059 RET 1 R3
})
)
);
@@ -1044,41 +1042,40 @@ be_local_closure(class_Matter_Frame_decrypt, /* name */
0, /* has sup protos */
&be_class_Matter_Frame,
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[29]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(session),
/* K2 */ be_nested_str_weak(raw),
/* K3 */ be_nested_str_weak(payload_idx),
/* K4 */ be_nested_str_weak(get_i2r),
/* K5 */ be_nested_str_weak(sec_p),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X20Compute_X20Privacy_X20TODO),
- /* K9 */ be_const_int(2),
- /* K10 */ be_nested_str_weak(get_i2r_privacy),
- /* K11 */ be_const_int(2147483647),
- /* K12 */ be_nested_str_weak(add),
- /* K13 */ be_nested_str_weak(local_session_id),
- /* K14 */ be_const_int(1),
- /* K15 */ be_nested_str_weak(AES_CTR),
- /* K16 */ be_nested_str_weak(decrypt),
- /* K17 */ be_const_int(0),
- /* K18 */ be_const_int(3),
- /* K19 */ be_nested_str_weak(message_handler),
- /* K20 */ be_nested_str_weak(_n_bytes),
- /* K21 */ be_nested_str_weak(clear),
- /* K22 */ be_nested_str_weak(flags),
- /* K23 */ be_nested_str_weak(message_counter),
- /* K24 */ be_nested_str_weak(source_node_id),
- /* K25 */ be_nested_str_weak(peer_node_id),
- /* K26 */ be_nested_str_weak(resize),
- /* K27 */ be_nested_str_weak(AES_CCM),
- /* K28 */ be_nested_str_weak(decrypt1),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20rejected_X20packet_X20due_X20to_X20invalid_X20MIC),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X3E_X20Compute_X20Privacy_X20TODO),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(get_i2r_privacy),
+ /* K10 */ be_const_int(2147483647),
+ /* K11 */ be_nested_str_weak(add),
+ /* K12 */ be_nested_str_weak(local_session_id),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(AES_CTR),
+ /* K15 */ be_nested_str_weak(decrypt),
+ /* K16 */ be_const_int(0),
+ /* K17 */ be_const_int(3),
+ /* K18 */ be_nested_str_weak(message_handler),
+ /* K19 */ be_nested_str_weak(_n_bytes),
+ /* K20 */ be_nested_str_weak(clear),
+ /* K21 */ be_nested_str_weak(flags),
+ /* K22 */ be_nested_str_weak(message_counter),
+ /* K23 */ be_nested_str_weak(source_node_id),
+ /* K24 */ be_nested_str_weak(peer_node_id),
+ /* K25 */ be_nested_str_weak(resize),
+ /* K26 */ be_nested_str_weak(AES_CCM),
+ /* K27 */ be_nested_str_weak(decrypt1),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20rejected_X20packet_X20due_X20to_X20invalid_X20MIC),
}),
be_str_weak(decrypt),
&be_const_str_solidified,
- ( &(const binstruction[117]) { /* code */
+ ( &(const binstruction[115]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x88080101, // 0001 GETMBR R2 R0 K1
0x880C0102, // 0002 GETMBR R3 R0 K2
@@ -1087,115 +1084,113 @@ be_local_closure(class_Matter_Frame_decrypt, /* name */
0x8C180504, // 0005 GETMET R6 R2 K4
0x7C180200, // 0006 CALL R6 1
0x881C0105, // 0007 GETMBR R7 R0 K5
- 0x781E002C, // 0008 JMPF R7 #0036
+ 0x781E002B, // 0008 JMPF R7 #0035
0xB81E0C00, // 0009 GETNGBL R7 K6
- 0x8C1C0F07, // 000A GETMET R7 R7 K7
+ 0x58200007, // 000A LDCONST R8 K7
0x58240008, // 000B LDCONST R9 K8
- 0x58280009, // 000C LDCONST R10 K9
- 0x7C1C0600, // 000D CALL R7 3
- 0x8C1C050A, // 000E GETMET R7 R2 K10
- 0x7C1C0200, // 000F CALL R7 1
- 0x5421FFEF, // 0010 LDINT R8 -16
- 0x4020110B, // 0011 CONNECT R8 R8 K11
- 0x94200608, // 0012 GETIDX R8 R3 R8
- 0x60240015, // 0013 GETGBL R9 G21
- 0x7C240000, // 0014 CALL R9 0
- 0x8C24130C, // 0015 GETMET R9 R9 K12
- 0x882C010D, // 0016 GETMBR R11 R0 K13
- 0x5431FFFD, // 0017 LDINT R12 -2
- 0x7C240600, // 0018 CALL R9 3
- 0x542A0004, // 0019 LDINT R10 5
- 0x542E000E, // 001A LDINT R11 15
- 0x4028140B, // 001B CONNECT R10 R10 R11
- 0x9428100A, // 001C GETIDX R10 R8 R10
- 0x0024120A, // 001D ADD R9 R9 R10
- 0x542A0003, // 001E LDINT R10 4
- 0x882C0103, // 001F GETMBR R11 R0 K3
- 0x042C170E, // 0020 SUB R11 R11 K14
- 0x4028140B, // 0021 CONNECT R10 R10 R11
- 0x882C0102, // 0022 GETMBR R11 R0 K2
- 0x9428160A, // 0023 GETIDX R10 R11 R10
- 0x8C30030F, // 0024 GETMET R12 R1 K15
- 0x5C380E00, // 0025 MOVE R14 R7
- 0x7C300400, // 0026 CALL R12 2
- 0x8C301910, // 0027 GETMET R12 R12 K16
- 0x5C381400, // 0028 MOVE R14 R10
- 0x5C3C1200, // 0029 MOVE R15 R9
- 0x58400009, // 002A LDCONST R16 K9
- 0x7C300800, // 002B CALL R12 4
- 0x5C2C1800, // 002C MOVE R11 R12
- 0x40322312, // 002D CONNECT R12 K17 K18
- 0x88340102, // 002E GETMBR R13 R0 K2
- 0x94301A0C, // 002F GETIDX R12 R13 R12
- 0x0030180B, // 0030 ADD R12 R12 R11
- 0x88340103, // 0031 GETMBR R13 R0 K3
- 0x40341B0B, // 0032 CONNECT R13 R13 K11
- 0x9434140D, // 0033 GETIDX R13 R10 R13
- 0x0030180D, // 0034 ADD R12 R12 R13
- 0x9002040C, // 0035 SETMBR R0 K2 R12
- 0x881C0113, // 0036 GETMBR R7 R0 K19
- 0x881C0F14, // 0037 GETMBR R7 R7 K20
- 0x8C200F15, // 0038 GETMET R8 R7 K21
- 0x7C200200, // 0039 CALL R8 1
- 0x8C200F0C, // 003A GETMET R8 R7 K12
- 0x88280116, // 003B GETMBR R10 R0 K22
- 0x582C000E, // 003C LDCONST R11 K14
- 0x7C200600, // 003D CALL R8 3
- 0x8C200F0C, // 003E GETMET R8 R7 K12
- 0x88280117, // 003F GETMBR R10 R0 K23
- 0x542E0003, // 0040 LDINT R11 4
- 0x7C200600, // 0041 CALL R8 3
- 0x88200118, // 0042 GETMBR R8 R0 K24
- 0x78220002, // 0043 JMPF R8 #0047
- 0x88200118, // 0044 GETMBR R8 R0 K24
- 0x40200E08, // 0045 CONNECT R8 R7 R8
- 0x70020006, // 0046 JMP #004E
- 0x88200519, // 0047 GETMBR R8 R2 K25
- 0x78220001, // 0048 JMPF R8 #004B
- 0x88200519, // 0049 GETMBR R8 R2 K25
- 0x40200E08, // 004A CONNECT R8 R7 R8
- 0x8C200F1A, // 004B GETMET R8 R7 K26
- 0x542A000C, // 004C LDINT R10 13
- 0x7C200400, // 004D CALL R8 2
- 0x8820031B, // 004E GETMBR R8 R1 K27
- 0x8C20111C, // 004F GETMET R8 R8 K28
- 0x5C280C00, // 0050 MOVE R10 R6
- 0x5C2C0E00, // 0051 MOVE R11 R7
- 0x58300011, // 0052 LDCONST R12 K17
- 0x6034000C, // 0053 GETGBL R13 G12
- 0x5C380E00, // 0054 MOVE R14 R7
- 0x7C340200, // 0055 CALL R13 1
- 0x5C380600, // 0056 MOVE R14 R3
- 0x583C0011, // 0057 LDCONST R15 K17
- 0x5C400800, // 0058 MOVE R16 R4
- 0x5C440600, // 0059 MOVE R17 R3
- 0x5C480800, // 005A MOVE R18 R4
- 0x604C000C, // 005B GETGBL R19 G12
- 0x5C500600, // 005C MOVE R20 R3
- 0x7C4C0200, // 005D CALL R19 1
- 0x044C2604, // 005E SUB R19 R19 R4
- 0x044C2605, // 005F SUB R19 R19 R5
- 0x5C500600, // 0060 MOVE R20 R3
- 0x6054000C, // 0061 GETGBL R21 G12
- 0x5C580600, // 0062 MOVE R22 R3
- 0x7C540200, // 0063 CALL R21 1
- 0x04542A05, // 0064 SUB R21 R21 R5
- 0x5C580A00, // 0065 MOVE R22 R5
- 0x7C201C00, // 0066 CALL R8 14
- 0x78220006, // 0067 JMPF R8 #006F
- 0x8C24071A, // 0068 GETMET R9 R3 K26
- 0x602C000C, // 0069 GETGBL R11 G12
- 0x5C300600, // 006A MOVE R12 R3
- 0x7C2C0200, // 006B CALL R11 1
- 0x042C1605, // 006C SUB R11 R11 R5
- 0x7C240400, // 006D CALL R9 2
- 0x70020004, // 006E JMP #0074
- 0xB8260C00, // 006F GETNGBL R9 K6
- 0x8C241307, // 0070 GETMET R9 R9 K7
- 0x582C001D, // 0071 LDCONST R11 K29
- 0x58300012, // 0072 LDCONST R12 K18
- 0x7C240600, // 0073 CALL R9 3
- 0x80041000, // 0074 RET 1 R8
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x8C1C0509, // 000D GETMET R7 R2 K9
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x5421FFEF, // 000F LDINT R8 -16
+ 0x4020110A, // 0010 CONNECT R8 R8 K10
+ 0x94200608, // 0011 GETIDX R8 R3 R8
+ 0x60240015, // 0012 GETGBL R9 G21
+ 0x7C240000, // 0013 CALL R9 0
+ 0x8C24130B, // 0014 GETMET R9 R9 K11
+ 0x882C010C, // 0015 GETMBR R11 R0 K12
+ 0x5431FFFD, // 0016 LDINT R12 -2
+ 0x7C240600, // 0017 CALL R9 3
+ 0x542A0004, // 0018 LDINT R10 5
+ 0x542E000E, // 0019 LDINT R11 15
+ 0x4028140B, // 001A CONNECT R10 R10 R11
+ 0x9428100A, // 001B GETIDX R10 R8 R10
+ 0x0024120A, // 001C ADD R9 R9 R10
+ 0x542A0003, // 001D LDINT R10 4
+ 0x882C0103, // 001E GETMBR R11 R0 K3
+ 0x042C170D, // 001F SUB R11 R11 K13
+ 0x4028140B, // 0020 CONNECT R10 R10 R11
+ 0x882C0102, // 0021 GETMBR R11 R0 K2
+ 0x9428160A, // 0022 GETIDX R10 R11 R10
+ 0x8C30030E, // 0023 GETMET R12 R1 K14
+ 0x5C380E00, // 0024 MOVE R14 R7
+ 0x7C300400, // 0025 CALL R12 2
+ 0x8C30190F, // 0026 GETMET R12 R12 K15
+ 0x5C381400, // 0027 MOVE R14 R10
+ 0x5C3C1200, // 0028 MOVE R15 R9
+ 0x58400008, // 0029 LDCONST R16 K8
+ 0x7C300800, // 002A CALL R12 4
+ 0x5C2C1800, // 002B MOVE R11 R12
+ 0x40322111, // 002C CONNECT R12 K16 K17
+ 0x88340102, // 002D GETMBR R13 R0 K2
+ 0x94301A0C, // 002E GETIDX R12 R13 R12
+ 0x0030180B, // 002F ADD R12 R12 R11
+ 0x88340103, // 0030 GETMBR R13 R0 K3
+ 0x40341B0A, // 0031 CONNECT R13 R13 K10
+ 0x9434140D, // 0032 GETIDX R13 R10 R13
+ 0x0030180D, // 0033 ADD R12 R12 R13
+ 0x9002040C, // 0034 SETMBR R0 K2 R12
+ 0x881C0112, // 0035 GETMBR R7 R0 K18
+ 0x881C0F13, // 0036 GETMBR R7 R7 K19
+ 0x8C200F14, // 0037 GETMET R8 R7 K20
+ 0x7C200200, // 0038 CALL R8 1
+ 0x8C200F0B, // 0039 GETMET R8 R7 K11
+ 0x88280115, // 003A GETMBR R10 R0 K21
+ 0x582C000D, // 003B LDCONST R11 K13
+ 0x7C200600, // 003C CALL R8 3
+ 0x8C200F0B, // 003D GETMET R8 R7 K11
+ 0x88280116, // 003E GETMBR R10 R0 K22
+ 0x542E0003, // 003F LDINT R11 4
+ 0x7C200600, // 0040 CALL R8 3
+ 0x88200117, // 0041 GETMBR R8 R0 K23
+ 0x78220002, // 0042 JMPF R8 #0046
+ 0x88200117, // 0043 GETMBR R8 R0 K23
+ 0x40200E08, // 0044 CONNECT R8 R7 R8
+ 0x70020006, // 0045 JMP #004D
+ 0x88200518, // 0046 GETMBR R8 R2 K24
+ 0x78220001, // 0047 JMPF R8 #004A
+ 0x88200518, // 0048 GETMBR R8 R2 K24
+ 0x40200E08, // 0049 CONNECT R8 R7 R8
+ 0x8C200F19, // 004A GETMET R8 R7 K25
+ 0x542A000C, // 004B LDINT R10 13
+ 0x7C200400, // 004C CALL R8 2
+ 0x8820031A, // 004D GETMBR R8 R1 K26
+ 0x8C20111B, // 004E GETMET R8 R8 K27
+ 0x5C280C00, // 004F MOVE R10 R6
+ 0x5C2C0E00, // 0050 MOVE R11 R7
+ 0x58300010, // 0051 LDCONST R12 K16
+ 0x6034000C, // 0052 GETGBL R13 G12
+ 0x5C380E00, // 0053 MOVE R14 R7
+ 0x7C340200, // 0054 CALL R13 1
+ 0x5C380600, // 0055 MOVE R14 R3
+ 0x583C0010, // 0056 LDCONST R15 K16
+ 0x5C400800, // 0057 MOVE R16 R4
+ 0x5C440600, // 0058 MOVE R17 R3
+ 0x5C480800, // 0059 MOVE R18 R4
+ 0x604C000C, // 005A GETGBL R19 G12
+ 0x5C500600, // 005B MOVE R20 R3
+ 0x7C4C0200, // 005C CALL R19 1
+ 0x044C2604, // 005D SUB R19 R19 R4
+ 0x044C2605, // 005E SUB R19 R19 R5
+ 0x5C500600, // 005F MOVE R20 R3
+ 0x6054000C, // 0060 GETGBL R21 G12
+ 0x5C580600, // 0061 MOVE R22 R3
+ 0x7C540200, // 0062 CALL R21 1
+ 0x04542A05, // 0063 SUB R21 R21 R5
+ 0x5C580A00, // 0064 MOVE R22 R5
+ 0x7C201C00, // 0065 CALL R8 14
+ 0x78220006, // 0066 JMPF R8 #006E
+ 0x8C240719, // 0067 GETMET R9 R3 K25
+ 0x602C000C, // 0068 GETGBL R11 G12
+ 0x5C300600, // 0069 MOVE R12 R3
+ 0x7C2C0200, // 006A CALL R11 1
+ 0x042C1605, // 006B SUB R11 R11 R5
+ 0x7C240400, // 006C CALL R9 2
+ 0x70020003, // 006D JMP #0072
+ 0xB8260C00, // 006E GETNGBL R9 K6
+ 0x5828001C, // 006F LDCONST R10 K28
+ 0x582C0011, // 0070 LDCONST R11 K17
+ 0x7C240400, // 0071 CALL R9 2
+ 0x80041000, // 0072 RET 1 R8
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
index cbec77d91..6eb6dc0e8 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
@@ -67,7 +67,7 @@ be_local_closure(class_Matter_MessageHandler_init, /* name */
extern const bclass be_class_Matter_MessageHandler;
be_local_closure(class_Matter_MessageHandler_send_encrypted_ack, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -94,9 +94,9 @@ be_local_closure(class_Matter_MessageHandler_send_encrypted_ack, /* name */
}),
be_str_weak(send_encrypted_ack),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
+ ( &(const binstruction[32]) { /* code */
0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x780E001D, // 0001 JMPF R3 #0020
+ 0x780E001C, // 0001 JMPF R3 #001F
0x8C0C0301, // 0002 GETMET R3 R1 K1
0x5C140400, // 0003 MOVE R5 R2
0x7C0C0400, // 0004 CALL R3 2
@@ -108,26 +108,25 @@ be_local_closure(class_Matter_MessageHandler_send_encrypted_ack, /* name */
0x8C100905, // 000A GETMET R4 R4 K5
0x541A0003, // 000B LDINT R6 4
0x7C100400, // 000C CALL R4 2
- 0x7812000E, // 000D JMPF R4 #001D
- 0xB8120800, // 000E GETNGBL R4 K4
- 0x8C100906, // 000F GETMET R4 R4 K6
- 0x60180018, // 0010 GETGBL R6 G24
- 0x581C0007, // 0011 LDCONST R7 K7
- 0x88200708, // 0012 GETMBR R8 R3 K8
- 0x88201109, // 0013 GETMBR R8 R8 K9
- 0x8824070A, // 0014 GETMBR R9 R3 K10
- 0x8828070B, // 0015 GETMBR R10 R3 K11
- 0x780A0001, // 0016 JMPF R2 #0019
- 0x582C000C, // 0017 LDCONST R11 K12
- 0x70020000, // 0018 JMP #001A
- 0x582C000D, // 0019 LDCONST R11 K13
- 0x7C180A00, // 001A CALL R6 5
- 0x541E0003, // 001B LDINT R7 4
- 0x7C100600, // 001C CALL R4 3
- 0x8C10010E, // 001D GETMET R4 R0 K14
- 0x5C180600, // 001E MOVE R6 R3
- 0x7C100400, // 001F CALL R4 2
- 0x80000000, // 0020 RET 0
+ 0x7812000D, // 000D JMPF R4 #001C
+ 0xB8120C00, // 000E GETNGBL R4 K6
+ 0x60140018, // 000F GETGBL R5 G24
+ 0x58180007, // 0010 LDCONST R6 K7
+ 0x881C0708, // 0011 GETMBR R7 R3 K8
+ 0x881C0F09, // 0012 GETMBR R7 R7 K9
+ 0x8820070A, // 0013 GETMBR R8 R3 K10
+ 0x8824070B, // 0014 GETMBR R9 R3 K11
+ 0x780A0001, // 0015 JMPF R2 #0018
+ 0x5828000C, // 0016 LDCONST R10 K12
+ 0x70020000, // 0017 JMP #0019
+ 0x5828000D, // 0018 LDCONST R10 K13
+ 0x7C140A00, // 0019 CALL R5 5
+ 0x541A0003, // 001A LDINT R6 4
+ 0x7C100400, // 001B CALL R4 2
+ 0x8C10010E, // 001C GETMET R4 R0 K14
+ 0x5C180600, // 001D MOVE R6 R3
+ 0x7C100400, // 001E CALL R4 2
+ 0x80000000, // 001F RET 0
})
)
);
@@ -140,7 +139,7 @@ be_local_closure(class_Matter_MessageHandler_send_encrypted_ack, /* name */
extern const bclass be_class_Matter_MessageHandler;
be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
be_nested_proto(
- 19, /* nstack */
+ 18, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
@@ -222,14 +221,14 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
}),
be_str_weak(msg_received),
&be_const_str_solidified,
- ( &(const binstruction[365]) { /* code */
+ ( &(const binstruction[356]) { /* code */
0x50100000, // 0000 LDBOOL R4 0 0
0xB8160000, // 0001 GETNGBL R5 K0
0x88140B01, // 0002 GETMBR R5 R5 K1
0x8C140B02, // 0003 GETMET R5 R5 K2
0x581C0003, // 0004 LDCONST R7 K3
0x7C140400, // 0005 CALL R5 2
- 0xA802014B, // 0006 EXBLK 0 #0153
+ 0xA8020143, // 0006 EXBLK 0 #014B
0xB8160000, // 0007 GETNGBL R5 K0
0x8C140B04, // 0008 GETMET R5 R5 K4
0x5C1C0000, // 0009 MOVE R7 R0
@@ -258,13 +257,13 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0x7C200400, // 0020 CALL R8 2
0xA8040001, // 0021 EXBLK 1 1
0x80041000, // 0022 RET 1 R8
- 0x7002012A, // 0023 JMP #014F
+ 0x70020122, // 0023 JMP #0147
0x881C0B0D, // 0024 GETMBR R7 R5 K13
0x1C1C0F0E, // 0025 EQ R7 R7 K14
- 0x781E007F, // 0026 JMPF R7 #00A7
+ 0x781E007C, // 0026 JMPF R7 #00A4
0x881C0B0F, // 0027 GETMBR R7 R5 K15
0x1C1C0F0E, // 0028 EQ R7 R7 K14
- 0x781E007C, // 0029 JMPF R7 #00A7
+ 0x781E0079, // 0029 JMPF R7 #00A4
0x881C0107, // 002A GETMBR R7 R0 K7
0x881C0F08, // 002B GETMBR R7 R7 K8
0x8C1C0F09, // 002C GETMET R7 R7 K9
@@ -282,312 +281,303 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0x88280B16, // 0038 GETMBR R10 R5 K22
0x502C0000, // 0039 LDBOOL R11 0 0
0x7C200600, // 003A CALL R8 3
- 0x74220016, // 003B JMPT R8 #0053
+ 0x74220015, // 003B JMPT R8 #0052
0xB8222E00, // 003C GETNGBL R8 K23
0x8C201118, // 003D GETMET R8 R8 K24
0x542A0003, // 003E LDINT R10 4
0x7C200400, // 003F CALL R8 2
- 0x7822000A, // 0040 JMPF R8 #004C
- 0xB8222E00, // 0041 GETNGBL R8 K23
- 0x8C201102, // 0042 GETMET R8 R8 K2
- 0x60280018, // 0043 GETGBL R10 G24
- 0x582C0019, // 0044 LDCONST R11 K25
- 0x88300B16, // 0045 GETMBR R12 R5 K22
- 0x88340F14, // 0046 GETMBR R13 R7 K20
- 0x8C341B1A, // 0047 GETMET R13 R13 K26
- 0x7C340200, // 0048 CALL R13 1
- 0x7C280600, // 0049 CALL R10 3
- 0x542E0003, // 004A LDINT R11 4
- 0x7C200600, // 004B CALL R8 3
- 0x8C20011B, // 004C GETMET R8 R0 K27
- 0x5C280A00, // 004D MOVE R10 R5
- 0x502C0000, // 004E LDBOOL R11 0 0
- 0x7C200600, // 004F CALL R8 3
- 0x50200000, // 0050 LDBOOL R8 0 0
- 0xA8040001, // 0051 EXBLK 1 1
- 0x80041000, // 0052 RET 1 R8
- 0x8C200B1C, // 0053 GETMET R8 R5 K28
- 0x7C200200, // 0054 CALL R8 1
- 0x74220002, // 0055 JMPT R8 #0059
- 0x50200000, // 0056 LDBOOL R8 0 0
- 0xA8040001, // 0057 EXBLK 1 1
- 0x80041000, // 0058 RET 1 R8
- 0x88200107, // 0059 GETMBR R8 R0 K7
- 0x8C20111D, // 005A GETMET R8 R8 K29
- 0x5C280A00, // 005B MOVE R10 R5
- 0x7C200400, // 005C CALL R8 2
- 0x88200B1E, // 005D GETMBR R8 R5 K30
- 0x5426000F, // 005E LDINT R9 16
- 0x20201009, // 005F NE R8 R8 R9
- 0x7822001D, // 0060 JMPF R8 #007F
- 0xB8220000, // 0061 GETNGBL R8 K0
- 0x8C20111F, // 0062 GETMET R8 R8 K31
- 0x88280B1E, // 0063 GETMBR R10 R5 K30
- 0x7C200400, // 0064 CALL R8 2
- 0x5C241000, // 0065 MOVE R9 R8
- 0x74260004, // 0066 JMPT R9 #006C
- 0x60240018, // 0067 GETGBL R9 G24
- 0x58280020, // 0068 LDCONST R10 K32
- 0x882C0B1E, // 0069 GETMBR R11 R5 K30
- 0x7C240400, // 006A CALL R9 2
- 0x5C201200, // 006B MOVE R8 R9
- 0xB8262E00, // 006C GETNGBL R9 K23
- 0x8C241318, // 006D GETMET R9 R9 K24
- 0x582C0021, // 006E LDCONST R11 K33
- 0x7C240400, // 006F CALL R9 2
- 0x7826000C, // 0070 JMPF R9 #007E
- 0xB8262E00, // 0071 GETNGBL R9 K23
- 0x8C241302, // 0072 GETMET R9 R9 K2
- 0x602C0018, // 0073 GETGBL R11 G24
- 0x58300022, // 0074 LDCONST R12 K34
- 0x88340F0D, // 0075 GETMBR R13 R7 K13
- 0x5C381000, // 0076 MOVE R14 R8
- 0x883C0B16, // 0077 GETMBR R15 R5 K22
- 0x88400B23, // 0078 GETMBR R16 R5 K35
- 0x5C440400, // 0079 MOVE R17 R2
- 0x5C480600, // 007A MOVE R18 R3
- 0x7C2C0E00, // 007B CALL R11 7
- 0x58300021, // 007C LDCONST R12 K33
- 0x7C240600, // 007D CALL R9 3
- 0x70020018, // 007E JMP #0098
- 0xB8222E00, // 007F GETNGBL R8 K23
- 0x8C201118, // 0080 GETMET R8 R8 K24
- 0x542A0003, // 0081 LDINT R10 4
- 0x7C200400, // 0082 CALL R8 2
- 0x78220013, // 0083 JMPF R8 #0098
- 0xB8222E00, // 0084 GETNGBL R8 K23
- 0x8C201102, // 0085 GETMET R8 R8 K2
- 0x60280018, // 0086 GETGBL R10 G24
- 0x582C0024, // 0087 LDCONST R11 K36
- 0x88300F0D, // 0088 GETMBR R12 R7 K13
- 0x88340B16, // 0089 GETMBR R13 R5 K22
- 0x88380B25, // 008A GETMBR R14 R5 K37
- 0x783A0001, // 008B JMPF R14 #008E
- 0x58380026, // 008C LDCONST R14 K38
- 0x70020000, // 008D JMP #008F
- 0x58380027, // 008E LDCONST R14 K39
- 0x883C0B23, // 008F GETMBR R15 R5 K35
- 0x60400008, // 0090 GETGBL R16 G8
- 0x88440B28, // 0091 GETMBR R17 R5 K40
- 0x7C400200, // 0092 CALL R16 1
- 0x5C440400, // 0093 MOVE R17 R2
- 0x5C480600, // 0094 MOVE R18 R3
- 0x7C281000, // 0095 CALL R10 8
- 0x542E0003, // 0096 LDINT R11 4
- 0x7C200600, // 0097 CALL R8 3
- 0x88200129, // 0098 GETMBR R8 R0 K41
- 0x8C20112A, // 0099 GETMET R8 R8 K42
- 0x5C280A00, // 009A MOVE R10 R5
- 0x7C200400, // 009B CALL R8 2
- 0x5C101000, // 009C MOVE R4 R8
- 0x5C200800, // 009D MOVE R8 R4
- 0x74220003, // 009E JMPT R8 #00A3
- 0x8C20011B, // 009F GETMET R8 R0 K27
- 0x5C280A00, // 00A0 MOVE R10 R5
- 0x502C0000, // 00A1 LDBOOL R11 0 0
- 0x7C200600, // 00A2 CALL R8 3
- 0x50200200, // 00A3 LDBOOL R8 1 0
- 0xA8040001, // 00A4 EXBLK 1 1
- 0x80041000, // 00A5 RET 1 R8
- 0x700200A7, // 00A6 JMP #014F
- 0xB81E2E00, // 00A7 GETNGBL R7 K23
- 0x8C1C0F18, // 00A8 GETMET R7 R7 K24
- 0x54260003, // 00A9 LDINT R9 4
- 0x7C1C0400, // 00AA CALL R7 2
- 0x781E0008, // 00AB JMPF R7 #00B5
- 0xB81E2E00, // 00AC GETNGBL R7 K23
- 0x8C1C0F02, // 00AD GETMET R7 R7 K2
- 0x60240018, // 00AE GETGBL R9 G24
- 0x5828002B, // 00AF LDCONST R10 K43
- 0x882C0B0D, // 00B0 GETMBR R11 R5 K13
- 0x88300B16, // 00B1 GETMBR R12 R5 K22
- 0x7C240600, // 00B2 CALL R9 3
- 0x542A0003, // 00B3 LDINT R10 4
- 0x7C1C0600, // 00B4 CALL R7 3
- 0x881C0107, // 00B5 GETMBR R7 R0 K7
- 0x881C0F08, // 00B6 GETMBR R7 R7 K8
- 0x8C1C0F2C, // 00B7 GETMET R7 R7 K44
- 0x88240B0D, // 00B8 GETMBR R9 R5 K13
- 0x7C1C0400, // 00B9 CALL R7 2
- 0x4C200000, // 00BA LDNIL R8
- 0x1C200E08, // 00BB EQ R8 R7 R8
- 0x7822000A, // 00BC JMPF R8 #00C8
- 0xB8222E00, // 00BD GETNGBL R8 K23
- 0x8C201102, // 00BE GETMET R8 R8 K2
- 0x60280008, // 00BF GETGBL R10 G8
- 0x882C0B0D, // 00C0 GETMBR R11 R5 K13
- 0x7C280200, // 00C1 CALL R10 1
- 0x002A5A0A, // 00C2 ADD R10 K45 R10
- 0x582C0021, // 00C3 LDCONST R11 K33
- 0x7C200600, // 00C4 CALL R8 3
- 0x50200000, // 00C5 LDBOOL R8 0 0
- 0xA8040001, // 00C6 EXBLK 1 1
- 0x80041000, // 00C7 RET 1 R8
- 0x780A0000, // 00C8 JMPF R2 #00CA
- 0x901E2002, // 00C9 SETMBR R7 K16 R2
- 0x780E0000, // 00CA JMPF R3 #00CC
- 0x901E2203, // 00CB SETMBR R7 K17 R3
- 0x901E2400, // 00CC SETMBR R7 K18 R0
- 0x90162607, // 00CD SETMBR R5 K19 R7
- 0x8C200F2E, // 00CE GETMET R8 R7 K46
- 0x88280B16, // 00CF GETMBR R10 R5 K22
- 0x502C0200, // 00D0 LDBOOL R11 1 0
- 0x7C200600, // 00D1 CALL R8 3
- 0x74220018, // 00D2 JMPT R8 #00EC
- 0xB8222E00, // 00D3 GETNGBL R8 K23
- 0x8C201118, // 00D4 GETMET R8 R8 K24
- 0x58280021, // 00D5 LDCONST R10 K33
- 0x7C200400, // 00D6 CALL R8 2
- 0x7822000C, // 00D7 JMPF R8 #00E5
- 0xB8222E00, // 00D8 GETNGBL R8 K23
- 0x8C201102, // 00D9 GETMET R8 R8 K2
- 0x60280008, // 00DA GETGBL R10 G8
- 0x882C0B16, // 00DB GETMBR R11 R5 K22
- 0x7C280200, // 00DC CALL R10 1
- 0x002A5E0A, // 00DD ADD R10 K47 R10
- 0x00281530, // 00DE ADD R10 R10 K48
- 0x602C0008, // 00DF GETGBL R11 G8
- 0x88300F31, // 00E0 GETMBR R12 R7 K49
- 0x7C2C0200, // 00E1 CALL R11 1
- 0x0028140B, // 00E2 ADD R10 R10 R11
- 0x582C0021, // 00E3 LDCONST R11 K33
- 0x7C200600, // 00E4 CALL R8 3
- 0x8C200132, // 00E5 GETMET R8 R0 K50
- 0x5C280A00, // 00E6 MOVE R10 R5
- 0x502C0000, // 00E7 LDBOOL R11 0 0
- 0x7C200600, // 00E8 CALL R8 3
- 0x50200000, // 00E9 LDBOOL R8 0 0
- 0xA8040001, // 00EA EXBLK 1 1
- 0x80041000, // 00EB RET 1 R8
- 0x8C200B33, // 00EC GETMET R8 R5 K51
- 0x7C200200, // 00ED CALL R8 1
- 0xB8260000, // 00EE GETNGBL R9 K0
- 0x88241301, // 00EF GETMBR R9 R9 K1
- 0x8C241302, // 00F0 GETMET R9 R9 K2
- 0x582C0034, // 00F1 LDCONST R11 K52
- 0x7C240400, // 00F2 CALL R9 2
- 0x5C241000, // 00F3 MOVE R9 R8
- 0x74260002, // 00F4 JMPT R9 #00F8
- 0x50240000, // 00F5 LDBOOL R9 0 0
- 0xA8040001, // 00F6 EXBLK 1 1
- 0x80041200, // 00F7 RET 1 R9
- 0x8C240B1C, // 00F8 GETMET R9 R5 K28
- 0x7C240200, // 00F9 CALL R9 1
- 0xB8262E00, // 00FA GETNGBL R9 K23
- 0x8C241318, // 00FB GETMET R9 R9 K24
- 0x542E0003, // 00FC LDINT R11 4
- 0x7C240400, // 00FD CALL R9 2
- 0x78260013, // 00FE JMPF R9 #0113
- 0xB8262E00, // 00FF GETNGBL R9 K23
- 0x8C241302, // 0100 GETMET R9 R9 K2
- 0x602C0008, // 0101 GETGBL R11 G8
- 0x88300B36, // 0102 GETMBR R12 R5 K54
- 0x7C2C0200, // 0103 CALL R11 1
- 0x002E6A0B, // 0104 ADD R11 K53 R11
- 0x002C1737, // 0105 ADD R11 R11 K55
- 0x60300008, // 0106 GETGBL R12 G8
- 0x88340B1E, // 0107 GETMBR R13 R5 K30
- 0x7C300200, // 0108 CALL R12 1
- 0x002C160C, // 0109 ADD R11 R11 R12
- 0x002C1738, // 010A ADD R11 R11 K56
- 0x60300008, // 010B GETGBL R12 G8
- 0x88340B23, // 010C GETMBR R13 R5 K35
- 0x543AFFFE, // 010D LDINT R14 65535
- 0x2C341A0E, // 010E AND R13 R13 R14
- 0x7C300200, // 010F CALL R12 1
- 0x002C160C, // 0110 ADD R11 R11 R12
- 0x54320003, // 0111 LDINT R12 4
- 0x7C240600, // 0112 CALL R9 3
- 0x88240107, // 0113 GETMBR R9 R0 K7
- 0x8C24131D, // 0114 GETMET R9 R9 K29
- 0x5C2C0A00, // 0115 MOVE R11 R5
- 0x7C240400, // 0116 CALL R9 2
- 0x88240B36, // 0117 GETMBR R9 R5 K54
- 0x1C28130E, // 0118 EQ R10 R9 K14
- 0x782A000F, // 0119 JMPF R10 #012A
- 0x88280B1E, // 011A GETMBR R10 R5 K30
- 0x542E000F, // 011B LDINT R11 16
- 0x1C28140B, // 011C EQ R10 R10 R11
- 0x782A0009, // 011D JMPF R10 #0128
- 0x88280139, // 011E GETMBR R10 R0 K57
- 0x8C28153A, // 011F GETMET R10 R10 K58
- 0x5C300A00, // 0120 MOVE R12 R5
- 0x7C280400, // 0121 CALL R10 2
- 0x5C101400, // 0122 MOVE R4 R10
- 0x78120003, // 0123 JMPF R4 #0128
- 0x88280139, // 0124 GETMBR R10 R0 K57
- 0x8C28153B, // 0125 GETMET R10 R10 K59
- 0x5C300000, // 0126 MOVE R12 R0
- 0x7C280400, // 0127 CALL R10 2
- 0x50100200, // 0128 LDBOOL R4 1 0
- 0x70020024, // 0129 JMP #014F
- 0x1C28133C, // 012A EQ R10 R9 K60
- 0x782A001A, // 012B JMPF R10 #0147
- 0xB82A0000, // 012C GETNGBL R10 K0
- 0x88281501, // 012D GETMBR R10 R10 K1
- 0x8C281502, // 012E GETMET R10 R10 K2
- 0x5830003D, // 012F LDCONST R12 K61
- 0x7C280400, // 0130 CALL R10 2
- 0x88280139, // 0131 GETMBR R10 R0 K57
- 0x8C28152A, // 0132 GETMET R10 R10 K42
- 0x5C300A00, // 0133 MOVE R12 R5
- 0x7C280400, // 0134 CALL R10 2
- 0x5C101400, // 0135 MOVE R4 R10
- 0xB82A0000, // 0136 GETNGBL R10 K0
- 0x88281501, // 0137 GETMBR R10 R10 K1
- 0x8C281502, // 0138 GETMET R10 R10 K2
- 0x5830003E, // 0139 LDCONST R12 K62
- 0x7C280400, // 013A CALL R10 2
- 0x78120004, // 013B JMPF R4 #0141
- 0x88280139, // 013C GETMBR R10 R0 K57
- 0x8C28153B, // 013D GETMET R10 R10 K59
- 0x5C300000, // 013E MOVE R12 R0
- 0x7C280400, // 013F CALL R10 2
- 0x70020003, // 0140 JMP #0145
- 0x8C280132, // 0141 GETMET R10 R0 K50
- 0x5C300A00, // 0142 MOVE R12 R5
- 0x50340200, // 0143 LDBOOL R13 1 0
- 0x7C280600, // 0144 CALL R10 3
- 0x50100200, // 0145 LDBOOL R4 1 0
- 0x70020007, // 0146 JMP #014F
- 0xB82A2E00, // 0147 GETNGBL R10 K23
- 0x8C281502, // 0148 GETMET R10 R10 K2
- 0x60300008, // 0149 GETGBL R12 G8
- 0x5C341200, // 014A MOVE R13 R9
- 0x7C300200, // 014B CALL R12 1
- 0x00327E0C, // 014C ADD R12 K63 R12
- 0x58340021, // 014D LDCONST R13 K33
- 0x7C280600, // 014E CALL R10 3
- 0xA8040001, // 014F EXBLK 1 1
- 0x80040800, // 0150 RET 1 R4
- 0xA8040001, // 0151 EXBLK 1 1
- 0x70020018, // 0152 JMP #016C
- 0xAC140002, // 0153 CATCH R5 0 2
- 0x70020015, // 0154 JMP #016B
- 0xB81E2E00, // 0155 GETNGBL R7 K23
- 0x8C1C0F02, // 0156 GETMET R7 R7 K2
- 0x60240008, // 0157 GETGBL R9 G8
- 0x5C280A00, // 0158 MOVE R10 R5
- 0x7C240200, // 0159 CALL R9 1
- 0x00268009, // 015A ADD R9 K64 R9
- 0x00241341, // 015B ADD R9 R9 K65
- 0x60280008, // 015C GETGBL R10 G8
- 0x5C2C0C00, // 015D MOVE R11 R6
- 0x7C280200, // 015E CALL R10 1
- 0x0024120A, // 015F ADD R9 R9 R10
- 0x58280042, // 0160 LDCONST R10 K66
- 0x7C1C0600, // 0161 CALL R7 3
- 0xB81E2E00, // 0162 GETNGBL R7 K23
- 0x881C0F43, // 0163 GETMBR R7 R7 K67
- 0x781E0002, // 0164 JMPF R7 #0168
- 0xA41E8800, // 0165 IMPORT R7 K68
- 0x8C200F45, // 0166 GETMET R8 R7 K69
- 0x7C200200, // 0167 CALL R8 1
- 0x501C0000, // 0168 LDBOOL R7 0 0
- 0x80040E00, // 0169 RET 1 R7
- 0x70020000, // 016A JMP #016C
- 0xB0080000, // 016B RAISE 2 R0 R0
- 0x80000000, // 016C RET 0
+ 0x78220009, // 0040 JMPF R8 #004B
+ 0xB8220400, // 0041 GETNGBL R8 K2
+ 0x60240018, // 0042 GETGBL R9 G24
+ 0x58280019, // 0043 LDCONST R10 K25
+ 0x882C0B16, // 0044 GETMBR R11 R5 K22
+ 0x88300F14, // 0045 GETMBR R12 R7 K20
+ 0x8C30191A, // 0046 GETMET R12 R12 K26
+ 0x7C300200, // 0047 CALL R12 1
+ 0x7C240600, // 0048 CALL R9 3
+ 0x542A0003, // 0049 LDINT R10 4
+ 0x7C200400, // 004A CALL R8 2
+ 0x8C20011B, // 004B GETMET R8 R0 K27
+ 0x5C280A00, // 004C MOVE R10 R5
+ 0x502C0000, // 004D LDBOOL R11 0 0
+ 0x7C200600, // 004E CALL R8 3
+ 0x50200000, // 004F LDBOOL R8 0 0
+ 0xA8040001, // 0050 EXBLK 1 1
+ 0x80041000, // 0051 RET 1 R8
+ 0x8C200B1C, // 0052 GETMET R8 R5 K28
+ 0x7C200200, // 0053 CALL R8 1
+ 0x74220002, // 0054 JMPT R8 #0058
+ 0x50200000, // 0055 LDBOOL R8 0 0
+ 0xA8040001, // 0056 EXBLK 1 1
+ 0x80041000, // 0057 RET 1 R8
+ 0x88200107, // 0058 GETMBR R8 R0 K7
+ 0x8C20111D, // 0059 GETMET R8 R8 K29
+ 0x5C280A00, // 005A MOVE R10 R5
+ 0x7C200400, // 005B CALL R8 2
+ 0x88200B1E, // 005C GETMBR R8 R5 K30
+ 0x5426000F, // 005D LDINT R9 16
+ 0x20201009, // 005E NE R8 R8 R9
+ 0x7822001C, // 005F JMPF R8 #007D
+ 0xB8220000, // 0060 GETNGBL R8 K0
+ 0x8C20111F, // 0061 GETMET R8 R8 K31
+ 0x88280B1E, // 0062 GETMBR R10 R5 K30
+ 0x7C200400, // 0063 CALL R8 2
+ 0x5C241000, // 0064 MOVE R9 R8
+ 0x74260004, // 0065 JMPT R9 #006B
+ 0x60240018, // 0066 GETGBL R9 G24
+ 0x58280020, // 0067 LDCONST R10 K32
+ 0x882C0B1E, // 0068 GETMBR R11 R5 K30
+ 0x7C240400, // 0069 CALL R9 2
+ 0x5C201200, // 006A MOVE R8 R9
+ 0xB8262E00, // 006B GETNGBL R9 K23
+ 0x8C241318, // 006C GETMET R9 R9 K24
+ 0x582C0021, // 006D LDCONST R11 K33
+ 0x7C240400, // 006E CALL R9 2
+ 0x7826000B, // 006F JMPF R9 #007C
+ 0xB8260400, // 0070 GETNGBL R9 K2
+ 0x60280018, // 0071 GETGBL R10 G24
+ 0x582C0022, // 0072 LDCONST R11 K34
+ 0x88300F0D, // 0073 GETMBR R12 R7 K13
+ 0x5C341000, // 0074 MOVE R13 R8
+ 0x88380B16, // 0075 GETMBR R14 R5 K22
+ 0x883C0B23, // 0076 GETMBR R15 R5 K35
+ 0x5C400400, // 0077 MOVE R16 R2
+ 0x5C440600, // 0078 MOVE R17 R3
+ 0x7C280E00, // 0079 CALL R10 7
+ 0x582C0021, // 007A LDCONST R11 K33
+ 0x7C240400, // 007B CALL R9 2
+ 0x70020017, // 007C JMP #0095
+ 0xB8222E00, // 007D GETNGBL R8 K23
+ 0x8C201118, // 007E GETMET R8 R8 K24
+ 0x542A0003, // 007F LDINT R10 4
+ 0x7C200400, // 0080 CALL R8 2
+ 0x78220012, // 0081 JMPF R8 #0095
+ 0xB8220400, // 0082 GETNGBL R8 K2
+ 0x60240018, // 0083 GETGBL R9 G24
+ 0x58280024, // 0084 LDCONST R10 K36
+ 0x882C0F0D, // 0085 GETMBR R11 R7 K13
+ 0x88300B16, // 0086 GETMBR R12 R5 K22
+ 0x88340B25, // 0087 GETMBR R13 R5 K37
+ 0x78360001, // 0088 JMPF R13 #008B
+ 0x58340026, // 0089 LDCONST R13 K38
+ 0x70020000, // 008A JMP #008C
+ 0x58340027, // 008B LDCONST R13 K39
+ 0x88380B23, // 008C GETMBR R14 R5 K35
+ 0x603C0008, // 008D GETGBL R15 G8
+ 0x88400B28, // 008E GETMBR R16 R5 K40
+ 0x7C3C0200, // 008F CALL R15 1
+ 0x5C400400, // 0090 MOVE R16 R2
+ 0x5C440600, // 0091 MOVE R17 R3
+ 0x7C241000, // 0092 CALL R9 8
+ 0x542A0003, // 0093 LDINT R10 4
+ 0x7C200400, // 0094 CALL R8 2
+ 0x88200129, // 0095 GETMBR R8 R0 K41
+ 0x8C20112A, // 0096 GETMET R8 R8 K42
+ 0x5C280A00, // 0097 MOVE R10 R5
+ 0x7C200400, // 0098 CALL R8 2
+ 0x5C101000, // 0099 MOVE R4 R8
+ 0x5C200800, // 009A MOVE R8 R4
+ 0x74220003, // 009B JMPT R8 #00A0
+ 0x8C20011B, // 009C GETMET R8 R0 K27
+ 0x5C280A00, // 009D MOVE R10 R5
+ 0x502C0000, // 009E LDBOOL R11 0 0
+ 0x7C200600, // 009F CALL R8 3
+ 0x50200200, // 00A0 LDBOOL R8 1 0
+ 0xA8040001, // 00A1 EXBLK 1 1
+ 0x80041000, // 00A2 RET 1 R8
+ 0x700200A2, // 00A3 JMP #0147
+ 0xB81E2E00, // 00A4 GETNGBL R7 K23
+ 0x8C1C0F18, // 00A5 GETMET R7 R7 K24
+ 0x54260003, // 00A6 LDINT R9 4
+ 0x7C1C0400, // 00A7 CALL R7 2
+ 0x781E0007, // 00A8 JMPF R7 #00B1
+ 0xB81E0400, // 00A9 GETNGBL R7 K2
+ 0x60200018, // 00AA GETGBL R8 G24
+ 0x5824002B, // 00AB LDCONST R9 K43
+ 0x88280B0D, // 00AC GETMBR R10 R5 K13
+ 0x882C0B16, // 00AD GETMBR R11 R5 K22
+ 0x7C200600, // 00AE CALL R8 3
+ 0x54260003, // 00AF LDINT R9 4
+ 0x7C1C0400, // 00B0 CALL R7 2
+ 0x881C0107, // 00B1 GETMBR R7 R0 K7
+ 0x881C0F08, // 00B2 GETMBR R7 R7 K8
+ 0x8C1C0F2C, // 00B3 GETMET R7 R7 K44
+ 0x88240B0D, // 00B4 GETMBR R9 R5 K13
+ 0x7C1C0400, // 00B5 CALL R7 2
+ 0x4C200000, // 00B6 LDNIL R8
+ 0x1C200E08, // 00B7 EQ R8 R7 R8
+ 0x78220009, // 00B8 JMPF R8 #00C3
+ 0xB8220400, // 00B9 GETNGBL R8 K2
+ 0x60240008, // 00BA GETGBL R9 G8
+ 0x88280B0D, // 00BB GETMBR R10 R5 K13
+ 0x7C240200, // 00BC CALL R9 1
+ 0x00265A09, // 00BD ADD R9 K45 R9
+ 0x58280021, // 00BE LDCONST R10 K33
+ 0x7C200400, // 00BF CALL R8 2
+ 0x50200000, // 00C0 LDBOOL R8 0 0
+ 0xA8040001, // 00C1 EXBLK 1 1
+ 0x80041000, // 00C2 RET 1 R8
+ 0x780A0000, // 00C3 JMPF R2 #00C5
+ 0x901E2002, // 00C4 SETMBR R7 K16 R2
+ 0x780E0000, // 00C5 JMPF R3 #00C7
+ 0x901E2203, // 00C6 SETMBR R7 K17 R3
+ 0x901E2400, // 00C7 SETMBR R7 K18 R0
+ 0x90162607, // 00C8 SETMBR R5 K19 R7
+ 0x8C200F2E, // 00C9 GETMET R8 R7 K46
+ 0x88280B16, // 00CA GETMBR R10 R5 K22
+ 0x502C0200, // 00CB LDBOOL R11 1 0
+ 0x7C200600, // 00CC CALL R8 3
+ 0x74220017, // 00CD JMPT R8 #00E6
+ 0xB8222E00, // 00CE GETNGBL R8 K23
+ 0x8C201118, // 00CF GETMET R8 R8 K24
+ 0x58280021, // 00D0 LDCONST R10 K33
+ 0x7C200400, // 00D1 CALL R8 2
+ 0x7822000B, // 00D2 JMPF R8 #00DF
+ 0xB8220400, // 00D3 GETNGBL R8 K2
+ 0x60240008, // 00D4 GETGBL R9 G8
+ 0x88280B16, // 00D5 GETMBR R10 R5 K22
+ 0x7C240200, // 00D6 CALL R9 1
+ 0x00265E09, // 00D7 ADD R9 K47 R9
+ 0x00241330, // 00D8 ADD R9 R9 K48
+ 0x60280008, // 00D9 GETGBL R10 G8
+ 0x882C0F31, // 00DA GETMBR R11 R7 K49
+ 0x7C280200, // 00DB CALL R10 1
+ 0x0024120A, // 00DC ADD R9 R9 R10
+ 0x58280021, // 00DD LDCONST R10 K33
+ 0x7C200400, // 00DE CALL R8 2
+ 0x8C200132, // 00DF GETMET R8 R0 K50
+ 0x5C280A00, // 00E0 MOVE R10 R5
+ 0x502C0000, // 00E1 LDBOOL R11 0 0
+ 0x7C200600, // 00E2 CALL R8 3
+ 0x50200000, // 00E3 LDBOOL R8 0 0
+ 0xA8040001, // 00E4 EXBLK 1 1
+ 0x80041000, // 00E5 RET 1 R8
+ 0x8C200B33, // 00E6 GETMET R8 R5 K51
+ 0x7C200200, // 00E7 CALL R8 1
+ 0xB8260000, // 00E8 GETNGBL R9 K0
+ 0x88241301, // 00E9 GETMBR R9 R9 K1
+ 0x8C241302, // 00EA GETMET R9 R9 K2
+ 0x582C0034, // 00EB LDCONST R11 K52
+ 0x7C240400, // 00EC CALL R9 2
+ 0x5C241000, // 00ED MOVE R9 R8
+ 0x74260002, // 00EE JMPT R9 #00F2
+ 0x50240000, // 00EF LDBOOL R9 0 0
+ 0xA8040001, // 00F0 EXBLK 1 1
+ 0x80041200, // 00F1 RET 1 R9
+ 0x8C240B1C, // 00F2 GETMET R9 R5 K28
+ 0x7C240200, // 00F3 CALL R9 1
+ 0xB8262E00, // 00F4 GETNGBL R9 K23
+ 0x8C241318, // 00F5 GETMET R9 R9 K24
+ 0x542E0003, // 00F6 LDINT R11 4
+ 0x7C240400, // 00F7 CALL R9 2
+ 0x78260012, // 00F8 JMPF R9 #010C
+ 0xB8260400, // 00F9 GETNGBL R9 K2
+ 0x60280008, // 00FA GETGBL R10 G8
+ 0x882C0B36, // 00FB GETMBR R11 R5 K54
+ 0x7C280200, // 00FC CALL R10 1
+ 0x002A6A0A, // 00FD ADD R10 K53 R10
+ 0x00281537, // 00FE ADD R10 R10 K55
+ 0x602C0008, // 00FF GETGBL R11 G8
+ 0x88300B1E, // 0100 GETMBR R12 R5 K30
+ 0x7C2C0200, // 0101 CALL R11 1
+ 0x0028140B, // 0102 ADD R10 R10 R11
+ 0x00281538, // 0103 ADD R10 R10 K56
+ 0x602C0008, // 0104 GETGBL R11 G8
+ 0x88300B23, // 0105 GETMBR R12 R5 K35
+ 0x5436FFFE, // 0106 LDINT R13 65535
+ 0x2C30180D, // 0107 AND R12 R12 R13
+ 0x7C2C0200, // 0108 CALL R11 1
+ 0x0028140B, // 0109 ADD R10 R10 R11
+ 0x542E0003, // 010A LDINT R11 4
+ 0x7C240400, // 010B CALL R9 2
+ 0x88240107, // 010C GETMBR R9 R0 K7
+ 0x8C24131D, // 010D GETMET R9 R9 K29
+ 0x5C2C0A00, // 010E MOVE R11 R5
+ 0x7C240400, // 010F CALL R9 2
+ 0x88240B36, // 0110 GETMBR R9 R5 K54
+ 0x1C28130E, // 0111 EQ R10 R9 K14
+ 0x782A000F, // 0112 JMPF R10 #0123
+ 0x88280B1E, // 0113 GETMBR R10 R5 K30
+ 0x542E000F, // 0114 LDINT R11 16
+ 0x1C28140B, // 0115 EQ R10 R10 R11
+ 0x782A0009, // 0116 JMPF R10 #0121
+ 0x88280139, // 0117 GETMBR R10 R0 K57
+ 0x8C28153A, // 0118 GETMET R10 R10 K58
+ 0x5C300A00, // 0119 MOVE R12 R5
+ 0x7C280400, // 011A CALL R10 2
+ 0x5C101400, // 011B MOVE R4 R10
+ 0x78120003, // 011C JMPF R4 #0121
+ 0x88280139, // 011D GETMBR R10 R0 K57
+ 0x8C28153B, // 011E GETMET R10 R10 K59
+ 0x5C300000, // 011F MOVE R12 R0
+ 0x7C280400, // 0120 CALL R10 2
+ 0x50100200, // 0121 LDBOOL R4 1 0
+ 0x70020023, // 0122 JMP #0147
+ 0x1C28133C, // 0123 EQ R10 R9 K60
+ 0x782A001A, // 0124 JMPF R10 #0140
+ 0xB82A0000, // 0125 GETNGBL R10 K0
+ 0x88281501, // 0126 GETMBR R10 R10 K1
+ 0x8C281502, // 0127 GETMET R10 R10 K2
+ 0x5830003D, // 0128 LDCONST R12 K61
+ 0x7C280400, // 0129 CALL R10 2
+ 0x88280139, // 012A GETMBR R10 R0 K57
+ 0x8C28152A, // 012B GETMET R10 R10 K42
+ 0x5C300A00, // 012C MOVE R12 R5
+ 0x7C280400, // 012D CALL R10 2
+ 0x5C101400, // 012E MOVE R4 R10
+ 0xB82A0000, // 012F GETNGBL R10 K0
+ 0x88281501, // 0130 GETMBR R10 R10 K1
+ 0x8C281502, // 0131 GETMET R10 R10 K2
+ 0x5830003E, // 0132 LDCONST R12 K62
+ 0x7C280400, // 0133 CALL R10 2
+ 0x78120004, // 0134 JMPF R4 #013A
+ 0x88280139, // 0135 GETMBR R10 R0 K57
+ 0x8C28153B, // 0136 GETMET R10 R10 K59
+ 0x5C300000, // 0137 MOVE R12 R0
+ 0x7C280400, // 0138 CALL R10 2
+ 0x70020003, // 0139 JMP #013E
+ 0x8C280132, // 013A GETMET R10 R0 K50
+ 0x5C300A00, // 013B MOVE R12 R5
+ 0x50340200, // 013C LDBOOL R13 1 0
+ 0x7C280600, // 013D CALL R10 3
+ 0x50100200, // 013E LDBOOL R4 1 0
+ 0x70020006, // 013F JMP #0147
+ 0xB82A0400, // 0140 GETNGBL R10 K2
+ 0x602C0008, // 0141 GETGBL R11 G8
+ 0x5C301200, // 0142 MOVE R12 R9
+ 0x7C2C0200, // 0143 CALL R11 1
+ 0x002E7E0B, // 0144 ADD R11 K63 R11
+ 0x58300021, // 0145 LDCONST R12 K33
+ 0x7C280400, // 0146 CALL R10 2
+ 0xA8040001, // 0147 EXBLK 1 1
+ 0x80040800, // 0148 RET 1 R4
+ 0xA8040001, // 0149 EXBLK 1 1
+ 0x70020017, // 014A JMP #0163
+ 0xAC140002, // 014B CATCH R5 0 2
+ 0x70020014, // 014C JMP #0162
+ 0xB81E0400, // 014D GETNGBL R7 K2
+ 0x60200008, // 014E GETGBL R8 G8
+ 0x5C240A00, // 014F MOVE R9 R5
+ 0x7C200200, // 0150 CALL R8 1
+ 0x00228008, // 0151 ADD R8 K64 R8
+ 0x00201141, // 0152 ADD R8 R8 K65
+ 0x60240008, // 0153 GETGBL R9 G8
+ 0x5C280C00, // 0154 MOVE R10 R6
+ 0x7C240200, // 0155 CALL R9 1
+ 0x00201009, // 0156 ADD R8 R8 R9
+ 0x58240042, // 0157 LDCONST R9 K66
+ 0x7C1C0400, // 0158 CALL R7 2
+ 0xB81E2E00, // 0159 GETNGBL R7 K23
+ 0x881C0F43, // 015A GETMBR R7 R7 K67
+ 0x781E0002, // 015B JMPF R7 #015F
+ 0xA41E8800, // 015C IMPORT R7 K68
+ 0x8C200F45, // 015D GETMET R8 R7 K69
+ 0x7C200200, // 015E CALL R8 1
+ 0x501C0000, // 015F LDBOOL R7 0 0
+ 0x80040E00, // 0160 RET 1 R7
+ 0x70020000, // 0161 JMP #0163
+ 0xB0080000, // 0162 RAISE 2 R0 R0
+ 0x80000000, // 0163 RET 0
})
)
);
@@ -641,7 +631,7 @@ be_local_closure(class_Matter_MessageHandler_send_response_frame, /* name */
extern const bclass be_class_Matter_MessageHandler;
be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -667,9 +657,9 @@ be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
}),
be_str_weak(send_simple_ack),
&be_const_str_solidified,
- ( &(const binstruction[31]) { /* code */
+ ( &(const binstruction[30]) { /* code */
0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x780E001B, // 0001 JMPF R3 #001E
+ 0x780E001A, // 0001 JMPF R3 #001D
0x8C0C0301, // 0002 GETMET R3 R1 K1
0x5C140400, // 0003 MOVE R5 R2
0x7C0C0400, // 0004 CALL R3 2
@@ -679,26 +669,25 @@ be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
0x8C100904, // 0008 GETMET R4 R4 K4
0x541A0003, // 0009 LDINT R6 4
0x7C100400, // 000A CALL R4 2
- 0x7812000E, // 000B JMPF R4 #001B
- 0xB8120600, // 000C GETNGBL R4 K3
- 0x8C100905, // 000D GETMET R4 R4 K5
- 0x60180018, // 000E GETGBL R6 G24
- 0x581C0006, // 000F LDCONST R7 K6
- 0x88200707, // 0010 GETMBR R8 R3 K7
- 0x88201108, // 0011 GETMBR R8 R8 K8
- 0x88240709, // 0012 GETMBR R9 R3 K9
- 0x8828070A, // 0013 GETMBR R10 R3 K10
- 0x780A0001, // 0014 JMPF R2 #0017
- 0x582C000B, // 0015 LDCONST R11 K11
- 0x70020000, // 0016 JMP #0018
- 0x582C000C, // 0017 LDCONST R11 K12
- 0x7C180A00, // 0018 CALL R6 5
- 0x541E0003, // 0019 LDINT R7 4
- 0x7C100600, // 001A CALL R4 3
- 0x8C10010D, // 001B GETMET R4 R0 K13
- 0x5C180600, // 001C MOVE R6 R3
- 0x7C100400, // 001D CALL R4 2
- 0x80000000, // 001E RET 0
+ 0x7812000D, // 000B JMPF R4 #001A
+ 0xB8120A00, // 000C GETNGBL R4 K5
+ 0x60140018, // 000D GETGBL R5 G24
+ 0x58180006, // 000E LDCONST R6 K6
+ 0x881C0707, // 000F GETMBR R7 R3 K7
+ 0x881C0F08, // 0010 GETMBR R7 R7 K8
+ 0x88200709, // 0011 GETMBR R8 R3 K9
+ 0x8824070A, // 0012 GETMBR R9 R3 K10
+ 0x780A0001, // 0013 JMPF R2 #0016
+ 0x5828000B, // 0014 LDCONST R10 K11
+ 0x70020000, // 0015 JMP #0017
+ 0x5828000C, // 0016 LDCONST R10 K12
+ 0x7C140A00, // 0017 CALL R5 5
+ 0x541A0003, // 0018 LDINT R6 4
+ 0x7C100400, // 0019 CALL R4 2
+ 0x8C10010D, // 001A GETMET R4 R0 K13
+ 0x5C180600, // 001B MOVE R6 R3
+ 0x7C100400, // 001C CALL R4 2
+ 0x80000000, // 001D RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
index 7c40c1080..fcba237f4 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Device.h
@@ -575,7 +575,7 @@ be_local_closure(class_Matter_Plugin_Device_update_shadow, /* name */
extern const bclass be_class_Matter_Plugin_Device;
be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -583,7 +583,7 @@ be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Device,
1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
+ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(BRIDGE),
/* K1 */ be_nested_str_weak(json),
/* K2 */ be_const_int(2),
@@ -595,16 +595,15 @@ be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
/* K8 */ be_nested_str_weak(device_is_alive),
/* K9 */ be_nested_str_weak(load),
/* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(tasmota),
- /* K12 */ be_nested_str_weak(log),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying),
- /* K14 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying),
+ /* K13 */ be_const_int(3),
}),
be_str_weak(call_remote_sync),
&be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
+ ( &(const binstruction[44]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x780E0029, // 0001 JMPF R3 #002C
+ 0x780E0028, // 0001 JMPF R3 #002B
0xA40E0200, // 0002 IMPORT R3 K1
0x58100002, // 0003 LDCONST R4 K2
0x4C140000, // 0004 LDNIL R5
@@ -617,7 +616,7 @@ be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
0x00140A06, // 000B ADD R5 R5 R6
0x5C040A00, // 000C MOVE R1 R5
0x24140904, // 000D GT R5 R4 K4
- 0x78160016, // 000E JMPF R5 #0026
+ 0x78160015, // 000E JMPF R5 #0025
0x88140105, // 000F GETMBR R5 R0 K5
0x8C140B06, // 0010 GETMET R5 R5 K6
0x5C1C0200, // 0011 MOVE R7 R1
@@ -636,18 +635,17 @@ be_local_closure(class_Matter_Plugin_Device_call_remote_sync, /* name */
0x80040C00, // 001E RET 1 R6
0x0410090A, // 001F SUB R4 R4 K10
0xB81A1600, // 0020 GETNGBL R6 K11
- 0x8C180D0C, // 0021 GETMET R6 R6 K12
+ 0x581C000C, // 0021 LDCONST R7 K12
0x5820000D, // 0022 LDCONST R8 K13
- 0x5824000E, // 0023 LDCONST R9 K14
- 0x7C180600, // 0024 CALL R6 3
- 0x7001FFE6, // 0025 JMP #000D
- 0x88140105, // 0026 GETMBR R5 R0 K5
- 0x8C140B08, // 0027 GETMET R5 R5 K8
- 0x501C0000, // 0028 LDBOOL R7 0 0
- 0x7C140400, // 0029 CALL R5 2
- 0x4C140000, // 002A LDNIL R5
- 0x80040A00, // 002B RET 1 R5
- 0x80000000, // 002C RET 0
+ 0x7C180400, // 0023 CALL R6 2
+ 0x7001FFE7, // 0024 JMP #000D
+ 0x88140105, // 0025 GETMBR R5 R0 K5
+ 0x8C140B08, // 0026 GETMET R5 R5 K8
+ 0x501C0000, // 0027 LDBOOL R7 0 0
+ 0x7C140400, // 0028 CALL R5 2
+ 0x4C140000, // 0029 LDNIL R5
+ 0x80040A00, // 002A RET 1 R5
+ 0x80000000, // 002B RET 0
})
)
);
@@ -759,7 +757,7 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Device,
1, /* has constants */
- ( &(const bvalue[43]) { /* constants */
+ ( &(const bvalue[44]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
@@ -786,27 +784,28 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
/* K23 */ be_nested_str_weak(http_remote),
/* K24 */ be_nested_str_weak(get_info),
/* K25 */ be_nested_str_weak(name),
- /* K26 */ be_nested_str_weak(UTF1),
- /* K27 */ be_nested_str_weak(NULL),
+ /* K26 */ be_nested_str_weak(set_or_nil),
+ /* K27 */ be_nested_str_weak(UTF1),
/* K28 */ be_nested_str_weak(tasmota),
/* K29 */ be_nested_str_weak(cmd),
/* K30 */ be_nested_str_weak(DeviceName),
/* K31 */ be_nested_str_weak(get_name),
/* K32 */ be_nested_str_weak(version),
/* K33 */ be_nested_str_weak(_X28),
- /* K34 */ be_nested_str_weak(Status_X202),
- /* K35 */ be_nested_str_weak(StatusFWR),
- /* K36 */ be_nested_str_weak(Version),
- /* K37 */ be_nested_str_weak(mac),
- /* K38 */ be_nested_str_weak(wifi),
- /* K39 */ be_nested_str_weak(),
- /* K40 */ be_nested_str_weak(BOOL),
- /* K41 */ be_nested_str_weak(reachable),
- /* K42 */ be_nested_str_weak(read_attribute),
+ /* K34 */ be_nested_str_weak(NULL),
+ /* K35 */ be_nested_str_weak(Status_X202),
+ /* K36 */ be_nested_str_weak(StatusFWR),
+ /* K37 */ be_nested_str_weak(Version),
+ /* K38 */ be_nested_str_weak(mac),
+ /* K39 */ be_nested_str_weak(wifi),
+ /* K40 */ be_nested_str_weak(),
+ /* K41 */ be_nested_str_weak(BOOL),
+ /* K42 */ be_nested_str_weak(reachable),
+ /* K43 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[258]) { /* code */
+ ( &(const binstruction[244]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
@@ -828,7 +827,7 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x58280005, // 0012 LDCONST R10 K5
0x7C1C0600, // 0013 CALL R7 3
0x80040E00, // 0014 RET 1 R7
- 0x700200E2, // 0015 JMP #00F9
+ 0x700200D4, // 0015 JMP #00EB
0x541E0003, // 0016 LDINT R7 4
0x1C1C0A07, // 0017 EQ R7 R5 R7
0x781E0004, // 0018 JMPF R7 #001E
@@ -836,11 +835,11 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x781E0001, // 001A JMPF R7 #001D
0x4C1C0000, // 001B LDNIL R7
0x80040E00, // 001C RET 1 R7
- 0x700200DA, // 001D JMP #00F9
+ 0x700200CC, // 001D JMP #00EB
0x541E0004, // 001E LDINT R7 5
0x1C1C0A07, // 001F EQ R7 R5 R7
0x781E0000, // 0020 JMPF R7 #0022
- 0x700200D6, // 0021 JMP #00F9
+ 0x700200C8, // 0021 JMP #00EB
0x541E001C, // 0022 LDINT R7 29
0x1C1C0A07, // 0023 EQ R7 R5 R7
0x781E0034, // 0024 JMPF R7 #005A
@@ -896,175 +895,161 @@ be_local_closure(class_Matter_Plugin_Device_read_attribute, /* name */
0x58380008, // 0056 LDCONST R14 K8
0x7C280800, // 0057 CALL R10 4
0x80040E00, // 0058 RET 1 R7
- 0x7002009E, // 0059 JMP #00F9
+ 0x70020090, // 0059 JMP #00EB
0x541E0038, // 005A LDINT R7 57
0x1C1C0A07, // 005B EQ R7 R5 R7
- 0x781E009B, // 005C JMPF R7 #00F9
+ 0x781E008D, // 005C JMPF R7 #00EB
0xA41E2A00, // 005D IMPORT R7 K21
0x1C200D04, // 005E EQ R8 R6 K4
- 0x7822001F, // 005F JMPF R8 #0080
+ 0x78220018, // 005F JMPF R8 #0079
0x88200116, // 0060 GETMBR R8 R0 K22
- 0x78220012, // 0061 JMPF R8 #0075
+ 0x7822000B, // 0061 JMPF R8 #006E
0x88200117, // 0062 GETMBR R8 R0 K23
0x8C201118, // 0063 GETMET R8 R8 K24
0x7C200200, // 0064 CALL R8 1
0x8C201111, // 0065 GETMET R8 R8 K17
0x58280019, // 0066 LDCONST R10 K25
0x7C200400, // 0067 CALL R8 2
- 0x78220005, // 0068 JMPF R8 #006F
- 0x8C240706, // 0069 GETMET R9 R3 K6
- 0x882C091A, // 006A GETMBR R11 R4 K26
- 0x5C301000, // 006B MOVE R12 R8
- 0x7C240600, // 006C CALL R9 3
- 0x80041200, // 006D RET 1 R9
- 0x70020004, // 006E JMP #0074
- 0x8C240706, // 006F GETMET R9 R3 K6
- 0x882C091B, // 0070 GETMBR R11 R4 K27
- 0x4C300000, // 0071 LDNIL R12
- 0x7C240600, // 0072 CALL R9 3
- 0x80041200, // 0073 RET 1 R9
- 0x70020009, // 0074 JMP #007F
- 0x8C200706, // 0075 GETMET R8 R3 K6
- 0x8828091A, // 0076 GETMBR R10 R4 K26
- 0xB82E3800, // 0077 GETNGBL R11 K28
- 0x8C2C171D, // 0078 GETMET R11 R11 K29
- 0x5834001E, // 0079 LDCONST R13 K30
- 0x50380200, // 007A LDBOOL R14 1 0
- 0x7C2C0600, // 007B CALL R11 3
- 0x942C171E, // 007C GETIDX R11 R11 K30
- 0x7C200600, // 007D CALL R8 3
- 0x80041000, // 007E RET 1 R8
- 0x70020078, // 007F JMP #00F9
- 0x54220004, // 0080 LDINT R8 5
- 0x1C200C08, // 0081 EQ R8 R6 R8
- 0x78220006, // 0082 JMPF R8 #008A
- 0x8C200706, // 0083 GETMET R8 R3 K6
- 0x8828091A, // 0084 GETMBR R10 R4 K26
- 0x8C2C011F, // 0085 GETMET R11 R0 K31
- 0x7C2C0200, // 0086 CALL R11 1
- 0x7C200600, // 0087 CALL R8 3
- 0x80041000, // 0088 RET 1 R8
- 0x7002006E, // 0089 JMP #00F9
- 0x54220009, // 008A LDINT R8 10
- 0x1C200C08, // 008B EQ R8 R6 R8
- 0x78220033, // 008C JMPF R8 #00C1
- 0x88200116, // 008D GETMBR R8 R0 K22
- 0x7822001B, // 008E JMPF R8 #00AB
- 0x88200117, // 008F GETMBR R8 R0 K23
- 0x8C201118, // 0090 GETMET R8 R8 K24
- 0x7C200200, // 0091 CALL R8 1
- 0x8C201111, // 0092 GETMET R8 R8 K17
- 0x58280020, // 0093 LDCONST R10 K32
- 0x7C200400, // 0094 CALL R8 2
- 0x7822000E, // 0095 JMPF R8 #00A5
- 0x8C240F11, // 0096 GETMET R9 R7 K17
- 0x5C2C1000, // 0097 MOVE R11 R8
- 0x58300021, // 0098 LDCONST R12 K33
- 0x7C240600, // 0099 CALL R9 3
- 0x24281305, // 009A GT R10 R9 K5
- 0x782A0002, // 009B JMPF R10 #009F
- 0x04281308, // 009C SUB R10 R9 K8
- 0x402A0A0A, // 009D CONNECT R10 K5 R10
- 0x9420100A, // 009E GETIDX R8 R8 R10
- 0x8C280706, // 009F GETMET R10 R3 K6
- 0x8830091A, // 00A0 GETMBR R12 R4 K26
- 0x5C341000, // 00A1 MOVE R13 R8
- 0x7C280600, // 00A2 CALL R10 3
- 0x80041400, // 00A3 RET 1 R10
- 0x70020004, // 00A4 JMP #00AA
- 0x8C240706, // 00A5 GETMET R9 R3 K6
- 0x882C091B, // 00A6 GETMBR R11 R4 K27
- 0x4C300000, // 00A7 LDNIL R12
- 0x7C240600, // 00A8 CALL R9 3
- 0x80041200, // 00A9 RET 1 R9
- 0x70020014, // 00AA JMP #00C0
- 0xB8223800, // 00AB GETNGBL R8 K28
- 0x8C20111D, // 00AC GETMET R8 R8 K29
- 0x58280022, // 00AD LDCONST R10 K34
- 0x502C0200, // 00AE LDBOOL R11 1 0
- 0x7C200600, // 00AF CALL R8 3
- 0x94201123, // 00B0 GETIDX R8 R8 K35
- 0x94201124, // 00B1 GETIDX R8 R8 K36
- 0x8C240F11, // 00B2 GETMET R9 R7 K17
- 0x5C2C1000, // 00B3 MOVE R11 R8
- 0x58300021, // 00B4 LDCONST R12 K33
- 0x7C240600, // 00B5 CALL R9 3
- 0x24281305, // 00B6 GT R10 R9 K5
- 0x782A0002, // 00B7 JMPF R10 #00BB
- 0x04281308, // 00B8 SUB R10 R9 K8
- 0x402A0A0A, // 00B9 CONNECT R10 K5 R10
- 0x9420100A, // 00BA GETIDX R8 R8 R10
- 0x8C280706, // 00BB GETMET R10 R3 K6
- 0x8830091A, // 00BC GETMBR R12 R4 K26
- 0x5C341000, // 00BD MOVE R13 R8
- 0x7C280600, // 00BE CALL R10 3
- 0x80041400, // 00BF RET 1 R10
- 0x70020037, // 00C0 JMP #00F9
- 0x5422000E, // 00C1 LDINT R8 15
- 0x1C200C08, // 00C2 EQ R8 R6 R8
- 0x74220002, // 00C3 JMPT R8 #00C7
- 0x54220011, // 00C4 LDINT R8 18
- 0x1C200C08, // 00C5 EQ R8 R6 R8
- 0x78220020, // 00C6 JMPF R8 #00E8
- 0x88200116, // 00C7 GETMBR R8 R0 K22
- 0x78220012, // 00C8 JMPF R8 #00DC
- 0x88200117, // 00C9 GETMBR R8 R0 K23
- 0x8C201118, // 00CA GETMET R8 R8 K24
- 0x7C200200, // 00CB CALL R8 1
- 0x8C201111, // 00CC GETMET R8 R8 K17
- 0x58280025, // 00CD LDCONST R10 K37
- 0x7C200400, // 00CE CALL R8 2
- 0x78220005, // 00CF JMPF R8 #00D6
- 0x8C240706, // 00D0 GETMET R9 R3 K6
- 0x882C091A, // 00D1 GETMBR R11 R4 K26
- 0x5C301000, // 00D2 MOVE R12 R8
- 0x7C240600, // 00D3 CALL R9 3
- 0x80041200, // 00D4 RET 1 R9
- 0x70020004, // 00D5 JMP #00DB
- 0x8C240706, // 00D6 GETMET R9 R3 K6
- 0x882C091B, // 00D7 GETMBR R11 R4 K27
- 0x4C300000, // 00D8 LDNIL R12
- 0x7C240600, // 00D9 CALL R9 3
- 0x80041200, // 00DA RET 1 R9
- 0x7002000A, // 00DB JMP #00E7
- 0x8C200706, // 00DC GETMET R8 R3 K6
- 0x8828091A, // 00DD GETMBR R10 R4 K26
- 0xB82E3800, // 00DE GETNGBL R11 K28
- 0x8C2C1726, // 00DF GETMET R11 R11 K38
- 0x7C2C0200, // 00E0 CALL R11 1
- 0x8C2C1711, // 00E1 GETMET R11 R11 K17
- 0x58340025, // 00E2 LDCONST R13 K37
- 0x58380027, // 00E3 LDCONST R14 K39
- 0x7C2C0600, // 00E4 CALL R11 3
- 0x7C200600, // 00E5 CALL R8 3
- 0x80041000, // 00E6 RET 1 R8
- 0x70020010, // 00E7 JMP #00F9
- 0x54220010, // 00E8 LDINT R8 17
- 0x1C200C08, // 00E9 EQ R8 R6 R8
- 0x7822000D, // 00EA JMPF R8 #00F9
- 0x88200116, // 00EB GETMBR R8 R0 K22
- 0x78220006, // 00EC JMPF R8 #00F4
- 0x8C200706, // 00ED GETMET R8 R3 K6
- 0x88280928, // 00EE GETMBR R10 R4 K40
- 0x882C0117, // 00EF GETMBR R11 R0 K23
- 0x882C1729, // 00F0 GETMBR R11 R11 K41
- 0x7C200600, // 00F1 CALL R8 3
- 0x80041000, // 00F2 RET 1 R8
- 0x70020004, // 00F3 JMP #00F9
- 0x8C200706, // 00F4 GETMET R8 R3 K6
- 0x88280928, // 00F5 GETMBR R10 R4 K40
- 0x582C0008, // 00F6 LDCONST R11 K8
- 0x7C200600, // 00F7 CALL R8 3
- 0x80041000, // 00F8 RET 1 R8
- 0x601C0003, // 00F9 GETGBL R7 G3
- 0x5C200000, // 00FA MOVE R8 R0
- 0x7C1C0200, // 00FB CALL R7 1
- 0x8C1C0F2A, // 00FC GETMET R7 R7 K42
- 0x5C240200, // 00FD MOVE R9 R1
- 0x5C280400, // 00FE MOVE R10 R2
- 0x5C2C0600, // 00FF MOVE R11 R3
- 0x7C1C0800, // 0100 CALL R7 4
- 0x80040E00, // 0101 RET 1 R7
+ 0x8C24071A, // 0068 GETMET R9 R3 K26
+ 0x882C091B, // 0069 GETMBR R11 R4 K27
+ 0x5C301000, // 006A MOVE R12 R8
+ 0x7C240600, // 006B CALL R9 3
+ 0x80041200, // 006C RET 1 R9
+ 0x70020009, // 006D JMP #0078
+ 0x8C200706, // 006E GETMET R8 R3 K6
+ 0x8828091B, // 006F GETMBR R10 R4 K27
+ 0xB82E3800, // 0070 GETNGBL R11 K28
+ 0x8C2C171D, // 0071 GETMET R11 R11 K29
+ 0x5834001E, // 0072 LDCONST R13 K30
+ 0x50380200, // 0073 LDBOOL R14 1 0
+ 0x7C2C0600, // 0074 CALL R11 3
+ 0x942C171E, // 0075 GETIDX R11 R11 K30
+ 0x7C200600, // 0076 CALL R8 3
+ 0x80041000, // 0077 RET 1 R8
+ 0x70020071, // 0078 JMP #00EB
+ 0x54220004, // 0079 LDINT R8 5
+ 0x1C200C08, // 007A EQ R8 R6 R8
+ 0x78220006, // 007B JMPF R8 #0083
+ 0x8C200706, // 007C GETMET R8 R3 K6
+ 0x8828091B, // 007D GETMBR R10 R4 K27
+ 0x8C2C011F, // 007E GETMET R11 R0 K31
+ 0x7C2C0200, // 007F CALL R11 1
+ 0x7C200600, // 0080 CALL R8 3
+ 0x80041000, // 0081 RET 1 R8
+ 0x70020067, // 0082 JMP #00EB
+ 0x54220009, // 0083 LDINT R8 10
+ 0x1C200C08, // 0084 EQ R8 R6 R8
+ 0x78220033, // 0085 JMPF R8 #00BA
+ 0x88200116, // 0086 GETMBR R8 R0 K22
+ 0x7822001B, // 0087 JMPF R8 #00A4
+ 0x88200117, // 0088 GETMBR R8 R0 K23
+ 0x8C201118, // 0089 GETMET R8 R8 K24
+ 0x7C200200, // 008A CALL R8 1
+ 0x8C201111, // 008B GETMET R8 R8 K17
+ 0x58280020, // 008C LDCONST R10 K32
+ 0x7C200400, // 008D CALL R8 2
+ 0x7822000E, // 008E JMPF R8 #009E
+ 0x8C240F11, // 008F GETMET R9 R7 K17
+ 0x5C2C1000, // 0090 MOVE R11 R8
+ 0x58300021, // 0091 LDCONST R12 K33
+ 0x7C240600, // 0092 CALL R9 3
+ 0x24281305, // 0093 GT R10 R9 K5
+ 0x782A0002, // 0094 JMPF R10 #0098
+ 0x04281308, // 0095 SUB R10 R9 K8
+ 0x402A0A0A, // 0096 CONNECT R10 K5 R10
+ 0x9420100A, // 0097 GETIDX R8 R8 R10
+ 0x8C280706, // 0098 GETMET R10 R3 K6
+ 0x8830091B, // 0099 GETMBR R12 R4 K27
+ 0x5C341000, // 009A MOVE R13 R8
+ 0x7C280600, // 009B CALL R10 3
+ 0x80041400, // 009C RET 1 R10
+ 0x70020004, // 009D JMP #00A3
+ 0x8C240706, // 009E GETMET R9 R3 K6
+ 0x882C0922, // 009F GETMBR R11 R4 K34
+ 0x4C300000, // 00A0 LDNIL R12
+ 0x7C240600, // 00A1 CALL R9 3
+ 0x80041200, // 00A2 RET 1 R9
+ 0x70020014, // 00A3 JMP #00B9
+ 0xB8223800, // 00A4 GETNGBL R8 K28
+ 0x8C20111D, // 00A5 GETMET R8 R8 K29
+ 0x58280023, // 00A6 LDCONST R10 K35
+ 0x502C0200, // 00A7 LDBOOL R11 1 0
+ 0x7C200600, // 00A8 CALL R8 3
+ 0x94201124, // 00A9 GETIDX R8 R8 K36
+ 0x94201125, // 00AA GETIDX R8 R8 K37
+ 0x8C240F11, // 00AB GETMET R9 R7 K17
+ 0x5C2C1000, // 00AC MOVE R11 R8
+ 0x58300021, // 00AD LDCONST R12 K33
+ 0x7C240600, // 00AE CALL R9 3
+ 0x24281305, // 00AF GT R10 R9 K5
+ 0x782A0002, // 00B0 JMPF R10 #00B4
+ 0x04281308, // 00B1 SUB R10 R9 K8
+ 0x402A0A0A, // 00B2 CONNECT R10 K5 R10
+ 0x9420100A, // 00B3 GETIDX R8 R8 R10
+ 0x8C280706, // 00B4 GETMET R10 R3 K6
+ 0x8830091B, // 00B5 GETMBR R12 R4 K27
+ 0x5C341000, // 00B6 MOVE R13 R8
+ 0x7C280600, // 00B7 CALL R10 3
+ 0x80041400, // 00B8 RET 1 R10
+ 0x70020030, // 00B9 JMP #00EB
+ 0x5422000E, // 00BA LDINT R8 15
+ 0x1C200C08, // 00BB EQ R8 R6 R8
+ 0x74220002, // 00BC JMPT R8 #00C0
+ 0x54220011, // 00BD LDINT R8 18
+ 0x1C200C08, // 00BE EQ R8 R6 R8
+ 0x78220019, // 00BF JMPF R8 #00DA
+ 0x88200116, // 00C0 GETMBR R8 R0 K22
+ 0x7822000B, // 00C1 JMPF R8 #00CE
+ 0x88200117, // 00C2 GETMBR R8 R0 K23
+ 0x8C201118, // 00C3 GETMET R8 R8 K24
+ 0x7C200200, // 00C4 CALL R8 1
+ 0x8C201111, // 00C5 GETMET R8 R8 K17
+ 0x58280026, // 00C6 LDCONST R10 K38
+ 0x7C200400, // 00C7 CALL R8 2
+ 0x8C24071A, // 00C8 GETMET R9 R3 K26
+ 0x882C091B, // 00C9 GETMBR R11 R4 K27
+ 0x5C301000, // 00CA MOVE R12 R8
+ 0x7C240600, // 00CB CALL R9 3
+ 0x80041200, // 00CC RET 1 R9
+ 0x7002000A, // 00CD JMP #00D9
+ 0x8C200706, // 00CE GETMET R8 R3 K6
+ 0x8828091B, // 00CF GETMBR R10 R4 K27
+ 0xB82E3800, // 00D0 GETNGBL R11 K28
+ 0x8C2C1727, // 00D1 GETMET R11 R11 K39
+ 0x7C2C0200, // 00D2 CALL R11 1
+ 0x8C2C1711, // 00D3 GETMET R11 R11 K17
+ 0x58340026, // 00D4 LDCONST R13 K38
+ 0x58380028, // 00D5 LDCONST R14 K40
+ 0x7C2C0600, // 00D6 CALL R11 3
+ 0x7C200600, // 00D7 CALL R8 3
+ 0x80041000, // 00D8 RET 1 R8
+ 0x70020010, // 00D9 JMP #00EB
+ 0x54220010, // 00DA LDINT R8 17
+ 0x1C200C08, // 00DB EQ R8 R6 R8
+ 0x7822000D, // 00DC JMPF R8 #00EB
+ 0x88200116, // 00DD GETMBR R8 R0 K22
+ 0x78220006, // 00DE JMPF R8 #00E6
+ 0x8C200706, // 00DF GETMET R8 R3 K6
+ 0x88280929, // 00E0 GETMBR R10 R4 K41
+ 0x882C0117, // 00E1 GETMBR R11 R0 K23
+ 0x882C172A, // 00E2 GETMBR R11 R11 K42
+ 0x7C200600, // 00E3 CALL R8 3
+ 0x80041000, // 00E4 RET 1 R8
+ 0x70020004, // 00E5 JMP #00EB
+ 0x8C200706, // 00E6 GETMET R8 R3 K6
+ 0x88280929, // 00E7 GETMBR R10 R4 K41
+ 0x582C0008, // 00E8 LDCONST R11 K8
+ 0x7C200600, // 00E9 CALL R8 3
+ 0x80041000, // 00EA RET 1 R8
+ 0x601C0003, // 00EB GETGBL R7 G3
+ 0x5C200000, // 00EC MOVE R8 R0
+ 0x7C1C0200, // 00ED CALL R7 1
+ 0x8C1C0F2B, // 00EE GETMET R7 R7 K43
+ 0x5C240200, // 00EF MOVE R9 R1
+ 0x5C280400, // 00F0 MOVE R10 R2
+ 0x5C2C0600, // 00F1 MOVE R11 R3
+ 0x7C1C0800, // 00F2 CALL R7 4
+ 0x80040E00, // 00F3 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
index 98b17f5ea..aebdbd01e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
@@ -20,7 +20,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Root,
1, /* has constants */
- ( &(const bvalue[94]) { /* constants */
+ ( &(const bvalue[95]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV),
@@ -98,27 +98,28 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
/* K74 */ be_nested_str_weak(is_commissioning_open),
/* K75 */ be_nested_str_weak(is_root_commissioning_open),
/* K76 */ be_nested_str_weak(commissioning_admin_fabric),
- /* K77 */ be_nested_str_weak(Tasmota),
- /* K78 */ be_nested_str_weak(vendorid),
- /* K79 */ be_nested_str_weak(DeviceName),
- /* K80 */ be_nested_str_weak(FriendlyName),
- /* K81 */ be_nested_str_weak(FriendlyName1),
- /* K82 */ be_nested_str_weak(XX),
- /* K83 */ be_nested_str_weak(Status_X202),
- /* K84 */ be_nested_str_weak(StatusFWR),
- /* K85 */ be_nested_str_weak(Hardware),
- /* K86 */ be_nested_str_weak(Version),
- /* K87 */ be_nested_str_weak(_X28),
- /* K88 */ be_nested_str_weak(locale),
- /* K89 */ be_nested_str_weak(create_TLV),
- /* K90 */ be_nested_str_weak(get_active_endpoints),
- /* K91 */ be_nested_str_weak(disable_bridge_mode),
- /* K92 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K93 */ be_nested_str_weak(read_attribute),
+ /* K77 */ be_nested_str_weak(set_or_nil),
+ /* K78 */ be_nested_str_weak(Tasmota),
+ /* K79 */ be_nested_str_weak(vendorid),
+ /* K80 */ be_nested_str_weak(DeviceName),
+ /* K81 */ be_nested_str_weak(FriendlyName),
+ /* K82 */ be_nested_str_weak(FriendlyName1),
+ /* K83 */ be_nested_str_weak(XX),
+ /* K84 */ be_nested_str_weak(Status_X202),
+ /* K85 */ be_nested_str_weak(StatusFWR),
+ /* K86 */ be_nested_str_weak(Hardware),
+ /* K87 */ be_nested_str_weak(Version),
+ /* K88 */ be_nested_str_weak(_X28),
+ /* K89 */ be_nested_str_weak(locale),
+ /* K90 */ be_nested_str_weak(create_TLV),
+ /* K91 */ be_nested_str_weak(get_active_endpoints),
+ /* K92 */ be_nested_str_weak(disable_bridge_mode),
+ /* K93 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K94 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[936]) { /* code */
+ ( &(const binstruction[924]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0xB8160200, // 0001 GETNGBL R5 K1
0x88140B02, // 0002 GETMBR R5 R5 K2
@@ -175,11 +176,11 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x502C0000, // 0035 LDBOOL R11 0 0
0x7C200600, // 0036 CALL R8 3
0x80041000, // 0037 RET 1 R8
- 0x70020365, // 0038 JMP #039F
+ 0x70020359, // 0038 JMP #0393
0x54220031, // 0039 LDINT R8 50
0x1C200C08, // 003A EQ R8 R6 R8
0x78220000, // 003B JMPF R8 #003D
- 0x70020361, // 003C JMP #039F
+ 0x70020355, // 003C JMP #0393
0x54220032, // 003D LDINT R8 51
0x1C200C08, // 003E EQ R8 R6 R8
0x782200DC, // 003F JMPF R8 #011D
@@ -403,11 +404,11 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x502C0000, // 0119 LDBOOL R11 0 0
0x7C200600, // 011A CALL R8 3
0x80041000, // 011B RET 1 R8
- 0x70020281, // 011C JMP #039F
+ 0x70020275, // 011C JMP #0393
0x54220033, // 011D LDINT R8 52
0x1C200C08, // 011E EQ R8 R6 R8
0x78220000, // 011F JMPF R8 #0121
- 0x7002027D, // 0120 JMP #039F
+ 0x70020271, // 0120 JMP #0393
0x54220037, // 0121 LDINT R8 56
0x1C200C08, // 0122 EQ R8 R6 R8
0x7822002B, // 0123 JMPF R8 #0150
@@ -442,8 +443,8 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0xB8225C00, // 0140 GETNGBL R8 K46
0xB8262400, // 0141 GETNGBL R9 K18
0x8C241331, // 0142 GETMET R9 R9 K49
- 0x7C240200, // 0143 CALL R9 1
- 0x94241332, // 0144 GETIDX R9 R9 K50
+ 0x582C0032, // 0143 LDCONST R11 K50
+ 0x7C240400, // 0144 CALL R9 2
0x7C200200, // 0145 CALL R8 1
0xB8265C00, // 0146 GETNGBL R9 K46
0x58280030, // 0147 LDCONST R10 K48
@@ -454,7 +455,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x5C301000, // 014C MOVE R12 R8
0x7C240600, // 014D CALL R9 3
0x80041200, // 014E RET 1 R9
- 0x7002024E, // 014F JMP #039F
+ 0x70020242, // 014F JMP #0393
0x5422003D, // 0150 LDINT R8 62
0x1C200C08, // 0151 EQ R8 R6 R8
0x782200B5, // 0152 JMPF R8 #0209
@@ -639,10 +640,10 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x5C301000, // 0205 MOVE R12 R8
0x7C240600, // 0206 CALL R9 3
0x80041200, // 0207 RET 1 R9
- 0x70020195, // 0208 JMP #039F
+ 0x70020189, // 0208 JMP #0393
0x5422003B, // 0209 LDINT R8 60
0x1C200C08, // 020A EQ R8 R6 R8
- 0x7822003C, // 020B JMPF R8 #0249
+ 0x78220030, // 020B JMPF R8 #023D
0x1C200F05, // 020C EQ R8 R7 K5
0x78220012, // 020D JMPF R8 #0221
0x88200136, // 020E GETMBR R8 R0 K54
@@ -663,398 +664,386 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x5C381400, // 021D MOVE R14 R10
0x7C2C0600, // 021E CALL R11 3
0x80041600, // 021F RET 1 R11
- 0x70020026, // 0220 JMP #0248
+ 0x7002001A, // 0220 JMP #023C
0x1C200F09, // 0221 EQ R8 R7 K9
- 0x78220011, // 0222 JMPF R8 #0235
+ 0x7822000B, // 0222 JMPF R8 #022F
0x88200136, // 0223 GETMBR R8 R0 K54
0x8820114C, // 0224 GETMBR R8 R8 K76
0x4C240000, // 0225 LDNIL R9
0x20241009, // 0226 NE R9 R8 R9
- 0x78260006, // 0227 JMPF R9 #022F
- 0x8C240706, // 0228 GETMET R9 R3 K6
+ 0x78260005, // 0227 JMPF R9 #022E
+ 0x8C24074D, // 0228 GETMET R9 R3 K77
0x882C0B0C, // 0229 GETMBR R11 R5 K12
0x8C30113D, // 022A GETMET R12 R8 K61
0x7C300200, // 022B CALL R12 1
0x7C240600, // 022C CALL R9 3
0x80041200, // 022D RET 1 R9
- 0x70020004, // 022E JMP #0234
- 0x8C240706, // 022F GETMET R9 R3 K6
- 0x882C0B18, // 0230 GETMBR R11 R5 K24
- 0x4C300000, // 0231 LDNIL R12
- 0x7C240600, // 0232 CALL R9 3
- 0x80041200, // 0233 RET 1 R9
- 0x70020012, // 0234 JMP #0248
- 0x1C200F0D, // 0235 EQ R8 R7 K13
- 0x78220010, // 0236 JMPF R8 #0248
- 0x88200136, // 0237 GETMBR R8 R0 K54
- 0x8820114C, // 0238 GETMBR R8 R8 K76
- 0x4C240000, // 0239 LDNIL R9
- 0x20241009, // 023A NE R9 R8 R9
- 0x78260006, // 023B JMPF R9 #0243
- 0x8C240706, // 023C GETMET R9 R3 K6
- 0x882C0B0C, // 023D GETMBR R11 R5 K12
- 0x8C301142, // 023E GETMET R12 R8 K66
- 0x7C300200, // 023F CALL R12 1
- 0x7C240600, // 0240 CALL R9 3
- 0x80041200, // 0241 RET 1 R9
- 0x70020004, // 0242 JMP #0248
- 0x8C240706, // 0243 GETMET R9 R3 K6
- 0x882C0B18, // 0244 GETMBR R11 R5 K24
- 0x4C300000, // 0245 LDNIL R12
- 0x7C240600, // 0246 CALL R9 3
- 0x80041200, // 0247 RET 1 R9
- 0x70020155, // 0248 JMP #039F
- 0x54220027, // 0249 LDINT R8 40
- 0x1C200C08, // 024A EQ R8 R6 R8
- 0x782200BA, // 024B JMPF R8 #0307
- 0x8C200133, // 024C GETMET R8 R0 K51
- 0x5C280400, // 024D MOVE R10 R2
- 0x7C200400, // 024E CALL R8 2
- 0x1C200F05, // 024F EQ R8 R7 K5
- 0x78220005, // 0250 JMPF R8 #0257
- 0x8C200706, // 0251 GETMET R8 R3 K6
- 0x88280B0C, // 0252 GETMBR R10 R5 K12
- 0x582C0009, // 0253 LDCONST R11 K9
- 0x7C200600, // 0254 CALL R8 3
- 0x80041000, // 0255 RET 1 R8
- 0x700200AE, // 0256 JMP #0306
- 0x1C200F09, // 0257 EQ R8 R7 K9
- 0x78220005, // 0258 JMPF R8 #025F
- 0x8C200706, // 0259 GETMET R8 R3 K6
- 0x88280B16, // 025A GETMBR R10 R5 K22
- 0x582C004D, // 025B LDCONST R11 K77
- 0x7C200600, // 025C CALL R8 3
- 0x80041000, // 025D RET 1 R8
- 0x700200A6, // 025E JMP #0306
- 0x1C200F0D, // 025F EQ R8 R7 K13
- 0x78220006, // 0260 JMPF R8 #0268
- 0x8C200706, // 0261 GETMET R8 R3 K6
- 0x88280B0C, // 0262 GETMBR R10 R5 K12
- 0x882C0136, // 0263 GETMBR R11 R0 K54
- 0x882C174E, // 0264 GETMBR R11 R11 K78
- 0x7C200600, // 0265 CALL R8 3
- 0x80041000, // 0266 RET 1 R8
- 0x7002009D, // 0267 JMP #0306
- 0x1C200F0F, // 0268 EQ R8 R7 K15
- 0x7822000A, // 0269 JMPF R8 #0275
- 0x8C200706, // 026A GETMET R8 R3 K6
- 0x88280B16, // 026B GETMBR R10 R5 K22
- 0xB82E2400, // 026C GETNGBL R11 K18
- 0x8C2C1726, // 026D GETMET R11 R11 K38
- 0x5834004F, // 026E LDCONST R13 K79
- 0x50380200, // 026F LDBOOL R14 1 0
- 0x7C2C0600, // 0270 CALL R11 3
- 0x942C174F, // 0271 GETIDX R11 R11 K79
- 0x7C200600, // 0272 CALL R8 3
- 0x80041000, // 0273 RET 1 R8
- 0x70020090, // 0274 JMP #0306
- 0x54220003, // 0275 LDINT R8 4
- 0x1C200E08, // 0276 EQ R8 R7 R8
- 0x78220005, // 0277 JMPF R8 #027E
- 0x8C200706, // 0278 GETMET R8 R3 K6
- 0x88280B0C, // 0279 GETMBR R10 R5 K12
- 0x542E7FFF, // 027A LDINT R11 32768
- 0x7C200600, // 027B CALL R8 3
- 0x80041000, // 027C RET 1 R8
- 0x70020087, // 027D JMP #0306
- 0x54220004, // 027E LDINT R8 5
- 0x1C200E08, // 027F EQ R8 R7 R8
- 0x7822000A, // 0280 JMPF R8 #028C
- 0x8C200706, // 0281 GETMET R8 R3 K6
- 0x88280B16, // 0282 GETMBR R10 R5 K22
- 0xB82E2400, // 0283 GETNGBL R11 K18
- 0x8C2C1726, // 0284 GETMET R11 R11 K38
- 0x58340050, // 0285 LDCONST R13 K80
- 0x50380200, // 0286 LDBOOL R14 1 0
- 0x7C2C0600, // 0287 CALL R11 3
- 0x942C1751, // 0288 GETIDX R11 R11 K81
- 0x7C200600, // 0289 CALL R8 3
- 0x80041000, // 028A RET 1 R8
- 0x70020079, // 028B JMP #0306
- 0x54220005, // 028C LDINT R8 6
- 0x1C200E08, // 028D EQ R8 R7 R8
- 0x78220005, // 028E JMPF R8 #0295
- 0x8C200706, // 028F GETMET R8 R3 K6
- 0x88280B16, // 0290 GETMBR R10 R5 K22
- 0x582C0052, // 0291 LDCONST R11 K82
- 0x7C200600, // 0292 CALL R8 3
- 0x80041000, // 0293 RET 1 R8
- 0x70020070, // 0294 JMP #0306
- 0x54220006, // 0295 LDINT R8 7
- 0x1C200E08, // 0296 EQ R8 R7 R8
- 0x78220005, // 0297 JMPF R8 #029E
- 0x8C200706, // 0298 GETMET R8 R3 K6
- 0x88280B0C, // 0299 GETMBR R10 R5 K12
- 0x582C0005, // 029A LDCONST R11 K5
- 0x7C200600, // 029B CALL R8 3
- 0x80041000, // 029C RET 1 R8
- 0x70020067, // 029D JMP #0306
- 0x54220007, // 029E LDINT R8 8
- 0x1C200E08, // 029F EQ R8 R7 R8
- 0x7822000B, // 02A0 JMPF R8 #02AD
- 0x8C200706, // 02A1 GETMET R8 R3 K6
- 0x88280B16, // 02A2 GETMBR R10 R5 K22
- 0xB82E2400, // 02A3 GETNGBL R11 K18
- 0x8C2C1726, // 02A4 GETMET R11 R11 K38
- 0x58340053, // 02A5 LDCONST R13 K83
- 0x50380200, // 02A6 LDBOOL R14 1 0
- 0x7C2C0600, // 02A7 CALL R11 3
- 0x942C1754, // 02A8 GETIDX R11 R11 K84
- 0x942C1755, // 02A9 GETIDX R11 R11 K85
- 0x7C200600, // 02AA CALL R8 3
- 0x80041000, // 02AB RET 1 R8
- 0x70020058, // 02AC JMP #0306
- 0x54220008, // 02AD LDINT R8 9
- 0x1C200E08, // 02AE EQ R8 R7 R8
- 0x78220005, // 02AF JMPF R8 #02B6
- 0x8C200706, // 02B0 GETMET R8 R3 K6
- 0x88280B0C, // 02B1 GETMBR R10 R5 K12
- 0x582C0009, // 02B2 LDCONST R11 K9
- 0x7C200600, // 02B3 CALL R8 3
- 0x80041000, // 02B4 RET 1 R8
- 0x7002004F, // 02B5 JMP #0306
- 0x54220009, // 02B6 LDINT R8 10
- 0x1C200E08, // 02B7 EQ R8 R7 R8
- 0x78220015, // 02B8 JMPF R8 #02CF
- 0xB8222400, // 02B9 GETNGBL R8 K18
- 0x8C201126, // 02BA GETMET R8 R8 K38
- 0x58280053, // 02BB LDCONST R10 K83
- 0x502C0200, // 02BC LDBOOL R11 1 0
- 0x7C200600, // 02BD CALL R8 3
- 0x94201154, // 02BE GETIDX R8 R8 K84
- 0x94201156, // 02BF GETIDX R8 R8 K86
- 0x8C24091B, // 02C0 GETMET R9 R4 K27
- 0x5C2C1000, // 02C1 MOVE R11 R8
- 0x58300057, // 02C2 LDCONST R12 K87
- 0x7C240600, // 02C3 CALL R9 3
- 0x24281305, // 02C4 GT R10 R9 K5
- 0x782A0002, // 02C5 JMPF R10 #02C9
- 0x04281309, // 02C6 SUB R10 R9 K9
- 0x402A0A0A, // 02C7 CONNECT R10 K5 R10
- 0x9420100A, // 02C8 GETIDX R8 R8 R10
- 0x8C280706, // 02C9 GETMET R10 R3 K6
- 0x88300B16, // 02CA GETMBR R12 R5 K22
- 0x5C341000, // 02CB MOVE R13 R8
- 0x7C280600, // 02CC CALL R10 3
- 0x80041400, // 02CD RET 1 R10
- 0x70020036, // 02CE JMP #0306
- 0x5422000E, // 02CF LDINT R8 15
- 0x1C200E08, // 02D0 EQ R8 R7 R8
- 0x7822000B, // 02D1 JMPF R8 #02DE
- 0x8C200706, // 02D2 GETMET R8 R3 K6
- 0x88280B16, // 02D3 GETMBR R10 R5 K22
- 0xB82E2400, // 02D4 GETNGBL R11 K18
- 0x8C2C1725, // 02D5 GETMET R11 R11 K37
- 0x7C2C0200, // 02D6 CALL R11 1
- 0x8C2C171B, // 02D7 GETMET R11 R11 K27
- 0x5834001C, // 02D8 LDCONST R13 K28
- 0x5838001D, // 02D9 LDCONST R14 K29
- 0x7C2C0600, // 02DA CALL R11 3
- 0x7C200600, // 02DB CALL R8 3
- 0x80041000, // 02DC RET 1 R8
- 0x70020027, // 02DD JMP #0306
- 0x54220010, // 02DE LDINT R8 17
- 0x1C200E08, // 02DF EQ R8 R7 R8
- 0x78220005, // 02E0 JMPF R8 #02E7
- 0x8C200706, // 02E1 GETMET R8 R3 K6
- 0x88280B10, // 02E2 GETMBR R10 R5 K16
- 0x582C0009, // 02E3 LDCONST R11 K9
- 0x7C200600, // 02E4 CALL R8 3
- 0x80041000, // 02E5 RET 1 R8
- 0x7002001E, // 02E6 JMP #0306
- 0x54220011, // 02E7 LDINT R8 18
- 0x1C200E08, // 02E8 EQ R8 R7 R8
- 0x7822000B, // 02E9 JMPF R8 #02F6
- 0x8C200706, // 02EA GETMET R8 R3 K6
- 0x88280B16, // 02EB GETMBR R10 R5 K22
- 0xB82E2400, // 02EC GETNGBL R11 K18
- 0x8C2C1725, // 02ED GETMET R11 R11 K37
- 0x7C2C0200, // 02EE CALL R11 1
- 0x8C2C171B, // 02EF GETMET R11 R11 K27
- 0x5834001C, // 02F0 LDCONST R13 K28
- 0x5838001D, // 02F1 LDCONST R14 K29
- 0x7C2C0600, // 02F2 CALL R11 3
- 0x7C200600, // 02F3 CALL R8 3
- 0x80041000, // 02F4 RET 1 R8
- 0x7002000F, // 02F5 JMP #0306
- 0x54220012, // 02F6 LDINT R8 19
- 0x1C200E08, // 02F7 EQ R8 R7 R8
- 0x7822000C, // 02F8 JMPF R8 #0306
- 0x8C200B0A, // 02F9 GETMET R8 R5 K10
- 0x7C200200, // 02FA CALL R8 1
- 0x8C24110B, // 02FB GETMET R9 R8 K11
- 0x582C0005, // 02FC LDCONST R11 K5
- 0x88300B0C, // 02FD GETMBR R12 R5 K12
- 0x5834000F, // 02FE LDCONST R13 K15
- 0x7C240800, // 02FF CALL R9 4
- 0x8C24110B, // 0300 GETMET R9 R8 K11
- 0x582C0009, // 0301 LDCONST R11 K9
- 0x88300B0C, // 0302 GETMBR R12 R5 K12
- 0x5834000F, // 0303 LDCONST R13 K15
- 0x7C240800, // 0304 CALL R9 4
- 0x80041000, // 0305 RET 1 R8
- 0x70020097, // 0306 JMP #039F
- 0x5422003E, // 0307 LDINT R8 63
- 0x1C200C08, // 0308 EQ R8 R6 R8
- 0x78220000, // 0309 JMPF R8 #030B
- 0x70020093, // 030A JMP #039F
- 0x54220029, // 030B LDINT R8 42
- 0x1C200C08, // 030C EQ R8 R6 R8
- 0x7822001D, // 030D JMPF R8 #032C
- 0x1C200F05, // 030E EQ R8 R7 K5
- 0x78220003, // 030F JMPF R8 #0314
- 0x8C200B11, // 0310 GETMET R8 R5 K17
- 0x7C200200, // 0311 CALL R8 1
- 0x80041000, // 0312 RET 1 R8
- 0x70020016, // 0313 JMP #032B
- 0x1C200F09, // 0314 EQ R8 R7 K9
- 0x78220005, // 0315 JMPF R8 #031C
- 0x8C200706, // 0316 GETMET R8 R3 K6
- 0x88280B10, // 0317 GETMBR R10 R5 K16
- 0x582C0005, // 0318 LDCONST R11 K5
- 0x7C200600, // 0319 CALL R8 3
- 0x80041000, // 031A RET 1 R8
- 0x7002000E, // 031B JMP #032B
- 0x1C200F0D, // 031C EQ R8 R7 K13
- 0x78220005, // 031D JMPF R8 #0324
- 0x8C200706, // 031E GETMET R8 R3 K6
- 0x88280B0E, // 031F GETMBR R10 R5 K14
- 0x582C0009, // 0320 LDCONST R11 K9
- 0x7C200600, // 0321 CALL R8 3
- 0x80041000, // 0322 RET 1 R8
- 0x70020006, // 0323 JMP #032B
- 0x1C200F0F, // 0324 EQ R8 R7 K15
- 0x78220004, // 0325 JMPF R8 #032B
- 0x8C200706, // 0326 GETMET R8 R3 K6
- 0x88280B18, // 0327 GETMBR R10 R5 K24
- 0x4C2C0000, // 0328 LDNIL R11
- 0x7C200600, // 0329 CALL R8 3
- 0x80041000, // 032A RET 1 R8
- 0x70020072, // 032B JMP #039F
- 0x5422002A, // 032C LDINT R8 43
- 0x1C200C08, // 032D EQ R8 R6 R8
- 0x78220016, // 032E JMPF R8 #0346
- 0x1C200F05, // 032F EQ R8 R7 K5
- 0x78220007, // 0330 JMPF R8 #0339
- 0x8C200706, // 0331 GETMET R8 R3 K6
- 0x88280B16, // 0332 GETMBR R10 R5 K22
- 0xB82E2400, // 0333 GETNGBL R11 K18
- 0x8C2C1758, // 0334 GETMET R11 R11 K88
- 0x7C2C0200, // 0335 CALL R11 1
- 0x7C200600, // 0336 CALL R8 3
- 0x80041000, // 0337 RET 1 R8
- 0x7002000B, // 0338 JMP #0345
- 0x1C200F09, // 0339 EQ R8 R7 K9
- 0x78220009, // 033A JMPF R8 #0345
- 0x8C200B11, // 033B GETMET R8 R5 K17
- 0x7C200200, // 033C CALL R8 1
- 0x8C24110B, // 033D GETMET R9 R8 K11
- 0x4C2C0000, // 033E LDNIL R11
- 0x88300B16, // 033F GETMBR R12 R5 K22
- 0xB8362400, // 0340 GETNGBL R13 K18
- 0x8C341B58, // 0341 GETMET R13 R13 K88
- 0x7C340200, // 0342 CALL R13 1
- 0x7C240800, // 0343 CALL R9 4
- 0x80041000, // 0344 RET 1 R8
- 0x70020058, // 0345 JMP #039F
- 0x5422002B, // 0346 LDINT R8 44
- 0x1C200C08, // 0347 EQ R8 R6 R8
- 0x7822001C, // 0348 JMPF R8 #0366
- 0x1C200F05, // 0349 EQ R8 R7 K5
- 0x78220005, // 034A JMPF R8 #0351
- 0x8C200706, // 034B GETMET R8 R3 K6
- 0x88280B0E, // 034C GETMBR R10 R5 K14
- 0x582C0009, // 034D LDCONST R11 K9
- 0x7C200600, // 034E CALL R8 3
- 0x80041000, // 034F RET 1 R8
- 0x70020013, // 0350 JMP #0365
- 0x1C200F09, // 0351 EQ R8 R7 K9
- 0x78220005, // 0352 JMPF R8 #0359
- 0x8C200706, // 0353 GETMET R8 R3 K6
- 0x88280B0E, // 0354 GETMBR R10 R5 K14
- 0x542E0003, // 0355 LDINT R11 4
- 0x7C200600, // 0356 CALL R8 3
- 0x80041000, // 0357 RET 1 R8
- 0x7002000B, // 0358 JMP #0365
- 0x1C200F0D, // 0359 EQ R8 R7 K13
- 0x78220009, // 035A JMPF R8 #0365
- 0x8C200B11, // 035B GETMET R8 R5 K17
- 0x7C200200, // 035C CALL R8 1
- 0x8C24110B, // 035D GETMET R9 R8 K11
- 0x4C2C0000, // 035E LDNIL R11
- 0x8C300B59, // 035F GETMET R12 R5 K89
- 0x88380B0E, // 0360 GETMBR R14 R5 K14
- 0x543E0003, // 0361 LDINT R15 4
- 0x7C300600, // 0362 CALL R12 3
- 0x7C240600, // 0363 CALL R9 3
- 0x80041000, // 0364 RET 1 R8
- 0x70020038, // 0365 JMP #039F
- 0x54220030, // 0366 LDINT R8 49
- 0x1C200C08, // 0367 EQ R8 R6 R8
- 0x78220007, // 0368 JMPF R8 #0371
- 0x1C200F0F, // 0369 EQ R8 R7 K15
- 0x78220004, // 036A JMPF R8 #0370
- 0x8C200706, // 036B GETMET R8 R3 K6
- 0x88280B0E, // 036C GETMBR R10 R5 K14
- 0x542E001D, // 036D LDINT R11 30
- 0x7C200600, // 036E CALL R8 3
- 0x80041000, // 036F RET 1 R8
- 0x7002002D, // 0370 JMP #039F
- 0x5422001C, // 0371 LDINT R8 29
- 0x1C200C08, // 0372 EQ R8 R6 R8
- 0x7822002A, // 0373 JMPF R8 #039F
- 0x1C200F0D, // 0374 EQ R8 R7 K13
- 0x78220008, // 0375 JMPF R8 #037F
- 0x8C200B11, // 0376 GETMET R8 R5 K17
- 0x7C200200, // 0377 CALL R8 1
- 0x8C24110B, // 0378 GETMET R9 R8 K11
- 0x4C2C0000, // 0379 LDNIL R11
- 0x88300B0C, // 037A GETMBR R12 R5 K12
- 0x5436001E, // 037B LDINT R13 31
- 0x7C240800, // 037C CALL R9 4
- 0x80041000, // 037D RET 1 R8
- 0x7002001F, // 037E JMP #039F
- 0x1C200F0F, // 037F EQ R8 R7 K15
- 0x7822001D, // 0380 JMPF R8 #039F
- 0x8C200B11, // 0381 GETMET R8 R5 K17
- 0x7C200200, // 0382 CALL R8 1
- 0x88240136, // 0383 GETMBR R9 R0 K54
- 0x8C24135A, // 0384 GETMET R9 R9 K90
- 0x502C0200, // 0385 LDBOOL R11 1 0
- 0x7C240400, // 0386 CALL R9 2
- 0x88280136, // 0387 GETMBR R10 R0 K54
- 0x8828155B, // 0388 GETMBR R10 R10 K91
- 0x602C0010, // 0389 GETGBL R11 G16
- 0x5C301200, // 038A MOVE R12 R9
- 0x7C2C0200, // 038B CALL R11 1
- 0xA802000D, // 038C EXBLK 0 #039B
- 0x5C301600, // 038D MOVE R12 R11
- 0x7C300000, // 038E CALL R12 0
- 0x5C341400, // 038F MOVE R13 R10
- 0x78360003, // 0390 JMPF R13 #0395
- 0xB8360200, // 0391 GETNGBL R13 K1
- 0x88341B5C, // 0392 GETMBR R13 R13 K92
- 0x2034180D, // 0393 NE R13 R12 R13
- 0x78360004, // 0394 JMPF R13 #039A
- 0x8C34110B, // 0395 GETMET R13 R8 K11
- 0x4C3C0000, // 0396 LDNIL R15
- 0x88400B0C, // 0397 GETMBR R16 R5 K12
- 0x5C441800, // 0398 MOVE R17 R12
- 0x7C340800, // 0399 CALL R13 4
- 0x7001FFF1, // 039A JMP #038D
- 0x582C003E, // 039B LDCONST R11 K62
- 0xAC2C0200, // 039C CATCH R11 1 0
- 0xB0080000, // 039D RAISE 2 R0 R0
- 0x80041000, // 039E RET 1 R8
- 0x60200003, // 039F GETGBL R8 G3
- 0x5C240000, // 03A0 MOVE R9 R0
- 0x7C200200, // 03A1 CALL R8 1
- 0x8C20115D, // 03A2 GETMET R8 R8 K93
- 0x5C280200, // 03A3 MOVE R10 R1
- 0x5C2C0400, // 03A4 MOVE R11 R2
- 0x5C300600, // 03A5 MOVE R12 R3
- 0x7C200800, // 03A6 CALL R8 4
- 0x80041000, // 03A7 RET 1 R8
+ 0x7002000C, // 022E JMP #023C
+ 0x1C200F0D, // 022F EQ R8 R7 K13
+ 0x7822000A, // 0230 JMPF R8 #023C
+ 0x88200136, // 0231 GETMBR R8 R0 K54
+ 0x8820114C, // 0232 GETMBR R8 R8 K76
+ 0x4C240000, // 0233 LDNIL R9
+ 0x20241009, // 0234 NE R9 R8 R9
+ 0x78260005, // 0235 JMPF R9 #023C
+ 0x8C24074D, // 0236 GETMET R9 R3 K77
+ 0x882C0B0C, // 0237 GETMBR R11 R5 K12
+ 0x8C301142, // 0238 GETMET R12 R8 K66
+ 0x7C300200, // 0239 CALL R12 1
+ 0x7C240600, // 023A CALL R9 3
+ 0x80041200, // 023B RET 1 R9
+ 0x70020155, // 023C JMP #0393
+ 0x54220027, // 023D LDINT R8 40
+ 0x1C200C08, // 023E EQ R8 R6 R8
+ 0x782200BA, // 023F JMPF R8 #02FB
+ 0x8C200133, // 0240 GETMET R8 R0 K51
+ 0x5C280400, // 0241 MOVE R10 R2
+ 0x7C200400, // 0242 CALL R8 2
+ 0x1C200F05, // 0243 EQ R8 R7 K5
+ 0x78220005, // 0244 JMPF R8 #024B
+ 0x8C200706, // 0245 GETMET R8 R3 K6
+ 0x88280B0C, // 0246 GETMBR R10 R5 K12
+ 0x582C0009, // 0247 LDCONST R11 K9
+ 0x7C200600, // 0248 CALL R8 3
+ 0x80041000, // 0249 RET 1 R8
+ 0x700200AE, // 024A JMP #02FA
+ 0x1C200F09, // 024B EQ R8 R7 K9
+ 0x78220005, // 024C JMPF R8 #0253
+ 0x8C200706, // 024D GETMET R8 R3 K6
+ 0x88280B16, // 024E GETMBR R10 R5 K22
+ 0x582C004E, // 024F LDCONST R11 K78
+ 0x7C200600, // 0250 CALL R8 3
+ 0x80041000, // 0251 RET 1 R8
+ 0x700200A6, // 0252 JMP #02FA
+ 0x1C200F0D, // 0253 EQ R8 R7 K13
+ 0x78220006, // 0254 JMPF R8 #025C
+ 0x8C200706, // 0255 GETMET R8 R3 K6
+ 0x88280B0C, // 0256 GETMBR R10 R5 K12
+ 0x882C0136, // 0257 GETMBR R11 R0 K54
+ 0x882C174F, // 0258 GETMBR R11 R11 K79
+ 0x7C200600, // 0259 CALL R8 3
+ 0x80041000, // 025A RET 1 R8
+ 0x7002009D, // 025B JMP #02FA
+ 0x1C200F0F, // 025C EQ R8 R7 K15
+ 0x7822000A, // 025D JMPF R8 #0269
+ 0x8C200706, // 025E GETMET R8 R3 K6
+ 0x88280B16, // 025F GETMBR R10 R5 K22
+ 0xB82E2400, // 0260 GETNGBL R11 K18
+ 0x8C2C1726, // 0261 GETMET R11 R11 K38
+ 0x58340050, // 0262 LDCONST R13 K80
+ 0x50380200, // 0263 LDBOOL R14 1 0
+ 0x7C2C0600, // 0264 CALL R11 3
+ 0x942C1750, // 0265 GETIDX R11 R11 K80
+ 0x7C200600, // 0266 CALL R8 3
+ 0x80041000, // 0267 RET 1 R8
+ 0x70020090, // 0268 JMP #02FA
+ 0x54220003, // 0269 LDINT R8 4
+ 0x1C200E08, // 026A EQ R8 R7 R8
+ 0x78220005, // 026B JMPF R8 #0272
+ 0x8C200706, // 026C GETMET R8 R3 K6
+ 0x88280B0C, // 026D GETMBR R10 R5 K12
+ 0x542E7FFF, // 026E LDINT R11 32768
+ 0x7C200600, // 026F CALL R8 3
+ 0x80041000, // 0270 RET 1 R8
+ 0x70020087, // 0271 JMP #02FA
+ 0x54220004, // 0272 LDINT R8 5
+ 0x1C200E08, // 0273 EQ R8 R7 R8
+ 0x7822000A, // 0274 JMPF R8 #0280
+ 0x8C200706, // 0275 GETMET R8 R3 K6
+ 0x88280B16, // 0276 GETMBR R10 R5 K22
+ 0xB82E2400, // 0277 GETNGBL R11 K18
+ 0x8C2C1726, // 0278 GETMET R11 R11 K38
+ 0x58340051, // 0279 LDCONST R13 K81
+ 0x50380200, // 027A LDBOOL R14 1 0
+ 0x7C2C0600, // 027B CALL R11 3
+ 0x942C1752, // 027C GETIDX R11 R11 K82
+ 0x7C200600, // 027D CALL R8 3
+ 0x80041000, // 027E RET 1 R8
+ 0x70020079, // 027F JMP #02FA
+ 0x54220005, // 0280 LDINT R8 6
+ 0x1C200E08, // 0281 EQ R8 R7 R8
+ 0x78220005, // 0282 JMPF R8 #0289
+ 0x8C200706, // 0283 GETMET R8 R3 K6
+ 0x88280B16, // 0284 GETMBR R10 R5 K22
+ 0x582C0053, // 0285 LDCONST R11 K83
+ 0x7C200600, // 0286 CALL R8 3
+ 0x80041000, // 0287 RET 1 R8
+ 0x70020070, // 0288 JMP #02FA
+ 0x54220006, // 0289 LDINT R8 7
+ 0x1C200E08, // 028A EQ R8 R7 R8
+ 0x78220005, // 028B JMPF R8 #0292
+ 0x8C200706, // 028C GETMET R8 R3 K6
+ 0x88280B0C, // 028D GETMBR R10 R5 K12
+ 0x582C0005, // 028E LDCONST R11 K5
+ 0x7C200600, // 028F CALL R8 3
+ 0x80041000, // 0290 RET 1 R8
+ 0x70020067, // 0291 JMP #02FA
+ 0x54220007, // 0292 LDINT R8 8
+ 0x1C200E08, // 0293 EQ R8 R7 R8
+ 0x7822000B, // 0294 JMPF R8 #02A1
+ 0x8C200706, // 0295 GETMET R8 R3 K6
+ 0x88280B16, // 0296 GETMBR R10 R5 K22
+ 0xB82E2400, // 0297 GETNGBL R11 K18
+ 0x8C2C1726, // 0298 GETMET R11 R11 K38
+ 0x58340054, // 0299 LDCONST R13 K84
+ 0x50380200, // 029A LDBOOL R14 1 0
+ 0x7C2C0600, // 029B CALL R11 3
+ 0x942C1755, // 029C GETIDX R11 R11 K85
+ 0x942C1756, // 029D GETIDX R11 R11 K86
+ 0x7C200600, // 029E CALL R8 3
+ 0x80041000, // 029F RET 1 R8
+ 0x70020058, // 02A0 JMP #02FA
+ 0x54220008, // 02A1 LDINT R8 9
+ 0x1C200E08, // 02A2 EQ R8 R7 R8
+ 0x78220005, // 02A3 JMPF R8 #02AA
+ 0x8C200706, // 02A4 GETMET R8 R3 K6
+ 0x88280B0C, // 02A5 GETMBR R10 R5 K12
+ 0x582C0009, // 02A6 LDCONST R11 K9
+ 0x7C200600, // 02A7 CALL R8 3
+ 0x80041000, // 02A8 RET 1 R8
+ 0x7002004F, // 02A9 JMP #02FA
+ 0x54220009, // 02AA LDINT R8 10
+ 0x1C200E08, // 02AB EQ R8 R7 R8
+ 0x78220015, // 02AC JMPF R8 #02C3
+ 0xB8222400, // 02AD GETNGBL R8 K18
+ 0x8C201126, // 02AE GETMET R8 R8 K38
+ 0x58280054, // 02AF LDCONST R10 K84
+ 0x502C0200, // 02B0 LDBOOL R11 1 0
+ 0x7C200600, // 02B1 CALL R8 3
+ 0x94201155, // 02B2 GETIDX R8 R8 K85
+ 0x94201157, // 02B3 GETIDX R8 R8 K87
+ 0x8C24091B, // 02B4 GETMET R9 R4 K27
+ 0x5C2C1000, // 02B5 MOVE R11 R8
+ 0x58300058, // 02B6 LDCONST R12 K88
+ 0x7C240600, // 02B7 CALL R9 3
+ 0x24281305, // 02B8 GT R10 R9 K5
+ 0x782A0002, // 02B9 JMPF R10 #02BD
+ 0x04281309, // 02BA SUB R10 R9 K9
+ 0x402A0A0A, // 02BB CONNECT R10 K5 R10
+ 0x9420100A, // 02BC GETIDX R8 R8 R10
+ 0x8C280706, // 02BD GETMET R10 R3 K6
+ 0x88300B16, // 02BE GETMBR R12 R5 K22
+ 0x5C341000, // 02BF MOVE R13 R8
+ 0x7C280600, // 02C0 CALL R10 3
+ 0x80041400, // 02C1 RET 1 R10
+ 0x70020036, // 02C2 JMP #02FA
+ 0x5422000E, // 02C3 LDINT R8 15
+ 0x1C200E08, // 02C4 EQ R8 R7 R8
+ 0x7822000B, // 02C5 JMPF R8 #02D2
+ 0x8C200706, // 02C6 GETMET R8 R3 K6
+ 0x88280B16, // 02C7 GETMBR R10 R5 K22
+ 0xB82E2400, // 02C8 GETNGBL R11 K18
+ 0x8C2C1725, // 02C9 GETMET R11 R11 K37
+ 0x7C2C0200, // 02CA CALL R11 1
+ 0x8C2C171B, // 02CB GETMET R11 R11 K27
+ 0x5834001C, // 02CC LDCONST R13 K28
+ 0x5838001D, // 02CD LDCONST R14 K29
+ 0x7C2C0600, // 02CE CALL R11 3
+ 0x7C200600, // 02CF CALL R8 3
+ 0x80041000, // 02D0 RET 1 R8
+ 0x70020027, // 02D1 JMP #02FA
+ 0x54220010, // 02D2 LDINT R8 17
+ 0x1C200E08, // 02D3 EQ R8 R7 R8
+ 0x78220005, // 02D4 JMPF R8 #02DB
+ 0x8C200706, // 02D5 GETMET R8 R3 K6
+ 0x88280B10, // 02D6 GETMBR R10 R5 K16
+ 0x582C0009, // 02D7 LDCONST R11 K9
+ 0x7C200600, // 02D8 CALL R8 3
+ 0x80041000, // 02D9 RET 1 R8
+ 0x7002001E, // 02DA JMP #02FA
+ 0x54220011, // 02DB LDINT R8 18
+ 0x1C200E08, // 02DC EQ R8 R7 R8
+ 0x7822000B, // 02DD JMPF R8 #02EA
+ 0x8C200706, // 02DE GETMET R8 R3 K6
+ 0x88280B16, // 02DF GETMBR R10 R5 K22
+ 0xB82E2400, // 02E0 GETNGBL R11 K18
+ 0x8C2C1725, // 02E1 GETMET R11 R11 K37
+ 0x7C2C0200, // 02E2 CALL R11 1
+ 0x8C2C171B, // 02E3 GETMET R11 R11 K27
+ 0x5834001C, // 02E4 LDCONST R13 K28
+ 0x5838001D, // 02E5 LDCONST R14 K29
+ 0x7C2C0600, // 02E6 CALL R11 3
+ 0x7C200600, // 02E7 CALL R8 3
+ 0x80041000, // 02E8 RET 1 R8
+ 0x7002000F, // 02E9 JMP #02FA
+ 0x54220012, // 02EA LDINT R8 19
+ 0x1C200E08, // 02EB EQ R8 R7 R8
+ 0x7822000C, // 02EC JMPF R8 #02FA
+ 0x8C200B0A, // 02ED GETMET R8 R5 K10
+ 0x7C200200, // 02EE CALL R8 1
+ 0x8C24110B, // 02EF GETMET R9 R8 K11
+ 0x582C0005, // 02F0 LDCONST R11 K5
+ 0x88300B0C, // 02F1 GETMBR R12 R5 K12
+ 0x5834000F, // 02F2 LDCONST R13 K15
+ 0x7C240800, // 02F3 CALL R9 4
+ 0x8C24110B, // 02F4 GETMET R9 R8 K11
+ 0x582C0009, // 02F5 LDCONST R11 K9
+ 0x88300B0C, // 02F6 GETMBR R12 R5 K12
+ 0x5834000F, // 02F7 LDCONST R13 K15
+ 0x7C240800, // 02F8 CALL R9 4
+ 0x80041000, // 02F9 RET 1 R8
+ 0x70020097, // 02FA JMP #0393
+ 0x5422003E, // 02FB LDINT R8 63
+ 0x1C200C08, // 02FC EQ R8 R6 R8
+ 0x78220000, // 02FD JMPF R8 #02FF
+ 0x70020093, // 02FE JMP #0393
+ 0x54220029, // 02FF LDINT R8 42
+ 0x1C200C08, // 0300 EQ R8 R6 R8
+ 0x7822001D, // 0301 JMPF R8 #0320
+ 0x1C200F05, // 0302 EQ R8 R7 K5
+ 0x78220003, // 0303 JMPF R8 #0308
+ 0x8C200B11, // 0304 GETMET R8 R5 K17
+ 0x7C200200, // 0305 CALL R8 1
+ 0x80041000, // 0306 RET 1 R8
+ 0x70020016, // 0307 JMP #031F
+ 0x1C200F09, // 0308 EQ R8 R7 K9
+ 0x78220005, // 0309 JMPF R8 #0310
+ 0x8C200706, // 030A GETMET R8 R3 K6
+ 0x88280B10, // 030B GETMBR R10 R5 K16
+ 0x582C0005, // 030C LDCONST R11 K5
+ 0x7C200600, // 030D CALL R8 3
+ 0x80041000, // 030E RET 1 R8
+ 0x7002000E, // 030F JMP #031F
+ 0x1C200F0D, // 0310 EQ R8 R7 K13
+ 0x78220005, // 0311 JMPF R8 #0318
+ 0x8C200706, // 0312 GETMET R8 R3 K6
+ 0x88280B0E, // 0313 GETMBR R10 R5 K14
+ 0x582C0009, // 0314 LDCONST R11 K9
+ 0x7C200600, // 0315 CALL R8 3
+ 0x80041000, // 0316 RET 1 R8
+ 0x70020006, // 0317 JMP #031F
+ 0x1C200F0F, // 0318 EQ R8 R7 K15
+ 0x78220004, // 0319 JMPF R8 #031F
+ 0x8C200706, // 031A GETMET R8 R3 K6
+ 0x88280B18, // 031B GETMBR R10 R5 K24
+ 0x4C2C0000, // 031C LDNIL R11
+ 0x7C200600, // 031D CALL R8 3
+ 0x80041000, // 031E RET 1 R8
+ 0x70020072, // 031F JMP #0393
+ 0x5422002A, // 0320 LDINT R8 43
+ 0x1C200C08, // 0321 EQ R8 R6 R8
+ 0x78220016, // 0322 JMPF R8 #033A
+ 0x1C200F05, // 0323 EQ R8 R7 K5
+ 0x78220007, // 0324 JMPF R8 #032D
+ 0x8C200706, // 0325 GETMET R8 R3 K6
+ 0x88280B16, // 0326 GETMBR R10 R5 K22
+ 0xB82E2400, // 0327 GETNGBL R11 K18
+ 0x8C2C1759, // 0328 GETMET R11 R11 K89
+ 0x7C2C0200, // 0329 CALL R11 1
+ 0x7C200600, // 032A CALL R8 3
+ 0x80041000, // 032B RET 1 R8
+ 0x7002000B, // 032C JMP #0339
+ 0x1C200F09, // 032D EQ R8 R7 K9
+ 0x78220009, // 032E JMPF R8 #0339
+ 0x8C200B11, // 032F GETMET R8 R5 K17
+ 0x7C200200, // 0330 CALL R8 1
+ 0x8C24110B, // 0331 GETMET R9 R8 K11
+ 0x4C2C0000, // 0332 LDNIL R11
+ 0x88300B16, // 0333 GETMBR R12 R5 K22
+ 0xB8362400, // 0334 GETNGBL R13 K18
+ 0x8C341B59, // 0335 GETMET R13 R13 K89
+ 0x7C340200, // 0336 CALL R13 1
+ 0x7C240800, // 0337 CALL R9 4
+ 0x80041000, // 0338 RET 1 R8
+ 0x70020058, // 0339 JMP #0393
+ 0x5422002B, // 033A LDINT R8 44
+ 0x1C200C08, // 033B EQ R8 R6 R8
+ 0x7822001C, // 033C JMPF R8 #035A
+ 0x1C200F05, // 033D EQ R8 R7 K5
+ 0x78220005, // 033E JMPF R8 #0345
+ 0x8C200706, // 033F GETMET R8 R3 K6
+ 0x88280B0E, // 0340 GETMBR R10 R5 K14
+ 0x582C0009, // 0341 LDCONST R11 K9
+ 0x7C200600, // 0342 CALL R8 3
+ 0x80041000, // 0343 RET 1 R8
+ 0x70020013, // 0344 JMP #0359
+ 0x1C200F09, // 0345 EQ R8 R7 K9
+ 0x78220005, // 0346 JMPF R8 #034D
+ 0x8C200706, // 0347 GETMET R8 R3 K6
+ 0x88280B0E, // 0348 GETMBR R10 R5 K14
+ 0x542E0003, // 0349 LDINT R11 4
+ 0x7C200600, // 034A CALL R8 3
+ 0x80041000, // 034B RET 1 R8
+ 0x7002000B, // 034C JMP #0359
+ 0x1C200F0D, // 034D EQ R8 R7 K13
+ 0x78220009, // 034E JMPF R8 #0359
+ 0x8C200B11, // 034F GETMET R8 R5 K17
+ 0x7C200200, // 0350 CALL R8 1
+ 0x8C24110B, // 0351 GETMET R9 R8 K11
+ 0x4C2C0000, // 0352 LDNIL R11
+ 0x8C300B5A, // 0353 GETMET R12 R5 K90
+ 0x88380B0E, // 0354 GETMBR R14 R5 K14
+ 0x543E0003, // 0355 LDINT R15 4
+ 0x7C300600, // 0356 CALL R12 3
+ 0x7C240600, // 0357 CALL R9 3
+ 0x80041000, // 0358 RET 1 R8
+ 0x70020038, // 0359 JMP #0393
+ 0x54220030, // 035A LDINT R8 49
+ 0x1C200C08, // 035B EQ R8 R6 R8
+ 0x78220007, // 035C JMPF R8 #0365
+ 0x1C200F0F, // 035D EQ R8 R7 K15
+ 0x78220004, // 035E JMPF R8 #0364
+ 0x8C200706, // 035F GETMET R8 R3 K6
+ 0x88280B0E, // 0360 GETMBR R10 R5 K14
+ 0x542E001D, // 0361 LDINT R11 30
+ 0x7C200600, // 0362 CALL R8 3
+ 0x80041000, // 0363 RET 1 R8
+ 0x7002002D, // 0364 JMP #0393
+ 0x5422001C, // 0365 LDINT R8 29
+ 0x1C200C08, // 0366 EQ R8 R6 R8
+ 0x7822002A, // 0367 JMPF R8 #0393
+ 0x1C200F0D, // 0368 EQ R8 R7 K13
+ 0x78220008, // 0369 JMPF R8 #0373
+ 0x8C200B11, // 036A GETMET R8 R5 K17
+ 0x7C200200, // 036B CALL R8 1
+ 0x8C24110B, // 036C GETMET R9 R8 K11
+ 0x4C2C0000, // 036D LDNIL R11
+ 0x88300B0C, // 036E GETMBR R12 R5 K12
+ 0x5436001E, // 036F LDINT R13 31
+ 0x7C240800, // 0370 CALL R9 4
+ 0x80041000, // 0371 RET 1 R8
+ 0x7002001F, // 0372 JMP #0393
+ 0x1C200F0F, // 0373 EQ R8 R7 K15
+ 0x7822001D, // 0374 JMPF R8 #0393
+ 0x8C200B11, // 0375 GETMET R8 R5 K17
+ 0x7C200200, // 0376 CALL R8 1
+ 0x88240136, // 0377 GETMBR R9 R0 K54
+ 0x8C24135B, // 0378 GETMET R9 R9 K91
+ 0x502C0200, // 0379 LDBOOL R11 1 0
+ 0x7C240400, // 037A CALL R9 2
+ 0x88280136, // 037B GETMBR R10 R0 K54
+ 0x8828155C, // 037C GETMBR R10 R10 K92
+ 0x602C0010, // 037D GETGBL R11 G16
+ 0x5C301200, // 037E MOVE R12 R9
+ 0x7C2C0200, // 037F CALL R11 1
+ 0xA802000D, // 0380 EXBLK 0 #038F
+ 0x5C301600, // 0381 MOVE R12 R11
+ 0x7C300000, // 0382 CALL R12 0
+ 0x5C341400, // 0383 MOVE R13 R10
+ 0x78360003, // 0384 JMPF R13 #0389
+ 0xB8360200, // 0385 GETNGBL R13 K1
+ 0x88341B5D, // 0386 GETMBR R13 R13 K93
+ 0x2034180D, // 0387 NE R13 R12 R13
+ 0x78360004, // 0388 JMPF R13 #038E
+ 0x8C34110B, // 0389 GETMET R13 R8 K11
+ 0x4C3C0000, // 038A LDNIL R15
+ 0x88400B0C, // 038B GETMBR R16 R5 K12
+ 0x5C441800, // 038C MOVE R17 R12
+ 0x7C340800, // 038D CALL R13 4
+ 0x7001FFF1, // 038E JMP #0381
+ 0x582C003E, // 038F LDCONST R11 K62
+ 0xAC2C0200, // 0390 CATCH R11 1 0
+ 0xB0080000, // 0391 RAISE 2 R0 R0
+ 0x80041000, // 0392 RET 1 R8
+ 0x60200003, // 0393 GETGBL R8 G3
+ 0x5C240000, // 0394 MOVE R9 R0
+ 0x7C200200, // 0395 CALL R8 1
+ 0x8C20115E, // 0396 GETMET R8 R8 K94
+ 0x5C280200, // 0397 MOVE R10 R1
+ 0x5C2C0400, // 0398 MOVE R11 R2
+ 0x5C300600, // 0399 MOVE R12 R3
+ 0x7C200800, // 039A CALL R8 4
+ 0x80041000, // 039B RET 1 R8
})
)
);
@@ -1348,7 +1337,7 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[745]) { /* code */
+ ( &(const binstruction[737]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0xB8160200, // 0001 GETNGBL R5 K1
0x88140B02, // 0002 GETMBR R5 R5 K2
@@ -1449,10 +1438,10 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
0x80041000, // 0061 RET 1 R8
0x70020000, // 0062 JMP #0064
0xB0063119, // 0063 RAISE 1 K24 K25
- 0x70020281, // 0064 JMP #02E7
+ 0x70020279, // 0064 JMP #02DF
0x5422003D, // 0065 LDINT R8 62
0x1C200C08, // 0066 EQ R8 R6 R8
- 0x782201E2, // 0067 JMPF R8 #024B
+ 0x782201DD, // 0067 JMPF R8 #0246
0x1C200F0E, // 0068 EQ R8 R7 K14
0x7822001D, // 0069 JMPF R8 #0088
0x8C200506, // 006A GETMET R8 R2 K6
@@ -1484,7 +1473,7 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
0x7C280800, // 0084 CALL R10 4
0x900E0910, // 0085 SETMBR R3 K4 K16
0x80041200, // 0086 RET 1 R9
- 0x700201C1, // 0087 JMP #024A
+ 0x700201BC, // 0087 JMP #0245
0x1C200F05, // 0088 EQ R8 R7 K5
0x7822003C, // 0089 JMPF R8 #00C7
0x8C200506, // 008A GETMET R8 R2 K6
@@ -1547,7 +1536,7 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
0x7C3C0800, // 00C3 CALL R15 4
0x900E0907, // 00C4 SETMBR R3 K4 K7
0x80041C00, // 00C5 RET 1 R14
- 0x70020182, // 00C6 JMP #024A
+ 0x7002017D, // 00C6 JMP #0245
0x54220003, // 00C7 LDINT R8 4
0x1C200E08, // 00C8 EQ R8 R7 R8
0x7822003C, // 00C9 JMPF R8 #0107
@@ -1611,7 +1600,7 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
0x54420004, // 0103 LDINT R16 5
0x900E0810, // 0104 SETMBR R3 K4 R16
0x80041E00, // 0105 RET 1 R15
- 0x70020142, // 0106 JMP #024A
+ 0x7002013D, // 0106 JMP #0245
0x5422000A, // 0107 LDINT R8 11
0x1C200E08, // 0108 EQ R8 R7 R8
0x7822000B, // 0109 JMPF R8 #0116
@@ -1626,474 +1615,466 @@ be_local_closure(class_Matter_Plugin_Root_invoke_request, /* name */
0x900E3409, // 0112 SETMBR R3 K26 R9
0x4C240000, // 0113 LDNIL R9
0x80041200, // 0114 RET 1 R9
- 0x70020133, // 0115 JMP #024A
+ 0x7002012E, // 0115 JMP #0245
0x54220005, // 0116 LDINT R8 6
0x1C200E08, // 0117 EQ R8 R7 R8
- 0x782200BB, // 0118 JMPF R8 #01D5
- 0xB8224400, // 0119 GETNGBL R8 K34
- 0x8C20112C, // 011A GETMET R8 R8 K44
- 0x60280008, // 011B GETGBL R10 G8
- 0x5C2C0400, // 011C MOVE R11 R2
- 0x7C280200, // 011D CALL R10 1
- 0x002A5A0A, // 011E ADD R10 K45 R10
- 0x542E0003, // 011F LDINT R11 4
- 0x7C200600, // 0120 CALL R8 3
- 0x8C200506, // 0121 GETMET R8 R2 K6
- 0x58280005, // 0122 LDCONST R10 K5
- 0x7C200400, // 0123 CALL R8 2
- 0x8C240506, // 0124 GETMET R9 R2 K6
- 0x582C0007, // 0125 LDCONST R11 K7
- 0x7C240400, // 0126 CALL R9 2
- 0x6028000C, // 0127 GETGBL R10 G12
- 0x5C2C1200, // 0128 MOVE R11 R9
- 0x7C280200, // 0129 CALL R10 1
- 0x1C281505, // 012A EQ R10 R10 K5
- 0x782A0000, // 012B JMPF R10 #012D
- 0x4C240000, // 012C LDNIL R9
- 0x8C280506, // 012D GETMET R10 R2 K6
- 0x5830000E, // 012E LDCONST R12 K14
- 0x7C280400, // 012F CALL R10 2
- 0x8C2C0506, // 0130 GETMET R11 R2 K6
- 0x58340010, // 0131 LDCONST R13 K16
- 0x7C2C0400, // 0132 CALL R11 2
- 0x8C300506, // 0133 GETMET R12 R2 K6
- 0x543A0003, // 0134 LDINT R14 4
- 0x7C300400, // 0135 CALL R12 2
- 0x8C34032E, // 0136 GETMET R13 R1 K46
- 0x7C340200, // 0137 CALL R13 1
- 0x4C380000, // 0138 LDNIL R14
- 0x1C341A0E, // 0139 EQ R13 R13 R14
- 0x78360006, // 013A JMPF R13 #0142
- 0xB8364400, // 013B GETNGBL R13 K34
- 0x8C341B2C, // 013C GETMET R13 R13 K44
- 0x583C002F, // 013D LDCONST R15 K47
- 0x5840000E, // 013E LDCONST R16 K14
- 0x7C340600, // 013F CALL R13 3
- 0x4C340000, // 0140 LDNIL R13
- 0x80041A00, // 0141 RET 1 R13
- 0x88340116, // 0142 GETMBR R13 R0 K22
- 0x88341B30, // 0143 GETMBR R13 R13 K48
- 0x8C341B31, // 0144 GETMET R13 R13 K49
- 0x7C340200, // 0145 CALL R13 1
- 0x8C381B32, // 0146 GETMET R14 R13 K50
- 0x8C40032E, // 0147 GETMET R16 R1 K46
- 0x7C400200, // 0148 CALL R16 1
- 0x7C380400, // 0149 CALL R14 2
- 0x8C381B33, // 014A GETMET R14 R13 K51
- 0x5C401000, // 014B MOVE R16 R8
- 0x5C441200, // 014C MOVE R17 R9
- 0x7C380600, // 014D CALL R14 3
- 0x8C381B34, // 014E GETMET R14 R13 K52
- 0x5C401400, // 014F MOVE R16 R10
- 0x7C380400, // 0150 CALL R14 2
- 0x8C381B35, // 0151 GETMET R14 R13 K53
- 0x5C401600, // 0152 MOVE R16 R11
- 0x5C441800, // 0153 MOVE R17 R12
- 0x7C380600, // 0154 CALL R14 3
- 0x8C381B36, // 0155 GETMET R14 R13 K54
- 0x8C400337, // 0156 GETMET R16 R1 K55
- 0x7C400200, // 0157 CALL R16 1
- 0x7C380400, // 0158 CALL R14 2
- 0xB83A0200, // 0159 GETNGBL R14 K1
- 0x88381D02, // 015A GETMBR R14 R14 K2
- 0x8C381D38, // 015B GETMET R14 R14 K56
- 0x5C401000, // 015C MOVE R16 R8
- 0x7C380400, // 015D CALL R14 2
- 0x8C3C1D39, // 015E GETMET R15 R14 K57
- 0x54460005, // 015F LDINT R17 6
- 0x7C3C0400, // 0160 CALL R15 2
- 0x8C401F06, // 0161 GETMET R16 R15 K6
- 0x544A0014, // 0162 LDINT R18 21
- 0x7C400400, // 0163 CALL R16 2
- 0x8C441F06, // 0164 GETMET R17 R15 K6
- 0x544E0010, // 0165 LDINT R19 17
- 0x7C440400, // 0166 CALL R17 2
- 0x5C482000, // 0167 MOVE R18 R16
- 0x784A0001, // 0168 JMPF R18 #016B
- 0x5C482200, // 0169 MOVE R18 R17
- 0x744A0006, // 016A JMPT R18 #0172
- 0xB84A4400, // 016B GETNGBL R18 K34
- 0x8C48252C, // 016C GETMET R18 R18 K44
- 0x5850003A, // 016D LDCONST R20 K58
- 0x5854000E, // 016E LDCONST R21 K14
- 0x7C480600, // 016F CALL R18 3
- 0x50480000, // 0170 LDBOOL R18 0 0
- 0x80042400, // 0171 RET 1 R18
- 0x60480004, // 0172 GETGBL R18 G4
- 0x5C4C2000, // 0173 MOVE R19 R16
- 0x7C480200, // 0174 CALL R18 1
- 0x1C48253B, // 0175 EQ R18 R18 K59
- 0x784A0007, // 0176 JMPF R18 #017F
- 0xB84A7800, // 0177 GETNGBL R18 K60
- 0x8C48253D, // 0178 GETMET R18 R18 K61
- 0x5C502000, // 0179 MOVE R20 R16
- 0x7C480400, // 017A CALL R18 2
- 0x8C48253E, // 017B GETMET R18 R18 K62
- 0x7C480200, // 017C CALL R18 1
- 0x5C402400, // 017D MOVE R16 R18
- 0x70020002, // 017E JMP #0182
- 0x8C48213E, // 017F GETMET R18 R16 K62
- 0x7C480200, // 0180 CALL R18 1
- 0x5C402400, // 0181 MOVE R16 R18
- 0x60480004, // 0182 GETGBL R18 G4
- 0x5C4C2200, // 0183 MOVE R19 R17
- 0x7C480200, // 0184 CALL R18 1
- 0x1C48253B, // 0185 EQ R18 R18 K59
- 0x784A0007, // 0186 JMPF R18 #018F
- 0xB84A7800, // 0187 GETNGBL R18 K60
- 0x8C48253D, // 0188 GETMET R18 R18 K61
- 0x5C502200, // 0189 MOVE R20 R17
- 0x7C480400, // 018A CALL R18 2
- 0x8C48253E, // 018B GETMET R18 R18 K62
- 0x7C480200, // 018C CALL R18 1
- 0x5C442400, // 018D MOVE R17 R18
- 0x70020002, // 018E JMP #0192
- 0x8C48233E, // 018F GETMET R18 R17 K62
+ 0x782200B8, // 0118 JMPF R8 #01D2
+ 0xB8225800, // 0119 GETNGBL R8 K44
+ 0x60240008, // 011A GETGBL R9 G8
+ 0x5C280400, // 011B MOVE R10 R2
+ 0x7C240200, // 011C CALL R9 1
+ 0x00265A09, // 011D ADD R9 K45 R9
+ 0x542A0003, // 011E LDINT R10 4
+ 0x7C200400, // 011F CALL R8 2
+ 0x8C200506, // 0120 GETMET R8 R2 K6
+ 0x58280005, // 0121 LDCONST R10 K5
+ 0x7C200400, // 0122 CALL R8 2
+ 0x8C240506, // 0123 GETMET R9 R2 K6
+ 0x582C0007, // 0124 LDCONST R11 K7
+ 0x7C240400, // 0125 CALL R9 2
+ 0x6028000C, // 0126 GETGBL R10 G12
+ 0x5C2C1200, // 0127 MOVE R11 R9
+ 0x7C280200, // 0128 CALL R10 1
+ 0x1C281505, // 0129 EQ R10 R10 K5
+ 0x782A0000, // 012A JMPF R10 #012C
+ 0x4C240000, // 012B LDNIL R9
+ 0x8C280506, // 012C GETMET R10 R2 K6
+ 0x5830000E, // 012D LDCONST R12 K14
+ 0x7C280400, // 012E CALL R10 2
+ 0x8C2C0506, // 012F GETMET R11 R2 K6
+ 0x58340010, // 0130 LDCONST R13 K16
+ 0x7C2C0400, // 0131 CALL R11 2
+ 0x8C300506, // 0132 GETMET R12 R2 K6
+ 0x543A0003, // 0133 LDINT R14 4
+ 0x7C300400, // 0134 CALL R12 2
+ 0x8C34032E, // 0135 GETMET R13 R1 K46
+ 0x7C340200, // 0136 CALL R13 1
+ 0x4C380000, // 0137 LDNIL R14
+ 0x1C341A0E, // 0138 EQ R13 R13 R14
+ 0x78360005, // 0139 JMPF R13 #0140
+ 0xB8365800, // 013A GETNGBL R13 K44
+ 0x5838002F, // 013B LDCONST R14 K47
+ 0x583C000E, // 013C LDCONST R15 K14
+ 0x7C340400, // 013D CALL R13 2
+ 0x4C340000, // 013E LDNIL R13
+ 0x80041A00, // 013F RET 1 R13
+ 0x88340116, // 0140 GETMBR R13 R0 K22
+ 0x88341B30, // 0141 GETMBR R13 R13 K48
+ 0x8C341B31, // 0142 GETMET R13 R13 K49
+ 0x7C340200, // 0143 CALL R13 1
+ 0x8C381B32, // 0144 GETMET R14 R13 K50
+ 0x8C40032E, // 0145 GETMET R16 R1 K46
+ 0x7C400200, // 0146 CALL R16 1
+ 0x7C380400, // 0147 CALL R14 2
+ 0x8C381B33, // 0148 GETMET R14 R13 K51
+ 0x5C401000, // 0149 MOVE R16 R8
+ 0x5C441200, // 014A MOVE R17 R9
+ 0x7C380600, // 014B CALL R14 3
+ 0x8C381B34, // 014C GETMET R14 R13 K52
+ 0x5C401400, // 014D MOVE R16 R10
+ 0x7C380400, // 014E CALL R14 2
+ 0x8C381B35, // 014F GETMET R14 R13 K53
+ 0x5C401600, // 0150 MOVE R16 R11
+ 0x5C441800, // 0151 MOVE R17 R12
+ 0x7C380600, // 0152 CALL R14 3
+ 0x8C381B36, // 0153 GETMET R14 R13 K54
+ 0x8C400337, // 0154 GETMET R16 R1 K55
+ 0x7C400200, // 0155 CALL R16 1
+ 0x7C380400, // 0156 CALL R14 2
+ 0xB83A0200, // 0157 GETNGBL R14 K1
+ 0x88381D02, // 0158 GETMBR R14 R14 K2
+ 0x8C381D38, // 0159 GETMET R14 R14 K56
+ 0x5C401000, // 015A MOVE R16 R8
+ 0x7C380400, // 015B CALL R14 2
+ 0x8C3C1D39, // 015C GETMET R15 R14 K57
+ 0x54460005, // 015D LDINT R17 6
+ 0x7C3C0400, // 015E CALL R15 2
+ 0x8C401F06, // 015F GETMET R16 R15 K6
+ 0x544A0014, // 0160 LDINT R18 21
+ 0x7C400400, // 0161 CALL R16 2
+ 0x8C441F06, // 0162 GETMET R17 R15 K6
+ 0x544E0010, // 0163 LDINT R19 17
+ 0x7C440400, // 0164 CALL R17 2
+ 0x5C482000, // 0165 MOVE R18 R16
+ 0x784A0001, // 0166 JMPF R18 #0169
+ 0x5C482200, // 0167 MOVE R18 R17
+ 0x744A0005, // 0168 JMPT R18 #016F
+ 0xB84A5800, // 0169 GETNGBL R18 K44
+ 0x584C003A, // 016A LDCONST R19 K58
+ 0x5850000E, // 016B LDCONST R20 K14
+ 0x7C480400, // 016C CALL R18 2
+ 0x50480000, // 016D LDBOOL R18 0 0
+ 0x80042400, // 016E RET 1 R18
+ 0x60480004, // 016F GETGBL R18 G4
+ 0x5C4C2000, // 0170 MOVE R19 R16
+ 0x7C480200, // 0171 CALL R18 1
+ 0x1C48253B, // 0172 EQ R18 R18 K59
+ 0x784A0007, // 0173 JMPF R18 #017C
+ 0xB84A7800, // 0174 GETNGBL R18 K60
+ 0x8C48253D, // 0175 GETMET R18 R18 K61
+ 0x5C502000, // 0176 MOVE R20 R16
+ 0x7C480400, // 0177 CALL R18 2
+ 0x8C48253E, // 0178 GETMET R18 R18 K62
+ 0x7C480200, // 0179 CALL R18 1
+ 0x5C402400, // 017A MOVE R16 R18
+ 0x70020002, // 017B JMP #017F
+ 0x8C48213E, // 017C GETMET R18 R16 K62
+ 0x7C480200, // 017D CALL R18 1
+ 0x5C402400, // 017E MOVE R16 R18
+ 0x60480004, // 017F GETGBL R18 G4
+ 0x5C4C2200, // 0180 MOVE R19 R17
+ 0x7C480200, // 0181 CALL R18 1
+ 0x1C48253B, // 0182 EQ R18 R18 K59
+ 0x784A0007, // 0183 JMPF R18 #018C
+ 0xB84A7800, // 0184 GETNGBL R18 K60
+ 0x8C48253D, // 0185 GETMET R18 R18 K61
+ 0x5C502200, // 0186 MOVE R20 R17
+ 0x7C480400, // 0187 CALL R18 2
+ 0x8C48253E, // 0188 GETMET R18 R18 K62
+ 0x7C480200, // 0189 CALL R18 1
+ 0x5C442400, // 018A MOVE R17 R18
+ 0x70020002, // 018B JMP #018F
+ 0x8C48233E, // 018C GETMET R18 R17 K62
+ 0x7C480200, // 018D CALL R18 1
+ 0x5C442400, // 018E MOVE R17 R18
+ 0x8C48033F, // 018F GETMET R18 R1 K63
0x7C480200, // 0190 CALL R18 1
- 0x5C442400, // 0191 MOVE R17 R18
- 0x8C48033F, // 0192 GETMET R18 R1 K63
- 0x7C480200, // 0193 CALL R18 1
- 0x404E0F40, // 0194 CONNECT R19 K7 K64
- 0x94482413, // 0195 GETIDX R18 R18 R19
- 0x604C0015, // 0196 GETGBL R19 G21
- 0x7C4C0000, // 0197 CALL R19 0
- 0x8C4C2741, // 0198 GETMET R19 R19 K65
- 0x58540042, // 0199 LDCONST R21 K66
- 0x7C4C0400, // 019A CALL R19 2
- 0x8C500943, // 019B GETMET R20 R4 K67
- 0x7C500200, // 019C CALL R20 1
- 0x8C542144, // 019D GETMET R21 R16 K68
- 0x7C540200, // 019E CALL R21 1
- 0x8C542B45, // 019F GETMET R21 R21 K69
- 0x7C540200, // 01A0 CALL R21 1
- 0x8C582946, // 01A1 GETMET R22 R20 K70
- 0x5C602400, // 01A2 MOVE R24 R18
- 0x5C642A00, // 01A3 MOVE R25 R21
- 0x5C682600, // 01A4 MOVE R26 R19
- 0x546E0007, // 01A5 LDINT R27 8
- 0x7C580A00, // 01A6 CALL R22 5
- 0x885C0312, // 01A7 GETMBR R23 R1 K18
- 0x785E0001, // 01A8 JMPF R23 #01AB
- 0x885C0312, // 01A9 GETMBR R23 R1 K18
- 0x70020001, // 01AA JMP #01AD
- 0x885C0116, // 01AB GETMBR R23 R0 K22
- 0x885C2F47, // 01AC GETMBR R23 R23 K71
- 0x8C601B48, // 01AD GETMET R24 R13 K72
- 0x5C682000, // 01AE MOVE R26 R16
- 0x5C6C2200, // 01AF MOVE R27 R17
- 0x5C702C00, // 01B0 MOVE R28 R22
- 0x5C742E00, // 01B1 MOVE R29 R23
- 0x7C600A00, // 01B2 CALL R24 5
- 0x8C601B49, // 01B3 GETMET R24 R13 K73
- 0x7C600200, // 01B4 CALL R24 1
- 0x88600116, // 01B5 GETMBR R24 R0 K22
- 0x8C60314A, // 01B6 GETMET R24 R24 K74
- 0x5C681A00, // 01B7 MOVE R26 R13
- 0x7C600400, // 01B8 CALL R24 2
- 0x8C60034B, // 01B9 GETMET R24 R1 K75
- 0x7C600200, // 01BA CALL R24 1
- 0x78620002, // 01BB JMPF R24 #01BF
- 0x8C60034C, // 01BC GETMET R24 R1 K76
- 0x546A003B, // 01BD LDINT R26 60
- 0x7C600400, // 01BE CALL R24 2
- 0x8C601B4D, // 01BF GETMET R24 R13 K77
- 0x7C600200, // 01C0 CALL R24 1
- 0x8C601B4E, // 01C1 GETMET R24 R13 K78
- 0x7C600200, // 01C2 CALL R24 1
- 0x8C600B09, // 01C3 GETMET R24 R5 K9
- 0x7C600200, // 01C4 CALL R24 1
- 0x8C64310A, // 01C5 GETMET R25 R24 K10
- 0x586C0005, // 01C6 LDCONST R27 K5
- 0x88700B0B, // 01C7 GETMBR R28 R5 K11
- 0xB8760200, // 01C8 GETNGBL R29 K1
- 0x88743B2B, // 01C9 GETMBR R29 R29 K43
- 0x7C640800, // 01CA CALL R25 4
- 0x8C64310A, // 01CB GETMET R25 R24 K10
- 0x586C0007, // 01CC LDCONST R27 K7
- 0x88700B0B, // 01CD GETMBR R28 R5 K11
- 0x8C741B4F, // 01CE GETMET R29 R13 K79
- 0x7C740200, // 01CF CALL R29 1
- 0x7C640800, // 01D0 CALL R25 4
- 0x54660007, // 01D1 LDINT R25 8
- 0x900E0819, // 01D2 SETMBR R3 K4 R25
- 0x80043000, // 01D3 RET 1 R24
- 0x70020074, // 01D4 JMP #024A
- 0x54220008, // 01D5 LDINT R8 9
- 0x1C200E08, // 01D6 EQ R8 R7 R8
- 0x7822002C, // 01D7 JMPF R8 #0205
- 0x8C200506, // 01D8 GETMET R8 R2 K6
- 0x58280005, // 01D9 LDCONST R10 K5
- 0x7C200400, // 01DA CALL R8 2
- 0x8C240350, // 01DB GETMET R9 R1 K80
- 0x5C2C1000, // 01DC MOVE R11 R8
- 0x7C240400, // 01DD CALL R9 2
- 0xB8264400, // 01DE GETNGBL R9 K34
- 0x8C24132C, // 01DF GETMET R9 R9 K44
- 0x602C0018, // 01E0 GETGBL R11 G24
- 0x58300051, // 01E1 LDCONST R12 K81
- 0x88340312, // 01E2 GETMBR R13 R1 K18
- 0x8C341B52, // 01E3 GETMET R13 R13 K82
- 0x7C340200, // 01E4 CALL R13 1
- 0x8C341B44, // 01E5 GETMET R13 R13 K68
- 0x7C340200, // 01E6 CALL R13 1
- 0x8C341B45, // 01E7 GETMET R13 R13 K69
- 0x7C340200, // 01E8 CALL R13 1
- 0x8C341B53, // 01E9 GETMET R13 R13 K83
- 0x7C340200, // 01EA CALL R13 1
- 0x60380008, // 01EB GETGBL R14 G8
- 0x5C3C1000, // 01EC MOVE R15 R8
- 0x7C380200, // 01ED CALL R14 1
- 0x7C2C0600, // 01EE CALL R11 3
- 0x58300010, // 01EF LDCONST R12 K16
- 0x7C240600, // 01F0 CALL R9 3
- 0x8C240B09, // 01F1 GETMET R9 R5 K9
- 0x7C240200, // 01F2 CALL R9 1
- 0x8C28130A, // 01F3 GETMET R10 R9 K10
- 0x58300005, // 01F4 LDCONST R12 K5
- 0x88340B0B, // 01F5 GETMBR R13 R5 K11
- 0xB83A0200, // 01F6 GETNGBL R14 K1
- 0x88381D2B, // 01F7 GETMBR R14 R14 K43
- 0x7C280800, // 01F8 CALL R10 4
- 0x8C28130A, // 01F9 GETMET R10 R9 K10
- 0x58300007, // 01FA LDCONST R12 K7
- 0x88340B0B, // 01FB GETMBR R13 R5 K11
- 0x8C380354, // 01FC GETMET R14 R1 K84
- 0x7C380200, // 01FD CALL R14 1
- 0x8C381D4F, // 01FE GETMET R14 R14 K79
- 0x7C380200, // 01FF CALL R14 1
- 0x7C280800, // 0200 CALL R10 4
- 0x542A0007, // 0201 LDINT R10 8
- 0x900E080A, // 0202 SETMBR R3 K4 R10
- 0x80041200, // 0203 RET 1 R9
- 0x70020044, // 0204 JMP #024A
- 0x54220009, // 0205 LDINT R8 10
- 0x1C200E08, // 0206 EQ R8 R7 R8
- 0x78220041, // 0207 JMPF R8 #024A
- 0x8C200506, // 0208 GETMET R8 R2 K6
- 0x58280005, // 0209 LDCONST R10 K5
- 0x7C200400, // 020A CALL R8 2
- 0x60240008, // 020B GETGBL R9 G8
- 0x5C281000, // 020C MOVE R10 R8
- 0x7C240200, // 020D CALL R9 1
- 0x0026AA09, // 020E ADD R9 K85 R9
- 0x900E5809, // 020F SETMBR R3 K44 R9
- 0x60240010, // 0210 GETGBL R9 G16
- 0x88280116, // 0211 GETMBR R10 R0 K22
- 0x88281530, // 0212 GETMBR R10 R10 K48
- 0x8C281556, // 0213 GETMET R10 R10 K86
- 0x7C280200, // 0214 CALL R10 1
- 0x7C240200, // 0215 CALL R9 1
- 0xA8020020, // 0216 EXBLK 0 #0238
- 0x5C281200, // 0217 MOVE R10 R9
- 0x7C280000, // 0218 CALL R10 0
- 0x8C2C154F, // 0219 GETMET R11 R10 K79
+ 0x404E0F40, // 0191 CONNECT R19 K7 K64
+ 0x94482413, // 0192 GETIDX R18 R18 R19
+ 0x604C0015, // 0193 GETGBL R19 G21
+ 0x7C4C0000, // 0194 CALL R19 0
+ 0x8C4C2741, // 0195 GETMET R19 R19 K65
+ 0x58540042, // 0196 LDCONST R21 K66
+ 0x7C4C0400, // 0197 CALL R19 2
+ 0x8C500943, // 0198 GETMET R20 R4 K67
+ 0x7C500200, // 0199 CALL R20 1
+ 0x8C542144, // 019A GETMET R21 R16 K68
+ 0x7C540200, // 019B CALL R21 1
+ 0x8C542B45, // 019C GETMET R21 R21 K69
+ 0x7C540200, // 019D CALL R21 1
+ 0x8C582946, // 019E GETMET R22 R20 K70
+ 0x5C602400, // 019F MOVE R24 R18
+ 0x5C642A00, // 01A0 MOVE R25 R21
+ 0x5C682600, // 01A1 MOVE R26 R19
+ 0x546E0007, // 01A2 LDINT R27 8
+ 0x7C580A00, // 01A3 CALL R22 5
+ 0x885C0312, // 01A4 GETMBR R23 R1 K18
+ 0x785E0001, // 01A5 JMPF R23 #01A8
+ 0x885C0312, // 01A6 GETMBR R23 R1 K18
+ 0x70020001, // 01A7 JMP #01AA
+ 0x885C0116, // 01A8 GETMBR R23 R0 K22
+ 0x885C2F47, // 01A9 GETMBR R23 R23 K71
+ 0x8C601B48, // 01AA GETMET R24 R13 K72
+ 0x5C682000, // 01AB MOVE R26 R16
+ 0x5C6C2200, // 01AC MOVE R27 R17
+ 0x5C702C00, // 01AD MOVE R28 R22
+ 0x5C742E00, // 01AE MOVE R29 R23
+ 0x7C600A00, // 01AF CALL R24 5
+ 0x8C601B49, // 01B0 GETMET R24 R13 K73
+ 0x7C600200, // 01B1 CALL R24 1
+ 0x88600116, // 01B2 GETMBR R24 R0 K22
+ 0x8C60314A, // 01B3 GETMET R24 R24 K74
+ 0x5C681A00, // 01B4 MOVE R26 R13
+ 0x7C600400, // 01B5 CALL R24 2
+ 0x8C60034B, // 01B6 GETMET R24 R1 K75
+ 0x7C600200, // 01B7 CALL R24 1
+ 0x78620002, // 01B8 JMPF R24 #01BC
+ 0x8C60034C, // 01B9 GETMET R24 R1 K76
+ 0x546A003B, // 01BA LDINT R26 60
+ 0x7C600400, // 01BB CALL R24 2
+ 0x8C601B4D, // 01BC GETMET R24 R13 K77
+ 0x7C600200, // 01BD CALL R24 1
+ 0x8C601B4E, // 01BE GETMET R24 R13 K78
+ 0x7C600200, // 01BF CALL R24 1
+ 0x8C600B09, // 01C0 GETMET R24 R5 K9
+ 0x7C600200, // 01C1 CALL R24 1
+ 0x8C64310A, // 01C2 GETMET R25 R24 K10
+ 0x586C0005, // 01C3 LDCONST R27 K5
+ 0x88700B0B, // 01C4 GETMBR R28 R5 K11
+ 0xB8760200, // 01C5 GETNGBL R29 K1
+ 0x88743B2B, // 01C6 GETMBR R29 R29 K43
+ 0x7C640800, // 01C7 CALL R25 4
+ 0x8C64310A, // 01C8 GETMET R25 R24 K10
+ 0x586C0007, // 01C9 LDCONST R27 K7
+ 0x88700B0B, // 01CA GETMBR R28 R5 K11
+ 0x8C741B4F, // 01CB GETMET R29 R13 K79
+ 0x7C740200, // 01CC CALL R29 1
+ 0x7C640800, // 01CD CALL R25 4
+ 0x54660007, // 01CE LDINT R25 8
+ 0x900E0819, // 01CF SETMBR R3 K4 R25
+ 0x80043000, // 01D0 RET 1 R24
+ 0x70020072, // 01D1 JMP #0245
+ 0x54220008, // 01D2 LDINT R8 9
+ 0x1C200E08, // 01D3 EQ R8 R7 R8
+ 0x7822002B, // 01D4 JMPF R8 #0201
+ 0x8C200506, // 01D5 GETMET R8 R2 K6
+ 0x58280005, // 01D6 LDCONST R10 K5
+ 0x7C200400, // 01D7 CALL R8 2
+ 0x8C240350, // 01D8 GETMET R9 R1 K80
+ 0x5C2C1000, // 01D9 MOVE R11 R8
+ 0x7C240400, // 01DA CALL R9 2
+ 0xB8265800, // 01DB GETNGBL R9 K44
+ 0x60280018, // 01DC GETGBL R10 G24
+ 0x582C0051, // 01DD LDCONST R11 K81
+ 0x88300312, // 01DE GETMBR R12 R1 K18
+ 0x8C301952, // 01DF GETMET R12 R12 K82
+ 0x7C300200, // 01E0 CALL R12 1
+ 0x8C301944, // 01E1 GETMET R12 R12 K68
+ 0x7C300200, // 01E2 CALL R12 1
+ 0x8C301945, // 01E3 GETMET R12 R12 K69
+ 0x7C300200, // 01E4 CALL R12 1
+ 0x8C301953, // 01E5 GETMET R12 R12 K83
+ 0x7C300200, // 01E6 CALL R12 1
+ 0x60340008, // 01E7 GETGBL R13 G8
+ 0x5C381000, // 01E8 MOVE R14 R8
+ 0x7C340200, // 01E9 CALL R13 1
+ 0x7C280600, // 01EA CALL R10 3
+ 0x582C0010, // 01EB LDCONST R11 K16
+ 0x7C240400, // 01EC CALL R9 2
+ 0x8C240B09, // 01ED GETMET R9 R5 K9
+ 0x7C240200, // 01EE CALL R9 1
+ 0x8C28130A, // 01EF GETMET R10 R9 K10
+ 0x58300005, // 01F0 LDCONST R12 K5
+ 0x88340B0B, // 01F1 GETMBR R13 R5 K11
+ 0xB83A0200, // 01F2 GETNGBL R14 K1
+ 0x88381D2B, // 01F3 GETMBR R14 R14 K43
+ 0x7C280800, // 01F4 CALL R10 4
+ 0x8C28130A, // 01F5 GETMET R10 R9 K10
+ 0x58300007, // 01F6 LDCONST R12 K7
+ 0x88340B0B, // 01F7 GETMBR R13 R5 K11
+ 0x8C380354, // 01F8 GETMET R14 R1 K84
+ 0x7C380200, // 01F9 CALL R14 1
+ 0x8C381D4F, // 01FA GETMET R14 R14 K79
+ 0x7C380200, // 01FB CALL R14 1
+ 0x7C280800, // 01FC CALL R10 4
+ 0x542A0007, // 01FD LDINT R10 8
+ 0x900E080A, // 01FE SETMBR R3 K4 R10
+ 0x80041200, // 01FF RET 1 R9
+ 0x70020043, // 0200 JMP #0245
+ 0x54220009, // 0201 LDINT R8 10
+ 0x1C200E08, // 0202 EQ R8 R7 R8
+ 0x78220040, // 0203 JMPF R8 #0245
+ 0x8C200506, // 0204 GETMET R8 R2 K6
+ 0x58280005, // 0205 LDCONST R10 K5
+ 0x7C200400, // 0206 CALL R8 2
+ 0x60240008, // 0207 GETGBL R9 G8
+ 0x5C281000, // 0208 MOVE R10 R8
+ 0x7C240200, // 0209 CALL R9 1
+ 0x0026AA09, // 020A ADD R9 K85 R9
+ 0x900E5809, // 020B SETMBR R3 K44 R9
+ 0x60240010, // 020C GETGBL R9 G16
+ 0x88280116, // 020D GETMBR R10 R0 K22
+ 0x88281530, // 020E GETMBR R10 R10 K48
+ 0x8C281556, // 020F GETMET R10 R10 K86
+ 0x7C280200, // 0210 CALL R10 1
+ 0x7C240200, // 0211 CALL R9 1
+ 0xA8020020, // 0212 EXBLK 0 #0234
+ 0x5C281200, // 0213 MOVE R10 R9
+ 0x7C280000, // 0214 CALL R10 0
+ 0x8C2C154F, // 0215 GETMET R11 R10 K79
+ 0x7C2C0200, // 0216 CALL R11 1
+ 0x1C2C1608, // 0217 EQ R11 R11 R8
+ 0x782E0018, // 0218 JMPF R11 #0232
+ 0x8C2C1557, // 0219 GETMET R11 R10 K87
0x7C2C0200, // 021A CALL R11 1
- 0x1C2C1608, // 021B EQ R11 R11 R8
- 0x782E0018, // 021C JMPF R11 #0236
- 0x8C2C1557, // 021D GETMET R11 R10 K87
- 0x7C2C0200, // 021E CALL R11 1
- 0xB82E4400, // 021F GETNGBL R11 K34
- 0x8C2C1758, // 0220 GETMET R11 R11 K88
- 0x543607CF, // 0221 LDINT R13 2000
- 0x84380000, // 0222 CLOSURE R14 P0
- 0x7C2C0600, // 0223 CALL R11 3
- 0x8C2C0B09, // 0224 GETMET R11 R5 K9
- 0x7C2C0200, // 0225 CALL R11 1
- 0x8C30170A, // 0226 GETMET R12 R11 K10
- 0x58380005, // 0227 LDCONST R14 K5
- 0x883C0B0B, // 0228 GETMBR R15 R5 K11
- 0xB8420200, // 0229 GETNGBL R16 K1
- 0x8840212B, // 022A GETMBR R16 R16 K43
- 0x7C300800, // 022B CALL R12 4
- 0x8C30170A, // 022C GETMET R12 R11 K10
- 0x58380007, // 022D LDCONST R14 K7
- 0x883C0B0B, // 022E GETMBR R15 R5 K11
- 0x5C401000, // 022F MOVE R16 R8
- 0x7C300800, // 0230 CALL R12 4
- 0x54320007, // 0231 LDINT R12 8
- 0x900E080C, // 0232 SETMBR R3 K4 R12
- 0xA0000000, // 0233 CLOSE R0
- 0xA8040001, // 0234 EXBLK 1 1
- 0x80041600, // 0235 RET 1 R11
- 0xA0240000, // 0236 CLOSE R9
- 0x7001FFDE, // 0237 JMP #0217
- 0x58240059, // 0238 LDCONST R9 K89
- 0xAC240200, // 0239 CATCH R9 1 0
- 0xB0080000, // 023A RAISE 2 R0 R0
- 0xB8264400, // 023B GETNGBL R9 K34
- 0x8C24132C, // 023C GETMET R9 R9 K44
- 0x602C0008, // 023D GETGBL R11 G8
- 0x5C301000, // 023E MOVE R12 R8
- 0x7C2C0200, // 023F CALL R11 1
- 0x002EB40B, // 0240 ADD R11 K90 R11
- 0x002C175B, // 0241 ADD R11 R11 K91
- 0x5830000E, // 0242 LDCONST R12 K14
- 0x7C240600, // 0243 CALL R9 3
- 0xB8260200, // 0244 GETNGBL R9 K1
- 0x8824135C, // 0245 GETMBR R9 R9 K92
- 0x900E3409, // 0246 SETMBR R3 K26 R9
- 0x4C240000, // 0247 LDNIL R9
- 0xA0000000, // 0248 CLOSE R0
- 0x80041200, // 0249 RET 1 R9
- 0x7002009B, // 024A JMP #02E7
- 0x5422003B, // 024B LDINT R8 60
- 0x1C200C08, // 024C EQ R8 R6 R8
- 0x78220085, // 024D JMPF R8 #02D4
- 0x1C200F05, // 024E EQ R8 R7 K5
- 0x78220065, // 024F JMPF R8 #02B6
- 0x8C200506, // 0250 GETMET R8 R2 K6
- 0x58280005, // 0251 LDCONST R10 K5
- 0x7C200400, // 0252 CALL R8 2
- 0x8C240506, // 0253 GETMET R9 R2 K6
- 0x582C0007, // 0254 LDCONST R11 K7
- 0x7C240400, // 0255 CALL R9 2
- 0x8C280506, // 0256 GETMET R10 R2 K6
- 0x5830000E, // 0257 LDCONST R12 K14
- 0x7C280400, // 0258 CALL R10 2
- 0x8C2C0506, // 0259 GETMET R11 R2 K6
- 0x58340010, // 025A LDCONST R13 K16
- 0x7C2C0400, // 025B CALL R11 2
- 0x8C300506, // 025C GETMET R12 R2 K6
- 0x543A0003, // 025D LDINT R14 4
- 0x7C300400, // 025E CALL R12 2
- 0xB8364400, // 025F GETNGBL R13 K34
- 0x8C341B2C, // 0260 GETMET R13 R13 K44
- 0x603C0018, // 0261 GETGBL R15 G24
- 0x5840005D, // 0262 LDCONST R16 K93
- 0x5C441000, // 0263 MOVE R17 R8
- 0x8C481353, // 0264 GETMET R18 R9 K83
- 0x7C480200, // 0265 CALL R18 1
- 0x5C4C1400, // 0266 MOVE R19 R10
- 0x5C501600, // 0267 MOVE R20 R11
- 0x8C541953, // 0268 GETMET R21 R12 K83
- 0x7C540200, // 0269 CALL R21 1
- 0x7C3C0C00, // 026A CALL R15 6
- 0x54420003, // 026B LDINT R16 4
- 0x7C340600, // 026C CALL R13 3
+ 0xB82E4400, // 021B GETNGBL R11 K34
+ 0x8C2C1758, // 021C GETMET R11 R11 K88
+ 0x543607CF, // 021D LDINT R13 2000
+ 0x84380000, // 021E CLOSURE R14 P0
+ 0x7C2C0600, // 021F CALL R11 3
+ 0x8C2C0B09, // 0220 GETMET R11 R5 K9
+ 0x7C2C0200, // 0221 CALL R11 1
+ 0x8C30170A, // 0222 GETMET R12 R11 K10
+ 0x58380005, // 0223 LDCONST R14 K5
+ 0x883C0B0B, // 0224 GETMBR R15 R5 K11
+ 0xB8420200, // 0225 GETNGBL R16 K1
+ 0x8840212B, // 0226 GETMBR R16 R16 K43
+ 0x7C300800, // 0227 CALL R12 4
+ 0x8C30170A, // 0228 GETMET R12 R11 K10
+ 0x58380007, // 0229 LDCONST R14 K7
+ 0x883C0B0B, // 022A GETMBR R15 R5 K11
+ 0x5C401000, // 022B MOVE R16 R8
+ 0x7C300800, // 022C CALL R12 4
+ 0x54320007, // 022D LDINT R12 8
+ 0x900E080C, // 022E SETMBR R3 K4 R12
+ 0xA0000000, // 022F CLOSE R0
+ 0xA8040001, // 0230 EXBLK 1 1
+ 0x80041600, // 0231 RET 1 R11
+ 0xA0240000, // 0232 CLOSE R9
+ 0x7001FFDE, // 0233 JMP #0213
+ 0x58240059, // 0234 LDCONST R9 K89
+ 0xAC240200, // 0235 CATCH R9 1 0
+ 0xB0080000, // 0236 RAISE 2 R0 R0
+ 0xB8265800, // 0237 GETNGBL R9 K44
+ 0x60280008, // 0238 GETGBL R10 G8
+ 0x5C2C1000, // 0239 MOVE R11 R8
+ 0x7C280200, // 023A CALL R10 1
+ 0x002AB40A, // 023B ADD R10 K90 R10
+ 0x0028155B, // 023C ADD R10 R10 K91
+ 0x582C000E, // 023D LDCONST R11 K14
+ 0x7C240400, // 023E CALL R9 2
+ 0xB8260200, // 023F GETNGBL R9 K1
+ 0x8824135C, // 0240 GETMBR R9 R9 K92
+ 0x900E3409, // 0241 SETMBR R3 K26 R9
+ 0x4C240000, // 0242 LDNIL R9
+ 0xA0000000, // 0243 CLOSE R0
+ 0x80041200, // 0244 RET 1 R9
+ 0x70020098, // 0245 JMP #02DF
+ 0x5422003B, // 0246 LDINT R8 60
+ 0x1C200C08, // 0247 EQ R8 R6 R8
+ 0x78220082, // 0248 JMPF R8 #02CC
+ 0x1C200F05, // 0249 EQ R8 R7 K5
+ 0x78220063, // 024A JMPF R8 #02AF
+ 0x8C200506, // 024B GETMET R8 R2 K6
+ 0x58280005, // 024C LDCONST R10 K5
+ 0x7C200400, // 024D CALL R8 2
+ 0x8C240506, // 024E GETMET R9 R2 K6
+ 0x582C0007, // 024F LDCONST R11 K7
+ 0x7C240400, // 0250 CALL R9 2
+ 0x8C280506, // 0251 GETMET R10 R2 K6
+ 0x5830000E, // 0252 LDCONST R12 K14
+ 0x7C280400, // 0253 CALL R10 2
+ 0x8C2C0506, // 0254 GETMET R11 R2 K6
+ 0x58340010, // 0255 LDCONST R13 K16
+ 0x7C2C0400, // 0256 CALL R11 2
+ 0x8C300506, // 0257 GETMET R12 R2 K6
+ 0x543A0003, // 0258 LDINT R14 4
+ 0x7C300400, // 0259 CALL R12 2
+ 0xB8365800, // 025A GETNGBL R13 K44
+ 0x60380018, // 025B GETGBL R14 G24
+ 0x583C005D, // 025C LDCONST R15 K93
+ 0x5C401000, // 025D MOVE R16 R8
+ 0x8C441353, // 025E GETMET R17 R9 K83
+ 0x7C440200, // 025F CALL R17 1
+ 0x5C481400, // 0260 MOVE R18 R10
+ 0x5C4C1600, // 0261 MOVE R19 R11
+ 0x8C501953, // 0262 GETMET R20 R12 K83
+ 0x7C500200, // 0263 CALL R20 1
+ 0x7C380C00, // 0264 CALL R14 6
+ 0x543E0003, // 0265 LDINT R15 4
+ 0x7C340400, // 0266 CALL R13 2
+ 0x4C340000, // 0267 LDNIL R13
+ 0x1C34100D, // 0268 EQ R13 R8 R13
+ 0x7436000B, // 0269 JMPT R13 #0276
+ 0x4C340000, // 026A LDNIL R13
+ 0x1C34120D, // 026B EQ R13 R9 R13
+ 0x74360008, // 026C JMPT R13 #0276
0x4C340000, // 026D LDNIL R13
- 0x1C34100D, // 026E EQ R13 R8 R13
- 0x7436000B, // 026F JMPT R13 #027C
+ 0x1C34140D, // 026E EQ R13 R10 R13
+ 0x74360005, // 026F JMPT R13 #0276
0x4C340000, // 0270 LDNIL R13
- 0x1C34120D, // 0271 EQ R13 R9 R13
- 0x74360008, // 0272 JMPT R13 #027C
+ 0x1C34160D, // 0271 EQ R13 R11 R13
+ 0x74360002, // 0272 JMPT R13 #0276
0x4C340000, // 0273 LDNIL R13
- 0x1C34140D, // 0274 EQ R13 R10 R13
- 0x74360005, // 0275 JMPT R13 #027C
- 0x4C340000, // 0276 LDNIL R13
- 0x1C34160D, // 0277 EQ R13 R11 R13
- 0x74360002, // 0278 JMPT R13 #027C
+ 0x1C34180D, // 0274 EQ R13 R12 R13
+ 0x78360005, // 0275 JMPF R13 #027C
+ 0xB8360200, // 0276 GETNGBL R13 K1
+ 0x88341B5E, // 0277 GETMBR R13 R13 K94
+ 0x900E340D, // 0278 SETMBR R3 K26 R13
0x4C340000, // 0279 LDNIL R13
- 0x1C34180D, // 027A EQ R13 R12 R13
- 0x78360005, // 027B JMPF R13 #0282
- 0xB8360200, // 027C GETNGBL R13 K1
- 0x88341B5E, // 027D GETMBR R13 R13 K94
- 0x900E340D, // 027E SETMBR R3 K26 R13
- 0x4C340000, // 027F LDNIL R13
- 0xA0000000, // 0280 CLOSE R0
- 0x80041A00, // 0281 RET 1 R13
- 0x6034000C, // 0282 GETGBL R13 G12
- 0x5C381200, // 0283 MOVE R14 R9
- 0x7C340200, // 0284 CALL R13 1
- 0x543A001F, // 0285 LDINT R14 32
- 0x543E0040, // 0286 LDINT R15 65
- 0x00381C0F, // 0287 ADD R14 R14 R15
- 0x20341A0E, // 0288 NE R13 R13 R14
- 0x7436000B, // 0289 JMPT R13 #0296
+ 0xA0000000, // 027A CLOSE R0
+ 0x80041A00, // 027B RET 1 R13
+ 0x6034000C, // 027C GETGBL R13 G12
+ 0x5C381200, // 027D MOVE R14 R9
+ 0x7C340200, // 027E CALL R13 1
+ 0x543A001F, // 027F LDINT R14 32
+ 0x543E0040, // 0280 LDINT R15 65
+ 0x00381C0F, // 0281 ADD R14 R14 R15
+ 0x20341A0E, // 0282 NE R13 R13 R14
+ 0x7436000B, // 0283 JMPT R13 #0290
+ 0x6034000C, // 0284 GETGBL R13 G12
+ 0x5C381800, // 0285 MOVE R14 R12
+ 0x7C340200, // 0286 CALL R13 1
+ 0x543A000F, // 0287 LDINT R14 16
+ 0x14341A0E, // 0288 LT R13 R13 R14
+ 0x74360005, // 0289 JMPT R13 #0290
0x6034000C, // 028A GETGBL R13 G12
0x5C381800, // 028B MOVE R14 R12
0x7C340200, // 028C CALL R13 1
- 0x543A000F, // 028D LDINT R14 16
- 0x14341A0E, // 028E LT R13 R13 R14
- 0x74360005, // 028F JMPT R13 #0296
- 0x6034000C, // 0290 GETGBL R13 G12
- 0x5C381800, // 0291 MOVE R14 R12
- 0x7C340200, // 0292 CALL R13 1
- 0x543A001F, // 0293 LDINT R14 32
- 0x24341A0E, // 0294 GT R13 R13 R14
- 0x7836000A, // 0295 JMPF R13 #02A1
- 0xB8364400, // 0296 GETNGBL R13 K34
- 0x8C341B2C, // 0297 GETMET R13 R13 K44
- 0x583C005F, // 0298 LDCONST R15 K95
- 0x5840000E, // 0299 LDCONST R16 K14
- 0x7C340600, // 029A CALL R13 3
- 0xB8360200, // 029B GETNGBL R13 K1
- 0x88341B60, // 029C GETMBR R13 R13 K96
- 0x900E340D, // 029D SETMBR R3 K26 R13
- 0x4C340000, // 029E LDNIL R13
- 0xA0000000, // 029F CLOSE R0
- 0x80041A00, // 02A0 RET 1 R13
- 0x5436001E, // 02A1 LDINT R13 31
- 0x40360A0D, // 02A2 CONNECT R13 K5 R13
- 0x9434120D, // 02A3 GETIDX R13 R9 R13
- 0x543A001F, // 02A4 LDINT R14 32
- 0x40381D40, // 02A5 CONNECT R14 R14 K64
- 0x9438120E, // 02A6 GETIDX R14 R9 R14
- 0x883C0116, // 02A7 GETMBR R15 R0 K22
- 0x8C3C1F61, // 02A8 GETMET R15 R15 K97
- 0x5C441000, // 02A9 MOVE R17 R8
- 0x5C481600, // 02AA MOVE R18 R11
- 0x5C4C1400, // 02AB MOVE R19 R10
- 0x5C501800, // 02AC MOVE R20 R12
- 0x5C541A00, // 02AD MOVE R21 R13
- 0x5C581C00, // 02AE MOVE R22 R14
- 0x8C5C0354, // 02AF GETMET R23 R1 K84
- 0x7C5C0200, // 02B0 CALL R23 1
- 0x7C3C1000, // 02B1 CALL R15 8
- 0x503C0200, // 02B2 LDBOOL R15 1 0
- 0xA0000000, // 02B3 CLOSE R0
- 0x80041E00, // 02B4 RET 1 R15
- 0x7002001C, // 02B5 JMP #02D3
- 0x1C200F07, // 02B6 EQ R8 R7 K7
- 0x78220012, // 02B7 JMPF R8 #02CB
- 0x8C200506, // 02B8 GETMET R8 R2 K6
- 0x58280005, // 02B9 LDCONST R10 K5
- 0x7C200400, // 02BA CALL R8 2
- 0xB8264400, // 02BB GETNGBL R9 K34
- 0x8C24132C, // 02BC GETMET R9 R9 K44
- 0x602C0008, // 02BD GETGBL R11 G8
- 0x5C301000, // 02BE MOVE R12 R8
- 0x7C2C0200, // 02BF CALL R11 1
- 0x002EC40B, // 02C0 ADD R11 K98 R11
- 0x58300010, // 02C1 LDCONST R12 K16
- 0x7C240600, // 02C2 CALL R9 3
- 0x88240116, // 02C3 GETMBR R9 R0 K22
- 0x8C241363, // 02C4 GETMET R9 R9 K99
- 0x5C2C1000, // 02C5 MOVE R11 R8
- 0x7C240400, // 02C6 CALL R9 2
- 0x50240200, // 02C7 LDBOOL R9 1 0
- 0xA0000000, // 02C8 CLOSE R0
- 0x80041200, // 02C9 RET 1 R9
- 0x70020007, // 02CA JMP #02D3
- 0x1C200F0E, // 02CB EQ R8 R7 K14
- 0x78220005, // 02CC JMPF R8 #02D3
- 0x88200116, // 02CD GETMBR R8 R0 K22
- 0x8C201164, // 02CE GETMET R8 R8 K100
- 0x7C200200, // 02CF CALL R8 1
- 0x50200200, // 02D0 LDBOOL R8 1 0
- 0xA0000000, // 02D1 CLOSE R0
- 0x80041000, // 02D2 RET 1 R8
- 0x70020012, // 02D3 JMP #02E7
- 0x54220029, // 02D4 LDINT R8 42
- 0x1C200C08, // 02D5 EQ R8 R6 R8
- 0x78220005, // 02D6 JMPF R8 #02DD
- 0x1C200F05, // 02D7 EQ R8 R7 K5
- 0x78220002, // 02D8 JMPF R8 #02DC
- 0x50200200, // 02D9 LDBOOL R8 1 0
- 0xA0000000, // 02DA CLOSE R0
- 0x80041000, // 02DB RET 1 R8
- 0x70020009, // 02DC JMP #02E7
- 0x60200003, // 02DD GETGBL R8 G3
- 0x5C240000, // 02DE MOVE R9 R0
- 0x7C200200, // 02DF CALL R8 1
- 0x8C201165, // 02E0 GETMET R8 R8 K101
- 0x5C280200, // 02E1 MOVE R10 R1
- 0x5C2C0400, // 02E2 MOVE R11 R2
- 0x5C300600, // 02E3 MOVE R12 R3
- 0x7C200800, // 02E4 CALL R8 4
- 0xA0000000, // 02E5 CLOSE R0
- 0x80041000, // 02E6 RET 1 R8
- 0xA0000000, // 02E7 CLOSE R0
- 0x80000000, // 02E8 RET 0
+ 0x543A001F, // 028D LDINT R14 32
+ 0x24341A0E, // 028E GT R13 R13 R14
+ 0x78360009, // 028F JMPF R13 #029A
+ 0xB8365800, // 0290 GETNGBL R13 K44
+ 0x5838005F, // 0291 LDCONST R14 K95
+ 0x583C000E, // 0292 LDCONST R15 K14
+ 0x7C340400, // 0293 CALL R13 2
+ 0xB8360200, // 0294 GETNGBL R13 K1
+ 0x88341B60, // 0295 GETMBR R13 R13 K96
+ 0x900E340D, // 0296 SETMBR R3 K26 R13
+ 0x4C340000, // 0297 LDNIL R13
+ 0xA0000000, // 0298 CLOSE R0
+ 0x80041A00, // 0299 RET 1 R13
+ 0x5436001E, // 029A LDINT R13 31
+ 0x40360A0D, // 029B CONNECT R13 K5 R13
+ 0x9434120D, // 029C GETIDX R13 R9 R13
+ 0x543A001F, // 029D LDINT R14 32
+ 0x40381D40, // 029E CONNECT R14 R14 K64
+ 0x9438120E, // 029F GETIDX R14 R9 R14
+ 0x883C0116, // 02A0 GETMBR R15 R0 K22
+ 0x8C3C1F61, // 02A1 GETMET R15 R15 K97
+ 0x5C441000, // 02A2 MOVE R17 R8
+ 0x5C481600, // 02A3 MOVE R18 R11
+ 0x5C4C1400, // 02A4 MOVE R19 R10
+ 0x5C501800, // 02A5 MOVE R20 R12
+ 0x5C541A00, // 02A6 MOVE R21 R13
+ 0x5C581C00, // 02A7 MOVE R22 R14
+ 0x8C5C0354, // 02A8 GETMET R23 R1 K84
+ 0x7C5C0200, // 02A9 CALL R23 1
+ 0x7C3C1000, // 02AA CALL R15 8
+ 0x503C0200, // 02AB LDBOOL R15 1 0
+ 0xA0000000, // 02AC CLOSE R0
+ 0x80041E00, // 02AD RET 1 R15
+ 0x7002001B, // 02AE JMP #02CB
+ 0x1C200F07, // 02AF EQ R8 R7 K7
+ 0x78220011, // 02B0 JMPF R8 #02C3
+ 0x8C200506, // 02B1 GETMET R8 R2 K6
+ 0x58280005, // 02B2 LDCONST R10 K5
+ 0x7C200400, // 02B3 CALL R8 2
+ 0xB8265800, // 02B4 GETNGBL R9 K44
+ 0x60280008, // 02B5 GETGBL R10 G8
+ 0x5C2C1000, // 02B6 MOVE R11 R8
+ 0x7C280200, // 02B7 CALL R10 1
+ 0x002AC40A, // 02B8 ADD R10 K98 R10
+ 0x582C0010, // 02B9 LDCONST R11 K16
+ 0x7C240400, // 02BA CALL R9 2
+ 0x88240116, // 02BB GETMBR R9 R0 K22
+ 0x8C241363, // 02BC GETMET R9 R9 K99
+ 0x5C2C1000, // 02BD MOVE R11 R8
+ 0x7C240400, // 02BE CALL R9 2
+ 0x50240200, // 02BF LDBOOL R9 1 0
+ 0xA0000000, // 02C0 CLOSE R0
+ 0x80041200, // 02C1 RET 1 R9
+ 0x70020007, // 02C2 JMP #02CB
+ 0x1C200F0E, // 02C3 EQ R8 R7 K14
+ 0x78220005, // 02C4 JMPF R8 #02CB
+ 0x88200116, // 02C5 GETMBR R8 R0 K22
+ 0x8C201164, // 02C6 GETMET R8 R8 K100
+ 0x7C200200, // 02C7 CALL R8 1
+ 0x50200200, // 02C8 LDBOOL R8 1 0
+ 0xA0000000, // 02C9 CLOSE R0
+ 0x80041000, // 02CA RET 1 R8
+ 0x70020012, // 02CB JMP #02DF
+ 0x54220029, // 02CC LDINT R8 42
+ 0x1C200C08, // 02CD EQ R8 R6 R8
+ 0x78220005, // 02CE JMPF R8 #02D5
+ 0x1C200F05, // 02CF EQ R8 R7 K5
+ 0x78220002, // 02D0 JMPF R8 #02D4
+ 0x50200200, // 02D1 LDBOOL R8 1 0
+ 0xA0000000, // 02D2 CLOSE R0
+ 0x80041000, // 02D3 RET 1 R8
+ 0x70020009, // 02D4 JMP #02DF
+ 0x60200003, // 02D5 GETGBL R8 G3
+ 0x5C240000, // 02D6 MOVE R9 R0
+ 0x7C200200, // 02D7 CALL R8 1
+ 0x8C201165, // 02D8 GETMET R8 R8 K101
+ 0x5C280200, // 02D9 MOVE R10 R1
+ 0x5C2C0400, // 02DA MOVE R11 R2
+ 0x5C300600, // 02DB MOVE R12 R3
+ 0x7C200800, // 02DC CALL R8 4
+ 0xA0000000, // 02DD CLOSE R0
+ 0x80041000, // 02DE RET 1 R8
+ 0xA0000000, // 02DF CLOSE R0
+ 0x80000000, // 02E0 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
index 179f66f25..1b636ca22 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
@@ -283,130 +283,119 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0, /* has sup protos */
NULL,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(set),
+ /* K1 */ be_nested_str_weak(set_or_nil),
/* K2 */ be_nested_str_weak(FLOAT),
- /* K3 */ be_nested_str_weak(NULL),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(2),
- /* K6 */ be_nested_str_weak(U1),
- /* K7 */ be_nested_str_weak(U4),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_nested_str_weak(set),
+ /* K5 */ be_nested_str_weak(NULL),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(U1),
+ /* K8 */ be_nested_str_weak(U4),
}),
be_str_weak(handle_value),
&be_const_str_solidified,
- ( &(const binstruction[85]) { /* code */
+ ( &(const binstruction[74]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0000, // 0002 JMPF R2 #0004
0x58040000, // 0003 LDCONST R1 K0
0x68080000, // 0004 GETUPV R2 U0
0x1C080500, // 0005 EQ R2 R2 K0
- 0x780A0012, // 0006 JMPF R2 #001A
- 0x4C080000, // 0007 LDNIL R2
- 0x20080002, // 0008 NE R2 R0 R2
- 0x780A0007, // 0009 JMPF R2 #0012
- 0x68080001, // 000A GETUPV R2 U1
- 0x8C080501, // 000B GETMET R2 R2 K1
- 0x68100002, // 000C GETUPV R4 U2
- 0x88100902, // 000D GETMBR R4 R4 K2
- 0x5C140000, // 000E MOVE R5 R0
- 0x7C080600, // 000F CALL R2 3
- 0x80040400, // 0010 RET 1 R2
- 0x70020006, // 0011 JMP #0019
+ 0x780A0007, // 0006 JMPF R2 #000F
+ 0x68080001, // 0007 GETUPV R2 U1
+ 0x8C080501, // 0008 GETMET R2 R2 K1
+ 0x68100002, // 0009 GETUPV R4 U2
+ 0x88100902, // 000A GETMBR R4 R4 K2
+ 0x5C140000, // 000B MOVE R5 R0
+ 0x7C080600, // 000C CALL R2 3
+ 0x80040400, // 000D RET 1 R2
+ 0x70020038, // 000E JMP #0048
+ 0x68080000, // 000F GETUPV R2 U0
+ 0x1C080503, // 0010 EQ R2 R2 K3
+ 0x780A0007, // 0011 JMPF R2 #001A
0x68080001, // 0012 GETUPV R2 U1
- 0x8C080501, // 0013 GETMET R2 R2 K1
+ 0x8C080504, // 0013 GETMET R2 R2 K4
0x68100002, // 0014 GETUPV R4 U2
- 0x88100903, // 0015 GETMBR R4 R4 K3
+ 0x88100905, // 0015 GETMBR R4 R4 K5
0x4C140000, // 0016 LDNIL R5
0x7C080600, // 0017 CALL R2 3
0x80040400, // 0018 RET 1 R2
- 0x70020038, // 0019 JMP #0053
+ 0x7002002D, // 0019 JMP #0048
0x68080000, // 001A GETUPV R2 U0
- 0x1C080504, // 001B EQ R2 R2 K4
+ 0x1C080506, // 001B EQ R2 R2 K6
0x780A0007, // 001C JMPF R2 #0025
0x68080001, // 001D GETUPV R2 U1
- 0x8C080501, // 001E GETMET R2 R2 K1
+ 0x8C080504, // 001E GETMET R2 R2 K4
0x68100002, // 001F GETUPV R4 U2
- 0x88100903, // 0020 GETMBR R4 R4 K3
+ 0x88100905, // 0020 GETMBR R4 R4 K5
0x4C140000, // 0021 LDNIL R5
0x7C080600, // 0022 CALL R2 3
0x80040400, // 0023 RET 1 R2
- 0x7002002D, // 0024 JMP #0053
+ 0x70020022, // 0024 JMP #0048
0x68080000, // 0025 GETUPV R2 U0
- 0x1C080505, // 0026 EQ R2 R2 K5
- 0x780A0007, // 0027 JMPF R2 #0030
- 0x68080001, // 0028 GETUPV R2 U1
- 0x8C080501, // 0029 GETMET R2 R2 K1
- 0x68100002, // 002A GETUPV R4 U2
- 0x88100903, // 002B GETMBR R4 R4 K3
- 0x4C140000, // 002C LDNIL R5
- 0x7C080600, // 002D CALL R2 3
- 0x80040400, // 002E RET 1 R2
- 0x70020022, // 002F JMP #0053
- 0x68080000, // 0030 GETUPV R2 U0
- 0x540E0007, // 0031 LDINT R3 8
- 0x1C080403, // 0032 EQ R2 R2 R3
- 0x780A0007, // 0033 JMPF R2 #003C
- 0x68080001, // 0034 GETUPV R2 U1
- 0x8C080501, // 0035 GETMET R2 R2 K1
- 0x68100002, // 0036 GETUPV R4 U2
- 0x88100906, // 0037 GETMBR R4 R4 K6
- 0x5C140200, // 0038 MOVE R5 R1
- 0x7C080600, // 0039 CALL R2 3
- 0x80040400, // 003A RET 1 R2
- 0x70020016, // 003B JMP #0053
- 0x68080000, // 003C GETUPV R2 U0
- 0x540E0008, // 003D LDINT R3 9
- 0x1C080403, // 003E EQ R2 R2 R3
- 0x780A0007, // 003F JMPF R2 #0048
- 0x68080001, // 0040 GETUPV R2 U1
- 0x8C080501, // 0041 GETMET R2 R2 K1
- 0x68100002, // 0042 GETUPV R4 U2
- 0x88100906, // 0043 GETMBR R4 R4 K6
- 0x58140000, // 0044 LDCONST R5 K0
- 0x7C080600, // 0045 CALL R2 3
- 0x80040400, // 0046 RET 1 R2
- 0x7002000A, // 0047 JMP #0053
- 0x68080000, // 0048 GETUPV R2 U0
- 0x540EFFFB, // 0049 LDINT R3 65532
- 0x1C080403, // 004A EQ R2 R2 R3
- 0x780A0006, // 004B JMPF R2 #0053
- 0x68080001, // 004C GETUPV R2 U1
- 0x8C080501, // 004D GETMET R2 R2 K1
- 0x68100002, // 004E GETUPV R4 U2
- 0x88100907, // 004F GETMBR R4 R4 K7
- 0x58140004, // 0050 LDCONST R5 K4
- 0x7C080600, // 0051 CALL R2 3
- 0x80040400, // 0052 RET 1 R2
- 0x4C080000, // 0053 LDNIL R2
- 0x80040400, // 0054 RET 1 R2
+ 0x540E0007, // 0026 LDINT R3 8
+ 0x1C080403, // 0027 EQ R2 R2 R3
+ 0x780A0007, // 0028 JMPF R2 #0031
+ 0x68080001, // 0029 GETUPV R2 U1
+ 0x8C080504, // 002A GETMET R2 R2 K4
+ 0x68100002, // 002B GETUPV R4 U2
+ 0x88100907, // 002C GETMBR R4 R4 K7
+ 0x5C140200, // 002D MOVE R5 R1
+ 0x7C080600, // 002E CALL R2 3
+ 0x80040400, // 002F RET 1 R2
+ 0x70020016, // 0030 JMP #0048
+ 0x68080000, // 0031 GETUPV R2 U0
+ 0x540E0008, // 0032 LDINT R3 9
+ 0x1C080403, // 0033 EQ R2 R2 R3
+ 0x780A0007, // 0034 JMPF R2 #003D
+ 0x68080001, // 0035 GETUPV R2 U1
+ 0x8C080504, // 0036 GETMET R2 R2 K4
+ 0x68100002, // 0037 GETUPV R4 U2
+ 0x88100907, // 0038 GETMBR R4 R4 K7
+ 0x58140000, // 0039 LDCONST R5 K0
+ 0x7C080600, // 003A CALL R2 3
+ 0x80040400, // 003B RET 1 R2
+ 0x7002000A, // 003C JMP #0048
+ 0x68080000, // 003D GETUPV R2 U0
+ 0x540EFFFB, // 003E LDINT R3 65532
+ 0x1C080403, // 003F EQ R2 R2 R3
+ 0x780A0006, // 0040 JMPF R2 #0048
+ 0x68080001, // 0041 GETUPV R2 U1
+ 0x8C080504, // 0042 GETMET R2 R2 K4
+ 0x68100002, // 0043 GETUPV R4 U2
+ 0x88100908, // 0044 GETMBR R4 R4 K8
+ 0x58140003, // 0045 LDCONST R5 K3
+ 0x7C080600, // 0046 CALL R2 3
+ 0x80040400, // 0047 RET 1 R2
+ 0x4C080000, // 0048 LDNIL R2
+ 0x80040400, // 0049 RET 1 R2
})
),
&be_class_Matter_Plugin_Sensor_Air_Quality,
}),
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_air_quality),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U1),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_nested_str_weak(shadow_co2),
- /* K10 */ be_nested_str_weak(shadow_pm1),
- /* K11 */ be_nested_str_weak(shadow_pm2_5),
- /* K12 */ be_nested_str_weak(shadow_pm10),
- /* K13 */ be_nested_str_weak(shadow_tvoc),
- /* K14 */ be_nested_str_weak(shadow_no2),
- /* K15 */ be_nested_str_weak(read_attribute),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(U1),
+ /* K7 */ be_nested_str_weak(shadow_air_quality),
+ /* K8 */ be_nested_str_weak(shadow_co2),
+ /* K9 */ be_nested_str_weak(shadow_pm1),
+ /* K10 */ be_nested_str_weak(shadow_pm2_5),
+ /* K11 */ be_nested_str_weak(shadow_pm10),
+ /* K12 */ be_nested_str_weak(shadow_tvoc),
+ /* K13 */ be_nested_str_weak(shadow_no2),
+ /* K14 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[104]) { /* code */
+ ( &(const binstruction[93]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
@@ -415,28 +404,28 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x84200000, // 0005 CLOSURE R8 P0
0x5426005A, // 0006 LDINT R9 91
0x1C240A09, // 0007 EQ R9 R5 R9
- 0x78260013, // 0008 JMPF R9 #001D
+ 0x78260008, // 0008 JMPF R9 #0012
0x1C240D04, // 0009 EQ R9 R6 K4
- 0x78260010, // 000A JMPF R9 #001C
- 0x88240105, // 000B GETMBR R9 R0 K5
- 0x4C280000, // 000C LDNIL R10
- 0x2024120A, // 000D NE R9 R9 R10
- 0x78260006, // 000E JMPF R9 #0016
- 0x8C240706, // 000F GETMET R9 R3 K6
- 0x882C0907, // 0010 GETMBR R11 R4 K7
- 0x88300105, // 0011 GETMBR R12 R0 K5
- 0x7C240600, // 0012 CALL R9 3
- 0xA0000000, // 0013 CLOSE R0
- 0x80041200, // 0014 RET 1 R9
- 0x70020005, // 0015 JMP #001C
- 0x8C240706, // 0016 GETMET R9 R3 K6
- 0x882C0908, // 0017 GETMBR R11 R4 K8
- 0x4C300000, // 0018 LDNIL R12
- 0x7C240600, // 0019 CALL R9 3
+ 0x78260005, // 000A JMPF R9 #0011
+ 0x8C240705, // 000B GETMET R9 R3 K5
+ 0x882C0906, // 000C GETMBR R11 R4 K6
+ 0x88300107, // 000D GETMBR R12 R0 K7
+ 0x7C240600, // 000E CALL R9 3
+ 0xA0000000, // 000F CLOSE R0
+ 0x80041200, // 0010 RET 1 R9
+ 0x70020040, // 0011 JMP #0053
+ 0x5426040C, // 0012 LDINT R9 1037
+ 0x1C240A09, // 0013 EQ R9 R5 R9
+ 0x78260007, // 0014 JMPF R9 #001D
+ 0x5C241000, // 0015 MOVE R9 R8
+ 0x88280108, // 0016 GETMBR R10 R0 K8
+ 0x7C240200, // 0017 CALL R9 1
+ 0x5C1C1200, // 0018 MOVE R7 R9
+ 0x78260001, // 0019 JMPF R9 #001C
0xA0000000, // 001A CLOSE R0
- 0x80041200, // 001B RET 1 R9
- 0x70020040, // 001C JMP #005E
- 0x5426040C, // 001D LDINT R9 1037
+ 0x80040E00, // 001B RET 1 R7
+ 0x70020035, // 001C JMP #0053
+ 0x5426042B, // 001D LDINT R9 1068
0x1C240A09, // 001E EQ R9 R5 R9
0x78260007, // 001F JMPF R9 #0028
0x5C241000, // 0020 MOVE R9 R8
@@ -446,8 +435,8 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x78260001, // 0024 JMPF R9 #0027
0xA0000000, // 0025 CLOSE R0
0x80040E00, // 0026 RET 1 R7
- 0x70020035, // 0027 JMP #005E
- 0x5426042B, // 0028 LDINT R9 1068
+ 0x7002002A, // 0027 JMP #0053
+ 0x54260429, // 0028 LDINT R9 1066
0x1C240A09, // 0029 EQ R9 R5 R9
0x78260007, // 002A JMPF R9 #0033
0x5C241000, // 002B MOVE R9 R8
@@ -457,8 +446,8 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x78260001, // 002F JMPF R9 #0032
0xA0000000, // 0030 CLOSE R0
0x80040E00, // 0031 RET 1 R7
- 0x7002002A, // 0032 JMP #005E
- 0x54260429, // 0033 LDINT R9 1066
+ 0x7002001F, // 0032 JMP #0053
+ 0x5426042C, // 0033 LDINT R9 1069
0x1C240A09, // 0034 EQ R9 R5 R9
0x78260007, // 0035 JMPF R9 #003E
0x5C241000, // 0036 MOVE R9 R8
@@ -468,8 +457,8 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x78260001, // 003A JMPF R9 #003D
0xA0000000, // 003B CLOSE R0
0x80040E00, // 003C RET 1 R7
- 0x7002001F, // 003D JMP #005E
- 0x5426042C, // 003E LDINT R9 1069
+ 0x70020014, // 003D JMP #0053
+ 0x5426042D, // 003E LDINT R9 1070
0x1C240A09, // 003F EQ R9 R5 R9
0x78260007, // 0040 JMPF R9 #0049
0x5C241000, // 0041 MOVE R9 R8
@@ -479,10 +468,10 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x78260001, // 0045 JMPF R9 #0048
0xA0000000, // 0046 CLOSE R0
0x80040E00, // 0047 RET 1 R7
- 0x70020014, // 0048 JMP #005E
- 0x5426042D, // 0049 LDINT R9 1070
+ 0x70020009, // 0048 JMP #0053
+ 0x54260412, // 0049 LDINT R9 1043
0x1C240A09, // 004A EQ R9 R5 R9
- 0x78260007, // 004B JMPF R9 #0054
+ 0x78260006, // 004B JMPF R9 #0053
0x5C241000, // 004C MOVE R9 R8
0x8828010D, // 004D GETMBR R10 R0 K13
0x7C240200, // 004E CALL R9 1
@@ -490,27 +479,16 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute, /* nam
0x78260001, // 0050 JMPF R9 #0053
0xA0000000, // 0051 CLOSE R0
0x80040E00, // 0052 RET 1 R7
- 0x70020009, // 0053 JMP #005E
- 0x54260412, // 0054 LDINT R9 1043
- 0x1C240A09, // 0055 EQ R9 R5 R9
- 0x78260006, // 0056 JMPF R9 #005E
- 0x5C241000, // 0057 MOVE R9 R8
- 0x8828010E, // 0058 GETMBR R10 R0 K14
- 0x7C240200, // 0059 CALL R9 1
- 0x5C1C1200, // 005A MOVE R7 R9
- 0x78260001, // 005B JMPF R9 #005E
- 0xA0000000, // 005C CLOSE R0
- 0x80040E00, // 005D RET 1 R7
- 0x60240003, // 005E GETGBL R9 G3
- 0x5C280000, // 005F MOVE R10 R0
- 0x7C240200, // 0060 CALL R9 1
- 0x8C24130F, // 0061 GETMET R9 R9 K15
- 0x5C2C0200, // 0062 MOVE R11 R1
- 0x5C300400, // 0063 MOVE R12 R2
- 0x5C340600, // 0064 MOVE R13 R3
- 0x7C240800, // 0065 CALL R9 4
- 0xA0000000, // 0066 CLOSE R0
- 0x80041200, // 0067 RET 1 R9
+ 0x60240003, // 0053 GETGBL R9 G3
+ 0x5C280000, // 0054 MOVE R10 R0
+ 0x7C240200, // 0055 CALL R9 1
+ 0x8C24130E, // 0056 GETMET R9 R9 K14
+ 0x5C2C0200, // 0057 MOVE R11 R1
+ 0x5C300400, // 0058 MOVE R12 R2
+ 0x5C340600, // 0059 MOVE R13 R3
+ 0x7C240800, // 005A CALL R9 4
+ 0xA0000000, // 005B CLOSE R0
+ 0x80041200, // 005C RET 1 R9
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
index b0f63d3c8..3f24a0ffe 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
@@ -20,54 +20,43 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Contact,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_contact),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_nested_str_weak(read_attribute),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(BOOL),
+ /* K7 */ be_nested_str_weak(shadow_contact),
+ /* K8 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
+ ( &(const binstruction[23]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0044, // 0004 LDINT R7 69
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0010, // 0006 JMPF R7 #0018
+ 0x781E0006, // 0006 JMPF R7 #000E
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000E, // 0008 JMPF R7 #0018
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x601C0003, // 0018 GETGBL R7 G3
- 0x5C200000, // 0019 MOVE R8 R0
- 0x7C1C0200, // 001A CALL R7 1
- 0x8C1C0F09, // 001B GETMET R7 R7 K9
- 0x5C240200, // 001C MOVE R9 R1
- 0x5C280400, // 001D MOVE R10 R2
- 0x5C2C0600, // 001E MOVE R11 R3
- 0x7C1C0800, // 001F CALL R7 4
- 0x80040E00, // 0020 RET 1 R7
+ 0x781E0004, // 0008 JMPF R7 #000E
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x88280107, // 000B GETMBR R10 R0 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x601C0003, // 000E GETGBL R7 G3
+ 0x5C200000, // 000F MOVE R8 R0
+ 0x7C1C0200, // 0010 CALL R7 1
+ 0x8C1C0F08, // 0011 GETMET R7 R7 K8
+ 0x5C240200, // 0012 MOVE R9 R1
+ 0x5C280400, // 0013 MOVE R10 R2
+ 0x5C2C0600, // 0014 MOVE R11 R3
+ 0x7C1C0800, // 0015 CALL R7 4
+ 0x80040E00, // 0016 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
index 9d3fe0e4d..3ba19f96e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
@@ -26,67 +26,57 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute, /* name
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_occupancy),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U1),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(U1),
+ /* K7 */ be_nested_str_weak(shadow_occupancy),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(3),
/* K11 */ be_const_int(2),
/* K12 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[49]) { /* code */
+ ( &(const binstruction[39]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0405, // 0004 LDINT R7 1030
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0020, // 0006 JMPF R7 #0028
+ 0x781E0016, // 0006 JMPF R7 #001E
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000F, // 0008 JMPF R7 #0019
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x7002000E, // 0018 JMP #0028
- 0x1C1C0D09, // 0019 EQ R7 R6 K9
- 0x781E0005, // 001A JMPF R7 #0021
- 0x8C1C0706, // 001B GETMET R7 R3 K6
- 0x88240907, // 001C GETMBR R9 R4 K7
- 0x5828000A, // 001D LDCONST R10 K10
- 0x7C1C0600, // 001E CALL R7 3
- 0x80040E00, // 001F RET 1 R7
- 0x70020006, // 0020 JMP #0028
- 0x1C1C0D0B, // 0021 EQ R7 R6 K11
- 0x781E0004, // 0022 JMPF R7 #0028
- 0x8C1C0706, // 0023 GETMET R7 R3 K6
- 0x88240907, // 0024 GETMBR R9 R4 K7
- 0x58280004, // 0025 LDCONST R10 K4
- 0x7C1C0600, // 0026 CALL R7 3
- 0x80040E00, // 0027 RET 1 R7
- 0x601C0003, // 0028 GETGBL R7 G3
- 0x5C200000, // 0029 MOVE R8 R0
- 0x7C1C0200, // 002A CALL R7 1
- 0x8C1C0F0C, // 002B GETMET R7 R7 K12
- 0x5C240200, // 002C MOVE R9 R1
- 0x5C280400, // 002D MOVE R10 R2
- 0x5C2C0600, // 002E MOVE R11 R3
- 0x7C1C0800, // 002F CALL R7 4
- 0x80040E00, // 0030 RET 1 R7
+ 0x781E0005, // 0008 JMPF R7 #000F
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x88280107, // 000B GETMBR R10 R0 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x7002000E, // 000E JMP #001E
+ 0x1C1C0D08, // 000F EQ R7 R6 K8
+ 0x781E0005, // 0010 JMPF R7 #0017
+ 0x8C1C0709, // 0011 GETMET R7 R3 K9
+ 0x88240906, // 0012 GETMBR R9 R4 K6
+ 0x5828000A, // 0013 LDCONST R10 K10
+ 0x7C1C0600, // 0014 CALL R7 3
+ 0x80040E00, // 0015 RET 1 R7
+ 0x70020006, // 0016 JMP #001E
+ 0x1C1C0D0B, // 0017 EQ R7 R6 K11
+ 0x781E0004, // 0018 JMPF R7 #001E
+ 0x8C1C0709, // 0019 GETMET R7 R3 K9
+ 0x88240906, // 001A GETMBR R9 R4 K6
+ 0x58280004, // 001B LDCONST R10 K4
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x80040E00, // 001D RET 1 R7
+ 0x601C0003, // 001E GETGBL R7 G3
+ 0x5C200000, // 001F MOVE R8 R0
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x8C1C0F0C, // 0021 GETMET R7 R7 K12
+ 0x5C240200, // 0022 MOVE R9 R1
+ 0x5C280400, // 0023 MOVE R10 R2
+ 0x5C2C0600, // 0024 MOVE R11 R3
+ 0x7C1C0800, // 0025 CALL R7 4
+ 0x80040E00, // 0026 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Shutter.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Shutter.h
index 618604665..bc4d53a53 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Shutter.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Shutter.h
@@ -90,7 +90,7 @@ be_local_closure(class_Matter_Plugin_Shutter_invoke_request, /* name */
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[116]) { /* code */
+ ( &(const binstruction[115]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0xB8160200, // 0001 GETNGBL R5 K1
0x88140B02, // 0002 GETMBR R5 R5 K2
@@ -98,7 +98,7 @@ be_local_closure(class_Matter_Plugin_Shutter_invoke_request, /* name */
0x881C0704, // 0004 GETMBR R7 R3 K4
0x54220101, // 0005 LDINT R8 258
0x1C200C08, // 0006 EQ R8 R6 R8
- 0x78220061, // 0007 JMPF R8 #006A
+ 0x78220060, // 0007 JMPF R8 #0069
0x8C200105, // 0008 GETMET R8 R0 K5
0x7C200200, // 0009 CALL R8 1
0x1C200F06, // 000A EQ R8 R7 K6
@@ -116,7 +116,7 @@ be_local_closure(class_Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0016 CALL R8 1
0x50200200, // 0017 LDBOOL R8 1 0
0x80041000, // 0018 RET 1 R8
- 0x7002004E, // 0019 JMP #0069
+ 0x7002004D, // 0019 JMP #0068
0x1C200F0B, // 001A EQ R8 R7 K11
0x7822000D, // 001B JMPF R8 #002A
0xB8220E00, // 001C GETNGBL R8 K7
@@ -132,7 +132,7 @@ be_local_closure(class_Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0026 CALL R8 1
0x50200200, // 0027 LDBOOL R8 1 0
0x80041000, // 0028 RET 1 R8
- 0x7002003E, // 0029 JMP #0069
+ 0x7002003D, // 0029 JMP #0068
0x1C200F0E, // 002A EQ R8 R7 K14
0x7822000D, // 002B JMPF R8 #003A
0xB8220E00, // 002C GETNGBL R8 K7
@@ -148,65 +148,64 @@ be_local_closure(class_Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0036 CALL R8 1
0x50200200, // 0037 LDBOOL R8 1 0
0x80041000, // 0038 RET 1 R8
- 0x7002002E, // 0039 JMP #0069
+ 0x7002002D, // 0039 JMP #0068
0x54220004, // 003A LDINT R8 5
0x1C200E08, // 003B EQ R8 R7 R8
- 0x7822002B, // 003C JMPF R8 #0069
- 0xB8220E00, // 003D GETNGBL R8 K7
- 0x8C201110, // 003E GETMET R8 R8 K16
- 0x60280008, // 003F GETGBL R10 G8
- 0x5C2C0400, // 0040 MOVE R11 R2
- 0x7C280200, // 0041 CALL R10 1
- 0x002A220A, // 0042 ADD R10 K17 R10
- 0x582C000E, // 0043 LDCONST R11 K14
- 0x7C200600, // 0044 CALL R8 3
- 0x8C200512, // 0045 GETMET R8 R2 K18
- 0x58280006, // 0046 LDCONST R10 K6
- 0x7C200400, // 0047 CALL R8 2
- 0x4C240000, // 0048 LDNIL R9
- 0x20241009, // 0049 NE R9 R8 R9
- 0x7826001B, // 004A JMPF R9 #0067
- 0x54260063, // 004B LDINT R9 100
- 0x0C201009, // 004C DIV R8 R8 R9
- 0x88240113, // 004D GETMBR R9 R0 K19
- 0x1C241306, // 004E EQ R9 R9 K6
- 0x78260001, // 004F JMPF R9 #0052
- 0x54260063, // 0050 LDINT R9 100
- 0x04201208, // 0051 SUB R8 R9 R8
- 0xB8260E00, // 0052 GETNGBL R9 K7
- 0x8C241308, // 0053 GETMET R9 R9 K8
- 0x602C0008, // 0054 GETGBL R11 G8
- 0x8830010A, // 0055 GETMBR R12 R0 K10
- 0x0030190B, // 0056 ADD R12 R12 K11
- 0x7C2C0200, // 0057 CALL R11 1
- 0x002E280B, // 0058 ADD R11 K20 R11
- 0x002C1715, // 0059 ADD R11 R11 K21
- 0x60300008, // 005A GETGBL R12 G8
- 0x5C341000, // 005B MOVE R13 R8
- 0x7C300200, // 005C CALL R12 1
- 0x002C160C, // 005D ADD R11 R11 R12
- 0x50300200, // 005E LDBOOL R12 1 0
- 0x7C240600, // 005F CALL R9 3
- 0x60240008, // 0060 GETGBL R9 G8
- 0x5C281000, // 0061 MOVE R10 R8
- 0x7C240200, // 0062 CALL R9 1
- 0x00262C09, // 0063 ADD R9 K22 R9
- 0x900E2009, // 0064 SETMBR R3 K16 R9
- 0x8C24010C, // 0065 GETMET R9 R0 K12
- 0x7C240200, // 0066 CALL R9 1
- 0x50240200, // 0067 LDBOOL R9 1 0
- 0x80041200, // 0068 RET 1 R9
- 0x70020008, // 0069 JMP #0073
- 0x60200003, // 006A GETGBL R8 G3
- 0x5C240000, // 006B MOVE R9 R0
- 0x7C200200, // 006C CALL R8 1
- 0x8C201117, // 006D GETMET R8 R8 K23
- 0x5C280200, // 006E MOVE R10 R1
- 0x5C2C0400, // 006F MOVE R11 R2
- 0x5C300600, // 0070 MOVE R12 R3
- 0x7C200800, // 0071 CALL R8 4
- 0x80041000, // 0072 RET 1 R8
- 0x80000000, // 0073 RET 0
+ 0x7822002A, // 003C JMPF R8 #0068
+ 0xB8222000, // 003D GETNGBL R8 K16
+ 0x60240008, // 003E GETGBL R9 G8
+ 0x5C280400, // 003F MOVE R10 R2
+ 0x7C240200, // 0040 CALL R9 1
+ 0x00262209, // 0041 ADD R9 K17 R9
+ 0x5828000E, // 0042 LDCONST R10 K14
+ 0x7C200400, // 0043 CALL R8 2
+ 0x8C200512, // 0044 GETMET R8 R2 K18
+ 0x58280006, // 0045 LDCONST R10 K6
+ 0x7C200400, // 0046 CALL R8 2
+ 0x4C240000, // 0047 LDNIL R9
+ 0x20241009, // 0048 NE R9 R8 R9
+ 0x7826001B, // 0049 JMPF R9 #0066
+ 0x54260063, // 004A LDINT R9 100
+ 0x0C201009, // 004B DIV R8 R8 R9
+ 0x88240113, // 004C GETMBR R9 R0 K19
+ 0x1C241306, // 004D EQ R9 R9 K6
+ 0x78260001, // 004E JMPF R9 #0051
+ 0x54260063, // 004F LDINT R9 100
+ 0x04201208, // 0050 SUB R8 R9 R8
+ 0xB8260E00, // 0051 GETNGBL R9 K7
+ 0x8C241308, // 0052 GETMET R9 R9 K8
+ 0x602C0008, // 0053 GETGBL R11 G8
+ 0x8830010A, // 0054 GETMBR R12 R0 K10
+ 0x0030190B, // 0055 ADD R12 R12 K11
+ 0x7C2C0200, // 0056 CALL R11 1
+ 0x002E280B, // 0057 ADD R11 K20 R11
+ 0x002C1715, // 0058 ADD R11 R11 K21
+ 0x60300008, // 0059 GETGBL R12 G8
+ 0x5C341000, // 005A MOVE R13 R8
+ 0x7C300200, // 005B CALL R12 1
+ 0x002C160C, // 005C ADD R11 R11 R12
+ 0x50300200, // 005D LDBOOL R12 1 0
+ 0x7C240600, // 005E CALL R9 3
+ 0x60240008, // 005F GETGBL R9 G8
+ 0x5C281000, // 0060 MOVE R10 R8
+ 0x7C240200, // 0061 CALL R9 1
+ 0x00262C09, // 0062 ADD R9 K22 R9
+ 0x900E2009, // 0063 SETMBR R3 K16 R9
+ 0x8C24010C, // 0064 GETMET R9 R0 K12
+ 0x7C240200, // 0065 CALL R9 1
+ 0x50240200, // 0066 LDBOOL R9 1 0
+ 0x80041200, // 0067 RET 1 R9
+ 0x70020008, // 0068 JMP #0072
+ 0x60200003, // 0069 GETGBL R8 G3
+ 0x5C240000, // 006A MOVE R9 R0
+ 0x7C200200, // 006B CALL R8 1
+ 0x8C201117, // 006C GETMET R8 R8 K23
+ 0x5C280200, // 006D MOVE R10 R1
+ 0x5C2C0400, // 006E MOVE R11 R2
+ 0x5C300600, // 006F MOVE R12 R3
+ 0x7C200800, // 0070 CALL R8 4
+ 0x80041000, // 0071 RET 1 R8
+ 0x80000000, // 0072 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
index dafda9e24..060902807 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Flow.h
@@ -58,68 +58,58 @@ be_local_closure(class_Matter_Plugin_Sensor_Flow_read_attribute, /* name */
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(U2),
+ /* K7 */ be_nested_str_weak(shadow_value),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
+ ( &(const binstruction[41]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0403, // 0004 LDINT R7 1028
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
+ 0x781E0018, // 0006 JMPF R7 #0020
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x58280004, // 001F LDCONST R10 K4
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542AFFFD, // 0027 LDINT R10 65534
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
+ 0x781E0007, // 0008 JMPF R7 #0011
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x60280009, // 000B GETGBL R10 G9
+ 0x882C0107, // 000C GETMBR R11 R0 K7
+ 0x7C280200, // 000D CALL R10 1
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x7002000E, // 0010 JMP #0020
+ 0x1C1C0D08, // 0011 EQ R7 R6 K8
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0709, // 0013 GETMET R7 R3 K9
+ 0x88240906, // 0014 GETMBR R9 R4 K6
+ 0x58280004, // 0015 LDCONST R10 K4
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x70020006, // 0018 JMP #0020
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0004, // 001A JMPF R7 #0020
+ 0x8C1C0709, // 001B GETMET R7 R3 K9
+ 0x88240906, // 001C GETMBR R9 R4 K6
+ 0x542AFFFD, // 001D LDINT R10 65534
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x601C0003, // 0020 GETGBL R7 G3
+ 0x5C200000, // 0021 MOVE R8 R0
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0x8C1C0F0B, // 0023 GETMET R7 R7 K11
+ 0x5C240200, // 0024 MOVE R9 R1
+ 0x5C280400, // 0025 MOVE R10 R2
+ 0x5C2C0600, // 0026 MOVE R11 R3
+ 0x7C1C0800, // 0027 CALL R7 4
+ 0x80040E00, // 0028 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
index fde45bb62..978d17ca9 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h
@@ -58,68 +58,58 @@ be_local_closure(class_Matter_Plugin_Sensor_Humidity_read_attribute, /* name *
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(U2),
+ /* K7 */ be_nested_str_weak(shadow_value),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
+ ( &(const binstruction[41]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0404, // 0004 LDINT R7 1029
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
+ 0x781E0018, // 0006 JMPF R7 #0020
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x542A01F3, // 001F LDINT R10 500
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542A270F, // 0027 LDINT R10 10000
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
+ 0x781E0007, // 0008 JMPF R7 #0011
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x60280009, // 000B GETGBL R10 G9
+ 0x882C0107, // 000C GETMBR R11 R0 K7
+ 0x7C280200, // 000D CALL R10 1
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x7002000E, // 0010 JMP #0020
+ 0x1C1C0D08, // 0011 EQ R7 R6 K8
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0709, // 0013 GETMET R7 R3 K9
+ 0x88240906, // 0014 GETMBR R9 R4 K6
+ 0x542A01F3, // 0015 LDINT R10 500
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x70020006, // 0018 JMP #0020
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0004, // 001A JMPF R7 #0020
+ 0x8C1C0709, // 001B GETMET R7 R3 K9
+ 0x88240906, // 001C GETMBR R9 R4 K6
+ 0x542A270F, // 001D LDINT R10 10000
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x601C0003, // 0020 GETGBL R7 G3
+ 0x5C200000, // 0021 MOVE R8 R0
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0x8C1C0F0B, // 0023 GETMET R7 R7 K11
+ 0x5C240200, // 0024 MOVE R9 R1
+ 0x5C280400, // 0025 MOVE R10 R2
+ 0x5C2C0600, // 0026 MOVE R11 R3
+ 0x7C1C0800, // 0027 CALL R7 4
+ 0x80040E00, // 0028 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
index 147369bde..23f7928ec 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Illuminance.h
@@ -58,68 +58,58 @@ be_local_closure(class_Matter_Plugin_Sensor_Illuminance_read_attribute, /* nam
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(U2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(U2),
+ /* K7 */ be_nested_str_weak(shadow_value),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
+ ( &(const binstruction[41]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E03FF, // 0004 LDINT R7 1024
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
+ 0x781E0018, // 0006 JMPF R7 #0020
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x58280009, // 001F LDCONST R10 K9
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542AFFFD, // 0027 LDINT R10 65534
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
+ 0x781E0007, // 0008 JMPF R7 #0011
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x60280009, // 000B GETGBL R10 G9
+ 0x882C0107, // 000C GETMBR R11 R0 K7
+ 0x7C280200, // 000D CALL R10 1
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x7002000E, // 0010 JMP #0020
+ 0x1C1C0D08, // 0011 EQ R7 R6 K8
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0709, // 0013 GETMET R7 R3 K9
+ 0x88240906, // 0014 GETMBR R9 R4 K6
+ 0x58280008, // 0015 LDCONST R10 K8
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x70020006, // 0018 JMP #0020
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0004, // 001A JMPF R7 #0020
+ 0x8C1C0709, // 001B GETMET R7 R3 K9
+ 0x88240906, // 001C GETMBR R9 R4 K6
+ 0x542AFFFD, // 001D LDINT R10 65534
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x601C0003, // 0020 GETGBL R7 G3
+ 0x5C200000, // 0021 MOVE R8 R0
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0x8C1C0F0B, // 0023 GETMET R7 R7 K11
+ 0x5C240200, // 0024 MOVE R9 R1
+ 0x5C280400, // 0025 MOVE R10 R2
+ 0x5C2C0600, // 0026 MOVE R11 R3
+ 0x7C1C0800, // 0027 CALL R7 4
+ 0x80040E00, // 0028 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
index a14b2f339..c8a6e3198 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Pressure.h
@@ -58,68 +58,58 @@ be_local_closure(class_Matter_Plugin_Sensor_Pressure_read_attribute, /* name *
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(I2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(I2),
+ /* K7 */ be_nested_str_weak(shadow_value),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
+ ( &(const binstruction[41]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0402, // 0004 LDINT R7 1027
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
+ 0x781E0018, // 0006 JMPF R7 #0020
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0011, // 0008 JMPF R7 #001B
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0007, // 000C JMPF R7 #0015
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x60280009, // 000F GETGBL R10 G9
- 0x882C0105, // 0010 GETMBR R11 R0 K5
- 0x7C280200, // 0011 CALL R10 1
- 0x7C1C0600, // 0012 CALL R7 3
- 0x80040E00, // 0013 RET 1 R7
- 0x70020004, // 0014 JMP #001A
- 0x8C1C0706, // 0015 GETMET R7 R3 K6
- 0x88240908, // 0016 GETMBR R9 R4 K8
- 0x4C280000, // 0017 LDNIL R10
- 0x7C1C0600, // 0018 CALL R7 3
- 0x80040E00, // 0019 RET 1 R7
- 0x7002000E, // 001A JMP #002A
- 0x1C1C0D09, // 001B EQ R7 R6 K9
- 0x781E0005, // 001C JMPF R7 #0023
- 0x8C1C0706, // 001D GETMET R7 R3 K6
- 0x88240907, // 001E GETMBR R9 R4 K7
- 0x542A01F3, // 001F LDINT R10 500
- 0x7C1C0600, // 0020 CALL R7 3
- 0x80040E00, // 0021 RET 1 R7
- 0x70020006, // 0022 JMP #002A
- 0x1C1C0D0A, // 0023 EQ R7 R6 K10
- 0x781E0004, // 0024 JMPF R7 #002A
- 0x8C1C0706, // 0025 GETMET R7 R3 K6
- 0x88240907, // 0026 GETMBR R9 R4 K7
- 0x542A05DB, // 0027 LDINT R10 1500
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0B, // 002D GETMET R7 R7 K11
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
+ 0x781E0007, // 0008 JMPF R7 #0011
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x60280009, // 000B GETGBL R10 G9
+ 0x882C0107, // 000C GETMBR R11 R0 K7
+ 0x7C280200, // 000D CALL R10 1
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x7002000E, // 0010 JMP #0020
+ 0x1C1C0D08, // 0011 EQ R7 R6 K8
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0709, // 0013 GETMET R7 R3 K9
+ 0x88240906, // 0014 GETMBR R9 R4 K6
+ 0x542A01F3, // 0015 LDINT R10 500
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x70020006, // 0018 JMP #0020
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0004, // 001A JMPF R7 #0020
+ 0x8C1C0709, // 001B GETMET R7 R3 K9
+ 0x88240906, // 001C GETMBR R9 R4 K6
+ 0x542A05DB, // 001D LDINT R10 1500
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x601C0003, // 0020 GETGBL R7 G3
+ 0x5C200000, // 0021 MOVE R8 R0
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0x8C1C0F0B, // 0023 GETMET R7 R7 K11
+ 0x5C240200, // 0024 MOVE R9 R1
+ 0x5C280400, // 0025 MOVE R10 R2
+ 0x5C2C0600, // 0026 MOVE R11 R3
+ 0x7C1C0800, // 0027 CALL R7 4
+ 0x80040E00, // 0028 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
index d0b9e7473..4e1663584 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Temp.h
@@ -58,66 +58,56 @@ be_local_closure(class_Matter_Plugin_Sensor_Temp_read_attribute, /* name */
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(shadow_value),
- /* K6 */ be_nested_str_weak(set),
- /* K7 */ be_nested_str_weak(I2),
- /* K8 */ be_nested_str_weak(NULL),
- /* K9 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(set_or_nil),
+ /* K6 */ be_nested_str_weak(I2),
+ /* K7 */ be_nested_str_weak(shadow_value),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(2),
/* K11 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[49]) { /* code */
+ ( &(const binstruction[39]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0401, // 0004 LDINT R7 1026
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0020, // 0006 JMPF R7 #0028
+ 0x781E0016, // 0006 JMPF R7 #001E
0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E000F, // 0008 JMPF R7 #0019
- 0x881C0105, // 0009 GETMBR R7 R0 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E0005, // 000C JMPF R7 #0013
- 0x8C1C0706, // 000D GETMET R7 R3 K6
- 0x88240907, // 000E GETMBR R9 R4 K7
- 0x88280105, // 000F GETMBR R10 R0 K5
- 0x7C1C0600, // 0010 CALL R7 3
- 0x80040E00, // 0011 RET 1 R7
- 0x70020004, // 0012 JMP #0018
- 0x8C1C0706, // 0013 GETMET R7 R3 K6
- 0x88240908, // 0014 GETMBR R9 R4 K8
- 0x4C280000, // 0015 LDNIL R10
- 0x7C1C0600, // 0016 CALL R7 3
- 0x80040E00, // 0017 RET 1 R7
- 0x7002000E, // 0018 JMP #0028
- 0x1C1C0D09, // 0019 EQ R7 R6 K9
- 0x781E0005, // 001A JMPF R7 #0021
- 0x8C1C0706, // 001B GETMET R7 R3 K6
- 0x88240907, // 001C GETMBR R9 R4 K7
- 0x5429EC77, // 001D LDINT R10 -5000
- 0x7C1C0600, // 001E CALL R7 3
- 0x80040E00, // 001F RET 1 R7
- 0x70020006, // 0020 JMP #0028
- 0x1C1C0D0A, // 0021 EQ R7 R6 K10
- 0x781E0004, // 0022 JMPF R7 #0028
- 0x8C1C0706, // 0023 GETMET R7 R3 K6
- 0x88240907, // 0024 GETMBR R9 R4 K7
- 0x542A3A97, // 0025 LDINT R10 15000
- 0x7C1C0600, // 0026 CALL R7 3
- 0x80040E00, // 0027 RET 1 R7
- 0x601C0003, // 0028 GETGBL R7 G3
- 0x5C200000, // 0029 MOVE R8 R0
- 0x7C1C0200, // 002A CALL R7 1
- 0x8C1C0F0B, // 002B GETMET R7 R7 K11
- 0x5C240200, // 002C MOVE R9 R1
- 0x5C280400, // 002D MOVE R10 R2
- 0x5C2C0600, // 002E MOVE R11 R3
- 0x7C1C0800, // 002F CALL R7 4
- 0x80040E00, // 0030 RET 1 R7
+ 0x781E0005, // 0008 JMPF R7 #000F
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x88280107, // 000B GETMBR R10 R0 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x7002000E, // 000E JMP #001E
+ 0x1C1C0D08, // 000F EQ R7 R6 K8
+ 0x781E0005, // 0010 JMPF R7 #0017
+ 0x8C1C0709, // 0011 GETMET R7 R3 K9
+ 0x88240906, // 0012 GETMBR R9 R4 K6
+ 0x5429EC77, // 0013 LDINT R10 -5000
+ 0x7C1C0600, // 0014 CALL R7 3
+ 0x80040E00, // 0015 RET 1 R7
+ 0x70020006, // 0016 JMP #001E
+ 0x1C1C0D0A, // 0017 EQ R7 R6 K10
+ 0x781E0004, // 0018 JMPF R7 #001E
+ 0x8C1C0709, // 0019 GETMET R7 R3 K9
+ 0x88240906, // 001A GETMBR R9 R4 K6
+ 0x542A3A97, // 001B LDINT R10 15000
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x80040E00, // 001D RET 1 R7
+ 0x601C0003, // 001E GETGBL R7 G3
+ 0x5C200000, // 001F MOVE R8 R0
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x8C1C0F0B, // 0021 GETMET R7 R7 K11
+ 0x5C240200, // 0022 MOVE R9 R1
+ 0x5C280400, // 0023 MOVE R10 R2
+ 0x5C2C0600, // 0024 MOVE R11 R3
+ 0x7C1C0800, // 0025 CALL R7 4
+ 0x80040E00, // 0026 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Profiler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Profiler.h
index ae5321625..a87dec5fc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Profiler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Profiler.h
@@ -231,7 +231,7 @@ be_local_closure(class_Matter_Profiler_log, /* name */
extern const bclass be_class_Matter_Profiler;
be_local_closure(class_Matter_Profiler_dump, /* name */
be_nested_proto(
- 13, /* nstack */
+ 12, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -239,63 +239,60 @@ be_local_closure(class_Matter_Profiler_dump, /* name */
0, /* has sup protos */
&be_class_Matter_Profiler,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(active),
/* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(_X3C_X2D_X2Dend_X2D_X2D_X3E),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20Profiler_X20dump_X3A),
- /* K5 */ be_nested_str_weak(millis),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str_weak(allocs),
- /* K8 */ be_nested_str_weak(reallocs),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(len),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X254i_X20_X5B_X254i_X5D_X27_X25s_X27),
- /* K12 */ be_nested_str_weak(names),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20Profiler_X20dump_X3A),
+ /* K4 */ be_nested_str_weak(millis),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(allocs),
+ /* K7 */ be_nested_str_weak(reallocs),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(len),
+ /* K10 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X254i_X20_X5B_X254i_X5D_X27_X25s_X27),
+ /* K11 */ be_nested_str_weak(names),
}),
be_str_weak(dump),
&be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
+ ( &(const binstruction[37]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0000, // 0001 JMPT R2 #0003
0x80000400, // 0002 RET 0
0x8C080101, // 0003 GETMET R2 R0 K1
0x58100002, // 0004 LDCONST R4 K2
0x7C080400, // 0005 CALL R2 2
- 0xB80A0600, // 0006 GETNGBL R2 K3
- 0x8C080501, // 0007 GETMET R2 R2 K1
- 0x58100004, // 0008 LDCONST R4 K4
- 0x5C140200, // 0009 MOVE R5 R1
- 0x7C080600, // 000A CALL R2 3
- 0x88080105, // 000B GETMBR R2 R0 K5
- 0x94080506, // 000C GETIDX R2 R2 K6
- 0x880C0107, // 000D GETMBR R3 R0 K7
- 0x940C0706, // 000E GETIDX R3 R3 K6
- 0x88100108, // 000F GETMBR R4 R0 K8
- 0x94100906, // 0010 GETIDX R4 R4 K6
- 0x58140009, // 0011 LDCONST R5 K9
- 0x8818010A, // 0012 GETMBR R6 R0 K10
- 0x14180A06, // 0013 LT R6 R5 R6
- 0x781A0010, // 0014 JMPF R6 #0026
- 0xB81A0600, // 0015 GETNGBL R6 K3
- 0x8C180D01, // 0016 GETMET R6 R6 K1
- 0x60200018, // 0017 GETGBL R8 G24
- 0x5824000B, // 0018 LDCONST R9 K11
- 0x88280105, // 0019 GETMBR R10 R0 K5
- 0x94281405, // 001A GETIDX R10 R10 R5
- 0x04281402, // 001B SUB R10 R10 R2
- 0x882C0107, // 001C GETMBR R11 R0 K7
- 0x942C1605, // 001D GETIDX R11 R11 R5
- 0x042C1603, // 001E SUB R11 R11 R3
- 0x8830010C, // 001F GETMBR R12 R0 K12
- 0x94301805, // 0020 GETIDX R12 R12 R5
- 0x7C200800, // 0021 CALL R8 4
- 0x5C240200, // 0022 MOVE R9 R1
- 0x7C180600, // 0023 CALL R6 3
- 0x00140B09, // 0024 ADD R5 R5 K9
- 0x7001FFEB, // 0025 JMP #0012
- 0x80000000, // 0026 RET 0
+ 0xB80A0200, // 0006 GETNGBL R2 K1
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x5C100200, // 0008 MOVE R4 R1
+ 0x7C080400, // 0009 CALL R2 2
+ 0x88080104, // 000A GETMBR R2 R0 K4
+ 0x94080505, // 000B GETIDX R2 R2 K5
+ 0x880C0106, // 000C GETMBR R3 R0 K6
+ 0x940C0705, // 000D GETIDX R3 R3 K5
+ 0x88100107, // 000E GETMBR R4 R0 K7
+ 0x94100905, // 000F GETIDX R4 R4 K5
+ 0x58140008, // 0010 LDCONST R5 K8
+ 0x88180109, // 0011 GETMBR R6 R0 K9
+ 0x14180A06, // 0012 LT R6 R5 R6
+ 0x781A000F, // 0013 JMPF R6 #0024
+ 0xB81A0200, // 0014 GETNGBL R6 K1
+ 0x601C0018, // 0015 GETGBL R7 G24
+ 0x5820000A, // 0016 LDCONST R8 K10
+ 0x88240104, // 0017 GETMBR R9 R0 K4
+ 0x94241205, // 0018 GETIDX R9 R9 R5
+ 0x04241202, // 0019 SUB R9 R9 R2
+ 0x88280106, // 001A GETMBR R10 R0 K6
+ 0x94281405, // 001B GETIDX R10 R10 R5
+ 0x04281403, // 001C SUB R10 R10 R3
+ 0x882C010B, // 001D GETMBR R11 R0 K11
+ 0x942C1605, // 001E GETIDX R11 R11 R5
+ 0x7C1C0800, // 001F CALL R7 4
+ 0x5C200200, // 0020 MOVE R8 R1
+ 0x7C180400, // 0021 CALL R6 2
+ 0x00140B08, // 0022 ADD R5 R5 K8
+ 0x7001FFEC, // 0023 JMP #0011
+ 0x80000000, // 0024 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
index 35cfe8059..146803b6b 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
@@ -1004,7 +1004,7 @@ be_local_closure(class_Matter_Session_is_CASE, /* name */
extern const bclass be_class_Matter_Session;
be_local_closure(class_Matter_Session_before_remove, /* name */
be_nested_proto(
- 6, /* nstack */
+ 5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1012,25 +1012,23 @@ be_local_closure(class_Matter_Session_before_remove, /* name */
0, /* has sup protos */
&be_class_Matter_Session,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29),
- /* K3 */ be_nested_str_weak(local_session_id),
- /* K4 */ be_const_int(3),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29),
+ /* K2 */ be_nested_str_weak(local_session_id),
+ /* K3 */ be_const_int(3),
}),
be_str_weak(before_remove),
&be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
+ ( &(const binstruction[ 8]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x600C0018, // 0002 GETGBL R3 G24
- 0x58100002, // 0003 LDCONST R4 K2
- 0x88140103, // 0004 GETMBR R5 R0 K3
- 0x7C0C0400, // 0005 CALL R3 2
- 0x58100004, // 0006 LDCONST R4 K4
- 0x7C040600, // 0007 CALL R1 3
- 0x80000000, // 0008 RET 0
+ 0x60080018, // 0001 GETGBL R2 G24
+ 0x580C0001, // 0002 LDCONST R3 K1
+ 0x88100102, // 0003 GETMBR R4 R0 K2
+ 0x7C080400, // 0004 CALL R2 2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x7C040400, // 0006 CALL R1 2
+ 0x80000000, // 0007 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session_Store.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session_Store.h
index 6b86aa097..52966ff73 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session_Store.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session_Store.h
@@ -147,8 +147,8 @@ be_local_closure(class_Matter_Session_Store_load_fabrics, /* name */
}),
be_str_weak(load_fabrics),
&be_const_str_solidified,
- ( &(const binstruction[117]) { /* code */
- 0xA802005F, // 0000 EXBLK 0 #0061
+ ( &(const binstruction[115]) { /* code */
+ 0xA802005E, // 0000 EXBLK 0 #0060
0xB8060200, // 0001 GETNGBL R1 K1
0x8C040302, // 0002 GETMET R1 R1 K2
0x7C040200, // 0003 CALL R1 1
@@ -233,38 +233,36 @@ be_local_closure(class_Matter_Session_Store_load_fabrics, /* name */
0x58140013, // 0052 LDCONST R5 K19
0xAC140200, // 0053 CATCH R5 1 0
0xB0080000, // 0054 RAISE 2 R0 R0
- 0xB8161200, // 0055 GETNGBL R5 K9
- 0x8C140B15, // 0056 GETMET R5 R5 K21
- 0x601C0018, // 0057 GETGBL R7 G24
- 0x58200016, // 0058 LDCONST R8 K22
- 0x6024000C, // 0059 GETGBL R9 G12
- 0x88280103, // 005A GETMBR R10 R0 K3
- 0x7C240200, // 005B CALL R9 1
- 0x7C1C0400, // 005C CALL R7 2
- 0x58200017, // 005D LDCONST R8 K23
- 0x7C140600, // 005E CALL R5 3
- 0xA8040001, // 005F EXBLK 1 1
- 0x70020012, // 0060 JMP #0074
- 0xAC040002, // 0061 CATCH R1 0 2
- 0x7002000F, // 0062 JMP #0073
- 0x200C0318, // 0063 NE R3 R1 K24
- 0x780E000C, // 0064 JMPF R3 #0072
- 0xB80E1200, // 0065 GETNGBL R3 K9
- 0x8C0C0715, // 0066 GETMET R3 R3 K21
- 0x60140008, // 0067 GETGBL R5 G8
- 0x5C180200, // 0068 MOVE R6 R1
- 0x7C140200, // 0069 CALL R5 1
- 0x00163205, // 006A ADD R5 K25 R5
- 0x00140B1A, // 006B ADD R5 R5 K26
- 0x60180008, // 006C GETGBL R6 G8
- 0x5C1C0400, // 006D MOVE R7 R2
- 0x7C180200, // 006E CALL R6 1
- 0x00140A06, // 006F ADD R5 R5 R6
- 0x58180017, // 0070 LDCONST R6 K23
- 0x7C0C0600, // 0071 CALL R3 3
- 0x70020000, // 0072 JMP #0074
- 0xB0080000, // 0073 RAISE 2 R0 R0
- 0x80000000, // 0074 RET 0
+ 0xB8162A00, // 0055 GETNGBL R5 K21
+ 0x60180018, // 0056 GETGBL R6 G24
+ 0x581C0016, // 0057 LDCONST R7 K22
+ 0x6020000C, // 0058 GETGBL R8 G12
+ 0x88240103, // 0059 GETMBR R9 R0 K3
+ 0x7C200200, // 005A CALL R8 1
+ 0x7C180400, // 005B CALL R6 2
+ 0x581C0017, // 005C LDCONST R7 K23
+ 0x7C140400, // 005D CALL R5 2
+ 0xA8040001, // 005E EXBLK 1 1
+ 0x70020011, // 005F JMP #0072
+ 0xAC040002, // 0060 CATCH R1 0 2
+ 0x7002000E, // 0061 JMP #0071
+ 0x200C0318, // 0062 NE R3 R1 K24
+ 0x780E000B, // 0063 JMPF R3 #0070
+ 0xB80E2A00, // 0064 GETNGBL R3 K21
+ 0x60100008, // 0065 GETGBL R4 G8
+ 0x5C140200, // 0066 MOVE R5 R1
+ 0x7C100200, // 0067 CALL R4 1
+ 0x00123204, // 0068 ADD R4 K25 R4
+ 0x0010091A, // 0069 ADD R4 R4 K26
+ 0x60140008, // 006A GETGBL R5 G8
+ 0x5C180400, // 006B MOVE R6 R2
+ 0x7C140200, // 006C CALL R5 1
+ 0x00100805, // 006D ADD R4 R4 R5
+ 0x58140017, // 006E LDCONST R5 K23
+ 0x7C0C0400, // 006F CALL R3 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
})
)
);
@@ -582,7 +580,7 @@ be_local_closure(class_Matter_Session_Store_count_active_fabrics, /* name */
extern const bclass be_class_Matter_Session_Store;
be_local_closure(class_Matter_Session_Store_find_session_by_resumption_id, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -590,20 +588,19 @@ be_local_closure(class_Matter_Session_Store_find_session_by_resumption_id, /*
0, /* has sup protos */
&be_class_Matter_Session_Store,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(sessions),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20session_X2Eresumption_id_X3D_X25s_X20vs_X20_X25s),
- /* K5 */ be_nested_str_weak(resumption_id),
- /* K6 */ be_nested_str_weak(shared_secret),
- /* K7 */ be_nested_str_weak(update),
- /* K8 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20session_X2Eresumption_id_X3D_X25s_X20vs_X20_X25s),
+ /* K4 */ be_nested_str_weak(resumption_id),
+ /* K5 */ be_nested_str_weak(shared_secret),
+ /* K6 */ be_nested_str_weak(update),
+ /* K7 */ be_const_int(1),
}),
be_str_weak(find_session_by_resumption_id),
&be_const_str_solidified,
- ( &(const binstruction[38]) { /* code */
+ ( &(const binstruction[37]) { /* code */
0x5C080200, // 0000 MOVE R2 R1
0x740A0001, // 0001 JMPT R2 #0004
0x4C080000, // 0002 LDNIL R2
@@ -614,34 +611,33 @@ be_local_closure(class_Matter_Session_Store_find_session_by_resumption_id, /*
0x5C140600, // 0007 MOVE R5 R3
0x7C100200, // 0008 CALL R4 1
0x14100404, // 0009 LT R4 R2 R4
- 0x78120019, // 000A JMPF R4 #0025
+ 0x78120018, // 000A JMPF R4 #0024
0x94100602, // 000B GETIDX R4 R3 R2
0xB8160400, // 000C GETNGBL R5 K2
- 0x8C140B03, // 000D GETMET R5 R5 K3
- 0x601C0018, // 000E GETGBL R7 G24
- 0x58200004, // 000F LDCONST R8 K4
- 0x60240008, // 0010 GETGBL R9 G8
- 0x88280905, // 0011 GETMBR R10 R4 K5
- 0x7C240200, // 0012 CALL R9 1
- 0x60280008, // 0013 GETGBL R10 G8
- 0x5C2C0200, // 0014 MOVE R11 R1
- 0x7C280200, // 0015 CALL R10 1
- 0x7C1C0600, // 0016 CALL R7 3
- 0x54220003, // 0017 LDINT R8 4
- 0x7C140600, // 0018 CALL R5 3
- 0x88140905, // 0019 GETMBR R5 R4 K5
- 0x1C140A01, // 001A EQ R5 R5 R1
- 0x78160006, // 001B JMPF R5 #0023
- 0x88140906, // 001C GETMBR R5 R4 K6
- 0x4C180000, // 001D LDNIL R6
- 0x20140A06, // 001E NE R5 R5 R6
- 0x78160002, // 001F JMPF R5 #0023
- 0x8C140907, // 0020 GETMET R5 R4 K7
- 0x7C140200, // 0021 CALL R5 1
- 0x80040800, // 0022 RET 1 R4
- 0x00080508, // 0023 ADD R2 R2 K8
- 0x7001FFE0, // 0024 JMP #0006
- 0x80000000, // 0025 RET 0
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0003, // 000E LDCONST R7 K3
+ 0x60200008, // 000F GETGBL R8 G8
+ 0x88240904, // 0010 GETMBR R9 R4 K4
+ 0x7C200200, // 0011 CALL R8 1
+ 0x60240008, // 0012 GETGBL R9 G8
+ 0x5C280200, // 0013 MOVE R10 R1
+ 0x7C240200, // 0014 CALL R9 1
+ 0x7C180600, // 0015 CALL R6 3
+ 0x541E0003, // 0016 LDINT R7 4
+ 0x7C140400, // 0017 CALL R5 2
+ 0x88140904, // 0018 GETMBR R5 R4 K4
+ 0x1C140A01, // 0019 EQ R5 R5 R1
+ 0x78160006, // 001A JMPF R5 #0022
+ 0x88140905, // 001B GETMBR R5 R4 K5
+ 0x4C180000, // 001C LDNIL R6
+ 0x20140A06, // 001D NE R5 R5 R6
+ 0x78160002, // 001E JMPF R5 #0022
+ 0x8C140906, // 001F GETMET R5 R4 K6
+ 0x7C140200, // 0020 CALL R5 1
+ 0x80040800, // 0021 RET 1 R4
+ 0x00080507, // 0022 ADD R2 R2 K7
+ 0x7001FFE1, // 0023 JMP #0006
+ 0x80000000, // 0024 RET 0
})
)
);
@@ -1127,7 +1123,7 @@ be_local_closure(class_Matter_Session_Store_next_fabric_idx, /* name */
extern const bclass be_class_Matter_Session_Store;
be_local_closure(class_Matter_Session_Store_save_fabrics, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1135,7 +1131,7 @@ be_local_closure(class_Matter_Session_Store_save_fabrics, /* name */
0, /* has sup protos */
&be_class_Matter_Session_Store,
1, /* has constants */
- ( &(const bvalue[29]) { /* constants */
+ ( &(const bvalue[28]) { /* constants */
/* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(path),
/* K2 */ be_nested_str_weak(remove_expired),
@@ -1156,22 +1152,21 @@ be_local_closure(class_Matter_Session_Store_save_fabrics, /* name */
/* K17 */ be_nested_str_weak(remove),
/* K18 */ be_nested_str_weak(_FABRICS),
/* K19 */ be_nested_str_weak(rename),
- /* K20 */ be_nested_str_weak(tasmota),
- /* K21 */ be_nested_str_weak(log),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20_X25s_X20fabric_X28s_X29_X20and_X20_X25s_X20session_X28s_X29),
- /* K23 */ be_const_int(2),
- /* K24 */ be_nested_str_weak(device),
- /* K25 */ be_nested_str_weak(event_fabrics_saved),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20Saving_X20Fabrics_X20failed),
- /* K27 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K28 */ be_nested_str_weak(_X7C),
+ /* K20 */ be_nested_str_weak(log),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20_X25s_X20fabric_X28s_X29_X20and_X20_X25s_X20session_X28s_X29),
+ /* K22 */ be_const_int(2),
+ /* K23 */ be_nested_str_weak(device),
+ /* K24 */ be_nested_str_weak(event_fabrics_saved),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20Saving_X20Fabrics_X20failed),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K27 */ be_nested_str_weak(_X7C),
}),
be_str_weak(save_fabrics),
&be_const_str_solidified,
- ( &(const binstruction[101]) { /* code */
+ ( &(const binstruction[98]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
- 0xA802004F, // 0002 EXBLK 0 #0053
+ 0xA802004D, // 0002 EXBLK 0 #0051
0x8C0C0102, // 0003 GETMET R3 R0 K2
0x7C0C0200, // 0004 CALL R3 1
0x580C0003, // 0005 LDCONST R3 K3
@@ -1229,47 +1224,44 @@ be_local_closure(class_Matter_Session_Store_save_fabrics, /* name */
0x88200104, // 0039 GETMBR R8 R0 K4
0x88240112, // 003A GETMBR R9 R0 K18
0x7C180600, // 003B CALL R6 3
- 0x781A000C, // 003C JMPF R6 #004A
+ 0x781A000B, // 003C JMPF R6 #0049
0xB81A2800, // 003D GETNGBL R6 K20
- 0x8C180D15, // 003E GETMET R6 R6 K21
- 0x60200018, // 003F GETGBL R8 G24
- 0x58240016, // 0040 LDCONST R9 K22
- 0x5C280800, // 0041 MOVE R10 R4
- 0x5C2C0600, // 0042 MOVE R11 R3
- 0x7C200600, // 0043 CALL R8 3
- 0x58240017, // 0044 LDCONST R9 K23
- 0x7C180600, // 0045 CALL R6 3
- 0x88180118, // 0046 GETMBR R6 R0 K24
- 0x8C180D19, // 0047 GETMET R6 R6 K25
- 0x7C180200, // 0048 CALL R6 1
- 0x70020006, // 0049 JMP #0051
- 0xB81A2800, // 004A GETNGBL R6 K20
- 0x8C180D15, // 004B GETMET R6 R6 K21
- 0x60200018, // 004C GETGBL R8 G24
- 0x5824001A, // 004D LDCONST R9 K26
- 0x7C200200, // 004E CALL R8 1
- 0x58240017, // 004F LDCONST R9 K23
- 0x7C180600, // 0050 CALL R6 3
- 0xA8040001, // 0051 EXBLK 1 1
- 0x70020010, // 0052 JMP #0064
- 0xAC0C0002, // 0053 CATCH R3 0 2
- 0x7002000D, // 0054 JMP #0063
- 0xB8162800, // 0055 GETNGBL R5 K20
- 0x8C140B15, // 0056 GETMET R5 R5 K21
- 0x601C0008, // 0057 GETGBL R7 G8
- 0x5C200600, // 0058 MOVE R8 R3
- 0x7C1C0200, // 0059 CALL R7 1
- 0x001E3607, // 005A ADD R7 K27 R7
- 0x001C0F1C, // 005B ADD R7 R7 K28
- 0x60200008, // 005C GETGBL R8 G8
- 0x5C240800, // 005D MOVE R9 R4
- 0x7C200200, // 005E CALL R8 1
- 0x001C0E08, // 005F ADD R7 R7 R8
- 0x58200017, // 0060 LDCONST R8 K23
- 0x7C140600, // 0061 CALL R5 3
- 0x70020000, // 0062 JMP #0064
- 0xB0080000, // 0063 RAISE 2 R0 R0
- 0x80000000, // 0064 RET 0
+ 0x601C0018, // 003E GETGBL R7 G24
+ 0x58200015, // 003F LDCONST R8 K21
+ 0x5C240800, // 0040 MOVE R9 R4
+ 0x5C280600, // 0041 MOVE R10 R3
+ 0x7C1C0600, // 0042 CALL R7 3
+ 0x58200016, // 0043 LDCONST R8 K22
+ 0x7C180400, // 0044 CALL R6 2
+ 0x88180117, // 0045 GETMBR R6 R0 K23
+ 0x8C180D18, // 0046 GETMET R6 R6 K24
+ 0x7C180200, // 0047 CALL R6 1
+ 0x70020005, // 0048 JMP #004F
+ 0xB81A2800, // 0049 GETNGBL R6 K20
+ 0x601C0018, // 004A GETGBL R7 G24
+ 0x58200019, // 004B LDCONST R8 K25
+ 0x7C1C0200, // 004C CALL R7 1
+ 0x58200016, // 004D LDCONST R8 K22
+ 0x7C180400, // 004E CALL R6 2
+ 0xA8040001, // 004F EXBLK 1 1
+ 0x7002000F, // 0050 JMP #0061
+ 0xAC0C0002, // 0051 CATCH R3 0 2
+ 0x7002000C, // 0052 JMP #0060
+ 0xB8162800, // 0053 GETNGBL R5 K20
+ 0x60180008, // 0054 GETGBL R6 G8
+ 0x5C1C0600, // 0055 MOVE R7 R3
+ 0x7C180200, // 0056 CALL R6 1
+ 0x001A3406, // 0057 ADD R6 K26 R6
+ 0x00180D1B, // 0058 ADD R6 R6 K27
+ 0x601C0008, // 0059 GETGBL R7 G8
+ 0x5C200800, // 005A MOVE R8 R4
+ 0x7C1C0200, // 005B CALL R7 1
+ 0x00180C07, // 005C ADD R6 R6 R7
+ 0x581C0016, // 005D LDCONST R7 K22
+ 0x7C140400, // 005E CALL R5 2
+ 0x70020000, // 005F JMP #0061
+ 0xB0080000, // 0060 RAISE 2 R0 R0
+ 0x80000000, // 0061 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TCP_async.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TCP_async.h
index 405f2510e..b2d5f55e7 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TCP_async.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TCP_async.h
@@ -48,7 +48,7 @@ be_local_closure(class_Matter_TCP_async_read, /* name */
extern const bclass be_class_Matter_TCP_async;
be_local_closure(class_Matter_TCP_async_begin, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -83,7 +83,7 @@ be_local_closure(class_Matter_TCP_async_begin, /* name */
}),
be_str_weak(begin),
&be_const_str_solidified,
- ( &(const binstruction[63]) { /* code */
+ ( &(const binstruction[62]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
0x7C040200, // 0001 CALL R1 1
0xB8060200, // 0002 GETNGBL R1 K1
@@ -126,27 +126,26 @@ be_local_closure(class_Matter_TCP_async_begin, /* name */
0x7C040400, // 0027 CALL R1 2
0x50040200, // 0028 LDBOOL R1 1 0
0x80040200, // 0029 RET 1 R1
- 0x70020012, // 002A JMP #003E
- 0xB8060200, // 002B GETNGBL R1 K1
- 0x8C040311, // 002C GETMET R1 R1 K17
- 0x600C0018, // 002D GETGBL R3 G24
- 0x58100012, // 002E LDCONST R4 K18
- 0x8814010B, // 002F GETMBR R5 R0 K11
- 0x8818010C, // 0030 GETMBR R6 R0 K12
- 0x7C0C0600, // 0031 CALL R3 3
- 0x58100013, // 0032 LDCONST R4 K19
- 0x7C040600, // 0033 CALL R1 3
- 0x8C040114, // 0034 GETMET R1 R0 K20
- 0x7C040200, // 0035 CALL R1 1
- 0x5405FFFE, // 0036 LDINT R1 -1
- 0x90020E01, // 0037 SETMBR R0 K7 R1
- 0x50040000, // 0038 LDBOOL R1 0 0
- 0x90022A01, // 0039 SETMBR R0 K21 R1
- 0x8C040116, // 003A GETMET R1 R0 K22
- 0x7C040200, // 003B CALL R1 1
- 0x50040000, // 003C LDBOOL R1 0 0
- 0x80040200, // 003D RET 1 R1
- 0x80000000, // 003E RET 0
+ 0x70020011, // 002A JMP #003D
+ 0xB8062200, // 002B GETNGBL R1 K17
+ 0x60080018, // 002C GETGBL R2 G24
+ 0x580C0012, // 002D LDCONST R3 K18
+ 0x8810010B, // 002E GETMBR R4 R0 K11
+ 0x8814010C, // 002F GETMBR R5 R0 K12
+ 0x7C080600, // 0030 CALL R2 3
+ 0x580C0013, // 0031 LDCONST R3 K19
+ 0x7C040400, // 0032 CALL R1 2
+ 0x8C040114, // 0033 GETMET R1 R0 K20
+ 0x7C040200, // 0034 CALL R1 1
+ 0x5405FFFE, // 0035 LDINT R1 -1
+ 0x90020E01, // 0036 SETMBR R0 K7 R1
+ 0x50040000, // 0037 LDBOOL R1 0 0
+ 0x90022A01, // 0038 SETMBR R0 K21 R1
+ 0x8C040116, // 0039 GETMET R1 R0 K22
+ 0x7C040200, // 003A CALL R1 1
+ 0x50040000, // 003B LDBOOL R1 0 0
+ 0x80040200, // 003C RET 1 R1
+ 0x80000000, // 003D RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
index d88b86b6b..78ba7508d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
@@ -896,7 +896,7 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
+ ( &(const bvalue[24]) { /* constants */
/* K0 */ be_nested_str_weak(typ),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(_len),
@@ -916,16 +916,15 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
/* K16 */ be_nested_str_weak(asstring),
/* K17 */ be_nested_str_weak(NULL),
/* K18 */ be_nested_str_weak(EOC),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(log),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20unexpected_X20eoc),
- /* K22 */ be_const_int(3),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20unexpected_X20type_X3A_X20),
- /* K24 */ be_nested_str_weak(next_idx),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20unexpected_X20eoc),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(MTR_X3A_X20unexpected_X20type_X3A_X20),
+ /* K23 */ be_nested_str_weak(next_idx),
}),
be_str_weak(parse),
&be_const_str_solidified,
- ( &(const binstruction[103]) { /* code */
+ ( &(const binstruction[101]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x88100101, // 0001 GETMBR R4 R0 K1
0x88140902, // 0002 GETMBR R5 R4 K2
@@ -941,7 +940,7 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0x90020606, // 000C SETMBR R0 K3 R6
0x541A0007, // 000D LDINT R6 8
0x00080406, // 000E ADD R2 R2 R6
- 0x70020054, // 000F JMP #0065
+ 0x70020052, // 000F JMP #0063
0x88180906, // 0010 GETMBR R6 R4 K6
0x1C180606, // 0011 EQ R6 R3 R6
0x741A0002, // 0012 JMPT R6 #0016
@@ -951,7 +950,7 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0x88180907, // 0016 GETMBR R6 R4 K7
0x1C180606, // 0017 EQ R6 R3 R6
0x90020606, // 0018 SETMBR R0 K3 R6
- 0x7002004A, // 0019 JMP #0065
+ 0x70020048, // 0019 JMP #0063
0x88180908, // 001A GETMBR R6 R4 K8
0x14180606, // 001B LT R6 R3 R6
0x781A000E, // 001C JMPF R6 #002C
@@ -969,7 +968,7 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0x7C180600, // 0028 CALL R6 3
0x90020606, // 0029 SETMBR R0 K3 R6
0x00080405, // 002A ADD R2 R2 R5
- 0x70020038, // 002B JMP #0065
+ 0x70020036, // 002B JMP #0063
0x8818090C, // 002C GETMBR R6 R4 K12
0x1C180606, // 002D EQ R6 R3 R6
0x781A0006, // 002E JMPF R6 #0036
@@ -979,7 +978,7 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0x90020606, // 0032 SETMBR R0 K3 R6
0x541A0003, // 0033 LDINT R6 4
0x00080406, // 0034 ADD R2 R2 R6
- 0x7002002E, // 0035 JMP #0065
+ 0x7002002C, // 0035 JMP #0063
0x5419FFF7, // 0036 LDINT R6 -8
0x28180A06, // 0037 GE R6 R5 R6
0x781A0016, // 0038 JMPF R6 #0050
@@ -1005,30 +1004,28 @@ be_local_closure(class_Matter_TLV_item_parse, /* name */
0x8C1C0F10, // 004C GETMET R7 R7 K16
0x7C1C0200, // 004D CALL R7 1
0x90020607, // 004E SETMBR R0 K3 R7
- 0x70020014, // 004F JMP #0065
+ 0x70020012, // 004F JMP #0063
0x88180911, // 0050 GETMBR R6 R4 K17
0x1C180606, // 0051 EQ R6 R3 R6
0x781A0000, // 0052 JMPF R6 #0054
- 0x70020010, // 0053 JMP #0065
+ 0x7002000E, // 0053 JMP #0063
0x88180912, // 0054 GETMBR R6 R4 K18
0x1C180606, // 0055 EQ R6 R3 R6
- 0x781A0005, // 0056 JMPF R6 #005D
+ 0x781A0004, // 0056 JMPF R6 #005C
0xB81A2600, // 0057 GETNGBL R6 K19
- 0x8C180D14, // 0058 GETMET R6 R6 K20
+ 0x581C0014, // 0058 LDCONST R7 K20
0x58200015, // 0059 LDCONST R8 K21
- 0x58240016, // 005A LDCONST R9 K22
- 0x7C180600, // 005B CALL R6 3
- 0x70020007, // 005C JMP #0065
- 0xB81A2600, // 005D GETNGBL R6 K19
- 0x8C180D14, // 005E GETMET R6 R6 K20
- 0x60200008, // 005F GETGBL R8 G8
- 0x5C240600, // 0060 MOVE R9 R3
- 0x7C200200, // 0061 CALL R8 1
- 0x00222E08, // 0062 ADD R8 K23 R8
- 0x58240016, // 0063 LDCONST R9 K22
- 0x7C180600, // 0064 CALL R6 3
- 0x90023002, // 0065 SETMBR R0 K24 R2
- 0x80040400, // 0066 RET 1 R2
+ 0x7C180400, // 005A CALL R6 2
+ 0x70020006, // 005B JMP #0063
+ 0xB81A2600, // 005C GETNGBL R6 K19
+ 0x601C0008, // 005D GETGBL R7 G8
+ 0x5C200600, // 005E MOVE R8 R3
+ 0x7C1C0200, // 005F CALL R7 1
+ 0x001E2C07, // 0060 ADD R7 K22 R7
+ 0x58200015, // 0061 LDCONST R8 K21
+ 0x7C180400, // 0062 CALL R6 2
+ 0x90022E02, // 0063 SETMBR R0 K23 R2
+ 0x80040400, // 0064 RET 1 R2
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
index 180150805..1a1d559c0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
@@ -193,7 +193,7 @@ be_local_closure(class_Matter_UDPServer_send_UDP, /* name */
extern const bclass be_class_Matter_UDPServer;
be_local_closure(class_Matter_UDPServer_received_ack, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -216,7 +216,7 @@ be_local_closure(class_Matter_UDPServer_received_ack, /* name */
}),
be_str_weak(received_ack),
&be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
+ ( &(const binstruction[40]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x4C100000, // 0002 LDNIL R4
@@ -228,15 +228,15 @@ be_local_closure(class_Matter_UDPServer_received_ack, /* name */
0x88180103, // 0008 GETMBR R6 R0 K3
0x7C140200, // 0009 CALL R5 1
0x14140805, // 000A LT R5 R4 R5
- 0x7816001B, // 000B JMPF R5 #0028
+ 0x7816001A, // 000B JMPF R5 #0027
0x88140103, // 000C GETMBR R5 R0 K3
0x94140A04, // 000D GETIDX R5 R5 R4
0x88180B04, // 000E GETMBR R6 R5 K4
0x1C180C02, // 000F EQ R6 R6 R2
- 0x781A0014, // 0010 JMPF R6 #0026
+ 0x781A0013, // 0010 JMPF R6 #0025
0x88180B01, // 0011 GETMBR R6 R5 K1
0x1C180C03, // 0012 EQ R6 R6 R3
- 0x781A0011, // 0013 JMPF R6 #0026
+ 0x781A0010, // 0013 JMPF R6 #0025
0x88180103, // 0014 GETMBR R6 R0 K3
0x8C180D05, // 0015 GETMET R6 R6 K5
0x5C200800, // 0016 MOVE R8 R4
@@ -245,19 +245,18 @@ be_local_closure(class_Matter_UDPServer_received_ack, /* name */
0x8C180D07, // 0019 GETMET R6 R6 K7
0x54220003, // 001A LDINT R8 4
0x7C180400, // 001B CALL R6 2
- 0x781A0007, // 001C JMPF R6 #0025
- 0xB81A0C00, // 001D GETNGBL R6 K6
- 0x8C180D08, // 001E GETMET R6 R6 K8
- 0x60200008, // 001F GETGBL R8 G8
- 0x5C240400, // 0020 MOVE R9 R2
- 0x7C200200, // 0021 CALL R8 1
- 0x00221208, // 0022 ADD R8 K9 R8
- 0x54260003, // 0023 LDINT R9 4
- 0x7C180600, // 0024 CALL R6 3
- 0x70020000, // 0025 JMP #0027
- 0x0010090A, // 0026 ADD R4 R4 K10
- 0x7001FFDE, // 0027 JMP #0007
- 0x80000000, // 0028 RET 0
+ 0x781A0006, // 001C JMPF R6 #0024
+ 0xB81A1000, // 001D GETNGBL R6 K8
+ 0x601C0008, // 001E GETGBL R7 G8
+ 0x5C200400, // 001F MOVE R8 R2
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x001E1207, // 0021 ADD R7 K9 R7
+ 0x54220003, // 0022 LDINT R8 4
+ 0x7C180400, // 0023 CALL R6 2
+ 0x70020000, // 0024 JMP #0026
+ 0x0010090A, // 0025 ADD R4 R4 K10
+ 0x7001FFDF, // 0026 JMP #0007
+ 0x80000000, // 0027 RET 0
})
)
);
@@ -328,7 +327,7 @@ be_local_closure(class_Matter_UDPServer_start, /* name */
extern const bclass be_class_Matter_UDPServer;
be_local_closure(class_Matter_UDPServer_send, /* name */
be_nested_proto(
- 9, /* nstack */
+ 8, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -353,7 +352,7 @@ be_local_closure(class_Matter_UDPServer_send, /* name */
}),
be_str_weak(send),
&be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
+ ( &(const binstruction[45]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -370,37 +369,35 @@ be_local_closure(class_Matter_UDPServer_send, /* name */
0x88140B05, // 000D GETMBR R5 R5 K5
0x88180306, // 000E GETMBR R6 R1 K6
0x7C080800, // 000F CALL R2 4
- 0x780A000E, // 0010 JMPF R2 #0020
+ 0x780A000D, // 0010 JMPF R2 #001F
0xB80E0E00, // 0011 GETNGBL R3 K7
0x8C0C0708, // 0012 GETMET R3 R3 K8
0x54160003, // 0013 LDINT R5 4
0x7C0C0400, // 0014 CALL R3 2
- 0x780E0008, // 0015 JMPF R3 #001F
- 0xB80E0E00, // 0016 GETNGBL R3 K7
- 0x8C0C0709, // 0017 GETMET R3 R3 K9
- 0x60140018, // 0018 GETGBL R5 G24
- 0x5818000A, // 0019 LDCONST R6 K10
- 0x881C0302, // 001A GETMBR R7 R1 K2
- 0x88200304, // 001B GETMBR R8 R1 K4
- 0x7C140600, // 001C CALL R5 3
- 0x541A0003, // 001D LDINT R6 4
- 0x7C0C0600, // 001E CALL R3 3
- 0x7002000D, // 001F JMP #002E
- 0xB80E0E00, // 0020 GETNGBL R3 K7
- 0x8C0C0708, // 0021 GETMET R3 R3 K8
- 0x5814000B, // 0022 LDCONST R5 K11
- 0x7C0C0400, // 0023 CALL R3 2
- 0x780E0008, // 0024 JMPF R3 #002E
- 0xB80E0E00, // 0025 GETNGBL R3 K7
- 0x8C0C0709, // 0026 GETMET R3 R3 K9
- 0x60140018, // 0027 GETGBL R5 G24
- 0x5818000C, // 0028 LDCONST R6 K12
- 0x881C0302, // 0029 GETMBR R7 R1 K2
- 0x88200304, // 002A GETMBR R8 R1 K4
- 0x7C140600, // 002B CALL R5 3
- 0x5818000B, // 002C LDCONST R6 K11
- 0x7C0C0600, // 002D CALL R3 3
- 0x80040400, // 002E RET 1 R2
+ 0x780E0007, // 0015 JMPF R3 #001E
+ 0xB80E1200, // 0016 GETNGBL R3 K9
+ 0x60100018, // 0017 GETGBL R4 G24
+ 0x5814000A, // 0018 LDCONST R5 K10
+ 0x88180302, // 0019 GETMBR R6 R1 K2
+ 0x881C0304, // 001A GETMBR R7 R1 K4
+ 0x7C100600, // 001B CALL R4 3
+ 0x54160003, // 001C LDINT R5 4
+ 0x7C0C0400, // 001D CALL R3 2
+ 0x7002000C, // 001E JMP #002C
+ 0xB80E0E00, // 001F GETNGBL R3 K7
+ 0x8C0C0708, // 0020 GETMET R3 R3 K8
+ 0x5814000B, // 0021 LDCONST R5 K11
+ 0x7C0C0400, // 0022 CALL R3 2
+ 0x780E0007, // 0023 JMPF R3 #002C
+ 0xB80E1200, // 0024 GETNGBL R3 K9
+ 0x60100018, // 0025 GETGBL R4 G24
+ 0x5814000C, // 0026 LDCONST R5 K12
+ 0x88180302, // 0027 GETMBR R6 R1 K2
+ 0x881C0304, // 0028 GETMBR R7 R1 K4
+ 0x7C100600, // 0029 CALL R4 3
+ 0x5814000B, // 002A LDCONST R5 K11
+ 0x7C0C0400, // 002B CALL R3 2
+ 0x80040400, // 002C RET 1 R2
})
)
);
@@ -533,7 +530,7 @@ be_local_closure(class_Matter_UDPServer_init, /* name */
extern const bclass be_class_Matter_UDPServer;
be_local_closure(class_Matter_UDPServer__resend_packets, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -565,67 +562,65 @@ be_local_closure(class_Matter_UDPServer__resend_packets, /* name */
}),
be_str_weak(_resend_packets),
&be_const_str_solidified,
- ( &(const binstruction[60]) { /* code */
+ ( &(const binstruction[58]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0x6008000C, // 0001 GETGBL R2 G12
0x880C0101, // 0002 GETMBR R3 R0 K1
0x7C080200, // 0003 CALL R2 1
0x14080202, // 0004 LT R2 R1 R2
- 0x780A0034, // 0005 JMPF R2 #003B
+ 0x780A0032, // 0005 JMPF R2 #0039
0x88080101, // 0006 GETMBR R2 R0 K1
0x94080401, // 0007 GETIDX R2 R2 R1
0xB80E0400, // 0008 GETNGBL R3 K2
0x8C0C0703, // 0009 GETMET R3 R3 K3
0x88140504, // 000A GETMBR R5 R2 K4
0x7C0C0400, // 000B CALL R3 2
- 0x780E002B, // 000C JMPF R3 #0039
+ 0x780E0029, // 000C JMPF R3 #0037
0x880C0505, // 000D GETMBR R3 R2 K5
0x88100106, // 000E GETMBR R4 R0 K6
0x180C0604, // 000F LE R3 R3 R4
- 0x780E0017, // 0010 JMPF R3 #0029
- 0xB80E0400, // 0011 GETNGBL R3 K2
- 0x8C0C0707, // 0012 GETMET R3 R3 K7
- 0x60140008, // 0013 GETGBL R5 G8
- 0x88180509, // 0014 GETMBR R6 R2 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x00161005, // 0016 ADD R5 K8 R5
- 0x541A0003, // 0017 LDINT R6 4
- 0x7C0C0600, // 0018 CALL R3 3
- 0x8C0C010A, // 0019 GETMET R3 R0 K10
- 0x5C140400, // 001A MOVE R5 R2
- 0x7C0C0400, // 001B CALL R3 2
- 0xB80E0400, // 001C GETNGBL R3 K2
- 0x8C0C070B, // 001D GETMET R3 R3 K11
- 0x7C0C0200, // 001E CALL R3 1
- 0x8C10010C, // 001F GETMET R4 R0 K12
- 0x88180505, // 0020 GETMBR R6 R2 K5
- 0x7C100400, // 0021 CALL R4 2
- 0x000C0604, // 0022 ADD R3 R3 R4
- 0x900A0803, // 0023 SETMBR R2 K4 R3
- 0x880C0505, // 0024 GETMBR R3 R2 K5
- 0x000C070D, // 0025 ADD R3 R3 K13
- 0x900A0A03, // 0026 SETMBR R2 K5 R3
- 0x0004030D, // 0027 ADD R1 R1 K13
- 0x7002000E, // 0028 JMP #0038
- 0x880C0101, // 0029 GETMBR R3 R0 K1
- 0x8C0C070E, // 002A GETMET R3 R3 K14
- 0x5C140200, // 002B MOVE R5 R1
- 0x7C0C0400, // 002C CALL R3 2
- 0xB80E0400, // 002D GETNGBL R3 K2
- 0x8C0C0707, // 002E GETMET R3 R3 K7
- 0x60140018, // 002F GETGBL R5 G24
- 0x5818000F, // 0030 LDCONST R6 K15
- 0x881C0510, // 0031 GETMBR R7 R2 K16
- 0x88200511, // 0032 GETMBR R8 R2 K17
- 0x88240512, // 0033 GETMBR R9 R2 K18
- 0x88280509, // 0034 GETMBR R10 R2 K9
- 0x7C140A00, // 0035 CALL R5 5
- 0x58180013, // 0036 LDCONST R6 K19
- 0x7C0C0600, // 0037 CALL R3 3
- 0x70020000, // 0038 JMP #003A
- 0x0004030D, // 0039 ADD R1 R1 K13
- 0x7001FFC5, // 003A JMP #0001
- 0x80000000, // 003B RET 0
+ 0x780E0016, // 0010 JMPF R3 #0028
+ 0xB80E0E00, // 0011 GETNGBL R3 K7
+ 0x60100008, // 0012 GETGBL R4 G8
+ 0x88140509, // 0013 GETMBR R5 R2 K9
+ 0x7C100200, // 0014 CALL R4 1
+ 0x00121004, // 0015 ADD R4 K8 R4
+ 0x54160003, // 0016 LDINT R5 4
+ 0x7C0C0400, // 0017 CALL R3 2
+ 0x8C0C010A, // 0018 GETMET R3 R0 K10
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x7C0C0400, // 001A CALL R3 2
+ 0xB80E0400, // 001B GETNGBL R3 K2
+ 0x8C0C070B, // 001C GETMET R3 R3 K11
+ 0x7C0C0200, // 001D CALL R3 1
+ 0x8C10010C, // 001E GETMET R4 R0 K12
+ 0x88180505, // 001F GETMBR R6 R2 K5
+ 0x7C100400, // 0020 CALL R4 2
+ 0x000C0604, // 0021 ADD R3 R3 R4
+ 0x900A0803, // 0022 SETMBR R2 K4 R3
+ 0x880C0505, // 0023 GETMBR R3 R2 K5
+ 0x000C070D, // 0024 ADD R3 R3 K13
+ 0x900A0A03, // 0025 SETMBR R2 K5 R3
+ 0x0004030D, // 0026 ADD R1 R1 K13
+ 0x7002000D, // 0027 JMP #0036
+ 0x880C0101, // 0028 GETMBR R3 R0 K1
+ 0x8C0C070E, // 0029 GETMET R3 R3 K14
+ 0x5C140200, // 002A MOVE R5 R1
+ 0x7C0C0400, // 002B CALL R3 2
+ 0xB80E0E00, // 002C GETNGBL R3 K7
+ 0x60100018, // 002D GETGBL R4 G24
+ 0x5814000F, // 002E LDCONST R5 K15
+ 0x88180510, // 002F GETMBR R6 R2 K16
+ 0x881C0511, // 0030 GETMBR R7 R2 K17
+ 0x88200512, // 0031 GETMBR R8 R2 K18
+ 0x88240509, // 0032 GETMBR R9 R2 K9
+ 0x7C100A00, // 0033 CALL R4 5
+ 0x58140013, // 0034 LDCONST R5 K19
+ 0x7C0C0400, // 0035 CALL R3 2
+ 0x70020000, // 0036 JMP #0038
+ 0x0004030D, // 0037 ADD R1 R1 K13
+ 0x7001FFC7, // 0038 JMP #0001
+ 0x80000000, // 0039 RET 0
})
)
);
@@ -727,7 +722,7 @@ be_local_closure(class_Matter_UDPServer__backoff_time, /* name */
extern const bclass be_class_Matter_UDPServer;
be_local_closure(class_Matter_UDPServer_loop, /* name */
be_nested_proto(
- 12, /* nstack */
+ 11, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -759,7 +754,7 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
}),
be_str_weak(loop),
&be_const_str_solidified,
- ( &(const binstruction[63]) { /* code */
+ ( &(const binstruction[62]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x58080002, // 0002 LDCONST R2 K2
@@ -774,7 +769,7 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
0x7C0C0400, // 000B CALL R3 2
0x4C100000, // 000C LDNIL R4
0x20100604, // 000D NE R4 R3 R4
- 0x7812002C, // 000E JMPF R4 #003C
+ 0x7812002B, // 000E JMPF R4 #003B
0x8C100306, // 000F GETMET R4 R1 K6
0x7C100200, // 0010 CALL R4 1
0x90020A03, // 0011 SETMBR R0 K5 R3
@@ -787,42 +782,41 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
0x8C180D0B, // 0018 GETMET R6 R6 K11
0x54220003, // 0019 LDINT R8 4
0x7C180400, // 001A CALL R6 2
- 0x781A0008, // 001B JMPF R6 #0025
- 0xB81A1400, // 001C GETNGBL R6 K10
- 0x8C180D0C, // 001D GETMET R6 R6 K12
- 0x60200018, // 001E GETGBL R8 G24
- 0x5824000D, // 001F LDCONST R9 K13
- 0x5C280800, // 0020 MOVE R10 R4
- 0x5C2C0A00, // 0021 MOVE R11 R5
- 0x7C200600, // 0022 CALL R8 3
- 0x54260003, // 0023 LDINT R9 4
- 0x7C180600, // 0024 CALL R6 3
- 0x8818010E, // 0025 GETMBR R6 R0 K14
- 0x781A0007, // 0026 JMPF R6 #002F
- 0x8C18030C, // 0027 GETMET R6 R1 K12
- 0x5820000F, // 0028 LDCONST R8 K15
- 0x7C180400, // 0029 CALL R6 2
- 0x8C18010E, // 002A GETMET R6 R0 K14
- 0x5C200600, // 002B MOVE R8 R3
- 0x5C240800, // 002C MOVE R9 R4
- 0x5C280A00, // 002D MOVE R10 R5
- 0x7C180800, // 002E CALL R6 4
- 0x8C180310, // 002F GETMET R6 R1 K16
- 0x58200011, // 0030 LDCONST R8 K17
- 0x7C180400, // 0031 CALL R6 2
- 0x88180112, // 0032 GETMBR R6 R0 K18
- 0x14180406, // 0033 LT R6 R2 R6
- 0x781A0004, // 0034 JMPF R6 #003A
- 0x88180103, // 0035 GETMBR R6 R0 K3
- 0x8C180D04, // 0036 GETMET R6 R6 K4
- 0x7C180200, // 0037 CALL R6 1
- 0x5C0C0C00, // 0038 MOVE R3 R6
- 0x70020000, // 0039 JMP #003B
- 0x4C0C0000, // 003A LDNIL R3
- 0x7001FFCF, // 003B JMP #000C
- 0x8C100113, // 003C GETMET R4 R0 K19
- 0x7C100200, // 003D CALL R4 1
- 0x80000000, // 003E RET 0
+ 0x781A0007, // 001B JMPF R6 #0024
+ 0xB81A1800, // 001C GETNGBL R6 K12
+ 0x601C0018, // 001D GETGBL R7 G24
+ 0x5820000D, // 001E LDCONST R8 K13
+ 0x5C240800, // 001F MOVE R9 R4
+ 0x5C280A00, // 0020 MOVE R10 R5
+ 0x7C1C0600, // 0021 CALL R7 3
+ 0x54220003, // 0022 LDINT R8 4
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8818010E, // 0024 GETMBR R6 R0 K14
+ 0x781A0007, // 0025 JMPF R6 #002E
+ 0x8C18030C, // 0026 GETMET R6 R1 K12
+ 0x5820000F, // 0027 LDCONST R8 K15
+ 0x7C180400, // 0028 CALL R6 2
+ 0x8C18010E, // 0029 GETMET R6 R0 K14
+ 0x5C200600, // 002A MOVE R8 R3
+ 0x5C240800, // 002B MOVE R9 R4
+ 0x5C280A00, // 002C MOVE R10 R5
+ 0x7C180800, // 002D CALL R6 4
+ 0x8C180310, // 002E GETMET R6 R1 K16
+ 0x58200011, // 002F LDCONST R8 K17
+ 0x7C180400, // 0030 CALL R6 2
+ 0x88180112, // 0031 GETMBR R6 R0 K18
+ 0x14180406, // 0032 LT R6 R2 R6
+ 0x781A0004, // 0033 JMPF R6 #0039
+ 0x88180103, // 0034 GETMBR R6 R0 K3
+ 0x8C180D04, // 0035 GETMET R6 R6 K4
+ 0x7C180200, // 0036 CALL R6 1
+ 0x5C0C0C00, // 0037 MOVE R3 R6
+ 0x70020000, // 0038 JMP #003A
+ 0x4C0C0000, // 0039 LDNIL R3
+ 0x7001FFD0, // 003A JMP #000C
+ 0x8C100113, // 003B GETMET R4 R0 K19
+ 0x7C100200, // 003C CALL R4 1
+ 0x80000000, // 003D RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index d53f5099f..781223807 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -1143,7 +1143,7 @@ be_local_closure(class_Matter_UI_show_remote_autoconf, /* name */
0, /* has sup protos */
&be_class_Matter_UI,
1, /* has constants */
- ( &(const bvalue[47]) { /* constants */
+ ( &(const bvalue[46]) { /* constants */
/* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(json),
/* K2 */ be_nested_str_weak(),
@@ -1158,43 +1158,42 @@ be_local_closure(class_Matter_UI_show_remote_autoconf, /* name */
/* K11 */ be_nested_str_weak(StatusSNS),
/* K12 */ be_nested_str_weak(Status_X2011),
/* K13 */ be_nested_str_weak(StatusSTS),
- /* K14 */ be_nested_str_weak(tasmota),
- /* K15 */ be_nested_str_weak(log),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20probed_X20_X27_X25s_X27_X20status10_X3D_X25s_X20satus11_X3D_X25s),
- /* K17 */ be_const_int(3),
- /* K18 */ be_nested_str_weak(generate_config_from_status),
- /* K19 */ be_nested_str_weak(show_plugins_hints_js),
- /* K20 */ be_nested_str_weak(_CLASSES_TYPES2),
- /* K21 */ be_nested_str_weak(content_send),
- /* K22 */ be_nested_str_weak(_X3Cfieldset_X3E_X3Clegend_X3E_X3Cb_X3E_X26nbsp_X3BMatter_X20Remote_X20Device_X26nbsp_X3B_X3C_X2Fb_X3E_X3C_X2Flegend_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3EAdd_X20Remote_X20sensor_X20or_X20device_X3C_X2Fb_X3E_X3C_X2Fp_X3E),
- /* K23 */ be_nested_str_weak(html_escape),
- /* K24 */ be_nested_str_weak(_X3Cp_X3E_X26_X23x1F517_X3B_X20_X3Ca_X20target_X3D_X27_blank_X27_X20href_X3D_X22http_X3A_X2F_X2F_X25s_X2F_X3F_X22_X3E_X25s_X3C_X2Fa_X3E_X3C_X2Fp_X3E),
- /* K25 */ be_nested_str_weak(_X3Cform_X20action_X3D_X27_X2Fmatterc_X27_X20method_X3D_X27post_X27_X3E_X3Ctable_X20style_X3D_X27width_X3A100_X25_X27_X3E_X3Ctr_X3E_X3Ctd_X20width_X3D_X27100_X27_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EName_X3C_X2Ftd_X3E_X3Ctd_X20width_X3D_X27115_X27_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EType_X3C_X2Ftd_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EParameter_X3C_X2Ftd_X3E_X3C_X2Ftr_X3E),
- /* K26 */ be_nested_str_weak(_X3Cinput_X20name_X3D_X27url_X27_X20type_X3D_X27hidden_X27_X20value_X3D_X27_X25s_X27_X3E),
- /* K27 */ be_const_int(0),
- /* K28 */ be_nested_str_weak(type),
- /* K29 */ be_nested_str_weak(http_),
- /* K30 */ be_nested_str_weak(device),
- /* K31 */ be_nested_str_weak(plugins_classes),
- /* K32 */ be_nested_str_weak(ui_conf_to_string),
- /* K33 */ be_nested_str_weak(ARG_HINT),
- /* K34 */ be_nested_str_weak(_X3Ctr_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E_X3Cinput_X20type_X3D_X27text_X27_X20name_X3D_X27nam_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X27_X20placeholder_X3D_X27_X28optional_X29_X27_X3E_X3C_X2Ftd_X3E),
- /* K35 */ be_nested_str_weak(_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E_X3Cselect_X20name_X3D_X27pi_X25i_X27_X20onchange_X3D_X27otm_X28_X22arg_X25i_X22_X2Cthis_X2Evalue_X29_X27_X3E),
- /* K36 */ be_nested_str_weak(plugin_option),
- /* K37 */ be_nested_str_weak(_X3C_X2Fselect_X3E_X3C_X2Ftd_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E),
- /* K38 */ be_nested_str_weak(_X3Cinput_X20type_X3D_X27text_X27_X20id_X3D_X27arg_X25i_X27_X20name_X3D_X27arg_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X25s_X27_X20placeholder_X3D_X27_X25s_X27_X20title_X3D_X27_X25s_X27_X3E),
- /* K39 */ be_nested_str_weak(_X3C_X2Ftd_X3E_X3C_X2Ftr_X3E),
- /* K40 */ be_const_int(1),
- /* K41 */ be_nested_str_weak(_X3Cinput_X20type_X3D_X27text_X27_X20id_X3D_X27arg_X25i_X27_X20name_X3D_X27arg_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X25s_X27_X3E),
- /* K42 */ be_nested_str_weak(_X3C_X2Ftable_X3E),
- /* K43 */ be_nested_str_weak(_X3Cdiv_X20style_X3D_X27display_X3A_X20block_X3B_X27_X3E_X3C_X2Fdiv_X3E),
- /* K44 */ be_nested_str_weak(_X3Cbutton_X20name_X3D_X27addrem_X27_X20class_X3D_X27button_X20bgrn_X27_X3EAdd_X20endpoints_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E),
- /* K45 */ be_nested_str_weak(_X3C_X2Fform_X3E_X3C_X2Ffieldset_X3E),
- /* K46 */ be_nested_str_weak(_X3Cp_X3E_X3Cb_X3EUnable_X20to_X20connect_X20to_X20_X27_X25s_X27_X3C_X2Fb_X3E_X3C_X2Fp_X3E),
+ /* K14 */ be_nested_str_weak(log),
+ /* K15 */ be_nested_str_weak(MTR_X3A_X20probed_X20_X27_X25s_X27_X20status10_X3D_X25s_X20satus11_X3D_X25s),
+ /* K16 */ be_const_int(3),
+ /* K17 */ be_nested_str_weak(generate_config_from_status),
+ /* K18 */ be_nested_str_weak(show_plugins_hints_js),
+ /* K19 */ be_nested_str_weak(_CLASSES_TYPES2),
+ /* K20 */ be_nested_str_weak(content_send),
+ /* K21 */ be_nested_str_weak(_X3Cfieldset_X3E_X3Clegend_X3E_X3Cb_X3E_X26nbsp_X3BMatter_X20Remote_X20Device_X26nbsp_X3B_X3C_X2Fb_X3E_X3C_X2Flegend_X3E_X3Cp_X3E_X3C_X2Fp_X3E_X3Cp_X3E_X3Cb_X3EAdd_X20Remote_X20sensor_X20or_X20device_X3C_X2Fb_X3E_X3C_X2Fp_X3E),
+ /* K22 */ be_nested_str_weak(html_escape),
+ /* K23 */ be_nested_str_weak(_X3Cp_X3E_X26_X23x1F517_X3B_X20_X3Ca_X20target_X3D_X27_blank_X27_X20href_X3D_X22http_X3A_X2F_X2F_X25s_X2F_X3F_X22_X3E_X25s_X3C_X2Fa_X3E_X3C_X2Fp_X3E),
+ /* K24 */ be_nested_str_weak(_X3Cform_X20action_X3D_X27_X2Fmatterc_X27_X20method_X3D_X27post_X27_X3E_X3Ctable_X20style_X3D_X27width_X3A100_X25_X27_X3E_X3Ctr_X3E_X3Ctd_X20width_X3D_X27100_X27_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EName_X3C_X2Ftd_X3E_X3Ctd_X20width_X3D_X27115_X27_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EType_X3C_X2Ftd_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3EParameter_X3C_X2Ftd_X3E_X3C_X2Ftr_X3E),
+ /* K25 */ be_nested_str_weak(_X3Cinput_X20name_X3D_X27url_X27_X20type_X3D_X27hidden_X27_X20value_X3D_X27_X25s_X27_X3E),
+ /* K26 */ be_const_int(0),
+ /* K27 */ be_nested_str_weak(type),
+ /* K28 */ be_nested_str_weak(http_),
+ /* K29 */ be_nested_str_weak(device),
+ /* K30 */ be_nested_str_weak(plugins_classes),
+ /* K31 */ be_nested_str_weak(ui_conf_to_string),
+ /* K32 */ be_nested_str_weak(ARG_HINT),
+ /* K33 */ be_nested_str_weak(_X3Ctr_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E_X3Cinput_X20type_X3D_X27text_X27_X20name_X3D_X27nam_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X27_X20placeholder_X3D_X27_X28optional_X29_X27_X3E_X3C_X2Ftd_X3E),
+ /* K34 */ be_nested_str_weak(_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E_X3Cselect_X20name_X3D_X27pi_X25i_X27_X20onchange_X3D_X27otm_X28_X22arg_X25i_X22_X2Cthis_X2Evalue_X29_X27_X3E),
+ /* K35 */ be_nested_str_weak(plugin_option),
+ /* K36 */ be_nested_str_weak(_X3C_X2Fselect_X3E_X3C_X2Ftd_X3E_X3Ctd_X20style_X3D_X27font_X2Dsize_X3Asmaller_X3B_X27_X3E),
+ /* K37 */ be_nested_str_weak(_X3Cinput_X20type_X3D_X27text_X27_X20id_X3D_X27arg_X25i_X27_X20name_X3D_X27arg_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X25s_X27_X20placeholder_X3D_X27_X25s_X27_X20title_X3D_X27_X25s_X27_X3E),
+ /* K38 */ be_nested_str_weak(_X3C_X2Ftd_X3E_X3C_X2Ftr_X3E),
+ /* K39 */ be_const_int(1),
+ /* K40 */ be_nested_str_weak(_X3Cinput_X20type_X3D_X27text_X27_X20id_X3D_X27arg_X25i_X27_X20name_X3D_X27arg_X25i_X27_X20size_X3D_X271_X27_X20value_X3D_X27_X25s_X27_X3E),
+ /* K41 */ be_nested_str_weak(_X3C_X2Ftable_X3E),
+ /* K42 */ be_nested_str_weak(_X3Cdiv_X20style_X3D_X27display_X3A_X20block_X3B_X27_X3E_X3C_X2Fdiv_X3E),
+ /* K43 */ be_nested_str_weak(_X3Cbutton_X20name_X3D_X27addrem_X27_X20class_X3D_X27button_X20bgrn_X27_X3EAdd_X20endpoints_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E),
+ /* K44 */ be_nested_str_weak(_X3C_X2Fform_X3E_X3C_X2Ffieldset_X3E),
+ /* K45 */ be_nested_str_weak(_X3Cp_X3E_X3Cb_X3EUnable_X20to_X20connect_X20to_X20_X27_X25s_X27_X3C_X2Fb_X3E_X3C_X2Fp_X3E),
}),
be_str_weak(show_remote_autoconf),
&be_const_str_solidified,
- ( &(const binstruction[230]) { /* code */
+ ( &(const binstruction[229]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
0x1C100302, // 0002 EQ R4 R1 K2
@@ -1252,179 +1251,178 @@ be_local_closure(class_Matter_UI_show_remote_autoconf, /* name */
0x5C1C1000, // 0036 MOVE R7 R8
0x4C200000, // 0037 LDNIL R8
0x20200C08, // 0038 NE R8 R6 R8
- 0x782200A2, // 0039 JMPF R8 #00DD
+ 0x782200A1, // 0039 JMPF R8 #00DC
0x4C200000, // 003A LDNIL R8
0x20200E08, // 003B NE R8 R7 R8
- 0x7822009F, // 003C JMPF R8 #00DD
+ 0x7822009E, // 003C JMPF R8 #00DC
0xB8221C00, // 003D GETNGBL R8 K14
- 0x8C20110F, // 003E GETMET R8 R8 K15
- 0x60280018, // 003F GETGBL R10 G24
- 0x582C0010, // 0040 LDCONST R11 K16
- 0x5C300200, // 0041 MOVE R12 R1
- 0x60340008, // 0042 GETGBL R13 G8
- 0x5C380C00, // 0043 MOVE R14 R6
- 0x7C340200, // 0044 CALL R13 1
- 0x60380008, // 0045 GETGBL R14 G8
- 0x5C3C0E00, // 0046 MOVE R15 R7
- 0x7C380200, // 0047 CALL R14 1
- 0x7C280800, // 0048 CALL R10 4
- 0x582C0011, // 0049 LDCONST R11 K17
- 0x7C200600, // 004A CALL R8 3
- 0x8C200112, // 004B GETMET R8 R0 K18
- 0x5C280C00, // 004C MOVE R10 R6
- 0x5C2C0E00, // 004D MOVE R11 R7
- 0x7C200600, // 004E CALL R8 3
- 0x8C240113, // 004F GETMET R9 R0 K19
- 0x882C0114, // 0050 GETMBR R11 R0 K20
- 0x7C240400, // 0051 CALL R9 2
- 0x8C240515, // 0052 GETMET R9 R2 K21
- 0x582C0016, // 0053 LDCONST R11 K22
- 0x7C240400, // 0054 CALL R9 2
- 0x8C240517, // 0055 GETMET R9 R2 K23
- 0x5C2C0200, // 0056 MOVE R11 R1
- 0x7C240400, // 0057 CALL R9 2
- 0x8C280515, // 0058 GETMET R10 R2 K21
- 0x60300018, // 0059 GETGBL R12 G24
- 0x58340018, // 005A LDCONST R13 K24
- 0x5C381200, // 005B MOVE R14 R9
- 0x5C3C1200, // 005C MOVE R15 R9
- 0x7C300600, // 005D CALL R12 3
- 0x7C280400, // 005E CALL R10 2
- 0x8C280515, // 005F GETMET R10 R2 K21
- 0x58300019, // 0060 LDCONST R12 K25
- 0x7C280400, // 0061 CALL R10 2
- 0x8C280515, // 0062 GETMET R10 R2 K21
- 0x60300018, // 0063 GETGBL R12 G24
- 0x5834001A, // 0064 LDCONST R13 K26
- 0x8C380517, // 0065 GETMET R14 R2 K23
- 0x5C400200, // 0066 MOVE R16 R1
- 0x7C380400, // 0067 CALL R14 2
- 0x7C300400, // 0068 CALL R12 2
- 0x7C280400, // 0069 CALL R10 2
- 0x5828001B, // 006A LDCONST R10 K27
- 0x602C000C, // 006B GETGBL R11 G12
- 0x5C301000, // 006C MOVE R12 R8
- 0x7C2C0200, // 006D CALL R11 1
- 0x142C140B, // 006E LT R11 R10 R11
- 0x782E0040, // 006F JMPF R11 #00B1
- 0x942C100A, // 0070 GETIDX R11 R8 R10
- 0x8C30170A, // 0071 GETMET R12 R11 K10
- 0x5838001C, // 0072 LDCONST R14 K28
- 0x583C0002, // 0073 LDCONST R15 K2
- 0x7C300600, // 0074 CALL R12 3
- 0x20341902, // 0075 NE R13 R12 K2
- 0x78360000, // 0076 JMPF R13 #0078
- 0x00323A0C, // 0077 ADD R12 K29 R12
- 0x8834011E, // 0078 GETMBR R13 R0 K30
- 0x88341B1F, // 0079 GETMBR R13 R13 K31
- 0x8C341B0A, // 007A GETMET R13 R13 K10
- 0x5C3C1800, // 007B MOVE R15 R12
- 0x7C340400, // 007C CALL R13 2
- 0x58380002, // 007D LDCONST R14 K2
- 0x583C0002, // 007E LDCONST R15 K2
- 0x4C400000, // 007F LDNIL R16
- 0x20401A10, // 0080 NE R16 R13 R16
- 0x78420005, // 0081 JMPF R16 #0088
- 0x8C401B20, // 0082 GETMET R16 R13 K32
- 0x5C481A00, // 0083 MOVE R18 R13
- 0x5C4C1600, // 0084 MOVE R19 R11
- 0x7C400600, // 0085 CALL R16 3
- 0x5C382000, // 0086 MOVE R14 R16
- 0x883C1B21, // 0087 GETMBR R15 R13 K33
- 0x8C400515, // 0088 GETMET R16 R2 K21
- 0x60480018, // 0089 GETGBL R18 G24
- 0x584C0022, // 008A LDCONST R19 K34
- 0x5C501400, // 008B MOVE R20 R10
- 0x7C480400, // 008C CALL R18 2
- 0x7C400400, // 008D CALL R16 2
- 0x8C400515, // 008E GETMET R16 R2 K21
- 0x60480018, // 008F GETGBL R18 G24
- 0x584C0023, // 0090 LDCONST R19 K35
- 0x5C501400, // 0091 MOVE R20 R10
- 0x5C541400, // 0092 MOVE R21 R10
- 0x7C480600, // 0093 CALL R18 3
- 0x7C400400, // 0094 CALL R16 2
- 0x8C400124, // 0095 GETMET R16 R0 K36
- 0x5C481800, // 0096 MOVE R18 R12
- 0x884C0114, // 0097 GETMBR R19 R0 K20
- 0x7C400600, // 0098 CALL R16 3
- 0x8C400515, // 0099 GETMET R16 R2 K21
- 0x58480025, // 009A LDCONST R18 K37
- 0x7C400400, // 009B CALL R16 2
- 0x8C400515, // 009C GETMET R16 R2 K21
- 0x60480018, // 009D GETGBL R18 G24
- 0x584C0026, // 009E LDCONST R19 K38
- 0x5C501400, // 009F MOVE R20 R10
- 0x5C541400, // 00A0 MOVE R21 R10
- 0x8C580517, // 00A1 GETMET R22 R2 K23
- 0x5C601C00, // 00A2 MOVE R24 R14
- 0x7C580400, // 00A3 CALL R22 2
- 0x8C5C0517, // 00A4 GETMET R23 R2 K23
- 0x5C641E00, // 00A5 MOVE R25 R15
- 0x7C5C0400, // 00A6 CALL R23 2
- 0x8C600517, // 00A7 GETMET R24 R2 K23
- 0x5C681E00, // 00A8 MOVE R26 R15
- 0x7C600400, // 00A9 CALL R24 2
- 0x7C480C00, // 00AA CALL R18 6
- 0x7C400400, // 00AB CALL R16 2
- 0x8C400515, // 00AC GETMET R16 R2 K21
- 0x58480027, // 00AD LDCONST R18 K39
- 0x7C400400, // 00AE CALL R16 2
- 0x00281528, // 00AF ADD R10 R10 K40
- 0x7001FFB9, // 00B0 JMP #006B
- 0x8C2C0515, // 00B1 GETMET R11 R2 K21
- 0x60340018, // 00B2 GETGBL R13 G24
- 0x58380022, // 00B3 LDCONST R14 K34
- 0x5C3C1400, // 00B4 MOVE R15 R10
- 0x7C340400, // 00B5 CALL R13 2
- 0x7C2C0400, // 00B6 CALL R11 2
- 0x8C2C0515, // 00B7 GETMET R11 R2 K21
- 0x60340018, // 00B8 GETGBL R13 G24
- 0x58380023, // 00B9 LDCONST R14 K35
- 0x5C3C1400, // 00BA MOVE R15 R10
- 0x5C401400, // 00BB MOVE R16 R10
- 0x7C340600, // 00BC CALL R13 3
- 0x7C2C0400, // 00BD CALL R11 2
- 0x8C2C0124, // 00BE GETMET R11 R0 K36
- 0x58340002, // 00BF LDCONST R13 K2
- 0x88380114, // 00C0 GETMBR R14 R0 K20
- 0x7C2C0600, // 00C1 CALL R11 3
- 0x8C2C0515, // 00C2 GETMET R11 R2 K21
- 0x58340025, // 00C3 LDCONST R13 K37
- 0x7C2C0400, // 00C4 CALL R11 2
- 0x8C2C0515, // 00C5 GETMET R11 R2 K21
- 0x60340018, // 00C6 GETGBL R13 G24
- 0x58380029, // 00C7 LDCONST R14 K41
- 0x5C3C1400, // 00C8 MOVE R15 R10
- 0x5C401400, // 00C9 MOVE R16 R10
- 0x58440002, // 00CA LDCONST R17 K2
- 0x7C340800, // 00CB CALL R13 4
- 0x7C2C0400, // 00CC CALL R11 2
- 0x8C2C0515, // 00CD GETMET R11 R2 K21
- 0x58340027, // 00CE LDCONST R13 K39
- 0x7C2C0400, // 00CF CALL R11 2
- 0x8C2C0515, // 00D0 GETMET R11 R2 K21
- 0x5834002A, // 00D1 LDCONST R13 K42
- 0x7C2C0400, // 00D2 CALL R11 2
- 0x8C2C0515, // 00D3 GETMET R11 R2 K21
- 0x5834002B, // 00D4 LDCONST R13 K43
- 0x7C2C0400, // 00D5 CALL R11 2
- 0x8C2C0515, // 00D6 GETMET R11 R2 K21
- 0x5834002C, // 00D7 LDCONST R13 K44
- 0x7C2C0400, // 00D8 CALL R11 2
- 0x8C2C0515, // 00D9 GETMET R11 R2 K21
- 0x5834002D, // 00DA LDCONST R13 K45
- 0x7C2C0400, // 00DB CALL R11 2
- 0x70020007, // 00DC JMP #00E5
- 0x8C200515, // 00DD GETMET R8 R2 K21
- 0x60280018, // 00DE GETGBL R10 G24
- 0x582C002E, // 00DF LDCONST R11 K46
- 0x8C300517, // 00E0 GETMET R12 R2 K23
- 0x5C380200, // 00E1 MOVE R14 R1
- 0x7C300400, // 00E2 CALL R12 2
- 0x7C280400, // 00E3 CALL R10 2
- 0x7C200400, // 00E4 CALL R8 2
- 0x80000000, // 00E5 RET 0
+ 0x60240018, // 003E GETGBL R9 G24
+ 0x5828000F, // 003F LDCONST R10 K15
+ 0x5C2C0200, // 0040 MOVE R11 R1
+ 0x60300008, // 0041 GETGBL R12 G8
+ 0x5C340C00, // 0042 MOVE R13 R6
+ 0x7C300200, // 0043 CALL R12 1
+ 0x60340008, // 0044 GETGBL R13 G8
+ 0x5C380E00, // 0045 MOVE R14 R7
+ 0x7C340200, // 0046 CALL R13 1
+ 0x7C240800, // 0047 CALL R9 4
+ 0x58280010, // 0048 LDCONST R10 K16
+ 0x7C200400, // 0049 CALL R8 2
+ 0x8C200111, // 004A GETMET R8 R0 K17
+ 0x5C280C00, // 004B MOVE R10 R6
+ 0x5C2C0E00, // 004C MOVE R11 R7
+ 0x7C200600, // 004D CALL R8 3
+ 0x8C240112, // 004E GETMET R9 R0 K18
+ 0x882C0113, // 004F GETMBR R11 R0 K19
+ 0x7C240400, // 0050 CALL R9 2
+ 0x8C240514, // 0051 GETMET R9 R2 K20
+ 0x582C0015, // 0052 LDCONST R11 K21
+ 0x7C240400, // 0053 CALL R9 2
+ 0x8C240516, // 0054 GETMET R9 R2 K22
+ 0x5C2C0200, // 0055 MOVE R11 R1
+ 0x7C240400, // 0056 CALL R9 2
+ 0x8C280514, // 0057 GETMET R10 R2 K20
+ 0x60300018, // 0058 GETGBL R12 G24
+ 0x58340017, // 0059 LDCONST R13 K23
+ 0x5C381200, // 005A MOVE R14 R9
+ 0x5C3C1200, // 005B MOVE R15 R9
+ 0x7C300600, // 005C CALL R12 3
+ 0x7C280400, // 005D CALL R10 2
+ 0x8C280514, // 005E GETMET R10 R2 K20
+ 0x58300018, // 005F LDCONST R12 K24
+ 0x7C280400, // 0060 CALL R10 2
+ 0x8C280514, // 0061 GETMET R10 R2 K20
+ 0x60300018, // 0062 GETGBL R12 G24
+ 0x58340019, // 0063 LDCONST R13 K25
+ 0x8C380516, // 0064 GETMET R14 R2 K22
+ 0x5C400200, // 0065 MOVE R16 R1
+ 0x7C380400, // 0066 CALL R14 2
+ 0x7C300400, // 0067 CALL R12 2
+ 0x7C280400, // 0068 CALL R10 2
+ 0x5828001A, // 0069 LDCONST R10 K26
+ 0x602C000C, // 006A GETGBL R11 G12
+ 0x5C301000, // 006B MOVE R12 R8
+ 0x7C2C0200, // 006C CALL R11 1
+ 0x142C140B, // 006D LT R11 R10 R11
+ 0x782E0040, // 006E JMPF R11 #00B0
+ 0x942C100A, // 006F GETIDX R11 R8 R10
+ 0x8C30170A, // 0070 GETMET R12 R11 K10
+ 0x5838001B, // 0071 LDCONST R14 K27
+ 0x583C0002, // 0072 LDCONST R15 K2
+ 0x7C300600, // 0073 CALL R12 3
+ 0x20341902, // 0074 NE R13 R12 K2
+ 0x78360000, // 0075 JMPF R13 #0077
+ 0x0032380C, // 0076 ADD R12 K28 R12
+ 0x8834011D, // 0077 GETMBR R13 R0 K29
+ 0x88341B1E, // 0078 GETMBR R13 R13 K30
+ 0x8C341B0A, // 0079 GETMET R13 R13 K10
+ 0x5C3C1800, // 007A MOVE R15 R12
+ 0x7C340400, // 007B CALL R13 2
+ 0x58380002, // 007C LDCONST R14 K2
+ 0x583C0002, // 007D LDCONST R15 K2
+ 0x4C400000, // 007E LDNIL R16
+ 0x20401A10, // 007F NE R16 R13 R16
+ 0x78420005, // 0080 JMPF R16 #0087
+ 0x8C401B1F, // 0081 GETMET R16 R13 K31
+ 0x5C481A00, // 0082 MOVE R18 R13
+ 0x5C4C1600, // 0083 MOVE R19 R11
+ 0x7C400600, // 0084 CALL R16 3
+ 0x5C382000, // 0085 MOVE R14 R16
+ 0x883C1B20, // 0086 GETMBR R15 R13 K32
+ 0x8C400514, // 0087 GETMET R16 R2 K20
+ 0x60480018, // 0088 GETGBL R18 G24
+ 0x584C0021, // 0089 LDCONST R19 K33
+ 0x5C501400, // 008A MOVE R20 R10
+ 0x7C480400, // 008B CALL R18 2
+ 0x7C400400, // 008C CALL R16 2
+ 0x8C400514, // 008D GETMET R16 R2 K20
+ 0x60480018, // 008E GETGBL R18 G24
+ 0x584C0022, // 008F LDCONST R19 K34
+ 0x5C501400, // 0090 MOVE R20 R10
+ 0x5C541400, // 0091 MOVE R21 R10
+ 0x7C480600, // 0092 CALL R18 3
+ 0x7C400400, // 0093 CALL R16 2
+ 0x8C400123, // 0094 GETMET R16 R0 K35
+ 0x5C481800, // 0095 MOVE R18 R12
+ 0x884C0113, // 0096 GETMBR R19 R0 K19
+ 0x7C400600, // 0097 CALL R16 3
+ 0x8C400514, // 0098 GETMET R16 R2 K20
+ 0x58480024, // 0099 LDCONST R18 K36
+ 0x7C400400, // 009A CALL R16 2
+ 0x8C400514, // 009B GETMET R16 R2 K20
+ 0x60480018, // 009C GETGBL R18 G24
+ 0x584C0025, // 009D LDCONST R19 K37
+ 0x5C501400, // 009E MOVE R20 R10
+ 0x5C541400, // 009F MOVE R21 R10
+ 0x8C580516, // 00A0 GETMET R22 R2 K22
+ 0x5C601C00, // 00A1 MOVE R24 R14
+ 0x7C580400, // 00A2 CALL R22 2
+ 0x8C5C0516, // 00A3 GETMET R23 R2 K22
+ 0x5C641E00, // 00A4 MOVE R25 R15
+ 0x7C5C0400, // 00A5 CALL R23 2
+ 0x8C600516, // 00A6 GETMET R24 R2 K22
+ 0x5C681E00, // 00A7 MOVE R26 R15
+ 0x7C600400, // 00A8 CALL R24 2
+ 0x7C480C00, // 00A9 CALL R18 6
+ 0x7C400400, // 00AA CALL R16 2
+ 0x8C400514, // 00AB GETMET R16 R2 K20
+ 0x58480026, // 00AC LDCONST R18 K38
+ 0x7C400400, // 00AD CALL R16 2
+ 0x00281527, // 00AE ADD R10 R10 K39
+ 0x7001FFB9, // 00AF JMP #006A
+ 0x8C2C0514, // 00B0 GETMET R11 R2 K20
+ 0x60340018, // 00B1 GETGBL R13 G24
+ 0x58380021, // 00B2 LDCONST R14 K33
+ 0x5C3C1400, // 00B3 MOVE R15 R10
+ 0x7C340400, // 00B4 CALL R13 2
+ 0x7C2C0400, // 00B5 CALL R11 2
+ 0x8C2C0514, // 00B6 GETMET R11 R2 K20
+ 0x60340018, // 00B7 GETGBL R13 G24
+ 0x58380022, // 00B8 LDCONST R14 K34
+ 0x5C3C1400, // 00B9 MOVE R15 R10
+ 0x5C401400, // 00BA MOVE R16 R10
+ 0x7C340600, // 00BB CALL R13 3
+ 0x7C2C0400, // 00BC CALL R11 2
+ 0x8C2C0123, // 00BD GETMET R11 R0 K35
+ 0x58340002, // 00BE LDCONST R13 K2
+ 0x88380113, // 00BF GETMBR R14 R0 K19
+ 0x7C2C0600, // 00C0 CALL R11 3
+ 0x8C2C0514, // 00C1 GETMET R11 R2 K20
+ 0x58340024, // 00C2 LDCONST R13 K36
+ 0x7C2C0400, // 00C3 CALL R11 2
+ 0x8C2C0514, // 00C4 GETMET R11 R2 K20
+ 0x60340018, // 00C5 GETGBL R13 G24
+ 0x58380028, // 00C6 LDCONST R14 K40
+ 0x5C3C1400, // 00C7 MOVE R15 R10
+ 0x5C401400, // 00C8 MOVE R16 R10
+ 0x58440002, // 00C9 LDCONST R17 K2
+ 0x7C340800, // 00CA CALL R13 4
+ 0x7C2C0400, // 00CB CALL R11 2
+ 0x8C2C0514, // 00CC GETMET R11 R2 K20
+ 0x58340026, // 00CD LDCONST R13 K38
+ 0x7C2C0400, // 00CE CALL R11 2
+ 0x8C2C0514, // 00CF GETMET R11 R2 K20
+ 0x58340029, // 00D0 LDCONST R13 K41
+ 0x7C2C0400, // 00D1 CALL R11 2
+ 0x8C2C0514, // 00D2 GETMET R11 R2 K20
+ 0x5834002A, // 00D3 LDCONST R13 K42
+ 0x7C2C0400, // 00D4 CALL R11 2
+ 0x8C2C0514, // 00D5 GETMET R11 R2 K20
+ 0x5834002B, // 00D6 LDCONST R13 K43
+ 0x7C2C0400, // 00D7 CALL R11 2
+ 0x8C2C0514, // 00D8 GETMET R11 R2 K20
+ 0x5834002C, // 00D9 LDCONST R13 K44
+ 0x7C2C0400, // 00DA CALL R11 2
+ 0x70020007, // 00DB JMP #00E4
+ 0x8C200514, // 00DC GETMET R8 R2 K20
+ 0x60280018, // 00DD GETGBL R10 G24
+ 0x582C002D, // 00DE LDCONST R11 K45
+ 0x8C300516, // 00DF GETMET R12 R2 K22
+ 0x5C380200, // 00E0 MOVE R14 R1
+ 0x7C300400, // 00E1 CALL R12 2
+ 0x7C280400, // 00E2 CALL R10 2
+ 0x7C200400, // 00E3 CALL R8 2
+ 0x80000000, // 00E4 RET 0
})
)
);
@@ -2213,7 +2211,7 @@ be_local_closure(class_Matter_UI_show_passcode_form, /* name */
extern const bclass be_class_Matter_UI;
be_local_closure(class_Matter_UI_page_part_ctl, /* name */
be_nested_proto(
- 24, /* nstack */
+ 23, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2230,27 +2228,27 @@ be_local_closure(class_Matter_UI_page_part_ctl, /* name */
/* K5 */ be_nested_str_weak(has_arg),
/* K6 */ be_nested_str_weak(passcode),
/* K7 */ be_nested_str_weak(discriminator),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20_X2Fmatterc_X20received_X20_X27_X25s_X27_X20command),
- /* K11 */ be_const_int(3),
- /* K12 */ be_nested_str_weak(device),
- /* K13 */ be_nested_str_weak(root_passcode),
- /* K14 */ be_nested_str_weak(arg),
- /* K15 */ be_nested_str_weak(root_discriminator),
- /* K16 */ be_nested_str_weak(ipv4only),
- /* K17 */ be_nested_str_weak(ipv4),
- /* K18 */ be_nested_str_weak(on),
- /* K19 */ be_nested_str_weak(save_param),
- /* K20 */ be_nested_str_weak(redirect),
- /* K21 */ be_nested_str_weak(_X2F_X3Frst_X3D),
- /* K22 */ be_nested_str_weak(save),
- /* K23 */ be_nested_str_weak(menable),
- /* K24 */ be_nested_str_weak(comm),
- /* K25 */ be_nested_str_weak(nobridge),
- /* K26 */ be_nested_str_weak(disable_bridge_mode),
- /* K27 */ be_nested_str_weak(matter_enabled),
- /* K28 */ be_nested_str_weak(enable),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X2Fmatterc_X20received_X20_X27_X25s_X27_X20command),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(device),
+ /* K12 */ be_nested_str_weak(root_passcode),
+ /* K13 */ be_nested_str_weak(arg),
+ /* K14 */ be_nested_str_weak(root_discriminator),
+ /* K15 */ be_nested_str_weak(ipv4only),
+ /* K16 */ be_nested_str_weak(ipv4),
+ /* K17 */ be_nested_str_weak(on),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(redirect),
+ /* K20 */ be_nested_str_weak(_X2F_X3Frst_X3D),
+ /* K21 */ be_nested_str_weak(save),
+ /* K22 */ be_nested_str_weak(menable),
+ /* K23 */ be_nested_str_weak(comm),
+ /* K24 */ be_nested_str_weak(nobridge),
+ /* K25 */ be_nested_str_weak(disable_bridge_mode),
+ /* K26 */ be_nested_str_weak(matter_enabled),
+ /* K27 */ be_nested_str_weak(enable),
+ /* K28 */ be_nested_str_weak(tasmota),
/* K29 */ be_nested_str_weak(cmd),
/* K30 */ be_nested_str_weak(SetOption),
/* K31 */ be_nested_str_weak(matter),
@@ -2326,7 +2324,7 @@ be_local_closure(class_Matter_UI_page_part_ctl, /* name */
}),
be_str_weak(page_part_ctl),
&be_const_str_solidified,
- ( &(const binstruction[675]) { /* code */
+ ( &(const binstruction[659]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080301, // 0001 GETMET R2 R1 K1
0x7C080200, // 0002 CALL R2 1
@@ -2337,7 +2335,7 @@ be_local_closure(class_Matter_UI_page_part_ctl, /* name */
0xA40E0600, // 0007 IMPORT R3 K3
0xA4120800, // 0008 IMPORT R4 K4
0x4C140000, // 0009 LDNIL R5
- 0xA8020278, // 000A EXBLK 0 #0284
+ 0xA8020269, // 000A EXBLK 0 #0275
0x8C180305, // 000B GETMET R6 R1 K5
0x58200006, // 000C LDCONST R8 K6
0x7C180400, // 000D CALL R6 2
@@ -2345,663 +2343,647 @@ be_local_closure(class_Matter_UI_page_part_ctl, /* name */
0x8C180305, // 000F GETMET R6 R1 K5
0x58200007, // 0010 LDCONST R8 K7
0x7C180400, // 0011 CALL R6 2
- 0x781A002A, // 0012 JMPF R6 #003E
+ 0x781A0029, // 0012 JMPF R6 #003D
0xB81A1000, // 0013 GETNGBL R6 K8
- 0x8C180D09, // 0014 GETMET R6 R6 K9
- 0x60200018, // 0015 GETGBL R8 G24
- 0x5824000A, // 0016 LDCONST R9 K10
- 0x58280006, // 0017 LDCONST R10 K6
- 0x7C200400, // 0018 CALL R8 2
- 0x5824000B, // 0019 LDCONST R9 K11
- 0x7C180600, // 001A CALL R6 3
- 0x8C180305, // 001B GETMET R6 R1 K5
- 0x58200006, // 001C LDCONST R8 K6
- 0x7C180400, // 001D CALL R6 2
- 0x781A0006, // 001E JMPF R6 #0026
- 0x8818010C, // 001F GETMBR R6 R0 K12
- 0x601C0009, // 0020 GETGBL R7 G9
- 0x8C20030E, // 0021 GETMET R8 R1 K14
- 0x58280006, // 0022 LDCONST R10 K6
- 0x7C200400, // 0023 CALL R8 2
- 0x7C1C0200, // 0024 CALL R7 1
- 0x901A1A07, // 0025 SETMBR R6 K13 R7
- 0x8C180305, // 0026 GETMET R6 R1 K5
- 0x58200007, // 0027 LDCONST R8 K7
- 0x7C180400, // 0028 CALL R6 2
- 0x781A0006, // 0029 JMPF R6 #0031
- 0x8818010C, // 002A GETMBR R6 R0 K12
- 0x601C0009, // 002B GETGBL R7 G9
- 0x8C20030E, // 002C GETMET R8 R1 K14
- 0x58280007, // 002D LDCONST R10 K7
- 0x7C200400, // 002E CALL R8 2
- 0x7C1C0200, // 002F CALL R7 1
- 0x901A1E07, // 0030 SETMBR R6 K15 R7
- 0x8818010C, // 0031 GETMBR R6 R0 K12
- 0x8C1C030E, // 0032 GETMET R7 R1 K14
- 0x58240011, // 0033 LDCONST R9 K17
- 0x7C1C0400, // 0034 CALL R7 2
- 0x1C1C0F12, // 0035 EQ R7 R7 K18
- 0x901A2007, // 0036 SETMBR R6 K16 R7
- 0x8818010C, // 0037 GETMBR R6 R0 K12
- 0x8C180D13, // 0038 GETMET R6 R6 K19
- 0x7C180200, // 0039 CALL R6 1
- 0x8C180314, // 003A GETMET R6 R1 K20
- 0x58200015, // 003B LDCONST R8 K21
- 0x7C180400, // 003C CALL R6 2
- 0x70020230, // 003D JMP #026F
- 0x8C180305, // 003E GETMET R6 R1 K5
- 0x58200016, // 003F LDCONST R8 K22
- 0x7C180400, // 0040 CALL R6 2
- 0x781A0054, // 0041 JMPF R6 #0097
- 0x8C180305, // 0042 GETMET R6 R1 K5
- 0x58200017, // 0043 LDCONST R8 K23
- 0x7C180400, // 0044 CALL R6 2
- 0x8C1C0305, // 0045 GETMET R7 R1 K5
- 0x58240018, // 0046 LDCONST R9 K24
- 0x7C1C0400, // 0047 CALL R7 2
- 0x8C20030E, // 0048 GETMET R8 R1 K14
- 0x58280019, // 0049 LDCONST R10 K25
- 0x7C200400, // 004A CALL R8 2
- 0x1C201112, // 004B EQ R8 R8 K18
- 0x8824010C, // 004C GETMBR R9 R0 K12
- 0x8824131A, // 004D GETMBR R9 R9 K26
- 0x20241208, // 004E NE R9 R9 R8
- 0x78260004, // 004F JMPF R9 #0055
- 0x8824010C, // 0050 GETMBR R9 R0 K12
- 0x90263408, // 0051 SETMBR R9 K26 R8
- 0x8824010C, // 0052 GETMBR R9 R0 K12
- 0x8C241313, // 0053 GETMET R9 R9 K19
- 0x7C240200, // 0054 CALL R9 1
- 0x8C24011B, // 0055 GETMET R9 R0 K27
- 0x7C240200, // 0056 CALL R9 1
- 0x20240C09, // 0057 NE R9 R6 R9
- 0x78260027, // 0058 JMPF R9 #0081
- 0x781A0011, // 0059 JMPF R6 #006C
- 0xB8261000, // 005A GETNGBL R9 K8
- 0x8C241309, // 005B GETMET R9 R9 K9
- 0x602C0018, // 005C GETGBL R11 G24
- 0x5830000A, // 005D LDCONST R12 K10
- 0x5834001C, // 005E LDCONST R13 K28
- 0x7C2C0400, // 005F CALL R11 2
- 0x5830000B, // 0060 LDCONST R12 K11
- 0x7C240600, // 0061 CALL R9 3
- 0xB8261000, // 0062 GETNGBL R9 K8
- 0x8C24131D, // 0063 GETMET R9 R9 K29
- 0x602C0008, // 0064 GETGBL R11 G8
- 0xB8323E00, // 0065 GETNGBL R12 K31
- 0x88301920, // 0066 GETMBR R12 R12 K32
- 0x7C2C0200, // 0067 CALL R11 1
- 0x002E3C0B, // 0068 ADD R11 K30 R11
- 0x002C1721, // 0069 ADD R11 R11 K33
- 0x7C240400, // 006A CALL R9 2
- 0x70020010, // 006B JMP #007D
- 0xB8261000, // 006C GETNGBL R9 K8
- 0x8C241309, // 006D GETMET R9 R9 K9
- 0x602C0018, // 006E GETGBL R11 G24
- 0x5830000A, // 006F LDCONST R12 K10
- 0x58340022, // 0070 LDCONST R13 K34
- 0x7C2C0400, // 0071 CALL R11 2
- 0x5830000B, // 0072 LDCONST R12 K11
- 0x7C240600, // 0073 CALL R9 3
- 0xB8261000, // 0074 GETNGBL R9 K8
- 0x8C24131D, // 0075 GETMET R9 R9 K29
- 0x602C0008, // 0076 GETGBL R11 G8
- 0xB8323E00, // 0077 GETNGBL R12 K31
- 0x88301920, // 0078 GETMBR R12 R12 K32
- 0x7C2C0200, // 0079 CALL R11 1
- 0x002E3C0B, // 007A ADD R11 K30 R11
- 0x002C1723, // 007B ADD R11 R11 K35
+ 0x601C0018, // 0014 GETGBL R7 G24
+ 0x58200009, // 0015 LDCONST R8 K9
+ 0x58240006, // 0016 LDCONST R9 K6
+ 0x7C1C0400, // 0017 CALL R7 2
+ 0x5820000A, // 0018 LDCONST R8 K10
+ 0x7C180400, // 0019 CALL R6 2
+ 0x8C180305, // 001A GETMET R6 R1 K5
+ 0x58200006, // 001B LDCONST R8 K6
+ 0x7C180400, // 001C CALL R6 2
+ 0x781A0006, // 001D JMPF R6 #0025
+ 0x8818010B, // 001E GETMBR R6 R0 K11
+ 0x601C0009, // 001F GETGBL R7 G9
+ 0x8C20030D, // 0020 GETMET R8 R1 K13
+ 0x58280006, // 0021 LDCONST R10 K6
+ 0x7C200400, // 0022 CALL R8 2
+ 0x7C1C0200, // 0023 CALL R7 1
+ 0x901A1807, // 0024 SETMBR R6 K12 R7
+ 0x8C180305, // 0025 GETMET R6 R1 K5
+ 0x58200007, // 0026 LDCONST R8 K7
+ 0x7C180400, // 0027 CALL R6 2
+ 0x781A0006, // 0028 JMPF R6 #0030
+ 0x8818010B, // 0029 GETMBR R6 R0 K11
+ 0x601C0009, // 002A GETGBL R7 G9
+ 0x8C20030D, // 002B GETMET R8 R1 K13
+ 0x58280007, // 002C LDCONST R10 K7
+ 0x7C200400, // 002D CALL R8 2
+ 0x7C1C0200, // 002E CALL R7 1
+ 0x901A1C07, // 002F SETMBR R6 K14 R7
+ 0x8818010B, // 0030 GETMBR R6 R0 K11
+ 0x8C1C030D, // 0031 GETMET R7 R1 K13
+ 0x58240010, // 0032 LDCONST R9 K16
+ 0x7C1C0400, // 0033 CALL R7 2
+ 0x1C1C0F11, // 0034 EQ R7 R7 K17
+ 0x901A1E07, // 0035 SETMBR R6 K15 R7
+ 0x8818010B, // 0036 GETMBR R6 R0 K11
+ 0x8C180D12, // 0037 GETMET R6 R6 K18
+ 0x7C180200, // 0038 CALL R6 1
+ 0x8C180313, // 0039 GETMET R6 R1 K19
+ 0x58200014, // 003A LDCONST R8 K20
+ 0x7C180400, // 003B CALL R6 2
+ 0x70020222, // 003C JMP #0260
+ 0x8C180305, // 003D GETMET R6 R1 K5
+ 0x58200015, // 003E LDCONST R8 K21
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A0052, // 0040 JMPF R6 #0094
+ 0x8C180305, // 0041 GETMET R6 R1 K5
+ 0x58200016, // 0042 LDCONST R8 K22
+ 0x7C180400, // 0043 CALL R6 2
+ 0x8C1C0305, // 0044 GETMET R7 R1 K5
+ 0x58240017, // 0045 LDCONST R9 K23
+ 0x7C1C0400, // 0046 CALL R7 2
+ 0x8C20030D, // 0047 GETMET R8 R1 K13
+ 0x58280018, // 0048 LDCONST R10 K24
+ 0x7C200400, // 0049 CALL R8 2
+ 0x1C201111, // 004A EQ R8 R8 K17
+ 0x8824010B, // 004B GETMBR R9 R0 K11
+ 0x88241319, // 004C GETMBR R9 R9 K25
+ 0x20241208, // 004D NE R9 R9 R8
+ 0x78260004, // 004E JMPF R9 #0054
+ 0x8824010B, // 004F GETMBR R9 R0 K11
+ 0x90263208, // 0050 SETMBR R9 K25 R8
+ 0x8824010B, // 0051 GETMBR R9 R0 K11
+ 0x8C241312, // 0052 GETMET R9 R9 K18
+ 0x7C240200, // 0053 CALL R9 1
+ 0x8C24011A, // 0054 GETMET R9 R0 K26
+ 0x7C240200, // 0055 CALL R9 1
+ 0x20240C09, // 0056 NE R9 R6 R9
+ 0x78260025, // 0057 JMPF R9 #007E
+ 0x781A0010, // 0058 JMPF R6 #006A
+ 0xB8261000, // 0059 GETNGBL R9 K8
+ 0x60280018, // 005A GETGBL R10 G24
+ 0x582C0009, // 005B LDCONST R11 K9
+ 0x5830001B, // 005C LDCONST R12 K27
+ 0x7C280400, // 005D CALL R10 2
+ 0x582C000A, // 005E LDCONST R11 K10
+ 0x7C240400, // 005F CALL R9 2
+ 0xB8263800, // 0060 GETNGBL R9 K28
+ 0x8C24131D, // 0061 GETMET R9 R9 K29
+ 0x602C0008, // 0062 GETGBL R11 G8
+ 0xB8323E00, // 0063 GETNGBL R12 K31
+ 0x88301920, // 0064 GETMBR R12 R12 K32
+ 0x7C2C0200, // 0065 CALL R11 1
+ 0x002E3C0B, // 0066 ADD R11 K30 R11
+ 0x002C1721, // 0067 ADD R11 R11 K33
+ 0x7C240400, // 0068 CALL R9 2
+ 0x7002000F, // 0069 JMP #007A
+ 0xB8261000, // 006A GETNGBL R9 K8
+ 0x60280018, // 006B GETGBL R10 G24
+ 0x582C0009, // 006C LDCONST R11 K9
+ 0x58300022, // 006D LDCONST R12 K34
+ 0x7C280400, // 006E CALL R10 2
+ 0x582C000A, // 006F LDCONST R11 K10
+ 0x7C240400, // 0070 CALL R9 2
+ 0xB8263800, // 0071 GETNGBL R9 K28
+ 0x8C24131D, // 0072 GETMET R9 R9 K29
+ 0x602C0008, // 0073 GETGBL R11 G8
+ 0xB8323E00, // 0074 GETNGBL R12 K31
+ 0x88301920, // 0075 GETMBR R12 R12 K32
+ 0x7C2C0200, // 0076 CALL R11 1
+ 0x002E3C0B, // 0077 ADD R11 K30 R11
+ 0x002C1723, // 0078 ADD R11 R11 K35
+ 0x7C240400, // 0079 CALL R9 2
+ 0x8C240313, // 007A GETMET R9 R1 K19
+ 0x582C0014, // 007B LDCONST R11 K20
0x7C240400, // 007C CALL R9 2
- 0x8C240314, // 007D GETMET R9 R1 K20
- 0x582C0015, // 007E LDCONST R11 K21
- 0x7C240400, // 007F CALL R9 2
- 0x70020014, // 0080 JMP #0096
- 0x8824010C, // 0081 GETMBR R9 R0 K12
- 0x88241324, // 0082 GETMBR R9 R9 K36
- 0x4C280000, // 0083 LDNIL R10
- 0x2024120A, // 0084 NE R9 R9 R10
- 0x20240E09, // 0085 NE R9 R7 R9
- 0x7826000B, // 0086 JMPF R9 #0093
- 0x781E0003, // 0087 JMPF R7 #008C
- 0x8824010C, // 0088 GETMBR R9 R0 K12
- 0x8C241325, // 0089 GETMET R9 R9 K37
- 0x7C240200, // 008A CALL R9 1
- 0x70020002, // 008B JMP #008F
- 0x8824010C, // 008C GETMBR R9 R0 K12
- 0x8C241326, // 008D GETMET R9 R9 K38
- 0x7C240200, // 008E CALL R9 1
- 0x8C240314, // 008F GETMET R9 R1 K20
- 0x582C0027, // 0090 LDCONST R11 K39
- 0x7C240400, // 0091 CALL R9 2
- 0x70020002, // 0092 JMP #0096
- 0x8C240314, // 0093 GETMET R9 R1 K20
- 0x582C0027, // 0094 LDCONST R11 K39
- 0x7C240400, // 0095 CALL R9 2
- 0x700201D7, // 0096 JMP #026F
- 0x8C180305, // 0097 GETMET R6 R1 K5
- 0x58200028, // 0098 LDCONST R8 K40
- 0x7C180400, // 0099 CALL R6 2
- 0x781A0026, // 009A JMPF R6 #00C2
- 0xB81A1000, // 009B GETNGBL R6 K8
- 0x8C180D09, // 009C GETMET R6 R6 K9
- 0x60200018, // 009D GETGBL R8 G24
- 0x5824000A, // 009E LDCONST R9 K10
- 0x58280028, // 009F LDCONST R10 K40
- 0x7C200400, // 00A0 CALL R8 2
- 0x5824000B, // 00A1 LDCONST R9 K11
- 0x7C180600, // 00A2 CALL R6 3
- 0x60180009, // 00A3 GETGBL R6 G9
- 0x8C1C030E, // 00A4 GETMET R7 R1 K14
- 0x58240028, // 00A5 LDCONST R9 K40
- 0x7C1C0400, // 00A6 CALL R7 2
- 0x7C180200, // 00A7 CALL R6 1
- 0x581C0029, // 00A8 LDCONST R7 K41
- 0x8820010C, // 00A9 GETMBR R8 R0 K12
- 0x8820112A, // 00AA GETMBR R8 R8 K42
- 0x8820112B, // 00AB GETMBR R8 R8 K43
- 0x6024000C, // 00AC GETGBL R9 G12
- 0x5C281000, // 00AD MOVE R10 R8
- 0x7C240200, // 00AE CALL R9 1
- 0x14240E09, // 00AF LT R9 R7 R9
- 0x7826000C, // 00B0 JMPF R9 #00BE
- 0x94241007, // 00B1 GETIDX R9 R8 R7
- 0x8C24132C, // 00B2 GETMET R9 R9 K44
- 0x7C240200, // 00B3 CALL R9 1
- 0x1C241206, // 00B4 EQ R9 R9 R6
- 0x78260005, // 00B5 JMPF R9 #00BC
- 0x8824010C, // 00B6 GETMBR R9 R0 K12
- 0x8C24132D, // 00B7 GETMET R9 R9 K45
- 0x942C1007, // 00B8 GETIDX R11 R8 R7
- 0x7C240400, // 00B9 CALL R9 2
- 0x70020002, // 00BA JMP #00BE
- 0x70020000, // 00BB JMP #00BD
- 0x001C0F2E, // 00BC ADD R7 R7 K46
- 0x7001FFED, // 00BD JMP #00AC
- 0x8C240314, // 00BE GETMET R9 R1 K20
- 0x582C002F, // 00BF LDCONST R11 K47
- 0x7C240400, // 00C0 CALL R9 2
- 0x700201AC, // 00C1 JMP #026F
- 0x8C180305, // 00C2 GETMET R6 R1 K5
- 0x58200030, // 00C3 LDCONST R8 K48
- 0x7C180400, // 00C4 CALL R6 2
- 0x781A0011, // 00C5 JMPF R6 #00D8
- 0xB81A1000, // 00C6 GETNGBL R6 K8
- 0x8C180D09, // 00C7 GETMET R6 R6 K9
- 0x60200018, // 00C8 GETGBL R8 G24
- 0x5824000A, // 00C9 LDCONST R9 K10
- 0x58280030, // 00CA LDCONST R10 K48
- 0x7C200400, // 00CB CALL R8 2
- 0x5824000B, // 00CC LDCONST R9 K11
- 0x7C180600, // 00CD CALL R6 3
- 0x8818010C, // 00CE GETMBR R6 R0 K12
- 0x501C0000, // 00CF LDBOOL R7 0 0
- 0x901A6207, // 00D0 SETMBR R6 K49 R7
- 0x8818010C, // 00D1 GETMBR R6 R0 K12
- 0x8C180D13, // 00D2 GETMET R6 R6 K19
- 0x7C180200, // 00D3 CALL R6 1
- 0x8C180314, // 00D4 GETMET R6 R1 K20
- 0x58200015, // 00D5 LDCONST R8 K21
- 0x7C180400, // 00D6 CALL R6 2
- 0x70020196, // 00D7 JMP #026F
- 0x8C180305, // 00D8 GETMET R6 R1 K5
- 0x58200032, // 00D9 LDCONST R8 K50
- 0x7C180400, // 00DA CALL R6 2
- 0x781A00D6, // 00DB JMPF R6 #01B3
- 0xB81A1000, // 00DC GETNGBL R6 K8
- 0x8C180D09, // 00DD GETMET R6 R6 K9
- 0x60200018, // 00DE GETGBL R8 G24
- 0x5824000A, // 00DF LDCONST R9 K10
- 0x58280032, // 00E0 LDCONST R10 K50
- 0x7C200400, // 00E1 CALL R8 2
- 0x5824000B, // 00E2 LDCONST R9 K11
- 0x7C180600, // 00E3 CALL R6 3
- 0x50180000, // 00E4 LDBOOL R6 0 0
- 0x601C0010, // 00E5 GETGBL R7 G16
- 0x8C200333, // 00E6 GETMET R8 R1 K51
- 0x7C200200, // 00E7 CALL R8 1
- 0x0420112E, // 00E8 SUB R8 R8 K46
- 0x40225208, // 00E9 CONNECT R8 K41 R8
- 0x7C1C0200, // 00EA CALL R7 1
- 0xA80200A0, // 00EB EXBLK 0 #018D
- 0x5C200E00, // 00EC MOVE R8 R7
- 0x7C200000, // 00ED CALL R8 0
- 0x8C240334, // 00EE GETMET R9 R1 K52
- 0x5C2C1000, // 00EF MOVE R11 R8
- 0x7C240400, // 00F0 CALL R9 2
- 0x8C280535, // 00F1 GETMET R10 R2 K53
- 0x5C301200, // 00F2 MOVE R12 R9
- 0x5834000E, // 00F3 LDCONST R13 K14
- 0x7C280600, // 00F4 CALL R10 3
- 0x1C281529, // 00F5 EQ R10 R10 K41
- 0x782A005B, // 00F6 JMPF R10 #0153
- 0x60280009, // 00F7 GETGBL R10 G9
- 0x402E1736, // 00F8 CONNECT R11 K11 K54
- 0x942C120B, // 00F9 GETIDX R11 R9 R11
- 0x7C280200, // 00FA CALL R10 1
- 0x8C2C030E, // 00FB GETMET R11 R1 K14
- 0x5C341000, // 00FC MOVE R13 R8
- 0x7C2C0400, // 00FD CALL R11 2
- 0x8830010C, // 00FE GETMBR R12 R0 K12
- 0x88301937, // 00FF GETMBR R12 R12 K55
- 0x8C301935, // 0100 GETMET R12 R12 K53
- 0x60380008, // 0101 GETGBL R14 G8
- 0x5C3C1400, // 0102 MOVE R15 R10
- 0x7C380200, // 0103 CALL R14 1
- 0x7C300400, // 0104 CALL R12 2
- 0x4C340000, // 0105 LDNIL R13
- 0x2034180D, // 0106 NE R13 R12 R13
- 0x78360041, // 0107 JMPF R13 #014A
- 0x8834010C, // 0108 GETMBR R13 R0 K12
- 0x88341B38, // 0109 GETMBR R13 R13 K56
- 0x8C341B35, // 010A GETMET R13 R13 K53
- 0x8C3C1935, // 010B GETMET R15 R12 K53
- 0x58440039, // 010C LDCONST R17 K57
- 0x5848003A, // 010D LDCONST R18 K58
- 0x7C3C0600, // 010E CALL R15 3
- 0x7C340400, // 010F CALL R13 2
- 0x4C380000, // 0110 LDNIL R14
- 0x20381A0E, // 0111 NE R14 R13 R14
- 0x783A0035, // 0112 JMPF R14 #0149
- 0xB83A1000, // 0113 GETNGBL R14 K8
- 0x8C381D09, // 0114 GETMET R14 R14 K9
- 0x60400018, // 0115 GETGBL R16 G24
- 0x5844003B, // 0116 LDCONST R17 K59
- 0x5C481400, // 0117 MOVE R18 R10
- 0x5C4C1600, // 0118 MOVE R19 R11
- 0x7C400600, // 0119 CALL R16 3
- 0x5844000B, // 011A LDCONST R17 K11
- 0x7C380600, // 011B CALL R14 3
- 0x8C381B3C, // 011C GETMET R14 R13 K60
- 0x5C401A00, // 011D MOVE R16 R13
- 0x5C441800, // 011E MOVE R17 R12
- 0x7C380600, // 011F CALL R14 3
- 0x203C1C0B, // 0120 NE R15 R14 R11
- 0xB8421000, // 0121 GETNGBL R16 K8
- 0x8C402109, // 0122 GETMET R16 R16 K9
- 0x60480018, // 0123 GETGBL R18 G24
- 0x584C003D, // 0124 LDCONST R19 K61
- 0x5C501400, // 0125 MOVE R20 R10
- 0x5C541C00, // 0126 MOVE R21 R14
- 0x5C581600, // 0127 MOVE R22 R11
- 0x205C1C0B, // 0128 NE R23 R14 R11
- 0x785E0001, // 0129 JMPF R23 #012C
- 0x585C003E, // 012A LDCONST R23 K62
- 0x70020000, // 012B JMP #012D
- 0x585C003A, // 012C LDCONST R23 K58
- 0x7C480A00, // 012D CALL R18 5
- 0x584C000B, // 012E LDCONST R19 K11
- 0x7C400600, // 012F CALL R16 3
- 0x783E0017, // 0130 JMPF R15 #0149
- 0x50180200, // 0131 LDBOOL R6 1 0
- 0x8C401B3F, // 0132 GETMET R16 R13 K63
- 0x5C481A00, // 0133 MOVE R18 R13
- 0x5C4C1800, // 0134 MOVE R19 R12
- 0x5C501600, // 0135 MOVE R20 R11
- 0x7C400800, // 0136 CALL R16 4
- 0x8840010C, // 0137 GETMBR R16 R0 K12
- 0x8C402140, // 0138 GETMET R16 R16 K64
- 0x5C481400, // 0139 MOVE R18 R10
- 0x7C400400, // 013A CALL R16 2
- 0x7842000C, // 013B JMPF R16 #0149
- 0xB8461000, // 013C GETNGBL R17 K8
- 0x8C442309, // 013D GETMET R17 R17 K9
- 0x604C0018, // 013E GETGBL R19 G24
- 0x58500041, // 013F LDCONST R20 K65
- 0x5C541800, // 0140 MOVE R21 R12
- 0x5C581400, // 0141 MOVE R22 R10
- 0x5C5C2000, // 0142 MOVE R23 R16
- 0x7C4C0800, // 0143 CALL R19 4
- 0x5850000B, // 0144 LDCONST R20 K11
- 0x7C440600, // 0145 CALL R17 3
- 0x8C442142, // 0146 GETMET R17 R16 K66
- 0x5C4C1800, // 0147 MOVE R19 R12
- 0x7C440400, // 0148 CALL R17 2
- 0x70020007, // 0149 JMP #0152
- 0xB8361000, // 014A GETNGBL R13 K8
- 0x8C341B09, // 014B GETMET R13 R13 K9
- 0x603C0018, // 014C GETGBL R15 G24
- 0x58400043, // 014D LDCONST R16 K67
- 0x5C441400, // 014E MOVE R17 R10
- 0x7C3C0400, // 014F CALL R15 2
- 0x5840000B, // 0150 LDCONST R16 K11
- 0x7C340600, // 0151 CALL R13 3
- 0x70020038, // 0152 JMP #018C
- 0x8C280535, // 0153 GETMET R10 R2 K53
- 0x5C301200, // 0154 MOVE R12 R9
- 0x58340044, // 0155 LDCONST R13 K68
- 0x7C280600, // 0156 CALL R10 3
- 0x1C281529, // 0157 EQ R10 R10 K41
- 0x782A0032, // 0158 JMPF R10 #018C
- 0x60280009, // 0159 GETGBL R10 G9
- 0x402E1736, // 015A CONNECT R11 K11 K54
- 0x942C120B, // 015B GETIDX R11 R9 R11
- 0x7C280200, // 015C CALL R10 1
- 0x8C2C030E, // 015D GETMET R11 R1 K14
- 0x5C341000, // 015E MOVE R13 R8
- 0x7C2C0400, // 015F CALL R11 2
- 0x8830010C, // 0160 GETMBR R12 R0 K12
- 0x88301937, // 0161 GETMBR R12 R12 K55
- 0x8C301935, // 0162 GETMET R12 R12 K53
- 0x60380008, // 0163 GETGBL R14 G8
- 0x5C3C1400, // 0164 MOVE R15 R10
- 0x7C380200, // 0165 CALL R14 1
- 0x7C300400, // 0166 CALL R12 2
- 0x4C340000, // 0167 LDNIL R13
- 0x2034180D, // 0168 NE R13 R12 R13
- 0x78360021, // 0169 JMPF R13 #018C
- 0x8C341935, // 016A GETMET R13 R12 K53
- 0x583C0045, // 016B LDCONST R15 K69
- 0x5840003A, // 016C LDCONST R16 K58
- 0x7C340600, // 016D CALL R13 3
- 0x20381A0B, // 016E NE R14 R13 R11
- 0x783A001B, // 016F JMPF R14 #018C
- 0x50180200, // 0170 LDBOOL R6 1 0
- 0x883C010C, // 0171 GETMBR R15 R0 K12
- 0x8C3C1F40, // 0172 GETMET R15 R15 K64
- 0x5C441400, // 0173 MOVE R17 R10
- 0x7C3C0400, // 0174 CALL R15 2
- 0x783E0015, // 0175 JMPF R15 #018C
- 0x8C401F46, // 0176 GETMET R16 R15 K70
- 0x5C481600, // 0177 MOVE R18 R11
- 0x7C400400, // 0178 CALL R16 2
- 0x782E0001, // 0179 JMPF R11 #017C
- 0x98328A0B, // 017A SETIDX R12 K69 R11
- 0x70020002, // 017B JMP #017F
- 0x8C401947, // 017C GETMET R16 R12 K71
- 0x58480045, // 017D LDCONST R18 K69
- 0x7C400400, // 017E CALL R16 2
- 0xB8421000, // 017F GETNGBL R16 K8
- 0x8C402109, // 0180 GETMET R16 R16 K9
- 0x60480018, // 0181 GETGBL R18 G24
- 0x584C0048, // 0182 LDCONST R19 K72
- 0x5C501800, // 0183 MOVE R20 R12
- 0x5C541400, // 0184 MOVE R21 R10
- 0x5C581E00, // 0185 MOVE R22 R15
- 0x7C480800, // 0186 CALL R18 4
- 0x584C000B, // 0187 LDCONST R19 K11
- 0x7C400600, // 0188 CALL R16 3
- 0x8C401F42, // 0189 GETMET R16 R15 K66
- 0x5C481800, // 018A MOVE R18 R12
- 0x7C400400, // 018B CALL R16 2
- 0x7001FF5E, // 018C JMP #00EC
- 0x581C0049, // 018D LDCONST R7 K73
- 0xAC1C0200, // 018E CATCH R7 1 0
- 0xB0080000, // 018F RAISE 2 R0 R0
+ 0x70020014, // 007D JMP #0093
+ 0x8824010B, // 007E GETMBR R9 R0 K11
+ 0x88241324, // 007F GETMBR R9 R9 K36
+ 0x4C280000, // 0080 LDNIL R10
+ 0x2024120A, // 0081 NE R9 R9 R10
+ 0x20240E09, // 0082 NE R9 R7 R9
+ 0x7826000B, // 0083 JMPF R9 #0090
+ 0x781E0003, // 0084 JMPF R7 #0089
+ 0x8824010B, // 0085 GETMBR R9 R0 K11
+ 0x8C241325, // 0086 GETMET R9 R9 K37
+ 0x7C240200, // 0087 CALL R9 1
+ 0x70020002, // 0088 JMP #008C
+ 0x8824010B, // 0089 GETMBR R9 R0 K11
+ 0x8C241326, // 008A GETMET R9 R9 K38
+ 0x7C240200, // 008B CALL R9 1
+ 0x8C240313, // 008C GETMET R9 R1 K19
+ 0x582C0027, // 008D LDCONST R11 K39
+ 0x7C240400, // 008E CALL R9 2
+ 0x70020002, // 008F JMP #0093
+ 0x8C240313, // 0090 GETMET R9 R1 K19
+ 0x582C0027, // 0091 LDCONST R11 K39
+ 0x7C240400, // 0092 CALL R9 2
+ 0x700201CB, // 0093 JMP #0260
+ 0x8C180305, // 0094 GETMET R6 R1 K5
+ 0x58200028, // 0095 LDCONST R8 K40
+ 0x7C180400, // 0096 CALL R6 2
+ 0x781A0025, // 0097 JMPF R6 #00BE
+ 0xB81A1000, // 0098 GETNGBL R6 K8
+ 0x601C0018, // 0099 GETGBL R7 G24
+ 0x58200009, // 009A LDCONST R8 K9
+ 0x58240028, // 009B LDCONST R9 K40
+ 0x7C1C0400, // 009C CALL R7 2
+ 0x5820000A, // 009D LDCONST R8 K10
+ 0x7C180400, // 009E CALL R6 2
+ 0x60180009, // 009F GETGBL R6 G9
+ 0x8C1C030D, // 00A0 GETMET R7 R1 K13
+ 0x58240028, // 00A1 LDCONST R9 K40
+ 0x7C1C0400, // 00A2 CALL R7 2
+ 0x7C180200, // 00A3 CALL R6 1
+ 0x581C0029, // 00A4 LDCONST R7 K41
+ 0x8820010B, // 00A5 GETMBR R8 R0 K11
+ 0x8820112A, // 00A6 GETMBR R8 R8 K42
+ 0x8820112B, // 00A7 GETMBR R8 R8 K43
+ 0x6024000C, // 00A8 GETGBL R9 G12
+ 0x5C281000, // 00A9 MOVE R10 R8
+ 0x7C240200, // 00AA CALL R9 1
+ 0x14240E09, // 00AB LT R9 R7 R9
+ 0x7826000C, // 00AC JMPF R9 #00BA
+ 0x94241007, // 00AD GETIDX R9 R8 R7
+ 0x8C24132C, // 00AE GETMET R9 R9 K44
+ 0x7C240200, // 00AF CALL R9 1
+ 0x1C241206, // 00B0 EQ R9 R9 R6
+ 0x78260005, // 00B1 JMPF R9 #00B8
+ 0x8824010B, // 00B2 GETMBR R9 R0 K11
+ 0x8C24132D, // 00B3 GETMET R9 R9 K45
+ 0x942C1007, // 00B4 GETIDX R11 R8 R7
+ 0x7C240400, // 00B5 CALL R9 2
+ 0x70020002, // 00B6 JMP #00BA
+ 0x70020000, // 00B7 JMP #00B9
+ 0x001C0F2E, // 00B8 ADD R7 R7 K46
+ 0x7001FFED, // 00B9 JMP #00A8
+ 0x8C240313, // 00BA GETMET R9 R1 K19
+ 0x582C002F, // 00BB LDCONST R11 K47
+ 0x7C240400, // 00BC CALL R9 2
+ 0x700201A1, // 00BD JMP #0260
+ 0x8C180305, // 00BE GETMET R6 R1 K5
+ 0x58200030, // 00BF LDCONST R8 K48
+ 0x7C180400, // 00C0 CALL R6 2
+ 0x781A0010, // 00C1 JMPF R6 #00D3
+ 0xB81A1000, // 00C2 GETNGBL R6 K8
+ 0x601C0018, // 00C3 GETGBL R7 G24
+ 0x58200009, // 00C4 LDCONST R8 K9
+ 0x58240030, // 00C5 LDCONST R9 K48
+ 0x7C1C0400, // 00C6 CALL R7 2
+ 0x5820000A, // 00C7 LDCONST R8 K10
+ 0x7C180400, // 00C8 CALL R6 2
+ 0x8818010B, // 00C9 GETMBR R6 R0 K11
+ 0x501C0000, // 00CA LDBOOL R7 0 0
+ 0x901A6207, // 00CB SETMBR R6 K49 R7
+ 0x8818010B, // 00CC GETMBR R6 R0 K11
+ 0x8C180D12, // 00CD GETMET R6 R6 K18
+ 0x7C180200, // 00CE CALL R6 1
+ 0x8C180313, // 00CF GETMET R6 R1 K19
+ 0x58200014, // 00D0 LDCONST R8 K20
+ 0x7C180400, // 00D1 CALL R6 2
+ 0x7002018C, // 00D2 JMP #0260
+ 0x8C180305, // 00D3 GETMET R6 R1 K5
+ 0x58200032, // 00D4 LDCONST R8 K50
+ 0x7C180400, // 00D5 CALL R6 2
+ 0x781A00CE, // 00D6 JMPF R6 #01A6
+ 0xB81A1000, // 00D7 GETNGBL R6 K8
+ 0x601C0018, // 00D8 GETGBL R7 G24
+ 0x58200009, // 00D9 LDCONST R8 K9
+ 0x58240032, // 00DA LDCONST R9 K50
+ 0x7C1C0400, // 00DB CALL R7 2
+ 0x5820000A, // 00DC LDCONST R8 K10
+ 0x7C180400, // 00DD CALL R6 2
+ 0x50180000, // 00DE LDBOOL R6 0 0
+ 0x601C0010, // 00DF GETGBL R7 G16
+ 0x8C200333, // 00E0 GETMET R8 R1 K51
+ 0x7C200200, // 00E1 CALL R8 1
+ 0x0420112E, // 00E2 SUB R8 R8 K46
+ 0x40225208, // 00E3 CONNECT R8 K41 R8
+ 0x7C1C0200, // 00E4 CALL R7 1
+ 0xA802009B, // 00E5 EXBLK 0 #0182
+ 0x5C200E00, // 00E6 MOVE R8 R7
+ 0x7C200000, // 00E7 CALL R8 0
+ 0x8C240334, // 00E8 GETMET R9 R1 K52
+ 0x5C2C1000, // 00E9 MOVE R11 R8
+ 0x7C240400, // 00EA CALL R9 2
+ 0x8C280535, // 00EB GETMET R10 R2 K53
+ 0x5C301200, // 00EC MOVE R12 R9
+ 0x5834000D, // 00ED LDCONST R13 K13
+ 0x7C280600, // 00EE CALL R10 3
+ 0x1C281529, // 00EF EQ R10 R10 K41
+ 0x782A0057, // 00F0 JMPF R10 #0149
+ 0x60280009, // 00F1 GETGBL R10 G9
+ 0x402E1536, // 00F2 CONNECT R11 K10 K54
+ 0x942C120B, // 00F3 GETIDX R11 R9 R11
+ 0x7C280200, // 00F4 CALL R10 1
+ 0x8C2C030D, // 00F5 GETMET R11 R1 K13
+ 0x5C341000, // 00F6 MOVE R13 R8
+ 0x7C2C0400, // 00F7 CALL R11 2
+ 0x8830010B, // 00F8 GETMBR R12 R0 K11
+ 0x88301937, // 00F9 GETMBR R12 R12 K55
+ 0x8C301935, // 00FA GETMET R12 R12 K53
+ 0x60380008, // 00FB GETGBL R14 G8
+ 0x5C3C1400, // 00FC MOVE R15 R10
+ 0x7C380200, // 00FD CALL R14 1
+ 0x7C300400, // 00FE CALL R12 2
+ 0x4C340000, // 00FF LDNIL R13
+ 0x2034180D, // 0100 NE R13 R12 R13
+ 0x7836003E, // 0101 JMPF R13 #0141
+ 0x8834010B, // 0102 GETMBR R13 R0 K11
+ 0x88341B38, // 0103 GETMBR R13 R13 K56
+ 0x8C341B35, // 0104 GETMET R13 R13 K53
+ 0x8C3C1935, // 0105 GETMET R15 R12 K53
+ 0x58440039, // 0106 LDCONST R17 K57
+ 0x5848003A, // 0107 LDCONST R18 K58
+ 0x7C3C0600, // 0108 CALL R15 3
+ 0x7C340400, // 0109 CALL R13 2
+ 0x4C380000, // 010A LDNIL R14
+ 0x20381A0E, // 010B NE R14 R13 R14
+ 0x783A0032, // 010C JMPF R14 #0140
+ 0xB83A1000, // 010D GETNGBL R14 K8
+ 0x603C0018, // 010E GETGBL R15 G24
+ 0x5840003B, // 010F LDCONST R16 K59
+ 0x5C441400, // 0110 MOVE R17 R10
+ 0x5C481600, // 0111 MOVE R18 R11
+ 0x7C3C0600, // 0112 CALL R15 3
+ 0x5840000A, // 0113 LDCONST R16 K10
+ 0x7C380400, // 0114 CALL R14 2
+ 0x8C381B3C, // 0115 GETMET R14 R13 K60
+ 0x5C401A00, // 0116 MOVE R16 R13
+ 0x5C441800, // 0117 MOVE R17 R12
+ 0x7C380600, // 0118 CALL R14 3
+ 0x203C1C0B, // 0119 NE R15 R14 R11
+ 0xB8421000, // 011A GETNGBL R16 K8
+ 0x60440018, // 011B GETGBL R17 G24
+ 0x5848003D, // 011C LDCONST R18 K61
+ 0x5C4C1400, // 011D MOVE R19 R10
+ 0x5C501C00, // 011E MOVE R20 R14
+ 0x5C541600, // 011F MOVE R21 R11
+ 0x20581C0B, // 0120 NE R22 R14 R11
+ 0x785A0001, // 0121 JMPF R22 #0124
+ 0x5858003E, // 0122 LDCONST R22 K62
+ 0x70020000, // 0123 JMP #0125
+ 0x5858003A, // 0124 LDCONST R22 K58
+ 0x7C440A00, // 0125 CALL R17 5
+ 0x5848000A, // 0126 LDCONST R18 K10
+ 0x7C400400, // 0127 CALL R16 2
+ 0x783E0016, // 0128 JMPF R15 #0140
+ 0x50180200, // 0129 LDBOOL R6 1 0
+ 0x8C401B3F, // 012A GETMET R16 R13 K63
+ 0x5C481A00, // 012B MOVE R18 R13
+ 0x5C4C1800, // 012C MOVE R19 R12
+ 0x5C501600, // 012D MOVE R20 R11
+ 0x7C400800, // 012E CALL R16 4
+ 0x8840010B, // 012F GETMBR R16 R0 K11
+ 0x8C402140, // 0130 GETMET R16 R16 K64
+ 0x5C481400, // 0131 MOVE R18 R10
+ 0x7C400400, // 0132 CALL R16 2
+ 0x7842000B, // 0133 JMPF R16 #0140
+ 0xB8461000, // 0134 GETNGBL R17 K8
+ 0x60480018, // 0135 GETGBL R18 G24
+ 0x584C0041, // 0136 LDCONST R19 K65
+ 0x5C501800, // 0137 MOVE R20 R12
+ 0x5C541400, // 0138 MOVE R21 R10
+ 0x5C582000, // 0139 MOVE R22 R16
+ 0x7C480800, // 013A CALL R18 4
+ 0x584C000A, // 013B LDCONST R19 K10
+ 0x7C440400, // 013C CALL R17 2
+ 0x8C442142, // 013D GETMET R17 R16 K66
+ 0x5C4C1800, // 013E MOVE R19 R12
+ 0x7C440400, // 013F CALL R17 2
+ 0x70020006, // 0140 JMP #0148
+ 0xB8361000, // 0141 GETNGBL R13 K8
+ 0x60380018, // 0142 GETGBL R14 G24
+ 0x583C0043, // 0143 LDCONST R15 K67
+ 0x5C401400, // 0144 MOVE R16 R10
+ 0x7C380400, // 0145 CALL R14 2
+ 0x583C000A, // 0146 LDCONST R15 K10
+ 0x7C340400, // 0147 CALL R13 2
+ 0x70020037, // 0148 JMP #0181
+ 0x8C280535, // 0149 GETMET R10 R2 K53
+ 0x5C301200, // 014A MOVE R12 R9
+ 0x58340044, // 014B LDCONST R13 K68
+ 0x7C280600, // 014C CALL R10 3
+ 0x1C281529, // 014D EQ R10 R10 K41
+ 0x782A0031, // 014E JMPF R10 #0181
+ 0x60280009, // 014F GETGBL R10 G9
+ 0x402E1536, // 0150 CONNECT R11 K10 K54
+ 0x942C120B, // 0151 GETIDX R11 R9 R11
+ 0x7C280200, // 0152 CALL R10 1
+ 0x8C2C030D, // 0153 GETMET R11 R1 K13
+ 0x5C341000, // 0154 MOVE R13 R8
+ 0x7C2C0400, // 0155 CALL R11 2
+ 0x8830010B, // 0156 GETMBR R12 R0 K11
+ 0x88301937, // 0157 GETMBR R12 R12 K55
+ 0x8C301935, // 0158 GETMET R12 R12 K53
+ 0x60380008, // 0159 GETGBL R14 G8
+ 0x5C3C1400, // 015A MOVE R15 R10
+ 0x7C380200, // 015B CALL R14 1
+ 0x7C300400, // 015C CALL R12 2
+ 0x4C340000, // 015D LDNIL R13
+ 0x2034180D, // 015E NE R13 R12 R13
+ 0x78360020, // 015F JMPF R13 #0181
+ 0x8C341935, // 0160 GETMET R13 R12 K53
+ 0x583C0045, // 0161 LDCONST R15 K69
+ 0x5840003A, // 0162 LDCONST R16 K58
+ 0x7C340600, // 0163 CALL R13 3
+ 0x20381A0B, // 0164 NE R14 R13 R11
+ 0x783A001A, // 0165 JMPF R14 #0181
+ 0x50180200, // 0166 LDBOOL R6 1 0
+ 0x883C010B, // 0167 GETMBR R15 R0 K11
+ 0x8C3C1F40, // 0168 GETMET R15 R15 K64
+ 0x5C441400, // 0169 MOVE R17 R10
+ 0x7C3C0400, // 016A CALL R15 2
+ 0x783E0014, // 016B JMPF R15 #0181
+ 0x8C401F46, // 016C GETMET R16 R15 K70
+ 0x5C481600, // 016D MOVE R18 R11
+ 0x7C400400, // 016E CALL R16 2
+ 0x782E0001, // 016F JMPF R11 #0172
+ 0x98328A0B, // 0170 SETIDX R12 K69 R11
+ 0x70020002, // 0171 JMP #0175
+ 0x8C401947, // 0172 GETMET R16 R12 K71
+ 0x58480045, // 0173 LDCONST R18 K69
+ 0x7C400400, // 0174 CALL R16 2
+ 0xB8421000, // 0175 GETNGBL R16 K8
+ 0x60440018, // 0176 GETGBL R17 G24
+ 0x58480048, // 0177 LDCONST R18 K72
+ 0x5C4C1800, // 0178 MOVE R19 R12
+ 0x5C501400, // 0179 MOVE R20 R10
+ 0x5C541E00, // 017A MOVE R21 R15
+ 0x7C440800, // 017B CALL R17 4
+ 0x5848000A, // 017C LDCONST R18 K10
+ 0x7C400400, // 017D CALL R16 2
+ 0x8C401F42, // 017E GETMET R16 R15 K66
+ 0x5C481800, // 017F MOVE R18 R12
+ 0x7C400400, // 0180 CALL R16 2
+ 0x7001FF63, // 0181 JMP #00E6
+ 0x581C0049, // 0182 LDCONST R7 K73
+ 0xAC1C0200, // 0183 CATCH R7 1 0
+ 0xB0080000, // 0184 RAISE 2 R0 R0
+ 0xB81E1000, // 0185 GETNGBL R7 K8
+ 0x60200018, // 0186 GETGBL R8 G24
+ 0x5824004A, // 0187 LDCONST R9 K74
+ 0x60280008, // 0188 GETGBL R10 G8
+ 0x882C010B, // 0189 GETMBR R11 R0 K11
+ 0x882C1737, // 018A GETMBR R11 R11 K55
+ 0x7C280200, // 018B CALL R10 1
+ 0x7C200400, // 018C CALL R8 2
+ 0x5824000A, // 018D LDCONST R9 K10
+ 0x7C1C0400, // 018E CALL R7 2
+ 0x78160007, // 018F JMPF R5 #0198
0xB81E1000, // 0190 GETNGBL R7 K8
- 0x8C1C0F09, // 0191 GETMET R7 R7 K9
- 0x60240018, // 0192 GETGBL R9 G24
- 0x5828004A, // 0193 LDCONST R10 K74
- 0x602C0008, // 0194 GETGBL R11 G8
- 0x8830010C, // 0195 GETMBR R12 R0 K12
- 0x88301937, // 0196 GETMBR R12 R12 K55
- 0x7C2C0200, // 0197 CALL R11 1
- 0x7C240400, // 0198 CALL R9 2
- 0x5828000B, // 0199 LDCONST R10 K11
- 0x7C1C0600, // 019A CALL R7 3
- 0x78160008, // 019B JMPF R5 #01A5
- 0xB81E1000, // 019C GETNGBL R7 K8
- 0x8C1C0F09, // 019D GETMET R7 R7 K9
- 0x60240018, // 019E GETGBL R9 G24
- 0x5828004B, // 019F LDCONST R10 K75
- 0x5C2C0A00, // 01A0 MOVE R11 R5
- 0x7C240400, // 01A1 CALL R9 2
- 0x5828000B, // 01A2 LDCONST R10 K11
- 0x7C1C0600, // 01A3 CALL R7 3
- 0x7002000C, // 01A4 JMP #01B2
- 0x741A0002, // 01A5 JMPT R6 #01A9
- 0x881C010C, // 01A6 GETMBR R7 R0 K12
- 0x881C0F31, // 01A7 GETMBR R7 R7 K49
- 0x741E0005, // 01A8 JMPT R7 #01AF
- 0x881C010C, // 01A9 GETMBR R7 R0 K12
- 0x50200200, // 01AA LDBOOL R8 1 0
- 0x901E6208, // 01AB SETMBR R7 K49 R8
- 0x881C010C, // 01AC GETMBR R7 R0 K12
- 0x8C1C0F13, // 01AD GETMET R7 R7 K19
- 0x7C1C0200, // 01AE CALL R7 1
- 0x8C1C0314, // 01AF GETMET R7 R1 K20
- 0x5824004C, // 01B0 LDCONST R9 K76
- 0x7C1C0400, // 01B1 CALL R7 2
- 0x700200BB, // 01B2 JMP #026F
- 0x8C180305, // 01B3 GETMET R6 R1 K5
- 0x5820004D, // 01B4 LDCONST R8 K77
- 0x7C180400, // 01B5 CALL R6 2
- 0x781A002B, // 01B6 JMPF R6 #01E3
- 0x8C18030E, // 01B7 GETMET R6 R1 K14
- 0x5820004E, // 01B8 LDCONST R8 K78
- 0x7C180400, // 01B9 CALL R6 2
- 0x8C1C030E, // 01BA GETMET R7 R1 K14
- 0x5824000E, // 01BB LDCONST R9 K14
- 0x7C1C0400, // 01BC CALL R7 2
- 0x8C20030E, // 01BD GETMET R8 R1 K14
- 0x58280044, // 01BE LDCONST R10 K68
- 0x7C200400, // 01BF CALL R8 2
- 0xB8261000, // 01C0 GETNGBL R9 K8
- 0x8C241309, // 01C1 GETMET R9 R9 K9
- 0x602C0018, // 01C2 GETGBL R11 G24
- 0x5830004F, // 01C3 LDCONST R12 K79
- 0x5C340C00, // 01C4 MOVE R13 R6
- 0x5C380E00, // 01C5 MOVE R14 R7
- 0x7C2C0600, // 01C6 CALL R11 3
- 0x5830000B, // 01C7 LDCONST R12 K11
- 0x7C240600, // 01C8 CALL R9 3
- 0x8824010C, // 01C9 GETMBR R9 R0 K12
- 0x88241338, // 01CA GETMBR R9 R9 K56
- 0x8C241335, // 01CB GETMET R9 R9 K53
- 0x5C2C0C00, // 01CC MOVE R11 R6
- 0x7C240400, // 01CD CALL R9 2
- 0x4C280000, // 01CE LDNIL R10
- 0x2028120A, // 01CF NE R10 R9 R10
- 0x782A000D, // 01D0 JMPF R10 #01DF
- 0x60280013, // 01D1 GETGBL R10 G19
- 0x7C280000, // 01D2 CALL R10 0
- 0x78220000, // 01D3 JMPF R8 #01D5
- 0x982A8A08, // 01D4 SETIDX R10 K69 R8
- 0x8C2C133F, // 01D5 GETMET R11 R9 K63
- 0x5C341200, // 01D6 MOVE R13 R9
- 0x5C381400, // 01D7 MOVE R14 R10
- 0x5C3C0E00, // 01D8 MOVE R15 R7
- 0x7C2C0800, // 01D9 CALL R11 4
- 0x882C010C, // 01DA GETMBR R11 R0 K12
- 0x8C2C1750, // 01DB GETMET R11 R11 K80
- 0x5C340C00, // 01DC MOVE R13 R6
- 0x5C381400, // 01DD MOVE R14 R10
- 0x7C2C0600, // 01DE CALL R11 3
- 0x8C280314, // 01DF GETMET R10 R1 K20
- 0x5830004C, // 01E0 LDCONST R12 K76
- 0x7C280400, // 01E1 CALL R10 2
- 0x7002008B, // 01E2 JMP #026F
- 0x8C180305, // 01E3 GETMET R6 R1 K5
- 0x58200051, // 01E4 LDCONST R8 K81
- 0x7C180400, // 01E5 CALL R6 2
- 0x781A005E, // 01E6 JMPF R6 #0246
- 0x8C18030E, // 01E7 GETMET R6 R1 K14
- 0x58200052, // 01E8 LDCONST R8 K82
- 0x7C180400, // 01E9 CALL R6 2
- 0x4C1C0000, // 01EA LDNIL R7
- 0x1C1C0C07, // 01EB EQ R7 R6 R7
- 0x741E0001, // 01EC JMPT R7 #01EF
- 0x1C1C0D3A, // 01ED EQ R7 R6 K58
- 0x781E0000, // 01EE JMPF R7 #01F0
- 0xB006A754, // 01EF RAISE 1 K83 K84
- 0x581C0029, // 01F0 LDCONST R7 K41
- 0x60200008, // 01F1 GETGBL R8 G8
- 0x5C240E00, // 01F2 MOVE R9 R7
- 0x7C200200, // 01F3 CALL R8 1
- 0x8C240305, // 01F4 GETMET R9 R1 K5
- 0x002E9C08, // 01F5 ADD R11 K78 R8
- 0x7C240400, // 01F6 CALL R9 2
- 0x78260049, // 01F7 JMPF R9 #0242
- 0x8C24030E, // 01F8 GETMET R9 R1 K14
- 0x002E9C08, // 01F9 ADD R11 K78 R8
- 0x7C240400, // 01FA CALL R9 2
- 0x8C28030E, // 01FB GETMET R10 R1 K14
- 0x00321C08, // 01FC ADD R12 K14 R8
- 0x7C280400, // 01FD CALL R10 2
- 0x8C2C030E, // 01FE GETMET R11 R1 K14
- 0x00368808, // 01FF ADD R13 K68 R8
- 0x7C2C0400, // 0200 CALL R11 2
- 0x2030133A, // 0201 NE R12 R9 K58
- 0x78320038, // 0202 JMPF R12 #023C
- 0x8830010C, // 0203 GETMBR R12 R0 K12
- 0x88301938, // 0204 GETMBR R12 R12 K56
- 0x8C301935, // 0205 GETMET R12 R12 K53
- 0x5C381200, // 0206 MOVE R14 R9
- 0x7C300400, // 0207 CALL R12 2
- 0x4C340000, // 0208 LDNIL R13
- 0x2034180D, // 0209 NE R13 R12 R13
- 0x78360030, // 020A JMPF R13 #023C
- 0x60340013, // 020B GETGBL R13 G19
- 0x7C340000, // 020C CALL R13 0
- 0x9836A406, // 020D SETIDX R13 K82 R6
- 0x98367209, // 020E SETIDX R13 K57 R9
- 0x782E0000, // 020F JMPF R11 #0211
- 0x98368A0B, // 0210 SETIDX R13 K69 R11
- 0x8C38193F, // 0211 GETMET R14 R12 K63
- 0x5C401800, // 0212 MOVE R16 R12
- 0x5C441A00, // 0213 MOVE R17 R13
- 0x5C481400, // 0214 MOVE R18 R10
- 0x7C380800, // 0215 CALL R14 4
- 0x50380000, // 0216 LDBOOL R14 0 0
- 0x603C0010, // 0217 GETGBL R15 G16
- 0x8840010C, // 0218 GETMBR R16 R0 K12
- 0x88402137, // 0219 GETMBR R16 R16 K55
- 0x7C3C0200, // 021A CALL R15 1
- 0xA802000B, // 021B EXBLK 0 #0228
- 0x5C401E00, // 021C MOVE R16 R15
- 0x7C400000, // 021D CALL R16 0
- 0x8C440155, // 021E GETMET R17 R0 K85
- 0x5C4C2000, // 021F MOVE R19 R16
- 0x5C501A00, // 0220 MOVE R20 R13
- 0x7C440600, // 0221 CALL R17 3
- 0x78460001, // 0222 JMPF R17 #0225
- 0x50380200, // 0223 LDBOOL R14 1 0
- 0x70020000, // 0224 JMP #0226
- 0x7001FFF5, // 0225 JMP #021C
- 0xA8040001, // 0226 EXBLK 1 1
- 0x70020002, // 0227 JMP #022B
- 0x583C0049, // 0228 LDCONST R15 K73
- 0xAC3C0200, // 0229 CATCH R15 1 0
- 0xB0080000, // 022A RAISE 2 R0 R0
- 0x5C3C1C00, // 022B MOVE R15 R14
- 0x743E000E, // 022C JMPT R15 #023C
- 0xB83E1000, // 022D GETNGBL R15 K8
- 0x8C3C1F09, // 022E GETMET R15 R15 K9
- 0x60440018, // 022F GETGBL R17 G24
- 0x58480056, // 0230 LDCONST R18 K86
- 0x5C4C0C00, // 0231 MOVE R19 R6
- 0x5C501200, // 0232 MOVE R20 R9
- 0x5C541400, // 0233 MOVE R21 R10
- 0x7C440800, // 0234 CALL R17 4
- 0x5848000B, // 0235 LDCONST R18 K11
- 0x7C3C0600, // 0236 CALL R15 3
- 0x883C010C, // 0237 GETMBR R15 R0 K12
- 0x8C3C1F50, // 0238 GETMET R15 R15 K80
- 0x5C441200, // 0239 MOVE R17 R9
- 0x5C481A00, // 023A MOVE R18 R13
- 0x7C3C0600, // 023B CALL R15 3
- 0x001C0F2E, // 023C ADD R7 R7 K46
- 0x60300008, // 023D GETGBL R12 G8
- 0x5C340E00, // 023E MOVE R13 R7
- 0x7C300200, // 023F CALL R12 1
- 0x5C201800, // 0240 MOVE R8 R12
- 0x7001FFB1, // 0241 JMP #01F4
- 0x8C240314, // 0242 GETMET R9 R1 K20
- 0x582C004C, // 0243 LDCONST R11 K76
- 0x7C240400, // 0244 CALL R9 2
- 0x70020028, // 0245 JMP #026F
- 0x4C180000, // 0246 LDNIL R6
- 0x601C0010, // 0247 GETGBL R7 G16
- 0x8C200333, // 0248 GETMET R8 R1 K51
- 0x7C200200, // 0249 CALL R8 1
- 0x0420112E, // 024A SUB R8 R8 K46
- 0x40225208, // 024B CONNECT R8 K41 R8
- 0x7C1C0200, // 024C CALL R7 1
- 0xA8020013, // 024D EXBLK 0 #0262
- 0x5C200E00, // 024E MOVE R8 R7
- 0x7C200000, // 024F CALL R8 0
- 0x8C240334, // 0250 GETMET R9 R1 K52
- 0x5C2C1000, // 0251 MOVE R11 R8
- 0x7C240400, // 0252 CALL R9 2
- 0x8C280535, // 0253 GETMET R10 R2 K53
- 0x5C301200, // 0254 MOVE R12 R9
- 0x58340057, // 0255 LDCONST R13 K87
- 0x7C280600, // 0256 CALL R10 3
- 0x1C281529, // 0257 EQ R10 R10 K41
- 0x782A0005, // 0258 JMPF R10 #025F
- 0x60280009, // 0259 GETGBL R10 G9
- 0x402E1736, // 025A CONNECT R11 K11 K54
- 0x942C120B, // 025B GETIDX R11 R9 R11
- 0x7C280200, // 025C CALL R10 1
- 0x5C181400, // 025D MOVE R6 R10
- 0x70020000, // 025E JMP #0260
- 0x7001FFED, // 025F JMP #024E
- 0xA8040001, // 0260 EXBLK 1 1
- 0x70020002, // 0261 JMP #0265
- 0x581C0049, // 0262 LDCONST R7 K73
- 0xAC1C0200, // 0263 CATCH R7 1 0
- 0xB0080000, // 0264 RAISE 2 R0 R0
- 0x4C1C0000, // 0265 LDNIL R7
- 0x201C0C07, // 0266 NE R7 R6 R7
- 0x781E0006, // 0267 JMPF R7 #026F
- 0x881C010C, // 0268 GETMBR R7 R0 K12
- 0x8C1C0F58, // 0269 GETMET R7 R7 K88
- 0x5C240C00, // 026A MOVE R9 R6
- 0x7C1C0400, // 026B CALL R7 2
- 0x8C1C0314, // 026C GETMET R7 R1 K20
- 0x5824004C, // 026D LDCONST R9 K76
- 0x7C1C0400, // 026E CALL R7 2
- 0x78160011, // 026F JMPF R5 #0282
- 0x8C180359, // 0270 GETMET R6 R1 K89
- 0x5820005A, // 0271 LDCONST R8 K90
- 0x7C180400, // 0272 CALL R6 2
- 0x8C18035B, // 0273 GETMET R6 R1 K91
- 0x7C180200, // 0274 CALL R6 1
- 0x8C18035C, // 0275 GETMET R6 R1 K92
- 0x60200018, // 0276 GETGBL R8 G24
- 0x5824005D, // 0277 LDCONST R9 K93
- 0x8C28035E, // 0278 GETMET R10 R1 K94
- 0x5C300A00, // 0279 MOVE R12 R5
- 0x7C280400, // 027A CALL R10 2
- 0x7C200400, // 027B CALL R8 2
- 0x7C180400, // 027C CALL R6 2
- 0x8C18035F, // 027D GETMET R6 R1 K95
- 0x88200360, // 027E GETMBR R8 R1 K96
- 0x7C180400, // 027F CALL R6 2
- 0x8C180361, // 0280 GETMET R6 R1 K97
- 0x7C180200, // 0281 CALL R6 1
- 0xA8040001, // 0282 EXBLK 1 1
- 0x7002001D, // 0283 JMP #02A2
- 0xAC180002, // 0284 CATCH R6 0 2
- 0x7002001A, // 0285 JMP #02A1
- 0xB8221000, // 0286 GETNGBL R8 K8
- 0x8C201109, // 0287 GETMET R8 R8 K9
- 0x60280018, // 0288 GETGBL R10 G24
- 0x582C0062, // 0289 LDCONST R11 K98
- 0x5C300C00, // 028A MOVE R12 R6
- 0x5C340E00, // 028B MOVE R13 R7
- 0x7C280600, // 028C CALL R10 3
- 0x582C0063, // 028D LDCONST R11 K99
- 0x7C200600, // 028E CALL R8 3
- 0x8C200359, // 028F GETMET R8 R1 K89
- 0x5828005A, // 0290 LDCONST R10 K90
- 0x7C200400, // 0291 CALL R8 2
- 0x8C20035B, // 0292 GETMET R8 R1 K91
- 0x7C200200, // 0293 CALL R8 1
- 0x8C20035C, // 0294 GETMET R8 R1 K92
- 0x60280018, // 0295 GETGBL R10 G24
- 0x582C0064, // 0296 LDCONST R11 K100
- 0x5C300C00, // 0297 MOVE R12 R6
- 0x5C340E00, // 0298 MOVE R13 R7
- 0x7C280600, // 0299 CALL R10 3
- 0x7C200400, // 029A CALL R8 2
- 0x8C20035F, // 029B GETMET R8 R1 K95
- 0x88280360, // 029C GETMBR R10 R1 K96
- 0x7C200400, // 029D CALL R8 2
- 0x8C200361, // 029E GETMET R8 R1 K97
- 0x7C200200, // 029F CALL R8 1
- 0x70020000, // 02A0 JMP #02A2
- 0xB0080000, // 02A1 RAISE 2 R0 R0
- 0x80000000, // 02A2 RET 0
+ 0x60200018, // 0191 GETGBL R8 G24
+ 0x5824004B, // 0192 LDCONST R9 K75
+ 0x5C280A00, // 0193 MOVE R10 R5
+ 0x7C200400, // 0194 CALL R8 2
+ 0x5824000A, // 0195 LDCONST R9 K10
+ 0x7C1C0400, // 0196 CALL R7 2
+ 0x7002000C, // 0197 JMP #01A5
+ 0x741A0002, // 0198 JMPT R6 #019C
+ 0x881C010B, // 0199 GETMBR R7 R0 K11
+ 0x881C0F31, // 019A GETMBR R7 R7 K49
+ 0x741E0005, // 019B JMPT R7 #01A2
+ 0x881C010B, // 019C GETMBR R7 R0 K11
+ 0x50200200, // 019D LDBOOL R8 1 0
+ 0x901E6208, // 019E SETMBR R7 K49 R8
+ 0x881C010B, // 019F GETMBR R7 R0 K11
+ 0x8C1C0F12, // 01A0 GETMET R7 R7 K18
+ 0x7C1C0200, // 01A1 CALL R7 1
+ 0x8C1C0313, // 01A2 GETMET R7 R1 K19
+ 0x5824004C, // 01A3 LDCONST R9 K76
+ 0x7C1C0400, // 01A4 CALL R7 2
+ 0x700200B9, // 01A5 JMP #0260
+ 0x8C180305, // 01A6 GETMET R6 R1 K5
+ 0x5820004D, // 01A7 LDCONST R8 K77
+ 0x7C180400, // 01A8 CALL R6 2
+ 0x781A002A, // 01A9 JMPF R6 #01D5
+ 0x8C18030D, // 01AA GETMET R6 R1 K13
+ 0x5820004E, // 01AB LDCONST R8 K78
+ 0x7C180400, // 01AC CALL R6 2
+ 0x8C1C030D, // 01AD GETMET R7 R1 K13
+ 0x5824000D, // 01AE LDCONST R9 K13
+ 0x7C1C0400, // 01AF CALL R7 2
+ 0x8C20030D, // 01B0 GETMET R8 R1 K13
+ 0x58280044, // 01B1 LDCONST R10 K68
+ 0x7C200400, // 01B2 CALL R8 2
+ 0xB8261000, // 01B3 GETNGBL R9 K8
+ 0x60280018, // 01B4 GETGBL R10 G24
+ 0x582C004F, // 01B5 LDCONST R11 K79
+ 0x5C300C00, // 01B6 MOVE R12 R6
+ 0x5C340E00, // 01B7 MOVE R13 R7
+ 0x7C280600, // 01B8 CALL R10 3
+ 0x582C000A, // 01B9 LDCONST R11 K10
+ 0x7C240400, // 01BA CALL R9 2
+ 0x8824010B, // 01BB GETMBR R9 R0 K11
+ 0x88241338, // 01BC GETMBR R9 R9 K56
+ 0x8C241335, // 01BD GETMET R9 R9 K53
+ 0x5C2C0C00, // 01BE MOVE R11 R6
+ 0x7C240400, // 01BF CALL R9 2
+ 0x4C280000, // 01C0 LDNIL R10
+ 0x2028120A, // 01C1 NE R10 R9 R10
+ 0x782A000D, // 01C2 JMPF R10 #01D1
+ 0x60280013, // 01C3 GETGBL R10 G19
+ 0x7C280000, // 01C4 CALL R10 0
+ 0x78220000, // 01C5 JMPF R8 #01C7
+ 0x982A8A08, // 01C6 SETIDX R10 K69 R8
+ 0x8C2C133F, // 01C7 GETMET R11 R9 K63
+ 0x5C341200, // 01C8 MOVE R13 R9
+ 0x5C381400, // 01C9 MOVE R14 R10
+ 0x5C3C0E00, // 01CA MOVE R15 R7
+ 0x7C2C0800, // 01CB CALL R11 4
+ 0x882C010B, // 01CC GETMBR R11 R0 K11
+ 0x8C2C1750, // 01CD GETMET R11 R11 K80
+ 0x5C340C00, // 01CE MOVE R13 R6
+ 0x5C381400, // 01CF MOVE R14 R10
+ 0x7C2C0600, // 01D0 CALL R11 3
+ 0x8C280313, // 01D1 GETMET R10 R1 K19
+ 0x5830004C, // 01D2 LDCONST R12 K76
+ 0x7C280400, // 01D3 CALL R10 2
+ 0x7002008A, // 01D4 JMP #0260
+ 0x8C180305, // 01D5 GETMET R6 R1 K5
+ 0x58200051, // 01D6 LDCONST R8 K81
+ 0x7C180400, // 01D7 CALL R6 2
+ 0x781A005D, // 01D8 JMPF R6 #0237
+ 0x8C18030D, // 01D9 GETMET R6 R1 K13
+ 0x58200052, // 01DA LDCONST R8 K82
+ 0x7C180400, // 01DB CALL R6 2
+ 0x4C1C0000, // 01DC LDNIL R7
+ 0x1C1C0C07, // 01DD EQ R7 R6 R7
+ 0x741E0001, // 01DE JMPT R7 #01E1
+ 0x1C1C0D3A, // 01DF EQ R7 R6 K58
+ 0x781E0000, // 01E0 JMPF R7 #01E2
+ 0xB006A754, // 01E1 RAISE 1 K83 K84
+ 0x581C0029, // 01E2 LDCONST R7 K41
+ 0x60200008, // 01E3 GETGBL R8 G8
+ 0x5C240E00, // 01E4 MOVE R9 R7
+ 0x7C200200, // 01E5 CALL R8 1
+ 0x8C240305, // 01E6 GETMET R9 R1 K5
+ 0x002E9C08, // 01E7 ADD R11 K78 R8
+ 0x7C240400, // 01E8 CALL R9 2
+ 0x78260048, // 01E9 JMPF R9 #0233
+ 0x8C24030D, // 01EA GETMET R9 R1 K13
+ 0x002E9C08, // 01EB ADD R11 K78 R8
+ 0x7C240400, // 01EC CALL R9 2
+ 0x8C28030D, // 01ED GETMET R10 R1 K13
+ 0x00321A08, // 01EE ADD R12 K13 R8
+ 0x7C280400, // 01EF CALL R10 2
+ 0x8C2C030D, // 01F0 GETMET R11 R1 K13
+ 0x00368808, // 01F1 ADD R13 K68 R8
+ 0x7C2C0400, // 01F2 CALL R11 2
+ 0x2030133A, // 01F3 NE R12 R9 K58
+ 0x78320037, // 01F4 JMPF R12 #022D
+ 0x8830010B, // 01F5 GETMBR R12 R0 K11
+ 0x88301938, // 01F6 GETMBR R12 R12 K56
+ 0x8C301935, // 01F7 GETMET R12 R12 K53
+ 0x5C381200, // 01F8 MOVE R14 R9
+ 0x7C300400, // 01F9 CALL R12 2
+ 0x4C340000, // 01FA LDNIL R13
+ 0x2034180D, // 01FB NE R13 R12 R13
+ 0x7836002F, // 01FC JMPF R13 #022D
+ 0x60340013, // 01FD GETGBL R13 G19
+ 0x7C340000, // 01FE CALL R13 0
+ 0x9836A406, // 01FF SETIDX R13 K82 R6
+ 0x98367209, // 0200 SETIDX R13 K57 R9
+ 0x782E0000, // 0201 JMPF R11 #0203
+ 0x98368A0B, // 0202 SETIDX R13 K69 R11
+ 0x8C38193F, // 0203 GETMET R14 R12 K63
+ 0x5C401800, // 0204 MOVE R16 R12
+ 0x5C441A00, // 0205 MOVE R17 R13
+ 0x5C481400, // 0206 MOVE R18 R10
+ 0x7C380800, // 0207 CALL R14 4
+ 0x50380000, // 0208 LDBOOL R14 0 0
+ 0x603C0010, // 0209 GETGBL R15 G16
+ 0x8840010B, // 020A GETMBR R16 R0 K11
+ 0x88402137, // 020B GETMBR R16 R16 K55
+ 0x7C3C0200, // 020C CALL R15 1
+ 0xA802000B, // 020D EXBLK 0 #021A
+ 0x5C401E00, // 020E MOVE R16 R15
+ 0x7C400000, // 020F CALL R16 0
+ 0x8C440155, // 0210 GETMET R17 R0 K85
+ 0x5C4C2000, // 0211 MOVE R19 R16
+ 0x5C501A00, // 0212 MOVE R20 R13
+ 0x7C440600, // 0213 CALL R17 3
+ 0x78460001, // 0214 JMPF R17 #0217
+ 0x50380200, // 0215 LDBOOL R14 1 0
+ 0x70020000, // 0216 JMP #0218
+ 0x7001FFF5, // 0217 JMP #020E
+ 0xA8040001, // 0218 EXBLK 1 1
+ 0x70020002, // 0219 JMP #021D
+ 0x583C0049, // 021A LDCONST R15 K73
+ 0xAC3C0200, // 021B CATCH R15 1 0
+ 0xB0080000, // 021C RAISE 2 R0 R0
+ 0x5C3C1C00, // 021D MOVE R15 R14
+ 0x743E000D, // 021E JMPT R15 #022D
+ 0xB83E1000, // 021F GETNGBL R15 K8
+ 0x60400018, // 0220 GETGBL R16 G24
+ 0x58440056, // 0221 LDCONST R17 K86
+ 0x5C480C00, // 0222 MOVE R18 R6
+ 0x5C4C1200, // 0223 MOVE R19 R9
+ 0x5C501400, // 0224 MOVE R20 R10
+ 0x7C400800, // 0225 CALL R16 4
+ 0x5844000A, // 0226 LDCONST R17 K10
+ 0x7C3C0400, // 0227 CALL R15 2
+ 0x883C010B, // 0228 GETMBR R15 R0 K11
+ 0x8C3C1F50, // 0229 GETMET R15 R15 K80
+ 0x5C441200, // 022A MOVE R17 R9
+ 0x5C481A00, // 022B MOVE R18 R13
+ 0x7C3C0600, // 022C CALL R15 3
+ 0x001C0F2E, // 022D ADD R7 R7 K46
+ 0x60300008, // 022E GETGBL R12 G8
+ 0x5C340E00, // 022F MOVE R13 R7
+ 0x7C300200, // 0230 CALL R12 1
+ 0x5C201800, // 0231 MOVE R8 R12
+ 0x7001FFB2, // 0232 JMP #01E6
+ 0x8C240313, // 0233 GETMET R9 R1 K19
+ 0x582C004C, // 0234 LDCONST R11 K76
+ 0x7C240400, // 0235 CALL R9 2
+ 0x70020028, // 0236 JMP #0260
+ 0x4C180000, // 0237 LDNIL R6
+ 0x601C0010, // 0238 GETGBL R7 G16
+ 0x8C200333, // 0239 GETMET R8 R1 K51
+ 0x7C200200, // 023A CALL R8 1
+ 0x0420112E, // 023B SUB R8 R8 K46
+ 0x40225208, // 023C CONNECT R8 K41 R8
+ 0x7C1C0200, // 023D CALL R7 1
+ 0xA8020013, // 023E EXBLK 0 #0253
+ 0x5C200E00, // 023F MOVE R8 R7
+ 0x7C200000, // 0240 CALL R8 0
+ 0x8C240334, // 0241 GETMET R9 R1 K52
+ 0x5C2C1000, // 0242 MOVE R11 R8
+ 0x7C240400, // 0243 CALL R9 2
+ 0x8C280535, // 0244 GETMET R10 R2 K53
+ 0x5C301200, // 0245 MOVE R12 R9
+ 0x58340057, // 0246 LDCONST R13 K87
+ 0x7C280600, // 0247 CALL R10 3
+ 0x1C281529, // 0248 EQ R10 R10 K41
+ 0x782A0005, // 0249 JMPF R10 #0250
+ 0x60280009, // 024A GETGBL R10 G9
+ 0x402E1536, // 024B CONNECT R11 K10 K54
+ 0x942C120B, // 024C GETIDX R11 R9 R11
+ 0x7C280200, // 024D CALL R10 1
+ 0x5C181400, // 024E MOVE R6 R10
+ 0x70020000, // 024F JMP #0251
+ 0x7001FFED, // 0250 JMP #023F
+ 0xA8040001, // 0251 EXBLK 1 1
+ 0x70020002, // 0252 JMP #0256
+ 0x581C0049, // 0253 LDCONST R7 K73
+ 0xAC1C0200, // 0254 CATCH R7 1 0
+ 0xB0080000, // 0255 RAISE 2 R0 R0
+ 0x4C1C0000, // 0256 LDNIL R7
+ 0x201C0C07, // 0257 NE R7 R6 R7
+ 0x781E0006, // 0258 JMPF R7 #0260
+ 0x881C010B, // 0259 GETMBR R7 R0 K11
+ 0x8C1C0F58, // 025A GETMET R7 R7 K88
+ 0x5C240C00, // 025B MOVE R9 R6
+ 0x7C1C0400, // 025C CALL R7 2
+ 0x8C1C0313, // 025D GETMET R7 R1 K19
+ 0x5824004C, // 025E LDCONST R9 K76
+ 0x7C1C0400, // 025F CALL R7 2
+ 0x78160011, // 0260 JMPF R5 #0273
+ 0x8C180359, // 0261 GETMET R6 R1 K89
+ 0x5820005A, // 0262 LDCONST R8 K90
+ 0x7C180400, // 0263 CALL R6 2
+ 0x8C18035B, // 0264 GETMET R6 R1 K91
+ 0x7C180200, // 0265 CALL R6 1
+ 0x8C18035C, // 0266 GETMET R6 R1 K92
+ 0x60200018, // 0267 GETGBL R8 G24
+ 0x5824005D, // 0268 LDCONST R9 K93
+ 0x8C28035E, // 0269 GETMET R10 R1 K94
+ 0x5C300A00, // 026A MOVE R12 R5
+ 0x7C280400, // 026B CALL R10 2
+ 0x7C200400, // 026C CALL R8 2
+ 0x7C180400, // 026D CALL R6 2
+ 0x8C18035F, // 026E GETMET R6 R1 K95
+ 0x88200360, // 026F GETMBR R8 R1 K96
+ 0x7C180400, // 0270 CALL R6 2
+ 0x8C180361, // 0271 GETMET R6 R1 K97
+ 0x7C180200, // 0272 CALL R6 1
+ 0xA8040001, // 0273 EXBLK 1 1
+ 0x7002001C, // 0274 JMP #0292
+ 0xAC180002, // 0275 CATCH R6 0 2
+ 0x70020019, // 0276 JMP #0291
+ 0xB8221000, // 0277 GETNGBL R8 K8
+ 0x60240018, // 0278 GETGBL R9 G24
+ 0x58280062, // 0279 LDCONST R10 K98
+ 0x5C2C0C00, // 027A MOVE R11 R6
+ 0x5C300E00, // 027B MOVE R12 R7
+ 0x7C240600, // 027C CALL R9 3
+ 0x58280063, // 027D LDCONST R10 K99
+ 0x7C200400, // 027E CALL R8 2
+ 0x8C200359, // 027F GETMET R8 R1 K89
+ 0x5828005A, // 0280 LDCONST R10 K90
+ 0x7C200400, // 0281 CALL R8 2
+ 0x8C20035B, // 0282 GETMET R8 R1 K91
+ 0x7C200200, // 0283 CALL R8 1
+ 0x8C20035C, // 0284 GETMET R8 R1 K92
+ 0x60280018, // 0285 GETGBL R10 G24
+ 0x582C0064, // 0286 LDCONST R11 K100
+ 0x5C300C00, // 0287 MOVE R12 R6
+ 0x5C340E00, // 0288 MOVE R13 R7
+ 0x7C280600, // 0289 CALL R10 3
+ 0x7C200400, // 028A CALL R8 2
+ 0x8C20035F, // 028B GETMET R8 R1 K95
+ 0x88280360, // 028C GETMBR R10 R1 K96
+ 0x7C200400, // 028D CALL R8 2
+ 0x8C200361, // 028E GETMET R8 R1 K97
+ 0x7C200200, // 028F CALL R8 1
+ 0x70020000, // 0290 JMP #0292
+ 0xB0080000, // 0291 RAISE 2 R0 R0
+ 0x80000000, // 0292 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index 28b846893..d180fd809 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -135,7 +135,7 @@ be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -143,22 +143,21 @@ be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
+ ( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_str_weak(get_fabric),
/* K1 */ be_nested_str_weak(get_fabric_id),
/* K2 */ be_nested_str_weak(copy),
/* K3 */ be_nested_str_weak(reverse),
/* K4 */ be_nested_str_weak(tohex),
/* K5 */ be_nested_str_weak(get_admin_vendor_name),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
- /* K9 */ be_const_int(2),
- /* K10 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(stop_basic_commissioning),
}),
be_str_weak(start_commissioning_complete),
&be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
+ ( &(const binstruction[23]) { /* code */
0x8C080300, // 0000 GETMET R2 R1 K0
0x7C080200, // 0001 CALL R2 1
0x8C0C0501, // 0002 GETMET R3 R2 K1
@@ -172,17 +171,16 @@ be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
0x8C100505, // 000A GETMET R4 R2 K5
0x7C100200, // 000B CALL R4 1
0xB8160C00, // 000C GETNGBL R5 K6
- 0x8C140B07, // 000D GETMET R5 R5 K7
- 0x601C0018, // 000E GETGBL R7 G24
- 0x58200008, // 000F LDCONST R8 K8
- 0x5C240600, // 0010 MOVE R9 R3
- 0x5C280800, // 0011 MOVE R10 R4
- 0x7C1C0600, // 0012 CALL R7 3
- 0x58200009, // 0013 LDCONST R8 K9
- 0x7C140600, // 0014 CALL R5 3
- 0x8C14010A, // 0015 GETMET R5 R0 K10
- 0x7C140200, // 0016 CALL R5 1
- 0x80000000, // 0017 RET 0
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0007, // 000E LDCONST R7 K7
+ 0x5C200600, // 000F MOVE R8 R3
+ 0x5C240800, // 0010 MOVE R9 R4
+ 0x7C180600, // 0011 CALL R6 3
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x7C140400, // 0013 CALL R5 2
+ 0x8C140109, // 0014 GETMET R5 R0 K9
+ 0x7C140200, // 0015 CALL R5 1
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -195,7 +193,7 @@ be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -203,29 +201,28 @@ be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
+ ( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(plugins_config),
/* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(log),
- /* K5 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
- /* K6 */ be_const_int(3),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_nested_str_weak(plugins_persist),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(plugins),
- /* K13 */ be_nested_str_weak(get_endpoint),
- /* K14 */ be_const_int(1),
- /* K15 */ be_nested_str_weak(clean_remotes),
- /* K16 */ be_nested_str_weak(save_param),
- /* K17 */ be_nested_str_weak(signal_endpoints_changed),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(plugins_persist),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(get_endpoint),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(clean_remotes),
+ /* K15 */ be_nested_str_weak(save_param),
+ /* K16 */ be_nested_str_weak(signal_endpoints_changed),
}),
be_str_weak(bridge_remove_endpoint),
&be_const_str_solidified,
- ( &(const binstruction[58]) { /* code */
+ ( &(const binstruction[56]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x600C0008, // 0001 GETGBL R3 G8
0x5C100200, // 0002 MOVE R4 R1
@@ -236,54 +233,52 @@ be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
0x8C180D02, // 0007 GETMET R6 R6 K2
0x5C200600, // 0008 MOVE R8 R3
0x7C180400, // 0009 CALL R6 2
- 0x741A0005, // 000A JMPT R6 #0011
+ 0x741A0004, // 000A JMPT R6 #0010
0xB81A0600, // 000B GETNGBL R6 K3
- 0x8C180D04, // 000C GETMET R6 R6 K4
- 0x00220A03, // 000D ADD R8 K5 R3
- 0x58240006, // 000E LDCONST R9 K6
- 0x7C180600, // 000F CALL R6 3
- 0x80000C00, // 0010 RET 0
- 0xB81A0600, // 0011 GETNGBL R6 K3
- 0x8C180D04, // 0012 GETMET R6 R6 K4
- 0x60200018, // 0013 GETGBL R8 G24
- 0x58240007, // 0014 LDCONST R9 K7
- 0x5C280200, // 0015 MOVE R10 R1
- 0x7C200400, // 0016 CALL R8 2
- 0x58240008, // 0017 LDCONST R9 K8
- 0x7C180600, // 0018 CALL R6 3
- 0x88180101, // 0019 GETMBR R6 R0 K1
- 0x8C180D09, // 001A GETMET R6 R6 K9
- 0x5C200600, // 001B MOVE R8 R3
- 0x7C180400, // 001C CALL R6 2
- 0x50180200, // 001D LDBOOL R6 1 0
- 0x90021406, // 001E SETMBR R0 K10 R6
- 0x5818000B, // 001F LDCONST R6 K11
- 0x601C000C, // 0020 GETGBL R7 G12
- 0x8820010C, // 0021 GETMBR R8 R0 K12
- 0x7C1C0200, // 0022 CALL R7 1
- 0x141C0C07, // 0023 LT R7 R6 R7
- 0x781E000D, // 0024 JMPF R7 #0033
- 0x881C010C, // 0025 GETMBR R7 R0 K12
- 0x941C0E06, // 0026 GETIDX R7 R7 R6
- 0x8C1C0F0D, // 0027 GETMET R7 R7 K13
- 0x7C1C0200, // 0028 CALL R7 1
- 0x1C1C0207, // 0029 EQ R7 R1 R7
- 0x781E0005, // 002A JMPF R7 #0031
- 0x881C010C, // 002B GETMBR R7 R0 K12
- 0x8C1C0F09, // 002C GETMET R7 R7 K9
- 0x5C240C00, // 002D MOVE R9 R6
- 0x7C1C0400, // 002E CALL R7 2
- 0x70020002, // 002F JMP #0033
- 0x70020000, // 0030 JMP #0032
- 0x00180D0E, // 0031 ADD R6 R6 K14
- 0x7001FFEC, // 0032 JMP #0020
+ 0x001E0803, // 000C ADD R7 K4 R3
+ 0x58200005, // 000D LDCONST R8 K5
+ 0x7C180400, // 000E CALL R6 2
+ 0x80000C00, // 000F RET 0
+ 0xB81A0600, // 0010 GETNGBL R6 K3
+ 0x601C0018, // 0011 GETGBL R7 G24
+ 0x58200006, // 0012 LDCONST R8 K6
+ 0x5C240200, // 0013 MOVE R9 R1
+ 0x7C1C0400, // 0014 CALL R7 2
+ 0x58200007, // 0015 LDCONST R8 K7
+ 0x7C180400, // 0016 CALL R6 2
+ 0x88180101, // 0017 GETMBR R6 R0 K1
+ 0x8C180D08, // 0018 GETMET R6 R6 K8
+ 0x5C200600, // 0019 MOVE R8 R3
+ 0x7C180400, // 001A CALL R6 2
+ 0x50180200, // 001B LDBOOL R6 1 0
+ 0x90021206, // 001C SETMBR R0 K9 R6
+ 0x5818000A, // 001D LDCONST R6 K10
+ 0x601C000C, // 001E GETGBL R7 G12
+ 0x8820010B, // 001F GETMBR R8 R0 K11
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x141C0C07, // 0021 LT R7 R6 R7
+ 0x781E000D, // 0022 JMPF R7 #0031
+ 0x881C010B, // 0023 GETMBR R7 R0 K11
+ 0x941C0E06, // 0024 GETIDX R7 R7 R6
+ 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x1C1C0207, // 0027 EQ R7 R1 R7
+ 0x781E0005, // 0028 JMPF R7 #002F
+ 0x881C010B, // 0029 GETMBR R7 R0 K11
+ 0x8C1C0F08, // 002A GETMET R7 R7 K8
+ 0x5C240C00, // 002B MOVE R9 R6
+ 0x7C1C0400, // 002C CALL R7 2
+ 0x70020002, // 002D JMP #0031
+ 0x70020000, // 002E JMP #0030
+ 0x00180D0D, // 002F ADD R6 R6 K13
+ 0x7001FFEC, // 0030 JMP #001E
+ 0x8C1C010E, // 0031 GETMET R7 R0 K14
+ 0x7C1C0200, // 0032 CALL R7 1
0x8C1C010F, // 0033 GETMET R7 R0 K15
0x7C1C0200, // 0034 CALL R7 1
0x8C1C0110, // 0035 GETMET R7 R0 K16
0x7C1C0200, // 0036 CALL R7 1
- 0x8C1C0111, // 0037 GETMET R7 R0 K17
- 0x7C1C0200, // 0038 CALL R7 1
- 0x80000000, // 0039 RET 0
+ 0x80000000, // 0037 RET 0
})
)
);
@@ -296,7 +291,7 @@ be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -304,113 +299,107 @@ be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
+ ( &(const bvalue[19]) { /* constants */
/* K0 */ be_nested_str_weak(mdns),
/* K1 */ be_nested_str_weak(mdns_pase_eth),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
- /* K5 */ be_nested_str_weak(_matterc),
- /* K6 */ be_nested_str_weak(_udp),
- /* K7 */ be_nested_str_weak(commissioning_instance_eth),
- /* K8 */ be_nested_str_weak(hostname_eth),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(remove_service),
- /* K13 */ be_nested_str_weak(mdns_pase_wifi),
- /* K14 */ be_nested_str_weak(commissioning_instance_wifi),
- /* K15 */ be_nested_str_weak(hostname_wifi),
- /* K16 */ be_nested_str_weak(wifi),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K18 */ be_nested_str_weak(_X7C),
- /* K19 */ be_const_int(2),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
+ /* K4 */ be_nested_str_weak(_matterc),
+ /* K5 */ be_nested_str_weak(_udp),
+ /* K6 */ be_nested_str_weak(commissioning_instance_eth),
+ /* K7 */ be_nested_str_weak(hostname_eth),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K10 */ be_nested_str_weak(eth),
+ /* K11 */ be_nested_str_weak(remove_service),
+ /* K12 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
+ /* K14 */ be_nested_str_weak(hostname_wifi),
+ /* K15 */ be_nested_str_weak(wifi),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K17 */ be_nested_str_weak(_X7C),
+ /* K18 */ be_const_int(2),
}),
be_str_weak(mdns_remove_PASE),
&be_const_str_solidified,
- ( &(const binstruction[82]) { /* code */
+ ( &(const binstruction[77]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
- 0xA802003D, // 0001 EXBLK 0 #0040
+ 0xA8020039, // 0001 EXBLK 0 #003C
0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A001B, // 0003 JMPF R2 #0020
+ 0x780A0019, // 0003 JMPF R2 #001E
0xB80A0400, // 0004 GETNGBL R2 K2
- 0x8C080503, // 0005 GETMET R2 R2 K3
- 0x60100018, // 0006 GETGBL R4 G24
+ 0x600C0018, // 0005 GETGBL R3 G24
+ 0x58100003, // 0006 LDCONST R4 K3
0x58140004, // 0007 LDCONST R5 K4
0x58180005, // 0008 LDCONST R6 K5
- 0x581C0006, // 0009 LDCONST R7 K6
+ 0x881C0106, // 0009 GETMBR R7 R0 K6
0x88200107, // 000A GETMBR R8 R0 K7
- 0x88240108, // 000B GETMBR R9 R0 K8
- 0x7C100A00, // 000C CALL R4 5
- 0x58140009, // 000D LDCONST R5 K9
- 0x7C080600, // 000E CALL R2 3
- 0xB80A0400, // 000F GETNGBL R2 K2
- 0x8C080503, // 0010 GETMET R2 R2 K3
- 0x60100018, // 0011 GETGBL R4 G24
- 0x5814000A, // 0012 LDCONST R5 K10
- 0x5818000B, // 0013 LDCONST R6 K11
- 0x881C0107, // 0014 GETMBR R7 R0 K7
- 0x7C100600, // 0015 CALL R4 3
- 0x58140009, // 0016 LDCONST R5 K9
- 0x7C080600, // 0017 CALL R2 3
- 0x50080000, // 0018 LDBOOL R2 0 0
- 0x90020202, // 0019 SETMBR R0 K1 R2
- 0x8C08030C, // 001A GETMET R2 R1 K12
- 0x58100005, // 001B LDCONST R4 K5
- 0x58140006, // 001C LDCONST R5 K6
- 0x88180107, // 001D GETMBR R6 R0 K7
- 0x881C0108, // 001E GETMBR R7 R0 K8
- 0x7C080A00, // 001F CALL R2 5
- 0x8808010D, // 0020 GETMBR R2 R0 K13
- 0x780A001B, // 0021 JMPF R2 #003E
- 0xB80A0400, // 0022 GETNGBL R2 K2
- 0x8C080503, // 0023 GETMET R2 R2 K3
- 0x60100018, // 0024 GETGBL R4 G24
- 0x58140004, // 0025 LDCONST R5 K4
- 0x58180005, // 0026 LDCONST R6 K5
- 0x581C0006, // 0027 LDCONST R7 K6
- 0x8820010E, // 0028 GETMBR R8 R0 K14
- 0x8824010F, // 0029 GETMBR R9 R0 K15
- 0x7C100A00, // 002A CALL R4 5
- 0x58140009, // 002B LDCONST R5 K9
- 0x7C080600, // 002C CALL R2 3
- 0xB80A0400, // 002D GETNGBL R2 K2
- 0x8C080503, // 002E GETMET R2 R2 K3
- 0x60100018, // 002F GETGBL R4 G24
- 0x5814000A, // 0030 LDCONST R5 K10
- 0x58180010, // 0031 LDCONST R6 K16
- 0x881C010E, // 0032 GETMBR R7 R0 K14
- 0x7C100600, // 0033 CALL R4 3
- 0x58140009, // 0034 LDCONST R5 K9
- 0x7C080600, // 0035 CALL R2 3
- 0x50080000, // 0036 LDBOOL R2 0 0
- 0x90021A02, // 0037 SETMBR R0 K13 R2
- 0x8C08030C, // 0038 GETMET R2 R1 K12
- 0x58100005, // 0039 LDCONST R4 K5
- 0x58140006, // 003A LDCONST R5 K6
- 0x8818010E, // 003B GETMBR R6 R0 K14
- 0x881C010F, // 003C GETMBR R7 R0 K15
- 0x7C080A00, // 003D CALL R2 5
- 0xA8040001, // 003E EXBLK 1 1
- 0x70020010, // 003F JMP #0051
- 0xAC080002, // 0040 CATCH R2 0 2
- 0x7002000D, // 0041 JMP #0050
- 0xB8120400, // 0042 GETNGBL R4 K2
- 0x8C100903, // 0043 GETMET R4 R4 K3
+ 0x7C0C0A00, // 000B CALL R3 5
+ 0x58100008, // 000C LDCONST R4 K8
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0400, // 000E GETNGBL R2 K2
+ 0x600C0018, // 000F GETGBL R3 G24
+ 0x58100009, // 0010 LDCONST R4 K9
+ 0x5814000A, // 0011 LDCONST R5 K10
+ 0x88180106, // 0012 GETMBR R6 R0 K6
+ 0x7C0C0600, // 0013 CALL R3 3
+ 0x58100008, // 0014 LDCONST R4 K8
+ 0x7C080400, // 0015 CALL R2 2
+ 0x50080000, // 0016 LDBOOL R2 0 0
+ 0x90020202, // 0017 SETMBR R0 K1 R2
+ 0x8C08030B, // 0018 GETMET R2 R1 K11
+ 0x58100004, // 0019 LDCONST R4 K4
+ 0x58140005, // 001A LDCONST R5 K5
+ 0x88180106, // 001B GETMBR R6 R0 K6
+ 0x881C0107, // 001C GETMBR R7 R0 K7
+ 0x7C080A00, // 001D CALL R2 5
+ 0x8808010C, // 001E GETMBR R2 R0 K12
+ 0x780A0019, // 001F JMPF R2 #003A
+ 0xB80A0400, // 0020 GETNGBL R2 K2
+ 0x600C0018, // 0021 GETGBL R3 G24
+ 0x58100003, // 0022 LDCONST R4 K3
+ 0x58140004, // 0023 LDCONST R5 K4
+ 0x58180005, // 0024 LDCONST R6 K5
+ 0x881C010D, // 0025 GETMBR R7 R0 K13
+ 0x8820010E, // 0026 GETMBR R8 R0 K14
+ 0x7C0C0A00, // 0027 CALL R3 5
+ 0x58100008, // 0028 LDCONST R4 K8
+ 0x7C080400, // 0029 CALL R2 2
+ 0xB80A0400, // 002A GETNGBL R2 K2
+ 0x600C0018, // 002B GETGBL R3 G24
+ 0x58100009, // 002C LDCONST R4 K9
+ 0x5814000F, // 002D LDCONST R5 K15
+ 0x8818010D, // 002E GETMBR R6 R0 K13
+ 0x7C0C0600, // 002F CALL R3 3
+ 0x58100008, // 0030 LDCONST R4 K8
+ 0x7C080400, // 0031 CALL R2 2
+ 0x50080000, // 0032 LDBOOL R2 0 0
+ 0x90021802, // 0033 SETMBR R0 K12 R2
+ 0x8C08030B, // 0034 GETMET R2 R1 K11
+ 0x58100004, // 0035 LDCONST R4 K4
+ 0x58140005, // 0036 LDCONST R5 K5
+ 0x8818010D, // 0037 GETMBR R6 R0 K13
+ 0x881C010E, // 0038 GETMBR R7 R0 K14
+ 0x7C080A00, // 0039 CALL R2 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC080002, // 003C CATCH R2 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8120400, // 003E GETNGBL R4 K2
+ 0x60140008, // 003F GETGBL R5 G8
+ 0x5C180400, // 0040 MOVE R6 R2
+ 0x7C140200, // 0041 CALL R5 1
+ 0x00162005, // 0042 ADD R5 K16 R5
+ 0x00140B11, // 0043 ADD R5 R5 K17
0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0400, // 0045 MOVE R7 R2
+ 0x5C1C0600, // 0045 MOVE R7 R3
0x7C180200, // 0046 CALL R6 1
- 0x001A2206, // 0047 ADD R6 K17 R6
- 0x00180D12, // 0048 ADD R6 R6 K18
- 0x601C0008, // 0049 GETGBL R7 G8
- 0x5C200600, // 004A MOVE R8 R3
- 0x7C1C0200, // 004B CALL R7 1
- 0x00180C07, // 004C ADD R6 R6 R7
- 0x581C0013, // 004D LDCONST R7 K19
- 0x7C100600, // 004E CALL R4 3
- 0x70020000, // 004F JMP #0051
- 0xB0080000, // 0050 RAISE 2 R0 R0
- 0x80000000, // 0051 RET 0
+ 0x00140A06, // 0047 ADD R5 R5 R6
+ 0x58180012, // 0048 LDCONST R6 K18
+ 0x7C100400, // 0049 CALL R4 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
})
)
);
@@ -462,13 +451,13 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
}),
be_str_weak(_mdns_announce_hostname),
&be_const_str_solidified,
- ( &(const binstruction[148]) { /* code */
+ ( &(const binstruction[144]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
0x8C100502, // 0002 GETMET R4 R2 K2
0x7C100200, // 0003 CALL R4 1
- 0xA802007A, // 0004 EXBLK 0 #0080
- 0x78060034, // 0005 JMPF R1 #003B
+ 0xA8020077, // 0004 EXBLK 0 #007D
+ 0x78060033, // 0005 JMPF R1 #003A
0xB8120600, // 0006 GETNGBL R4 K3
0x8C100904, // 0007 GETMET R4 R4 K4
0x7C100200, // 0008 CALL R4 1
@@ -501,116 +490,112 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
0x5834000A, // 0023 LDCONST R13 K10
0x7C280600, // 0024 CALL R10 3
0x7C140A00, // 0025 CALL R5 5
- 0x70020012, // 0026 JMP #003A
- 0xB8160600, // 0027 GETNGBL R5 K3
- 0x8C140B11, // 0028 GETMET R5 R5 K17
- 0x601C0018, // 0029 GETGBL R7 G24
- 0x58200012, // 002A LDCONST R8 K18
- 0x88240105, // 002B GETMBR R9 R0 K5
- 0x8C280907, // 002C GETMET R10 R4 K7
- 0x5830000F, // 002D LDCONST R12 K15
- 0x5834000A, // 002E LDCONST R13 K10
- 0x7C280600, // 002F CALL R10 3
- 0x7C1C0600, // 0030 CALL R7 3
- 0x58200013, // 0031 LDCONST R8 K19
- 0x7C140600, // 0032 CALL R5 3
- 0x8C14050E, // 0033 GETMET R5 R2 K14
- 0x881C0105, // 0034 GETMBR R7 R0 K5
- 0x8C200907, // 0035 GETMET R8 R4 K7
- 0x5828000F, // 0036 LDCONST R10 K15
- 0x582C000A, // 0037 LDCONST R11 K10
- 0x7C200600, // 0038 CALL R8 3
- 0x7C140600, // 0039 CALL R5 3
- 0x70020033, // 003A JMP #006F
- 0xB8120600, // 003B GETNGBL R4 K3
- 0x8C100914, // 003C GETMET R4 R4 K20
- 0x7C100200, // 003D CALL R4 1
- 0x8C140706, // 003E GETMET R5 R3 K6
- 0x8C1C0907, // 003F GETMET R7 R4 K7
- 0x58240008, // 0040 LDCONST R9 K8
- 0x7C1C0400, // 0041 CALL R7 2
- 0x58200009, // 0042 LDCONST R8 K9
- 0x5824000A, // 0043 LDCONST R9 K10
- 0x7C140800, // 0044 CALL R5 4
- 0x90022A05, // 0045 SETMBR R0 K21 R5
- 0x8814010B, // 0046 GETMBR R5 R0 K11
- 0x78160003, // 0047 JMPF R5 #004C
- 0x8C14090C, // 0048 GETMET R5 R4 K12
- 0x581C000D, // 0049 LDCONST R7 K13
- 0x7C140400, // 004A CALL R5 2
- 0x7416000F, // 004B JMPT R5 #005C
- 0x8C14050E, // 004C GETMET R5 R2 K14
- 0x881C0115, // 004D GETMBR R7 R0 K21
- 0x8C200907, // 004E GETMET R8 R4 K7
- 0x5828000D, // 004F LDCONST R10 K13
- 0x582C000A, // 0050 LDCONST R11 K10
- 0x7C200600, // 0051 CALL R8 3
- 0x8C240907, // 0052 GETMET R9 R4 K7
- 0x582C000F, // 0053 LDCONST R11 K15
- 0x5830000A, // 0054 LDCONST R12 K10
- 0x7C240600, // 0055 CALL R9 3
- 0x8C280907, // 0056 GETMET R10 R4 K7
- 0x58300010, // 0057 LDCONST R12 K16
- 0x5834000A, // 0058 LDCONST R13 K10
- 0x7C280600, // 0059 CALL R10 3
- 0x7C140A00, // 005A CALL R5 5
- 0x70020012, // 005B JMP #006F
- 0xB8160600, // 005C GETNGBL R5 K3
- 0x8C140B11, // 005D GETMET R5 R5 K17
- 0x601C0018, // 005E GETGBL R7 G24
- 0x58200012, // 005F LDCONST R8 K18
- 0x88240115, // 0060 GETMBR R9 R0 K21
- 0x8C280907, // 0061 GETMET R10 R4 K7
- 0x5830000F, // 0062 LDCONST R12 K15
- 0x5834000A, // 0063 LDCONST R13 K10
- 0x7C280600, // 0064 CALL R10 3
- 0x7C1C0600, // 0065 CALL R7 3
- 0x58200013, // 0066 LDCONST R8 K19
- 0x7C140600, // 0067 CALL R5 3
- 0x8C14050E, // 0068 GETMET R5 R2 K14
- 0x881C0115, // 0069 GETMBR R7 R0 K21
- 0x8C200907, // 006A GETMET R8 R4 K7
- 0x5828000F, // 006B LDCONST R10 K15
- 0x582C000A, // 006C LDCONST R11 K10
- 0x7C200600, // 006D CALL R8 3
- 0x7C140600, // 006E CALL R5 3
- 0xB8120600, // 006F GETNGBL R4 K3
- 0x8C100911, // 0070 GETMET R4 R4 K17
- 0x60180018, // 0071 GETGBL R6 G24
- 0x581C0016, // 0072 LDCONST R7 K22
- 0x78060001, // 0073 JMPF R1 #0076
- 0x58200004, // 0074 LDCONST R8 K4
- 0x70020000, // 0075 JMP #0077
- 0x58200014, // 0076 LDCONST R8 K20
- 0x78060001, // 0077 JMPF R1 #007A
- 0x88240105, // 0078 GETMBR R9 R0 K5
- 0x70020000, // 0079 JMP #007B
- 0x88240115, // 007A GETMBR R9 R0 K21
- 0x7C180600, // 007B CALL R6 3
- 0x581C0013, // 007C LDCONST R7 K19
- 0x7C100600, // 007D CALL R4 3
- 0xA8040001, // 007E EXBLK 1 1
- 0x70020010, // 007F JMP #0091
- 0xAC100002, // 0080 CATCH R4 0 2
- 0x7002000D, // 0081 JMP #0090
- 0xB81A0600, // 0082 GETNGBL R6 K3
- 0x8C180D11, // 0083 GETMET R6 R6 K17
- 0x60200008, // 0084 GETGBL R8 G8
- 0x5C240800, // 0085 MOVE R9 R4
- 0x7C200200, // 0086 CALL R8 1
- 0x00222E08, // 0087 ADD R8 K23 R8
- 0x00201118, // 0088 ADD R8 R8 K24
- 0x60240008, // 0089 GETGBL R9 G8
- 0x5C280A00, // 008A MOVE R10 R5
- 0x7C240200, // 008B CALL R9 1
- 0x00201009, // 008C ADD R8 R8 R9
- 0x58240019, // 008D LDCONST R9 K25
- 0x7C180600, // 008E CALL R6 3
- 0x70020000, // 008F JMP #0091
- 0xB0080000, // 0090 RAISE 2 R0 R0
- 0x8C10011A, // 0091 GETMET R4 R0 K26
- 0x7C100200, // 0092 CALL R4 1
- 0x80000000, // 0093 RET 0
+ 0x70020011, // 0026 JMP #0039
+ 0xB8162200, // 0027 GETNGBL R5 K17
+ 0x60180018, // 0028 GETGBL R6 G24
+ 0x581C0012, // 0029 LDCONST R7 K18
+ 0x88200105, // 002A GETMBR R8 R0 K5
+ 0x8C240907, // 002B GETMET R9 R4 K7
+ 0x582C000F, // 002C LDCONST R11 K15
+ 0x5830000A, // 002D LDCONST R12 K10
+ 0x7C240600, // 002E CALL R9 3
+ 0x7C180600, // 002F CALL R6 3
+ 0x581C0013, // 0030 LDCONST R7 K19
+ 0x7C140400, // 0031 CALL R5 2
+ 0x8C14050E, // 0032 GETMET R5 R2 K14
+ 0x881C0105, // 0033 GETMBR R7 R0 K5
+ 0x8C200907, // 0034 GETMET R8 R4 K7
+ 0x5828000F, // 0035 LDCONST R10 K15
+ 0x582C000A, // 0036 LDCONST R11 K10
+ 0x7C200600, // 0037 CALL R8 3
+ 0x7C140600, // 0038 CALL R5 3
+ 0x70020032, // 0039 JMP #006D
+ 0xB8120600, // 003A GETNGBL R4 K3
+ 0x8C100914, // 003B GETMET R4 R4 K20
+ 0x7C100200, // 003C CALL R4 1
+ 0x8C140706, // 003D GETMET R5 R3 K6
+ 0x8C1C0907, // 003E GETMET R7 R4 K7
+ 0x58240008, // 003F LDCONST R9 K8
+ 0x7C1C0400, // 0040 CALL R7 2
+ 0x58200009, // 0041 LDCONST R8 K9
+ 0x5824000A, // 0042 LDCONST R9 K10
+ 0x7C140800, // 0043 CALL R5 4
+ 0x90022A05, // 0044 SETMBR R0 K21 R5
+ 0x8814010B, // 0045 GETMBR R5 R0 K11
+ 0x78160003, // 0046 JMPF R5 #004B
+ 0x8C14090C, // 0047 GETMET R5 R4 K12
+ 0x581C000D, // 0048 LDCONST R7 K13
+ 0x7C140400, // 0049 CALL R5 2
+ 0x7416000F, // 004A JMPT R5 #005B
+ 0x8C14050E, // 004B GETMET R5 R2 K14
+ 0x881C0115, // 004C GETMBR R7 R0 K21
+ 0x8C200907, // 004D GETMET R8 R4 K7
+ 0x5828000D, // 004E LDCONST R10 K13
+ 0x582C000A, // 004F LDCONST R11 K10
+ 0x7C200600, // 0050 CALL R8 3
+ 0x8C240907, // 0051 GETMET R9 R4 K7
+ 0x582C000F, // 0052 LDCONST R11 K15
+ 0x5830000A, // 0053 LDCONST R12 K10
+ 0x7C240600, // 0054 CALL R9 3
+ 0x8C280907, // 0055 GETMET R10 R4 K7
+ 0x58300010, // 0056 LDCONST R12 K16
+ 0x5834000A, // 0057 LDCONST R13 K10
+ 0x7C280600, // 0058 CALL R10 3
+ 0x7C140A00, // 0059 CALL R5 5
+ 0x70020011, // 005A JMP #006D
+ 0xB8162200, // 005B GETNGBL R5 K17
+ 0x60180018, // 005C GETGBL R6 G24
+ 0x581C0012, // 005D LDCONST R7 K18
+ 0x88200115, // 005E GETMBR R8 R0 K21
+ 0x8C240907, // 005F GETMET R9 R4 K7
+ 0x582C000F, // 0060 LDCONST R11 K15
+ 0x5830000A, // 0061 LDCONST R12 K10
+ 0x7C240600, // 0062 CALL R9 3
+ 0x7C180600, // 0063 CALL R6 3
+ 0x581C0013, // 0064 LDCONST R7 K19
+ 0x7C140400, // 0065 CALL R5 2
+ 0x8C14050E, // 0066 GETMET R5 R2 K14
+ 0x881C0115, // 0067 GETMBR R7 R0 K21
+ 0x8C200907, // 0068 GETMET R8 R4 K7
+ 0x5828000F, // 0069 LDCONST R10 K15
+ 0x582C000A, // 006A LDCONST R11 K10
+ 0x7C200600, // 006B CALL R8 3
+ 0x7C140600, // 006C CALL R5 3
+ 0xB8122200, // 006D GETNGBL R4 K17
+ 0x60140018, // 006E GETGBL R5 G24
+ 0x58180016, // 006F LDCONST R6 K22
+ 0x78060001, // 0070 JMPF R1 #0073
+ 0x581C0004, // 0071 LDCONST R7 K4
+ 0x70020000, // 0072 JMP #0074
+ 0x581C0014, // 0073 LDCONST R7 K20
+ 0x78060001, // 0074 JMPF R1 #0077
+ 0x88200105, // 0075 GETMBR R8 R0 K5
+ 0x70020000, // 0076 JMP #0078
+ 0x88200115, // 0077 GETMBR R8 R0 K21
+ 0x7C140600, // 0078 CALL R5 3
+ 0x58180013, // 0079 LDCONST R6 K19
+ 0x7C100400, // 007A CALL R4 2
+ 0xA8040001, // 007B EXBLK 1 1
+ 0x7002000F, // 007C JMP #008D
+ 0xAC100002, // 007D CATCH R4 0 2
+ 0x7002000C, // 007E JMP #008C
+ 0xB81A2200, // 007F GETNGBL R6 K17
+ 0x601C0008, // 0080 GETGBL R7 G8
+ 0x5C200800, // 0081 MOVE R8 R4
+ 0x7C1C0200, // 0082 CALL R7 1
+ 0x001E2E07, // 0083 ADD R7 K23 R7
+ 0x001C0F18, // 0084 ADD R7 R7 K24
+ 0x60200008, // 0085 GETGBL R8 G8
+ 0x5C240A00, // 0086 MOVE R9 R5
+ 0x7C200200, // 0087 CALL R8 1
+ 0x001C0E08, // 0088 ADD R7 R7 R8
+ 0x58200019, // 0089 LDCONST R8 K25
+ 0x7C180400, // 008A CALL R6 2
+ 0x70020000, // 008B JMP #008D
+ 0xB0080000, // 008C RAISE 2 R0 R0
+ 0x8C10011A, // 008D GETMET R4 R0 K26
+ 0x7C100200, // 008E CALL R4 1
+ 0x80000000, // 008F RET 0
})
)
);
@@ -847,7 +832,7 @@ be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
be_nested_proto(
- 17, /* nstack */
+ 16, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -855,102 +840,99 @@ be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
+ ( &(const bvalue[20]) { /* constants */
/* K0 */ be_nested_str_weak(plugins_classes),
/* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K5 */ be_nested_str_weak(_X27_X20skipping),
- /* K6 */ be_const_int(3),
- /* K7 */ be_nested_str_weak(next_ep),
- /* K8 */ be_nested_str_weak(plugins),
- /* K9 */ be_nested_str_weak(push),
- /* K10 */ be_nested_str_weak(type),
- /* K11 */ be_nested_str_weak(keys),
- /* K12 */ be_nested_str_weak(stop_iteration),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
- /* K14 */ be_nested_str_weak(conf_to_log),
- /* K15 */ be_const_int(2),
- /* K16 */ be_nested_str_weak(plugins_config),
- /* K17 */ be_nested_str_weak(plugins_persist),
- /* K18 */ be_const_int(1),
- /* K19 */ be_nested_str_weak(save_param),
- /* K20 */ be_nested_str_weak(signal_endpoints_changed),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K4 */ be_nested_str_weak(_X27_X20skipping),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(next_ep),
+ /* K7 */ be_nested_str_weak(plugins),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(type),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
+ /* K13 */ be_nested_str_weak(conf_to_log),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_persist),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(signal_endpoints_changed),
}),
be_str_weak(bridge_add_endpoint),
&be_const_str_solidified,
- ( &(const binstruction[70]) { /* code */
+ ( &(const binstruction[68]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x5C140200, // 0002 MOVE R5 R1
0x7C0C0400, // 0003 CALL R3 2
0x4C100000, // 0004 LDNIL R4
0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120009, // 0006 JMPF R4 #0011
+ 0x78120008, // 0006 JMPF R4 #0010
0xB8120400, // 0007 GETNGBL R4 K2
- 0x8C100903, // 0008 GETMET R4 R4 K3
- 0x60180008, // 0009 GETGBL R6 G8
- 0x5C1C0200, // 000A MOVE R7 R1
- 0x7C180200, // 000B CALL R6 1
- 0x001A0806, // 000C ADD R6 K4 R6
- 0x00180D05, // 000D ADD R6 R6 K5
- 0x581C0006, // 000E LDCONST R7 K6
- 0x7C100600, // 000F CALL R4 3
- 0x80000800, // 0010 RET 0
- 0x88100107, // 0011 GETMBR R4 R0 K7
- 0x60140008, // 0012 GETGBL R5 G8
- 0x5C180800, // 0013 MOVE R6 R4
- 0x7C140200, // 0014 CALL R5 1
- 0x5C180600, // 0015 MOVE R6 R3
- 0x5C1C0000, // 0016 MOVE R7 R0
- 0x5C200800, // 0017 MOVE R8 R4
- 0x5C240400, // 0018 MOVE R9 R2
- 0x7C180600, // 0019 CALL R6 3
- 0x881C0108, // 001A GETMBR R7 R0 K8
- 0x8C1C0F09, // 001B GETMET R7 R7 K9
- 0x5C240C00, // 001C MOVE R9 R6
- 0x7C1C0400, // 001D CALL R7 2
- 0x601C0013, // 001E GETGBL R7 G19
- 0x7C1C0000, // 001F CALL R7 0
- 0x981E1401, // 0020 SETIDX R7 K10 R1
- 0x60200010, // 0021 GETGBL R8 G16
- 0x8C24050B, // 0022 GETMET R9 R2 K11
- 0x7C240200, // 0023 CALL R9 1
- 0x7C200200, // 0024 CALL R8 1
- 0xA8020004, // 0025 EXBLK 0 #002B
- 0x5C241000, // 0026 MOVE R9 R8
- 0x7C240000, // 0027 CALL R9 0
- 0x94280409, // 0028 GETIDX R10 R2 R9
- 0x981C120A, // 0029 SETIDX R7 R9 R10
- 0x7001FFFA, // 002A JMP #0026
- 0x5820000C, // 002B LDCONST R8 K12
- 0xAC200200, // 002C CATCH R8 1 0
- 0xB0080000, // 002D RAISE 2 R0 R0
- 0xB8220400, // 002E GETNGBL R8 K2
- 0x8C201103, // 002F GETMET R8 R8 K3
- 0x60280018, // 0030 GETGBL R10 G24
- 0x582C000D, // 0031 LDCONST R11 K13
- 0x5C300800, // 0032 MOVE R12 R4
- 0x5C340200, // 0033 MOVE R13 R1
- 0x8C38010E, // 0034 GETMET R14 R0 K14
- 0x5C400400, // 0035 MOVE R16 R2
- 0x7C380400, // 0036 CALL R14 2
- 0x7C280800, // 0037 CALL R10 4
- 0x582C000F, // 0038 LDCONST R11 K15
- 0x7C200600, // 0039 CALL R8 3
- 0x88200110, // 003A GETMBR R8 R0 K16
- 0x98200A07, // 003B SETIDX R8 R5 R7
- 0x50200200, // 003C LDBOOL R8 1 0
- 0x90022208, // 003D SETMBR R0 K17 R8
- 0x88200107, // 003E GETMBR R8 R0 K7
- 0x00201112, // 003F ADD R8 R8 K18
- 0x90020E08, // 0040 SETMBR R0 K7 R8
+ 0x60140008, // 0008 GETGBL R5 G8
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C140200, // 000A CALL R5 1
+ 0x00160605, // 000B ADD R5 K3 R5
+ 0x00140B04, // 000C ADD R5 R5 K4
+ 0x58180005, // 000D LDCONST R6 K5
+ 0x7C100400, // 000E CALL R4 2
+ 0x80000800, // 000F RET 0
+ 0x88100106, // 0010 GETMBR R4 R0 K6
+ 0x60140008, // 0011 GETGBL R5 G8
+ 0x5C180800, // 0012 MOVE R6 R4
+ 0x7C140200, // 0013 CALL R5 1
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x5C1C0000, // 0015 MOVE R7 R0
+ 0x5C200800, // 0016 MOVE R8 R4
+ 0x5C240400, // 0017 MOVE R9 R2
+ 0x7C180600, // 0018 CALL R6 3
+ 0x881C0107, // 0019 GETMBR R7 R0 K7
+ 0x8C1C0F08, // 001A GETMET R7 R7 K8
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x7C1C0400, // 001C CALL R7 2
+ 0x601C0013, // 001D GETGBL R7 G19
+ 0x7C1C0000, // 001E CALL R7 0
+ 0x981E1201, // 001F SETIDX R7 K9 R1
+ 0x60200010, // 0020 GETGBL R8 G16
+ 0x8C24050A, // 0021 GETMET R9 R2 K10
+ 0x7C240200, // 0022 CALL R9 1
+ 0x7C200200, // 0023 CALL R8 1
+ 0xA8020004, // 0024 EXBLK 0 #002A
+ 0x5C241000, // 0025 MOVE R9 R8
+ 0x7C240000, // 0026 CALL R9 0
+ 0x94280409, // 0027 GETIDX R10 R2 R9
+ 0x981C120A, // 0028 SETIDX R7 R9 R10
+ 0x7001FFFA, // 0029 JMP #0025
+ 0x5820000B, // 002A LDCONST R8 K11
+ 0xAC200200, // 002B CATCH R8 1 0
+ 0xB0080000, // 002C RAISE 2 R0 R0
+ 0xB8220400, // 002D GETNGBL R8 K2
+ 0x60240018, // 002E GETGBL R9 G24
+ 0x5828000C, // 002F LDCONST R10 K12
+ 0x5C2C0800, // 0030 MOVE R11 R4
+ 0x5C300200, // 0031 MOVE R12 R1
+ 0x8C34010D, // 0032 GETMET R13 R0 K13
+ 0x5C3C0400, // 0033 MOVE R15 R2
+ 0x7C340400, // 0034 CALL R13 2
+ 0x7C240800, // 0035 CALL R9 4
+ 0x5828000E, // 0036 LDCONST R10 K14
+ 0x7C200400, // 0037 CALL R8 2
+ 0x8820010F, // 0038 GETMBR R8 R0 K15
+ 0x98200A07, // 0039 SETIDX R8 R5 R7
+ 0x50200200, // 003A LDBOOL R8 1 0
+ 0x90022008, // 003B SETMBR R0 K16 R8
+ 0x88200106, // 003C GETMBR R8 R0 K6
+ 0x00201111, // 003D ADD R8 R8 K17
+ 0x90020C08, // 003E SETMBR R0 K6 R8
+ 0x8C200112, // 003F GETMET R8 R0 K18
+ 0x7C200200, // 0040 CALL R8 1
0x8C200113, // 0041 GETMET R8 R0 K19
0x7C200200, // 0042 CALL R8 1
- 0x8C200114, // 0043 GETMET R8 R0 K20
- 0x7C200200, // 0044 CALL R8 1
- 0x80040800, // 0045 RET 1 R4
+ 0x80040800, // 0043 RET 1 R4
})
)
);
@@ -1192,7 +1174,7 @@ be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
be_nested_proto(
- 20, /* nstack */
+ 19, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1242,7 +1224,7 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
}),
be_str_weak(autoconf_device_map),
&be_const_str_solidified,
- ( &(const binstruction[199]) { /* code */
+ ( &(const binstruction[196]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x60080013, // 0001 GETGBL R2 G19
0x7C080000, // 0002 CALL R2 0
@@ -1299,149 +1281,146 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
0x7C1C0600, // 0035 CALL R7 3
0x60200012, // 0036 GETGBL R8 G18
0x7C200000, // 0037 CALL R8 0
- 0xB8261E00, // 0038 GETNGBL R9 K15
- 0x8C241312, // 0039 GETMET R9 R9 K18
- 0x602C0008, // 003A GETGBL R11 G8
- 0x5C300E00, // 003B MOVE R12 R7
- 0x7C2C0200, // 003C CALL R11 1
- 0x002E260B, // 003D ADD R11 K19 R11
- 0x58300014, // 003E LDCONST R12 K20
- 0x7C240600, // 003F CALL R9 3
- 0x4C240000, // 0040 LDNIL R9
- 0x20240E09, // 0041 NE R9 R7 R9
- 0x7826004F, // 0042 JMPF R9 #0093
- 0x8C240F15, // 0043 GETMET R9 R7 K21
- 0x582C0016, // 0044 LDCONST R11 K22
- 0x7C240400, // 0045 CALL R9 2
- 0x7826004B, // 0046 JMPF R9 #0093
- 0x941C0F16, // 0047 GETIDX R7 R7 K22
- 0x58240008, // 0048 LDCONST R9 K8
- 0x50280200, // 0049 LDBOOL R10 1 0
- 0x782A0047, // 004A JMPF R10 #0093
- 0x60280008, // 004B GETGBL R10 G8
- 0x5C2C1200, // 004C MOVE R11 R9
- 0x7C280200, // 004D CALL R10 1
- 0x002A2E0A, // 004E ADD R10 K23 R10
- 0x8C2C0F15, // 004F GETMET R11 R7 K21
- 0x5C341400, // 0050 MOVE R13 R10
- 0x7C2C0400, // 0051 CALL R11 2
- 0x742E0000, // 0052 JMPT R11 #0054
- 0x7002003E, // 0053 JMP #0093
- 0x942C0E0A, // 0054 GETIDX R11 R7 R10
- 0xB8321E00, // 0055 GETNGBL R12 K15
- 0x8C301912, // 0056 GETMET R12 R12 K18
- 0x60380018, // 0057 GETGBL R14 G24
- 0x583C0018, // 0058 LDCONST R15 K24
- 0x5C401400, // 0059 MOVE R16 R10
- 0x60440008, // 005A GETGBL R17 G8
- 0x5C481600, // 005B MOVE R18 R11
- 0x7C440200, // 005C CALL R17 1
- 0x7C380600, // 005D CALL R14 3
- 0x583C0014, // 005E LDCONST R15 K20
- 0x7C300600, // 005F CALL R12 3
- 0x8C301705, // 0060 GETMET R12 R11 K5
- 0x58380019, // 0061 LDCONST R14 K25
- 0x543DFFFE, // 0062 LDINT R15 -1
- 0x7C300600, // 0063 CALL R12 3
- 0x8C341705, // 0064 GETMET R13 R11 K5
- 0x583C001A, // 0065 LDCONST R15 K26
- 0x5441FFFE, // 0066 LDINT R16 -1
- 0x7C340600, // 0067 CALL R13 3
- 0x24381908, // 0068 GT R14 R12 K8
- 0x783A0002, // 0069 JMPF R14 #006D
- 0x8C38111B, // 006A GETMET R14 R8 K27
- 0x04401909, // 006B SUB R16 R12 K9
- 0x7C380400, // 006C CALL R14 2
- 0x24381B08, // 006D GT R14 R13 K8
- 0x783A0002, // 006E JMPF R14 #0072
- 0x8C38111B, // 006F GETMET R14 R8 K27
- 0x04401B09, // 0070 SUB R16 R13 K9
- 0x7C380400, // 0071 CALL R14 2
- 0xB83A1E00, // 0072 GETNGBL R14 K15
- 0x8C381D12, // 0073 GETMET R14 R14 K18
- 0x60400018, // 0074 GETGBL R16 G24
- 0x5844001C, // 0075 LDCONST R17 K28
- 0x5C481800, // 0076 MOVE R18 R12
- 0x5C4C1A00, // 0077 MOVE R19 R13
- 0x7C400600, // 0078 CALL R16 3
- 0x58440014, // 0079 LDCONST R17 K20
- 0x7C380600, // 007A CALL R14 3
- 0x8C381705, // 007B GETMET R14 R11 K5
- 0x5840001D, // 007C LDCONST R16 K29
- 0x7C380400, // 007D CALL R14 2
- 0x783A0002, // 007E JMPF R14 #0082
- 0x943C1D0C, // 007F GETIDX R15 R14 K12
- 0x243C1F08, // 0080 GT R15 R15 K8
- 0x743E0000, // 0081 JMPT R15 #0083
- 0x503C0001, // 0082 LDBOOL R15 0 1
- 0x503C0200, // 0083 LDBOOL R15 1 0
- 0x60400008, // 0084 GETGBL R16 G8
- 0x5C440600, // 0085 MOVE R17 R3
- 0x7C400200, // 0086 CALL R16 1
- 0x60440013, // 0087 GETGBL R17 G19
- 0x7C440000, // 0088 CALL R17 0
- 0x783E0001, // 0089 JMPF R15 #008C
- 0x5848001E, // 008A LDCONST R18 K30
- 0x70020000, // 008B JMP #008D
- 0x5848001F, // 008C LDCONST R18 K31
- 0x98461412, // 008D SETIDX R17 K10 R18
- 0x98463E09, // 008E SETIDX R17 K31 R9
- 0x98082011, // 008F SETIDX R2 R16 R17
- 0x000C0709, // 0090 ADD R3 R3 K9
- 0x00241309, // 0091 ADD R9 R9 K9
- 0x7001FFB5, // 0092 JMP #0049
- 0x6024000C, // 0093 GETGBL R9 G12
- 0xB82A1E00, // 0094 GETNGBL R10 K15
- 0x8C281520, // 0095 GETMET R10 R10 K32
- 0x7C280200, // 0096 CALL R10 1
- 0x7C240200, // 0097 CALL R9 1
- 0x58280008, // 0098 LDCONST R10 K8
- 0x78120000, // 0099 JMPF R4 #009B
- 0x04241309, // 009A SUB R9 R9 K9
- 0x142C1409, // 009B LT R11 R10 R9
- 0x782E0011, // 009C JMPF R11 #00AF
- 0x8C2C1105, // 009D GETMET R11 R8 K5
- 0x5C341400, // 009E MOVE R13 R10
- 0x7C2C0400, // 009F CALL R11 2
- 0x4C300000, // 00A0 LDNIL R12
- 0x1C2C160C, // 00A1 EQ R11 R11 R12
- 0x782E0009, // 00A2 JMPF R11 #00AD
- 0x602C0008, // 00A3 GETGBL R11 G8
- 0x5C300600, // 00A4 MOVE R12 R3
- 0x7C2C0200, // 00A5 CALL R11 1
- 0x60300013, // 00A6 GETGBL R12 G19
- 0x7C300000, // 00A7 CALL R12 0
- 0x98321521, // 00A8 SETIDX R12 K10 K33
- 0x00341509, // 00A9 ADD R13 R10 K9
- 0x9832420D, // 00AA SETIDX R12 K33 R13
- 0x9808160C, // 00AB SETIDX R2 R11 R12
- 0x000C0709, // 00AC ADD R3 R3 K9
- 0x00281509, // 00AD ADD R10 R10 K9
- 0x7001FFEB, // 00AE JMP #009B
- 0x8C2C0322, // 00AF GETMET R11 R1 K34
- 0xB8361E00, // 00B0 GETNGBL R13 K15
- 0x8C341B23, // 00B1 GETMET R13 R13 K35
- 0x7C340200, // 00B2 CALL R13 1
- 0x7C2C0400, // 00B3 CALL R11 2
- 0x8C300124, // 00B4 GETMET R12 R0 K36
- 0x5C381600, // 00B5 MOVE R14 R11
- 0x7C300400, // 00B6 CALL R12 2
- 0x60340010, // 00B7 GETGBL R13 G16
- 0x5C381800, // 00B8 MOVE R14 R12
- 0x7C340200, // 00B9 CALL R13 1
- 0xA8020007, // 00BA EXBLK 0 #00C3
- 0x5C381A00, // 00BB MOVE R14 R13
- 0x7C380000, // 00BC CALL R14 0
- 0x603C0008, // 00BD GETGBL R15 G8
- 0x5C400600, // 00BE MOVE R16 R3
- 0x7C3C0200, // 00BF CALL R15 1
- 0x98081E0E, // 00C0 SETIDX R2 R15 R14
- 0x000C0709, // 00C1 ADD R3 R3 K9
- 0x7001FFF7, // 00C2 JMP #00BB
- 0x58340025, // 00C3 LDCONST R13 K37
- 0xAC340200, // 00C4 CATCH R13 1 0
- 0xB0080000, // 00C5 RAISE 2 R0 R0
- 0x80040400, // 00C6 RET 1 R2
+ 0xB8262400, // 0038 GETNGBL R9 K18
+ 0x60280008, // 0039 GETGBL R10 G8
+ 0x5C2C0E00, // 003A MOVE R11 R7
+ 0x7C280200, // 003B CALL R10 1
+ 0x002A260A, // 003C ADD R10 K19 R10
+ 0x582C0014, // 003D LDCONST R11 K20
+ 0x7C240400, // 003E CALL R9 2
+ 0x4C240000, // 003F LDNIL R9
+ 0x20240E09, // 0040 NE R9 R7 R9
+ 0x7826004D, // 0041 JMPF R9 #0090
+ 0x8C240F15, // 0042 GETMET R9 R7 K21
+ 0x582C0016, // 0043 LDCONST R11 K22
+ 0x7C240400, // 0044 CALL R9 2
+ 0x78260049, // 0045 JMPF R9 #0090
+ 0x941C0F16, // 0046 GETIDX R7 R7 K22
+ 0x58240008, // 0047 LDCONST R9 K8
+ 0x50280200, // 0048 LDBOOL R10 1 0
+ 0x782A0045, // 0049 JMPF R10 #0090
+ 0x60280008, // 004A GETGBL R10 G8
+ 0x5C2C1200, // 004B MOVE R11 R9
+ 0x7C280200, // 004C CALL R10 1
+ 0x002A2E0A, // 004D ADD R10 K23 R10
+ 0x8C2C0F15, // 004E GETMET R11 R7 K21
+ 0x5C341400, // 004F MOVE R13 R10
+ 0x7C2C0400, // 0050 CALL R11 2
+ 0x742E0000, // 0051 JMPT R11 #0053
+ 0x7002003C, // 0052 JMP #0090
+ 0x942C0E0A, // 0053 GETIDX R11 R7 R10
+ 0xB8322400, // 0054 GETNGBL R12 K18
+ 0x60340018, // 0055 GETGBL R13 G24
+ 0x58380018, // 0056 LDCONST R14 K24
+ 0x5C3C1400, // 0057 MOVE R15 R10
+ 0x60400008, // 0058 GETGBL R16 G8
+ 0x5C441600, // 0059 MOVE R17 R11
+ 0x7C400200, // 005A CALL R16 1
+ 0x7C340600, // 005B CALL R13 3
+ 0x58380014, // 005C LDCONST R14 K20
+ 0x7C300400, // 005D CALL R12 2
+ 0x8C301705, // 005E GETMET R12 R11 K5
+ 0x58380019, // 005F LDCONST R14 K25
+ 0x543DFFFE, // 0060 LDINT R15 -1
+ 0x7C300600, // 0061 CALL R12 3
+ 0x8C341705, // 0062 GETMET R13 R11 K5
+ 0x583C001A, // 0063 LDCONST R15 K26
+ 0x5441FFFE, // 0064 LDINT R16 -1
+ 0x7C340600, // 0065 CALL R13 3
+ 0x24381908, // 0066 GT R14 R12 K8
+ 0x783A0002, // 0067 JMPF R14 #006B
+ 0x8C38111B, // 0068 GETMET R14 R8 K27
+ 0x04401909, // 0069 SUB R16 R12 K9
+ 0x7C380400, // 006A CALL R14 2
+ 0x24381B08, // 006B GT R14 R13 K8
+ 0x783A0002, // 006C JMPF R14 #0070
+ 0x8C38111B, // 006D GETMET R14 R8 K27
+ 0x04401B09, // 006E SUB R16 R13 K9
+ 0x7C380400, // 006F CALL R14 2
+ 0xB83A2400, // 0070 GETNGBL R14 K18
+ 0x603C0018, // 0071 GETGBL R15 G24
+ 0x5840001C, // 0072 LDCONST R16 K28
+ 0x5C441800, // 0073 MOVE R17 R12
+ 0x5C481A00, // 0074 MOVE R18 R13
+ 0x7C3C0600, // 0075 CALL R15 3
+ 0x58400014, // 0076 LDCONST R16 K20
+ 0x7C380400, // 0077 CALL R14 2
+ 0x8C381705, // 0078 GETMET R14 R11 K5
+ 0x5840001D, // 0079 LDCONST R16 K29
+ 0x7C380400, // 007A CALL R14 2
+ 0x783A0002, // 007B JMPF R14 #007F
+ 0x943C1D0C, // 007C GETIDX R15 R14 K12
+ 0x243C1F08, // 007D GT R15 R15 K8
+ 0x743E0000, // 007E JMPT R15 #0080
+ 0x503C0001, // 007F LDBOOL R15 0 1
+ 0x503C0200, // 0080 LDBOOL R15 1 0
+ 0x60400008, // 0081 GETGBL R16 G8
+ 0x5C440600, // 0082 MOVE R17 R3
+ 0x7C400200, // 0083 CALL R16 1
+ 0x60440013, // 0084 GETGBL R17 G19
+ 0x7C440000, // 0085 CALL R17 0
+ 0x783E0001, // 0086 JMPF R15 #0089
+ 0x5848001E, // 0087 LDCONST R18 K30
+ 0x70020000, // 0088 JMP #008A
+ 0x5848001F, // 0089 LDCONST R18 K31
+ 0x98461412, // 008A SETIDX R17 K10 R18
+ 0x98463E09, // 008B SETIDX R17 K31 R9
+ 0x98082011, // 008C SETIDX R2 R16 R17
+ 0x000C0709, // 008D ADD R3 R3 K9
+ 0x00241309, // 008E ADD R9 R9 K9
+ 0x7001FFB7, // 008F JMP #0048
+ 0x6024000C, // 0090 GETGBL R9 G12
+ 0xB82A1E00, // 0091 GETNGBL R10 K15
+ 0x8C281520, // 0092 GETMET R10 R10 K32
+ 0x7C280200, // 0093 CALL R10 1
+ 0x7C240200, // 0094 CALL R9 1
+ 0x58280008, // 0095 LDCONST R10 K8
+ 0x78120000, // 0096 JMPF R4 #0098
+ 0x04241309, // 0097 SUB R9 R9 K9
+ 0x142C1409, // 0098 LT R11 R10 R9
+ 0x782E0011, // 0099 JMPF R11 #00AC
+ 0x8C2C1105, // 009A GETMET R11 R8 K5
+ 0x5C341400, // 009B MOVE R13 R10
+ 0x7C2C0400, // 009C CALL R11 2
+ 0x4C300000, // 009D LDNIL R12
+ 0x1C2C160C, // 009E EQ R11 R11 R12
+ 0x782E0009, // 009F JMPF R11 #00AA
+ 0x602C0008, // 00A0 GETGBL R11 G8
+ 0x5C300600, // 00A1 MOVE R12 R3
+ 0x7C2C0200, // 00A2 CALL R11 1
+ 0x60300013, // 00A3 GETGBL R12 G19
+ 0x7C300000, // 00A4 CALL R12 0
+ 0x98321521, // 00A5 SETIDX R12 K10 K33
+ 0x00341509, // 00A6 ADD R13 R10 K9
+ 0x9832420D, // 00A7 SETIDX R12 K33 R13
+ 0x9808160C, // 00A8 SETIDX R2 R11 R12
+ 0x000C0709, // 00A9 ADD R3 R3 K9
+ 0x00281509, // 00AA ADD R10 R10 K9
+ 0x7001FFEB, // 00AB JMP #0098
+ 0x8C2C0322, // 00AC GETMET R11 R1 K34
+ 0xB8361E00, // 00AD GETNGBL R13 K15
+ 0x8C341B23, // 00AE GETMET R13 R13 K35
+ 0x7C340200, // 00AF CALL R13 1
+ 0x7C2C0400, // 00B0 CALL R11 2
+ 0x8C300124, // 00B1 GETMET R12 R0 K36
+ 0x5C381600, // 00B2 MOVE R14 R11
+ 0x7C300400, // 00B3 CALL R12 2
+ 0x60340010, // 00B4 GETGBL R13 G16
+ 0x5C381800, // 00B5 MOVE R14 R12
+ 0x7C340200, // 00B6 CALL R13 1
+ 0xA8020007, // 00B7 EXBLK 0 #00C0
+ 0x5C381A00, // 00B8 MOVE R14 R13
+ 0x7C380000, // 00B9 CALL R14 0
+ 0x603C0008, // 00BA GETGBL R15 G8
+ 0x5C400600, // 00BB MOVE R16 R3
+ 0x7C3C0200, // 00BC CALL R15 1
+ 0x98081E0E, // 00BD SETIDX R2 R15 R14
+ 0x000C0709, // 00BE ADD R3 R3 K9
+ 0x7001FFF7, // 00BF JMP #00B8
+ 0x58340025, // 00C0 LDCONST R13 K37
+ 0xAC340200, // 00C1 CATCH R13 1 0
+ 0xB0080000, // 00C2 RAISE 2 R0 R0
+ 0x80040400, // 00C3 RET 1 R2
})
)
);
@@ -1962,7 +1941,7 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
+ ( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(introspect),
/* K1 */ be_nested_str_weak(http_remotes),
/* K2 */ be_const_int(0),
@@ -1974,20 +1953,19 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
/* K8 */ be_const_int(1),
/* K9 */ be_nested_str_weak(keys),
/* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(tasmota),
- /* K12 */ be_nested_str_weak(log),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
- /* K14 */ be_nested_str_weak(addr),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(close),
- /* K17 */ be_nested_str_weak(remove),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(close),
+ /* K16 */ be_nested_str_weak(remove),
}),
be_str_weak(clean_remotes),
&be_const_str_solidified,
- ( &(const binstruction[81]) { /* code */
+ ( &(const binstruction[80]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x88080101, // 0001 GETMBR R2 R0 K1
- 0x780A004C, // 0002 JMPF R2 #0050
+ 0x780A004B, // 0002 JMPF R2 #004F
0x60080013, // 0003 GETGBL R2 G19
0x7C080000, // 0004 CALL R2 0
0x600C0010, // 0005 GETGBL R3 G16
@@ -2046,26 +2024,25 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
0x60100010, // 003A GETGBL R4 G16
0x5C140600, // 003B MOVE R5 R3
0x7C100200, // 003C CALL R4 1
- 0xA802000E, // 003D EXBLK 0 #004D
+ 0xA802000D, // 003D EXBLK 0 #004C
0x5C140800, // 003E MOVE R5 R4
0x7C140000, // 003F CALL R5 0
0xB81A1600, // 0040 GETNGBL R6 K11
- 0x8C180D0C, // 0041 GETMET R6 R6 K12
- 0x88200B0E, // 0042 GETMBR R8 R5 K14
- 0x00221A08, // 0043 ADD R8 K13 R8
- 0x5824000F, // 0044 LDCONST R9 K15
- 0x7C180600, // 0045 CALL R6 3
- 0x8C180B10, // 0046 GETMET R6 R5 K16
- 0x7C180200, // 0047 CALL R6 1
- 0x88180101, // 0048 GETMBR R6 R0 K1
- 0x8C180D11, // 0049 GETMET R6 R6 K17
- 0x88200B0E, // 004A GETMBR R8 R5 K14
- 0x7C180400, // 004B CALL R6 2
- 0x7001FFF0, // 004C JMP #003E
- 0x58100003, // 004D LDCONST R4 K3
- 0xAC100200, // 004E CATCH R4 1 0
- 0xB0080000, // 004F RAISE 2 R0 R0
- 0x80000000, // 0050 RET 0
+ 0x881C0B0D, // 0041 GETMBR R7 R5 K13
+ 0x001E1807, // 0042 ADD R7 K12 R7
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x7C180400, // 0044 CALL R6 2
+ 0x8C180B0F, // 0045 GETMET R6 R5 K15
+ 0x7C180200, // 0046 CALL R6 1
+ 0x88180101, // 0047 GETMBR R6 R0 K1
+ 0x8C180D10, // 0048 GETMET R6 R6 K16
+ 0x88200B0D, // 0049 GETMBR R8 R5 K13
+ 0x7C180400, // 004A CALL R6 2
+ 0x7001FFF1, // 004B JMP #003E
+ 0x58100003, // 004C LDCONST R4 K3
+ 0xAC100200, // 004D CATCH R4 1 0
+ 0xB0080000, // 004E RAISE 2 R0 R0
+ 0x80000000, // 004F RET 0
})
)
);
@@ -2139,7 +2116,7 @@ be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_autoconf_device, /* name */
be_nested_proto(
- 6, /* nstack */
+ 5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2147,7 +2124,7 @@ be_local_closure(class_Matter_Device_autoconf_device, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(plugins),
/* K2 */ be_const_int(0),
@@ -2156,18 +2133,17 @@ be_local_closure(class_Matter_Device_autoconf_device, /* name */
/* K5 */ be_nested_str_weak(autoconf_device_map),
/* K6 */ be_nested_str_weak(plugins_config_remotes),
/* K7 */ be_nested_str_weak(adjust_next_ep),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
- /* K11 */ be_const_int(3),
- /* K12 */ be_nested_str_weak(_instantiate_plugins_from_config),
- /* K13 */ be_nested_str_weak(sessions),
- /* K14 */ be_nested_str_weak(count_active_fabrics),
- /* K15 */ be_nested_str_weak(save_param),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(count_active_fabrics),
+ /* K14 */ be_nested_str_weak(save_param),
}),
be_str_weak(autoconf_device),
&be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
+ ( &(const binstruction[39]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x6008000C, // 0001 GETGBL R2 G12
0x880C0101, // 0002 GETMBR R3 R0 K1
@@ -2176,7 +2152,7 @@ be_local_closure(class_Matter_Device_autoconf_device, /* name */
0x780A0000, // 0005 JMPF R2 #0007
0x80000400, // 0006 RET 0
0x88080103, // 0007 GETMBR R2 R0 K3
- 0x740A000F, // 0008 JMPT R2 #0019
+ 0x740A000E, // 0008 JMPT R2 #0018
0x8C080105, // 0009 GETMET R2 R0 K5
0x7C080200, // 000A CALL R2 1
0x90020802, // 000B SETMBR R0 K4 R2
@@ -2186,28 +2162,27 @@ be_local_closure(class_Matter_Device_autoconf_device, /* name */
0x8C080107, // 000F GETMET R2 R0 K7
0x7C080200, // 0010 CALL R2 1
0xB80A1000, // 0011 GETNGBL R2 K8
- 0x8C080509, // 0012 GETMET R2 R2 K9
- 0x60100008, // 0013 GETGBL R4 G8
- 0x88140104, // 0014 GETMBR R5 R0 K4
- 0x7C100200, // 0015 CALL R4 1
- 0x00121404, // 0016 ADD R4 K10 R4
- 0x5814000B, // 0017 LDCONST R5 K11
- 0x7C080600, // 0018 CALL R2 3
- 0x8C08010C, // 0019 GETMET R2 R0 K12
- 0x88100104, // 001A GETMBR R4 R0 K4
- 0x7C080400, // 001B CALL R2 2
- 0x88080103, // 001C GETMBR R2 R0 K3
- 0x740A0008, // 001D JMPT R2 #0027
- 0x8808010D, // 001E GETMBR R2 R0 K13
- 0x8C08050E, // 001F GETMET R2 R2 K14
- 0x7C080200, // 0020 CALL R2 1
- 0x24080502, // 0021 GT R2 R2 K2
- 0x780A0003, // 0022 JMPF R2 #0027
- 0x50080200, // 0023 LDBOOL R2 1 0
- 0x90020602, // 0024 SETMBR R0 K3 R2
- 0x8C08010F, // 0025 GETMET R2 R0 K15
- 0x7C080200, // 0026 CALL R2 1
- 0x80000000, // 0027 RET 0
+ 0x600C0008, // 0012 GETGBL R3 G8
+ 0x88100104, // 0013 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x000E1203, // 0015 ADD R3 K9 R3
+ 0x5810000A, // 0016 LDCONST R4 K10
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8C08010B, // 0018 GETMET R2 R0 K11
+ 0x88100104, // 0019 GETMBR R4 R0 K4
+ 0x7C080400, // 001A CALL R2 2
+ 0x88080103, // 001B GETMBR R2 R0 K3
+ 0x740A0008, // 001C JMPT R2 #0026
+ 0x8808010C, // 001D GETMBR R2 R0 K12
+ 0x8C08050D, // 001E GETMET R2 R2 K13
+ 0x7C080200, // 001F CALL R2 1
+ 0x24080502, // 0020 GT R2 R2 K2
+ 0x780A0003, // 0021 JMPF R2 #0026
+ 0x50080200, // 0022 LDBOOL R2 1 0
+ 0x90020602, // 0023 SETMBR R0 K3 R2
+ 0x8C08010E, // 0024 GETMET R2 R0 K14
+ 0x7C080200, // 0025 CALL R2 1
+ 0x80000000, // 0026 RET 0
})
)
);
@@ -2547,7 +2522,7 @@ be_local_closure(class_Matter_Device_every_second, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_remove_fabric, /* name */
be_nested_proto(
- 6, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2555,60 +2530,58 @@ be_local_closure(class_Matter_Device_remove_fabric, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(copy),
- /* K5 */ be_nested_str_weak(reverse),
- /* K6 */ be_nested_str_weak(tohex),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(message_handler),
- /* K9 */ be_nested_str_weak(im),
- /* K10 */ be_nested_str_weak(subs_shop),
- /* K11 */ be_nested_str_weak(remove_by_fabric),
- /* K12 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K13 */ be_nested_str_weak(sessions),
- /* K14 */ be_nested_str_weak(remove_fabric),
- /* K15 */ be_nested_str_weak(save_fabrics),
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(message_handler),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(subs_shop),
+ /* K10 */ be_nested_str_weak(remove_by_fabric),
+ /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(remove_fabric),
+ /* K14 */ be_nested_str_weak(save_fabrics),
}),
be_str_weak(remove_fabric),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
+ ( &(const binstruction[32]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x20080202, // 0001 NE R2 R1 R2
- 0x780A0019, // 0002 JMPF R2 #001D
+ 0x780A0018, // 0002 JMPF R2 #001C
0xB80A0000, // 0003 GETNGBL R2 K0
- 0x8C080501, // 0004 GETMET R2 R2 K1
- 0x8C100303, // 0005 GETMET R4 R1 K3
- 0x7C100200, // 0006 CALL R4 1
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x7C100200, // 0008 CALL R4 1
- 0x8C100905, // 0009 GETMET R4 R4 K5
- 0x7C100200, // 000A CALL R4 1
- 0x8C100906, // 000B GETMET R4 R4 K6
- 0x7C100200, // 000C CALL R4 1
- 0x00120404, // 000D ADD R4 K2 R4
- 0x58140007, // 000E LDCONST R5 K7
- 0x7C080600, // 000F CALL R2 3
- 0x88080108, // 0010 GETMBR R2 R0 K8
+ 0x8C0C0302, // 0004 GETMET R3 R1 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C0C0705, // 000A GETMET R3 R3 K5
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x000E0203, // 000C ADD R3 K1 R3
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x88080508, // 0010 GETMBR R2 R2 K8
0x88080509, // 0011 GETMBR R2 R2 K9
- 0x8808050A, // 0012 GETMBR R2 R2 K10
- 0x8C08050B, // 0013 GETMET R2 R2 K11
- 0x5C100200, // 0014 MOVE R4 R1
- 0x7C080400, // 0015 CALL R2 2
- 0x8C08010C, // 0016 GETMET R2 R0 K12
- 0x5C100200, // 0017 MOVE R4 R1
- 0x7C080400, // 0018 CALL R2 2
- 0x8808010D, // 0019 GETMBR R2 R0 K13
- 0x8C08050E, // 001A GETMET R2 R2 K14
- 0x5C100200, // 001B MOVE R4 R1
- 0x7C080400, // 001C CALL R2 2
- 0x8808010D, // 001D GETMBR R2 R0 K13
- 0x8C08050F, // 001E GETMET R2 R2 K15
- 0x7C080200, // 001F CALL R2 1
- 0x80000000, // 0020 RET 0
+ 0x8C08050A, // 0012 GETMET R2 R2 K10
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x8C08010B, // 0015 GETMET R2 R0 K11
+ 0x5C100200, // 0016 MOVE R4 R1
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8808010C, // 0018 GETMBR R2 R0 K12
+ 0x8C08050D, // 0019 GETMET R2 R2 K13
+ 0x5C100200, // 001A MOVE R4 R1
+ 0x7C080400, // 001B CALL R2 2
+ 0x8808010C, // 001C GETMBR R2 R0 K12
+ 0x8C08050E, // 001D GETMET R2 R2 K14
+ 0x7C080200, // 001E CALL R2 1
+ 0x80000000, // 001F RET 0
})
)
);
@@ -2805,7 +2778,7 @@ be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
}),
be_str_weak(_trigger_read_sensors),
&be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
+ ( &(const binstruction[48]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xB80A0200, // 0001 GETNGBL R2 K1
0x8C080502, // 0002 GETMET R2 R2 K2
@@ -2814,48 +2787,46 @@ be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
0x8C0C0703, // 0005 GETMET R3 R3 K3
0x58140004, // 0006 LDCONST R5 K4
0x7C0C0400, // 0007 CALL R3 2
- 0x780E0007, // 0008 JMPF R3 #0011
- 0xB80E0200, // 0009 GETNGBL R3 K1
- 0x8C0C0705, // 000A GETMET R3 R3 K5
- 0x60140008, // 000B GETGBL R5 G8
- 0x5C180400, // 000C MOVE R6 R2
- 0x7C140200, // 000D CALL R5 1
- 0x00160C05, // 000E ADD R5 K6 R5
- 0x58180004, // 000F LDCONST R6 K4
- 0x7C0C0600, // 0010 CALL R3 3
- 0x4C0C0000, // 0011 LDNIL R3
- 0x1C0C0403, // 0012 EQ R3 R2 R3
- 0x780E0000, // 0013 JMPF R3 #0015
- 0x80000600, // 0014 RET 0
- 0x8C0C0307, // 0015 GETMET R3 R1 K7
- 0x5C140400, // 0016 MOVE R5 R2
- 0x7C0C0400, // 0017 CALL R3 2
- 0x4C100000, // 0018 LDNIL R4
- 0x20100604, // 0019 NE R4 R3 R4
- 0x7812000D, // 001A JMPF R4 #0029
- 0x58100008, // 001B LDCONST R4 K8
- 0x6014000C, // 001C GETGBL R5 G12
- 0x88180109, // 001D GETMBR R6 R0 K9
- 0x7C140200, // 001E CALL R5 1
- 0x14140805, // 001F LT R5 R4 R5
- 0x78160006, // 0020 JMPF R5 #0028
- 0x88140109, // 0021 GETMBR R5 R0 K9
- 0x94140A04, // 0022 GETIDX R5 R5 R4
- 0x8C140B0A, // 0023 GETMET R5 R5 K10
- 0x5C1C0600, // 0024 MOVE R7 R3
- 0x7C140400, // 0025 CALL R5 2
- 0x0010090B, // 0026 ADD R4 R4 K11
- 0x7001FFF3, // 0027 JMP #001C
- 0x70020007, // 0028 JMP #0031
- 0xB8120200, // 0029 GETNGBL R4 K1
- 0x8C100905, // 002A GETMET R4 R4 K5
- 0x60180008, // 002B GETGBL R6 G8
- 0x5C1C0400, // 002C MOVE R7 R2
- 0x7C180200, // 002D CALL R6 1
- 0x001A1806, // 002E ADD R6 K12 R6
- 0x581C0004, // 002F LDCONST R7 K4
- 0x7C100600, // 0030 CALL R4 3
- 0x80000000, // 0031 RET 0
+ 0x780E0006, // 0008 JMPF R3 #0010
+ 0xB80E0A00, // 0009 GETNGBL R3 K5
+ 0x60100008, // 000A GETGBL R4 G8
+ 0x5C140400, // 000B MOVE R5 R2
+ 0x7C100200, // 000C CALL R4 1
+ 0x00120C04, // 000D ADD R4 K6 R4
+ 0x58140004, // 000E LDCONST R5 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x1C0C0403, // 0011 EQ R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x80000600, // 0013 RET 0
+ 0x8C0C0307, // 0014 GETMET R3 R1 K7
+ 0x5C140400, // 0015 MOVE R5 R2
+ 0x7C0C0400, // 0016 CALL R3 2
+ 0x4C100000, // 0017 LDNIL R4
+ 0x20100604, // 0018 NE R4 R3 R4
+ 0x7812000D, // 0019 JMPF R4 #0028
+ 0x58100008, // 001A LDCONST R4 K8
+ 0x6014000C, // 001B GETGBL R5 G12
+ 0x88180109, // 001C GETMBR R6 R0 K9
+ 0x7C140200, // 001D CALL R5 1
+ 0x14140805, // 001E LT R5 R4 R5
+ 0x78160006, // 001F JMPF R5 #0027
+ 0x88140109, // 0020 GETMBR R5 R0 K9
+ 0x94140A04, // 0021 GETIDX R5 R5 R4
+ 0x8C140B0A, // 0022 GETMET R5 R5 K10
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C140400, // 0024 CALL R5 2
+ 0x0010090B, // 0025 ADD R4 R4 K11
+ 0x7001FFF3, // 0026 JMP #001B
+ 0x70020006, // 0027 JMP #002F
+ 0xB8120A00, // 0028 GETNGBL R4 K5
+ 0x60140008, // 0029 GETGBL R5 G8
+ 0x5C180400, // 002A MOVE R6 R2
+ 0x7C140200, // 002B CALL R5 1
+ 0x00161805, // 002C ADD R5 K12 R5
+ 0x58180004, // 002D LDCONST R6 K4
+ 0x7C100400, // 002E CALL R4 2
+ 0x80000000, // 002F RET 0
})
)
);
@@ -2868,7 +2839,7 @@ be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name */
be_nested_proto(
- 18, /* nstack */
+ 17, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2878,194 +2849,186 @@ be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name
1, /* has constants */
( &(const bvalue[31]) { /* constants */
/* K0 */ be_nested_str_weak(k2l_num),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(plugins),
- /* K6 */ be_nested_str_weak(push),
- /* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(Plugin_Root),
- /* K9 */ be_const_int(0),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
- /* K11 */ be_nested_str_weak(root),
- /* K12 */ be_nested_str_weak(),
- /* K13 */ be_nested_str_weak(Plugin_Aggregator),
- /* K14 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K15 */ be_nested_str_weak(aggregator),
- /* K16 */ be_nested_str_weak(find),
- /* K17 */ be_nested_str_weak(type),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
- /* K21 */ be_nested_str_weak(plugins_classes),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K23 */ be_nested_str_weak(_X27_X20skipping),
- /* K24 */ be_nested_str_weak(conf_to_log),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K26 */ be_nested_str_weak(_X7C),
- /* K27 */ be_nested_str_weak(stop_iteration),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_nested_str_weak(push),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(Plugin_Root),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
+ /* K10 */ be_nested_str_weak(root),
+ /* K11 */ be_nested_str_weak(),
+ /* K12 */ be_nested_str_weak(Plugin_Aggregator),
+ /* K13 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K14 */ be_nested_str_weak(aggregator),
+ /* K15 */ be_nested_str_weak(find),
+ /* K16 */ be_nested_str_weak(type),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
+ /* K18 */ be_const_int(3),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
+ /* K20 */ be_nested_str_weak(plugins_classes),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K22 */ be_nested_str_weak(_X27_X20skipping),
+ /* K23 */ be_nested_str_weak(conf_to_log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_nested_str_weak(stop_iteration),
+ /* K27 */ be_nested_str_weak(tasmota),
/* K28 */ be_nested_str_weak(publish_result),
/* K29 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Initialized_X22_X3A1_X7D_X7D),
/* K30 */ be_nested_str_weak(Matter),
}),
be_str_weak(_instantiate_plugins_from_config),
&be_const_str_solidified,
- ( &(const binstruction[154]) { /* code */
+ ( &(const binstruction[146]) { /* code */
0x8C080100, // 0000 GETMET R2 R0 K0
0x5C100200, // 0001 MOVE R4 R1
0x7C080400, // 0002 CALL R2 2
0xB80E0200, // 0003 GETNGBL R3 K1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x58100002, // 0004 LDCONST R4 K2
0x58140003, // 0005 LDCONST R5 K3
- 0x58180004, // 0006 LDCONST R6 K4
- 0x7C0C0600, // 0007 CALL R3 3
- 0x880C0105, // 0008 GETMBR R3 R0 K5
- 0x8C0C0706, // 0009 GETMET R3 R3 K6
- 0xB8160E00, // 000A GETNGBL R5 K7
- 0x8C140B08, // 000B GETMET R5 R5 K8
- 0x5C1C0000, // 000C MOVE R7 R0
- 0x58200009, // 000D LDCONST R8 K9
- 0x60240013, // 000E GETGBL R9 G19
- 0x7C240000, // 000F CALL R9 0
- 0x7C140800, // 0010 CALL R5 4
- 0x7C0C0400, // 0011 CALL R3 2
- 0xB80E0200, // 0012 GETNGBL R3 K1
- 0x8C0C0702, // 0013 GETMET R3 R3 K2
- 0x60140018, // 0014 GETGBL R5 G24
- 0x5818000A, // 0015 LDCONST R6 K10
- 0x581C0009, // 0016 LDCONST R7 K9
- 0x5820000B, // 0017 LDCONST R8 K11
- 0x5824000C, // 0018 LDCONST R9 K12
- 0x7C140800, // 0019 CALL R5 4
- 0x58180004, // 001A LDCONST R6 K4
- 0x7C0C0600, // 001B CALL R3 3
- 0x880C0105, // 001C GETMBR R3 R0 K5
- 0x8C0C0706, // 001D GETMET R3 R3 K6
- 0xB8160E00, // 001E GETNGBL R5 K7
- 0x8C140B0D, // 001F GETMET R5 R5 K13
- 0x5C1C0000, // 0020 MOVE R7 R0
- 0xB8220E00, // 0021 GETNGBL R8 K7
- 0x8820110E, // 0022 GETMBR R8 R8 K14
- 0x60240013, // 0023 GETGBL R9 G19
- 0x7C240000, // 0024 CALL R9 0
- 0x7C140800, // 0025 CALL R5 4
- 0x7C0C0400, // 0026 CALL R3 2
- 0xB80E0200, // 0027 GETNGBL R3 K1
- 0x8C0C0702, // 0028 GETMET R3 R3 K2
- 0x60140018, // 0029 GETGBL R5 G24
- 0x5818000A, // 002A LDCONST R6 K10
- 0xB81E0E00, // 002B GETNGBL R7 K7
- 0x881C0F0E, // 002C GETMBR R7 R7 K14
- 0x5820000F, // 002D LDCONST R8 K15
- 0x5824000C, // 002E LDCONST R9 K12
- 0x7C140800, // 002F CALL R5 4
- 0x58180004, // 0030 LDCONST R6 K4
- 0x7C0C0600, // 0031 CALL R3 3
- 0x600C0010, // 0032 GETGBL R3 G16
- 0x5C100400, // 0033 MOVE R4 R2
- 0x7C0C0200, // 0034 CALL R3 1
- 0xA802005A, // 0035 EXBLK 0 #0091
- 0x5C100600, // 0036 MOVE R4 R3
- 0x7C100000, // 0037 CALL R4 0
- 0x1C140909, // 0038 EQ R5 R4 K9
- 0x78160000, // 0039 JMPF R5 #003B
- 0x7001FFFA, // 003A JMP #0036
- 0xA8020042, // 003B EXBLK 0 #007F
- 0x60140008, // 003C GETGBL R5 G8
- 0x5C180800, // 003D MOVE R6 R4
- 0x7C140200, // 003E CALL R5 1
- 0x94140205, // 003F GETIDX R5 R1 R5
- 0x8C180B10, // 0040 GETMET R6 R5 K16
- 0x58200011, // 0041 LDCONST R8 K17
- 0x7C180400, // 0042 CALL R6 2
- 0x4C1C0000, // 0043 LDNIL R7
- 0x1C1C0C07, // 0044 EQ R7 R6 R7
- 0x781E0006, // 0045 JMPF R7 #004D
- 0xB81E0200, // 0046 GETNGBL R7 K1
- 0x8C1C0F02, // 0047 GETMET R7 R7 K2
- 0x58240012, // 0048 LDCONST R9 K18
- 0x58280013, // 0049 LDCONST R10 K19
- 0x7C1C0600, // 004A CALL R7 3
- 0xA8040001, // 004B EXBLK 1 1
- 0x7001FFE8, // 004C JMP #0036
- 0x1C1C0D0B, // 004D EQ R7 R6 K11
- 0x781E0006, // 004E JMPF R7 #0056
- 0xB81E0200, // 004F GETNGBL R7 K1
- 0x8C1C0F02, // 0050 GETMET R7 R7 K2
- 0x58240014, // 0051 LDCONST R9 K20
- 0x58280013, // 0052 LDCONST R10 K19
- 0x7C1C0600, // 0053 CALL R7 3
- 0xA8040001, // 0054 EXBLK 1 1
- 0x7001FFDF, // 0055 JMP #0036
- 0x881C0115, // 0056 GETMBR R7 R0 K21
- 0x8C1C0F10, // 0057 GETMET R7 R7 K16
- 0x5C240C00, // 0058 MOVE R9 R6
- 0x7C1C0400, // 0059 CALL R7 2
- 0x4C200000, // 005A LDNIL R8
- 0x1C200E08, // 005B EQ R8 R7 R8
- 0x7822000A, // 005C JMPF R8 #0068
- 0xB8220200, // 005D GETNGBL R8 K1
- 0x8C201102, // 005E GETMET R8 R8 K2
- 0x60280008, // 005F GETGBL R10 G8
- 0x5C2C0C00, // 0060 MOVE R11 R6
- 0x7C280200, // 0061 CALL R10 1
- 0x002A2C0A, // 0062 ADD R10 K22 R10
- 0x00281517, // 0063 ADD R10 R10 K23
- 0x582C0004, // 0064 LDCONST R11 K4
- 0x7C200600, // 0065 CALL R8 3
- 0xA8040001, // 0066 EXBLK 1 1
- 0x7001FFCD, // 0067 JMP #0036
- 0x5C200E00, // 0068 MOVE R8 R7
- 0x5C240000, // 0069 MOVE R9 R0
- 0x5C280800, // 006A MOVE R10 R4
- 0x5C2C0A00, // 006B MOVE R11 R5
- 0x7C200600, // 006C CALL R8 3
- 0x88240105, // 006D GETMBR R9 R0 K5
- 0x8C241306, // 006E GETMET R9 R9 K6
- 0x5C2C1000, // 006F MOVE R11 R8
- 0x7C240400, // 0070 CALL R9 2
- 0xB8260200, // 0071 GETNGBL R9 K1
- 0x8C241302, // 0072 GETMET R9 R9 K2
- 0x602C0018, // 0073 GETGBL R11 G24
- 0x5830000A, // 0074 LDCONST R12 K10
- 0x5C340800, // 0075 MOVE R13 R4
- 0x5C380C00, // 0076 MOVE R14 R6
- 0x8C3C0118, // 0077 GETMET R15 R0 K24
- 0x5C440A00, // 0078 MOVE R17 R5
- 0x7C3C0400, // 0079 CALL R15 2
- 0x7C2C0800, // 007A CALL R11 4
- 0x58300004, // 007B LDCONST R12 K4
- 0x7C240600, // 007C CALL R9 3
- 0xA8040001, // 007D EXBLK 1 1
- 0x70020010, // 007E JMP #0090
- 0xAC140002, // 007F CATCH R5 0 2
- 0x7002000D, // 0080 JMP #008F
- 0xB81E0200, // 0081 GETNGBL R7 K1
- 0x8C1C0F02, // 0082 GETMET R7 R7 K2
- 0x60240008, // 0083 GETGBL R9 G8
- 0x5C280A00, // 0084 MOVE R10 R5
- 0x7C240200, // 0085 CALL R9 1
- 0x00263209, // 0086 ADD R9 K25 R9
- 0x0024131A, // 0087 ADD R9 R9 K26
- 0x60280008, // 0088 GETGBL R10 G8
- 0x5C2C0C00, // 0089 MOVE R11 R6
- 0x7C280200, // 008A CALL R10 1
- 0x0024120A, // 008B ADD R9 R9 R10
- 0x58280004, // 008C LDCONST R10 K4
- 0x7C1C0600, // 008D CALL R7 3
- 0x70020000, // 008E JMP #0090
- 0xB0080000, // 008F RAISE 2 R0 R0
- 0x7001FFA4, // 0090 JMP #0036
- 0x580C001B, // 0091 LDCONST R3 K27
- 0xAC0C0200, // 0092 CATCH R3 1 0
- 0xB0080000, // 0093 RAISE 2 R0 R0
- 0xB80E0200, // 0094 GETNGBL R3 K1
- 0x8C0C071C, // 0095 GETMET R3 R3 K28
- 0x5814001D, // 0096 LDCONST R5 K29
- 0x5818001E, // 0097 LDCONST R6 K30
- 0x7C0C0600, // 0098 CALL R3 3
- 0x80000000, // 0099 RET 0
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x880C0104, // 0007 GETMBR R3 R0 K4
+ 0x8C0C0705, // 0008 GETMET R3 R3 K5
+ 0xB8160C00, // 0009 GETNGBL R5 K6
+ 0x8C140B07, // 000A GETMET R5 R5 K7
+ 0x5C1C0000, // 000B MOVE R7 R0
+ 0x58200008, // 000C LDCONST R8 K8
+ 0x60240013, // 000D GETGBL R9 G19
+ 0x7C240000, // 000E CALL R9 0
+ 0x7C140800, // 000F CALL R5 4
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0xB80E0200, // 0011 GETNGBL R3 K1
+ 0x60100018, // 0012 GETGBL R4 G24
+ 0x58140009, // 0013 LDCONST R5 K9
+ 0x58180008, // 0014 LDCONST R6 K8
+ 0x581C000A, // 0015 LDCONST R7 K10
+ 0x5820000B, // 0016 LDCONST R8 K11
+ 0x7C100800, // 0017 CALL R4 4
+ 0x58140003, // 0018 LDCONST R5 K3
+ 0x7C0C0400, // 0019 CALL R3 2
+ 0x880C0104, // 001A GETMBR R3 R0 K4
+ 0x8C0C0705, // 001B GETMET R3 R3 K5
+ 0xB8160C00, // 001C GETNGBL R5 K6
+ 0x8C140B0C, // 001D GETMET R5 R5 K12
+ 0x5C1C0000, // 001E MOVE R7 R0
+ 0xB8220C00, // 001F GETNGBL R8 K6
+ 0x8820110D, // 0020 GETMBR R8 R8 K13
+ 0x60240013, // 0021 GETGBL R9 G19
+ 0x7C240000, // 0022 CALL R9 0
+ 0x7C140800, // 0023 CALL R5 4
+ 0x7C0C0400, // 0024 CALL R3 2
+ 0xB80E0200, // 0025 GETNGBL R3 K1
+ 0x60100018, // 0026 GETGBL R4 G24
+ 0x58140009, // 0027 LDCONST R5 K9
+ 0xB81A0C00, // 0028 GETNGBL R6 K6
+ 0x88180D0D, // 0029 GETMBR R6 R6 K13
+ 0x581C000E, // 002A LDCONST R7 K14
+ 0x5820000B, // 002B LDCONST R8 K11
+ 0x7C100800, // 002C CALL R4 4
+ 0x58140003, // 002D LDCONST R5 K3
+ 0x7C0C0400, // 002E CALL R3 2
+ 0x600C0010, // 002F GETGBL R3 G16
+ 0x5C100400, // 0030 MOVE R4 R2
+ 0x7C0C0200, // 0031 CALL R3 1
+ 0xA8020055, // 0032 EXBLK 0 #0089
+ 0x5C100600, // 0033 MOVE R4 R3
+ 0x7C100000, // 0034 CALL R4 0
+ 0x1C140908, // 0035 EQ R5 R4 K8
+ 0x78160000, // 0036 JMPF R5 #0038
+ 0x7001FFFA, // 0037 JMP #0033
+ 0xA802003E, // 0038 EXBLK 0 #0078
+ 0x60140008, // 0039 GETGBL R5 G8
+ 0x5C180800, // 003A MOVE R6 R4
+ 0x7C140200, // 003B CALL R5 1
+ 0x94140205, // 003C GETIDX R5 R1 R5
+ 0x8C180B0F, // 003D GETMET R6 R5 K15
+ 0x58200010, // 003E LDCONST R8 K16
+ 0x7C180400, // 003F CALL R6 2
+ 0x4C1C0000, // 0040 LDNIL R7
+ 0x1C1C0C07, // 0041 EQ R7 R6 R7
+ 0x781E0005, // 0042 JMPF R7 #0049
+ 0xB81E0200, // 0043 GETNGBL R7 K1
+ 0x58200011, // 0044 LDCONST R8 K17
+ 0x58240012, // 0045 LDCONST R9 K18
+ 0x7C1C0400, // 0046 CALL R7 2
+ 0xA8040001, // 0047 EXBLK 1 1
+ 0x7001FFE9, // 0048 JMP #0033
+ 0x1C1C0D0A, // 0049 EQ R7 R6 K10
+ 0x781E0005, // 004A JMPF R7 #0051
+ 0xB81E0200, // 004B GETNGBL R7 K1
+ 0x58200013, // 004C LDCONST R8 K19
+ 0x58240012, // 004D LDCONST R9 K18
+ 0x7C1C0400, // 004E CALL R7 2
+ 0xA8040001, // 004F EXBLK 1 1
+ 0x7001FFE1, // 0050 JMP #0033
+ 0x881C0114, // 0051 GETMBR R7 R0 K20
+ 0x8C1C0F0F, // 0052 GETMET R7 R7 K15
+ 0x5C240C00, // 0053 MOVE R9 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x4C200000, // 0055 LDNIL R8
+ 0x1C200E08, // 0056 EQ R8 R7 R8
+ 0x78220009, // 0057 JMPF R8 #0062
+ 0xB8220200, // 0058 GETNGBL R8 K1
+ 0x60240008, // 0059 GETGBL R9 G8
+ 0x5C280C00, // 005A MOVE R10 R6
+ 0x7C240200, // 005B CALL R9 1
+ 0x00262A09, // 005C ADD R9 K21 R9
+ 0x00241316, // 005D ADD R9 R9 K22
+ 0x58280003, // 005E LDCONST R10 K3
+ 0x7C200400, // 005F CALL R8 2
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7001FFD0, // 0061 JMP #0033
+ 0x5C200E00, // 0062 MOVE R8 R7
+ 0x5C240000, // 0063 MOVE R9 R0
+ 0x5C280800, // 0064 MOVE R10 R4
+ 0x5C2C0A00, // 0065 MOVE R11 R5
+ 0x7C200600, // 0066 CALL R8 3
+ 0x88240104, // 0067 GETMBR R9 R0 K4
+ 0x8C241305, // 0068 GETMET R9 R9 K5
+ 0x5C2C1000, // 0069 MOVE R11 R8
+ 0x7C240400, // 006A CALL R9 2
+ 0xB8260200, // 006B GETNGBL R9 K1
+ 0x60280018, // 006C GETGBL R10 G24
+ 0x582C0009, // 006D LDCONST R11 K9
+ 0x5C300800, // 006E MOVE R12 R4
+ 0x5C340C00, // 006F MOVE R13 R6
+ 0x8C380117, // 0070 GETMET R14 R0 K23
+ 0x5C400A00, // 0071 MOVE R16 R5
+ 0x7C380400, // 0072 CALL R14 2
+ 0x7C280800, // 0073 CALL R10 4
+ 0x582C0003, // 0074 LDCONST R11 K3
+ 0x7C240400, // 0075 CALL R9 2
+ 0xA8040001, // 0076 EXBLK 1 1
+ 0x7002000F, // 0077 JMP #0088
+ 0xAC140002, // 0078 CATCH R5 0 2
+ 0x7002000C, // 0079 JMP #0087
+ 0xB81E0200, // 007A GETNGBL R7 K1
+ 0x60200008, // 007B GETGBL R8 G8
+ 0x5C240A00, // 007C MOVE R9 R5
+ 0x7C200200, // 007D CALL R8 1
+ 0x00223008, // 007E ADD R8 K24 R8
+ 0x00201119, // 007F ADD R8 R8 K25
+ 0x60240008, // 0080 GETGBL R9 G8
+ 0x5C280C00, // 0081 MOVE R10 R6
+ 0x7C240200, // 0082 CALL R9 1
+ 0x00201009, // 0083 ADD R8 R8 R9
+ 0x58240003, // 0084 LDCONST R9 K3
+ 0x7C1C0400, // 0085 CALL R7 2
+ 0x70020000, // 0086 JMP #0088
+ 0xB0080000, // 0087 RAISE 2 R0 R0
+ 0x7001FFA9, // 0088 JMP #0033
+ 0x580C001A, // 0089 LDCONST R3 K26
+ 0xAC0C0200, // 008A CATCH R3 1 0
+ 0xB0080000, // 008B RAISE 2 R0 R0
+ 0xB80E3600, // 008C GETNGBL R3 K27
+ 0x8C0C071C, // 008D GETMET R3 R3 K28
+ 0x5814001D, // 008E LDCONST R5 K29
+ 0x5818001E, // 008F LDCONST R6 K30
+ 0x7C0C0600, // 0090 CALL R3 3
+ 0x80000000, // 0091 RET 0
})
)
);
@@ -3094,10 +3057,10 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
/* K4 */ be_nested_str_weak(get_fabric_compressed),
/* K5 */ be_nested_str_weak(tohex),
/* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
- /* K10 */ be_const_int(3),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
+ /* K9 */ be_const_int(3),
+ /* K10 */ be_nested_str_weak(tasmota),
/* K11 */ be_nested_str_weak(eth),
/* K12 */ be_nested_str_weak(find),
/* K13 */ be_nested_str_weak(up),
@@ -3117,9 +3080,9 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
}),
be_str_weak(mdns_announce_op_discovery),
&be_const_str_solidified,
- ( &(const binstruction[121]) { /* code */
+ ( &(const binstruction[115]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
- 0xA8020064, // 0001 EXBLK 0 #0067
+ 0xA802005F, // 0001 EXBLK 0 #0062
0x8C0C0301, // 0002 GETMET R3 R1 K1
0x7C0C0200, // 0003 CALL R3 1
0x8C0C0702, // 0004 GETMET R3 R3 K2
@@ -3135,110 +3098,104 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
0x7C180200, // 000E CALL R6 1
0x00140A06, // 000F ADD R5 R5 R6
0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x8C180D08, // 0011 GETMET R6 R6 K8
- 0x00221205, // 0012 ADD R8 K9 R5
- 0x5824000A, // 0013 LDCONST R9 K10
- 0x7C180600, // 0014 CALL R6 3
- 0xB81A0E00, // 0015 GETNGBL R6 K7
- 0x8C180D0B, // 0016 GETMET R6 R6 K11
- 0x7C180200, // 0017 CALL R6 1
- 0x8C180D0C, // 0018 GETMET R6 R6 K12
- 0x5820000D, // 0019 LDCONST R8 K13
- 0x7C180400, // 001A CALL R6 2
- 0x781A0020, // 001B JMPF R6 #003D
- 0xB81A0E00, // 001C GETNGBL R6 K7
- 0x8C180D08, // 001D GETMET R6 R6 K8
- 0x60200018, // 001E GETGBL R8 G24
- 0x5824000E, // 001F LDCONST R9 K14
- 0x5828000B, // 0020 LDCONST R10 K11
- 0x5C2C0A00, // 0021 MOVE R11 R5
- 0x8830010F, // 0022 GETMBR R12 R0 K15
- 0x7C200800, // 0023 CALL R8 4
- 0x5824000A, // 0024 LDCONST R9 K10
- 0x7C180600, // 0025 CALL R6 3
- 0x8C180510, // 0026 GETMET R6 R2 K16
- 0x58200011, // 0027 LDCONST R8 K17
- 0x58240012, // 0028 LDCONST R9 K18
- 0x542A15A3, // 0029 LDINT R10 5540
- 0x4C2C0000, // 002A LDNIL R11
- 0x5C300A00, // 002B MOVE R12 R5
- 0x8834010F, // 002C GETMBR R13 R0 K15
- 0x7C180E00, // 002D CALL R6 7
- 0x8C180905, // 002E GETMET R6 R4 K5
- 0x7C180200, // 002F CALL R6 1
- 0x001A2606, // 0030 ADD R6 K19 R6
- 0xB81E0E00, // 0031 GETNGBL R7 K7
- 0x8C1C0F08, // 0032 GETMET R7 R7 K8
- 0x00262806, // 0033 ADD R9 K20 R6
- 0x5828000A, // 0034 LDCONST R10 K10
- 0x7C1C0600, // 0035 CALL R7 3
- 0x8C1C0515, // 0036 GETMET R7 R2 K21
- 0x58240011, // 0037 LDCONST R9 K17
- 0x58280012, // 0038 LDCONST R10 K18
- 0x5C2C0A00, // 0039 MOVE R11 R5
- 0x8830010F, // 003A GETMBR R12 R0 K15
- 0x5C340C00, // 003B MOVE R13 R6
- 0x7C1C0C00, // 003C CALL R7 6
- 0xB81A0E00, // 003D GETNGBL R6 K7
- 0x8C180D16, // 003E GETMET R6 R6 K22
- 0x7C180200, // 003F CALL R6 1
- 0x8C180D0C, // 0040 GETMET R6 R6 K12
- 0x5820000D, // 0041 LDCONST R8 K13
- 0x7C180400, // 0042 CALL R6 2
- 0x781A0020, // 0043 JMPF R6 #0065
- 0xB81A0E00, // 0044 GETNGBL R6 K7
- 0x8C180D08, // 0045 GETMET R6 R6 K8
- 0x60200018, // 0046 GETGBL R8 G24
- 0x5824000E, // 0047 LDCONST R9 K14
- 0x58280016, // 0048 LDCONST R10 K22
- 0x5C2C0A00, // 0049 MOVE R11 R5
- 0x88300117, // 004A GETMBR R12 R0 K23
- 0x7C200800, // 004B CALL R8 4
- 0x5824000A, // 004C LDCONST R9 K10
- 0x7C180600, // 004D CALL R6 3
- 0x8C180510, // 004E GETMET R6 R2 K16
- 0x58200011, // 004F LDCONST R8 K17
- 0x58240012, // 0050 LDCONST R9 K18
- 0x542A15A3, // 0051 LDINT R10 5540
- 0x4C2C0000, // 0052 LDNIL R11
- 0x5C300A00, // 0053 MOVE R12 R5
- 0x88340117, // 0054 GETMBR R13 R0 K23
- 0x7C180E00, // 0055 CALL R6 7
- 0x8C180905, // 0056 GETMET R6 R4 K5
- 0x7C180200, // 0057 CALL R6 1
- 0x001A2606, // 0058 ADD R6 K19 R6
- 0xB81E0E00, // 0059 GETNGBL R7 K7
- 0x8C1C0F08, // 005A GETMET R7 R7 K8
- 0x00262806, // 005B ADD R9 K20 R6
- 0x5828000A, // 005C LDCONST R10 K10
- 0x7C1C0600, // 005D CALL R7 3
- 0x8C1C0515, // 005E GETMET R7 R2 K21
- 0x58240011, // 005F LDCONST R9 K17
- 0x58280012, // 0060 LDCONST R10 K18
- 0x5C2C0A00, // 0061 MOVE R11 R5
- 0x88300117, // 0062 GETMBR R12 R0 K23
- 0x5C340C00, // 0063 MOVE R13 R6
- 0x7C1C0C00, // 0064 CALL R7 6
- 0xA8040001, // 0065 EXBLK 1 1
- 0x70020010, // 0066 JMP #0078
- 0xAC0C0002, // 0067 CATCH R3 0 2
- 0x7002000D, // 0068 JMP #0077
- 0xB8160E00, // 0069 GETNGBL R5 K7
- 0x8C140B08, // 006A GETMET R5 R5 K8
- 0x601C0008, // 006B GETGBL R7 G8
- 0x5C200600, // 006C MOVE R8 R3
- 0x7C1C0200, // 006D CALL R7 1
- 0x001E3007, // 006E ADD R7 K24 R7
- 0x001C0F19, // 006F ADD R7 R7 K25
- 0x60200008, // 0070 GETGBL R8 G8
- 0x5C240800, // 0071 MOVE R9 R4
- 0x7C200200, // 0072 CALL R8 1
- 0x001C0E08, // 0073 ADD R7 R7 R8
- 0x5820001A, // 0074 LDCONST R8 K26
- 0x7C140600, // 0075 CALL R5 3
- 0x70020000, // 0076 JMP #0078
- 0xB0080000, // 0077 RAISE 2 R0 R0
- 0x80000000, // 0078 RET 0
+ 0x001E1005, // 0011 ADD R7 K8 R5
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0xB81A1400, // 0014 GETNGBL R6 K10
+ 0x8C180D0B, // 0015 GETMET R6 R6 K11
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180D0C, // 0017 GETMET R6 R6 K12
+ 0x5820000D, // 0018 LDCONST R8 K13
+ 0x7C180400, // 0019 CALL R6 2
+ 0x781A001E, // 001A JMPF R6 #003A
+ 0xB81A0E00, // 001B GETNGBL R6 K7
+ 0x601C0018, // 001C GETGBL R7 G24
+ 0x5820000E, // 001D LDCONST R8 K14
+ 0x5824000B, // 001E LDCONST R9 K11
+ 0x5C280A00, // 001F MOVE R10 R5
+ 0x882C010F, // 0020 GETMBR R11 R0 K15
+ 0x7C1C0800, // 0021 CALL R7 4
+ 0x58200009, // 0022 LDCONST R8 K9
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8C180510, // 0024 GETMET R6 R2 K16
+ 0x58200011, // 0025 LDCONST R8 K17
+ 0x58240012, // 0026 LDCONST R9 K18
+ 0x542A15A3, // 0027 LDINT R10 5540
+ 0x4C2C0000, // 0028 LDNIL R11
+ 0x5C300A00, // 0029 MOVE R12 R5
+ 0x8834010F, // 002A GETMBR R13 R0 K15
+ 0x7C180E00, // 002B CALL R6 7
+ 0x8C180905, // 002C GETMET R6 R4 K5
+ 0x7C180200, // 002D CALL R6 1
+ 0x001A2606, // 002E ADD R6 K19 R6
+ 0xB81E0E00, // 002F GETNGBL R7 K7
+ 0x00222806, // 0030 ADD R8 K20 R6
+ 0x58240009, // 0031 LDCONST R9 K9
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x8C1C0515, // 0033 GETMET R7 R2 K21
+ 0x58240011, // 0034 LDCONST R9 K17
+ 0x58280012, // 0035 LDCONST R10 K18
+ 0x5C2C0A00, // 0036 MOVE R11 R5
+ 0x8830010F, // 0037 GETMBR R12 R0 K15
+ 0x5C340C00, // 0038 MOVE R13 R6
+ 0x7C1C0C00, // 0039 CALL R7 6
+ 0xB81A1400, // 003A GETNGBL R6 K10
+ 0x8C180D16, // 003B GETMET R6 R6 K22
+ 0x7C180200, // 003C CALL R6 1
+ 0x8C180D0C, // 003D GETMET R6 R6 K12
+ 0x5820000D, // 003E LDCONST R8 K13
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A001E, // 0040 JMPF R6 #0060
+ 0xB81A0E00, // 0041 GETNGBL R6 K7
+ 0x601C0018, // 0042 GETGBL R7 G24
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x58240016, // 0044 LDCONST R9 K22
+ 0x5C280A00, // 0045 MOVE R10 R5
+ 0x882C0117, // 0046 GETMBR R11 R0 K23
+ 0x7C1C0800, // 0047 CALL R7 4
+ 0x58200009, // 0048 LDCONST R8 K9
+ 0x7C180400, // 0049 CALL R6 2
+ 0x8C180510, // 004A GETMET R6 R2 K16
+ 0x58200011, // 004B LDCONST R8 K17
+ 0x58240012, // 004C LDCONST R9 K18
+ 0x542A15A3, // 004D LDINT R10 5540
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x5C300A00, // 004F MOVE R12 R5
+ 0x88340117, // 0050 GETMBR R13 R0 K23
+ 0x7C180E00, // 0051 CALL R6 7
+ 0x8C180905, // 0052 GETMET R6 R4 K5
+ 0x7C180200, // 0053 CALL R6 1
+ 0x001A2606, // 0054 ADD R6 K19 R6
+ 0xB81E0E00, // 0055 GETNGBL R7 K7
+ 0x00222806, // 0056 ADD R8 K20 R6
+ 0x58240009, // 0057 LDCONST R9 K9
+ 0x7C1C0400, // 0058 CALL R7 2
+ 0x8C1C0515, // 0059 GETMET R7 R2 K21
+ 0x58240011, // 005A LDCONST R9 K17
+ 0x58280012, // 005B LDCONST R10 K18
+ 0x5C2C0A00, // 005C MOVE R11 R5
+ 0x88300117, // 005D GETMBR R12 R0 K23
+ 0x5C340C00, // 005E MOVE R13 R6
+ 0x7C1C0C00, // 005F CALL R7 6
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7002000F, // 0061 JMP #0072
+ 0xAC0C0002, // 0062 CATCH R3 0 2
+ 0x7002000C, // 0063 JMP #0071
+ 0xB8160E00, // 0064 GETNGBL R5 K7
+ 0x60180008, // 0065 GETGBL R6 G8
+ 0x5C1C0600, // 0066 MOVE R7 R3
+ 0x7C180200, // 0067 CALL R6 1
+ 0x001A3006, // 0068 ADD R6 K24 R6
+ 0x00180D19, // 0069 ADD R6 R6 K25
+ 0x601C0008, // 006A GETGBL R7 G8
+ 0x5C200800, // 006B MOVE R8 R4
+ 0x7C1C0200, // 006C CALL R7 1
+ 0x00180C07, // 006D ADD R6 R6 R7
+ 0x581C001A, // 006E LDCONST R7 K26
+ 0x7C140400, // 006F CALL R5 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
})
)
);
@@ -3518,20 +3475,19 @@ be_local_closure(class_Matter_Device__start_udp, /* name */
&be_class_Matter_Device,
}),
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(UDPServer),
- /* K7 */ be_nested_str_weak(),
- /* K8 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(UDPServer),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(start),
}),
be_str_weak(_start_udp),
&be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
+ ( &(const binstruction[27]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x780A0000, // 0001 JMPF R2 #0003
0x80000400, // 0002 RET 0
@@ -3540,26 +3496,25 @@ be_local_closure(class_Matter_Device__start_udp, /* name */
0x780A0000, // 0005 JMPF R2 #0007
0x540615A3, // 0006 LDINT R1 5540
0xB80A0200, // 0007 GETNGBL R2 K1
- 0x8C080502, // 0008 GETMET R2 R2 K2
- 0x60100008, // 0009 GETGBL R4 G8
- 0x5C140200, // 000A MOVE R5 R1
- 0x7C100200, // 000B CALL R4 1
- 0x00120604, // 000C ADD R4 K3 R4
- 0x58140004, // 000D LDCONST R5 K4
- 0x7C080600, // 000E CALL R2 3
- 0xB80A0A00, // 000F GETNGBL R2 K5
- 0x8C080506, // 0010 GETMET R2 R2 K6
- 0x5C100000, // 0011 MOVE R4 R0
- 0x58140007, // 0012 LDCONST R5 K7
- 0x5C180200, // 0013 MOVE R6 R1
- 0x7C080800, // 0014 CALL R2 4
- 0x90020002, // 0015 SETMBR R0 K0 R2
- 0x88080100, // 0016 GETMBR R2 R0 K0
- 0x8C080508, // 0017 GETMET R2 R2 K8
- 0x84100000, // 0018 CLOSURE R4 P0
- 0x7C080400, // 0019 CALL R2 2
- 0xA0000000, // 001A CLOSE R0
- 0x80000000, // 001B RET 0
+ 0x600C0008, // 0008 GETGBL R3 G8
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x000E0403, // 000B ADD R3 K2 R3
+ 0x58100003, // 000C LDCONST R4 K3
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0800, // 000E GETNGBL R2 K4
+ 0x8C080505, // 000F GETMET R2 R2 K5
+ 0x5C100000, // 0010 MOVE R4 R0
+ 0x58140006, // 0011 LDCONST R5 K6
+ 0x5C180200, // 0012 MOVE R6 R1
+ 0x7C080800, // 0013 CALL R2 4
+ 0x90020002, // 0014 SETMBR R0 K0 R2
+ 0x88080100, // 0015 GETMBR R2 R0 K0
+ 0x8C080507, // 0016 GETMET R2 R2 K7
+ 0x84100000, // 0017 CLOSURE R4 P0
+ 0x7C080400, // 0018 CALL R2 2
+ 0xA0000000, // 0019 CLOSE R0
+ 0x80000000, // 001A RET 0
})
)
);
@@ -3714,7 +3669,7 @@ be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_check_config_ep, /* name */
be_nested_proto(
- 11, /* nstack */
+ 10, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3722,26 +3677,25 @@ be_local_closure(class_Matter_Device_check_config_ep, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
+ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(plugins_config),
/* K1 */ be_nested_str_weak(keys),
/* K2 */ be_nested_str_weak(push),
/* K3 */ be_nested_str_weak(stop_iteration),
/* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_nested_str_weak(matter),
- /* K11 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
- /* K13 */ be_nested_str_weak(next_ep),
- /* K14 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
+ /* K12 */ be_nested_str_weak(next_ep),
+ /* K13 */ be_const_int(1),
}),
be_str_weak(check_config_ep),
&be_const_str_solidified,
- ( &(const binstruction[79]) { /* code */
+ ( &(const binstruction[77]) { /* code */
0x50040000, // 0000 LDBOOL R1 0 0
0x60080012, // 0001 GETGBL R2 G18
0x7C080000, // 0002 CALL R2 0
@@ -3765,62 +3719,60 @@ be_local_closure(class_Matter_Device_check_config_ep, /* name */
0x600C0010, // 0014 GETGBL R3 G16
0x5C100400, // 0015 MOVE R4 R2
0x7C0C0200, // 0016 CALL R3 1
- 0xA8020032, // 0017 EXBLK 0 #004B
+ 0xA8020030, // 0017 EXBLK 0 #0049
0x5C100600, // 0018 MOVE R4 R3
0x7C100000, // 0019 CALL R4 0
0x1C140904, // 001A EQ R5 R4 K4
- 0x7816000C, // 001B JMPF R5 #0029
+ 0x7816000B, // 001B JMPF R5 #0028
0xB8160A00, // 001C GETNGBL R5 K5
- 0x8C140B06, // 001D GETMET R5 R5 K6
+ 0x58180006, // 001D LDCONST R6 K6
0x581C0007, // 001E LDCONST R7 K7
- 0x58200008, // 001F LDCONST R8 K8
- 0x7C140600, // 0020 CALL R5 3
- 0x88140100, // 0021 GETMBR R5 R0 K0
- 0x8C140B09, // 0022 GETMET R5 R5 K9
- 0x601C0008, // 0023 GETGBL R7 G8
- 0x5C200800, // 0024 MOVE R8 R4
- 0x7C1C0200, // 0025 CALL R7 1
- 0x7C140400, // 0026 CALL R5 2
- 0x50040200, // 0027 LDBOOL R1 1 0
- 0x70020020, // 0028 JMP #004A
- 0xB8161400, // 0029 GETNGBL R5 K10
- 0x88140B0B, // 002A GETMBR R5 R5 K11
- 0x1C140805, // 002B EQ R5 R4 R5
- 0x7816001C, // 002C JMPF R5 #004A
- 0x50040200, // 002D LDBOOL R1 1 0
- 0xB8160A00, // 002E GETNGBL R5 K5
- 0x8C140B06, // 002F GETMET R5 R5 K6
- 0x601C0018, // 0030 GETGBL R7 G24
- 0x5820000C, // 0031 LDCONST R8 K12
- 0x5C240800, // 0032 MOVE R9 R4
- 0x8828010D, // 0033 GETMBR R10 R0 K13
- 0x7C1C0600, // 0034 CALL R7 3
- 0x58200008, // 0035 LDCONST R8 K8
- 0x7C140600, // 0036 CALL R5 3
- 0x60140008, // 0037 GETGBL R5 G8
- 0x8818010D, // 0038 GETMBR R6 R0 K13
- 0x7C140200, // 0039 CALL R5 1
- 0x88180100, // 003A GETMBR R6 R0 K0
- 0x601C0008, // 003B GETGBL R7 G8
- 0x5C200800, // 003C MOVE R8 R4
- 0x7C1C0200, // 003D CALL R7 1
- 0x88200100, // 003E GETMBR R8 R0 K0
- 0x941C1007, // 003F GETIDX R7 R8 R7
- 0x98180A07, // 0040 SETIDX R6 R5 R7
- 0x88140100, // 0041 GETMBR R5 R0 K0
- 0x8C140B09, // 0042 GETMET R5 R5 K9
- 0x601C0008, // 0043 GETGBL R7 G8
- 0x5C200800, // 0044 MOVE R8 R4
- 0x7C1C0200, // 0045 CALL R7 1
- 0x7C140400, // 0046 CALL R5 2
- 0x8814010D, // 0047 GETMBR R5 R0 K13
- 0x00140B0E, // 0048 ADD R5 R5 K14
- 0x90021A05, // 0049 SETMBR R0 K13 R5
- 0x7001FFCC, // 004A JMP #0018
- 0x580C0003, // 004B LDCONST R3 K3
- 0xAC0C0200, // 004C CATCH R3 1 0
- 0xB0080000, // 004D RAISE 2 R0 R0
- 0x80040200, // 004E RET 1 R1
+ 0x7C140400, // 001F CALL R5 2
+ 0x88140100, // 0020 GETMBR R5 R0 K0
+ 0x8C140B08, // 0021 GETMET R5 R5 K8
+ 0x601C0008, // 0022 GETGBL R7 G8
+ 0x5C200800, // 0023 MOVE R8 R4
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x50040200, // 0026 LDBOOL R1 1 0
+ 0x7002001F, // 0027 JMP #0048
+ 0xB8161200, // 0028 GETNGBL R5 K9
+ 0x88140B0A, // 0029 GETMBR R5 R5 K10
+ 0x1C140805, // 002A EQ R5 R4 R5
+ 0x7816001B, // 002B JMPF R5 #0048
+ 0x50040200, // 002C LDBOOL R1 1 0
+ 0xB8160A00, // 002D GETNGBL R5 K5
+ 0x60180018, // 002E GETGBL R6 G24
+ 0x581C000B, // 002F LDCONST R7 K11
+ 0x5C200800, // 0030 MOVE R8 R4
+ 0x8824010C, // 0031 GETMBR R9 R0 K12
+ 0x7C180600, // 0032 CALL R6 3
+ 0x581C0007, // 0033 LDCONST R7 K7
+ 0x7C140400, // 0034 CALL R5 2
+ 0x60140008, // 0035 GETGBL R5 G8
+ 0x8818010C, // 0036 GETMBR R6 R0 K12
+ 0x7C140200, // 0037 CALL R5 1
+ 0x88180100, // 0038 GETMBR R6 R0 K0
+ 0x601C0008, // 0039 GETGBL R7 G8
+ 0x5C200800, // 003A MOVE R8 R4
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x88200100, // 003C GETMBR R8 R0 K0
+ 0x941C1007, // 003D GETIDX R7 R8 R7
+ 0x98180A07, // 003E SETIDX R6 R5 R7
+ 0x88140100, // 003F GETMBR R5 R0 K0
+ 0x8C140B08, // 0040 GETMET R5 R5 K8
+ 0x601C0008, // 0041 GETGBL R7 G8
+ 0x5C200800, // 0042 MOVE R8 R4
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x7C140400, // 0044 CALL R5 2
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x00140B0D, // 0046 ADD R5 R5 K13
+ 0x90021805, // 0047 SETMBR R0 K12 R5
+ 0x7001FFCE, // 0048 JMP #0018
+ 0x580C0003, // 0049 LDCONST R3 K3
+ 0xAC0C0200, // 004A CATCH R3 1 0
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80040200, // 004C RET 1 R1
})
)
);
@@ -4084,11 +4036,11 @@ be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name *
( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_str_weak(PASE_TIMEOUT),
/* K1 */ be_nested_str_weak(compute_manual_pairing_code),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
- /* K5 */ be_const_int(2),
- /* K6 */ be_nested_str_weak(compute_qrcode_content),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
+ /* K4 */ be_const_int(2),
+ /* K5 */ be_nested_str_weak(compute_qrcode_content),
+ /* K6 */ be_nested_str_weak(tasmota),
/* K7 */ be_nested_str_weak(publish_result),
/* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
/* K9 */ be_nested_str_weak(Matter),
@@ -4103,7 +4055,7 @@ be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name *
}),
be_str_weak(start_root_basic_commissioning),
&be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
+ ( &(const binstruction[39]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0000, // 0002 JMPF R2 #0004
@@ -4111,39 +4063,38 @@ be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name *
0x8C080101, // 0004 GETMET R2 R0 K1
0x7C080200, // 0005 CALL R2 1
0xB80E0400, // 0006 GETNGBL R3 K2
- 0x8C0C0703, // 0007 GETMET R3 R3 K3
- 0x60140018, // 0008 GETGBL R5 G24
- 0x58180004, // 0009 LDCONST R6 K4
- 0x5C1C0400, // 000A MOVE R7 R2
- 0x7C140400, // 000B CALL R5 2
- 0x58180005, // 000C LDCONST R6 K5
- 0x7C0C0600, // 000D CALL R3 3
- 0x8C0C0106, // 000E GETMET R3 R0 K6
- 0x7C0C0200, // 000F CALL R3 1
- 0xB8120400, // 0010 GETNGBL R4 K2
- 0x8C100907, // 0011 GETMET R4 R4 K7
- 0x60180018, // 0012 GETGBL R6 G24
- 0x581C0008, // 0013 LDCONST R7 K8
- 0x5C200400, // 0014 MOVE R8 R2
- 0x5C240600, // 0015 MOVE R9 R3
- 0x7C180600, // 0016 CALL R6 3
- 0x581C0009, // 0017 LDCONST R7 K9
- 0x7C100600, // 0018 CALL R4 3
- 0x8C10010A, // 0019 GETMET R4 R0 K10
- 0x8818010B, // 001A GETMBR R6 R0 K11
- 0x881C010C, // 001B GETMBR R7 R0 K12
- 0x8820010D, // 001C GETMBR R8 R0 K13
- 0x7C100800, // 001D CALL R4 4
- 0x8C10010E, // 001E GETMET R4 R0 K14
- 0x5C180200, // 001F MOVE R6 R1
- 0x881C010C, // 0020 GETMBR R7 R0 K12
- 0x8820010F, // 0021 GETMBR R8 R0 K15
- 0x8824010D, // 0022 GETMBR R9 R0 K13
- 0x88280110, // 0023 GETMBR R10 R0 K16
- 0x882C0111, // 0024 GETMBR R11 R0 K17
- 0x4C300000, // 0025 LDNIL R12
- 0x7C101000, // 0026 CALL R4 8
- 0x80000000, // 0027 RET 0
+ 0x60100018, // 0007 GETGBL R4 G24
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x5C180400, // 0009 MOVE R6 R2
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140004, // 000B LDCONST R5 K4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x8C0C0105, // 000D GETMET R3 R0 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0xB8120C00, // 000F GETNGBL R4 K6
+ 0x8C100907, // 0010 GETMET R4 R4 K7
+ 0x60180018, // 0011 GETGBL R6 G24
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x5C200400, // 0013 MOVE R8 R2
+ 0x5C240600, // 0014 MOVE R9 R3
+ 0x7C180600, // 0015 CALL R6 3
+ 0x581C0009, // 0016 LDCONST R7 K9
+ 0x7C100600, // 0017 CALL R4 3
+ 0x8C10010A, // 0018 GETMET R4 R0 K10
+ 0x8818010B, // 0019 GETMBR R6 R0 K11
+ 0x881C010C, // 001A GETMBR R7 R0 K12
+ 0x8820010D, // 001B GETMBR R8 R0 K13
+ 0x7C100800, // 001C CALL R4 4
+ 0x8C10010E, // 001D GETMET R4 R0 K14
+ 0x5C180200, // 001E MOVE R6 R1
+ 0x881C010C, // 001F GETMBR R7 R0 K12
+ 0x8820010F, // 0020 GETMBR R8 R0 K15
+ 0x8824010D, // 0021 GETMBR R9 R0 K13
+ 0x88280110, // 0022 GETMBR R10 R0 K16
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x4C300000, // 0024 LDNIL R12
+ 0x7C101000, // 0025 CALL R4 8
+ 0x80000000, // 0026 RET 0
})
)
);
@@ -4288,7 +4239,7 @@ be_local_closure(class_Matter_Device_load_param, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[36]) { /* constants */
+ ( &(const bvalue[35]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(FILENAME),
/* K2 */ be_nested_str_weak(read),
@@ -4306,32 +4257,31 @@ be_local_closure(class_Matter_Device_load_param, /* name */
/* K14 */ be_nested_str_weak(nextep),
/* K15 */ be_nested_str_weak(plugins_config),
/* K16 */ be_nested_str_weak(config),
- /* K17 */ be_nested_str_weak(tasmota),
- /* K18 */ be_nested_str_weak(log),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(adjust_next_ep),
- /* K22 */ be_nested_str_weak(check_config_ep),
- /* K23 */ be_nested_str_weak(plugins_persist),
- /* K24 */ be_nested_str_weak(plugins_config_remotes),
- /* K25 */ be_nested_str_weak(remotes),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
- /* K27 */ be_nested_str_weak(io_error),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
- /* K29 */ be_nested_str_weak(_X7C),
- /* K30 */ be_const_int(2),
- /* K31 */ be_nested_str_weak(random),
- /* K32 */ be_nested_str_weak(get),
- /* K33 */ be_const_int(0),
- /* K34 */ be_nested_str_weak(generate_random_passcode),
- /* K35 */ be_nested_str_weak(save_param),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_nested_str_weak(adjust_next_ep),
+ /* K21 */ be_nested_str_weak(check_config_ep),
+ /* K22 */ be_nested_str_weak(plugins_persist),
+ /* K23 */ be_nested_str_weak(plugins_config_remotes),
+ /* K24 */ be_nested_str_weak(remotes),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
+ /* K26 */ be_nested_str_weak(io_error),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
+ /* K28 */ be_nested_str_weak(_X7C),
+ /* K29 */ be_const_int(2),
+ /* K30 */ be_nested_str_weak(random),
+ /* K31 */ be_nested_str_weak(get),
+ /* K32 */ be_const_int(0),
+ /* K33 */ be_nested_str_weak(generate_random_passcode),
+ /* K34 */ be_nested_str_weak(save_param),
}),
be_str_weak(load_param),
&be_const_str_solidified,
- ( &(const binstruction[130]) { /* code */
+ ( &(const binstruction[127]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x50080000, // 0001 LDBOOL R2 0 0
- 0xA8020050, // 0002 EXBLK 0 #0054
+ 0xA802004E, // 0002 EXBLK 0 #0052
0x600C0011, // 0003 GETGBL R3 G17
0x88100101, // 0004 GETMBR R4 R0 K1
0x7C0C0200, // 0005 CALL R3 1
@@ -4379,86 +4329,83 @@ be_local_closure(class_Matter_Device_load_param, /* name */
0x881C010F, // 002F GETMBR R7 R0 K15
0x4C200000, // 0030 LDNIL R8
0x201C0E08, // 0031 NE R7 R7 R8
- 0x781E000E, // 0032 JMPF R7 #0042
+ 0x781E000D, // 0032 JMPF R7 #0041
0xB81E2200, // 0033 GETNGBL R7 K17
- 0x8C1C0F12, // 0034 GETMET R7 R7 K18
- 0x60240018, // 0035 GETGBL R9 G24
- 0x58280013, // 0036 LDCONST R10 K19
- 0x882C010F, // 0037 GETMBR R11 R0 K15
- 0x7C240400, // 0038 CALL R9 2
- 0x58280014, // 0039 LDCONST R10 K20
- 0x7C1C0600, // 003A CALL R7 3
- 0x8C1C0115, // 003B GETMET R7 R0 K21
- 0x7C1C0200, // 003C CALL R7 1
- 0x8C1C0116, // 003D GETMET R7 R0 K22
- 0x7C1C0200, // 003E CALL R7 1
- 0x5C080E00, // 003F MOVE R2 R7
- 0x501C0200, // 0040 LDBOOL R7 1 0
- 0x90022E07, // 0041 SETMBR R0 K23 R7
- 0x8C1C0D07, // 0042 GETMET R7 R6 K7
- 0x58240019, // 0043 LDCONST R9 K25
- 0x60280013, // 0044 GETGBL R10 G19
- 0x7C280000, // 0045 CALL R10 0
- 0x7C1C0600, // 0046 CALL R7 3
- 0x90023007, // 0047 SETMBR R0 K24 R7
- 0x881C0118, // 0048 GETMBR R7 R0 K24
- 0x781E0007, // 0049 JMPF R7 #0052
- 0xB81E2200, // 004A GETNGBL R7 K17
- 0x8C1C0F12, // 004B GETMET R7 R7 K18
- 0x60240008, // 004C GETGBL R9 G8
- 0x88280118, // 004D GETMBR R10 R0 K24
- 0x7C240200, // 004E CALL R9 1
- 0x00263409, // 004F ADD R9 K26 R9
- 0x58280014, // 0050 LDCONST R10 K20
- 0x7C1C0600, // 0051 CALL R7 3
- 0xA8040001, // 0052 EXBLK 1 1
- 0x70020012, // 0053 JMP #0067
- 0xAC0C0002, // 0054 CATCH R3 0 2
- 0x7002000F, // 0055 JMP #0066
- 0x2014071B, // 0056 NE R5 R3 K27
- 0x7816000C, // 0057 JMPF R5 #0065
- 0xB8162200, // 0058 GETNGBL R5 K17
- 0x8C140B12, // 0059 GETMET R5 R5 K18
- 0x601C0008, // 005A GETGBL R7 G8
- 0x5C200600, // 005B MOVE R8 R3
- 0x7C1C0200, // 005C CALL R7 1
- 0x001E3807, // 005D ADD R7 K28 R7
- 0x001C0F1D, // 005E ADD R7 R7 K29
- 0x60200008, // 005F GETGBL R8 G8
- 0x5C240800, // 0060 MOVE R9 R4
- 0x7C200200, // 0061 CALL R8 1
- 0x001C0E08, // 0062 ADD R7 R7 R8
- 0x5820001E, // 0063 LDCONST R8 K30
- 0x7C140600, // 0064 CALL R5 3
- 0x70020000, // 0065 JMP #0067
- 0xB0080000, // 0066 RAISE 2 R0 R0
- 0x880C0106, // 0067 GETMBR R3 R0 K6
- 0x4C100000, // 0068 LDNIL R4
- 0x1C0C0604, // 0069 EQ R3 R3 R4
- 0x780E000A, // 006A JMPF R3 #0076
- 0x8C0C031F, // 006B GETMET R3 R1 K31
- 0x5814001E, // 006C LDCONST R5 K30
- 0x7C0C0400, // 006D CALL R3 2
- 0x8C0C0720, // 006E GETMET R3 R3 K32
- 0x58140021, // 006F LDCONST R5 K33
- 0x5818001E, // 0070 LDCONST R6 K30
- 0x7C0C0600, // 0071 CALL R3 3
- 0x54120FFE, // 0072 LDINT R4 4095
- 0x2C0C0604, // 0073 AND R3 R3 R4
- 0x90020C03, // 0074 SETMBR R0 K6 R3
- 0x50080200, // 0075 LDBOOL R2 1 0
- 0x880C0109, // 0076 GETMBR R3 R0 K9
- 0x4C100000, // 0077 LDNIL R4
- 0x1C0C0604, // 0078 EQ R3 R3 R4
- 0x780E0003, // 0079 JMPF R3 #007E
- 0x8C0C0122, // 007A GETMET R3 R0 K34
- 0x7C0C0200, // 007B CALL R3 1
- 0x90021203, // 007C SETMBR R0 K9 R3
- 0x50080200, // 007D LDBOOL R2 1 0
- 0x780A0001, // 007E JMPF R2 #0081
- 0x8C0C0123, // 007F GETMET R3 R0 K35
- 0x7C0C0200, // 0080 CALL R3 1
- 0x80000000, // 0081 RET 0
+ 0x60200018, // 0034 GETGBL R8 G24
+ 0x58240012, // 0035 LDCONST R9 K18
+ 0x8828010F, // 0036 GETMBR R10 R0 K15
+ 0x7C200400, // 0037 CALL R8 2
+ 0x58240013, // 0038 LDCONST R9 K19
+ 0x7C1C0400, // 0039 CALL R7 2
+ 0x8C1C0114, // 003A GETMET R7 R0 K20
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x8C1C0115, // 003C GETMET R7 R0 K21
+ 0x7C1C0200, // 003D CALL R7 1
+ 0x5C080E00, // 003E MOVE R2 R7
+ 0x501C0200, // 003F LDBOOL R7 1 0
+ 0x90022C07, // 0040 SETMBR R0 K22 R7
+ 0x8C1C0D07, // 0041 GETMET R7 R6 K7
+ 0x58240018, // 0042 LDCONST R9 K24
+ 0x60280013, // 0043 GETGBL R10 G19
+ 0x7C280000, // 0044 CALL R10 0
+ 0x7C1C0600, // 0045 CALL R7 3
+ 0x90022E07, // 0046 SETMBR R0 K23 R7
+ 0x881C0117, // 0047 GETMBR R7 R0 K23
+ 0x781E0006, // 0048 JMPF R7 #0050
+ 0xB81E2200, // 0049 GETNGBL R7 K17
+ 0x60200008, // 004A GETGBL R8 G8
+ 0x88240117, // 004B GETMBR R9 R0 K23
+ 0x7C200200, // 004C CALL R8 1
+ 0x00223208, // 004D ADD R8 K25 R8
+ 0x58240013, // 004E LDCONST R9 K19
+ 0x7C1C0400, // 004F CALL R7 2
+ 0xA8040001, // 0050 EXBLK 1 1
+ 0x70020011, // 0051 JMP #0064
+ 0xAC0C0002, // 0052 CATCH R3 0 2
+ 0x7002000E, // 0053 JMP #0063
+ 0x2014071A, // 0054 NE R5 R3 K26
+ 0x7816000B, // 0055 JMPF R5 #0062
+ 0xB8162200, // 0056 GETNGBL R5 K17
+ 0x60180008, // 0057 GETGBL R6 G8
+ 0x5C1C0600, // 0058 MOVE R7 R3
+ 0x7C180200, // 0059 CALL R6 1
+ 0x001A3606, // 005A ADD R6 K27 R6
+ 0x00180D1C, // 005B ADD R6 R6 K28
+ 0x601C0008, // 005C GETGBL R7 G8
+ 0x5C200800, // 005D MOVE R8 R4
+ 0x7C1C0200, // 005E CALL R7 1
+ 0x00180C07, // 005F ADD R6 R6 R7
+ 0x581C001D, // 0060 LDCONST R7 K29
+ 0x7C140400, // 0061 CALL R5 2
+ 0x70020000, // 0062 JMP #0064
+ 0xB0080000, // 0063 RAISE 2 R0 R0
+ 0x880C0106, // 0064 GETMBR R3 R0 K6
+ 0x4C100000, // 0065 LDNIL R4
+ 0x1C0C0604, // 0066 EQ R3 R3 R4
+ 0x780E000A, // 0067 JMPF R3 #0073
+ 0x8C0C031E, // 0068 GETMET R3 R1 K30
+ 0x5814001D, // 0069 LDCONST R5 K29
+ 0x7C0C0400, // 006A CALL R3 2
+ 0x8C0C071F, // 006B GETMET R3 R3 K31
+ 0x58140020, // 006C LDCONST R5 K32
+ 0x5818001D, // 006D LDCONST R6 K29
+ 0x7C0C0600, // 006E CALL R3 3
+ 0x54120FFE, // 006F LDINT R4 4095
+ 0x2C0C0604, // 0070 AND R3 R3 R4
+ 0x90020C03, // 0071 SETMBR R0 K6 R3
+ 0x50080200, // 0072 LDBOOL R2 1 0
+ 0x880C0109, // 0073 GETMBR R3 R0 K9
+ 0x4C100000, // 0074 LDNIL R4
+ 0x1C0C0604, // 0075 EQ R3 R3 R4
+ 0x780E0003, // 0076 JMPF R3 #007B
+ 0x8C0C0121, // 0077 GETMET R3 R0 K33
+ 0x7C0C0200, // 0078 CALL R3 1
+ 0x90021203, // 0079 SETMBR R0 K9 R3
+ 0x50080200, // 007A LDBOOL R2 1 0
+ 0x780A0001, // 007B JMPF R2 #007E
+ 0x8C0C0122, // 007C GETMET R3 R0 K34
+ 0x7C0C0200, // 007D CALL R3 1
+ 0x80000000, // 007E RET 0
})
)
);
@@ -4859,9 +4806,9 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
}),
be_str_weak(mdns_remove_op_discovery),
&be_const_str_solidified,
- ( &(const binstruction[80]) { /* code */
+ ( &(const binstruction[77]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
- 0xA802003B, // 0001 EXBLK 0 #003E
+ 0xA8020039, // 0001 EXBLK 0 #003C
0x8C0C0301, // 0002 GETMET R3 R1 K1
0x7C0C0200, // 0003 CALL R3 1
0x8C0C0702, // 0004 GETMET R3 R3 K2
@@ -4882,64 +4829,61 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
0x8C180D09, // 0013 GETMET R6 R6 K9
0x5820000A, // 0014 LDCONST R8 K10
0x7C180400, // 0015 CALL R6 2
- 0x781A000E, // 0016 JMPF R6 #0026
- 0xB81A0E00, // 0017 GETNGBL R6 K7
- 0x8C180D0B, // 0018 GETMET R6 R6 K11
- 0x60200018, // 0019 GETGBL R8 G24
- 0x5824000C, // 001A LDCONST R9 K12
- 0x58280008, // 001B LDCONST R10 K8
- 0x5C2C0A00, // 001C MOVE R11 R5
- 0x7C200600, // 001D CALL R8 3
- 0x5824000D, // 001E LDCONST R9 K13
- 0x7C180600, // 001F CALL R6 3
- 0x8C18050E, // 0020 GETMET R6 R2 K14
- 0x5820000F, // 0021 LDCONST R8 K15
- 0x58240010, // 0022 LDCONST R9 K16
- 0x5C280A00, // 0023 MOVE R10 R5
- 0x882C0111, // 0024 GETMBR R11 R0 K17
- 0x7C180A00, // 0025 CALL R6 5
- 0xB81A0E00, // 0026 GETNGBL R6 K7
- 0x8C180D12, // 0027 GETMET R6 R6 K18
- 0x7C180200, // 0028 CALL R6 1
- 0x8C180D09, // 0029 GETMET R6 R6 K9
- 0x5820000A, // 002A LDCONST R8 K10
- 0x7C180400, // 002B CALL R6 2
- 0x781A000E, // 002C JMPF R6 #003C
- 0xB81A0E00, // 002D GETNGBL R6 K7
- 0x8C180D0B, // 002E GETMET R6 R6 K11
- 0x60200018, // 002F GETGBL R8 G24
- 0x5824000C, // 0030 LDCONST R9 K12
- 0x58280012, // 0031 LDCONST R10 K18
- 0x5C2C0A00, // 0032 MOVE R11 R5
- 0x7C200600, // 0033 CALL R8 3
- 0x5824000D, // 0034 LDCONST R9 K13
- 0x7C180600, // 0035 CALL R6 3
- 0x8C18050E, // 0036 GETMET R6 R2 K14
- 0x5820000F, // 0037 LDCONST R8 K15
- 0x58240010, // 0038 LDCONST R9 K16
- 0x5C280A00, // 0039 MOVE R10 R5
- 0x882C0113, // 003A GETMBR R11 R0 K19
- 0x7C180A00, // 003B CALL R6 5
- 0xA8040001, // 003C EXBLK 1 1
- 0x70020010, // 003D JMP #004F
- 0xAC0C0002, // 003E CATCH R3 0 2
- 0x7002000D, // 003F JMP #004E
- 0xB8160E00, // 0040 GETNGBL R5 K7
- 0x8C140B0B, // 0041 GETMET R5 R5 K11
- 0x601C0008, // 0042 GETGBL R7 G8
- 0x5C200600, // 0043 MOVE R8 R3
- 0x7C1C0200, // 0044 CALL R7 1
- 0x001E2807, // 0045 ADD R7 K20 R7
- 0x001C0F15, // 0046 ADD R7 R7 K21
- 0x60200008, // 0047 GETGBL R8 G8
- 0x5C240800, // 0048 MOVE R9 R4
- 0x7C200200, // 0049 CALL R8 1
- 0x001C0E08, // 004A ADD R7 R7 R8
- 0x58200016, // 004B LDCONST R8 K22
- 0x7C140600, // 004C CALL R5 3
- 0x70020000, // 004D JMP #004F
- 0xB0080000, // 004E RAISE 2 R0 R0
- 0x80000000, // 004F RET 0
+ 0x781A000D, // 0016 JMPF R6 #0025
+ 0xB81A1600, // 0017 GETNGBL R6 K11
+ 0x601C0018, // 0018 GETGBL R7 G24
+ 0x5820000C, // 0019 LDCONST R8 K12
+ 0x58240008, // 001A LDCONST R9 K8
+ 0x5C280A00, // 001B MOVE R10 R5
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x5820000D, // 001D LDCONST R8 K13
+ 0x7C180400, // 001E CALL R6 2
+ 0x8C18050E, // 001F GETMET R6 R2 K14
+ 0x5820000F, // 0020 LDCONST R8 K15
+ 0x58240010, // 0021 LDCONST R9 K16
+ 0x5C280A00, // 0022 MOVE R10 R5
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x7C180A00, // 0024 CALL R6 5
+ 0xB81A0E00, // 0025 GETNGBL R6 K7
+ 0x8C180D12, // 0026 GETMET R6 R6 K18
+ 0x7C180200, // 0027 CALL R6 1
+ 0x8C180D09, // 0028 GETMET R6 R6 K9
+ 0x5820000A, // 0029 LDCONST R8 K10
+ 0x7C180400, // 002A CALL R6 2
+ 0x781A000D, // 002B JMPF R6 #003A
+ 0xB81A1600, // 002C GETNGBL R6 K11
+ 0x601C0018, // 002D GETGBL R7 G24
+ 0x5820000C, // 002E LDCONST R8 K12
+ 0x58240012, // 002F LDCONST R9 K18
+ 0x5C280A00, // 0030 MOVE R10 R5
+ 0x7C1C0600, // 0031 CALL R7 3
+ 0x5820000D, // 0032 LDCONST R8 K13
+ 0x7C180400, // 0033 CALL R6 2
+ 0x8C18050E, // 0034 GETMET R6 R2 K14
+ 0x5820000F, // 0035 LDCONST R8 K15
+ 0x58240010, // 0036 LDCONST R9 K16
+ 0x5C280A00, // 0037 MOVE R10 R5
+ 0x882C0113, // 0038 GETMBR R11 R0 K19
+ 0x7C180A00, // 0039 CALL R6 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC0C0002, // 003C CATCH R3 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8161600, // 003E GETNGBL R5 K11
+ 0x60180008, // 003F GETGBL R6 G8
+ 0x5C1C0600, // 0040 MOVE R7 R3
+ 0x7C180200, // 0041 CALL R6 1
+ 0x001A2806, // 0042 ADD R6 K20 R6
+ 0x00180D15, // 0043 ADD R6 R6 K21
+ 0x601C0008, // 0044 GETGBL R7 G8
+ 0x5C200800, // 0045 MOVE R8 R4
+ 0x7C1C0200, // 0046 CALL R7 1
+ 0x00180C07, // 0047 ADD R6 R6 R7
+ 0x581C0016, // 0048 LDCONST R7 K22
+ 0x7C140400, // 0049 CALL R5 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
})
)
);
@@ -5177,7 +5121,7 @@ be_local_closure(class_Matter_Device_MtrJoin, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_save_param, /* name */
be_nested_proto(
- 10, /* nstack */
+ 9, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -5185,7 +5129,7 @@ be_local_closure(class_Matter_Device_save_param, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[29]) { /* constants */
/* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(update_remotes_info),
/* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
@@ -5208,18 +5152,17 @@ be_local_closure(class_Matter_Device_save_param, /* name */
/* K19 */ be_nested_str_weak(w),
/* K20 */ be_nested_str_weak(write),
/* K21 */ be_nested_str_weak(close),
- /* K22 */ be_nested_str_weak(tasmota),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
- /* K25 */ be_nested_str_weak(_X20and_X20configuration),
- /* K26 */ be_nested_str_weak(),
- /* K27 */ be_const_int(2),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K29 */ be_nested_str_weak(_X7C),
+ /* K22 */ be_nested_str_weak(log),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
+ /* K24 */ be_nested_str_weak(_X20and_X20configuration),
+ /* K25 */ be_nested_str_weak(),
+ /* K26 */ be_const_int(2),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K28 */ be_nested_str_weak(_X7C),
}),
be_str_weak(save_param),
&be_const_str_solidified,
- ( &(const binstruction[82]) { /* code */
+ ( &(const binstruction[80]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080101, // 0001 GETMET R2 R0 K1
0x7C080200, // 0002 CALL R2 1
@@ -5257,7 +5200,7 @@ be_local_closure(class_Matter_Device_save_param, /* name */
0x7C0C0400, // 0022 CALL R3 2
0x00080403, // 0023 ADD R2 R2 R3
0x00080511, // 0024 ADD R2 R2 K17
- 0xA8020018, // 0025 EXBLK 0 #003F
+ 0xA8020017, // 0025 EXBLK 0 #003E
0x600C0011, // 0026 GETGBL R3 G17
0x88100112, // 0027 GETMBR R4 R0 K18
0x58140013, // 0028 LDCONST R5 K19
@@ -5268,40 +5211,38 @@ be_local_closure(class_Matter_Device_save_param, /* name */
0x8C100715, // 002D GETMET R4 R3 K21
0x7C100200, // 002E CALL R4 1
0xB8122C00, // 002F GETNGBL R4 K22
- 0x8C100917, // 0030 GETMET R4 R4 K23
- 0x60180018, // 0031 GETGBL R6 G24
- 0x581C0018, // 0032 LDCONST R7 K24
- 0x8820010A, // 0033 GETMBR R8 R0 K10
- 0x78220001, // 0034 JMPF R8 #0037
- 0x58200019, // 0035 LDCONST R8 K25
- 0x70020000, // 0036 JMP #0038
- 0x5820001A, // 0037 LDCONST R8 K26
- 0x7C180400, // 0038 CALL R6 2
- 0x581C001B, // 0039 LDCONST R7 K27
- 0x7C100600, // 003A CALL R4 3
- 0xA8040001, // 003B EXBLK 1 1
- 0x80040400, // 003C RET 1 R2
- 0xA8040001, // 003D EXBLK 1 1
- 0x70020011, // 003E JMP #0051
- 0xAC0C0002, // 003F CATCH R3 0 2
- 0x7002000E, // 0040 JMP #0050
- 0xB8162C00, // 0041 GETNGBL R5 K22
- 0x8C140B17, // 0042 GETMET R5 R5 K23
- 0x601C0008, // 0043 GETGBL R7 G8
- 0x5C200600, // 0044 MOVE R8 R3
- 0x7C1C0200, // 0045 CALL R7 1
- 0x001E3807, // 0046 ADD R7 K28 R7
- 0x001C0F1D, // 0047 ADD R7 R7 K29
- 0x60200008, // 0048 GETGBL R8 G8
- 0x5C240800, // 0049 MOVE R9 R4
- 0x7C200200, // 004A CALL R8 1
- 0x001C0E08, // 004B ADD R7 R7 R8
- 0x5820001B, // 004C LDCONST R8 K27
- 0x7C140600, // 004D CALL R5 3
- 0x80040400, // 004E RET 1 R2
- 0x70020000, // 004F JMP #0051
- 0xB0080000, // 0050 RAISE 2 R0 R0
- 0x80000000, // 0051 RET 0
+ 0x60140018, // 0030 GETGBL R5 G24
+ 0x58180017, // 0031 LDCONST R6 K23
+ 0x881C010A, // 0032 GETMBR R7 R0 K10
+ 0x781E0001, // 0033 JMPF R7 #0036
+ 0x581C0018, // 0034 LDCONST R7 K24
+ 0x70020000, // 0035 JMP #0037
+ 0x581C0019, // 0036 LDCONST R7 K25
+ 0x7C140400, // 0037 CALL R5 2
+ 0x5818001A, // 0038 LDCONST R6 K26
+ 0x7C100400, // 0039 CALL R4 2
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x80040400, // 003B RET 1 R2
+ 0xA8040001, // 003C EXBLK 1 1
+ 0x70020010, // 003D JMP #004F
+ 0xAC0C0002, // 003E CATCH R3 0 2
+ 0x7002000D, // 003F JMP #004E
+ 0xB8162C00, // 0040 GETNGBL R5 K22
+ 0x60180008, // 0041 GETGBL R6 G8
+ 0x5C1C0600, // 0042 MOVE R7 R3
+ 0x7C180200, // 0043 CALL R6 1
+ 0x001A3606, // 0044 ADD R6 K27 R6
+ 0x00180D1C, // 0045 ADD R6 R6 K28
+ 0x601C0008, // 0046 GETGBL R7 G8
+ 0x5C200800, // 0047 MOVE R8 R4
+ 0x7C1C0200, // 0048 CALL R7 1
+ 0x00180C07, // 0049 ADD R6 R6 R7
+ 0x581C001A, // 004A LDCONST R7 K26
+ 0x7C140400, // 004B CALL R5 2
+ 0x80040400, // 004C RET 1 R2
+ 0x70020000, // 004D JMP #004F
+ 0xB0080000, // 004E RAISE 2 R0 R0
+ 0x80000000, // 004F RET 0
})
)
);
@@ -5795,7 +5736,7 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[41]) { /* constants */
+ ( &(const bvalue[40]) { /* constants */
/* K0 */ be_nested_str_weak(mdns),
/* K1 */ be_nested_str_weak(crypto),
/* K2 */ be_nested_str_weak(VP),
@@ -5819,28 +5760,27 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
/* K20 */ be_nested_str_weak(_matterc),
/* K21 */ be_nested_str_weak(_udp),
/* K22 */ be_nested_str_weak(mdns_pase_eth),
- /* K23 */ be_nested_str_weak(tasmota),
- /* K24 */ be_nested_str_weak(log),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20announce_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K26 */ be_nested_str_weak(eth),
- /* K27 */ be_const_int(2),
- /* K28 */ be_nested_str_weak(_L),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K30 */ be_const_int(3),
- /* K31 */ be_nested_str_weak(add_subtype),
- /* K32 */ be_nested_str_weak(_S),
- /* K33 */ be_nested_str_weak(_V),
- /* K34 */ be_nested_str_weak(_CM1),
- /* K35 */ be_nested_str_weak(hostname_wifi),
- /* K36 */ be_nested_str_weak(mdns_pase_wifi),
- /* K37 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K38 */ be_nested_str_weak(wifi),
- /* K39 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K40 */ be_nested_str_weak(_X7C),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20announce_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K25 */ be_nested_str_weak(eth),
+ /* K26 */ be_const_int(2),
+ /* K27 */ be_nested_str_weak(_L),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K29 */ be_const_int(3),
+ /* K30 */ be_nested_str_weak(add_subtype),
+ /* K31 */ be_nested_str_weak(_S),
+ /* K32 */ be_nested_str_weak(_V),
+ /* K33 */ be_nested_str_weak(_CM1),
+ /* K34 */ be_nested_str_weak(hostname_wifi),
+ /* K35 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K36 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K37 */ be_nested_str_weak(wifi),
+ /* K38 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K39 */ be_nested_str_weak(_X7C),
}),
be_str_weak(mdns_announce_PASE),
&be_const_str_solidified,
- ( &(const binstruction[236]) { /* code */
+ ( &(const binstruction[225]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
0x600C0013, // 0002 GETGBL R3 G19
@@ -5874,9 +5814,9 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
0x8C100910, // 001E GETMET R4 R4 K16
0x7C100200, // 001F CALL R4 1
0x90022204, // 0020 SETMBR R0 K17 R4
- 0xA80200B7, // 0021 EXBLK 0 #00DA
+ 0xA80200AD, // 0021 EXBLK 0 #00D0
0x88100112, // 0022 GETMBR R4 R0 K18
- 0x78120058, // 0023 JMPF R4 #007D
+ 0x78120053, // 0023 JMPF R4 #0078
0x8C100313, // 0024 GETMET R4 R1 K19
0x58180014, // 0025 LDCONST R6 K20
0x581C0015, // 0026 LDCONST R7 K21
@@ -5888,195 +5828,184 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
0x50100200, // 002C LDBOOL R4 1 0
0x90022C04, // 002D SETMBR R0 K22 R4
0xB8122E00, // 002E GETNGBL R4 K23
- 0x8C100918, // 002F GETMET R4 R4 K24
- 0x60180018, // 0030 GETGBL R6 G24
+ 0x60140018, // 002F GETGBL R5 G24
+ 0x58180018, // 0030 LDCONST R6 K24
0x581C0019, // 0031 LDCONST R7 K25
- 0x5820001A, // 0032 LDCONST R8 K26
- 0x88240111, // 0033 GETMBR R9 R0 K17
- 0x88280112, // 0034 GETMBR R10 R0 K18
- 0x7C180800, // 0035 CALL R6 4
- 0x581C001B, // 0036 LDCONST R7 K27
- 0x7C100600, // 0037 CALL R4 3
- 0x60100008, // 0038 GETGBL R4 G8
- 0x88140107, // 0039 GETMBR R5 R0 K7
- 0x541A0FFE, // 003A LDINT R6 4095
- 0x2C140A06, // 003B AND R5 R5 R6
- 0x7C100200, // 003C CALL R4 1
- 0x00123804, // 003D ADD R4 K28 R4
- 0xB8162E00, // 003E GETNGBL R5 K23
- 0x8C140B18, // 003F GETMET R5 R5 K24
- 0x001E3A04, // 0040 ADD R7 K29 R4
- 0x5820001E, // 0041 LDCONST R8 K30
- 0x7C140600, // 0042 CALL R5 3
- 0x8C14031F, // 0043 GETMET R5 R1 K31
- 0x581C0014, // 0044 LDCONST R7 K20
- 0x58200015, // 0045 LDCONST R8 K21
- 0x88240111, // 0046 GETMBR R9 R0 K17
- 0x88280112, // 0047 GETMBR R10 R0 K18
- 0x5C2C0800, // 0048 MOVE R11 R4
- 0x7C140C00, // 0049 CALL R5 6
- 0x60140008, // 004A GETGBL R5 G8
- 0x88180107, // 004B GETMBR R6 R0 K7
- 0x541E0EFF, // 004C LDINT R7 3840
- 0x2C180C07, // 004D AND R6 R6 R7
- 0x541E0007, // 004E LDINT R7 8
- 0x3C180C07, // 004F SHR R6 R6 R7
- 0x7C140200, // 0050 CALL R5 1
- 0x00164005, // 0051 ADD R5 K32 R5
- 0x5C100A00, // 0052 MOVE R4 R5
- 0xB8162E00, // 0053 GETNGBL R5 K23
- 0x8C140B18, // 0054 GETMET R5 R5 K24
- 0x001E3A04, // 0055 ADD R7 K29 R4
- 0x5820001E, // 0056 LDCONST R8 K30
- 0x7C140600, // 0057 CALL R5 3
- 0x8C14031F, // 0058 GETMET R5 R1 K31
- 0x581C0014, // 0059 LDCONST R7 K20
- 0x58200015, // 005A LDCONST R8 K21
- 0x88240111, // 005B GETMBR R9 R0 K17
- 0x88280112, // 005C GETMBR R10 R0 K18
- 0x5C2C0800, // 005D MOVE R11 R4
- 0x7C140C00, // 005E CALL R5 6
- 0x60140008, // 005F GETGBL R5 G8
- 0x88180103, // 0060 GETMBR R6 R0 K3
- 0x7C140200, // 0061 CALL R5 1
- 0x00164205, // 0062 ADD R5 K33 R5
- 0x5C100A00, // 0063 MOVE R4 R5
- 0xB8162E00, // 0064 GETNGBL R5 K23
- 0x8C140B18, // 0065 GETMET R5 R5 K24
- 0x001E3A04, // 0066 ADD R7 K29 R4
- 0x5820001E, // 0067 LDCONST R8 K30
- 0x7C140600, // 0068 CALL R5 3
- 0x8C14031F, // 0069 GETMET R5 R1 K31
- 0x581C0014, // 006A LDCONST R7 K20
- 0x58200015, // 006B LDCONST R8 K21
- 0x88240111, // 006C GETMBR R9 R0 K17
- 0x88280112, // 006D GETMBR R10 R0 K18
- 0x5C2C0800, // 006E MOVE R11 R4
- 0x7C140C00, // 006F CALL R5 6
- 0x58100022, // 0070 LDCONST R4 K34
- 0xB8162E00, // 0071 GETNGBL R5 K23
- 0x8C140B18, // 0072 GETMET R5 R5 K24
- 0x001E3A04, // 0073 ADD R7 K29 R4
- 0x5820001E, // 0074 LDCONST R8 K30
- 0x7C140600, // 0075 CALL R5 3
- 0x8C14031F, // 0076 GETMET R5 R1 K31
- 0x581C0014, // 0077 LDCONST R7 K20
- 0x58200015, // 0078 LDCONST R8 K21
- 0x88240111, // 0079 GETMBR R9 R0 K17
- 0x88280112, // 007A GETMBR R10 R0 K18
- 0x5C2C0800, // 007B MOVE R11 R4
- 0x7C140C00, // 007C CALL R5 6
- 0x88100123, // 007D GETMBR R4 R0 K35
- 0x78120058, // 007E JMPF R4 #00D8
- 0x8C100313, // 007F GETMET R4 R1 K19
- 0x58180014, // 0080 LDCONST R6 K20
- 0x581C0015, // 0081 LDCONST R7 K21
- 0x542215A3, // 0082 LDINT R8 5540
- 0x5C240600, // 0083 MOVE R9 R3
- 0x8828010E, // 0084 GETMBR R10 R0 K14
- 0x882C0123, // 0085 GETMBR R11 R0 K35
- 0x7C100E00, // 0086 CALL R4 7
- 0x50100200, // 0087 LDBOOL R4 1 0
- 0x90024804, // 0088 SETMBR R0 K36 R4
- 0xB8122E00, // 0089 GETNGBL R4 K23
- 0x8C100918, // 008A GETMET R4 R4 K24
- 0x60180018, // 008B GETGBL R6 G24
- 0x581C0025, // 008C LDCONST R7 K37
- 0x58200026, // 008D LDCONST R8 K38
- 0x8824010E, // 008E GETMBR R9 R0 K14
- 0x88280123, // 008F GETMBR R10 R0 K35
- 0x7C180800, // 0090 CALL R6 4
- 0x581C001E, // 0091 LDCONST R7 K30
- 0x7C100600, // 0092 CALL R4 3
- 0x60100008, // 0093 GETGBL R4 G8
- 0x88140107, // 0094 GETMBR R5 R0 K7
- 0x541A0FFE, // 0095 LDINT R6 4095
- 0x2C140A06, // 0096 AND R5 R5 R6
- 0x7C100200, // 0097 CALL R4 1
- 0x00123804, // 0098 ADD R4 K28 R4
- 0xB8162E00, // 0099 GETNGBL R5 K23
- 0x8C140B18, // 009A GETMET R5 R5 K24
- 0x001E3A04, // 009B ADD R7 K29 R4
- 0x5820001E, // 009C LDCONST R8 K30
- 0x7C140600, // 009D CALL R5 3
- 0x8C14031F, // 009E GETMET R5 R1 K31
- 0x581C0014, // 009F LDCONST R7 K20
- 0x58200015, // 00A0 LDCONST R8 K21
- 0x8824010E, // 00A1 GETMBR R9 R0 K14
- 0x88280123, // 00A2 GETMBR R10 R0 K35
- 0x5C2C0800, // 00A3 MOVE R11 R4
- 0x7C140C00, // 00A4 CALL R5 6
- 0x60140008, // 00A5 GETGBL R5 G8
- 0x88180107, // 00A6 GETMBR R6 R0 K7
- 0x541E0EFF, // 00A7 LDINT R7 3840
- 0x2C180C07, // 00A8 AND R6 R6 R7
- 0x541E0007, // 00A9 LDINT R7 8
- 0x3C180C07, // 00AA SHR R6 R6 R7
- 0x7C140200, // 00AB CALL R5 1
- 0x00164005, // 00AC ADD R5 K32 R5
- 0x5C100A00, // 00AD MOVE R4 R5
- 0xB8162E00, // 00AE GETNGBL R5 K23
- 0x8C140B18, // 00AF GETMET R5 R5 K24
- 0x001E3A04, // 00B0 ADD R7 K29 R4
- 0x5820001E, // 00B1 LDCONST R8 K30
- 0x7C140600, // 00B2 CALL R5 3
- 0x8C14031F, // 00B3 GETMET R5 R1 K31
- 0x581C0014, // 00B4 LDCONST R7 K20
- 0x58200015, // 00B5 LDCONST R8 K21
- 0x8824010E, // 00B6 GETMBR R9 R0 K14
- 0x88280123, // 00B7 GETMBR R10 R0 K35
- 0x5C2C0800, // 00B8 MOVE R11 R4
- 0x7C140C00, // 00B9 CALL R5 6
- 0x60140008, // 00BA GETGBL R5 G8
- 0x88180103, // 00BB GETMBR R6 R0 K3
- 0x7C140200, // 00BC CALL R5 1
- 0x00164205, // 00BD ADD R5 K33 R5
- 0x5C100A00, // 00BE MOVE R4 R5
- 0xB8162E00, // 00BF GETNGBL R5 K23
- 0x8C140B18, // 00C0 GETMET R5 R5 K24
- 0x001E3A04, // 00C1 ADD R7 K29 R4
- 0x5820001E, // 00C2 LDCONST R8 K30
- 0x7C140600, // 00C3 CALL R5 3
- 0x8C14031F, // 00C4 GETMET R5 R1 K31
- 0x581C0014, // 00C5 LDCONST R7 K20
- 0x58200015, // 00C6 LDCONST R8 K21
- 0x8824010E, // 00C7 GETMBR R9 R0 K14
- 0x88280123, // 00C8 GETMBR R10 R0 K35
- 0x5C2C0800, // 00C9 MOVE R11 R4
- 0x7C140C00, // 00CA CALL R5 6
- 0x58100022, // 00CB LDCONST R4 K34
- 0xB8162E00, // 00CC GETNGBL R5 K23
- 0x8C140B18, // 00CD GETMET R5 R5 K24
- 0x001E3A04, // 00CE ADD R7 K29 R4
- 0x5820001E, // 00CF LDCONST R8 K30
- 0x7C140600, // 00D0 CALL R5 3
- 0x8C14031F, // 00D1 GETMET R5 R1 K31
- 0x581C0014, // 00D2 LDCONST R7 K20
- 0x58200015, // 00D3 LDCONST R8 K21
- 0x8824010E, // 00D4 GETMBR R9 R0 K14
- 0x88280123, // 00D5 GETMBR R10 R0 K35
- 0x5C2C0800, // 00D6 MOVE R11 R4
- 0x7C140C00, // 00D7 CALL R5 6
- 0xA8040001, // 00D8 EXBLK 1 1
- 0x70020010, // 00D9 JMP #00EB
- 0xAC100002, // 00DA CATCH R4 0 2
- 0x7002000D, // 00DB JMP #00EA
- 0xB81A2E00, // 00DC GETNGBL R6 K23
- 0x8C180D18, // 00DD GETMET R6 R6 K24
- 0x60200008, // 00DE GETGBL R8 G8
- 0x5C240800, // 00DF MOVE R9 R4
- 0x7C200200, // 00E0 CALL R8 1
- 0x00224E08, // 00E1 ADD R8 K39 R8
- 0x00201128, // 00E2 ADD R8 R8 K40
- 0x60240008, // 00E3 GETGBL R9 G8
- 0x5C280A00, // 00E4 MOVE R10 R5
- 0x7C240200, // 00E5 CALL R9 1
- 0x00201009, // 00E6 ADD R8 R8 R9
- 0x5824001B, // 00E7 LDCONST R9 K27
- 0x7C180600, // 00E8 CALL R6 3
- 0x70020000, // 00E9 JMP #00EB
- 0xB0080000, // 00EA RAISE 2 R0 R0
- 0x80000000, // 00EB RET 0
+ 0x88200111, // 0032 GETMBR R8 R0 K17
+ 0x88240112, // 0033 GETMBR R9 R0 K18
+ 0x7C140800, // 0034 CALL R5 4
+ 0x5818001A, // 0035 LDCONST R6 K26
+ 0x7C100400, // 0036 CALL R4 2
+ 0x60100008, // 0037 GETGBL R4 G8
+ 0x88140107, // 0038 GETMBR R5 R0 K7
+ 0x541A0FFE, // 0039 LDINT R6 4095
+ 0x2C140A06, // 003A AND R5 R5 R6
+ 0x7C100200, // 003B CALL R4 1
+ 0x00123604, // 003C ADD R4 K27 R4
+ 0xB8162E00, // 003D GETNGBL R5 K23
+ 0x001A3804, // 003E ADD R6 K28 R4
+ 0x581C001D, // 003F LDCONST R7 K29
+ 0x7C140400, // 0040 CALL R5 2
+ 0x8C14031E, // 0041 GETMET R5 R1 K30
+ 0x581C0014, // 0042 LDCONST R7 K20
+ 0x58200015, // 0043 LDCONST R8 K21
+ 0x88240111, // 0044 GETMBR R9 R0 K17
+ 0x88280112, // 0045 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0046 MOVE R11 R4
+ 0x7C140C00, // 0047 CALL R5 6
+ 0x60140008, // 0048 GETGBL R5 G8
+ 0x88180107, // 0049 GETMBR R6 R0 K7
+ 0x541E0EFF, // 004A LDINT R7 3840
+ 0x2C180C07, // 004B AND R6 R6 R7
+ 0x541E0007, // 004C LDINT R7 8
+ 0x3C180C07, // 004D SHR R6 R6 R7
+ 0x7C140200, // 004E CALL R5 1
+ 0x00163E05, // 004F ADD R5 K31 R5
+ 0x5C100A00, // 0050 MOVE R4 R5
+ 0xB8162E00, // 0051 GETNGBL R5 K23
+ 0x001A3804, // 0052 ADD R6 K28 R4
+ 0x581C001D, // 0053 LDCONST R7 K29
+ 0x7C140400, // 0054 CALL R5 2
+ 0x8C14031E, // 0055 GETMET R5 R1 K30
+ 0x581C0014, // 0056 LDCONST R7 K20
+ 0x58200015, // 0057 LDCONST R8 K21
+ 0x88240111, // 0058 GETMBR R9 R0 K17
+ 0x88280112, // 0059 GETMBR R10 R0 K18
+ 0x5C2C0800, // 005A MOVE R11 R4
+ 0x7C140C00, // 005B CALL R5 6
+ 0x60140008, // 005C GETGBL R5 G8
+ 0x88180103, // 005D GETMBR R6 R0 K3
+ 0x7C140200, // 005E CALL R5 1
+ 0x00164005, // 005F ADD R5 K32 R5
+ 0x5C100A00, // 0060 MOVE R4 R5
+ 0xB8162E00, // 0061 GETNGBL R5 K23
+ 0x001A3804, // 0062 ADD R6 K28 R4
+ 0x581C001D, // 0063 LDCONST R7 K29
+ 0x7C140400, // 0064 CALL R5 2
+ 0x8C14031E, // 0065 GETMET R5 R1 K30
+ 0x581C0014, // 0066 LDCONST R7 K20
+ 0x58200015, // 0067 LDCONST R8 K21
+ 0x88240111, // 0068 GETMBR R9 R0 K17
+ 0x88280112, // 0069 GETMBR R10 R0 K18
+ 0x5C2C0800, // 006A MOVE R11 R4
+ 0x7C140C00, // 006B CALL R5 6
+ 0x58100021, // 006C LDCONST R4 K33
+ 0xB8162E00, // 006D GETNGBL R5 K23
+ 0x001A3804, // 006E ADD R6 K28 R4
+ 0x581C001D, // 006F LDCONST R7 K29
+ 0x7C140400, // 0070 CALL R5 2
+ 0x8C14031E, // 0071 GETMET R5 R1 K30
+ 0x581C0014, // 0072 LDCONST R7 K20
+ 0x58200015, // 0073 LDCONST R8 K21
+ 0x88240111, // 0074 GETMBR R9 R0 K17
+ 0x88280112, // 0075 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0076 MOVE R11 R4
+ 0x7C140C00, // 0077 CALL R5 6
+ 0x88100122, // 0078 GETMBR R4 R0 K34
+ 0x78120053, // 0079 JMPF R4 #00CE
+ 0x8C100313, // 007A GETMET R4 R1 K19
+ 0x58180014, // 007B LDCONST R6 K20
+ 0x581C0015, // 007C LDCONST R7 K21
+ 0x542215A3, // 007D LDINT R8 5540
+ 0x5C240600, // 007E MOVE R9 R3
+ 0x8828010E, // 007F GETMBR R10 R0 K14
+ 0x882C0122, // 0080 GETMBR R11 R0 K34
+ 0x7C100E00, // 0081 CALL R4 7
+ 0x50100200, // 0082 LDBOOL R4 1 0
+ 0x90024604, // 0083 SETMBR R0 K35 R4
+ 0xB8122E00, // 0084 GETNGBL R4 K23
+ 0x60140018, // 0085 GETGBL R5 G24
+ 0x58180024, // 0086 LDCONST R6 K36
+ 0x581C0025, // 0087 LDCONST R7 K37
+ 0x8820010E, // 0088 GETMBR R8 R0 K14
+ 0x88240122, // 0089 GETMBR R9 R0 K34
+ 0x7C140800, // 008A CALL R5 4
+ 0x5818001D, // 008B LDCONST R6 K29
+ 0x7C100400, // 008C CALL R4 2
+ 0x60100008, // 008D GETGBL R4 G8
+ 0x88140107, // 008E GETMBR R5 R0 K7
+ 0x541A0FFE, // 008F LDINT R6 4095
+ 0x2C140A06, // 0090 AND R5 R5 R6
+ 0x7C100200, // 0091 CALL R4 1
+ 0x00123604, // 0092 ADD R4 K27 R4
+ 0xB8162E00, // 0093 GETNGBL R5 K23
+ 0x001A3804, // 0094 ADD R6 K28 R4
+ 0x581C001D, // 0095 LDCONST R7 K29
+ 0x7C140400, // 0096 CALL R5 2
+ 0x8C14031E, // 0097 GETMET R5 R1 K30
+ 0x581C0014, // 0098 LDCONST R7 K20
+ 0x58200015, // 0099 LDCONST R8 K21
+ 0x8824010E, // 009A GETMBR R9 R0 K14
+ 0x88280122, // 009B GETMBR R10 R0 K34
+ 0x5C2C0800, // 009C MOVE R11 R4
+ 0x7C140C00, // 009D CALL R5 6
+ 0x60140008, // 009E GETGBL R5 G8
+ 0x88180107, // 009F GETMBR R6 R0 K7
+ 0x541E0EFF, // 00A0 LDINT R7 3840
+ 0x2C180C07, // 00A1 AND R6 R6 R7
+ 0x541E0007, // 00A2 LDINT R7 8
+ 0x3C180C07, // 00A3 SHR R6 R6 R7
+ 0x7C140200, // 00A4 CALL R5 1
+ 0x00163E05, // 00A5 ADD R5 K31 R5
+ 0x5C100A00, // 00A6 MOVE R4 R5
+ 0xB8162E00, // 00A7 GETNGBL R5 K23
+ 0x001A3804, // 00A8 ADD R6 K28 R4
+ 0x581C001D, // 00A9 LDCONST R7 K29
+ 0x7C140400, // 00AA CALL R5 2
+ 0x8C14031E, // 00AB GETMET R5 R1 K30
+ 0x581C0014, // 00AC LDCONST R7 K20
+ 0x58200015, // 00AD LDCONST R8 K21
+ 0x8824010E, // 00AE GETMBR R9 R0 K14
+ 0x88280122, // 00AF GETMBR R10 R0 K34
+ 0x5C2C0800, // 00B0 MOVE R11 R4
+ 0x7C140C00, // 00B1 CALL R5 6
+ 0x60140008, // 00B2 GETGBL R5 G8
+ 0x88180103, // 00B3 GETMBR R6 R0 K3
+ 0x7C140200, // 00B4 CALL R5 1
+ 0x00164005, // 00B5 ADD R5 K32 R5
+ 0x5C100A00, // 00B6 MOVE R4 R5
+ 0xB8162E00, // 00B7 GETNGBL R5 K23
+ 0x001A3804, // 00B8 ADD R6 K28 R4
+ 0x581C001D, // 00B9 LDCONST R7 K29
+ 0x7C140400, // 00BA CALL R5 2
+ 0x8C14031E, // 00BB GETMET R5 R1 K30
+ 0x581C0014, // 00BC LDCONST R7 K20
+ 0x58200015, // 00BD LDCONST R8 K21
+ 0x8824010E, // 00BE GETMBR R9 R0 K14
+ 0x88280122, // 00BF GETMBR R10 R0 K34
+ 0x5C2C0800, // 00C0 MOVE R11 R4
+ 0x7C140C00, // 00C1 CALL R5 6
+ 0x58100021, // 00C2 LDCONST R4 K33
+ 0xB8162E00, // 00C3 GETNGBL R5 K23
+ 0x001A3804, // 00C4 ADD R6 K28 R4
+ 0x581C001D, // 00C5 LDCONST R7 K29
+ 0x7C140400, // 00C6 CALL R5 2
+ 0x8C14031E, // 00C7 GETMET R5 R1 K30
+ 0x581C0014, // 00C8 LDCONST R7 K20
+ 0x58200015, // 00C9 LDCONST R8 K21
+ 0x8824010E, // 00CA GETMBR R9 R0 K14
+ 0x88280122, // 00CB GETMBR R10 R0 K34
+ 0x5C2C0800, // 00CC MOVE R11 R4
+ 0x7C140C00, // 00CD CALL R5 6
+ 0xA8040001, // 00CE EXBLK 1 1
+ 0x7002000F, // 00CF JMP #00E0
+ 0xAC100002, // 00D0 CATCH R4 0 2
+ 0x7002000C, // 00D1 JMP #00DF
+ 0xB81A2E00, // 00D2 GETNGBL R6 K23
+ 0x601C0008, // 00D3 GETGBL R7 G8
+ 0x5C200800, // 00D4 MOVE R8 R4
+ 0x7C1C0200, // 00D5 CALL R7 1
+ 0x001E4C07, // 00D6 ADD R7 K38 R7
+ 0x001C0F27, // 00D7 ADD R7 R7 K39
+ 0x60200008, // 00D8 GETGBL R8 G8
+ 0x5C240A00, // 00D9 MOVE R9 R5
+ 0x7C200200, // 00DA CALL R8 1
+ 0x001C0E08, // 00DB ADD R7 R7 R8
+ 0x5820001A, // 00DC LDCONST R8 K26
+ 0x7C180400, // 00DD CALL R6 2
+ 0x70020000, // 00DE JMP #00E0
+ 0xB0080000, // 00DF RAISE 2 R0 R0
+ 0x80000000, // 00E0 RET 0
})
)
);
From 7c48ab710ac98e53beabbc20b50e0fd903e2d6aa Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 8 Jun 2024 09:49:39 +0200
Subject: [PATCH 021/252] Matter fix Air Quality sensors (#21592)
---
.../Matter_Plugin_2_Sensor_Air_Quality.be | 8 +--
...ified_Matter_Plugin_2_Sensor_Air_Quality.h | 54 +++++++++++--------
2 files changed, 38 insertions(+), 24 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
index b4f2e8371..97b67ed32 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
@@ -30,7 +30,7 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
static var ARG_HINT = "Device key (ex: SCD40)"
# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var JSON_NAME = "AirQuality" # Name of the sensor attribute in JSON payloads
- static var UPDATE_TIME = 30000 # update every 30 s
+ static var UPDATE_TIME = 10000 # update every 10 s
static var UPDATE_COMMANDS = matter.UC_LIST(_class, "AirQuality", "CO2", "PM1", "PM2.5", "PM10", "TVOC", "NO2")
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x005B: [0], # Air Quality - no writable
@@ -69,6 +69,7 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
self.shadow_air_quality = false
+ device.add_read_sensors_schedule(self.UPDATE_TIME)
end
#############################################################
@@ -85,10 +86,11 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
#
# parse the output from `ShutterPosition`
# Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}`
- def _parse_sensor_entry(v, key, old_val, cluster, attribute)
+ def _parse_sensor_entry(v, key, old_val, func, cluster, attribute)
var val = v.find(key)
if (val != nil)
- if val != old_val
+ val = func(val)
+ if (val != nil) && (val != old_val)
self.attribute_updated(cluster, attribute) # CurrentPositionTiltPercent100ths
end
return val
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
index 1b636ca22..4432048d7 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
@@ -12,8 +12,8 @@ extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /* name */
be_nested_proto(
- 11, /* nstack */
- 6, /* argc */
+ 12, /* nstack */
+ 7, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -26,21 +26,28 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /
}),
be_str_weak(_parse_sensor_entry),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x8C180300, // 0000 GETMET R6 R1 K0
- 0x5C200400, // 0001 MOVE R8 R2
- 0x7C180400, // 0002 CALL R6 2
- 0x4C1C0000, // 0003 LDNIL R7
- 0x201C0C07, // 0004 NE R7 R6 R7
- 0x781E0006, // 0005 JMPF R7 #000D
- 0x201C0C03, // 0006 NE R7 R6 R3
- 0x781E0003, // 0007 JMPF R7 #000C
- 0x8C1C0101, // 0008 GETMET R7 R0 K1
- 0x5C240800, // 0009 MOVE R9 R4
- 0x5C280A00, // 000A MOVE R10 R5
- 0x7C1C0600, // 000B CALL R7 3
- 0x80040C00, // 000C RET 1 R6
- 0x80040600, // 000D RET 1 R3
+ ( &(const binstruction[21]) { /* code */
+ 0x8C1C0300, // 0000 GETMET R7 R1 K0
+ 0x5C240400, // 0001 MOVE R9 R2
+ 0x7C1C0400, // 0002 CALL R7 2
+ 0x4C200000, // 0003 LDNIL R8
+ 0x20200E08, // 0004 NE R8 R7 R8
+ 0x7822000D, // 0005 JMPF R8 #0014
+ 0x5C200800, // 0006 MOVE R8 R4
+ 0x5C240E00, // 0007 MOVE R9 R7
+ 0x7C200200, // 0008 CALL R8 1
+ 0x5C1C1000, // 0009 MOVE R7 R8
+ 0x4C200000, // 000A LDNIL R8
+ 0x20200E08, // 000B NE R8 R7 R8
+ 0x78220005, // 000C JMPF R8 #0013
+ 0x20200E03, // 000D NE R8 R7 R3
+ 0x78220003, // 000E JMPF R8 #0013
+ 0x8C200101, // 000F GETMET R8 R0 K1
+ 0x5C280A00, // 0010 MOVE R10 R5
+ 0x5C2C0C00, // 0011 MOVE R11 R6
+ 0x7C200600, // 0012 CALL R8 3
+ 0x80040E00, // 0013 RET 1 R7
+ 0x80040600, // 0014 RET 1 R3
})
)
);
@@ -544,13 +551,15 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_init, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Air_Quality,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
+ ( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(shadow_air_quality),
+ /* K2 */ be_nested_str_weak(add_read_sensors_schedule),
+ /* K3 */ be_nested_str_weak(UPDATE_TIME),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
+ ( &(const binstruction[14]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
@@ -561,7 +570,10 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_init, /* name */
0x7C100800, // 0007 CALL R4 4
0x50100000, // 0008 LDBOOL R4 0 0
0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
+ 0x8C100302, // 000A GETMET R4 R1 K2
+ 0x88180103, // 000B GETMBR R6 R0 K3
+ 0x7C100400, // 000C CALL R4 2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -583,7 +595,7 @@ be_local_class(Matter_Plugin_Sensor_Air_Quality,
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(airquality) },
{ be_const_key_weak(parse_configuration, 21), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration_closure) },
{ be_const_key_weak(shadow_no2, -1), be_const_var(6) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(30000) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(10000) },
{ be_const_key_weak(UPDATE_COMMANDS, 13), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
From ff961df33635641363b8e26437c394c9a95dfb72 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 8 Jun 2024 15:33:44 +0200
Subject: [PATCH 022/252] Change display timing splash screen with display
modes 1 to 5
---
CHANGELOG.md | 3 ++-
RELEASENOTES.md | 2 ++
lib/lib_display/UDisplay/uDisplay.cpp | 8 +++---
.../tasmota_xdrv_driver/xdrv_13_display.ino | 26 ++++++++++++-------
.../xdsp_17_universal.ino | 3 ++-
5 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f6caafd66..3208282e2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,7 +14,8 @@ All notable changes to this project will be documented in this file.
- Matter refactoring of bridged devices (#21575)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 (#21569)
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
-- Matter filter suffix automatically added for sensors
+- Matter filter suffix automatically added for sensors (#21589)
+- Display timing splash screen with display modes 1 to 5
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 33fce959a..ed8cdc01e 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -126,8 +126,10 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Changed
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
+- Display timing splash screen with display modes 1 to 5
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
+- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
### Fixed
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
diff --git a/lib/lib_display/UDisplay/uDisplay.cpp b/lib/lib_display/UDisplay/uDisplay.cpp
index e24b0ab42..890c2157f 100755
--- a/lib/lib_display/UDisplay/uDisplay.cpp
+++ b/lib/lib_display/UDisplay/uDisplay.cpp
@@ -290,6 +290,10 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) {
col_type = uCOLOR_BW;
} else {
col_type = uCOLOR_COLOR;
+ if (bpp == 16) {
+ fg_col = GetColorFromIndex(fg_col);
+ bg_col = GetColorFromIndex(bg_col);
+ }
}
str2c(&lp1, ibuff, sizeof(ibuff));
if (!strncmp(ibuff, "I2C", 3)) {
@@ -368,11 +372,9 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) {
splash_font = next_val(&lp1);
splash_size = next_val(&lp1);
fg_col = next_val(&lp1);
- if (bpp == 16) {
- fg_col = GetColorFromIndex(fg_col);
- }
bg_col = next_val(&lp1);
if (bpp == 16) {
+ fg_col = GetColorFromIndex(fg_col);
bg_col = GetColorFromIndex(bg_col);
}
splash_xp = next_val(&lp1);
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index 2f963237e..7bfaecc78 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -2943,8 +2943,7 @@ void AddValue(uint8_t num,float fval) {
* Interface
\*********************************************************************************************/
-bool Xdrv13(uint32_t function)
-{
+bool Xdrv13(uint32_t function) {
bool result = false;
if (XdspPresent()) {
@@ -2958,7 +2957,9 @@ bool Xdrv13(uint32_t function)
}
break;
case FUNC_EVERY_50_MSECOND:
- if (Settings->display_model) { XdspCall(FUNC_DISPLAY_EVERY_50_MSECOND); }
+ if (Settings->display_model) {
+ XdspCall(FUNC_DISPLAY_EVERY_50_MSECOND);
+ }
break;
case FUNC_SET_POWER:
DisplaySetPower();
@@ -2966,20 +2967,27 @@ bool Xdrv13(uint32_t function)
case FUNC_EVERY_SECOND:
#ifdef USE_GRAPH
DisplayCheckGraph();
-#endif
+#endif // USE_GRAPH
#ifdef USE_DT_VARS
get_dt_mqtt();
draw_dt_vars();
-#endif // USE_DT_VARS
-
+#endif // USE_DT_VARS
#ifdef USE_DISPLAY_MODES1TO5
- if (Settings->display_model && Settings->display_mode) { XdspCall(FUNC_DISPLAY_EVERY_SECOND); }
-#endif
+ if (Settings->display_model && Settings->display_mode) {
+ uint32_t wait = 0;
+ if (!Settings->flag5.display_no_splash) { // SetOption135 - (Display & LVGL) force disabling default 5 second splash screen
+ wait = 6;
+ }
+ if (TasmotaGlobal.uptime > wait) { // Allow time to display splash screen
+ XdspCall(FUNC_DISPLAY_EVERY_SECOND);
+ }
+ }
+#endif // USE_DISPLAY_MODES1TO5
break;
case FUNC_AFTER_TELEPERIOD:
#ifdef USE_DT_VARS
DisplayDTVarsTeleperiod();
-#endif // USE_DT_VARS
+#endif // USE_DT_VARS
break;
#ifdef USE_DISPLAY_MODES1TO5
case FUNC_MQTT_SUBSCRIBE:
diff --git a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
index e1845ccea..2f9c8edf7 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
@@ -483,6 +483,7 @@ int8_t cs;
color_type = renderer->color_type();
renderer->DisplayInit(DISPLAY_INIT_MODE, Settings->display_size, inirot, Settings->display_font);
+ renderer->clearDisplay();
Settings->display_width = renderer->width();
Settings->display_height = renderer->height();
@@ -504,7 +505,7 @@ int8_t cs;
ApplyDisplayDimmer();
#ifdef SHOW_SPLASH
- if (!Settings->flag5.display_no_splash) {
+ if (!Settings->flag5.display_no_splash) { // SetOption135 - (Display & LVGL) force disabling default splash screen
renderer->Splash();
}
#endif // SHOW_SPLASH
From 1e33b45ea80ef7d7a03aad6488a797f93bc25b4e Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 8 Jun 2024 17:22:19 +0200
Subject: [PATCH 023/252] Add partial DisplayText features to modes1 to 5
---
.../tasmota_xdrv_driver/xdrv_13_display.ino | 95 ++++++++++---------
.../xdsp_17_universal.ino | 4 +-
2 files changed, 52 insertions(+), 47 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index 7bfaecc78..4a9cd73c3 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -268,30 +268,35 @@ bool disp_subscribed = false;
/*********************************************************************************************/
-void DisplayInit(uint8_t mode)
-{
- if (renderer) {
- renderer->DisplayInit(mode, Settings->display_size, Settings->display_rotate, Settings->display_font);
+void DisplayClear(void) {
+ if (renderer) {
+ renderer->fillScreen(bg_color);
+ } else {
+ XdspCall(FUNC_DISPLAY_CLEAR);
}
- else {
+}
+
+void DisplayInit(uint8_t mode) {
+ if (renderer) {
+ renderer->DisplayInit(mode, Settings->display_size, Settings->display_rotate, Settings->display_font);
+ } else {
dsp_init = mode;
XdspCall(FUNC_DISPLAY_INIT);
}
+ DisplayClear();
}
-void DisplayClear(void)
-{
- XdspCall(FUNC_DISPLAY_CLEAR);
-}
-
-void DisplayDrawStringAt(uint16_t x, uint16_t y, char *str, uint16_t color, uint8_t flag)
-{
- dsp_x = x;
- dsp_y = y;
- dsp_str = str;
- dsp_color = color;
- dsp_flag = flag;
- XdspCall(FUNC_DISPLAY_DRAW_STRING);
+void DisplayDrawStringAt(uint16_t x, uint16_t y, char *str, uint16_t color, uint8_t flag) {
+ if (renderer) {
+ renderer->DrawStringAt(x, y, str, color, flag);
+ } else {
+ dsp_x = x;
+ dsp_y = y;
+ dsp_str = str;
+ dsp_color = color;
+ dsp_flag = flag;
+ XdspCall(FUNC_DISPLAY_DRAW_STRING);
+ }
}
void DisplayOnOff(uint8_t on) {
@@ -482,15 +487,21 @@ void DisplayText(void)
dp -= decode_te(linebuf);
if ((uint32_t)dp - (uint32_t)linebuf) {
if (!fill) { *dp = 0; }
+#ifdef USE_DISPLAY_MODES1TO5
+ if (!Settings->display_mode) {
+#endif // USE_DISPLAY_MODES1TO5
if (col > 0 && lin > 0) {
// use col and lin
- if (!renderer) DisplayDrawStringAt(col, lin, linebuf, fg_color, 1);
- else renderer->DrawStringAt(col, lin, linebuf, fg_color, 1);
+ DisplayDrawStringAt(col, lin, linebuf, fg_color, 1);
} else {
// use disp_xpos, disp_ypos
- if (!renderer) DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
- else renderer->DrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
+ DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
}
+#ifdef USE_DISPLAY_MODES1TO5
+ } else {
+ DisplayLogBufferAdd(linebuf);
+ }
+#endif // USE_DISPLAY_MODES1TO5
memset(linebuf, ' ', sizeof(linebuf));
linebuf[sizeof(linebuf)-1] = 0;
dp = linebuf;
@@ -513,8 +524,7 @@ void DisplayText(void)
switch (*cp++) {
case 'z':
// clear display
- if (!renderer) DisplayClear();
- else renderer->fillScreen(bg_color);
+ DisplayClear();
disp_xpos = 0;
disp_ypos = 0;
col = 0;
@@ -1225,15 +1235,21 @@ extern FS *ffsp;
// right align
alignright(linebuf);
}
+#ifdef USE_DISPLAY_MODES1TO5
+ if (!Settings->display_mode) {
+#endif // USE_DISPLAY_MODES1TO5
if (col > 0 && lin > 0) {
// use col and lin
- if (!renderer) DisplayDrawStringAt(col, lin, linebuf, fg_color, 1);
- else renderer->DrawStringAt(col, lin, linebuf, fg_color, 1);
+ DisplayDrawStringAt(col, lin, linebuf, fg_color, 1);
} else {
// use disp_xpos, disp_ypos
- if (!renderer) DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
- else renderer->DrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
+ DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
}
+#ifdef USE_DISPLAY_MODES1TO5
+ } else {
+ DisplayLogBufferAdd(linebuf);
+ }
+#endif // USE_DISPLAY_MODES1TO5
}
// draw buffer
if (auto_draw&1) {
@@ -1242,8 +1258,6 @@ extern FS *ffsp;
}
}
-
-
#ifdef USE_UFILESYS
void Display_Text_From_File(const char *file) {
File fp;
@@ -2016,14 +2030,10 @@ void CmndDisplayMode(void) {
if (disp_subscribed != (Settings->display_mode &0x04)) {
TasmotaGlobal.restart_flag = 2; // Restart to Add/Remove MQTT subscribe
} else {
- if (last_display_mode && !Settings->display_mode) { // Switch to mode 0
- DisplayInit(DISPLAY_INIT_MODE);
- if (renderer) renderer->fillScreen(bg_color);
- else DisplayClear();
- } else {
+ if (Settings->display_mode) { // Switch to non mode 0
DisplayLogBufferInit();
- DisplayInit(DISPLAY_INIT_MODE);
}
+ DisplayInit(DISPLAY_INIT_MODE);
}
}
#endif // USE_DISPLAY_MODES1TO5
@@ -2068,6 +2078,7 @@ void CmndDisplayDimmer(void) {
void CmndDisplaySize(void) {
if ((XdrvMailbox.payload > 0) && (XdrvMailbox.payload <= TXT_MAX_SFAC)) {
Settings->display_size = XdrvMailbox.payload;
+ DisplayClear();
if (renderer) renderer->setTextSize(Settings->display_size);
//else DisplaySetSize(Settings->display_size);
}
@@ -2077,6 +2088,7 @@ void CmndDisplaySize(void) {
void CmndDisplayFont(void) {
if ((XdrvMailbox.payload >=0) && (XdrvMailbox.payload <= 4)) {
Settings->display_font = XdrvMailbox.payload;
+ DisplayClear();
if (renderer) renderer->setTextFont(Settings->display_font);
//else DisplaySetFont(Settings->display_font);
}
@@ -2179,17 +2191,11 @@ void CmndDisplayBatch(void) {
void CmndDisplayText(void) {
if (disp_device && XdrvMailbox.data_len > 0) {
-#ifndef USE_DISPLAY_MODES1TO5
- DisplayText();
-#else
if(Settings->display_model == 15 || Settings->display_model == 20) {
XdspCall(FUNC_DISPLAY_SEVENSEG_TEXT);
- } else if (!Settings->display_mode) {
- DisplayText();
} else {
- DisplayLogBufferAdd(XdrvMailbox.data);
+ DisplayText();
}
-#endif // USE_DISPLAY_MODES1TO5
ResponseCmndChar(XdrvMailbox.data);
}
}
@@ -2199,8 +2205,7 @@ void CmndDisplayText(void) {
\*********************************************************************************************/
void CmndDisplayClear(void) {
- if (!renderer)
- XdspCall(FUNC_DISPLAY_CLEAR);
+ DisplayClear();
ResponseCmndChar(XdrvMailbox.data);
}
diff --git a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
index 2f9c8edf7..ac5599dea 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
@@ -553,7 +553,7 @@ void UDISP_PrintLog(void)
if (txt != NULL) {
uint8_t last_row = Settings->display_rows -1;
- renderer->clearDisplay();
+// renderer->clearDisplay();
renderer->setTextSize(Settings->display_size);
renderer->setCursor(0,0);
for (byte i = 0; i < last_row; i++) {
@@ -575,7 +575,7 @@ void UDISP_Time(void)
{
char line[12];
- renderer->clearDisplay();
+// renderer->clearDisplay();
renderer->setTextSize(Settings->display_size);
renderer->setTextFont(Settings->display_font);
renderer->setCursor(0, 0);
From 4c5c6f726f21b7f748e2f0441d7b4cb1abd2b527 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 8 Jun 2024 18:33:06 +0200
Subject: [PATCH 024/252] Matter align names of endpoint classes with hierarchy
(#21596)
---
.../berry_matter/src/be_matter_module.c | 6 +--
..._2_Light1.be => Matter_Plugin_3_Light1.be} | 0
..._3_Light2.be => Matter_Plugin_4_Light2.be} | 0
..._3_Light3.be => Matter_Plugin_4_Light3.be} | 0
....h => solidified_Matter_Plugin_3_Light1.h} | 2 +-
....h => solidified_Matter_Plugin_4_Light2.h} | 2 +-
....h => solidified_Matter_Plugin_4_Light3.h} | 2 +-
.../solidify/solidified_Matter_zz_Device.h | 44 +++++++++----------
8 files changed, 28 insertions(+), 28 deletions(-)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_Light1.be => Matter_Plugin_3_Light1.be} (100%)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_3_Light2.be => Matter_Plugin_4_Light2.be} (100%)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_3_Light3.be => Matter_Plugin_4_Light3.be} (100%)
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_2_Light1.h => solidified_Matter_Plugin_3_Light1.h} (99%)
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_3_Light2.h => solidified_Matter_Plugin_4_Light2.h} (99%)
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_3_Light3.h => solidified_Matter_Plugin_4_Light3.h} (99%)
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 38659c774..e7f3f4404 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -233,11 +233,11 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Air_Quality.h"
#include "solidify/solidified_Matter_Plugin_2_Light0.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light0.h"
-#include "solidify/solidified_Matter_Plugin_2_Light1.h"
+#include "solidify/solidified_Matter_Plugin_3_Light1.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light1.h"
-#include "solidify/solidified_Matter_Plugin_3_Light2.h"
+#include "solidify/solidified_Matter_Plugin_4_Light2.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light2.h"
-#include "solidify/solidified_Matter_Plugin_3_Light3.h"
+#include "solidify/solidified_Matter_Plugin_4_Light3.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Light3.h"
#include "solidify/solidified_Matter_Plugin_2_Shutter.h"
#include "solidify/solidified_Matter_Plugin_3_ShutterTilt.h"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light1.be
similarity index 100%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Light1.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light1.be
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Light2.be
similarity index 100%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light2.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Light2.be
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Light3.be
similarity index 100%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Light3.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_4_Light3.be
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light1.h
similarity index 99%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light1.h
index 9ca95cf99..9090db17f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Light1.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light1.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_2_Light1.h */
+/* Solidification of Matter_Plugin_3_Light1.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light2.h
similarity index 99%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light2.h
index c6db3cd7e..8bbffdf79 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light2.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light2.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_3_Light2.h */
+/* Solidification of Matter_Plugin_4_Light2.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light3.h
similarity index 99%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light3.h
index 254d280dc..dd07df607 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Light3.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_4_Light3.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_3_Light3.h */
+/* Solidification of Matter_Plugin_4_Light3.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index d180fd809..bcf0a1b9a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -6215,53 +6215,53 @@ be_local_class(Matter_Device,
{ be_const_key_weak(plugins_classes, 10), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(47,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(v_waterleak, 26), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(v_waterleak, 40), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
{ be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
- { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(http_illuminance, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
{ be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
- { be_const_key_weak(humidity, 17), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
+ { be_const_key_weak(humidity, 24), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
+ { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
{ be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
{ be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
{ be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
{ be_const_key_weak(airquality, -1), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
- { be_const_key_weak(http_flow, 36), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
- { be_const_key_weak(v_illuminance, 24), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(light1, 17), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(v_illuminance, 26), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
{ be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(http_light1, 39), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
{ be_const_key_weak(http_light0, 6), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
{ be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
- { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
+ { be_const_key_weak(contact, 29), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
{ be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(light1, 10), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(http_flow, 10), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
{ be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
{ be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
{ be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
{ be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
{ be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
{ be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
{ be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
- { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(illuminance, 34), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(shutter, 5), be_const_class(be_class_Matter_Plugin_Shutter) },
- { be_const_key_weak(v_pressure, 2), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(illuminance, 36), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
+ { be_const_key_weak(shutter, 34), be_const_class(be_class_Matter_Plugin_Shutter) },
+ { be_const_key_weak(waterleak, 5), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_light2, 40), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
{ be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
- { be_const_key_weak(v_airquality, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(v_light2, 42), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
{ be_const_key_weak(light2, 3), be_const_class(be_class_Matter_Plugin_Light2) },
{ be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(http_illuminance, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
- { be_const_key_weak(relay, 42), be_const_class(be_class_Matter_Plugin_OnOff) },
+ { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
{ be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
+ { be_const_key_weak(relay, 43), be_const_class(be_class_Matter_Plugin_OnOff) },
{ be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
- { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(http_waterleak, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
+ { be_const_key_weak(http_waterleak, 2), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
{ be_const_key_weak(http_occupancy, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(root, 29), be_const_class(be_class_Matter_Plugin_Root) },
+ { be_const_key_weak(root, 39), be_const_class(be_class_Matter_Plugin_Root) },
})) ) } )) },
{ be_const_key_weak(tick, 9), be_const_var(10) },
{ be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(17) },
From c909aecd9306352288f62c370ea7277be3233d75 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 8 Jun 2024 18:53:10 +0200
Subject: [PATCH 025/252] Matter support for bridged Air Quality (#21597)
---
.../Matter_Plugin_2_Sensor_Air_Quality.be | 36 ++
...tter_Plugin_8_Bridge_Sensor_Air_Quality.be | 69 ---
.../berry_matter/src/embedded/Matter_UI.be | 1 +
...ified_Matter_Plugin_2_Sensor_Air_Quality.h | 473 ++++++++++++------
...atter_Plugin_8_Bridge_Sensor_Air_Quality.h | 149 +-----
.../src/solidify/solidified_Matter_UI.h | 2 +-
6 files changed, 349 insertions(+), 381 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
index 97b67ed32..35ad21d85 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Air_Quality.be
@@ -209,5 +209,41 @@ class Matter_Plugin_Sensor_Air_Quality : Matter_Plugin_Device
super(self).update_virtual(payload)
end
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ var values = data.find(self.prefix)
+ end
+ end
+
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ def web_values_single(name, val)
+ if val != nil
+ import webserver
+ webserver.content_send(f"{name}:{val:i} ")
+ end
+ end
+
+ self.web_values_prefix() # display '| ' and name if present
+ web_values_single("Air", self.shadow_air_quality)
+ web_values_single("PM1", self.shadow_pm1)
+ web_values_single("PM2.5", self.shadow_pm2_5)
+ web_values_single("PM10", self.shadow_pm10)
+ web_values_single("CO2", self.shadow_co2)
+ web_values_single("NO2", self.shadow_no2)
+ web_values_single("TVOC", self.shadow_tvoc)
+ end
+ #############################################################
+ #############################################################
end
matter.Plugin_Sensor_Air_Quality = Matter_Plugin_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
index c7a3571f0..1d4f6c6fa 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Air_Quality.be
@@ -26,76 +26,7 @@ import matter
class Matter_Plugin_Bridge_Sensor_Air_Quality : Matter_Plugin_Sensor_Air_Quality
static var BRIDGE = true
static var TYPE = "http_airquality" # name of the plug-in in json
- # static var DISPLAY_NAME = "Air Quality" # display name of the plug-in
- # static var ARG = "airquality" # additional argument name (or empty if none)
- # static var ARG_HINT = "Sensor Model"
-# static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
static var UPDATE_TIME = 5000 # update every 5s
static var UPDATE_CMD = "Status 10" # command to send for updates
-
- # static var CLUSTERS = matter.consolidate_clusters(_class, {
- # 0x005B: [0], # Air Quality - no writable
- # 0x040D: [0,1,2,8,9], # Carbon Dioxide Concentration Measurement
- # 0x042C: [0,1,2,8,9], # PM1 Concentration Measurement
- # 0x042A: [0,1,2,8,9], # PM2.5 Concentration Measurement
- # 0x042D: [0,1,2,8,9], # PM10 Concentration Measurement
- # 0x042E: [0,1,2,8,9], # TVOC Total Volatile Organic Compounds Concentration Measurement
- # 0x0413: [0,1,2,8,9], # Nitrogen Dioxide Concentration Measurement
- # })
-
- # static var TYPES = { 0x002C: 1 } # Air Quality, rev 1
-
- # var prefix # key prefix in JSON
- # var shadow_air_quality # Human readable air quality index
- # 0: Unknown
- # 1: Good
- # 4: Poor
- # # var shadow_pb0_3
- # # var shadow_pb0_5
- # # var shadow_pb1
- # # var shadow_pb2_5
- # # var shadow_pb5
- # # var shadow_pb10
- # var shadow_pm1
- # var shadow_pm2_5
- # # var shadow_pm5
- # var shadow_pm10
- # var shadow_co2
- # # var shadow_eco2
- # var shadow_no2
- # var shadow_tvoc
-
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_status(data, index)
- if index == 10 # Status 10
- var values = data.find(self.prefix)
- end
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- def web_values_single(name, val)
- if val != nil
- import webserver
- webserver.content_send(f"{name} {val:i} ")
- end
- end
-
- self.web_values_prefix() # display '| ' and name if present
- web_values_single("Air", self.shadow_air_quality)
- web_values_single("PM1", self.shadow_pm1)
- web_values_single("PM2.5", self.shadow_pm2_5)
- web_values_single("PM10", self.shadow_pm10)
- web_values_single("CO2", self.shadow_co2)
- web_values_single("NO2", self.shadow_no2)
- web_values_single("TVOC", self.shadow_tvoc)
- end
-
end
matter.Plugin_Bridge_Sensor_Air_Quality = Matter_Plugin_Bridge_Sensor_Air_Quality
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index b0c291de1..5a80aeba9 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -41,6 +41,7 @@ class Matter_UI
static var _CLASSES_TYPES2= "|http_relay|http_light0|http_light1|http_light2|http_light3"
"|http_temperature|http_pressure|http_illuminance|http_humidity"
"|http_occupancy|http_contact|http_flow|http_waterleak"
+ "|http_airquality"
var device
# ####################################################################################################
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
index 4432048d7..0265dc8bc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Air_Quality.h
@@ -7,13 +7,118 @@
extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
/********************************************************************
-** Solidified function: _parse_sensor_entry
+** Solidified function: web_values
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_web_values, /* name */
be_nested_proto(
- 12, /* nstack */
- 7, /* argc */
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(content_send),
+ /* K2 */ be_nested_str_weak(_X25s_X3A_X25i_X20),
+ }),
+ be_str_weak(web_values_single),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0007, // 0002 JMPF R2 #000B
+ 0xA40A0000, // 0003 IMPORT R2 K0
+ 0x8C0C0501, // 0004 GETMET R3 R2 K1
+ 0x60140018, // 0005 GETGBL R5 G24
+ 0x58180002, // 0006 LDCONST R6 K2
+ 0x5C1C0000, // 0007 MOVE R7 R0
+ 0x5C200200, // 0008 MOVE R8 R1
+ 0x7C140600, // 0009 CALL R5 3
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x80000000, // 000B RET 0
+ })
+ ),
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(web_values_prefix),
+ /* K1 */ be_nested_str_weak(Air),
+ /* K2 */ be_nested_str_weak(shadow_air_quality),
+ /* K3 */ be_nested_str_weak(PM1),
+ /* K4 */ be_nested_str_weak(shadow_pm1),
+ /* K5 */ be_nested_str_weak(PM2_X2E5),
+ /* K6 */ be_nested_str_weak(shadow_pm2_5),
+ /* K7 */ be_nested_str_weak(PM10),
+ /* K8 */ be_nested_str_weak(shadow_pm10),
+ /* K9 */ be_nested_str_weak(CO2),
+ /* K10 */ be_nested_str_weak(shadow_co2),
+ /* K11 */ be_nested_str_weak(NO2),
+ /* K12 */ be_nested_str_weak(shadow_no2),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(shadow_tvoc),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x84040000, // 0000 CLOSURE R1 P0
+ 0x8C080100, // 0001 GETMET R2 R0 K0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C080200, // 0003 MOVE R2 R1
+ 0x580C0001, // 0004 LDCONST R3 K1
+ 0x88100102, // 0005 GETMBR R4 R0 K2
+ 0x7C080400, // 0006 CALL R2 2
+ 0x5C080200, // 0007 MOVE R2 R1
+ 0x580C0003, // 0008 LDCONST R3 K3
+ 0x88100104, // 0009 GETMBR R4 R0 K4
+ 0x7C080400, // 000A CALL R2 2
+ 0x5C080200, // 000B MOVE R2 R1
+ 0x580C0005, // 000C LDCONST R3 K5
+ 0x88100106, // 000D GETMBR R4 R0 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x5C080200, // 000F MOVE R2 R1
+ 0x580C0007, // 0010 LDCONST R3 K7
+ 0x88100108, // 0011 GETMBR R4 R0 K8
+ 0x7C080400, // 0012 CALL R2 2
+ 0x5C080200, // 0013 MOVE R2 R1
+ 0x580C0009, // 0014 LDCONST R3 K9
+ 0x8810010A, // 0015 GETMBR R4 R0 K10
+ 0x7C080400, // 0016 CALL R2 2
+ 0x5C080200, // 0017 MOVE R2 R1
+ 0x580C000B, // 0018 LDCONST R3 K11
+ 0x8810010C, // 0019 GETMBR R4 R0 K12
+ 0x7C080400, // 001A CALL R2 2
+ 0x5C080200, // 001B MOVE R2 R1
+ 0x580C000D, // 001C LDCONST R3 K13
+ 0x8810010E, // 001D GETMBR R4 R0 K14
+ 0x7C080400, // 001E CALL R2 2
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_status, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -22,32 +127,18 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_nested_str_weak(prefix),
}),
- be_str_weak(_parse_sensor_entry),
+ be_str_weak(parse_status),
&be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x8C1C0300, // 0000 GETMET R7 R1 K0
- 0x5C240400, // 0001 MOVE R9 R2
- 0x7C1C0400, // 0002 CALL R7 2
- 0x4C200000, // 0003 LDNIL R8
- 0x20200E08, // 0004 NE R8 R7 R8
- 0x7822000D, // 0005 JMPF R8 #0014
- 0x5C200800, // 0006 MOVE R8 R4
- 0x5C240E00, // 0007 MOVE R9 R7
- 0x7C200200, // 0008 CALL R8 1
- 0x5C1C1000, // 0009 MOVE R7 R8
- 0x4C200000, // 000A LDNIL R8
- 0x20200E08, // 000B NE R8 R7 R8
- 0x78220005, // 000C JMPF R8 #0013
- 0x20200E03, // 000D NE R8 R7 R3
- 0x78220003, // 000E JMPF R8 #0013
- 0x8C200101, // 000F GETMET R8 R0 K1
- 0x5C280A00, // 0010 MOVE R10 R5
- 0x5C2C0C00, // 0011 MOVE R11 R6
- 0x7C200600, // 0012 CALL R8 3
- 0x80040E00, // 0013 RET 1 R7
- 0x80040600, // 0014 RET 1 R3
+ ( &(const binstruction[ 7]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0002, // 0002 JMPF R3 #0006
+ 0x8C0C0300, // 0003 GETMET R3 R1 K0
+ 0x88140101, // 0004 GETMBR R5 R0 K1
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x80000000, // 0006 RET 0
})
)
);
@@ -156,108 +247,42 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_update_virtual, /* nam
/********************************************************************
-** Solidified function: parse_sensors
+** Solidified function: init
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_init, /* name */
be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
+ 9, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Air_Quality,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(prefix),
- /* K2 */ be_nested_str_weak(shadow_co2),
- /* K3 */ be_nested_str_weak(_parse_sensor_entry),
- /* K4 */ be_nested_str_weak(CarbonDioxide),
- /* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(shadow_pm1),
- /* K7 */ be_nested_str_weak(PM1),
- /* K8 */ be_nested_str_weak(shadow_pm2_5),
- /* K9 */ be_nested_str_weak(PM2_X2E5),
- /* K10 */ be_nested_str_weak(shadow_pm10),
- /* K11 */ be_nested_str_weak(PM10),
- /* K12 */ be_nested_str_weak(shadow_tvoc),
- /* K13 */ be_nested_str_weak(TVOC),
- /* K14 */ be_nested_str_weak(shadow_no2),
- /* K15 */ be_nested_str_weak(NO2),
- /* K16 */ be_nested_str_weak(parse_sensors),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_air_quality),
+ /* K2 */ be_nested_str_weak(add_read_sensors_schedule),
+ /* K3 */ be_nested_str_weak(UPDATE_TIME),
}),
- be_str_weak(parse_sensors),
+ be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[67]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x200C0403, // 0004 NE R3 R2 R3
- 0x780E0035, // 0005 JMPF R3 #003C
- 0x8C0C0103, // 0006 GETMET R3 R0 K3
- 0x5C140400, // 0007 MOVE R5 R2
- 0x58180004, // 0008 LDCONST R6 K4
- 0x881C0102, // 0009 GETMBR R7 R0 K2
- 0x60200007, // 000A GETGBL R8 G7
- 0x5426040C, // 000B LDINT R9 1037
- 0x58280005, // 000C LDCONST R10 K5
- 0x7C0C0E00, // 000D CALL R3 7
- 0x90020403, // 000E SETMBR R0 K2 R3
- 0x8C0C0103, // 000F GETMET R3 R0 K3
- 0x5C140400, // 0010 MOVE R5 R2
- 0x58180007, // 0011 LDCONST R6 K7
- 0x881C0106, // 0012 GETMBR R7 R0 K6
- 0x60200007, // 0013 GETGBL R8 G7
- 0x5426042B, // 0014 LDINT R9 1068
- 0x58280005, // 0015 LDCONST R10 K5
- 0x7C0C0E00, // 0016 CALL R3 7
- 0x90020C03, // 0017 SETMBR R0 K6 R3
- 0x8C0C0103, // 0018 GETMET R3 R0 K3
- 0x5C140400, // 0019 MOVE R5 R2
- 0x58180009, // 001A LDCONST R6 K9
- 0x881C0108, // 001B GETMBR R7 R0 K8
- 0x60200007, // 001C GETGBL R8 G7
- 0x54260429, // 001D LDINT R9 1066
- 0x58280005, // 001E LDCONST R10 K5
- 0x7C0C0E00, // 001F CALL R3 7
- 0x90021003, // 0020 SETMBR R0 K8 R3
- 0x8C0C0103, // 0021 GETMET R3 R0 K3
- 0x5C140400, // 0022 MOVE R5 R2
- 0x5818000B, // 0023 LDCONST R6 K11
- 0x881C010A, // 0024 GETMBR R7 R0 K10
- 0x60200007, // 0025 GETGBL R8 G7
- 0x5426042C, // 0026 LDINT R9 1069
- 0x58280005, // 0027 LDCONST R10 K5
- 0x7C0C0E00, // 0028 CALL R3 7
- 0x90021403, // 0029 SETMBR R0 K10 R3
- 0x8C0C0103, // 002A GETMET R3 R0 K3
- 0x5C140400, // 002B MOVE R5 R2
- 0x5818000D, // 002C LDCONST R6 K13
- 0x881C010C, // 002D GETMBR R7 R0 K12
- 0x60200007, // 002E GETGBL R8 G7
- 0x5426042D, // 002F LDINT R9 1070
- 0x58280005, // 0030 LDCONST R10 K5
- 0x7C0C0E00, // 0031 CALL R3 7
- 0x90021803, // 0032 SETMBR R0 K12 R3
- 0x8C0C0103, // 0033 GETMET R3 R0 K3
- 0x5C140400, // 0034 MOVE R5 R2
- 0x5818000F, // 0035 LDCONST R6 K15
- 0x881C010E, // 0036 GETMBR R7 R0 K14
- 0x60200007, // 0037 GETGBL R8 G7
- 0x54260412, // 0038 LDINT R9 1043
- 0x58280005, // 0039 LDCONST R10 K5
- 0x7C0C0E00, // 003A CALL R3 7
- 0x90021C03, // 003B SETMBR R0 K14 R3
- 0x600C0003, // 003C GETGBL R3 G3
- 0x5C100000, // 003D MOVE R4 R0
- 0x7C0C0200, // 003E CALL R3 1
- 0x8C0C0710, // 003F GETMET R3 R3 K16
- 0x5C140200, // 0040 MOVE R5 R1
- 0x7C0C0400, // 0041 CALL R3 2
- 0x80000000, // 0042 RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x8C100302, // 000A GETMET R4 R1 K2
+ 0x88180103, // 000B GETMBR R6 R0 K3
+ 0x7C100400, // 000C CALL R4 2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -538,42 +563,156 @@ be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration, /
/********************************************************************
-** Solidified function: init
+** Solidified function: parse_sensors
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_init, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors, /* name */
be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
+ 11, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Air_Quality,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_air_quality),
- /* K2 */ be_nested_str_weak(add_read_sensors_schedule),
- /* K3 */ be_nested_str_weak(UPDATE_TIME),
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(prefix),
+ /* K2 */ be_nested_str_weak(shadow_co2),
+ /* K3 */ be_nested_str_weak(_parse_sensor_entry),
+ /* K4 */ be_nested_str_weak(CarbonDioxide),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(shadow_pm1),
+ /* K7 */ be_nested_str_weak(PM1),
+ /* K8 */ be_nested_str_weak(shadow_pm2_5),
+ /* K9 */ be_nested_str_weak(PM2_X2E5),
+ /* K10 */ be_nested_str_weak(shadow_pm10),
+ /* K11 */ be_nested_str_weak(PM10),
+ /* K12 */ be_nested_str_weak(shadow_tvoc),
+ /* K13 */ be_nested_str_weak(TVOC),
+ /* K14 */ be_nested_str_weak(shadow_no2),
+ /* K15 */ be_nested_str_weak(NO2),
+ /* K16 */ be_nested_str_weak(parse_sensors),
}),
- be_str_weak(init),
+ be_str_weak(parse_sensors),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x8C100302, // 000A GETMET R4 R1 K2
- 0x88180103, // 000B GETMBR R6 R0 K3
- 0x7C100400, // 000C CALL R4 2
- 0x80000000, // 000D RET 0
+ ( &(const binstruction[67]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x200C0403, // 0004 NE R3 R2 R3
+ 0x780E0035, // 0005 JMPF R3 #003C
+ 0x8C0C0103, // 0006 GETMET R3 R0 K3
+ 0x5C140400, // 0007 MOVE R5 R2
+ 0x58180004, // 0008 LDCONST R6 K4
+ 0x881C0102, // 0009 GETMBR R7 R0 K2
+ 0x60200007, // 000A GETGBL R8 G7
+ 0x5426040C, // 000B LDINT R9 1037
+ 0x58280005, // 000C LDCONST R10 K5
+ 0x7C0C0E00, // 000D CALL R3 7
+ 0x90020403, // 000E SETMBR R0 K2 R3
+ 0x8C0C0103, // 000F GETMET R3 R0 K3
+ 0x5C140400, // 0010 MOVE R5 R2
+ 0x58180007, // 0011 LDCONST R6 K7
+ 0x881C0106, // 0012 GETMBR R7 R0 K6
+ 0x60200007, // 0013 GETGBL R8 G7
+ 0x5426042B, // 0014 LDINT R9 1068
+ 0x58280005, // 0015 LDCONST R10 K5
+ 0x7C0C0E00, // 0016 CALL R3 7
+ 0x90020C03, // 0017 SETMBR R0 K6 R3
+ 0x8C0C0103, // 0018 GETMET R3 R0 K3
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x58180009, // 001A LDCONST R6 K9
+ 0x881C0108, // 001B GETMBR R7 R0 K8
+ 0x60200007, // 001C GETGBL R8 G7
+ 0x54260429, // 001D LDINT R9 1066
+ 0x58280005, // 001E LDCONST R10 K5
+ 0x7C0C0E00, // 001F CALL R3 7
+ 0x90021003, // 0020 SETMBR R0 K8 R3
+ 0x8C0C0103, // 0021 GETMET R3 R0 K3
+ 0x5C140400, // 0022 MOVE R5 R2
+ 0x5818000B, // 0023 LDCONST R6 K11
+ 0x881C010A, // 0024 GETMBR R7 R0 K10
+ 0x60200007, // 0025 GETGBL R8 G7
+ 0x5426042C, // 0026 LDINT R9 1069
+ 0x58280005, // 0027 LDCONST R10 K5
+ 0x7C0C0E00, // 0028 CALL R3 7
+ 0x90021403, // 0029 SETMBR R0 K10 R3
+ 0x8C0C0103, // 002A GETMET R3 R0 K3
+ 0x5C140400, // 002B MOVE R5 R2
+ 0x5818000D, // 002C LDCONST R6 K13
+ 0x881C010C, // 002D GETMBR R7 R0 K12
+ 0x60200007, // 002E GETGBL R8 G7
+ 0x5426042D, // 002F LDINT R9 1070
+ 0x58280005, // 0030 LDCONST R10 K5
+ 0x7C0C0E00, // 0031 CALL R3 7
+ 0x90021803, // 0032 SETMBR R0 K12 R3
+ 0x8C0C0103, // 0033 GETMET R3 R0 K3
+ 0x5C140400, // 0034 MOVE R5 R2
+ 0x5818000F, // 0035 LDCONST R6 K15
+ 0x881C010E, // 0036 GETMBR R7 R0 K14
+ 0x60200007, // 0037 GETGBL R8 G7
+ 0x54260412, // 0038 LDINT R9 1043
+ 0x58280005, // 0039 LDCONST R10 K5
+ 0x7C0C0E00, // 003A CALL R3 7
+ 0x90021C03, // 003B SETMBR R0 K14 R3
+ 0x600C0003, // 003C GETGBL R3 G3
+ 0x5C100000, // 003D MOVE R4 R0
+ 0x7C0C0200, // 003E CALL R3 1
+ 0x8C0C0710, // 003F GETMET R3 R3 K16
+ 0x5C140200, // 0040 MOVE R5 R1
+ 0x7C0C0400, // 0041 CALL R3 2
+ 0x80000000, // 0042 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _parse_sensor_entry
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
+be_local_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 7, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Air_Quality,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ }),
+ be_str_weak(_parse_sensor_entry),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x8C1C0300, // 0000 GETMET R7 R1 K0
+ 0x5C240400, // 0001 MOVE R9 R2
+ 0x7C1C0400, // 0002 CALL R7 2
+ 0x4C200000, // 0003 LDNIL R8
+ 0x20200E08, // 0004 NE R8 R7 R8
+ 0x7822000D, // 0005 JMPF R8 #0014
+ 0x5C200800, // 0006 MOVE R8 R4
+ 0x5C240E00, // 0007 MOVE R9 R7
+ 0x7C200200, // 0008 CALL R8 1
+ 0x5C1C1000, // 0009 MOVE R7 R8
+ 0x4C200000, // 000A LDNIL R8
+ 0x20200E08, // 000B NE R8 R7 R8
+ 0x78220005, // 000C JMPF R8 #0013
+ 0x20200E03, // 000D NE R8 R7 R3
+ 0x78220003, // 000E JMPF R8 #0013
+ 0x8C200101, // 000F GETMET R8 R0 K1
+ 0x5C280A00, // 0010 MOVE R10 R5
+ 0x5C2C0C00, // 0011 MOVE R11 R6
+ 0x7C200600, // 0012 CALL R8 3
+ 0x80040E00, // 0013 RET 1 R7
+ 0x80040600, // 0014 RET 1 R3
})
)
);
@@ -587,16 +726,18 @@ extern const bclass be_class_Matter_Plugin_Device;
be_local_class(Matter_Plugin_Sensor_Air_Quality,
8,
&be_class_Matter_Plugin_Device,
- be_nested_map(23,
+ be_nested_map(25,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_update_virtual_closure) },
- { be_const_key_weak(shadow_pm10, 0), be_const_var(4) },
- { be_const_key_weak(ARG, 1), be_nested_str_weak(airquality) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(airquality) },
- { be_const_key_weak(parse_configuration, 21), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration_closure) },
- { be_const_key_weak(shadow_no2, -1), be_const_var(6) },
+ { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(AirQuality) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Air_X20Quality) },
+ { be_const_key_weak(web_values, 16), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_web_values_closure) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_status_closure) },
+ { be_const_key_weak(_parse_sensor_entry, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_init_closure) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(10000) },
- { be_const_key_weak(UPDATE_COMMANDS, 13), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(shadow_no2, -1), be_const_var(6) },
+ { be_const_key_weak(shadow_air_quality, 13), be_const_var(1) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(7,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(AirQuality),
@@ -607,24 +748,25 @@ be_local_class(Matter_Plugin_Sensor_Air_Quality,
be_nested_str_weak(TVOC),
be_nested_str_weak(NO2),
})) ) } )) },
- { be_const_key_weak(shadow_pm2_5, -1), be_const_var(3) },
- { be_const_key_weak(shadow_air_quality, -1), be_const_var(1) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute_closure) },
- { be_const_key_weak(shadow_tvoc, -1), be_const_var(7) },
{ be_const_key_weak(prefix, -1), be_const_var(0) },
- { be_const_key_weak(TYPES, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(shadow_pm10, -1), be_const_var(4) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_read_attribute_closure) },
+ { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors_closure) },
+ { be_const_key_weak(TYPE, 10), be_nested_str_weak(airquality) },
+ { be_const_key_weak(update_virtual, 23), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_update_virtual_closure) },
+ { be_const_key_weak(shadow_tvoc, -1), be_const_var(7) },
+ { be_const_key_weak(shadow_pm1, -1), be_const_var(2) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(airquality) },
+ { be_const_key_weak(parse_configuration, 18), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_configuration_closure) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Device_X20key_X20_X28ex_X3A_X20SCD40_X29) },
+ { be_const_key_weak(shadow_co2, 8), be_const_var(5) },
+ { be_const_key_weak(shadow_pm2_5, -1), be_const_var(3) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(44, -1), be_const_int(1) },
})) ) } )) },
- { be_const_key_weak(_parse_sensor_entry, 19), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality__parse_sensor_entry_closure) },
- { be_const_key_weak(shadow_pm1, 9), be_const_var(2) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Air_X20Quality) },
- { be_const_key_weak(parse_sensors, 7), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_parse_sensors_closure) },
- { be_const_key_weak(shadow_co2, -1), be_const_var(5) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Air_Quality_init_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Device_X20key_X20_X28ex_X3A_X20SCD40_X29) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(CLUSTERS, 4), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(12,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(1068, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -798,7 +940,6 @@ be_local_class(Matter_Plugin_Sensor_Air_Quality,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(JSON_NAME, -1), be_nested_str_weak(AirQuality) },
})),
be_str_weak(Matter_Plugin_Sensor_Air_Quality)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
index 70f535d0f..ef1f3949f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h
@@ -6,145 +6,6 @@
extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-/********************************************************************
-** Solidified function: parse_status
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_status, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(prefix),
- }),
- be_str_weak(parse_status),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x540E0009, // 0000 LDINT R3 10
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0002, // 0002 JMPF R3 #0006
- 0x8C0C0300, // 0003 GETMET R3 R1 K0
- 0x88140101, // 0004 GETMBR R5 R0 K1
- 0x7C0C0400, // 0005 CALL R3 2
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Air_Quality;
-be_local_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(content_send),
- /* K2 */ be_nested_str_weak(_X25s_X20_X25i_X20),
- }),
- be_str_weak(web_values_single),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0007, // 0002 JMPF R2 #000B
- 0xA40A0000, // 0003 IMPORT R2 K0
- 0x8C0C0501, // 0004 GETMET R3 R2 K1
- 0x60140018, // 0005 GETGBL R5 G24
- 0x58180002, // 0006 LDCONST R6 K2
- 0x5C1C0000, // 0007 MOVE R7 R0
- 0x5C200200, // 0008 MOVE R8 R1
- 0x7C140600, // 0009 CALL R5 3
- 0x7C0C0400, // 000A CALL R3 2
- 0x80000000, // 000B RET 0
- })
- ),
- &be_class_Matter_Plugin_Bridge_Sensor_Air_Quality,
- }),
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(web_values_prefix),
- /* K1 */ be_nested_str_weak(Air),
- /* K2 */ be_nested_str_weak(shadow_air_quality),
- /* K3 */ be_nested_str_weak(PM1),
- /* K4 */ be_nested_str_weak(shadow_pm1),
- /* K5 */ be_nested_str_weak(PM2_X2E5),
- /* K6 */ be_nested_str_weak(shadow_pm2_5),
- /* K7 */ be_nested_str_weak(PM10),
- /* K8 */ be_nested_str_weak(shadow_pm10),
- /* K9 */ be_nested_str_weak(CO2),
- /* K10 */ be_nested_str_weak(shadow_co2),
- /* K11 */ be_nested_str_weak(NO2),
- /* K12 */ be_nested_str_weak(shadow_no2),
- /* K13 */ be_nested_str_weak(TVOC),
- /* K14 */ be_nested_str_weak(shadow_tvoc),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x84040000, // 0000 CLOSURE R1 P0
- 0x8C080100, // 0001 GETMET R2 R0 K0
- 0x7C080200, // 0002 CALL R2 1
- 0x5C080200, // 0003 MOVE R2 R1
- 0x580C0001, // 0004 LDCONST R3 K1
- 0x88100102, // 0005 GETMBR R4 R0 K2
- 0x7C080400, // 0006 CALL R2 2
- 0x5C080200, // 0007 MOVE R2 R1
- 0x580C0003, // 0008 LDCONST R3 K3
- 0x88100104, // 0009 GETMBR R4 R0 K4
- 0x7C080400, // 000A CALL R2 2
- 0x5C080200, // 000B MOVE R2 R1
- 0x580C0005, // 000C LDCONST R3 K5
- 0x88100106, // 000D GETMBR R4 R0 K6
- 0x7C080400, // 000E CALL R2 2
- 0x5C080200, // 000F MOVE R2 R1
- 0x580C0007, // 0010 LDCONST R3 K7
- 0x88100108, // 0011 GETMBR R4 R0 K8
- 0x7C080400, // 0012 CALL R2 2
- 0x5C080200, // 0013 MOVE R2 R1
- 0x580C0009, // 0014 LDCONST R3 K9
- 0x8810010A, // 0015 GETMBR R4 R0 K10
- 0x7C080400, // 0016 CALL R2 2
- 0x5C080200, // 0017 MOVE R2 R1
- 0x580C000B, // 0018 LDCONST R3 K11
- 0x8810010C, // 0019 GETMBR R4 R0 K12
- 0x7C080400, // 001A CALL R2 2
- 0x5C080200, // 001B MOVE R2 R1
- 0x580C000D, // 001C LDCONST R3 K13
- 0x8810010E, // 001D GETMBR R4 R0 K14
- 0x7C080400, // 001E CALL R2 2
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Plugin_Bridge_Sensor_Air_Quality
********************************************************************/
@@ -152,14 +13,12 @@ extern const bclass be_class_Matter_Plugin_Sensor_Air_Quality;
be_local_class(Matter_Plugin_Bridge_Sensor_Air_Quality,
0,
&be_class_Matter_Plugin_Sensor_Air_Quality,
- be_nested_map(6,
+ be_nested_map(4,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(BRIDGE, 2), be_const_bool(1) },
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_airquality) },
- { be_const_key_weak(BRIDGE, 4), be_const_bool(1) },
- { be_const_key_weak(UPDATE_CMD, 5), be_nested_str_weak(Status_X2010) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_web_values_closure) },
- { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Bridge_Sensor_Air_Quality_parse_status_closure) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
})),
be_str_weak(Matter_Plugin_Bridge_Sensor_Air_Quality)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index 781223807..a92be66c2 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -3385,7 +3385,7 @@ be_local_class(Matter_UI,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(equal_map, -1), be_const_static_closure(class_Matter_UI_equal_map_closure) },
{ be_const_key_weak(page_part_mgr_adv, -1), be_const_closure(class_Matter_UI_page_part_mgr_adv_closure) },
- { be_const_key_weak(_CLASSES_TYPES2, -1), be_nested_str_weak(_X7Chttp_relay_X7Chttp_light0_X7Chttp_light1_X7Chttp_light2_X7Chttp_light3_X7Chttp_temperature_X7Chttp_pressure_X7Chttp_illuminance_X7Chttp_humidity_X7Chttp_occupancy_X7Chttp_contact_X7Chttp_flow_X7Chttp_waterleak) },
+ { be_const_key_weak(_CLASSES_TYPES2, -1), be_nested_str_weak(_X7Chttp_relay_X7Chttp_light0_X7Chttp_light1_X7Chttp_light2_X7Chttp_light3_X7Chttp_temperature_X7Chttp_pressure_X7Chttp_illuminance_X7Chttp_humidity_X7Chttp_occupancy_X7Chttp_contact_X7Chttp_flow_X7Chttp_waterleak_X7Chttp_airquality) },
{ be_const_key_weak(page_part_mgr, 25), be_const_closure(class_Matter_UI_page_part_mgr_closure) },
{ be_const_key_weak(show_plugins_hints_js, -1), be_const_closure(class_Matter_UI_show_plugins_hints_js_closure) },
{ be_const_key_weak(show_enable, -1), be_const_closure(class_Matter_UI_show_enable_closure) },
From 01140d3013345d185b5bd519b62c3fc343d202b5 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 8 Jun 2024 22:10:43 +0200
Subject: [PATCH 026/252] HASPmota rounds to nearest int values passed as
'real' (#21599)
---
CHANGELOG.md | 1 +
.../lv_haspmota/src/embedded/lv_haspmota.be | 6 +
.../src/solidify/solidified_lv_haspmota.h | 334 +++++++++---------
3 files changed, 181 insertions(+), 160 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3208282e2..f5ccea709 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
### Added
- Berry solidification of `bytes` instances (#21558)
- Matter support for Air Quality sensors (#21559)
+- HASPmota rounds to nearest int values passed as 'real'
### Breaking Changed
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
index a6da27b03..e6601d46c 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
+++ b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
@@ -1018,6 +1018,12 @@ class lvh_obj : lvh_root
if string.startswith(k, "set_") || string.startswith(k, "get_") return end
+ # if value is 'real', round to nearest int
+ if type(v) == 'real'
+ import math
+ v = math.floor(v + 0.5)
+ end
+
# parse value in percentage
if string.endswith(k, "%")
k = k[0..-2]
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
index db8b25d01..9ac95c7de 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
+++ b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
@@ -3372,35 +3372,39 @@ be_local_closure(class_lvh_obj_setmember, /* name */
0, /* has sup protos */
&be_class_lvh_obj,
1, /* has constants */
- ( &(const bvalue[24]) { /* constants */
+ ( &(const bvalue[28]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(introspect),
/* K2 */ be_nested_str_weak(startswith),
/* K3 */ be_nested_str_weak(set_),
/* K4 */ be_nested_str_weak(get_),
- /* K5 */ be_nested_str_weak(endswith),
- /* K6 */ be_nested_str_weak(_X25),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(lv),
- /* K9 */ be_nested_str_weak(pct),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(byte),
- /* K12 */ be_const_int(2147483647),
- /* K13 */ be_nested_str_weak(digits_to_style),
- /* K14 */ be_nested_str_weak(_attr_ignore),
- /* K15 */ be_nested_str_weak(find),
- /* K16 */ be_nested_str_weak(get),
- /* K17 */ be_nested_str_weak(function),
- /* K18 */ be_nested_str_weak(_attr_map),
- /* K19 */ be_nested_str_weak(is_color_attribute),
- /* K20 */ be_nested_str_weak(parse_color),
- /* K21 */ be_nested_str_weak(_lv_obj),
- /* K22 */ be_nested_str_weak(set_style_),
- /* K23 */ be_nested_str_weak(HSP_X3A_X20unknown_X20attribute_X3A),
+ /* K5 */ be_nested_str_weak(real),
+ /* K6 */ be_nested_str_weak(math),
+ /* K7 */ be_nested_str_weak(floor),
+ /* K8 */ be_const_real_hex(0x3F000000),
+ /* K9 */ be_nested_str_weak(endswith),
+ /* K10 */ be_nested_str_weak(_X25),
+ /* K11 */ be_const_int(0),
+ /* K12 */ be_nested_str_weak(lv),
+ /* K13 */ be_nested_str_weak(pct),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(byte),
+ /* K16 */ be_const_int(2147483647),
+ /* K17 */ be_nested_str_weak(digits_to_style),
+ /* K18 */ be_nested_str_weak(_attr_ignore),
+ /* K19 */ be_nested_str_weak(find),
+ /* K20 */ be_nested_str_weak(get),
+ /* K21 */ be_nested_str_weak(function),
+ /* K22 */ be_nested_str_weak(_attr_map),
+ /* K23 */ be_nested_str_weak(is_color_attribute),
+ /* K24 */ be_nested_str_weak(parse_color),
+ /* K25 */ be_nested_str_weak(_lv_obj),
+ /* K26 */ be_nested_str_weak(set_style_),
+ /* K27 */ be_nested_str_weak(HSP_X3A_X20unknown_X20attribute_X3A),
}),
be_str_weak(setmember),
&be_const_str_solidified,
- ( &(const binstruction[152]) { /* code */
+ ( &(const binstruction[162]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xA4120200, // 0001 IMPORT R4 K1
0x8C140702, // 0002 GETMET R5 R3 K2
@@ -3414,145 +3418,155 @@ be_local_closure(class_lvh_obj_setmember, /* name */
0x7C140600, // 000A CALL R5 3
0x78160000, // 000B JMPF R5 #000D
0x80000A00, // 000C RET 0
- 0x8C140705, // 000D GETMET R5 R3 K5
- 0x5C1C0200, // 000E MOVE R7 R1
- 0x58200006, // 000F LDCONST R8 K6
- 0x7C140600, // 0010 CALL R5 3
- 0x78160009, // 0011 JMPF R5 #001C
- 0x5415FFFD, // 0012 LDINT R5 -2
- 0x40160E05, // 0013 CONNECT R5 K7 R5
- 0x94040205, // 0014 GETIDX R1 R1 R5
- 0xB8161000, // 0015 GETNGBL R5 K8
- 0x8C140B09, // 0016 GETMET R5 R5 K9
- 0x601C0009, // 0017 GETGBL R7 G9
- 0x5C200400, // 0018 MOVE R8 R2
- 0x7C1C0200, // 0019 CALL R7 1
- 0x7C140400, // 001A CALL R5 2
- 0x5C080A00, // 001B MOVE R2 R5
- 0x4C140000, // 001C LDNIL R5
- 0x6018000C, // 001D GETGBL R6 G12
- 0x5C1C0200, // 001E MOVE R7 R1
- 0x7C180200, // 001F CALL R6 1
- 0x28180D0A, // 0020 GE R6 R6 K10
- 0x781A001F, // 0021 JMPF R6 #0042
- 0x8C18070B, // 0022 GETMET R6 R3 K11
- 0x5421FFFE, // 0023 LDINT R8 -1
- 0x94200208, // 0024 GETIDX R8 R1 R8
- 0x7C180400, // 0025 CALL R6 2
- 0x8C1C070B, // 0026 GETMET R7 R3 K11
- 0x5425FFFD, // 0027 LDINT R9 -2
- 0x94240209, // 0028 GETIDX R9 R1 R9
- 0x7C1C0400, // 0029 CALL R7 2
- 0x5422002F, // 002A LDINT R8 48
- 0x28200C08, // 002B GE R8 R6 R8
- 0x78220014, // 002C JMPF R8 #0042
- 0x54220038, // 002D LDINT R8 57
- 0x18200C08, // 002E LE R8 R6 R8
- 0x78220011, // 002F JMPF R8 #0042
- 0x5422002F, // 0030 LDINT R8 48
- 0x28200E08, // 0031 GE R8 R7 R8
- 0x7822000E, // 0032 JMPF R8 #0042
- 0x54220038, // 0033 LDINT R8 57
- 0x18200E08, // 0034 LE R8 R7 R8
- 0x7822000B, // 0035 JMPF R8 #0042
- 0x60200009, // 0036 GETGBL R8 G9
- 0x5425FFFD, // 0037 LDINT R9 -2
- 0x4024130C, // 0038 CONNECT R9 R9 K12
- 0x94240209, // 0039 GETIDX R9 R1 R9
- 0x7C200200, // 003A CALL R8 1
- 0x5425FFFC, // 003B LDINT R9 -3
- 0x40260E09, // 003C CONNECT R9 K7 R9
- 0x94040209, // 003D GETIDX R1 R1 R9
- 0x8C24010D, // 003E GETMET R9 R0 K13
- 0x5C2C1000, // 003F MOVE R11 R8
- 0x7C240400, // 0040 CALL R9 2
- 0x5C141200, // 0041 MOVE R5 R9
- 0x8818010E, // 0042 GETMBR R6 R0 K14
- 0x8C180D0F, // 0043 GETMET R6 R6 K15
- 0x5C200200, // 0044 MOVE R8 R1
- 0x7C180400, // 0045 CALL R6 2
- 0x4C1C0000, // 0046 LDNIL R7
- 0x20180C07, // 0047 NE R6 R6 R7
- 0x781A0000, // 0048 JMPF R6 #004A
- 0x80000C00, // 0049 RET 0
- 0x8C180910, // 004A GETMET R6 R4 K16
- 0x5C200000, // 004B MOVE R8 R0
- 0x00260601, // 004C ADD R9 K3 R1
- 0x7C180600, // 004D CALL R6 3
- 0x601C0004, // 004E GETGBL R7 G4
- 0x5C200C00, // 004F MOVE R8 R6
- 0x7C1C0200, // 0050 CALL R7 1
- 0x1C1C0F11, // 0051 EQ R7 R7 K17
- 0x781E000A, // 0052 JMPF R7 #005E
- 0x5C1C0C00, // 0053 MOVE R7 R6
- 0x5C200000, // 0054 MOVE R8 R0
- 0x5C240400, // 0055 MOVE R9 R2
- 0x4C280000, // 0056 LDNIL R10
- 0x20280A0A, // 0057 NE R10 R5 R10
- 0x782A0001, // 0058 JMPF R10 #005B
- 0x5C280A00, // 0059 MOVE R10 R5
- 0x70020000, // 005A JMP #005C
- 0x58280007, // 005B LDCONST R10 K7
- 0x7C1C0600, // 005C CALL R7 3
- 0x80000E00, // 005D RET 0
- 0x881C0112, // 005E GETMBR R7 R0 K18
- 0x8C1C0F0F, // 005F GETMET R7 R7 K15
- 0x5C240200, // 0060 MOVE R9 R1
- 0x5C280200, // 0061 MOVE R10 R1
- 0x7C1C0600, // 0062 CALL R7 3
- 0x5C040E00, // 0063 MOVE R1 R7
- 0x8C1C0113, // 0064 GETMET R7 R0 K19
- 0x5C240200, // 0065 MOVE R9 R1
- 0x7C1C0400, // 0066 CALL R7 2
- 0x781E0003, // 0067 JMPF R7 #006C
- 0x8C1C0114, // 0068 GETMET R7 R0 K20
- 0x5C240400, // 0069 MOVE R9 R2
- 0x7C1C0400, // 006A CALL R7 2
- 0x5C080E00, // 006B MOVE R2 R7
- 0x4C1C0000, // 006C LDNIL R7
- 0x1C1C0A07, // 006D EQ R7 R5 R7
- 0x781E000E, // 006E JMPF R7 #007E
- 0x8C1C0910, // 006F GETMET R7 R4 K16
- 0x88240115, // 0070 GETMBR R9 R0 K21
- 0x002A0601, // 0071 ADD R10 K3 R1
- 0x7C1C0600, // 0072 CALL R7 3
- 0x5C180E00, // 0073 MOVE R6 R7
- 0x601C0004, // 0074 GETGBL R7 G4
- 0x5C200C00, // 0075 MOVE R8 R6
- 0x7C1C0200, // 0076 CALL R7 1
- 0x1C1C0F11, // 0077 EQ R7 R7 K17
- 0x781E0004, // 0078 JMPF R7 #007E
- 0x5C1C0C00, // 0079 MOVE R7 R6
- 0x88200115, // 007A GETMBR R8 R0 K21
- 0x5C240400, // 007B MOVE R9 R2
- 0x7C1C0400, // 007C CALL R7 2
- 0x80040E00, // 007D RET 1 R7
- 0x8C1C0910, // 007E GETMET R7 R4 K16
- 0x88240115, // 007F GETMBR R9 R0 K21
- 0x002A2C01, // 0080 ADD R10 K22 R1
- 0x7C1C0600, // 0081 CALL R7 3
- 0x5C180E00, // 0082 MOVE R6 R7
- 0x601C0004, // 0083 GETGBL R7 G4
- 0x5C200C00, // 0084 MOVE R8 R6
- 0x7C1C0200, // 0085 CALL R7 1
- 0x1C1C0F11, // 0086 EQ R7 R7 K17
- 0x781E000A, // 0087 JMPF R7 #0093
- 0x5C1C0C00, // 0088 MOVE R7 R6
- 0x88200115, // 0089 GETMBR R8 R0 K21
- 0x5C240400, // 008A MOVE R9 R2
- 0x4C280000, // 008B LDNIL R10
- 0x20280A0A, // 008C NE R10 R5 R10
- 0x782A0001, // 008D JMPF R10 #0090
- 0x5C280A00, // 008E MOVE R10 R5
- 0x70020000, // 008F JMP #0091
- 0x58280007, // 0090 LDCONST R10 K7
- 0x7C1C0600, // 0091 CALL R7 3
- 0x80040E00, // 0092 RET 1 R7
- 0x601C0001, // 0093 GETGBL R7 G1
- 0x58200017, // 0094 LDCONST R8 K23
- 0x5C240200, // 0095 MOVE R9 R1
- 0x7C1C0400, // 0096 CALL R7 2
- 0x80000000, // 0097 RET 0
+ 0x60140004, // 000D GETGBL R5 G4
+ 0x5C180400, // 000E MOVE R6 R2
+ 0x7C140200, // 000F CALL R5 1
+ 0x1C140B05, // 0010 EQ R5 R5 K5
+ 0x78160004, // 0011 JMPF R5 #0017
+ 0xA4160C00, // 0012 IMPORT R5 K6
+ 0x8C180B07, // 0013 GETMET R6 R5 K7
+ 0x00200508, // 0014 ADD R8 R2 K8
+ 0x7C180400, // 0015 CALL R6 2
+ 0x5C080C00, // 0016 MOVE R2 R6
+ 0x8C140709, // 0017 GETMET R5 R3 K9
+ 0x5C1C0200, // 0018 MOVE R7 R1
+ 0x5820000A, // 0019 LDCONST R8 K10
+ 0x7C140600, // 001A CALL R5 3
+ 0x78160009, // 001B JMPF R5 #0026
+ 0x5415FFFD, // 001C LDINT R5 -2
+ 0x40161605, // 001D CONNECT R5 K11 R5
+ 0x94040205, // 001E GETIDX R1 R1 R5
+ 0xB8161800, // 001F GETNGBL R5 K12
+ 0x8C140B0D, // 0020 GETMET R5 R5 K13
+ 0x601C0009, // 0021 GETGBL R7 G9
+ 0x5C200400, // 0022 MOVE R8 R2
+ 0x7C1C0200, // 0023 CALL R7 1
+ 0x7C140400, // 0024 CALL R5 2
+ 0x5C080A00, // 0025 MOVE R2 R5
+ 0x4C140000, // 0026 LDNIL R5
+ 0x6018000C, // 0027 GETGBL R6 G12
+ 0x5C1C0200, // 0028 MOVE R7 R1
+ 0x7C180200, // 0029 CALL R6 1
+ 0x28180D0E, // 002A GE R6 R6 K14
+ 0x781A001F, // 002B JMPF R6 #004C
+ 0x8C18070F, // 002C GETMET R6 R3 K15
+ 0x5421FFFE, // 002D LDINT R8 -1
+ 0x94200208, // 002E GETIDX R8 R1 R8
+ 0x7C180400, // 002F CALL R6 2
+ 0x8C1C070F, // 0030 GETMET R7 R3 K15
+ 0x5425FFFD, // 0031 LDINT R9 -2
+ 0x94240209, // 0032 GETIDX R9 R1 R9
+ 0x7C1C0400, // 0033 CALL R7 2
+ 0x5422002F, // 0034 LDINT R8 48
+ 0x28200C08, // 0035 GE R8 R6 R8
+ 0x78220014, // 0036 JMPF R8 #004C
+ 0x54220038, // 0037 LDINT R8 57
+ 0x18200C08, // 0038 LE R8 R6 R8
+ 0x78220011, // 0039 JMPF R8 #004C
+ 0x5422002F, // 003A LDINT R8 48
+ 0x28200E08, // 003B GE R8 R7 R8
+ 0x7822000E, // 003C JMPF R8 #004C
+ 0x54220038, // 003D LDINT R8 57
+ 0x18200E08, // 003E LE R8 R7 R8
+ 0x7822000B, // 003F JMPF R8 #004C
+ 0x60200009, // 0040 GETGBL R8 G9
+ 0x5425FFFD, // 0041 LDINT R9 -2
+ 0x40241310, // 0042 CONNECT R9 R9 K16
+ 0x94240209, // 0043 GETIDX R9 R1 R9
+ 0x7C200200, // 0044 CALL R8 1
+ 0x5425FFFC, // 0045 LDINT R9 -3
+ 0x40261609, // 0046 CONNECT R9 K11 R9
+ 0x94040209, // 0047 GETIDX R1 R1 R9
+ 0x8C240111, // 0048 GETMET R9 R0 K17
+ 0x5C2C1000, // 0049 MOVE R11 R8
+ 0x7C240400, // 004A CALL R9 2
+ 0x5C141200, // 004B MOVE R5 R9
+ 0x88180112, // 004C GETMBR R6 R0 K18
+ 0x8C180D13, // 004D GETMET R6 R6 K19
+ 0x5C200200, // 004E MOVE R8 R1
+ 0x7C180400, // 004F CALL R6 2
+ 0x4C1C0000, // 0050 LDNIL R7
+ 0x20180C07, // 0051 NE R6 R6 R7
+ 0x781A0000, // 0052 JMPF R6 #0054
+ 0x80000C00, // 0053 RET 0
+ 0x8C180914, // 0054 GETMET R6 R4 K20
+ 0x5C200000, // 0055 MOVE R8 R0
+ 0x00260601, // 0056 ADD R9 K3 R1
+ 0x7C180600, // 0057 CALL R6 3
+ 0x601C0004, // 0058 GETGBL R7 G4
+ 0x5C200C00, // 0059 MOVE R8 R6
+ 0x7C1C0200, // 005A CALL R7 1
+ 0x1C1C0F15, // 005B EQ R7 R7 K21
+ 0x781E000A, // 005C JMPF R7 #0068
+ 0x5C1C0C00, // 005D MOVE R7 R6
+ 0x5C200000, // 005E MOVE R8 R0
+ 0x5C240400, // 005F MOVE R9 R2
+ 0x4C280000, // 0060 LDNIL R10
+ 0x20280A0A, // 0061 NE R10 R5 R10
+ 0x782A0001, // 0062 JMPF R10 #0065
+ 0x5C280A00, // 0063 MOVE R10 R5
+ 0x70020000, // 0064 JMP #0066
+ 0x5828000B, // 0065 LDCONST R10 K11
+ 0x7C1C0600, // 0066 CALL R7 3
+ 0x80000E00, // 0067 RET 0
+ 0x881C0116, // 0068 GETMBR R7 R0 K22
+ 0x8C1C0F13, // 0069 GETMET R7 R7 K19
+ 0x5C240200, // 006A MOVE R9 R1
+ 0x5C280200, // 006B MOVE R10 R1
+ 0x7C1C0600, // 006C CALL R7 3
+ 0x5C040E00, // 006D MOVE R1 R7
+ 0x8C1C0117, // 006E GETMET R7 R0 K23
+ 0x5C240200, // 006F MOVE R9 R1
+ 0x7C1C0400, // 0070 CALL R7 2
+ 0x781E0003, // 0071 JMPF R7 #0076
+ 0x8C1C0118, // 0072 GETMET R7 R0 K24
+ 0x5C240400, // 0073 MOVE R9 R2
+ 0x7C1C0400, // 0074 CALL R7 2
+ 0x5C080E00, // 0075 MOVE R2 R7
+ 0x4C1C0000, // 0076 LDNIL R7
+ 0x1C1C0A07, // 0077 EQ R7 R5 R7
+ 0x781E000E, // 0078 JMPF R7 #0088
+ 0x8C1C0914, // 0079 GETMET R7 R4 K20
+ 0x88240119, // 007A GETMBR R9 R0 K25
+ 0x002A0601, // 007B ADD R10 K3 R1
+ 0x7C1C0600, // 007C CALL R7 3
+ 0x5C180E00, // 007D MOVE R6 R7
+ 0x601C0004, // 007E GETGBL R7 G4
+ 0x5C200C00, // 007F MOVE R8 R6
+ 0x7C1C0200, // 0080 CALL R7 1
+ 0x1C1C0F15, // 0081 EQ R7 R7 K21
+ 0x781E0004, // 0082 JMPF R7 #0088
+ 0x5C1C0C00, // 0083 MOVE R7 R6
+ 0x88200119, // 0084 GETMBR R8 R0 K25
+ 0x5C240400, // 0085 MOVE R9 R2
+ 0x7C1C0400, // 0086 CALL R7 2
+ 0x80040E00, // 0087 RET 1 R7
+ 0x8C1C0914, // 0088 GETMET R7 R4 K20
+ 0x88240119, // 0089 GETMBR R9 R0 K25
+ 0x002A3401, // 008A ADD R10 K26 R1
+ 0x7C1C0600, // 008B CALL R7 3
+ 0x5C180E00, // 008C MOVE R6 R7
+ 0x601C0004, // 008D GETGBL R7 G4
+ 0x5C200C00, // 008E MOVE R8 R6
+ 0x7C1C0200, // 008F CALL R7 1
+ 0x1C1C0F15, // 0090 EQ R7 R7 K21
+ 0x781E000A, // 0091 JMPF R7 #009D
+ 0x5C1C0C00, // 0092 MOVE R7 R6
+ 0x88200119, // 0093 GETMBR R8 R0 K25
+ 0x5C240400, // 0094 MOVE R9 R2
+ 0x4C280000, // 0095 LDNIL R10
+ 0x20280A0A, // 0096 NE R10 R5 R10
+ 0x782A0001, // 0097 JMPF R10 #009A
+ 0x5C280A00, // 0098 MOVE R10 R5
+ 0x70020000, // 0099 JMP #009B
+ 0x5828000B, // 009A LDCONST R10 K11
+ 0x7C1C0600, // 009B CALL R7 3
+ 0x80040E00, // 009C RET 1 R7
+ 0x601C0001, // 009D GETGBL R7 G1
+ 0x5820001B, // 009E LDCONST R8 K27
+ 0x5C240200, // 009F MOVE R9 R1
+ 0x7C1C0400, // 00A0 CALL R7 2
+ 0x80000000, // 00A1 RET 0
})
)
);
From c556c06413b7e7495fd81190def7b651d4e8f9e8 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sun, 9 Jun 2024 10:25:32 +0200
Subject: [PATCH 027/252] remove dead code (#21595)
---
tasmota/tasmota_support/support_wifi.ino | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/tasmota/tasmota_support/support_wifi.ino b/tasmota/tasmota_support/support_wifi.ino
index 852664ad4..eee250d8e 100644
--- a/tasmota/tasmota_support/support_wifi.ino
+++ b/tasmota/tasmota_support/support_wifi.ino
@@ -923,22 +923,6 @@ void WifiCheck(uint8_t param)
if (Wifi.config_counter) {
Wifi.config_counter--;
Wifi.counter = Wifi.config_counter +5;
- if (Wifi.config_counter) {
- if (!Wifi.config_counter) {
- if (strlen(WiFi.SSID().c_str())) {
- SettingsUpdateText(SET_STASSID1, WiFi.SSID().c_str());
- }
- if (strlen(WiFi.psk().c_str())) {
- SettingsUpdateText(SET_STAPWD1, WiFi.psk().c_str());
- }
- Settings->sta_active = 0;
- AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_WIFI D_WCFG_2_WIFIMANAGER D_CMND_SSID "1 %s"), SettingsText(SET_STASSID1));
- }
- }
- if (!Wifi.config_counter) {
-// SettingsSdkErase(); // Disabled v6.1.0b due to possible bad wifi connects
- TasmotaGlobal.restart_flag = 2;
- }
} else {
if (Wifi.counter <= 0) {
WifiCheckIp();
From 3cae94d710b4bbd3bfba74148d8a546bf5bb49b6 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 9 Jun 2024 10:35:03 +0200
Subject: [PATCH 028/252] Update changelogs
---
CHANGELOG.md | 3 ++-
RELEASENOTES.md | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f5ccea709..85f5e0232 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,8 @@ All notable changes to this project will be documented in this file.
### Added
- Berry solidification of `bytes` instances (#21558)
- Matter support for Air Quality sensors (#21559)
-- HASPmota rounds to nearest int values passed as 'real'
+- Matter support for bridged Air Quality (#21597)
+- HASPmota rounds to nearest int values passed as 'real' (#21599)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index ed8cdc01e..bf213708a 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -122,7 +122,9 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
## Changelog v14.1.0.1
### Added
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
+- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
+- Matter support for bridged Air Quality (#21597)[#21597](https://github.com/arendst/Tasmota/issues/21597)
### Changed
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
From 8cfa6f28ea0c9ee2b9a07b152d98a5dcbb046385 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 9 Jun 2024 10:40:01 +0200
Subject: [PATCH 029/252] Fix restart on wifimanager timeout
---
tasmota/tasmota_support/support_wifi.ino | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tasmota/tasmota_support/support_wifi.ino b/tasmota/tasmota_support/support_wifi.ino
index eee250d8e..35b07046e 100644
--- a/tasmota/tasmota_support/support_wifi.ino
+++ b/tasmota/tasmota_support/support_wifi.ino
@@ -923,6 +923,10 @@ void WifiCheck(uint8_t param)
if (Wifi.config_counter) {
Wifi.config_counter--;
Wifi.counter = Wifi.config_counter +5;
+ if (!Wifi.config_counter) {
+// SettingsSdkErase(); // Disabled v6.1.0b due to possible bad wifi connects
+ TasmotaGlobal.restart_flag = 2;
+ }
} else {
if (Wifi.counter <= 0) {
WifiCheckIp();
From ea5c9bc9b61ac12a574c8eb04f2a4a9a9ada666e Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 9 Jun 2024 13:46:54 +0200
Subject: [PATCH 030/252] Fix DisplayMode MQTT (Un)Subscribe without restart
---
.../tasmota_xdrv_driver/xdrv_13_display.ino | 79 ++++++++++---------
1 file changed, 41 insertions(+), 38 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index 4a9cd73c3..bbeea3be0 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -497,14 +497,12 @@ void DisplayText(void)
// use disp_xpos, disp_ypos
DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
}
-#ifdef USE_DISPLAY_MODES1TO5
- } else {
- DisplayLogBufferAdd(linebuf);
- }
-#endif // USE_DISPLAY_MODES1TO5
memset(linebuf, ' ', sizeof(linebuf));
linebuf[sizeof(linebuf)-1] = 0;
dp = linebuf;
+#ifdef USE_DISPLAY_MODES1TO5
+ }
+#endif // USE_DISPLAY_MODES1TO5
}
} else {
// copy chars
@@ -1236,7 +1234,9 @@ extern FS *ffsp;
alignright(linebuf);
}
#ifdef USE_DISPLAY_MODES1TO5
- if (!Settings->display_mode) {
+ if (Settings->display_mode) {
+ DisplayLogBufferAdd(linebuf);
+ } else
#endif // USE_DISPLAY_MODES1TO5
if (col > 0 && lin > 0) {
// use col and lin
@@ -1245,11 +1245,6 @@ extern FS *ffsp;
// use disp_xpos, disp_ypos
DisplayDrawStringAt(disp_xpos, disp_ypos, linebuf, fg_color, 0);
}
-#ifdef USE_DISPLAY_MODES1TO5
- } else {
- DisplayLogBufferAdd(linebuf);
- }
-#endif // USE_DISPLAY_MODES1TO5
}
// draw buffer
if (auto_draw&1) {
@@ -1597,6 +1592,8 @@ void DisplayAllocLogBuffer(void)
if (disp_log_buffer != nullptr) {
disp_log_buffer_cols = Settings->display_cols[0] +1;
DisplayClearLogBuffer();
+ DisplayClearScreenBuffer();
+ DisplayClear();
}
}
}
@@ -1818,35 +1815,37 @@ void DisplayAnalyzeJson(char *topic, const char *json)
}
}
-void DisplayMqttSubscribe(void)
-{
+void DisplayMqttSubscribe(void) {
/* Subscribe to tele messages only
* Supports the following FullTopic formats
* - %prefix%/%topic%
* - home/%prefix%/%topic%
* - home/level2/%prefix%/%topic% etc.
*/
- if (Settings->display_model && (Settings->display_mode &0x04)) {
-
- char stopic[TOPSZ];
- char ntopic[TOPSZ];
-
- ntopic[0] = '\0';
- strlcpy(stopic, SettingsText(SET_MQTT_FULLTOPIC), sizeof(stopic));
- char *tp = strtok(stopic, "/");
- while (tp != nullptr) {
- if (!strcmp_P(tp, MQTT_TOKEN_PREFIX)) {
- break;
- }
- strncat_P(ntopic, PSTR("+/"), sizeof(ntopic) - strlen(ntopic) -1); // Add single-level wildcards
- tp = strtok(nullptr, "/");
+ char stopic[TOPSZ];
+ strlcpy(stopic, SettingsText(SET_MQTT_FULLTOPIC), sizeof(stopic));
+ char *tp = strtok(stopic, "/");
+ char ntopic[TOPSZ];
+ ntopic[0] = '\0';
+ while (tp != nullptr) {
+ if (!strcmp_P(tp, MQTT_TOKEN_PREFIX)) {
+ break;
+ }
+ strncat_P(ntopic, PSTR("+/"), sizeof(ntopic) - strlen(ntopic) -1); // Add single-level wildcards
+ tp = strtok(nullptr, "/");
+ }
+ strncat(ntopic, SettingsText(SET_MQTTPREFIX3), sizeof(ntopic) - strlen(ntopic) -1); // Subscribe to tele messages
+ strncat_P(ntopic, PSTR("/#"), sizeof(ntopic) - strlen(ntopic) -1); // Add multi-level wildcard
+ if (Settings->display_model && (Settings->display_mode &0x04)) {
+ if (!disp_subscribed) {
+ disp_subscribed = true;
+ MqttSubscribe(ntopic);
}
- strncat(ntopic, SettingsText(SET_MQTTPREFIX3), sizeof(ntopic) - strlen(ntopic) -1); // Subscribe to tele messages
- strncat_P(ntopic, PSTR("/#"), sizeof(ntopic) - strlen(ntopic) -1); // Add multi-level wildcard
- MqttSubscribe(ntopic);
- disp_subscribed = true;
} else {
- disp_subscribed = false;
+ if (disp_subscribed) {
+ disp_subscribed = false;
+ MqttUnsubscribe(ntopic);
+ }
}
}
@@ -2026,14 +2025,18 @@ void CmndDisplayMode(void) {
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 5)) {
uint32_t last_display_mode = Settings->display_mode;
Settings->display_mode = XdrvMailbox.payload;
-
- if (disp_subscribed != (Settings->display_mode &0x04)) {
- TasmotaGlobal.restart_flag = 2; // Restart to Add/Remove MQTT subscribe
- } else {
- if (Settings->display_mode) { // Switch to non mode 0
+ if (last_display_mode != Settings->display_mode) { // Switch to different mode
+ if ((!last_display_mode && Settings->display_mode) || // Switch to mode 1, 2, 3 or 4
+ (last_display_mode && !Settings->display_mode)) { // Switch to mode 0
+ DisplayInit(DISPLAY_INIT_MODE);
+ }
+ if (1 == Settings->display_mode) { // Switch to mode 1
+ DisplayClear();
+ }
+ else if (Settings->display_mode > 1) { // Switch to mode 2, 3 or 4
DisplayLogBufferInit();
}
- DisplayInit(DISPLAY_INIT_MODE);
+ DisplayMqttSubscribe();
}
}
#endif // USE_DISPLAY_MODES1TO5
From bdc15960ad48292d0f907f51c5abe4ea7cd2310d Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 9 Jun 2024 16:25:04 +0200
Subject: [PATCH 031/252] Refactor display show sensors
---
.../tasmota_xdrv_driver/xdrv_13_display.ino | 99 ++++++++-----------
1 file changed, 40 insertions(+), 59 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index bbeea3be0..cdb9faded 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -1667,91 +1667,73 @@ void DisplayLogBufferInit(void)
\*********************************************************************************************/
enum SensorQuantity {
- JSON_TEMPERATURE,
- JSON_HUMIDITY, JSON_LIGHT, JSON_NOISE, JSON_AIRQUALITY,
+ JSON_TEMPERATURE, JSON_DEWPOINT, JSON_HEATINDEX,
JSON_PRESSURE, JSON_PRESSUREATSEALEVEL,
+ JSON_POWERFACTOR, JSON_COUNTER, JSON_ANALOG_INPUT, JSON_UV_LEVEL,
+ JSON_HUMIDITY, JSON_LIGHT, JSON_NOISE, JSON_AIRQUALITY,
JSON_ILLUMINANCE,
JSON_GAS,
JSON_YESTERDAY, JSON_TOTAL, JSON_TODAY,
JSON_PERIOD,
- JSON_POWERFACTOR, JSON_COUNTER, JSON_ANALOG_INPUT, JSON_UV_LEVEL,
JSON_CURRENT,
JSON_VOLTAGE,
JSON_POWERUSAGE,
JSON_CO2,
JSON_FREQUENCY };
const char kSensorQuantity[] PROGMEM =
- D_JSON_TEMPERATURE "|" // degrees
- D_JSON_HUMIDITY "|" D_JSON_LIGHT "|" D_JSON_NOISE "|" D_JSON_AIRQUALITY "|" // percentage
+ D_JSON_TEMPERATURE "|" D_JSON_DEWPOINT "|" D_JSON_HEATINDEX "|" // degrees
D_JSON_PRESSURE "|" D_JSON_PRESSUREATSEALEVEL "|" // hPa
+ D_JSON_POWERFACTOR "|" D_JSON_COUNTER "|" D_JSON_ANALOG_INPUT "|" D_JSON_UV_LEVEL "|" // No unit
+ D_JSON_HUMIDITY "|" D_JSON_LIGHT "|" D_JSON_NOISE "|" D_JSON_AIRQUALITY "|" // percentage
D_JSON_ILLUMINANCE "|" // lx
D_JSON_GAS "|" // kOhm
D_JSON_YESTERDAY "|" D_JSON_TOTAL "|" D_JSON_TODAY "|" // kWh
D_JSON_PERIOD "|" // Wh
- D_JSON_POWERFACTOR "|" D_JSON_COUNTER "|" D_JSON_ANALOG_INPUT "|" D_JSON_UV_LEVEL "|" // No unit
D_JSON_CURRENT "|" // Ampere
D_JSON_VOLTAGE "|" // Volt
D_JSON_POWERUSAGE "|" // Watt
D_JSON_CO2 "|" // ppm
- D_JSON_FREQUENCY ; // Hz
-
-void DisplayJsonValue(const char* topic, const char* device, const char* mkey, const char* value)
-{
- char quantity[TOPSZ];
- char buffer[Settings->display_cols[0] +1];
- char spaces[Settings->display_cols[0]];
- char source[Settings->display_cols[0] - Settings->display_cols[1]];
- char svalue[Settings->display_cols[1] +1];
+ D_JSON_FREQUENCY; // Hz
+const char kSensorUnit[] PROGMEM =
+ "|||" // degrees Celsius or Fahrenheit
+ "||" // pressure hPa or mmHg
+ "||||" // No unit
+ "%|%|%|%|" // percentage
+ D_UNIT_LUX "|" // lx
+ D_UNIT_KILOOHM "|" // kOhm
+ D_UNIT_KILOWATTHOUR "|" D_UNIT_KILOWATTHOUR "|" D_UNIT_KILOWATTHOUR "|" // kWh
+ D_UNIT_WATTHOUR "|" // Wh
+ D_UNIT_AMPERE "|" // A
+ D_UNIT_VOLT "|" // V
+ D_UNIT_WATT "|" // W
+ D_UNIT_PARTS_PER_MILLION "|" // ppm
+ D_UNIT_HERTZ; // Hz
+void DisplayJsonValue(const char* topic, const char* device, const char* mkey, const char* value) {
SHOW_FREE_MEM(PSTR("DisplayJsonValue"));
- memset(spaces, 0x20, sizeof(spaces));
- spaces[sizeof(spaces) -1] = '\0';
- snprintf_P(source, sizeof(source), PSTR("%s%s%s%s"), topic, (strlen(topic))?"/":"", mkey, spaces); // pow1/Voltage or Voltage if topic is empty (local sensor)
+ char temp[TOPSZ];
+ int quantity_code = GetCommandCode(temp, sizeof(temp), mkey, kSensorQuantity);
+ if ((-1 == quantity_code) || !strcmp_P(mkey, S_RSLT_POWER)) { // Ok: Power, Not ok: POWER
+ return; // Display value not supported
+ }
- int quantity_code = GetCommandCode(quantity, sizeof(quantity), mkey, kSensorQuantity);
- if ((-1 == quantity_code) || !strcmp_P(mkey, S_RSLT_POWER)) { // Ok: Power, Not ok: POWER
- return;
+ char svalue[Settings->display_cols[1] +1]; // Max sized unit string
+ if (quantity_code <= JSON_HEATINDEX) { // Temperature
+ snprintf_P(svalue, sizeof(svalue), PSTR("%s~%s"), value, disp_temp); // Used by DisplayLogBuffer replace degrees character (276 octal)
}
- if (JSON_TEMPERATURE == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s~%s"), value, disp_temp);
+ else if (quantity_code <= JSON_PRESSUREATSEALEVEL) { // Pressure
+ snprintf_P(svalue, sizeof(svalue), PSTR("%s%s"), value, disp_pres); // hPa or mmHg
}
- else if ((quantity_code >= JSON_HUMIDITY) && (quantity_code <= JSON_AIRQUALITY)) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s%%"), value);
- }
- else if ((quantity_code >= JSON_PRESSURE) && (quantity_code <= JSON_PRESSUREATSEALEVEL)) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s%s"), value, disp_pres);
- }
- else if (JSON_ILLUMINANCE == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_LUX), value);
- }
- else if (JSON_GAS == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_KILOOHM), value);
- }
- else if ((quantity_code >= JSON_YESTERDAY) && (quantity_code <= JSON_TODAY)) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_KILOWATTHOUR), value);
- }
- else if (JSON_PERIOD == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_WATTHOUR), value);
- }
- else if ((quantity_code >= JSON_POWERFACTOR) && (quantity_code <= JSON_UV_LEVEL)) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s"), value);
- }
- else if (JSON_CURRENT == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_AMPERE), value);
- }
- else if (JSON_VOLTAGE == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_VOLT), value);
- }
- else if (JSON_POWERUSAGE == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_WATT), value);
- }
- else if (JSON_CO2 == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_PARTS_PER_MILLION), value);
- }
- else if (JSON_FREQUENCY == quantity_code) {
- snprintf_P(svalue, sizeof(svalue), PSTR("%s" D_UNIT_HERTZ), value);
+ else {
+ snprintf_P(svalue, sizeof(svalue), PSTR("%s%s"), value, GetTextIndexed(temp, sizeof(temp), quantity_code, kSensorUnit));
}
+
+ char buffer[Settings->display_cols[0] +1]; // Max sized buffer string
+ memset(buffer, 0x20, sizeof(buffer)); // Temporarily use for spaces
+ buffer[sizeof(buffer) -1] = '\0';
+ char source[Settings->display_cols[0] - Settings->display_cols[1]]; // Max sized source string
+ snprintf_P(source, sizeof(source), PSTR("%s%s%s%s"), topic, (strlen(topic))?"/":"", mkey, buffer); // pow1/Voltage or Voltage if topic is empty (local sensor)
snprintf_P(buffer, sizeof(buffer), PSTR("%s %s"), source, svalue);
// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "mkey [%s], source [%s], value [%s], quantity_code %d, log_buffer [%s]"), mkey, source, value, quantity_code, buffer);
@@ -1879,7 +1861,6 @@ void DisplayLocalSensor(void)
#endif // USE_DISPLAY_MODES1TO5
-
/*********************************************************************************************\
* Public
\*********************************************************************************************/
From c86e4db3a955cfc9068bced4eae71506f1163ec2 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 9 Jun 2024 17:49:29 +0200
Subject: [PATCH 032/252] Berry automatic rounding of float to int when calling
C mapped functions (#21601)
---
CHANGELOG.md | 1 +
.../berry_mapping/src/be_class_wrapper.c | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 85f5e0232..e85c1ab4e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Matter support for Air Quality sensors (#21559)
- Matter support for bridged Air Quality (#21597)
- HASPmota rounds to nearest int values passed as 'real' (#21599)
+- Berry automatic rounding of float to int when calling C mapped functions
### Breaking Changed
diff --git a/lib/libesp32/berry_mapping/src/be_class_wrapper.c b/lib/libesp32/berry_mapping/src/be_class_wrapper.c
index 1c567306b..0e06ec1de 100644
--- a/lib/libesp32/berry_mapping/src/be_class_wrapper.c
+++ b/lib/libesp32/berry_mapping/src/be_class_wrapper.c
@@ -13,6 +13,13 @@
#include "be_exec.h"
#include
#include
+#include
+
+#if BE_USE_SINGLE_FLOAT
+ #define mathfunc(func) func##f
+#else
+ #define mathfunc(func) func
+#endif
/* Ubuntu 22.04 LTS seems to have an invalid or missing signature for strtok_r, forcing a correct one */
extern char *strtok_r(char *str, const char *delim, char **saveptr);
@@ -227,7 +234,15 @@ intptr_t be_convert_single_elt(bvm *vm, int idx, const char * arg_type, int *buf
type_ok = type_ok || (arg_type[0] == provided_type && arg_type[1] == 0); // or type is a match (single char only)
type_ok = type_ok || (ret == 0 && arg_type_len != 1); // or NULL is accepted for an instance
type_ok = type_ok || (ret == 0 && arg_type[0] == 's' && arg_type[1] == 0); // accept nil for string, can be dangerous
-
+ if (!type_ok) {
+ if ((provided_type == 'f') && (arg_type[0] == 'i') && (arg_type[1] == 0)) {
+ // special case: float is accepted as int
+ breal v_real = be_toreal(vm, idx);
+ ret = mathfunc(round)(v_real);
+ provided_type = 'i';
+ type_ok = btrue;
+ }
+ }
if (!type_ok) {
be_raisef(vm, "type_error", "Unexpected argument type '%c', expected '%s'", provided_type, arg_type);
}
From e4bf2a5c275998cae88b5427bd8f5303dd6b9e9d Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 9 Jun 2024 18:33:47 +0200
Subject: [PATCH 033/252] Update changelogs
---
CHANGELOG.md | 2 +-
RELEASENOTES.md | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e85c1ab4e..560a7ec2d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@ All notable changes to this project will be documented in this file.
- Matter support for Air Quality sensors (#21559)
- Matter support for bridged Air Quality (#21597)
- HASPmota rounds to nearest int values passed as 'real' (#21599)
-- Berry automatic rounding of float to int when calling C mapped functions
+- Berry automatic rounding of float to int when calling C mapped functions (#21601)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index bf213708a..304f01bcc 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -122,6 +122,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
## Changelog v14.1.0.1
### Added
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
+- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality (#21597)[#21597](https://github.com/arendst/Tasmota/issues/21597)
From 9546390a1f574a8f7b8b7191f76a5de45578256a Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 9 Jun 2024 19:01:15 +0200
Subject: [PATCH 034/252] Berry add `math.round` (#21602)
* Berry add `math.round`
* add unit tests
* math.roung() returns real
---
CHANGELOG.md | 3 ++-
lib/libesp32/berry/src/be_mathlib.c | 13 +++++++++++++
lib/libesp32/berry/tests/math.be | 14 ++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 560a7ec2d..e7c3baa91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,8 @@ All notable changes to this project will be documented in this file.
- Matter support for Air Quality sensors (#21559)
- Matter support for bridged Air Quality (#21597)
- HASPmota rounds to nearest int values passed as 'real' (#21599)
-- Berry automatic rounding of float to int when calling C mapped functions (#21601)
+- Berry automatic rounding of float to int when calling C mapped functions
+- Berry add `math.round`
### Breaking Changed
diff --git a/lib/libesp32/berry/src/be_mathlib.c b/lib/libesp32/berry/src/be_mathlib.c
index 52abeffd7..17fbfe159 100644
--- a/lib/libesp32/berry/src/be_mathlib.c
+++ b/lib/libesp32/berry/src/be_mathlib.c
@@ -89,6 +89,17 @@ static int m_floor(bvm *vm)
be_return(vm);
}
+static int m_round(bvm *vm)
+{
+ if (be_top(vm) >= 1 && be_isnumber(vm, 1)) {
+ breal x = be_toreal(vm, 1);
+ be_pushreal(vm, mathfunc(round)(x));
+ } else {
+ be_pushreal(vm, (breal)0.0);
+ }
+ be_return(vm);
+}
+
static int m_sin(bvm *vm)
{
if (be_top(vm) >= 1 && be_isnumber(vm, 1)) {
@@ -299,6 +310,7 @@ be_native_module_attr_table(math) {
be_native_module_function("abs", m_abs),
be_native_module_function("ceil", m_ceil),
be_native_module_function("floor", m_floor),
+ be_native_module_function("round", m_round),
be_native_module_function("sin", m_sin),
be_native_module_function("cos", m_cos),
be_native_module_function("tan", m_tan),
@@ -334,6 +346,7 @@ module math (scope: global, depend: BE_USE_MATH_MODULE) {
abs, func(m_abs)
ceil, func(m_ceil)
floor, func(m_floor)
+ round, func(m_round)
sin, func(m_sin)
cos, func(m_cos)
tan, func(m_tan)
diff --git a/lib/libesp32/berry/tests/math.be b/lib/libesp32/berry/tests/math.be
index 232ffa285..6ad8b01c1 100644
--- a/lib/libesp32/berry/tests/math.be
+++ b/lib/libesp32/berry/tests/math.be
@@ -44,3 +44,17 @@ m_inf2 = {"v": -math.inf}
assert(json.dump(m_inf2) == '{"v":null}')
m_v = {"v": 3.5}
assert(json.dump(m_v) == '{"v":3.5}')
+
+# math.round
+assert(math.round(3) == 3)
+assert(math.round(3.2) == 3)
+assert(math.round(3.5) == 4)
+assert(math.round(3.6) == 4)
+
+assert(math.round(-3) == -3)
+assert(math.round(-3.2) == -3)
+assert(math.round(-3.5) == -4)
+assert(math.round(-3.6) == -4)
+
+assert(math.round() == 0)
+
From a53e057d54af0a01676a2b65d498861dc727030a Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 9 Jun 2024 19:39:15 +0200
Subject: [PATCH 035/252] HASPmota fix float rounding (#21604)
---
.../lv_haspmota/src/embedded/lv_haspmota.be | 2 +-
.../src/solidify/solidified_lv_haspmota.h | 335 +++++++++---------
2 files changed, 169 insertions(+), 168 deletions(-)
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
index e6601d46c..d0822dbeb 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
+++ b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
@@ -1021,7 +1021,7 @@ class lvh_obj : lvh_root
# if value is 'real', round to nearest int
if type(v) == 'real'
import math
- v = math.floor(v + 0.5)
+ v = int(math.round(v))
end
# parse value in percentage
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
index 9ac95c7de..83bad6778 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
+++ b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
@@ -3372,7 +3372,7 @@ be_local_closure(class_lvh_obj_setmember, /* name */
0, /* has sup protos */
&be_class_lvh_obj,
1, /* has constants */
- ( &(const bvalue[28]) { /* constants */
+ ( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(introspect),
/* K2 */ be_nested_str_weak(startswith),
@@ -3380,31 +3380,30 @@ be_local_closure(class_lvh_obj_setmember, /* name */
/* K4 */ be_nested_str_weak(get_),
/* K5 */ be_nested_str_weak(real),
/* K6 */ be_nested_str_weak(math),
- /* K7 */ be_nested_str_weak(floor),
- /* K8 */ be_const_real_hex(0x3F000000),
- /* K9 */ be_nested_str_weak(endswith),
- /* K10 */ be_nested_str_weak(_X25),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(lv),
- /* K13 */ be_nested_str_weak(pct),
- /* K14 */ be_const_int(3),
- /* K15 */ be_nested_str_weak(byte),
- /* K16 */ be_const_int(2147483647),
- /* K17 */ be_nested_str_weak(digits_to_style),
- /* K18 */ be_nested_str_weak(_attr_ignore),
- /* K19 */ be_nested_str_weak(find),
- /* K20 */ be_nested_str_weak(get),
- /* K21 */ be_nested_str_weak(function),
- /* K22 */ be_nested_str_weak(_attr_map),
- /* K23 */ be_nested_str_weak(is_color_attribute),
- /* K24 */ be_nested_str_weak(parse_color),
- /* K25 */ be_nested_str_weak(_lv_obj),
- /* K26 */ be_nested_str_weak(set_style_),
- /* K27 */ be_nested_str_weak(HSP_X3A_X20unknown_X20attribute_X3A),
+ /* K7 */ be_nested_str_weak(round),
+ /* K8 */ be_nested_str_weak(endswith),
+ /* K9 */ be_nested_str_weak(_X25),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(lv),
+ /* K12 */ be_nested_str_weak(pct),
+ /* K13 */ be_const_int(3),
+ /* K14 */ be_nested_str_weak(byte),
+ /* K15 */ be_const_int(2147483647),
+ /* K16 */ be_nested_str_weak(digits_to_style),
+ /* K17 */ be_nested_str_weak(_attr_ignore),
+ /* K18 */ be_nested_str_weak(find),
+ /* K19 */ be_nested_str_weak(get),
+ /* K20 */ be_nested_str_weak(function),
+ /* K21 */ be_nested_str_weak(_attr_map),
+ /* K22 */ be_nested_str_weak(is_color_attribute),
+ /* K23 */ be_nested_str_weak(parse_color),
+ /* K24 */ be_nested_str_weak(_lv_obj),
+ /* K25 */ be_nested_str_weak(set_style_),
+ /* K26 */ be_nested_str_weak(HSP_X3A_X20unknown_X20attribute_X3A),
}),
be_str_weak(setmember),
&be_const_str_solidified,
- ( &(const binstruction[162]) { /* code */
+ ( &(const binstruction[164]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xA4120200, // 0001 IMPORT R4 K1
0x8C140702, // 0002 GETMET R5 R3 K2
@@ -3422,151 +3421,153 @@ be_local_closure(class_lvh_obj_setmember, /* name */
0x5C180400, // 000E MOVE R6 R2
0x7C140200, // 000F CALL R5 1
0x1C140B05, // 0010 EQ R5 R5 K5
- 0x78160004, // 0011 JMPF R5 #0017
+ 0x78160006, // 0011 JMPF R5 #0019
0xA4160C00, // 0012 IMPORT R5 K6
- 0x8C180B07, // 0013 GETMET R6 R5 K7
- 0x00200508, // 0014 ADD R8 R2 K8
- 0x7C180400, // 0015 CALL R6 2
- 0x5C080C00, // 0016 MOVE R2 R6
- 0x8C140709, // 0017 GETMET R5 R3 K9
- 0x5C1C0200, // 0018 MOVE R7 R1
- 0x5820000A, // 0019 LDCONST R8 K10
- 0x7C140600, // 001A CALL R5 3
- 0x78160009, // 001B JMPF R5 #0026
- 0x5415FFFD, // 001C LDINT R5 -2
- 0x40161605, // 001D CONNECT R5 K11 R5
- 0x94040205, // 001E GETIDX R1 R1 R5
- 0xB8161800, // 001F GETNGBL R5 K12
- 0x8C140B0D, // 0020 GETMET R5 R5 K13
- 0x601C0009, // 0021 GETGBL R7 G9
- 0x5C200400, // 0022 MOVE R8 R2
- 0x7C1C0200, // 0023 CALL R7 1
- 0x7C140400, // 0024 CALL R5 2
- 0x5C080A00, // 0025 MOVE R2 R5
- 0x4C140000, // 0026 LDNIL R5
- 0x6018000C, // 0027 GETGBL R6 G12
- 0x5C1C0200, // 0028 MOVE R7 R1
- 0x7C180200, // 0029 CALL R6 1
- 0x28180D0E, // 002A GE R6 R6 K14
- 0x781A001F, // 002B JMPF R6 #004C
- 0x8C18070F, // 002C GETMET R6 R3 K15
- 0x5421FFFE, // 002D LDINT R8 -1
- 0x94200208, // 002E GETIDX R8 R1 R8
- 0x7C180400, // 002F CALL R6 2
- 0x8C1C070F, // 0030 GETMET R7 R3 K15
- 0x5425FFFD, // 0031 LDINT R9 -2
- 0x94240209, // 0032 GETIDX R9 R1 R9
- 0x7C1C0400, // 0033 CALL R7 2
- 0x5422002F, // 0034 LDINT R8 48
- 0x28200C08, // 0035 GE R8 R6 R8
- 0x78220014, // 0036 JMPF R8 #004C
- 0x54220038, // 0037 LDINT R8 57
- 0x18200C08, // 0038 LE R8 R6 R8
- 0x78220011, // 0039 JMPF R8 #004C
- 0x5422002F, // 003A LDINT R8 48
- 0x28200E08, // 003B GE R8 R7 R8
- 0x7822000E, // 003C JMPF R8 #004C
- 0x54220038, // 003D LDINT R8 57
- 0x18200E08, // 003E LE R8 R7 R8
- 0x7822000B, // 003F JMPF R8 #004C
- 0x60200009, // 0040 GETGBL R8 G9
- 0x5425FFFD, // 0041 LDINT R9 -2
- 0x40241310, // 0042 CONNECT R9 R9 K16
- 0x94240209, // 0043 GETIDX R9 R1 R9
- 0x7C200200, // 0044 CALL R8 1
- 0x5425FFFC, // 0045 LDINT R9 -3
- 0x40261609, // 0046 CONNECT R9 K11 R9
- 0x94040209, // 0047 GETIDX R1 R1 R9
- 0x8C240111, // 0048 GETMET R9 R0 K17
- 0x5C2C1000, // 0049 MOVE R11 R8
- 0x7C240400, // 004A CALL R9 2
- 0x5C141200, // 004B MOVE R5 R9
- 0x88180112, // 004C GETMBR R6 R0 K18
- 0x8C180D13, // 004D GETMET R6 R6 K19
- 0x5C200200, // 004E MOVE R8 R1
- 0x7C180400, // 004F CALL R6 2
- 0x4C1C0000, // 0050 LDNIL R7
- 0x20180C07, // 0051 NE R6 R6 R7
- 0x781A0000, // 0052 JMPF R6 #0054
- 0x80000C00, // 0053 RET 0
- 0x8C180914, // 0054 GETMET R6 R4 K20
- 0x5C200000, // 0055 MOVE R8 R0
- 0x00260601, // 0056 ADD R9 K3 R1
- 0x7C180600, // 0057 CALL R6 3
- 0x601C0004, // 0058 GETGBL R7 G4
- 0x5C200C00, // 0059 MOVE R8 R6
- 0x7C1C0200, // 005A CALL R7 1
- 0x1C1C0F15, // 005B EQ R7 R7 K21
- 0x781E000A, // 005C JMPF R7 #0068
- 0x5C1C0C00, // 005D MOVE R7 R6
- 0x5C200000, // 005E MOVE R8 R0
- 0x5C240400, // 005F MOVE R9 R2
- 0x4C280000, // 0060 LDNIL R10
- 0x20280A0A, // 0061 NE R10 R5 R10
- 0x782A0001, // 0062 JMPF R10 #0065
- 0x5C280A00, // 0063 MOVE R10 R5
- 0x70020000, // 0064 JMP #0066
- 0x5828000B, // 0065 LDCONST R10 K11
- 0x7C1C0600, // 0066 CALL R7 3
- 0x80000E00, // 0067 RET 0
- 0x881C0116, // 0068 GETMBR R7 R0 K22
- 0x8C1C0F13, // 0069 GETMET R7 R7 K19
- 0x5C240200, // 006A MOVE R9 R1
- 0x5C280200, // 006B MOVE R10 R1
- 0x7C1C0600, // 006C CALL R7 3
- 0x5C040E00, // 006D MOVE R1 R7
- 0x8C1C0117, // 006E GETMET R7 R0 K23
- 0x5C240200, // 006F MOVE R9 R1
- 0x7C1C0400, // 0070 CALL R7 2
- 0x781E0003, // 0071 JMPF R7 #0076
- 0x8C1C0118, // 0072 GETMET R7 R0 K24
- 0x5C240400, // 0073 MOVE R9 R2
- 0x7C1C0400, // 0074 CALL R7 2
- 0x5C080E00, // 0075 MOVE R2 R7
- 0x4C1C0000, // 0076 LDNIL R7
- 0x1C1C0A07, // 0077 EQ R7 R5 R7
- 0x781E000E, // 0078 JMPF R7 #0088
- 0x8C1C0914, // 0079 GETMET R7 R4 K20
- 0x88240119, // 007A GETMBR R9 R0 K25
- 0x002A0601, // 007B ADD R10 K3 R1
- 0x7C1C0600, // 007C CALL R7 3
- 0x5C180E00, // 007D MOVE R6 R7
- 0x601C0004, // 007E GETGBL R7 G4
- 0x5C200C00, // 007F MOVE R8 R6
- 0x7C1C0200, // 0080 CALL R7 1
- 0x1C1C0F15, // 0081 EQ R7 R7 K21
- 0x781E0004, // 0082 JMPF R7 #0088
- 0x5C1C0C00, // 0083 MOVE R7 R6
- 0x88200119, // 0084 GETMBR R8 R0 K25
- 0x5C240400, // 0085 MOVE R9 R2
- 0x7C1C0400, // 0086 CALL R7 2
- 0x80040E00, // 0087 RET 1 R7
- 0x8C1C0914, // 0088 GETMET R7 R4 K20
- 0x88240119, // 0089 GETMBR R9 R0 K25
- 0x002A3401, // 008A ADD R10 K26 R1
- 0x7C1C0600, // 008B CALL R7 3
- 0x5C180E00, // 008C MOVE R6 R7
- 0x601C0004, // 008D GETGBL R7 G4
- 0x5C200C00, // 008E MOVE R8 R6
- 0x7C1C0200, // 008F CALL R7 1
- 0x1C1C0F15, // 0090 EQ R7 R7 K21
- 0x781E000A, // 0091 JMPF R7 #009D
- 0x5C1C0C00, // 0092 MOVE R7 R6
- 0x88200119, // 0093 GETMBR R8 R0 K25
- 0x5C240400, // 0094 MOVE R9 R2
- 0x4C280000, // 0095 LDNIL R10
- 0x20280A0A, // 0096 NE R10 R5 R10
- 0x782A0001, // 0097 JMPF R10 #009A
- 0x5C280A00, // 0098 MOVE R10 R5
- 0x70020000, // 0099 JMP #009B
- 0x5828000B, // 009A LDCONST R10 K11
- 0x7C1C0600, // 009B CALL R7 3
- 0x80040E00, // 009C RET 1 R7
- 0x601C0001, // 009D GETGBL R7 G1
- 0x5820001B, // 009E LDCONST R8 K27
- 0x5C240200, // 009F MOVE R9 R1
- 0x7C1C0400, // 00A0 CALL R7 2
- 0x80000000, // 00A1 RET 0
+ 0x60180009, // 0013 GETGBL R6 G9
+ 0x8C1C0B07, // 0014 GETMET R7 R5 K7
+ 0x5C240400, // 0015 MOVE R9 R2
+ 0x7C1C0400, // 0016 CALL R7 2
+ 0x7C180200, // 0017 CALL R6 1
+ 0x5C080C00, // 0018 MOVE R2 R6
+ 0x8C140708, // 0019 GETMET R5 R3 K8
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x58200009, // 001B LDCONST R8 K9
+ 0x7C140600, // 001C CALL R5 3
+ 0x78160009, // 001D JMPF R5 #0028
+ 0x5415FFFD, // 001E LDINT R5 -2
+ 0x40161405, // 001F CONNECT R5 K10 R5
+ 0x94040205, // 0020 GETIDX R1 R1 R5
+ 0xB8161600, // 0021 GETNGBL R5 K11
+ 0x8C140B0C, // 0022 GETMET R5 R5 K12
+ 0x601C0009, // 0023 GETGBL R7 G9
+ 0x5C200400, // 0024 MOVE R8 R2
+ 0x7C1C0200, // 0025 CALL R7 1
+ 0x7C140400, // 0026 CALL R5 2
+ 0x5C080A00, // 0027 MOVE R2 R5
+ 0x4C140000, // 0028 LDNIL R5
+ 0x6018000C, // 0029 GETGBL R6 G12
+ 0x5C1C0200, // 002A MOVE R7 R1
+ 0x7C180200, // 002B CALL R6 1
+ 0x28180D0D, // 002C GE R6 R6 K13
+ 0x781A001F, // 002D JMPF R6 #004E
+ 0x8C18070E, // 002E GETMET R6 R3 K14
+ 0x5421FFFE, // 002F LDINT R8 -1
+ 0x94200208, // 0030 GETIDX R8 R1 R8
+ 0x7C180400, // 0031 CALL R6 2
+ 0x8C1C070E, // 0032 GETMET R7 R3 K14
+ 0x5425FFFD, // 0033 LDINT R9 -2
+ 0x94240209, // 0034 GETIDX R9 R1 R9
+ 0x7C1C0400, // 0035 CALL R7 2
+ 0x5422002F, // 0036 LDINT R8 48
+ 0x28200C08, // 0037 GE R8 R6 R8
+ 0x78220014, // 0038 JMPF R8 #004E
+ 0x54220038, // 0039 LDINT R8 57
+ 0x18200C08, // 003A LE R8 R6 R8
+ 0x78220011, // 003B JMPF R8 #004E
+ 0x5422002F, // 003C LDINT R8 48
+ 0x28200E08, // 003D GE R8 R7 R8
+ 0x7822000E, // 003E JMPF R8 #004E
+ 0x54220038, // 003F LDINT R8 57
+ 0x18200E08, // 0040 LE R8 R7 R8
+ 0x7822000B, // 0041 JMPF R8 #004E
+ 0x60200009, // 0042 GETGBL R8 G9
+ 0x5425FFFD, // 0043 LDINT R9 -2
+ 0x4024130F, // 0044 CONNECT R9 R9 K15
+ 0x94240209, // 0045 GETIDX R9 R1 R9
+ 0x7C200200, // 0046 CALL R8 1
+ 0x5425FFFC, // 0047 LDINT R9 -3
+ 0x40261409, // 0048 CONNECT R9 K10 R9
+ 0x94040209, // 0049 GETIDX R1 R1 R9
+ 0x8C240110, // 004A GETMET R9 R0 K16
+ 0x5C2C1000, // 004B MOVE R11 R8
+ 0x7C240400, // 004C CALL R9 2
+ 0x5C141200, // 004D MOVE R5 R9
+ 0x88180111, // 004E GETMBR R6 R0 K17
+ 0x8C180D12, // 004F GETMET R6 R6 K18
+ 0x5C200200, // 0050 MOVE R8 R1
+ 0x7C180400, // 0051 CALL R6 2
+ 0x4C1C0000, // 0052 LDNIL R7
+ 0x20180C07, // 0053 NE R6 R6 R7
+ 0x781A0000, // 0054 JMPF R6 #0056
+ 0x80000C00, // 0055 RET 0
+ 0x8C180913, // 0056 GETMET R6 R4 K19
+ 0x5C200000, // 0057 MOVE R8 R0
+ 0x00260601, // 0058 ADD R9 K3 R1
+ 0x7C180600, // 0059 CALL R6 3
+ 0x601C0004, // 005A GETGBL R7 G4
+ 0x5C200C00, // 005B MOVE R8 R6
+ 0x7C1C0200, // 005C CALL R7 1
+ 0x1C1C0F14, // 005D EQ R7 R7 K20
+ 0x781E000A, // 005E JMPF R7 #006A
+ 0x5C1C0C00, // 005F MOVE R7 R6
+ 0x5C200000, // 0060 MOVE R8 R0
+ 0x5C240400, // 0061 MOVE R9 R2
+ 0x4C280000, // 0062 LDNIL R10
+ 0x20280A0A, // 0063 NE R10 R5 R10
+ 0x782A0001, // 0064 JMPF R10 #0067
+ 0x5C280A00, // 0065 MOVE R10 R5
+ 0x70020000, // 0066 JMP #0068
+ 0x5828000A, // 0067 LDCONST R10 K10
+ 0x7C1C0600, // 0068 CALL R7 3
+ 0x80000E00, // 0069 RET 0
+ 0x881C0115, // 006A GETMBR R7 R0 K21
+ 0x8C1C0F12, // 006B GETMET R7 R7 K18
+ 0x5C240200, // 006C MOVE R9 R1
+ 0x5C280200, // 006D MOVE R10 R1
+ 0x7C1C0600, // 006E CALL R7 3
+ 0x5C040E00, // 006F MOVE R1 R7
+ 0x8C1C0116, // 0070 GETMET R7 R0 K22
+ 0x5C240200, // 0071 MOVE R9 R1
+ 0x7C1C0400, // 0072 CALL R7 2
+ 0x781E0003, // 0073 JMPF R7 #0078
+ 0x8C1C0117, // 0074 GETMET R7 R0 K23
+ 0x5C240400, // 0075 MOVE R9 R2
+ 0x7C1C0400, // 0076 CALL R7 2
+ 0x5C080E00, // 0077 MOVE R2 R7
+ 0x4C1C0000, // 0078 LDNIL R7
+ 0x1C1C0A07, // 0079 EQ R7 R5 R7
+ 0x781E000E, // 007A JMPF R7 #008A
+ 0x8C1C0913, // 007B GETMET R7 R4 K19
+ 0x88240118, // 007C GETMBR R9 R0 K24
+ 0x002A0601, // 007D ADD R10 K3 R1
+ 0x7C1C0600, // 007E CALL R7 3
+ 0x5C180E00, // 007F MOVE R6 R7
+ 0x601C0004, // 0080 GETGBL R7 G4
+ 0x5C200C00, // 0081 MOVE R8 R6
+ 0x7C1C0200, // 0082 CALL R7 1
+ 0x1C1C0F14, // 0083 EQ R7 R7 K20
+ 0x781E0004, // 0084 JMPF R7 #008A
+ 0x5C1C0C00, // 0085 MOVE R7 R6
+ 0x88200118, // 0086 GETMBR R8 R0 K24
+ 0x5C240400, // 0087 MOVE R9 R2
+ 0x7C1C0400, // 0088 CALL R7 2
+ 0x80040E00, // 0089 RET 1 R7
+ 0x8C1C0913, // 008A GETMET R7 R4 K19
+ 0x88240118, // 008B GETMBR R9 R0 K24
+ 0x002A3201, // 008C ADD R10 K25 R1
+ 0x7C1C0600, // 008D CALL R7 3
+ 0x5C180E00, // 008E MOVE R6 R7
+ 0x601C0004, // 008F GETGBL R7 G4
+ 0x5C200C00, // 0090 MOVE R8 R6
+ 0x7C1C0200, // 0091 CALL R7 1
+ 0x1C1C0F14, // 0092 EQ R7 R7 K20
+ 0x781E000A, // 0093 JMPF R7 #009F
+ 0x5C1C0C00, // 0094 MOVE R7 R6
+ 0x88200118, // 0095 GETMBR R8 R0 K24
+ 0x5C240400, // 0096 MOVE R9 R2
+ 0x4C280000, // 0097 LDNIL R10
+ 0x20280A0A, // 0098 NE R10 R5 R10
+ 0x782A0001, // 0099 JMPF R10 #009C
+ 0x5C280A00, // 009A MOVE R10 R5
+ 0x70020000, // 009B JMP #009D
+ 0x5828000A, // 009C LDCONST R10 K10
+ 0x7C1C0600, // 009D CALL R7 3
+ 0x80040E00, // 009E RET 1 R7
+ 0x601C0001, // 009F GETGBL R7 G1
+ 0x5820001A, // 00A0 LDCONST R8 K26
+ 0x5C240200, // 00A1 MOVE R9 R1
+ 0x7C1C0400, // 00A2 CALL R7 2
+ 0x80000000, // 00A3 RET 0
})
)
);
From ae499eb73a5685a17eafec359309ae4abb28eb54 Mon Sep 17 00:00:00 2001
From: stefanbode
Date: Mon, 10 Jun 2024 10:42:02 +0200
Subject: [PATCH 036/252] MQTT is not reporting the correct LastChange (#21605)
I assume this is just missing. I got some side effects on shutters where on MQTT commands the source is still the LAST one before the MQTT
---
tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino b/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
index 6cde49eb3..298c0719c 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_02_9_mqtt.ino
@@ -639,7 +639,8 @@ void MqttDataHandler(char* mqtt_topic, uint8_t* mqtt_data, unsigned int data_len
if (XdrvCall(FUNC_MQTT_DATA)) { return; }
ShowSource(SRC_MQTT);
-
+ TasmotaGlobal.last_source = SRC_MQTT;
+
CommandHandler(topic, (char*)mqtt_data, data_len);
if (Mqtt.disable_logging) {
From d046f9c25fd43dd1c9a031b4603b3db4841fdc35 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Mon, 10 Jun 2024 10:50:19 +0200
Subject: [PATCH 037/252] Update changelogs
---
CHANGELOG.md | 4 ++--
RELEASENOTES.md | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7c3baa91..01e227e11 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,8 @@ All notable changes to this project will be documented in this file.
- Matter support for Air Quality sensors (#21559)
- Matter support for bridged Air Quality (#21597)
- HASPmota rounds to nearest int values passed as 'real' (#21599)
-- Berry automatic rounding of float to int when calling C mapped functions
-- Berry add `math.round`
+- Berry automatic rounding of float to int when calling C mapped functions (#21601)
+- Berry add `math.round` (#21602)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 304f01bcc..2c8f856c9 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -123,6 +123,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Added
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
+- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality (#21597)[#21597](https://github.com/arendst/Tasmota/issues/21597)
From aa217e13b9f8616cd806d8c200f6d511378be9e7 Mon Sep 17 00:00:00 2001
From: Christian Baars
Date: Mon, 10 Jun 2024 10:50:50 +0200
Subject: [PATCH 038/252] refactoring, bugfixes, generic device scanning
(#21603)
---
tasmota/include/xsns_62_esp32_mi.h | 18 ++-
.../tasmota_xsns_sensor/xsns_62_esp32_mi.ino | 143 ++++++++++++++----
2 files changed, 125 insertions(+), 36 deletions(-)
diff --git a/tasmota/include/xsns_62_esp32_mi.h b/tasmota/include/xsns_62_esp32_mi.h
index 004d9413a..787c32fc2 100644
--- a/tasmota/include/xsns_62_esp32_mi.h
+++ b/tasmota/include/xsns_62_esp32_mi.h
@@ -199,6 +199,7 @@ struct {
uint32_t updateScan:1;
uint32_t deleteScanTask:1;
+
uint32_t canConnect:1;
uint32_t willConnect:1;
uint32_t readingDone:1;
@@ -230,7 +231,7 @@ struct {
uint32_t directBridgeMode:1; // send every received BLE-packet as a MQTT-message in real-time
uint32_t activeScan:1;
uint32_t ignoreBogusBattery:1;
- uint32_t minimalSummary:1; // DEPRECATED!!
+ uint32_t handleEveryDevice:1;
} option;
#ifdef USE_MI_EXT_GUI
uint32_t widgetSlot;
@@ -271,6 +272,7 @@ struct mi_sensor_t{
uint32_t knob:1;
uint32_t door:1;
uint32_t leak:1;
+ uint32_t payload:1;
};
uint32_t raw;
} feature;
@@ -291,6 +293,7 @@ struct mi_sensor_t{
uint32_t longpress:1; //needs no extra feature bit, because knob is sufficient
uint32_t door:1;
uint32_t leak:1;
+ uint32_t payload:1;
};
uint32_t raw;
} eventType;
@@ -331,10 +334,15 @@ struct mi_sensor_t{
uint8_t longpress; // dimmer knob pressed without rotating
};
uint8_t door;
+
};
union {
uint8_t bat; // many values seem to be hard-coded garbage (LYWSD0x, GCD1)
};
+ struct {
+ uint8_t * payload = nullptr;
+ uint8_t payload_len;
+ };
};
/*********************************************************************************************\
@@ -475,8 +483,9 @@ enum MI32_BLEInfoMsg {
const char HTTP_BTN_MENU_MI32[] PROGMEM = "
";
const char HTTP_MI32_SCRIPT_1[] PROGMEM =
- "function setUp(){setInterval(countUp,1000); setInterval(update,1000);}"
- "function countUp(){let ti=document.querySelectorAll('.Ti');"
+ "function setUp(){setInterval(countUp,1000); setInterval(update,200);}"
+ "function countUp(){let ti=document.querySelectorAll('.Ti');eb('clock').innerText=Date().slice(4,24);"
+ "eb('numDev').innerText=eb('pr').childElementCount-1;"
"for(const el of ti){var t=parseInt(el.innerText);el.innerText=t+1;}}"
"function update(){"
"fetch('/m32?wi=1').then(r=>r.text())"
@@ -499,7 +508,7 @@ const char HTTP_MI32_STYLE[] PROGMEM =
".parent{display:grid;grid-template-columns:repeat(auto-fill,350px);grid-template-rows:repeat(auto-fill,220px);"
"grid-auto-rows:220px;grid-auto-columns:350px;gap:1rem;justify-content:center;}"
"svg{float:inline-end;}"
- ".box{padding:10px;border-radius:0.8rem;background-color:rgba(221, 221, 221, 0.2);}"
+ ".box{padding:10px;border-radius:0.8rem;background-color:rgba(221, 221, 221, 0.2);overflow-y:auto;}"
"@media screen and (min-width: 720px){.wide{grid-column:span 2;grid-row:span 1;}.big {grid-column:span 2;grid-row:span 2;}}"
".tall {grid-column:span 1;grid-row:span 2;}"
"";
@@ -515,6 +524,7 @@ const char HTTP_MI32_PARENT_BLE_ROLE[] PROGMEM = "None|Observer|Peripheral|Centr
const char HTTP_MI32_PARENT_START[] PROGMEM =
""
"
MI32 Bridge "
+ "
"
"Observing
%u devices
"
"Uptime:
%u seconds
"
"Free Heap: %u kB
"
diff --git a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
index 924267e55..e4249095e 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
@@ -69,6 +69,7 @@
void MI32notifyCB(NimBLERemoteCharacteristic* pRemoteCharacteristic, uint8_t* pData, size_t length, bool isNotify);
void MI32AddKey(mi_bindKey_t keyMAC);
+void MI32HandleEveryDevice(NimBLEAdvertisedDevice* advertisedDevice, uint8_t addr[6], int RSSI);
std::vector
MIBLEsensors;
RingbufHandle_t BLERingBufferQueue = nullptr;
@@ -128,6 +129,9 @@ class MI32AdvCallbacks: public NimBLEScanCallbacks {
}
if (advertisedDevice->getServiceDataCount() == 0) {
+ if(MI32.option.handleEveryDevice == 1) {
+ MI32HandleEveryDevice(advertisedDevice, addr, RSSI);
+ }
_mutex = false;
return;
}
@@ -148,6 +152,9 @@ class MI32AdvCallbacks: public NimBLEScanCallbacks {
else if(UUID==0x181a) { //ATC and PVVX - deprecated, change FW setting of these devices to BTHome V2
MI32ParseATCPacket((char*)advertisedDevice->getServiceData(0).data(),ServiceDataLength, addr, RSSI);
}
+ else if(MI32.option.handleEveryDevice == 1) {
+ MI32HandleEveryDevice(advertisedDevice, addr, RSSI);
+ }
_mutex = false;
};
};
@@ -451,6 +458,7 @@ uint32_t MIBLEgetSensorSlot(uint8_t * _MAC, uint16_t _type, uint8_t counter){
for(uint32_t i=0; i 31){ // web UI is currently limited to 32
DEBUG_SENSOR_LOG(PSTR("M32: ignore new sensor, because of loaded config"));
return 0xff; //discard the data
}
DEBUG_SENSOR_LOG(PSTR("%s: found new sensor"),D_CMND_MI32);
- mi_sensor_t _newSensor;
+ mi_sensor_t _newSensor{};
memcpy(_newSensor.MAC,_MAC, 6);
_newSensor.PID = _pid;
_newSensor.type = _type;
@@ -478,6 +486,7 @@ uint32_t MIBLEgetSensorSlot(uint8_t * _MAC, uint16_t _type, uint8_t counter){
_newSensor.RSSI=0;
_newSensor.lux = 0x00ffffff;
_newSensor.key = nullptr;
+ _newSensor.lastTime = Rtc.local_time;
switch (_type)
{
case UNKNOWN_MI: case BTHOME:
@@ -548,16 +557,7 @@ uint32_t MIBLEgetSensorSlot(uint8_t * _MAC, uint16_t _type, uint8_t counter){
*/
void MI32triggerTele(void){
MI32.mode.triggeredTele = 1;
- MqttPublishTeleperiodSensor();
-}
-
-/**
- * @brief Is called after every finding of new BLE sensor
- *
- */
-void MI32StatusInfo() {
- MI32.mode.shallShowStatusInfo = 0;
- Response_P(PSTR("{\"M32\":{\"found\":%u}}"), MIBLEsensors.size());
+ MqttPublishSensor();
XdrvRulesProcess(0);
}
@@ -584,6 +584,13 @@ void MI32addHistory(uint8_t history[24], float value, const uint32_t type){
history[_hour] = (((value/5.0f) + 1) + 0b10000000); //lux
// AddLog(LOG_LEVEL_DEBUG,PSTR("M32: history lux: %u in hour:%u"),history[_hour], _hour);
break;
+ case 3: //BLE device sighting
+ uint16_t sightings = history[_hour] & 0b01111111;
+ if(sightings<20){
+ history[_hour] = (sightings | 0b10000000) + 1;
+ // AddLog(LOG_LEVEL_DEBUG,PSTR("M32: history sighting: %u in hour:%u"),history[_hour], _hour);
+ }
+ break;
#ifdef USE_MI_ESP32_ENERGY
case 100: // energy
if(value == 0.0f) value = 1.0f;
@@ -620,7 +627,7 @@ void Mi32invalidateOldHistory(){
return;
}
uint32_t _nextHour = (_hour>22)?0:_hour+1;
- for(auto _sensor:MIBLEsensors){
+ for(auto &_sensor:MIBLEsensors){
if(_sensor.feature.temp == 1){
bitClear(_sensor.temp_history[_nextHour],7);
}
@@ -630,6 +637,9 @@ void Mi32invalidateOldHistory(){
if(_sensor.feature.lux == 1){
bitClear(_sensor.lux_history[_nextHour],7);
}
+ if(_sensor.feature.payload == 1){
+ bitClear(_sensor.temp_history[_nextHour],7);
+ }
}
_lastInvalidatedHour = _hour;
}
@@ -646,9 +656,9 @@ void MI32PreInit(void) {
//test section for options
MI32.option.allwaysAggregate = 1;
MI32.option.noSummary = 0;
- MI32.option.minimalSummary = 0;
MI32.option.directBridgeMode = 0;
MI32.option.ignoreBogusBattery = 1; // from advertisements
+ MI32.option.handleEveryDevice = 0; // scan for every BLE device with a public address
MI32loadCfg();
if(MIBLEsensors.size()>0){
@@ -878,7 +888,11 @@ extern "C" {
}
static char _name[12];
if( MIBLEsensors[slot].type == UNKNOWN_MI){
- snprintf_P(_name,8,PSTR("MI_%04X"),MIBLEsensors[slot].PID);
+ if(MIBLEsensors[slot].PID == 0){
+ snprintf_P(_name,8,PSTR("BLE_%02u"),slot);
+ } else {
+ snprintf_P(_name,8,PSTR("MI_%04X"),MIBLEsensors[slot].PID);
+ }
}
else{
GetTextIndexed(_name, sizeof(_name), MIBLEsensors[slot].type-1, kMI32DeviceType);
@@ -994,7 +1008,7 @@ void MI32saveConfig(){
else{
_name_feat[0] = 0;
}
- uint32_t _inc = snprintf_P(_filebuf+_pos,200,PSTR("{\"MAC\":\"%s\",\"PID\":\"%04x\",\"key\":\"%s\"%s},"),_MAC,kMI32DeviceID[_sensor.type - 1],_key,_name_feat);
+ uint32_t _inc = snprintf_P(_filebuf+_pos,200,PSTR("{\"MAC\":\"%s\",\"PID\":\"%04x\",\"key\":\"%s\"%s},"),_MAC,_sensor.PID,_key,_name_feat);
_pos += _inc;
}
_filebuf[_pos-1] = ']';
@@ -1668,7 +1682,6 @@ if(decryptRet!=0){
}
// AddLog(LOG_LEVEL_DEBUG,PSTR("%s at slot %u with payload type: %02x"), MI32getDeviceName(_slot),_slot,_payload.type);
- MIBLEsensors[_slot].lastTime = millis();
switch(_payload.type){
case 0x01:
MIBLEsensors[_slot].feature.Btn = 1;
@@ -1836,7 +1849,7 @@ if(decryptRet!=0){
}
if(MIBLEsensors[_slot].eventType.raw == 0) return;
MIBLEsensors[_slot].shallSendMQTT = 1;
- if(MI32.option.directBridgeMode) MI32.mode.shallTriggerTele = 1;
+ if(MI32.option.directBridgeMode == 1) MI32.mode.shallTriggerTele = 1;
}
void MI32parseBTHomePacket(char * _buf, uint32_t length, uint8_t addr[6], int RSSI, const char* optionalName){
@@ -1848,7 +1861,7 @@ void MI32parseBTHomePacket(char * _buf, uint32_t length, uint8_t addr[6], int RS
}
const auto _sensor = &MIBLEsensors[_slot];
_sensor->RSSI = RSSI;
- _sensor->lastTime = millis();
+ // _sensor->lastTime = Rtc.local_time;
BTHome_info_t info;
info.byte_value = _buf[0];
@@ -1907,7 +1920,7 @@ void MI32parseBTHomePacket(char * _buf, uint32_t length, uint8_t addr[6], int RS
bitSet(MI32.widgetSlot,_slot);
#endif //USE_MI_EXT_GUI
_sensor->shallSendMQTT = 1;
- if(MI32.option.directBridgeMode) MI32.mode.shallTriggerTele = 1;
+ if(MI32.option.directBridgeMode == 1) MI32.mode.shallTriggerTele = 1;
}
void MI32ParseATCPacket(char * _buf, uint32_t length, uint8_t addr[6], int RSSI){
@@ -1923,7 +1936,7 @@ void MI32ParseATCPacket(char * _buf, uint32_t length, uint8_t addr[6], int RSSI)
// AddLog(LOG_LEVEL_DEBUG,PSTR("%s at slot %u"), MI32getDeviceName(_slot),_slot);
MIBLEsensors[_slot].RSSI=RSSI;
- MIBLEsensors[_slot].lastTime = millis();
+ // MIBLEsensors[_slot].lastTime = Rtc.local_time;
if(isATC){
MIBLEsensors[_slot].temp = (float)(int16_t(__builtin_bswap16(_packet->A.temp)))/10.0f;
MIBLEsensors[_slot].hum = (float)_packet->A.hum;
@@ -1943,7 +1956,7 @@ void MI32ParseATCPacket(char * _buf, uint32_t length, uint8_t addr[6], int RSSI)
MI32addHistory(MIBLEsensors[_slot].hum_history, (float)MIBLEsensors[_slot].hum, 1);
#endif //USE_MI_EXT_GUI
MIBLEsensors[_slot].shallSendMQTT = 1;
- if(MI32.option.directBridgeMode) MI32.mode.shallTriggerTele = 1;
+ if(MI32.option.directBridgeMode == 1) MI32.mode.shallTriggerTele = 1;
}
void MI32parseCGD1Packet(char * _buf, uint32_t length, uint8_t addr[6], int RSSI){ // no MiBeacon
@@ -1953,7 +1966,7 @@ void MI32parseCGD1Packet(char * _buf, uint32_t length, uint8_t addr[6], int RSSI
if(_slot==0xff) return;
// AddLog(LOG_LEVEL_DEBUG,PSTR("%s at slot %u"), MI32getDeviceName(_slot),_slot);
MIBLEsensors[_slot].RSSI=RSSI;
- MIBLEsensors[_slot].lastTime = millis();
+ // MIBLEsensors[_slot].lastTime = Rtc.local_time;
cg_packet_t _packet;
memcpy((char*)&_packet,_buf,sizeof(_packet));
switch (_packet.mode){
@@ -1991,7 +2004,7 @@ void MI32parseCGD1Packet(char * _buf, uint32_t length, uint8_t addr[6], int RSSI
}
if(MIBLEsensors[_slot].eventType.raw == 0) return;
MIBLEsensors[_slot].shallSendMQTT = 1;
- if(MI32.option.directBridgeMode) MI32.mode.shallTriggerTele = 1;
+ if(MI32.option.directBridgeMode == 1) MI32.mode.shallTriggerTele = 1;
#ifdef USE_MI_EXT_GUI
bitSet(MI32.widgetSlot,_slot);
#endif //USE_MI_EXT_GUI
@@ -2003,15 +2016,47 @@ void MI32ParseResponse(char *buf, uint16_t bufsize, uint8_t addr[6], int RSSI) {
}
uint16_t _type= buf[3]*256 + buf[2];
// AddLog(LOG_LEVEL_INFO, PSTR("%02x %02x %02x %02x"),(uint8_t)buf[0], (uint8_t)buf[1],(uint8_t)buf[2],(uint8_t)buf[3]);
- uint8_t _addr[6];
- memcpy(_addr,addr,6);
- uint16_t _slot = MIBLEgetSensorSlot(_addr, _type, buf[4]);
+ uint16_t _slot = MIBLEgetSensorSlot(addr, _type, buf[4]);
if(_slot!=0xff) {
MIBLEsensors[_slot].RSSI=RSSI;
MI32parseMiBeacon(buf,_slot,bufsize);
}
}
+void MI32HandleEveryDevice(NimBLEAdvertisedDevice* advertisedDevice, uint8_t addr[6], int RSSI) {
+ if(advertisedDevice->getAddressType() != BLE_ADDR_PUBLIC) {
+ return;
+ }
+ uint16_t _slot = MIBLEgetSensorSlot(addr, 0, 0);
+ if(_slot==0xff) {
+ return;
+ }
+ auto &_sensor = MIBLEsensors[_slot];
+ if (advertisedDevice->haveName()){
+ if(_sensor.name == nullptr){
+ std::string name = advertisedDevice->getName();
+ _sensor.name = new char[name.length() + 1];
+ strcpy(_sensor.name, name.c_str());
+ }
+ }
+ if(_sensor.payload == nullptr) {
+ _sensor.payload = new uint8_t[64]();
+ }
+ if(_sensor.payload != nullptr) {
+ memcpy(_sensor.payload, advertisedDevice->getPayload(), advertisedDevice->getPayloadLength());
+ _sensor.payload_len = advertisedDevice->getPayloadLength();
+ bitSet(MI32.widgetSlot,_slot);
+ MI32addHistory(_sensor.temp_history, 0.0f, 3); // reuse temp_history as sighting history
+ _sensor.RSSI=RSSI;
+ _sensor.feature.payload = 1;
+ _sensor.eventType.payload = 1;
+ if(MI32.option.directBridgeMode == 1){
+ MI32.mode.shallTriggerTele = 1;
+ _sensor.shallSendMQTT = 1;
+ }
+ }
+}
+
/**
* Called automatically every 50 milliseconds or can be triggered from Berry with BLE.loop() - useful from fast_loop
*/
@@ -2106,7 +2151,7 @@ void MI32BLELoop()
*/
void MI32Every50mSecond(){
- if(MI32.mode.shallTriggerTele){
+ if(MI32.mode.shallTriggerTele == 1){
MI32.mode.shallTriggerTele = 0;
MI32triggerTele();
}
@@ -2128,7 +2173,7 @@ void MI32EverySecond(bool restart){
// should not be needed with a stable BLE stack
if(MI32.role == 1 && MI32.mode.runningScan == 0){
- AddLog(LOG_LEVEL_INFO,PSTR("BLE: probably controller error ... restart scan"));
+ AddLog(LOG_LEVEL_INFO,PSTR("BLE: restart scan"));
MI32StartTask(MI32_TASK_SCAN);
}
}
@@ -2226,6 +2271,14 @@ void CmndMi32Option(void){
onOff = MI32.option.activeScan;
}
break;
+ case 5:
+ if(XdrvMailbox.data_len>0){
+ MI32.option.handleEveryDevice = onOff;
+ }
+ else{
+ onOff = MI32.option.handleEveryDevice;
+ }
+ break;
#ifdef CONFIG_BT_NIMBLE_NVS_PERSIST
case 99: // TODO: should be moved to some reset command, i.e. "reset 6"
NimBLEDevice::deleteAllBonds();
@@ -2423,6 +2476,18 @@ void MI32sendWidget(uint32_t slot){
WSContentSend_P(PSTR("No leak
"));
}
}
+ if(_sensor.feature.payload == 1){
+ if(_sensor.payload != nullptr){
+ char _payload[128];
+ char _polyline[176];
+ ToHex_P((const unsigned char*)_sensor.payload,_sensor.payload_len,_payload, (_sensor.payload_len * 2) + 1);
+ MI32createPolyline(_polyline,_sensor.temp_history);
+ WSContentSend_P(PSTR("Payload:"));
+ WSContentSend_P(HTTP_MI32_GRAPH,_polyline,60,240,176,_polyline,4);
+ WSContentSend_P(PSTR("
%s"),_payload);
+ }
+ }
+ WSContentSend_P(PSTR("Timestamp: %s
"),GetDT(_sensor.lastTime).c_str());
WSContentSend_P(PSTR(" "));
}
@@ -2435,6 +2500,7 @@ void MI32InitGUI(void){
WSContentSend_P(HTTP_MI32_STYLE_SVG,1,185,124,124,185,124,124);
WSContentSend_P(HTTP_MI32_STYLE_SVG,2,151,190,216,151,190,216);
WSContentSend_P(HTTP_MI32_STYLE_SVG,3,242,240,176,242,240,176);
+ WSContentSend_P(HTTP_MI32_STYLE_SVG,4,60,240,176,60,240,176);
char _role[16];
GetTextIndexed(_role, sizeof(_role), MI32.role, HTTP_MI32_PARENT_BLE_ROLE);
@@ -2508,7 +2574,7 @@ void MI32Show(bool json)
MI32getDeviceName(i));
}
- if((MI32.mode.triggeredTele == 1 && MI32.option.minimalSummary == 0)||MI32.mode.triggeredTele == 1){
+ if(MI32.mode.triggeredTele == 1){
bool tempHumSended = false;
if(MIBLEsensors[i].feature.tempHum){
if(MIBLEsensors[i].eventType.tempHum || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
@@ -2622,16 +2688,29 @@ void MI32Show(bool json)
ResponseAppend_P(PSTR("\"NMT\":%u"), MIBLEsensors[i].NMT);
}
}
- if (MIBLEsensors[i].feature.bat){
- if(MIBLEsensors[i].eventType.bat || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
+ if (MIBLEsensors[i].feature.bat == 1){
+ if(MIBLEsensors[i].eventType.bat == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
if ((MIBLEsensors[i].bat != 0x00)) {
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Battery\":%u"), MIBLEsensors[i].bat);
}
}
}
+ if (MIBLEsensors[i].feature.payload == 1){
+ if(MIBLEsensors[i].eventType.payload == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
+ if ((MIBLEsensors[i].payload != nullptr)) {
+ MI32ShowContinuation(&commaflg);
+ char _payload[128];
+ ToHex_P((const unsigned char*)MIBLEsensors[i].payload,MIBLEsensors[i].payload_len,_payload, (MIBLEsensors[i].payload_len * 2) + 1);
+ ResponseAppend_P(PSTR("\"Payload\":\"%s\""),_payload);
+ }
+ }
+ }
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"RSSI\":%d,"), MIBLEsensors[i].RSSI);
+ if(MI32.mode.triggeredTele == 0){
+ ResponseAppend_P(PSTR("\"Time\":%d,"), MIBLEsensors[i].lastTime);
+ }
ResponseAppend_P(PSTR("\"MAC\":\"%02X%02X%02X%02X%02X%02X\""),MIBLEsensors[i].MAC[0],MIBLEsensors[i].MAC[1],MIBLEsensors[i].MAC[2],MIBLEsensors[i].MAC[3],MIBLEsensors[i].MAC[4],MIBLEsensors[i].MAC[5]);
ResponseJsonEnd();
From 7471d754f79413b32726b0ae5aa5bfefe04e4168 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Mon, 10 Jun 2024 11:54:22 +0200
Subject: [PATCH 039/252] Update changelogs
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
2 files changed, 2 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 01e227e11..8a2485667 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -20,6 +20,7 @@ All notable changes to this project will be documented in this file.
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Matter filter suffix automatically added for sensors (#21589)
- Display timing splash screen with display modes 1 to 5
+- ESP32 MI32 refactoring, bugfixes, generic device scanning (#21603)
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 2c8f856c9..cfbac49f3 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -132,6 +132,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
+- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
From 0471ba24c1f4687205daed9cfd3d4695c5be3003 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Mon, 10 Jun 2024 16:05:25 +0200
Subject: [PATCH 040/252] Add support for QMP6988 temperature and pressure
sensor
---
BUILDS.md | 18 +-
CHANGELOG.md | 1 +
CODE_OWNERS.md | 2 +-
I2CDEVICES.md | 4 +-
RELEASENOTES.md | 1 +
tasmota/my_user_config.h | 5 +-
tasmota/tasmota_support/support_features.ino | 4 +-
.../tasmota_xsns_sensor/xsns_28_qmp6988.ino | 443 ++++++++++++++++++
tools/decode-status.py | 4 +-
9 files changed, 470 insertions(+), 12 deletions(-)
create mode 100644 tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
diff --git a/BUILDS.md b/BUILDS.md
index 4ba198ea5..bd2b96049 100644
--- a/BUILDS.md
+++ b/BUILDS.md
@@ -8,7 +8,7 @@ Note: the `minimal` variant is not listed as it shouldn't be used outside of the
| ------------------------- | ----- | ----- | ----- | ----- | ----- | ----- | --------------------------- |
| MY_LANGUAGE en_GB | x | x / x | x | x | x | x |
| USE_IMPROV | x | x / x | x | x | x | x |
-| USE_UFILESYS | - | - / x | - | - | - | - |
+| USE_UFILESYS | - | - / x | - | - | - | - | Every ESP8266 > 1MB |
| USE_ARDUINO_OTA | - | - / - | - | - | - | - |
| USE_DOMOTICZ | - | x / x | x | x | x | - |
| USE_HOME_ASSISTANT | - | - / - | - | - | - | - |
@@ -30,11 +30,14 @@ Note: the `minimal` variant is not listed as it shouldn't be used outside of the
| USE_SUNRISE | x | x / x | x | x | x | x |
| USE_RULES | x | x / x | x | x | x | x |
| USE_SCRIPT | - | - / - | - | - | - | - |
-| USE_EXPRESSION | - | - / x | - | - | - | - | Every ESP32 + ESP8266 > 1MB |
-| SUPPORT_IF_STATEMENT | - | - / x | - | - | - | - | Every ESP32 + ESP8266 > 1MB |
+| USE_EXPRESSION | - | x / x | - | - | - | - |
+| SUPPORT_IF_STATEMENT | - | x / x | - | - | - | - |
| USE_HOTPLUG | - | - / - | - | - | - | - |
| USE_PROMETHEUS | - | - / - | - | - | - | - |
| USE_PING | - | - / - | - | - | - | - |
+| USE_HDMI_CEC | - | - / - | - | - | - | - |
+| USE_MAGIC_SWITCH | - | - / x | - | - | - | - |
+| USE_GPIO_VIEWER | - | - / x | - | - | - | - |
| | | | | | | |
| **Feature or Sensor** | **l** | **t** | **k** | **s** | **i** | **d** | **Remarks** |
| ROTARY_V1 | - | x / x | - | x | - | - |
@@ -105,6 +108,9 @@ Note: the `minimal` variant is not listed as it shouldn't be used outside of the
| USE_HTU | - | - / x | - | x | - | - |
| USE_BMP | - | - / x | - | x | - | - |
| USE_BME68X | - | - / x | - | x | - | - |
+| USE_AMSX915 | - | - / - | - | - | - | - |
+| USE_SPL06_007 | - | - / - | - | - | - | - |
+| USE_QMP6988 | - | - / - | - | - | - | - |
| USE_BH1750 | - | - / x | - | x | - | - |
| USE_VEML6070 | - | - / x | - | x | - | - |
| USE_ADS1115 | - | - / x | - | x | - | - |
@@ -192,11 +198,13 @@ Note: the `minimal` variant is not listed as it shouldn't be used outside of the
| USE_LUXV30B | - | - / - | - | - | - | - |
| USE_HMC5883L | - | - / - | - | - | - | - |
| USE_QMC5883L | - | - / - | - | - | - | - |
+| USE_MAX17043 | - | - / - | - | - | - | - |
| | | | | | | |
| **Feature or Sensor** | **l** | **t** | **k** | **s** | **i** | **d** | **Remarks** |
-| USE_SPI | - | - / - | - | - | - | x |
+| USE_SPI | - | - / x | - | - | - | x |
| USE_RC522 | - | - / - | - | - | - | - |
| USE_CANSNIFFER | - | - / - | - | - | - | - |
+| USE_SPI_LORA | - | - / x | - | - | - | - |
| USE_MHZ19 | - | - / x | - | x | - | - |
| USE_SENSEAIR | - | - / x | - | x | - | - |
| USE_PMS5003 | - | - / x | - | x | - | - |
@@ -220,6 +228,8 @@ Note: the `minimal` variant is not listed as it shouldn't be used outside of the
| USE_LD2410 | - | - / - | - | - | - | - |
| USE_GM861 | - | - / - | - | - | - | - |
| USE_TCP_BRIDGE | - | - / - | - | - | - | - | zbbridge / zbbrdgpro |
+| USE_HC8 | - | - / - | - | - | - | - |
+| USE_PIPSOLAR | - | - / - | - | - | - | - |
| | | | | | | |
| USE_NRF24 | - | - / - | - | - | - | - |
| USE_MIBLE | - | - / - | - | - | - | - |
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a2485667..524bb3a34 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
- HASPmota rounds to nearest int values passed as 'real' (#21599)
- Berry automatic rounding of float to int when calling C mapped functions (#21601)
- Berry add `math.round` (#21602)
+- Support for QMP6988 temperature and pressure sensor
### Breaking Changed
diff --git a/CODE_OWNERS.md b/CODE_OWNERS.md
index 98bb523aa..49fa17a4b 100644
--- a/CODE_OWNERS.md
+++ b/CODE_OWNERS.md
@@ -139,7 +139,7 @@ In addition to @arendst the following code is mainly owned by:
| xsns_25_spl06-007_sensor | @rai68
| xsns_26_lm75ad | Andre Thomas
| xsns_27_apds9960 | Shawn Hymel
-| xsns_28 |
+| xsns_28_qmp6988 | @arendst
| xsns_29_mcp230xx | Andre Thomas
| xsns_30_mpr121 | Rene 'Renne' Bartsch
| xsns_31_ccs811 | Gerhard Mutz
diff --git a/I2CDEVICES.md b/I2CDEVICES.md
index afd853929..8e7ffea64 100644
--- a/I2CDEVICES.md
+++ b/I2CDEVICES.md
@@ -123,7 +123,7 @@ Index | Define | Driver | Device | Address(es) | Bus2 | Descrip
83 | USE_MAX17043 | xsns_110 | MAX17043 | 0x36 | | Fuel-gauge for 3.7 Volt Lipo battery
84 | USE_ENS16x | xsns_111 | ENS16x | 0x52 - 0x53 | | Gas (TVOC, eCO2) and air quality sensor
85 | USE_ENS210 | xsns_112 | ENS210 | 0x43 - 0x44 | | Temperature and humidity sensor
- 86 | USE_AMSX915 | xsns_114 | AMS5915 | 0x28 | | Pressure (absolute/differential) and temperature sensor
86 | USE_AMSX915 | xsns_114 | AMS6915 | 0x28 | | Pressure (absolute/differential) and temperature sensor
- 87 | USE_SPL06_007 | xsns_25 | SPL06-007 | 0x76 | | Pressure and temperature sensor
+ 87 | USE_SPL06_007 | xsns_25 | SPL06-007 | 0x76 | | Pressure and temperature sensor
+ 88 | USE_QMP6988 | xsns_28 | QMP6988 | 0x56, 0x70 | Yes | Pressure and temperature sensor
NOTE: Bus2 supported on ESP32 only.
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index cfbac49f3..2d8d2e622 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -121,6 +121,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
## Changelog v14.1.0.1
### Added
+- Support for QMP6988 temperature and pressure sensor
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h
index 3b5e334a8..d2a13c280 100644
--- a/tasmota/my_user_config.h
+++ b/tasmota/my_user_config.h
@@ -421,7 +421,6 @@
#define MQTT_LWT_OFFLINE "Offline" // MQTT LWT offline topic message
#define MQTT_LWT_ONLINE "Online" // MQTT LWT online topic message
-#define MQTT_TELE_RETAIN 0 // Tele messages may send retain flag (0 = off, 1 = on)
#define MQTT_CLEAN_SESSION 1 // Mqtt clean session connection (0 = No clean session, 1 = Clean session (default))
#define MQTT_DISABLE_SSERIALRECEIVED 0 // 1 = Disable sserialreceived mqtt messages, 0 = Enable sserialreceived mqtt messages (default)
#define MQTT_DISABLE_MODBUSRECEIVED 0 // 1 = Disable ModbusReceived mqtt messages, 0 = Enable ModbusReceived mqtt messages (default)
@@ -446,7 +445,8 @@
// #define USE_MQTT_TLS_CA_CERT // [DEPRECATED] Now TLS supports dual mode using SetOption132 - this flag is now ignored
// #define USE_MQTT_AWS_IOT_LIGHT // Enable MQTT for AWS IoT in light mode, with user/password instead of private certificate
// #define USE_MQTT_AWS_IOT // [Deprecated] Enable MQTT for AWS IoT - requires a private key (+11.9k code, +0.4k mem)
- // Full documentation here: https://github.com/arendst/Tasmota/wiki/AWS-IoT
+ // Note: you need to generate a private key + certificate per device and update 'tasmota/tasmota_aws_iot.cpp'
+ // Full documentation here: https://github.com/arendst/Tasmota/wiki/AWS-IoT
// for USE_4K_RSA (support for 4096 bits certificates, instead of 2048), you need to uncommend `-DUSE_4K_RSA` in `build_flags` from `platform.ini` or `platform_override.ini`
// -- MQTT - TLS - Azure IoT & IoT Central ---------
@@ -738,6 +738,7 @@
// #define MAX17043_ALERT_THRESHOLD 32 // [I2cDriver83] Define the alert threshold for low battery level percentage 1-32
// #define USE_AMSX915 // [I2CDriver86] Enable AMS5915/AMS6915 pressure/temperature sensor (+1k2 code)
// #define USE_SPL06_007 // [I2cDriver87] Enable SPL06_007 pressure and temperature sensor (I2C addresses 0x76) (+2k5 code)
+// #define USE_QMP6988 // [I2cDriver88] Enable QMP6988 pressure and temperature sensor (I2C address 0x56 or 0x70) (+2k9 code)
// #define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one
// #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code)
diff --git a/tasmota/tasmota_support/support_features.ino b/tasmota/tasmota_support/support_features.ino
index 457150896..fd5e2c5a8 100644
--- a/tasmota/tasmota_support/support_features.ino
+++ b/tasmota/tasmota_support/support_features.ino
@@ -919,7 +919,9 @@ constexpr uint32_t feature[] = {
#if defined(USE_I2C) && defined(USE_SPL06_007)
0x00000020 | // xsns_25_spl006-7_sensor.ino
#endif
-// 0x00000040 | //
+#if defined(USE_I2C) && defined(USE_QMP6988)
+ 0x00000040 | // xsns_28_qmp6988.ino
+#endif
// 0x00000080 | //
// 0x00000100 | //
// 0x00000200 | //
diff --git a/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino b/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
new file mode 100644
index 000000000..ff39f5964
--- /dev/null
+++ b/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
@@ -0,0 +1,443 @@
+/*
+ xsns_28_qmp6988->ino - QMP6988 temperature and pressure sensor support for Tasmota
+
+ SPDX-FileCopyrightText: 2024 Theo Arends
+
+ SPDX-License-Identifier: GPL-3.0-only
+*/
+
+#ifdef USE_I2C
+#ifdef USE_QMP6988
+/*********************************************************************************************\
+ * QMP6988 Temperature and Pressure sensor
+ *
+ * Source: M5Stack lib M5Unit-ENV, file QMP6988.cpp
+ *
+ * I2C Address: 0x56 or 0x70
+\*********************************************************************************************/
+
+#define XSNS_28 28
+#define XI2C_88 88 // See I2CDEVICES.md
+
+#define QMP6988_ADDRESS_L 0x70
+#define QMP6988_ADDRESS_H 0x56
+
+#define QMP6988_CHIP_ID 0x5C
+
+#define QMP6988_CHIP_ID_REG 0xD1
+#define QMP6988_RESET_REG 0xE0 // Device reset register
+#define QMP6988_DEVICE_STAT_REG 0xF3 // Device state register
+#define QMP6988_CTRLMEAS_REG 0xF4 // Measurement Condition Control Register
+// Data
+#define QMP6988_PRESSURE_MSB_REG 0xF7 // Pressure MSB Register
+
+// Compensation calculation
+#define QMP6988_CALIBRATION_DATA_START 0xA0 // QMP6988 compensation coefficients
+#define QMP6988_CALIBRATION_DATA_LENGTH 25
+
+// Power mode
+#define QMP6988_SLEEP_MODE 0x00
+#define QMP6988_FORCED_MODE 0x01
+#define QMP6988_NORMAL_MODE 0x03
+
+#define QMP6988_CTRLMEAS_REG_MODE__POS 0
+#define QMP6988_CTRLMEAS_REG_MODE__MSK 0x03
+#define QMP6988_CTRLMEAS_REG_MODE__LEN 2
+
+// Oversampling
+#define QMP6988_OVERSAMPLING_SKIPPED 0x00
+#define QMP6988_OVERSAMPLING_1X 0x01
+#define QMP6988_OVERSAMPLING_2X 0x02
+#define QMP6988_OVERSAMPLING_4X 0x03
+#define QMP6988_OVERSAMPLING_8X 0x04
+#define QMP6988_OVERSAMPLING_16X 0x05
+#define QMP6988_OVERSAMPLING_32X 0x06
+#define QMP6988_OVERSAMPLING_64X 0x07
+
+#define QMP6988_CTRLMEAS_REG_OSRST__POS 5
+#define QMP6988_CTRLMEAS_REG_OSRST__MSK 0xE0
+#define QMP6988_CTRLMEAS_REG_OSRST__LEN 3
+
+#define QMP6988_CTRLMEAS_REG_OSRSP__POS 2
+#define QMP6988_CTRLMEAS_REG_OSRSP__MSK 0x1C
+#define QMP6988_CTRLMEAS_REG_OSRSP__LEN 3
+
+// filter
+#define QMP6988_FILTERCOEFF_OFF 0x00
+#define QMP6988_FILTERCOEFF_2 0x01
+#define QMP6988_FILTERCOEFF_4 0x02
+#define QMP6988_FILTERCOEFF_8 0x03
+#define QMP6988_FILTERCOEFF_16 0x04
+#define QMP6988_FILTERCOEFF_32 0x05
+
+#define QMP6988_CONFIG_REG 0xF1 // IIR filter co-efficient setting Register
+#define QMP6988_CONFIG_REG_FILTER__POS 0
+#define QMP6988_CONFIG_REG_FILTER__MSK 0x07
+#define QMP6988_CONFIG_REG_FILTER__LEN 3
+
+#define SUBTRACTOR 8388608 // pow(2,23)
+
+typedef struct qmp6988_cali_data_t {
+ int COE_a0;
+ int16_t COE_a1;
+ int16_t COE_a2;
+ int COE_b00;
+ int16_t COE_bt1;
+ int16_t COE_bt2;
+ int16_t COE_bp1;
+ int16_t COE_b11;
+ int16_t COE_bp2;
+ int16_t COE_b12;
+ int16_t COE_b21;
+ int16_t COE_bp3;
+} qmp6988_cali_data_t;
+
+typedef struct qmp6988_ik_data_t {
+ int a0;
+ int b00;
+ int a1;
+ int a2;
+ int64_t bt1;
+ int64_t bt2;
+ int64_t bp1;
+ int64_t b11;
+ int64_t bp2;
+ int64_t b12;
+ int64_t b21;
+ int64_t bp3;
+} qmp6988_ik_data_t;
+
+typedef struct qmp6988_data_t {
+ qmp6988_cali_data_t qmp6988_cali;
+ qmp6988_ik_data_t ik;
+ float temperature;
+ float pressure;
+ float altitude;
+ uint8_t slave;
+ uint8_t chip_id;
+ uint8_t power_mode;
+ uint8_t address;
+ uint8_t bus;
+} qmp6988_data_t;
+
+qmp6988_data_t *Qmp6988 = nullptr;
+
+/*********************************************************************************************/
+
+bool QMP6988I2cReadBuffer(uint8_t reg, uint8_t *reg_data, uint16_t len) {
+ return I2cReadBuffer(Qmp6988->address, reg, reg_data, len, Qmp6988->bus);
+}
+
+uint8_t QMP6988I2cWrite(uint8_t reg, uint32_t val) {
+ uint8_t ret = I2cWrite8(Qmp6988->address, reg, val, Qmp6988->bus);
+ delay(20);
+ return ret;
+}
+
+/*********************************************************************************************/
+
+// DISABLE LOG
+#define QMP6988_LOG(format...)
+#define QMP6988_ERR(format...)
+
+// ENABLE LOG
+// #define QMP6988_LOG Serial.printf
+// #define QMP6988_ERR Serial.printf
+
+int QMP6988GetCalibrationData(void) {
+ int status = 0;
+ // BITFIELDS temp_COE;
+ uint8_t a_data_uint8_tr[QMP6988_CALIBRATION_DATA_LENGTH] = {0};
+ int len;
+
+ for (len = 0; len < QMP6988_CALIBRATION_DATA_LENGTH; len += 1) {
+ status = QMP6988I2cReadBuffer(QMP6988_CALIBRATION_DATA_START + len, &a_data_uint8_tr[len], 1);
+ if (status == 0) {
+ QMP6988_LOG("qmp6988 read 0xA0 error!");
+ return status;
+ }
+ }
+
+ Qmp6988->qmp6988_cali.COE_a0 = (int)(((a_data_uint8_tr[18] << 12) | (a_data_uint8_tr[19] << 4) | (a_data_uint8_tr[24] & 0x0f)) << 12);
+ Qmp6988->qmp6988_cali.COE_a0 = Qmp6988->qmp6988_cali.COE_a0 >> 12;
+
+ Qmp6988->qmp6988_cali.COE_a1 = (int16_t)(((a_data_uint8_tr[20]) << 8) | a_data_uint8_tr[21]);
+ Qmp6988->qmp6988_cali.COE_a2 = (int16_t)(((a_data_uint8_tr[22]) << 8) | a_data_uint8_tr[23]);
+
+ Qmp6988->qmp6988_cali.COE_b00 = (int)(((a_data_uint8_tr[0] << 12) | (a_data_uint8_tr[1] << 4) | ((a_data_uint8_tr[24] & 0xf0) >> 4)) << 12);
+ Qmp6988->qmp6988_cali.COE_b00 = Qmp6988->qmp6988_cali.COE_b00 >> 12;
+
+ Qmp6988->qmp6988_cali.COE_bt1 = (int16_t)(((a_data_uint8_tr[2]) << 8) | a_data_uint8_tr[3]);
+ Qmp6988->qmp6988_cali.COE_bt2 = (int16_t)(((a_data_uint8_tr[4]) << 8) | a_data_uint8_tr[5]);
+ Qmp6988->qmp6988_cali.COE_bp1 = (int16_t)(((a_data_uint8_tr[6]) << 8) | a_data_uint8_tr[7]);
+ Qmp6988->qmp6988_cali.COE_b11 = (int16_t)(((a_data_uint8_tr[8]) << 8) | a_data_uint8_tr[9]);
+ Qmp6988->qmp6988_cali.COE_bp2 = (int16_t)(((a_data_uint8_tr[10]) << 8) | a_data_uint8_tr[11]);
+ Qmp6988->qmp6988_cali.COE_b12 = (int16_t)(((a_data_uint8_tr[12]) << 8) | a_data_uint8_tr[13]);
+ Qmp6988->qmp6988_cali.COE_b21 = (int16_t)(((a_data_uint8_tr[14]) << 8) | a_data_uint8_tr[15]);
+ Qmp6988->qmp6988_cali.COE_bp3 = (int16_t)(((a_data_uint8_tr[16]) << 8) | a_data_uint8_tr[17]);
+
+ QMP6988_LOG("<-----------calibration data-------------->\r\n");
+ QMP6988_LOG("COE_a0[%d] COE_a1[%d] COE_a2[%d] COE_b00[%d]\r\n",
+ Qmp6988->qmp6988_cali.COE_a0, Qmp6988->qmp6988_cali.COE_a1,
+ Qmp6988->qmp6988_cali.COE_a2, Qmp6988->qmp6988_cali.COE_b00);
+ QMP6988_LOG("COE_bt1[%d] COE_bt2[%d] COE_bp1[%d] COE_b11[%d]\r\n",
+ Qmp6988->qmp6988_cali.COE_bt1, Qmp6988->qmp6988_cali.COE_bt2,
+ Qmp6988->qmp6988_cali.COE_bp1, Qmp6988->qmp6988_cali.COE_b11);
+ QMP6988_LOG("COE_bp2[%d] COE_b12[%d] COE_b21[%d] COE_bp3[%d]\r\n",
+ Qmp6988->qmp6988_cali.COE_bp2, Qmp6988->qmp6988_cali.COE_b12,
+ Qmp6988->qmp6988_cali.COE_b21, Qmp6988->qmp6988_cali.COE_bp3);
+ QMP6988_LOG("<-----------calibration data-------------->\r\n");
+
+ Qmp6988->ik.a0 = Qmp6988->qmp6988_cali.COE_a0; // 20Q4
+ Qmp6988->ik.b00 = Qmp6988->qmp6988_cali.COE_b00; // 20Q4
+
+ Qmp6988->ik.a1 = 3608L * (int)Qmp6988->qmp6988_cali.COE_a1 - 1731677965L; // 31Q23
+ Qmp6988->ik.a2 = 16889L * (int)Qmp6988->qmp6988_cali.COE_a2 - 87619360L; // 30Q47
+
+ Qmp6988->ik.bt1 = 2982L * (int64_t)Qmp6988->qmp6988_cali.COE_bt1 + 107370906L; // 28Q15
+ Qmp6988->ik.bt2 = 329854L * (int64_t)Qmp6988->qmp6988_cali.COE_bt2 + 108083093L; // 34Q38
+ Qmp6988->ik.bp1 = 19923L * (int64_t)Qmp6988->qmp6988_cali.COE_bp1 + 1133836764L; // 31Q20
+ Qmp6988->ik.b11 = 2406L * (int64_t)Qmp6988->qmp6988_cali.COE_b11 + 118215883L; // 28Q34
+ Qmp6988->ik.bp2 = 3079L * (int64_t)Qmp6988->qmp6988_cali.COE_bp2 - 181579595L; // 29Q43
+ Qmp6988->ik.b12 = 6846L * (int64_t)Qmp6988->qmp6988_cali.COE_b12 + 85590281L; // 29Q53
+ Qmp6988->ik.b21 = 13836L * (int64_t)Qmp6988->qmp6988_cali.COE_b21 + 79333336L; // 29Q60
+ Qmp6988->ik.bp3 = 2915L * (int64_t)Qmp6988->qmp6988_cali.COE_bp3 + 157155561L; // 28Q65
+
+ QMP6988_LOG("<----------- int calibration data -------------->\r\n");
+ QMP6988_LOG("a0[%d] a1[%d] a2[%d] b00[%d]\r\n", Qmp6988->ik.a0,
+ Qmp6988->ik.a1, Qmp6988->ik.a2, Qmp6988->ik.b00);
+ QMP6988_LOG("bt1[%lld] bt2[%lld] bp1[%lld] b11[%lld]\r\n",
+ Qmp6988->ik.bt1, Qmp6988->ik.bt2, Qmp6988->ik.bp1, Qmp6988->ik.b11);
+ QMP6988_LOG("bp2[%lld] b12[%lld] b21[%lld] bp3[%lld]\r\n",
+ Qmp6988->ik.bp2, Qmp6988->ik.b12, Qmp6988->ik.b21, Qmp6988->ik.bp3);
+ QMP6988_LOG("<----------- int calibration data -------------->\r\n");
+
+ return 1;
+}
+
+int16_t QMP6988ConvTx02e(qmp6988_ik_data_t* ik, int dt);
+int16_t QMP6988ConvTx02e(qmp6988_ik_data_t* ik, int dt) {
+ int16_t ret;
+ int64_t wk1, wk2;
+
+ // wk1: 60Q4 // bit size
+ wk1 = ((int64_t)ik->a1 * (int64_t)dt); // 31Q23+24-1=54 (54Q23)
+ wk2 = ((int64_t)ik->a2 * (int64_t)dt) >> 14; // 30Q47+24-1=53 (39Q33)
+ wk2 = (wk2 * (int64_t)dt) >> 10; // 39Q33+24-1=62 (52Q23)
+ wk2 = ((wk1 + wk2) / 32767) >> 19; // 54,52->55Q23 (20Q04)
+ ret = (int16_t)((ik->a0 + wk2) >> 4); // 21Q4 -> 17Q0
+ return ret;
+}
+
+int QMP6988GetPressure02e(qmp6988_ik_data_t* ik, int dp, int16_t tx);
+int QMP6988GetPressure02e(qmp6988_ik_data_t* ik, int dp, int16_t tx) {
+ int ret;
+ int64_t wk1, wk2, wk3;
+
+ // wk1 = 48Q16 // bit size
+ wk1 = ((int64_t)ik->bt1 * (int64_t)tx); // 28Q15+16-1=43 (43Q15)
+ wk2 = ((int64_t)ik->bp1 * (int64_t)dp) >> 5; // 31Q20+24-1=54 (49Q15)
+ wk1 += wk2; // 43,49->50Q15
+ wk2 = ((int64_t)ik->bt2 * (int64_t)tx) >> 1; // 34Q38+16-1=49 (48Q37)
+ wk2 = (wk2 * (int64_t)tx) >> 8; // 48Q37+16-1=63 (55Q29)
+ wk3 = wk2; // 55Q29
+ wk2 = ((int64_t)ik->b11 * (int64_t)tx) >> 4; // 28Q34+16-1=43 (39Q30)
+ wk2 = (wk2 * (int64_t)dp) >> 1; // 39Q30+24-1=62 (61Q29)
+ wk3 += wk2; // 55,61->62Q29
+ wk2 = ((int64_t)ik->bp2 * (int64_t)dp) >> 13; // 29Q43+24-1=52 (39Q30)
+ wk2 = (wk2 * (int64_t)dp) >> 1; // 39Q30+24-1=62 (61Q29)
+ wk3 += wk2; // 62,61->63Q29
+ wk1 += wk3 >> 14; // Q29 >> 14 -> Q15
+ wk2 = ((int64_t)ik->b12 * (int64_t)tx); // 29Q53+16-1=45 (45Q53)
+ wk2 = (wk2 * (int64_t)tx) >> 22; // 45Q53+16-1=61 (39Q31)
+ wk2 = (wk2 * (int64_t)dp) >> 1; // 39Q31+24-1=62 (61Q30)
+ wk3 = wk2; // 61Q30
+ wk2 = ((int64_t)ik->b21 * (int64_t)tx) >> 6; // 29Q60+16-1=45 (39Q54)
+ wk2 = (wk2 * (int64_t)dp) >> 23; // 39Q54+24-1=62 (39Q31)
+ wk2 = (wk2 * (int64_t)dp) >> 1; // 39Q31+24-1=62 (61Q20)
+ wk3 += wk2; // 61,61->62Q30
+ wk2 = ((int64_t)ik->bp3 * (int64_t)dp) >> 12; // 28Q65+24-1=51 (39Q53)
+ wk2 = (wk2 * (int64_t)dp) >> 23; // 39Q53+24-1=62 (39Q30)
+ wk2 = (wk2 * (int64_t)dp); // 39Q30+24-1=62 (62Q30)
+ wk3 += wk2; // 62,62->63Q30
+ wk1 += wk3 >> 15; // Q30 >> 15 = Q15
+ wk1 /= 32767L;
+ wk1 >>= 11; // Q15 >> 7 = Q4
+ wk1 += ik->b00; // Q4 + 20Q4
+ // wk1 >>= 4; // 28Q4 -> 24Q0
+ ret = (int)wk1;
+ return ret;
+}
+
+void QMP6988Reset(void) {
+ uint8_t ret = QMP6988I2cWrite(QMP6988_RESET_REG, 0xe6);
+ if (0 == ret) {
+ AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Reset fail"));
+ }
+ QMP6988I2cWrite(QMP6988_RESET_REG, 0x00);
+}
+
+void QMP6988SetpPowermode(int power_mode) {
+
+ QMP6988_LOG("qmp_set_powermode %d \r\n", power_mode);
+
+ Qmp6988->power_mode = power_mode;
+ uint8_t data;
+ QMP6988I2cReadBuffer(QMP6988_CTRLMEAS_REG, &data, 1);
+ data = data & 0xfc;
+ if (power_mode == QMP6988_SLEEP_MODE) {
+ data |= 0x00;
+ } else if (power_mode == QMP6988_FORCED_MODE) {
+ data |= 0x01;
+ } else if (power_mode == QMP6988_NORMAL_MODE) {
+ data |= 0x03;
+ }
+ QMP6988I2cWrite(QMP6988_CTRLMEAS_REG, data);
+
+ QMP6988_LOG("qmp_set_powermode 0xf4=0x%x \r\n", data);
+}
+
+void QMP6988SetFilter(unsigned char filter) {
+ uint8_t data = (filter & 0x03);
+ QMP6988I2cWrite(QMP6988_CONFIG_REG, data);
+}
+
+void QMP6988SetOversamplingP(unsigned char oversampling_p) {
+ uint8_t data;
+ QMP6988I2cReadBuffer(QMP6988_CTRLMEAS_REG, &data, 1);
+ data &= 0xe3;
+ data |= (oversampling_p << 2);
+ QMP6988I2cWrite(QMP6988_CTRLMEAS_REG, data);
+}
+
+void QMP6988SetOversamplingT(unsigned char oversampling_t) {
+ uint8_t data;
+ QMP6988I2cReadBuffer(QMP6988_CTRLMEAS_REG, &data, 1);
+ data &= 0x1f;
+ data |= (oversampling_t << 5);
+ QMP6988I2cWrite(QMP6988_CTRLMEAS_REG, data);
+}
+
+bool QMP6988ValidChip(void) {
+ uint8_t data;
+ QMP6988I2cReadBuffer(QMP6988_CHIP_ID_REG, &data, 1);
+
+ AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Chip Id 0x%02X"), data);
+
+ return (QMP6988_CHIP_ID == data);
+}
+
+/*********************************************************************************************/
+
+void QMP6988CalcPressureAndTemperature(void) {
+ uint8_t a_data_uint8_tr[6] = {0};
+ uint8_t err = QMP6988I2cReadBuffer(QMP6988_PRESSURE_MSB_REG, a_data_uint8_tr, 6);
+ if (err == 0) {
+ QMP6988_LOG("qmp6988 read press raw error! \r\n");
+ return;
+ }
+ uint32_t T_read = (uint32_t)((((uint32_t)(a_data_uint8_tr[3])) << 16) | (((uint16_t)(a_data_uint8_tr[4])) << 8) | (a_data_uint8_tr[5]));
+ int T_raw = (int)(T_read - SUBTRACTOR);
+ int T_int = QMP6988ConvTx02e(&(Qmp6988->ik), T_raw);
+
+ uint32_t P_read = (uint32_t)((((uint32_t)(a_data_uint8_tr[0])) << 16) | (((uint16_t)(a_data_uint8_tr[1])) << 8) | (a_data_uint8_tr[2]));
+ int P_raw = (int)(P_read - SUBTRACTOR);
+ int P_int = QMP6988GetPressure02e(&(Qmp6988->ik), P_raw, T_int);
+
+ Qmp6988->temperature = (float)T_int / 256.0f;
+ Qmp6988->pressure = (float)P_int / 16.0f;
+}
+
+void Qmp6988Detect(void) {
+ Qmp6988 = (qmp6988_data_t*)calloc(sizeof(qmp6988_data_t), 1); // Need calloc to reset registers to 0/false
+ if (nullptr == Qmp6988) { return; }
+
+ const uint8_t addresses[2] = { QMP6988_ADDRESS_L, QMP6988_ADDRESS_H };
+ for (uint32_t bus = 0; bus < 2; bus++) {
+ for (uint32_t i = 0; i < sizeof(addresses); i++) {
+ if (!I2cSetDevice(addresses[i], bus)) { continue; }
+ Qmp6988->address = addresses[i];
+ Qmp6988->bus = bus;
+ if (QMP6988ValidChip()) {
+ QMP6988Reset();
+ QMP6988GetCalibrationData();
+ QMP6988SetpPowermode(QMP6988_NORMAL_MODE);
+ QMP6988SetFilter(QMP6988_FILTERCOEFF_4);
+ QMP6988SetOversamplingP(QMP6988_OVERSAMPLING_8X);
+ QMP6988SetOversamplingT(QMP6988_OVERSAMPLING_1X);
+ I2cSetActiveFound(Qmp6988->address, "QMP6988", Qmp6988->bus);
+ return;
+ }
+ }
+ }
+
+ free(Qmp6988);
+ Qmp6988 = nullptr;
+}
+
+void Qmp6988Show(bool json) {
+ float qmp_temperature = ConvertTemp(Qmp6988->temperature);
+ float qmp_pressure = ConvertPressure(Qmp6988->pressure);
+ float qmp_sealevel = ConvertPressureForSeaLevel(Qmp6988->pressure);
+
+ char pressure[33];
+ dtostrfd(qmp_pressure, Settings->flag2.pressure_resolution, pressure);
+ char sea_pressure[33];
+ dtostrfd(qmp_sealevel, Settings->flag2.pressure_resolution, sea_pressure);
+
+ if (json) {
+ ResponseAppend_P(PSTR(",\"QMP6988\":{\"" D_JSON_TEMPERATURE "\":%*_f,\"" D_JSON_PRESSURE "\":%s"),
+ Settings->flag2.temperature_resolution, &qmp_temperature, pressure);
+ if (Settings->altitude != 0) {
+ ResponseAppend_P(PSTR(",\"" D_JSON_PRESSUREATSEALEVEL "\":%s"), sea_pressure);
+ }
+ ResponseJsonEnd();
+#ifdef USE_DOMOTICZ
+ // Domoticz and knx only support one temp sensor
+ if ((0 == TasmotaGlobal.tele_period)) {
+ DomoticzFloatSensor(DZ_TEMP, qmp_temperature);
+ }
+#endif // USE_DOMOTICZ
+#ifdef USE_WEBSERVER
+ } else {
+ WSContentSend_Temp("QMP6988", qmp_temperature);
+ WSContentSend_PD(HTTP_SNS_PRESSURE, "QMP6988", pressure, PressureUnit().c_str());
+ if (Settings->altitude != 0) {
+ WSContentSend_PD(HTTP_SNS_SEAPRESSURE, "QMP6988", sea_pressure, PressureUnit().c_str());
+ }
+#endif // USE_WEBSERVER
+ }
+}
+
+/*********************************************************************************************\
+ * Interface
+\*********************************************************************************************/
+
+bool Xsns28(uint32_t function) {
+ if (!I2cEnabled(XI2C_88)) { return false; }
+
+ bool result = false;
+
+ if (FUNC_INIT == function) {
+ Qmp6988Detect();
+ }
+ else if (Qmp6988) {
+ switch (function) {
+ case FUNC_EVERY_SECOND:
+ QMP6988CalcPressureAndTemperature();
+ break;
+ case FUNC_JSON_APPEND:
+ Qmp6988Show(1);
+ break;
+#ifdef USE_WEBSERVER
+ case FUNC_WEB_SENSOR:
+ Qmp6988Show(0);
+ break;
+#endif // USE_WEBSERVER
+ }
+ }
+ return result;
+}
+
+#endif // USE_QMP6988
+#endif // USE_I2C
diff --git a/tools/decode-status.py b/tools/decode-status.py
index 2b000d999..7147268e6 100755
--- a/tools/decode-status.py
+++ b/tools/decode-status.py
@@ -305,7 +305,7 @@ a_features = [[
"USE_HC8","USE_HDMI_CEC","USE_BLE_ESP32","USE_MATTER_DEVICE"
],[
"USE_MAGIC_SWITCH","USE_PIPSOLAR","USE_GPIO_VIEWER","USE_AMSX915",
- "USE_SPI_LORA","USE_SPL06_007","","",
+ "USE_SPI_LORA","USE_SPL06_007","USE_QMP6988","",
"","","","",
"","","","",
"","","","",
@@ -339,7 +339,7 @@ else:
obj = json.load(fp)
def StartDecode():
- print ("\n*** decode-status.py v13.4.0.1 by Theo Arends and Jacek Ziolkowski ***")
+ print ("\n*** decode-status.py v14.1.0.1 by Theo Arends and Jacek Ziolkowski ***")
# print("Decoding\n{}".format(obj))
From ae9d2a2c857aedeb5a4f10390f3f248acf672dfa Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 11 Jun 2024 11:07:30 +0200
Subject: [PATCH 041/252] Refactor display modes1 to 4
---
.../tasmota_xdrv_driver/xdrv_13_display.ino | 92 +++++++++----------
tasmota/tasmota_xdsp_display/xdsp_01_lcd.ino | 3 -
.../tasmota_xdsp_display/xdsp_03_matrix.ino | 3 -
.../xdsp_05_epaper_29.ino | 2 -
.../tasmota_xdsp_display/xdsp_15_tm1637.ino | 3 -
.../xdsp_17_universal.ino | 5 +-
6 files changed, 42 insertions(+), 66 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index cdb9faded..b0350afef 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -256,6 +256,7 @@ char **disp_log_buffer;
char **disp_screen_buffer;
char disp_temp[2]; // C or F
char disp_pres[5]; // hPa or mmHg
+char disp_topic[TOPSZ];
uint8_t disp_log_buffer_cols = 0;
uint8_t disp_log_buffer_idx = 0;
@@ -1497,8 +1498,7 @@ void free_dt_vars(void) {
#ifdef USE_DISPLAY_MODES1TO5
-void DisplayClearScreenBuffer(void)
-{
+void DisplayClearScreenBuffer(void) {
if (disp_screen_buffer_cols) {
for (uint32_t i = 0; i < disp_screen_buffer_rows; i++) {
memset(disp_screen_buffer[i], 0, disp_screen_buffer_cols);
@@ -1506,8 +1506,7 @@ void DisplayClearScreenBuffer(void)
}
}
-void DisplayFreeScreenBuffer(void)
-{
+void DisplayFreeScreenBuffer(void) {
if (disp_screen_buffer != nullptr) {
for (uint32_t i = 0; i < disp_screen_buffer_rows; i++) {
if (disp_screen_buffer[i] != nullptr) { free(disp_screen_buffer[i]); }
@@ -1518,14 +1517,13 @@ void DisplayFreeScreenBuffer(void)
}
}
-void DisplayAllocScreenBuffer(void)
-{
+void DisplayAllocScreenBuffer(void) {
if (!disp_screen_buffer_cols) {
disp_screen_buffer_rows = Settings->display_rows;
- disp_screen_buffer = (char**)malloc(sizeof(*disp_screen_buffer) * disp_screen_buffer_rows);
+ disp_screen_buffer = (char**)calloc(sizeof(*disp_screen_buffer) * disp_screen_buffer_rows, 1);
if (disp_screen_buffer != nullptr) {
for (uint32_t i = 0; i < disp_screen_buffer_rows; i++) {
- disp_screen_buffer[i] = (char*)malloc(sizeof(*disp_screen_buffer[i]) * (Settings->display_cols[0] +1));
+ disp_screen_buffer[i] = (char*)calloc(sizeof(*disp_screen_buffer[i]) * (Settings->display_cols[0] +1), 1);
if (disp_screen_buffer[i] == nullptr) {
DisplayFreeScreenBuffer();
break;
@@ -1539,14 +1537,12 @@ void DisplayAllocScreenBuffer(void)
}
}
-void DisplayReAllocScreenBuffer(void)
-{
+void DisplayReAllocScreenBuffer(void) {
DisplayFreeScreenBuffer();
DisplayAllocScreenBuffer();
}
-void DisplayFillScreen(uint32_t line)
-{
+void DisplayFillScreen(uint32_t line) {
uint32_t len = disp_screen_buffer_cols - strlen(disp_screen_buffer[line]);
if (len) {
memset(disp_screen_buffer[line] + strlen(disp_screen_buffer[line]), 0x20, len);
@@ -1556,17 +1552,7 @@ void DisplayFillScreen(uint32_t line)
/*-------------------------------------------------------------------------------------------*/
-void DisplayClearLogBuffer(void)
-{
- if (disp_log_buffer_cols) {
- for (uint32_t i = 0; i < DISPLAY_LOG_ROWS; i++) {
- memset(disp_log_buffer[i], 0, disp_log_buffer_cols);
- }
- }
-}
-
-void DisplayFreeLogBuffer(void)
-{
+void DisplayFreeLogBuffer(void) {
if (disp_log_buffer != nullptr) {
for (uint32_t i = 0; i < DISPLAY_LOG_ROWS; i++) {
if (disp_log_buffer[i] != nullptr) { free(disp_log_buffer[i]); }
@@ -1576,13 +1562,12 @@ void DisplayFreeLogBuffer(void)
}
}
-void DisplayAllocLogBuffer(void)
-{
+void DisplayAllocLogBuffer(void) {
if (!disp_log_buffer_cols) {
- disp_log_buffer = (char**)malloc(sizeof(*disp_log_buffer) * DISPLAY_LOG_ROWS);
+ disp_log_buffer = (char**)calloc(sizeof(*disp_log_buffer) * DISPLAY_LOG_ROWS, 1);
if (disp_log_buffer != nullptr) {
for (uint32_t i = 0; i < DISPLAY_LOG_ROWS; i++) {
- disp_log_buffer[i] = (char*)malloc(sizeof(*disp_log_buffer[i]) * (Settings->display_cols[0] +1));
+ disp_log_buffer[i] = (char*)calloc(sizeof(*disp_log_buffer[i]) * (Settings->display_cols[0] +1), 1);
if (disp_log_buffer[i] == nullptr) {
DisplayFreeLogBuffer();
break;
@@ -1591,46 +1576,42 @@ void DisplayAllocLogBuffer(void)
}
if (disp_log_buffer != nullptr) {
disp_log_buffer_cols = Settings->display_cols[0] +1;
- DisplayClearLogBuffer();
DisplayClearScreenBuffer();
DisplayClear();
}
}
}
-void DisplayReAllocLogBuffer(void)
-{
+void DisplayReAllocLogBuffer(void) {
DisplayFreeLogBuffer();
DisplayAllocLogBuffer();
}
-void DisplayLogBufferAdd(char* txt)
-{
+void DisplayLogBufferAdd(char* txt) {
if (disp_log_buffer_cols) {
- strlcpy(disp_log_buffer[disp_log_buffer_idx], txt, disp_log_buffer_cols); // This preserves the % sign where printf won't
- disp_log_buffer_idx++;
+ strlcpy(disp_log_buffer[disp_log_buffer_idx++], txt, disp_log_buffer_cols); // This preserves the % sign where printf won't
if (DISPLAY_LOG_ROWS == disp_log_buffer_idx) { disp_log_buffer_idx = 0; }
}
}
-char* DisplayLogBuffer(char temp_code)
-{
+char* DisplayLogBuffer(char temp_code) {
char* result = nullptr;
if (disp_log_buffer_cols) {
if (disp_log_buffer_idx != disp_log_buffer_ptr) {
- result = disp_log_buffer[disp_log_buffer_ptr];
- disp_log_buffer_ptr++;
+ uint32_t log_buffer_ptr = disp_log_buffer_ptr;
+ result = disp_log_buffer[disp_log_buffer_ptr++];
if (DISPLAY_LOG_ROWS == disp_log_buffer_ptr) { disp_log_buffer_ptr = 0; }
char *pch = strchr(result, '~'); // = 0x7E (~) Replace degrees character (276 octal)
if (pch != nullptr) { result[pch - result] = temp_code; }
+
+ AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("DSP: %02d %s"), log_buffer_ptr, result);
}
}
return result;
}
-void DisplayLogBufferInit(void)
-{
+void DisplayLogBufferInit(void) {
if (Settings->display_mode) {
disp_log_buffer_idx = 0;
disp_log_buffer_ptr = 0;
@@ -1730,19 +1711,31 @@ void DisplayJsonValue(const char* topic, const char* device, const char* mkey, c
}
char buffer[Settings->display_cols[0] +1]; // Max sized buffer string
- memset(buffer, 0x20, sizeof(buffer)); // Temporarily use for spaces
+ uint32_t size = strlen(topic);
+ if ((Settings->display_rows > 4) && size) { // Skip header if less than five rows
+ if (strcmp(topic, disp_topic)) { // Show topic header only once
+ strcpy(disp_topic, topic);
+ char buffer2[Settings->display_cols[0] +1]; // Max sized buffer string
+ memset(buffer2, '-', sizeof(buffer2)); // Set to -
+ buffer2[sizeof(buffer2) -1] = '\0';
+ snprintf_P(buffer, sizeof(buffer), PSTR("- %s %s"), topic, buffer2); // - pow1 -------------
+ DisplayLogBufferAdd(buffer);
+ }
+ size = 0; // Remove topic from source
+ }
+ memset(buffer, ' ', sizeof(buffer)); // Temporarily use for spaces
buffer[sizeof(buffer) -1] = '\0';
char source[Settings->display_cols[0] - Settings->display_cols[1]]; // Max sized source string
- snprintf_P(source, sizeof(source), PSTR("%s%s%s%s"), topic, (strlen(topic))?"/":"", mkey, buffer); // pow1/Voltage or Voltage if topic is empty (local sensor)
+ snprintf_P(source, sizeof(source), PSTR("%s%s%s%s"), (size)?topic:"", (size)?"/":"", mkey, buffer); // pow1/Voltage or Voltage if topic is empty (local sensor or header)
snprintf_P(buffer, sizeof(buffer), PSTR("%s %s"), source, svalue);
-// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "mkey [%s], source [%s], value [%s], quantity_code %d, log_buffer [%s]"), mkey, source, value, quantity_code, buffer);
+// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "topic [%s], device [%s], mkey [%s], source [%s], value [%s], quantity_code %d, log_buffer [%s]"),
+// topic, device, mkey, source, value, quantity_code, buffer);
DisplayLogBufferAdd(buffer);
}
-void DisplayAnalyzeJson(char *topic, const char *json)
-{
+void DisplayAnalyzeJson(char *topic, const char *json) {
// //tele/pow2/STATE {"Time":"2017-09-20T11:53:03", "Uptime":10, "Vcc":3.123, "POWER":"ON", "Wifi":{"AP":2, "SSId":"indebuurt2", "RSSI":68, "APMac":"00:22:6B:FE:8E:20"}}
// //tele/pow2/ENERGY {"Time":"2017-09-20T11:53:03", "Total":6.522, "Yesterday":0.150, "Today":0.073, "Period":0.5, "Power":12.1, "Factor":0.56, "Voltage":210.1, "Current":0.102}
@@ -1819,10 +1812,8 @@ void DisplayMqttSubscribe(void) {
strncat(ntopic, SettingsText(SET_MQTTPREFIX3), sizeof(ntopic) - strlen(ntopic) -1); // Subscribe to tele messages
strncat_P(ntopic, PSTR("/#"), sizeof(ntopic) - strlen(ntopic) -1); // Add multi-level wildcard
if (Settings->display_model && (Settings->display_mode &0x04)) {
- if (!disp_subscribed) {
- disp_subscribed = true;
- MqttSubscribe(ntopic);
- }
+ disp_subscribed = true;
+ MqttSubscribe(ntopic);
} else {
if (disp_subscribed) {
disp_subscribed = false;
@@ -1831,8 +1822,7 @@ void DisplayMqttSubscribe(void) {
}
}
-bool DisplayMqttData(void)
-{
+bool DisplayMqttData(void) {
if (disp_subscribed) {
char stopic[TOPSZ];
diff --git a/tasmota/tasmota_xdsp_display/xdsp_01_lcd.ino b/tasmota/tasmota_xdsp_display/xdsp_01_lcd.ino
index 2dff946f2..c70ac4bb3 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_01_lcd.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_01_lcd.ino
@@ -149,9 +149,6 @@ bool LcdPrintLog(void)
}
strlcpy(disp_screen_buffer[last_row], txt, disp_screen_buffer_cols);
DisplayFillScreen(last_row);
-
- AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "[%s]"), disp_screen_buffer[last_row]);
-
lcd->setCursor(0, last_row);
lcd->print(disp_screen_buffer[last_row]);
diff --git a/tasmota/tasmota_xdsp_display/xdsp_03_matrix.ino b/tasmota/tasmota_xdsp_display/xdsp_03_matrix.ino
index c314d4982..d8a6d5fa4 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_03_matrix.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_03_matrix.ino
@@ -267,9 +267,6 @@ void MatrixPrintLog(uint8_t direction)
}
i++;
}
-
- AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION "[%s]"), mtx_buffer);
-
mtx_done = 1;
}
diff --git a/tasmota/tasmota_xdsp_display/xdsp_05_epaper_29.ino b/tasmota/tasmota_xdsp_display/xdsp_05_epaper_29.ino
index 4c18e219b..959c4c48f 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_05_epaper_29.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_05_epaper_29.ino
@@ -130,8 +130,6 @@ void EpdPrintLog29(void)
DisplayFillScreen(last_row);
renderer->DrawStringAt(0, epd_scroll, disp_screen_buffer[last_row], COLORED, 0);
// EpdDisplayFrame();
-
- AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION "[%s]"), txt);
}
}
}
diff --git a/tasmota/tasmota_xdsp_display/xdsp_15_tm1637.ino b/tasmota/tasmota_xdsp_display/xdsp_15_tm1637.ino
index 4d43d23ff..62b48632f 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_15_tm1637.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_15_tm1637.ino
@@ -1203,9 +1203,6 @@ bool TM1637PrintLog(void) {
strlcpy(disp_screen_buffer[last_row], txt, disp_screen_buffer_cols);
DisplayFillScreen(last_row);
-
- AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "[%s]"), disp_screen_buffer[last_row]);
-
TM1637Print(disp_screen_buffer[last_row]);
result = true;
diff --git a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
index ac5599dea..8c07b1d56 100644
--- a/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
+++ b/tasmota/tasmota_xdsp_display/xdsp_17_universal.ino
@@ -550,7 +550,7 @@ void UDISP_PrintLog(void)
if (!disp_screen_buffer_cols) { DisplayAllocScreenBuffer(); }
char* txt = DisplayLogBuffer('\370');
- if (txt != NULL) {
+ if (txt != nullptr) {
uint8_t last_row = Settings->display_rows -1;
// renderer->clearDisplay();
@@ -562,9 +562,6 @@ void UDISP_PrintLog(void)
}
strlcpy(disp_screen_buffer[last_row], txt, disp_screen_buffer_cols);
DisplayFillScreen(last_row);
-
- AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "[%s]"), disp_screen_buffer[last_row]);
-
renderer->println(disp_screen_buffer[last_row]);
renderer->Updateframe();
}
From a02e3aa6511245c3a852c1809ffc8f61aff688ca Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 11 Jun 2024 11:25:45 +0200
Subject: [PATCH 042/252] Update PULL_REQUEST_TEMPLATE.md
---
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 991ac37df..167baad82 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -7,7 +7,7 @@
- [ ] Only relevant files were touched
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
- [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.6
- - [ ] The code change is tested and works with Tasmota core ESP32 V.3.0.0
+ - [ ] The code change is tested and works with Tasmota core ESP32 V.3.0.1
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
_NOTE: The code change must pass CI tests. **Your PR cannot be merged unless tests pass**_
From 4858ec0aefc9ce978589e8f49aefd61a40003c97 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 11 Jun 2024 12:41:19 +0200
Subject: [PATCH 043/252] Allow receive or send using SerialBridge
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
.../xdrv_08_serial_bridge.ino | 32 +++++++++++++++----
3 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 524bb3a34..c0fde9652 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,7 @@ All notable changes to this project will be documented in this file.
- Matter filter suffix automatically added for sensors (#21589)
- Display timing splash screen with display modes 1 to 5
- ESP32 MI32 refactoring, bugfixes, generic device scanning (#21603)
+- Allow receive or send using SerialBridge
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 2d8d2e622..b3a877d30 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -132,6 +132,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Changed
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
+- Allow receive or send using SerialBridge
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
index fdce70e4a..62cb40a9d 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
@@ -20,6 +20,24 @@
#ifdef USE_SERIAL_BRIDGE
/*********************************************************************************************\
* Serial Bridge using Software Serial library (TasmotaSerial)
+ *
+ * SBaudrate
- Set baudrate
+ * SBaudrate 9600
+ * SSerialConfig - Set serial config
+ * SSerialConfig 8N1
+ * SSerialBuffer - Set serial receive buffer
+ * SSerialSend "Hello Tiger" - Send "Hello Tiger\n"
+ * SSerialSend - Set to text decoding
+ * SSerialSend1 "Hello Tiger" - Send "Hello Tiger\n"
+ * SSerialSend2 "Hello Tiger" - Send "Hello Tiger"
+ * SSerialSend3 "Hello Tiger" - Send "Hello Tiger\f"
+ * SSerialSend4 - Set to binary decoding
+ * SSerialSend4 "Hello Tiger" - Send "Hello Tiger" and set to binary decoding
+ * SSerialSend5 "AA004566" - Send "AA004566" as hex values
+ * SSerialSend6 "72,101,108,108" - Send decimals as hex values
+ * SerialDelimiter 255 - Receive data between 32 and 127 only
+ * SerialDelimiter 254 - Receive hexadecimal data
+ * SerialDelimiter 128 - Receive no data between 32 and 127
\*********************************************************************************************/
#define XDRV_08 8
@@ -91,7 +109,7 @@ void SerialBridgeInput(void) {
uint8_t serial_in_byte = SerialBridgeSerial->read();
#ifdef USE_SERIAL_BRIDGE_TEE
- if (Settings->sbflag1.serbridge_console) {
+ if (Settings->sbflag1.serbridge_console) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
static bool serial_bridge_overrun = false;
if (isprint(serial_in_byte)) { // Any char between 32 and 127
@@ -117,7 +135,7 @@ void SerialBridgeInput(void) {
}
} else {
#endif // USE_SERIAL_BRIDGE_TEE
- serial_bridge_raw = (254 == Settings->serial_delimiter);
+ serial_bridge_raw = (254 == Settings->serial_delimiter); // SerialDelimiter
if ((serial_in_byte > 127) && !serial_bridge_raw) { // Discard binary data above 127 if no raw reception allowed
serial_bridge_in_byte_counter = 0;
SerialBridgeSerial->flush();
@@ -147,17 +165,17 @@ void SerialBridgeInput(void) {
}
#ifdef USE_SERIAL_BRIDGE_TEE
- if (Settings->sbflag1.serbridge_console) {
+ if (Settings->sbflag1.serbridge_console) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
return;
}
#endif // USE_SERIAL_BRIDGE_TEE
if (serial_bridge_in_byte_counter && (millis() > (serial_bridge_polling_window + SERIAL_POLLING))) {
- serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // Serial data completed
+ serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // Serial data completed
bool assume_json = (!serial_bridge_raw && (serial_bridge_buffer[0] == '{'));
- TasmotaGlobal.serial_skip++; // SetOption35 Skip number of serial messages received (default 0)
- if (TasmotaGlobal.serial_skip > Settings->param[P_SERIAL_SKIP]) { // Handle intermediate changes to SetOption35
+ TasmotaGlobal.serial_skip++; // SetOption35 Skip number of serial messages received (default 0)
+ if (TasmotaGlobal.serial_skip > Settings->param[P_SERIAL_SKIP]) { // Handle intermediate changes to SetOption35
TasmotaGlobal.serial_skip = 0;
Response_P(PSTR("{\"" D_JSON_SSERIALRECEIVED "\":"));
@@ -188,7 +206,7 @@ void SerialBridgeInput(void) {
/********************************************************************************************/
void SerialBridgeInit(void) {
- if (PinUsed(GPIO_SBR_RX) && PinUsed(GPIO_SBR_TX)) {
+ if (PinUsed(GPIO_SBR_RX) || PinUsed(GPIO_SBR_TX)) {
// SerialBridgeSerial = new TasmotaSerial(Pin(GPIO_SBR_RX), Pin(GPIO_SBR_TX), HARDWARE_FALLBACK); // Default TM_SERIAL_BUFFER_SIZE (=64) size
SerialBridgeSerial = new TasmotaSerial(Pin(GPIO_SBR_RX), Pin(GPIO_SBR_TX), HARDWARE_FALLBACK, 0, MIN_INPUT_BUFFER_SIZE); // 256
if (SetSSerialBegin()) {
From 7e8bcd896a29860d9feec9957aae81df56ec055c Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 11 Jun 2024 13:25:47 +0200
Subject: [PATCH 044/252] include `SD_MMC.h` only when supported (#21611)
---
tasmota/tasmota.ino | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tasmota/tasmota.ino b/tasmota/tasmota.ino
index fb8416f68..e466ad9b5 100644
--- a/tasmota/tasmota.ino
+++ b/tasmota/tasmota.ino
@@ -83,7 +83,9 @@
#include
#ifdef USE_SDCARD
#include
+#ifdef SOC_SDMMC_HOST_SUPPORTED
#include
+#endif // SOC_SDMMC_HOST_SUPPORTED
#endif // USE_SDCARD
#include "FFat.h"
#include "FS.h"
From 87148ae0c11458819f67930833c658356a645bf8 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 11 Jun 2024 17:27:39 +0200
Subject: [PATCH 045/252] Change SerialBridge command ``SSerialSend9`` replaced
by ``SSerialMode``
- Bump version v14.1.0.2
---
CHANGELOG.md | 18 +-
RELEASENOTES.md | 3 +-
tasmota/include/i18n.h | 1 +
tasmota/include/tasmota_types.h | 7 +-
tasmota/include/tasmota_version.h | 2 +-
tasmota/tasmota_support/settings.ino | 5 +-
.../xdrv_08_serial_bridge.ino | 204 +++++++++++++-----
7 files changed, 173 insertions(+), 67 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c0fde9652..da6372512 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,19 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
-## [14.1.0.1]
+## [14.1.0.2]
+### Added
+
+### Breaking Changed
+
+### Changed
+- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
+
+### Fixed
+
+### Removed
+
+## [14.1.0.1] 20240611
### Added
- Berry solidification of `bytes` instances (#21558)
- Matter support for Air Quality sensors (#21559)
@@ -13,8 +25,6 @@ All notable changes to this project will be documented in this file.
- Berry add `math.round` (#21602)
- Support for QMP6988 temperature and pressure sensor
-### Breaking Changed
-
### Changed
- Matter refactoring of bridged devices (#21575)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 (#21569)
@@ -27,8 +37,6 @@ All notable changes to this project will be documented in this file.
### Fixed
- Berry `input()` returns empty string and does not crash (#21565)
-### Removed
-
## [Released]
## [14.1.0] 20240603
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index b3a877d30..e07fb7294 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -119,7 +119,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
[Complete list](BUILDS.md) of available feature and sensors.
-## Changelog v14.1.0.1
+## Changelog v14.1.0.2
### Added
- Support for QMP6988 temperature and pressure sensor
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
@@ -133,6 +133,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
- Allow receive or send using SerialBridge
+- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
diff --git a/tasmota/include/i18n.h b/tasmota/include/i18n.h
index 6b17b534a..d0ed3e128 100644
--- a/tasmota/include/i18n.h
+++ b/tasmota/include/i18n.h
@@ -609,6 +609,7 @@
// Commands xdrv_08_serial_bridge.ino
#define D_CMND_SSERIALSEND "SSerialSend"
#define D_CMND_SBAUDRATE "SBaudrate"
+#define D_CMND_SSERIALMODE "SSerialMode"
#define D_CMND_SSERIALBUFFER "SSerialBuffer"
#define D_CMND_SSERIALCONFIG "SSerialConfig"
#define D_JSON_SSERIALRECEIVED "SSerialReceived"
diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h
index 97f0a2c9d..df628c1d4 100755
--- a/tasmota/include/tasmota_types.h
+++ b/tasmota/include/tasmota_types.h
@@ -286,7 +286,7 @@ typedef union {
uint32_t sspm_display : 1; // bit 8 (v10.0.0.4) - CMND_SSPMDISPLAY - Enable gui display of powered on relays only
uint32_t local_ntp_server : 1; // bit 9 (v11.0.0.4) - CMND_RTCNTPSERVER - Enable local NTP server
uint32_t influxdb_sensor : 1; // bit 10 (v11.0.0.5) - CMND_IFXSENSOR - Enable sensor support in addition to teleperiod support
- uint32_t serbridge_console : 1; // bit 11 (v11.1.0.4) - CMND_SSERIALSEND9 - Enable logging tee to serialbridge
+ uint32_t ex_serbridge_console : 1; // bit 11 (v11.1.0.4) - (v14.1.0.2) Replaced by CMND_SSERIALMODE
uint32_t telegram_disable_af : 1; // bit 12 (v14.0.0.2) - CMND_TMSTATE 6/7 - Disable Telegram auto-fingerprint fix
uint32_t spare13 : 1; // bit 13
uint32_t spare14 : 1; // bit 14
@@ -515,6 +515,7 @@ typedef struct {
uint8_t text_pool_290[66]; // 290
// End of single char array of 698 chars max ****************
+
uint8_t display_model; // 2D2
uint8_t display_mode; // 2D3
uint8_t display_refresh; // 2D4
@@ -832,9 +833,7 @@ typedef struct {
uint8_t windmeter_tele_pchange; // F3E
uint8_t ledpwm_on; // F3F
uint8_t ledpwm_off; // F40
-
- uint8_t ex_tcp_baudrate; // F41 ex_tcp_baudrate, free since v14.0.0.4
-
+ uint8_t sserial_mode; // F41
uint8_t fallback_module; // F42
uint8_t shutter_mode; // F43
uint16_t energy_power_delta[3]; // F44
diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h
index 31371855c..ecd3f1dfe 100644
--- a/tasmota/include/tasmota_version.h
+++ b/tasmota/include/tasmota_version.h
@@ -22,6 +22,6 @@
#define TASMOTA_SHA_SHORT // Filled by Github sed
-const uint32_t TASMOTA_VERSION = 0x0E010001; // 14.1.0.1
+const uint32_t TASMOTA_VERSION = 0x0E010002; // 14.1.0.2
#endif // _TASMOTA_VERSION_H_
diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino
index ca13e46a1..e3b2e144c 100644
--- a/tasmota/tasmota_support/settings.ino
+++ b/tasmota/tasmota_support/settings.ino
@@ -1817,7 +1817,10 @@ void SettingsDelta(void) {
Settings->power_lock = 0;
}
if (Settings->version < 0x0E000004) { // 14.0.0.4
- Settings->tcp_baudrate = (uint16_t)Settings->ex_tcp_baudrate * 4;
+ Settings->tcp_baudrate = (uint16_t)Settings->sserial_mode * 4;
+ }
+ if (Settings->version < 0x0E010002) { // 14.1.0.2
+ Settings->sserial_mode = Settings->sbflag1.ex_serbridge_console;
}
Settings->version = TASMOTA_VERSION;
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
index 62cb40a9d..b4462e174 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
@@ -35,6 +35,10 @@
* SSerialSend4 "Hello Tiger" - Send "Hello Tiger" and set to binary decoding
* SSerialSend5 "AA004566" - Send "AA004566" as hex values
* SSerialSend6 "72,101,108,108" - Send decimals as hex values
+ * SSerialMode 0 - Default mode (Console tee off, 115200bps, 8N1)
+ * SSerialMode 1 - Enable console tee
+ * SSerialMode 2 - Enable dump of serial data in log level 4
+ * SSerialMode 3 - Enable Sonoff WTS01 sensor decoding (ESP32 only)
* SerialDelimiter 255 - Receive data between 32 and 127 only
* SerialDelimiter 254 - Receive hexadecimal data
* SerialDelimiter 128 - Receive no data between 32 and 127
@@ -45,6 +49,10 @@
#define USE_SERIAL_BRIDGE_TEE
+#ifdef ESP32
+#define USE_SERIAL_BRIDGE_WTS01
+#endif // ESP32
+
#ifdef SERIAL_BRIDGE_BUFFER_SIZE
const uint16_t SERIAL_BRIDGE_BUFSIZE = SERIAL_BRIDGE_BUFFER_SIZE;
#else
@@ -55,19 +63,25 @@ const uint16_t SERIAL_BRIDGE_BUFSIZE = INPUT_BUFFER_SIZE; // 800
#endif // ESP32
#endif // SERIAL_BRIDGE_BUFFER_SIZE
+enum SerialBridgeModes { SB_NONE, SB_TEE, SB_DUMP, SB_WTS01 };
+
const char kSerialBridgeCommands[] PROGMEM = "|" // No prefix
- D_CMND_SSERIALSEND "|" D_CMND_SBAUDRATE "|" D_CMND_SSERIALBUFFER "|" D_CMND_SSERIALCONFIG;
+ D_CMND_SSERIALSEND "|" D_CMND_SBAUDRATE "|" D_CMND_SSERIALBUFFER "|" D_CMND_SSERIALCONFIG "|" D_CMND_SSERIALMODE;
void (* const SerialBridgeCommand[])(void) PROGMEM = {
- &CmndSSerialSend, &CmndSBaudrate, &CmndSSerialBuffer, &CmndSSerialConfig };
+ &CmndSSerialSend, &CmndSBaudrate, &CmndSSerialBuffer, &CmndSSerialConfig, &CmndSSerialMode };
#include
TasmotaSerial *SerialBridgeSerial = nullptr;
-unsigned long serial_bridge_polling_window = 0;
char *serial_bridge_buffer = nullptr;
-int serial_bridge_in_byte_counter = 0;
-bool serial_bridge_raw = false;
+
+struct {
+ uint32_t polling_window;
+ int in_byte_counter = 0;
+ float temperature;
+ bool raw = false;
+} SBridge;
/********************************************************************************************/
@@ -87,7 +101,7 @@ void SetSSerialConfig(uint32_t serial_config) {
void SerialBridgePrintf(PGM_P formatP, ...) {
#ifdef USE_SERIAL_BRIDGE_TEE
- if (Settings->sbflag1.serbridge_console && serial_bridge_buffer) {
+ if ((SB_TEE == Settings->sserial_mode) && serial_bridge_buffer) {
va_list arg;
va_start(arg, formatP);
char* data = ext_vsnprintf_malloc_P(formatP, arg);
@@ -109,18 +123,18 @@ void SerialBridgeInput(void) {
uint8_t serial_in_byte = SerialBridgeSerial->read();
#ifdef USE_SERIAL_BRIDGE_TEE
- if (Settings->sbflag1.serbridge_console) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
+ if (SB_TEE == Settings->sserial_mode) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
static bool serial_bridge_overrun = false;
if (isprint(serial_in_byte)) { // Any char between 32 and 127
- if (serial_bridge_in_byte_counter < SERIAL_BRIDGE_BUFSIZE -1) { // Add char to string if it still fits
- serial_bridge_buffer[serial_bridge_in_byte_counter++] = serial_in_byte;
+ if (SBridge.in_byte_counter < SERIAL_BRIDGE_BUFSIZE -1) { // Add char to string if it still fits
+ serial_bridge_buffer[SBridge.in_byte_counter++] = serial_in_byte;
} else {
serial_bridge_overrun = true; // Signal overrun but continue reading input to flush until '\n' (EOL)
}
}
else if (serial_in_byte == '\n') {
- serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // Serial data completed
+ serial_bridge_buffer[SBridge.in_byte_counter] = 0; // Serial data completed
TasmotaGlobal.seriallog_level = (Settings->seriallog_level < LOG_LEVEL_INFO) ? (uint8_t)LOG_LEVEL_INFO : Settings->seriallog_level;
if (serial_bridge_overrun) {
AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_COMMAND "SSerial buffer overrun"));
@@ -128,78 +142,98 @@ void SerialBridgeInput(void) {
AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_COMMAND "%s"), serial_bridge_buffer);
ExecuteCommand(serial_bridge_buffer, SRC_SSERIAL);
}
- serial_bridge_in_byte_counter = 0;
+ SBridge.in_byte_counter = 0;
serial_bridge_overrun = false;
SerialBridgeSerial->flush();
return;
}
} else {
#endif // USE_SERIAL_BRIDGE_TEE
- serial_bridge_raw = (254 == Settings->serial_delimiter); // SerialDelimiter
- if ((serial_in_byte > 127) && !serial_bridge_raw) { // Discard binary data above 127 if no raw reception allowed
- serial_bridge_in_byte_counter = 0;
+ SBridge.raw = (Settings->sserial_mode > SB_TEE) ? true : (254 == Settings->serial_delimiter); // SerialDelimiter
+ if ((serial_in_byte > 127) && !SBridge.raw) { // Discard binary data above 127 if no raw reception allowed
+ SBridge.in_byte_counter = 0;
SerialBridgeSerial->flush();
return;
}
- if (serial_in_byte || serial_bridge_raw) { // Any char between 1 and 127 or any char (0 - 255)
+ if (serial_in_byte || SBridge.raw) { // Any char between 1 and 127 or any char (0 - 255)
bool in_byte_is_delimiter = // Char is delimiter when...
(((Settings->serial_delimiter < 128) && (serial_in_byte == Settings->serial_delimiter)) || // Any char between 1 and 127 and being delimiter
((Settings->serial_delimiter == 128) && !isprint(serial_in_byte))) && // Any char not between 32 and 127
- !serial_bridge_raw; // In raw mode (CMND_SERIALSEND3) there is never a delimiter
+ !SBridge.raw; // In raw mode (CMND_SERIALSEND3) there is never a delimiter
- if ((serial_bridge_in_byte_counter < SERIAL_BRIDGE_BUFSIZE -1) && // Add char to string if it still fits and ...
+ if ((SBridge.in_byte_counter < SERIAL_BRIDGE_BUFSIZE -1) && // Add char to string if it still fits and ...
!in_byte_is_delimiter) { // Char is not a delimiter
- serial_bridge_buffer[serial_bridge_in_byte_counter++] = serial_in_byte;
+ serial_bridge_buffer[SBridge.in_byte_counter++] = serial_in_byte;
}
- if ((serial_bridge_in_byte_counter >= SERIAL_BRIDGE_BUFSIZE -1) || // Send message when buffer is full or ...
+ if ((SBridge.in_byte_counter >= SERIAL_BRIDGE_BUFSIZE -1) || // Send message when buffer is full or ...
in_byte_is_delimiter) { // Char is delimiter
- serial_bridge_polling_window = 0; // Publish now
+ SBridge.polling_window = 0; // Publish now
break;
}
}
- serial_bridge_polling_window = millis(); // Wait for more data
+ SBridge.polling_window = millis(); // Wait for more data
#ifdef USE_SERIAL_BRIDGE_TEE
}
#endif // USE_SERIAL_BRIDGE_TEE
}
#ifdef USE_SERIAL_BRIDGE_TEE
- if (Settings->sbflag1.serbridge_console) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
+ if (SB_TEE == Settings->sserial_mode) { // CMND_SSERIALSEND9 - Enable logging tee to serialbridge
return;
}
#endif // USE_SERIAL_BRIDGE_TEE
- if (serial_bridge_in_byte_counter && (millis() > (serial_bridge_polling_window + SERIAL_POLLING))) {
- serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // Serial data completed
- bool assume_json = (!serial_bridge_raw && (serial_bridge_buffer[0] == '{'));
+ if (SBridge.in_byte_counter && (millis() > (SBridge.polling_window + SERIAL_POLLING))) {
+ serial_bridge_buffer[SBridge.in_byte_counter] = 0; // Serial data completed
- TasmotaGlobal.serial_skip++; // SetOption35 Skip number of serial messages received (default 0)
- if (TasmotaGlobal.serial_skip > Settings->param[P_SERIAL_SKIP]) { // Handle intermediate changes to SetOption35
- TasmotaGlobal.serial_skip = 0;
-
- Response_P(PSTR("{\"" D_JSON_SSERIALRECEIVED "\":"));
- if (assume_json) {
- ResponseAppend_P(serial_bridge_buffer);
- } else {
- ResponseAppend_P(PSTR("\""));
- if (serial_bridge_raw) {
- ResponseAppend_P(PSTR("%*_H"), serial_bridge_in_byte_counter, serial_bridge_buffer);
+ if (SB_NONE == Settings->sserial_mode) {
+ bool assume_json = (!SBridge.raw && (serial_bridge_buffer[0] == '{'));
+ TasmotaGlobal.serial_skip++; // SetOption35 Skip number of serial messages received (default 0)
+ if (TasmotaGlobal.serial_skip > Settings->param[P_SERIAL_SKIP]) { // Handle intermediate changes to SetOption35
+ TasmotaGlobal.serial_skip = 0;
+ Response_P(PSTR("{\"" D_JSON_SSERIALRECEIVED "\":"));
+ if (assume_json) {
+ ResponseAppend_P(serial_bridge_buffer);
} else {
- ResponseAppend_P(EscapeJSONString(serial_bridge_buffer).c_str());
+ ResponseAppend_P(PSTR("\""));
+ if (SBridge.raw) {
+ ResponseAppend_P(PSTR("%*_H"), SBridge.in_byte_counter, serial_bridge_buffer);
+ } else {
+ ResponseAppend_P(EscapeJSONString(serial_bridge_buffer).c_str());
+ }
+ ResponseAppend_P(PSTR("\""));
}
- ResponseAppend_P(PSTR("\""));
- }
- ResponseJsonEnd();
+ ResponseJsonEnd();
- if (Settings->flag6.mqtt_disable_sserialrec ) { // SetOption147 If it is activated, Tasmota will not publish SSerialReceived MQTT messages, but it will proccess event trigger rules
- XdrvRulesProcess(0);
- } else {
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_SSERIALRECEIVED));
+ if (Settings->flag6.mqtt_disable_sserialrec ) { // SetOption147 If it is activated, Tasmota will not publish SSerialReceived MQTT messages, but it will proccess event trigger rules
+ XdrvRulesProcess(0);
+ } else {
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_SSERIALRECEIVED));
+ }
}
}
- serial_bridge_in_byte_counter = 0;
+ if (Settings->sserial_mode > SB_TEE) {
+ AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("SBR: Rcvd '%*_H'"), SBridge.in_byte_counter, serial_bridge_buffer);
+ }
+
+#ifdef USE_SERIAL_BRIDGE_WTS01
+ // Sonoff WTS01 9600bps, 8N1 datagram every second
+ // 0 1 2 3 4 5 6 7 8
+ // 55 01 01 04 01 11 16 12 95
+ // header T Td Ck - T = Temperature, Td = Temperature decimal, Ck = Checksum
+ if (SB_WTS01 == Settings->sserial_mode) {
+ if (9 == SBridge.in_byte_counter) {
+ uint32_t *header = (uint32_t*)serial_bridge_buffer;
+ if (0x04010155 == *header) {
+ SBridge.temperature = (float)serial_bridge_buffer[6] + ((float)serial_bridge_buffer[7] / 100.0f);
+ }
+ }
+ }
+#endif // USE_SERIAL_BRIDGE_WTS01
+
+ SBridge.in_byte_counter = 0;
}
}
@@ -230,10 +264,10 @@ void SerialBridgeInit(void) {
\*********************************************************************************************/
void CmndSSerialSend(void) {
+ if (Settings->sserial_mode > SB_DUMP) { return; } // Not supported in receive only mode
if (XdrvMailbox.index > 9) { XdrvMailbox.index -= 10; }
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= 6)) {
- serial_bridge_raw = (XdrvMailbox.index > 3);
- Settings->sbflag1.serbridge_console = 0; // Disable console Tee
+ SBridge.raw = (XdrvMailbox.index > 3);
if (XdrvMailbox.data_len > 0) {
if (1 == XdrvMailbox.index) {
SerialBridgeSerial->write(XdrvMailbox.data, XdrvMailbox.data_len); // "Hello Tiger"
@@ -273,14 +307,6 @@ void CmndSSerialSend(void) {
ResponseCmndDone();
}
}
-#ifdef USE_SERIAL_BRIDGE_TEE
- if (9 == XdrvMailbox.index) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 1)) {
- Settings->sbflag1.serbridge_console = XdrvMailbox.payload;
- }
- ResponseCmndStateText(Settings->sbflag1.serbridge_console);
- }
-#endif // USE_SERIAL_BRIDGE_TEE
}
void CmndSBaudrate(void) {
@@ -335,6 +361,66 @@ void CmndSSerialConfig(void) {
ResponseCmndChar(GetSerialConfig(Settings->sserial_config).c_str());
}
+void CmndSSerialMode(void) {
+ // SSerialMode 0 - Default mode (Tee off, 115200bps, 8N1)
+ // SSerialMode 1 - Toggle console tee
+ // SSerialMode 2 - Dump hex data to log level 4 for analysis
+ // SSerialMode 3 - Sonoff WTS01 decode
+ if (XdrvMailbox.payload >= 0) {
+ switch (XdrvMailbox.payload) {
+ case SB_NONE:
+ Settings->sserial_mode = XdrvMailbox.payload;
+ // Settings->serial_delimiter = 255;
+ Settings->sbaudrate = 115200 / 300; // 115200bps
+ SetSSerialConfig(3); // 8N1
+ break;
+#ifdef USE_SERIAL_BRIDGE_TEE
+ case SB_TEE:
+ Settings->sserial_mode = XdrvMailbox.payload;
+ break;
+#endif // USE_SERIAL_BRIDGE_TEE
+ case SB_DUMP:
+ Settings->sserial_mode = XdrvMailbox.payload;
+ break;
+#ifdef USE_SERIAL_BRIDGE_WTS01
+ case SB_WTS01:
+ Settings->sserial_mode = XdrvMailbox.payload;
+ Settings->sbaudrate = 9600 / 300; // 9600bps
+ SetSSerialConfig(3); // 8N1
+ break;
+#endif // USE_SERIAL_BRIDGE_WTS01
+ default:
+ return; // Not supported
+ }
+ }
+ ResponseCmndNumber(Settings->sserial_mode);
+}
+
+/*********************************************************************************************\
+ * Presentation
+\*********************************************************************************************/
+
+void SerialBridgeShow(bool json) {
+#ifdef USE_SERIAL_BRIDGE_WTS01
+ if (SB_WTS01 == Settings->sserial_mode) {
+ float temperature = ConvertTemp(SBridge.temperature);
+ if (json) {
+ ResponseAppend_P(PSTR(",\"WTS01\":{\"" D_JSON_TEMPERATURE "\":%*_f}"), Settings->flag2.temperature_resolution, &temperature);
+ #ifdef USE_DOMOTICZ
+ if (0 == TasmotaGlobal.tele_period) { DomoticzFloatSensor(DZ_TEMP, temperature); }
+ #endif // USE_DOMOTICZ
+ #ifdef USE_KNX
+ if (0 == TasmotaGlobal.tele_period) { KnxSensor(KNX_TEMPERATURE, temperature); }
+ #endif // USE_KNX
+ #ifdef USE_WEBSERVER
+ } else {
+ WSContentSend_Temp("WTS01", temperature);
+ #endif // USE_WEBSERVER
+ }
+ }
+#endif // USE_SERIAL_BRIDGE_WTS01
+}
+
/*********************************************************************************************\
* Interface
\*********************************************************************************************/
@@ -351,6 +437,14 @@ bool Xdrv08(uint32_t function) {
case FUNC_SLEEP_LOOP:
SerialBridgeInput();
break;
+ case FUNC_JSON_APPEND:
+ SerialBridgeShow(1);
+ break;
+#ifdef USE_WEBSERVER
+ case FUNC_WEB_SENSOR:
+ SerialBridgeShow(0);
+ break;
+#endif // USE_WEBSERVER
case FUNC_COMMAND:
result = DecodeCommand(kSerialBridgeCommands, SerialBridgeCommand);
break;
From bd47d99ceb1046e2bef6a26f830a76ae8f06da43 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Wed, 12 Jun 2024 10:48:38 +0200
Subject: [PATCH 046/252] Berry `classof` extended to class methods (#21615)
---
CHANGELOG.md | 1 +
lib/libesp32/berry/src/be_api.c | 16 ++++++++++++++++
lib/libesp32/berry/tests/class.be | 17 ++++++++++++++++-
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index da6372512..393947757 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
## [14.1.0.2]
### Added
+- Berry `classof` extended to class methods
### Breaking Changed
diff --git a/lib/libesp32/berry/src/be_api.c b/lib/libesp32/berry/src/be_api.c
index 6ccb65c5a..f3851b5c6 100644
--- a/lib/libesp32/berry/src/be_api.c
+++ b/lib/libesp32/berry/src/be_api.c
@@ -544,6 +544,22 @@ BERRY_API bbool be_classof(bvm *vm, int index)
binstance *ins = var_toobj(v);
var_setclass(top, be_instance_class(ins));
return btrue;
+ } else if (var_isclosure(v)) {
+ bclosure *cl = var_toobj(v);
+ bproto *pr = cl->proto;
+ if (pr != NULL) {
+ bclass *cla;
+ if (pr->nproto > 0) {
+ cla = (bclass*) pr->ptab[pr->nproto];
+ } else {
+ cla = (bclass*) pr->ptab;
+ }
+ if (cla && var_basetype(cla) == BE_CLASS) {
+ bvalue *top = be_incrtop(vm);
+ var_setclass(top, cla);
+ return btrue;
+ }
+ }
}
return bfalse;
}
diff --git a/lib/libesp32/berry/tests/class.be b/lib/libesp32/berry/tests/class.be
index e175fcdca..0bbc6be56 100644
--- a/lib/libesp32/berry/tests/class.be
+++ b/lib/libesp32/berry/tests/class.be
@@ -57,4 +57,19 @@ c4 = Test_class()
assert(type(c4.c) == 'class')
c5 = c4.c()
assert(type(c5) == 'instance')
-assert(classname(c5) == 'map')
\ No newline at end of file
+assert(classname(c5) == 'map')
+
+#- classof now gets back the class of Berry methods -#
+class A
+ def f() end
+ static def g() end
+end
+class B : A
+ def h() end
+end
+assert(classof(A.f) == A)
+assert(classof(A.g) == A)
+assert(classof(B.h) == B)
+#- returns nil if native function of not in class -#
+assert(classof(int) == nil)
+assert(classof(def () end) == nil)
From 7bde0b89d12c9be1aedfd647273a197ade5385a5 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Wed, 12 Jun 2024 10:50:29 +0200
Subject: [PATCH 047/252] Fix QMP6988
---
tasmota/tasmota_support/support_a_i2c.ino | 42 ++++++++++++-------
.../tasmota_xsns_sensor/xsns_28_qmp6988.ino | 19 ++++++---
2 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/tasmota/tasmota_support/support_a_i2c.ino b/tasmota/tasmota_support/support_a_i2c.ino
index 5912bbfc9..364cd1fe5 100644
--- a/tasmota/tasmota_support/support_a_i2c.ino
+++ b/tasmota/tasmota_support/support_a_i2c.ino
@@ -58,6 +58,10 @@ TwoWire& I2cGetWire(uint8_t bus = 0) {
}
}
+/*-------------------------------------------------------------------------------------------*\
+ * Return code: 0 = Error, 1 = OK
+\*-------------------------------------------------------------------------------------------*/
+
bool I2cValidRead(uint8_t addr, uint8_t reg, uint8_t size, uint8_t bus = 0) {
i2c_buffer = 0;
@@ -75,51 +79,51 @@ bool I2cValidRead(uint8_t addr, uint8_t reg, uint8_t size, uint8_t bus = 0) {
for (uint32_t i = 0; i < size; i++) {
i2c_buffer = i2c_buffer << 8 | myWire.read(); // receive DATA
}
- status = true;
+ status = true; // 1 = OK
}
}
retry--;
}
if (!retry) myWire.endTransmission();
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidRead8(uint8_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
bool status = I2cValidRead(addr, reg, 1, bus);
*data = (uint8_t)i2c_buffer;
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidRead16(uint16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
bool status = I2cValidRead(addr, reg, 2, bus);
*data = (uint16_t)i2c_buffer;
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidReadS16(int16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
bool status = I2cValidRead(addr, reg, 2, bus);
*data = (int16_t)i2c_buffer;
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidRead16LE(uint16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
uint16_t ldata;
bool status = I2cValidRead16(&ldata, addr, reg, bus);
*data = (ldata >> 8) | (ldata << 8);
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidReadS16_LE(int16_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
uint16_t ldata;
bool status = I2cValidRead16LE(&ldata, addr, reg, bus);
*data = (int16_t)ldata;
- return status;
+ return status; // 0 = Error, 1 = OK
}
bool I2cValidRead24(int32_t *data, uint8_t addr, uint8_t reg, uint8_t bus = 0) {
bool status = I2cValidRead(addr, reg, 3, bus);
*data = i2c_buffer;
- return status;
+ return status; // 0 = Error, 1 = OK
}
uint8_t I2cRead8(uint8_t addr, uint8_t reg, uint8_t bus = 0) {
@@ -166,37 +170,41 @@ bool I2cWrite(uint8_t addr, uint8_t reg, uint32_t val, uint8_t size, uint8_t bus
}
x--;
} while (myWire.endTransmission(true) != 0 && x != 0); // end transmission
- return (x);
+ return (x); // 0 = Error, 1 = OK
}
bool I2cWrite8(uint8_t addr, uint8_t reg, uint32_t val, uint8_t bus = 0) {
- return I2cWrite(addr, reg, val, 1, bus);
+ return I2cWrite(addr, reg, val, 1, bus); // 0 = Error, 1 = OK
}
bool I2cWrite16(uint8_t addr, uint8_t reg, uint32_t val, uint8_t bus = 0) {
- return I2cWrite(addr, reg, val, 2, bus);
+ return I2cWrite(addr, reg, val, 2, bus); // 0 = Error, 1 = OK
}
+/*-------------------------------------------------------------------------------------------*\
+ * Return code: 0 = OK, 1 = Error
+\*-------------------------------------------------------------------------------------------*/
+
bool I2cReadBuffer(uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len, uint8_t bus = 0) {
TwoWire& myWire = I2cGetWire(bus);
- if (&myWire == nullptr) { return true; } // No valid I2c bus
+ if (&myWire == nullptr) { return true; } // No valid I2c bus
myWire.beginTransmission((uint8_t)addr);
myWire.write((uint8_t)reg);
myWire.endTransmission();
if (len != myWire.requestFrom((uint8_t)addr, (uint8_t)len)) {
- return true; // Error
+ return true; // 1 = Error
}
while (len--) {
*reg_data = (uint8_t)myWire.read();
reg_data++;
}
- return false; // OK
+ return false; // 0 = OK
}
int8_t I2cWriteBuffer(uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len, uint8_t bus = 0) {
TwoWire& myWire = I2cGetWire(bus);
- if (&myWire == nullptr) { return 1; } // No valid I2c bus
+ if (&myWire == nullptr) { return 1; } // 1 = Error, No valid I2c bus
myWire.beginTransmission((uint8_t)addr);
myWire.write((uint8_t)reg);
@@ -205,9 +213,11 @@ int8_t I2cWriteBuffer(uint8_t addr, uint8_t reg, uint8_t *reg_data, uint16_t len
reg_data++;
}
myWire.endTransmission();
- return 0; // OK
+ return 0; // 0 = OK
}
+/*-------------------------------------------------------------------------------------------*/
+
void I2cScan(uint8_t bus = 0) {
// Return error codes defined in twi.h and core_esp8266_si2c.c
// I2C_OK 0
diff --git a/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino b/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
index ff39f5964..c4e0fdddc 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_28_qmp6988.ino
@@ -125,11 +125,18 @@ qmp6988_data_t *Qmp6988 = nullptr;
/*********************************************************************************************/
bool QMP6988I2cReadBuffer(uint8_t reg, uint8_t *reg_data, uint16_t len) {
- return I2cReadBuffer(Qmp6988->address, reg, reg_data, len, Qmp6988->bus);
+ bool ret = !I2cReadBuffer(Qmp6988->address, reg, reg_data, len, Qmp6988->bus);
+
+// AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Rd %02X '%*_H', Rslt %d"), reg, len, reg_data, ret);
+
+ return ret;
}
-uint8_t QMP6988I2cWrite(uint8_t reg, uint32_t val) {
- uint8_t ret = I2cWrite8(Qmp6988->address, reg, val, Qmp6988->bus);
+bool QMP6988I2cWrite(uint8_t reg, uint32_t val) {
+ bool ret = I2cWrite8(Qmp6988->address, reg, val, Qmp6988->bus);
+
+// AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Wr %02X '%02X', Rslt %d"), reg, val, ret);
+
delay(20);
return ret;
}
@@ -272,7 +279,7 @@ int QMP6988GetPressure02e(qmp6988_ik_data_t* ik, int dp, int16_t tx) {
void QMP6988Reset(void) {
uint8_t ret = QMP6988I2cWrite(QMP6988_RESET_REG, 0xe6);
if (0 == ret) {
- AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Reset fail"));
+ QMP6988_LOG("reset fail!!! \r\n");
}
QMP6988I2cWrite(QMP6988_RESET_REG, 0x00);
}
@@ -322,7 +329,7 @@ bool QMP6988ValidChip(void) {
uint8_t data;
QMP6988I2cReadBuffer(QMP6988_CHIP_ID_REG, &data, 1);
- AddLog(LOG_LEVEL_DEBUG, PSTR("QMP: Chip Id 0x%02X"), data);
+ QMP6988_LOG("chip id=0x%x \r\n", data);
return (QMP6988_CHIP_ID == data);
}
@@ -345,7 +352,7 @@ void QMP6988CalcPressureAndTemperature(void) {
int P_int = QMP6988GetPressure02e(&(Qmp6988->ik), P_raw, T_int);
Qmp6988->temperature = (float)T_int / 256.0f;
- Qmp6988->pressure = (float)P_int / 16.0f;
+ Qmp6988->pressure = (float)P_int / 1600.0f;
}
void Qmp6988Detect(void) {
From 6e8e3cc740a222fc71c6e218bc8b1b8b0046a57c Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Wed, 12 Jun 2024 10:54:17 +0200
Subject: [PATCH 048/252] Update changelogs
---
CHANGELOG.md | 3 ++-
RELEASENOTES.md | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 393947757..c1223e961 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,8 @@ All notable changes to this project will be documented in this file.
## [14.1.0.2]
### Added
-- Berry `classof` extended to class methods
+- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
+- Berry `classof` extended to class methods (#21615)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index e07fb7294..d39dc5be3 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -122,9 +122,11 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
## Changelog v14.1.0.2
### Added
- Support for QMP6988 temperature and pressure sensor
+- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
+- Berry `classof` extended to class methods [#21615](https://github.com/arendst/Tasmota/issues/21615)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality (#21597)[#21597](https://github.com/arendst/Tasmota/issues/21597)
From 4fbe3590bea16b3d43fc870bda13807e5d223534 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Wed, 12 Jun 2024 20:23:43 +0200
Subject: [PATCH 049/252] add TM1638 switches to display build (#21617)
---
tasmota/include/tasmota_configurations.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tasmota/include/tasmota_configurations.h b/tasmota/include/tasmota_configurations.h
index 80401756f..2cecc2d46 100644
--- a/tasmota/include/tasmota_configurations.h
+++ b/tasmota/include/tasmota_configurations.h
@@ -356,6 +356,8 @@
#define USE_DISPLAY_TM1637 // [DisplayModel 15] Enable TM1637 module
#define USE_DISPLAY_MAX7219 // [DisplayModel 19] Enable MAX7219 7-segment module
+#define USE_TM1638 // Add support for TM1638 switches copying Switch1 .. Switch8 (+1k code)
+
#define USE_I2C // I2C using library wire (+10k code, 0k2 mem, 124 iram)
#define USE_DISPLAY_MODES1TO5 // Enable display mode 1 to 5 in addition to mode 0
#define USE_DISPLAY_LCD // [DisplayModel 1] Enable Lcd display (I2C addresses 0x27 and 0x3F) (+6k code)
From fe31d84ac6d801ed3b7686deb3bf3a5df3936b72 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 13 Jun 2024 21:29:24 +0200
Subject: [PATCH 050/252] add lib_ignore for rtsp lib
to env which does not support webcam
---
platformio_tasmota_env32.ini | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/platformio_tasmota_env32.ini b/platformio_tasmota_env32.ini
index 8876956d2..ce888463c 100644
--- a/platformio_tasmota_env32.ini
+++ b/platformio_tasmota_env32.ini
@@ -192,6 +192,8 @@ build_unflags = ${env:tasmota32_base.build_unflags}
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c2.bin"'
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32c3]
extends = env:tasmota32_base
@@ -201,6 +203,8 @@ build_unflags = ${env:tasmota32_base.build_unflags}
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c3.bin"'
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32c6]
extends = env:tasmota32_base
@@ -210,6 +214,8 @@ build_unflags = ${env:tasmota32_base.build_unflags}
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c6.bin"'
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32s3]
extends = env:tasmota32_base
@@ -237,6 +243,8 @@ build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_BLUETOOTH
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32-bluetooth.bin"'
lib_extra_dirs = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_ssl
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32-display]
extends = env:tasmota32_base
@@ -244,6 +252,8 @@ build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_DISPLAYS
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32-display.bin"'
lib_extra_dirs = lib/libesp32, lib/lib_basic, lib/lib_display, lib/lib_ssl
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32-lvgl]
extends = env:tasmota32_base
@@ -252,6 +262,8 @@ build_flags = ${env:tasmota32_base.build_flags}
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32-lvgl.bin"'
board_build.f_cpu = 240000000L
lib_extra_dirs = lib/libesp32, lib/libesp32_lvgl, lib/lib_basic, lib/lib_i2c, lib/lib_rf, lib/lib_div, lib/lib_ssl, lib/lib_display
+lib_ignore = ${env:tasmota32_base.lib_ignore}
+ Micro-RTSP
[env:tasmota32-ir]
extends = env:tasmota32_base
From 95f6032d863513c9de6ee6c85fb9e71623600f24 Mon Sep 17 00:00:00 2001
From: Norbert Richter
Date: Fri, 14 Jun 2024 10:14:13 +0200
Subject: [PATCH 051/252] Change NeoPool using temperature as only frequently
changing value for NPTeleperiod (#21628)
---
CHANGELOG.md | 1 +
tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino | 12 ++++++------
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1223e961..8be3b269e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file.
### Changed
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
+- NeoPool using temperature as only frequently changing value for NPTeleperiod
### Fixed
diff --git a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
index 88e1d00f3..01718d201 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
@@ -632,15 +632,15 @@ const uint16_t NeoPoolRegCheck[] PROGMEM = {
// MBF_CELL_RUNTIME_POL_CHANGES_HIGH,
// measured values delayed (set bit 15 to indicate often value changes)
- MBF_ION_CURRENT | 0x8000,
- MBF_MEASURE_CL | 0x8000,
- MBF_MEASURE_CONDUCTIVITY | 0x8000,
- MBF_MEASURE_PH | 0x8000,
- MBF_MEASURE_RX | 0x8000,
MBF_MEASURE_TEMPERATURE | 0x8000,
- MBF_HIDRO_CURRENT | 0x8000,
// undelayed measured values
+ MBF_MEASURE_CL,
+ MBF_MEASURE_CONDUCTIVITY,
+ MBF_MEASURE_PH,
+ MBF_MEASURE_RX,
+ MBF_ION_CURRENT,
+ MBF_HIDRO_CURRENT,
MBF_HIDRO_STATUS,
MBF_PH_STATUS,
MBF_RELAY_STATE,
From cbff86695f13be11c885bfa77e4c0c7478a3a335 Mon Sep 17 00:00:00 2001
From: gemu
Date: Fri, 14 Jun 2024 10:14:44 +0200
Subject: [PATCH 052/252] replace vars in descriptor + line (#21622)
---
tasmota/tasmota_xsns_sensor/xsns_53_sml.ino | 116 +++++++++++---------
1 file changed, 63 insertions(+), 53 deletions(-)
diff --git a/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino b/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
index af3120d62..ec73da332 100755
--- a/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
@@ -3156,28 +3156,38 @@ void SML_Init(void) {
// add descriptor +1,1,c,0,10,H20
//toLogEOL(">>",lp);
lp++;
- index = *lp & 7;
- lp += 2;
+ char *lp1;
+#ifdef SML_REPLACE_VARS
+ char dstbuf[SML_SRCBSIZE*2];
+ Replace_Cmd_Vars(lp, 1, dstbuf, sizeof(dstbuf));
+ lp += SML_getlinelen(lp);
+ lp1 = dstbuf;
+#else
+ lp1 = lp;
+ lp += SML_getlinelen(lp);
+#endif
+ index = *lp1 & 7;
+ lp1 += 2;
if (index < 1 || index > sml_globs.meters_used) {
AddLog(LOG_LEVEL_INFO, PSTR("illegal meter number!"));
goto next_line;
}
index--;
mmp = &meter_desc[index];
- if (*lp == '[') {
+ if (*lp1 == '[') {
// sign TCP mode
srcpin = TCP_MODE_FLG;
- lp++;
+ lp1++;
char str[32];
uint8_t cnt;
for (cnt = 0; cnt < sizeof(str) - 1; cnt++) {
- if (!*lp || *lp == '\n' || *lp == ']') {
+ if (!*lp1 || *lp1 == '\n' || *lp1 == ']') {
break;
}
- str[cnt] = *lp++;
+ str[cnt] = *lp1++;
}
str[cnt] = 0;
- lp++;
+ lp1++;
#ifdef USE_SML_TCP
#ifdef USE_SML_TCP_IP_STR
strcpy(mmp->ip_addr, str);
@@ -3186,7 +3196,7 @@ void SML_Init(void) {
#endif
#endif
} else {
- srcpin = strtol(lp, &lp, 10);
+ srcpin = strtol(lp1, &lp1, 10);
if (Gpio_used(abs(srcpin))) {
AddLog(LOG_LEVEL_INFO, PSTR("SML: Error: Duplicate GPIO %d defined. Not usable for RX in meter number %d"), abs(srcpin), index + 1);
dddef_exit:
@@ -3196,53 +3206,53 @@ dddef_exit:
}
}
mmp->srcpin = srcpin;
- if (*lp != ',') goto next_line;
- lp++;
- mmp->type = *lp;
- lp++;
- if (*lp != ',') {
- switch (*lp) {
+ if (*lp1 != ',') goto next_line;
+ lp1++;
+ mmp->type = *lp1;
+ lp1++;
+ if (*lp1 != ',') {
+ switch (*lp1) {
case 'N':
- lp++;
- mmp->sopt = 0x10 | (*lp & 3);
- lp++;
+ lp1++;
+ mmp->sopt = 0x10 | (*lp1 & 3);
+ lp1++;
break;
case 'E':
- lp++;
- mmp->sopt = 0x20 | (*lp & 3);
- lp++;
+ lp1++;
+ mmp->sopt = 0x20 | (*lp1 & 3);
+ lp1++;
break;
case 'O':
- lp++;
- mmp->sopt = 0x30 | (*lp & 3);
- lp++;
+ lp1++;
+ mmp->sopt = 0x30 | (*lp1 & 3);
+ lp1++;
break;
default:
- mmp->sopt = *lp&7;
- lp++;
+ mmp->sopt = *lp1&7;
+ lp1++;
}
} else {
mmp->sopt = 0;
}
- lp++;
- mmp->flag = strtol(lp, &lp, 10);
- if (*lp != ',') goto next_line;
- lp++;
- mmp->params = strtol(lp, &lp, 10);
- if (*lp != ',') goto next_line;
- lp++;
+ lp1++;
+ mmp->flag = strtol(lp1, &lp1, 10);
+ if (*lp1 != ',') goto next_line;
+ lp1++;
+ mmp->params = strtol(lp1, &lp1, 10);
+ if (*lp1 != ',') goto next_line;
+ lp1++;
mmp->prefix[SML_PREFIX_SIZE - 1] = 0;
for (uint32_t cnt = 0; cnt < SML_PREFIX_SIZE; cnt++) {
- if (*lp == SCRIPT_EOL || *lp == ',') {
+ if (*lp1 == SCRIPT_EOL || *lp1 == ',') {
mmp->prefix[cnt] = 0;
break;
}
- mmp->prefix[cnt] = *lp++;
+ mmp->prefix[cnt] = *lp1++;
}
- if (*lp == ',') {
- lp++;
+ if (*lp1 == ',') {
+ lp1++;
// get TRX pin
- mmp->trxpin = strtol(lp, &lp, 10);
+ mmp->trxpin = strtol(lp1, &lp1, 10);
if (mmp->srcpin != TCP_MODE_FLG) {
if (Gpio_used(mmp->trxpin)) {
AddLog(LOG_LEVEL_INFO, PSTR("SML: Error: Duplicate GPIO %d defined. Not usable for TX in meter number %d"), meter_desc[index].trxpin, index + 1);
@@ -3250,19 +3260,19 @@ dddef_exit:
}
}
// optional transmit enable pin
- if (*lp == '(') {
- lp++;
- if (*lp == 'i') {
- lp++;
+ if (*lp1 == '(') {
+ lp1++;
+ if (*lp1 == 'i') {
+ lp1++;
mmp->trx_en.trxenpol = 1;
} else {
mmp->trx_en.trxenpol = 0;
}
- mmp->trx_en.trxenpin = strtol(lp, &lp, 10);
- if (*lp != ')') {
+ mmp->trx_en.trxenpin = strtol(lp1, &lp1, 10);
+ if (*lp1 != ')') {
goto dddef_exit;
}
- lp++;
+ lp1++;
if (Gpio_used(mmp->trx_en.trxenpin)) {
AddLog(LOG_LEVEL_INFO, PSTR("SML: Error: Duplicate GPIO %d defined. Not usable for TX enable in meter number %d"), meter_desc[index].trx_en.trxenpin, index + 1);
goto dddef_exit;
@@ -3273,15 +3283,15 @@ dddef_exit:
} else {
mmp->trx_en.trxen = 0;
}
- if (*lp != ',') goto next_line;
- lp++;
- mmp->tsecs = strtol(lp, &lp, 10);
- if (*lp == ',') {
- lp++;
+ if (*lp1 != ',') goto next_line;
+ lp1++;
+ mmp->tsecs = strtol(lp1, &lp1, 10);
+ if (*lp1 == ',') {
+ lp1++;
// look ahead
uint16_t txlen = 0;
uint16_t tx_entries = 1;
- char *txp = lp;
+ char *txp = lp1;
while (*txp) {
if (*txp == ',') tx_entries++;
if (*txp == SCRIPT_EOL) {
@@ -3303,7 +3313,7 @@ dddef_exit:
memory += txlen + 2;
if (mmp->txmem) {
// now copy send blocks
- char *txp = lp;
+ char *txp = lp1;
uint16_t tind = 0;
for (uint32_t cnt = 0; cnt < txlen; cnt++) {
if (*txp == SCRIPT_EOL) {
@@ -3318,11 +3328,11 @@ dddef_exit:
mmp->index = 0;
mmp->max_index = tx_entries;
sml_globs.sml_send_blocks++;
- lp += txlen;
+ lp1 += txlen;
}
}
}
- if (*lp == SCRIPT_EOL) lp--;
+ if (*lp1 == SCRIPT_EOL) lp1--;
goto next_line;
}
char *lp1;
From 9451f20b43e4a7c153cb8ad31ab1abbc31f4db33 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 14 Jun 2024 10:46:14 +0200
Subject: [PATCH 053/252] Update changelogs
---
CHANGELOG.md | 3 ++-
RELEASENOTES.md | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8be3b269e..cf6c3f32e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,8 @@ All notable changes to this project will be documented in this file.
### Changed
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
-- NeoPool using temperature as only frequently changing value for NPTeleperiod
+- SML replace vars in descriptor and line (#21622)
+- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
### Fixed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index d39dc5be3..8053c289e 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -129,13 +129,15 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Berry `classof` extended to class methods [#21615](https://github.com/arendst/Tasmota/issues/21615)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
-- Matter support for bridged Air Quality (#21597)[#21597](https://github.com/arendst/Tasmota/issues/21597)
+- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
### Changed
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
- Allow receive or send using SerialBridge
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
+- SML replace vars in descriptor and line [#21622](https://github.com/arendst/Tasmota/issues/21622)
+- NeoPool using temperature as only frequently changing value for NPTeleperiod [#21628](https://github.com/arendst/Tasmota/issues/21628)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
From 75c47b6948bc8028a9bd661a7eaafdc3d6675000 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 14 Jun 2024 11:23:03 +0200
Subject: [PATCH 054/252] Extend command ``SetOption147 1`` to disable publish
of IRReceived MQTT messages (#21574)
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
tasmota/include/tasmota_types.h | 2 +-
tasmota/tasmota_support/settings.ino | 2 +-
tasmota/tasmota_xdrv_driver/xdrv_05_irremote.ino | 6 +++++-
tasmota/tasmota_xdrv_driver/xdrv_05_irremote_full.ino | 6 +++++-
tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino | 3 +--
7 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf6c3f32e..c614b47cc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
### Added
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Berry `classof` extended to class methods (#21615)
+- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 8053c289e..6d2fd35b1 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -123,6 +123,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Added
- Support for QMP6988 temperature and pressure sensor
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
+- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages [#21574](https://github.com/arendst/Tasmota/issues/21574)
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h
index df628c1d4..cd5325aff 100755
--- a/tasmota/include/tasmota_types.h
+++ b/tasmota/include/tasmota_types.h
@@ -180,7 +180,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
uint32_t data; // Allow bit manipulation using SetOption
struct { // SetOption146 .. SetOption177
uint32_t use_esp32_temperature : 1; // bit 0 (v12.1.1.1) - SetOption146 - (ESP32) Show ESP32 internal temperature sensor
- uint32_t mqtt_disable_sserialrec : 1; // bit 1 (v12.1.1.2) - SetOption147 - (MQTT) Disable publish SSerialReceived MQTT messages, you must use event trigger rules instead.
+ uint32_t mqtt_disable_publish : 1; // bit 1 (v12.1.1.2) - SetOption147 - (MQTT) Disable publish SSerialReceived/IRReceived MQTT messages, you must use event trigger rules instead.
uint32_t artnet_autorun : 1; // bit 2 (v12.2.0.4) - SetOption148 - (Light) start DMX ArtNet at boot, listen to UDP port as soon as network is up
uint32_t dns_ipv6_priority : 1; // bit 3 (v12.2.0.6) - SetOption149 - (Wifi) prefer IPv6 DNS resolution to IPv4 address when available. Requires `#define USE_IPV6`
uint32_t no_voltage_common : 1; // bit 4 (v12.3.1.5) - SetOption150 - (Energy) Force no voltage/frequency common
diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino
index e3b2e144c..3a77bfda0 100644
--- a/tasmota/tasmota_support/settings.ino
+++ b/tasmota/tasmota_support/settings.ino
@@ -1137,7 +1137,7 @@ void SettingsDefaultSet2(void) {
flag5.mqtt_status_retain |= MQTT_STATUS_RETAIN;
flag5.mqtt_switches |= MQTT_SWITCHES;
flag5.mqtt_persistent |= ~MQTT_CLEAN_SESSION;
- flag6.mqtt_disable_sserialrec |= MQTT_DISABLE_SSERIALRECEIVED;
+ flag6.mqtt_disable_publish |= MQTT_DISABLE_SSERIALRECEIVED;
flag6.mqtt_disable_modbus |= MQTT_DISABLE_MODBUSRECEIVED;
// flag.mqtt_serial |= 0;
flag.device_index_enable |= MQTT_POWER_FORMAT;
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_05_irremote.ino b/tasmota/tasmota_xdrv_driver/xdrv_05_irremote.ino
index 271a34b9d..c64cfa5e9 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_05_irremote.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_05_irremote.ino
@@ -296,7 +296,11 @@ void IrReceiveCheck(void)
}
ResponseJsonEndEnd();
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_IRRECEIVED));
+ if (Settings->flag6.mqtt_disable_publish ) { // SetOption147 - If it is activated, Tasmota will not publish IRReceived MQTT messages, but it will proccess event trigger rules
+ XdrvRulesProcess(0);
+ } else {
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_IRRECEIVED));
+ }
#ifdef USE_DOMOTICZ
if (iridx) {
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_05_irremote_full.ino b/tasmota/tasmota_xdrv_driver/xdrv_05_irremote_full.ino
index e0f6da521..5b761eb73 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_05_irremote_full.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_05_irremote_full.ino
@@ -375,7 +375,11 @@ void IrReceiveCheck(void) {
}
ResponseJsonEndEnd();
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_IRRECEIVED));
+ if (Settings->flag6.mqtt_disable_publish ) { // SetOption147 - If it is activated, Tasmota will not publish IRReceived MQTT messages, but it will proccess event trigger rules
+ XdrvRulesProcess(0);
+ } else {
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_IRRECEIVED));
+ }
}
irrecv->resume();
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
index b4462e174..938194fc2 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_08_serial_bridge.ino
@@ -205,8 +205,7 @@ void SerialBridgeInput(void) {
ResponseAppend_P(PSTR("\""));
}
ResponseJsonEnd();
-
- if (Settings->flag6.mqtt_disable_sserialrec ) { // SetOption147 If it is activated, Tasmota will not publish SSerialReceived MQTT messages, but it will proccess event trigger rules
+ if (Settings->flag6.mqtt_disable_publish ) { // SetOption147 - If it is activated, Tasmota will not publish SSerialReceived MQTT messages, but it will proccess event trigger rules
XdrvRulesProcess(0);
} else {
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_TELE, PSTR(D_JSON_SSERIALRECEIVED));
From 7cb8c0259dcb56d3233a3b786e4ffbc3d167775b Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Fri, 14 Jun 2024 18:54:27 +0200
Subject: [PATCH 055/252] Matter support for Rain sensor (#21633)
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 12 +-
.../src/embedded/Matter_Plugin_0.be | 12 +-
.../Matter_Plugin_2_Sensor_Boolean.be | 104 ++
.../Matter_Plugin_2_Sensor_Waterleak.be | 157 --
...t.be => Matter_Plugin_3_Sensor_Contact.be} | 77 +-
...be => Matter_Plugin_3_Sensor_Occupancy.be} | 79 +-
...Off.be => Matter_Plugin_3_Sensor_OnOff.be} | 51 +-
.../embedded/Matter_Plugin_3_Sensor_Rain.be | 105 ++
.../Matter_Plugin_3_Sensor_Waterleak.be | 90 +
.../Matter_Plugin_8_Bridge_Sensor_Rain.be | 32 +
.../Matter_Plugin_9_Virt_Sensor_Rain.be | 34 +
.../Matter_Plugin_9_Virt_Sensor_Waterleak.be | 4 +-
.../berry_matter/src/embedded/Matter_UI.be | 6 +-
.../src/solidify/solidified_Matter_Plugin_0.h | 1505 ++++++++---------
...olidified_Matter_Plugin_2_Sensor_Boolean.h | 301 ++++
...idified_Matter_Plugin_2_Sensor_Waterleak.h | 594 -------
...lidified_Matter_Plugin_3_Sensor_Contact.h} | 434 ++---
...dified_Matter_Plugin_3_Sensor_Occupancy.h} | 436 ++---
...solidified_Matter_Plugin_3_Sensor_OnOff.h} | 218 +--
.../solidified_Matter_Plugin_3_Sensor_Rain.h | 358 ++++
...idified_Matter_Plugin_3_Sensor_Waterleak.h | 273 +++
...ified_Matter_Plugin_8_Bridge_Sensor_Rain.h | 26 +
...idified_Matter_Plugin_9_Virt_Sensor_Rain.h | 27 +
...ed_Matter_Plugin_9_Virt_Sensor_Waterleak.h | 12 +-
.../src/solidify/solidified_Matter_UI.h | 4 +-
.../solidify/solidified_Matter_zz_Device.h | 91 +-
27 files changed, 2455 insertions(+), 2588 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Boolean.be
delete mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_Sensor_Contact.be => Matter_Plugin_3_Sensor_Contact.be} (56%)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_Sensor_Occupancy.be => Matter_Plugin_3_Sensor_Occupancy.be} (56%)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_Sensor_OnOff.be => Matter_Plugin_3_Sensor_OnOff.be} (60%)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Rain.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Boolean.h
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_2_Sensor_Contact.h => solidified_Matter_Plugin_3_Sensor_Contact.h} (55%)
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_2_Sensor_Occupancy.h => solidified_Matter_Plugin_3_Sensor_Occupancy.h} (56%)
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Plugin_2_Sensor_OnOff.h => solidified_Matter_Plugin_3_Sensor_OnOff.h} (55%)
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Rain.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Rain.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c614b47cc..4052438f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Berry `classof` extended to class methods (#21615)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
+- Matter support for Rain sensor
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index e7f3f4404..a641cad33 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -252,12 +252,15 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Illuminance.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Humidity.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Humidity.h"
-#include "solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h"
-#include "solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h"
-#include "solidify/solidified_Matter_Plugin_2_Sensor_Contact.h"
-#include "solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h"
+#include "solidify/solidified_Matter_Plugin_2_Sensor_Boolean.h"
+#include "solidify/solidified_Matter_Plugin_3_Sensor_Occupancy.h"
+#include "solidify/solidified_Matter_Plugin_3_Sensor_OnOff.h"
+#include "solidify/solidified_Matter_Plugin_3_Sensor_Contact.h"
+#include "solidify/solidified_Matter_Plugin_3_Sensor_Rain.h"
+#include "solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Occupancy.h"
+#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_8_Bridge_OnOff.h"
#include "solidify/solidified_Matter_Plugin_8_Bridge_Light0.h"
@@ -272,6 +275,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Flow.h"
#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Air_Quality.h"
+#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Rain.h"
#include "solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_z_All.h"
#include "solidify/solidified_Matter_zz_Device.h"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 28716b38a..748eb2d96 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -116,7 +116,7 @@ class Matter_Plugin
def init(device, endpoint, config)
self.device = device
self.endpoint = endpoint
- self.clusters = self.consolidate_clusters()
+ self.clusters = self.get_clusters()
self.parse_configuration(config)
self.node_label = config.find("name", "")
end
@@ -179,11 +179,11 @@ class Matter_Plugin
end
#############################################################
- # consolidate_clusters
+ # get_clusters
#
# Build a consolidated map of all the `CLUSTERS` static vars
# from the inheritance hierarchy
- def consolidate_clusters()
+ def get_clusters()
return self.CLUSTERS
# def real_super(o) return super(o) end # enclose `super()` in a static function to disable special behavior for super in instances
# var ret = {}
@@ -257,12 +257,6 @@ class Matter_Plugin
return false
end
- #############################################################
- # Does it handle this endpoint and this cluster
- def has(cluster, endpoint)
- return self.clusters.contains(cluster) && self.endpoints.find(endpoint) != nil
- end
-
def set_name(n)
if n != self.node_label
self.attribute_updated(0x0039, 0x0005)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Boolean.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Boolean.be
new file mode 100644
index 000000000..06d65baa8
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Boolean.be
@@ -0,0 +1,104 @@
+#
+# Matter_Plugin_Sensor_Boolean.be - implements the behavior for an abstract boolean sensor - to be inherited
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Sensor_Boolean,weak
+
+class Matter_Plugin_Sensor_Boolean : Matter_Plugin_Device
+ # static var TYPE = "" # name of the plug-in in json
+ # static var DISPLAY_NAME = "" # display name of the plug-in
+ static var ARG = "switch" # additional argument name (or empty if none)
+ static var ARG_HINT = "Switch number"
+ static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 750 # update every 750ms
+
+ var tasmota_switch_index # Switch number in Tasmota (one based)
+ var shadow_bool_value
+
+ #############################################################
+ # Constructor
+ def init(device, endpoint, config)
+ super(self).init(device, endpoint, config)
+ self.shadow_bool_value = false
+ end
+
+ #############################################################
+ # parse_configuration
+ #
+ # Parse configuration map
+ def parse_configuration(config)
+ self.tasmota_switch_index = int(config.find(self.ARG #-'switch'-#, 1))
+ if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
+ end
+
+ #############################################################
+ # Update shadow
+ #
+ def update_shadow()
+ super(self).update_shadow()
+ if !self.VIRTUAL
+ var switch_str = "Switch" + str(self.tasmota_switch_index)
+
+ var j = tasmota.cmd("Status 10", true)
+ if j != nil j = j.find("StatusSNS") end
+ if j != nil && j.contains(switch_str)
+ var state = (j.find(switch_str) == "ON")
+
+ if (self.shadow_bool_value != state)
+ self.value_updated()
+ end
+ self.shadow_bool_value = state
+ end
+ end
+ end
+
+ #############################################################
+ # value_updated
+ #
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated()
+ end
+
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # Stub for updating shadow values (local copies of what we published to the Matter gateway)
+ #
+ # This call is synnchronous and blocking.
+ def parse_status(data, index)
+ if index == 10 # Status 10
+ var state = false
+
+ state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
+
+ if self.shadow_bool_value != nil && self.shadow_bool_value != bool(state)
+ self.value_updated()
+ end
+ self.shadow_bool_value = state
+ end
+ end
+ #############################################################
+ #############################################################
+end
+matter.Plugin_Sensor_Boolean = Matter_Plugin_Sensor_Boolean
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
deleted file mode 100644
index 680ad5b91..000000000
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Waterleak.be
+++ /dev/null
@@ -1,157 +0,0 @@
-#
-# Matter_Plugin_2_Sensor_Waterleak.be - implements the behavior for a Water leak Sensor
-#
-# Copyright (C) 2024 Stephan Hadinger & 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 .
-#
-
-import matter
-
-# Matter plug-in for core behavior
-
-#@ solidify:Matter_Plugin_Sensor_Waterleak,weak
-
-class Matter_Plugin_Sensor_Waterleak : Matter_Plugin_Device
- static var TYPE = "waterleak" # name of the plug-in in json
- static var DISPLAY_NAME = "Waterleak" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 750 # update every 750ms
- static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Waterleak")
- static var CLUSTERS = matter.consolidate_clusters(_class, {
- 0x0045: [0], # Boolean State p.70 - no writable
- })
- # MATTER_WATER_LEAK_DETECTOR_DEVICE_TYPE_ID 0x0043
- static var TYPES = { 0x0043: 1 } # Waterleak Sensor, rev 1
-
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_leak
-
- #############################################################
- # Constructor
- def init(device, endpoint, config)
- super(self).init(device, endpoint, config)
- self.shadow_leak = false
- end
-
- #############################################################
- # parse_configuration
- #
- # Parse configuration map
- def parse_configuration(config)
- self.tasmota_switch_index = int(config.find(self.ARG #-'switch'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Update shadow
- #
- def update_shadow()
- super(self).update_shadow()
- if !self.VIRTUAL
- var switch_str = "Switch" + str(self.tasmota_switch_index)
-
- var j = tasmota.cmd("Status 10", true)
- if j != nil j = j.find("StatusSNS") end
- if j != nil && j.contains(switch_str)
- var state = (j.find(switch_str) == "ON")
-
- if (self.shadow_leak != state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_leak = state
- end
- end
- end
-
- #############################################################
- # read an attribute
- #
- def read_attribute(session, ctx, tlv_solo)
- var TLV = matter.TLV
- var cluster = ctx.cluster
- var attribute = ctx.attribute
-
- # ====================================================================================================
- if cluster == 0x0045 # ========== Boolean State ==========
- if attribute == 0x0000 # ---------- StateValue / bool ----------
- return tlv_solo.set(TLV.BOOL, self.shadow_leak)
- end
-
- end
- return super(self).read_attribute(session, ctx, tlv_solo)
- end
-
- #############################################################
- # update_virtual
- #
- # Update internal state for virtual devices
- def update_virtual(payload_json)
- var val_onoff = payload_json.find("Waterleak")
- if val_onoff != nil
- val_onoff = bool(val_onoff)
- if self.shadow_leak != val_onoff
- self.attribute_updated(0x0045, 0x0000)
- self.shadow_leak = val_onoff
- end
- end
- super(self).update_virtual(payload_json)
- end
-
- #############################################################
- # For Bridge devices
- #############################################################
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_status(data, index)
- if index == 10 # Status 10
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_leak != nil && self.shadow_leak != bool(state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_leak = state
- end
- end
-
- #############################################################
- # web_values
- #
- # Show values of the remote device as HTML
- def web_values()
- import webserver
- self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Waterleak%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_leak)))
- end
-
- # Show prefix before web value
- def web_values_prefix()
- import webserver
- var name = self.get_name()
- if !name
- name = "Switch" + str(self.tasmota_switch_index)
- end
- webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
- end
- #############################################################
- #############################################################
-
-end
-matter.Plugin_Sensor_Waterleak = Matter_Plugin_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Contact.be
similarity index 56%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Contact.be
index 9057ace50..abb2fa7f7 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Contact.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Contact.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Sensor_Contact.be - implements the behavior for a Contact Sensor
+# Matter_Plugin_3_Sensor_Contact.be - implements the behavior for a Contact Sensor
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -23,57 +23,29 @@ import matter
#@ solidify:Matter_Plugin_Sensor_Contact,weak
-class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
+class Matter_Plugin_Sensor_Contact : Matter_Plugin_Sensor_Boolean
static var TYPE = "contact" # name of the plug-in in json
static var DISPLAY_NAME = "Contact" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 750 # update every 750ms
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ # static var UPDATE_TIME = 750 # update every 750ms
static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Contact")
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0045: [0], # Boolean State p.70 - no writable
})
static var TYPES = { 0x0015: 1 } # Contact Sensor, rev 1
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_contact
+ # var tasmota_switch_index # Switch number in Tasmota (one based)
+ # var shadow_bool_value
#############################################################
- # Constructor
- def init(device, endpoint, config)
- super(self).init(device, endpoint, config)
- self.shadow_contact = false
- end
-
- #############################################################
- # parse_configuration
+ # value_updated
#
- # Parse configuration map
- def parse_configuration(config)
- self.tasmota_switch_index = int(config.find(self.ARG #-'switch'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Update shadow
- #
- def update_shadow()
- super(self).update_shadow()
- if !self.VIRTUAL
- var switch_str = "Switch" + str(self.tasmota_switch_index)
-
- var j = tasmota.cmd("Status 10", true)
- if j != nil j = j.find("StatusSNS") end
- if j != nil && j.contains(switch_str)
- var state = (j.find(switch_str) == "ON")
-
- if (self.shadow_contact != state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_contact = state
- end
- end
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated()
+ self.attribute_updated(0x0045, 0x0000)
end
#############################################################
@@ -87,7 +59,7 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x0045 # ========== Boolean State ==========
if attribute == 0x0000 # ---------- StateValue / bool ----------
- return tlv_solo.set_or_nil(TLV.BOOL, self.shadow_contact)
+ return tlv_solo.set_or_nil(TLV.BOOL, self.shadow_bool_value)
end
end
@@ -99,30 +71,13 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
#
# Update internal state for virtual devices
def update_virtual(payload)
- self.shadow_contact = self._parse_update_virtual(payload, "Contact", self.shadow_contact, bool, 0x0045, 0x0000)
+ self.shadow_bool_value = self._parse_update_virtual(payload, "Contact", self.shadow_bool_value, bool, 0x0045, 0x0000)
super(self).update_virtual(payload)
end
#############################################################
# For Bridge devices
#############################################################
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_status(data, index)
- if index == 10 # Status 10
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_contact != nil && self.shadow_contact != bool(state)
- self.attribute_updated(0x0045, 0x0000)
- end
- self.shadow_contact = state
- end
- end
-
#############################################################
# web_values
#
@@ -130,7 +85,7 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
def web_values()
import webserver
self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_contact)))
+ webserver.content_send(format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_bool_value)))
end
# Show prefix before web value
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Occupancy.be
similarity index 56%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Occupancy.be
index f786bc82c..c30193c9e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_Occupancy.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Occupancy.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Sensor_Occupancy.be - implements the behavior for a Occupany Switch
+# Matter_Plugin_3_Sensor_Occupancy.be - implements the behavior for a Occupany Switch
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -23,57 +23,29 @@ import matter
#@ solidify:Matter_Plugin_Sensor_Occupancy,weak
-class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
+class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Sensor_Boolean
static var TYPE = "occupancy" # name of the plug-in in json
static var DISPLAY_NAME = "Occupancy" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 750 # update every 750ms
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ # static var UPDATE_TIME = 750 # update every 750ms
static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Occupancy")
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0406: [0,1,2], # Occupancy Sensing p.105 - no writable
})
static var TYPES = { 0x0107: 2 } # Occupancy Sensor, rev 2
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_occupancy
+ # var tasmota_switch_index # Switch number in Tasmota (one based)
+ # var shadow_bool_value
#############################################################
- # Constructor
- def init(device, endpoint, config)
- super(self).init(device, endpoint, config)
- self.shadow_occupancy = false
- end
-
- #############################################################
- # parse_configuration
+ # value_updated
#
- # Parse configuration map
- def parse_configuration(config)
- self.tasmota_switch_index = int(config.find(self.ARG #-'relay'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Update shadow
- #
- def update_shadow()
- super(self).update_shadow()
- if !self.VIRTUAL
- var switch_str = "Switch" + str(self.tasmota_switch_index)
-
- var j = tasmota.cmd("Status 10", true)
- if j != nil j = j.find("StatusSNS") end
- if j != nil && j.contains(switch_str)
- var state = (j.find(switch_str) == "ON")
-
- if (self.shadow_occupancy != state)
- self.attribute_updated(0x0406, 0x0000)
- end
- self.shadow_occupancy = state
- end
- end
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated()
+ self.attribute_updated(0x0406, 0x0000)
end
#############################################################
@@ -87,7 +59,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
# ====================================================================================================
if cluster == 0x0406 # ========== Occupancy Sensing ==========
if attribute == 0x0000 # ---------- Occupancy / U8 ----------
- return tlv_solo.set_or_nil(TLV.U1, self.shadow_occupancy)
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_bool_value)
elif attribute == 0x0001 # ---------- OccupancySensorType / enum8 ----------
return tlv_solo.set(TLV.U1, 3) # physical contact
elif attribute == 0x0002 # ---------- OccupancySensorTypeBitmap / u8 ----------
@@ -103,30 +75,13 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
#
# Update internal state for virtual devices
def update_virtual(payload)
- self.val_onoff = self._parse_update_virtual(payload, "Occupancy", self.val_onoff, bool, 0x0406, 0x0000)
+ self.shadow_bool_value = self._parse_update_virtual(payload, "Occupancy", self.shadow_bool_value, bool, 0x0406, 0x0000)
super(self).update_virtual(payload)
end
#############################################################
# For Bridge devices
#############################################################
- #############################################################
- # Stub for updating shadow values (local copies of what we published to the Matter gateway)
- #
- # This call is synnchronous and blocking.
- def parse_status(data, index)
- if index == 10 # Status 10
- var state = false
-
- state = (data.find("Switch" + str(self.tasmota_switch_index)) == "ON")
-
- if self.shadow_occupancy != nil && self.shadow_occupancy != bool(state)
- self.attribute_updated(0x0406, 0x0000)
- end
- self.shadow_occupancy = state
- end
- end
-
#############################################################
# web_values
#
@@ -134,7 +89,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
def web_values()
import webserver
self.web_values_prefix() # display '| ' and name if present
- webserver.content_send(format("Occupancy%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_occupancy)))
+ webserver.content_send(format("Occupancy%i %s", self.shadow_bool_value, self.web_value_onoff(self.shadow_occupancy)))
end
# Show prefix before web value
@@ -142,7 +97,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
import webserver
var name = self.get_name()
if !name
- name = "Switch" + str(self.tasmota_switch_index)
+ name = "Switch" + str(self.shadow_bool_value)
end
webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_OnOff.be
similarity index 60%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_OnOff.be
index 21e0c779b..ae736e5bd 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_OnOff.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_OnOff.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Sensor_OnOff.be - implements the behavior for a Occupany Switch
+# Matter_Plugin_3_Sensor_OnOff.be - implements the behavior for a Occupany Switch
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -21,49 +21,28 @@
#@ solidify:Matter_Plugin_Sensor_OnOff,weak
-class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
+class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Sensor_Boolean
static var TYPE = "onoff" # name of the plug-in in json
static var DISPLAY_NAME = "OnOff Sensor" # display name of the plug-in
- static var ARG = "switch" # additional argument name (or empty if none)
- static var ARG_HINT = "Switch number"
- static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 750 # update every 750ms
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ # static var UPDATE_TIME = 750 # update every 750ms
static var CLUSTERS = matter.consolidate_clusters(_class, {
0x0006: [0], # On/Off 1.5 p.48
})
static var TYPES = { 0x0850: 2 } # OnOff Sensor, rev 2
- var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_onoff
+ # var tasmota_switch_index # Switch number in Tasmota (one based)
+ # var shadow_bool_value
#############################################################
- # parse_configuration
+ # value_updated
#
- # Parse configuration map
- def parse_configuration(config)
- self.tasmota_switch_index = int(config.find(self.ARG #-'relay'-#, 1))
- if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
- end
-
- #############################################################
- # Update shadow
- #
- def update_shadow()
- super(self).update_shadow()
- if !self.VIRTUAL
- var switch_str = "Switch" + str(self.tasmota_switch_index)
-
- var j = tasmota.cmd("Status 10", true)
- if j != nil j = j.find("StatusSNS") end
- if j != nil && j.contains(switch_str)
- var state = (j.find(switch_str) == "ON")
-
- if (self.shadow_onoff != state)
- self.attribute_updated(0x0006, 0x0000)
- end
- self.shadow_onoff = state
- end
- end
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated()
+ self.attribute_updated(0x0006, 0x0000)
end
#############################################################
@@ -78,7 +57,7 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
if cluster == 0x0006 # ========== On/Off 1.5 p.48 ==========
self.update_shadow_lazy()
if attribute == 0x0000 # ---------- OnOff / bool ----------
- return tlv_solo.set(TLV.BOOL, self.shadow_onoff)
+ return tlv_solo.set(TLV.BOOL, self.shadow_bool_value)
end
end
@@ -93,7 +72,7 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
#
# Override the default behavior to use the key `OnOff` instead of `Power`
def append_state_json()
- return f',"OnOff":{int(self.shadow_onoff)}'
+ return f',"OnOff":{int(self.shadow_bool_value)}'
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Rain.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Rain.be
new file mode 100644
index 000000000..970be52b8
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Rain.be
@@ -0,0 +1,105 @@
+#
+# Matter_Plugin_3_Sensor_Rain.be - implements the behavior for a Rain Sensor
+#
+# Copyright (C) 2024 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Sensor_Rain,weak
+
+class Matter_Plugin_Sensor_Rain : Matter_Plugin_Sensor_Boolean
+ static var TYPE = "rain" # name of the plug-in in json
+ static var DISPLAY_NAME = "Rain" # display name of the plug-in
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ # static var UPDATE_TIME = 750 # update every 750ms
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Rain")
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ 0x0045: [0], # Boolean State p.70 - no writable
+ })
+ # MATTER_WATER_LEAK_DETECTOR_DEVICE_TYPE_ID 0x0043
+ static var TYPES = { 0x0044: 1 } # Rain Sensor, rev 1
+
+ # var tasmota_switch_index # Switch number in Tasmota (one based)
+ # var shadow_bool_value
+
+ #############################################################
+ # value_updated
+ #
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated()
+ self.attribute_updated(0x0045, 0x0000)
+ end
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute(session, ctx, tlv_solo)
+ var TLV = matter.TLV
+ var cluster = ctx.cluster
+ var attribute = ctx.attribute
+
+ # ====================================================================================================
+ if cluster == 0x0045 # ========== Boolean State ==========
+ if attribute == 0x0000 # ---------- StateValue / bool ----------
+ return tlv_solo.set(TLV.BOOL, self.shadow_bool_value)
+ end
+
+ end
+ return super(self).read_attribute(session, ctx, tlv_solo)
+ end
+
+ #############################################################
+ # update_virtual
+ #
+ # Update internal state for virtual devices
+ def update_virtual(payload)
+ self.shadow_bool_value = self._parse_update_virtual(payload, "Rain", self.shadow_bool_value, bool, 0x0045, 0x0000)
+ super(self).update_virtual(payload)
+ end
+
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("Rain%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_bool_value)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Switch" + str(self.tasmota_switch_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
+end
+matter.Plugin_Sensor_Rain = Matter_Plugin_Sensor_Rain
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
new file mode 100644
index 000000000..3b8242756
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
@@ -0,0 +1,90 @@
+#
+# Matter_Plugin_3_Sensor_Waterleak.be - implements the behavior for a Water leak Sensor
+#
+# Copyright (C) 2024 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Sensor_Waterleak,weak
+
+class Matter_Plugin_Sensor_Waterleak : Matter_Plugin_Sensor_Boolean
+ static var TYPE = "waterleak" # name of the plug-in in json
+ static var DISPLAY_NAME = "Waterleak" # display name of the plug-in
+ # static var ARG = "switch" # additional argument name (or empty if none)
+ # static var ARG_HINT = "Switch number"
+ # static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ # static var UPDATE_TIME = 750 # update every 750ms
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "Waterleak")
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ 0x0045: [0], # Boolean State p.70 - no writable
+ })
+ # MATTER_WATER_LEAK_DETECTOR_DEVICE_TYPE_ID 0x0043
+ static var TYPES = { 0x0043: 1 } # Waterleak Sensor, rev 1
+
+ # var tasmota_switch_index # Switch number in Tasmota (one based)
+ # var shadow_bool_value
+
+ #############################################################
+ # value_updated
+ #
+ # This is triggered when a new value is changed, for subscription
+ # This method is meant to be overloaded and maximize shared code
+ def value_updated = Matter_Plugin_Sensor_Rain.value_updated
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute = Matter_Plugin_Sensor_Rain.read_attribute
+
+ #############################################################
+ # update_virtual
+ #
+ # Update internal state for virtual devices
+ def update_virtual(payload)
+ self.shadow_bool_value = self._parse_update_virtual(payload, "Waterleak", self.shadow_bool_value, bool, 0x0045, 0x0000)
+ super(self).update_virtual(payload)
+ end
+
+ #############################################################
+ # For Bridge devices
+ #############################################################
+ #############################################################
+ # web_values
+ #
+ # Show values of the remote device as HTML
+ def web_values()
+ import webserver
+ self.web_values_prefix() # display '| ' and name if present
+ webserver.content_send(format("Waterleak%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_bool_value)))
+ end
+
+ # Show prefix before web value
+ def web_values_prefix()
+ import webserver
+ var name = self.get_name()
+ if !name
+ name = "Switch" + str(self.tasmota_switch_index)
+ end
+ webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
+ end
+ #############################################################
+ #############################################################
+
+end
+matter.Plugin_Sensor_Waterleak = Matter_Plugin_Sensor_Waterleak
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
new file mode 100644
index 000000000..b9a275eb1
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
@@ -0,0 +1,32 @@
+#
+# Matter_Plugin_Bridge_8_Sensor_Rain.be - implements Rain Sensor via HTTP to Tasmota
+#
+# Copyright (C) 2024 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Bridge_Sensor_Rain,weak
+
+class Matter_Plugin_Bridge_Sensor_Rain : Matter_Plugin_Sensor_Rain
+ static var BRIDGE = true
+ static var TYPE = "http_rain" # name of the plug-in in json
+ static var UPDATE_TIME = 5000 # update every 5s
+ static var UPDATE_CMD = "Status 10" # command to send for updates
+end
+matter.Plugin_Bridge_Sensor_Rain = Matter_Plugin_Bridge_Sensor_Rain
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be
new file mode 100644
index 000000000..5e811fae0
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Rain.be
@@ -0,0 +1,34 @@
+
+#
+# Matter_Plugin_9_Virt_Sensor_Rain.be - implements the behavior for a Virtual Rain Sensor
+#
+# Copyright (C) 2024 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Virt_Sensor_Rain,weak
+
+class Matter_Plugin_Virt_Sensor_Rain : Matter_Plugin_Virt_Sensor_Rain
+ static var TYPE = "v_rain" # name of the plug-in in json
+ static var DISPLAY_NAME = "v.Rain" # display name of the plug-in
+ static var ARG = "" # no arg for virtual device
+ static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
+ static var VIRTUAL = true # virtual device
+end
+matter.Plugin_Virt_Sensor_Rain = Matter_Plugin_Virt_Sensor_Rain
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
index 63573b214..264435193 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Sensor_Waterleak.be
@@ -22,9 +22,9 @@ import matter
# Matter plug-in for core behavior
-#@ solidify:Matter_Plugin_Virt_Sensor_Waterleak ,weak
+#@ solidify:Matter_Plugin_Virt_Sensor_Waterleak,weak
-class Matter_Plugin_Virt_Sensor_Waterleak : Matter_Plugin_Virt_Sensor_Waterleak
+class Matter_Plugin_Virt_Sensor_Waterleak : Matter_Plugin_Virt_Sensor_Waterleak
static var TYPE = "v_waterleak" # name of the plug-in in json
static var DISPLAY_NAME = "v.Waterleak" # display name of the plug-in
static var ARG = "" # no arg for virtual device
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index 5a80aeba9..29bf665fa 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -33,14 +33,14 @@ import matter
#################################################################################
class Matter_UI
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt"
- "|temperature|pressure|illuminance|humidity|occupancy|onoff|contact|flow|waterleak"
+ "|temperature|pressure|illuminance|humidity|occupancy|onoff|contact|flow|rain|waterleak"
"|airquality"
"|-virtual|v_relay|v_light0|v_light1|v_light2|v_light3"
- "|v_temp|v_pressure|v_illuminance|v_humidity|v_occupancy|v_contact|v_flow|v_waterleak"
+ "|v_temp|v_pressure|v_illuminance|v_humidity|v_occupancy|v_contact|v_flow|v_rain|v_waterleak"
"|v_airquality"
static var _CLASSES_TYPES2= "|http_relay|http_light0|http_light1|http_light2|http_light3"
"|http_temperature|http_pressure|http_illuminance|http_humidity"
- "|http_occupancy|http_contact|http_flow|http_waterleak"
+ "|http_occupancy|http_contact|http_flow|http_rain|http_waterleak"
"|http_airquality"
var device
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 4321835ea..6fed7984d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -7,10 +7,10 @@
extern const bclass be_class_Matter_Plugin;
/********************************************************************
-** Solidified function: invoke_request
+** Solidified function: write_attribute
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_invoke_request, /* name */
+be_local_closure(class_Matter_Plugin_write_attribute, /* name */
be_nested_proto(
5, /* nstack */
4, /* argc */
@@ -21,7 +21,7 @@ be_local_closure(class_Matter_Plugin_invoke_request, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(invoke_request),
+ be_str_weak(write_attribute),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x4C100000, // 0000 LDNIL R4
@@ -32,6 +32,33 @@ be_local_closure(class_Matter_Plugin_invoke_request, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: append_state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_append_state_json, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ }),
+ be_str_weak(append_state_json),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80060000, // 0000 RET 1 K0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: state_json
********************************************************************/
@@ -90,6 +117,176 @@ be_local_closure(class_Matter_Plugin_state_json, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: timed_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_timed_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(timed_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(get_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_virtual, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ui_conf_to_string
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(ui_conf_to_string),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x780E0006, // 0002 JMPF R3 #000A
+ 0x60100008, // 0003 GETGBL R4 G8
+ 0x8C140302, // 0004 GETMET R5 R1 K2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x58200003, // 0006 LDCONST R8 K3
+ 0x7C140600, // 0007 CALL R5 3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x70020000, // 0009 JMP #000B
+ 0x58100003, // 000A LDCONST R4 K3
+ 0x80040800, // 000B RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: ack_request
********************************************************************/
@@ -134,25 +331,112 @@ be_local_closure(class_Matter_Plugin_ack_request, /* name */
/********************************************************************
-** Solidified function: write_attribute
+** Solidified function: get_cluster_list_sorted
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_write_attribute, /* name */
+be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(k2l),
+ /* K2 */ be_nested_str_weak(clusters),
+ }),
+ be_str_weak(get_cluster_list_sorted),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: contains_cluster
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
be_nested_proto(
5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(contains),
+ }),
+ be_str_weak(contains_cluster),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_init, /* name */
+ be_nested_proto(
+ 8, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(write_attribute),
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(clusters),
+ /* K3 */ be_nested_str_weak(get_clusters),
+ /* K4 */ be_nested_str_weak(parse_configuration),
+ /* K5 */ be_nested_str_weak(node_label),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_nested_str_weak(name),
+ /* K8 */ be_nested_str_weak(),
+ }),
+ be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
+ ( &(const binstruction[14]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x8C100103, // 0002 GETMET R4 R0 K3
+ 0x7C100200, // 0003 CALL R4 1
+ 0x90020404, // 0004 SETMBR R0 K2 R4
+ 0x8C100104, // 0005 GETMET R4 R0 K4
+ 0x5C180600, // 0006 MOVE R6 R3
+ 0x7C100400, // 0007 CALL R4 2
+ 0x8C100706, // 0008 GETMET R4 R3 K6
+ 0x58180007, // 0009 LDCONST R6 K7
+ 0x581C0008, // 000A LDCONST R7 K8
+ 0x7C100600, // 000B CALL R4 3
+ 0x90020A04, // 000C SETMBR R0 K5 R4
+ 0x80000000, // 000D RET 0
})
)
);
@@ -160,54 +444,37 @@ be_local_closure(class_Matter_Plugin_write_attribute, /* name */
/********************************************************************
-** Solidified function: consolidate_update_commands
+** Solidified function: ui_string_to_conf
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
+be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
+ 8, /* nstack */
+ 3, /* argc */
+ 4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(ARG_TYPE),
}),
- be_str_weak(consolidate_update_commands),
+ be_str_weak(ui_string_to_conf),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: append_state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_append_state_json, /* name */
- be_nested_proto(
- 1, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- }),
- be_str_weak(append_state_json),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80060000, // 0000 RET 1 K0
+ ( &(const binstruction[10]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x780A0004, // 0003 JMPF R2 #0009
+ 0x78120003, // 0004 JMPF R4 #0009
+ 0x5C180A00, // 0005 MOVE R6 R5
+ 0x5C1C0400, // 0006 MOVE R7 R2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x98040806, // 0008 SETIDX R1 R4 R6
+ 0x80040200, // 0009 RET 1 R1
})
)
);
@@ -278,190 +545,13 @@ be_local_closure(class_Matter_Plugin_every_250ms, /* name */
/********************************************************************
-** Solidified function: has
+** Solidified function: subscribe_event
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_has, /* name */
+be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
be_nested_proto(
6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(endpoints),
- /* K3 */ be_nested_str_weak(find),
- }),
- be_str_weak(has),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x780E0006, // 0004 JMPF R3 #000C
- 0x880C0102, // 0005 GETMBR R3 R0 K2
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x5C140400, // 0007 MOVE R5 R2
- 0x7C0C0400, // 0008 CALL R3 2
- 0x4C100000, // 0009 LDNIL R4
- 0x200C0604, // 000A NE R3 R3 R4
- 0x740E0000, // 000B JMPT R3 #000D
- 0x500C0001, // 000C LDBOOL R3 0 1
- 0x500C0200, // 000D LDBOOL R3 1 0
- 0x80040600, // 000E RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow_lazy
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow_lazy),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x88080500, // 0002 GETMBR R2 R2 K0
- 0x20040202, // 0003 NE R1 R1 R2
- 0x78060004, // 0004 JMPF R1 #000A
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x7C040200, // 0006 CALL R1 1
- 0x88040101, // 0007 GETMBR R1 R0 K1
- 0x88040300, // 0008 GETMBR R1 R1 K0
- 0x90020001, // 0009 SETMBR R0 K0 R1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_name
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_set_name, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
- /* K1 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(set_name),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0003, // 0002 JMPF R2 #0007
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x54120038, // 0004 LDINT R4 57
- 0x54160004, // 0005 LDINT R5 5
- 0x7C080600, // 0006 CALL R2 3
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040008, // 0000 GETGBL R1 G8
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x88040300, // 0001 GETMBR R1 R1 K0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: timed_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_timed_request, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
+ 5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -469,11 +559,11 @@ be_local_closure(class_Matter_Plugin_timed_request, /* name */
&be_class_Matter_Plugin,
0, /* has constants */
NULL, /* no const */
- be_str_weak(timed_request),
+ be_str_weak(subscribe_event),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
})
)
);
@@ -481,251 +571,33 @@ be_local_closure(class_Matter_Plugin_timed_request, /* name */
/********************************************************************
-** Solidified function: init
+** Solidified function: get_attribute_list
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_init, /* name */
+be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(clusters),
- /* K3 */ be_nested_str_weak(consolidate_clusters),
- /* K4 */ be_nested_str_weak(parse_configuration),
- /* K5 */ be_nested_str_weak(node_label),
- /* K6 */ be_nested_str_weak(find),
- /* K7 */ be_nested_str_weak(name),
- /* K8 */ be_nested_str_weak(),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x8C100103, // 0002 GETMET R4 R0 K3
- 0x7C100200, // 0003 CALL R4 1
- 0x90020404, // 0004 SETMBR R0 K2 R4
- 0x8C100104, // 0005 GETMET R4 R0 K4
- 0x5C180600, // 0006 MOVE R6 R3
- 0x7C100400, // 0007 CALL R4 2
- 0x8C100706, // 0008 GETMET R4 R3 K6
- 0x58180007, // 0009 LDCONST R6 K7
- 0x581C0008, // 000A LDCONST R7 K8
- 0x7C100600, // 000B CALL R4 3
- 0x90020A04, // 000C SETMBR R0 K5 R4
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_local_device
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_is_local_device, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(BRIDGE),
- }),
- be_str_weak(is_local_device),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x50040001, // 0002 LDBOOL R1 0 1
- 0x50040200, // 0003 LDBOOL R1 1 0
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ui_string_to_conf
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(ARG_TYPE),
- }),
- be_str_weak(ui_string_to_conf),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x780A0004, // 0003 JMPF R2 #0009
- 0x78120003, // 0004 JMPF R4 #0009
- 0x5C180A00, // 0005 MOVE R6 R5
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C180200, // 0007 CALL R6 1
- 0x98040806, // 0008 SETIDX R1 R4 R6
- 0x80040200, // 0009 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_cluster_list_sorted
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(k2l),
- /* K2 */ be_nested_str_weak(clusters),
- }),
- be_str_weak(get_cluster_list_sorted),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x7C040400, // 0003 CALL R1 2
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ui_conf_to_string
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(ui_conf_to_string),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x780E0006, // 0002 JMPF R3 #000A
- 0x60100008, // 0003 GETGBL R4 G8
- 0x8C140302, // 0004 GETMET R5 R1 K2
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x58200003, // 0006 LDCONST R8 K3
- 0x7C140600, // 0007 CALL R5 3
- 0x7C100200, // 0008 CALL R4 1
- 0x70020000, // 0009 JMP #000B
- 0x58100003, // 000A LDCONST R4 K3
- 0x80040800, // 000B RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attribute_updated
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(attribute_updated),
- /* K2 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(attribute_updated),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_virtual, /* name */
- be_nested_proto(
- 2, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(update_virtual),
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_attribute_list),
&be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140012, // 0003 GETGBL R5 G18
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
})
)
);
@@ -778,24 +650,27 @@ be_local_closure(class_Matter_Plugin__parse_update_virtual, /* name */
/********************************************************************
-** Solidified function: parse_configuration
+** Solidified function: consolidate_update_commands
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
+be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
be_nested_proto(
2, /* nstack */
- 2, /* argc */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_configuration),
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
+ }),
+ be_str_weak(consolidate_update_commands),
&be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
})
)
);
@@ -803,10 +678,87 @@ be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
/********************************************************************
-** Solidified function: consolidate_clusters
+** Solidified function: subscribe_attribute
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
+be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(subscribe_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: contains_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(contains_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x20100604, // 0005 NE R4 R3 R4
+ 0x7812000C, // 0006 JMPF R4 #0014
+ 0x58100002, // 0007 LDCONST R4 K2
+ 0x6014000C, // 0008 GETGBL R5 G12
+ 0x5C180600, // 0009 MOVE R6 R3
+ 0x7C140200, // 000A CALL R5 1
+ 0x14140805, // 000B LT R5 R4 R5
+ 0x78160006, // 000C JMPF R5 #0014
+ 0x94140604, // 000D GETIDX R5 R3 R4
+ 0x1C140A02, // 000E EQ R5 R5 R2
+ 0x78160001, // 000F JMPF R5 #0012
+ 0x50140200, // 0010 LDBOOL R5 1 0
+ 0x80040A00, // 0011 RET 1 R5
+ 0x00100903, // 0012 ADD R4 R4 K3
+ 0x7001FFF3, // 0013 JMP #0008
+ 0x50100000, // 0014 LDBOOL R4 0 0
+ 0x80040800, // 0015 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_clusters
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_clusters, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -819,7 +771,7 @@ be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_weak(CLUSTERS),
}),
- be_str_weak(consolidate_clusters),
+ be_str_weak(get_clusters),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -830,6 +782,33 @@ be_local_closure(class_Matter_Plugin_consolidate_clusters, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040008, // 0000 GETGBL R1 G8
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: get_name
********************************************************************/
@@ -858,145 +837,6 @@ be_local_closure(class_Matter_Plugin_get_name, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: get_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(get_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: subscribe_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_read_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(read_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_sensors
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_attribute_list
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_attribute_list),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140012, // 0003 GETGBL R5 G18
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: publish_command
********************************************************************/
@@ -1078,63 +918,12 @@ be_local_closure(class_Matter_Plugin_publish_command, /* name */
/********************************************************************
-** Solidified function: contains_attribute
+** Solidified function: set_name
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
+be_local_closure(class_Matter_Plugin_set_name, /* name */
be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_const_int(0),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(contains_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x20100604, // 0005 NE R4 R3 R4
- 0x7812000C, // 0006 JMPF R4 #0014
- 0x58100002, // 0007 LDCONST R4 K2
- 0x6014000C, // 0008 GETGBL R5 G12
- 0x5C180600, // 0009 MOVE R6 R3
- 0x7C140200, // 000A CALL R5 1
- 0x14140805, // 000B LT R5 R4 R5
- 0x78160006, // 000C JMPF R5 #0014
- 0x94140604, // 000D GETIDX R5 R3 R4
- 0x1C140A02, // 000E EQ R5 R5 R2
- 0x78160001, // 000F JMPF R5 #0012
- 0x50140200, // 0010 LDBOOL R5 1 0
- 0x80040A00, // 0011 RET 1 R5
- 0x00100903, // 0012 ADD R4 R4 K3
- 0x7001FFF3, // 0013 JMP #0008
- 0x50100000, // 0014 LDBOOL R4 0 0
- 0x80040800, // 0015 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: contains_cluster
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
- be_nested_proto(
- 5, /* nstack */
+ 6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1143,17 +932,210 @@ be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
+ /* K0 */ be_nested_str_weak(node_label),
+ /* K1 */ be_nested_str_weak(attribute_updated),
}),
- be_str_weak(contains_cluster),
+ be_str_weak(set_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0003, // 0002 JMPF R2 #0007
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x54120038, // 0004 LDINT R4 57
+ 0x54160004, // 0005 LDINT R5 5
+ 0x7C080600, // 0006 CALL R2 3
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow_lazy
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow_lazy),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x88080500, // 0002 GETMBR R2 R2 K0
+ 0x20040202, // 0003 NE R1 R1 R2
+ 0x78060004, // 0004 JMPF R1 #000A
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x7C040200, // 0006 CALL R1 1
+ 0x88040101, // 0007 GETMBR R1 R0 K1
+ 0x88040300, // 0008 GETMBR R1 R1 K0
+ 0x90020001, // 0009 SETMBR R0 K0 R1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_event
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_read_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(read_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040101, // 0000 GETMBR R1 R0 K1
+ 0x88040300, // 0001 GETMBR R1 R1 K0
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: invoke_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_invoke_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K2 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_local_device
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_is_local_device, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ }),
+ be_str_weak(is_local_device),
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x50040001, // 0002 LDBOOL R1 0 1
+ 0x50040200, // 0003 LDBOOL R1 1 0
+ 0x80040200, // 0004 RET 1 R1
})
)
);
@@ -1368,85 +1350,56 @@ be_local_closure(class_Matter_Plugin_read_attribute, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: subscribe_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Plugin
********************************************************************/
be_local_class(Matter_Plugin,
6,
NULL,
- be_nested_map(52,
+ be_nested_map(51,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(subscribe_attribute, 34), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
- { be_const_key_weak(state_json, 38), be_const_closure(class_Matter_Plugin_state_json_closure) },
- { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
- { be_const_key_weak(device, -1), be_const_var(1) },
- { be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
- { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
- { be_const_key_weak(is_local_device, 2), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
- { be_const_key_weak(write_attribute, -1), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
- { be_const_key_weak(BRIDGE, -1), be_const_bool(0) },
+ { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(2,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(258, -1), be_const_int(5) },
+ { be_const_key_int(49, -1), be_const_int(4) },
+ })) ) } )) },
+ { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
+ { be_const_key_weak(state_json, -1), be_const_closure(class_Matter_Plugin_state_json_closure) },
+ { be_const_key_weak(read_attribute, 9), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
+ { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
+ { be_const_key_weak(clusters, -1), be_const_var(3) },
+ { be_const_key_weak(is_local_device, -1), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(CLUSTERS, 51), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(_parse_update_virtual, 2), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
+ { be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
+ { be_const_key_weak(get_endpoint, 19), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak() },
+ { be_const_key_weak(UPDATE_COMMANDS, 47), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
- { be_const_key_weak(every_250ms, 0), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
- { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
+ { be_const_key_weak(ui_string_to_conf, -1), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
+ { be_const_key_weak(every_250ms, 34), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
+ { be_const_key_weak(device, -1), be_const_var(1) },
+ { be_const_key_weak(consolidate_update_commands, 48), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
+ { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
{ be_const_key_weak(get_attribute_list, -1), be_const_closure(class_Matter_Plugin_get_attribute_list_closure) },
- { be_const_key_weak(has, 5), be_const_closure(class_Matter_Plugin_has_closure) },
+ { be_const_key_weak(write_attribute, 10), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
+ { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
+ { be_const_key_weak(read_event, 38), be_const_closure(class_Matter_Plugin_read_event_closure) },
+ { be_const_key_weak(subscribe_attribute, -1), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
+ { be_const_key_weak(contains_cluster, 23), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
+ { be_const_key_weak(get_clusters, -1), be_const_closure(class_Matter_Plugin_get_clusters_closure) },
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin__X3Clambda_X3E_closure) },
- { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
- { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
- { be_const_key_weak(endpoint, 6), be_const_var(2) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
- { be_const_key_weak(clusters, -1), be_const_var(3) },
- { be_const_key_weak(VIRTUAL, 9), be_const_bool(0) },
- { be_const_key_weak(CLUSTER_REVISIONS, 23), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(get_name, 30), be_const_closure(class_Matter_Plugin_get_name_closure) },
+ { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
+ { be_const_key_weak(TYPE, 6), be_nested_str_weak() },
+ { be_const_key_weak(tick, -1), be_const_var(4) },
+ { be_const_key_weak(CLUSTER_REVISIONS, 24), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(25,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_int(5) },
@@ -1475,42 +1428,44 @@ be_local_class(Matter_Plugin,
{ be_const_key_int(6, -1), be_const_int(5) },
{ be_const_key_int(1024, -1), be_const_int(3) },
})) ) } )) },
- { be_const_key_weak(consolidate_update_commands, 17), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
- { be_const_key_weak(ui_conf_to_string, -1), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
- { be_const_key_weak(_parse_update_virtual, 21), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
- { be_const_key_weak(update_virtual, 36), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
- { be_const_key_weak(invoke_request, 27), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
- { be_const_key_weak(node_label, -1), be_const_var(5) },
- { be_const_key_weak(update_shadow, 30), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
- { be_const_key_weak(consolidate_clusters, -1), be_const_closure(class_Matter_Plugin_consolidate_clusters_closure) },
- { be_const_key_weak(get_name, -1), be_const_closure(class_Matter_Plugin_get_name_closure) },
{ be_const_key_weak(update_next, -1), be_const_var(0) },
- { be_const_key_weak(get_endpoint, -1), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
- { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(2,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(258, -1), be_const_int(5) },
- { be_const_key_int(49, -1), be_const_int(4) },
- })) ) } )) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak() },
- { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak() },
- { be_const_key_weak(read_event, -1), be_const_closure(class_Matter_Plugin_read_event_closure) },
{ be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(29, -1), be_const_nil() },
})) ) } )) },
- { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
- { be_const_key_weak(DISPLAY_NAME, 14), be_nested_str_weak() },
- { be_const_key_weak(ui_string_to_conf, 13), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
- { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
- { be_const_key_weak(tick, -1), be_const_var(4) },
- { be_const_key_weak(contains_cluster, -1), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
- { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
+ { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
+ { be_const_key_weak(ui_conf_to_string, -1), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
+ { be_const_key_weak(parse_sensors, 14), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
+ { be_const_key_weak(CLUSTERS, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(VIRTUAL, -1), be_const_bool(0) },
+ { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak() },
+ { be_const_key_weak(node_label, 7), be_const_var(5) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
+ { be_const_key_weak(get_cluster_list_sorted, 39), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
+ { be_const_key_weak(endpoint, -1), be_const_var(2) },
+ { be_const_key_weak(BRIDGE, 0), be_const_bool(0) },
})),
be_str_weak(Matter_Plugin)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Boolean.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Boolean.h
new file mode 100644
index 000000000..81f010d5b
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Boolean.h
@@ -0,0 +1,301 @@
+/* Solidification of Matter_Plugin_2_Sensor_Boolean.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_closure(class_Matter_Plugin_Sensor_Boolean_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: value_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_closure(class_Matter_Plugin_Sensor_Boolean_value_updated, /* name */
+ be_nested_proto(
+ 1, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(value_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_Boolean__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_closure(class_Matter_Plugin_Sensor_Boolean_update_shadow, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_shadow),
+ /* K1 */ be_nested_str_weak(VIRTUAL),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(cmd),
+ /* K6 */ be_nested_str_weak(Status_X2010),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(StatusSNS),
+ /* K9 */ be_nested_str_weak(contains),
+ /* K10 */ be_nested_str_weak(ON),
+ /* K11 */ be_nested_str_weak(shadow_bool_value),
+ /* K12 */ be_nested_str_weak(value_updated),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[41]) { /* code */
+ 0x60040003, // 0000 GETGBL R1 G3
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x8C040300, // 0003 GETMET R1 R1 K0
+ 0x7C040200, // 0004 CALL R1 1
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x74060020, // 0006 JMPT R1 #0028
+ 0x60040008, // 0007 GETGBL R1 G8
+ 0x88080103, // 0008 GETMBR R2 R0 K3
+ 0x7C040200, // 0009 CALL R1 1
+ 0x00060401, // 000A ADD R1 K2 R1
+ 0xB80A0800, // 000B GETNGBL R2 K4
+ 0x8C080505, // 000C GETMET R2 R2 K5
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x50140200, // 000E LDBOOL R5 1 0
+ 0x7C080600, // 000F CALL R2 3
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x200C0403, // 0011 NE R3 R2 R3
+ 0x780E0003, // 0012 JMPF R3 #0017
+ 0x8C0C0507, // 0013 GETMET R3 R2 K7
+ 0x58140008, // 0014 LDCONST R5 K8
+ 0x7C0C0400, // 0015 CALL R3 2
+ 0x5C080600, // 0016 MOVE R2 R3
+ 0x4C0C0000, // 0017 LDNIL R3
+ 0x200C0403, // 0018 NE R3 R2 R3
+ 0x780E000D, // 0019 JMPF R3 #0028
+ 0x8C0C0509, // 001A GETMET R3 R2 K9
+ 0x5C140200, // 001B MOVE R5 R1
+ 0x7C0C0400, // 001C CALL R3 2
+ 0x780E0009, // 001D JMPF R3 #0028
+ 0x8C0C0507, // 001E GETMET R3 R2 K7
+ 0x5C140200, // 001F MOVE R5 R1
+ 0x7C0C0400, // 0020 CALL R3 2
+ 0x1C0C070A, // 0021 EQ R3 R3 K10
+ 0x8810010B, // 0022 GETMBR R4 R0 K11
+ 0x20100803, // 0023 NE R4 R4 R3
+ 0x78120001, // 0024 JMPF R4 #0027
+ 0x8C10010C, // 0025 GETMET R4 R0 K12
+ 0x7C100200, // 0026 CALL R4 1
+ 0x90021603, // 0027 SETMBR R0 K11 R3
+ 0x80000000, // 0028 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_closure(class_Matter_Plugin_Sensor_Boolean_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_bool_value),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x50100000, // 0008 LDBOOL R4 0 0
+ 0x90020204, // 0009 SETMBR R0 K1 R4
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_status
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_closure(class_Matter_Plugin_Sensor_Boolean_parse_status, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(Switch),
+ /* K2 */ be_nested_str_weak(tasmota_switch_index),
+ /* K3 */ be_nested_str_weak(ON),
+ /* K4 */ be_nested_str_weak(shadow_bool_value),
+ /* K5 */ be_nested_str_weak(value_updated),
+ }),
+ be_str_weak(parse_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0x540E0009, // 0000 LDINT R3 10
+ 0x1C0C0403, // 0001 EQ R3 R2 R3
+ 0x780E0015, // 0002 JMPF R3 #0019
+ 0x500C0000, // 0003 LDBOOL R3 0 0
+ 0x8C100300, // 0004 GETMET R4 R1 K0
+ 0x60180008, // 0005 GETGBL R6 G8
+ 0x881C0102, // 0006 GETMBR R7 R0 K2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x001A0206, // 0008 ADD R6 K1 R6
+ 0x7C100400, // 0009 CALL R4 2
+ 0x1C100903, // 000A EQ R4 R4 K3
+ 0x5C0C0800, // 000B MOVE R3 R4
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x4C140000, // 000D LDNIL R5
+ 0x20100805, // 000E NE R4 R4 R5
+ 0x78120007, // 000F JMPF R4 #0018
+ 0x88100104, // 0010 GETMBR R4 R0 K4
+ 0x60140017, // 0011 GETGBL R5 G23
+ 0x5C180600, // 0012 MOVE R6 R3
+ 0x7C140200, // 0013 CALL R5 1
+ 0x20100805, // 0014 NE R4 R4 R5
+ 0x78120001, // 0015 JMPF R4 #0018
+ 0x8C100105, // 0016 GETMET R4 R0 K5
+ 0x7C100200, // 0017 CALL R4 1
+ 0x90020803, // 0018 SETMBR R0 K4 R3
+ 0x80000000, // 0019 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_Boolean
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_class(Matter_Plugin_Sensor_Boolean,
+ 2,
+ &be_class_Matter_Plugin_Device,
+ be_nested_map(11,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(shadow_bool_value, -1), be_const_var(1) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
+ { be_const_key_weak(parse_status, -1), be_const_closure(class_Matter_Plugin_Sensor_Boolean_parse_status_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_Boolean_value_updated_closure) },
+ { be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_Boolean__X3Clambda_X3E_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Boolean_update_shadow_closure) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(750) },
+ { be_const_key_weak(init, 8), be_const_closure(class_Matter_Plugin_Sensor_Boolean_init_closure) },
+ { be_const_key_weak(parse_configuration, 2), be_const_closure(class_Matter_Plugin_Sensor_Boolean_parse_configuration_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_Boolean)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
deleted file mode 100644
index 2973b20d5..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Waterleak.h
+++ /dev/null
@@ -1,594 +0,0 @@
-/* Solidification of Matter_Plugin_2_Sensor_Waterleak.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(set),
- /* K6 */ be_nested_str_weak(BOOL),
- /* K7 */ be_nested_str_weak(shadow_leak),
- /* K8 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E0044, // 0004 LDINT R7 69
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0006, // 0006 JMPF R7 #000E
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0004, // 0008 JMPF R7 #000E
- 0x8C1C0705, // 0009 GETMET R7 R3 K5
- 0x88240906, // 000A GETMBR R9 R4 K6
- 0x88280107, // 000B GETMBR R10 R0 K7
- 0x7C1C0600, // 000C CALL R7 3
- 0x80040E00, // 000D RET 1 R7
- 0x601C0003, // 000E GETGBL R7 G3
- 0x5C200000, // 000F MOVE R8 R0
- 0x7C1C0200, // 0010 CALL R7 1
- 0x8C1C0F08, // 0011 GETMET R7 R7 K8
- 0x5C240200, // 0012 MOVE R9 R1
- 0x5C280400, // 0013 MOVE R10 R2
- 0x5C2C0600, // 0014 MOVE R11 R3
- 0x7C1C0800, // 0015 CALL R7 4
- 0x80040E00, // 0016 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_leak),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values_prefix
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(get_name),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(content_send),
- /* K5 */ be_nested_str_weak(PREFIX),
- /* K6 */ be_nested_str_weak(html_escape),
- /* K7 */ be_nested_str_weak(),
- }),
- be_str_weak(web_values_prefix),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x5C0C0400, // 0003 MOVE R3 R2
- 0x740E0004, // 0004 JMPT R3 #000A
- 0x600C0008, // 0005 GETGBL R3 G8
- 0x88100103, // 0006 GETMBR R4 R0 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x000E0403, // 0008 ADD R3 K2 R3
- 0x5C080600, // 0009 MOVE R2 R3
- 0x8C0C0304, // 000A GETMET R3 R1 K4
- 0x60140018, // 000B GETGBL R5 G24
- 0x88180105, // 000C GETMBR R6 R0 K5
- 0x780A0003, // 000D JMPF R2 #0012
- 0x8C1C0306, // 000E GETMET R7 R1 K6
- 0x5C240400, // 000F MOVE R9 R2
- 0x7C1C0400, // 0010 CALL R7 2
- 0x70020000, // 0011 JMP #0013
- 0x581C0007, // 0012 LDCONST R7 K7
- 0x7C140400, // 0013 CALL R5 2
- 0x7C0C0400, // 0014 CALL R3 2
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X2010),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_leak),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0044, // 0026 LDINT R6 69
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Waterleak),
- /* K2 */ be_nested_str_weak(shadow_leak),
- /* K3 */ be_nested_str_weak(attribute_updated),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x58100001, // 0001 LDCONST R4 K1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x200C0403, // 0004 NE R3 R2 R3
- 0x780E000B, // 0005 JMPF R3 #0012
- 0x600C0017, // 0006 GETGBL R3 G23
- 0x5C100400, // 0007 MOVE R4 R2
- 0x7C0C0200, // 0008 CALL R3 1
- 0x5C080600, // 0009 MOVE R2 R3
- 0x880C0102, // 000A GETMBR R3 R0 K2
- 0x200C0602, // 000B NE R3 R3 R2
- 0x780E0004, // 000C JMPF R3 #0012
- 0x8C0C0103, // 000D GETMET R3 R0 K3
- 0x54160044, // 000E LDINT R5 69
- 0x58180004, // 000F LDCONST R6 K4
- 0x7C0C0600, // 0010 CALL R3 3
- 0x90020402, // 0011 SETMBR R0 K2 R2
- 0x600C0003, // 0012 GETGBL R3 G3
- 0x5C100000, // 0013 MOVE R4 R0
- 0x7C0C0200, // 0014 CALL R3 1
- 0x8C0C0705, // 0015 GETMET R3 R3 K5
- 0x5C140200, // 0016 MOVE R5 R1
- 0x7C0C0400, // 0017 CALL R3 2
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_status
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_parse_status, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_leak),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_status),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0009, // 0000 LDINT R3 10
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0044, // 0017 LDINT R6 69
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Waterleak,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Waterleak_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_leak),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Sensor_Waterleak
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
-be_local_class(Matter_Plugin_Sensor_Waterleak,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(19,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_read_attribute_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(67, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(tasmota_switch_index, 7), be_const_var(0) },
- { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(1,
- ( (struct bvalue*) &(const bvalue[]) {
- be_nested_str_weak(Waterleak),
- })) ) } )) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_init_closure) },
- { be_const_key_weak(shadow_leak, 6), be_const_var(1) },
- { be_const_key_weak(web_values, 18), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_closure) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_parse_configuration_closure) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_shadow_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual_closure) },
- { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_parse_status_closure) },
- { be_const_key_weak(ARG_HINT, 4), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(69, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(UPDATE_TIME, 2), be_const_int(750) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(waterleak) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_Waterleak__X3Clambda_X3E_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Waterleak) },
- })),
- be_str_weak(Matter_Plugin_Sensor_Waterleak)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Contact.h
similarity index 55%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Contact.h
index 3f24a0ffe..4d5232838 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Contact.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Contact.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_2_Sensor_Contact.h */
+/* Solidification of Matter_Plugin_3_Sensor_Contact.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@@ -6,6 +6,52 @@
extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Contact;
+be_local_closure(class_Matter_Plugin_Sensor_Contact_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Contact,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_bool_value),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Contact),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220044, // 0005 LDINT R8 69
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -28,7 +74,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_read_attribute, /* name */
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(set_or_nil),
/* K6 */ be_nested_str_weak(BOOL),
- /* K7 */ be_nested_str_weak(shadow_contact),
+ /* K7 */ be_nested_str_weak(shadow_bool_value),
/* K8 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
@@ -64,37 +110,44 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_read_attribute, /* name */
/********************************************************************
-** Solidified function: init
+** Solidified function: web_values
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_init, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Contact_web_values, /* name */
be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
+ 10, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Contact,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_contact),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Contact_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_bool_value),
}),
- be_str_weak(init),
+ be_str_weak(web_values),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
})
)
);
@@ -157,12 +210,12 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_web_values_prefix, /* name
/********************************************************************
-** Solidified function: update_shadow
+** Solidified function: value_updated
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_update_shadow, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Contact_value_updated, /* name */
be_nested_proto(
- 8, /* nstack */
+ 5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -170,288 +223,18 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_update_shadow, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Contact,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X2010),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_contact),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
}),
- be_str_weak(update_shadow),
+ be_str_weak(value_updated),
&be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0044, // 0026 LDINT R6 69
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_update_virtual, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(shadow_contact),
- /* K1 */ be_nested_str_weak(_parse_update_virtual),
- /* K2 */ be_nested_str_weak(Contact),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x8C080101, // 0000 GETMET R2 R0 K1
- 0x5C100200, // 0001 MOVE R4 R1
- 0x58140002, // 0002 LDCONST R5 K2
- 0x88180100, // 0003 GETMBR R6 R0 K0
- 0x601C0017, // 0004 GETGBL R7 G23
- 0x54220044, // 0005 LDINT R8 69
- 0x58240003, // 0006 LDCONST R9 K3
- 0x7C080E00, // 0007 CALL R2 7
- 0x90020002, // 0008 SETMBR R0 K0 R2
- 0x60080003, // 0009 GETGBL R2 G3
- 0x5C0C0000, // 000A MOVE R3 R0
- 0x7C080200, // 000B CALL R2 1
- 0x8C080504, // 000C GETMET R2 R2 K4
- 0x5C100200, // 000D MOVE R4 R1
- 0x7C080400, // 000E CALL R2 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_status
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_status, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_contact),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_status),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0009, // 0000 LDINT R3 10
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0044, // 0017 LDINT R6 69
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Contact_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_contact),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Contact;
-be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Contact,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x540E0044, // 0001 LDINT R3 69
+ 0x58100001, // 0002 LDCONST R4 K1
+ 0x7C040600, // 0003 CALL R1 3
+ 0x80000000, // 0004 RET 0
})
)
);
@@ -461,34 +244,20 @@ be_local_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration, /* na
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Contact
********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
be_local_class(Matter_Plugin_Sensor_Contact,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(19,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_read_attribute_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(21, -1), be_const_int(1) },
- })) ) } )) },
- { be_const_key_weak(parse_configuration, 7), be_const_closure(class_Matter_Plugin_Sensor_Contact_parse_configuration_closure) },
+ { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_virtual_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Contact) },
+ { be_const_key_weak(read_attribute, 5), be_const_closure(class_Matter_Plugin_Sensor_Contact_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Contact),
})) ) } )) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_shadow_closure) },
- { be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Contact) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_closure) },
- { be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_prefix_closure) },
- { be_const_key_weak(shadow_contact, 4), be_const_var(1) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_update_virtual_closure) },
- { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Contact_parse_status_closure) },
- { be_const_key_weak(ARG_HINT, 18), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -573,10 +342,15 @@ be_local_class(Matter_Plugin_Sensor_Contact,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(UPDATE_TIME, 2), be_const_int(750) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(contact) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_Contact__X3Clambda_X3E_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_init_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(21, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_web_values_prefix_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_Contact_value_updated_closure) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(contact) },
})),
be_str_weak(Matter_Plugin_Sensor_Contact)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Occupancy.h
similarity index 56%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Occupancy.h
index 3ba19f96e..2071c7b95 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_Occupancy.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Occupancy.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_2_Sensor_Occupancy.h */
+/* Solidification of Matter_Plugin_3_Sensor_Occupancy.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@@ -6,6 +6,52 @@
extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Occupancy,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_bool_value),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Occupancy),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220405, // 0005 LDINT R8 1030
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -28,7 +74,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute, /* name
/* K4 */ be_const_int(0),
/* K5 */ be_nested_str_weak(set_or_nil),
/* K6 */ be_nested_str_weak(U1),
- /* K7 */ be_nested_str_weak(shadow_occupancy),
+ /* K7 */ be_nested_str_weak(shadow_bool_value),
/* K8 */ be_const_int(1),
/* K9 */ be_nested_str_weak(set),
/* K10 */ be_const_int(3),
@@ -84,37 +130,44 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute, /* name
/********************************************************************
-** Solidified function: init
+** Solidified function: web_values
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_init, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values, /* name */
be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
+ 10, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Occupancy,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(shadow_occupancy),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Occupancy_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(shadow_bool_value),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_occupancy),
}),
- be_str_weak(init),
+ be_str_weak(web_values),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x5C200600, // 0006 MOVE R8 R3
- 0x7C100800, // 0007 CALL R4 4
- 0x50100000, // 0008 LDBOOL R4 0 0
- 0x90020204, // 0009 SETMBR R0 K1 R4
- 0x80000000, // 000A RET 0
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
})
)
);
@@ -139,7 +192,7 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix, /* na
/* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K3 */ be_nested_str_weak(shadow_bool_value),
/* K4 */ be_nested_str_weak(content_send),
/* K5 */ be_nested_str_weak(PREFIX),
/* K6 */ be_nested_str_weak(html_escape),
@@ -177,12 +230,12 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix, /* na
/********************************************************************
-** Solidified function: update_shadow
+** Solidified function: value_updated
********************************************************************/
extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow, /* name */
+be_local_closure(class_Matter_Plugin_Sensor_Occupancy_value_updated, /* name */
be_nested_proto(
- 8, /* nstack */
+ 5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -190,288 +243,18 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow, /* name *
0, /* has sup protos */
&be_class_Matter_Plugin_Sensor_Occupancy,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X2010),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_occupancy),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
}),
- be_str_weak(update_shadow),
+ be_str_weak(value_updated),
&be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0405, // 0026 LDINT R6 1030
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(val_onoff),
- /* K1 */ be_nested_str_weak(_parse_update_virtual),
- /* K2 */ be_nested_str_weak(Occupancy),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(update_virtual),
- }),
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[16]) { /* code */
- 0x8C080101, // 0000 GETMET R2 R0 K1
- 0x5C100200, // 0001 MOVE R4 R1
- 0x58140002, // 0002 LDCONST R5 K2
- 0x88180100, // 0003 GETMBR R6 R0 K0
- 0x601C0017, // 0004 GETGBL R7 G23
- 0x54220405, // 0005 LDINT R8 1030
- 0x58240003, // 0006 LDCONST R9 K3
- 0x7C080E00, // 0007 CALL R2 7
- 0x90020002, // 0008 SETMBR R0 K0 R2
- 0x60080003, // 0009 GETGBL R2 G3
- 0x5C0C0000, // 000A MOVE R3 R0
- 0x7C080200, // 000B CALL R2 1
- 0x8C080504, // 000C GETMET R2 R2 K4
- 0x5C100200, // 000D MOVE R4 R1
- 0x7C080400, // 000E CALL R2 2
- 0x80000000, // 000F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_status
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_parse_status, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(find),
- /* K1 */ be_nested_str_weak(Switch),
- /* K2 */ be_nested_str_weak(tasmota_switch_index),
- /* K3 */ be_nested_str_weak(ON),
- /* K4 */ be_nested_str_weak(shadow_occupancy),
- /* K5 */ be_nested_str_weak(attribute_updated),
- /* K6 */ be_const_int(0),
- }),
- be_str_weak(parse_status),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x540E0009, // 0000 LDINT R3 10
- 0x1C0C0403, // 0001 EQ R3 R2 R3
- 0x780E0017, // 0002 JMPF R3 #001B
- 0x500C0000, // 0003 LDBOOL R3 0 0
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x60180008, // 0005 GETGBL R6 G8
- 0x881C0102, // 0006 GETMBR R7 R0 K2
- 0x7C180200, // 0007 CALL R6 1
- 0x001A0206, // 0008 ADD R6 K1 R6
- 0x7C100400, // 0009 CALL R4 2
- 0x1C100903, // 000A EQ R4 R4 K3
- 0x5C0C0800, // 000B MOVE R3 R4
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120009, // 000F JMPF R4 #001A
- 0x88100104, // 0010 GETMBR R4 R0 K4
- 0x60140017, // 0011 GETGBL R5 G23
- 0x5C180600, // 0012 MOVE R6 R3
- 0x7C140200, // 0013 CALL R5 1
- 0x20100805, // 0014 NE R4 R4 R5
- 0x78120003, // 0015 JMPF R4 #001A
- 0x8C100105, // 0016 GETMET R4 R0 K5
- 0x541A0405, // 0017 LDINT R6 1030
- 0x581C0006, // 0018 LDCONST R7 K6
- 0x7C100600, // 0019 CALL R4 3
- 0x90020803, // 001A SETMBR R0 K4 R3
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: web_values
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_Occupancy;
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy_web_values, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_Occupancy,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(webserver),
- /* K1 */ be_nested_str_weak(web_values_prefix),
- /* K2 */ be_nested_str_weak(content_send),
- /* K3 */ be_nested_str_weak(Occupancy_X25i_X20_X25s),
- /* K4 */ be_nested_str_weak(tasmota_switch_index),
- /* K5 */ be_nested_str_weak(web_value_onoff),
- /* K6 */ be_nested_str_weak(shadow_occupancy),
- }),
- be_str_weak(web_values),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x8C080302, // 0003 GETMET R2 R1 K2
- 0x60100018, // 0004 GETGBL R4 G24
- 0x58140003, // 0005 LDCONST R5 K3
- 0x88180104, // 0006 GETMBR R6 R0 K4
- 0x8C1C0105, // 0007 GETMET R7 R0 K5
- 0x88240106, // 0008 GETMBR R9 R0 K6
- 0x7C1C0400, // 0009 CALL R7 2
- 0x7C100600, // 000A CALL R4 3
- 0x7C080400, // 000B CALL R2 2
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x540E0405, // 0001 LDINT R3 1030
+ 0x58100001, // 0002 LDCONST R4 K1
+ 0x7C040600, // 0003 CALL R1 3
+ 0x80000000, // 0004 RET 0
})
)
);
@@ -481,34 +264,20 @@ be_local_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E, /* name
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_Occupancy
********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
be_local_class(Matter_Plugin_Sensor_Occupancy,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(19,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(263, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(shadow_occupancy, -1), be_const_var(1) },
+ { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Occupancy) },
+ { be_const_key_weak(read_attribute, 5), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_read_attribute_closure) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(1,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(Occupancy),
})) ) } )) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(750) },
- { be_const_key_weak(DISPLAY_NAME, 6), be_nested_str_weak(Occupancy) },
- { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_closure) },
- { be_const_key_weak(parse_configuration, 4), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_parse_configuration_closure) },
- { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_shadow_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_update_virtual_closure) },
- { be_const_key_weak(parse_status, 16), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_parse_status_closure) },
- { be_const_key_weak(ARG_HINT, 18), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(ARG, 12), be_nested_str_weak(switch) },
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
@@ -595,10 +364,15 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(tasmota_switch_index, 7), be_const_var(0) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(occupancy) },
- { be_const_key_weak(ARG_TYPE, 2), be_const_static_closure(class_Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_init_closure) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(263, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_web_values_prefix_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_Occupancy_value_updated_closure) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(occupancy) },
})),
be_str_weak(Matter_Plugin_Sensor_Occupancy)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_OnOff.h
similarity index 55%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_OnOff.h
index 1d82ec3fa..b436d5fbd 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_OnOff.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_OnOff.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Plugin_2_Sensor_OnOff.h */
+/* Solidification of Matter_Plugin_3_Sensor_OnOff.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@@ -6,157 +6,6 @@
extern const bclass be_class_Matter_Plugin_Sensor_OnOff;
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_OnOff__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_OnOff;
-be_local_closure(class_Matter_Plugin_Sensor_OnOff_update_shadow, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_OnOff,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(VIRTUAL),
- /* K2 */ be_nested_str_weak(Switch),
- /* K3 */ be_nested_str_weak(tasmota_switch_index),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(cmd),
- /* K6 */ be_nested_str_weak(Status_X2010),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(StatusSNS),
- /* K9 */ be_nested_str_weak(contains),
- /* K10 */ be_nested_str_weak(ON),
- /* K11 */ be_nested_str_weak(shadow_onoff),
- /* K12 */ be_nested_str_weak(attribute_updated),
- /* K13 */ be_const_int(0),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x74060022, // 0006 JMPT R1 #002A
- 0x60040008, // 0007 GETGBL R1 G8
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x7C040200, // 0009 CALL R1 1
- 0x00060401, // 000A ADD R1 K2 R1
- 0xB80A0800, // 000B GETNGBL R2 K4
- 0x8C080505, // 000C GETMET R2 R2 K5
- 0x58100006, // 000D LDCONST R4 K6
- 0x50140200, // 000E LDBOOL R5 1 0
- 0x7C080600, // 000F CALL R2 3
- 0x4C0C0000, // 0010 LDNIL R3
- 0x200C0403, // 0011 NE R3 R2 R3
- 0x780E0003, // 0012 JMPF R3 #0017
- 0x8C0C0507, // 0013 GETMET R3 R2 K7
- 0x58140008, // 0014 LDCONST R5 K8
- 0x7C0C0400, // 0015 CALL R3 2
- 0x5C080600, // 0016 MOVE R2 R3
- 0x4C0C0000, // 0017 LDNIL R3
- 0x200C0403, // 0018 NE R3 R2 R3
- 0x780E000F, // 0019 JMPF R3 #002A
- 0x8C0C0509, // 001A GETMET R3 R2 K9
- 0x5C140200, // 001B MOVE R5 R1
- 0x7C0C0400, // 001C CALL R3 2
- 0x780E000B, // 001D JMPF R3 #002A
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x5C140200, // 001F MOVE R5 R1
- 0x7C0C0400, // 0020 CALL R3 2
- 0x1C0C070A, // 0021 EQ R3 R3 K10
- 0x8810010B, // 0022 GETMBR R4 R0 K11
- 0x20100803, // 0023 NE R4 R4 R3
- 0x78120003, // 0024 JMPF R4 #0029
- 0x8C10010C, // 0025 GETMET R4 R0 K12
- 0x541A0005, // 0026 LDINT R6 6
- 0x581C000D, // 0027 LDCONST R7 K13
- 0x7C100600, // 0028 CALL R4 3
- 0x90021603, // 0029 SETMBR R0 K11 R3
- 0x80000000, // 002A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_OnOff;
-be_local_closure(class_Matter_Plugin_Sensor_OnOff_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_OnOff,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
@@ -180,7 +29,7 @@ be_local_closure(class_Matter_Plugin_Sensor_OnOff_read_attribute, /* name */
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(set),
/* K7 */ be_nested_str_weak(BOOL),
- /* K8 */ be_nested_str_weak(shadow_onoff),
+ /* K8 */ be_nested_str_weak(shadow_bool_value),
/* K9 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
@@ -233,7 +82,7 @@ be_local_closure(class_Matter_Plugin_Sensor_OnOff_append_state_json, /* name *
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(_X2C_X22OnOff_X22_X3A_X25s),
- /* K1 */ be_nested_str_weak(shadow_onoff),
+ /* K1 */ be_nested_str_weak(shadow_bool_value),
}),
be_str_weak(append_state_json),
&be_const_str_solidified,
@@ -251,16 +100,49 @@ be_local_closure(class_Matter_Plugin_Sensor_OnOff_append_state_json, /* name *
/*******************************************************************/
+/********************************************************************
+** Solidified function: value_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_OnOff;
+be_local_closure(class_Matter_Plugin_Sensor_OnOff_value_updated, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_OnOff,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
+ }),
+ be_str_weak(value_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x540E0005, // 0001 LDINT R3 6
+ 0x58100001, // 0002 LDCONST R4 K1
+ 0x7C040600, // 0003 CALL R1 3
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin_Sensor_OnOff
********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
be_local_class(Matter_Plugin_Sensor_OnOff,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(14,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(CLUSTERS, 8), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(read_attribute, 1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_read_attribute_closure) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(6,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(6, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -344,23 +226,15 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
- { be_const_key_weak(UPDATE_TIME, 4), be_const_int(750) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(onoff) },
- { be_const_key_weak(append_state_json, 12), be_const_closure(class_Matter_Plugin_Sensor_OnOff_append_state_json_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(OnOff_X20Sensor) },
- { be_const_key_weak(shadow_onoff, -1), be_const_var(1) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_update_shadow_closure) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_read_attribute_closure) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_parse_configuration_closure) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_append_state_json_closure) },
+ { be_const_key_weak(TYPES, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(2128, -1), be_const_int(2) },
})) ) } )) },
- { be_const_key_weak(ARG_HINT, 9), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(tasmota_switch_index, 13), be_const_var(0) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_OnOff__X3Clambda_X3E_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_OnOff_value_updated_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(OnOff_X20Sensor) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(onoff) },
})),
be_str_weak(Matter_Plugin_Sensor_OnOff)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Rain.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Rain.h
new file mode 100644
index 000000000..f40e86794
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Rain.h
@@ -0,0 +1,358 @@
+/* Solidification of Matter_Plugin_3_Sensor_Rain.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_closure(class_Matter_Plugin_Sensor_Rain_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Rain,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_bool_value),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Rain),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220044, // 0005 LDINT R8 69
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_closure(class_Matter_Plugin_Sensor_Rain_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Rain,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(set),
+ /* K6 */ be_nested_str_weak(BOOL),
+ /* K7 */ be_nested_str_weak(shadow_bool_value),
+ /* K8 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0044, // 0004 LDINT R7 69
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0006, // 0006 JMPF R7 #000E
+ 0x1C1C0D04, // 0007 EQ R7 R6 K4
+ 0x781E0004, // 0008 JMPF R7 #000E
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x88280107, // 000B GETMBR R10 R0 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x601C0003, // 000E GETGBL R7 G3
+ 0x5C200000, // 000F MOVE R8 R0
+ 0x7C1C0200, // 0010 CALL R7 1
+ 0x8C1C0F08, // 0011 GETMET R7 R7 K8
+ 0x5C240200, // 0012 MOVE R9 R1
+ 0x5C280400, // 0013 MOVE R10 R2
+ 0x5C2C0600, // 0014 MOVE R11 R3
+ 0x7C1C0800, // 0015 CALL R7 4
+ 0x80040E00, // 0016 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_closure(class_Matter_Plugin_Sensor_Rain_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Rain,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Rain_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_bool_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_closure(class_Matter_Plugin_Sensor_Rain_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Rain,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: value_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_closure(class_Matter_Plugin_Sensor_Rain_value_updated, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Rain,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
+ }),
+ be_str_weak(value_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x540E0044, // 0001 LDINT R3 69
+ 0x58100001, // 0002 LDCONST R4 K1
+ 0x7C040600, // 0003 CALL R1 3
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_Rain
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_class(Matter_Plugin_Sensor_Rain,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ be_nested_map(10,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_Sensor_Rain_update_virtual_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Rain) },
+ { be_const_key_weak(read_attribute, 5), be_const_closure(class_Matter_Plugin_Sensor_Rain_read_attribute_closure) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(1,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Rain),
+ })) ) } )) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(69, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Rain_web_values_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(68, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Rain_web_values_prefix_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_Rain_value_updated_closure) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(rain) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_Rain)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h
new file mode 100644
index 000000000..a25021d9a
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h
@@ -0,0 +1,273 @@
+/* Solidification of Matter_Plugin_3_Sensor_Waterleak.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_bool_value),
+ /* K1 */ be_nested_str_weak(_parse_update_virtual),
+ /* K2 */ be_nested_str_weak(Waterleak),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(update_virtual),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x8C080101, // 0000 GETMET R2 R0 K1
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x58140002, // 0002 LDCONST R5 K2
+ 0x88180100, // 0003 GETMBR R6 R0 K0
+ 0x601C0017, // 0004 GETGBL R7 G23
+ 0x54220044, // 0005 LDINT R8 69
+ 0x58240003, // 0006 LDCONST R9 K3
+ 0x7C080E00, // 0007 CALL R2 7
+ 0x90020002, // 0008 SETMBR R0 K0 R2
+ 0x60080003, // 0009 GETGBL R2 G3
+ 0x5C0C0000, // 000A MOVE R3 R0
+ 0x7C080200, // 000B CALL R2 1
+ 0x8C080504, // 000C GETMET R2 R2 K4
+ 0x5C100200, // 000D MOVE R4 R1
+ 0x7C080400, // 000E CALL R2 2
+ 0x80000000, // 000F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+// Borrowed method 'read_attribute' from class 'class_Matter_Plugin_Sensor_Rain'
+extern bclosure *class_Matter_Plugin_Sensor_Rain_read_attribute;
+
+/********************************************************************
+** Solidified function: web_values
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(web_values_prefix),
+ /* K2 */ be_nested_str_weak(content_send),
+ /* K3 */ be_nested_str_weak(Waterleak_X25i_X20_X25s),
+ /* K4 */ be_nested_str_weak(tasmota_switch_index),
+ /* K5 */ be_nested_str_weak(web_value_onoff),
+ /* K6 */ be_nested_str_weak(shadow_bool_value),
+ }),
+ be_str_weak(web_values),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080302, // 0003 GETMET R2 R1 K2
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x8C1C0105, // 0007 GETMET R7 R0 K5
+ 0x88240106, // 0008 GETMBR R9 R0 K6
+ 0x7C1C0400, // 0009 CALL R7 2
+ 0x7C100600, // 000A CALL R4 3
+ 0x7C080400, // 000B CALL R2 2
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: web_values_prefix
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Waterleak;
+be_local_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_Waterleak,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(webserver),
+ /* K1 */ be_nested_str_weak(get_name),
+ /* K2 */ be_nested_str_weak(Switch),
+ /* K3 */ be_nested_str_weak(tasmota_switch_index),
+ /* K4 */ be_nested_str_weak(content_send),
+ /* K5 */ be_nested_str_weak(PREFIX),
+ /* K6 */ be_nested_str_weak(html_escape),
+ /* K7 */ be_nested_str_weak(),
+ }),
+ be_str_weak(web_values_prefix),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C0C0400, // 0003 MOVE R3 R2
+ 0x740E0004, // 0004 JMPT R3 #000A
+ 0x600C0008, // 0005 GETGBL R3 G8
+ 0x88100103, // 0006 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x000E0403, // 0008 ADD R3 K2 R3
+ 0x5C080600, // 0009 MOVE R2 R3
+ 0x8C0C0304, // 000A GETMET R3 R1 K4
+ 0x60140018, // 000B GETGBL R5 G24
+ 0x88180105, // 000C GETMBR R6 R0 K5
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C1C0306, // 000E GETMET R7 R1 K6
+ 0x5C240400, // 000F MOVE R9 R2
+ 0x7C1C0400, // 0010 CALL R7 2
+ 0x70020000, // 0011 JMP #0013
+ 0x581C0007, // 0012 LDCONST R7 K7
+ 0x7C140400, // 0013 CALL R5 2
+ 0x7C0C0400, // 0014 CALL R3 2
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+// Borrowed method 'value_updated' from class 'class_Matter_Plugin_Sensor_Rain'
+extern bclosure *class_Matter_Plugin_Sensor_Rain_value_updated;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_Waterleak
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Boolean;
+be_local_class(Matter_Plugin_Sensor_Waterleak,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Boolean,
+ be_nested_map(10,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, 6), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_update_virtual_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Waterleak) },
+ { be_const_key_weak(read_attribute, 5), be_const_closure(class_Matter_Plugin_Sensor_Rain_read_attribute_closure) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(1,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(Waterleak),
+ })) ) } )) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(69, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(web_values, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(67, -1), be_const_int(1) },
+ })) ) } )) },
+ { be_const_key_weak(web_values_prefix, -1), be_const_closure(class_Matter_Plugin_Sensor_Waterleak_web_values_prefix_closure) },
+ { be_const_key_weak(value_updated, -1), be_const_closure(class_Matter_Plugin_Sensor_Rain_value_updated_closure) },
+ { be_const_key_weak(TYPE, 3), be_nested_str_weak(waterleak) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_Waterleak)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Rain.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Rain.h
new file mode 100644
index 000000000..61311846b
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_8_Bridge_Sensor_Rain.h
@@ -0,0 +1,26 @@
+/* Solidification of Matter_Plugin_8_Bridge_Sensor_Rain.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Bridge_Sensor_Rain;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Bridge_Sensor_Rain
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_Rain;
+be_local_class(Matter_Plugin_Bridge_Sensor_Rain,
+ 0,
+ &be_class_Matter_Plugin_Sensor_Rain,
+ be_nested_map(4,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(BRIDGE, 2), be_const_bool(1) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(http_rain) },
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(UPDATE_CMD, -1), be_nested_str_weak(Status_X2010) },
+ })),
+ be_str_weak(Matter_Plugin_Bridge_Sensor_Rain)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h
new file mode 100644
index 000000000..66881e1b5
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h
@@ -0,0 +1,27 @@
+/* Solidification of Matter_Plugin_9_Virt_Sensor_Rain.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Virt_Sensor_Rain;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Virt_Sensor_Rain
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Virt_Sensor_Rain;
+be_local_class(Matter_Plugin_Virt_Sensor_Rain,
+ 0,
+ &be_class_Matter_Plugin_Virt_Sensor_Rain,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(v_X2ERain) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(v_rain) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(ARG, 2), be_nested_str_weak() },
+ })),
+ be_str_weak(Matter_Plugin_Virt_Sensor_Rain)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h
index 8b90cdfe9..f33b2921e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Sensor_Waterleak.h
@@ -15,13 +15,13 @@ be_local_class(Matter_Plugin_Virt_Sensor_Waterleak,
&be_class_Matter_Plugin_Virt_Sensor_Waterleak,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key(VIRTUAL, 3), be_const_bool(1) },
- { be_const_key(DISPLAY_NAME, -1), be_nested_str(v_X2EWaterleak) },
- { be_const_key(TYPE, -1), be_nested_str(v_waterleak) },
- { be_const_key(ARG_HINT, -1), be_nested_str(_Not_X20used_) },
- { be_const_key(ARG, 2), be_nested_str() },
+ { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(v_X2EWaterleak) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(v_waterleak) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(ARG, 2), be_nested_str_weak() },
})),
- (bstring*) &be_const_str_Matter_Plugin_Virt_Sensor_Waterleak
+ be_str_weak(Matter_Plugin_Virt_Sensor_Waterleak)
);
/********************************************************************/
/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index a92be66c2..93f389557 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -3385,7 +3385,7 @@ be_local_class(Matter_UI,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(equal_map, -1), be_const_static_closure(class_Matter_UI_equal_map_closure) },
{ be_const_key_weak(page_part_mgr_adv, -1), be_const_closure(class_Matter_UI_page_part_mgr_adv_closure) },
- { be_const_key_weak(_CLASSES_TYPES2, -1), be_nested_str_weak(_X7Chttp_relay_X7Chttp_light0_X7Chttp_light1_X7Chttp_light2_X7Chttp_light3_X7Chttp_temperature_X7Chttp_pressure_X7Chttp_illuminance_X7Chttp_humidity_X7Chttp_occupancy_X7Chttp_contact_X7Chttp_flow_X7Chttp_waterleak_X7Chttp_airquality) },
+ { be_const_key_weak(_CLASSES_TYPES2, -1), be_nested_str_weak(_X7Chttp_relay_X7Chttp_light0_X7Chttp_light1_X7Chttp_light2_X7Chttp_light3_X7Chttp_temperature_X7Chttp_pressure_X7Chttp_illuminance_X7Chttp_humidity_X7Chttp_occupancy_X7Chttp_contact_X7Chttp_flow_X7Chttp_rain_X7Chttp_waterleak_X7Chttp_airquality) },
{ be_const_key_weak(page_part_mgr, 25), be_const_closure(class_Matter_UI_page_part_mgr_closure) },
{ be_const_key_weak(show_plugins_hints_js, -1), be_const_closure(class_Matter_UI_show_plugins_hints_js_closure) },
{ be_const_key_weak(show_enable, -1), be_const_closure(class_Matter_UI_show_enable_closure) },
@@ -3397,7 +3397,7 @@ be_local_class(Matter_UI,
{ be_const_key_weak(show_commissioning_info, -1), be_const_closure(class_Matter_UI_show_commissioning_info_closure) },
{ be_const_key_weak(page_part_ctl, 18), be_const_closure(class_Matter_UI_page_part_ctl_closure) },
{ be_const_key_weak(show_fabric_info, -1), be_const_closure(class_Matter_UI_show_fabric_info_closure) },
- { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_waterleak_X7Cv_airquality) },
+ { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Crain_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_rain_X7Cv_waterleak_X7Cv_airquality) },
{ be_const_key_weak(web_get_arg, -1), be_const_closure(class_Matter_UI_web_get_arg_closure) },
{ be_const_key_weak(plugin_option, 5), be_const_closure(class_Matter_UI_plugin_option_closure) },
{ be_const_key_weak(web_add_config_button, -1), be_const_closure(class_Matter_UI_web_add_config_button_closure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index bcf0a1b9a..a36e124cc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -6213,55 +6213,58 @@ be_local_class(Matter_Device,
{ be_const_key_weak(stop, 14), be_const_closure(class_Matter_Device_stop_closure) },
{ be_const_key_weak(stop_basic_commissioning, 13), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
{ be_const_key_weak(plugins_classes, 10), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(47,
+ be_const_map( * be_nested_map(50,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(v_waterleak, 40), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
- { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
- { be_const_key_weak(http_illuminance, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
- { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
- { be_const_key_weak(humidity, 24), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
- { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
- { be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
- { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
- { be_const_key_weak(airquality, -1), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
- { be_const_key_weak(light1, 17), be_const_class(be_class_Matter_Plugin_Light1) },
- { be_const_key_weak(v_illuminance, 26), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
- { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
- { be_const_key_weak(http_light0, 6), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
- { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
- { be_const_key_weak(contact, 29), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(http_flow, 10), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
- { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
- { be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
- { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
- { be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
- { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
- { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
- { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
- { be_const_key_weak(illuminance, 36), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(shutter, 34), be_const_class(be_class_Matter_Plugin_Shutter) },
- { be_const_key_weak(waterleak, 5), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(relay, 29), be_const_class(be_class_Matter_Plugin_OnOff) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
- { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
- { be_const_key_weak(v_light2, 42), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(light2, 3), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
+ { be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
+ { be_const_key_weak(http_occupancy, 31), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
+ { be_const_key_weak(http_contact, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
+ { be_const_key_weak(light0, 16), be_const_class(be_class_Matter_Plugin_Light0) },
+ { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
+ { be_const_key_weak(v_light1, 10), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
+ { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
{ be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
+ { be_const_key_weak(v_contact, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
+ { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(http_illuminance, 33), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
+ { be_const_key_weak(rain, 22), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
+ { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
+ { be_const_key_weak(shutter, 6), be_const_class(be_class_Matter_Plugin_Shutter) },
+ { be_const_key_weak(light2, -1), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
+ { be_const_key_weak(v_illuminance, 49), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(root, 27), be_const_class(be_class_Matter_Plugin_Root) },
+ { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
+ { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
+ { be_const_key_weak(pressure, 43), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
+ { be_const_key_weak(shutter_X2Btilt, 24), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(v_humidity, 46), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
+ { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
+ { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(http_waterleak, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
+ { be_const_key_weak(waterleak, 8), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(light1, 3), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(v_flow, 13), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
{ be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
- { be_const_key_weak(relay, 43), be_const_class(be_class_Matter_Plugin_OnOff) },
+ { be_const_key_weak(occupancy, 48), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
+ { be_const_key_weak(airquality, 34), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
+ { be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
{ be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
- { be_const_key_weak(http_waterleak, 2), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(http_occupancy, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(root, 39), be_const_class(be_class_Matter_Plugin_Root) },
+ { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
+ { be_const_key_weak(v_rain, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
+ { be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
})) ) } )) },
{ be_const_key_weak(tick, 9), be_const_var(10) },
{ be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(17) },
From 0c49262d54e0aac4f89dec49bbffb172544e4cba Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 14 Jun 2024 22:40:27 +0200
Subject: [PATCH 056/252] Update changelogs
---
CHANGELOG.md | 2 +-
RELEASENOTES.md | 1 +
tasmota/language/af_AF.h | 1 +
tasmota/language/bg_BG.h | 1 +
tasmota/language/ca_AD.h | 1 +
tasmota/language/cs_CZ.h | 1 +
tasmota/language/de_DE.h | 1 +
tasmota/language/el_GR.h | 1 +
tasmota/language/en_GB.h | 1 +
tasmota/language/es_ES.h | 1 +
tasmota/language/fr_FR.h | 1 +
tasmota/language/fy_NL.h | 1 +
tasmota/language/he_HE.h | 1 +
tasmota/language/hu_HU.h | 1 +
tasmota/language/it_IT.h | 1 +
tasmota/language/ko_KO.h | 1 +
tasmota/language/nl_NL.h | 1 +
tasmota/language/pl_PL.h | 1 +
tasmota/language/pt_BR.h | 1 +
tasmota/language/pt_PT.h | 1 +
tasmota/language/ro_RO.h | 1 +
tasmota/language/ru_RU.h | 1 +
tasmota/language/sk_SK.h | 1 +
tasmota/language/sv_SE.h | 1 +
tasmota/language/tr_TR.h | 1 +
tasmota/language/uk_UA.h | 1 +
tasmota/language/vi_VN.h | 1 +
tasmota/language/zh_CN.h | 1 +
tasmota/language/zh_TW.h | 1 +
29 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4052438f5..d3f5e2db1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Berry `classof` extended to class methods (#21615)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
-- Matter support for Rain sensor
+- Matter support for Rain sensor (#21633)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 6d2fd35b1..7b4b2cdf3 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -143,6 +143,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
+- Matter support for Rain sensor [#21633](https://github.com/arendst/Tasmota/issues/21633)
### Fixed
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h
index fabaec1e1..a10ae1b76 100644
--- a/tasmota/language/af_AF.h
+++ b/tasmota/language/af_AF.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h
index 834009096..4c5d5af53 100644
--- a/tasmota/language/bg_BG.h
+++ b/tasmota/language/bg_BG.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "л"
#define D_UNIT_LITERS_PER_MIN "л/м"
#define D_UNIT_LUX "лукс"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µг/м³"
#define D_UNIT_MICROMETER "µм"
#define D_UNIT_MICROSECOND "µс"
diff --git a/tasmota/language/ca_AD.h b/tasmota/language/ca_AD.h
index 75151988a..b04a2f452 100644
--- a/tasmota/language/ca_AD.h
+++ b/tasmota/language/ca_AD.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h
index d0838a0a6..8c83fbf7b 100644
--- a/tasmota/language/cs_CZ.h
+++ b/tasmota/language/cs_CZ.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h
index 43d5a5535..6cfe0dcd0 100644
--- a/tasmota/language/de_DE.h
+++ b/tasmota/language/de_DE.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h
index 1c47c5560..433f54218 100644
--- a/tasmota/language/el_GR.h
+++ b/tasmota/language/el_GR.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h
index 2187a6871..f0641cfd1 100644
--- a/tasmota/language/en_GB.h
+++ b/tasmota/language/en_GB.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h
index 82ba7a2d6..5d980ade0 100644
--- a/tasmota/language/es_ES.h
+++ b/tasmota/language/es_ES.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h
index d7ac06abf..174800ced 100644
--- a/tasmota/language/fr_FR.h
+++ b/tasmota/language/fr_FR.h
@@ -1007,6 +1007,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/min"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h
index bf1b2cdbe..d828fe94c 100644
--- a/tasmota/language/fy_NL.h
+++ b/tasmota/language/fy_NL.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h
index e7422821a..1115824ed 100644
--- a/tasmota/language/he_HE.h
+++ b/tasmota/language/he_HE.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h
index a037e28a5..ceadce58b 100644
--- a/tasmota/language/hu_HU.h
+++ b/tasmota/language/hu_HU.h
@@ -1009,6 +1009,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index 080799eda..9b9e8d118 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -1009,6 +1009,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h
index dae42e67d..f118ce486 100644
--- a/tasmota/language/ko_KO.h
+++ b/tasmota/language/ko_KO.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "마이크로미터"
#define D_UNIT_MICROSECOND "마이크로초"
diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h
index 7a2466dc5..237d17627 100644
--- a/tasmota/language/nl_NL.h
+++ b/tasmota/language/nl_NL.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h
index d16a56c72..02f5ee566 100644
--- a/tasmota/language/pl_PL.h
+++ b/tasmota/language/pl_PL.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h
index c26076964..34827df60 100644
--- a/tasmota/language/pt_BR.h
+++ b/tasmota/language/pt_BR.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h
index 4daa0a48b..c1b8ac284 100644
--- a/tasmota/language/pt_PT.h
+++ b/tasmota/language/pt_PT.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h
index bcbdbb23a..9560fcfe4 100644
--- a/tasmota/language/ro_RO.h
+++ b/tasmota/language/ro_RO.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h
index 18b0d438d..d7807d77c 100644
--- a/tasmota/language/ru_RU.h
+++ b/tasmota/language/ru_RU.h
@@ -1007,6 +1007,7 @@
#define D_UNIT_LITERS "л"
#define D_UNIT_LITERS_PER_MIN "л/мин"
#define D_UNIT_LUX "лк"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "мкг/м³"
#define D_UNIT_MICROMETER "мкм"
#define D_UNIT_MICROSECOND "мкс"
diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h
index f273cae32..6094ef0e4 100644
--- a/tasmota/language/sk_SK.h
+++ b/tasmota/language/sk_SK.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h
index c968ef2ca..ecd2a84ac 100644
--- a/tasmota/language/sv_SE.h
+++ b/tasmota/language/sv_SE.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h
index a570fc57e..c30440d34 100644
--- a/tasmota/language/tr_TR.h
+++ b/tasmota/language/tr_TR.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h
index 490328438..d02250694 100644
--- a/tasmota/language/uk_UA.h
+++ b/tasmota/language/uk_UA.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "лк"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µг/м³"
#define D_UNIT_MICROMETER "µм"
#define D_UNIT_MICROSECOND "µС"
diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h
index 6c279b59d..e62e015d2 100644
--- a/tasmota/language/vi_VN.h
+++ b/tasmota/language/vi_VN.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h
index 5542facae..438ec7166 100644
--- a/tasmota/language/zh_CN.h
+++ b/tasmota/language/zh_CN.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lx"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "µg/m³"
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h
index d285af57f..42c64aaf7 100644
--- a/tasmota/language/zh_TW.h
+++ b/tasmota/language/zh_TW.h
@@ -1006,6 +1006,7 @@
#define D_UNIT_LITERS "L"
#define D_UNIT_LITERS_PER_MIN "L/m"
#define D_UNIT_LUX "lux"
+#define D_UNIT_METER "m"
#define D_UNIT_MICROGRAM_PER_CUBIC_METER "微克/立方公尺"
#define D_UNIT_MICROMETER "微米"
#define D_UNIT_MICROSECOND "微秒"
From 2c1f6b24d39c96d69839012aa2daa756dbddfaf3 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 15 Jun 2024 10:56:48 +0200
Subject: [PATCH 057/252] Matter add internal debug option (#21634)
---
CHANGELOG.md | 1 +
.../berry_matter/src/embedded/Matter_IM.be | 2 +-
.../src/embedded/Matter_zz_Device.be | 9 +-
.../src/solidify/solidified_Matter_IM.h | 34 +-
.../solidify/solidified_Matter_zz_Device.h | 9109 +++++++++--------
5 files changed, 4590 insertions(+), 4565 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d3f5e2db1..5f68729d3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Berry `classof` extended to class methods (#21615)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
- Matter support for Rain sensor (#21633)
+- Matter add internal debug option
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 5126757a4..32c19152d 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -833,7 +833,7 @@ class Matter_IM
log(f"MTR: >Subscribe ({msg.session.local_session_id:6i}) event_requests_size={size(query.event_requests)}", 3)
end
- var ret = self._inner_process_read_request(msg.session, query, msg, true #-no_log-#)
+ var ret = self._inner_process_read_request(msg.session, query, msg, !self.device.debug #-log only if debug enabled-#)
# ret is of type `Matter_ReportDataMessage`
ret.subscription_id = sub.subscription_id # enrich with subscription id TODO
self.send_subscribe_response(msg, ret, sub)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 7ef4ded6a..5f0c2fe04 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -66,6 +66,7 @@ class Matter_Device
var ipv4only # advertize only IPv4 addresses (no IPv6)
var disable_bridge_mode # default is bridge mode, this flag disables this mode for some non-compliant controllers
var next_ep # next endpoint to be allocated for bridge, start at 1
+ var debug # debug mode, output all values when responding to read request with wildcard
# context for PBKDF
var root_iterations # PBKDF number of iterations
# PBKDF information used only during PASE (freed afterwards)
@@ -649,11 +650,14 @@ class Matter_Device
self.update_remotes_info() # update self.plugins_config_remotes
var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"disable_bridge_mode":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.disable_bridge_mode ? 'true':'false', self.next_ep)
+ if self.debug
+ j += ',"debug":true'
+ end
if self.plugins_persist
- j += ',"config":'
+ j += ',\n"config":'
j += json.dump(self.plugins_config)
if size(self.plugins_config_remotes) > 0
- j += ',"remotes":'
+ j += ',\n"remotes":'
j += json.dump(self.plugins_config_remotes)
end
end
@@ -717,6 +721,7 @@ class Matter_Device
self.disable_bridge_mode = bool(j.find("disable_bridge_mode", false))
self.next_ep = j.find("nextep", self.next_ep)
self.plugins_config = j.find("config")
+ self.debug = bool(j.find("debug")) # bool converts nil to false
if self.plugins_config != nil
log(f"MTR: Load_config = {self.plugins_config}", 3)
self.adjust_next_ep()
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index fba6d4892..1df1d46ab 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -3417,7 +3417,7 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[32]) { /* constants */
+ ( &(const bvalue[34]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(SubscribeRequestMessage),
/* K2 */ be_nested_str_weak(from_TLV),
@@ -3449,11 +3449,13 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/* K28 */ be_nested_str_weak(event_requests),
/* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20event_requests_size_X3D_X25s),
/* K30 */ be_nested_str_weak(_inner_process_read_request),
- /* K31 */ be_nested_str_weak(send_subscribe_response),
+ /* K31 */ be_nested_str_weak(device),
+ /* K32 */ be_nested_str_weak(debug),
+ /* K33 */ be_nested_str_weak(send_subscribe_response),
}),
be_str_weak(subscribe_request),
&be_const_str_solidified,
- ( &(const binstruction[99]) { /* code */
+ ( &(const binstruction[103]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -3542,17 +3544,21 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0x88240306, // 0055 GETMBR R9 R1 K6
0x5C280600, // 0056 MOVE R10 R3
0x5C2C0200, // 0057 MOVE R11 R1
- 0x50300200, // 0058 LDBOOL R12 1 0
- 0x7C1C0A00, // 0059 CALL R7 5
- 0x88200919, // 005A GETMBR R8 R4 K25
- 0x901E3208, // 005B SETMBR R7 K25 R8
- 0x8C20011F, // 005C GETMET R8 R0 K31
- 0x5C280200, // 005D MOVE R10 R1
- 0x5C2C0E00, // 005E MOVE R11 R7
- 0x5C300800, // 005F MOVE R12 R4
- 0x7C200800, // 0060 CALL R8 4
- 0x50200200, // 0061 LDBOOL R8 1 0
- 0x80041000, // 0062 RET 1 R8
+ 0x8830011F, // 0058 GETMBR R12 R0 K31
+ 0x88301920, // 0059 GETMBR R12 R12 K32
+ 0x78320000, // 005A JMPF R12 #005C
+ 0x50300001, // 005B LDBOOL R12 0 1
+ 0x50300200, // 005C LDBOOL R12 1 0
+ 0x7C1C0A00, // 005D CALL R7 5
+ 0x88200919, // 005E GETMBR R8 R4 K25
+ 0x901E3208, // 005F SETMBR R7 K25 R8
+ 0x8C200121, // 0060 GETMET R8 R0 K33
+ 0x5C280200, // 0061 MOVE R10 R1
+ 0x5C2C0E00, // 0062 MOVE R11 R7
+ 0x5C300800, // 0063 MOVE R12 R4
+ 0x7C200800, // 0064 CALL R8 4
+ 0x50200200, // 0065 LDBOOL R8 1 0
+ 0x80041000, // 0066 RET 1 R8
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index a36e124cc..d5787e6c3 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -7,42 +7,12 @@
extern const bclass be_class_Matter_Device;
/********************************************************************
-** Solidified function: is_commissioning_open
+** Solidified function: mdns_remove_op_discovery
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- }),
- be_str_weak(is_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrInfo_one
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
- be_nested_proto(
- 9, /* nstack */
+ 12, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -50,37 +20,111 @@ be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K1 */ be_nested_str_weak(state_json),
- /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(publish_result),
- /* K5 */ be_nested_str_weak(),
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(eth),
+ /* K9 */ be_nested_str_weak(find),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K13 */ be_const_int(3),
+ /* K14 */ be_nested_str_weak(remove_service),
+ /* K15 */ be_nested_str_weak(_matter),
+ /* K16 */ be_nested_str_weak(_tcp),
+ /* K17 */ be_nested_str_weak(hostname_eth),
+ /* K18 */ be_nested_str_weak(wifi),
+ /* K19 */ be_nested_str_weak(hostname_wifi),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K21 */ be_nested_str_weak(_X7C),
+ /* K22 */ be_const_int(2),
}),
- be_str_weak(MtrInfo_one),
+ be_str_weak(mdns_remove_op_discovery),
&be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0403, // 0004 EQ R3 R2 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80000600, // 0006 RET 0
- 0x8C0C0501, // 0007 GETMET R3 R2 K1
- 0x7C0C0200, // 0008 CALL R3 1
- 0x780E0008, // 0009 JMPF R3 #0013
- 0x60100018, // 000A GETGBL R4 G24
- 0x58140002, // 000B LDCONST R5 K2
- 0x5C180600, // 000C MOVE R6 R3
- 0x7C100400, // 000D CALL R4 2
- 0xB8160600, // 000E GETNGBL R5 K3
- 0x8C140B04, // 000F GETMET R5 R5 K4
- 0x5C1C0800, // 0010 MOVE R7 R4
- 0x58200005, // 0011 LDCONST R8 K5
- 0x7C140600, // 0012 CALL R5 3
- 0x80000000, // 0013 RET 0
+ ( &(const binstruction[77]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x8C180D08, // 0011 GETMET R6 R6 K8
+ 0x7C180200, // 0012 CALL R6 1
+ 0x8C180D09, // 0013 GETMET R6 R6 K9
+ 0x5820000A, // 0014 LDCONST R8 K10
+ 0x7C180400, // 0015 CALL R6 2
+ 0x781A000D, // 0016 JMPF R6 #0025
+ 0xB81A1600, // 0017 GETNGBL R6 K11
+ 0x601C0018, // 0018 GETGBL R7 G24
+ 0x5820000C, // 0019 LDCONST R8 K12
+ 0x58240008, // 001A LDCONST R9 K8
+ 0x5C280A00, // 001B MOVE R10 R5
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x5820000D, // 001D LDCONST R8 K13
+ 0x7C180400, // 001E CALL R6 2
+ 0x8C18050E, // 001F GETMET R6 R2 K14
+ 0x5820000F, // 0020 LDCONST R8 K15
+ 0x58240010, // 0021 LDCONST R9 K16
+ 0x5C280A00, // 0022 MOVE R10 R5
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x7C180A00, // 0024 CALL R6 5
+ 0xB81A0E00, // 0025 GETNGBL R6 K7
+ 0x8C180D12, // 0026 GETMET R6 R6 K18
+ 0x7C180200, // 0027 CALL R6 1
+ 0x8C180D09, // 0028 GETMET R6 R6 K9
+ 0x5820000A, // 0029 LDCONST R8 K10
+ 0x7C180400, // 002A CALL R6 2
+ 0x781A000D, // 002B JMPF R6 #003A
+ 0xB81A1600, // 002C GETNGBL R6 K11
+ 0x601C0018, // 002D GETGBL R7 G24
+ 0x5820000C, // 002E LDCONST R8 K12
+ 0x58240012, // 002F LDCONST R9 K18
+ 0x5C280A00, // 0030 MOVE R10 R5
+ 0x7C1C0600, // 0031 CALL R7 3
+ 0x5820000D, // 0032 LDCONST R8 K13
+ 0x7C180400, // 0033 CALL R6 2
+ 0x8C18050E, // 0034 GETMET R6 R2 K14
+ 0x5820000F, // 0035 LDCONST R8 K15
+ 0x58240010, // 0036 LDCONST R9 K16
+ 0x5C280A00, // 0037 MOVE R10 R5
+ 0x882C0113, // 0038 GETMBR R11 R0 K19
+ 0x7C180A00, // 0039 CALL R6 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC0C0002, // 003C CATCH R3 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8161600, // 003E GETNGBL R5 K11
+ 0x60180008, // 003F GETGBL R6 G8
+ 0x5C1C0600, // 0040 MOVE R7 R3
+ 0x7C180200, // 0041 CALL R6 1
+ 0x001A2806, // 0042 ADD R6 K20 R6
+ 0x00180D15, // 0043 ADD R6 R6 K21
+ 0x601C0008, // 0044 GETGBL R7 G8
+ 0x5C200800, // 0045 MOVE R8 R4
+ 0x7C1C0200, // 0046 CALL R7 1
+ 0x00180C07, // 0047 ADD R6 R6 R7
+ 0x581C0016, // 0048 LDCONST R7 K22
+ 0x7C140400, // 0049 CALL R5 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
})
)
);
@@ -88,12 +132,12 @@ be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
/********************************************************************
-** Solidified function: event_fabrics_saved
+** Solidified function: start
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
+be_local_closure(class_Matter_Device_start, /* name */
be_nested_proto(
- 3, /* nstack */
+ 4, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -102,183 +146,28 @@ be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(save_param),
+ /* K0 */ be_nested_str_weak(started),
+ /* K1 */ be_nested_str_weak(autoconf_device),
+ /* K2 */ be_nested_str_weak(_start_udp),
+ /* K3 */ be_nested_str_weak(UDP_PORT),
+ /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
}),
- be_str_weak(event_fabrics_saved),
+ be_str_weak(start),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
+ ( &(const binstruction[13]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x24040302, // 0003 GT R1 R1 K2
- 0x78060005, // 0004 JMPF R1 #000B
- 0x88040103, // 0005 GETMBR R1 R0 K3
- 0x74060003, // 0006 JMPT R1 #000B
- 0x50040200, // 0007 LDBOOL R1 1 0
- 0x90020601, // 0008 SETMBR R0 K3 R1
- 0x8C040104, // 0009 GETMET R1 R0 K4
- 0x7C040200, // 000A CALL R1 1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(get_fabric),
- /* K1 */ be_nested_str_weak(get_fabric_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_nested_str_weak(get_admin_vendor_name),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(stop_basic_commissioning),
- }),
- be_str_weak(start_commissioning_complete),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x7C080200, // 0001 CALL R2 1
- 0x8C0C0501, // 0002 GETMET R3 R2 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C100505, // 000A GETMET R4 R2 K5
- 0x7C100200, // 000B CALL R4 1
- 0xB8160C00, // 000C GETNGBL R5 K6
- 0x60180018, // 000D GETGBL R6 G24
- 0x581C0007, // 000E LDCONST R7 K7
- 0x5C200600, // 000F MOVE R8 R3
- 0x5C240800, // 0010 MOVE R9 R4
- 0x7C180600, // 0011 CALL R6 3
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x7C140400, // 0013 CALL R5 2
- 0x8C140109, // 0014 GETMET R5 R0 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_remove_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins_config),
- /* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(plugins_persist),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(get_endpoint),
- /* K13 */ be_const_int(1),
- /* K14 */ be_nested_str_weak(clean_remotes),
- /* K15 */ be_nested_str_weak(save_param),
- /* K16 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_remove_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[56]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x600C0008, // 0001 GETGBL R3 G8
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x4C100000, // 0004 LDNIL R4
- 0x4C140000, // 0005 LDNIL R5
- 0x88180101, // 0006 GETMBR R6 R0 K1
- 0x8C180D02, // 0007 GETMET R6 R6 K2
- 0x5C200600, // 0008 MOVE R8 R3
- 0x7C180400, // 0009 CALL R6 2
- 0x741A0004, // 000A JMPT R6 #0010
- 0xB81A0600, // 000B GETNGBL R6 K3
- 0x001E0803, // 000C ADD R7 K4 R3
- 0x58200005, // 000D LDCONST R8 K5
- 0x7C180400, // 000E CALL R6 2
- 0x80000C00, // 000F RET 0
- 0xB81A0600, // 0010 GETNGBL R6 K3
- 0x601C0018, // 0011 GETGBL R7 G24
- 0x58200006, // 0012 LDCONST R8 K6
- 0x5C240200, // 0013 MOVE R9 R1
- 0x7C1C0400, // 0014 CALL R7 2
- 0x58200007, // 0015 LDCONST R8 K7
- 0x7C180400, // 0016 CALL R6 2
- 0x88180101, // 0017 GETMBR R6 R0 K1
- 0x8C180D08, // 0018 GETMET R6 R6 K8
- 0x5C200600, // 0019 MOVE R8 R3
- 0x7C180400, // 001A CALL R6 2
- 0x50180200, // 001B LDBOOL R6 1 0
- 0x90021206, // 001C SETMBR R0 K9 R6
- 0x5818000A, // 001D LDCONST R6 K10
- 0x601C000C, // 001E GETGBL R7 G12
- 0x8820010B, // 001F GETMBR R8 R0 K11
- 0x7C1C0200, // 0020 CALL R7 1
- 0x141C0C07, // 0021 LT R7 R6 R7
- 0x781E000D, // 0022 JMPF R7 #0031
- 0x881C010B, // 0023 GETMBR R7 R0 K11
- 0x941C0E06, // 0024 GETIDX R7 R7 R6
- 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
- 0x7C1C0200, // 0026 CALL R7 1
- 0x1C1C0207, // 0027 EQ R7 R1 R7
- 0x781E0005, // 0028 JMPF R7 #002F
- 0x881C010B, // 0029 GETMBR R7 R0 K11
- 0x8C1C0F08, // 002A GETMET R7 R7 K8
- 0x5C240C00, // 002B MOVE R9 R6
- 0x7C1C0400, // 002C CALL R7 2
- 0x70020002, // 002D JMP #0031
- 0x70020000, // 002E JMP #0030
- 0x00180D0D, // 002F ADD R6 R6 K13
- 0x7001FFEC, // 0030 JMP #001E
- 0x8C1C010E, // 0031 GETMET R7 R0 K14
- 0x7C1C0200, // 0032 CALL R7 1
- 0x8C1C010F, // 0033 GETMET R7 R0 K15
- 0x7C1C0200, // 0034 CALL R7 1
- 0x8C1C0110, // 0035 GETMET R7 R0 K16
- 0x7C1C0200, // 0036 CALL R7 1
- 0x80000000, // 0037 RET 0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x80000200, // 0002 RET 0
+ 0x8C040101, // 0003 GETMET R1 R0 K1
+ 0x7C040200, // 0004 CALL R1 1
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x8C040104, // 0008 GETMET R1 R0 K4
+ 0x7C040200, // 0009 CALL R1 1
+ 0x50040200, // 000A LDBOOL R1 1 0
+ 0x90020001, // 000B SETMBR R0 K0 R1
+ 0x80000000, // 000C RET 0
})
)
);
@@ -407,12 +296,80 @@ be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
/********************************************************************
-** Solidified function: _mdns_announce_hostname
+** Solidified function: generate_random_passcode
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
+be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
be_nested_proto(
- 14, /* nstack */
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(random),
+ /* K2 */ be_nested_str_weak(get),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_const_int(134217727),
+ /* K5 */ be_const_int(99999998),
+ /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
+ /* K7 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(generate_random_passcode),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x500C0200, // 0002 LDBOOL R3 1 0
+ 0x780E001D, // 0003 JMPF R3 #0022
+ 0x8C0C0301, // 0004 GETMET R3 R1 K1
+ 0x54160003, // 0005 LDINT R5 4
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x8C0C0702, // 0007 GETMET R3 R3 K2
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x541A0003, // 0009 LDINT R6 4
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x2C0C0704, // 000B AND R3 R3 K4
+ 0x5C080600, // 000C MOVE R2 R3
+ 0x240C0505, // 000D GT R3 R2 K5
+ 0x780E0000, // 000E JMPF R3 #0010
+ 0x7001FFF1, // 000F JMP #0002
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100106, // 0011 GETMBR R4 R0 K6
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA8020005, // 0013 EXBLK 0 #001A
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x1C140404, // 0016 EQ R5 R2 R4
+ 0x78160000, // 0017 JMPF R5 #0019
+ 0x4C080000, // 0018 LDNIL R2
+ 0x7001FFF9, // 0019 JMP #0014
+ 0x580C0007, // 001A LDCONST R3 K7
+ 0xAC0C0200, // 001B CATCH R3 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x4C0C0000, // 001D LDNIL R3
+ 0x200C0403, // 001E NE R3 R2 R3
+ 0x780E0000, // 001F JMPF R3 #0021
+ 0x80040400, // 0020 RET 1 R2
+ 0x7001FFDF, // 0021 JMP #0002
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_operational_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
+ be_nested_proto(
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -420,182 +377,29 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(string),
- /* K2 */ be_nested_str_weak(start),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(eth),
- /* K5 */ be_nested_str_weak(hostname_eth),
- /* K6 */ be_nested_str_weak(replace),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(mac),
- /* K9 */ be_nested_str_weak(_X3A),
- /* K10 */ be_nested_str_weak(),
- /* K11 */ be_nested_str_weak(ipv4only),
- /* K12 */ be_nested_str_weak(contains),
- /* K13 */ be_nested_str_weak(ip6local),
- /* K14 */ be_nested_str_weak(add_hostname),
- /* K15 */ be_nested_str_weak(ip),
- /* K16 */ be_nested_str_weak(ip6),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(wifi),
- /* K21 */ be_nested_str_weak(hostname_wifi),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K24 */ be_nested_str_weak(_X7C),
- /* K25 */ be_const_int(2),
- /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(mdns),
+ /* K2 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K3 */ be_nested_str_weak(root_w0),
+ /* K4 */ be_nested_str_weak(root_L),
+ /* K5 */ be_nested_str_weak(mdns_announce_op_discovery),
}),
- be_str_weak(_mdns_announce_hostname),
+ be_str_weak(start_operational_discovery),
&be_const_str_solidified,
- ( &(const binstruction[144]) { /* code */
+ ( &(const binstruction[12]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100502, // 0002 GETMET R4 R2 K2
+ 0x8C100102, // 0002 GETMET R4 R0 K2
0x7C100200, // 0003 CALL R4 1
- 0xA8020077, // 0004 EXBLK 0 #007D
- 0x78060033, // 0005 JMPF R1 #003A
- 0xB8120600, // 0006 GETNGBL R4 K3
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x7C100200, // 0008 CALL R4 1
- 0x8C140706, // 0009 GETMET R5 R3 K6
- 0x8C1C0907, // 000A GETMET R7 R4 K7
- 0x58240008, // 000B LDCONST R9 K8
- 0x7C1C0400, // 000C CALL R7 2
- 0x58200009, // 000D LDCONST R8 K9
- 0x5824000A, // 000E LDCONST R9 K10
- 0x7C140800, // 000F CALL R5 4
- 0x90020A05, // 0010 SETMBR R0 K5 R5
- 0x8814010B, // 0011 GETMBR R5 R0 K11
- 0x78160003, // 0012 JMPF R5 #0017
- 0x8C14090C, // 0013 GETMET R5 R4 K12
- 0x581C000D, // 0014 LDCONST R7 K13
- 0x7C140400, // 0015 CALL R5 2
- 0x7416000F, // 0016 JMPT R5 #0027
- 0x8C14050E, // 0017 GETMET R5 R2 K14
- 0x881C0105, // 0018 GETMBR R7 R0 K5
- 0x8C200907, // 0019 GETMET R8 R4 K7
- 0x5828000D, // 001A LDCONST R10 K13
- 0x582C000A, // 001B LDCONST R11 K10
- 0x7C200600, // 001C CALL R8 3
- 0x8C240907, // 001D GETMET R9 R4 K7
- 0x582C000F, // 001E LDCONST R11 K15
- 0x5830000A, // 001F LDCONST R12 K10
- 0x7C240600, // 0020 CALL R9 3
- 0x8C280907, // 0021 GETMET R10 R4 K7
- 0x58300010, // 0022 LDCONST R12 K16
- 0x5834000A, // 0023 LDCONST R13 K10
- 0x7C280600, // 0024 CALL R10 3
- 0x7C140A00, // 0025 CALL R5 5
- 0x70020011, // 0026 JMP #0039
- 0xB8162200, // 0027 GETNGBL R5 K17
- 0x60180018, // 0028 GETGBL R6 G24
- 0x581C0012, // 0029 LDCONST R7 K18
- 0x88200105, // 002A GETMBR R8 R0 K5
- 0x8C240907, // 002B GETMET R9 R4 K7
- 0x582C000F, // 002C LDCONST R11 K15
- 0x5830000A, // 002D LDCONST R12 K10
- 0x7C240600, // 002E CALL R9 3
- 0x7C180600, // 002F CALL R6 3
- 0x581C0013, // 0030 LDCONST R7 K19
- 0x7C140400, // 0031 CALL R5 2
- 0x8C14050E, // 0032 GETMET R5 R2 K14
- 0x881C0105, // 0033 GETMBR R7 R0 K5
- 0x8C200907, // 0034 GETMET R8 R4 K7
- 0x5828000F, // 0035 LDCONST R10 K15
- 0x582C000A, // 0036 LDCONST R11 K10
- 0x7C200600, // 0037 CALL R8 3
- 0x7C140600, // 0038 CALL R5 3
- 0x70020032, // 0039 JMP #006D
- 0xB8120600, // 003A GETNGBL R4 K3
- 0x8C100914, // 003B GETMET R4 R4 K20
- 0x7C100200, // 003C CALL R4 1
- 0x8C140706, // 003D GETMET R5 R3 K6
- 0x8C1C0907, // 003E GETMET R7 R4 K7
- 0x58240008, // 003F LDCONST R9 K8
- 0x7C1C0400, // 0040 CALL R7 2
- 0x58200009, // 0041 LDCONST R8 K9
- 0x5824000A, // 0042 LDCONST R9 K10
- 0x7C140800, // 0043 CALL R5 4
- 0x90022A05, // 0044 SETMBR R0 K21 R5
- 0x8814010B, // 0045 GETMBR R5 R0 K11
- 0x78160003, // 0046 JMPF R5 #004B
- 0x8C14090C, // 0047 GETMET R5 R4 K12
- 0x581C000D, // 0048 LDCONST R7 K13
- 0x7C140400, // 0049 CALL R5 2
- 0x7416000F, // 004A JMPT R5 #005B
- 0x8C14050E, // 004B GETMET R5 R2 K14
- 0x881C0115, // 004C GETMBR R7 R0 K21
- 0x8C200907, // 004D GETMET R8 R4 K7
- 0x5828000D, // 004E LDCONST R10 K13
- 0x582C000A, // 004F LDCONST R11 K10
- 0x7C200600, // 0050 CALL R8 3
- 0x8C240907, // 0051 GETMET R9 R4 K7
- 0x582C000F, // 0052 LDCONST R11 K15
- 0x5830000A, // 0053 LDCONST R12 K10
- 0x7C240600, // 0054 CALL R9 3
- 0x8C280907, // 0055 GETMET R10 R4 K7
- 0x58300010, // 0056 LDCONST R12 K16
- 0x5834000A, // 0057 LDCONST R13 K10
- 0x7C280600, // 0058 CALL R10 3
- 0x7C140A00, // 0059 CALL R5 5
- 0x70020011, // 005A JMP #006D
- 0xB8162200, // 005B GETNGBL R5 K17
- 0x60180018, // 005C GETGBL R6 G24
- 0x581C0012, // 005D LDCONST R7 K18
- 0x88200115, // 005E GETMBR R8 R0 K21
- 0x8C240907, // 005F GETMET R9 R4 K7
- 0x582C000F, // 0060 LDCONST R11 K15
- 0x5830000A, // 0061 LDCONST R12 K10
- 0x7C240600, // 0062 CALL R9 3
- 0x7C180600, // 0063 CALL R6 3
- 0x581C0013, // 0064 LDCONST R7 K19
- 0x7C140400, // 0065 CALL R5 2
- 0x8C14050E, // 0066 GETMET R5 R2 K14
- 0x881C0115, // 0067 GETMBR R7 R0 K21
- 0x8C200907, // 0068 GETMET R8 R4 K7
- 0x5828000F, // 0069 LDCONST R10 K15
- 0x582C000A, // 006A LDCONST R11 K10
- 0x7C200600, // 006B CALL R8 3
- 0x7C140600, // 006C CALL R5 3
- 0xB8122200, // 006D GETNGBL R4 K17
- 0x60140018, // 006E GETGBL R5 G24
- 0x58180016, // 006F LDCONST R6 K22
- 0x78060001, // 0070 JMPF R1 #0073
- 0x581C0004, // 0071 LDCONST R7 K4
- 0x70020000, // 0072 JMP #0074
- 0x581C0014, // 0073 LDCONST R7 K20
- 0x78060001, // 0074 JMPF R1 #0077
- 0x88200105, // 0075 GETMBR R8 R0 K5
- 0x70020000, // 0076 JMP #0078
- 0x88200115, // 0077 GETMBR R8 R0 K21
- 0x7C140600, // 0078 CALL R5 3
- 0x58180013, // 0079 LDCONST R6 K19
- 0x7C100400, // 007A CALL R4 2
- 0xA8040001, // 007B EXBLK 1 1
- 0x7002000F, // 007C JMP #008D
- 0xAC100002, // 007D CATCH R4 0 2
- 0x7002000C, // 007E JMP #008C
- 0xB81A2200, // 007F GETNGBL R6 K17
- 0x601C0008, // 0080 GETGBL R7 G8
- 0x5C200800, // 0081 MOVE R8 R4
- 0x7C1C0200, // 0082 CALL R7 1
- 0x001E2E07, // 0083 ADD R7 K23 R7
- 0x001C0F18, // 0084 ADD R7 R7 K24
- 0x60200008, // 0085 GETGBL R8 G8
- 0x5C240A00, // 0086 MOVE R9 R5
- 0x7C200200, // 0087 CALL R8 1
- 0x001C0E08, // 0088 ADD R7 R7 R8
- 0x58200019, // 0089 LDCONST R8 K25
- 0x7C180400, // 008A CALL R6 2
- 0x70020000, // 008B JMP #008D
- 0xB0080000, // 008C RAISE 2 R0 R0
- 0x8C10011A, // 008D GETMET R4 R0 K26
- 0x7C100200, // 008E CALL R4 1
- 0x80000000, // 008F RET 0
+ 0x4C100000, // 0004 LDNIL R4
+ 0x90020604, // 0005 SETMBR R0 K3 R4
+ 0x4C100000, // 0006 LDNIL R4
+ 0x90020804, // 0007 SETMBR R0 K4 R4
+ 0x8C100105, // 0008 GETMET R4 R0 K5
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C100400, // 000A CALL R4 2
+ 0x80000000, // 000B RET 0
})
)
);
@@ -714,2125 +518,6 @@ be_local_closure(class_Matter_Device_invoke_request, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: MtrInfo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(MtrInfo_one),
- /* K3 */ be_nested_str_weak(endpoint),
- /* K4 */ be_nested_str_weak(stop_iteration),
- /* K5 */ be_nested_str_weak(int),
- /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrInfo),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x1C140700, // 0000 EQ R5 R3 K0
- 0x7815FFFF, // 0001 JMPF R5 #0002
- 0x1C140700, // 0002 EQ R5 R3 K0
- 0x7816000D, // 0003 JMPF R5 #0012
- 0x60140010, // 0004 GETGBL R5 G16
- 0x88180101, // 0005 GETMBR R6 R0 K1
- 0x7C140200, // 0006 CALL R5 1
- 0xA8020005, // 0007 EXBLK 0 #000E
- 0x5C180A00, // 0008 MOVE R6 R5
- 0x7C180000, // 0009 CALL R6 0
- 0x8C1C0102, // 000A GETMET R7 R0 K2
- 0x88240D03, // 000B GETMBR R9 R6 K3
- 0x7C1C0400, // 000C CALL R7 2
- 0x7001FFF9, // 000D JMP #0008
- 0x58140004, // 000E LDCONST R5 K4
- 0xAC140200, // 000F CATCH R5 1 0
- 0xB0080000, // 0010 RAISE 2 R0 R0
- 0x70020011, // 0011 JMP #0024
- 0x60140004, // 0012 GETGBL R5 G4
- 0x5C180800, // 0013 MOVE R6 R4
- 0x7C140200, // 0014 CALL R5 1
- 0x1C140B05, // 0015 EQ R5 R5 K5
- 0x78160003, // 0016 JMPF R5 #001B
- 0x8C140102, // 0017 GETMET R5 R0 K2
- 0x5C1C0800, // 0018 MOVE R7 R4
- 0x7C140400, // 0019 CALL R5 2
- 0x70020008, // 001A JMP #0024
- 0x8C140106, // 001B GETMET R5 R0 K6
- 0x5C1C0600, // 001C MOVE R7 R3
- 0x7C140400, // 001D CALL R5 2
- 0x4C180000, // 001E LDNIL R6
- 0x20180A06, // 001F NE R6 R5 R6
- 0x781A0002, // 0020 JMPF R6 #0024
- 0x8C180102, // 0021 GETMET R6 R0 K2
- 0x88200B03, // 0022 GETMBR R8 R5 K3
- 0x7C180400, // 0023 CALL R6 2
- 0xB8160E00, // 0024 GETNGBL R5 K7
- 0x8C140B08, // 0025 GETMET R5 R5 K8
- 0x7C140200, // 0026 CALL R5 1
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_class_displayname
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(DISPLAY_NAME),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_displayname),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_add_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K4 */ be_nested_str_weak(_X27_X20skipping),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(next_ep),
- /* K7 */ be_nested_str_weak(plugins),
- /* K8 */ be_nested_str_weak(push),
- /* K9 */ be_nested_str_weak(type),
- /* K10 */ be_nested_str_weak(keys),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
- /* K13 */ be_nested_str_weak(conf_to_log),
- /* K14 */ be_const_int(2),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_persist),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(save_param),
- /* K19 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_add_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120008, // 0006 JMPF R4 #0010
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x60140008, // 0008 GETGBL R5 G8
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C140200, // 000A CALL R5 1
- 0x00160605, // 000B ADD R5 K3 R5
- 0x00140B04, // 000C ADD R5 R5 K4
- 0x58180005, // 000D LDCONST R6 K5
- 0x7C100400, // 000E CALL R4 2
- 0x80000800, // 000F RET 0
- 0x88100106, // 0010 GETMBR R4 R0 K6
- 0x60140008, // 0011 GETGBL R5 G8
- 0x5C180800, // 0012 MOVE R6 R4
- 0x7C140200, // 0013 CALL R5 1
- 0x5C180600, // 0014 MOVE R6 R3
- 0x5C1C0000, // 0015 MOVE R7 R0
- 0x5C200800, // 0016 MOVE R8 R4
- 0x5C240400, // 0017 MOVE R9 R2
- 0x7C180600, // 0018 CALL R6 3
- 0x881C0107, // 0019 GETMBR R7 R0 K7
- 0x8C1C0F08, // 001A GETMET R7 R7 K8
- 0x5C240C00, // 001B MOVE R9 R6
- 0x7C1C0400, // 001C CALL R7 2
- 0x601C0013, // 001D GETGBL R7 G19
- 0x7C1C0000, // 001E CALL R7 0
- 0x981E1201, // 001F SETIDX R7 K9 R1
- 0x60200010, // 0020 GETGBL R8 G16
- 0x8C24050A, // 0021 GETMET R9 R2 K10
- 0x7C240200, // 0022 CALL R9 1
- 0x7C200200, // 0023 CALL R8 1
- 0xA8020004, // 0024 EXBLK 0 #002A
- 0x5C241000, // 0025 MOVE R9 R8
- 0x7C240000, // 0026 CALL R9 0
- 0x94280409, // 0027 GETIDX R10 R2 R9
- 0x981C120A, // 0028 SETIDX R7 R9 R10
- 0x7001FFFA, // 0029 JMP #0025
- 0x5820000B, // 002A LDCONST R8 K11
- 0xAC200200, // 002B CATCH R8 1 0
- 0xB0080000, // 002C RAISE 2 R0 R0
- 0xB8220400, // 002D GETNGBL R8 K2
- 0x60240018, // 002E GETGBL R9 G24
- 0x5828000C, // 002F LDCONST R10 K12
- 0x5C2C0800, // 0030 MOVE R11 R4
- 0x5C300200, // 0031 MOVE R12 R1
- 0x8C34010D, // 0032 GETMET R13 R0 K13
- 0x5C3C0400, // 0033 MOVE R15 R2
- 0x7C340400, // 0034 CALL R13 2
- 0x7C240800, // 0035 CALL R9 4
- 0x5828000E, // 0036 LDCONST R10 K14
- 0x7C200400, // 0037 CALL R8 2
- 0x8820010F, // 0038 GETMBR R8 R0 K15
- 0x98200A07, // 0039 SETIDX R8 R5 R7
- 0x50200200, // 003A LDBOOL R8 1 0
- 0x90022008, // 003B SETMBR R0 K16 R8
- 0x88200106, // 003C GETMBR R8 R0 K6
- 0x00201111, // 003D ADD R8 R8 K17
- 0x90020C08, // 003E SETMBR R0 K6 R8
- 0x8C200112, // 003F GETMET R8 R0 K18
- 0x7C200200, // 0040 CALL R8 1
- 0x8C200113, // 0041 GETMET R8 R0 K19
- 0x7C200200, // 0042 CALL R8 1
- 0x80040800, // 0043 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_http_remote
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_http_remote, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(get_timeout),
- /* K3 */ be_nested_str_weak(set_timeout),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(HTTP_remote),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(set_info),
- }),
- be_str_weak(register_http_remote),
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x1C0C0604, // 0002 EQ R3 R3 R4
- 0x780E0002, // 0003 JMPF R3 #0007
- 0x600C0013, // 0004 GETGBL R3 G19
- 0x7C0C0000, // 0005 CALL R3 0
- 0x90020003, // 0006 SETMBR R0 K0 R3
- 0x4C0C0000, // 0007 LDNIL R3
- 0x88100100, // 0008 GETMBR R4 R0 K0
- 0x8C100901, // 0009 GETMET R4 R4 K1
- 0x5C180200, // 000A MOVE R6 R1
- 0x7C100400, // 000B CALL R4 2
- 0x78120009, // 000C JMPF R4 #0017
- 0x88100100, // 000D GETMBR R4 R0 K0
- 0x940C0801, // 000E GETIDX R3 R4 R1
- 0x8C140702, // 000F GETMET R5 R3 K2
- 0x7C140200, // 0010 CALL R5 1
- 0x14140405, // 0011 LT R5 R2 R5
- 0x78160002, // 0012 JMPF R5 #0016
- 0x8C140703, // 0013 GETMET R5 R3 K3
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x7C140400, // 0015 CALL R5 2
- 0x70020011, // 0016 JMP #0029
- 0xB8120800, // 0017 GETNGBL R4 K4
- 0x8C100905, // 0018 GETMET R4 R4 K5
- 0x5C180000, // 0019 MOVE R6 R0
- 0x5C1C0200, // 001A MOVE R7 R1
- 0x5C200400, // 001B MOVE R8 R2
- 0x7C100800, // 001C CALL R4 4
- 0x5C0C0800, // 001D MOVE R3 R4
- 0x88100106, // 001E GETMBR R4 R0 K6
- 0x8C100901, // 001F GETMET R4 R4 K1
- 0x5C180200, // 0020 MOVE R6 R1
- 0x7C100400, // 0021 CALL R4 2
- 0x78120003, // 0022 JMPF R4 #0027
- 0x8C100707, // 0023 GETMET R4 R3 K7
- 0x88180106, // 0024 GETMBR R6 R0 K6
- 0x94180C01, // 0025 GETIDX R6 R6 R1
- 0x7C100400, // 0026 CALL R4 2
- 0x88100100, // 0027 GETMBR R4 R0 K0
- 0x98100203, // 0028 SETIDX R4 R1 R3
- 0x80040600, // 0029 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_read_sensors_schedule
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(jitter),
- }),
- be_str_weak(add_read_sensors_schedule),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x1C080403, // 0002 EQ R2 R2 R3
- 0x740A0002, // 0003 JMPT R2 #0007
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x24080401, // 0005 GT R2 R2 R1
- 0x780A0005, // 0006 JMPF R2 #000D
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0xB80A0400, // 0008 GETNGBL R2 K2
- 0x8C080503, // 0009 GETMET R2 R2 K3
- 0x5C100200, // 000A MOVE R4 R1
- 0x7C080400, // 000B CALL R2 2
- 0x90020202, // 000C SETMBR R0 K1 R2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_received
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_received, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(msg_received),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x5C180200, // 0002 MOVE R6 R1
- 0x5C1C0400, // 0003 MOVE R7 R2
- 0x5C200600, // 0004 MOVE R8 R3
- 0x7C100800, // 0005 CALL R4 4
- 0x80040800, // 0006 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_qrcode_content
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(resize),
- /* K1 */ be_nested_str_weak(setbits),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(vendorid),
- /* K4 */ be_nested_str_weak(productid),
- /* K5 */ be_nested_str_weak(root_discriminator),
- /* K6 */ be_nested_str_weak(root_passcode),
- /* K7 */ be_const_int(134217727),
- /* K8 */ be_nested_str_weak(MT_X3A),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(Base38),
- /* K11 */ be_nested_str_weak(encode),
- }),
- be_str_weak(compute_qrcode_content),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x60040015, // 0000 GETGBL R1 G21
- 0x7C040000, // 0001 CALL R1 0
- 0x8C040300, // 0002 GETMET R1 R1 K0
- 0x540E000A, // 0003 LDINT R3 11
- 0x7C040400, // 0004 CALL R1 2
- 0x8C080301, // 0005 GETMET R2 R1 K1
- 0x58100002, // 0006 LDCONST R4 K2
- 0x5416000F, // 0007 LDINT R5 16
- 0x88180103, // 0008 GETMBR R6 R0 K3
- 0x7C080800, // 0009 CALL R2 4
- 0x8C080301, // 000A GETMET R2 R1 K1
- 0x54120012, // 000B LDINT R4 19
- 0x5416000F, // 000C LDINT R5 16
- 0x88180104, // 000D GETMBR R6 R0 K4
- 0x7C080800, // 000E CALL R2 4
- 0x8C080301, // 000F GETMET R2 R1 K1
- 0x54120024, // 0010 LDINT R4 37
- 0x54160007, // 0011 LDINT R5 8
- 0x541A0003, // 0012 LDINT R6 4
- 0x7C080800, // 0013 CALL R2 4
- 0x8C080301, // 0014 GETMET R2 R1 K1
- 0x5412002C, // 0015 LDINT R4 45
- 0x5416000B, // 0016 LDINT R5 12
- 0x88180105, // 0017 GETMBR R6 R0 K5
- 0x541E0FFE, // 0018 LDINT R7 4095
- 0x2C180C07, // 0019 AND R6 R6 R7
- 0x7C080800, // 001A CALL R2 4
- 0x8C080301, // 001B GETMET R2 R1 K1
- 0x54120038, // 001C LDINT R4 57
- 0x5416001A, // 001D LDINT R5 27
- 0x88180106, // 001E GETMBR R6 R0 K6
- 0x2C180D07, // 001F AND R6 R6 K7
- 0x7C080800, // 0020 CALL R2 4
- 0xB80A1200, // 0021 GETNGBL R2 K9
- 0x8808050A, // 0022 GETMBR R2 R2 K10
- 0x8C08050B, // 0023 GETMET R2 R2 K11
- 0x5C100200, // 0024 MOVE R4 R1
- 0x7C080400, // 0025 CALL R2 2
- 0x000A1002, // 0026 ADD R2 K8 R2
- 0x80040400, // 0027 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_device_map
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
- be_nested_proto(
- 19, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[38]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(START_ENDPOINT),
- /* K3 */ be_nested_str_weak(light),
- /* K4 */ be_nested_str_weak(get),
- /* K5 */ be_nested_str_weak(find),
- /* K6 */ be_nested_str_weak(channels),
- /* K7 */ be_nested_str_weak(),
- /* K8 */ be_const_int(0),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(type),
- /* K11 */ be_nested_str_weak(light1),
- /* K12 */ be_const_int(2),
- /* K13 */ be_nested_str_weak(light2),
- /* K14 */ be_nested_str_weak(light3),
- /* K15 */ be_nested_str_weak(tasmota),
- /* K16 */ be_nested_str_weak(cmd),
- /* K17 */ be_nested_str_weak(Status_X2013),
- /* K18 */ be_nested_str_weak(log),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(contains),
- /* K22 */ be_nested_str_weak(StatusSHT),
- /* K23 */ be_nested_str_weak(SHT),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20_X27_X25s_X27_X20_X3D_X20_X25s),
- /* K25 */ be_nested_str_weak(Relay1),
- /* K26 */ be_nested_str_weak(Relay2),
- /* K27 */ be_nested_str_weak(push),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20relay1_X3D_X25s_X20relay2_X3D_X25s),
- /* K29 */ be_nested_str_weak(TiltConfig),
- /* K30 */ be_nested_str_weak(shutter_X2Btilt),
- /* K31 */ be_nested_str_weak(shutter),
- /* K32 */ be_nested_str_weak(get_power),
- /* K33 */ be_nested_str_weak(relay),
- /* K34 */ be_nested_str_weak(load),
- /* K35 */ be_nested_str_weak(read_sensors),
- /* K36 */ be_nested_str_weak(autoconf_sensors_list),
- /* K37 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(autoconf_device_map),
- &be_const_str_solidified,
- ( &(const binstruction[196]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x60080013, // 0001 GETGBL R2 G19
- 0x7C080000, // 0002 CALL R2 0
- 0xB80E0200, // 0003 GETNGBL R3 K1
- 0x880C0702, // 0004 GETMBR R3 R3 K2
- 0x50100000, // 0005 LDBOOL R4 0 0
- 0xA4160600, // 0006 IMPORT R5 K3
- 0x8C180B04, // 0007 GETMET R6 R5 K4
- 0x7C180200, // 0008 CALL R6 1
- 0x4C1C0000, // 0009 LDNIL R7
- 0x201C0C07, // 000A NE R7 R6 R7
- 0x781E0024, // 000B JMPF R7 #0031
- 0x601C000C, // 000C GETGBL R7 G12
- 0x8C200D05, // 000D GETMET R8 R6 K5
- 0x58280006, // 000E LDCONST R10 K6
- 0x582C0007, // 000F LDCONST R11 K7
- 0x7C200600, // 0010 CALL R8 3
- 0x7C1C0200, // 0011 CALL R7 1
- 0x24200F08, // 0012 GT R8 R7 K8
- 0x7822001C, // 0013 JMPF R8 #0031
- 0x1C200F09, // 0014 EQ R8 R7 K9
- 0x78220007, // 0015 JMPF R8 #001E
- 0x60200008, // 0016 GETGBL R8 G8
- 0x5C240600, // 0017 MOVE R9 R3
- 0x7C200200, // 0018 CALL R8 1
- 0x60240013, // 0019 GETGBL R9 G19
- 0x7C240000, // 001A CALL R9 0
- 0x9826150B, // 001B SETIDX R9 K10 K11
- 0x98081009, // 001C SETIDX R2 R8 R9
- 0x70020010, // 001D JMP #002F
- 0x1C200F0C, // 001E EQ R8 R7 K12
- 0x78220007, // 001F JMPF R8 #0028
- 0x60200008, // 0020 GETGBL R8 G8
- 0x5C240600, // 0021 MOVE R9 R3
- 0x7C200200, // 0022 CALL R8 1
- 0x60240013, // 0023 GETGBL R9 G19
- 0x7C240000, // 0024 CALL R9 0
- 0x9826150D, // 0025 SETIDX R9 K10 K13
- 0x98081009, // 0026 SETIDX R2 R8 R9
- 0x70020006, // 0027 JMP #002F
- 0x60200008, // 0028 GETGBL R8 G8
- 0x5C240600, // 0029 MOVE R9 R3
- 0x7C200200, // 002A CALL R8 1
- 0x60240013, // 002B GETGBL R9 G19
- 0x7C240000, // 002C CALL R9 0
- 0x9826150E, // 002D SETIDX R9 K10 K14
- 0x98081009, // 002E SETIDX R2 R8 R9
- 0x50100200, // 002F LDBOOL R4 1 0
- 0x000C0709, // 0030 ADD R3 R3 K9
- 0xB81E1E00, // 0031 GETNGBL R7 K15
- 0x8C1C0F10, // 0032 GETMET R7 R7 K16
- 0x58240011, // 0033 LDCONST R9 K17
- 0x50280200, // 0034 LDBOOL R10 1 0
- 0x7C1C0600, // 0035 CALL R7 3
- 0x60200012, // 0036 GETGBL R8 G18
- 0x7C200000, // 0037 CALL R8 0
- 0xB8262400, // 0038 GETNGBL R9 K18
- 0x60280008, // 0039 GETGBL R10 G8
- 0x5C2C0E00, // 003A MOVE R11 R7
- 0x7C280200, // 003B CALL R10 1
- 0x002A260A, // 003C ADD R10 K19 R10
- 0x582C0014, // 003D LDCONST R11 K20
- 0x7C240400, // 003E CALL R9 2
- 0x4C240000, // 003F LDNIL R9
- 0x20240E09, // 0040 NE R9 R7 R9
- 0x7826004D, // 0041 JMPF R9 #0090
- 0x8C240F15, // 0042 GETMET R9 R7 K21
- 0x582C0016, // 0043 LDCONST R11 K22
- 0x7C240400, // 0044 CALL R9 2
- 0x78260049, // 0045 JMPF R9 #0090
- 0x941C0F16, // 0046 GETIDX R7 R7 K22
- 0x58240008, // 0047 LDCONST R9 K8
- 0x50280200, // 0048 LDBOOL R10 1 0
- 0x782A0045, // 0049 JMPF R10 #0090
- 0x60280008, // 004A GETGBL R10 G8
- 0x5C2C1200, // 004B MOVE R11 R9
- 0x7C280200, // 004C CALL R10 1
- 0x002A2E0A, // 004D ADD R10 K23 R10
- 0x8C2C0F15, // 004E GETMET R11 R7 K21
- 0x5C341400, // 004F MOVE R13 R10
- 0x7C2C0400, // 0050 CALL R11 2
- 0x742E0000, // 0051 JMPT R11 #0053
- 0x7002003C, // 0052 JMP #0090
- 0x942C0E0A, // 0053 GETIDX R11 R7 R10
- 0xB8322400, // 0054 GETNGBL R12 K18
- 0x60340018, // 0055 GETGBL R13 G24
- 0x58380018, // 0056 LDCONST R14 K24
- 0x5C3C1400, // 0057 MOVE R15 R10
- 0x60400008, // 0058 GETGBL R16 G8
- 0x5C441600, // 0059 MOVE R17 R11
- 0x7C400200, // 005A CALL R16 1
- 0x7C340600, // 005B CALL R13 3
- 0x58380014, // 005C LDCONST R14 K20
- 0x7C300400, // 005D CALL R12 2
- 0x8C301705, // 005E GETMET R12 R11 K5
- 0x58380019, // 005F LDCONST R14 K25
- 0x543DFFFE, // 0060 LDINT R15 -1
- 0x7C300600, // 0061 CALL R12 3
- 0x8C341705, // 0062 GETMET R13 R11 K5
- 0x583C001A, // 0063 LDCONST R15 K26
- 0x5441FFFE, // 0064 LDINT R16 -1
- 0x7C340600, // 0065 CALL R13 3
- 0x24381908, // 0066 GT R14 R12 K8
- 0x783A0002, // 0067 JMPF R14 #006B
- 0x8C38111B, // 0068 GETMET R14 R8 K27
- 0x04401909, // 0069 SUB R16 R12 K9
- 0x7C380400, // 006A CALL R14 2
- 0x24381B08, // 006B GT R14 R13 K8
- 0x783A0002, // 006C JMPF R14 #0070
- 0x8C38111B, // 006D GETMET R14 R8 K27
- 0x04401B09, // 006E SUB R16 R13 K9
- 0x7C380400, // 006F CALL R14 2
- 0xB83A2400, // 0070 GETNGBL R14 K18
- 0x603C0018, // 0071 GETGBL R15 G24
- 0x5840001C, // 0072 LDCONST R16 K28
- 0x5C441800, // 0073 MOVE R17 R12
- 0x5C481A00, // 0074 MOVE R18 R13
- 0x7C3C0600, // 0075 CALL R15 3
- 0x58400014, // 0076 LDCONST R16 K20
- 0x7C380400, // 0077 CALL R14 2
- 0x8C381705, // 0078 GETMET R14 R11 K5
- 0x5840001D, // 0079 LDCONST R16 K29
- 0x7C380400, // 007A CALL R14 2
- 0x783A0002, // 007B JMPF R14 #007F
- 0x943C1D0C, // 007C GETIDX R15 R14 K12
- 0x243C1F08, // 007D GT R15 R15 K8
- 0x743E0000, // 007E JMPT R15 #0080
- 0x503C0001, // 007F LDBOOL R15 0 1
- 0x503C0200, // 0080 LDBOOL R15 1 0
- 0x60400008, // 0081 GETGBL R16 G8
- 0x5C440600, // 0082 MOVE R17 R3
- 0x7C400200, // 0083 CALL R16 1
- 0x60440013, // 0084 GETGBL R17 G19
- 0x7C440000, // 0085 CALL R17 0
- 0x783E0001, // 0086 JMPF R15 #0089
- 0x5848001E, // 0087 LDCONST R18 K30
- 0x70020000, // 0088 JMP #008A
- 0x5848001F, // 0089 LDCONST R18 K31
- 0x98461412, // 008A SETIDX R17 K10 R18
- 0x98463E09, // 008B SETIDX R17 K31 R9
- 0x98082011, // 008C SETIDX R2 R16 R17
- 0x000C0709, // 008D ADD R3 R3 K9
- 0x00241309, // 008E ADD R9 R9 K9
- 0x7001FFB7, // 008F JMP #0048
- 0x6024000C, // 0090 GETGBL R9 G12
- 0xB82A1E00, // 0091 GETNGBL R10 K15
- 0x8C281520, // 0092 GETMET R10 R10 K32
- 0x7C280200, // 0093 CALL R10 1
- 0x7C240200, // 0094 CALL R9 1
- 0x58280008, // 0095 LDCONST R10 K8
- 0x78120000, // 0096 JMPF R4 #0098
- 0x04241309, // 0097 SUB R9 R9 K9
- 0x142C1409, // 0098 LT R11 R10 R9
- 0x782E0011, // 0099 JMPF R11 #00AC
- 0x8C2C1105, // 009A GETMET R11 R8 K5
- 0x5C341400, // 009B MOVE R13 R10
- 0x7C2C0400, // 009C CALL R11 2
- 0x4C300000, // 009D LDNIL R12
- 0x1C2C160C, // 009E EQ R11 R11 R12
- 0x782E0009, // 009F JMPF R11 #00AA
- 0x602C0008, // 00A0 GETGBL R11 G8
- 0x5C300600, // 00A1 MOVE R12 R3
- 0x7C2C0200, // 00A2 CALL R11 1
- 0x60300013, // 00A3 GETGBL R12 G19
- 0x7C300000, // 00A4 CALL R12 0
- 0x98321521, // 00A5 SETIDX R12 K10 K33
- 0x00341509, // 00A6 ADD R13 R10 K9
- 0x9832420D, // 00A7 SETIDX R12 K33 R13
- 0x9808160C, // 00A8 SETIDX R2 R11 R12
- 0x000C0709, // 00A9 ADD R3 R3 K9
- 0x00281509, // 00AA ADD R10 R10 K9
- 0x7001FFEB, // 00AB JMP #0098
- 0x8C2C0322, // 00AC GETMET R11 R1 K34
- 0xB8361E00, // 00AD GETNGBL R13 K15
- 0x8C341B23, // 00AE GETMET R13 R13 K35
- 0x7C340200, // 00AF CALL R13 1
- 0x7C2C0400, // 00B0 CALL R11 2
- 0x8C300124, // 00B1 GETMET R12 R0 K36
- 0x5C381600, // 00B2 MOVE R14 R11
- 0x7C300400, // 00B3 CALL R12 2
- 0x60340010, // 00B4 GETGBL R13 G16
- 0x5C381800, // 00B5 MOVE R14 R12
- 0x7C340200, // 00B6 CALL R13 1
- 0xA8020007, // 00B7 EXBLK 0 #00C0
- 0x5C381A00, // 00B8 MOVE R14 R13
- 0x7C380000, // 00B9 CALL R14 0
- 0x603C0008, // 00BA GETGBL R15 G8
- 0x5C400600, // 00BB MOVE R16 R3
- 0x7C3C0200, // 00BC CALL R15 1
- 0x98081E0E, // 00BD SETIDX R2 R15 R14
- 0x000C0709, // 00BE ADD R3 R3 K9
- 0x7001FFF7, // 00BF JMP #00B8
- 0x58340025, // 00C0 LDCONST R13 K37
- 0xAC340200, // 00C1 CATCH R13 1 0
- 0xB0080000, // 00C2 RAISE 2 R0 R0
- 0x80040400, // 00C3 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_announce_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(mdns_announce_op_discovery_all_fabrics),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_expansion
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(PathGenerator),
- /* K5 */ be_nested_str_weak(start),
- /* K6 */ be_nested_str_weak(next),
- /* K7 */ be_nested_str_weak(get_pi),
- /* K8 */ be_nested_str_weak(endpoint_found),
- /* K9 */ be_nested_str_weak(status),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K11 */ be_nested_str_weak(cluster_found),
- /* K12 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K13 */ be_nested_str_weak(attribute_found),
- /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K15 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
- }),
- be_str_weak(process_attribute_expansion),
- &be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
- 0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x88100301, // 0001 GETMBR R4 R1 K1
- 0x88140302, // 0002 GETMBR R5 R1 K2
- 0x50180000, // 0003 LDBOOL R6 0 0
- 0x501C0000, // 0004 LDBOOL R7 0 0
- 0x50200000, // 0005 LDBOOL R8 0 0
- 0x88240300, // 0006 GETMBR R9 R1 K0
- 0x4C280000, // 0007 LDNIL R10
- 0x2024120A, // 0008 NE R9 R9 R10
- 0x78260007, // 0009 JMPF R9 #0012
- 0x88240301, // 000A GETMBR R9 R1 K1
- 0x4C280000, // 000B LDNIL R10
- 0x2024120A, // 000C NE R9 R9 R10
- 0x78260003, // 000D JMPF R9 #0012
- 0x88240302, // 000E GETMBR R9 R1 K2
- 0x4C280000, // 000F LDNIL R10
- 0x2024120A, // 0010 NE R9 R9 R10
- 0x74260000, // 0011 JMPT R9 #0013
- 0x50240001, // 0012 LDBOOL R9 0 1
- 0x50240200, // 0013 LDBOOL R9 1 0
- 0xB82A0600, // 0014 GETNGBL R10 K3
- 0x8C281504, // 0015 GETMET R10 R10 K4
- 0x5C300000, // 0016 MOVE R12 R0
- 0x7C280400, // 0017 CALL R10 2
- 0x8C2C1505, // 0018 GETMET R11 R10 K5
- 0x5C340200, // 0019 MOVE R13 R1
- 0x4C380000, // 001A LDNIL R14
- 0x7C2C0600, // 001B CALL R11 3
- 0x4C2C0000, // 001C LDNIL R11
- 0x8C301506, // 001D GETMET R12 R10 K6
- 0x7C300200, // 001E CALL R12 1
- 0x5C2C1800, // 001F MOVE R11 R12
- 0x4C340000, // 0020 LDNIL R13
- 0x2030180D, // 0021 NE R12 R12 R13
- 0x78320009, // 0022 JMPF R12 #002D
- 0x5C300400, // 0023 MOVE R12 R2
- 0x8C341507, // 0024 GETMET R13 R10 K7
- 0x7C340200, // 0025 CALL R13 1
- 0x5C381600, // 0026 MOVE R14 R11
- 0x5C3C1200, // 0027 MOVE R15 R9
- 0x7C300600, // 0028 CALL R12 3
- 0x78260001, // 0029 JMPF R9 #002C
- 0x78320000, // 002A JMPF R12 #002C
- 0x80001A00, // 002B RET 0
- 0x7001FFEF, // 002C JMP #001D
- 0x78260019, // 002D JMPF R9 #0048
- 0x88301508, // 002E GETMBR R12 R10 K8
- 0x74320003, // 002F JMPT R12 #0034
- 0xB8320600, // 0030 GETNGBL R12 K3
- 0x8830190A, // 0031 GETMBR R12 R12 K10
- 0x9006120C, // 0032 SETMBR R1 K9 R12
- 0x7002000E, // 0033 JMP #0043
- 0x8830150B, // 0034 GETMBR R12 R10 K11
- 0x74320003, // 0035 JMPT R12 #003A
- 0xB8320600, // 0036 GETNGBL R12 K3
- 0x8830190C, // 0037 GETMBR R12 R12 K12
- 0x9006120C, // 0038 SETMBR R1 K9 R12
- 0x70020008, // 0039 JMP #0043
- 0x8830150D, // 003A GETMBR R12 R10 K13
- 0x74320003, // 003B JMPT R12 #0040
- 0xB8320600, // 003C GETNGBL R12 K3
- 0x8830190E, // 003D GETMBR R12 R12 K14
- 0x9006120C, // 003E SETMBR R1 K9 R12
- 0x70020002, // 003F JMP #0043
- 0xB8320600, // 0040 GETNGBL R12 K3
- 0x8830190F, // 0041 GETMBR R12 R12 K15
- 0x9006120C, // 0042 SETMBR R1 K9 R12
- 0x5C300400, // 0043 MOVE R12 R2
- 0x4C340000, // 0044 LDNIL R13
- 0x5C380200, // 0045 MOVE R14 R1
- 0x503C0200, // 0046 LDBOOL R15 1 0
- 0x7C300600, // 0047 CALL R12 3
- 0x80000000, // 0048 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_commands
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_commands, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 4]) {
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrJoin),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrUpdate),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(add_cmd),
- /* K2 */ be_nested_str_weak(MtrJoin),
- /* K3 */ be_nested_str_weak(MtrUpdate),
- /* K4 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(register_commands),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x580C0002, // 0002 LDCONST R3 K2
- 0x84100000, // 0003 CLOSURE R4 P0
- 0x7C040600, // 0004 CALL R1 3
- 0xB8060000, // 0005 GETNGBL R1 K0
- 0x8C040301, // 0006 GETMET R1 R1 K1
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x84100001, // 0008 CLOSURE R4 P1
- 0x7C040600, // 0009 CALL R1 3
- 0xB8060000, // 000A GETNGBL R1 K0
- 0x8C040301, // 000B GETMET R1 R1 K1
- 0x580C0004, // 000C LDCONST R3 K4
- 0x84100002, // 000D CLOSURE R4 P2
- 0x7C040600, // 000E CALL R1 3
- 0xA0000000, // 000F CLOSE R0
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_remotes_info
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_update_remotes_info, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(get_info),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(stop_iteration),
- /* K5 */ be_nested_str_weak(plugins_config_remotes),
- }),
- be_str_weak(update_remotes_info),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x60040013, // 0000 GETGBL R1 G19
- 0x7C040000, // 0001 CALL R1 0
- 0x88080100, // 0002 GETMBR R2 R0 K0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x20080403, // 0004 NE R2 R2 R3
- 0x780A0018, // 0005 JMPF R2 #001F
- 0x60080010, // 0006 GETGBL R2 G16
- 0x880C0100, // 0007 GETMBR R3 R0 K0
- 0x8C0C0701, // 0008 GETMET R3 R3 K1
- 0x7C0C0200, // 0009 CALL R3 1
- 0x7C080200, // 000A CALL R2 1
- 0xA802000F, // 000B EXBLK 0 #001C
- 0x5C0C0400, // 000C MOVE R3 R2
- 0x7C0C0000, // 000D CALL R3 0
- 0x88100100, // 000E GETMBR R4 R0 K0
- 0x94100803, // 000F GETIDX R4 R4 R3
- 0x8C100902, // 0010 GETMET R4 R4 K2
- 0x7C100200, // 0011 CALL R4 1
- 0x4C140000, // 0012 LDNIL R5
- 0x20140805, // 0013 NE R5 R4 R5
- 0x78160005, // 0014 JMPF R5 #001B
- 0x6014000C, // 0015 GETGBL R5 G12
- 0x5C180800, // 0016 MOVE R6 R4
- 0x7C140200, // 0017 CALL R5 1
- 0x24140B03, // 0018 GT R5 R5 K3
- 0x78160000, // 0019 JMPF R5 #001B
- 0x98040604, // 001A SETIDX R1 R3 R4
- 0x7001FFEF, // 001B JMP #000C
- 0x58080004, // 001C LDCONST R2 K4
- 0xAC080200, // 001D CATCH R2 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x90020A01, // 001F SETMBR R0 K5 R1
- 0x80040200, // 0020 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _compute_pbkdf
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
- be_nested_proto(
- 13, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(add),
- /* K2 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
- /* K3 */ be_nested_str_weak(derive),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(root_w0),
- /* K6 */ be_nested_str_weak(EC_P256),
- /* K7 */ be_nested_str_weak(mod),
- /* K8 */ be_nested_str_weak(root_L),
- /* K9 */ be_nested_str_weak(public_key),
- }),
- be_str_weak(_compute_pbkdf),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x60140015, // 0001 GETGBL R5 G21
- 0x7C140000, // 0002 CALL R5 0
- 0x8C140B01, // 0003 GETMET R5 R5 K1
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x54220003, // 0005 LDINT R8 4
- 0x7C140600, // 0006 CALL R5 3
- 0x8C180902, // 0007 GETMET R6 R4 K2
- 0x7C180200, // 0008 CALL R6 1
- 0x8C180D03, // 0009 GETMET R6 R6 K3
- 0x5C200A00, // 000A MOVE R8 R5
- 0x5C240600, // 000B MOVE R9 R3
- 0x5C280400, // 000C MOVE R10 R2
- 0x542E004F, // 000D LDINT R11 80
- 0x7C180A00, // 000E CALL R6 5
- 0x541E0026, // 000F LDINT R7 39
- 0x401E0807, // 0010 CONNECT R7 K4 R7
- 0x941C0C07, // 0011 GETIDX R7 R6 R7
- 0x54220027, // 0012 LDINT R8 40
- 0x5426004E, // 0013 LDINT R9 79
- 0x40201009, // 0014 CONNECT R8 R8 R9
- 0x94200C08, // 0015 GETIDX R8 R6 R8
- 0x8C240906, // 0016 GETMET R9 R4 K6
- 0x7C240200, // 0017 CALL R9 1
- 0x8C241307, // 0018 GETMET R9 R9 K7
- 0x5C2C0E00, // 0019 MOVE R11 R7
- 0x7C240400, // 001A CALL R9 2
- 0x90020A09, // 001B SETMBR R0 K5 R9
- 0x8C240906, // 001C GETMET R9 R4 K6
- 0x7C240200, // 001D CALL R9 1
- 0x8C241307, // 001E GETMET R9 R9 K7
- 0x5C2C1000, // 001F MOVE R11 R8
- 0x7C240400, // 0020 CALL R9 2
- 0x8C280906, // 0021 GETMET R10 R4 K6
- 0x7C280200, // 0022 CALL R10 1
- 0x8C281509, // 0023 GETMET R10 R10 K9
- 0x5C301200, // 0024 MOVE R12 R9
- 0x7C280400, // 0025 CALL R10 2
- 0x9002100A, // 0026 SETMBR R0 K8 R10
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_friendly_name
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_name),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_plugin_by_friendly_name),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x740A0004, // 0002 JMPT R2 #0008
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x1C080500, // 0006 EQ R2 R2 K0
- 0x780A0001, // 0007 JMPF R2 #000A
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- 0x58080000, // 000A LDCONST R2 K0
- 0x600C000C, // 000B GETGBL R3 G12
- 0x88100101, // 000C GETMBR R4 R0 K1
- 0x7C0C0200, // 000D CALL R3 1
- 0x140C0403, // 000E LT R3 R2 R3
- 0x780E0010, // 000F JMPF R3 #0021
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x940C0602, // 0011 GETIDX R3 R3 R2
- 0x8C100702, // 0012 GETMET R4 R3 K2
- 0x7C100200, // 0013 CALL R4 1
- 0x4C140000, // 0014 LDNIL R5
- 0x20140805, // 0015 NE R5 R4 R5
- 0x78160007, // 0016 JMPF R5 #001F
- 0x6014000C, // 0017 GETGBL R5 G12
- 0x5C180800, // 0018 MOVE R6 R4
- 0x7C140200, // 0019 CALL R5 1
- 0x24140B00, // 001A GT R5 R5 K0
- 0x78160002, // 001B JMPF R5 #001F
- 0x1C140801, // 001C EQ R5 R4 R1
- 0x78160000, // 001D JMPF R5 #001F
- 0x80040600, // 001E RET 1 R3
- 0x00080503, // 001F ADD R2 R2 K3
- 0x7001FFE9, // 0020 JMP #000B
- 0x4C0C0000, // 0021 LDNIL R3
- 0x80040600, // 0022 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clean_remotes
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_clean_remotes, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(introspect),
- /* K1 */ be_nested_str_weak(http_remotes),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_nested_str_weak(get),
- /* K6 */ be_nested_str_weak(http_remote),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(keys),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
- /* K13 */ be_nested_str_weak(addr),
- /* K14 */ be_const_int(3),
- /* K15 */ be_nested_str_weak(close),
- /* K16 */ be_nested_str_weak(remove),
- }),
- be_str_weak(clean_remotes),
- &be_const_str_solidified,
- ( &(const binstruction[80]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x780A004B, // 0002 JMPF R2 #004F
- 0x60080013, // 0003 GETGBL R2 G19
- 0x7C080000, // 0004 CALL R2 0
- 0x600C0010, // 0005 GETGBL R3 G16
- 0x88100101, // 0006 GETMBR R4 R0 K1
- 0x7C0C0200, // 0007 CALL R3 1
- 0xA8020003, // 0008 EXBLK 0 #000D
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x98080902, // 000B SETIDX R2 R4 K2
- 0x7001FFFB, // 000C JMP #0009
- 0x580C0003, // 000D LDCONST R3 K3
- 0xAC0C0200, // 000E CATCH R3 1 0
- 0xB0080000, // 000F RAISE 2 R0 R0
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100104, // 0011 GETMBR R4 R0 K4
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA802000F, // 0013 EXBLK 0 #0024
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x8C140305, // 0016 GETMET R5 R1 K5
- 0x5C1C0800, // 0017 MOVE R7 R4
- 0x58200006, // 0018 LDCONST R8 K6
- 0x7C140600, // 0019 CALL R5 3
- 0x4C180000, // 001A LDNIL R6
- 0x20180A06, // 001B NE R6 R5 R6
- 0x781A0005, // 001C JMPF R6 #0023
- 0x8C180507, // 001D GETMET R6 R2 K7
- 0x5C200A00, // 001E MOVE R8 R5
- 0x58240002, // 001F LDCONST R9 K2
- 0x7C180600, // 0020 CALL R6 3
- 0x00180D08, // 0021 ADD R6 R6 K8
- 0x98080A06, // 0022 SETIDX R2 R5 R6
- 0x7001FFEF, // 0023 JMP #0014
- 0x580C0003, // 0024 LDCONST R3 K3
- 0xAC0C0200, // 0025 CATCH R3 1 0
- 0xB0080000, // 0026 RAISE 2 R0 R0
- 0x600C0012, // 0027 GETGBL R3 G18
- 0x7C0C0000, // 0028 CALL R3 0
- 0x60100010, // 0029 GETGBL R4 G16
- 0x8C140509, // 002A GETMET R5 R2 K9
- 0x7C140200, // 002B CALL R5 1
- 0x7C100200, // 002C CALL R4 1
- 0xA8020008, // 002D EXBLK 0 #0037
- 0x5C140800, // 002E MOVE R5 R4
- 0x7C140000, // 002F CALL R5 0
- 0x94180405, // 0030 GETIDX R6 R2 R5
- 0x1C180D02, // 0031 EQ R6 R6 K2
- 0x781A0002, // 0032 JMPF R6 #0036
- 0x8C18070A, // 0033 GETMET R6 R3 K10
- 0x5C200A00, // 0034 MOVE R8 R5
- 0x7C180400, // 0035 CALL R6 2
- 0x7001FFF6, // 0036 JMP #002E
- 0x58100003, // 0037 LDCONST R4 K3
- 0xAC100200, // 0038 CATCH R4 1 0
- 0xB0080000, // 0039 RAISE 2 R0 R0
- 0x60100010, // 003A GETGBL R4 G16
- 0x5C140600, // 003B MOVE R5 R3
- 0x7C100200, // 003C CALL R4 1
- 0xA802000D, // 003D EXBLK 0 #004C
- 0x5C140800, // 003E MOVE R5 R4
- 0x7C140000, // 003F CALL R5 0
- 0xB81A1600, // 0040 GETNGBL R6 K11
- 0x881C0B0D, // 0041 GETMBR R7 R5 K13
- 0x001E1807, // 0042 ADD R7 K12 R7
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x7C180400, // 0044 CALL R6 2
- 0x8C180B0F, // 0045 GETMET R6 R5 K15
- 0x7C180200, // 0046 CALL R6 1
- 0x88180101, // 0047 GETMBR R6 R0 K1
- 0x8C180D10, // 0048 GETMET R6 R6 K16
- 0x88200B0D, // 0049 GETMBR R8 R5 K13
- 0x7C180400, // 004A CALL R6 2
- 0x7001FFF1, // 004B JMP #003E
- 0x58100003, // 004C LDCONST R4 K3
- 0xAC100200, // 004D CATCH R4 1 0
- 0xB0080000, // 004E RAISE 2 R0 R0
- 0x80000000, // 004F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_manual_pairing_code
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(root_discriminator),
- /* K1 */ be_nested_str_weak(root_passcode),
- /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Verhoeff),
- /* K5 */ be_nested_str_weak(checksum),
- }),
- be_str_weak(compute_manual_pairing_code),
- &be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x540A0FFE, // 0001 LDINT R2 4095
- 0x2C040202, // 0002 AND R1 R1 R2
- 0x540A0009, // 0003 LDINT R2 10
- 0x3C040202, // 0004 SHR R1 R1 R2
- 0x88080100, // 0005 GETMBR R2 R0 K0
- 0x540E02FF, // 0006 LDINT R3 768
- 0x2C080403, // 0007 AND R2 R2 R3
- 0x540E0005, // 0008 LDINT R3 6
- 0x38080403, // 0009 SHL R2 R2 R3
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x54123FFE, // 000B LDINT R4 16383
- 0x2C0C0604, // 000C AND R3 R3 R4
- 0x30080403, // 000D OR R2 R2 R3
- 0x880C0101, // 000E GETMBR R3 R0 K1
- 0x5412000D, // 000F LDINT R4 14
- 0x3C0C0604, // 0010 SHR R3 R3 R4
- 0x60100018, // 0011 GETGBL R4 G24
- 0x58140002, // 0012 LDCONST R5 K2
- 0x5C180200, // 0013 MOVE R6 R1
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x5C200600, // 0015 MOVE R8 R3
- 0x7C100800, // 0016 CALL R4 4
- 0xB8160600, // 0017 GETNGBL R5 K3
- 0x88140B04, // 0018 GETMBR R5 R5 K4
- 0x8C140B05, // 0019 GETMET R5 R5 K5
- 0x5C1C0800, // 001A MOVE R7 R4
- 0x7C140400, // 001B CALL R5 2
- 0x00100805, // 001C ADD R4 R4 R5
- 0x80040800, // 001D RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_device
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_device, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(plugins_config),
- /* K5 */ be_nested_str_weak(autoconf_device_map),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(adjust_next_ep),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(count_active_fabrics),
- /* K14 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(autoconf_device),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0101, // 0002 GETMBR R3 R0 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x24080502, // 0004 GT R2 R2 K2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x80000400, // 0006 RET 0
- 0x88080103, // 0007 GETMBR R2 R0 K3
- 0x740A000E, // 0008 JMPT R2 #0018
- 0x8C080105, // 0009 GETMET R2 R0 K5
- 0x7C080200, // 000A CALL R2 1
- 0x90020802, // 000B SETMBR R0 K4 R2
- 0x60080013, // 000C GETGBL R2 G19
- 0x7C080000, // 000D CALL R2 0
- 0x90020C02, // 000E SETMBR R0 K6 R2
- 0x8C080107, // 000F GETMET R2 R0 K7
- 0x7C080200, // 0010 CALL R2 1
- 0xB80A1000, // 0011 GETNGBL R2 K8
- 0x600C0008, // 0012 GETGBL R3 G8
- 0x88100104, // 0013 GETMBR R4 R0 K4
- 0x7C0C0200, // 0014 CALL R3 1
- 0x000E1203, // 0015 ADD R3 K9 R3
- 0x5810000A, // 0016 LDCONST R4 K10
- 0x7C080400, // 0017 CALL R2 2
- 0x8C08010B, // 0018 GETMET R2 R0 K11
- 0x88100104, // 0019 GETMBR R4 R0 K4
- 0x7C080400, // 001A CALL R2 2
- 0x88080103, // 001B GETMBR R2 R0 K3
- 0x740A0008, // 001C JMPT R2 #0026
- 0x8808010C, // 001D GETMBR R2 R0 K12
- 0x8C08050D, // 001E GETMET R2 R2 K13
- 0x7C080200, // 001F CALL R2 1
- 0x24080502, // 0020 GT R2 R2 K2
- 0x780A0003, // 0021 JMPF R2 #0026
- 0x50080200, // 0022 LDBOOL R2 1 0
- 0x90020602, // 0023 SETMBR R0 K3 R2
- 0x8C08010E, // 0024 GETMET R2 R0 K14
- 0x7C080200, // 0025 CALL R2 1
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attribute_updated
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_attribute_updated, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(Path),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(attribute),
- /* K5 */ be_nested_str_weak(message_handler),
- /* K6 */ be_nested_str_weak(im),
- /* K7 */ be_nested_str_weak(subs_shop),
- /* K8 */ be_nested_str_weak(attribute_updated_ctx),
- }),
- be_str_weak(attribute_updated),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x1C140805, // 0001 EQ R5 R4 R5
- 0x78160000, // 0002 JMPF R5 #0004
- 0x50100000, // 0003 LDBOOL R4 0 0
- 0xB8160000, // 0004 GETNGBL R5 K0
- 0x8C140B01, // 0005 GETMET R5 R5 K1
- 0x7C140200, // 0006 CALL R5 1
- 0x90160401, // 0007 SETMBR R5 K2 R1
- 0x90160602, // 0008 SETMBR R5 K3 R2
- 0x90160803, // 0009 SETMBR R5 K4 R3
- 0x88180105, // 000A GETMBR R6 R0 K5
- 0x88180D06, // 000B GETMBR R6 R6 K6
- 0x88180D07, // 000C GETMBR R6 R6 K7
- 0x8C180D08, // 000D GETMET R6 R6 K8
- 0x5C200A00, // 000E MOVE R8 R5
- 0x5C240800, // 000F MOVE R9 R4
- 0x7C180600, // 0010 CALL R6 3
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_before_restart
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_before_restart, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(stop_basic_commissioning),
- /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
- }),
- be_str_weak(save_before_restart),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x8C040101, // 0002 GETMET R1 R0 K1
- 0x7C040200, // 0003 CALL R1 1
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_root_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
- }),
- be_str_weak(is_root_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060003, // 0003 JMPF R1 #0008
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x1C040202, // 0006 EQ R1 R1 R2
- 0x74060000, // 0007 JMPT R1 #0009
- 0x50040001, // 0008 LDBOOL R1 0 1
- 0x50040200, // 0009 LDBOOL R1 1 0
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_commissioning_complete),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_commissioning_complete_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: adjust_next_ep
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(next_ep),
- /* K3 */ be_const_int(1),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(adjust_next_ep),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000A, // 0005 EXBLK 0 #0011
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x600C0009, // 0008 GETGBL R3 G9
- 0x5C100400, // 0009 MOVE R4 R2
- 0x7C0C0200, // 000A CALL R3 1
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0x28100604, // 000C GE R4 R3 R4
- 0x78120001, // 000D JMPF R4 #0010
- 0x00100703, // 000E ADD R4 R3 K3
- 0x90020404, // 000F SETMBR R0 K2 R4
- 0x7001FFF4, // 0010 JMP #0006
- 0x58040004, // 0011 LDCONST R1 K4
- 0xAC040200, // 0012 CATCH R1 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(started),
- /* K1 */ be_nested_str_weak(autoconf_device),
- /* K2 */ be_nested_str_weak(_start_udp),
- /* K3 */ be_nested_str_weak(UDP_PORT),
- /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
- }),
- be_str_weak(start),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x80000200, // 0002 RET 0
- 0x8C040101, // 0003 GETMET R1 R0 K1
- 0x7C040200, // 0004 CALL R1 1
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x8C040104, // 0008 GETMET R1 R0 K4
- 0x7C040200, // 0009 CALL R1 1
- 0x50040200, // 000A LDBOOL R1 1 0
- 0x90020001, // 000B SETMBR R0 K0 R1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_second, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(every_second),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(commissioning_open),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
- }),
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C040301, // 0004 GETMET R1 R1 K1
- 0x7C040200, // 0005 CALL R1 1
- 0x88040103, // 0006 GETMBR R1 R0 K3
- 0x4C080000, // 0007 LDNIL R2
- 0x20040202, // 0008 NE R1 R1 R2
- 0x78060006, // 0009 JMPF R1 #0011
- 0xB8060800, // 000A GETNGBL R1 K4
- 0x8C040305, // 000B GETMET R1 R1 K5
- 0x880C0103, // 000C GETMBR R3 R0 K3
- 0x7C040400, // 000D CALL R1 2
- 0x78060001, // 000E JMPF R1 #0011
- 0x4C040000, // 000F LDNIL R1
- 0x90020601, // 0010 SETMBR R0 K3 R1
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_fabric
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_remove_fabric, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
- /* K2 */ be_nested_str_weak(get_fabric_id),
- /* K3 */ be_nested_str_weak(copy),
- /* K4 */ be_nested_str_weak(reverse),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(message_handler),
- /* K8 */ be_nested_str_weak(im),
- /* K9 */ be_nested_str_weak(subs_shop),
- /* K10 */ be_nested_str_weak(remove_by_fabric),
- /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(remove_fabric),
- /* K14 */ be_nested_str_weak(save_fabrics),
- }),
- be_str_weak(remove_fabric),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0018, // 0002 JMPF R2 #001C
- 0xB80A0000, // 0003 GETNGBL R2 K0
- 0x8C0C0302, // 0004 GETMET R3 R1 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C0C0705, // 000A GETMET R3 R3 K5
- 0x7C0C0200, // 000B CALL R3 1
- 0x000E0203, // 000C ADD R3 K1 R3
- 0x58100006, // 000D LDCONST R4 K6
- 0x7C080400, // 000E CALL R2 2
- 0x88080107, // 000F GETMBR R2 R0 K7
- 0x88080508, // 0010 GETMBR R2 R2 K8
- 0x88080509, // 0011 GETMBR R2 R2 K9
- 0x8C08050A, // 0012 GETMET R2 R2 K10
- 0x5C100200, // 0013 MOVE R4 R1
- 0x7C080400, // 0014 CALL R2 2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x5C100200, // 0016 MOVE R4 R1
- 0x7C080400, // 0017 CALL R2 2
- 0x8808010C, // 0018 GETMBR R2 R0 K12
- 0x8C08050D, // 0019 GETMET R2 R2 K13
- 0x5C100200, // 001A MOVE R4 R1
- 0x7C080400, // 001B CALL R2 2
- 0x8808010C, // 001C GETMBR R2 R0 K12
- 0x8C08050E, // 001D GETMET R2 R2 K14
- 0x7C080200, // 001E CALL R2 1
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: sort_distinct
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_sort_distinct, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(remove),
- }),
- be_str_weak(sort_distinct),
- &be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080010, // 0001 GETGBL R2 G16
- 0x600C000C, // 0002 GETGBL R3 G12
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x040C0701, // 0005 SUB R3 R3 K1
- 0x400E0203, // 0006 CONNECT R3 K1 R3
- 0x7C080200, // 0007 CALL R2 1
- 0xA8020010, // 0008 EXBLK 0 #001A
- 0x5C0C0400, // 0009 MOVE R3 R2
- 0x7C0C0000, // 000A CALL R3 0
- 0x94100003, // 000B GETIDX R4 R0 R3
- 0x5C140600, // 000C MOVE R5 R3
- 0x24180B02, // 000D GT R6 R5 K2
- 0x781A0008, // 000E JMPF R6 #0018
- 0x04180B01, // 000F SUB R6 R5 K1
- 0x94180006, // 0010 GETIDX R6 R0 R6
- 0x24180C04, // 0011 GT R6 R6 R4
- 0x781A0004, // 0012 JMPF R6 #0018
- 0x04180B01, // 0013 SUB R6 R5 K1
- 0x94180006, // 0014 GETIDX R6 R0 R6
- 0x98000A06, // 0015 SETIDX R0 R5 R6
- 0x04140B01, // 0016 SUB R5 R5 K1
- 0x7001FFF4, // 0017 JMP #000D
- 0x98000A04, // 0018 SETIDX R0 R5 R4
- 0x7001FFEE, // 0019 JMP #0009
- 0x58080003, // 001A LDCONST R2 K3
- 0xAC080200, // 001B CATCH R2 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x58080001, // 001D LDCONST R2 K1
- 0x600C000C, // 001E GETGBL R3 G12
- 0x5C100000, // 001F MOVE R4 R0
- 0x7C0C0200, // 0020 CALL R3 1
- 0x180C0701, // 0021 LE R3 R3 K1
- 0x780E0000, // 0022 JMPF R3 #0024
- 0x80040000, // 0023 RET 1 R0
- 0x940C0102, // 0024 GETIDX R3 R0 K2
- 0x6010000C, // 0025 GETGBL R4 G12
- 0x5C140000, // 0026 MOVE R5 R0
- 0x7C100200, // 0027 CALL R4 1
- 0x14100404, // 0028 LT R4 R2 R4
- 0x78120009, // 0029 JMPF R4 #0034
- 0x94100002, // 002A GETIDX R4 R0 R2
- 0x1C100803, // 002B EQ R4 R4 R3
- 0x78120003, // 002C JMPF R4 #0031
- 0x8C100104, // 002D GETMET R4 R0 K4
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x70020001, // 0030 JMP #0033
- 0x940C0002, // 0031 GETIDX R3 R0 R2
- 0x00080501, // 0032 ADD R2 R2 K1
- 0x7001FFF0, // 0033 JMP #0025
- 0x80040000, // 0034 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _init_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
- }),
- be_str_weak(_init_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x1C040302, // 0003 EQ R1 R1 K2
- 0x78060001, // 0004 JMPF R1 #0007
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x7C040200, // 0006 CALL R1 1
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(remove_driver),
- /* K2 */ be_nested_str_weak(udp_server),
- /* K3 */ be_nested_str_weak(stop),
- }),
- be_str_weak(stop),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x88040102, // 0004 GETMBR R1 R0 K2
- 0x78060002, // 0005 JMPF R1 #0009
- 0x88040102, // 0006 GETMBR R1 R0 K2
- 0x8C040303, // 0007 GETMET R1 R1 K3
- 0x7C040200, // 0008 CALL R1 1
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _trigger_read_sensors
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(read_sensors),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
- /* K7 */ be_nested_str_weak(load),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(plugins),
- /* K10 */ be_nested_str_weak(parse_sensors),
- /* K11 */ be_const_int(1),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
- }),
- be_str_weak(_trigger_read_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x8C0C0703, // 0005 GETMET R3 R3 K3
- 0x58140004, // 0006 LDCONST R5 K4
- 0x7C0C0400, // 0007 CALL R3 2
- 0x780E0006, // 0008 JMPF R3 #0010
- 0xB80E0A00, // 0009 GETNGBL R3 K5
- 0x60100008, // 000A GETGBL R4 G8
- 0x5C140400, // 000B MOVE R5 R2
- 0x7C100200, // 000C CALL R4 1
- 0x00120C04, // 000D ADD R4 K6 R4
- 0x58140004, // 000E LDCONST R5 K4
- 0x7C0C0400, // 000F CALL R3 2
- 0x4C0C0000, // 0010 LDNIL R3
- 0x1C0C0403, // 0011 EQ R3 R2 R3
- 0x780E0000, // 0012 JMPF R3 #0014
- 0x80000600, // 0013 RET 0
- 0x8C0C0307, // 0014 GETMET R3 R1 K7
- 0x5C140400, // 0015 MOVE R5 R2
- 0x7C0C0400, // 0016 CALL R3 2
- 0x4C100000, // 0017 LDNIL R4
- 0x20100604, // 0018 NE R4 R3 R4
- 0x7812000D, // 0019 JMPF R4 #0028
- 0x58100008, // 001A LDCONST R4 K8
- 0x6014000C, // 001B GETGBL R5 G12
- 0x88180109, // 001C GETMBR R6 R0 K9
- 0x7C140200, // 001D CALL R5 1
- 0x14140805, // 001E LT R5 R4 R5
- 0x78160006, // 001F JMPF R5 #0027
- 0x88140109, // 0020 GETMBR R5 R0 K9
- 0x94140A04, // 0021 GETIDX R5 R5 R4
- 0x8C140B0A, // 0022 GETMET R5 R5 K10
- 0x5C1C0600, // 0023 MOVE R7 R3
- 0x7C140400, // 0024 CALL R5 2
- 0x0010090B, // 0025 ADD R4 R4 K11
- 0x7001FFF3, // 0026 JMP #001B
- 0x70020006, // 0027 JMP #002F
- 0xB8120A00, // 0028 GETNGBL R4 K5
- 0x60140008, // 0029 GETGBL R5 G8
- 0x5C180400, // 002A MOVE R6 R2
- 0x7C140200, // 002B CALL R5 1
- 0x00161805, // 002C ADD R5 K12 R5
- 0x58180004, // 002D LDCONST R6 K4
- 0x7C100400, // 002E CALL R4 2
- 0x80000000, // 002F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: _instantiate_plugins_from_config
********************************************************************/
@@ -3036,12 +721,61 @@ be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name
/********************************************************************
-** Solidified function: mdns_announce_op_discovery
+** Solidified function: every_250ms
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+be_local_closure(class_Matter_Device_every_250ms, /* name */
be_nested_proto(
- 14, /* nstack */
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(every_250ms),
+ /* K2 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_const_int(1),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x8C040102, // 0003 GETMET R1 R0 K2
+ 0x7C040200, // 0004 CALL R1 1
+ 0x58040003, // 0005 LDCONST R1 K3
+ 0x6008000C, // 0006 GETGBL R2 G12
+ 0x880C0104, // 0007 GETMBR R3 R0 K4
+ 0x7C080200, // 0008 CALL R2 1
+ 0x14080202, // 0009 LT R2 R1 R2
+ 0x780A0005, // 000A JMPF R2 #0011
+ 0x88080104, // 000B GETMBR R2 R0 K4
+ 0x94080401, // 000C GETIDX R2 R2 R1
+ 0x8C080501, // 000D GETMET R2 R2 K1
+ 0x7C080200, // 000E CALL R2 1
+ 0x00040305, // 000F ADD R1 R1 K5
+ 0x7001FFF4, // 0010 JMP #0006
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: add_read_sensors_schedule
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
+ be_nested_proto(
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3049,153 +783,145 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(find),
- /* K13 */ be_nested_str_weak(up),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K15 */ be_nested_str_weak(hostname_eth),
- /* K16 */ be_nested_str_weak(add_service),
- /* K17 */ be_nested_str_weak(_matter),
- /* K18 */ be_nested_str_weak(_tcp),
- /* K19 */ be_nested_str_weak(_I),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K21 */ be_nested_str_weak(add_subtype),
- /* K22 */ be_nested_str_weak(wifi),
- /* K23 */ be_nested_str_weak(hostname_wifi),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_const_int(2),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(jitter),
}),
- be_str_weak(mdns_announce_op_discovery),
+ be_str_weak(add_read_sensors_schedule),
&be_const_str_solidified,
- ( &(const binstruction[115]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA802005F, // 0001 EXBLK 0 #0062
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x001E1005, // 0011 ADD R7 K8 R5
- 0x58200009, // 0012 LDCONST R8 K9
- 0x7C180400, // 0013 CALL R6 2
- 0xB81A1400, // 0014 GETNGBL R6 K10
- 0x8C180D0B, // 0015 GETMET R6 R6 K11
- 0x7C180200, // 0016 CALL R6 1
- 0x8C180D0C, // 0017 GETMET R6 R6 K12
- 0x5820000D, // 0018 LDCONST R8 K13
- 0x7C180400, // 0019 CALL R6 2
- 0x781A001E, // 001A JMPF R6 #003A
- 0xB81A0E00, // 001B GETNGBL R6 K7
- 0x601C0018, // 001C GETGBL R7 G24
- 0x5820000E, // 001D LDCONST R8 K14
- 0x5824000B, // 001E LDCONST R9 K11
- 0x5C280A00, // 001F MOVE R10 R5
- 0x882C010F, // 0020 GETMBR R11 R0 K15
- 0x7C1C0800, // 0021 CALL R7 4
- 0x58200009, // 0022 LDCONST R8 K9
- 0x7C180400, // 0023 CALL R6 2
- 0x8C180510, // 0024 GETMET R6 R2 K16
- 0x58200011, // 0025 LDCONST R8 K17
- 0x58240012, // 0026 LDCONST R9 K18
- 0x542A15A3, // 0027 LDINT R10 5540
- 0x4C2C0000, // 0028 LDNIL R11
- 0x5C300A00, // 0029 MOVE R12 R5
- 0x8834010F, // 002A GETMBR R13 R0 K15
- 0x7C180E00, // 002B CALL R6 7
- 0x8C180905, // 002C GETMET R6 R4 K5
- 0x7C180200, // 002D CALL R6 1
- 0x001A2606, // 002E ADD R6 K19 R6
- 0xB81E0E00, // 002F GETNGBL R7 K7
- 0x00222806, // 0030 ADD R8 K20 R6
- 0x58240009, // 0031 LDCONST R9 K9
- 0x7C1C0400, // 0032 CALL R7 2
- 0x8C1C0515, // 0033 GETMET R7 R2 K21
- 0x58240011, // 0034 LDCONST R9 K17
- 0x58280012, // 0035 LDCONST R10 K18
- 0x5C2C0A00, // 0036 MOVE R11 R5
- 0x8830010F, // 0037 GETMBR R12 R0 K15
- 0x5C340C00, // 0038 MOVE R13 R6
- 0x7C1C0C00, // 0039 CALL R7 6
- 0xB81A1400, // 003A GETNGBL R6 K10
- 0x8C180D16, // 003B GETMET R6 R6 K22
- 0x7C180200, // 003C CALL R6 1
- 0x8C180D0C, // 003D GETMET R6 R6 K12
- 0x5820000D, // 003E LDCONST R8 K13
- 0x7C180400, // 003F CALL R6 2
- 0x781A001E, // 0040 JMPF R6 #0060
- 0xB81A0E00, // 0041 GETNGBL R6 K7
- 0x601C0018, // 0042 GETGBL R7 G24
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x58240016, // 0044 LDCONST R9 K22
- 0x5C280A00, // 0045 MOVE R10 R5
- 0x882C0117, // 0046 GETMBR R11 R0 K23
- 0x7C1C0800, // 0047 CALL R7 4
- 0x58200009, // 0048 LDCONST R8 K9
- 0x7C180400, // 0049 CALL R6 2
- 0x8C180510, // 004A GETMET R6 R2 K16
- 0x58200011, // 004B LDCONST R8 K17
- 0x58240012, // 004C LDCONST R9 K18
- 0x542A15A3, // 004D LDINT R10 5540
- 0x4C2C0000, // 004E LDNIL R11
- 0x5C300A00, // 004F MOVE R12 R5
- 0x88340117, // 0050 GETMBR R13 R0 K23
- 0x7C180E00, // 0051 CALL R6 7
- 0x8C180905, // 0052 GETMET R6 R4 K5
- 0x7C180200, // 0053 CALL R6 1
- 0x001A2606, // 0054 ADD R6 K19 R6
- 0xB81E0E00, // 0055 GETNGBL R7 K7
- 0x00222806, // 0056 ADD R8 K20 R6
- 0x58240009, // 0057 LDCONST R9 K9
- 0x7C1C0400, // 0058 CALL R7 2
- 0x8C1C0515, // 0059 GETMET R7 R2 K21
- 0x58240011, // 005A LDCONST R9 K17
- 0x58280012, // 005B LDCONST R10 K18
- 0x5C2C0A00, // 005C MOVE R11 R5
- 0x88300117, // 005D GETMBR R12 R0 K23
- 0x5C340C00, // 005E MOVE R13 R6
- 0x7C1C0C00, // 005F CALL R7 6
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7002000F, // 0061 JMP #0072
- 0xAC0C0002, // 0062 CATCH R3 0 2
- 0x7002000C, // 0063 JMP #0071
- 0xB8160E00, // 0064 GETNGBL R5 K7
- 0x60180008, // 0065 GETGBL R6 G8
- 0x5C1C0600, // 0066 MOVE R7 R3
- 0x7C180200, // 0067 CALL R6 1
- 0x001A3006, // 0068 ADD R6 K24 R6
- 0x00180D19, // 0069 ADD R6 R6 K25
- 0x601C0008, // 006A GETGBL R7 G8
- 0x5C200800, // 006B MOVE R8 R4
- 0x7C1C0200, // 006C CALL R7 1
- 0x00180C07, // 006D ADD R6 R6 R7
- 0x581C001A, // 006E LDCONST R7 K26
- 0x7C140400, // 006F CALL R5 2
- 0x70020000, // 0070 JMP #0072
- 0xB0080000, // 0071 RAISE 2 R0 R0
- 0x80000000, // 0072 RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x1C080403, // 0002 EQ R2 R2 R3
+ 0x740A0002, // 0003 JMPT R2 #0007
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x24080401, // 0005 GT R2 R2 R1
+ 0x780A0005, // 0006 JMPF R2 #000D
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0xB80A0400, // 0008 GETNGBL R2 K2
+ 0x8C080503, // 0009 GETMET R2 R2 K3
+ 0x5C100200, // 000A MOVE R4 R1
+ 0x7C080400, // 000B CALL R2 2
+ 0x90020202, // 000C SETMBR R0 K1 R2
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_stop, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(remove_driver),
+ /* K2 */ be_nested_str_weak(udp_server),
+ /* K3 */ be_nested_str_weak(stop),
+ }),
+ be_str_weak(stop),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040102, // 0004 GETMBR R1 R0 K2
+ 0x78060002, // 0005 JMPF R1 #0009
+ 0x88040102, // 0006 GETMBR R1 R0 K2
+ 0x8C040303, // 0007 GETMET R1 R1 K3
+ 0x7C040200, // 0008 CALL R1 1
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_qrcode_content
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(resize),
+ /* K1 */ be_nested_str_weak(setbits),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(vendorid),
+ /* K4 */ be_nested_str_weak(productid),
+ /* K5 */ be_nested_str_weak(root_discriminator),
+ /* K6 */ be_nested_str_weak(root_passcode),
+ /* K7 */ be_const_int(134217727),
+ /* K8 */ be_nested_str_weak(MT_X3A),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(Base38),
+ /* K11 */ be_nested_str_weak(encode),
+ }),
+ be_str_weak(compute_qrcode_content),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x60040015, // 0000 GETGBL R1 G21
+ 0x7C040000, // 0001 CALL R1 0
+ 0x8C040300, // 0002 GETMET R1 R1 K0
+ 0x540E000A, // 0003 LDINT R3 11
+ 0x7C040400, // 0004 CALL R1 2
+ 0x8C080301, // 0005 GETMET R2 R1 K1
+ 0x58100002, // 0006 LDCONST R4 K2
+ 0x5416000F, // 0007 LDINT R5 16
+ 0x88180103, // 0008 GETMBR R6 R0 K3
+ 0x7C080800, // 0009 CALL R2 4
+ 0x8C080301, // 000A GETMET R2 R1 K1
+ 0x54120012, // 000B LDINT R4 19
+ 0x5416000F, // 000C LDINT R5 16
+ 0x88180104, // 000D GETMBR R6 R0 K4
+ 0x7C080800, // 000E CALL R2 4
+ 0x8C080301, // 000F GETMET R2 R1 K1
+ 0x54120024, // 0010 LDINT R4 37
+ 0x54160007, // 0011 LDINT R5 8
+ 0x541A0003, // 0012 LDINT R6 4
+ 0x7C080800, // 0013 CALL R2 4
+ 0x8C080301, // 0014 GETMET R2 R1 K1
+ 0x5412002C, // 0015 LDINT R4 45
+ 0x5416000B, // 0016 LDINT R5 12
+ 0x88180105, // 0017 GETMBR R6 R0 K5
+ 0x541E0FFE, // 0018 LDINT R7 4095
+ 0x2C180C07, // 0019 AND R6 R6 R7
+ 0x7C080800, // 001A CALL R2 4
+ 0x8C080301, // 001B GETMET R2 R1 K1
+ 0x54120038, // 001C LDINT R4 57
+ 0x5416001A, // 001D LDINT R5 27
+ 0x88180106, // 001E GETMBR R6 R0 K6
+ 0x2C180D07, // 001F AND R6 R6 K7
+ 0x7C080800, // 0020 CALL R2 4
+ 0xB80A1200, // 0021 GETNGBL R2 K9
+ 0x8808050A, // 0022 GETMBR R2 R2 K10
+ 0x8C08050B, // 0023 GETMET R2 R2 K11
+ 0x5C100200, // 0024 MOVE R4 R1
+ 0x7C080400, // 0025 CALL R2 2
+ 0x000A1002, // 0026 ADD R2 K8 R2
+ 0x80040400, // 0027 RET 1 R2
})
)
);
@@ -3283,44 +1009,6 @@ be_local_closure(class_Matter_Device_k2l, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: get_plugin_class_arg
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_arg),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: stop_basic_commissioning
********************************************************************/
@@ -3384,1034 +1072,6 @@ be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: every_250ms
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_250ms, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(every_250ms),
- /* K2 */ be_nested_str_weak(read_sensors_scheduler),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_const_int(1),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x58040003, // 0005 LDCONST R1 K3
- 0x6008000C, // 0006 GETGBL R2 G12
- 0x880C0104, // 0007 GETMBR R3 R0 K4
- 0x7C080200, // 0008 CALL R2 1
- 0x14080202, // 0009 LT R2 R1 R2
- 0x780A0005, // 000A JMPF R2 #0011
- 0x88080104, // 000B GETMBR R2 R0 K4
- 0x94080401, // 000C GETIDX R2 R2 R1
- 0x8C080501, // 000D GETMET R2 R2 K1
- 0x7C080200, // 000E CALL R2 1
- 0x00040305, // 000F ADD R1 R1 K5
- 0x7001FFF4, // 0010 JMP #0006
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _start_udp
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__start_udp, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(UDPServer),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(start),
- }),
- be_str_weak(_start_udp),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80000400, // 0002 RET 0
- 0x4C080000, // 0003 LDNIL R2
- 0x1C080202, // 0004 EQ R2 R1 R2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x540615A3, // 0006 LDINT R1 5540
- 0xB80A0200, // 0007 GETNGBL R2 K1
- 0x600C0008, // 0008 GETGBL R3 G8
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C0C0200, // 000A CALL R3 1
- 0x000E0403, // 000B ADD R3 K2 R3
- 0x58100003, // 000C LDCONST R4 K3
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0800, // 000E GETNGBL R2 K4
- 0x8C080505, // 000F GETMET R2 R2 K5
- 0x5C100000, // 0010 MOVE R4 R0
- 0x58140006, // 0011 LDCONST R5 K6
- 0x5C180200, // 0012 MOVE R6 R1
- 0x7C080800, // 0013 CALL R2 4
- 0x90020002, // 0014 SETMBR R0 K0 R2
- 0x88080100, // 0015 GETMBR R2 R0 K0
- 0x8C080507, // 0016 GETMET R2 R2 K7
- 0x84100000, // 0017 CLOSURE R4 P0
- 0x7C080400, // 0018 CALL R2 2
- 0xA0000000, // 0019 CLOSE R0
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: k2l_num
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l_num, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(k2l_num),
- &be_const_str_solidified,
- ( &(const binstruction[52]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020007, // 000B EXBLK 0 #0014
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x601C0009, // 000F GETGBL R7 G9
- 0x5C200800, // 0010 MOVE R8 R4
- 0x7C1C0200, // 0011 CALL R7 1
- 0x7C140400, // 0012 CALL R5 2
- 0x7001FFF7, // 0013 JMP #000C
- 0x580C0003, // 0014 LDCONST R3 K3
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x600C0010, // 0017 GETGBL R3 G16
- 0x6010000C, // 0018 GETGBL R4 G12
- 0x5C140400, // 0019 MOVE R5 R2
- 0x7C100200, // 001A CALL R4 1
- 0x04100904, // 001B SUB R4 R4 K4
- 0x40120804, // 001C CONNECT R4 K4 R4
- 0x7C0C0200, // 001D CALL R3 1
- 0xA8020010, // 001E EXBLK 0 #0030
- 0x5C100600, // 001F MOVE R4 R3
- 0x7C100000, // 0020 CALL R4 0
- 0x94140404, // 0021 GETIDX R5 R2 R4
- 0x5C180800, // 0022 MOVE R6 R4
- 0x241C0D05, // 0023 GT R7 R6 K5
- 0x781E0008, // 0024 JMPF R7 #002E
- 0x041C0D04, // 0025 SUB R7 R6 K4
- 0x941C0407, // 0026 GETIDX R7 R2 R7
- 0x241C0E05, // 0027 GT R7 R7 R5
- 0x781E0004, // 0028 JMPF R7 #002E
- 0x041C0D04, // 0029 SUB R7 R6 K4
- 0x941C0407, // 002A GETIDX R7 R2 R7
- 0x98080C07, // 002B SETIDX R2 R6 R7
- 0x04180D04, // 002C SUB R6 R6 K4
- 0x7001FFF4, // 002D JMP #0023
- 0x98080C05, // 002E SETIDX R2 R6 R5
- 0x7001FFEE, // 002F JMP #001F
- 0x580C0003, // 0030 LDCONST R3 K3
- 0xAC0C0200, // 0031 CATCH R3 1 0
- 0xB0080000, // 0032 RAISE 2 R0 R0
- 0x80040400, // 0033 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_active_endpoints
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins),
- /* K1 */ be_nested_str_weak(get_endpoint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(get_active_endpoints),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x88100100, // 0003 GETMBR R4 R0 K0
- 0x7C0C0200, // 0004 CALL R3 1
- 0xA8020011, // 0005 EXBLK 0 #0018
- 0x5C100600, // 0006 MOVE R4 R3
- 0x7C100000, // 0007 CALL R4 0
- 0x8C140901, // 0008 GETMET R5 R4 K1
- 0x7C140200, // 0009 CALL R5 1
- 0x78060002, // 000A JMPF R1 #000E
- 0x1C180B02, // 000B EQ R6 R5 K2
- 0x781A0000, // 000C JMPF R6 #000E
- 0x7001FFF7, // 000D JMP #0006
- 0x8C180503, // 000E GETMET R6 R2 K3
- 0x5C200A00, // 000F MOVE R8 R5
- 0x7C180400, // 0010 CALL R6 2
- 0x4C1C0000, // 0011 LDNIL R7
- 0x1C180C07, // 0012 EQ R6 R6 R7
- 0x781A0002, // 0013 JMPF R6 #0017
- 0x8C180504, // 0014 GETMET R6 R2 K4
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x7C180400, // 0016 CALL R6 2
- 0x7001FFED, // 0017 JMP #0006
- 0x580C0005, // 0018 LDCONST R3 K5
- 0xAC0C0200, // 0019 CATCH R3 1 0
- 0xB0080000, // 001A RAISE 2 R0 R0
- 0x80040400, // 001B RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: check_config_ep
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_check_config_ep, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
- /* K12 */ be_nested_str_weak(next_ep),
- /* K13 */ be_const_int(1),
- }),
- be_str_weak(check_config_ep),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x600C0010, // 0003 GETGBL R3 G16
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x8C100901, // 0005 GETMET R4 R4 K1
- 0x7C100200, // 0006 CALL R4 1
- 0x7C0C0200, // 0007 CALL R3 1
- 0xA8020007, // 0008 EXBLK 0 #0011
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x8C140502, // 000B GETMET R5 R2 K2
- 0x601C0009, // 000C GETGBL R7 G9
- 0x5C200800, // 000D MOVE R8 R4
- 0x7C1C0200, // 000E CALL R7 1
- 0x7C140400, // 000F CALL R5 2
- 0x7001FFF7, // 0010 JMP #0009
- 0x580C0003, // 0011 LDCONST R3 K3
- 0xAC0C0200, // 0012 CATCH R3 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x600C0010, // 0014 GETGBL R3 G16
- 0x5C100400, // 0015 MOVE R4 R2
- 0x7C0C0200, // 0016 CALL R3 1
- 0xA8020030, // 0017 EXBLK 0 #0049
- 0x5C100600, // 0018 MOVE R4 R3
- 0x7C100000, // 0019 CALL R4 0
- 0x1C140904, // 001A EQ R5 R4 K4
- 0x7816000B, // 001B JMPF R5 #0028
- 0xB8160A00, // 001C GETNGBL R5 K5
- 0x58180006, // 001D LDCONST R6 K6
- 0x581C0007, // 001E LDCONST R7 K7
- 0x7C140400, // 001F CALL R5 2
- 0x88140100, // 0020 GETMBR R5 R0 K0
- 0x8C140B08, // 0021 GETMET R5 R5 K8
- 0x601C0008, // 0022 GETGBL R7 G8
- 0x5C200800, // 0023 MOVE R8 R4
- 0x7C1C0200, // 0024 CALL R7 1
- 0x7C140400, // 0025 CALL R5 2
- 0x50040200, // 0026 LDBOOL R1 1 0
- 0x7002001F, // 0027 JMP #0048
- 0xB8161200, // 0028 GETNGBL R5 K9
- 0x88140B0A, // 0029 GETMBR R5 R5 K10
- 0x1C140805, // 002A EQ R5 R4 R5
- 0x7816001B, // 002B JMPF R5 #0048
- 0x50040200, // 002C LDBOOL R1 1 0
- 0xB8160A00, // 002D GETNGBL R5 K5
- 0x60180018, // 002E GETGBL R6 G24
- 0x581C000B, // 002F LDCONST R7 K11
- 0x5C200800, // 0030 MOVE R8 R4
- 0x8824010C, // 0031 GETMBR R9 R0 K12
- 0x7C180600, // 0032 CALL R6 3
- 0x581C0007, // 0033 LDCONST R7 K7
- 0x7C140400, // 0034 CALL R5 2
- 0x60140008, // 0035 GETGBL R5 G8
- 0x8818010C, // 0036 GETMBR R6 R0 K12
- 0x7C140200, // 0037 CALL R5 1
- 0x88180100, // 0038 GETMBR R6 R0 K0
- 0x601C0008, // 0039 GETGBL R7 G8
- 0x5C200800, // 003A MOVE R8 R4
- 0x7C1C0200, // 003B CALL R7 1
- 0x88200100, // 003C GETMBR R8 R0 K0
- 0x941C1007, // 003D GETIDX R7 R8 R7
- 0x98180A07, // 003E SETIDX R6 R5 R7
- 0x88140100, // 003F GETMBR R5 R0 K0
- 0x8C140B08, // 0040 GETMET R5 R5 K8
- 0x601C0008, // 0041 GETGBL R7 G8
- 0x5C200800, // 0042 MOVE R8 R4
- 0x7C1C0200, // 0043 CALL R7 1
- 0x7C140400, // 0044 CALL R5 2
- 0x8814010C, // 0045 GETMBR R5 R0 K12
- 0x00140B0D, // 0046 ADD R5 R5 K13
- 0x90021805, // 0047 SETMBR R0 K12 R5
- 0x7001FFCE, // 0048 JMP #0018
- 0x580C0003, // 0049 LDCONST R3 K3
- 0xAC0C0200, // 004A CATCH R3 1 0
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80040200, // 004C RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_send
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_send, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(send_UDP),
- }),
- be_str_weak(msg_send),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_sensors_list
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(k2l),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(Temperature),
- /* K3 */ be_nested_str_weak(_X23Temperature),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(type),
- /* K6 */ be_nested_str_weak(temperature),
- /* K7 */ be_nested_str_weak(filter),
- /* K8 */ be_nested_str_weak(stop_iteration),
- /* K9 */ be_nested_str_weak(Pressure),
- /* K10 */ be_nested_str_weak(_X23Pressure),
- /* K11 */ be_nested_str_weak(pressure),
- /* K12 */ be_nested_str_weak(Illuminance),
- /* K13 */ be_nested_str_weak(_X23Illuminance),
- /* K14 */ be_nested_str_weak(illuminance),
- /* K15 */ be_nested_str_weak(Humidity),
- /* K16 */ be_nested_str_weak(_X23Humidity),
- /* K17 */ be_nested_str_weak(humidity),
- }),
- be_str_weak(autoconf_sensors_list),
- &be_const_str_solidified,
- ( &(const binstruction[119]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100100, // 0003 GETMET R4 R0 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA8020013, // 0007 EXBLK 0 #001C
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x94140204, // 000A GETIDX R5 R1 R4
- 0x6018000F, // 000B GETGBL R6 G15
- 0x5C1C0A00, // 000C MOVE R7 R5
- 0x60200013, // 000D GETGBL R8 G19
- 0x7C180400, // 000E CALL R6 2
- 0x781A000A, // 000F JMPF R6 #001B
- 0x8C180B01, // 0010 GETMET R6 R5 K1
- 0x58200002, // 0011 LDCONST R8 K2
- 0x7C180400, // 0012 CALL R6 2
- 0x781A0006, // 0013 JMPF R6 #001B
- 0x00180903, // 0014 ADD R6 R4 K3
- 0x8C1C0504, // 0015 GETMET R7 R2 K4
- 0x60240013, // 0016 GETGBL R9 G19
- 0x7C240000, // 0017 CALL R9 0
- 0x98260B06, // 0018 SETIDX R9 K5 K6
- 0x98260E06, // 0019 SETIDX R9 K7 R6
- 0x7C1C0400, // 001A CALL R7 2
- 0x7001FFEB, // 001B JMP #0008
- 0x580C0008, // 001C LDCONST R3 K8
- 0xAC0C0200, // 001D CATCH R3 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x600C0010, // 001F GETGBL R3 G16
- 0x8C100100, // 0020 GETMET R4 R0 K0
- 0x5C180200, // 0021 MOVE R6 R1
- 0x7C100400, // 0022 CALL R4 2
- 0x7C0C0200, // 0023 CALL R3 1
- 0xA8020013, // 0024 EXBLK 0 #0039
- 0x5C100600, // 0025 MOVE R4 R3
- 0x7C100000, // 0026 CALL R4 0
- 0x94140204, // 0027 GETIDX R5 R1 R4
- 0x6018000F, // 0028 GETGBL R6 G15
- 0x5C1C0A00, // 0029 MOVE R7 R5
- 0x60200013, // 002A GETGBL R8 G19
- 0x7C180400, // 002B CALL R6 2
- 0x781A000A, // 002C JMPF R6 #0038
- 0x8C180B01, // 002D GETMET R6 R5 K1
- 0x58200009, // 002E LDCONST R8 K9
- 0x7C180400, // 002F CALL R6 2
- 0x781A0006, // 0030 JMPF R6 #0038
- 0x0018090A, // 0031 ADD R6 R4 K10
- 0x8C1C0504, // 0032 GETMET R7 R2 K4
- 0x60240013, // 0033 GETGBL R9 G19
- 0x7C240000, // 0034 CALL R9 0
- 0x98260B0B, // 0035 SETIDX R9 K5 K11
- 0x98260E06, // 0036 SETIDX R9 K7 R6
- 0x7C1C0400, // 0037 CALL R7 2
- 0x7001FFEB, // 0038 JMP #0025
- 0x580C0008, // 0039 LDCONST R3 K8
- 0xAC0C0200, // 003A CATCH R3 1 0
- 0xB0080000, // 003B RAISE 2 R0 R0
- 0x600C0010, // 003C GETGBL R3 G16
- 0x8C100100, // 003D GETMET R4 R0 K0
- 0x5C180200, // 003E MOVE R6 R1
- 0x7C100400, // 003F CALL R4 2
- 0x7C0C0200, // 0040 CALL R3 1
- 0xA8020013, // 0041 EXBLK 0 #0056
- 0x5C100600, // 0042 MOVE R4 R3
- 0x7C100000, // 0043 CALL R4 0
- 0x94140204, // 0044 GETIDX R5 R1 R4
- 0x6018000F, // 0045 GETGBL R6 G15
- 0x5C1C0A00, // 0046 MOVE R7 R5
- 0x60200013, // 0047 GETGBL R8 G19
- 0x7C180400, // 0048 CALL R6 2
- 0x781A000A, // 0049 JMPF R6 #0055
- 0x8C180B01, // 004A GETMET R6 R5 K1
- 0x5820000C, // 004B LDCONST R8 K12
- 0x7C180400, // 004C CALL R6 2
- 0x781A0006, // 004D JMPF R6 #0055
- 0x0018090D, // 004E ADD R6 R4 K13
- 0x8C1C0504, // 004F GETMET R7 R2 K4
- 0x60240013, // 0050 GETGBL R9 G19
- 0x7C240000, // 0051 CALL R9 0
- 0x98260B0E, // 0052 SETIDX R9 K5 K14
- 0x98260E06, // 0053 SETIDX R9 K7 R6
- 0x7C1C0400, // 0054 CALL R7 2
- 0x7001FFEB, // 0055 JMP #0042
- 0x580C0008, // 0056 LDCONST R3 K8
- 0xAC0C0200, // 0057 CATCH R3 1 0
- 0xB0080000, // 0058 RAISE 2 R0 R0
- 0x600C0010, // 0059 GETGBL R3 G16
- 0x8C100100, // 005A GETMET R4 R0 K0
- 0x5C180200, // 005B MOVE R6 R1
- 0x7C100400, // 005C CALL R4 2
- 0x7C0C0200, // 005D CALL R3 1
- 0xA8020013, // 005E EXBLK 0 #0073
- 0x5C100600, // 005F MOVE R4 R3
- 0x7C100000, // 0060 CALL R4 0
- 0x94140204, // 0061 GETIDX R5 R1 R4
- 0x6018000F, // 0062 GETGBL R6 G15
- 0x5C1C0A00, // 0063 MOVE R7 R5
- 0x60200013, // 0064 GETGBL R8 G19
- 0x7C180400, // 0065 CALL R6 2
- 0x781A000A, // 0066 JMPF R6 #0072
- 0x8C180B01, // 0067 GETMET R6 R5 K1
- 0x5820000F, // 0068 LDCONST R8 K15
- 0x7C180400, // 0069 CALL R6 2
- 0x781A0006, // 006A JMPF R6 #0072
- 0x00180910, // 006B ADD R6 R4 K16
- 0x8C1C0504, // 006C GETMET R7 R2 K4
- 0x60240013, // 006D GETGBL R9 G19
- 0x7C240000, // 006E CALL R9 0
- 0x98260B11, // 006F SETIDX R9 K5 K17
- 0x98260E06, // 0070 SETIDX R9 K7 R6
- 0x7C1C0400, // 0071 CALL R7 2
- 0x7001FFEB, // 0072 JMP #005F
- 0x580C0008, // 0073 LDCONST R3 K8
- 0xAC0C0200, // 0074 CATCH R3 1 0
- 0xB0080000, // 0075 RAISE 2 R0 R0
- 0x80040400, // 0076 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_endpoint),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_plugin_by_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0008, // 0005 JMPF R3 #000F
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x8C100702, // 0008 GETMET R4 R3 K2
- 0x7C100200, // 0009 CALL R4 1
- 0x1C100801, // 000A EQ R4 R4 R1
- 0x78120000, // 000B JMPF R4 #000D
- 0x80040600, // 000C RET 1 R3
- 0x00080503, // 000D ADD R2 R2 K3
- 0x7001FFF1, // 000E JMP #0001
- 0x4C0C0000, // 000F LDNIL R3
- 0x80040600, // 0010 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_root_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
- be_nested_proto(
- 13, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
- /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(compute_qrcode_content),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(publish_result),
- /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
- /* K9 */ be_nested_str_weak(Matter),
- /* K10 */ be_nested_str_weak(_compute_pbkdf),
- /* K11 */ be_nested_str_weak(root_passcode),
- /* K12 */ be_nested_str_weak(root_iterations),
- /* K13 */ be_nested_str_weak(root_salt),
- /* K14 */ be_nested_str_weak(start_basic_commissioning),
- /* K15 */ be_nested_str_weak(root_discriminator),
- /* K16 */ be_nested_str_weak(root_w0),
- /* K17 */ be_nested_str_weak(root_L),
- }),
- be_str_weak(start_root_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x88040100, // 0003 GETMBR R1 R0 K0
- 0x8C080101, // 0004 GETMET R2 R0 K1
- 0x7C080200, // 0005 CALL R2 1
- 0xB80E0400, // 0006 GETNGBL R3 K2
- 0x60100018, // 0007 GETGBL R4 G24
- 0x58140003, // 0008 LDCONST R5 K3
- 0x5C180400, // 0009 MOVE R6 R2
- 0x7C100400, // 000A CALL R4 2
- 0x58140004, // 000B LDCONST R5 K4
- 0x7C0C0400, // 000C CALL R3 2
- 0x8C0C0105, // 000D GETMET R3 R0 K5
- 0x7C0C0200, // 000E CALL R3 1
- 0xB8120C00, // 000F GETNGBL R4 K6
- 0x8C100907, // 0010 GETMET R4 R4 K7
- 0x60180018, // 0011 GETGBL R6 G24
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x5C200400, // 0013 MOVE R8 R2
- 0x5C240600, // 0014 MOVE R9 R3
- 0x7C180600, // 0015 CALL R6 3
- 0x581C0009, // 0016 LDCONST R7 K9
- 0x7C100600, // 0017 CALL R4 3
- 0x8C10010A, // 0018 GETMET R4 R0 K10
- 0x8818010B, // 0019 GETMBR R6 R0 K11
- 0x881C010C, // 001A GETMBR R7 R0 K12
- 0x8820010D, // 001B GETMBR R8 R0 K13
- 0x7C100800, // 001C CALL R4 4
- 0x8C10010E, // 001D GETMET R4 R0 K14
- 0x5C180200, // 001E MOVE R6 R1
- 0x881C010C, // 001F GETMBR R7 R0 K12
- 0x8820010F, // 0020 GETMBR R8 R0 K15
- 0x8824010D, // 0021 GETMBR R9 R0 K13
- 0x88280110, // 0022 GETMBR R10 R0 K16
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x4C300000, // 0024 LDNIL R12
- 0x7C101000, // 0025 CALL R4 8
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_read_solo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_read_solo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K4 */ be_nested_str_weak(status),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K7 */ be_nested_str_weak(contains_cluster),
- /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K9 */ be_nested_str_weak(contains_attribute),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- }),
- be_str_weak(process_attribute_read_solo),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0x88100302, // 0002 GETMBR R4 R1 K2
- 0x4C140000, // 0003 LDNIL R5
- 0x1C140405, // 0004 EQ R5 R2 R5
- 0x74160005, // 0005 JMPT R5 #000C
- 0x4C140000, // 0006 LDNIL R5
- 0x1C140605, // 0007 EQ R5 R3 R5
- 0x74160002, // 0008 JMPT R5 #000C
- 0x4C140000, // 0009 LDNIL R5
- 0x1C140805, // 000A EQ R5 R4 R5
- 0x78160001, // 000B JMPF R5 #000E
- 0x4C140000, // 000C LDNIL R5
- 0x80040A00, // 000D RET 1 R5
- 0x8C140103, // 000E GETMET R5 R0 K3
- 0x5C1C0400, // 000F MOVE R7 R2
- 0x7C140400, // 0010 CALL R5 2
- 0x4C180000, // 0011 LDNIL R6
- 0x1C180A06, // 0012 EQ R6 R5 R6
- 0x781A0004, // 0013 JMPF R6 #0019
- 0xB81A0A00, // 0014 GETNGBL R6 K5
- 0x88180D06, // 0015 GETMBR R6 R6 K6
- 0x90060806, // 0016 SETMBR R1 K4 R6
- 0x4C180000, // 0017 LDNIL R6
- 0x80040C00, // 0018 RET 1 R6
- 0x8C180B07, // 0019 GETMET R6 R5 K7
- 0x5C200600, // 001A MOVE R8 R3
- 0x7C180400, // 001B CALL R6 2
- 0x741A0004, // 001C JMPT R6 #0022
- 0xB81A0A00, // 001D GETNGBL R6 K5
- 0x88180D08, // 001E GETMBR R6 R6 K8
- 0x90060806, // 001F SETMBR R1 K4 R6
- 0x4C180000, // 0020 LDNIL R6
- 0x80040C00, // 0021 RET 1 R6
- 0x8C180B09, // 0022 GETMET R6 R5 K9
- 0x5C200600, // 0023 MOVE R8 R3
- 0x5C240800, // 0024 MOVE R9 R4
- 0x7C180600, // 0025 CALL R6 3
- 0x741A0004, // 0026 JMPT R6 #002C
- 0xB81A0A00, // 0027 GETNGBL R6 K5
- 0x88180D0A, // 0028 GETMBR R6 R6 K10
- 0x90060806, // 0029 SETMBR R1 K4 R6
- 0x4C180000, // 002A LDNIL R6
- 0x80040C00, // 002B RET 1 R6
- 0x80040A00, // 002C RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_operational_discovery
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(mdns),
- /* K2 */ be_nested_str_weak(stop_basic_commissioning),
- /* K3 */ be_nested_str_weak(root_w0),
- /* K4 */ be_nested_str_weak(root_L),
- /* K5 */ be_nested_str_weak(mdns_announce_op_discovery),
- }),
- be_str_weak(start_operational_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100102, // 0002 GETMET R4 R0 K2
- 0x7C100200, // 0003 CALL R4 1
- 0x4C100000, // 0004 LDNIL R4
- 0x90020604, // 0005 SETMBR R0 K3 R4
- 0x4C100000, // 0006 LDNIL R4
- 0x90020804, // 0007 SETMBR R0 K4 R4
- 0x8C100105, // 0008 GETMET R4 R0 K5
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C100400, // 000A CALL R4 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: load_param
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_load_param, /* name */
- be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[35]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(FILENAME),
- /* K2 */ be_nested_str_weak(read),
- /* K3 */ be_nested_str_weak(close),
- /* K4 */ be_nested_str_weak(json),
- /* K5 */ be_nested_str_weak(load),
- /* K6 */ be_nested_str_weak(root_discriminator),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(distinguish),
- /* K9 */ be_nested_str_weak(root_passcode),
- /* K10 */ be_nested_str_weak(passcode),
- /* K11 */ be_nested_str_weak(ipv4only),
- /* K12 */ be_nested_str_weak(disable_bridge_mode),
- /* K13 */ be_nested_str_weak(next_ep),
- /* K14 */ be_nested_str_weak(nextep),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(config),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(adjust_next_ep),
- /* K21 */ be_nested_str_weak(check_config_ep),
- /* K22 */ be_nested_str_weak(plugins_persist),
- /* K23 */ be_nested_str_weak(plugins_config_remotes),
- /* K24 */ be_nested_str_weak(remotes),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
- /* K26 */ be_nested_str_weak(io_error),
- /* K27 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
- /* K28 */ be_nested_str_weak(_X7C),
- /* K29 */ be_const_int(2),
- /* K30 */ be_nested_str_weak(random),
- /* K31 */ be_nested_str_weak(get),
- /* K32 */ be_const_int(0),
- /* K33 */ be_nested_str_weak(generate_random_passcode),
- /* K34 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(load_param),
- &be_const_str_solidified,
- ( &(const binstruction[127]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x50080000, // 0001 LDBOOL R2 0 0
- 0xA802004E, // 0002 EXBLK 0 #0052
- 0x600C0011, // 0003 GETGBL R3 G17
- 0x88100101, // 0004 GETMBR R4 R0 K1
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C100702, // 0006 GETMET R4 R3 K2
- 0x7C100200, // 0007 CALL R4 1
- 0x8C140703, // 0008 GETMET R5 R3 K3
- 0x7C140200, // 0009 CALL R5 1
- 0xA4160800, // 000A IMPORT R5 K4
- 0x8C180B05, // 000B GETMET R6 R5 K5
- 0x5C200800, // 000C MOVE R8 R4
- 0x7C180400, // 000D CALL R6 2
- 0x8C1C0D07, // 000E GETMET R7 R6 K7
- 0x58240008, // 000F LDCONST R9 K8
- 0x88280106, // 0010 GETMBR R10 R0 K6
- 0x7C1C0600, // 0011 CALL R7 3
- 0x90020C07, // 0012 SETMBR R0 K6 R7
- 0x8C1C0D07, // 0013 GETMET R7 R6 K7
- 0x5824000A, // 0014 LDCONST R9 K10
- 0x88280109, // 0015 GETMBR R10 R0 K9
- 0x7C1C0600, // 0016 CALL R7 3
- 0x90021207, // 0017 SETMBR R0 K9 R7
- 0x601C0017, // 0018 GETGBL R7 G23
- 0x8C200D07, // 0019 GETMET R8 R6 K7
- 0x5828000B, // 001A LDCONST R10 K11
- 0x502C0000, // 001B LDBOOL R11 0 0
- 0x7C200600, // 001C CALL R8 3
- 0x7C1C0200, // 001D CALL R7 1
- 0x90021607, // 001E SETMBR R0 K11 R7
- 0x601C0017, // 001F GETGBL R7 G23
- 0x8C200D07, // 0020 GETMET R8 R6 K7
- 0x5828000C, // 0021 LDCONST R10 K12
- 0x502C0000, // 0022 LDBOOL R11 0 0
- 0x7C200600, // 0023 CALL R8 3
- 0x7C1C0200, // 0024 CALL R7 1
- 0x90021807, // 0025 SETMBR R0 K12 R7
- 0x8C1C0D07, // 0026 GETMET R7 R6 K7
- 0x5824000E, // 0027 LDCONST R9 K14
- 0x8828010D, // 0028 GETMBR R10 R0 K13
- 0x7C1C0600, // 0029 CALL R7 3
- 0x90021A07, // 002A SETMBR R0 K13 R7
- 0x8C1C0D07, // 002B GETMET R7 R6 K7
- 0x58240010, // 002C LDCONST R9 K16
- 0x7C1C0400, // 002D CALL R7 2
- 0x90021E07, // 002E SETMBR R0 K15 R7
- 0x881C010F, // 002F GETMBR R7 R0 K15
- 0x4C200000, // 0030 LDNIL R8
- 0x201C0E08, // 0031 NE R7 R7 R8
- 0x781E000D, // 0032 JMPF R7 #0041
- 0xB81E2200, // 0033 GETNGBL R7 K17
- 0x60200018, // 0034 GETGBL R8 G24
- 0x58240012, // 0035 LDCONST R9 K18
- 0x8828010F, // 0036 GETMBR R10 R0 K15
- 0x7C200400, // 0037 CALL R8 2
- 0x58240013, // 0038 LDCONST R9 K19
- 0x7C1C0400, // 0039 CALL R7 2
- 0x8C1C0114, // 003A GETMET R7 R0 K20
- 0x7C1C0200, // 003B CALL R7 1
- 0x8C1C0115, // 003C GETMET R7 R0 K21
- 0x7C1C0200, // 003D CALL R7 1
- 0x5C080E00, // 003E MOVE R2 R7
- 0x501C0200, // 003F LDBOOL R7 1 0
- 0x90022C07, // 0040 SETMBR R0 K22 R7
- 0x8C1C0D07, // 0041 GETMET R7 R6 K7
- 0x58240018, // 0042 LDCONST R9 K24
- 0x60280013, // 0043 GETGBL R10 G19
- 0x7C280000, // 0044 CALL R10 0
- 0x7C1C0600, // 0045 CALL R7 3
- 0x90022E07, // 0046 SETMBR R0 K23 R7
- 0x881C0117, // 0047 GETMBR R7 R0 K23
- 0x781E0006, // 0048 JMPF R7 #0050
- 0xB81E2200, // 0049 GETNGBL R7 K17
- 0x60200008, // 004A GETGBL R8 G8
- 0x88240117, // 004B GETMBR R9 R0 K23
- 0x7C200200, // 004C CALL R8 1
- 0x00223208, // 004D ADD R8 K25 R8
- 0x58240013, // 004E LDCONST R9 K19
- 0x7C1C0400, // 004F CALL R7 2
- 0xA8040001, // 0050 EXBLK 1 1
- 0x70020011, // 0051 JMP #0064
- 0xAC0C0002, // 0052 CATCH R3 0 2
- 0x7002000E, // 0053 JMP #0063
- 0x2014071A, // 0054 NE R5 R3 K26
- 0x7816000B, // 0055 JMPF R5 #0062
- 0xB8162200, // 0056 GETNGBL R5 K17
- 0x60180008, // 0057 GETGBL R6 G8
- 0x5C1C0600, // 0058 MOVE R7 R3
- 0x7C180200, // 0059 CALL R6 1
- 0x001A3606, // 005A ADD R6 K27 R6
- 0x00180D1C, // 005B ADD R6 R6 K28
- 0x601C0008, // 005C GETGBL R7 G8
- 0x5C200800, // 005D MOVE R8 R4
- 0x7C1C0200, // 005E CALL R7 1
- 0x00180C07, // 005F ADD R6 R6 R7
- 0x581C001D, // 0060 LDCONST R7 K29
- 0x7C140400, // 0061 CALL R5 2
- 0x70020000, // 0062 JMP #0064
- 0xB0080000, // 0063 RAISE 2 R0 R0
- 0x880C0106, // 0064 GETMBR R3 R0 K6
- 0x4C100000, // 0065 LDNIL R4
- 0x1C0C0604, // 0066 EQ R3 R3 R4
- 0x780E000A, // 0067 JMPF R3 #0073
- 0x8C0C031E, // 0068 GETMET R3 R1 K30
- 0x5814001D, // 0069 LDCONST R5 K29
- 0x7C0C0400, // 006A CALL R3 2
- 0x8C0C071F, // 006B GETMET R3 R3 K31
- 0x58140020, // 006C LDCONST R5 K32
- 0x5818001D, // 006D LDCONST R6 K29
- 0x7C0C0600, // 006E CALL R3 3
- 0x54120FFE, // 006F LDINT R4 4095
- 0x2C0C0604, // 0070 AND R3 R3 R4
- 0x90020C03, // 0071 SETMBR R0 K6 R3
- 0x50080200, // 0072 LDBOOL R2 1 0
- 0x880C0109, // 0073 GETMBR R3 R0 K9
- 0x4C100000, // 0074 LDNIL R4
- 0x1C0C0604, // 0075 EQ R3 R3 R4
- 0x780E0003, // 0076 JMPF R3 #007B
- 0x8C0C0121, // 0077 GETMET R3 R0 K33
- 0x7C0C0200, // 0078 CALL R3 1
- 0x90021203, // 0079 SETMBR R0 K9 R3
- 0x50080200, // 007A LDBOOL R2 1 0
- 0x780A0001, // 007B JMPF R2 #007E
- 0x8C0C0122, // 007C GETMET R3 R0 K34
- 0x7C0C0200, // 007D CALL R3 1
- 0x80000000, // 007E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: MtrUpdate
********************************************************************/
@@ -4588,6 +1248,120 @@ be_local_closure(class_Matter_Device_MtrUpdate, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: MtrJoin
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrJoin, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
+ /* K1 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrJoin),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x60140009, // 0000 GETGBL R5 G9
+ 0x5C180600, // 0001 MOVE R6 R3
+ 0x7C140200, // 0002 CALL R5 1
+ 0x78160002, // 0003 JMPF R5 #0007
+ 0x8C180100, // 0004 GETMET R6 R0 K0
+ 0x7C180200, // 0005 CALL R6 1
+ 0x70020001, // 0006 JMP #0009
+ 0x8C180101, // 0007 GETMET R6 R0 K1
+ 0x7C180200, // 0008 CALL R6 1
+ 0xB81A0400, // 0009 GETNGBL R6 K2
+ 0x8C180D03, // 000A GETMET R6 R6 K3
+ 0x7C180200, // 000B CALL R6 1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: remove_fabric
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_remove_fabric, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(message_handler),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(subs_shop),
+ /* K10 */ be_nested_str_weak(remove_by_fabric),
+ /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(remove_fabric),
+ /* K14 */ be_nested_str_weak(save_fabrics),
+ }),
+ be_str_weak(remove_fabric),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0018, // 0002 JMPF R2 #001C
+ 0xB80A0000, // 0003 GETNGBL R2 K0
+ 0x8C0C0302, // 0004 GETMET R3 R1 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C0C0705, // 000A GETMET R3 R3 K5
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x000E0203, // 000C ADD R3 K1 R3
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x88080508, // 0010 GETMBR R2 R2 K8
+ 0x88080509, // 0011 GETMBR R2 R2 K9
+ 0x8C08050A, // 0012 GETMET R2 R2 K10
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x8C08010B, // 0015 GETMET R2 R0 K11
+ 0x5C100200, // 0016 MOVE R4 R1
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8808010C, // 0018 GETMBR R2 R0 K12
+ 0x8C08050D, // 0019 GETMET R2 R2 K13
+ 0x5C100200, // 001A MOVE R4 R1
+ 0x7C080400, // 001B CALL R2 2
+ 0x8808010C, // 001C GETMBR R2 R0 K12
+ 0x8C08050E, // 001D GETMET R2 R2 K14
+ 0x7C080200, // 001E CALL R2 1
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: start_basic_commissioning
********************************************************************/
@@ -4734,526 +1508,10 @@ be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
/********************************************************************
-** Solidified function: received_ack
+** Solidified function: mdns_announce_op_discovery_all_fabrics
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_received_ack, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(received_ack),
- }),
- be_str_weak(received_ack),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_op_discovery
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(eth),
- /* K9 */ be_nested_str_weak(find),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K13 */ be_const_int(3),
- /* K14 */ be_nested_str_weak(remove_service),
- /* K15 */ be_nested_str_weak(_matter),
- /* K16 */ be_nested_str_weak(_tcp),
- /* K17 */ be_nested_str_weak(hostname_eth),
- /* K18 */ be_nested_str_weak(wifi),
- /* K19 */ be_nested_str_weak(hostname_wifi),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K21 */ be_nested_str_weak(_X7C),
- /* K22 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_op_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x8C180D08, // 0011 GETMET R6 R6 K8
- 0x7C180200, // 0012 CALL R6 1
- 0x8C180D09, // 0013 GETMET R6 R6 K9
- 0x5820000A, // 0014 LDCONST R8 K10
- 0x7C180400, // 0015 CALL R6 2
- 0x781A000D, // 0016 JMPF R6 #0025
- 0xB81A1600, // 0017 GETNGBL R6 K11
- 0x601C0018, // 0018 GETGBL R7 G24
- 0x5820000C, // 0019 LDCONST R8 K12
- 0x58240008, // 001A LDCONST R9 K8
- 0x5C280A00, // 001B MOVE R10 R5
- 0x7C1C0600, // 001C CALL R7 3
- 0x5820000D, // 001D LDCONST R8 K13
- 0x7C180400, // 001E CALL R6 2
- 0x8C18050E, // 001F GETMET R6 R2 K14
- 0x5820000F, // 0020 LDCONST R8 K15
- 0x58240010, // 0021 LDCONST R9 K16
- 0x5C280A00, // 0022 MOVE R10 R5
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x7C180A00, // 0024 CALL R6 5
- 0xB81A0E00, // 0025 GETNGBL R6 K7
- 0x8C180D12, // 0026 GETMET R6 R6 K18
- 0x7C180200, // 0027 CALL R6 1
- 0x8C180D09, // 0028 GETMET R6 R6 K9
- 0x5820000A, // 0029 LDCONST R8 K10
- 0x7C180400, // 002A CALL R6 2
- 0x781A000D, // 002B JMPF R6 #003A
- 0xB81A1600, // 002C GETNGBL R6 K11
- 0x601C0018, // 002D GETGBL R7 G24
- 0x5820000C, // 002E LDCONST R8 K12
- 0x58240012, // 002F LDCONST R9 K18
- 0x5C280A00, // 0030 MOVE R10 R5
- 0x7C1C0600, // 0031 CALL R7 3
- 0x5820000D, // 0032 LDCONST R8 K13
- 0x7C180400, // 0033 CALL R6 2
- 0x8C18050E, // 0034 GETMET R6 R2 K14
- 0x5820000F, // 0035 LDCONST R8 K15
- 0x58240010, // 0036 LDCONST R9 K16
- 0x5C280A00, // 0037 MOVE R10 R5
- 0x882C0113, // 0038 GETMBR R11 R0 K19
- 0x7C180A00, // 0039 CALL R6 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC0C0002, // 003C CATCH R3 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8161600, // 003E GETNGBL R5 K11
- 0x60180008, // 003F GETGBL R6 G8
- 0x5C1C0600, // 0040 MOVE R7 R3
- 0x7C180200, // 0041 CALL R6 1
- 0x001A2806, // 0042 ADD R6 K20 R6
- 0x00180D15, // 0043 ADD R6 R6 K21
- 0x601C0008, // 0044 GETGBL R7 G8
- 0x5C200800, // 0045 MOVE R8 R4
- 0x7C1C0200, // 0046 CALL R7 1
- 0x00180C07, // 0047 ADD R6 R6 R7
- 0x581C0016, // 0048 LDCONST R7 K22
- 0x7C140400, // 0049 CALL R5 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_sensors_scheduler
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(time_reached),
- /* K5 */ be_nested_str_weak(_trigger_read_sensors),
- /* K6 */ be_nested_str_weak(millis),
- }),
- be_str_weak(read_sensors_scheduler),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x1C040302, // 0006 EQ R1 R1 K2
- 0x74060004, // 0007 JMPT R1 #000D
- 0xB8060600, // 0008 GETNGBL R1 K3
- 0x8C040304, // 0009 GETMET R1 R1 K4
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x7C040400, // 000B CALL R1 2
- 0x78060006, // 000C JMPF R1 #0014
- 0x8C040105, // 000D GETMET R1 R0 K5
- 0x7C040200, // 000E CALL R1 1
- 0xB8060600, // 000F GETNGBL R1 K3
- 0x8C040306, // 0010 GETMET R1 R1 K6
- 0x880C0100, // 0011 GETMBR R3 R0 K0
- 0x7C040400, // 0012 CALL R1 2
- 0x90020201, // 0013 SETMBR R0 K1 R1
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_operational_discovery_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_operational_discovery),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_operational_discovery_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: generate_random_passcode
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(random),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(134217727),
- /* K5 */ be_const_int(99999998),
- /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
- /* K7 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(generate_random_passcode),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x780E001D, // 0003 JMPF R3 #0022
- 0x8C0C0301, // 0004 GETMET R3 R1 K1
- 0x54160003, // 0005 LDINT R5 4
- 0x7C0C0400, // 0006 CALL R3 2
- 0x8C0C0702, // 0007 GETMET R3 R3 K2
- 0x58140003, // 0008 LDCONST R5 K3
- 0x541A0003, // 0009 LDINT R6 4
- 0x7C0C0600, // 000A CALL R3 3
- 0x2C0C0704, // 000B AND R3 R3 K4
- 0x5C080600, // 000C MOVE R2 R3
- 0x240C0505, // 000D GT R3 R2 K5
- 0x780E0000, // 000E JMPF R3 #0010
- 0x7001FFF1, // 000F JMP #0002
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100106, // 0011 GETMBR R4 R0 K6
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA8020005, // 0013 EXBLK 0 #001A
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x1C140404, // 0016 EQ R5 R2 R4
- 0x78160000, // 0017 JMPF R5 #0019
- 0x4C080000, // 0018 LDNIL R2
- 0x7001FFF9, // 0019 JMP #0014
- 0x580C0007, // 001A LDCONST R3 K7
- 0xAC0C0200, // 001B CATCH R3 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x4C0C0000, // 001D LDNIL R3
- 0x200C0403, // 001E NE R3 R2 R3
- 0x780E0000, // 001F JMPF R3 #0021
- 0x80040400, // 0020 RET 1 R2
- 0x7001FFDF, // 0021 JMP #0002
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrJoin
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrJoin, /* name */
- be_nested_proto(
- 8, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
- /* K1 */ be_nested_str_weak(stop_basic_commissioning),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrJoin),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x60140009, // 0000 GETGBL R5 G9
- 0x5C180600, // 0001 MOVE R6 R3
- 0x7C140200, // 0002 CALL R5 1
- 0x78160002, // 0003 JMPF R5 #0007
- 0x8C180100, // 0004 GETMET R6 R0 K0
- 0x7C180200, // 0005 CALL R6 1
- 0x70020001, // 0006 JMP #0009
- 0x8C180101, // 0007 GETMET R6 R0 K1
- 0x7C180200, // 0008 CALL R6 1
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x8C180D03, // 000A GETMET R6 R6 K3
- 0x7C180200, // 000B CALL R6 1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_param
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_param, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[29]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(update_remotes_info),
- /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
- /* K3 */ be_nested_str_weak(root_discriminator),
- /* K4 */ be_nested_str_weak(root_passcode),
- /* K5 */ be_nested_str_weak(ipv4only),
- /* K6 */ be_nested_str_weak(true),
- /* K7 */ be_nested_str_weak(false),
- /* K8 */ be_nested_str_weak(disable_bridge_mode),
- /* K9 */ be_nested_str_weak(next_ep),
- /* K10 */ be_nested_str_weak(plugins_persist),
- /* K11 */ be_nested_str_weak(_X2C_X22config_X22_X3A),
- /* K12 */ be_nested_str_weak(dump),
- /* K13 */ be_nested_str_weak(plugins_config),
- /* K14 */ be_nested_str_weak(plugins_config_remotes),
- /* K15 */ be_const_int(0),
- /* K16 */ be_nested_str_weak(_X2C_X22remotes_X22_X3A),
- /* K17 */ be_nested_str_weak(_X7D),
- /* K18 */ be_nested_str_weak(FILENAME),
- /* K19 */ be_nested_str_weak(w),
- /* K20 */ be_nested_str_weak(write),
- /* K21 */ be_nested_str_weak(close),
- /* K22 */ be_nested_str_weak(log),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
- /* K24 */ be_nested_str_weak(_X20and_X20configuration),
- /* K25 */ be_nested_str_weak(),
- /* K26 */ be_const_int(2),
- /* K27 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K28 */ be_nested_str_weak(_X7C),
- }),
- be_str_weak(save_param),
- &be_const_str_solidified,
- ( &(const binstruction[80]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x60080018, // 0003 GETGBL R2 G24
- 0x580C0002, // 0004 LDCONST R3 K2
- 0x88100103, // 0005 GETMBR R4 R0 K3
- 0x88140104, // 0006 GETMBR R5 R0 K4
- 0x88180105, // 0007 GETMBR R6 R0 K5
- 0x781A0001, // 0008 JMPF R6 #000B
- 0x58180006, // 0009 LDCONST R6 K6
- 0x70020000, // 000A JMP #000C
- 0x58180007, // 000B LDCONST R6 K7
- 0x881C0108, // 000C GETMBR R7 R0 K8
- 0x781E0001, // 000D JMPF R7 #0010
- 0x581C0006, // 000E LDCONST R7 K6
- 0x70020000, // 000F JMP #0011
- 0x581C0007, // 0010 LDCONST R7 K7
- 0x88200109, // 0011 GETMBR R8 R0 K9
- 0x7C080C00, // 0012 CALL R2 6
- 0x880C010A, // 0013 GETMBR R3 R0 K10
- 0x780E000E, // 0014 JMPF R3 #0024
- 0x0008050B, // 0015 ADD R2 R2 K11
- 0x8C0C030C, // 0016 GETMET R3 R1 K12
- 0x8814010D, // 0017 GETMBR R5 R0 K13
- 0x7C0C0400, // 0018 CALL R3 2
- 0x00080403, // 0019 ADD R2 R2 R3
- 0x600C000C, // 001A GETGBL R3 G12
- 0x8810010E, // 001B GETMBR R4 R0 K14
- 0x7C0C0200, // 001C CALL R3 1
- 0x240C070F, // 001D GT R3 R3 K15
- 0x780E0004, // 001E JMPF R3 #0024
- 0x00080510, // 001F ADD R2 R2 K16
- 0x8C0C030C, // 0020 GETMET R3 R1 K12
- 0x8814010E, // 0021 GETMBR R5 R0 K14
- 0x7C0C0400, // 0022 CALL R3 2
- 0x00080403, // 0023 ADD R2 R2 R3
- 0x00080511, // 0024 ADD R2 R2 K17
- 0xA8020017, // 0025 EXBLK 0 #003E
- 0x600C0011, // 0026 GETGBL R3 G17
- 0x88100112, // 0027 GETMBR R4 R0 K18
- 0x58140013, // 0028 LDCONST R5 K19
- 0x7C0C0400, // 0029 CALL R3 2
- 0x8C100714, // 002A GETMET R4 R3 K20
- 0x5C180400, // 002B MOVE R6 R2
- 0x7C100400, // 002C CALL R4 2
- 0x8C100715, // 002D GETMET R4 R3 K21
- 0x7C100200, // 002E CALL R4 1
- 0xB8122C00, // 002F GETNGBL R4 K22
- 0x60140018, // 0030 GETGBL R5 G24
- 0x58180017, // 0031 LDCONST R6 K23
- 0x881C010A, // 0032 GETMBR R7 R0 K10
- 0x781E0001, // 0033 JMPF R7 #0036
- 0x581C0018, // 0034 LDCONST R7 K24
- 0x70020000, // 0035 JMP #0037
- 0x581C0019, // 0036 LDCONST R7 K25
- 0x7C140400, // 0037 CALL R5 2
- 0x5818001A, // 0038 LDCONST R6 K26
- 0x7C100400, // 0039 CALL R4 2
- 0xA8040001, // 003A EXBLK 1 1
- 0x80040400, // 003B RET 1 R2
- 0xA8040001, // 003C EXBLK 1 1
- 0x70020010, // 003D JMP #004F
- 0xAC0C0002, // 003E CATCH R3 0 2
- 0x7002000D, // 003F JMP #004E
- 0xB8162C00, // 0040 GETNGBL R5 K22
- 0x60180008, // 0041 GETGBL R6 G8
- 0x5C1C0600, // 0042 MOVE R7 R3
- 0x7C180200, // 0043 CALL R6 1
- 0x001A3606, // 0044 ADD R6 K27 R6
- 0x00180D1C, // 0045 ADD R6 R6 K28
- 0x601C0008, // 0046 GETGBL R7 G8
- 0x5C200800, // 0047 MOVE R8 R4
- 0x7C1C0200, // 0048 CALL R7 1
- 0x00180C07, // 0049 ADD R6 R6 R7
- 0x581C001A, // 004A LDCONST R7 K26
- 0x7C140400, // 004B CALL R5 2
- 0x80040400, // 004C RET 1 R2
- 0x70020000, // 004D JMP #004F
- 0xB0080000, // 004E RAISE 2 R0 R0
- 0x80000000, // 004F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@@ -5268,10 +1526,10 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /*
/* K1 */ be_nested_str_weak(active_fabrics),
/* K2 */ be_nested_str_weak(get_device_id),
/* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
/* K5 */ be_nested_str_weak(stop_iteration),
}),
- be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ be_str_weak(mdns_announce_op_discovery_all_fabrics),
&be_const_str_solidified,
( &(const binstruction[22]) { /* code */
0x60040010, // 0000 GETGBL R1 G16
@@ -5302,6 +1560,82 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /*
/*******************************************************************/
+/********************************************************************
+** Solidified function: get_plugin_class_arg
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_arg),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_class_displayname
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(DISPLAY_NAME),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_displayname),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: init
********************************************************************/
@@ -5545,133 +1879,80 @@ be_local_closure(class_Matter_Device_init, /* name */
/********************************************************************
-** Solidified function: start_mdns_announce_hostnames
+** Solidified function: process_attribute_read_solo
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
+be_local_closure(class_Matter_Device_process_attribute_read_solo, /* name */
be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
+ 10, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080200, // 0002 LDBOOL R2 1 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
+ 0, /* has sup protos */
&be_class_Matter_Device,
- }),
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(wifi),
- /* K2 */ be_nested_str_weak(up),
- /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K4 */ be_nested_str_weak(add_rule),
- /* K5 */ be_nested_str_weak(Wifi_X23Connected),
- /* K6 */ be_nested_str_weak(matter_mdns_host),
- /* K7 */ be_nested_str_weak(eth),
- /* K8 */ be_nested_str_weak(Eth_X23Connected),
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K4 */ be_nested_str_weak(status),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K7 */ be_nested_str_weak(contains_cluster),
+ /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K9 */ be_nested_str_weak(contains_attribute),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
}),
- be_str_weak(start_mdns_announce_hostnames),
+ be_str_weak(process_attribute_read_solo),
&be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x94040302, // 0003 GETIDX R1 R1 K2
- 0x78060003, // 0004 JMPF R1 #0009
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x500C0000, // 0006 LDBOOL R3 0 0
- 0x7C040400, // 0007 CALL R1 2
- 0x70020005, // 0008 JMP #000F
- 0xB8060000, // 0009 GETNGBL R1 K0
- 0x8C040304, // 000A GETMET R1 R1 K4
- 0x580C0005, // 000B LDCONST R3 K5
- 0x84100000, // 000C CLOSURE R4 P0
- 0x58140006, // 000D LDCONST R5 K6
- 0x7C040800, // 000E CALL R1 4
- 0xB8060000, // 000F GETNGBL R1 K0
- 0x8C040307, // 0010 GETMET R1 R1 K7
- 0x7C040200, // 0011 CALL R1 1
- 0x94040302, // 0012 GETIDX R1 R1 K2
- 0x78060003, // 0013 JMPF R1 #0018
- 0x8C040103, // 0014 GETMET R1 R0 K3
- 0x500C0200, // 0015 LDBOOL R3 1 0
- 0x7C040400, // 0016 CALL R1 2
- 0x70020005, // 0017 JMP #001E
- 0xB8060000, // 0018 GETNGBL R1 K0
- 0x8C040304, // 0019 GETMET R1 R1 K4
- 0x580C0008, // 001A LDCONST R3 K8
- 0x84100001, // 001B CLOSURE R4 P1
- 0x58140006, // 001C LDCONST R5 K6
- 0x7C040800, // 001D CALL R1 4
- 0xA0000000, // 001E CLOSE R0
- 0x80000000, // 001F RET 0
+ ( &(const binstruction[45]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0x88100302, // 0002 GETMBR R4 R1 K2
+ 0x4C140000, // 0003 LDNIL R5
+ 0x1C140405, // 0004 EQ R5 R2 R5
+ 0x74160005, // 0005 JMPT R5 #000C
+ 0x4C140000, // 0006 LDNIL R5
+ 0x1C140605, // 0007 EQ R5 R3 R5
+ 0x74160002, // 0008 JMPT R5 #000C
+ 0x4C140000, // 0009 LDNIL R5
+ 0x1C140805, // 000A EQ R5 R4 R5
+ 0x78160001, // 000B JMPF R5 #000E
+ 0x4C140000, // 000C LDNIL R5
+ 0x80040A00, // 000D RET 1 R5
+ 0x8C140103, // 000E GETMET R5 R0 K3
+ 0x5C1C0400, // 000F MOVE R7 R2
+ 0x7C140400, // 0010 CALL R5 2
+ 0x4C180000, // 0011 LDNIL R6
+ 0x1C180A06, // 0012 EQ R6 R5 R6
+ 0x781A0004, // 0013 JMPF R6 #0019
+ 0xB81A0A00, // 0014 GETNGBL R6 K5
+ 0x88180D06, // 0015 GETMBR R6 R6 K6
+ 0x90060806, // 0016 SETMBR R1 K4 R6
+ 0x4C180000, // 0017 LDNIL R6
+ 0x80040C00, // 0018 RET 1 R6
+ 0x8C180B07, // 0019 GETMET R6 R5 K7
+ 0x5C200600, // 001A MOVE R8 R3
+ 0x7C180400, // 001B CALL R6 2
+ 0x741A0004, // 001C JMPT R6 #0022
+ 0xB81A0A00, // 001D GETNGBL R6 K5
+ 0x88180D08, // 001E GETMBR R6 R6 K8
+ 0x90060806, // 001F SETMBR R1 K4 R6
+ 0x4C180000, // 0020 LDNIL R6
+ 0x80040C00, // 0021 RET 1 R6
+ 0x8C180B09, // 0022 GETMET R6 R5 K9
+ 0x5C200600, // 0023 MOVE R8 R3
+ 0x5C240800, // 0024 MOVE R9 R4
+ 0x7C180600, // 0025 CALL R6 3
+ 0x741A0004, // 0026 JMPT R6 #002C
+ 0xB81A0A00, // 0027 GETNGBL R6 K5
+ 0x88180D0A, // 0028 GETMBR R6 R6 K10
+ 0x90060806, // 0029 SETMBR R1 K4 R6
+ 0x4C180000, // 002A LDNIL R6
+ 0x80040C00, // 002B RET 1 R6
+ 0x80040A00, // 002C RET 1 R5
})
)
);
@@ -5679,12 +1960,218 @@ be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
/********************************************************************
-** Solidified function: signal_endpoints_changed
+** Solidified function: start_operational_discovery_deferred
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
+be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
be_nested_proto(
- 7, /* nstack */
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_operational_discovery),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_operational_discovery_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_fabric),
+ /* K1 */ be_nested_str_weak(get_fabric_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(get_admin_vendor_name),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(stop_basic_commissioning),
+ }),
+ be_str_weak(start_commissioning_complete),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x8C0C0501, // 0002 GETMET R3 R2 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C100505, // 000A GETMET R4 R2 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xB8160C00, // 000C GETNGBL R5 K6
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0007, // 000E LDCONST R7 K7
+ 0x5C200600, // 000F MOVE R8 R3
+ 0x5C240800, // 0010 MOVE R9 R4
+ 0x7C180600, // 0011 CALL R6 3
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x7C140400, // 0013 CALL R5 2
+ 0x8C140109, // 0014 GETMET R5 R0 K9
+ 0x7C140200, // 0015 CALL R5 1
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_received
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_received, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(msg_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x5C1C0400, // 0003 MOVE R7 R2
+ 0x5C200600, // 0004 MOVE R8 R3
+ 0x7C100800, // 0005 CALL R4 4
+ 0x80040800, // 0006 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(Path),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(attribute),
+ /* K5 */ be_nested_str_weak(message_handler),
+ /* K6 */ be_nested_str_weak(im),
+ /* K7 */ be_nested_str_weak(subs_shop),
+ /* K8 */ be_nested_str_weak(attribute_updated_ctx),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x1C140805, // 0001 EQ R5 R4 R5
+ 0x78160000, // 0002 JMPF R5 #0004
+ 0x50100000, // 0003 LDBOOL R4 0 0
+ 0xB8160000, // 0004 GETNGBL R5 K0
+ 0x8C140B01, // 0005 GETMET R5 R5 K1
+ 0x7C140200, // 0006 CALL R5 1
+ 0x90160401, // 0007 SETMBR R5 K2 R1
+ 0x90160602, // 0008 SETMBR R5 K3 R2
+ 0x90160803, // 0009 SETMBR R5 K4 R3
+ 0x88180105, // 000A GETMBR R6 R0 K5
+ 0x88180D06, // 000B GETMBR R6 R6 K6
+ 0x88180D07, // 000C GETMBR R6 R6 K7
+ 0x8C180D08, // 000D GETMET R6 R6 K8
+ 0x5C200A00, // 000E MOVE R8 R5
+ 0x5C240800, // 000F MOVE R9 R4
+ 0x7C180600, // 0010 CALL R6 3
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: event_fabrics_saved
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
+ be_nested_proto(
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -5693,29 +2180,1334 @@ be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(save_param),
}),
- be_str_weak(signal_endpoints_changed),
+ be_str_weak(event_fabrics_saved),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x24040302, // 0003 GT R1 R1 K2
+ 0x78060005, // 0004 JMPF R1 #000B
+ 0x88040103, // 0005 GETMBR R1 R0 K3
+ 0x74060003, // 0006 JMPT R1 #000B
+ 0x50040200, // 0007 LDBOOL R1 1 0
+ 0x90020601, // 0008 SETMBR R0 K3 R1
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete_deferred
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_commissioning_complete),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_commissioning_complete_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: save_before_restart
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_save_before_restart, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
+ }),
+ be_str_weak(save_before_restart),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x5412001C, // 0002 LDINT R4 29
- 0x58140002, // 0003 LDCONST R5 K2
- 0x50180000, // 0004 LDBOOL R6 0 0
- 0x7C040A00, // 0005 CALL R1 5
- 0x8C040100, // 0006 GETMET R1 R0 K0
- 0xB80E0600, // 0007 GETNGBL R3 K3
- 0x880C0704, // 0008 GETMBR R3 R3 K4
- 0x5412001C, // 0009 LDINT R4 29
- 0x58140002, // 000A LDCONST R5 K2
- 0x50180000, // 000B LDBOOL R6 0 0
- 0x7C040A00, // 000C CALL R1 5
- 0x80000000, // 000D RET 0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x8C040101, // 0002 GETMET R1 R0 K1
+ 0x7C040200, // 0003 CALL R1 1
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_add_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K4 */ be_nested_str_weak(_X27_X20skipping),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(next_ep),
+ /* K7 */ be_nested_str_weak(plugins),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(type),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
+ /* K13 */ be_nested_str_weak(conf_to_log),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_persist),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_add_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[68]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120008, // 0006 JMPF R4 #0010
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x60140008, // 0008 GETGBL R5 G8
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C140200, // 000A CALL R5 1
+ 0x00160605, // 000B ADD R5 K3 R5
+ 0x00140B04, // 000C ADD R5 R5 K4
+ 0x58180005, // 000D LDCONST R6 K5
+ 0x7C100400, // 000E CALL R4 2
+ 0x80000800, // 000F RET 0
+ 0x88100106, // 0010 GETMBR R4 R0 K6
+ 0x60140008, // 0011 GETGBL R5 G8
+ 0x5C180800, // 0012 MOVE R6 R4
+ 0x7C140200, // 0013 CALL R5 1
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x5C1C0000, // 0015 MOVE R7 R0
+ 0x5C200800, // 0016 MOVE R8 R4
+ 0x5C240400, // 0017 MOVE R9 R2
+ 0x7C180600, // 0018 CALL R6 3
+ 0x881C0107, // 0019 GETMBR R7 R0 K7
+ 0x8C1C0F08, // 001A GETMET R7 R7 K8
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x7C1C0400, // 001C CALL R7 2
+ 0x601C0013, // 001D GETGBL R7 G19
+ 0x7C1C0000, // 001E CALL R7 0
+ 0x981E1201, // 001F SETIDX R7 K9 R1
+ 0x60200010, // 0020 GETGBL R8 G16
+ 0x8C24050A, // 0021 GETMET R9 R2 K10
+ 0x7C240200, // 0022 CALL R9 1
+ 0x7C200200, // 0023 CALL R8 1
+ 0xA8020004, // 0024 EXBLK 0 #002A
+ 0x5C241000, // 0025 MOVE R9 R8
+ 0x7C240000, // 0026 CALL R9 0
+ 0x94280409, // 0027 GETIDX R10 R2 R9
+ 0x981C120A, // 0028 SETIDX R7 R9 R10
+ 0x7001FFFA, // 0029 JMP #0025
+ 0x5820000B, // 002A LDCONST R8 K11
+ 0xAC200200, // 002B CATCH R8 1 0
+ 0xB0080000, // 002C RAISE 2 R0 R0
+ 0xB8220400, // 002D GETNGBL R8 K2
+ 0x60240018, // 002E GETGBL R9 G24
+ 0x5828000C, // 002F LDCONST R10 K12
+ 0x5C2C0800, // 0030 MOVE R11 R4
+ 0x5C300200, // 0031 MOVE R12 R1
+ 0x8C34010D, // 0032 GETMET R13 R0 K13
+ 0x5C3C0400, // 0033 MOVE R15 R2
+ 0x7C340400, // 0034 CALL R13 2
+ 0x7C240800, // 0035 CALL R9 4
+ 0x5828000E, // 0036 LDCONST R10 K14
+ 0x7C200400, // 0037 CALL R8 2
+ 0x8820010F, // 0038 GETMBR R8 R0 K15
+ 0x98200A07, // 0039 SETIDX R8 R5 R7
+ 0x50200200, // 003A LDBOOL R8 1 0
+ 0x90022008, // 003B SETMBR R0 K16 R8
+ 0x88200106, // 003C GETMBR R8 R0 K6
+ 0x00201111, // 003D ADD R8 R8 K17
+ 0x90020C08, // 003E SETMBR R0 K6 R8
+ 0x8C200112, // 003F GETMET R8 R0 K18
+ 0x7C200200, // 0040 CALL R8 1
+ 0x8C200113, // 0041 GETMET R8 R0 K19
+ 0x7C200200, // 0042 CALL R8 1
+ 0x80040800, // 0043 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrInfo
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrInfo, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(MtrInfo_one),
+ /* K3 */ be_nested_str_weak(endpoint),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(int),
+ /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrInfo),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x1C140700, // 0000 EQ R5 R3 K0
+ 0x7815FFFF, // 0001 JMPF R5 #0002
+ 0x1C140700, // 0002 EQ R5 R3 K0
+ 0x7816000D, // 0003 JMPF R5 #0012
+ 0x60140010, // 0004 GETGBL R5 G16
+ 0x88180101, // 0005 GETMBR R6 R0 K1
+ 0x7C140200, // 0006 CALL R5 1
+ 0xA8020005, // 0007 EXBLK 0 #000E
+ 0x5C180A00, // 0008 MOVE R6 R5
+ 0x7C180000, // 0009 CALL R6 0
+ 0x8C1C0102, // 000A GETMET R7 R0 K2
+ 0x88240D03, // 000B GETMBR R9 R6 K3
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x7001FFF9, // 000D JMP #0008
+ 0x58140004, // 000E LDCONST R5 K4
+ 0xAC140200, // 000F CATCH R5 1 0
+ 0xB0080000, // 0010 RAISE 2 R0 R0
+ 0x70020011, // 0011 JMP #0024
+ 0x60140004, // 0012 GETGBL R5 G4
+ 0x5C180800, // 0013 MOVE R6 R4
+ 0x7C140200, // 0014 CALL R5 1
+ 0x1C140B05, // 0015 EQ R5 R5 K5
+ 0x78160003, // 0016 JMPF R5 #001B
+ 0x8C140102, // 0017 GETMET R5 R0 K2
+ 0x5C1C0800, // 0018 MOVE R7 R4
+ 0x7C140400, // 0019 CALL R5 2
+ 0x70020008, // 001A JMP #0024
+ 0x8C140106, // 001B GETMET R5 R0 K6
+ 0x5C1C0600, // 001C MOVE R7 R3
+ 0x7C140400, // 001D CALL R5 2
+ 0x4C180000, // 001E LDNIL R6
+ 0x20180A06, // 001F NE R6 R5 R6
+ 0x781A0002, // 0020 JMPF R6 #0024
+ 0x8C180102, // 0021 GETMET R6 R0 K2
+ 0x88200B03, // 0022 GETMBR R8 R5 K3
+ 0x7C180400, // 0023 CALL R6 2
+ 0xB8160E00, // 0024 GETNGBL R5 K7
+ 0x8C140B08, // 0025 GETMET R5 R5 K8
+ 0x7C140200, // 0026 CALL R5 1
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _start_udp
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__start_udp, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x7C0C0800, // 0005 CALL R3 4
+ 0x80040600, // 0006 RET 1 R3
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(UDPServer),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(start),
+ }),
+ be_str_weak(_start_udp),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80000400, // 0002 RET 0
+ 0x4C080000, // 0003 LDNIL R2
+ 0x1C080202, // 0004 EQ R2 R1 R2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x540615A3, // 0006 LDINT R1 5540
+ 0xB80A0200, // 0007 GETNGBL R2 K1
+ 0x600C0008, // 0008 GETGBL R3 G8
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x000E0403, // 000B ADD R3 K2 R3
+ 0x58100003, // 000C LDCONST R4 K3
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0800, // 000E GETNGBL R2 K4
+ 0x8C080505, // 000F GETMET R2 R2 K5
+ 0x5C100000, // 0010 MOVE R4 R0
+ 0x58140006, // 0011 LDCONST R5 K6
+ 0x5C180200, // 0012 MOVE R6 R1
+ 0x7C080800, // 0013 CALL R2 4
+ 0x90020002, // 0014 SETMBR R0 K0 R2
+ 0x88080100, // 0015 GETMBR R2 R0 K0
+ 0x8C080507, // 0016 GETMET R2 R2 K7
+ 0x84100000, // 0017 CLOSURE R4 P0
+ 0x7C080400, // 0018 CALL R2 2
+ 0xA0000000, // 0019 CLOSE R0
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_50ms
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_50ms, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_const_int(1),
+ }),
+ be_str_weak(every_50ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x00040301, // 0001 ADD R1 R1 K1
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_root_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(is_root_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060003, // 0003 JMPF R1 #0008
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x74060000, // 0007 JMPT R1 #0009
+ 0x50040001, // 0008 LDBOOL R1 0 1
+ 0x50040200, // 0009 LDBOOL R1 1 0
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: k2l_num
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_k2l_num, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(0),
+ }),
+ be_str_weak(k2l_num),
+ &be_const_str_solidified,
+ ( &(const binstruction[52]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020007, // 000B EXBLK 0 #0014
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x601C0009, // 000F GETGBL R7 G9
+ 0x5C200800, // 0010 MOVE R8 R4
+ 0x7C1C0200, // 0011 CALL R7 1
+ 0x7C140400, // 0012 CALL R5 2
+ 0x7001FFF7, // 0013 JMP #000C
+ 0x580C0003, // 0014 LDCONST R3 K3
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x600C0010, // 0017 GETGBL R3 G16
+ 0x6010000C, // 0018 GETGBL R4 G12
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x7C100200, // 001A CALL R4 1
+ 0x04100904, // 001B SUB R4 R4 K4
+ 0x40120804, // 001C CONNECT R4 K4 R4
+ 0x7C0C0200, // 001D CALL R3 1
+ 0xA8020010, // 001E EXBLK 0 #0030
+ 0x5C100600, // 001F MOVE R4 R3
+ 0x7C100000, // 0020 CALL R4 0
+ 0x94140404, // 0021 GETIDX R5 R2 R4
+ 0x5C180800, // 0022 MOVE R6 R4
+ 0x241C0D05, // 0023 GT R7 R6 K5
+ 0x781E0008, // 0024 JMPF R7 #002E
+ 0x041C0D04, // 0025 SUB R7 R6 K4
+ 0x941C0407, // 0026 GETIDX R7 R2 R7
+ 0x241C0E05, // 0027 GT R7 R7 R5
+ 0x781E0004, // 0028 JMPF R7 #002E
+ 0x041C0D04, // 0029 SUB R7 R6 K4
+ 0x941C0407, // 002A GETIDX R7 R2 R7
+ 0x98080C07, // 002B SETIDX R2 R6 R7
+ 0x04180D04, // 002C SUB R6 R6 K4
+ 0x7001FFF4, // 002D JMP #0023
+ 0x98080C05, // 002E SETIDX R2 R6 R5
+ 0x7001FFEE, // 002F JMP #001F
+ 0x580C0003, // 0030 LDCONST R3 K3
+ 0xAC0C0200, // 0031 CATCH R3 1 0
+ 0xB0080000, // 0032 RAISE 2 R0 R0
+ 0x80040400, // 0033 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_commands
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_commands, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 4]) {
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrJoin),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrUpdate),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrInfo),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(add_cmd),
+ /* K2 */ be_nested_str_weak(MtrJoin),
+ /* K3 */ be_nested_str_weak(MtrUpdate),
+ /* K4 */ be_nested_str_weak(MtrInfo),
+ }),
+ be_str_weak(register_commands),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x580C0002, // 0002 LDCONST R3 K2
+ 0x84100000, // 0003 CLOSURE R4 P0
+ 0x7C040600, // 0004 CALL R1 3
+ 0xB8060000, // 0005 GETNGBL R1 K0
+ 0x8C040301, // 0006 GETMET R1 R1 K1
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x84100001, // 0008 CLOSURE R4 P1
+ 0x7C040600, // 0009 CALL R1 3
+ 0xB8060000, // 000A GETNGBL R1 K0
+ 0x8C040301, // 000B GETMET R1 R1 K1
+ 0x580C0004, // 000C LDCONST R3 K4
+ 0x84100002, // 000D CLOSURE R4 P2
+ 0x7C040600, // 000E CALL R1 3
+ 0xA0000000, // 000F CLOSE R0
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: sort_distinct
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_sort_distinct, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(sort_distinct),
+ &be_const_str_solidified,
+ ( &(const binstruction[53]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080010, // 0001 GETGBL R2 G16
+ 0x600C000C, // 0002 GETGBL R3 G12
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x040C0701, // 0005 SUB R3 R3 K1
+ 0x400E0203, // 0006 CONNECT R3 K1 R3
+ 0x7C080200, // 0007 CALL R2 1
+ 0xA8020010, // 0008 EXBLK 0 #001A
+ 0x5C0C0400, // 0009 MOVE R3 R2
+ 0x7C0C0000, // 000A CALL R3 0
+ 0x94100003, // 000B GETIDX R4 R0 R3
+ 0x5C140600, // 000C MOVE R5 R3
+ 0x24180B02, // 000D GT R6 R5 K2
+ 0x781A0008, // 000E JMPF R6 #0018
+ 0x04180B01, // 000F SUB R6 R5 K1
+ 0x94180006, // 0010 GETIDX R6 R0 R6
+ 0x24180C04, // 0011 GT R6 R6 R4
+ 0x781A0004, // 0012 JMPF R6 #0018
+ 0x04180B01, // 0013 SUB R6 R5 K1
+ 0x94180006, // 0014 GETIDX R6 R0 R6
+ 0x98000A06, // 0015 SETIDX R0 R5 R6
+ 0x04140B01, // 0016 SUB R5 R5 K1
+ 0x7001FFF4, // 0017 JMP #000D
+ 0x98000A04, // 0018 SETIDX R0 R5 R4
+ 0x7001FFEE, // 0019 JMP #0009
+ 0x58080003, // 001A LDCONST R2 K3
+ 0xAC080200, // 001B CATCH R2 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x58080001, // 001D LDCONST R2 K1
+ 0x600C000C, // 001E GETGBL R3 G12
+ 0x5C100000, // 001F MOVE R4 R0
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x180C0701, // 0021 LE R3 R3 K1
+ 0x780E0000, // 0022 JMPF R3 #0024
+ 0x80040000, // 0023 RET 1 R0
+ 0x940C0102, // 0024 GETIDX R3 R0 K2
+ 0x6010000C, // 0025 GETGBL R4 G12
+ 0x5C140000, // 0026 MOVE R5 R0
+ 0x7C100200, // 0027 CALL R4 1
+ 0x14100404, // 0028 LT R4 R2 R4
+ 0x78120009, // 0029 JMPF R4 #0034
+ 0x94100002, // 002A GETIDX R4 R0 R2
+ 0x1C100803, // 002B EQ R4 R4 R3
+ 0x78120003, // 002C JMPF R4 #0031
+ 0x8C100104, // 002D GETMET R4 R0 K4
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x70020001, // 0030 JMP #0033
+ 0x940C0002, // 0031 GETIDX R3 R0 R2
+ 0x00080501, // 0032 ADD R2 R2 K1
+ 0x7001FFF0, // 0033 JMP #0025
+ 0x80040000, // 0034 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: check_config_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_check_config_ep, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
+ /* K12 */ be_nested_str_weak(next_ep),
+ /* K13 */ be_const_int(1),
+ }),
+ be_str_weak(check_config_ep),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0x50040000, // 0000 LDBOOL R1 0 0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x600C0010, // 0003 GETGBL R3 G16
+ 0x88100100, // 0004 GETMBR R4 R0 K0
+ 0x8C100901, // 0005 GETMET R4 R4 K1
+ 0x7C100200, // 0006 CALL R4 1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020007, // 0008 EXBLK 0 #0011
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x8C140502, // 000B GETMET R5 R2 K2
+ 0x601C0009, // 000C GETGBL R7 G9
+ 0x5C200800, // 000D MOVE R8 R4
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x7C140400, // 000F CALL R5 2
+ 0x7001FFF7, // 0010 JMP #0009
+ 0x580C0003, // 0011 LDCONST R3 K3
+ 0xAC0C0200, // 0012 CATCH R3 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x600C0010, // 0014 GETGBL R3 G16
+ 0x5C100400, // 0015 MOVE R4 R2
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0xA8020030, // 0017 EXBLK 0 #0049
+ 0x5C100600, // 0018 MOVE R4 R3
+ 0x7C100000, // 0019 CALL R4 0
+ 0x1C140904, // 001A EQ R5 R4 K4
+ 0x7816000B, // 001B JMPF R5 #0028
+ 0xB8160A00, // 001C GETNGBL R5 K5
+ 0x58180006, // 001D LDCONST R6 K6
+ 0x581C0007, // 001E LDCONST R7 K7
+ 0x7C140400, // 001F CALL R5 2
+ 0x88140100, // 0020 GETMBR R5 R0 K0
+ 0x8C140B08, // 0021 GETMET R5 R5 K8
+ 0x601C0008, // 0022 GETGBL R7 G8
+ 0x5C200800, // 0023 MOVE R8 R4
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x50040200, // 0026 LDBOOL R1 1 0
+ 0x7002001F, // 0027 JMP #0048
+ 0xB8161200, // 0028 GETNGBL R5 K9
+ 0x88140B0A, // 0029 GETMBR R5 R5 K10
+ 0x1C140805, // 002A EQ R5 R4 R5
+ 0x7816001B, // 002B JMPF R5 #0048
+ 0x50040200, // 002C LDBOOL R1 1 0
+ 0xB8160A00, // 002D GETNGBL R5 K5
+ 0x60180018, // 002E GETGBL R6 G24
+ 0x581C000B, // 002F LDCONST R7 K11
+ 0x5C200800, // 0030 MOVE R8 R4
+ 0x8824010C, // 0031 GETMBR R9 R0 K12
+ 0x7C180600, // 0032 CALL R6 3
+ 0x581C0007, // 0033 LDCONST R7 K7
+ 0x7C140400, // 0034 CALL R5 2
+ 0x60140008, // 0035 GETGBL R5 G8
+ 0x8818010C, // 0036 GETMBR R6 R0 K12
+ 0x7C140200, // 0037 CALL R5 1
+ 0x88180100, // 0038 GETMBR R6 R0 K0
+ 0x601C0008, // 0039 GETGBL R7 G8
+ 0x5C200800, // 003A MOVE R8 R4
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x88200100, // 003C GETMBR R8 R0 K0
+ 0x941C1007, // 003D GETIDX R7 R8 R7
+ 0x98180A07, // 003E SETIDX R6 R5 R7
+ 0x88140100, // 003F GETMBR R5 R0 K0
+ 0x8C140B08, // 0040 GETMET R5 R5 K8
+ 0x601C0008, // 0041 GETGBL R7 G8
+ 0x5C200800, // 0042 MOVE R8 R4
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x7C140400, // 0044 CALL R5 2
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x00140B0D, // 0046 ADD R5 R5 K13
+ 0x90021805, // 0047 SETMBR R0 K12 R5
+ 0x7001FFCE, // 0048 JMP #0018
+ 0x580C0003, // 0049 LDCONST R3 K3
+ 0xAC0C0200, // 004A CATCH R3 1 0
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80040200, // 004C RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_attribute_expansion
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(start),
+ /* K6 */ be_nested_str_weak(next),
+ /* K7 */ be_nested_str_weak(get_pi),
+ /* K8 */ be_nested_str_weak(endpoint_found),
+ /* K9 */ be_nested_str_weak(status),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K11 */ be_nested_str_weak(cluster_found),
+ /* K12 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K13 */ be_nested_str_weak(attribute_found),
+ /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ /* K15 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
+ }),
+ be_str_weak(process_attribute_expansion),
+ &be_const_str_solidified,
+ ( &(const binstruction[73]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x88140302, // 0002 GETMBR R5 R1 K2
+ 0x50180000, // 0003 LDBOOL R6 0 0
+ 0x501C0000, // 0004 LDBOOL R7 0 0
+ 0x50200000, // 0005 LDBOOL R8 0 0
+ 0x88240300, // 0006 GETMBR R9 R1 K0
+ 0x4C280000, // 0007 LDNIL R10
+ 0x2024120A, // 0008 NE R9 R9 R10
+ 0x78260007, // 0009 JMPF R9 #0012
+ 0x88240301, // 000A GETMBR R9 R1 K1
+ 0x4C280000, // 000B LDNIL R10
+ 0x2024120A, // 000C NE R9 R9 R10
+ 0x78260003, // 000D JMPF R9 #0012
+ 0x88240302, // 000E GETMBR R9 R1 K2
+ 0x4C280000, // 000F LDNIL R10
+ 0x2024120A, // 0010 NE R9 R9 R10
+ 0x74260000, // 0011 JMPT R9 #0013
+ 0x50240001, // 0012 LDBOOL R9 0 1
+ 0x50240200, // 0013 LDBOOL R9 1 0
+ 0xB82A0600, // 0014 GETNGBL R10 K3
+ 0x8C281504, // 0015 GETMET R10 R10 K4
+ 0x5C300000, // 0016 MOVE R12 R0
+ 0x7C280400, // 0017 CALL R10 2
+ 0x8C2C1505, // 0018 GETMET R11 R10 K5
+ 0x5C340200, // 0019 MOVE R13 R1
+ 0x4C380000, // 001A LDNIL R14
+ 0x7C2C0600, // 001B CALL R11 3
+ 0x4C2C0000, // 001C LDNIL R11
+ 0x8C301506, // 001D GETMET R12 R10 K6
+ 0x7C300200, // 001E CALL R12 1
+ 0x5C2C1800, // 001F MOVE R11 R12
+ 0x4C340000, // 0020 LDNIL R13
+ 0x2030180D, // 0021 NE R12 R12 R13
+ 0x78320009, // 0022 JMPF R12 #002D
+ 0x5C300400, // 0023 MOVE R12 R2
+ 0x8C341507, // 0024 GETMET R13 R10 K7
+ 0x7C340200, // 0025 CALL R13 1
+ 0x5C381600, // 0026 MOVE R14 R11
+ 0x5C3C1200, // 0027 MOVE R15 R9
+ 0x7C300600, // 0028 CALL R12 3
+ 0x78260001, // 0029 JMPF R9 #002C
+ 0x78320000, // 002A JMPF R12 #002C
+ 0x80001A00, // 002B RET 0
+ 0x7001FFEF, // 002C JMP #001D
+ 0x78260019, // 002D JMPF R9 #0048
+ 0x88301508, // 002E GETMBR R12 R10 K8
+ 0x74320003, // 002F JMPT R12 #0034
+ 0xB8320600, // 0030 GETNGBL R12 K3
+ 0x8830190A, // 0031 GETMBR R12 R12 K10
+ 0x9006120C, // 0032 SETMBR R1 K9 R12
+ 0x7002000E, // 0033 JMP #0043
+ 0x8830150B, // 0034 GETMBR R12 R10 K11
+ 0x74320003, // 0035 JMPT R12 #003A
+ 0xB8320600, // 0036 GETNGBL R12 K3
+ 0x8830190C, // 0037 GETMBR R12 R12 K12
+ 0x9006120C, // 0038 SETMBR R1 K9 R12
+ 0x70020008, // 0039 JMP #0043
+ 0x8830150D, // 003A GETMBR R12 R10 K13
+ 0x74320003, // 003B JMPT R12 #0040
+ 0xB8320600, // 003C GETNGBL R12 K3
+ 0x8830190E, // 003D GETMBR R12 R12 K14
+ 0x9006120C, // 003E SETMBR R1 K9 R12
+ 0x70020002, // 003F JMP #0043
+ 0xB8320600, // 0040 GETNGBL R12 K3
+ 0x8830190F, // 0041 GETMBR R12 R12 K15
+ 0x9006120C, // 0042 SETMBR R1 K9 R12
+ 0x5C300400, // 0043 MOVE R12 R2
+ 0x4C340000, // 0044 LDNIL R13
+ 0x5C380200, // 0045 MOVE R14 R1
+ 0x503C0200, // 0046 LDBOOL R15 1 0
+ 0x7C300600, // 0047 CALL R12 3
+ 0x80000000, // 0048 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
+ /* K9 */ be_const_int(3),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(find),
+ /* K13 */ be_nested_str_weak(up),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K15 */ be_nested_str_weak(hostname_eth),
+ /* K16 */ be_nested_str_weak(add_service),
+ /* K17 */ be_nested_str_weak(_matter),
+ /* K18 */ be_nested_str_weak(_tcp),
+ /* K19 */ be_nested_str_weak(_I),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K21 */ be_nested_str_weak(add_subtype),
+ /* K22 */ be_nested_str_weak(wifi),
+ /* K23 */ be_nested_str_weak(hostname_wifi),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_announce_op_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[115]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA802005F, // 0001 EXBLK 0 #0062
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x001E1005, // 0011 ADD R7 K8 R5
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0xB81A1400, // 0014 GETNGBL R6 K10
+ 0x8C180D0B, // 0015 GETMET R6 R6 K11
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180D0C, // 0017 GETMET R6 R6 K12
+ 0x5820000D, // 0018 LDCONST R8 K13
+ 0x7C180400, // 0019 CALL R6 2
+ 0x781A001E, // 001A JMPF R6 #003A
+ 0xB81A0E00, // 001B GETNGBL R6 K7
+ 0x601C0018, // 001C GETGBL R7 G24
+ 0x5820000E, // 001D LDCONST R8 K14
+ 0x5824000B, // 001E LDCONST R9 K11
+ 0x5C280A00, // 001F MOVE R10 R5
+ 0x882C010F, // 0020 GETMBR R11 R0 K15
+ 0x7C1C0800, // 0021 CALL R7 4
+ 0x58200009, // 0022 LDCONST R8 K9
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8C180510, // 0024 GETMET R6 R2 K16
+ 0x58200011, // 0025 LDCONST R8 K17
+ 0x58240012, // 0026 LDCONST R9 K18
+ 0x542A15A3, // 0027 LDINT R10 5540
+ 0x4C2C0000, // 0028 LDNIL R11
+ 0x5C300A00, // 0029 MOVE R12 R5
+ 0x8834010F, // 002A GETMBR R13 R0 K15
+ 0x7C180E00, // 002B CALL R6 7
+ 0x8C180905, // 002C GETMET R6 R4 K5
+ 0x7C180200, // 002D CALL R6 1
+ 0x001A2606, // 002E ADD R6 K19 R6
+ 0xB81E0E00, // 002F GETNGBL R7 K7
+ 0x00222806, // 0030 ADD R8 K20 R6
+ 0x58240009, // 0031 LDCONST R9 K9
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x8C1C0515, // 0033 GETMET R7 R2 K21
+ 0x58240011, // 0034 LDCONST R9 K17
+ 0x58280012, // 0035 LDCONST R10 K18
+ 0x5C2C0A00, // 0036 MOVE R11 R5
+ 0x8830010F, // 0037 GETMBR R12 R0 K15
+ 0x5C340C00, // 0038 MOVE R13 R6
+ 0x7C1C0C00, // 0039 CALL R7 6
+ 0xB81A1400, // 003A GETNGBL R6 K10
+ 0x8C180D16, // 003B GETMET R6 R6 K22
+ 0x7C180200, // 003C CALL R6 1
+ 0x8C180D0C, // 003D GETMET R6 R6 K12
+ 0x5820000D, // 003E LDCONST R8 K13
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A001E, // 0040 JMPF R6 #0060
+ 0xB81A0E00, // 0041 GETNGBL R6 K7
+ 0x601C0018, // 0042 GETGBL R7 G24
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x58240016, // 0044 LDCONST R9 K22
+ 0x5C280A00, // 0045 MOVE R10 R5
+ 0x882C0117, // 0046 GETMBR R11 R0 K23
+ 0x7C1C0800, // 0047 CALL R7 4
+ 0x58200009, // 0048 LDCONST R8 K9
+ 0x7C180400, // 0049 CALL R6 2
+ 0x8C180510, // 004A GETMET R6 R2 K16
+ 0x58200011, // 004B LDCONST R8 K17
+ 0x58240012, // 004C LDCONST R9 K18
+ 0x542A15A3, // 004D LDINT R10 5540
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x5C300A00, // 004F MOVE R12 R5
+ 0x88340117, // 0050 GETMBR R13 R0 K23
+ 0x7C180E00, // 0051 CALL R6 7
+ 0x8C180905, // 0052 GETMET R6 R4 K5
+ 0x7C180200, // 0053 CALL R6 1
+ 0x001A2606, // 0054 ADD R6 K19 R6
+ 0xB81E0E00, // 0055 GETNGBL R7 K7
+ 0x00222806, // 0056 ADD R8 K20 R6
+ 0x58240009, // 0057 LDCONST R9 K9
+ 0x7C1C0400, // 0058 CALL R7 2
+ 0x8C1C0515, // 0059 GETMET R7 R2 K21
+ 0x58240011, // 005A LDCONST R9 K17
+ 0x58280012, // 005B LDCONST R10 K18
+ 0x5C2C0A00, // 005C MOVE R11 R5
+ 0x88300117, // 005D GETMBR R12 R0 K23
+ 0x5C340C00, // 005E MOVE R13 R6
+ 0x7C1C0C00, // 005F CALL R7 6
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7002000F, // 0061 JMP #0072
+ 0xAC0C0002, // 0062 CATCH R3 0 2
+ 0x7002000C, // 0063 JMP #0071
+ 0xB8160E00, // 0064 GETNGBL R5 K7
+ 0x60180008, // 0065 GETGBL R6 G8
+ 0x5C1C0600, // 0066 MOVE R7 R3
+ 0x7C180200, // 0067 CALL R6 1
+ 0x001A3006, // 0068 ADD R6 K24 R6
+ 0x00180D19, // 0069 ADD R6 R6 K25
+ 0x601C0008, // 006A GETGBL R7 G8
+ 0x5C200800, // 006B MOVE R8 R4
+ 0x7C1C0200, // 006C CALL R7 1
+ 0x00180C07, // 006D ADD R6 R6 R7
+ 0x581C001A, // 006E LDCONST R7 K26
+ 0x7C140400, // 006F CALL R5 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: save_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_save_param, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(update_remotes_info),
+ /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
+ /* K3 */ be_nested_str_weak(root_discriminator),
+ /* K4 */ be_nested_str_weak(root_passcode),
+ /* K5 */ be_nested_str_weak(ipv4only),
+ /* K6 */ be_nested_str_weak(true),
+ /* K7 */ be_nested_str_weak(false),
+ /* K8 */ be_nested_str_weak(disable_bridge_mode),
+ /* K9 */ be_nested_str_weak(next_ep),
+ /* K10 */ be_nested_str_weak(debug),
+ /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
+ /* K14 */ be_nested_str_weak(dump),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_config_remotes),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
+ /* K19 */ be_nested_str_weak(_X7D),
+ /* K20 */ be_nested_str_weak(FILENAME),
+ /* K21 */ be_nested_str_weak(w),
+ /* K22 */ be_nested_str_weak(write),
+ /* K23 */ be_nested_str_weak(close),
+ /* K24 */ be_nested_str_weak(log),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
+ /* K26 */ be_nested_str_weak(_X20and_X20configuration),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_const_int(2),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K30 */ be_nested_str_weak(_X7C),
+ }),
+ be_str_weak(save_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080018, // 0003 GETGBL R2 G24
+ 0x580C0002, // 0004 LDCONST R3 K2
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x88140104, // 0006 GETMBR R5 R0 K4
+ 0x88180105, // 0007 GETMBR R6 R0 K5
+ 0x781A0001, // 0008 JMPF R6 #000B
+ 0x58180006, // 0009 LDCONST R6 K6
+ 0x70020000, // 000A JMP #000C
+ 0x58180007, // 000B LDCONST R6 K7
+ 0x881C0108, // 000C GETMBR R7 R0 K8
+ 0x781E0001, // 000D JMPF R7 #0010
+ 0x581C0006, // 000E LDCONST R7 K6
+ 0x70020000, // 000F JMP #0011
+ 0x581C0007, // 0010 LDCONST R7 K7
+ 0x88200109, // 0011 GETMBR R8 R0 K9
+ 0x7C080C00, // 0012 CALL R2 6
+ 0x880C010A, // 0013 GETMBR R3 R0 K10
+ 0x780E0000, // 0014 JMPF R3 #0016
+ 0x0008050B, // 0015 ADD R2 R2 K11
+ 0x880C010C, // 0016 GETMBR R3 R0 K12
+ 0x780E000E, // 0017 JMPF R3 #0027
+ 0x0008050D, // 0018 ADD R2 R2 K13
+ 0x8C0C030E, // 0019 GETMET R3 R1 K14
+ 0x8814010F, // 001A GETMBR R5 R0 K15
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x00080403, // 001C ADD R2 R2 R3
+ 0x600C000C, // 001D GETGBL R3 G12
+ 0x88100110, // 001E GETMBR R4 R0 K16
+ 0x7C0C0200, // 001F CALL R3 1
+ 0x240C0711, // 0020 GT R3 R3 K17
+ 0x780E0004, // 0021 JMPF R3 #0027
+ 0x00080512, // 0022 ADD R2 R2 K18
+ 0x8C0C030E, // 0023 GETMET R3 R1 K14
+ 0x88140110, // 0024 GETMBR R5 R0 K16
+ 0x7C0C0400, // 0025 CALL R3 2
+ 0x00080403, // 0026 ADD R2 R2 R3
+ 0x00080513, // 0027 ADD R2 R2 K19
+ 0xA8020017, // 0028 EXBLK 0 #0041
+ 0x600C0011, // 0029 GETGBL R3 G17
+ 0x88100114, // 002A GETMBR R4 R0 K20
+ 0x58140015, // 002B LDCONST R5 K21
+ 0x7C0C0400, // 002C CALL R3 2
+ 0x8C100716, // 002D GETMET R4 R3 K22
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x8C100717, // 0030 GETMET R4 R3 K23
+ 0x7C100200, // 0031 CALL R4 1
+ 0xB8123000, // 0032 GETNGBL R4 K24
+ 0x60140018, // 0033 GETGBL R5 G24
+ 0x58180019, // 0034 LDCONST R6 K25
+ 0x881C010C, // 0035 GETMBR R7 R0 K12
+ 0x781E0001, // 0036 JMPF R7 #0039
+ 0x581C001A, // 0037 LDCONST R7 K26
+ 0x70020000, // 0038 JMP #003A
+ 0x581C001B, // 0039 LDCONST R7 K27
+ 0x7C140400, // 003A CALL R5 2
+ 0x5818001C, // 003B LDCONST R6 K28
+ 0x7C100400, // 003C CALL R4 2
+ 0xA8040001, // 003D EXBLK 1 1
+ 0x80040400, // 003E RET 1 R2
+ 0xA8040001, // 003F EXBLK 1 1
+ 0x70020010, // 0040 JMP #0052
+ 0xAC0C0002, // 0041 CATCH R3 0 2
+ 0x7002000D, // 0042 JMP #0051
+ 0xB8163000, // 0043 GETNGBL R5 K24
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x001A3A06, // 0047 ADD R6 K29 R6
+ 0x00180D1E, // 0048 ADD R6 R6 K30
+ 0x601C0008, // 0049 GETGBL R7 G8
+ 0x5C200800, // 004A MOVE R8 R4
+ 0x7C1C0200, // 004B CALL R7 1
+ 0x00180C07, // 004C ADD R6 R6 R7
+ 0x581C001C, // 004D LDCONST R7 K28
+ 0x7C140400, // 004E CALL R5 2
+ 0x80040400, // 004F RET 1 R2
+ 0x70020000, // 0050 JMP #0052
+ 0xB0080000, // 0051 RAISE 2 R0 R0
+ 0x80000000, // 0052 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
+ }),
+ be_str_weak(_init_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040302, // 0003 EQ R1 R1 K2
+ 0x78060001, // 0004 JMPF R1 #0007
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x7C040200, // 0006 CALL R1 1
+ 0x80000000, // 0007 RET 0
})
)
);
@@ -6012,6 +3804,201 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: start_mdns_announce_hostnames
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080000, // 0002 LDBOOL R2 0 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(wifi),
+ /* K2 */ be_nested_str_weak(up),
+ /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K4 */ be_nested_str_weak(add_rule),
+ /* K5 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K6 */ be_nested_str_weak(matter_mdns_host),
+ /* K7 */ be_nested_str_weak(eth),
+ /* K8 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_mdns_announce_hostnames),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x94040302, // 0003 GETIDX R1 R1 K2
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x500C0000, // 0006 LDBOOL R3 0 0
+ 0x7C040400, // 0007 CALL R1 2
+ 0x70020005, // 0008 JMP #000F
+ 0xB8060000, // 0009 GETNGBL R1 K0
+ 0x8C040304, // 000A GETMET R1 R1 K4
+ 0x580C0005, // 000B LDCONST R3 K5
+ 0x84100000, // 000C CLOSURE R4 P0
+ 0x58140006, // 000D LDCONST R5 K6
+ 0x7C040800, // 000E CALL R1 4
+ 0xB8060000, // 000F GETNGBL R1 K0
+ 0x8C040307, // 0010 GETMET R1 R1 K7
+ 0x7C040200, // 0011 CALL R1 1
+ 0x94040302, // 0012 GETIDX R1 R1 K2
+ 0x78060003, // 0013 JMPF R1 #0018
+ 0x8C040103, // 0014 GETMET R1 R0 K3
+ 0x500C0200, // 0015 LDBOOL R3 1 0
+ 0x7C040400, // 0016 CALL R1 2
+ 0x70020005, // 0017 JMP #001E
+ 0xB8060000, // 0018 GETNGBL R1 K0
+ 0x8C040304, // 0019 GETMET R1 R1 K4
+ 0x580C0008, // 001A LDCONST R3 K8
+ 0x84100001, // 001B CLOSURE R4 P1
+ 0x58140006, // 001C LDCONST R5 K6
+ 0x7C040800, // 001D CALL R1 4
+ 0xA0000000, // 001E CLOSE R0
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_manual_pairing_code
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(root_discriminator),
+ /* K1 */ be_nested_str_weak(root_passcode),
+ /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Verhoeff),
+ /* K5 */ be_nested_str_weak(checksum),
+ }),
+ be_str_weak(compute_manual_pairing_code),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x540A0FFE, // 0001 LDINT R2 4095
+ 0x2C040202, // 0002 AND R1 R1 R2
+ 0x540A0009, // 0003 LDINT R2 10
+ 0x3C040202, // 0004 SHR R1 R1 R2
+ 0x88080100, // 0005 GETMBR R2 R0 K0
+ 0x540E02FF, // 0006 LDINT R3 768
+ 0x2C080403, // 0007 AND R2 R2 R3
+ 0x540E0005, // 0008 LDINT R3 6
+ 0x38080403, // 0009 SHL R2 R2 R3
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x54123FFE, // 000B LDINT R4 16383
+ 0x2C0C0604, // 000C AND R3 R3 R4
+ 0x30080403, // 000D OR R2 R2 R3
+ 0x880C0101, // 000E GETMBR R3 R0 K1
+ 0x5412000D, // 000F LDINT R4 14
+ 0x3C0C0604, // 0010 SHR R3 R3 R4
+ 0x60100018, // 0011 GETGBL R4 G24
+ 0x58140002, // 0012 LDCONST R5 K2
+ 0x5C180200, // 0013 MOVE R6 R1
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x5C200600, // 0015 MOVE R8 R3
+ 0x7C100800, // 0016 CALL R4 4
+ 0xB8160600, // 0017 GETNGBL R5 K3
+ 0x88140B04, // 0018 GETMBR R5 R5 K4
+ 0x8C140B05, // 0019 GETMET R5 R5 K5
+ 0x5C1C0800, // 001A MOVE R7 R4
+ 0x7C140400, // 001B CALL R5 2
+ 0x00100805, // 001C ADD R4 R4 R5
+ 0x80040800, // 001D RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: get_plugin_remote_info
********************************************************************/
@@ -6047,12 +4034,76 @@ be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
/********************************************************************
-** Solidified function: every_50ms
+** Solidified function: find_plugin_by_friendly_name
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_50ms, /* name */
+be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
be_nested_proto(
- 2, /* nstack */
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_name),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_plugin_by_friendly_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x740A0004, // 0002 JMPT R2 #0008
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x5C0C0200, // 0004 MOVE R3 R1
+ 0x7C080200, // 0005 CALL R2 1
+ 0x1C080500, // 0006 EQ R2 R2 K0
+ 0x780A0001, // 0007 JMPF R2 #000A
+ 0x4C080000, // 0008 LDNIL R2
+ 0x80040400, // 0009 RET 1 R2
+ 0x58080000, // 000A LDCONST R2 K0
+ 0x600C000C, // 000B GETGBL R3 G12
+ 0x88100101, // 000C GETMBR R4 R0 K1
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x140C0403, // 000E LT R3 R2 R3
+ 0x780E0010, // 000F JMPF R3 #0021
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x940C0602, // 0011 GETIDX R3 R3 R2
+ 0x8C100702, // 0012 GETMET R4 R3 K2
+ 0x7C100200, // 0013 CALL R4 1
+ 0x4C140000, // 0014 LDNIL R5
+ 0x20140805, // 0015 NE R5 R4 R5
+ 0x78160007, // 0016 JMPF R5 #001F
+ 0x6014000C, // 0017 GETGBL R5 G12
+ 0x5C180800, // 0018 MOVE R6 R4
+ 0x7C140200, // 0019 CALL R5 1
+ 0x24140B00, // 001A GT R5 R5 K0
+ 0x78160002, // 001B JMPF R5 #001F
+ 0x1C140801, // 001C EQ R5 R4 R1
+ 0x78160000, // 001D JMPF R5 #001F
+ 0x80040600, // 001E RET 1 R3
+ 0x00080503, // 001F ADD R2 R2 K3
+ 0x7001FFE9, // 0020 JMP #000B
+ 0x4C0C0000, // 0021 LDNIL R3
+ 0x80040600, // 0022 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _trigger_read_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
+ be_nested_proto(
+ 8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -6060,17 +4111,1978 @@ be_local_closure(class_Matter_Device_every_50ms, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_const_int(1),
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(read_sensors),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
+ /* K7 */ be_nested_str_weak(load),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(plugins),
+ /* K10 */ be_nested_str_weak(parse_sensors),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
}),
- be_str_weak(every_50ms),
+ be_str_weak(_trigger_read_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0200, // 0004 GETNGBL R3 K1
+ 0x8C0C0703, // 0005 GETMET R3 R3 K3
+ 0x58140004, // 0006 LDCONST R5 K4
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x780E0006, // 0008 JMPF R3 #0010
+ 0xB80E0A00, // 0009 GETNGBL R3 K5
+ 0x60100008, // 000A GETGBL R4 G8
+ 0x5C140400, // 000B MOVE R5 R2
+ 0x7C100200, // 000C CALL R4 1
+ 0x00120C04, // 000D ADD R4 K6 R4
+ 0x58140004, // 000E LDCONST R5 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x1C0C0403, // 0011 EQ R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x80000600, // 0013 RET 0
+ 0x8C0C0307, // 0014 GETMET R3 R1 K7
+ 0x5C140400, // 0015 MOVE R5 R2
+ 0x7C0C0400, // 0016 CALL R3 2
+ 0x4C100000, // 0017 LDNIL R4
+ 0x20100604, // 0018 NE R4 R3 R4
+ 0x7812000D, // 0019 JMPF R4 #0028
+ 0x58100008, // 001A LDCONST R4 K8
+ 0x6014000C, // 001B GETGBL R5 G12
+ 0x88180109, // 001C GETMBR R6 R0 K9
+ 0x7C140200, // 001D CALL R5 1
+ 0x14140805, // 001E LT R5 R4 R5
+ 0x78160006, // 001F JMPF R5 #0027
+ 0x88140109, // 0020 GETMBR R5 R0 K9
+ 0x94140A04, // 0021 GETIDX R5 R5 R4
+ 0x8C140B0A, // 0022 GETMET R5 R5 K10
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C140400, // 0024 CALL R5 2
+ 0x0010090B, // 0025 ADD R4 R4 K11
+ 0x7001FFF3, // 0026 JMP #001B
+ 0x70020006, // 0027 JMP #002F
+ 0xB8120A00, // 0028 GETNGBL R4 K5
+ 0x60140008, // 0029 GETGBL R5 G8
+ 0x5C180400, // 002A MOVE R6 R2
+ 0x7C140200, // 002B CALL R5 1
+ 0x00161805, // 002C ADD R5 K12 R5
+ 0x58180004, // 002D LDCONST R6 K4
+ 0x7C100400, // 002E CALL R4 2
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: adjust_next_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(next_ep),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(adjust_next_ep),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000A, // 0005 EXBLK 0 #0011
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x600C0009, // 0008 GETGBL R3 G9
+ 0x5C100400, // 0009 MOVE R4 R2
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0x28100604, // 000C GE R4 R3 R4
+ 0x78120001, // 000D JMPF R4 #0010
+ 0x00100703, // 000E ADD R4 R3 K3
+ 0x90020404, // 000F SETMBR R0 K2 R4
+ 0x7001FFF4, // 0010 JMP #0006
+ 0x58040004, // 0011 LDCONST R1 K4
+ 0xAC040200, // 0012 CATCH R1 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_active_endpoints
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins),
+ /* K1 */ be_nested_str_weak(get_endpoint),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(get_active_endpoints),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x88100100, // 0003 GETMBR R4 R0 K0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0xA8020011, // 0005 EXBLK 0 #0018
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x7C100000, // 0007 CALL R4 0
+ 0x8C140901, // 0008 GETMET R5 R4 K1
+ 0x7C140200, // 0009 CALL R5 1
+ 0x78060002, // 000A JMPF R1 #000E
+ 0x1C180B02, // 000B EQ R6 R5 K2
+ 0x781A0000, // 000C JMPF R6 #000E
+ 0x7001FFF7, // 000D JMP #0006
+ 0x8C180503, // 000E GETMET R6 R2 K3
+ 0x5C200A00, // 000F MOVE R8 R5
+ 0x7C180400, // 0010 CALL R6 2
+ 0x4C1C0000, // 0011 LDNIL R7
+ 0x1C180C07, // 0012 EQ R6 R6 R7
+ 0x781A0002, // 0013 JMPF R6 #0017
+ 0x8C180504, // 0014 GETMET R6 R2 K4
+ 0x5C200A00, // 0015 MOVE R8 R5
+ 0x7C180400, // 0016 CALL R6 2
+ 0x7001FFED, // 0017 JMP #0006
+ 0x580C0005, // 0018 LDCONST R3 K5
+ 0xAC0C0200, // 0019 CATCH R3 1 0
+ 0xB0080000, // 001A RAISE 2 R0 R0
+ 0x80040400, // 001B RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_second, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(every_second),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(commissioning_open),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(time_reached),
+ }),
+ be_str_weak(every_second),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040301, // 0004 GETMET R1 R1 K1
+ 0x7C040200, // 0005 CALL R1 1
+ 0x88040103, // 0006 GETMBR R1 R0 K3
+ 0x4C080000, // 0007 LDNIL R2
+ 0x20040202, // 0008 NE R1 R1 R2
+ 0x78060006, // 0009 JMPF R1 #0011
+ 0xB8060800, // 000A GETNGBL R1 K4
+ 0x8C040305, // 000B GETMET R1 R1 K5
+ 0x880C0103, // 000C GETMBR R3 R0 K3
+ 0x7C040400, // 000D CALL R1 2
+ 0x78060001, // 000E JMPF R1 #0011
+ 0x4C040000, // 000F LDNIL R1
+ 0x90020601, // 0010 SETMBR R0 K3 R1
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clean_remotes
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_clean_remotes, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(introspect),
+ /* K1 */ be_nested_str_weak(http_remotes),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_nested_str_weak(get),
+ /* K6 */ be_nested_str_weak(http_remote),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(keys),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(close),
+ /* K16 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(clean_remotes),
+ &be_const_str_solidified,
+ ( &(const binstruction[80]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x780A004B, // 0002 JMPF R2 #004F
+ 0x60080013, // 0003 GETGBL R2 G19
+ 0x7C080000, // 0004 CALL R2 0
+ 0x600C0010, // 0005 GETGBL R3 G16
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020003, // 0008 EXBLK 0 #000D
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x98080902, // 000B SETIDX R2 R4 K2
+ 0x7001FFFB, // 000C JMP #0009
+ 0x580C0003, // 000D LDCONST R3 K3
+ 0xAC0C0200, // 000E CATCH R3 1 0
+ 0xB0080000, // 000F RAISE 2 R0 R0
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100104, // 0011 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA802000F, // 0013 EXBLK 0 #0024
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x8C140305, // 0016 GETMET R5 R1 K5
+ 0x5C1C0800, // 0017 MOVE R7 R4
+ 0x58200006, // 0018 LDCONST R8 K6
+ 0x7C140600, // 0019 CALL R5 3
+ 0x4C180000, // 001A LDNIL R6
+ 0x20180A06, // 001B NE R6 R5 R6
+ 0x781A0005, // 001C JMPF R6 #0023
+ 0x8C180507, // 001D GETMET R6 R2 K7
+ 0x5C200A00, // 001E MOVE R8 R5
+ 0x58240002, // 001F LDCONST R9 K2
+ 0x7C180600, // 0020 CALL R6 3
+ 0x00180D08, // 0021 ADD R6 R6 K8
+ 0x98080A06, // 0022 SETIDX R2 R5 R6
+ 0x7001FFEF, // 0023 JMP #0014
+ 0x580C0003, // 0024 LDCONST R3 K3
+ 0xAC0C0200, // 0025 CATCH R3 1 0
+ 0xB0080000, // 0026 RAISE 2 R0 R0
+ 0x600C0012, // 0027 GETGBL R3 G18
+ 0x7C0C0000, // 0028 CALL R3 0
+ 0x60100010, // 0029 GETGBL R4 G16
+ 0x8C140509, // 002A GETMET R5 R2 K9
+ 0x7C140200, // 002B CALL R5 1
+ 0x7C100200, // 002C CALL R4 1
+ 0xA8020008, // 002D EXBLK 0 #0037
+ 0x5C140800, // 002E MOVE R5 R4
+ 0x7C140000, // 002F CALL R5 0
+ 0x94180405, // 0030 GETIDX R6 R2 R5
+ 0x1C180D02, // 0031 EQ R6 R6 K2
+ 0x781A0002, // 0032 JMPF R6 #0036
+ 0x8C18070A, // 0033 GETMET R6 R3 K10
+ 0x5C200A00, // 0034 MOVE R8 R5
+ 0x7C180400, // 0035 CALL R6 2
+ 0x7001FFF6, // 0036 JMP #002E
+ 0x58100003, // 0037 LDCONST R4 K3
+ 0xAC100200, // 0038 CATCH R4 1 0
+ 0xB0080000, // 0039 RAISE 2 R0 R0
+ 0x60100010, // 003A GETGBL R4 G16
+ 0x5C140600, // 003B MOVE R5 R3
+ 0x7C100200, // 003C CALL R4 1
+ 0xA802000D, // 003D EXBLK 0 #004C
+ 0x5C140800, // 003E MOVE R5 R4
+ 0x7C140000, // 003F CALL R5 0
+ 0xB81A1600, // 0040 GETNGBL R6 K11
+ 0x881C0B0D, // 0041 GETMBR R7 R5 K13
+ 0x001E1807, // 0042 ADD R7 K12 R7
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x7C180400, // 0044 CALL R6 2
+ 0x8C180B0F, // 0045 GETMET R6 R5 K15
+ 0x7C180200, // 0046 CALL R6 1
+ 0x88180101, // 0047 GETMBR R6 R0 K1
+ 0x8C180D10, // 0048 GETMET R6 R6 K16
+ 0x88200B0D, // 0049 GETMBR R8 R5 K13
+ 0x7C180400, // 004A CALL R6 2
+ 0x7001FFF1, // 004B JMP #003E
+ 0x58100003, // 004C LDCONST R4 K3
+ 0xAC100200, // 004D CATCH R4 1 0
+ 0xB0080000, // 004E RAISE 2 R0 R0
+ 0x80000000, // 004F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: load_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_load_param, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[36]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(FILENAME),
+ /* K2 */ be_nested_str_weak(read),
+ /* K3 */ be_nested_str_weak(close),
+ /* K4 */ be_nested_str_weak(json),
+ /* K5 */ be_nested_str_weak(load),
+ /* K6 */ be_nested_str_weak(root_discriminator),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(distinguish),
+ /* K9 */ be_nested_str_weak(root_passcode),
+ /* K10 */ be_nested_str_weak(passcode),
+ /* K11 */ be_nested_str_weak(ipv4only),
+ /* K12 */ be_nested_str_weak(disable_bridge_mode),
+ /* K13 */ be_nested_str_weak(next_ep),
+ /* K14 */ be_nested_str_weak(nextep),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(config),
+ /* K17 */ be_nested_str_weak(debug),
+ /* K18 */ be_nested_str_weak(log),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(adjust_next_ep),
+ /* K22 */ be_nested_str_weak(check_config_ep),
+ /* K23 */ be_nested_str_weak(plugins_persist),
+ /* K24 */ be_nested_str_weak(plugins_config_remotes),
+ /* K25 */ be_nested_str_weak(remotes),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
+ /* K27 */ be_nested_str_weak(io_error),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
+ /* K29 */ be_nested_str_weak(_X7C),
+ /* K30 */ be_const_int(2),
+ /* K31 */ be_nested_str_weak(random),
+ /* K32 */ be_nested_str_weak(get),
+ /* K33 */ be_const_int(0),
+ /* K34 */ be_nested_str_weak(generate_random_passcode),
+ /* K35 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(load_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[133]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0xA8020054, // 0002 EXBLK 0 #0058
+ 0x600C0011, // 0003 GETGBL R3 G17
+ 0x88100101, // 0004 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C100702, // 0006 GETMET R4 R3 K2
+ 0x7C100200, // 0007 CALL R4 1
+ 0x8C140703, // 0008 GETMET R5 R3 K3
+ 0x7C140200, // 0009 CALL R5 1
+ 0xA4160800, // 000A IMPORT R5 K4
+ 0x8C180B05, // 000B GETMET R6 R5 K5
+ 0x5C200800, // 000C MOVE R8 R4
+ 0x7C180400, // 000D CALL R6 2
+ 0x8C1C0D07, // 000E GETMET R7 R6 K7
+ 0x58240008, // 000F LDCONST R9 K8
+ 0x88280106, // 0010 GETMBR R10 R0 K6
+ 0x7C1C0600, // 0011 CALL R7 3
+ 0x90020C07, // 0012 SETMBR R0 K6 R7
+ 0x8C1C0D07, // 0013 GETMET R7 R6 K7
+ 0x5824000A, // 0014 LDCONST R9 K10
+ 0x88280109, // 0015 GETMBR R10 R0 K9
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x90021207, // 0017 SETMBR R0 K9 R7
+ 0x601C0017, // 0018 GETGBL R7 G23
+ 0x8C200D07, // 0019 GETMET R8 R6 K7
+ 0x5828000B, // 001A LDCONST R10 K11
+ 0x502C0000, // 001B LDBOOL R11 0 0
+ 0x7C200600, // 001C CALL R8 3
+ 0x7C1C0200, // 001D CALL R7 1
+ 0x90021607, // 001E SETMBR R0 K11 R7
+ 0x601C0017, // 001F GETGBL R7 G23
+ 0x8C200D07, // 0020 GETMET R8 R6 K7
+ 0x5828000C, // 0021 LDCONST R10 K12
+ 0x502C0000, // 0022 LDBOOL R11 0 0
+ 0x7C200600, // 0023 CALL R8 3
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x90021807, // 0025 SETMBR R0 K12 R7
+ 0x8C1C0D07, // 0026 GETMET R7 R6 K7
+ 0x5824000E, // 0027 LDCONST R9 K14
+ 0x8828010D, // 0028 GETMBR R10 R0 K13
+ 0x7C1C0600, // 0029 CALL R7 3
+ 0x90021A07, // 002A SETMBR R0 K13 R7
+ 0x8C1C0D07, // 002B GETMET R7 R6 K7
+ 0x58240010, // 002C LDCONST R9 K16
+ 0x7C1C0400, // 002D CALL R7 2
+ 0x90021E07, // 002E SETMBR R0 K15 R7
+ 0x601C0017, // 002F GETGBL R7 G23
+ 0x8C200D07, // 0030 GETMET R8 R6 K7
+ 0x58280011, // 0031 LDCONST R10 K17
+ 0x7C200400, // 0032 CALL R8 2
+ 0x7C1C0200, // 0033 CALL R7 1
+ 0x90022207, // 0034 SETMBR R0 K17 R7
+ 0x881C010F, // 0035 GETMBR R7 R0 K15
+ 0x4C200000, // 0036 LDNIL R8
+ 0x201C0E08, // 0037 NE R7 R7 R8
+ 0x781E000D, // 0038 JMPF R7 #0047
+ 0xB81E2400, // 0039 GETNGBL R7 K18
+ 0x60200018, // 003A GETGBL R8 G24
+ 0x58240013, // 003B LDCONST R9 K19
+ 0x8828010F, // 003C GETMBR R10 R0 K15
+ 0x7C200400, // 003D CALL R8 2
+ 0x58240014, // 003E LDCONST R9 K20
+ 0x7C1C0400, // 003F CALL R7 2
+ 0x8C1C0115, // 0040 GETMET R7 R0 K21
+ 0x7C1C0200, // 0041 CALL R7 1
+ 0x8C1C0116, // 0042 GETMET R7 R0 K22
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x5C080E00, // 0044 MOVE R2 R7
+ 0x501C0200, // 0045 LDBOOL R7 1 0
+ 0x90022E07, // 0046 SETMBR R0 K23 R7
+ 0x8C1C0D07, // 0047 GETMET R7 R6 K7
+ 0x58240019, // 0048 LDCONST R9 K25
+ 0x60280013, // 0049 GETGBL R10 G19
+ 0x7C280000, // 004A CALL R10 0
+ 0x7C1C0600, // 004B CALL R7 3
+ 0x90023007, // 004C SETMBR R0 K24 R7
+ 0x881C0118, // 004D GETMBR R7 R0 K24
+ 0x781E0006, // 004E JMPF R7 #0056
+ 0xB81E2400, // 004F GETNGBL R7 K18
+ 0x60200008, // 0050 GETGBL R8 G8
+ 0x88240118, // 0051 GETMBR R9 R0 K24
+ 0x7C200200, // 0052 CALL R8 1
+ 0x00223408, // 0053 ADD R8 K26 R8
+ 0x58240014, // 0054 LDCONST R9 K20
+ 0x7C1C0400, // 0055 CALL R7 2
+ 0xA8040001, // 0056 EXBLK 1 1
+ 0x70020011, // 0057 JMP #006A
+ 0xAC0C0002, // 0058 CATCH R3 0 2
+ 0x7002000E, // 0059 JMP #0069
+ 0x2014071B, // 005A NE R5 R3 K27
+ 0x7816000B, // 005B JMPF R5 #0068
+ 0xB8162400, // 005C GETNGBL R5 K18
+ 0x60180008, // 005D GETGBL R6 G8
+ 0x5C1C0600, // 005E MOVE R7 R3
+ 0x7C180200, // 005F CALL R6 1
+ 0x001A3806, // 0060 ADD R6 K28 R6
+ 0x00180D1D, // 0061 ADD R6 R6 K29
+ 0x601C0008, // 0062 GETGBL R7 G8
+ 0x5C200800, // 0063 MOVE R8 R4
+ 0x7C1C0200, // 0064 CALL R7 1
+ 0x00180C07, // 0065 ADD R6 R6 R7
+ 0x581C001E, // 0066 LDCONST R7 K30
+ 0x7C140400, // 0067 CALL R5 2
+ 0x70020000, // 0068 JMP #006A
+ 0xB0080000, // 0069 RAISE 2 R0 R0
+ 0x880C0106, // 006A GETMBR R3 R0 K6
+ 0x4C100000, // 006B LDNIL R4
+ 0x1C0C0604, // 006C EQ R3 R3 R4
+ 0x780E000A, // 006D JMPF R3 #0079
+ 0x8C0C031F, // 006E GETMET R3 R1 K31
+ 0x5814001E, // 006F LDCONST R5 K30
+ 0x7C0C0400, // 0070 CALL R3 2
+ 0x8C0C0720, // 0071 GETMET R3 R3 K32
+ 0x58140021, // 0072 LDCONST R5 K33
+ 0x5818001E, // 0073 LDCONST R6 K30
+ 0x7C0C0600, // 0074 CALL R3 3
+ 0x54120FFE, // 0075 LDINT R4 4095
+ 0x2C0C0604, // 0076 AND R3 R3 R4
+ 0x90020C03, // 0077 SETMBR R0 K6 R3
+ 0x50080200, // 0078 LDBOOL R2 1 0
+ 0x880C0109, // 0079 GETMBR R3 R0 K9
+ 0x4C100000, // 007A LDNIL R4
+ 0x1C0C0604, // 007B EQ R3 R3 R4
+ 0x780E0003, // 007C JMPF R3 #0081
+ 0x8C0C0122, // 007D GETMET R3 R0 K34
+ 0x7C0C0200, // 007E CALL R3 1
+ 0x90021203, // 007F SETMBR R0 K9 R3
+ 0x50080200, // 0080 LDBOOL R2 1 0
+ 0x780A0001, // 0081 JMPF R2 #0084
+ 0x8C0C0123, // 0082 GETMET R3 R0 K35
+ 0x7C0C0200, // 0083 CALL R3 1
+ 0x80000000, // 0084 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: received_ack
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_received_ack, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(received_ack),
+ }),
+ be_str_weak(received_ack),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_root_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
+ /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
+ /* K4 */ be_const_int(2),
+ /* K5 */ be_nested_str_weak(compute_qrcode_content),
+ /* K6 */ be_nested_str_weak(tasmota),
+ /* K7 */ be_nested_str_weak(publish_result),
+ /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
+ /* K9 */ be_nested_str_weak(Matter),
+ /* K10 */ be_nested_str_weak(_compute_pbkdf),
+ /* K11 */ be_nested_str_weak(root_passcode),
+ /* K12 */ be_nested_str_weak(root_iterations),
+ /* K13 */ be_nested_str_weak(root_salt),
+ /* K14 */ be_nested_str_weak(start_basic_commissioning),
+ /* K15 */ be_nested_str_weak(root_discriminator),
+ /* K16 */ be_nested_str_weak(root_w0),
+ /* K17 */ be_nested_str_weak(root_L),
+ }),
+ be_str_weak(start_root_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[39]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x88040100, // 0003 GETMBR R1 R0 K0
+ 0x8C080101, // 0004 GETMET R2 R0 K1
+ 0x7C080200, // 0005 CALL R2 1
+ 0xB80E0400, // 0006 GETNGBL R3 K2
+ 0x60100018, // 0007 GETGBL R4 G24
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x5C180400, // 0009 MOVE R6 R2
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140004, // 000B LDCONST R5 K4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x8C0C0105, // 000D GETMET R3 R0 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0xB8120C00, // 000F GETNGBL R4 K6
+ 0x8C100907, // 0010 GETMET R4 R4 K7
+ 0x60180018, // 0011 GETGBL R6 G24
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x5C200400, // 0013 MOVE R8 R2
+ 0x5C240600, // 0014 MOVE R9 R3
+ 0x7C180600, // 0015 CALL R6 3
+ 0x581C0009, // 0016 LDCONST R7 K9
+ 0x7C100600, // 0017 CALL R4 3
+ 0x8C10010A, // 0018 GETMET R4 R0 K10
+ 0x8818010B, // 0019 GETMBR R6 R0 K11
+ 0x881C010C, // 001A GETMBR R7 R0 K12
+ 0x8820010D, // 001B GETMBR R8 R0 K13
+ 0x7C100800, // 001C CALL R4 4
+ 0x8C10010E, // 001D GETMET R4 R0 K14
+ 0x5C180200, // 001E MOVE R6 R1
+ 0x881C010C, // 001F GETMBR R7 R0 K12
+ 0x8820010F, // 0020 GETMBR R8 R0 K15
+ 0x8824010D, // 0021 GETMBR R9 R0 K13
+ 0x88280110, // 0022 GETMBR R10 R0 K16
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x4C300000, // 0024 LDNIL R12
+ 0x7C101000, // 0025 CALL R4 8
+ 0x80000000, // 0026 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_remove_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins_config),
+ /* K2 */ be_nested_str_weak(contains),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(plugins_persist),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(get_endpoint),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(clean_remotes),
+ /* K15 */ be_nested_str_weak(save_param),
+ /* K16 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_remove_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[56]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x600C0008, // 0001 GETGBL R3 G8
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x4C100000, // 0004 LDNIL R4
+ 0x4C140000, // 0005 LDNIL R5
+ 0x88180101, // 0006 GETMBR R6 R0 K1
+ 0x8C180D02, // 0007 GETMET R6 R6 K2
+ 0x5C200600, // 0008 MOVE R8 R3
+ 0x7C180400, // 0009 CALL R6 2
+ 0x741A0004, // 000A JMPT R6 #0010
+ 0xB81A0600, // 000B GETNGBL R6 K3
+ 0x001E0803, // 000C ADD R7 K4 R3
+ 0x58200005, // 000D LDCONST R8 K5
+ 0x7C180400, // 000E CALL R6 2
+ 0x80000C00, // 000F RET 0
+ 0xB81A0600, // 0010 GETNGBL R6 K3
+ 0x601C0018, // 0011 GETGBL R7 G24
+ 0x58200006, // 0012 LDCONST R8 K6
+ 0x5C240200, // 0013 MOVE R9 R1
+ 0x7C1C0400, // 0014 CALL R7 2
+ 0x58200007, // 0015 LDCONST R8 K7
+ 0x7C180400, // 0016 CALL R6 2
+ 0x88180101, // 0017 GETMBR R6 R0 K1
+ 0x8C180D08, // 0018 GETMET R6 R6 K8
+ 0x5C200600, // 0019 MOVE R8 R3
+ 0x7C180400, // 001A CALL R6 2
+ 0x50180200, // 001B LDBOOL R6 1 0
+ 0x90021206, // 001C SETMBR R0 K9 R6
+ 0x5818000A, // 001D LDCONST R6 K10
+ 0x601C000C, // 001E GETGBL R7 G12
+ 0x8820010B, // 001F GETMBR R8 R0 K11
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x141C0C07, // 0021 LT R7 R6 R7
+ 0x781E000D, // 0022 JMPF R7 #0031
+ 0x881C010B, // 0023 GETMBR R7 R0 K11
+ 0x941C0E06, // 0024 GETIDX R7 R7 R6
+ 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x1C1C0207, // 0027 EQ R7 R1 R7
+ 0x781E0005, // 0028 JMPF R7 #002F
+ 0x881C010B, // 0029 GETMBR R7 R0 K11
+ 0x8C1C0F08, // 002A GETMET R7 R7 K8
+ 0x5C240C00, // 002B MOVE R9 R6
+ 0x7C1C0400, // 002C CALL R7 2
+ 0x70020002, // 002D JMP #0031
+ 0x70020000, // 002E JMP #0030
+ 0x00180D0D, // 002F ADD R6 R6 K13
+ 0x7001FFEC, // 0030 JMP #001E
+ 0x8C1C010E, // 0031 GETMET R7 R0 K14
+ 0x7C1C0200, // 0032 CALL R7 1
+ 0x8C1C010F, // 0033 GETMET R7 R0 K15
+ 0x7C1C0200, // 0034 CALL R7 1
+ 0x8C1C0110, // 0035 GETMET R7 R0 K16
+ 0x7C1C0200, // 0036 CALL R7 1
+ 0x80000000, // 0037 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_plugin_by_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_endpoint),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_plugin_by_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0008, // 0005 JMPF R3 #000F
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x8C100702, // 0008 GETMET R4 R3 K2
+ 0x7C100200, // 0009 CALL R4 1
+ 0x1C100801, // 000A EQ R4 R4 R1
+ 0x78120000, // 000B JMPF R4 #000D
+ 0x80040600, // 000C RET 1 R3
+ 0x00080503, // 000D ADD R2 R2 K3
+ 0x7001FFF1, // 000E JMP #0001
+ 0x4C0C0000, // 000F LDNIL R3
+ 0x80040600, // 0010 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_remotes_info
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_update_remotes_info, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(get_info),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(plugins_config_remotes),
+ }),
+ be_str_weak(update_remotes_info),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x60040013, // 0000 GETGBL R1 G19
+ 0x7C040000, // 0001 CALL R1 0
+ 0x88080100, // 0002 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x20080403, // 0004 NE R2 R2 R3
+ 0x780A0018, // 0005 JMPF R2 #001F
+ 0x60080010, // 0006 GETGBL R2 G16
+ 0x880C0100, // 0007 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0008 GETMET R3 R3 K1
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x7C080200, // 000A CALL R2 1
+ 0xA802000F, // 000B EXBLK 0 #001C
+ 0x5C0C0400, // 000C MOVE R3 R2
+ 0x7C0C0000, // 000D CALL R3 0
+ 0x88100100, // 000E GETMBR R4 R0 K0
+ 0x94100803, // 000F GETIDX R4 R4 R3
+ 0x8C100902, // 0010 GETMET R4 R4 K2
+ 0x7C100200, // 0011 CALL R4 1
+ 0x4C140000, // 0012 LDNIL R5
+ 0x20140805, // 0013 NE R5 R4 R5
+ 0x78160005, // 0014 JMPF R5 #001B
+ 0x6014000C, // 0015 GETGBL R5 G12
+ 0x5C180800, // 0016 MOVE R6 R4
+ 0x7C140200, // 0017 CALL R5 1
+ 0x24140B03, // 0018 GT R5 R5 K3
+ 0x78160000, // 0019 JMPF R5 #001B
+ 0x98040604, // 001A SETIDX R1 R3 R4
+ 0x7001FFEF, // 001B JMP #000C
+ 0x58080004, // 001C LDCONST R2 K4
+ 0xAC080200, // 001D CATCH R2 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x90020A01, // 001F SETMBR R0 K5 R1
+ 0x80040200, // 0020 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_device
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_device, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(plugins_config),
+ /* K5 */ be_nested_str_weak(autoconf_device_map),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(adjust_next_ep),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(count_active_fabrics),
+ /* K14 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(autoconf_device),
+ &be_const_str_solidified,
+ ( &(const binstruction[39]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0101, // 0002 GETMBR R3 R0 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x24080502, // 0004 GT R2 R2 K2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x80000400, // 0006 RET 0
+ 0x88080103, // 0007 GETMBR R2 R0 K3
+ 0x740A000E, // 0008 JMPT R2 #0018
+ 0x8C080105, // 0009 GETMET R2 R0 K5
+ 0x7C080200, // 000A CALL R2 1
+ 0x90020802, // 000B SETMBR R0 K4 R2
+ 0x60080013, // 000C GETGBL R2 G19
+ 0x7C080000, // 000D CALL R2 0
+ 0x90020C02, // 000E SETMBR R0 K6 R2
+ 0x8C080107, // 000F GETMET R2 R0 K7
+ 0x7C080200, // 0010 CALL R2 1
+ 0xB80A1000, // 0011 GETNGBL R2 K8
+ 0x600C0008, // 0012 GETGBL R3 G8
+ 0x88100104, // 0013 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x000E1203, // 0015 ADD R3 K9 R3
+ 0x5810000A, // 0016 LDCONST R4 K10
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8C08010B, // 0018 GETMET R2 R0 K11
+ 0x88100104, // 0019 GETMBR R4 R0 K4
+ 0x7C080400, // 001A CALL R2 2
+ 0x88080103, // 001B GETMBR R2 R0 K3
+ 0x740A0008, // 001C JMPT R2 #0026
+ 0x8808010C, // 001D GETMBR R2 R0 K12
+ 0x8C08050D, // 001E GETMET R2 R2 K13
+ 0x7C080200, // 001F CALL R2 1
+ 0x24080502, // 0020 GT R2 R2 K2
+ 0x780A0003, // 0021 JMPF R2 #0026
+ 0x50080200, // 0022 LDBOOL R2 1 0
+ 0x90020602, // 0023 SETMBR R0 K3 R2
+ 0x8C08010E, // 0024 GETMET R2 R0 K14
+ 0x7C080200, // 0025 CALL R2 1
+ 0x80000000, // 0026 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_sensors_scheduler
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(time_reached),
+ /* K5 */ be_nested_str_weak(_trigger_read_sensors),
+ /* K6 */ be_nested_str_weak(millis),
+ }),
+ be_str_weak(read_sensors_scheduler),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060000, // 0003 JMPF R1 #0005
+ 0x80000200, // 0004 RET 0
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x1C040302, // 0006 EQ R1 R1 K2
+ 0x74060004, // 0007 JMPT R1 #000D
+ 0xB8060600, // 0008 GETNGBL R1 K3
+ 0x8C040304, // 0009 GETMET R1 R1 K4
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x7C040400, // 000B CALL R1 2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0x8C040105, // 000D GETMET R1 R0 K5
+ 0x7C040200, // 000E CALL R1 1
+ 0xB8060600, // 000F GETNGBL R1 K3
+ 0x8C040306, // 0010 GETMET R1 R1 K6
+ 0x880C0100, // 0011 GETMBR R3 R0 K0
+ 0x7C040400, // 0012 CALL R1 2
+ 0x90020201, // 0013 SETMBR R0 K1 R1
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _mdns_announce_hostname
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(string),
+ /* K2 */ be_nested_str_weak(start),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(eth),
+ /* K5 */ be_nested_str_weak(hostname_eth),
+ /* K6 */ be_nested_str_weak(replace),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(mac),
+ /* K9 */ be_nested_str_weak(_X3A),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(ipv4only),
+ /* K12 */ be_nested_str_weak(contains),
+ /* K13 */ be_nested_str_weak(ip6local),
+ /* K14 */ be_nested_str_weak(add_hostname),
+ /* K15 */ be_nested_str_weak(ip),
+ /* K16 */ be_nested_str_weak(ip6),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_nested_str_weak(wifi),
+ /* K21 */ be_nested_str_weak(hostname_wifi),
+ /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K24 */ be_nested_str_weak(_X7C),
+ /* K25 */ be_const_int(2),
+ /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
+ }),
+ be_str_weak(_mdns_announce_hostname),
+ &be_const_str_solidified,
+ ( &(const binstruction[144]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0x8C100502, // 0002 GETMET R4 R2 K2
+ 0x7C100200, // 0003 CALL R4 1
+ 0xA8020077, // 0004 EXBLK 0 #007D
+ 0x78060033, // 0005 JMPF R1 #003A
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x8C140706, // 0009 GETMET R5 R3 K6
+ 0x8C1C0907, // 000A GETMET R7 R4 K7
+ 0x58240008, // 000B LDCONST R9 K8
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x58200009, // 000D LDCONST R8 K9
+ 0x5824000A, // 000E LDCONST R9 K10
+ 0x7C140800, // 000F CALL R5 4
+ 0x90020A05, // 0010 SETMBR R0 K5 R5
+ 0x8814010B, // 0011 GETMBR R5 R0 K11
+ 0x78160003, // 0012 JMPF R5 #0017
+ 0x8C14090C, // 0013 GETMET R5 R4 K12
+ 0x581C000D, // 0014 LDCONST R7 K13
+ 0x7C140400, // 0015 CALL R5 2
+ 0x7416000F, // 0016 JMPT R5 #0027
+ 0x8C14050E, // 0017 GETMET R5 R2 K14
+ 0x881C0105, // 0018 GETMBR R7 R0 K5
+ 0x8C200907, // 0019 GETMET R8 R4 K7
+ 0x5828000D, // 001A LDCONST R10 K13
+ 0x582C000A, // 001B LDCONST R11 K10
+ 0x7C200600, // 001C CALL R8 3
+ 0x8C240907, // 001D GETMET R9 R4 K7
+ 0x582C000F, // 001E LDCONST R11 K15
+ 0x5830000A, // 001F LDCONST R12 K10
+ 0x7C240600, // 0020 CALL R9 3
+ 0x8C280907, // 0021 GETMET R10 R4 K7
+ 0x58300010, // 0022 LDCONST R12 K16
+ 0x5834000A, // 0023 LDCONST R13 K10
+ 0x7C280600, // 0024 CALL R10 3
+ 0x7C140A00, // 0025 CALL R5 5
+ 0x70020011, // 0026 JMP #0039
+ 0xB8162200, // 0027 GETNGBL R5 K17
+ 0x60180018, // 0028 GETGBL R6 G24
+ 0x581C0012, // 0029 LDCONST R7 K18
+ 0x88200105, // 002A GETMBR R8 R0 K5
+ 0x8C240907, // 002B GETMET R9 R4 K7
+ 0x582C000F, // 002C LDCONST R11 K15
+ 0x5830000A, // 002D LDCONST R12 K10
+ 0x7C240600, // 002E CALL R9 3
+ 0x7C180600, // 002F CALL R6 3
+ 0x581C0013, // 0030 LDCONST R7 K19
+ 0x7C140400, // 0031 CALL R5 2
+ 0x8C14050E, // 0032 GETMET R5 R2 K14
+ 0x881C0105, // 0033 GETMBR R7 R0 K5
+ 0x8C200907, // 0034 GETMET R8 R4 K7
+ 0x5828000F, // 0035 LDCONST R10 K15
+ 0x582C000A, // 0036 LDCONST R11 K10
+ 0x7C200600, // 0037 CALL R8 3
+ 0x7C140600, // 0038 CALL R5 3
+ 0x70020032, // 0039 JMP #006D
+ 0xB8120600, // 003A GETNGBL R4 K3
+ 0x8C100914, // 003B GETMET R4 R4 K20
+ 0x7C100200, // 003C CALL R4 1
+ 0x8C140706, // 003D GETMET R5 R3 K6
+ 0x8C1C0907, // 003E GETMET R7 R4 K7
+ 0x58240008, // 003F LDCONST R9 K8
+ 0x7C1C0400, // 0040 CALL R7 2
+ 0x58200009, // 0041 LDCONST R8 K9
+ 0x5824000A, // 0042 LDCONST R9 K10
+ 0x7C140800, // 0043 CALL R5 4
+ 0x90022A05, // 0044 SETMBR R0 K21 R5
+ 0x8814010B, // 0045 GETMBR R5 R0 K11
+ 0x78160003, // 0046 JMPF R5 #004B
+ 0x8C14090C, // 0047 GETMET R5 R4 K12
+ 0x581C000D, // 0048 LDCONST R7 K13
+ 0x7C140400, // 0049 CALL R5 2
+ 0x7416000F, // 004A JMPT R5 #005B
+ 0x8C14050E, // 004B GETMET R5 R2 K14
+ 0x881C0115, // 004C GETMBR R7 R0 K21
+ 0x8C200907, // 004D GETMET R8 R4 K7
+ 0x5828000D, // 004E LDCONST R10 K13
+ 0x582C000A, // 004F LDCONST R11 K10
+ 0x7C200600, // 0050 CALL R8 3
+ 0x8C240907, // 0051 GETMET R9 R4 K7
+ 0x582C000F, // 0052 LDCONST R11 K15
+ 0x5830000A, // 0053 LDCONST R12 K10
+ 0x7C240600, // 0054 CALL R9 3
+ 0x8C280907, // 0055 GETMET R10 R4 K7
+ 0x58300010, // 0056 LDCONST R12 K16
+ 0x5834000A, // 0057 LDCONST R13 K10
+ 0x7C280600, // 0058 CALL R10 3
+ 0x7C140A00, // 0059 CALL R5 5
+ 0x70020011, // 005A JMP #006D
+ 0xB8162200, // 005B GETNGBL R5 K17
+ 0x60180018, // 005C GETGBL R6 G24
+ 0x581C0012, // 005D LDCONST R7 K18
+ 0x88200115, // 005E GETMBR R8 R0 K21
+ 0x8C240907, // 005F GETMET R9 R4 K7
+ 0x582C000F, // 0060 LDCONST R11 K15
+ 0x5830000A, // 0061 LDCONST R12 K10
+ 0x7C240600, // 0062 CALL R9 3
+ 0x7C180600, // 0063 CALL R6 3
+ 0x581C0013, // 0064 LDCONST R7 K19
+ 0x7C140400, // 0065 CALL R5 2
+ 0x8C14050E, // 0066 GETMET R5 R2 K14
+ 0x881C0115, // 0067 GETMBR R7 R0 K21
+ 0x8C200907, // 0068 GETMET R8 R4 K7
+ 0x5828000F, // 0069 LDCONST R10 K15
+ 0x582C000A, // 006A LDCONST R11 K10
+ 0x7C200600, // 006B CALL R8 3
+ 0x7C140600, // 006C CALL R5 3
+ 0xB8122200, // 006D GETNGBL R4 K17
+ 0x60140018, // 006E GETGBL R5 G24
+ 0x58180016, // 006F LDCONST R6 K22
+ 0x78060001, // 0070 JMPF R1 #0073
+ 0x581C0004, // 0071 LDCONST R7 K4
+ 0x70020000, // 0072 JMP #0074
+ 0x581C0014, // 0073 LDCONST R7 K20
+ 0x78060001, // 0074 JMPF R1 #0077
+ 0x88200105, // 0075 GETMBR R8 R0 K5
+ 0x70020000, // 0076 JMP #0078
+ 0x88200115, // 0077 GETMBR R8 R0 K21
+ 0x7C140600, // 0078 CALL R5 3
+ 0x58180013, // 0079 LDCONST R6 K19
+ 0x7C100400, // 007A CALL R4 2
+ 0xA8040001, // 007B EXBLK 1 1
+ 0x7002000F, // 007C JMP #008D
+ 0xAC100002, // 007D CATCH R4 0 2
+ 0x7002000C, // 007E JMP #008C
+ 0xB81A2200, // 007F GETNGBL R6 K17
+ 0x601C0008, // 0080 GETGBL R7 G8
+ 0x5C200800, // 0081 MOVE R8 R4
+ 0x7C1C0200, // 0082 CALL R7 1
+ 0x001E2E07, // 0083 ADD R7 K23 R7
+ 0x001C0F18, // 0084 ADD R7 R7 K24
+ 0x60200008, // 0085 GETGBL R8 G8
+ 0x5C240A00, // 0086 MOVE R9 R5
+ 0x7C200200, // 0087 CALL R8 1
+ 0x001C0E08, // 0088 ADD R7 R7 R8
+ 0x58200019, // 0089 LDCONST R8 K25
+ 0x7C180400, // 008A CALL R6 2
+ 0x70020000, // 008B JMP #008D
+ 0xB0080000, // 008C RAISE 2 R0 R0
+ 0x8C10011A, // 008D GETMET R4 R0 K26
+ 0x7C100200, // 008E CALL R4 1
+ 0x80000000, // 008F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_send
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_send, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(send_UDP),
+ }),
+ be_str_weak(msg_send),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_http_remote
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_http_remote, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(get_timeout),
+ /* K3 */ be_nested_str_weak(set_timeout),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(HTTP_remote),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(set_info),
+ }),
+ be_str_weak(register_http_remote),
+ &be_const_str_solidified,
+ ( &(const binstruction[42]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x1C0C0604, // 0002 EQ R3 R3 R4
+ 0x780E0002, // 0003 JMPF R3 #0007
+ 0x600C0013, // 0004 GETGBL R3 G19
+ 0x7C0C0000, // 0005 CALL R3 0
+ 0x90020003, // 0006 SETMBR R0 K0 R3
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x88100100, // 0008 GETMBR R4 R0 K0
+ 0x8C100901, // 0009 GETMET R4 R4 K1
+ 0x5C180200, // 000A MOVE R6 R1
+ 0x7C100400, // 000B CALL R4 2
+ 0x78120009, // 000C JMPF R4 #0017
+ 0x88100100, // 000D GETMBR R4 R0 K0
+ 0x940C0801, // 000E GETIDX R3 R4 R1
+ 0x8C140702, // 000F GETMET R5 R3 K2
+ 0x7C140200, // 0010 CALL R5 1
+ 0x14140405, // 0011 LT R5 R2 R5
+ 0x78160002, // 0012 JMPF R5 #0016
+ 0x8C140703, // 0013 GETMET R5 R3 K3
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x7C140400, // 0015 CALL R5 2
+ 0x70020011, // 0016 JMP #0029
+ 0xB8120800, // 0017 GETNGBL R4 K4
+ 0x8C100905, // 0018 GETMET R4 R4 K5
+ 0x5C180000, // 0019 MOVE R6 R0
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x5C200400, // 001B MOVE R8 R2
+ 0x7C100800, // 001C CALL R4 4
+ 0x5C0C0800, // 001D MOVE R3 R4
+ 0x88100106, // 001E GETMBR R4 R0 K6
+ 0x8C100901, // 001F GETMET R4 R4 K1
+ 0x5C180200, // 0020 MOVE R6 R1
+ 0x7C100400, // 0021 CALL R4 2
+ 0x78120003, // 0022 JMPF R4 #0027
+ 0x8C100707, // 0023 GETMET R4 R3 K7
+ 0x88180106, // 0024 GETMBR R6 R0 K6
+ 0x94180C01, // 0025 GETIDX R6 R6 R1
+ 0x7C100400, // 0026 CALL R4 2
+ 0x88100100, // 0027 GETMBR R4 R0 K0
+ 0x98100203, // 0028 SETIDX R4 R1 R3
+ 0x80040600, // 0029 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrInfo_one
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K1 */ be_nested_str_weak(state_json),
+ /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(publish_result),
+ /* K5 */ be_nested_str_weak(),
+ }),
+ be_str_weak(MtrInfo_one),
+ &be_const_str_solidified,
+ ( &(const binstruction[20]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0403, // 0004 EQ R3 R2 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80000600, // 0006 RET 0
+ 0x8C0C0501, // 0007 GETMET R3 R2 K1
+ 0x7C0C0200, // 0008 CALL R3 1
+ 0x780E0008, // 0009 JMPF R3 #0013
+ 0x60100018, // 000A GETGBL R4 G24
+ 0x58140002, // 000B LDCONST R5 K2
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x7C100400, // 000D CALL R4 2
+ 0xB8160600, // 000E GETNGBL R5 K3
+ 0x8C140B04, // 000F GETMET R5 R5 K4
+ 0x5C1C0800, // 0010 MOVE R7 R4
+ 0x58200005, // 0011 LDCONST R8 K5
+ 0x7C140600, // 0012 CALL R5 3
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _compute_pbkdf
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(add),
+ /* K2 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
+ /* K3 */ be_nested_str_weak(derive),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(root_w0),
+ /* K6 */ be_nested_str_weak(EC_P256),
+ /* K7 */ be_nested_str_weak(mod),
+ /* K8 */ be_nested_str_weak(root_L),
+ /* K9 */ be_nested_str_weak(public_key),
+ }),
+ be_str_weak(_compute_pbkdf),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0xA4120000, // 0000 IMPORT R4 K0
+ 0x60140015, // 0001 GETGBL R5 G21
+ 0x7C140000, // 0002 CALL R5 0
+ 0x8C140B01, // 0003 GETMET R5 R5 K1
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x54220003, // 0005 LDINT R8 4
+ 0x7C140600, // 0006 CALL R5 3
+ 0x8C180902, // 0007 GETMET R6 R4 K2
+ 0x7C180200, // 0008 CALL R6 1
+ 0x8C180D03, // 0009 GETMET R6 R6 K3
+ 0x5C200A00, // 000A MOVE R8 R5
+ 0x5C240600, // 000B MOVE R9 R3
+ 0x5C280400, // 000C MOVE R10 R2
+ 0x542E004F, // 000D LDINT R11 80
+ 0x7C180A00, // 000E CALL R6 5
+ 0x541E0026, // 000F LDINT R7 39
+ 0x401E0807, // 0010 CONNECT R7 K4 R7
+ 0x941C0C07, // 0011 GETIDX R7 R6 R7
+ 0x54220027, // 0012 LDINT R8 40
+ 0x5426004E, // 0013 LDINT R9 79
+ 0x40201009, // 0014 CONNECT R8 R8 R9
+ 0x94200C08, // 0015 GETIDX R8 R6 R8
+ 0x8C240906, // 0016 GETMET R9 R4 K6
+ 0x7C240200, // 0017 CALL R9 1
+ 0x8C241307, // 0018 GETMET R9 R9 K7
+ 0x5C2C0E00, // 0019 MOVE R11 R7
+ 0x7C240400, // 001A CALL R9 2
+ 0x90020A09, // 001B SETMBR R0 K5 R9
+ 0x8C240906, // 001C GETMET R9 R4 K6
+ 0x7C240200, // 001D CALL R9 1
+ 0x8C241307, // 001E GETMET R9 R9 K7
+ 0x5C2C1000, // 001F MOVE R11 R8
+ 0x7C240400, // 0020 CALL R9 2
+ 0x8C280906, // 0021 GETMET R10 R4 K6
+ 0x7C280200, // 0022 CALL R10 1
+ 0x8C281509, // 0023 GETMET R10 R10 K9
+ 0x5C301200, // 0024 MOVE R12 R9
+ 0x7C280400, // 0025 CALL R10 2
+ 0x9002100A, // 0026 SETMBR R0 K8 R10
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: signal_endpoints_changed
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ }),
+ be_str_weak(signal_endpoints_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x580C0001, // 0001 LDCONST R3 K1
+ 0x5412001C, // 0002 LDINT R4 29
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x50180000, // 0004 LDBOOL R6 0 0
+ 0x7C040A00, // 0005 CALL R1 5
+ 0x8C040100, // 0006 GETMET R1 R0 K0
+ 0xB80E0600, // 0007 GETNGBL R3 K3
+ 0x880C0704, // 0008 GETMBR R3 R3 K4
+ 0x5412001C, // 0009 LDINT R4 29
+ 0x58140002, // 000A LDCONST R5 K2
+ 0x50180000, // 000B LDBOOL R6 0 0
+ 0x7C040A00, // 000C CALL R1 5
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_device_map
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
+ be_nested_proto(
+ 19, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[38]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(START_ENDPOINT),
+ /* K3 */ be_nested_str_weak(light),
+ /* K4 */ be_nested_str_weak(get),
+ /* K5 */ be_nested_str_weak(find),
+ /* K6 */ be_nested_str_weak(channels),
+ /* K7 */ be_nested_str_weak(),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(type),
+ /* K11 */ be_nested_str_weak(light1),
+ /* K12 */ be_const_int(2),
+ /* K13 */ be_nested_str_weak(light2),
+ /* K14 */ be_nested_str_weak(light3),
+ /* K15 */ be_nested_str_weak(tasmota),
+ /* K16 */ be_nested_str_weak(cmd),
+ /* K17 */ be_nested_str_weak(Status_X2013),
+ /* K18 */ be_nested_str_weak(log),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(contains),
+ /* K22 */ be_nested_str_weak(StatusSHT),
+ /* K23 */ be_nested_str_weak(SHT),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20_X27_X25s_X27_X20_X3D_X20_X25s),
+ /* K25 */ be_nested_str_weak(Relay1),
+ /* K26 */ be_nested_str_weak(Relay2),
+ /* K27 */ be_nested_str_weak(push),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20relay1_X3D_X25s_X20relay2_X3D_X25s),
+ /* K29 */ be_nested_str_weak(TiltConfig),
+ /* K30 */ be_nested_str_weak(shutter_X2Btilt),
+ /* K31 */ be_nested_str_weak(shutter),
+ /* K32 */ be_nested_str_weak(get_power),
+ /* K33 */ be_nested_str_weak(relay),
+ /* K34 */ be_nested_str_weak(load),
+ /* K35 */ be_nested_str_weak(read_sensors),
+ /* K36 */ be_nested_str_weak(autoconf_sensors_list),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(autoconf_device_map),
+ &be_const_str_solidified,
+ ( &(const binstruction[196]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x60080013, // 0001 GETGBL R2 G19
+ 0x7C080000, // 0002 CALL R2 0
+ 0xB80E0200, // 0003 GETNGBL R3 K1
+ 0x880C0702, // 0004 GETMBR R3 R3 K2
+ 0x50100000, // 0005 LDBOOL R4 0 0
+ 0xA4160600, // 0006 IMPORT R5 K3
+ 0x8C180B04, // 0007 GETMET R6 R5 K4
+ 0x7C180200, // 0008 CALL R6 1
+ 0x4C1C0000, // 0009 LDNIL R7
+ 0x201C0C07, // 000A NE R7 R6 R7
+ 0x781E0024, // 000B JMPF R7 #0031
+ 0x601C000C, // 000C GETGBL R7 G12
+ 0x8C200D05, // 000D GETMET R8 R6 K5
+ 0x58280006, // 000E LDCONST R10 K6
+ 0x582C0007, // 000F LDCONST R11 K7
+ 0x7C200600, // 0010 CALL R8 3
+ 0x7C1C0200, // 0011 CALL R7 1
+ 0x24200F08, // 0012 GT R8 R7 K8
+ 0x7822001C, // 0013 JMPF R8 #0031
+ 0x1C200F09, // 0014 EQ R8 R7 K9
+ 0x78220007, // 0015 JMPF R8 #001E
+ 0x60200008, // 0016 GETGBL R8 G8
+ 0x5C240600, // 0017 MOVE R9 R3
+ 0x7C200200, // 0018 CALL R8 1
+ 0x60240013, // 0019 GETGBL R9 G19
+ 0x7C240000, // 001A CALL R9 0
+ 0x9826150B, // 001B SETIDX R9 K10 K11
+ 0x98081009, // 001C SETIDX R2 R8 R9
+ 0x70020010, // 001D JMP #002F
+ 0x1C200F0C, // 001E EQ R8 R7 K12
+ 0x78220007, // 001F JMPF R8 #0028
+ 0x60200008, // 0020 GETGBL R8 G8
+ 0x5C240600, // 0021 MOVE R9 R3
+ 0x7C200200, // 0022 CALL R8 1
+ 0x60240013, // 0023 GETGBL R9 G19
+ 0x7C240000, // 0024 CALL R9 0
+ 0x9826150D, // 0025 SETIDX R9 K10 K13
+ 0x98081009, // 0026 SETIDX R2 R8 R9
+ 0x70020006, // 0027 JMP #002F
+ 0x60200008, // 0028 GETGBL R8 G8
+ 0x5C240600, // 0029 MOVE R9 R3
+ 0x7C200200, // 002A CALL R8 1
+ 0x60240013, // 002B GETGBL R9 G19
+ 0x7C240000, // 002C CALL R9 0
+ 0x9826150E, // 002D SETIDX R9 K10 K14
+ 0x98081009, // 002E SETIDX R2 R8 R9
+ 0x50100200, // 002F LDBOOL R4 1 0
+ 0x000C0709, // 0030 ADD R3 R3 K9
+ 0xB81E1E00, // 0031 GETNGBL R7 K15
+ 0x8C1C0F10, // 0032 GETMET R7 R7 K16
+ 0x58240011, // 0033 LDCONST R9 K17
+ 0x50280200, // 0034 LDBOOL R10 1 0
+ 0x7C1C0600, // 0035 CALL R7 3
+ 0x60200012, // 0036 GETGBL R8 G18
+ 0x7C200000, // 0037 CALL R8 0
+ 0xB8262400, // 0038 GETNGBL R9 K18
+ 0x60280008, // 0039 GETGBL R10 G8
+ 0x5C2C0E00, // 003A MOVE R11 R7
+ 0x7C280200, // 003B CALL R10 1
+ 0x002A260A, // 003C ADD R10 K19 R10
+ 0x582C0014, // 003D LDCONST R11 K20
+ 0x7C240400, // 003E CALL R9 2
+ 0x4C240000, // 003F LDNIL R9
+ 0x20240E09, // 0040 NE R9 R7 R9
+ 0x7826004D, // 0041 JMPF R9 #0090
+ 0x8C240F15, // 0042 GETMET R9 R7 K21
+ 0x582C0016, // 0043 LDCONST R11 K22
+ 0x7C240400, // 0044 CALL R9 2
+ 0x78260049, // 0045 JMPF R9 #0090
+ 0x941C0F16, // 0046 GETIDX R7 R7 K22
+ 0x58240008, // 0047 LDCONST R9 K8
+ 0x50280200, // 0048 LDBOOL R10 1 0
+ 0x782A0045, // 0049 JMPF R10 #0090
+ 0x60280008, // 004A GETGBL R10 G8
+ 0x5C2C1200, // 004B MOVE R11 R9
+ 0x7C280200, // 004C CALL R10 1
+ 0x002A2E0A, // 004D ADD R10 K23 R10
+ 0x8C2C0F15, // 004E GETMET R11 R7 K21
+ 0x5C341400, // 004F MOVE R13 R10
+ 0x7C2C0400, // 0050 CALL R11 2
+ 0x742E0000, // 0051 JMPT R11 #0053
+ 0x7002003C, // 0052 JMP #0090
+ 0x942C0E0A, // 0053 GETIDX R11 R7 R10
+ 0xB8322400, // 0054 GETNGBL R12 K18
+ 0x60340018, // 0055 GETGBL R13 G24
+ 0x58380018, // 0056 LDCONST R14 K24
+ 0x5C3C1400, // 0057 MOVE R15 R10
+ 0x60400008, // 0058 GETGBL R16 G8
+ 0x5C441600, // 0059 MOVE R17 R11
+ 0x7C400200, // 005A CALL R16 1
+ 0x7C340600, // 005B CALL R13 3
+ 0x58380014, // 005C LDCONST R14 K20
+ 0x7C300400, // 005D CALL R12 2
+ 0x8C301705, // 005E GETMET R12 R11 K5
+ 0x58380019, // 005F LDCONST R14 K25
+ 0x543DFFFE, // 0060 LDINT R15 -1
+ 0x7C300600, // 0061 CALL R12 3
+ 0x8C341705, // 0062 GETMET R13 R11 K5
+ 0x583C001A, // 0063 LDCONST R15 K26
+ 0x5441FFFE, // 0064 LDINT R16 -1
+ 0x7C340600, // 0065 CALL R13 3
+ 0x24381908, // 0066 GT R14 R12 K8
+ 0x783A0002, // 0067 JMPF R14 #006B
+ 0x8C38111B, // 0068 GETMET R14 R8 K27
+ 0x04401909, // 0069 SUB R16 R12 K9
+ 0x7C380400, // 006A CALL R14 2
+ 0x24381B08, // 006B GT R14 R13 K8
+ 0x783A0002, // 006C JMPF R14 #0070
+ 0x8C38111B, // 006D GETMET R14 R8 K27
+ 0x04401B09, // 006E SUB R16 R13 K9
+ 0x7C380400, // 006F CALL R14 2
+ 0xB83A2400, // 0070 GETNGBL R14 K18
+ 0x603C0018, // 0071 GETGBL R15 G24
+ 0x5840001C, // 0072 LDCONST R16 K28
+ 0x5C441800, // 0073 MOVE R17 R12
+ 0x5C481A00, // 0074 MOVE R18 R13
+ 0x7C3C0600, // 0075 CALL R15 3
+ 0x58400014, // 0076 LDCONST R16 K20
+ 0x7C380400, // 0077 CALL R14 2
+ 0x8C381705, // 0078 GETMET R14 R11 K5
+ 0x5840001D, // 0079 LDCONST R16 K29
+ 0x7C380400, // 007A CALL R14 2
+ 0x783A0002, // 007B JMPF R14 #007F
+ 0x943C1D0C, // 007C GETIDX R15 R14 K12
+ 0x243C1F08, // 007D GT R15 R15 K8
+ 0x743E0000, // 007E JMPT R15 #0080
+ 0x503C0001, // 007F LDBOOL R15 0 1
+ 0x503C0200, // 0080 LDBOOL R15 1 0
+ 0x60400008, // 0081 GETGBL R16 G8
+ 0x5C440600, // 0082 MOVE R17 R3
+ 0x7C400200, // 0083 CALL R16 1
+ 0x60440013, // 0084 GETGBL R17 G19
+ 0x7C440000, // 0085 CALL R17 0
+ 0x783E0001, // 0086 JMPF R15 #0089
+ 0x5848001E, // 0087 LDCONST R18 K30
+ 0x70020000, // 0088 JMP #008A
+ 0x5848001F, // 0089 LDCONST R18 K31
+ 0x98461412, // 008A SETIDX R17 K10 R18
+ 0x98463E09, // 008B SETIDX R17 K31 R9
+ 0x98082011, // 008C SETIDX R2 R16 R17
+ 0x000C0709, // 008D ADD R3 R3 K9
+ 0x00241309, // 008E ADD R9 R9 K9
+ 0x7001FFB7, // 008F JMP #0048
+ 0x6024000C, // 0090 GETGBL R9 G12
+ 0xB82A1E00, // 0091 GETNGBL R10 K15
+ 0x8C281520, // 0092 GETMET R10 R10 K32
+ 0x7C280200, // 0093 CALL R10 1
+ 0x7C240200, // 0094 CALL R9 1
+ 0x58280008, // 0095 LDCONST R10 K8
+ 0x78120000, // 0096 JMPF R4 #0098
+ 0x04241309, // 0097 SUB R9 R9 K9
+ 0x142C1409, // 0098 LT R11 R10 R9
+ 0x782E0011, // 0099 JMPF R11 #00AC
+ 0x8C2C1105, // 009A GETMET R11 R8 K5
+ 0x5C341400, // 009B MOVE R13 R10
+ 0x7C2C0400, // 009C CALL R11 2
+ 0x4C300000, // 009D LDNIL R12
+ 0x1C2C160C, // 009E EQ R11 R11 R12
+ 0x782E0009, // 009F JMPF R11 #00AA
+ 0x602C0008, // 00A0 GETGBL R11 G8
+ 0x5C300600, // 00A1 MOVE R12 R3
+ 0x7C2C0200, // 00A2 CALL R11 1
+ 0x60300013, // 00A3 GETGBL R12 G19
+ 0x7C300000, // 00A4 CALL R12 0
+ 0x98321521, // 00A5 SETIDX R12 K10 K33
+ 0x00341509, // 00A6 ADD R13 R10 K9
+ 0x9832420D, // 00A7 SETIDX R12 K33 R13
+ 0x9808160C, // 00A8 SETIDX R2 R11 R12
+ 0x000C0709, // 00A9 ADD R3 R3 K9
+ 0x00281509, // 00AA ADD R10 R10 K9
+ 0x7001FFEB, // 00AB JMP #0098
+ 0x8C2C0322, // 00AC GETMET R11 R1 K34
+ 0xB8361E00, // 00AD GETNGBL R13 K15
+ 0x8C341B23, // 00AE GETMET R13 R13 K35
+ 0x7C340200, // 00AF CALL R13 1
+ 0x7C2C0400, // 00B0 CALL R11 2
+ 0x8C300124, // 00B1 GETMET R12 R0 K36
+ 0x5C381600, // 00B2 MOVE R14 R11
+ 0x7C300400, // 00B3 CALL R12 2
+ 0x60340010, // 00B4 GETGBL R13 G16
+ 0x5C381800, // 00B5 MOVE R14 R12
+ 0x7C340200, // 00B6 CALL R13 1
+ 0xA8020007, // 00B7 EXBLK 0 #00C0
+ 0x5C381A00, // 00B8 MOVE R14 R13
+ 0x7C380000, // 00B9 CALL R14 0
+ 0x603C0008, // 00BA GETGBL R15 G8
+ 0x5C400600, // 00BB MOVE R16 R3
+ 0x7C3C0200, // 00BC CALL R15 1
+ 0x98081E0E, // 00BD SETIDX R2 R15 R14
+ 0x000C0709, // 00BE ADD R3 R3 K9
+ 0x7001FFF7, // 00BF JMP #00B8
+ 0x58340025, // 00C0 LDCONST R13 K37
+ 0xAC340200, // 00C1 CATCH R13 1 0
+ 0xB0080000, // 00C2 RAISE 2 R0 R0
+ 0x80040400, // 00C3 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_sensors_list
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(k2l),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(Temperature),
+ /* K3 */ be_nested_str_weak(_X23Temperature),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(type),
+ /* K6 */ be_nested_str_weak(temperature),
+ /* K7 */ be_nested_str_weak(filter),
+ /* K8 */ be_nested_str_weak(stop_iteration),
+ /* K9 */ be_nested_str_weak(Pressure),
+ /* K10 */ be_nested_str_weak(_X23Pressure),
+ /* K11 */ be_nested_str_weak(pressure),
+ /* K12 */ be_nested_str_weak(Illuminance),
+ /* K13 */ be_nested_str_weak(_X23Illuminance),
+ /* K14 */ be_nested_str_weak(illuminance),
+ /* K15 */ be_nested_str_weak(Humidity),
+ /* K16 */ be_nested_str_weak(_X23Humidity),
+ /* K17 */ be_nested_str_weak(humidity),
+ }),
+ be_str_weak(autoconf_sensors_list),
+ &be_const_str_solidified,
+ ( &(const binstruction[119]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100100, // 0003 GETMET R4 R0 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA8020013, // 0007 EXBLK 0 #001C
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x94140204, // 000A GETIDX R5 R1 R4
+ 0x6018000F, // 000B GETGBL R6 G15
+ 0x5C1C0A00, // 000C MOVE R7 R5
+ 0x60200013, // 000D GETGBL R8 G19
+ 0x7C180400, // 000E CALL R6 2
+ 0x781A000A, // 000F JMPF R6 #001B
+ 0x8C180B01, // 0010 GETMET R6 R5 K1
+ 0x58200002, // 0011 LDCONST R8 K2
+ 0x7C180400, // 0012 CALL R6 2
+ 0x781A0006, // 0013 JMPF R6 #001B
+ 0x00180903, // 0014 ADD R6 R4 K3
+ 0x8C1C0504, // 0015 GETMET R7 R2 K4
+ 0x60240013, // 0016 GETGBL R9 G19
+ 0x7C240000, // 0017 CALL R9 0
+ 0x98260B06, // 0018 SETIDX R9 K5 K6
+ 0x98260E06, // 0019 SETIDX R9 K7 R6
+ 0x7C1C0400, // 001A CALL R7 2
+ 0x7001FFEB, // 001B JMP #0008
+ 0x580C0008, // 001C LDCONST R3 K8
+ 0xAC0C0200, // 001D CATCH R3 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x600C0010, // 001F GETGBL R3 G16
+ 0x8C100100, // 0020 GETMET R4 R0 K0
+ 0x5C180200, // 0021 MOVE R6 R1
+ 0x7C100400, // 0022 CALL R4 2
+ 0x7C0C0200, // 0023 CALL R3 1
+ 0xA8020013, // 0024 EXBLK 0 #0039
+ 0x5C100600, // 0025 MOVE R4 R3
+ 0x7C100000, // 0026 CALL R4 0
+ 0x94140204, // 0027 GETIDX R5 R1 R4
+ 0x6018000F, // 0028 GETGBL R6 G15
+ 0x5C1C0A00, // 0029 MOVE R7 R5
+ 0x60200013, // 002A GETGBL R8 G19
+ 0x7C180400, // 002B CALL R6 2
+ 0x781A000A, // 002C JMPF R6 #0038
+ 0x8C180B01, // 002D GETMET R6 R5 K1
+ 0x58200009, // 002E LDCONST R8 K9
+ 0x7C180400, // 002F CALL R6 2
+ 0x781A0006, // 0030 JMPF R6 #0038
+ 0x0018090A, // 0031 ADD R6 R4 K10
+ 0x8C1C0504, // 0032 GETMET R7 R2 K4
+ 0x60240013, // 0033 GETGBL R9 G19
+ 0x7C240000, // 0034 CALL R9 0
+ 0x98260B0B, // 0035 SETIDX R9 K5 K11
+ 0x98260E06, // 0036 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0037 CALL R7 2
+ 0x7001FFEB, // 0038 JMP #0025
+ 0x580C0008, // 0039 LDCONST R3 K8
+ 0xAC0C0200, // 003A CATCH R3 1 0
+ 0xB0080000, // 003B RAISE 2 R0 R0
+ 0x600C0010, // 003C GETGBL R3 G16
+ 0x8C100100, // 003D GETMET R4 R0 K0
+ 0x5C180200, // 003E MOVE R6 R1
+ 0x7C100400, // 003F CALL R4 2
+ 0x7C0C0200, // 0040 CALL R3 1
+ 0xA8020013, // 0041 EXBLK 0 #0056
+ 0x5C100600, // 0042 MOVE R4 R3
+ 0x7C100000, // 0043 CALL R4 0
+ 0x94140204, // 0044 GETIDX R5 R1 R4
+ 0x6018000F, // 0045 GETGBL R6 G15
+ 0x5C1C0A00, // 0046 MOVE R7 R5
+ 0x60200013, // 0047 GETGBL R8 G19
+ 0x7C180400, // 0048 CALL R6 2
+ 0x781A000A, // 0049 JMPF R6 #0055
+ 0x8C180B01, // 004A GETMET R6 R5 K1
+ 0x5820000C, // 004B LDCONST R8 K12
+ 0x7C180400, // 004C CALL R6 2
+ 0x781A0006, // 004D JMPF R6 #0055
+ 0x0018090D, // 004E ADD R6 R4 K13
+ 0x8C1C0504, // 004F GETMET R7 R2 K4
+ 0x60240013, // 0050 GETGBL R9 G19
+ 0x7C240000, // 0051 CALL R9 0
+ 0x98260B0E, // 0052 SETIDX R9 K5 K14
+ 0x98260E06, // 0053 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x7001FFEB, // 0055 JMP #0042
+ 0x580C0008, // 0056 LDCONST R3 K8
+ 0xAC0C0200, // 0057 CATCH R3 1 0
+ 0xB0080000, // 0058 RAISE 2 R0 R0
+ 0x600C0010, // 0059 GETGBL R3 G16
+ 0x8C100100, // 005A GETMET R4 R0 K0
+ 0x5C180200, // 005B MOVE R6 R1
+ 0x7C100400, // 005C CALL R4 2
+ 0x7C0C0200, // 005D CALL R3 1
+ 0xA8020013, // 005E EXBLK 0 #0073
+ 0x5C100600, // 005F MOVE R4 R3
+ 0x7C100000, // 0060 CALL R4 0
+ 0x94140204, // 0061 GETIDX R5 R1 R4
+ 0x6018000F, // 0062 GETGBL R6 G15
+ 0x5C1C0A00, // 0063 MOVE R7 R5
+ 0x60200013, // 0064 GETGBL R8 G19
+ 0x7C180400, // 0065 CALL R6 2
+ 0x781A000A, // 0066 JMPF R6 #0072
+ 0x8C180B01, // 0067 GETMET R6 R5 K1
+ 0x5820000F, // 0068 LDCONST R8 K15
+ 0x7C180400, // 0069 CALL R6 2
+ 0x781A0006, // 006A JMPF R6 #0072
+ 0x00180910, // 006B ADD R6 R4 K16
+ 0x8C1C0504, // 006C GETMET R7 R2 K4
+ 0x60240013, // 006D GETGBL R9 G19
+ 0x7C240000, // 006E CALL R9 0
+ 0x98260B11, // 006F SETIDX R9 K5 K17
+ 0x98260E06, // 0070 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0071 CALL R7 2
+ 0x7001FFEB, // 0072 JMP #005F
+ 0x580C0008, // 0073 LDCONST R3 K8
+ 0xAC0C0200, // 0074 CATCH R3 1 0
+ 0xB0080000, // 0075 RAISE 2 R0 R0
+ 0x80040400, // 0076 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ }),
+ be_str_weak(is_commissioning_open),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
- 0x00040301, // 0001 ADD R1 R1 K1
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
})
)
);
@@ -6081,138 +6093,17 @@ be_local_closure(class_Matter_Device_every_50ms, /* name */
** Solidified class: Matter_Device
********************************************************************/
be_local_class(Matter_Device,
- 38,
+ 39,
NULL,
- be_nested_map(117,
+ be_nested_map(118,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(udp_server, -1), be_const_var(5) },
- { be_const_key_weak(next_ep, 108), be_const_var(31) },
- { be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
- { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Device_invoke_request_closure) },
- { be_const_key_weak(start_commissioning_complete, 4), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
- { be_const_key_weak(bridge_remove_endpoint, 23), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
- { be_const_key_weak(get_plugin_remote_info, -1), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
- { be_const_key_weak(probe_sensor_time, 43), be_const_var(36) },
{ be_const_key_weak(vendorid, -1), be_const_var(22) },
- { be_const_key_weak(UDP_PORT, -1), be_const_int(5540) },
- { be_const_key_weak(commissioning_instance_eth, -1), be_const_var(19) },
- { be_const_key_weak(MtrInfo, 17), be_const_closure(class_Matter_Device_MtrInfo_closure) },
- { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
- { be_const_key_weak(productid, 44), be_const_var(23) },
- { be_const_key_weak(bridge_add_endpoint, 20), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
- { be_const_key_weak(register_http_remote, -1), be_const_closure(class_Matter_Device_register_http_remote_closure) },
- { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
- { be_const_key_weak(disable_bridge_mode, -1), be_const_var(30) },
- { be_const_key_weak(get_plugin_class_displayname, 89), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
- { be_const_key_weak(start_mdns_announce_hostnames, 69), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
- { be_const_key_weak(commissioning_instance_wifi, 114), be_const_var(18) },
- { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Device_init_closure) },
- { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, 8), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(sessions, 98), be_const_var(8) },
- { be_const_key_weak(_mdns_announce_hostname, 55), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
- { be_const_key_weak(commissioning_discriminator, -1), be_const_var(13) },
- { be_const_key_weak(register_commands, 100), be_const_closure(class_Matter_Device_register_commands_closure) },
- { be_const_key_weak(start, 109), be_const_closure(class_Matter_Device_start_closure) },
- { be_const_key_weak(_compute_pbkdf, -1), be_const_closure(class_Matter_Device__compute_pbkdf_closure) },
- { be_const_key_weak(find_plugin_by_friendly_name, 95), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
- { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
- { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
- { be_const_key_weak(MtrJoin, 58), be_const_closure(class_Matter_Device_MtrJoin_closure) },
- { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
- { be_const_key_weak(hostname_wifi, 68), be_const_var(20) },
- { be_const_key_weak(_trigger_read_sensors, -1), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
- { be_const_key_weak(root_passcode, 63), be_const_var(28) },
- { be_const_key_weak(save_before_restart, -1), be_const_closure(class_Matter_Device_save_before_restart_closure) },
- { be_const_key_weak(generate_random_passcode, 64), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
- { be_const_key_weak(is_root_commissioning_open, 90), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
- { be_const_key_weak(start_commissioning_complete_deferred, -1), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
- { be_const_key_weak(root_iterations, -1), be_const_var(32) },
- { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
- { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(37) },
- { be_const_key_weak(ipv4only, 34), be_const_var(29) },
- { be_const_key_weak(mdns_remove_PASE, 29), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
- { be_const_key_weak(plugins_config_remotes, 103), be_const_var(4) },
- { be_const_key_weak(remove_fabric, -1), be_const_closure(class_Matter_Device_remove_fabric_closure) },
- { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
- { be_const_key_weak(commissioning_iterations, -1), be_const_var(12) },
- { be_const_key_weak(plugins_config, 40), be_const_var(3) },
- { be_const_key_weak(_init_basic_commissioning, 37), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
- { be_const_key_weak(plugins_persist, -1), be_const_var(2) },
- { be_const_key_weak(hostname_eth, -1), be_const_var(21) },
- { be_const_key_weak(mdns_remove_op_discovery, 77), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
- { be_const_key_weak(received_ack, 76), be_const_closure(class_Matter_Device_received_ack_closure) },
- { be_const_key_weak(PASE_TIMEOUT, 27), be_const_int(600) },
- { be_const_key_weak(_instantiate_plugins_from_config, -1), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
- { be_const_key_weak(mdns_pase_eth, -1), be_const_var(24) },
- { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(25) },
- { be_const_key_weak(commissioning_salt, -1), be_const_var(14) },
- { be_const_key_weak(start_basic_commissioning, 94), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
- { be_const_key_weak(commissioning_L, -1), be_const_var(16) },
- { be_const_key_weak(message_handler, 36), be_const_var(7) },
- { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
- { be_const_key_weak(process_attribute_expansion, 54), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
- { be_const_key_weak(k2l, -1), be_const_static_closure(class_Matter_Device_k2l_closure) },
- { be_const_key_weak(compute_manual_pairing_code, -1), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
- { be_const_key_weak(root_discriminator, 93), be_const_var(27) },
- { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
- { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
- { be_const_key_weak(commissioning_open, -1), be_const_var(11) },
- { be_const_key_weak(add_read_sensors_schedule, 91), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
- { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
- { be_const_key_weak(PASSCODE_INVALID, 107), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(11111111),
- be_const_int(22222222),
- be_const_int(33333333),
- be_const_int(44444444),
- be_const_int(55555555),
- be_const_int(66666666),
- be_const_int(77777777),
- be_const_int(88888888),
- be_const_int(99999999),
- be_const_int(12345678),
- be_const_int(87654321),
- })) ) } )) },
- { be_const_key_weak(started, -1), be_const_var(0) },
- { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
- { be_const_key_weak(find_plugin_by_endpoint, -1), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
- { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
- { be_const_key_weak(plugins, -1), be_const_var(1) },
- { be_const_key_weak(event_fabrics_saved, 88), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
- { be_const_key_weak(commissioning_w0, 73), be_const_var(15) },
- { be_const_key_weak(compute_qrcode_content, 57), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
- { be_const_key_weak(conf_to_log, 56), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
- { be_const_key_weak(start_operational_discovery, -1), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
- { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
- { be_const_key_weak(process_attribute_read_solo, -1), be_const_closure(class_Matter_Device_process_attribute_read_solo_closure) },
- { be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_Device_msg_received_closure) },
- { be_const_key_weak(root_w0, -1), be_const_var(34) },
- { be_const_key_weak(get_active_endpoints, -1), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
- { be_const_key_weak(FILENAME, -1), be_nested_str_weak(_matter_device_X2Ejson) },
- { be_const_key_weak(PBKDF_ITERATIONS, -1), be_const_int(1000) },
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Device_every_250ms_closure) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Device_attribute_updated_closure) },
- { be_const_key_weak(read_sensors_scheduler, -1), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
- { be_const_key_weak(MtrUpdate, 45), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
- { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
- { be_const_key_weak(http_remotes, -1), be_const_var(26) },
- { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
- { be_const_key_weak(root_salt, -1), be_const_var(33) },
- { be_const_key_weak(PRODUCT_ID, -1), be_const_int(32768) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
- { be_const_key_weak(update_remotes_info, 32), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
- { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(profiler, -1), be_const_var(6) },
- { be_const_key_weak(root_L, 102), be_const_var(35) },
- { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
- { be_const_key_weak(ui, -1), be_const_var(9) },
- { be_const_key_weak(stop, 14), be_const_closure(class_Matter_Device_stop_closure) },
- { be_const_key_weak(stop_basic_commissioning, 13), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
- { be_const_key_weak(plugins_classes, 10), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(mdns_remove_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
+ { be_const_key_weak(commissioning_discriminator, 11), be_const_var(13) },
+ { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
+ { be_const_key_weak(probe_sensor_time, -1), be_const_var(37) },
+ { be_const_key_weak(generate_random_passcode, 94), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
+ { be_const_key_weak(plugins_classes, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(50,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(relay, 29), be_const_class(be_class_Matter_Plugin_OnOff) },
@@ -6266,10 +6157,132 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_rain, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
})) ) } )) },
- { be_const_key_weak(tick, 9), be_const_var(10) },
- { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(17) },
- { be_const_key_weak(msg_send, 7), be_const_closure(class_Matter_Device_msg_send_closure) },
+ { be_const_key_weak(start_operational_discovery, -1), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
+ { be_const_key_weak(tick, -1), be_const_var(10) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Device_invoke_request_closure) },
+ { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
+ { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
+ { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Device_every_250ms_closure) },
+ { be_const_key_weak(root_passcode, 16), be_const_var(28) },
+ { be_const_key_weak(hostname_eth, -1), be_const_var(21) },
+ { be_const_key_weak(add_read_sensors_schedule, 117), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
+ { be_const_key_weak(udp_server, -1), be_const_var(5) },
+ { be_const_key_weak(save_before_restart, -1), be_const_closure(class_Matter_Device_save_before_restart_closure) },
+ { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
+ { be_const_key_weak(MtrUpdate, -1), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
+ { be_const_key_weak(root_discriminator, -1), be_const_var(27) },
+ { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
+ { be_const_key_weak(conf_to_log, 32), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
+ { be_const_key_weak(remove_fabric, -1), be_const_closure(class_Matter_Device_remove_fabric_closure) },
+ { be_const_key_weak(k2l, 70), be_const_static_closure(class_Matter_Device_k2l_closure) },
+ { be_const_key_weak(http_remotes, -1), be_const_var(26) },
{ be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
+ { be_const_key_weak(commissioning_open, 114), be_const_var(11) },
+ { be_const_key_weak(root_iterations, -1), be_const_var(33) },
+ { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
+ { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Device_init_closure) },
+ { be_const_key_weak(root_L, 3), be_const_var(36) },
+ { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
+ { be_const_key_weak(UDP_PORT, -1), be_const_int(5540) },
+ { be_const_key_weak(_compute_pbkdf, 49), be_const_closure(class_Matter_Device__compute_pbkdf_closure) },
+ { be_const_key_weak(msg_received, 78), be_const_closure(class_Matter_Device_msg_received_closure) },
+ { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
+ { be_const_key_weak(ipv4only, -1), be_const_var(29) },
+ { be_const_key_weak(start_commissioning_complete, 77), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
+ { be_const_key_weak(root_salt, 21), be_const_var(34) },
+ { be_const_key_weak(start_commissioning_complete_deferred, 67), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
+ { be_const_key_weak(plugins_config, 17), be_const_var(3) },
+ { be_const_key_weak(commissioning_admin_fabric, 26), be_const_var(17) },
+ { be_const_key_weak(profiler, -1), be_const_var(6) },
+ { be_const_key_weak(process_attribute_expansion, -1), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
+ { be_const_key_weak(MtrInfo, -1), be_const_closure(class_Matter_Device_MtrInfo_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
+ { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
+ { be_const_key_weak(read_sensors_scheduler, -1), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
+ { be_const_key_weak(started, 34), be_const_var(0) },
+ { be_const_key_weak(is_root_commissioning_open, -1), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
+ { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
+ { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
+ { be_const_key_weak(find_plugin_by_endpoint, 96), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
+ { be_const_key_weak(register_commands, -1), be_const_closure(class_Matter_Device_register_commands_closure) },
+ { be_const_key_weak(commissioning_instance_wifi, 104), be_const_var(18) },
+ { be_const_key_weak(bridge_remove_endpoint, -1), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
+ { be_const_key_weak(mdns_remove_PASE, 38), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
+ { be_const_key_weak(root_w0, 45), be_const_var(35) },
+ { be_const_key_weak(plugins_persist, 40), be_const_var(2) },
+ { be_const_key_weak(message_handler, -1), be_const_var(7) },
+ { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
+ { be_const_key_weak(disable_bridge_mode, 2), be_const_var(30) },
+ { be_const_key_weak(debug, 8), be_const_var(32) },
+ { be_const_key_weak(commissioning_instance_eth, 72), be_const_var(19) },
+ { be_const_key_weak(commissioning_w0, -1), be_const_var(15) },
+ { be_const_key_weak(PASSCODE_INVALID, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(11111111),
+ be_const_int(22222222),
+ be_const_int(33333333),
+ be_const_int(44444444),
+ be_const_int(55555555),
+ be_const_int(66666666),
+ be_const_int(77777777),
+ be_const_int(88888888),
+ be_const_int(99999999),
+ be_const_int(12345678),
+ be_const_int(87654321),
+ })) ) } )) },
+ { be_const_key_weak(bridge_add_endpoint, 54), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
+ { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(25) },
+ { be_const_key_weak(received_ack, 4), be_const_closure(class_Matter_Device_received_ack_closure) },
+ { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(38) },
+ { be_const_key_weak(compute_manual_pairing_code, 111), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
+ { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
+ { be_const_key_weak(hostname_wifi, -1), be_const_var(20) },
+ { be_const_key_weak(PBKDF_ITERATIONS, 90), be_const_int(1000) },
+ { be_const_key_weak(plugins_config_remotes, -1), be_const_var(4) },
+ { be_const_key_weak(get_plugin_remote_info, 112), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
+ { be_const_key_weak(sessions, 47), be_const_var(8) },
+ { be_const_key_weak(mdns_pase_eth, -1), be_const_var(24) },
+ { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
+ { be_const_key_weak(_trigger_read_sensors, 52), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
+ { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
+ { be_const_key_weak(get_active_endpoints, 10), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
+ { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(_instantiate_plugins_from_config, 83), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
+ { be_const_key_weak(FILENAME, -1), be_nested_str_weak(_matter_device_X2Ejson) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
+ { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
+ { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
+ { be_const_key_weak(start_mdns_announce_hostnames, -1), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
+ { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
+ { be_const_key_weak(process_attribute_read_solo, 65), be_const_closure(class_Matter_Device_process_attribute_read_solo_closure) },
+ { be_const_key_weak(start, 57), be_const_closure(class_Matter_Device_start_closure) },
+ { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
+ { be_const_key_weak(attribute_updated, 53), be_const_closure(class_Matter_Device_attribute_updated_closure) },
+ { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
+ { be_const_key_weak(compute_qrcode_content, 35), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
+ { be_const_key_weak(_mdns_announce_hostname, -1), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
+ { be_const_key_weak(commissioning_salt, -1), be_const_var(14) },
+ { be_const_key_weak(PRODUCT_ID, 43), be_const_int(32768) },
+ { be_const_key_weak(msg_send, -1), be_const_closure(class_Matter_Device_msg_send_closure) },
+ { be_const_key_weak(register_http_remote, -1), be_const_closure(class_Matter_Device_register_http_remote_closure) },
+ { be_const_key_weak(k2l_num, 37), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
+ { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
+ { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
+ { be_const_key_weak(next_ep, -1), be_const_var(31) },
+ { be_const_key_weak(commissioning_iterations, -1), be_const_var(12) },
+ { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
+ { be_const_key_weak(ui, -1), be_const_var(9) },
+ { be_const_key_weak(start_basic_commissioning, 13), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
+ { be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
+ { be_const_key_weak(productid, -1), be_const_var(23) },
+ { be_const_key_weak(plugins, -1), be_const_var(1) },
+ { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(commissioning_L, -1), be_const_var(16) },
+ { be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
+ { be_const_key_weak(stop, -1), be_const_closure(class_Matter_Device_stop_closure) },
})),
be_str_weak(Matter_Device)
);
From 342ba2bd4414fe50e47e1cb0a9f376c3012dc977 Mon Sep 17 00:00:00 2001
From: bovirus <1262554+bovirus@users.noreply.github.com>
Date: Sat, 15 Jun 2024 11:11:42 +0200
Subject: [PATCH 058/252] Update Italian language (#21635)
---
tasmota/language/it_IT.h | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index 9b9e8d118..3e7c648ca 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -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.4.0.1 - Last update 19.05.2024
+ * Updated until v9.4.0.1 - Last update 15.06.2024
\*********************************************************************/
#define LANGUAGE_MODULE_NAME // Enable to display "Module Generic" (ie Spanish), Disable to display "Generic Module" (ie English)
@@ -76,7 +76,6 @@
#define D_COMMAND "Comando"
#define D_CONNECTED "Connesso"
#define D_CORS_DOMAIN "Dominio CORS"
-
#define D_COLOR "Colore"
#define D_COUNT "Conteggio"
#define D_COUNTER "Contatore"
@@ -794,8 +793,6 @@
#define D_GPIO_ASR650X_TX "ASR650X - Tx"
#define D_GPIO_ASR650X_RX "ASR650X - Rx"
#define D_GPIO_LORA_CS "LoRa - CS"
-#define D_GPIO_ASR650X_TX "ASR650x - TX"
-#define D_GPIO_ASR650X_RX "ASR650x - RX"
#define D_GPIO_LORA_RST "LoRa - Rst"
#define D_GPIO_LORA_BUSY "LoRa - Busy"
#define D_GPIO_LORA_DI "LoRa - DIO" // Suffix "0","1","2"
@@ -810,6 +807,8 @@
#define D_SENSOR_CSE7761_RX "CSE7761 - RX"
#define D_SENSOR_CSE7766_TX "CSE7766 - TX"
#define D_SENSOR_CSE7766_RX "CSE7766 - RX"
+#define D_SENSOR_BL0939_RX "BL0939 - RX"
+#define D_SENSOR_BL0942_RX "BL0942 - RX"
#define D_SENSOR_HM330X_SET "HM330X - SET"
#define D_SENSOR_PN532_TX "PN532 - TX"
#define D_SENSOR_PN532_RX "PN532 - RX"
@@ -877,8 +876,6 @@
#define D_SENSOR_LE01MR_RX "LE-01MR - RX"
#define D_SENSOR_LE01MR_TX "LE-01MR - TX"
#define D_SENSOR_BL0940_RX "BL0940 - RX"
-#define D_SENSOR_BL0939_RX "BL0939 - RX"
-#define D_SENSOR_BL0942_RX "BL0942 - RX"
#define D_SENSOR_CC1101_GDO0 "CC1101 - GDO0"
#define D_SENSOR_CC1101_GDO2 "CC1101 - GDO2"
#define D_SENSOR_HRXL_RX "HRXL - RX"
From 767ac60266f1d41f5cbe08d898a432c64017b8b6 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 15 Jun 2024 12:20:52 +0200
Subject: [PATCH 059/252] Fix Matter interverted attributes 0xFFF9 and 0xFFFB
(#21636)
---
CHANGELOG.md | 1 +
lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be | 4 ++--
.../berry_matter/src/solidify/solidified_Matter_Plugin_0.h | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f68729d3..e942a6dd8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@ All notable changes to this project will be documented in this file.
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
### Fixed
+- Matter interverted attributes 0xFFF9 and 0xFFFB
### Removed
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 748eb2d96..56b6eba63 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -315,7 +315,7 @@ class Matter_Plugin
if attribute == 0xFFF8 # GeneratedCommandList
var gcl = TLV.Matter_TLV_array()
return gcl # return empty list
- elif attribute == 0xFFF9 # AcceptedCommandList
+ elif attribute == 0xFFFB # AttributeList
var acli = TLV.Matter_TLV_array()
var attr_list = self.get_attribute_list(cluster)
var idx = 0
@@ -327,7 +327,7 @@ class Matter_Plugin
elif attribute == 0xFFFA # EventList
var el = TLV.Matter_TLV_array()
return el # return empty list
- elif attribute == 0xFFFB # AttributeList
+ elif attribute == 0xFFF9 # AcceptedCommandList
var al = TLV.Matter_TLV_array()
return al # TODO
elif attribute == 0xFFFC # FeatureMap
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 6fed7984d..27ec87093 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -1278,7 +1278,7 @@ be_local_closure(class_Matter_Plugin_read_attribute, /* name */
0x7C1C0200, // 005C CALL R7 1
0x80040E00, // 005D RET 1 R7
0x7002003F, // 005E JMP #009F
- 0x541EFFF8, // 005F LDINT R7 65529
+ 0x541EFFFA, // 005F LDINT R7 65531
0x1C1C0C07, // 0060 EQ R7 R6 R7
0x781E0013, // 0061 JMPF R7 #0076
0x8C1C0905, // 0062 GETMET R7 R4 K5
@@ -1308,7 +1308,7 @@ be_local_closure(class_Matter_Plugin_read_attribute, /* name */
0x7C1C0200, // 007A CALL R7 1
0x80040E00, // 007B RET 1 R7
0x70020021, // 007C JMP #009F
- 0x541EFFFA, // 007D LDINT R7 65531
+ 0x541EFFF8, // 007D LDINT R7 65529
0x1C1C0C07, // 007E EQ R7 R6 R7
0x781E0003, // 007F JMPF R7 #0084
0x8C1C0905, // 0080 GETMET R7 R4 K5
From 2cf0eda87056cc4c030dba251709fd2e82aef82b Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 15 Jun 2024 12:51:08 +0200
Subject: [PATCH 060/252] Matter add Fan support (virtual only) (#21637)
* Matter add Fan support (virtual only)
* Add MtrReceived event
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 2 +
.../src/embedded/Matter_Plugin_0.be | 3 +-
.../embedded/Matter_Plugin_1_Aggregator.be | 2 +-
.../src/embedded/Matter_Plugin_1_Device.be | 2 +-
.../src/embedded/Matter_Plugin_1_Root.be | 2 +-
.../src/embedded/Matter_Plugin_2_Fan.be | 198 ++++++
.../Matter_Plugin_3_Sensor_Waterleak.be | 2 +-
.../Matter_Plugin_8_Bridge_Sensor_Rain.be | 2 +-
.../src/embedded/Matter_Plugin_9_Virt_Fan.be | 33 +
.../berry_matter/src/embedded/Matter_UI.be | 1 +
.../src/solidify/solidified_Matter_Plugin_0.h | 5 +-
.../solidify/solidified_Matter_Plugin_2_Fan.h | 570 ++++++++++++++++++
.../solidified_Matter_Plugin_9_Virt_Fan.h | 27 +
.../src/solidify/solidified_Matter_UI.h | 2 +-
.../solidify/solidified_Matter_zz_Device.h | 100 +--
16 files changed, 894 insertions(+), 58 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Fan.be
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Fan.h
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e942a6dd8..008adf3e3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file.
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
- Matter support for Rain sensor (#21633)
- Matter add internal debug option
+- Matter add Fan support (virtual only)
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index a641cad33..8e8f5d36c 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -258,6 +258,8 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_3_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Rain.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h"
+#include "solidify/solidified_Matter_Plugin_2_Fan.h"
+#include "solidify/solidified_Matter_Plugin_9_Virt_Fan.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Occupancy.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Rain.h"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 56b6eba63..42e436513 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin.be - generic superclass for all Matter plugins, used to define specific behaviors (light, switch, media...)
+# Matter_Plugin_0.be - generic superclass for all Matter plugins, used to define specific behaviors (light, switch, media...)
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -48,6 +48,7 @@ class Matter_Plugin
static var FEATURE_MAPS = { # feature map per cluster
0x0031: 0x04, # Put Eth for now which should work for any on-network
0x0102: 1 + 4, # Lift + PA_LF
+ 0x0202: 2, # Fan: Auto
}
# `CLUSTER_REVISIONS` contains revision numbers for each cluster, or `1` if not present
static var CLUSTER_REVISIONS = {
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Aggregator.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Aggregator.be
index 6e8771736..2e45e036e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Aggregator.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Aggregator.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Aggregator.be - implements the Aggregator endpoint
+# Matter_Plugin_1_Aggregator.be - implements the Aggregator endpoint
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
index e9834cff5..edae4f064 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Device.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Device.be - implements the behavior for a standard Device
+# Matter_Plugin_1_Device.be - implements the behavior for a standard Device
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
index d58b6436f..c6abb638b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Root.be - implements the core features that a Matter device must implemment
+# Matter_Plugin_1_Root.be - implements the core features that a Matter device must implemment
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
new file mode 100644
index 000000000..dbdc97797
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
@@ -0,0 +1,198 @@
+#
+# Matter_Plugin_2_Fan.be - implements the behavior for a generic Fan
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Fan,weak
+
+class Matter_Plugin_Fan : Matter_Plugin_Device
+ static var TYPE = "fan" # name of the plug-in in json
+ static var DISPLAY_NAME = "Fan" # display name of the plug-in
+ # static var ARG = "" # additional argument name (or empty if none)
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ # 0x001D: inherited # Descriptor Cluster 9.5 p.453
+ # 0x0003: inherited # Identify 1.2 p.16
+ # 0x0004: inherited # Groups 1.3 p.21
+ # 0x0005: inherited # Scenes 1.4 p.30 - no writable
+ 0x0202: [0,1,2,3], # Fan
+ })
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "FanMode", "FanSpeed")
+ static var TYPES = { 0x002B: 2 } # Fan
+
+ # Inherited
+ # var device # reference to the `device` global object
+ # var endpoint # current endpoint
+ # var clusters # map from cluster to list of attributes, typically constructed from CLUSTERS hierachy
+ # var tick # tick value when it was last updated
+ # var node_label # name of the endpoint, used only in bridge mode, "" if none
+ var shadow_fan_mode
+ var shadow_fan_speed_pct
+ #############################################################
+ # FanMode:
+ # 0: Off
+ # 1: Low
+ # 2: Medium
+ # 3: High
+ # 4: On -- deprecated
+ # 5: Auto -- not declared as supported
+ # 6: Smart -- deprecated
+
+ #############################################################
+ # Constructor
+ def init(device, endpoint, config)
+ super(self).init(device, endpoint, config)
+ self.shadow_fan_mode = 0 # Off by default
+ self.shadow_fan_speed_pct = 0
+ end
+
+ #############################################################
+ # Model
+ #
+ def set_fan_mode(fan_mode)
+ fan_mode = int(fan_mode)
+ if (fan_mode < 0) fan_mode = 0 end # force positive
+ if fan_mode != self.shadow_fan_mode
+ self.attribute_updated(0x0202, 0x0000)
+ self.shadow_fan_mode = int(fan_mode)
+ # compute new speed
+ var new_speed_pct = self.shadow_fan_speed_pct
+ if self.shadow_fan_mode == 0 # set to Off, we need to adjust speed to 0 (4.4.6.1.1)
+ new_speed_pct = 0
+ elif self.shadow_fan_mode > 3 # Auto mode or unsupported modes, since we don't support AUTO, set speed to max
+ self.shadow_fan_mode = 3 # HIGH
+ new_speed_pct = 100
+ else # set to value
+ new_speed_pct = tasmota.scale_uint(fan_mode, 0, 3, 0, 100)
+ end
+ # adjust and advertize if speed changed
+ if self.shadow_fan_speed_pct != new_speed_pct
+ self.shadow_fan_speed_pct = new_speed_pct
+ self.attribute_updated(0x0202, 0x0002)
+ end
+ end
+ end
+
+ def set_fan_speed_pct(fan_speed_pct)
+ # guard value
+ fan_speed_pct = int(fan_speed_pct)
+ if (fan_speed_pct < 0) fan_speed_pct = 0 end
+ if (fan_speed_pct > 100) fan_speed_pct = 100 end
+ if fan_speed_pct != self.shadow_fan_speed_pct
+ self.attribute_updated(0x0202, 0x0002)
+ self.shadow_fan_speed_pct = fan_speed_pct
+ # adjust mode if needed
+ var new_mode = self.shadow_fan_mode
+ if (fan_speed_pct == 0)
+ new_mode = 0
+ else
+ new_mode = tasmota.scale_uint(fan_speed_pct, 1, 100, 1, 3)
+ end
+ # adjust and advertize if mode changed
+ if (new_mode != self.shadow_fan_mode)
+ self.shadow_fan_mode = new_mode
+ self.attribute_updated(0x0202, 0x0000)
+ end
+ end
+ end
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute(session, ctx, tlv_solo)
+ var TLV = matter.TLV
+ var cluster = ctx.cluster
+ var attribute = ctx.attribute
+
+ # ====================================================================================================
+ if cluster == 0x0202 # ========== Fan ==========
+ self.update_shadow_lazy()
+ if attribute == 0x0000 # ---------- FanMode / enum8 ----------
+ return tlv_solo.set(TLV.U1, self.shadow_fan_mode)
+ elif attribute == 0x0001 # ---------- FanModeSequence / enum8 ----------
+ return tlv_solo.set(TLV.U1, 2) # Off/Low/Med/High/Auto
+ elif attribute == 0x0002 # ---------- PercentSetting / enum8 ----------
+ return tlv_solo.set(TLV.U1, self.shadow_fan_speed_pct)
+ elif attribute == 0x0003 # ---------- PercentSetting / enum8 ----------
+ return tlv_solo.set(TLV.U1, self.shadow_fan_speed_pct)
+ end
+
+ end
+ return super(self).read_attribute(session, ctx, tlv_solo)
+ end
+
+ #############################################################
+ # MVC Model
+ #
+ # Controller write attributes
+ #############################################################
+ #############################################################
+ # write attribute
+ def write_attribute(session, ctx, write_data)
+ var TLV = matter.TLV
+ var cluster = ctx.cluster
+ var attribute = ctx.attribute
+
+ # ====================================================================================================
+ if cluster == 0x0202 # ========== Fan ==========
+ self.update_shadow_lazy()
+ if attribute == 0x0000 # ---------- FanMode / enum8 ----------
+ if type(write_data) == 'int'
+ self.set_fan_mode(write_data)
+ self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct)
+ return true
+ else
+ ctx.status = matter.CONSTRAINT_ERROR
+ return false
+ end
+ elif attribute == 0x0002 # ---------- PercentSetting / enum8 ----------
+ if type(write_data) == 'int'
+ self.set_fan_speed_pct(write_data)
+ self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct)
+ return true
+ else
+ ctx.status = matter.CONSTRAINT_ERROR
+ return false
+ end
+ end
+
+ end
+ # return super(self).read_attribute(session, ctx, tlv_solo) # not useful as there is nothing in superclass
+ return nil
+ end
+
+ #############################################################
+ # update_virtual
+ #
+ # Update internal state for virtual devices
+ def update_virtual(payload)
+ var val_fan_mode = payload.find("FanMode")
+ if val_fan_mode != nil
+ self.set_fan_mode(int(val_fan_mode))
+ end
+ var val_fan_speed = payload.find("FanSpeed")
+ if val_fan_speed != nil
+ self.set_fan_speed_pct(int(val_fan_speed))
+ end
+ # super(self).update_virtual(payload) # not useful as there is nothing in superclass
+ end
+
+end
+matter.Plugin_Fan = Matter_Plugin_Fan
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
index 3b8242756..4a140e27e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_3_Sensor_Waterleak.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_3_Sensor_Waterleak.be - implements the behavior for a Water leak Sensor
+# Matter_Plugin_2_Sensor_Waterleak.be - implements the behavior for a Water leak Sensor
#
# Copyright (C) 2024 Stephan Hadinger & Theo Arends
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
index b9a275eb1..2c024d38a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_8_Bridge_Sensor_Rain.be
@@ -1,5 +1,5 @@
#
-# Matter_Plugin_Bridge_8_Sensor_Rain.be - implements Rain Sensor via HTTP to Tasmota
+# Matter_Plugin_Bridge_Sensor_Rain.be - implements Rain Sensor via HTTP to Tasmota
#
# Copyright (C) 2024 Stephan Hadinger & Theo Arends
#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Fan.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Fan.be
new file mode 100644
index 000000000..0e7f4341a
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_9_Virt_Fan.be
@@ -0,0 +1,33 @@
+#
+# Matter_Plugin_Virt_Fan.be - implements the behavior for a Virtual Fan
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Virt_Fan,weak
+
+class Matter_Plugin_Virt_Fan : Matter_Plugin_Fan
+ static var TYPE = "v_fan" # name of the plug-in in json
+ static var DISPLAY_NAME = "v.Fan" # display name of the plug-in
+ static var ARG = "" # no arg for virtual device
+ static var ARG_HINT = "_Not used_" # Hint for entering the Argument (inside 'placeholder')
+ static var VIRTUAL = true # virtual device
+end
+matter.Plugin_Virt_Fan = Matter_Plugin_Virt_Fan
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index 29bf665fa..6f917ed6b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -36,6 +36,7 @@ class Matter_UI
"|temperature|pressure|illuminance|humidity|occupancy|onoff|contact|flow|rain|waterleak"
"|airquality"
"|-virtual|v_relay|v_light0|v_light1|v_light2|v_light3"
+ "|v_fan"
"|v_temp|v_pressure|v_illuminance|v_humidity|v_occupancy|v_contact|v_flow|v_rain|v_waterleak"
"|v_airquality"
static var _CLASSES_TYPES2= "|http_relay|http_light0|http_light1|http_light2|http_light3"
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 27ec87093..401fd4429 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -1359,10 +1359,11 @@ be_local_class(Matter_Plugin,
be_nested_map(51,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(2,
+ be_const_map( * be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(258, -1), be_const_int(5) },
- { be_const_key_int(49, -1), be_const_int(4) },
+ { be_const_key_int(49, 2), be_const_int(4) },
+ { be_const_key_int(514, -1), be_const_int(2) },
})) ) } )) },
{ be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
{ be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
new file mode 100644
index 000000000..739c5d9f4
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
@@ -0,0 +1,570 @@
+/* Solidification of Matter_Plugin_2_Fan.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Fan;
+
+/********************************************************************
+** Solidified function: set_fan_mode
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_set_fan_mode, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(shadow_fan_mode),
+ /* K2 */ be_nested_str_weak(attribute_updated),
+ /* K3 */ be_nested_str_weak(shadow_fan_speed_pct),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(scale_uint),
+ /* K7 */ be_const_int(2),
+ }),
+ be_str_weak(set_fan_mode),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x5C0C0200, // 0001 MOVE R3 R1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C040400, // 0003 MOVE R1 R2
+ 0x14080300, // 0004 LT R2 R1 K0
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x58040000, // 0006 LDCONST R1 K0
+ 0x88080101, // 0007 GETMBR R2 R0 K1
+ 0x20080202, // 0008 NE R2 R1 R2
+ 0x780A0024, // 0009 JMPF R2 #002F
+ 0x8C080102, // 000A GETMET R2 R0 K2
+ 0x54120201, // 000B LDINT R4 514
+ 0x58140000, // 000C LDCONST R5 K0
+ 0x7C080600, // 000D CALL R2 3
+ 0x60080009, // 000E GETGBL R2 G9
+ 0x5C0C0200, // 000F MOVE R3 R1
+ 0x7C080200, // 0010 CALL R2 1
+ 0x90020202, // 0011 SETMBR R0 K1 R2
+ 0x88080103, // 0012 GETMBR R2 R0 K3
+ 0x880C0101, // 0013 GETMBR R3 R0 K1
+ 0x1C0C0700, // 0014 EQ R3 R3 K0
+ 0x780E0001, // 0015 JMPF R3 #0018
+ 0x58080000, // 0016 LDCONST R2 K0
+ 0x7002000E, // 0017 JMP #0027
+ 0x880C0101, // 0018 GETMBR R3 R0 K1
+ 0x240C0704, // 0019 GT R3 R3 K4
+ 0x780E0002, // 001A JMPF R3 #001E
+ 0x90020304, // 001B SETMBR R0 K1 K4
+ 0x540A0063, // 001C LDINT R2 100
+ 0x70020008, // 001D JMP #0027
+ 0xB80E0A00, // 001E GETNGBL R3 K5
+ 0x8C0C0706, // 001F GETMET R3 R3 K6
+ 0x5C140200, // 0020 MOVE R5 R1
+ 0x58180000, // 0021 LDCONST R6 K0
+ 0x581C0004, // 0022 LDCONST R7 K4
+ 0x58200000, // 0023 LDCONST R8 K0
+ 0x54260063, // 0024 LDINT R9 100
+ 0x7C0C0C00, // 0025 CALL R3 6
+ 0x5C080600, // 0026 MOVE R2 R3
+ 0x880C0103, // 0027 GETMBR R3 R0 K3
+ 0x200C0602, // 0028 NE R3 R3 R2
+ 0x780E0004, // 0029 JMPF R3 #002F
+ 0x90020602, // 002A SETMBR R0 K3 R2
+ 0x8C0C0102, // 002B GETMET R3 R0 K2
+ 0x54160201, // 002C LDINT R5 514
+ 0x58180007, // 002D LDCONST R6 K7
+ 0x7C0C0600, // 002E CALL R3 3
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_update_virtual, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(find),
+ /* K1 */ be_nested_str_weak(FanMode),
+ /* K2 */ be_nested_str_weak(set_fan_mode),
+ /* K3 */ be_nested_str_weak(FanSpeed),
+ /* K4 */ be_nested_str_weak(set_fan_speed_pct),
+ }),
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x58100001, // 0001 LDCONST R4 K1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x200C0403, // 0004 NE R3 R2 R3
+ 0x780E0004, // 0005 JMPF R3 #000B
+ 0x8C0C0102, // 0006 GETMET R3 R0 K2
+ 0x60140009, // 0007 GETGBL R5 G9
+ 0x5C180400, // 0008 MOVE R6 R2
+ 0x7C140200, // 0009 CALL R5 1
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x8C0C0300, // 000B GETMET R3 R1 K0
+ 0x58140003, // 000C LDCONST R5 K3
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x4C100000, // 000E LDNIL R4
+ 0x20100604, // 000F NE R4 R3 R4
+ 0x78120004, // 0010 JMPF R4 #0016
+ 0x8C100104, // 0011 GETMET R4 R0 K4
+ 0x60180009, // 0012 GETGBL R6 G9
+ 0x5C1C0600, // 0013 MOVE R7 R3
+ 0x7C180200, // 0014 CALL R6 1
+ 0x7C100400, // 0015 CALL R4 2
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_fan_speed_pct
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_set_fan_speed_pct, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(shadow_fan_speed_pct),
+ /* K2 */ be_nested_str_weak(attribute_updated),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(shadow_fan_mode),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(scale_uint),
+ /* K7 */ be_const_int(1),
+ /* K8 */ be_const_int(3),
+ }),
+ be_str_weak(set_fan_speed_pct),
+ &be_const_str_solidified,
+ ( &(const binstruction[42]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x5C0C0200, // 0001 MOVE R3 R1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x5C040400, // 0003 MOVE R1 R2
+ 0x14080300, // 0004 LT R2 R1 K0
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x58040000, // 0006 LDCONST R1 K0
+ 0x540A0063, // 0007 LDINT R2 100
+ 0x24080202, // 0008 GT R2 R1 R2
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x54060063, // 000A LDINT R1 100
+ 0x88080101, // 000B GETMBR R2 R0 K1
+ 0x20080202, // 000C NE R2 R1 R2
+ 0x780A001A, // 000D JMPF R2 #0029
+ 0x8C080102, // 000E GETMET R2 R0 K2
+ 0x54120201, // 000F LDINT R4 514
+ 0x58140003, // 0010 LDCONST R5 K3
+ 0x7C080600, // 0011 CALL R2 3
+ 0x90020201, // 0012 SETMBR R0 K1 R1
+ 0x88080104, // 0013 GETMBR R2 R0 K4
+ 0x1C0C0300, // 0014 EQ R3 R1 K0
+ 0x780E0001, // 0015 JMPF R3 #0018
+ 0x58080000, // 0016 LDCONST R2 K0
+ 0x70020008, // 0017 JMP #0021
+ 0xB80E0A00, // 0018 GETNGBL R3 K5
+ 0x8C0C0706, // 0019 GETMET R3 R3 K6
+ 0x5C140200, // 001A MOVE R5 R1
+ 0x58180007, // 001B LDCONST R6 K7
+ 0x541E0063, // 001C LDINT R7 100
+ 0x58200007, // 001D LDCONST R8 K7
+ 0x58240008, // 001E LDCONST R9 K8
+ 0x7C0C0C00, // 001F CALL R3 6
+ 0x5C080600, // 0020 MOVE R2 R3
+ 0x880C0104, // 0021 GETMBR R3 R0 K4
+ 0x200C0403, // 0022 NE R3 R2 R3
+ 0x780E0004, // 0023 JMPF R3 #0029
+ 0x90020802, // 0024 SETMBR R0 K4 R2
+ 0x8C0C0102, // 0025 GETMET R3 R0 K2
+ 0x54160201, // 0026 LDINT R5 514
+ 0x58180000, // 0027 LDCONST R6 K0
+ 0x7C0C0600, // 0028 CALL R3 3
+ 0x80000000, // 0029 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: write_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_write_attribute, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_nested_str_weak(update_shadow_lazy),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(int),
+ /* K7 */ be_nested_str_weak(set_fan_mode),
+ /* K8 */ be_nested_str_weak(publish_command),
+ /* K9 */ be_nested_str_weak(FanMode),
+ /* K10 */ be_nested_str_weak(shadow_fan_mode),
+ /* K11 */ be_nested_str_weak(FanSpeed),
+ /* K12 */ be_nested_str_weak(shadow_fan_speed_pct),
+ /* K13 */ be_nested_str_weak(status),
+ /* K14 */ be_nested_str_weak(CONSTRAINT_ERROR),
+ /* K15 */ be_const_int(2),
+ /* K16 */ be_nested_str_weak(set_fan_speed_pct),
+ }),
+ be_str_weak(write_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[60]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0201, // 0004 LDINT R7 514
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0032, // 0006 JMPF R7 #003A
+ 0x8C1C0104, // 0007 GETMET R7 R0 K4
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x1C1C0D05, // 0009 EQ R7 R6 K5
+ 0x781E0016, // 000A JMPF R7 #0022
+ 0x601C0004, // 000B GETGBL R7 G4
+ 0x5C200600, // 000C MOVE R8 R3
+ 0x7C1C0200, // 000D CALL R7 1
+ 0x1C1C0F06, // 000E EQ R7 R7 K6
+ 0x781E000B, // 000F JMPF R7 #001C
+ 0x8C1C0107, // 0010 GETMET R7 R0 K7
+ 0x5C240600, // 0011 MOVE R9 R3
+ 0x7C1C0400, // 0012 CALL R7 2
+ 0x8C1C0108, // 0013 GETMET R7 R0 K8
+ 0x58240009, // 0014 LDCONST R9 K9
+ 0x8828010A, // 0015 GETMBR R10 R0 K10
+ 0x582C000B, // 0016 LDCONST R11 K11
+ 0x8830010C, // 0017 GETMBR R12 R0 K12
+ 0x7C1C0A00, // 0018 CALL R7 5
+ 0x501C0200, // 0019 LDBOOL R7 1 0
+ 0x80040E00, // 001A RET 1 R7
+ 0x70020004, // 001B JMP #0021
+ 0xB81E0000, // 001C GETNGBL R7 K0
+ 0x881C0F0E, // 001D GETMBR R7 R7 K14
+ 0x900A1A07, // 001E SETMBR R2 K13 R7
+ 0x501C0000, // 001F LDBOOL R7 0 0
+ 0x80040E00, // 0020 RET 1 R7
+ 0x70020017, // 0021 JMP #003A
+ 0x1C1C0D0F, // 0022 EQ R7 R6 K15
+ 0x781E0015, // 0023 JMPF R7 #003A
+ 0x601C0004, // 0024 GETGBL R7 G4
+ 0x5C200600, // 0025 MOVE R8 R3
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x1C1C0F06, // 0027 EQ R7 R7 K6
+ 0x781E000B, // 0028 JMPF R7 #0035
+ 0x8C1C0110, // 0029 GETMET R7 R0 K16
+ 0x5C240600, // 002A MOVE R9 R3
+ 0x7C1C0400, // 002B CALL R7 2
+ 0x8C1C0108, // 002C GETMET R7 R0 K8
+ 0x58240009, // 002D LDCONST R9 K9
+ 0x8828010A, // 002E GETMBR R10 R0 K10
+ 0x582C000B, // 002F LDCONST R11 K11
+ 0x8830010C, // 0030 GETMBR R12 R0 K12
+ 0x7C1C0A00, // 0031 CALL R7 5
+ 0x501C0200, // 0032 LDBOOL R7 1 0
+ 0x80040E00, // 0033 RET 1 R7
+ 0x70020004, // 0034 JMP #003A
+ 0xB81E0000, // 0035 GETNGBL R7 K0
+ 0x881C0F0E, // 0036 GETMBR R7 R7 K14
+ 0x900A1A07, // 0037 SETMBR R2 K13 R7
+ 0x501C0000, // 0038 LDBOOL R7 0 0
+ 0x80040E00, // 0039 RET 1 R7
+ 0x4C1C0000, // 003A LDNIL R7
+ 0x80040E00, // 003B RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(shadow_fan_mode),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(shadow_fan_speed_pct),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x90020302, // 0008 SETMBR R0 K1 K2
+ 0x90020702, // 0009 SETMBR R0 K3 K2
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_closure(class_Matter_Plugin_Fan_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Fan,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_nested_str_weak(update_shadow_lazy),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(set),
+ /* K7 */ be_nested_str_weak(U1),
+ /* K8 */ be_nested_str_weak(shadow_fan_mode),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_const_int(2),
+ /* K11 */ be_nested_str_weak(shadow_fan_speed_pct),
+ /* K12 */ be_const_int(3),
+ /* K13 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[49]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E0201, // 0004 LDINT R7 514
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0020, // 0006 JMPF R7 #0028
+ 0x8C1C0104, // 0007 GETMET R7 R0 K4
+ 0x7C1C0200, // 0008 CALL R7 1
+ 0x1C1C0D05, // 0009 EQ R7 R6 K5
+ 0x781E0005, // 000A JMPF R7 #0011
+ 0x8C1C0706, // 000B GETMET R7 R3 K6
+ 0x88240907, // 000C GETMBR R9 R4 K7
+ 0x88280108, // 000D GETMBR R10 R0 K8
+ 0x7C1C0600, // 000E CALL R7 3
+ 0x80040E00, // 000F RET 1 R7
+ 0x70020016, // 0010 JMP #0028
+ 0x1C1C0D09, // 0011 EQ R7 R6 K9
+ 0x781E0005, // 0012 JMPF R7 #0019
+ 0x8C1C0706, // 0013 GETMET R7 R3 K6
+ 0x88240907, // 0014 GETMBR R9 R4 K7
+ 0x5828000A, // 0015 LDCONST R10 K10
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x80040E00, // 0017 RET 1 R7
+ 0x7002000E, // 0018 JMP #0028
+ 0x1C1C0D0A, // 0019 EQ R7 R6 K10
+ 0x781E0005, // 001A JMPF R7 #0021
+ 0x8C1C0706, // 001B GETMET R7 R3 K6
+ 0x88240907, // 001C GETMBR R9 R4 K7
+ 0x8828010B, // 001D GETMBR R10 R0 K11
+ 0x7C1C0600, // 001E CALL R7 3
+ 0x80040E00, // 001F RET 1 R7
+ 0x70020006, // 0020 JMP #0028
+ 0x1C1C0D0C, // 0021 EQ R7 R6 K12
+ 0x781E0004, // 0022 JMPF R7 #0028
+ 0x8C1C0706, // 0023 GETMET R7 R3 K6
+ 0x88240907, // 0024 GETMBR R9 R4 K7
+ 0x8828010B, // 0025 GETMBR R10 R0 K11
+ 0x7C1C0600, // 0026 CALL R7 3
+ 0x80040E00, // 0027 RET 1 R7
+ 0x601C0003, // 0028 GETGBL R7 G3
+ 0x5C200000, // 0029 MOVE R8 R0
+ 0x7C1C0200, // 002A CALL R7 1
+ 0x8C1C0F0D, // 002B GETMET R7 R7 K13
+ 0x5C240200, // 002C MOVE R9 R1
+ 0x5C280400, // 002D MOVE R10 R2
+ 0x5C2C0600, // 002E MOVE R11 R3
+ 0x7C1C0800, // 002F CALL R7 4
+ 0x80040E00, // 0030 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Fan
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_class(Matter_Plugin_Fan,
+ 2,
+ &be_class_Matter_Plugin_Device,
+ be_nested_map(13,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_Fan_update_virtual_closure) },
+ { be_const_key_weak(read_attribute, 3), be_const_closure(class_Matter_Plugin_Fan_read_attribute_closure) },
+ { be_const_key_weak(TYPE, 0), be_nested_str_weak(fan) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(2,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_nested_str_weak(FanMode),
+ be_nested_str_weak(FanSpeed),
+ })) ) } )) },
+ { be_const_key_weak(shadow_fan_speed_pct, -1), be_const_var(1) },
+ { be_const_key_weak(set_fan_speed_pct, -1), be_const_closure(class_Matter_Plugin_Fan_set_fan_speed_pct_closure) },
+ { be_const_key_weak(shadow_fan_mode, 8), be_const_var(0) },
+ { be_const_key_weak(write_attribute, -1), be_const_closure(class_Matter_Plugin_Fan_write_attribute_closure) },
+ { be_const_key_weak(init, 9), be_const_closure(class_Matter_Plugin_Fan_init_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Fan) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(514, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(set_fan_mode, 1), be_const_closure(class_Matter_Plugin_Fan_set_fan_mode_closure) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(43, -1), be_const_int(2) },
+ })) ) } )) },
+ })),
+ be_str_weak(Matter_Plugin_Fan)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Fan.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Fan.h
new file mode 100644
index 000000000..be063b2e9
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_9_Virt_Fan.h
@@ -0,0 +1,27 @@
+/* Solidification of Matter_Plugin_9_Virt_Fan.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Virt_Fan;
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Virt_Fan
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Fan;
+be_local_class(Matter_Plugin_Virt_Fan,
+ 0,
+ &be_class_Matter_Plugin_Fan,
+ be_nested_map(5,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(VIRTUAL, 3), be_const_bool(1) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(v_X2EFan) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(v_fan) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(ARG, 2), be_nested_str_weak() },
+ })),
+ be_str_weak(Matter_Plugin_Virt_Fan)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index 93f389557..b2d5e1d38 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -3397,7 +3397,7 @@ be_local_class(Matter_UI,
{ be_const_key_weak(show_commissioning_info, -1), be_const_closure(class_Matter_UI_show_commissioning_info_closure) },
{ be_const_key_weak(page_part_ctl, 18), be_const_closure(class_Matter_UI_page_part_ctl_closure) },
{ be_const_key_weak(show_fabric_info, -1), be_const_closure(class_Matter_UI_show_fabric_info_closure) },
- { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Crain_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_rain_X7Cv_waterleak_X7Cv_airquality) },
+ { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Crain_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_fan_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_rain_X7Cv_waterleak_X7Cv_airquality) },
{ be_const_key_weak(web_get_arg, -1), be_const_closure(class_Matter_UI_web_get_arg_closure) },
{ be_const_key_weak(plugin_option, 5), be_const_closure(class_Matter_UI_plugin_option_closure) },
{ be_const_key_weak(web_add_config_button, -1), be_const_closure(class_Matter_UI_web_add_config_button_closure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index d5787e6c3..d7855d907 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -6104,58 +6104,60 @@ be_local_class(Matter_Device,
{ be_const_key_weak(probe_sensor_time, -1), be_const_var(37) },
{ be_const_key_weak(generate_random_passcode, 94), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
{ be_const_key_weak(plugins_classes, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(50,
+ be_const_map( * be_nested_map(52,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(relay, 29), be_const_class(be_class_Matter_Plugin_OnOff) },
- { be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_occupancy, 31), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(http_contact, 14), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
- { be_const_key_weak(light0, 16), be_const_class(be_class_Matter_Plugin_Light0) },
- { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
- { be_const_key_weak(v_light1, 10), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
- { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
- { be_const_key_weak(v_contact, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
- { be_const_key_weak(http_illuminance, 33), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
- { be_const_key_weak(rain, 22), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
- { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(shutter, 6), be_const_class(be_class_Matter_Plugin_Shutter) },
- { be_const_key_weak(light2, -1), be_const_class(be_class_Matter_Plugin_Light2) },
- { be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
- { be_const_key_weak(v_illuminance, 49), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
- { be_const_key_weak(root, 27), be_const_class(be_class_Matter_Plugin_Root) },
- { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
- { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
- { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(aggregator, -1), be_const_class(be_class_Matter_Plugin_Aggregator) },
- { be_const_key_weak(pressure, 43), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
- { be_const_key_weak(shutter_X2Btilt, 24), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
- { be_const_key_weak(v_humidity, 46), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
- { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
- { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
- { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
- { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
- { be_const_key_weak(http_waterleak, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(waterleak, 8), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
- { be_const_key_weak(light1, 3), be_const_class(be_class_Matter_Plugin_Light1) },
- { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
- { be_const_key_weak(v_flow, 13), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
- { be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
- { be_const_key_weak(occupancy, 48), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(airquality, 34), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
- { be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
- { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
- { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
{ be_const_key_weak(v_rain, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
+ { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
+ { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
+ { be_const_key_weak(http_occupancy, 4), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
+ { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
+ { be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
+ { be_const_key_weak(relay, 17), be_const_class(be_class_Matter_Plugin_OnOff) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
+ { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
+ { be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
+ { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
+ { be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
+ { be_const_key_weak(onoff, 2), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
+ { be_const_key_weak(http_waterleak, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
+ { be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
+ { be_const_key_weak(http_light2, 49), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
+ { be_const_key_weak(v_flow, 14), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
+ { be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
+ { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
+ { be_const_key_weak(v_waterleak, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
+ { be_const_key_weak(light2, -1), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
+ { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
+ { be_const_key_weak(v_illuminance, 12), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
+ { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
+ { be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
+ { be_const_key_weak(v_light0, 1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
+ { be_const_key_weak(http_relay, 20), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(root, 28), be_const_class(be_class_Matter_Plugin_Root) },
+ { be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
+ { be_const_key_weak(v_airquality, 33), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(aggregator, 22), be_const_class(be_class_Matter_Plugin_Aggregator) },
+ { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
+ { be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
+ { be_const_key_weak(http_light3, 44), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
+ { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
+ { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(shutter, 21), be_const_class(be_class_Matter_Plugin_Shutter) },
+ { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(light3, 15), be_const_class(be_class_Matter_Plugin_Light3) },
+ { be_const_key_weak(airquality, 0), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
+ { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(http_illuminance, 31), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
})) ) } )) },
{ be_const_key_weak(start_operational_discovery, -1), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
{ be_const_key_weak(tick, -1), be_const_var(10) },
From b16b3859e31bfe8bbe41da6d8ccca47881284027 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 15 Jun 2024 13:34:18 +0200
Subject: [PATCH 061/252] Matter add FanSpeed255 (#21638)
---
.../src/embedded/Matter_Plugin_2_Fan.be | 10 +-
.../solidify/solidified_Matter_Plugin_2_Fan.h | 158 +++++++++++-------
2 files changed, 108 insertions(+), 60 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
index dbdc97797..510926a1d 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Fan.be
@@ -34,7 +34,7 @@ class Matter_Plugin_Fan : Matter_Plugin_Device
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0202: [0,1,2,3], # Fan
})
- static var UPDATE_COMMANDS = matter.UC_LIST(_class, "FanMode", "FanSpeed")
+ static var UPDATE_COMMANDS = matter.UC_LIST(_class, "FanMode", "FanSpeed", "FanSpeed255")
static var TYPES = { 0x002B: 2 } # Fan
# Inherited
@@ -156,7 +156,7 @@ class Matter_Plugin_Fan : Matter_Plugin_Device
if attribute == 0x0000 # ---------- FanMode / enum8 ----------
if type(write_data) == 'int'
self.set_fan_mode(write_data)
- self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct)
+ self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct, 'FanSpeed255', tasmota.scale_uint(self.shadow_fan_speed_pct, 0, 100, 0, 255))
return true
else
ctx.status = matter.CONSTRAINT_ERROR
@@ -165,7 +165,7 @@ class Matter_Plugin_Fan : Matter_Plugin_Device
elif attribute == 0x0002 # ---------- PercentSetting / enum8 ----------
if type(write_data) == 'int'
self.set_fan_speed_pct(write_data)
- self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct)
+ self.publish_command('FanMode', self.shadow_fan_mode, 'FanSpeed', self.shadow_fan_speed_pct, 'FanSpeed255', tasmota.scale_uint(self.shadow_fan_speed_pct, 0, 100, 0, 255))
return true
else
ctx.status = matter.CONSTRAINT_ERROR
@@ -187,6 +187,10 @@ class Matter_Plugin_Fan : Matter_Plugin_Device
if val_fan_mode != nil
self.set_fan_mode(int(val_fan_mode))
end
+ var val_fan_speed255 = payload.find("FanSpeed255")
+ if val_fan_speed255 != nil
+ self.set_fan_speed_pct(tasmota.scale_uint(int(val_fan_speed255), 0, 255, 0, 100))
+ end
var val_fan_speed = payload.find("FanSpeed")
if val_fan_speed != nil
self.set_fan_speed_pct(int(val_fan_speed))
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
index 739c5d9f4..dcb7f62ad 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Fan.h
@@ -93,7 +93,7 @@ be_local_closure(class_Matter_Plugin_Fan_set_fan_mode, /* name */
extern const bclass be_class_Matter_Plugin_Fan;
be_local_closure(class_Matter_Plugin_Fan_update_virtual, /* name */
be_nested_proto(
- 8, /* nstack */
+ 13, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -101,16 +101,20 @@ be_local_closure(class_Matter_Plugin_Fan_update_virtual, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Fan,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(find),
/* K1 */ be_nested_str_weak(FanMode),
/* K2 */ be_nested_str_weak(set_fan_mode),
- /* K3 */ be_nested_str_weak(FanSpeed),
+ /* K3 */ be_nested_str_weak(FanSpeed255),
/* K4 */ be_nested_str_weak(set_fan_speed_pct),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(scale_uint),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(FanSpeed),
}),
be_str_weak(update_virtual),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
+ ( &(const binstruction[41]) { /* code */
0x8C080300, // 0000 GETMET R2 R1 K0
0x58100001, // 0001 LDCONST R4 K1
0x7C080400, // 0002 CALL R2 2
@@ -127,13 +131,31 @@ be_local_closure(class_Matter_Plugin_Fan_update_virtual, /* name */
0x7C0C0400, // 000D CALL R3 2
0x4C100000, // 000E LDNIL R4
0x20100604, // 000F NE R4 R3 R4
- 0x78120004, // 0010 JMPF R4 #0016
+ 0x7812000B, // 0010 JMPF R4 #001D
0x8C100104, // 0011 GETMET R4 R0 K4
- 0x60180009, // 0012 GETGBL R6 G9
- 0x5C1C0600, // 0013 MOVE R7 R3
- 0x7C180200, // 0014 CALL R6 1
- 0x7C100400, // 0015 CALL R4 2
- 0x80000000, // 0016 RET 0
+ 0xB81A0A00, // 0012 GETNGBL R6 K5
+ 0x8C180D06, // 0013 GETMET R6 R6 K6
+ 0x60200009, // 0014 GETGBL R8 G9
+ 0x5C240600, // 0015 MOVE R9 R3
+ 0x7C200200, // 0016 CALL R8 1
+ 0x58240007, // 0017 LDCONST R9 K7
+ 0x542A00FE, // 0018 LDINT R10 255
+ 0x582C0007, // 0019 LDCONST R11 K7
+ 0x54320063, // 001A LDINT R12 100
+ 0x7C180C00, // 001B CALL R6 6
+ 0x7C100400, // 001C CALL R4 2
+ 0x8C100300, // 001D GETMET R4 R1 K0
+ 0x58180008, // 001E LDCONST R6 K8
+ 0x7C100400, // 001F CALL R4 2
+ 0x4C140000, // 0020 LDNIL R5
+ 0x20140805, // 0021 NE R5 R4 R5
+ 0x78160004, // 0022 JMPF R5 #0028
+ 0x8C140104, // 0023 GETMET R5 R0 K4
+ 0x601C0009, // 0024 GETGBL R7 G9
+ 0x5C200800, // 0025 MOVE R8 R4
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x7C140400, // 0027 CALL R5 2
+ 0x80000000, // 0028 RET 0
})
)
);
@@ -222,7 +244,7 @@ be_local_closure(class_Matter_Plugin_Fan_set_fan_speed_pct, /* name */
extern const bclass be_class_Matter_Plugin_Fan;
be_local_closure(class_Matter_Plugin_Fan_write_attribute, /* name */
be_nested_proto(
- 13, /* nstack */
+ 21, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
@@ -230,7 +252,7 @@ be_local_closure(class_Matter_Plugin_Fan_write_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Fan,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
+ ( &(const bvalue[20]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(cluster),
@@ -244,30 +266,33 @@ be_local_closure(class_Matter_Plugin_Fan_write_attribute, /* name */
/* K10 */ be_nested_str_weak(shadow_fan_mode),
/* K11 */ be_nested_str_weak(FanSpeed),
/* K12 */ be_nested_str_weak(shadow_fan_speed_pct),
- /* K13 */ be_nested_str_weak(status),
- /* K14 */ be_nested_str_weak(CONSTRAINT_ERROR),
- /* K15 */ be_const_int(2),
- /* K16 */ be_nested_str_weak(set_fan_speed_pct),
+ /* K13 */ be_nested_str_weak(FanSpeed255),
+ /* K14 */ be_nested_str_weak(tasmota),
+ /* K15 */ be_nested_str_weak(scale_uint),
+ /* K16 */ be_nested_str_weak(status),
+ /* K17 */ be_nested_str_weak(CONSTRAINT_ERROR),
+ /* K18 */ be_const_int(2),
+ /* K19 */ be_nested_str_weak(set_fan_speed_pct),
}),
be_str_weak(write_attribute),
&be_const_str_solidified,
- ( &(const binstruction[60]) { /* code */
+ ( &(const binstruction[78]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E0201, // 0004 LDINT R7 514
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0032, // 0006 JMPF R7 #003A
+ 0x781E0044, // 0006 JMPF R7 #004C
0x8C1C0104, // 0007 GETMET R7 R0 K4
0x7C1C0200, // 0008 CALL R7 1
0x1C1C0D05, // 0009 EQ R7 R6 K5
- 0x781E0016, // 000A JMPF R7 #0022
+ 0x781E001F, // 000A JMPF R7 #002B
0x601C0004, // 000B GETGBL R7 G4
0x5C200600, // 000C MOVE R8 R3
0x7C1C0200, // 000D CALL R7 1
0x1C1C0F06, // 000E EQ R7 R7 K6
- 0x781E000B, // 000F JMPF R7 #001C
+ 0x781E0014, // 000F JMPF R7 #0025
0x8C1C0107, // 0010 GETMET R7 R0 K7
0x5C240600, // 0011 MOVE R9 R3
0x7C1C0400, // 0012 CALL R7 2
@@ -276,42 +301,60 @@ be_local_closure(class_Matter_Plugin_Fan_write_attribute, /* name */
0x8828010A, // 0015 GETMBR R10 R0 K10
0x582C000B, // 0016 LDCONST R11 K11
0x8830010C, // 0017 GETMBR R12 R0 K12
- 0x7C1C0A00, // 0018 CALL R7 5
- 0x501C0200, // 0019 LDBOOL R7 1 0
- 0x80040E00, // 001A RET 1 R7
- 0x70020004, // 001B JMP #0021
- 0xB81E0000, // 001C GETNGBL R7 K0
- 0x881C0F0E, // 001D GETMBR R7 R7 K14
- 0x900A1A07, // 001E SETMBR R2 K13 R7
- 0x501C0000, // 001F LDBOOL R7 0 0
- 0x80040E00, // 0020 RET 1 R7
- 0x70020017, // 0021 JMP #003A
- 0x1C1C0D0F, // 0022 EQ R7 R6 K15
- 0x781E0015, // 0023 JMPF R7 #003A
- 0x601C0004, // 0024 GETGBL R7 G4
- 0x5C200600, // 0025 MOVE R8 R3
- 0x7C1C0200, // 0026 CALL R7 1
- 0x1C1C0F06, // 0027 EQ R7 R7 K6
- 0x781E000B, // 0028 JMPF R7 #0035
- 0x8C1C0110, // 0029 GETMET R7 R0 K16
- 0x5C240600, // 002A MOVE R9 R3
- 0x7C1C0400, // 002B CALL R7 2
- 0x8C1C0108, // 002C GETMET R7 R0 K8
- 0x58240009, // 002D LDCONST R9 K9
- 0x8828010A, // 002E GETMBR R10 R0 K10
- 0x582C000B, // 002F LDCONST R11 K11
- 0x8830010C, // 0030 GETMBR R12 R0 K12
- 0x7C1C0A00, // 0031 CALL R7 5
- 0x501C0200, // 0032 LDBOOL R7 1 0
- 0x80040E00, // 0033 RET 1 R7
- 0x70020004, // 0034 JMP #003A
- 0xB81E0000, // 0035 GETNGBL R7 K0
- 0x881C0F0E, // 0036 GETMBR R7 R7 K14
- 0x900A1A07, // 0037 SETMBR R2 K13 R7
- 0x501C0000, // 0038 LDBOOL R7 0 0
- 0x80040E00, // 0039 RET 1 R7
- 0x4C1C0000, // 003A LDNIL R7
- 0x80040E00, // 003B RET 1 R7
+ 0x5834000D, // 0018 LDCONST R13 K13
+ 0xB83A1C00, // 0019 GETNGBL R14 K14
+ 0x8C381D0F, // 001A GETMET R14 R14 K15
+ 0x8840010C, // 001B GETMBR R16 R0 K12
+ 0x58440005, // 001C LDCONST R17 K5
+ 0x544A0063, // 001D LDINT R18 100
+ 0x584C0005, // 001E LDCONST R19 K5
+ 0x545200FE, // 001F LDINT R20 255
+ 0x7C380C00, // 0020 CALL R14 6
+ 0x7C1C0E00, // 0021 CALL R7 7
+ 0x501C0200, // 0022 LDBOOL R7 1 0
+ 0x80040E00, // 0023 RET 1 R7
+ 0x70020004, // 0024 JMP #002A
+ 0xB81E0000, // 0025 GETNGBL R7 K0
+ 0x881C0F11, // 0026 GETMBR R7 R7 K17
+ 0x900A2007, // 0027 SETMBR R2 K16 R7
+ 0x501C0000, // 0028 LDBOOL R7 0 0
+ 0x80040E00, // 0029 RET 1 R7
+ 0x70020020, // 002A JMP #004C
+ 0x1C1C0D12, // 002B EQ R7 R6 K18
+ 0x781E001E, // 002C JMPF R7 #004C
+ 0x601C0004, // 002D GETGBL R7 G4
+ 0x5C200600, // 002E MOVE R8 R3
+ 0x7C1C0200, // 002F CALL R7 1
+ 0x1C1C0F06, // 0030 EQ R7 R7 K6
+ 0x781E0014, // 0031 JMPF R7 #0047
+ 0x8C1C0113, // 0032 GETMET R7 R0 K19
+ 0x5C240600, // 0033 MOVE R9 R3
+ 0x7C1C0400, // 0034 CALL R7 2
+ 0x8C1C0108, // 0035 GETMET R7 R0 K8
+ 0x58240009, // 0036 LDCONST R9 K9
+ 0x8828010A, // 0037 GETMBR R10 R0 K10
+ 0x582C000B, // 0038 LDCONST R11 K11
+ 0x8830010C, // 0039 GETMBR R12 R0 K12
+ 0x5834000D, // 003A LDCONST R13 K13
+ 0xB83A1C00, // 003B GETNGBL R14 K14
+ 0x8C381D0F, // 003C GETMET R14 R14 K15
+ 0x8840010C, // 003D GETMBR R16 R0 K12
+ 0x58440005, // 003E LDCONST R17 K5
+ 0x544A0063, // 003F LDINT R18 100
+ 0x584C0005, // 0040 LDCONST R19 K5
+ 0x545200FE, // 0041 LDINT R20 255
+ 0x7C380C00, // 0042 CALL R14 6
+ 0x7C1C0E00, // 0043 CALL R7 7
+ 0x501C0200, // 0044 LDBOOL R7 1 0
+ 0x80040E00, // 0045 RET 1 R7
+ 0x70020004, // 0046 JMP #004C
+ 0xB81E0000, // 0047 GETNGBL R7 K0
+ 0x881C0F11, // 0048 GETMBR R7 R7 K17
+ 0x900A2007, // 0049 SETMBR R2 K16 R7
+ 0x501C0000, // 004A LDBOOL R7 0 0
+ 0x80040E00, // 004B RET 1 R7
+ 0x4C1C0000, // 004C LDNIL R7
+ 0x80040E00, // 004D RET 1 R7
})
)
);
@@ -459,10 +502,11 @@ be_local_class(Matter_Plugin_Fan,
{ be_const_key_weak(read_attribute, 3), be_const_closure(class_Matter_Plugin_Fan_read_attribute_closure) },
{ be_const_key_weak(TYPE, 0), be_nested_str_weak(fan) },
{ be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(2,
+ be_const_list( * be_nested_list(3,
( (struct bvalue*) &(const bvalue[]) {
be_nested_str_weak(FanMode),
be_nested_str_weak(FanSpeed),
+ be_nested_str_weak(FanSpeed255),
})) ) } )) },
{ be_const_key_weak(shadow_fan_speed_pct, -1), be_const_var(1) },
{ be_const_key_weak(set_fan_speed_pct, -1), be_const_closure(class_Matter_Plugin_Fan_set_fan_speed_pct_closure) },
From 94aded8d5ce92115821802224cbdb961414543fd Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 15 Jun 2024 13:59:17 +0200
Subject: [PATCH 062/252] Update changelogs
---
CHANGELOG.md | 6 +++---
RELEASENOTES.md | 3 +++
tasmota/language/af_AF.h | 18 ++++++++++++++++++
tasmota/language/bg_BG.h | 18 ++++++++++++++++++
tasmota/language/ca_AD.h | 18 ++++++++++++++++++
tasmota/language/cs_CZ.h | 18 ++++++++++++++++++
tasmota/language/de_DE.h | 18 ++++++++++++++++++
tasmota/language/el_GR.h | 18 ++++++++++++++++++
tasmota/language/en_GB.h | 18 ++++++++++++++++++
tasmota/language/es_ES.h | 18 ++++++++++++++++++
tasmota/language/fr_FR.h | 18 ++++++++++++++++++
tasmota/language/fy_NL.h | 18 ++++++++++++++++++
tasmota/language/he_HE.h | 18 ++++++++++++++++++
tasmota/language/hu_HU.h | 18 ++++++++++++++++++
tasmota/language/it_IT.h | 18 ++++++++++++++++++
tasmota/language/ko_KO.h | 18 ++++++++++++++++++
tasmota/language/nl_NL.h | 18 ++++++++++++++++++
tasmota/language/pl_PL.h | 18 ++++++++++++++++++
tasmota/language/pt_BR.h | 18 ++++++++++++++++++
tasmota/language/pt_PT.h | 18 ++++++++++++++++++
tasmota/language/ro_RO.h | 18 ++++++++++++++++++
tasmota/language/ru_RU.h | 18 ++++++++++++++++++
tasmota/language/sk_SK.h | 18 ++++++++++++++++++
tasmota/language/sv_SE.h | 18 ++++++++++++++++++
tasmota/language/tr_TR.h | 18 ++++++++++++++++++
tasmota/language/uk_UA.h | 18 ++++++++++++++++++
tasmota/language/vi_VN.h | 18 ++++++++++++++++++
tasmota/language/zh_CN.h | 18 ++++++++++++++++++
tasmota/language/zh_TW.h | 18 ++++++++++++++++++
29 files changed, 492 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 008adf3e3..ae95810d5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,8 @@ All notable changes to this project will be documented in this file.
- Berry `classof` extended to class methods (#21615)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
- Matter support for Rain sensor (#21633)
-- Matter add internal debug option
-- Matter add Fan support (virtual only)
+- Matter add internal debug option (#21634)
+- Matter add Fan support (virtual only) (#21637)
### Breaking Changed
@@ -20,7 +20,7 @@ All notable changes to this project will be documented in this file.
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
### Fixed
-- Matter interverted attributes 0xFFF9 and 0xFFFB
+- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 7b4b2cdf3..fb5f57af5 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -131,6 +131,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
+- Matter add internal debug option [#21634](https://github.com/arendst/Tasmota/issues/21634)
+- Matter add Fan support (virtual only) [#21637](https://github.com/arendst/Tasmota/issues/21637)
### Changed
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
@@ -147,5 +149,6 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Fixed
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
+- Matter interverted attributes 0xFFF9 and 0xFFFB [#21636](https://github.com/arendst/Tasmota/issues/21636)
### Removed
diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h
index a10ae1b76..13cbdde3a 100644
--- a/tasmota/language/af_AF.h
+++ b/tasmota/language/af_AF.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Geen"
#define D_SENSOR_USER "Gebruiker"
diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h
index 4c5d5af53..02d35c195 100644
--- a/tasmota/language/bg_BG.h
+++ b/tasmota/language/bg_BG.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Сила на сигнала"
#define D_CHIPTEMPERATURE "Температура на чипа"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Няма"
#define D_SENSOR_USER "Потребителско"
diff --git a/tasmota/language/ca_AD.h b/tasmota/language/ca_AD.h
index b04a2f452..5bbe9ea11 100644
--- a/tasmota/language/ca_AD.h
+++ b/tasmota/language/ca_AD.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Nivell del senyal"
#define D_CHIPTEMPERATURE "Temperatura del Xip"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Cap"
#define D_SENSOR_USER "Usuari"
diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h
index 8c83fbf7b..bc101d689 100644
--- a/tasmota/language/cs_CZ.h
+++ b/tasmota/language/cs_CZ.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Není"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h
index 6cfe0dcd0..1843b1a35 100644
--- a/tasmota/language/de_DE.h
+++ b/tasmota/language/de_DE.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signalstärke"
#define D_CHIPTEMPERATURE "Chiptemperatur"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "None"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h
index 433f54218..c28ddc011 100644
--- a/tasmota/language/el_GR.h
+++ b/tasmota/language/el_GR.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Κανένα"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h
index f0641cfd1..813e248b8 100644
--- a/tasmota/language/en_GB.h
+++ b/tasmota/language/en_GB.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "None"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h
index 5d980ade0..006b8d0a7 100644
--- a/tasmota/language/es_ES.h
+++ b/tasmota/language/es_ES.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Señal"
#define D_CHIPTEMPERATURE "Temperatura del Chip"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Ninguno"
#define D_SENSOR_USER "Por Usuario"
diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h
index 174800ced..b92fe6aae 100644
--- a/tasmota/language/fr_FR.h
+++ b/tasmota/language/fr_FR.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Aucun"
#define D_SENSOR_USER "Utilisateur"
diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h
index d828fe94c..d705ee5f2 100644
--- a/tasmota/language/fy_NL.h
+++ b/tasmota/language/fy_NL.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Gjin"
#define D_SENSOR_USER "Brûker"
diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h
index 1115824ed..f5ed94f1e 100644
--- a/tasmota/language/he_HE.h
+++ b/tasmota/language/he_HE.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "None"
#define D_SENSOR_USER "משתמש"
diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h
index ceadce58b..40d7b48f8 100644
--- a/tasmota/language/hu_HU.h
+++ b/tasmota/language/hu_HU.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Nincs"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index 3e7c648ca..d1ca14b20 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Livello segnale"
#define D_CHIPTEMPERATURE "Temperatura chip"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Nessuno"
#define D_SENSOR_USER "Utente"
diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h
index f118ce486..007e10ca2 100644
--- a/tasmota/language/ko_KO.h
+++ b/tasmota/language/ko_KO.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "없음"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h
index 237d17627..3edb51c8f 100644
--- a/tasmota/language/nl_NL.h
+++ b/tasmota/language/nl_NL.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Geen"
#define D_SENSOR_USER "Gebruiker"
diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h
index 02f5ee566..dc320c42f 100644
--- a/tasmota/language/pl_PL.h
+++ b/tasmota/language/pl_PL.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Siła sygnału"
#define D_CHIPTEMPERATURE "Temperatura Chipa"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Brak"
#define D_SENSOR_USER "Użytkownik"
diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h
index 34827df60..20ec59a28 100644
--- a/tasmota/language/pt_BR.h
+++ b/tasmota/language/pt_BR.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Força do sinal"
#define D_CHIPTEMPERATURE "Temperatura do CHIP"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Nenhum"
#define D_SENSOR_USER "Usuário"
diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h
index c1b8ac284..2d3495c3f 100644
--- a/tasmota/language/pt_PT.h
+++ b/tasmota/language/pt_PT.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Nenhum"
#define D_SENSOR_USER "Utilizador"
diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h
index 9560fcfe4..a8ac820a6 100644
--- a/tasmota/language/ro_RO.h
+++ b/tasmota/language/ro_RO.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Fără"
#define D_SENSOR_USER "Utilizator"
diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h
index d7807d77c..35e1df314 100644
--- a/tasmota/language/ru_RU.h
+++ b/tasmota/language/ru_RU.h
@@ -665,6 +665,24 @@
#define D_SIGNALSTRENGTH "Сила сигнала"
#define D_CHIPTEMPERATURE "Температура чипа"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "-нет-"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h
index 6094ef0e4..2350fbd69 100644
--- a/tasmota/language/sk_SK.h
+++ b/tasmota/language/sk_SK.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Žiaden"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h
index ecd2a84ac..fb5115ca7 100644
--- a/tasmota/language/sv_SE.h
+++ b/tasmota/language/sv_SE.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Ingen"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h
index c30440d34..4fa1121bc 100644
--- a/tasmota/language/tr_TR.h
+++ b/tasmota/language/tr_TR.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "None"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h
index d02250694..ac248bf8e 100644
--- a/tasmota/language/uk_UA.h
+++ b/tasmota/language/uk_UA.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Немає"
#define D_SENSOR_USER "Користувач"
diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h
index e62e015d2..5cdea438a 100644
--- a/tasmota/language/vi_VN.h
+++ b/tasmota/language/vi_VN.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Không dùng"
#define D_SENSOR_USER "Người Dùng"
diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h
index 438ec7166..6eaa9867a 100644
--- a/tasmota/language/zh_CN.h
+++ b/tasmota/language/zh_CN.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "无"
#define D_SENSOR_USER "User"
diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h
index 42c64aaf7..1e047a89a 100644
--- a/tasmota/language/zh_TW.h
+++ b/tasmota/language/zh_TW.h
@@ -664,6 +664,24 @@
#define D_SIGNALSTRENGTH "Signal Strength"
#define D_CHIPTEMPERATURE "Chip Temperature"
+// xsns_60_GPS
+#define D_LATITUDE "Latitude"
+#define D_LONGITUDE "Longitude"
+#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
+#define D_ALTITUDE "Altitude"
+#define D_VERTICAL_ACCURACY "Vertical Accuracy"
+#define D_SPEED "Speed"
+#define D_SPEED_ACCURACY "Speed Accuracy"
+#define D_HEADING "Heading"
+#define D_HEADING_ACCURACY "Heading Accuracy"
+#define D_SAT_FIX "Satellite Fix"
+ #define D_SAT_FIX_NO_FIX "None"
+ #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
+ #define D_SAT_FIX_2D "2D"
+ #define D_SAT_FIX_3D "3D"
+ #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
+ #define D_SAT_FIX_TIME "Time only fix"
+
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "無"
#define D_SENSOR_USER "使用者"
From 711e28392500b3fa1b7b14e599fbb0cbb99e23ca Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sat, 15 Jun 2024 15:48:24 +0200
Subject: [PATCH 063/252] allow define wifi credentials in pio (#21640)
---
tasmota/my_user_config.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tasmota/my_user_config.h b/tasmota/my_user_config.h
index d2a13c280..60efbee49 100644
--- a/tasmota/my_user_config.h
+++ b/tasmota/my_user_config.h
@@ -71,11 +71,21 @@
#define WIFI_DNS "192.168.1.1" // [IpAddress4] If not using DHCP set DNS1 IP address (might be equal to WIFI_GATEWAY)
#define WIFI_DNS2 "0.0.0.0" // [IpAddress5] If not using DHCP set DNS2 IP address (might be equal to WIFI_GATEWAY)
+#ifndef STA_SSID1
#define STA_SSID1 "" // [Ssid1] Wi-Fi SSID
+#endif
+#ifndef STA_PASS1
#define STA_PASS1 "" // [Password1] Wi-Fi password
+#endif
+#ifndef STA_SSID2
#define STA_SSID2 "" // [Ssid2] Optional alternate AP Wi-Fi SSID
+#endif
+#ifndef STA_PASS2
#define STA_PASS2 "" // [Password2] Optional alternate AP Wi-Fi password
+#endif
+#ifndef WIFI_AP_PASSPHRASE
#define WIFI_AP_PASSPHRASE "" // AccessPoint passphrase. For WPA2 min 8 char, for open use "" (max 63 char).
+#endif
#define WIFI_CONFIG_TOOL WIFI_RETRY // [WifiConfig] Default tool if Wi-Fi fails to connect (default option: 4 - WIFI_RETRY)
// (WIFI_RESTART, WIFI_MANAGER, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL, WIFI_MANAGER_RESET_ONLY)
// The configuration can be changed after first setup using WifiConfig 0, 2, 4, 5, 6 and 7.
From 9499211d7db9ecd7597fbba4f8e9ebae42f94bf0 Mon Sep 17 00:00:00 2001
From: bovirus <1262554+bovirus@users.noreply.github.com>
Date: Sat, 15 Jun 2024 15:49:06 +0200
Subject: [PATCH 064/252] Upload Italian language (#21641)
---
tasmota/language/it_IT.h | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h
index d1ca14b20..ed2984e64 100644
--- a/tasmota/language/it_IT.h
+++ b/tasmota/language/it_IT.h
@@ -665,22 +665,22 @@
#define D_CHIPTEMPERATURE "Temperatura chip"
// xsns_60_GPS
-#define D_LATITUDE "Latitude"
-#define D_LONGITUDE "Longitude"
-#define D_HORIZONTAL_ACCURACY "Horizontal Accuracy"
-#define D_ALTITUDE "Altitude"
-#define D_VERTICAL_ACCURACY "Vertical Accuracy"
-#define D_SPEED "Speed"
-#define D_SPEED_ACCURACY "Speed Accuracy"
-#define D_HEADING "Heading"
-#define D_HEADING_ACCURACY "Heading Accuracy"
-#define D_SAT_FIX "Satellite Fix"
- #define D_SAT_FIX_NO_FIX "None"
- #define D_SAT_FIX_DEAD_RECK "Dead reckoning"
- #define D_SAT_FIX_2D "2D"
- #define D_SAT_FIX_3D "3D"
- #define D_SAT_FIX_GPS_DEAD "GPS and dead reckoning"
- #define D_SAT_FIX_TIME "Time only fix"
+#define D_LATITUDE "Latitudine"
+#define D_LONGITUDE "Longitudine"
+#define D_HORIZONTAL_ACCURACY "Precisione orizzontale"
+#define D_ALTITUDE "Altitudine"
+#define D_VERTICAL_ACCURACY "Precisione verticale"
+#define D_SPEED "Velocità"
+#define D_SPEED_ACCURACY "Precisione velocità"
+#define D_HEADING "Direzione"
+#define D_HEADING_ACCURACY "Precisione direzione"
+#define D_SAT_FIX "Aggancio satelliti"
+#define D_SAT_FIX_NO_FIX "Nessuno"
+#define D_SAT_FIX_DEAD_RECK "Navigazione stimata"
+#define D_SAT_FIX_2D "2D"
+#define D_SAT_FIX_3D "3D"
+#define D_SAT_FIX_GPS_DEAD "GPS e navigazione stimata"
+#define D_SAT_FIX_TIME "Solo corrzione orario"
// tasmota_template.h - keep them as short as possible to be able to fit them in GUI drop down box
#define D_SENSOR_NONE "Nessuno"
From d3f8afed29affe28935240ffe19d1b5634b0243c Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 15 Jun 2024 16:52:42 +0200
Subject: [PATCH 065/252] Fix GPS_VELOCITY (#18035)
---
tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino | 77 +++++++++------------
1 file changed, 31 insertions(+), 46 deletions(-)
diff --git a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
index d37e4cf0c..73b307450 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
@@ -856,31 +856,23 @@ void UBXLoop(void)
#endif //USE_FLOG
const char HTTP_SNS_NTPSERVER[] PROGMEM = "{s} NTP server {m}active{e}";
- const char HTTP_SNS_GPS[] PROGMEM = "{s} GPS latitude {m}%s{e}"
- "{s} GPS longitude {m}%s{e}"
- "{s} GPS altitude {m}%s m{e}"
- "{s} GPS hor. Accuracy {m}%s m{e}"
- "{s} GPS vert. Accuracy {m}%s m{e}"
- "{s} GPS sat-fix status {m}%s{e}"
+ const char HTTP_SNS_GPS[] PROGMEM = "{s}GPS " D_LATITUDE "{m}%s{e}"
+ "{s}GPS " D_LONGITUDE "{m}%s{e}"
+ "{s}GPS " D_ALTITUDE "{m}%3_f " D_UNIT_METER "{e}"
+ "{s}GPS " D_HORIZONTAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}"
+ "{s}GPS " D_VERTICAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}"
+ "{s}GPS " D_SAT_FIX "{m}%s{e}";
#ifdef USE_GPS_VELOCITY
- "{s} GPS Speed {m}%s{e}"
- "{s} GPS Heading {m}%s{e}"
- "{s} GPS Heading Acc {m}%s{e}"
- "{s} GPS Speed Acc {m}%s{e}"
+ const char HTTP_SNS_GPS2[] PROGMEM = "{s}GPS " D_SPEED "{m}%1_f{e}"
+ "{s}GPS " D_HEADING "{m}%1_f{e}"
+ "{s}GPS " D_HEADING_ACCURACY "{m}%2_f{e}"
+ "{s}GPS " D_SPEED_ACCURACY "{m}%2_f{e}";
#endif
- ;
- const char kGPSFix0[] PROGMEM = "no fix";
- const char kGPSFix1[] PROGMEM = "dead reckoning only";
- const char kGPSFix2[] PROGMEM = "2D-fix";
- const char kGPSFix3[] PROGMEM = "3D-fix";
- const char kGPSFix4[] PROGMEM = "GPS + dead reckoning combined";
- const char kGPSFix5[] PROGMEM = "Time only fix";
- const char * kGPSFix[] PROGMEM ={kGPSFix0, kGPSFix1, kGPSFix2, kGPSFix3, kGPSFix4, kGPSFix5};
+const char kGPSFix[] PROGMEM = D_SAT_FIX_NO_FIX "|" D_SAT_FIX_DEAD_RECK "|" D_SAT_FIX_2D "|" D_SAT_FIX_3D "|" D_SAT_FIX_GPS_DEAD "|" D_SAT_FIX_TIME;
// const char UBX_GOOGLE_MAPS[] ="";
-
#endif // USE_WEBSERVER
/********************************************************************************************/
@@ -888,51 +880,44 @@ void UBXLoop(void)
void UBXShow(bool json)
{
char lat[12];
- char lon[12];
- char alt[12];
- char hAcc[12];
- char vAcc[12];
- #ifdef USE_GPS_VELOCITY
- char spd[12];
- char hdng[12];
- char cAcc[12];
- char sAcc[12];
- #endif
dtostrfd((double)UBX.rec_buffer.values.lat/10000000.0f,7,lat);
+ char lon[12];
dtostrfd((double)UBX.rec_buffer.values.lon/10000000.0f,7,lon);
- dtostrfd((double)UBX.state.last_alt/1000.0f,3,alt);
- dtostrfd((double)UBX.state.last_vAcc/1000.0f,3,hAcc);
- dtostrfd((double)UBX.state.last_hAcc/1000.0f,3,vAcc);
- #ifdef USE_GPS_VELOCITY
- dtostrfd((double)UBX.Message.navVel.gSpeed/27.778f,1,spd);
- dtostrfd((double)UBX.Message.navVel.heading/100000.0f,1,hdng);
- dtostrfd((double)UBX.Message.navVel.cAcc/100000.0f,2,cAcc);
- dtostrfd((double)UBX.Message.navVel.sAcc/100000.0f,2,sAcc);
- #endif
+ float alt = (float)UBX.state.last_alt / 1000.0f;
+ float hAcc = (float)UBX.state.last_vAcc / 1000.0f;
+ float vAcc = (float)UBX.state.last_hAcc / 1000.0f;
+ char fix[32];
+ GetTextIndexed(fix, sizeof(fix), UBX.state.gpsFix, kGPSFix);
+#ifdef USE_GPS_VELOCITY
+ float spd = (float)UBX.Message.navVel.gSpeed / 27.778f;
+ float hdng = (float)UBX.Message.navVel.heading / 100000.0f;
+ float cAcc = (float)UBX.Message.navVel.cAcc / 100000.0f;
+ float sAcc = (float)UBX.Message.navVel.sAcc / 100000.0f;
+#endif
if (json) {
ResponseAppend_P(PSTR(",\"GPS\":{"));
if (UBX.mode.send_UI_only) {
uint32_t i = UBX.state.log_interval / 10;
- ResponseAppend_P(PSTR("\"fil\":%u,\"int\":%u}"), UBX.mode.filter_noise, i);
+ ResponseAppend_P(PSTR("\"Fil\":%u,\"Int\":%u}"), UBX.mode.filter_noise, i);
} else {
- ResponseAppend_P(PSTR("\"lat\":%s,\"lon\":%s,\"alt\":%s,\"hAcc\":%s,\"vAcc\":%s,\"fix\":\"%s\""), lat, lon, alt, hAcc, vAcc, kGPSFix[UBX.state.gpsFix]);
+ ResponseAppend_P(PSTR("\"Lat\":%s,\"Lon\":%s,\"Alt\":%3_f,\"hAcc\":%3_f,\"vAcc\":%3_f,\"Fix\":\"%s\""),
+ lat, lon, &alt, &hAcc, &vAcc, fix);
#ifdef USE_GPS_VELOCITY
- ResponseAppend_P(PSTR(,\"spd\":%s,\"hdng\":%s,\"cAcc\":%s,\"sAcc\":%s"), spd, hdng, cAcc, sAcc);
+ ResponseAppend_P(PSTR(",\"Spd\":%1_f,\"Hdng\":%1_f,\"cAcc\":%2_f,\"sAcc\":%2_f"),
+ &spd, &hdng, &cAcc, &sAcc);
#endif
ResponseAppend_P(PSTR("}"));
}
#ifdef USE_FLOG
- ResponseAppend_P(PSTR(",\"FLOG\":{\"rec\":%u,\"mode\":%u,\"sec\":%u}"), Flog->recording, Flog->mode, Flog->sectors_left);
+ ResponseAppend_P(PSTR(",\"FLOG\":{\"Rec\":%u,\"Mode\":%u,\"Sec\":%u}"), Flog->recording, Flog->mode, Flog->sectors_left);
#endif //USE_FLOG
UBX.mode.send_UI_only = false;
#ifdef USE_WEBSERVER
} else {
+ WSContentSend_PD(HTTP_SNS_GPS, lat, lon, &alt, &hAcc, &vAcc, fix);
#ifdef USE_GPS_VELOCITY
- WSContentSend_PD(HTTP_SNS_GPS, lat, lon, alt, hAcc, vAcc, kGPSFix[UBX.state.gpsFix], spd, hdng, cAcc, sAcc);
-#endif
-#ifndef USE_GPS_VELOCITY
- WSContentSend_PD(HTTP_SNS_GPS, lat, lon, alt, hAcc, vAcc, kGPSFix[UBX.state.gpsFix]);
+ WSContentSend_PD(HTTP_SNS_GPS2, &spd, &hdng, &cAcc, &sAcc);
#endif
//WSContentSend_P(UBX_GOOGLE_MAPS, lat, lon);
#ifdef DEBUG_TASMOTA_SENSOR
From bdfe3524a918e68224a432cf64b4cc56b3a5338c Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 15 Jun 2024 23:11:48 +0200
Subject: [PATCH 066/252] Matter CASE Sigma1 resumption mode for faster
reconnection (#21644)
---
CHANGELOG.md | 1 +
.../src/embedded/Matter_Commissioning.be | 15 +-
.../solidified_Matter_Commissioning.h | 1039 +++++++++--------
3 files changed, 541 insertions(+), 514 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae95810d5..5e1dde61d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@ All notable changes to this project will be documented in this file.
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
+- Matter CASE Sigma1 resumption mode for faster reconnection
### Removed
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
index 024b1bb53..7330292ce 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
@@ -334,9 +334,6 @@ class Matter_Commisioning_Context
# find session
var is_resumption = (sigma1.resumptionID != nil && sigma1.initiatorResumeMIC != nil)
- # log(format("MTR: is_resumption=%i", is_resumption ? 1 : 0), 4)
- # TODO disable resumption until fixed
- is_resumption = false
# Check that it's a resumption
var session_resumption
@@ -344,6 +341,7 @@ class Matter_Commisioning_Context
session_resumption = self.device.sessions.find_session_by_resumption_id(sigma1.resumptionID)
# log(format("MTR: session_resumption found session=%s session_resumption=%s", matter.inspect(session), matter.inspect(session_resumption)), 4)
if session_resumption == nil || session_resumption._fabric == nil
+ log(f"MTR: Sigma1 Resumption FAILED, session not found resumption_id={sigma1.resumptionID}", 3)
is_resumption = false
end
end
@@ -363,6 +361,8 @@ class Matter_Commisioning_Context
var decrypted_tag = ec.tag()
# log("****************************************", 4)
+ # log("MTR: * initiatorRandom = " + sigma1.initiatorRandom.tohex(), 4)
+ # log("MTR: * ResumptionID = " + session_resumption.resumption_id.tohex(), 4)
# log("MTR: * s1rk = " + s1rk.tohex(), 4)
# log("MTR: * tag = " + tag.tohex(), 4)
# log("MTR: * Resume1MICPayload = " + Resume1MICPayload.tohex(), 4)
@@ -392,8 +392,8 @@ class Matter_Commisioning_Context
var sigma2resume = matter.Sigma2Resume()
sigma2resume.resumptionID = session.resumption_id
- sigma2resume.responderSessionID = session.__future_local_session_id
sigma2resume.sigma2ResumeMIC = Resume2MIC
+ sigma2resume.responderSessionID = session.__future_local_session_id
# log("****************************************", 4)
# log("MTR: * s2rk = " + s2rk.tohex(), 4)
@@ -403,8 +403,10 @@ class Matter_Commisioning_Context
# log("MTR: * sigma2ResumeMIC = " + Resume2MIC.tohex(), 4)
# log("****************************************", 4)
# # compute session key, p.178
+ var salt_sessions = sigma1.initiatorRandom + session_resumption.resumption_id
+ # log("MTR: * salt_session = " + salt_sessions.tohex(), 4)
var session_keys = crypto.HKDF_SHA256().derive(session.shared_secret #- input key -#,
- sigma1.initiatorRandom + session.resumption_id #- salt -#,
+ salt_sessions #- salt -#,
bytes().fromstring("SessionResumptionKeys") #- info -#,
48)
var i2r = session_keys[0..15]
@@ -431,6 +433,7 @@ class Matter_Commisioning_Context
session.close()
session.set_keys(i2r, r2i, ac, created)
+ session.peer_node_id = session_resumption.peer_node_id # copy peer_node_id from session
# CASE Session completed, persist it
session._breadcrumb = 0 # clear breadcrumb
@@ -440,8 +443,10 @@ class Matter_Commisioning_Context
session.persist_to_fabric()
session.save()
+ log("MTR: Sigma1 Resumption SUCCEEDED", 3)
return true
else
+ log("MTR: Sigma1 Resumption FAILED, switching to CASE", 3)
is_resumption = false
# fall through normal sigma1 (non-resumption)
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
index 2582429b2..24421debc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
@@ -1366,7 +1366,7 @@ be_local_closure(class_Matter_Commisioning_Context_process_incoming, /* name *
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
be_nested_proto(
- 36, /* nstack */
+ 37, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1374,7 +1374,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[103]) { /* constants */
+ ( &(const bvalue[107]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(session),
/* K2 */ be_nested_str_weak(opcode),
@@ -1400,88 +1400,92 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
/* K22 */ be_nested_str_weak(sessions),
/* K23 */ be_nested_str_weak(find_session_by_resumption_id),
/* K24 */ be_nested_str_weak(_fabric),
- /* K25 */ be_nested_str_weak(initiatorRandom),
- /* K26 */ be_nested_str_weak(fromstring),
- /* K27 */ be_nested_str_weak(Sigma1_Resume),
- /* K28 */ be_nested_str_weak(HKDF_SHA256),
- /* K29 */ be_nested_str_weak(derive),
- /* K30 */ be_nested_str_weak(shared_secret),
- /* K31 */ be_nested_str_weak(NCASE_SigmaS1),
- /* K32 */ be_const_int(2147483647),
- /* K33 */ be_nested_str_weak(AES_CCM),
- /* K34 */ be_nested_str_weak(decrypt),
- /* K35 */ be_nested_str_weak(tag),
- /* K36 */ be_nested_str_weak(_source_node_id),
- /* K37 */ be_nested_str_weak(source_node_id),
- /* K38 */ be_nested_str_weak(set_mode_CASE),
- /* K39 */ be_nested_str_weak(__future_initiator_session_id),
- /* K40 */ be_nested_str_weak(initiator_session_id),
- /* K41 */ be_nested_str_weak(__future_local_session_id),
- /* K42 */ be_nested_str_weak(gen_local_session_id),
- /* K43 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
- /* K44 */ be_nested_str_weak(remote_ip),
- /* K45 */ be_nested_str_weak(remote_port),
- /* K46 */ be_nested_str_weak(resumption_id),
- /* K47 */ be_nested_str_weak(random),
- /* K48 */ be_nested_str_weak(Sigma2_Resume),
- /* K49 */ be_nested_str_weak(NCASE_SigmaS2),
- /* K50 */ be_nested_str_weak(Sigma2Resume),
- /* K51 */ be_nested_str_weak(responderSessionID),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20FAILED_X2C_X20session_X20not_X20found_X20resumption_id_X3D_X25s),
+ /* K26 */ be_nested_str_weak(initiatorRandom),
+ /* K27 */ be_nested_str_weak(fromstring),
+ /* K28 */ be_nested_str_weak(Sigma1_Resume),
+ /* K29 */ be_nested_str_weak(HKDF_SHA256),
+ /* K30 */ be_nested_str_weak(derive),
+ /* K31 */ be_nested_str_weak(shared_secret),
+ /* K32 */ be_nested_str_weak(NCASE_SigmaS1),
+ /* K33 */ be_const_int(2147483647),
+ /* K34 */ be_nested_str_weak(AES_CCM),
+ /* K35 */ be_nested_str_weak(decrypt),
+ /* K36 */ be_nested_str_weak(tag),
+ /* K37 */ be_nested_str_weak(_source_node_id),
+ /* K38 */ be_nested_str_weak(source_node_id),
+ /* K39 */ be_nested_str_weak(set_mode_CASE),
+ /* K40 */ be_nested_str_weak(__future_initiator_session_id),
+ /* K41 */ be_nested_str_weak(initiator_session_id),
+ /* K42 */ be_nested_str_weak(__future_local_session_id),
+ /* K43 */ be_nested_str_weak(gen_local_session_id),
+ /* K44 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
+ /* K45 */ be_nested_str_weak(remote_ip),
+ /* K46 */ be_nested_str_weak(remote_port),
+ /* K47 */ be_nested_str_weak(resumption_id),
+ /* K48 */ be_nested_str_weak(random),
+ /* K49 */ be_nested_str_weak(Sigma2_Resume),
+ /* K50 */ be_nested_str_weak(NCASE_SigmaS2),
+ /* K51 */ be_nested_str_weak(Sigma2Resume),
/* K52 */ be_nested_str_weak(sigma2ResumeMIC),
- /* K53 */ be_nested_str_weak(SessionResumptionKeys),
- /* K54 */ be_nested_str_weak(tasmota),
- /* K55 */ be_nested_str_weak(rtc_utc),
- /* K56 */ be_nested_str_weak(tlv2raw),
- /* K57 */ be_nested_str_weak(__Msg1),
- /* K58 */ be_nested_str_weak(build_response),
- /* K59 */ be_nested_str_weak(encode_frame),
- /* K60 */ be_nested_str_weak(responder),
- /* K61 */ be_nested_str_weak(send_response_frame),
- /* K62 */ be_nested_str_weak(close),
- /* K63 */ be_nested_str_weak(set_keys),
- /* K64 */ be_nested_str_weak(_breadcrumb),
- /* K65 */ be_nested_str_weak(counter_snd_next),
- /* K66 */ be_nested_str_weak(set_persist),
- /* K67 */ be_nested_str_weak(set_no_expiration),
- /* K68 */ be_nested_str_weak(persist_to_fabric),
- /* K69 */ be_nested_str_weak(save),
- /* K70 */ be_nested_str_weak(find_fabric_by_destination_id),
- /* K71 */ be_nested_str_weak(destinationId),
- /* K72 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28GeneralCode_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20NO_SHARED_TRUST_ROOTS_X29),
- /* K73 */ be_nested_str_weak(__responder_priv),
- /* K74 */ be_nested_str_weak(__responder_pub),
- /* K75 */ be_nested_str_weak(EC_P256),
- /* K76 */ be_nested_str_weak(public_key),
- /* K77 */ be_nested_str_weak(shared_key),
- /* K78 */ be_nested_str_weak(TLV),
- /* K79 */ be_nested_str_weak(Matter_TLV_struct),
- /* K80 */ be_nested_str_weak(add_TLV),
- /* K81 */ be_nested_str_weak(B2),
- /* K82 */ be_nested_str_weak(get_noc),
- /* K83 */ be_nested_str_weak(get_icac),
- /* K84 */ be_nested_str_weak(ecdsa_sign_sha256),
- /* K85 */ be_nested_str_weak(get_pk),
- /* K86 */ be_nested_str_weak(Msg1),
- /* K87 */ be_nested_str_weak(SHA256),
- /* K88 */ be_nested_str_weak(update),
- /* K89 */ be_nested_str_weak(out),
- /* K90 */ be_nested_str_weak(S2K_Info),
- /* K91 */ be_nested_str_weak(get_ipk_group_key),
- /* K92 */ be_nested_str_weak(TBEData2_Nonce),
- /* K93 */ be_nested_str_weak(encrypt),
- /* K94 */ be_nested_str_weak(Sigma2),
- /* K95 */ be_nested_str_weak(responderRandom),
- /* K96 */ be_nested_str_weak(responderSessionId),
- /* K97 */ be_nested_str_weak(responderEphPubKey),
- /* K98 */ be_nested_str_weak(encrypted2),
- /* K99 */ be_nested_str_weak(__Msg2),
- /* K100 */ be_nested_str_weak(MTR_X3A_X20New_X20Connection_X20_X28CASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K101 */ be_nested_str_weak(_ip),
- /* K102 */ be_nested_str_weak(_port),
+ /* K53 */ be_nested_str_weak(responderSessionID),
+ /* K54 */ be_nested_str_weak(SessionResumptionKeys),
+ /* K55 */ be_nested_str_weak(tasmota),
+ /* K56 */ be_nested_str_weak(rtc_utc),
+ /* K57 */ be_nested_str_weak(tlv2raw),
+ /* K58 */ be_nested_str_weak(__Msg1),
+ /* K59 */ be_nested_str_weak(build_response),
+ /* K60 */ be_nested_str_weak(encode_frame),
+ /* K61 */ be_nested_str_weak(responder),
+ /* K62 */ be_nested_str_weak(send_response_frame),
+ /* K63 */ be_nested_str_weak(close),
+ /* K64 */ be_nested_str_weak(set_keys),
+ /* K65 */ be_nested_str_weak(peer_node_id),
+ /* K66 */ be_nested_str_weak(_breadcrumb),
+ /* K67 */ be_nested_str_weak(counter_snd_next),
+ /* K68 */ be_nested_str_weak(set_persist),
+ /* K69 */ be_nested_str_weak(set_no_expiration),
+ /* K70 */ be_nested_str_weak(persist_to_fabric),
+ /* K71 */ be_nested_str_weak(save),
+ /* K72 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20SUCCEEDED),
+ /* K73 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20FAILED_X2C_X20switching_X20to_X20CASE),
+ /* K74 */ be_nested_str_weak(find_fabric_by_destination_id),
+ /* K75 */ be_nested_str_weak(destinationId),
+ /* K76 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28GeneralCode_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20NO_SHARED_TRUST_ROOTS_X29),
+ /* K77 */ be_nested_str_weak(__responder_priv),
+ /* K78 */ be_nested_str_weak(__responder_pub),
+ /* K79 */ be_nested_str_weak(EC_P256),
+ /* K80 */ be_nested_str_weak(public_key),
+ /* K81 */ be_nested_str_weak(shared_key),
+ /* K82 */ be_nested_str_weak(TLV),
+ /* K83 */ be_nested_str_weak(Matter_TLV_struct),
+ /* K84 */ be_nested_str_weak(add_TLV),
+ /* K85 */ be_nested_str_weak(B2),
+ /* K86 */ be_nested_str_weak(get_noc),
+ /* K87 */ be_nested_str_weak(get_icac),
+ /* K88 */ be_nested_str_weak(ecdsa_sign_sha256),
+ /* K89 */ be_nested_str_weak(get_pk),
+ /* K90 */ be_nested_str_weak(Msg1),
+ /* K91 */ be_nested_str_weak(SHA256),
+ /* K92 */ be_nested_str_weak(update),
+ /* K93 */ be_nested_str_weak(out),
+ /* K94 */ be_nested_str_weak(S2K_Info),
+ /* K95 */ be_nested_str_weak(get_ipk_group_key),
+ /* K96 */ be_nested_str_weak(TBEData2_Nonce),
+ /* K97 */ be_nested_str_weak(encrypt),
+ /* K98 */ be_nested_str_weak(Sigma2),
+ /* K99 */ be_nested_str_weak(responderRandom),
+ /* K100 */ be_nested_str_weak(responderSessionId),
+ /* K101 */ be_nested_str_weak(responderEphPubKey),
+ /* K102 */ be_nested_str_weak(encrypted2),
+ /* K103 */ be_nested_str_weak(__Msg2),
+ /* K104 */ be_nested_str_weak(MTR_X3A_X20New_X20Connection_X20_X28CASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K105 */ be_nested_str_weak(_ip),
+ /* K106 */ be_nested_str_weak(_port),
}),
be_str_weak(parse_Sigma1),
&be_const_str_solidified,
- ( &(const binstruction[476]) { /* code */
+ ( &(const binstruction[493]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -1526,438 +1530,455 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
0x74160000, // 0029 JMPT R5 #002B
0x50140001, // 002A LDBOOL R5 0 1
0x50140200, // 002B LDBOOL R5 1 0
- 0x50140000, // 002C LDBOOL R5 0 0
- 0x4C180000, // 002D LDNIL R6
- 0x7816000D, // 002E JMPF R5 #003D
- 0x881C0115, // 002F GETMBR R7 R0 K21
- 0x881C0F16, // 0030 GETMBR R7 R7 K22
- 0x8C1C0F17, // 0031 GETMET R7 R7 K23
- 0x88240913, // 0032 GETMBR R9 R4 K19
- 0x7C1C0400, // 0033 CALL R7 2
- 0x5C180E00, // 0034 MOVE R6 R7
- 0x4C1C0000, // 0035 LDNIL R7
- 0x1C1C0C07, // 0036 EQ R7 R6 R7
- 0x741E0003, // 0037 JMPT R7 #003C
- 0x881C0D18, // 0038 GETMBR R7 R6 K24
- 0x4C200000, // 0039 LDNIL R8
- 0x1C1C0E08, // 003A EQ R7 R7 R8
- 0x781E0000, // 003B JMPF R7 #003D
- 0x50140000, // 003C LDBOOL R5 0 0
- 0x781600B4, // 003D JMPF R5 #00F3
- 0x881C0919, // 003E GETMBR R7 R4 K25
- 0x88200913, // 003F GETMBR R8 R4 K19
- 0x001C0E08, // 0040 ADD R7 R7 R8
- 0x60200015, // 0041 GETGBL R8 G21
- 0x7C200000, // 0042 CALL R8 0
- 0x8C20111A, // 0043 GETMET R8 R8 K26
- 0x5828001B, // 0044 LDCONST R10 K27
- 0x7C200400, // 0045 CALL R8 2
- 0x8C24051C, // 0046 GETMET R9 R2 K28
- 0x7C240200, // 0047 CALL R9 1
- 0x8C24131D, // 0048 GETMET R9 R9 K29
- 0x882C0D1E, // 0049 GETMBR R11 R6 K30
- 0x5C300E00, // 004A MOVE R12 R7
- 0x5C341000, // 004B MOVE R13 R8
- 0x543A000F, // 004C LDINT R14 16
- 0x7C240A00, // 004D CALL R9 5
- 0x60280015, // 004E GETGBL R10 G21
- 0x7C280000, // 004F CALL R10 0
- 0x8C28151A, // 0050 GETMET R10 R10 K26
- 0x5830001F, // 0051 LDCONST R12 K31
- 0x7C280400, // 0052 CALL R10 2
- 0x542DFFEE, // 0053 LDINT R11 -17
- 0x402E080B, // 0054 CONNECT R11 K4 R11
- 0x88300914, // 0055 GETMBR R12 R4 K20
- 0x942C180B, // 0056 GETIDX R11 R12 R11
- 0x5435FFEF, // 0057 LDINT R13 -16
- 0x40341B20, // 0058 CONNECT R13 R13 K32
- 0x88380914, // 0059 GETMBR R14 R4 K20
- 0x94301C0D, // 005A GETIDX R12 R14 R13
- 0x8C3C0521, // 005B GETMET R15 R2 K33
- 0x5C441200, // 005C MOVE R17 R9
- 0x5C481400, // 005D MOVE R18 R10
- 0x604C0015, // 005E GETGBL R19 G21
- 0x7C4C0000, // 005F CALL R19 0
- 0x6050000C, // 0060 GETGBL R20 G12
- 0x5C541600, // 0061 MOVE R21 R11
- 0x7C500200, // 0062 CALL R20 1
- 0x5456000F, // 0063 LDINT R21 16
- 0x7C3C0C00, // 0064 CALL R15 6
- 0x5C341E00, // 0065 MOVE R13 R15
- 0x8C3C1B22, // 0066 GETMET R15 R13 K34
- 0x5C441600, // 0067 MOVE R17 R11
- 0x7C3C0400, // 0068 CALL R15 2
- 0x5C381E00, // 0069 MOVE R14 R15
- 0x8C3C1B23, // 006A GETMET R15 R13 K35
- 0x7C3C0200, // 006B CALL R15 1
- 0x1C40180F, // 006C EQ R16 R12 R15
- 0x78420083, // 006D JMPF R16 #00F2
- 0x88400D18, // 006E GETMBR R16 R6 K24
- 0x900E3010, // 006F SETMBR R3 K24 R16
- 0x88400325, // 0070 GETMBR R16 R1 K37
- 0x900E4810, // 0071 SETMBR R3 K36 R16
- 0x8C400726, // 0072 GETMET R16 R3 K38
- 0x7C400200, // 0073 CALL R16 1
- 0x88400928, // 0074 GETMBR R16 R4 K40
- 0x900E4E10, // 0075 SETMBR R3 K39 R16
- 0x88400115, // 0076 GETMBR R16 R0 K21
- 0x88402116, // 0077 GETMBR R16 R16 K22
- 0x8C40212A, // 0078 GETMET R16 R16 K42
+ 0x4C180000, // 002C LDNIL R6
+ 0x78160014, // 002D JMPF R5 #0043
+ 0x881C0115, // 002E GETMBR R7 R0 K21
+ 0x881C0F16, // 002F GETMBR R7 R7 K22
+ 0x8C1C0F17, // 0030 GETMET R7 R7 K23
+ 0x88240913, // 0031 GETMBR R9 R4 K19
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x5C180E00, // 0033 MOVE R6 R7
+ 0x4C1C0000, // 0034 LDNIL R7
+ 0x1C1C0C07, // 0035 EQ R7 R6 R7
+ 0x741E0003, // 0036 JMPT R7 #003B
+ 0x881C0D18, // 0037 GETMBR R7 R6 K24
+ 0x4C200000, // 0038 LDNIL R8
+ 0x1C1C0E08, // 0039 EQ R7 R7 R8
+ 0x781E0007, // 003A JMPF R7 #0043
+ 0xB81E0C00, // 003B GETNGBL R7 K6
+ 0x60200018, // 003C GETGBL R8 G24
+ 0x58240019, // 003D LDCONST R9 K25
+ 0x88280913, // 003E GETMBR R10 R4 K19
+ 0x7C200400, // 003F CALL R8 2
+ 0x58240008, // 0040 LDCONST R9 K8
+ 0x7C1C0400, // 0041 CALL R7 2
+ 0x50140000, // 0042 LDBOOL R5 0 0
+ 0x781600BF, // 0043 JMPF R5 #0104
+ 0x881C091A, // 0044 GETMBR R7 R4 K26
+ 0x88200913, // 0045 GETMBR R8 R4 K19
+ 0x001C0E08, // 0046 ADD R7 R7 R8
+ 0x60200015, // 0047 GETGBL R8 G21
+ 0x7C200000, // 0048 CALL R8 0
+ 0x8C20111B, // 0049 GETMET R8 R8 K27
+ 0x5828001C, // 004A LDCONST R10 K28
+ 0x7C200400, // 004B CALL R8 2
+ 0x8C24051D, // 004C GETMET R9 R2 K29
+ 0x7C240200, // 004D CALL R9 1
+ 0x8C24131E, // 004E GETMET R9 R9 K30
+ 0x882C0D1F, // 004F GETMBR R11 R6 K31
+ 0x5C300E00, // 0050 MOVE R12 R7
+ 0x5C341000, // 0051 MOVE R13 R8
+ 0x543A000F, // 0052 LDINT R14 16
+ 0x7C240A00, // 0053 CALL R9 5
+ 0x60280015, // 0054 GETGBL R10 G21
+ 0x7C280000, // 0055 CALL R10 0
+ 0x8C28151B, // 0056 GETMET R10 R10 K27
+ 0x58300020, // 0057 LDCONST R12 K32
+ 0x7C280400, // 0058 CALL R10 2
+ 0x542DFFEE, // 0059 LDINT R11 -17
+ 0x402E080B, // 005A CONNECT R11 K4 R11
+ 0x88300914, // 005B GETMBR R12 R4 K20
+ 0x942C180B, // 005C GETIDX R11 R12 R11
+ 0x5435FFEF, // 005D LDINT R13 -16
+ 0x40341B21, // 005E CONNECT R13 R13 K33
+ 0x88380914, // 005F GETMBR R14 R4 K20
+ 0x94301C0D, // 0060 GETIDX R12 R14 R13
+ 0x8C3C0522, // 0061 GETMET R15 R2 K34
+ 0x5C441200, // 0062 MOVE R17 R9
+ 0x5C481400, // 0063 MOVE R18 R10
+ 0x604C0015, // 0064 GETGBL R19 G21
+ 0x7C4C0000, // 0065 CALL R19 0
+ 0x6050000C, // 0066 GETGBL R20 G12
+ 0x5C541600, // 0067 MOVE R21 R11
+ 0x7C500200, // 0068 CALL R20 1
+ 0x5456000F, // 0069 LDINT R21 16
+ 0x7C3C0C00, // 006A CALL R15 6
+ 0x5C341E00, // 006B MOVE R13 R15
+ 0x8C3C1B23, // 006C GETMET R15 R13 K35
+ 0x5C441600, // 006D MOVE R17 R11
+ 0x7C3C0400, // 006E CALL R15 2
+ 0x5C381E00, // 006F MOVE R14 R15
+ 0x8C3C1B24, // 0070 GETMET R15 R13 K36
+ 0x7C3C0200, // 0071 CALL R15 1
+ 0x1C40180F, // 0072 EQ R16 R12 R15
+ 0x7842008A, // 0073 JMPF R16 #00FF
+ 0x88400D18, // 0074 GETMBR R16 R6 K24
+ 0x900E3010, // 0075 SETMBR R3 K24 R16
+ 0x88400326, // 0076 GETMBR R16 R1 K38
+ 0x900E4A10, // 0077 SETMBR R3 K37 R16
+ 0x8C400727, // 0078 GETMET R16 R3 K39
0x7C400200, // 0079 CALL R16 1
- 0x900E5210, // 007A SETMBR R3 K41 R16
- 0xB8420C00, // 007B GETNGBL R16 K6
- 0x60440018, // 007C GETGBL R17 G24
- 0x5848002B, // 007D LDCONST R18 K43
- 0x884C0729, // 007E GETMBR R19 R3 K41
- 0x8850032C, // 007F GETMBR R20 R1 K44
- 0x8854032D, // 0080 GETMBR R21 R1 K45
- 0x7C440800, // 0081 CALL R17 4
- 0x58480008, // 0082 LDCONST R18 K8
- 0x7C400400, // 0083 CALL R16 2
- 0x88400D1E, // 0084 GETMBR R16 R6 K30
- 0x900E3C10, // 0085 SETMBR R3 K30 R16
- 0x8C40052F, // 0086 GETMET R16 R2 K47
- 0x544A000F, // 0087 LDINT R18 16
- 0x7C400400, // 0088 CALL R16 2
- 0x900E5C10, // 0089 SETMBR R3 K46 R16
- 0x60400015, // 008A GETGBL R16 G21
- 0x7C400000, // 008B CALL R16 0
- 0x8C40211A, // 008C GETMET R16 R16 K26
- 0x58480030, // 008D LDCONST R18 K48
+ 0x88400929, // 007A GETMBR R16 R4 K41
+ 0x900E5010, // 007B SETMBR R3 K40 R16
+ 0x88400115, // 007C GETMBR R16 R0 K21
+ 0x88402116, // 007D GETMBR R16 R16 K22
+ 0x8C40212B, // 007E GETMET R16 R16 K43
+ 0x7C400200, // 007F CALL R16 1
+ 0x900E5410, // 0080 SETMBR R3 K42 R16
+ 0xB8420C00, // 0081 GETNGBL R16 K6
+ 0x60440018, // 0082 GETGBL R17 G24
+ 0x5848002C, // 0083 LDCONST R18 K44
+ 0x884C072A, // 0084 GETMBR R19 R3 K42
+ 0x8850032D, // 0085 GETMBR R20 R1 K45
+ 0x8854032E, // 0086 GETMBR R21 R1 K46
+ 0x7C440800, // 0087 CALL R17 4
+ 0x58480008, // 0088 LDCONST R18 K8
+ 0x7C400400, // 0089 CALL R16 2
+ 0x88400D1F, // 008A GETMBR R16 R6 K31
+ 0x900E3E10, // 008B SETMBR R3 K31 R16
+ 0x8C400530, // 008C GETMET R16 R2 K48
+ 0x544A000F, // 008D LDINT R18 16
0x7C400400, // 008E CALL R16 2
- 0x88440919, // 008F GETMBR R17 R4 K25
- 0x8848072E, // 0090 GETMBR R18 R3 K46
- 0x00442212, // 0091 ADD R17 R17 R18
- 0x8C48051C, // 0092 GETMET R18 R2 K28
- 0x7C480200, // 0093 CALL R18 1
- 0x8C48251D, // 0094 GETMET R18 R18 K29
- 0x8850071E, // 0095 GETMBR R20 R3 K30
- 0x5C542200, // 0096 MOVE R21 R17
- 0x5C582000, // 0097 MOVE R22 R16
- 0x545E000F, // 0098 LDINT R23 16
- 0x7C480A00, // 0099 CALL R18 5
- 0x8C4C0521, // 009A GETMET R19 R2 K33
- 0x5C542400, // 009B MOVE R21 R18
- 0x60580015, // 009C GETGBL R22 G21
- 0x7C580000, // 009D CALL R22 0
- 0x8C582D1A, // 009E GETMET R22 R22 K26
- 0x58600031, // 009F LDCONST R24 K49
- 0x7C580400, // 00A0 CALL R22 2
- 0x605C0015, // 00A1 GETGBL R23 G21
- 0x7C5C0000, // 00A2 CALL R23 0
- 0x58600004, // 00A3 LDCONST R24 K4
- 0x5466000F, // 00A4 LDINT R25 16
- 0x7C4C0C00, // 00A5 CALL R19 6
- 0x8C502723, // 00A6 GETMET R20 R19 K35
- 0x7C500200, // 00A7 CALL R20 1
- 0xB8561800, // 00A8 GETNGBL R21 K12
- 0x8C542B32, // 00A9 GETMET R21 R21 K50
- 0x7C540200, // 00AA CALL R21 1
- 0x8858072E, // 00AB GETMBR R22 R3 K46
- 0x90562616, // 00AC SETMBR R21 K19 R22
- 0x88580729, // 00AD GETMBR R22 R3 K41
- 0x90566616, // 00AE SETMBR R21 K51 R22
- 0x90566814, // 00AF SETMBR R21 K52 R20
- 0x8C58051C, // 00B0 GETMET R22 R2 K28
- 0x7C580200, // 00B1 CALL R22 1
- 0x8C582D1D, // 00B2 GETMET R22 R22 K29
- 0x8860071E, // 00B3 GETMBR R24 R3 K30
- 0x88640919, // 00B4 GETMBR R25 R4 K25
- 0x8868072E, // 00B5 GETMBR R26 R3 K46
- 0x0064321A, // 00B6 ADD R25 R25 R26
- 0x60680015, // 00B7 GETGBL R26 G21
- 0x7C680000, // 00B8 CALL R26 0
- 0x8C68351A, // 00B9 GETMET R26 R26 K26
- 0x58700035, // 00BA LDCONST R28 K53
- 0x7C680400, // 00BB CALL R26 2
- 0x546E002F, // 00BC LDINT R27 48
- 0x7C580A00, // 00BD CALL R22 5
- 0x545E000E, // 00BE LDINT R23 15
- 0x405E0817, // 00BF CONNECT R23 K4 R23
- 0x945C2C17, // 00C0 GETIDX R23 R22 R23
- 0x5462000F, // 00C1 LDINT R24 16
- 0x5466001E, // 00C2 LDINT R25 31
- 0x40603019, // 00C3 CONNECT R24 R24 R25
- 0x94602C18, // 00C4 GETIDX R24 R22 R24
- 0x5466001F, // 00C5 LDINT R25 32
- 0x546A002E, // 00C6 LDINT R26 47
- 0x4064321A, // 00C7 CONNECT R25 R25 R26
- 0x94642C19, // 00C8 GETIDX R25 R22 R25
- 0xB86A6C00, // 00C9 GETNGBL R26 K54
- 0x8C683537, // 00CA GETMET R26 R26 K55
- 0x7C680200, // 00CB CALL R26 1
- 0x8C6C2B38, // 00CC GETMET R27 R21 K56
- 0x7C6C0200, // 00CD CALL R27 1
- 0x4C700000, // 00CE LDNIL R28
- 0x900E721C, // 00CF SETMBR R3 K57 R28
- 0x8C70033A, // 00D0 GETMET R28 R1 K58
- 0x547A0032, // 00D1 LDINT R30 51
- 0x507C0200, // 00D2 LDBOOL R31 1 0
- 0x7C700600, // 00D3 CALL R28 3
- 0x8C74393B, // 00D4 GETMET R29 R28 K59
- 0x5C7C3600, // 00D5 MOVE R31 R27
- 0x7C740400, // 00D6 CALL R29 2
- 0x8878013C, // 00D7 GETMBR R30 R0 K60
- 0x8C783D3D, // 00D8 GETMET R30 R30 K61
- 0x5C803800, // 00D9 MOVE R32 R28
- 0x7C780400, // 00DA CALL R30 2
- 0x8C78073E, // 00DB GETMET R30 R3 K62
- 0x7C780200, // 00DC CALL R30 1
- 0x8C78073F, // 00DD GETMET R30 R3 K63
- 0x5C802E00, // 00DE MOVE R32 R23
- 0x5C843000, // 00DF MOVE R33 R24
- 0x5C883200, // 00E0 MOVE R34 R25
- 0x5C8C3400, // 00E1 MOVE R35 R26
- 0x7C780A00, // 00E2 CALL R30 5
- 0x900E8104, // 00E3 SETMBR R3 K64 K4
- 0x8C780741, // 00E4 GETMET R30 R3 K65
- 0x7C780200, // 00E5 CALL R30 1
- 0x8C780742, // 00E6 GETMET R30 R3 K66
- 0x50800200, // 00E7 LDBOOL R32 1 0
- 0x7C780400, // 00E8 CALL R30 2
- 0x8C780743, // 00E9 GETMET R30 R3 K67
- 0x7C780200, // 00EA CALL R30 1
- 0x8C780744, // 00EB GETMET R30 R3 K68
- 0x7C780200, // 00EC CALL R30 1
- 0x8C780745, // 00ED GETMET R30 R3 K69
- 0x7C780200, // 00EE CALL R30 1
- 0x50780200, // 00EF LDBOOL R30 1 0
- 0x80043C00, // 00F0 RET 1 R30
- 0x70020000, // 00F1 JMP #00F3
- 0x50140000, // 00F2 LDBOOL R5 0 0
- 0x5C1C0A00, // 00F3 MOVE R7 R5
- 0x741E00E4, // 00F4 JMPT R7 #01DA
- 0x8C1C0146, // 00F5 GETMET R7 R0 K70
- 0x88240947, // 00F6 GETMBR R9 R4 K71
- 0x88280919, // 00F7 GETMBR R10 R4 K25
- 0x7C1C0600, // 00F8 CALL R7 3
- 0x900E3007, // 00F9 SETMBR R3 K24 R7
- 0x4C200000, // 00FA LDNIL R8
- 0x1C200608, // 00FB EQ R8 R3 R8
- 0x74220003, // 00FC JMPT R8 #0101
- 0x88200718, // 00FD GETMBR R8 R3 K24
- 0x4C240000, // 00FE LDNIL R9
- 0x1C201009, // 00FF EQ R8 R8 R9
- 0x7822000C, // 0100 JMPF R8 #010E
- 0xB8220C00, // 0101 GETNGBL R8 K6
- 0x58240048, // 0102 LDCONST R9 K72
- 0x58280008, // 0103 LDCONST R10 K8
- 0x7C200400, // 0104 CALL R8 2
- 0x8C200109, // 0105 GETMET R8 R0 K9
- 0x5C280200, // 0106 MOVE R10 R1
- 0x582C000A, // 0107 LDCONST R11 K10
- 0x58300004, // 0108 LDCONST R12 K4
- 0x5834000A, // 0109 LDCONST R13 K10
- 0x50380000, // 010A LDBOOL R14 0 0
- 0x7C200C00, // 010B CALL R8 6
- 0x50200000, // 010C LDBOOL R8 0 0
- 0x80041000, // 010D RET 1 R8
- 0x88200325, // 010E GETMBR R8 R1 K37
- 0x900E4808, // 010F SETMBR R3 K36 R8
- 0x8C200726, // 0110 GETMET R8 R3 K38
- 0x7C200200, // 0111 CALL R8 1
- 0x88200928, // 0112 GETMBR R8 R4 K40
- 0x900E4E08, // 0113 SETMBR R3 K39 R8
- 0x88200115, // 0114 GETMBR R8 R0 K21
- 0x88201116, // 0115 GETMBR R8 R8 K22
- 0x8C20112A, // 0116 GETMET R8 R8 K42
- 0x7C200200, // 0117 CALL R8 1
- 0x900E5208, // 0118 SETMBR R3 K41 R8
- 0xB8220C00, // 0119 GETNGBL R8 K6
- 0x60240018, // 011A GETGBL R9 G24
- 0x5828002B, // 011B LDCONST R10 K43
- 0x882C0729, // 011C GETMBR R11 R3 K41
- 0x8830032C, // 011D GETMBR R12 R1 K44
- 0x8834032D, // 011E GETMBR R13 R1 K45
- 0x7C240800, // 011F CALL R9 4
- 0x58280008, // 0120 LDCONST R10 K8
- 0x7C200400, // 0121 CALL R8 2
- 0x8C20052F, // 0122 GETMET R8 R2 K47
- 0x542A000F, // 0123 LDINT R10 16
- 0x7C200400, // 0124 CALL R8 2
- 0x900E5C08, // 0125 SETMBR R3 K46 R8
- 0x8C20052F, // 0126 GETMET R8 R2 K47
- 0x542A001F, // 0127 LDINT R10 32
- 0x7C200400, // 0128 CALL R8 2
- 0x900E9208, // 0129 SETMBR R3 K73 R8
- 0x8C20054B, // 012A GETMET R8 R2 K75
- 0x7C200200, // 012B CALL R8 1
- 0x8C20114C, // 012C GETMET R8 R8 K76
- 0x88280749, // 012D GETMBR R10 R3 K73
- 0x7C200400, // 012E CALL R8 2
- 0x900E9408, // 012F SETMBR R3 K74 R8
- 0x8C20052F, // 0130 GETMET R8 R2 K47
- 0x542A001F, // 0131 LDINT R10 32
+ 0x900E5E10, // 008F SETMBR R3 K47 R16
+ 0x60400015, // 0090 GETGBL R16 G21
+ 0x7C400000, // 0091 CALL R16 0
+ 0x8C40211B, // 0092 GETMET R16 R16 K27
+ 0x58480031, // 0093 LDCONST R18 K49
+ 0x7C400400, // 0094 CALL R16 2
+ 0x8844091A, // 0095 GETMBR R17 R4 K26
+ 0x8848072F, // 0096 GETMBR R18 R3 K47
+ 0x00442212, // 0097 ADD R17 R17 R18
+ 0x8C48051D, // 0098 GETMET R18 R2 K29
+ 0x7C480200, // 0099 CALL R18 1
+ 0x8C48251E, // 009A GETMET R18 R18 K30
+ 0x8850071F, // 009B GETMBR R20 R3 K31
+ 0x5C542200, // 009C MOVE R21 R17
+ 0x5C582000, // 009D MOVE R22 R16
+ 0x545E000F, // 009E LDINT R23 16
+ 0x7C480A00, // 009F CALL R18 5
+ 0x8C4C0522, // 00A0 GETMET R19 R2 K34
+ 0x5C542400, // 00A1 MOVE R21 R18
+ 0x60580015, // 00A2 GETGBL R22 G21
+ 0x7C580000, // 00A3 CALL R22 0
+ 0x8C582D1B, // 00A4 GETMET R22 R22 K27
+ 0x58600032, // 00A5 LDCONST R24 K50
+ 0x7C580400, // 00A6 CALL R22 2
+ 0x605C0015, // 00A7 GETGBL R23 G21
+ 0x7C5C0000, // 00A8 CALL R23 0
+ 0x58600004, // 00A9 LDCONST R24 K4
+ 0x5466000F, // 00AA LDINT R25 16
+ 0x7C4C0C00, // 00AB CALL R19 6
+ 0x8C502724, // 00AC GETMET R20 R19 K36
+ 0x7C500200, // 00AD CALL R20 1
+ 0xB8561800, // 00AE GETNGBL R21 K12
+ 0x8C542B33, // 00AF GETMET R21 R21 K51
+ 0x7C540200, // 00B0 CALL R21 1
+ 0x8858072F, // 00B1 GETMBR R22 R3 K47
+ 0x90562616, // 00B2 SETMBR R21 K19 R22
+ 0x90566814, // 00B3 SETMBR R21 K52 R20
+ 0x8858072A, // 00B4 GETMBR R22 R3 K42
+ 0x90566A16, // 00B5 SETMBR R21 K53 R22
+ 0x8858091A, // 00B6 GETMBR R22 R4 K26
+ 0x885C0D2F, // 00B7 GETMBR R23 R6 K47
+ 0x00582C17, // 00B8 ADD R22 R22 R23
+ 0x8C5C051D, // 00B9 GETMET R23 R2 K29
+ 0x7C5C0200, // 00BA CALL R23 1
+ 0x8C5C2F1E, // 00BB GETMET R23 R23 K30
+ 0x8864071F, // 00BC GETMBR R25 R3 K31
+ 0x5C682C00, // 00BD MOVE R26 R22
+ 0x606C0015, // 00BE GETGBL R27 G21
+ 0x7C6C0000, // 00BF CALL R27 0
+ 0x8C6C371B, // 00C0 GETMET R27 R27 K27
+ 0x58740036, // 00C1 LDCONST R29 K54
+ 0x7C6C0400, // 00C2 CALL R27 2
+ 0x5472002F, // 00C3 LDINT R28 48
+ 0x7C5C0A00, // 00C4 CALL R23 5
+ 0x5462000E, // 00C5 LDINT R24 15
+ 0x40620818, // 00C6 CONNECT R24 K4 R24
+ 0x94602E18, // 00C7 GETIDX R24 R23 R24
+ 0x5466000F, // 00C8 LDINT R25 16
+ 0x546A001E, // 00C9 LDINT R26 31
+ 0x4064321A, // 00CA CONNECT R25 R25 R26
+ 0x94642E19, // 00CB GETIDX R25 R23 R25
+ 0x546A001F, // 00CC LDINT R26 32
+ 0x546E002E, // 00CD LDINT R27 47
+ 0x4068341B, // 00CE CONNECT R26 R26 R27
+ 0x94682E1A, // 00CF GETIDX R26 R23 R26
+ 0xB86E6E00, // 00D0 GETNGBL R27 K55
+ 0x8C6C3738, // 00D1 GETMET R27 R27 K56
+ 0x7C6C0200, // 00D2 CALL R27 1
+ 0x8C702B39, // 00D3 GETMET R28 R21 K57
+ 0x7C700200, // 00D4 CALL R28 1
+ 0x4C740000, // 00D5 LDNIL R29
+ 0x900E741D, // 00D6 SETMBR R3 K58 R29
+ 0x8C74033B, // 00D7 GETMET R29 R1 K59
+ 0x547E0032, // 00D8 LDINT R31 51
+ 0x50800200, // 00D9 LDBOOL R32 1 0
+ 0x7C740600, // 00DA CALL R29 3
+ 0x8C783B3C, // 00DB GETMET R30 R29 K60
+ 0x5C803800, // 00DC MOVE R32 R28
+ 0x7C780400, // 00DD CALL R30 2
+ 0x887C013D, // 00DE GETMBR R31 R0 K61
+ 0x8C7C3F3E, // 00DF GETMET R31 R31 K62
+ 0x5C843A00, // 00E0 MOVE R33 R29
+ 0x7C7C0400, // 00E1 CALL R31 2
+ 0x8C7C073F, // 00E2 GETMET R31 R3 K63
+ 0x7C7C0200, // 00E3 CALL R31 1
+ 0x8C7C0740, // 00E4 GETMET R31 R3 K64
+ 0x5C843000, // 00E5 MOVE R33 R24
+ 0x5C883200, // 00E6 MOVE R34 R25
+ 0x5C8C3400, // 00E7 MOVE R35 R26
+ 0x5C903600, // 00E8 MOVE R36 R27
+ 0x7C7C0A00, // 00E9 CALL R31 5
+ 0x887C0D41, // 00EA GETMBR R31 R6 K65
+ 0x900E821F, // 00EB SETMBR R3 K65 R31
+ 0x900E8504, // 00EC SETMBR R3 K66 K4
+ 0x8C7C0743, // 00ED GETMET R31 R3 K67
+ 0x7C7C0200, // 00EE CALL R31 1
+ 0x8C7C0744, // 00EF GETMET R31 R3 K68
+ 0x50840200, // 00F0 LDBOOL R33 1 0
+ 0x7C7C0400, // 00F1 CALL R31 2
+ 0x8C7C0745, // 00F2 GETMET R31 R3 K69
+ 0x7C7C0200, // 00F3 CALL R31 1
+ 0x8C7C0746, // 00F4 GETMET R31 R3 K70
+ 0x7C7C0200, // 00F5 CALL R31 1
+ 0x8C7C0747, // 00F6 GETMET R31 R3 K71
+ 0x7C7C0200, // 00F7 CALL R31 1
+ 0xB87E0C00, // 00F8 GETNGBL R31 K6
+ 0x58800048, // 00F9 LDCONST R32 K72
+ 0x58840008, // 00FA LDCONST R33 K8
+ 0x7C7C0400, // 00FB CALL R31 2
+ 0x507C0200, // 00FC LDBOOL R31 1 0
+ 0x80043E00, // 00FD RET 1 R31
+ 0x70020004, // 00FE JMP #0104
+ 0xB8420C00, // 00FF GETNGBL R16 K6
+ 0x58440049, // 0100 LDCONST R17 K73
+ 0x58480008, // 0101 LDCONST R18 K8
+ 0x7C400400, // 0102 CALL R16 2
+ 0x50140000, // 0103 LDBOOL R5 0 0
+ 0x5C1C0A00, // 0104 MOVE R7 R5
+ 0x741E00E4, // 0105 JMPT R7 #01EB
+ 0x8C1C014A, // 0106 GETMET R7 R0 K74
+ 0x8824094B, // 0107 GETMBR R9 R4 K75
+ 0x8828091A, // 0108 GETMBR R10 R4 K26
+ 0x7C1C0600, // 0109 CALL R7 3
+ 0x900E3007, // 010A SETMBR R3 K24 R7
+ 0x4C200000, // 010B LDNIL R8
+ 0x1C200608, // 010C EQ R8 R3 R8
+ 0x74220003, // 010D JMPT R8 #0112
+ 0x88200718, // 010E GETMBR R8 R3 K24
+ 0x4C240000, // 010F LDNIL R9
+ 0x1C201009, // 0110 EQ R8 R8 R9
+ 0x7822000C, // 0111 JMPF R8 #011F
+ 0xB8220C00, // 0112 GETNGBL R8 K6
+ 0x5824004C, // 0113 LDCONST R9 K76
+ 0x58280008, // 0114 LDCONST R10 K8
+ 0x7C200400, // 0115 CALL R8 2
+ 0x8C200109, // 0116 GETMET R8 R0 K9
+ 0x5C280200, // 0117 MOVE R10 R1
+ 0x582C000A, // 0118 LDCONST R11 K10
+ 0x58300004, // 0119 LDCONST R12 K4
+ 0x5834000A, // 011A LDCONST R13 K10
+ 0x50380000, // 011B LDBOOL R14 0 0
+ 0x7C200C00, // 011C CALL R8 6
+ 0x50200000, // 011D LDBOOL R8 0 0
+ 0x80041000, // 011E RET 1 R8
+ 0x88200326, // 011F GETMBR R8 R1 K38
+ 0x900E4A08, // 0120 SETMBR R3 K37 R8
+ 0x8C200727, // 0121 GETMET R8 R3 K39
+ 0x7C200200, // 0122 CALL R8 1
+ 0x88200929, // 0123 GETMBR R8 R4 K41
+ 0x900E5008, // 0124 SETMBR R3 K40 R8
+ 0x88200115, // 0125 GETMBR R8 R0 K21
+ 0x88201116, // 0126 GETMBR R8 R8 K22
+ 0x8C20112B, // 0127 GETMET R8 R8 K43
+ 0x7C200200, // 0128 CALL R8 1
+ 0x900E5408, // 0129 SETMBR R3 K42 R8
+ 0xB8220C00, // 012A GETNGBL R8 K6
+ 0x60240018, // 012B GETGBL R9 G24
+ 0x5828002C, // 012C LDCONST R10 K44
+ 0x882C072A, // 012D GETMBR R11 R3 K42
+ 0x8830032D, // 012E GETMBR R12 R1 K45
+ 0x8834032E, // 012F GETMBR R13 R1 K46
+ 0x7C240800, // 0130 CALL R9 4
+ 0x58280008, // 0131 LDCONST R10 K8
0x7C200400, // 0132 CALL R8 2
- 0x8C24054B, // 0133 GETMET R9 R2 K75
- 0x7C240200, // 0134 CALL R9 1
- 0x8C24134D, // 0135 GETMET R9 R9 K77
- 0x882C0749, // 0136 GETMBR R11 R3 K73
- 0x88300912, // 0137 GETMBR R12 R4 K18
- 0x7C240600, // 0138 CALL R9 3
- 0x900E3C09, // 0139 SETMBR R3 K30 R9
- 0xB8261800, // 013A GETNGBL R9 K12
- 0x8824134E, // 013B GETMBR R9 R9 K78
- 0x8C24134F, // 013C GETMET R9 R9 K79
- 0x7C240200, // 013D CALL R9 1
- 0x8C281350, // 013E GETMET R10 R9 K80
- 0x5830000A, // 013F LDCONST R12 K10
- 0xB8361800, // 0140 GETNGBL R13 K12
- 0x88341B4E, // 0141 GETMBR R13 R13 K78
- 0x88341B51, // 0142 GETMBR R13 R13 K81
- 0x8C380F52, // 0143 GETMET R14 R7 K82
- 0x7C380200, // 0144 CALL R14 1
- 0x7C280800, // 0145 CALL R10 4
- 0x8C281350, // 0146 GETMET R10 R9 K80
- 0x5830000B, // 0147 LDCONST R12 K11
- 0xB8361800, // 0148 GETNGBL R13 K12
- 0x88341B4E, // 0149 GETMBR R13 R13 K78
- 0x88341B51, // 014A GETMBR R13 R13 K81
- 0x8C380F53, // 014B GETMET R14 R7 K83
- 0x7C380200, // 014C CALL R14 1
- 0x7C280800, // 014D CALL R10 4
- 0x8C281350, // 014E GETMET R10 R9 K80
- 0x58300008, // 014F LDCONST R12 K8
- 0xB8361800, // 0150 GETNGBL R13 K12
- 0x88341B4E, // 0151 GETMBR R13 R13 K78
- 0x88341B51, // 0152 GETMBR R13 R13 K81
- 0x8838074A, // 0153 GETMBR R14 R3 K74
- 0x7C280800, // 0154 CALL R10 4
- 0x8C281350, // 0155 GETMET R10 R9 K80
- 0x54320003, // 0156 LDINT R12 4
- 0xB8361800, // 0157 GETNGBL R13 K12
- 0x88341B4E, // 0158 GETMBR R13 R13 K78
- 0x88341B51, // 0159 GETMBR R13 R13 K81
- 0x88380912, // 015A GETMBR R14 R4 K18
- 0x7C280800, // 015B CALL R10 4
- 0x8C28054B, // 015C GETMET R10 R2 K75
- 0x7C280200, // 015D CALL R10 1
- 0x8C281554, // 015E GETMET R10 R10 K84
- 0x8C300F55, // 015F GETMET R12 R7 K85
- 0x7C300200, // 0160 CALL R12 1
- 0x8C341338, // 0161 GETMET R13 R9 K56
- 0x7C340200, // 0162 CALL R13 1
- 0x7C280600, // 0163 CALL R10 3
- 0xB82E1800, // 0164 GETNGBL R11 K12
- 0x882C174E, // 0165 GETMBR R11 R11 K78
- 0x8C2C174F, // 0166 GETMET R11 R11 K79
- 0x7C2C0200, // 0167 CALL R11 1
- 0x8C301750, // 0168 GETMET R12 R11 K80
- 0x5838000A, // 0169 LDCONST R14 K10
- 0xB83E1800, // 016A GETNGBL R15 K12
- 0x883C1F4E, // 016B GETMBR R15 R15 K78
- 0x883C1F51, // 016C GETMBR R15 R15 K81
- 0x8C400F52, // 016D GETMET R16 R7 K82
- 0x7C400200, // 016E CALL R16 1
- 0x7C300800, // 016F CALL R12 4
- 0x8C301750, // 0170 GETMET R12 R11 K80
- 0x5838000B, // 0171 LDCONST R14 K11
- 0xB83E1800, // 0172 GETNGBL R15 K12
- 0x883C1F4E, // 0173 GETMBR R15 R15 K78
- 0x883C1F51, // 0174 GETMBR R15 R15 K81
- 0x8C400F53, // 0175 GETMET R16 R7 K83
- 0x7C400200, // 0176 CALL R16 1
- 0x7C300800, // 0177 CALL R12 4
- 0x8C301750, // 0178 GETMET R12 R11 K80
- 0x58380008, // 0179 LDCONST R14 K8
- 0xB83E1800, // 017A GETNGBL R15 K12
- 0x883C1F4E, // 017B GETMBR R15 R15 K78
- 0x883C1F51, // 017C GETMBR R15 R15 K81
- 0x5C401400, // 017D MOVE R16 R10
- 0x7C300800, // 017E CALL R12 4
- 0x8C301750, // 017F GETMET R12 R11 K80
- 0x543A0003, // 0180 LDINT R14 4
- 0xB83E1800, // 0181 GETNGBL R15 K12
- 0x883C1F4E, // 0182 GETMBR R15 R15 K78
- 0x883C1F51, // 0183 GETMBR R15 R15 K81
- 0x8840072E, // 0184 GETMBR R16 R3 K46
- 0x7C300800, // 0185 CALL R12 4
- 0x88300956, // 0186 GETMBR R12 R4 K86
- 0x900E720C, // 0187 SETMBR R3 K57 R12
- 0x8C300557, // 0188 GETMET R12 R2 K87
- 0x7C300200, // 0189 CALL R12 1
- 0x8C301958, // 018A GETMET R12 R12 K88
- 0x88380739, // 018B GETMBR R14 R3 K57
- 0x7C300400, // 018C CALL R12 2
- 0x8C301959, // 018D GETMET R12 R12 K89
- 0x7C300200, // 018E CALL R12 1
- 0x60340015, // 018F GETGBL R13 G21
- 0x7C340000, // 0190 CALL R13 0
- 0x8C341B1A, // 0191 GETMET R13 R13 K26
- 0x883C015A, // 0192 GETMBR R15 R0 K90
- 0x7C340400, // 0193 CALL R13 2
- 0x8C380F5B, // 0194 GETMET R14 R7 K91
- 0x7C380200, // 0195 CALL R14 1
- 0x00381C08, // 0196 ADD R14 R14 R8
- 0x883C074A, // 0197 GETMBR R15 R3 K74
- 0x00381C0F, // 0198 ADD R14 R14 R15
- 0x00381C0C, // 0199 ADD R14 R14 R12
- 0x8C3C051C, // 019A GETMET R15 R2 K28
- 0x7C3C0200, // 019B CALL R15 1
- 0x8C3C1F1D, // 019C GETMET R15 R15 K29
- 0x8844071E, // 019D GETMBR R17 R3 K30
- 0x5C481C00, // 019E MOVE R18 R14
- 0x5C4C1A00, // 019F MOVE R19 R13
- 0x5452000F, // 01A0 LDINT R20 16
- 0x7C3C0A00, // 01A1 CALL R15 5
- 0x8C401738, // 01A2 GETMET R16 R11 K56
- 0x7C400200, // 01A3 CALL R16 1
- 0x8C440521, // 01A4 GETMET R17 R2 K33
- 0x5C4C1E00, // 01A5 MOVE R19 R15
- 0x60500015, // 01A6 GETGBL R20 G21
- 0x7C500000, // 01A7 CALL R20 0
- 0x8C50291A, // 01A8 GETMET R20 R20 K26
- 0x8858015C, // 01A9 GETMBR R22 R0 K92
- 0x7C500400, // 01AA CALL R20 2
- 0x60540015, // 01AB GETGBL R21 G21
- 0x7C540000, // 01AC CALL R21 0
- 0x6058000C, // 01AD GETGBL R22 G12
- 0x5C5C2000, // 01AE MOVE R23 R16
- 0x7C580200, // 01AF CALL R22 1
- 0x545E000F, // 01B0 LDINT R23 16
- 0x7C440C00, // 01B1 CALL R17 6
- 0x8C48235D, // 01B2 GETMET R18 R17 K93
- 0x5C502000, // 01B3 MOVE R20 R16
- 0x7C480400, // 01B4 CALL R18 2
- 0x8C4C2323, // 01B5 GETMET R19 R17 K35
- 0x7C4C0200, // 01B6 CALL R19 1
- 0x00482413, // 01B7 ADD R18 R18 R19
- 0xB84E1800, // 01B8 GETNGBL R19 K12
- 0x8C4C275E, // 01B9 GETMET R19 R19 K94
- 0x7C4C0200, // 01BA CALL R19 1
- 0x904EBE08, // 01BB SETMBR R19 K95 R8
- 0x88500729, // 01BC GETMBR R20 R3 K41
- 0x904EC014, // 01BD SETMBR R19 K96 R20
- 0x8850074A, // 01BE GETMBR R20 R3 K74
- 0x904EC214, // 01BF SETMBR R19 K97 R20
- 0x904EC412, // 01C0 SETMBR R19 K98 R18
- 0x8C502738, // 01C1 GETMET R20 R19 K56
- 0x7C500200, // 01C2 CALL R20 1
- 0x900EC614, // 01C3 SETMBR R3 K99 R20
- 0x8C54033A, // 01C4 GETMET R21 R1 K58
- 0x545E0030, // 01C5 LDINT R23 49
- 0x50600200, // 01C6 LDBOOL R24 1 0
- 0x7C540600, // 01C7 CALL R21 3
- 0x8C582B3B, // 01C8 GETMET R22 R21 K59
- 0x5C602800, // 01C9 MOVE R24 R20
- 0x7C580400, // 01CA CALL R22 2
- 0xB85E0C00, // 01CB GETNGBL R23 K6
- 0x60600018, // 01CC GETGBL R24 G24
- 0x58640064, // 01CD LDCONST R25 K100
- 0x88680729, // 01CE GETMBR R26 R3 K41
- 0x886C0765, // 01CF GETMBR R27 R3 K101
- 0x88700766, // 01D0 GETMBR R28 R3 K102
- 0x7C600800, // 01D1 CALL R24 4
- 0x5864000B, // 01D2 LDCONST R25 K11
- 0x7C5C0400, // 01D3 CALL R23 2
- 0x885C013C, // 01D4 GETMBR R23 R0 K60
- 0x8C5C2F3D, // 01D5 GETMET R23 R23 K61
- 0x5C642A00, // 01D6 MOVE R25 R21
- 0x7C5C0400, // 01D7 CALL R23 2
- 0x505C0200, // 01D8 LDBOOL R23 1 0
- 0x80042E00, // 01D9 RET 1 R23
- 0x501C0200, // 01DA LDBOOL R7 1 0
- 0x80040E00, // 01DB RET 1 R7
+ 0x8C200530, // 0133 GETMET R8 R2 K48
+ 0x542A000F, // 0134 LDINT R10 16
+ 0x7C200400, // 0135 CALL R8 2
+ 0x900E5E08, // 0136 SETMBR R3 K47 R8
+ 0x8C200530, // 0137 GETMET R8 R2 K48
+ 0x542A001F, // 0138 LDINT R10 32
+ 0x7C200400, // 0139 CALL R8 2
+ 0x900E9A08, // 013A SETMBR R3 K77 R8
+ 0x8C20054F, // 013B GETMET R8 R2 K79
+ 0x7C200200, // 013C CALL R8 1
+ 0x8C201150, // 013D GETMET R8 R8 K80
+ 0x8828074D, // 013E GETMBR R10 R3 K77
+ 0x7C200400, // 013F CALL R8 2
+ 0x900E9C08, // 0140 SETMBR R3 K78 R8
+ 0x8C200530, // 0141 GETMET R8 R2 K48
+ 0x542A001F, // 0142 LDINT R10 32
+ 0x7C200400, // 0143 CALL R8 2
+ 0x8C24054F, // 0144 GETMET R9 R2 K79
+ 0x7C240200, // 0145 CALL R9 1
+ 0x8C241351, // 0146 GETMET R9 R9 K81
+ 0x882C074D, // 0147 GETMBR R11 R3 K77
+ 0x88300912, // 0148 GETMBR R12 R4 K18
+ 0x7C240600, // 0149 CALL R9 3
+ 0x900E3E09, // 014A SETMBR R3 K31 R9
+ 0xB8261800, // 014B GETNGBL R9 K12
+ 0x88241352, // 014C GETMBR R9 R9 K82
+ 0x8C241353, // 014D GETMET R9 R9 K83
+ 0x7C240200, // 014E CALL R9 1
+ 0x8C281354, // 014F GETMET R10 R9 K84
+ 0x5830000A, // 0150 LDCONST R12 K10
+ 0xB8361800, // 0151 GETNGBL R13 K12
+ 0x88341B52, // 0152 GETMBR R13 R13 K82
+ 0x88341B55, // 0153 GETMBR R13 R13 K85
+ 0x8C380F56, // 0154 GETMET R14 R7 K86
+ 0x7C380200, // 0155 CALL R14 1
+ 0x7C280800, // 0156 CALL R10 4
+ 0x8C281354, // 0157 GETMET R10 R9 K84
+ 0x5830000B, // 0158 LDCONST R12 K11
+ 0xB8361800, // 0159 GETNGBL R13 K12
+ 0x88341B52, // 015A GETMBR R13 R13 K82
+ 0x88341B55, // 015B GETMBR R13 R13 K85
+ 0x8C380F57, // 015C GETMET R14 R7 K87
+ 0x7C380200, // 015D CALL R14 1
+ 0x7C280800, // 015E CALL R10 4
+ 0x8C281354, // 015F GETMET R10 R9 K84
+ 0x58300008, // 0160 LDCONST R12 K8
+ 0xB8361800, // 0161 GETNGBL R13 K12
+ 0x88341B52, // 0162 GETMBR R13 R13 K82
+ 0x88341B55, // 0163 GETMBR R13 R13 K85
+ 0x8838074E, // 0164 GETMBR R14 R3 K78
+ 0x7C280800, // 0165 CALL R10 4
+ 0x8C281354, // 0166 GETMET R10 R9 K84
+ 0x54320003, // 0167 LDINT R12 4
+ 0xB8361800, // 0168 GETNGBL R13 K12
+ 0x88341B52, // 0169 GETMBR R13 R13 K82
+ 0x88341B55, // 016A GETMBR R13 R13 K85
+ 0x88380912, // 016B GETMBR R14 R4 K18
+ 0x7C280800, // 016C CALL R10 4
+ 0x8C28054F, // 016D GETMET R10 R2 K79
+ 0x7C280200, // 016E CALL R10 1
+ 0x8C281558, // 016F GETMET R10 R10 K88
+ 0x8C300F59, // 0170 GETMET R12 R7 K89
+ 0x7C300200, // 0171 CALL R12 1
+ 0x8C341339, // 0172 GETMET R13 R9 K57
+ 0x7C340200, // 0173 CALL R13 1
+ 0x7C280600, // 0174 CALL R10 3
+ 0xB82E1800, // 0175 GETNGBL R11 K12
+ 0x882C1752, // 0176 GETMBR R11 R11 K82
+ 0x8C2C1753, // 0177 GETMET R11 R11 K83
+ 0x7C2C0200, // 0178 CALL R11 1
+ 0x8C301754, // 0179 GETMET R12 R11 K84
+ 0x5838000A, // 017A LDCONST R14 K10
+ 0xB83E1800, // 017B GETNGBL R15 K12
+ 0x883C1F52, // 017C GETMBR R15 R15 K82
+ 0x883C1F55, // 017D GETMBR R15 R15 K85
+ 0x8C400F56, // 017E GETMET R16 R7 K86
+ 0x7C400200, // 017F CALL R16 1
+ 0x7C300800, // 0180 CALL R12 4
+ 0x8C301754, // 0181 GETMET R12 R11 K84
+ 0x5838000B, // 0182 LDCONST R14 K11
+ 0xB83E1800, // 0183 GETNGBL R15 K12
+ 0x883C1F52, // 0184 GETMBR R15 R15 K82
+ 0x883C1F55, // 0185 GETMBR R15 R15 K85
+ 0x8C400F57, // 0186 GETMET R16 R7 K87
+ 0x7C400200, // 0187 CALL R16 1
+ 0x7C300800, // 0188 CALL R12 4
+ 0x8C301754, // 0189 GETMET R12 R11 K84
+ 0x58380008, // 018A LDCONST R14 K8
+ 0xB83E1800, // 018B GETNGBL R15 K12
+ 0x883C1F52, // 018C GETMBR R15 R15 K82
+ 0x883C1F55, // 018D GETMBR R15 R15 K85
+ 0x5C401400, // 018E MOVE R16 R10
+ 0x7C300800, // 018F CALL R12 4
+ 0x8C301754, // 0190 GETMET R12 R11 K84
+ 0x543A0003, // 0191 LDINT R14 4
+ 0xB83E1800, // 0192 GETNGBL R15 K12
+ 0x883C1F52, // 0193 GETMBR R15 R15 K82
+ 0x883C1F55, // 0194 GETMBR R15 R15 K85
+ 0x8840072F, // 0195 GETMBR R16 R3 K47
+ 0x7C300800, // 0196 CALL R12 4
+ 0x8830095A, // 0197 GETMBR R12 R4 K90
+ 0x900E740C, // 0198 SETMBR R3 K58 R12
+ 0x8C30055B, // 0199 GETMET R12 R2 K91
+ 0x7C300200, // 019A CALL R12 1
+ 0x8C30195C, // 019B GETMET R12 R12 K92
+ 0x8838073A, // 019C GETMBR R14 R3 K58
+ 0x7C300400, // 019D CALL R12 2
+ 0x8C30195D, // 019E GETMET R12 R12 K93
+ 0x7C300200, // 019F CALL R12 1
+ 0x60340015, // 01A0 GETGBL R13 G21
+ 0x7C340000, // 01A1 CALL R13 0
+ 0x8C341B1B, // 01A2 GETMET R13 R13 K27
+ 0x883C015E, // 01A3 GETMBR R15 R0 K94
+ 0x7C340400, // 01A4 CALL R13 2
+ 0x8C380F5F, // 01A5 GETMET R14 R7 K95
+ 0x7C380200, // 01A6 CALL R14 1
+ 0x00381C08, // 01A7 ADD R14 R14 R8
+ 0x883C074E, // 01A8 GETMBR R15 R3 K78
+ 0x00381C0F, // 01A9 ADD R14 R14 R15
+ 0x00381C0C, // 01AA ADD R14 R14 R12
+ 0x8C3C051D, // 01AB GETMET R15 R2 K29
+ 0x7C3C0200, // 01AC CALL R15 1
+ 0x8C3C1F1E, // 01AD GETMET R15 R15 K30
+ 0x8844071F, // 01AE GETMBR R17 R3 K31
+ 0x5C481C00, // 01AF MOVE R18 R14
+ 0x5C4C1A00, // 01B0 MOVE R19 R13
+ 0x5452000F, // 01B1 LDINT R20 16
+ 0x7C3C0A00, // 01B2 CALL R15 5
+ 0x8C401739, // 01B3 GETMET R16 R11 K57
+ 0x7C400200, // 01B4 CALL R16 1
+ 0x8C440522, // 01B5 GETMET R17 R2 K34
+ 0x5C4C1E00, // 01B6 MOVE R19 R15
+ 0x60500015, // 01B7 GETGBL R20 G21
+ 0x7C500000, // 01B8 CALL R20 0
+ 0x8C50291B, // 01B9 GETMET R20 R20 K27
+ 0x88580160, // 01BA GETMBR R22 R0 K96
+ 0x7C500400, // 01BB CALL R20 2
+ 0x60540015, // 01BC GETGBL R21 G21
+ 0x7C540000, // 01BD CALL R21 0
+ 0x6058000C, // 01BE GETGBL R22 G12
+ 0x5C5C2000, // 01BF MOVE R23 R16
+ 0x7C580200, // 01C0 CALL R22 1
+ 0x545E000F, // 01C1 LDINT R23 16
+ 0x7C440C00, // 01C2 CALL R17 6
+ 0x8C482361, // 01C3 GETMET R18 R17 K97
+ 0x5C502000, // 01C4 MOVE R20 R16
+ 0x7C480400, // 01C5 CALL R18 2
+ 0x8C4C2324, // 01C6 GETMET R19 R17 K36
+ 0x7C4C0200, // 01C7 CALL R19 1
+ 0x00482413, // 01C8 ADD R18 R18 R19
+ 0xB84E1800, // 01C9 GETNGBL R19 K12
+ 0x8C4C2762, // 01CA GETMET R19 R19 K98
+ 0x7C4C0200, // 01CB CALL R19 1
+ 0x904EC608, // 01CC SETMBR R19 K99 R8
+ 0x8850072A, // 01CD GETMBR R20 R3 K42
+ 0x904EC814, // 01CE SETMBR R19 K100 R20
+ 0x8850074E, // 01CF GETMBR R20 R3 K78
+ 0x904ECA14, // 01D0 SETMBR R19 K101 R20
+ 0x904ECC12, // 01D1 SETMBR R19 K102 R18
+ 0x8C502739, // 01D2 GETMET R20 R19 K57
+ 0x7C500200, // 01D3 CALL R20 1
+ 0x900ECE14, // 01D4 SETMBR R3 K103 R20
+ 0x8C54033B, // 01D5 GETMET R21 R1 K59
+ 0x545E0030, // 01D6 LDINT R23 49
+ 0x50600200, // 01D7 LDBOOL R24 1 0
+ 0x7C540600, // 01D8 CALL R21 3
+ 0x8C582B3C, // 01D9 GETMET R22 R21 K60
+ 0x5C602800, // 01DA MOVE R24 R20
+ 0x7C580400, // 01DB CALL R22 2
+ 0xB85E0C00, // 01DC GETNGBL R23 K6
+ 0x60600018, // 01DD GETGBL R24 G24
+ 0x58640068, // 01DE LDCONST R25 K104
+ 0x8868072A, // 01DF GETMBR R26 R3 K42
+ 0x886C0769, // 01E0 GETMBR R27 R3 K105
+ 0x8870076A, // 01E1 GETMBR R28 R3 K106
+ 0x7C600800, // 01E2 CALL R24 4
+ 0x5864000B, // 01E3 LDCONST R25 K11
+ 0x7C5C0400, // 01E4 CALL R23 2
+ 0x885C013D, // 01E5 GETMBR R23 R0 K61
+ 0x8C5C2F3E, // 01E6 GETMET R23 R23 K62
+ 0x5C642A00, // 01E7 MOVE R25 R21
+ 0x7C5C0400, // 01E8 CALL R23 2
+ 0x505C0200, // 01E9 LDBOOL R23 1 0
+ 0x80042E00, // 01EA RET 1 R23
+ 0x501C0200, // 01EB LDBOOL R7 1 0
+ 0x80040E00, // 01EC RET 1 R7
})
)
);
From 2ce513f50c8a2b0f66dc8e775cfc47eb06517aec Mon Sep 17 00:00:00 2001
From: Norbert Richter
Date: Sun, 16 Jun 2024 17:07:51 +0200
Subject: [PATCH 067/252] NeoPool make compiler setting available by
user_config_override.h (#21645)
---
CHANGELOG.md | 1 +
tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino | 16 ++++++++++++++++
2 files changed, 17 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5e1dde61d..3f855c210 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ All notable changes to this project will be documented in this file.
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line (#21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
+- NeoPool make compiler setting available by user_config_override.h
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
diff --git a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
index 01718d201..c13bc82d7 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
@@ -61,19 +61,35 @@
#endif
+#ifndef NEOPOOL_READ_REGISTER
#define NEOPOOL_READ_REGISTER 0x04 // Function code used to read register
+#endif
+#ifndef NEOPOOL_WRITE_REGISTER
#define NEOPOOL_WRITE_REGISTER 0x10 // Function code used to write register
+#endif
+#ifndef NEOPOOL_READ_TIMEOUT
#define NEOPOOL_READ_TIMEOUT 25 // read data timeout in ms
+#endif
+#ifndef NEOPOOL_CACHE_INVALID_TIME
#define NEOPOOL_CACHE_INVALID_TIME 30 // data cache invalidation time in s
+#endif
// Pool LED RGB lights with different programs, the individual programs can be selected
// by switching them off and on again for a defined time when the LED is switched on.
// Default timings for LED light program step sequence (NPLight 3)
+#ifndef NEOPOOL_LIGHT_PRG_WAIT
#define NEOPOOL_LIGHT_PRG_WAIT 30 // delay before start prg light if light was off (in ms)
+#endif
+#ifndef NEOPOOL_LIGHT_PRG_DELAY
#define NEOPOOL_LIGHT_PRG_DELAY 15 // default next light prg delay (in ms)
+#endif
+#ifndef NEOPOOL_LIGHT_PRG_DELAY_MIN
#define NEOPOOL_LIGHT_PRG_DELAY_MIN 5 // next light prg delay min (in ms)
+#endif
+#ifndef NEOPOOL_LIGHT_PRG_DELAY_MAX
#define NEOPOOL_LIGHT_PRG_DELAY_MAX 100 // next light prg delay max (in ms)
+#endif
/*********************************************************************************************\
From 0d267a546a86cedbceebca12ffa1f3367ba7d5ee Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 16 Jun 2024 18:42:23 +0200
Subject: [PATCH 068/252] Matter prepare events (#21647)
---
.../berry_matter/src/be_matter_module.c | 11 +
.../src/embedded/Matter_EventHandler.be | 220 +
.../berry_matter/src/embedded/Matter_IM.be | 102 +-
.../src/embedded/Matter_Message.be | 8 +
.../src/embedded/Matter_Plugin_0.be | 55 +-
.../src/embedded/Matter_Plugin_1_Root.be | 11 +-
.../Matter_Plugin_2_Sensor_GenericSwitch.be | 100 +
.../src/embedded/Matter_Session.be | 1 +
.../src/embedded/Matter_zz_Device.be | 8 +-
.../solidify/solidified_Matter_EventHandler.h | 492 +
.../src/solidify/solidified_Matter_IM.h | 1246 ++-
.../src/solidify/solidified_Matter_Message.h | 1336 +--
.../src/solidify/solidified_Matter_Plugin_0.h | 1499 +--
.../solidified_Matter_Plugin_1_Root.h | 652 +-
...ied_Matter_Plugin_2_Sensor_GenericSwitch.h | 350 +
.../src/solidify/solidified_Matter_Session.h | 2717 ++---
.../solidify/solidified_Matter_zz_Device.h | 9625 +++++++++--------
17 files changed, 10068 insertions(+), 8365 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch.be
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 8e8f5d36c..25b6cd0ff 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -216,6 +216,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_IM_Message.h"
#include "solidify/solidified_Matter_IM_Subscription.h"
#include "solidify/solidified_Matter_IM.h"
+#include "solidify/solidified_Matter_EventHandler.h"
#include "solidify/solidified_Matter_Control_Message.h"
#include "solidify/solidified_Matter_Plugin_0.h"
#include "solidify/solidified_Matter_Base38.h"
@@ -259,6 +260,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_3_Sensor_Rain.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_2_Fan.h"
+#include "solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Fan.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Occupancy.h"
@@ -337,6 +339,11 @@ module matter (scope: global, strings: weak) {
UC_LIST, closure(module_matter_UC_LIST_closure)
Profiler, class(be_class_Matter_Profiler)
+ // EVents priority levels
+ EVENT_DEBUG, int(0)
+ EVENT_INFO, int(1)
+ EVENT_CRITICAL, int(2)
+
// Status codes
SUCCESS, int(0x00)
FAILURE, int(0x01)
@@ -429,6 +436,10 @@ module matter (scope: global, strings: weak) {
Frame, class(be_class_Matter_Frame)
MessageHandler, class(be_class_Matter_MessageHandler)
+ // Event Handler
+ EventHandler, class(be_class_Matter_EventHandler)
+ EventQueued, class(be_class_Matter_EventQueued)
+
// Interation Model
Path, class(be_class_Matter_Path)
PathGenerator, class(be_class_Matter_PathGenerator)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
new file mode 100644
index 000000000..12145524f
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
@@ -0,0 +1,220 @@
+#
+# Matter_EventHandler.be - suppport for Matter Events
+#
+# Copyright (C) 2023 Stephan Hadinger & 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 .
+#
+
+import matter
+
+#@ solidify:Matter_EventHandler,weak
+#@ solidify:Matter_EventQueued,weak
+
+#################################################################################
+# Matter_Event_Queued class
+#
+# This class encapsulates any element within teh event queue
+# Takes a `Matter_EventDataIB`
+#
+# Invariants:
+# `priority` is guaranteed to be in range 0..2
+#################################################################################
+class Matter_EventQueued
+ # common elements
+ var endpoint
+ var cluster
+ var event_id
+ var is_urgent
+ var priority
+ var event_no
+ var raw_tlv # content encoded as full TLV
+
+ def init(event_ib)
+ self.endpoint = event_ib.path.endpoint
+ self.cluster = event_ib.path.cluster
+ self.event_id = event_ib.path.event
+ self.is_urgent = event_ib.path.is_urgent
+ self.priority = event_ib.priority
+ if (self.priority < 0) self.priority = 0 end
+ if (self.priority > matter.EVENT_CRITICAL) self.priority = matter.EVENT_CRITICAL end
+ self.event_no = int64.toint64(event_ib.event_number) # int64
+ self.raw_tlv = event_ib.to_TLV().tlv2raw() # bytes()
+ end
+end
+matter.EventQueued = Matter_EventQueued
+
+# elements are made of `Matter_EventDataIB`
+# var path #
+ # var node # u64 as bytes
+ # var endpoint # u16
+ # var cluster # u32
+ # var event # u32
+ # var is_urgent # bool
+# var event_number # u64 as bytes
+# var priority # u8
+# # one of
+# var epoch_timestamp # u64
+# var system_timestamp # u64
+# var delta_epoch_timestamp # u64
+# var delta_system_timestamp # u64
+# # data
+# var data # any TLV
+
+# EVENT_DEBUG=0
+# EVENT_INFO=1
+# EVENT_CRITICAL=2
+
+#################################################################################
+# Matter_IM class
+#################################################################################
+class Matter_EventHandler
+ static var EVENT_NO_INCR = 1000 # counter increased when persisting
+ static var EVENT_NO_FILENAME = "_matter_event_no"
+ static var EVENT_QUEUE_SIZE_MAX = 10 # each queue is 10 elements depth
+
+ # circular buffers
+ var queue_debug # queue of events for level DEBUG
+ var queue_info # queue of events for level INFO
+ var queue_critical # queue of events for level CRITICAL
+
+ var device # link back to matter_device top object
+ # Events
+ var counter_event_no # event number, monotonically increasing even after restarts
+ var counter_event_no_persisted # the nest number persisted for after the restart
+
+ def init(device)
+ self.device = device
+ self.queue_debug = []
+ self.queue_info = []
+ self.queue_critical = []
+ self.load_event_no_persisted() # initializes self.counter_event_no and self.counter_event_no_persisted
+ end
+
+ #####################################################################
+ # load_event_no_persisted
+ #
+ # Load the next acceptable event_no from `persist` and persist it
+ # with a predefined gap `self.EVENT_NO_INCR` (default 1000)
+ def load_event_no_persisted()
+ import persist
+ var event_no_str = str(persist.find(self.EVENT_NO_FILENAME, "0"))
+ self.counter_event_no = int64.fromstring(event_no_str)
+ self.counter_event_no_persisted = self.counter_event_no.add(self.EVENT_NO_INCR)
+ # save back next slot
+ persist.setmember(self.EVENT_NO_FILENAME, self.counter_event_no_persisted.tostring())
+ persist.save()
+ end
+
+ #####################################################################
+ # Enqueue event
+ #
+ # Takes `Matter_EventDataIB`
+ #####################################################################
+ def queue_event(ev_ib)
+ var ev_queued = matter.EventQueued(ev_ib)
+
+ var cur_prio = ev_queued.priority
+
+ # we reuse the same logic as connectedhomeip
+ # https://github.com/project-chip/connectedhomeip/blob/master/src/app/EventManagement.h
+ #
+ # Here is a copy of the original comment:
+
+ #---------------------------------------------------------------------------------
+ * A newly generated event will be placed in the lowest-priority (in practice
+ * DEBUG) buffer, the one associated with the first LogStorageResource. If
+ * there is no space in that buffer, space will be created by evicting the
+ * oldest event currently in that buffer, until enough space is available.
+ *
+ * When an event is evicted from a buffer, there are two possibilities:
+ *
+ * 1) If the next LogStorageResource has a priority that is no higher than the
+ * event's priority, the event will be moved to that LogStorageResource's
+ * buffer. This may in turn require events to be evicted from that buffer.
+ * 2) If the next LogStorageResource has a priority that is higher than the
+ * event's priority, then the event is just dropped.
+ *
+ * This means that LogStorageResources at a given priority level are reserved
+ * for events of that priority level or higher priority.
+ *
+ * As a simple example, assume there are only two priority levels, DEBUG and
+ * CRITICAL, and two LogStorageResources with those priorities. In that case,
+ * old CRITICAL events will not start getting dropped until both buffers are
+ * full, while old DEBUG events will start getting dropped once the DEBUG
+ * LogStorageResource buffer is full.
+ ---------------------------------------------------------------------------------#
+
+ # first step, always add to DEBUG queue
+ self.queue_debug.push(ev_queued)
+ # if DEBUG queue is full
+ if size(self.queue_debug) > self.EVENT_QUEUE_SIZE_MAX
+ # remove first (oldest element)
+ var ev_debug_removed = self.queue_debug.pop(0)
+ if ev_debug_removed.priority > matter.EVENT_DEBUG
+ # if removed item is higher than DEBUG, push to INFO queue
+ self.queue_info.push(ev_debug_removed)
+ # if INFO queue is full
+ if size(self.queue_info) > self.EVENT_QUEUE_SIZE_MAX
+ # remove first (oldest element)
+ var ev_info_removed = self.queue_info.pop(0)
+ if ev_info_removed.priority > matter.EVENT_INFO
+ # if removed item is higher than INFO, push to CRITICAL queue
+ self.queue_critical.push(ev_info_removed)
+ # if CRITICAL queue is full
+ if size(self.queue_critical) > self.EVENT_QUEUE_SIZE_MAX
+ # remove first (oldest element)
+ var ev_critical_removed = self.queue_critical.pop(0)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ #####################################################################
+ # Events handling
+ #####################################################################
+ # Get next event number
+ def get_next_event_no()
+ self.counter_event_no = self.counter_event_no.add(1)
+ if self.counter_event_no >= self.counter_event_no_persisted
+ self.load_event_no_persisted() # force an increment like done during boot
+ end
+ return self.counter_event_no
+ end
+
+
+ #####################################################################
+ # Dump events for debugging
+ #####################################################################
+ def dump()
+ tasmota.log(f"MTR: Events queues sizes: critical {size(self.queue_critical)}, info {size(self.queue_info)}, debug {size(self.queue_debug)}", 2)
+ var cnt = [0, 0, 0] # counters
+ for ev: self.queue_debug cnt[ev.priority] += 1 end
+ for ev: self.queue_info cnt[ev.priority] += 1 end
+ for ev: self.queue_critical cnt[ev.priority] += 1 end
+ tasmota.log(f"MTR: Events by types: critical {cnt[2]}, info {cnt[1]}, debug {cnt[0]}", 2)
+ end
+
+end
+matter.EventHandler = Matter_EventHandler
+
+#-
+
+# Unit tests
+
+
+-#
+
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 32c19152d..007f68ad5 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -237,8 +237,11 @@ class Matter_IM
# should return true if answered, false if passing to next handler
def read_single_attribute(ret, pi, ctx, direct)
var TLV = matter.TLV
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- attr_name = attr_name ? " (" + attr_name + ")" : ""
+ var attr_name
+ if tasmota.loglevel(3)
+ attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
+ attr_name = attr_name ? " (" + attr_name + ")" : ""
+ end
# Special case to report unsupported item, if pi==nil
ctx.status = nil # reset status, just in case
@@ -277,7 +280,7 @@ class Matter_IM
self.attributedata2raw(a1_raw_or_list, ctx, res)
end
- if !no_log
+ if tasmota.loglevel(3) && !no_log
log(f"MTR: >Read_Attr ({session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
end
elif ctx.status != nil
@@ -291,7 +294,7 @@ class Matter_IM
end
end
else
- if !no_log
+ if tasmota.loglevel(3) && !no_log
log(format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3)
end
# ignore if content is nil and status is undefined
@@ -349,6 +352,7 @@ class Matter_IM
# structure is `ReadRequestMessage` 10.6.2 p.558
var ctx = matter.Path()
ctx.msg = msg
+ var node_id = (msg != nil) ? msg.get_node_id() : nil
# prepare the response
var ret = matter.ReportDataMessage()
@@ -366,11 +370,13 @@ class Matter_IM
# expand endpoint
if ctx.endpoint == nil || ctx.cluster == nil || ctx.attribute == nil
# we need expansion, log first
- if ctx.cluster != nil && ctx.attribute != nil
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
- else
- log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
+ if tasmota.loglevel(3)
+ if ctx.cluster != nil && ctx.attribute != nil
+ var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
+ log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
+ else
+ log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
+ end
end
end
@@ -381,8 +387,43 @@ class Matter_IM
)
end
- # log("MTR: ReportDataMessage=" + str(ret), 3)
- # log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
+ # tasmota.log(f">>>: event_1")
+ var event_requests = query.event_requests
+ var event_filters = query.event_filters
+ var event_no_min = nil # do we have a filter for minimum event_no (int64 or nil)
+ if event_requests # if not `nil` and not empty list
+ # read event minimum
+ if event_filters
+ for filter: event_filters # filter is an instance of `EventFilterIB`
+ tasmota.log(f"MTR: EventFilter {filter=} {node_id=}", 3)
+ var filter_node = int64.toint64(filter.node) # nil or int64
+ if filter_node # there is a filter on node-id
+ if filter.node.tobytes() != node_id # the node id doesn't match
+ tasmota.log(f"MTR: node_id filter {filter_node.tobytes().tohex()} doesn't match {node_id.tohex()}")
+ continue
+ end
+ # specified minimum value
+ var new_event_no_min = int64.toint64(filter.event_min)
+ if (event_no_min != nil) || (event_no_min < new_event_no_min)
+ event_no_min = new_event_no_min
+ end
+ end
+ end
+ end
+ # event_no_min is either `nil` or has an `int64` value
+
+ ret.event_reports = []
+ for q: event_requests
+ # need to do expansion here
+ ctx.endpoint = q.endpoint
+ ctx.cluster = q.cluster
+ ctx.attribute = q.event
+ #TODO
+ tasmota.log(f"MTR: >Read_Event({session.local_session_id:%6i}) {ctx}", 3)
+ end
+ end
+ # tasmota.log("MTR: ReportDataMessage=" + str(ret), 3)
+ # tasmota.log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
return ret
end
@@ -675,25 +716,24 @@ class Matter_IM
# process IM 0x02 Read Request
#
# val is the TLV structure
+ #
# returns `true` if processed, `false` if silently ignored,
# or raises an exception
def process_read_request(msg, val)
matter.profiler.log("read_request_start")
- # matter.profiler.log(str(val))
var query = matter.ReadRequestMessage().from_TLV(val)
- # matter.profiler.log(str(query))
if query.attributes_requests != nil
var ret = self._inner_process_read_request(msg.session, query, msg)
self.send_report_data(msg, ret)
end
-
- return true
+ return true # always consider succesful even if empty
end
#############################################################
- # process IM 0x02 Read Request
+ # process IM 0x02 Read Request - solo attribute
+ #
+ # ctx is the decoded context (cluster/attribute)
#
- # val is the TLV structure
# returns `true` if processed, `false` if silently ignored,
# or raises an exception
def process_read_request_solo(msg, ctx)
@@ -702,10 +742,8 @@ class Matter_IM
ctx.msg = msg
# find pi for this endpoint/cluster/attribute
- var pi = self.device.process_attribute_read_solo(ctx)
+ var pi = self.device.resolve_attribute_read_solo(ctx)
var res = nil
- # matter.profiler.log("read_request_solo pi ok")
- # log(f"MTR: process_read_request_solo {pi=}")
var raw # this is the bytes() block we need to add to response (or nil)
if pi != nil
@@ -717,7 +755,7 @@ class Matter_IM
if res != nil
# check if the payload is a complex structure and too long to fit in a single response packet
- if (res.is_list || res.is_array) && res.encode_len() > matter.IM_ReportData.MAX_MESSAGE
+ if (res.is_list || res.is_array) && (res.encode_len() > matter.IM_ReportData.MAX_MESSAGE)
# revert to standard
# the attribute will be read again, but it's hard to avoid it
res = nil # indicated to GC that we don't need it again
@@ -773,8 +811,11 @@ class Matter_IM
# postpone lengthy operations after sending back response
matter.profiler.log("RESPONSE SENT")
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- attr_name = attr_name ? " (" + attr_name + ")" : ""
+ var attr_name
+ if tasmota.loglevel(3)
+ attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
+ attr_name = attr_name ? " (" + attr_name + ")" : ""
+ end
if res != nil
if tasmota.loglevel(3)
@@ -799,8 +840,7 @@ class Matter_IM
end
end
- # matter.profiler.log("read_request_solo end")
- return true
+ return true # always consider succesful even if empty
end
#############################################################
@@ -827,11 +867,11 @@ class Matter_IM
ctx.attribute = q.attribute
attr_req.push(str(ctx))
end
- log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s",
- msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0, sub.subscription_id, query.fabric_filtered), 3)
- if query.event_requests != nil && size(query.event_requests) > 0
- log(f"MTR: >Subscribe ({msg.session.local_session_id:6i}) event_requests_size={size(query.event_requests)}", 3)
- end
+ log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s attr_req=%s event_req=%s",
+ msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0,
+ sub.subscription_id, query.fabric_filtered,
+ query.attributes_requests != nil ? size(query.attributes_requests) : "-",
+ query.event_requests != nil ? size(query.event_requests) : "-"), 3)
var ret = self._inner_process_read_request(msg.session, query, msg, !self.device.debug #-log only if debug enabled-#)
# ret is of type `Matter_ReportDataMessage`
@@ -1084,7 +1124,7 @@ class Matter_IM
end
# expand endpoint
- if ctx.endpoint == nil
+ if tasmota.loglevel(3) && (ctx.endpoint == nil)
# we need expansion, log first
var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
log("MTR: Write_Attr " + str(ctx) + (attr_name ? " (" + attr_name + ")" : ""), 3)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
index 5a45b779f..38653625a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
@@ -444,6 +444,14 @@ class Matter_Frame
end
+ #############################################################
+ # compute the node_id for this message, via session and fabric
+ #
+ # returns bytes(8)
+ def get_node_id()
+ return self.session ? self.session.get_node_id() : nil
+ end
+
#############################################################
# Decode a message we are about to send, to ease debug
def debug(raw)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 42e436513..9d54b769c 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -69,6 +69,7 @@ class Matter_Plugin
# 0x0033: 1, # Initial Release
# 0x0034: 1, # Initial Release
0x0038: 2, #
+ # 0x003B: 1, # Initial Release
# 0x003C: 1, # Initial Release
# 0x003E: 1, # Initial Release
0x003F: 2, # Clarify KeySetWrite validation and behavior on invalid epoch key lengths
@@ -180,7 +181,59 @@ class Matter_Plugin
end
#############################################################
- # get_clusters
+ # generate a new event
+ #
+ def publish_event(cluster, event, priority, data)
+ var event_ib = matter.EventDataIB()
+ var event_path = matter.EventPathIB()
+ event_path.endpoint = self.endpoint
+ event_path.cluster = cluster
+ event_path.event = event
+ event_ib.path = event_path
+ event_ib.priority = priority
+ event_ib.event_number = self.device.events.get_next_event_no()
+ event_ib.epoch_timestamp = tasmota.rtc('utc')
+ if (event_ib.epoch_timestamp < 1700000000) event_ib.epoch_timestamp = nil end # no valid time
+ event_ib.data = data
+ var priority_str = (priority == 2) ? "CRIT " : (priority == 1) ? "INFO " : "DEBUG "
+ log(f"MTR: +Add_Event ({priority_str}) [{event_path.endpoint:02X}]{event_path.cluster:04X}/{event_path.event:04X} ({event_ib.event_number:5i}) - {event_ib.data}", 2)
+ log(f"MTR: Publishing event {event_ib}", 4)
+
+ self.device.events.queue_event(event_ib)
+ end
+#- testing
+
+var root = matter_device.plugins[0]
+var tlv_solo = matter.TLV.Matter_TLV_item()
+tlv_solo.set(matter.TLV.U4, 42)
+root.publish_event(0x001D, 0, matter.EVENT_CRITICAL, tlv_solo)
+matter_device.events.dump()
+
+-#
+
+# elements are made of `Matter_EventDataIB`
+# var path #
+ # var node # u64 as bytes
+ # var endpoint # u16
+ # var cluster # u32
+ # var event # u32
+ # var is_urgent # bool
+# var event_number # u64 as bytes
+# var priority # u8
+# # one of
+# var epoch_timestamp # u64
+# var system_timestamp # u64
+# var delta_epoch_timestamp # u64
+# var delta_system_timestamp # u64
+# # data
+# var data # any TLV
+
+# EVENT_DEBUG=0
+# EVENT_INFO=1
+# EVENT_CRITICAL=2
+
+ #############################################################
+ # consolidate_clusters
#
# Build a consolidated map of all the `CLUSTERS` static vars
# from the inheritance hierarchy
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
index c6abb638b..a01e7bcd2 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
@@ -47,9 +47,12 @@ class Matter_Plugin_Root : Matter_Plugin
#############################################################
# Constructor
- # def init(device, endpoint, config)
- # super(self).init(device, endpoint, config)
- # end
+ def init(device, endpoint, config)
+ super(self).init(device, endpoint, config)
+
+ self.publish_event(0x0028, 0x00, matter.EVENT_CRITICAL, matter.TLV.Matter_TLV_item().set(matter.TLV.U4, tasmota.version())) # Event StartUp - Software Version
+ self.publish_event(0x0033, 0x03, matter.EVENT_CRITICAL, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1)) # Event BootReason - PowerOnReboot - TODO if we need to refine
+ end
#############################################################
# read an attribute
@@ -233,7 +236,7 @@ class Matter_Plugin_Root : Matter_Plugin
elif attribute == 0x0008 # ---------- HardwareVersionString / string ----------
return tlv_solo.set(TLV.UTF1, tasmota.cmd("Status 2", true)['StatusFWR']['Hardware'])
elif attribute == 0x0009 # ---------- SoftwareVersion / u32 ----------
- return tlv_solo.set(TLV.U2, 1)
+ return tlv_solo.set(TLV.U4, tasmota.version())
elif attribute == 0x000A # ---------- SoftwareVersionString / string ----------
var version_full = tasmota.cmd("Status 2", true)['StatusFWR']['Version']
var version_end = string.find(version_full, '(')
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch.be
new file mode 100644
index 000000000..4b7a9300b
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch.be
@@ -0,0 +1,100 @@
+#
+# Matter_Plugin_Sensor_GenericSwitch.be - implements the behavior for a Generic Switch
+#
+# Copyright (C) 2023-2024 Stephan Hadinger & 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 .
+#
+
+# Matter plug-in for core behavior
+
+#@ solidify:Matter_Plugin_Sensor_GenericSwitch,weak
+
+class Matter_Plugin_Sensor_GenericSwitch : Matter_Plugin_Device
+ static var TYPE = "gensw" # name of the plug-in in json
+ static var DISPLAY_NAME = "Generic Switch" # display name of the plug-in
+ static var ARG = "switch" # additional argument name (or empty if none)
+ static var ARG_HINT = "Switch number"
+ static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
+ static var UPDATE_TIME = 750 # update every 750ms - TODO still necessary?
+ static var CLUSTERS = matter.consolidate_clusters(_class, {
+ # 0x001D: inherited # Descriptor Cluster 9.5 p.453
+ # 0x0039: [3,5,0x0A,0x0F,0x11,0x12], # Bridged Device Basic Information 9.13 p.485
+ # 0x0003: [0,1], # Identify 1.2 p.16
+ # 0x0004: [0], # Groups 1.3 p.21
+ # 0x0005: [0,1,2,3,4,5], # Scenes 1.4 p.30 - no writable
+ 0x003B: [0, 1, 2], # Switch 1.12
+ })
+ static var TYPES = { 0x000F: 2 } # Generic Switch, rev 2
+
+ var tasmota_switch_index # Switch number in Tasmota (one based)
+ var shadow_value
+
+ #############################################################
+ # parse_configuration
+ #
+ # Parse configuration map
+ def parse_configuration(config)
+ self.tasmota_switch_index = int(config.find(self.ARG #-'relay'-#, 1))
+ if self.tasmota_switch_index <= 0 self.tasmota_switch_index = 1 end
+ end
+
+ #############################################################
+ # Update shadow
+ #
+ def update_shadow()
+ super(self).update_shadow()
+ self.shadow_value = false
+ # TODO
+ end
+
+ #############################################################
+ # read an attribute
+ #
+ def read_attribute(session, ctx, tlv_solo)
+ var TLV = matter.TLV
+ var cluster = ctx.cluster
+ var attribute = ctx.attribute
+
+ # ====================================================================================================
+ if cluster == 0x003B # ========== Generic Switch, 1.12 ==========
+ # self.update_shadow_lazy()
+ if attribute == 0x0000 # ---------- NumberOfPositions / uint8 ----------
+ return tlv_solo.set(TLV.U1, 2) # default to 2 positions
+ elif attribute == 0x0001 # ---------- CurrentPosition / uint8 ----------
+ return tlv_solo.set(TLV.U1, 0) # TODO read value
+ elif attribute == 0x0002 # ---------- MultiPressMax / uint8 ----------
+ return tlv_solo.set(TLV.U1, 2) # up to double press
+
+ elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
+ return tlv_solo.set(TLV.U4, 0x02 + 0x04 + 0x08) # MomentarySwitch + MomentarySwitchRelease + MomentarySwitchLongPress
+ end
+
+ end
+ return super(self).read_attribute(session, ctx, tlv_solo)
+ end
+
+ #############################################################
+ # append_state_json
+ #
+ # Output the current state in JSON
+ # New values need to be appended with `,"key":value` (including prefix comma)
+ #
+ # Override the default behavior to use the key `OnOff` instead of `Power`
+ def append_state_json()
+ return f',"Switch":{int(self.shadow_onoff)}'
+ end
+
+end
+matter.Plugin_Sensor_GenericSwitch = Matter_Plugin_Sensor_GenericSwitch
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
index db2d700e3..117c02eb6 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Session.be
@@ -260,6 +260,7 @@ class Matter_Session : Matter_Expirable
def get_fabric_label() return self._fabric ? self._fabric.fabric_label : nil end
def get_admin_subject() return self._fabric ? self._fabric.admin_subject : nil end
def get_admin_vendor() return self._fabric ? self._fabric.admin_vendor : nil end
+ def get_node_id() return self._fabric ? self._fabric.device_id : nil end
#############################################################
# Get operational key pair (private key)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 5f0c2fe04..7c3e44357 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -40,6 +40,8 @@ class Matter_Device
var sessions # `matter.Session_Store()` objet
var ui
var tick # increment at each tick, avoids to repeat too frequently some actions
+ # Events
+ var events # Event handler
# Commissioning open
var commissioning_open # timestamp for timeout of commissioning (millis()) or `nil` if closed
var commissioning_iterations # current PBKDF number of iterations
@@ -105,6 +107,7 @@ class Matter_Device
self.sessions = matter.Session_Store(self)
self.sessions.load_fabrics()
self.message_handler = matter.MessageHandler(self)
+ self.events = matter.EventHandler(self)
self.ui = matter.UI(self)
if tasmota.wifi()['up'] || tasmota.eth()['up']
@@ -561,7 +564,7 @@ class Matter_Device
# Optimized version for a single endpoint/cluster/attribute
#
# Retrieve the plugin for a read
- def process_attribute_read_solo(ctx)
+ def resolve_attribute_read_solo(ctx)
var endpoint = ctx.endpoint
# var endpoint_found = false # did any endpoint match
var cluster = ctx.cluster
@@ -768,11 +771,10 @@ class Matter_Device
# {'32': {'filter': 'AXP192#Temperature', 'type': 'temperature'}, '40': {'filter': 'BMP280#Pressure', 'type': 'pressure'}, '34': {'filter': 'SHT3X#Temperature', 'type': 'temperature'}, '33': {'filter': 'BMP280#Temperature', 'type': 'temperature'}, '1': {'relay': 0, 'type': 'relay'}, '56': {'filter': 'SHT3X#Humidity', 'type': 'humidity'}, '0': {'type': 'root'}}
def _instantiate_plugins_from_config(config)
var endpoints = self.k2l_num(config)
- # log("MTR: endpoints to be configured "+str(endpoints), 4)
- log("MTR: Configuring endpoints", 2)
# start with mandatory endpoint 0 for root node
self.plugins.push(matter.Plugin_Root(self, 0, {}))
+ log("MTR: Configuring endpoints", 2)
log(format("MTR: endpoint = %5i type:%s%s", 0, 'root', ''), 2)
# always include an aggregator for dynamic endpoints
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
new file mode 100644
index 000000000..e5659f35c
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
@@ -0,0 +1,492 @@
+/* Solidification of Matter_EventHandler.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_EventHandler;
+
+/********************************************************************
+** Solidified function: queue_event
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_queue_event, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(EventQueued),
+ /* K2 */ be_nested_str_weak(priority),
+ /* K3 */ be_nested_str_weak(queue_debug),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(EVENT_QUEUE_SIZE_MAX),
+ /* K6 */ be_nested_str_weak(pop),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(EVENT_DEBUG),
+ /* K9 */ be_nested_str_weak(queue_info),
+ /* K10 */ be_nested_str_weak(EVENT_INFO),
+ /* K11 */ be_nested_str_weak(queue_critical),
+ }),
+ be_str_weak(queue_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[58]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x880C0502, // 0004 GETMBR R3 R2 K2
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x8C100904, // 0006 GETMET R4 R4 K4
+ 0x5C180400, // 0007 MOVE R6 R2
+ 0x7C100400, // 0008 CALL R4 2
+ 0x6010000C, // 0009 GETGBL R4 G12
+ 0x88140103, // 000A GETMBR R5 R0 K3
+ 0x7C100200, // 000B CALL R4 1
+ 0x88140105, // 000C GETMBR R5 R0 K5
+ 0x24100805, // 000D GT R4 R4 R5
+ 0x78120029, // 000E JMPF R4 #0039
+ 0x88100103, // 000F GETMBR R4 R0 K3
+ 0x8C100906, // 0010 GETMET R4 R4 K6
+ 0x58180007, // 0011 LDCONST R6 K7
+ 0x7C100400, // 0012 CALL R4 2
+ 0x88140902, // 0013 GETMBR R5 R4 K2
+ 0xB81A0000, // 0014 GETNGBL R6 K0
+ 0x88180D08, // 0015 GETMBR R6 R6 K8
+ 0x24140A06, // 0016 GT R5 R5 R6
+ 0x78160020, // 0017 JMPF R5 #0039
+ 0x88140109, // 0018 GETMBR R5 R0 K9
+ 0x8C140B04, // 0019 GETMET R5 R5 K4
+ 0x5C1C0800, // 001A MOVE R7 R4
+ 0x7C140400, // 001B CALL R5 2
+ 0x6014000C, // 001C GETGBL R5 G12
+ 0x88180109, // 001D GETMBR R6 R0 K9
+ 0x7C140200, // 001E CALL R5 1
+ 0x88180105, // 001F GETMBR R6 R0 K5
+ 0x24140A06, // 0020 GT R5 R5 R6
+ 0x78160016, // 0021 JMPF R5 #0039
+ 0x88140109, // 0022 GETMBR R5 R0 K9
+ 0x8C140B06, // 0023 GETMET R5 R5 K6
+ 0x581C0007, // 0024 LDCONST R7 K7
+ 0x7C140400, // 0025 CALL R5 2
+ 0x88180B02, // 0026 GETMBR R6 R5 K2
+ 0xB81E0000, // 0027 GETNGBL R7 K0
+ 0x881C0F0A, // 0028 GETMBR R7 R7 K10
+ 0x24180C07, // 0029 GT R6 R6 R7
+ 0x781A000D, // 002A JMPF R6 #0039
+ 0x8818010B, // 002B GETMBR R6 R0 K11
+ 0x8C180D04, // 002C GETMET R6 R6 K4
+ 0x5C200A00, // 002D MOVE R8 R5
+ 0x7C180400, // 002E CALL R6 2
+ 0x6018000C, // 002F GETGBL R6 G12
+ 0x881C010B, // 0030 GETMBR R7 R0 K11
+ 0x7C180200, // 0031 CALL R6 1
+ 0x881C0105, // 0032 GETMBR R7 R0 K5
+ 0x24180C07, // 0033 GT R6 R6 R7
+ 0x781A0003, // 0034 JMPF R6 #0039
+ 0x8818010B, // 0035 GETMBR R6 R0 K11
+ 0x8C180D06, // 0036 GETMET R6 R6 K6
+ 0x58200007, // 0037 LDCONST R8 K7
+ 0x7C180400, // 0038 CALL R6 2
+ 0x80000000, // 0039 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(queue_debug),
+ /* K2 */ be_nested_str_weak(queue_info),
+ /* K3 */ be_nested_str_weak(queue_critical),
+ /* K4 */ be_nested_str_weak(load_event_no_persisted),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x60080012, // 0004 GETGBL R2 G18
+ 0x7C080000, // 0005 CALL R2 0
+ 0x90020402, // 0006 SETMBR R0 K2 R2
+ 0x60080012, // 0007 GETGBL R2 G18
+ 0x7C080000, // 0008 CALL R2 0
+ 0x90020602, // 0009 SETMBR R0 K3 R2
+ 0x8C080104, // 000A GETMET R2 R0 K4
+ 0x7C080200, // 000B CALL R2 1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_next_event_no
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_get_next_event_no, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(counter_event_no),
+ /* K1 */ be_nested_str_weak(add),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(counter_event_no_persisted),
+ /* K4 */ be_nested_str_weak(load_event_no_persisted),
+ }),
+ be_str_weak(get_next_event_no),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x580C0002, // 0002 LDCONST R3 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x90020001, // 0004 SETMBR R0 K0 R1
+ 0x88040100, // 0005 GETMBR R1 R0 K0
+ 0x88080103, // 0006 GETMBR R2 R0 K3
+ 0x28040202, // 0007 GE R1 R1 R2
+ 0x78060001, // 0008 JMPF R1 #000B
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x88040100, // 000B GETMBR R1 R0 K0
+ 0x80040200, // 000C RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: dump
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_dump, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Events_X20queues_X20sizes_X3A_X20critical_X20_X25s_X2C_X20info_X20_X25s_X2C_X20debug_X20_X25s),
+ /* K3 */ be_nested_str_weak(queue_critical),
+ /* K4 */ be_nested_str_weak(queue_info),
+ /* K5 */ be_nested_str_weak(queue_debug),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(priority),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(stop_iteration),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20Events_X20by_X20types_X3A_X20critical_X20_X25s_X2C_X20info_X20_X25s_X2C_X20debug_X20_X25s),
+ }),
+ be_str_weak(dump),
+ &be_const_str_solidified,
+ ( &(const binstruction[74]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x600C0018, // 0002 GETGBL R3 G24
+ 0x58100002, // 0003 LDCONST R4 K2
+ 0x6014000C, // 0004 GETGBL R5 G12
+ 0x88180103, // 0005 GETMBR R6 R0 K3
+ 0x7C140200, // 0006 CALL R5 1
+ 0x6018000C, // 0007 GETGBL R6 G12
+ 0x881C0104, // 0008 GETMBR R7 R0 K4
+ 0x7C180200, // 0009 CALL R6 1
+ 0x601C000C, // 000A GETGBL R7 G12
+ 0x88200105, // 000B GETMBR R8 R0 K5
+ 0x7C1C0200, // 000C CALL R7 1
+ 0x7C0C0800, // 000D CALL R3 4
+ 0x58100006, // 000E LDCONST R4 K6
+ 0x7C040600, // 000F CALL R1 3
+ 0x60040012, // 0010 GETGBL R1 G18
+ 0x7C040000, // 0011 CALL R1 0
+ 0x40080307, // 0012 CONNECT R2 R1 K7
+ 0x40080307, // 0013 CONNECT R2 R1 K7
+ 0x40080307, // 0014 CONNECT R2 R1 K7
+ 0x60080010, // 0015 GETGBL R2 G16
+ 0x880C0105, // 0016 GETMBR R3 R0 K5
+ 0x7C080200, // 0017 CALL R2 1
+ 0xA8020006, // 0018 EXBLK 0 #0020
+ 0x5C0C0400, // 0019 MOVE R3 R2
+ 0x7C0C0000, // 001A CALL R3 0
+ 0x88100708, // 001B GETMBR R4 R3 K8
+ 0x94140204, // 001C GETIDX R5 R1 R4
+ 0x00140B09, // 001D ADD R5 R5 K9
+ 0x98040805, // 001E SETIDX R1 R4 R5
+ 0x7001FFF8, // 001F JMP #0019
+ 0x5808000A, // 0020 LDCONST R2 K10
+ 0xAC080200, // 0021 CATCH R2 1 0
+ 0xB0080000, // 0022 RAISE 2 R0 R0
+ 0x60080010, // 0023 GETGBL R2 G16
+ 0x880C0104, // 0024 GETMBR R3 R0 K4
+ 0x7C080200, // 0025 CALL R2 1
+ 0xA8020006, // 0026 EXBLK 0 #002E
+ 0x5C0C0400, // 0027 MOVE R3 R2
+ 0x7C0C0000, // 0028 CALL R3 0
+ 0x88100708, // 0029 GETMBR R4 R3 K8
+ 0x94140204, // 002A GETIDX R5 R1 R4
+ 0x00140B09, // 002B ADD R5 R5 K9
+ 0x98040805, // 002C SETIDX R1 R4 R5
+ 0x7001FFF8, // 002D JMP #0027
+ 0x5808000A, // 002E LDCONST R2 K10
+ 0xAC080200, // 002F CATCH R2 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0x60080010, // 0031 GETGBL R2 G16
+ 0x880C0103, // 0032 GETMBR R3 R0 K3
+ 0x7C080200, // 0033 CALL R2 1
+ 0xA8020006, // 0034 EXBLK 0 #003C
+ 0x5C0C0400, // 0035 MOVE R3 R2
+ 0x7C0C0000, // 0036 CALL R3 0
+ 0x88100708, // 0037 GETMBR R4 R3 K8
+ 0x94140204, // 0038 GETIDX R5 R1 R4
+ 0x00140B09, // 0039 ADD R5 R5 K9
+ 0x98040805, // 003A SETIDX R1 R4 R5
+ 0x7001FFF8, // 003B JMP #0035
+ 0x5808000A, // 003C LDCONST R2 K10
+ 0xAC080200, // 003D CATCH R2 1 0
+ 0xB0080000, // 003E RAISE 2 R0 R0
+ 0xB80A0000, // 003F GETNGBL R2 K0
+ 0x8C080501, // 0040 GETMET R2 R2 K1
+ 0x60100018, // 0041 GETGBL R4 G24
+ 0x5814000B, // 0042 LDCONST R5 K11
+ 0x94180306, // 0043 GETIDX R6 R1 K6
+ 0x941C0309, // 0044 GETIDX R7 R1 K9
+ 0x94200307, // 0045 GETIDX R8 R1 K7
+ 0x7C100800, // 0046 CALL R4 4
+ 0x58140006, // 0047 LDCONST R5 K6
+ 0x7C080600, // 0048 CALL R2 3
+ 0x80000000, // 0049 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: load_event_no_persisted
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_load_event_no_persisted, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(persist),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(EVENT_NO_FILENAME),
+ /* K3 */ be_nested_str_weak(0),
+ /* K4 */ be_nested_str_weak(counter_event_no),
+ /* K5 */ be_nested_str_weak(int64),
+ /* K6 */ be_nested_str_weak(fromstring),
+ /* K7 */ be_nested_str_weak(counter_event_no_persisted),
+ /* K8 */ be_nested_str_weak(add),
+ /* K9 */ be_nested_str_weak(EVENT_NO_INCR),
+ /* K10 */ be_nested_str_weak(setmember),
+ /* K11 */ be_nested_str_weak(tostring),
+ /* K12 */ be_nested_str_weak(save),
+ }),
+ be_str_weak(load_event_no_persisted),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x60080008, // 0001 GETGBL R2 G8
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x88140102, // 0003 GETMBR R5 R0 K2
+ 0x58180003, // 0004 LDCONST R6 K3
+ 0x7C0C0600, // 0005 CALL R3 3
+ 0x7C080200, // 0006 CALL R2 1
+ 0xB80E0A00, // 0007 GETNGBL R3 K5
+ 0x8C0C0706, // 0008 GETMET R3 R3 K6
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x90020803, // 000B SETMBR R0 K4 R3
+ 0x880C0104, // 000C GETMBR R3 R0 K4
+ 0x8C0C0708, // 000D GETMET R3 R3 K8
+ 0x88140109, // 000E GETMBR R5 R0 K9
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x90020E03, // 0010 SETMBR R0 K7 R3
+ 0x8C0C030A, // 0011 GETMET R3 R1 K10
+ 0x88140102, // 0012 GETMBR R5 R0 K2
+ 0x88180107, // 0013 GETMBR R6 R0 K7
+ 0x8C180D0B, // 0014 GETMET R6 R6 K11
+ 0x7C180200, // 0015 CALL R6 1
+ 0x7C0C0600, // 0016 CALL R3 3
+ 0x8C0C030C, // 0017 GETMET R3 R1 K12
+ 0x7C0C0200, // 0018 CALL R3 1
+ 0x80000000, // 0019 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_EventHandler
+********************************************************************/
+be_local_class(Matter_EventHandler,
+ 6,
+ NULL,
+ be_nested_map(14,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(EVENT_NO_INCR, -1), be_const_int(1000) },
+ { be_const_key_weak(queue_info, -1), be_const_var(1) },
+ { be_const_key_weak(queue_critical, 11), be_const_var(2) },
+ { be_const_key_weak(queue_event, -1), be_const_closure(class_Matter_EventHandler_queue_event_closure) },
+ { be_const_key_weak(counter_event_no_persisted, 6), be_const_var(5) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_EventHandler_init_closure) },
+ { be_const_key_weak(get_next_event_no, -1), be_const_closure(class_Matter_EventHandler_get_next_event_no_closure) },
+ { be_const_key_weak(dump, -1), be_const_closure(class_Matter_EventHandler_dump_closure) },
+ { be_const_key_weak(queue_debug, 10), be_const_var(0) },
+ { be_const_key_weak(EVENT_NO_FILENAME, -1), be_nested_str_weak(_matter_event_no) },
+ { be_const_key_weak(counter_event_no, -1), be_const_var(4) },
+ { be_const_key_weak(EVENT_QUEUE_SIZE_MAX, -1), be_const_int(10) },
+ { be_const_key_weak(load_event_no_persisted, -1), be_const_closure(class_Matter_EventHandler_load_event_no_persisted_closure) },
+ { be_const_key_weak(device, -1), be_const_var(3) },
+ })),
+ be_str_weak(Matter_EventHandler)
+);
+
+extern const bclass be_class_Matter_EventQueued;
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(path),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(event_id),
+ /* K4 */ be_nested_str_weak(event),
+ /* K5 */ be_nested_str_weak(is_urgent),
+ /* K6 */ be_nested_str_weak(priority),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(matter),
+ /* K9 */ be_nested_str_weak(EVENT_CRITICAL),
+ /* K10 */ be_nested_str_weak(event_no),
+ /* K11 */ be_nested_str_weak(int64),
+ /* K12 */ be_nested_str_weak(toint64),
+ /* K13 */ be_nested_str_weak(event_number),
+ /* K14 */ be_nested_str_weak(raw_tlv),
+ /* K15 */ be_nested_str_weak(to_TLV),
+ /* K16 */ be_nested_str_weak(tlv2raw),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[37]) { /* code */
+ 0x88080301, // 0000 GETMBR R2 R1 K1
+ 0x88080500, // 0001 GETMBR R2 R2 K0
+ 0x90020002, // 0002 SETMBR R0 K0 R2
+ 0x88080301, // 0003 GETMBR R2 R1 K1
+ 0x88080502, // 0004 GETMBR R2 R2 K2
+ 0x90020402, // 0005 SETMBR R0 K2 R2
+ 0x88080301, // 0006 GETMBR R2 R1 K1
+ 0x88080504, // 0007 GETMBR R2 R2 K4
+ 0x90020602, // 0008 SETMBR R0 K3 R2
+ 0x88080301, // 0009 GETMBR R2 R1 K1
+ 0x88080505, // 000A GETMBR R2 R2 K5
+ 0x90020A02, // 000B SETMBR R0 K5 R2
+ 0x88080306, // 000C GETMBR R2 R1 K6
+ 0x90020C02, // 000D SETMBR R0 K6 R2
+ 0x88080106, // 000E GETMBR R2 R0 K6
+ 0x14080507, // 000F LT R2 R2 K7
+ 0x780A0000, // 0010 JMPF R2 #0012
+ 0x90020D07, // 0011 SETMBR R0 K6 K7
+ 0x88080106, // 0012 GETMBR R2 R0 K6
+ 0xB80E1000, // 0013 GETNGBL R3 K8
+ 0x880C0709, // 0014 GETMBR R3 R3 K9
+ 0x24080403, // 0015 GT R2 R2 R3
+ 0x780A0002, // 0016 JMPF R2 #001A
+ 0xB80A1000, // 0017 GETNGBL R2 K8
+ 0x88080509, // 0018 GETMBR R2 R2 K9
+ 0x90020C02, // 0019 SETMBR R0 K6 R2
+ 0xB80A1600, // 001A GETNGBL R2 K11
+ 0x8C08050C, // 001B GETMET R2 R2 K12
+ 0x8810030D, // 001C GETMBR R4 R1 K13
+ 0x7C080400, // 001D CALL R2 2
+ 0x90021402, // 001E SETMBR R0 K10 R2
+ 0x8C08030F, // 001F GETMET R2 R1 K15
+ 0x7C080200, // 0020 CALL R2 1
+ 0x8C080510, // 0021 GETMET R2 R2 K16
+ 0x7C080200, // 0022 CALL R2 1
+ 0x90021C02, // 0023 SETMBR R0 K14 R2
+ 0x80000000, // 0024 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_EventQueued
+********************************************************************/
+be_local_class(Matter_EventQueued,
+ 7,
+ NULL,
+ be_nested_map(8,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(is_urgent, -1), be_const_var(3) },
+ { be_const_key_weak(priority, -1), be_const_var(4) },
+ { be_const_key_weak(endpoint, -1), be_const_var(0) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_EventQueued_init_closure) },
+ { be_const_key_weak(raw_tlv, 2), be_const_var(6) },
+ { be_const_key_weak(event_id, 6), be_const_var(2) },
+ { be_const_key_weak(cluster, -1), be_const_var(1) },
+ { be_const_key_weak(event_no, 0), be_const_var(5) },
+ })),
+ be_str_weak(Matter_EventQueued)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 1df1d46ab..52c50b066 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -1454,7 +1454,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
&be_class_Matter_IM,
}),
1, /* has constants */
- ( &(const bvalue[29]) { /* constants */
+ ( &(const bvalue[31]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(WriteRequestMessage),
/* K2 */ be_nested_str_weak(from_TLV),
@@ -1474,20 +1474,22 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
/* K16 */ be_nested_str_weak(status),
/* K17 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
/* K18 */ be_nested_str_weak(INVALID_ACTION),
- /* K19 */ be_nested_str_weak(get_attribute_name),
- /* K20 */ be_nested_str_weak(log),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
- /* K22 */ be_nested_str_weak(_X20_X28),
- /* K23 */ be_nested_str_weak(_X29),
- /* K24 */ be_nested_str_weak(),
- /* K25 */ be_const_int(3),
- /* K26 */ be_nested_str_weak(process_attribute_expansion),
- /* K27 */ be_nested_str_weak(stop_iteration),
- /* K28 */ be_nested_str_weak(send_write_response),
+ /* K19 */ be_nested_str_weak(tasmota),
+ /* K20 */ be_nested_str_weak(loglevel),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(get_attribute_name),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
+ /* K25 */ be_nested_str_weak(_X20_X28),
+ /* K26 */ be_nested_str_weak(_X29),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_nested_str_weak(process_attribute_expansion),
+ /* K29 */ be_nested_str_weak(stop_iteration),
+ /* K30 */ be_nested_str_weak(send_write_response),
}),
be_str_weak(process_write_request),
&be_const_str_solidified,
- ( &(const binstruction[103]) { /* code */
+ ( &(const binstruction[108]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -1506,7 +1508,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x88200708, // 000F GETMBR R8 R3 K8
0x4C240000, // 0010 LDNIL R9
0x20201009, // 0011 NE R8 R8 R9
- 0x78220050, // 0012 JMPF R8 #0064
+ 0x78220055, // 0012 JMPF R8 #0069
0xB8220000, // 0013 GETNGBL R8 K0
0x8C201109, // 0014 GETMET R8 R8 K9
0x7C200200, // 0015 CALL R8 1
@@ -1516,7 +1518,7 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x60240010, // 0019 GETGBL R9 G16
0x88280708, // 001A GETMBR R10 R3 K8
0x7C240200, // 001B CALL R9 1
- 0xA802003C, // 001C EXBLK 0 #005A
+ 0xA8020041, // 001C EXBLK 0 #005F
0x5C281200, // 001D MOVE R10 R9
0x7C280000, // 001E CALL R10 0
0x882C150B, // 001F GETMBR R11 R10 K11
@@ -1549,48 +1551,53 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
0x50480200, // 003A LDBOOL R18 1 0
0x7C340A00, // 003B CALL R13 5
0x7001FFDF, // 003C JMP #001D
- 0x88340F0D, // 003D GETMBR R13 R7 K13
- 0x4C380000, // 003E LDNIL R14
- 0x1C341A0E, // 003F EQ R13 R13 R14
- 0x78360011, // 0040 JMPF R13 #0053
- 0xB8360000, // 0041 GETNGBL R13 K0
- 0x8C341B13, // 0042 GETMET R13 R13 K19
- 0x883C0F0E, // 0043 GETMBR R15 R7 K14
- 0x88400F0F, // 0044 GETMBR R16 R7 K15
- 0x7C340600, // 0045 CALL R13 3
- 0xB83A2800, // 0046 GETNGBL R14 K20
- 0x603C0008, // 0047 GETGBL R15 G8
- 0x5C400E00, // 0048 MOVE R16 R7
- 0x7C3C0200, // 0049 CALL R15 1
- 0x003E2A0F, // 004A ADD R15 K21 R15
- 0x78360002, // 004B JMPF R13 #004F
- 0x00422C0D, // 004C ADD R16 K22 R13
- 0x00402117, // 004D ADD R16 R16 K23
- 0x70020000, // 004E JMP #0050
- 0x58400018, // 004F LDCONST R16 K24
- 0x003C1E10, // 0050 ADD R15 R15 R16
- 0x58400019, // 0051 LDCONST R16 K25
- 0x7C380400, // 0052 CALL R14 2
- 0x88340104, // 0053 GETMBR R13 R0 K4
- 0x8C341B1A, // 0054 GETMET R13 R13 K26
- 0x5C3C0E00, // 0055 MOVE R15 R7
- 0x84400001, // 0056 CLOSURE R16 P1
- 0x7C340600, // 0057 CALL R13 3
- 0xA0240000, // 0058 CLOSE R9
- 0x7001FFC2, // 0059 JMP #001D
- 0x5824001B, // 005A LDCONST R9 K27
- 0xAC240200, // 005B CATCH R9 1 0
- 0xB0080000, // 005C RAISE 2 R0 R0
- 0x5C240800, // 005D MOVE R9 R4
- 0x74260003, // 005E JMPT R9 #0063
- 0x8C24011C, // 005F GETMET R9 R0 K28
- 0x5C2C0200, // 0060 MOVE R11 R1
- 0x5C301000, // 0061 MOVE R12 R8
- 0x7C240600, // 0062 CALL R9 3
- 0xA0200000, // 0063 CLOSE R8
- 0x50200200, // 0064 LDBOOL R8 1 0
- 0xA0000000, // 0065 CLOSE R0
- 0x80041000, // 0066 RET 1 R8
+ 0xB8362600, // 003D GETNGBL R13 K19
+ 0x8C341B14, // 003E GETMET R13 R13 K20
+ 0x583C0015, // 003F LDCONST R15 K21
+ 0x7C340400, // 0040 CALL R13 2
+ 0x78360015, // 0041 JMPF R13 #0058
+ 0x88340F0D, // 0042 GETMBR R13 R7 K13
+ 0x4C380000, // 0043 LDNIL R14
+ 0x1C341A0E, // 0044 EQ R13 R13 R14
+ 0x78360011, // 0045 JMPF R13 #0058
+ 0xB8360000, // 0046 GETNGBL R13 K0
+ 0x8C341B16, // 0047 GETMET R13 R13 K22
+ 0x883C0F0E, // 0048 GETMBR R15 R7 K14
+ 0x88400F0F, // 0049 GETMBR R16 R7 K15
+ 0x7C340600, // 004A CALL R13 3
+ 0xB83A2E00, // 004B GETNGBL R14 K23
+ 0x603C0008, // 004C GETGBL R15 G8
+ 0x5C400E00, // 004D MOVE R16 R7
+ 0x7C3C0200, // 004E CALL R15 1
+ 0x003E300F, // 004F ADD R15 K24 R15
+ 0x78360002, // 0050 JMPF R13 #0054
+ 0x0042320D, // 0051 ADD R16 K25 R13
+ 0x0040211A, // 0052 ADD R16 R16 K26
+ 0x70020000, // 0053 JMP #0055
+ 0x5840001B, // 0054 LDCONST R16 K27
+ 0x003C1E10, // 0055 ADD R15 R15 R16
+ 0x58400015, // 0056 LDCONST R16 K21
+ 0x7C380400, // 0057 CALL R14 2
+ 0x88340104, // 0058 GETMBR R13 R0 K4
+ 0x8C341B1C, // 0059 GETMET R13 R13 K28
+ 0x5C3C0E00, // 005A MOVE R15 R7
+ 0x84400001, // 005B CLOSURE R16 P1
+ 0x7C340600, // 005C CALL R13 3
+ 0xA0240000, // 005D CLOSE R9
+ 0x7001FFBD, // 005E JMP #001D
+ 0x5824001D, // 005F LDCONST R9 K29
+ 0xAC240200, // 0060 CATCH R9 1 0
+ 0xB0080000, // 0061 RAISE 2 R0 R0
+ 0x5C240800, // 0062 MOVE R9 R4
+ 0x74260003, // 0063 JMPT R9 #0068
+ 0x8C24011E, // 0064 GETMET R9 R0 K30
+ 0x5C2C0200, // 0065 MOVE R11 R1
+ 0x5C301000, // 0066 MOVE R12 R8
+ 0x7C240600, // 0067 CALL R9 3
+ 0xA0200000, // 0068 CLOSE R8
+ 0x50200200, // 0069 LDBOOL R8 1 0
+ 0xA0000000, // 006A CLOSE R0
+ 0x80041000, // 006B RET 1 R8
})
)
);
@@ -2196,7 +2203,7 @@ be_local_closure(class_Matter_IM_send_status, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
be_nested_proto(
- 18, /* nstack */
+ 23, /* nstack */
5, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2219,33 +2226,33 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
( &(const bvalue[35]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(get_attribute_name),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(attribute),
- /* K5 */ be_nested_str_weak(_X20_X28),
- /* K6 */ be_nested_str_weak(_X29),
- /* K7 */ be_nested_str_weak(),
- /* K8 */ be_nested_str_weak(status),
- /* K9 */ be_nested_str_weak(read_attribute),
- /* K10 */ be_nested_str_weak(tlv_solo),
- /* K11 */ be_nested_str_weak(to_str_val),
- /* K12 */ be_nested_str_weak(is_list),
- /* K13 */ be_nested_str_weak(is_array),
- /* K14 */ be_nested_str_weak(encode_len),
- /* K15 */ be_nested_str_weak(IM_ReportData),
- /* K16 */ be_nested_str_weak(MAX_MESSAGE),
- /* K17 */ be_nested_str_weak(Matter_TLV_array),
- /* K18 */ be_nested_str_weak(attributedata2raw),
- /* K19 */ be_nested_str_weak(push),
- /* K20 */ be_nested_str_weak(val),
- /* K21 */ be_nested_str_weak(stop_iteration),
- /* K22 */ be_nested_str_weak(log),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
- /* K24 */ be_nested_str_weak(local_session_id),
- /* K25 */ be_const_int(3),
- /* K26 */ be_nested_str_weak(attributestatus2raw),
- /* K27 */ be_nested_str_weak(tasmota),
- /* K28 */ be_nested_str_weak(loglevel),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(get_attribute_name),
+ /* K6 */ be_nested_str_weak(cluster),
+ /* K7 */ be_nested_str_weak(attribute),
+ /* K8 */ be_nested_str_weak(_X20_X28),
+ /* K9 */ be_nested_str_weak(_X29),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(status),
+ /* K12 */ be_nested_str_weak(read_attribute),
+ /* K13 */ be_nested_str_weak(tlv_solo),
+ /* K14 */ be_nested_str_weak(to_str_val),
+ /* K15 */ be_nested_str_weak(is_list),
+ /* K16 */ be_nested_str_weak(is_array),
+ /* K17 */ be_nested_str_weak(encode_len),
+ /* K18 */ be_nested_str_weak(IM_ReportData),
+ /* K19 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K20 */ be_nested_str_weak(Matter_TLV_array),
+ /* K21 */ be_nested_str_weak(attributedata2raw),
+ /* K22 */ be_nested_str_weak(push),
+ /* K23 */ be_nested_str_weak(val),
+ /* K24 */ be_nested_str_weak(stop_iteration),
+ /* K25 */ be_nested_str_weak(log),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
+ /* K27 */ be_nested_str_weak(local_session_id),
+ /* K28 */ be_nested_str_weak(attributestatus2raw),
/* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
/* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
/* K31 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20IGNORED),
@@ -2255,242 +2262,259 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
}),
be_str_weak(read_single_attribute),
&be_const_str_solidified,
- ( &(const binstruction[235]) { /* code */
+ ( &(const binstruction[252]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
- 0xB8160000, // 0002 GETNGBL R5 K0
- 0x8C140B02, // 0003 GETMET R5 R5 K2
- 0x881C0503, // 0004 GETMBR R7 R2 K3
- 0x88200504, // 0005 GETMBR R8 R2 K4
- 0x7C140600, // 0006 CALL R5 3
- 0x78160002, // 0007 JMPF R5 #000B
- 0x001A0A05, // 0008 ADD R6 K5 R5
- 0x00180D06, // 0009 ADD R6 R6 K6
- 0x70020000, // 000A JMP #000C
- 0x58180007, // 000B LDCONST R6 K7
- 0x5C140C00, // 000C MOVE R5 R6
- 0x4C180000, // 000D LDNIL R6
- 0x900A1006, // 000E SETMBR R2 K8 R6
- 0x4C180000, // 000F LDNIL R6
- 0x20180206, // 0010 NE R6 R1 R6
- 0x781A0006, // 0011 JMPF R6 #0019
- 0x8C180309, // 0012 GETMET R6 R1 K9
- 0x68200000, // 0013 GETUPV R8 U0
- 0x5C240400, // 0014 MOVE R9 R2
- 0x68280001, // 0015 GETUPV R10 U1
- 0x8828150A, // 0016 GETMBR R10 R10 K10
- 0x7C180800, // 0017 CALL R6 4
- 0x70020000, // 0018 JMP #001A
- 0x4C180000, // 0019 LDNIL R6
- 0x501C0200, // 001A LDBOOL R7 1 0
- 0x4C200000, // 001B LDNIL R8
- 0x4C240000, // 001C LDNIL R9
- 0x20240C09, // 001D NE R9 R6 R9
- 0x78260053, // 001E JMPF R9 #0073
- 0x58240007, // 001F LDCONST R9 K7
- 0x68280002, // 0020 GETUPV R10 U2
- 0x742A0002, // 0021 JMPT R10 #0025
- 0x8C280D0B, // 0022 GETMET R10 R6 K11
- 0x7C280200, // 0023 CALL R10 1
- 0x5C241400, // 0024 MOVE R9 R10
- 0x88280D0C, // 0025 GETMBR R10 R6 K12
- 0x742A0001, // 0026 JMPT R10 #0029
- 0x88280D0D, // 0027 GETMBR R10 R6 K13
- 0x782A0031, // 0028 JMPF R10 #005B
+ 0x4C140000, // 0002 LDNIL R5
+ 0xB81A0400, // 0003 GETNGBL R6 K2
+ 0x8C180D03, // 0004 GETMET R6 R6 K3
+ 0x58200004, // 0005 LDCONST R8 K4
+ 0x7C180400, // 0006 CALL R6 2
+ 0x781A000B, // 0007 JMPF R6 #0014
+ 0xB81A0000, // 0008 GETNGBL R6 K0
+ 0x8C180D05, // 0009 GETMET R6 R6 K5
+ 0x88200506, // 000A GETMBR R8 R2 K6
+ 0x88240507, // 000B GETMBR R9 R2 K7
+ 0x7C180600, // 000C CALL R6 3
+ 0x5C140C00, // 000D MOVE R5 R6
+ 0x78160002, // 000E JMPF R5 #0012
+ 0x001A1005, // 000F ADD R6 K8 R5
+ 0x00180D09, // 0010 ADD R6 R6 K9
+ 0x70020000, // 0011 JMP #0013
+ 0x5818000A, // 0012 LDCONST R6 K10
+ 0x5C140C00, // 0013 MOVE R5 R6
+ 0x4C180000, // 0014 LDNIL R6
+ 0x900A1606, // 0015 SETMBR R2 K11 R6
+ 0x4C180000, // 0016 LDNIL R6
+ 0x20180206, // 0017 NE R6 R1 R6
+ 0x781A0006, // 0018 JMPF R6 #0020
+ 0x8C18030C, // 0019 GETMET R6 R1 K12
+ 0x68200000, // 001A GETUPV R8 U0
+ 0x5C240400, // 001B MOVE R9 R2
+ 0x68280001, // 001C GETUPV R10 U1
+ 0x8828150D, // 001D GETMBR R10 R10 K13
+ 0x7C180800, // 001E CALL R6 4
+ 0x70020000, // 001F JMP #0021
+ 0x4C180000, // 0020 LDNIL R6
+ 0x501C0200, // 0021 LDBOOL R7 1 0
+ 0x4C200000, // 0022 LDNIL R8
+ 0x4C240000, // 0023 LDNIL R9
+ 0x20240C09, // 0024 NE R9 R6 R9
+ 0x78260058, // 0025 JMPF R9 #007F
+ 0x5824000A, // 0026 LDCONST R9 K10
+ 0x68280002, // 0027 GETUPV R10 U2
+ 0x742A0002, // 0028 JMPT R10 #002C
0x8C280D0E, // 0029 GETMET R10 R6 K14
0x7C280200, // 002A CALL R10 1
- 0xB82E0000, // 002B GETNGBL R11 K0
- 0x882C170F, // 002C GETMBR R11 R11 K15
- 0x882C1710, // 002D GETMBR R11 R11 K16
- 0x2428140B, // 002E GT R10 R10 R11
- 0x782A002A, // 002F JMPF R10 #005B
- 0x60280012, // 0030 GETGBL R10 G18
- 0x7C280000, // 0031 CALL R10 0
- 0x5C201400, // 0032 MOVE R8 R10
- 0x60280015, // 0033 GETGBL R10 G21
- 0x542E002F, // 0034 LDINT R11 48
- 0x7C280200, // 0035 CALL R10 1
- 0x8C2C0911, // 0036 GETMET R11 R4 K17
- 0x7C2C0200, // 0037 CALL R11 1
- 0x68300001, // 0038 GETUPV R12 U1
- 0x8C301912, // 0039 GETMET R12 R12 K18
- 0x5C381400, // 003A MOVE R14 R10
- 0x5C3C0400, // 003B MOVE R15 R2
- 0x5C401600, // 003C MOVE R16 R11
- 0x50440000, // 003D LDBOOL R17 0 0
- 0x7C300A00, // 003E CALL R12 5
- 0x8C301113, // 003F GETMET R12 R8 K19
- 0x5C381400, // 0040 MOVE R14 R10
- 0x7C300400, // 0041 CALL R12 2
- 0x60300010, // 0042 GETGBL R12 G16
- 0x88340D14, // 0043 GETMBR R13 R6 K20
- 0x7C300200, // 0044 CALL R12 1
- 0xA8020010, // 0045 EXBLK 0 #0057
- 0x5C341800, // 0046 MOVE R13 R12
- 0x7C340000, // 0047 CALL R13 0
- 0x60380015, // 0048 GETGBL R14 G21
- 0x543E002F, // 0049 LDINT R15 48
- 0x7C380200, // 004A CALL R14 1
- 0x5C281C00, // 004B MOVE R10 R14
- 0x68380001, // 004C GETUPV R14 U1
- 0x8C381D12, // 004D GETMET R14 R14 K18
- 0x5C401400, // 004E MOVE R16 R10
- 0x5C440400, // 004F MOVE R17 R2
- 0x5C481A00, // 0050 MOVE R18 R13
- 0x504C0200, // 0051 LDBOOL R19 1 0
- 0x7C380A00, // 0052 CALL R14 5
- 0x8C381113, // 0053 GETMET R14 R8 K19
- 0x5C401400, // 0054 MOVE R16 R10
- 0x7C380400, // 0055 CALL R14 2
- 0x7001FFEE, // 0056 JMP #0046
- 0x58300015, // 0057 LDCONST R12 K21
- 0xAC300200, // 0058 CATCH R12 1 0
- 0xB0080000, // 0059 RAISE 2 R0 R0
- 0x70020009, // 005A JMP #0065
- 0x60280015, // 005B GETGBL R10 G21
- 0x542E002F, // 005C LDINT R11 48
- 0x7C280200, // 005D CALL R10 1
- 0x5C201400, // 005E MOVE R8 R10
- 0x68280001, // 005F GETUPV R10 U1
- 0x8C281512, // 0060 GETMET R10 R10 K18
- 0x5C301000, // 0061 MOVE R12 R8
- 0x5C340400, // 0062 MOVE R13 R2
- 0x5C380C00, // 0063 MOVE R14 R6
- 0x7C280800, // 0064 CALL R10 4
- 0x68280002, // 0065 GETUPV R10 U2
- 0x742A000A, // 0066 JMPT R10 #0072
- 0xB82A2C00, // 0067 GETNGBL R10 K22
- 0x602C0018, // 0068 GETGBL R11 G24
- 0x58300017, // 0069 LDCONST R12 K23
- 0x68340000, // 006A GETUPV R13 U0
- 0x88341B18, // 006B GETMBR R13 R13 K24
- 0x5C380400, // 006C MOVE R14 R2
- 0x5C3C0A00, // 006D MOVE R15 R5
- 0x5C401200, // 006E MOVE R16 R9
- 0x7C2C0A00, // 006F CALL R11 5
- 0x58300019, // 0070 LDCONST R12 K25
- 0x7C280400, // 0071 CALL R10 2
- 0x70020039, // 0072 JMP #00AD
- 0x88240508, // 0073 GETMBR R9 R2 K8
- 0x4C280000, // 0074 LDNIL R10
- 0x2024120A, // 0075 NE R9 R9 R10
- 0x78260025, // 0076 JMPF R9 #009D
- 0x780E0023, // 0077 JMPF R3 #009C
- 0x60240015, // 0078 GETGBL R9 G21
- 0x542A002F, // 0079 LDINT R10 48
- 0x7C240200, // 007A CALL R9 1
- 0x5C201200, // 007B MOVE R8 R9
- 0x68240001, // 007C GETUPV R9 U1
- 0x8C24131A, // 007D GETMET R9 R9 K26
- 0x5C2C1000, // 007E MOVE R11 R8
- 0x5C300400, // 007F MOVE R12 R2
- 0x88340508, // 0080 GETMBR R13 R2 K8
- 0x7C240800, // 0081 CALL R9 4
- 0xB8263600, // 0082 GETNGBL R9 K27
- 0x8C24131C, // 0083 GETMET R9 R9 K28
- 0x582C0019, // 0084 LDCONST R11 K25
- 0x7C240400, // 0085 CALL R9 2
- 0x78260014, // 0086 JMPF R9 #009C
- 0xB8262C00, // 0087 GETNGBL R9 K22
- 0x60280018, // 0088 GETGBL R10 G24
- 0x582C001D, // 0089 LDCONST R11 K29
- 0x68300000, // 008A GETUPV R12 U0
- 0x88301918, // 008B GETMBR R12 R12 K24
- 0x60340008, // 008C GETGBL R13 G8
- 0x5C380400, // 008D MOVE R14 R2
- 0x7C340200, // 008E CALL R13 1
- 0x5C380A00, // 008F MOVE R14 R5
- 0x883C0508, // 0090 GETMBR R15 R2 K8
- 0x88400508, // 0091 GETMBR R16 R2 K8
- 0xB8460000, // 0092 GETNGBL R17 K0
- 0x8844231E, // 0093 GETMBR R17 R17 K30
- 0x1C402011, // 0094 EQ R16 R16 R17
- 0x78420001, // 0095 JMPF R16 #0098
- 0x5840001E, // 0096 LDCONST R16 K30
- 0x70020000, // 0097 JMP #0099
- 0x58400007, // 0098 LDCONST R16 K7
- 0x7C280C00, // 0099 CALL R10 6
- 0x582C0019, // 009A LDCONST R11 K25
- 0x7C240400, // 009B CALL R9 2
- 0x7002000F, // 009C JMP #00AD
- 0x68240002, // 009D GETUPV R9 U2
- 0x7426000B, // 009E JMPT R9 #00AB
- 0xB8262C00, // 009F GETNGBL R9 K22
- 0x60280018, // 00A0 GETGBL R10 G24
- 0x582C001F, // 00A1 LDCONST R11 K31
- 0x68300000, // 00A2 GETUPV R12 U0
- 0x88301918, // 00A3 GETMBR R12 R12 K24
- 0x60340008, // 00A4 GETGBL R13 G8
- 0x5C380400, // 00A5 MOVE R14 R2
- 0x7C340200, // 00A6 CALL R13 1
- 0x5C380A00, // 00A7 MOVE R14 R5
- 0x7C280800, // 00A8 CALL R10 4
- 0x582C0019, // 00A9 LDCONST R11 K25
- 0x7C240400, // 00AA CALL R9 2
- 0x780E0000, // 00AB JMPF R3 #00AD
- 0x501C0000, // 00AC LDBOOL R7 0 0
- 0x6024000F, // 00AD GETGBL R9 G15
- 0x5C281000, // 00AE MOVE R10 R8
- 0x602C0012, // 00AF GETGBL R11 G18
- 0x7C240400, // 00B0 CALL R9 2
- 0x78260001, // 00B1 JMPF R9 #00B4
- 0x58240020, // 00B2 LDCONST R9 K32
- 0x70020000, // 00B3 JMP #00B5
- 0x4C240000, // 00B4 LDNIL R9
- 0x4C280000, // 00B5 LDNIL R10
- 0x2028100A, // 00B6 NE R10 R8 R10
- 0x782A0031, // 00B7 JMPF R10 #00EA
- 0x4C280000, // 00B8 LDNIL R10
- 0x1C28120A, // 00B9 EQ R10 R9 R10
- 0x782A0001, // 00BA JMPF R10 #00BD
- 0x5C281000, // 00BB MOVE R10 R8
- 0x70020000, // 00BC JMP #00BE
- 0x94281009, // 00BD GETIDX R10 R8 R9
- 0x602C000C, // 00BE GETGBL R11 G12
- 0x88300121, // 00BF GETMBR R12 R0 K33
- 0x7C2C0200, // 00C0 CALL R11 1
- 0x1C2C1720, // 00C1 EQ R11 R11 K32
- 0x782E0004, // 00C2 JMPF R11 #00C8
- 0x882C0121, // 00C3 GETMBR R11 R0 K33
- 0x8C2C1713, // 00C4 GETMET R11 R11 K19
- 0x5C341400, // 00C5 MOVE R13 R10
- 0x7C2C0400, // 00C6 CALL R11 2
- 0x70020014, // 00C7 JMP #00DD
- 0x882C0121, // 00C8 GETMBR R11 R0 K33
- 0x5431FFFE, // 00C9 LDINT R12 -1
- 0x942C160C, // 00CA GETIDX R11 R11 R12
- 0x6030000C, // 00CB GETGBL R12 G12
- 0x5C341600, // 00CC MOVE R13 R11
- 0x7C300200, // 00CD CALL R12 1
- 0x6034000C, // 00CE GETGBL R13 G12
- 0x5C381400, // 00CF MOVE R14 R10
- 0x7C340200, // 00D0 CALL R13 1
- 0x0030180D, // 00D1 ADD R12 R12 R13
- 0xB8360000, // 00D2 GETNGBL R13 K0
- 0x88341B0F, // 00D3 GETMBR R13 R13 K15
- 0x88341B10, // 00D4 GETMBR R13 R13 K16
- 0x1830180D, // 00D5 LE R12 R12 R13
- 0x78320001, // 00D6 JMPF R12 #00D9
- 0x4030160A, // 00D7 CONNECT R12 R11 R10
- 0x70020003, // 00D8 JMP #00DD
- 0x88300121, // 00D9 GETMBR R12 R0 K33
- 0x8C301913, // 00DA GETMET R12 R12 K19
- 0x5C381400, // 00DB MOVE R14 R10
- 0x7C300400, // 00DC CALL R12 2
- 0x4C2C0000, // 00DD LDNIL R11
- 0x1C2C120B, // 00DE EQ R11 R9 R11
- 0x782E0001, // 00DF JMPF R11 #00E2
- 0x4C200000, // 00E0 LDNIL R8
- 0x70020006, // 00E1 JMP #00E9
- 0x00241322, // 00E2 ADD R9 R9 K34
- 0x602C000C, // 00E3 GETGBL R11 G12
- 0x5C301000, // 00E4 MOVE R12 R8
- 0x7C2C0200, // 00E5 CALL R11 1
- 0x282C120B, // 00E6 GE R11 R9 R11
- 0x782E0000, // 00E7 JMPF R11 #00E9
- 0x4C200000, // 00E8 LDNIL R8
- 0x7001FFCA, // 00E9 JMP #00B5
- 0x80040E00, // 00EA RET 1 R7
+ 0x5C241400, // 002B MOVE R9 R10
+ 0x88280D0F, // 002C GETMBR R10 R6 K15
+ 0x742A0001, // 002D JMPT R10 #0030
+ 0x88280D10, // 002E GETMBR R10 R6 K16
+ 0x782A0031, // 002F JMPF R10 #0062
+ 0x8C280D11, // 0030 GETMET R10 R6 K17
+ 0x7C280200, // 0031 CALL R10 1
+ 0xB82E0000, // 0032 GETNGBL R11 K0
+ 0x882C1712, // 0033 GETMBR R11 R11 K18
+ 0x882C1713, // 0034 GETMBR R11 R11 K19
+ 0x2428140B, // 0035 GT R10 R10 R11
+ 0x782A002A, // 0036 JMPF R10 #0062
+ 0x60280012, // 0037 GETGBL R10 G18
+ 0x7C280000, // 0038 CALL R10 0
+ 0x5C201400, // 0039 MOVE R8 R10
+ 0x60280015, // 003A GETGBL R10 G21
+ 0x542E002F, // 003B LDINT R11 48
+ 0x7C280200, // 003C CALL R10 1
+ 0x8C2C0914, // 003D GETMET R11 R4 K20
+ 0x7C2C0200, // 003E CALL R11 1
+ 0x68300001, // 003F GETUPV R12 U1
+ 0x8C301915, // 0040 GETMET R12 R12 K21
+ 0x5C381400, // 0041 MOVE R14 R10
+ 0x5C3C0400, // 0042 MOVE R15 R2
+ 0x5C401600, // 0043 MOVE R16 R11
+ 0x50440000, // 0044 LDBOOL R17 0 0
+ 0x7C300A00, // 0045 CALL R12 5
+ 0x8C301116, // 0046 GETMET R12 R8 K22
+ 0x5C381400, // 0047 MOVE R14 R10
+ 0x7C300400, // 0048 CALL R12 2
+ 0x60300010, // 0049 GETGBL R12 G16
+ 0x88340D17, // 004A GETMBR R13 R6 K23
+ 0x7C300200, // 004B CALL R12 1
+ 0xA8020010, // 004C EXBLK 0 #005E
+ 0x5C341800, // 004D MOVE R13 R12
+ 0x7C340000, // 004E CALL R13 0
+ 0x60380015, // 004F GETGBL R14 G21
+ 0x543E002F, // 0050 LDINT R15 48
+ 0x7C380200, // 0051 CALL R14 1
+ 0x5C281C00, // 0052 MOVE R10 R14
+ 0x68380001, // 0053 GETUPV R14 U1
+ 0x8C381D15, // 0054 GETMET R14 R14 K21
+ 0x5C401400, // 0055 MOVE R16 R10
+ 0x5C440400, // 0056 MOVE R17 R2
+ 0x5C481A00, // 0057 MOVE R18 R13
+ 0x504C0200, // 0058 LDBOOL R19 1 0
+ 0x7C380A00, // 0059 CALL R14 5
+ 0x8C381116, // 005A GETMET R14 R8 K22
+ 0x5C401400, // 005B MOVE R16 R10
+ 0x7C380400, // 005C CALL R14 2
+ 0x7001FFEE, // 005D JMP #004D
+ 0x58300018, // 005E LDCONST R12 K24
+ 0xAC300200, // 005F CATCH R12 1 0
+ 0xB0080000, // 0060 RAISE 2 R0 R0
+ 0x70020009, // 0061 JMP #006C
+ 0x60280015, // 0062 GETGBL R10 G21
+ 0x542E002F, // 0063 LDINT R11 48
+ 0x7C280200, // 0064 CALL R10 1
+ 0x5C201400, // 0065 MOVE R8 R10
+ 0x68280001, // 0066 GETUPV R10 U1
+ 0x8C281515, // 0067 GETMET R10 R10 K21
+ 0x5C301000, // 0068 MOVE R12 R8
+ 0x5C340400, // 0069 MOVE R13 R2
+ 0x5C380C00, // 006A MOVE R14 R6
+ 0x7C280800, // 006B CALL R10 4
+ 0xB82A0400, // 006C GETNGBL R10 K2
+ 0x8C281503, // 006D GETMET R10 R10 K3
+ 0x58300004, // 006E LDCONST R12 K4
+ 0x7C280400, // 006F CALL R10 2
+ 0x782A000C, // 0070 JMPF R10 #007E
+ 0x68280002, // 0071 GETUPV R10 U2
+ 0x742A000A, // 0072 JMPT R10 #007E
+ 0xB82A3200, // 0073 GETNGBL R10 K25
+ 0x602C0018, // 0074 GETGBL R11 G24
+ 0x5830001A, // 0075 LDCONST R12 K26
+ 0x68340000, // 0076 GETUPV R13 U0
+ 0x88341B1B, // 0077 GETMBR R13 R13 K27
+ 0x5C380400, // 0078 MOVE R14 R2
+ 0x5C3C0A00, // 0079 MOVE R15 R5
+ 0x5C401200, // 007A MOVE R16 R9
+ 0x7C2C0A00, // 007B CALL R11 5
+ 0x58300004, // 007C LDCONST R12 K4
+ 0x7C280400, // 007D CALL R10 2
+ 0x7002003E, // 007E JMP #00BE
+ 0x8824050B, // 007F GETMBR R9 R2 K11
+ 0x4C280000, // 0080 LDNIL R10
+ 0x2024120A, // 0081 NE R9 R9 R10
+ 0x78260025, // 0082 JMPF R9 #00A9
+ 0x780E0023, // 0083 JMPF R3 #00A8
+ 0x60240015, // 0084 GETGBL R9 G21
+ 0x542A002F, // 0085 LDINT R10 48
+ 0x7C240200, // 0086 CALL R9 1
+ 0x5C201200, // 0087 MOVE R8 R9
+ 0x68240001, // 0088 GETUPV R9 U1
+ 0x8C24131C, // 0089 GETMET R9 R9 K28
+ 0x5C2C1000, // 008A MOVE R11 R8
+ 0x5C300400, // 008B MOVE R12 R2
+ 0x8834050B, // 008C GETMBR R13 R2 K11
+ 0x7C240800, // 008D CALL R9 4
+ 0xB8260400, // 008E GETNGBL R9 K2
+ 0x8C241303, // 008F GETMET R9 R9 K3
+ 0x582C0004, // 0090 LDCONST R11 K4
+ 0x7C240400, // 0091 CALL R9 2
+ 0x78260014, // 0092 JMPF R9 #00A8
+ 0xB8263200, // 0093 GETNGBL R9 K25
+ 0x60280018, // 0094 GETGBL R10 G24
+ 0x582C001D, // 0095 LDCONST R11 K29
+ 0x68300000, // 0096 GETUPV R12 U0
+ 0x8830191B, // 0097 GETMBR R12 R12 K27
+ 0x60340008, // 0098 GETGBL R13 G8
+ 0x5C380400, // 0099 MOVE R14 R2
+ 0x7C340200, // 009A CALL R13 1
+ 0x5C380A00, // 009B MOVE R14 R5
+ 0x883C050B, // 009C GETMBR R15 R2 K11
+ 0x8840050B, // 009D GETMBR R16 R2 K11
+ 0xB8460000, // 009E GETNGBL R17 K0
+ 0x8844231E, // 009F GETMBR R17 R17 K30
+ 0x1C402011, // 00A0 EQ R16 R16 R17
+ 0x78420001, // 00A1 JMPF R16 #00A4
+ 0x5840001E, // 00A2 LDCONST R16 K30
+ 0x70020000, // 00A3 JMP #00A5
+ 0x5840000A, // 00A4 LDCONST R16 K10
+ 0x7C280C00, // 00A5 CALL R10 6
+ 0x582C0004, // 00A6 LDCONST R11 K4
+ 0x7C240400, // 00A7 CALL R9 2
+ 0x70020014, // 00A8 JMP #00BE
+ 0xB8260400, // 00A9 GETNGBL R9 K2
+ 0x8C241303, // 00AA GETMET R9 R9 K3
+ 0x582C0004, // 00AB LDCONST R11 K4
+ 0x7C240400, // 00AC CALL R9 2
+ 0x7826000D, // 00AD JMPF R9 #00BC
+ 0x68240002, // 00AE GETUPV R9 U2
+ 0x7426000B, // 00AF JMPT R9 #00BC
+ 0xB8263200, // 00B0 GETNGBL R9 K25
+ 0x60280018, // 00B1 GETGBL R10 G24
+ 0x582C001F, // 00B2 LDCONST R11 K31
+ 0x68300000, // 00B3 GETUPV R12 U0
+ 0x8830191B, // 00B4 GETMBR R12 R12 K27
+ 0x60340008, // 00B5 GETGBL R13 G8
+ 0x5C380400, // 00B6 MOVE R14 R2
+ 0x7C340200, // 00B7 CALL R13 1
+ 0x5C380A00, // 00B8 MOVE R14 R5
+ 0x7C280800, // 00B9 CALL R10 4
+ 0x582C0004, // 00BA LDCONST R11 K4
+ 0x7C240400, // 00BB CALL R9 2
+ 0x780E0000, // 00BC JMPF R3 #00BE
+ 0x501C0000, // 00BD LDBOOL R7 0 0
+ 0x6024000F, // 00BE GETGBL R9 G15
+ 0x5C281000, // 00BF MOVE R10 R8
+ 0x602C0012, // 00C0 GETGBL R11 G18
+ 0x7C240400, // 00C1 CALL R9 2
+ 0x78260001, // 00C2 JMPF R9 #00C5
+ 0x58240020, // 00C3 LDCONST R9 K32
+ 0x70020000, // 00C4 JMP #00C6
+ 0x4C240000, // 00C5 LDNIL R9
+ 0x4C280000, // 00C6 LDNIL R10
+ 0x2028100A, // 00C7 NE R10 R8 R10
+ 0x782A0031, // 00C8 JMPF R10 #00FB
+ 0x4C280000, // 00C9 LDNIL R10
+ 0x1C28120A, // 00CA EQ R10 R9 R10
+ 0x782A0001, // 00CB JMPF R10 #00CE
+ 0x5C281000, // 00CC MOVE R10 R8
+ 0x70020000, // 00CD JMP #00CF
+ 0x94281009, // 00CE GETIDX R10 R8 R9
+ 0x602C000C, // 00CF GETGBL R11 G12
+ 0x88300121, // 00D0 GETMBR R12 R0 K33
+ 0x7C2C0200, // 00D1 CALL R11 1
+ 0x1C2C1720, // 00D2 EQ R11 R11 K32
+ 0x782E0004, // 00D3 JMPF R11 #00D9
+ 0x882C0121, // 00D4 GETMBR R11 R0 K33
+ 0x8C2C1716, // 00D5 GETMET R11 R11 K22
+ 0x5C341400, // 00D6 MOVE R13 R10
+ 0x7C2C0400, // 00D7 CALL R11 2
+ 0x70020014, // 00D8 JMP #00EE
+ 0x882C0121, // 00D9 GETMBR R11 R0 K33
+ 0x5431FFFE, // 00DA LDINT R12 -1
+ 0x942C160C, // 00DB GETIDX R11 R11 R12
+ 0x6030000C, // 00DC GETGBL R12 G12
+ 0x5C341600, // 00DD MOVE R13 R11
+ 0x7C300200, // 00DE CALL R12 1
+ 0x6034000C, // 00DF GETGBL R13 G12
+ 0x5C381400, // 00E0 MOVE R14 R10
+ 0x7C340200, // 00E1 CALL R13 1
+ 0x0030180D, // 00E2 ADD R12 R12 R13
+ 0xB8360000, // 00E3 GETNGBL R13 K0
+ 0x88341B12, // 00E4 GETMBR R13 R13 K18
+ 0x88341B13, // 00E5 GETMBR R13 R13 K19
+ 0x1830180D, // 00E6 LE R12 R12 R13
+ 0x78320001, // 00E7 JMPF R12 #00EA
+ 0x4030160A, // 00E8 CONNECT R12 R11 R10
+ 0x70020003, // 00E9 JMP #00EE
+ 0x88300121, // 00EA GETMBR R12 R0 K33
+ 0x8C301916, // 00EB GETMET R12 R12 K22
+ 0x5C381400, // 00EC MOVE R14 R10
+ 0x7C300400, // 00ED CALL R12 2
+ 0x4C2C0000, // 00EE LDNIL R11
+ 0x1C2C120B, // 00EF EQ R11 R9 R11
+ 0x782E0001, // 00F0 JMPF R11 #00F3
+ 0x4C200000, // 00F1 LDNIL R8
+ 0x70020006, // 00F2 JMP #00FA
+ 0x00241322, // 00F3 ADD R9 R9 K34
+ 0x602C000C, // 00F4 GETGBL R11 G12
+ 0x5C301000, // 00F5 MOVE R12 R8
+ 0x7C2C0200, // 00F6 CALL R11 1
+ 0x282C120B, // 00F7 GE R11 R9 R11
+ 0x782E0000, // 00F8 JMPF R11 #00FA
+ 0x4C200000, // 00F9 LDNIL R8
+ 0x7001FFCA, // 00FA JMP #00C6
+ 0x80040E00, // 00FB RET 1 R7
})
),
be_nested_proto(
@@ -2500,7 +2524,7 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
1, /* has upvals */
( &(const bupvaldesc[ 2]) { /* upvals */
be_local_const_upval(1, 5),
- be_local_const_upval(1, 8),
+ be_local_const_upval(1, 9),
}),
0, /* has sup protos */
NULL,
@@ -2521,35 +2545,51 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
&be_class_Matter_IM,
}),
1, /* has constants */
- ( &(const bvalue[24]) { /* constants */
+ ( &(const bvalue[40]) { /* constants */
/* K0 */ be_nested_str_weak(device),
/* K1 */ be_nested_str_weak(get_active_endpoints),
/* K2 */ be_nested_str_weak(matter),
/* K3 */ be_nested_str_weak(Path),
/* K4 */ be_nested_str_weak(msg),
- /* K5 */ be_nested_str_weak(ReportDataMessage),
- /* K6 */ be_nested_str_weak(attribute_reports),
- /* K7 */ be_nested_str_weak(attributes_requests),
- /* K8 */ be_nested_str_weak(endpoint),
- /* K9 */ be_nested_str_weak(cluster),
- /* K10 */ be_nested_str_weak(attribute),
- /* K11 */ be_nested_str_weak(fabric_filtered),
- /* K12 */ be_nested_str_weak(status),
- /* K13 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K14 */ be_nested_str_weak(get_attribute_name),
- /* K15 */ be_nested_str_weak(log),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
- /* K17 */ be_nested_str_weak(local_session_id),
- /* K18 */ be_nested_str_weak(_X20_X28),
- /* K19 */ be_nested_str_weak(_X29),
- /* K20 */ be_nested_str_weak(),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(process_attribute_expansion),
- /* K23 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(get_node_id),
+ /* K6 */ be_nested_str_weak(ReportDataMessage),
+ /* K7 */ be_nested_str_weak(attribute_reports),
+ /* K8 */ be_nested_str_weak(attributes_requests),
+ /* K9 */ be_nested_str_weak(endpoint),
+ /* K10 */ be_nested_str_weak(cluster),
+ /* K11 */ be_nested_str_weak(attribute),
+ /* K12 */ be_nested_str_weak(fabric_filtered),
+ /* K13 */ be_nested_str_weak(status),
+ /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ /* K15 */ be_nested_str_weak(tasmota),
+ /* K16 */ be_nested_str_weak(loglevel),
+ /* K17 */ be_const_int(3),
+ /* K18 */ be_nested_str_weak(get_attribute_name),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
+ /* K21 */ be_nested_str_weak(local_session_id),
+ /* K22 */ be_nested_str_weak(_X20_X28),
+ /* K23 */ be_nested_str_weak(_X29),
+ /* K24 */ be_nested_str_weak(),
+ /* K25 */ be_nested_str_weak(process_attribute_expansion),
+ /* K26 */ be_nested_str_weak(stop_iteration),
+ /* K27 */ be_nested_str_weak(event_requests),
+ /* K28 */ be_nested_str_weak(event_filters),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20EventFilter_X20filter_X3D_X25s_X20node_id_X3D_X25s),
+ /* K30 */ be_nested_str_weak(int64),
+ /* K31 */ be_nested_str_weak(toint64),
+ /* K32 */ be_nested_str_weak(node),
+ /* K33 */ be_nested_str_weak(tobytes),
+ /* K34 */ be_nested_str_weak(MTR_X3A_X20node_id_X20filter_X20_X25s_X20doesn_X27t_X20match_X20_X25s),
+ /* K35 */ be_nested_str_weak(tohex),
+ /* K36 */ be_nested_str_weak(event_min),
+ /* K37 */ be_nested_str_weak(event_reports),
+ /* K38 */ be_nested_str_weak(event),
+ /* K39 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X29_X20_X25s),
}),
be_str_weak(_inner_process_read_request),
&be_const_str_solidified,
- ( &(const binstruction[94]) { /* code */
+ ( &(const binstruction[191]) { /* code */
0x84140000, // 0000 CLOSURE R5 P0
0x88180100, // 0001 GETMBR R6 R0 K0
0x8C180D01, // 0002 GETMET R6 R6 K1
@@ -2558,92 +2598,189 @@ be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
0x8C1C0F03, // 0005 GETMET R7 R7 K3
0x7C1C0200, // 0006 CALL R7 1
0x901E0803, // 0007 SETMBR R7 K4 R3
- 0xB8220400, // 0008 GETNGBL R8 K2
- 0x8C201105, // 0009 GETMET R8 R8 K5
- 0x7C200200, // 000A CALL R8 1
- 0x60240012, // 000B GETGBL R9 G18
- 0x7C240000, // 000C CALL R9 0
- 0x90220C09, // 000D SETMBR R8 K6 R9
- 0x60240010, // 000E GETGBL R9 G16
- 0x88280507, // 000F GETMBR R10 R2 K7
- 0x7C240200, // 0010 CALL R9 1
- 0xA8020046, // 0011 EXBLK 0 #0059
- 0x5C281200, // 0012 MOVE R10 R9
+ 0x4C200000, // 0008 LDNIL R8
+ 0x20200608, // 0009 NE R8 R3 R8
+ 0x78220002, // 000A JMPF R8 #000E
+ 0x8C200705, // 000B GETMET R8 R3 K5
+ 0x7C200200, // 000C CALL R8 1
+ 0x70020000, // 000D JMP #000F
+ 0x4C200000, // 000E LDNIL R8
+ 0xB8260400, // 000F GETNGBL R9 K2
+ 0x8C241306, // 0010 GETMET R9 R9 K6
+ 0x7C240200, // 0011 CALL R9 1
+ 0x60280012, // 0012 GETGBL R10 G18
0x7C280000, // 0013 CALL R10 0
- 0x882C1508, // 0014 GETMBR R11 R10 K8
- 0x901E100B, // 0015 SETMBR R7 K8 R11
- 0x882C1509, // 0016 GETMBR R11 R10 K9
- 0x901E120B, // 0017 SETMBR R7 K9 R11
- 0x882C150A, // 0018 GETMBR R11 R10 K10
- 0x901E140B, // 0019 SETMBR R7 K10 R11
- 0x882C050B, // 001A GETMBR R11 R2 K11
- 0x901E160B, // 001B SETMBR R7 K11 R11
- 0xB82E0400, // 001C GETNGBL R11 K2
- 0x882C170D, // 001D GETMBR R11 R11 K13
- 0x901E180B, // 001E SETMBR R7 K12 R11
- 0x882C0F08, // 001F GETMBR R11 R7 K8
- 0x4C300000, // 0020 LDNIL R12
- 0x1C2C160C, // 0021 EQ R11 R11 R12
- 0x742E0007, // 0022 JMPT R11 #002B
- 0x882C0F09, // 0023 GETMBR R11 R7 K9
- 0x4C300000, // 0024 LDNIL R12
- 0x1C2C160C, // 0025 EQ R11 R11 R12
- 0x742E0003, // 0026 JMPT R11 #002B
- 0x882C0F0A, // 0027 GETMBR R11 R7 K10
- 0x4C300000, // 0028 LDNIL R12
- 0x1C2C160C, // 0029 EQ R11 R11 R12
- 0x782E0027, // 002A JMPF R11 #0053
- 0x882C0F09, // 002B GETMBR R11 R7 K9
- 0x4C300000, // 002C LDNIL R12
- 0x202C160C, // 002D NE R11 R11 R12
- 0x782E0019, // 002E JMPF R11 #0049
- 0x882C0F0A, // 002F GETMBR R11 R7 K10
- 0x4C300000, // 0030 LDNIL R12
- 0x202C160C, // 0031 NE R11 R11 R12
- 0x782E0015, // 0032 JMPF R11 #0049
- 0xB82E0400, // 0033 GETNGBL R11 K2
- 0x8C2C170E, // 0034 GETMET R11 R11 K14
- 0x88340F09, // 0035 GETMBR R13 R7 K9
- 0x88380F0A, // 0036 GETMBR R14 R7 K10
- 0x7C2C0600, // 0037 CALL R11 3
- 0xB8321E00, // 0038 GETNGBL R12 K15
- 0x60340018, // 0039 GETGBL R13 G24
- 0x58380010, // 003A LDCONST R14 K16
- 0x883C0311, // 003B GETMBR R15 R1 K17
- 0x60400008, // 003C GETGBL R16 G8
- 0x5C440E00, // 003D MOVE R17 R7
- 0x7C400200, // 003E CALL R16 1
- 0x782E0002, // 003F JMPF R11 #0043
- 0x0046240B, // 0040 ADD R17 K18 R11
- 0x00442313, // 0041 ADD R17 R17 K19
- 0x70020000, // 0042 JMP #0044
- 0x58440014, // 0043 LDCONST R17 K20
- 0x00402011, // 0044 ADD R16 R16 R17
- 0x7C340600, // 0045 CALL R13 3
- 0x58380015, // 0046 LDCONST R14 K21
- 0x7C300400, // 0047 CALL R12 2
- 0x70020009, // 0048 JMP #0053
- 0xB82E1E00, // 0049 GETNGBL R11 K15
- 0x60300018, // 004A GETGBL R12 G24
- 0x58340010, // 004B LDCONST R13 K16
- 0x88380311, // 004C GETMBR R14 R1 K17
- 0x603C0008, // 004D GETGBL R15 G8
- 0x5C400E00, // 004E MOVE R16 R7
- 0x7C3C0200, // 004F CALL R15 1
- 0x7C300600, // 0050 CALL R12 3
- 0x58340015, // 0051 LDCONST R13 K21
- 0x7C2C0400, // 0052 CALL R11 2
- 0x882C0100, // 0053 GETMBR R11 R0 K0
- 0x8C2C1716, // 0054 GETMET R11 R11 K22
- 0x5C340E00, // 0055 MOVE R13 R7
- 0x84380001, // 0056 CLOSURE R14 P1
- 0x7C2C0600, // 0057 CALL R11 3
- 0x7001FFB8, // 0058 JMP #0012
- 0x58240017, // 0059 LDCONST R9 K23
- 0xAC240200, // 005A CATCH R9 1 0
- 0xB0080000, // 005B RAISE 2 R0 R0
- 0xA0000000, // 005C CLOSE R0
- 0x80041000, // 005D RET 1 R8
+ 0x90260E0A, // 0014 SETMBR R9 K7 R10
+ 0x60280010, // 0015 GETGBL R10 G16
+ 0x882C0508, // 0016 GETMBR R11 R2 K8
+ 0x7C280200, // 0017 CALL R10 1
+ 0xA802004B, // 0018 EXBLK 0 #0065
+ 0x5C2C1400, // 0019 MOVE R11 R10
+ 0x7C2C0000, // 001A CALL R11 0
+ 0x88301709, // 001B GETMBR R12 R11 K9
+ 0x901E120C, // 001C SETMBR R7 K9 R12
+ 0x8830170A, // 001D GETMBR R12 R11 K10
+ 0x901E140C, // 001E SETMBR R7 K10 R12
+ 0x8830170B, // 001F GETMBR R12 R11 K11
+ 0x901E160C, // 0020 SETMBR R7 K11 R12
+ 0x8830050C, // 0021 GETMBR R12 R2 K12
+ 0x901E180C, // 0022 SETMBR R7 K12 R12
+ 0xB8320400, // 0023 GETNGBL R12 K2
+ 0x8830190E, // 0024 GETMBR R12 R12 K14
+ 0x901E1A0C, // 0025 SETMBR R7 K13 R12
+ 0x88300F09, // 0026 GETMBR R12 R7 K9
+ 0x4C340000, // 0027 LDNIL R13
+ 0x1C30180D, // 0028 EQ R12 R12 R13
+ 0x74320007, // 0029 JMPT R12 #0032
+ 0x88300F0A, // 002A GETMBR R12 R7 K10
+ 0x4C340000, // 002B LDNIL R13
+ 0x1C30180D, // 002C EQ R12 R12 R13
+ 0x74320003, // 002D JMPT R12 #0032
+ 0x88300F0B, // 002E GETMBR R12 R7 K11
+ 0x4C340000, // 002F LDNIL R13
+ 0x1C30180D, // 0030 EQ R12 R12 R13
+ 0x7832002C, // 0031 JMPF R12 #005F
+ 0xB8321E00, // 0032 GETNGBL R12 K15
+ 0x8C301910, // 0033 GETMET R12 R12 K16
+ 0x58380011, // 0034 LDCONST R14 K17
+ 0x7C300400, // 0035 CALL R12 2
+ 0x78320027, // 0036 JMPF R12 #005F
+ 0x88300F0A, // 0037 GETMBR R12 R7 K10
+ 0x4C340000, // 0038 LDNIL R13
+ 0x2030180D, // 0039 NE R12 R12 R13
+ 0x78320019, // 003A JMPF R12 #0055
+ 0x88300F0B, // 003B GETMBR R12 R7 K11
+ 0x4C340000, // 003C LDNIL R13
+ 0x2030180D, // 003D NE R12 R12 R13
+ 0x78320015, // 003E JMPF R12 #0055
+ 0xB8320400, // 003F GETNGBL R12 K2
+ 0x8C301912, // 0040 GETMET R12 R12 K18
+ 0x88380F0A, // 0041 GETMBR R14 R7 K10
+ 0x883C0F0B, // 0042 GETMBR R15 R7 K11
+ 0x7C300600, // 0043 CALL R12 3
+ 0xB8362600, // 0044 GETNGBL R13 K19
+ 0x60380018, // 0045 GETGBL R14 G24
+ 0x583C0014, // 0046 LDCONST R15 K20
+ 0x88400315, // 0047 GETMBR R16 R1 K21
+ 0x60440008, // 0048 GETGBL R17 G8
+ 0x5C480E00, // 0049 MOVE R18 R7
+ 0x7C440200, // 004A CALL R17 1
+ 0x78320002, // 004B JMPF R12 #004F
+ 0x004A2C0C, // 004C ADD R18 K22 R12
+ 0x00482517, // 004D ADD R18 R18 K23
+ 0x70020000, // 004E JMP #0050
+ 0x58480018, // 004F LDCONST R18 K24
+ 0x00442212, // 0050 ADD R17 R17 R18
+ 0x7C380600, // 0051 CALL R14 3
+ 0x583C0011, // 0052 LDCONST R15 K17
+ 0x7C340400, // 0053 CALL R13 2
+ 0x70020009, // 0054 JMP #005F
+ 0xB8322600, // 0055 GETNGBL R12 K19
+ 0x60340018, // 0056 GETGBL R13 G24
+ 0x58380014, // 0057 LDCONST R14 K20
+ 0x883C0315, // 0058 GETMBR R15 R1 K21
+ 0x60400008, // 0059 GETGBL R16 G8
+ 0x5C440E00, // 005A MOVE R17 R7
+ 0x7C400200, // 005B CALL R16 1
+ 0x7C340600, // 005C CALL R13 3
+ 0x58380011, // 005D LDCONST R14 K17
+ 0x7C300400, // 005E CALL R12 2
+ 0x88300100, // 005F GETMBR R12 R0 K0
+ 0x8C301919, // 0060 GETMET R12 R12 K25
+ 0x5C380E00, // 0061 MOVE R14 R7
+ 0x843C0001, // 0062 CLOSURE R15 P1
+ 0x7C300600, // 0063 CALL R12 3
+ 0x7001FFB3, // 0064 JMP #0019
+ 0x5828001A, // 0065 LDCONST R10 K26
+ 0xAC280200, // 0066 CATCH R10 1 0
+ 0xB0080000, // 0067 RAISE 2 R0 R0
+ 0x8828051B, // 0068 GETMBR R10 R2 K27
+ 0x882C051C, // 0069 GETMBR R11 R2 K28
+ 0x4C300000, // 006A LDNIL R12
+ 0x782A0050, // 006B JMPF R10 #00BD
+ 0x782E0033, // 006C JMPF R11 #00A1
+ 0x60340010, // 006D GETGBL R13 G16
+ 0x5C381600, // 006E MOVE R14 R11
+ 0x7C340200, // 006F CALL R13 1
+ 0xA802002C, // 0070 EXBLK 0 #009E
+ 0x5C381A00, // 0071 MOVE R14 R13
+ 0x7C380000, // 0072 CALL R14 0
+ 0xB83E1E00, // 0073 GETNGBL R15 K15
+ 0x8C3C1F13, // 0074 GETMET R15 R15 K19
+ 0x60440018, // 0075 GETGBL R17 G24
+ 0x5848001D, // 0076 LDCONST R18 K29
+ 0x5C4C1C00, // 0077 MOVE R19 R14
+ 0x5C501000, // 0078 MOVE R20 R8
+ 0x7C440600, // 0079 CALL R17 3
+ 0x58480011, // 007A LDCONST R18 K17
+ 0x7C3C0600, // 007B CALL R15 3
+ 0xB83E3C00, // 007C GETNGBL R15 K30
+ 0x8C3C1F1F, // 007D GETMET R15 R15 K31
+ 0x88441D20, // 007E GETMBR R17 R14 K32
+ 0x7C3C0400, // 007F CALL R15 2
+ 0x783E001B, // 0080 JMPF R15 #009D
+ 0x88401D20, // 0081 GETMBR R16 R14 K32
+ 0x8C402121, // 0082 GETMET R16 R16 K33
+ 0x7C400200, // 0083 CALL R16 1
+ 0x20402008, // 0084 NE R16 R16 R8
+ 0x7842000C, // 0085 JMPF R16 #0093
+ 0xB8421E00, // 0086 GETNGBL R16 K15
+ 0x8C402113, // 0087 GETMET R16 R16 K19
+ 0x60480018, // 0088 GETGBL R18 G24
+ 0x584C0022, // 0089 LDCONST R19 K34
+ 0x8C501F21, // 008A GETMET R20 R15 K33
+ 0x7C500200, // 008B CALL R20 1
+ 0x8C502923, // 008C GETMET R20 R20 K35
+ 0x7C500200, // 008D CALL R20 1
+ 0x8C541123, // 008E GETMET R21 R8 K35
+ 0x7C540200, // 008F CALL R21 1
+ 0x7C480600, // 0090 CALL R18 3
+ 0x7C400400, // 0091 CALL R16 2
+ 0x7001FFDD, // 0092 JMP #0071
+ 0xB8423C00, // 0093 GETNGBL R16 K30
+ 0x8C40211F, // 0094 GETMET R16 R16 K31
+ 0x88481D24, // 0095 GETMBR R18 R14 K36
+ 0x7C400400, // 0096 CALL R16 2
+ 0x4C440000, // 0097 LDNIL R17
+ 0x20441811, // 0098 NE R17 R12 R17
+ 0x74460001, // 0099 JMPT R17 #009C
+ 0x14441810, // 009A LT R17 R12 R16
+ 0x78460000, // 009B JMPF R17 #009D
+ 0x5C302000, // 009C MOVE R12 R16
+ 0x7001FFD2, // 009D JMP #0071
+ 0x5834001A, // 009E LDCONST R13 K26
+ 0xAC340200, // 009F CATCH R13 1 0
+ 0xB0080000, // 00A0 RAISE 2 R0 R0
+ 0x60340012, // 00A1 GETGBL R13 G18
+ 0x7C340000, // 00A2 CALL R13 0
+ 0x90264A0D, // 00A3 SETMBR R9 K37 R13
+ 0x60340010, // 00A4 GETGBL R13 G16
+ 0x5C381400, // 00A5 MOVE R14 R10
+ 0x7C340200, // 00A6 CALL R13 1
+ 0xA8020011, // 00A7 EXBLK 0 #00BA
+ 0x5C381A00, // 00A8 MOVE R14 R13
+ 0x7C380000, // 00A9 CALL R14 0
+ 0x883C1D09, // 00AA GETMBR R15 R14 K9
+ 0x901E120F, // 00AB SETMBR R7 K9 R15
+ 0x883C1D0A, // 00AC GETMBR R15 R14 K10
+ 0x901E140F, // 00AD SETMBR R7 K10 R15
+ 0x883C1D26, // 00AE GETMBR R15 R14 K38
+ 0x901E160F, // 00AF SETMBR R7 K11 R15
+ 0xB83E1E00, // 00B0 GETNGBL R15 K15
+ 0x8C3C1F13, // 00B1 GETMET R15 R15 K19
+ 0x60440018, // 00B2 GETGBL R17 G24
+ 0x58480027, // 00B3 LDCONST R18 K39
+ 0x884C0315, // 00B4 GETMBR R19 R1 K21
+ 0x5C500E00, // 00B5 MOVE R20 R7
+ 0x7C440600, // 00B6 CALL R17 3
+ 0x58480011, // 00B7 LDCONST R18 K17
+ 0x7C3C0600, // 00B8 CALL R15 3
+ 0x7001FFED, // 00B9 JMP #00A8
+ 0x5834001A, // 00BA LDCONST R13 K26
+ 0xAC340200, // 00BB CATCH R13 1 0
+ 0xB0080000, // 00BC RAISE 2 R0 R0
+ 0xA0000000, // 00BD CLOSE R0
+ 0x80041200, // 00BE RET 1 R9
})
)
);
@@ -2912,7 +3049,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/* K2 */ be_nested_str_weak(INVALID_ACTION),
/* K3 */ be_nested_str_weak(msg),
/* K4 */ be_nested_str_weak(device),
- /* K5 */ be_nested_str_weak(process_attribute_read_solo),
+ /* K5 */ be_nested_str_weak(resolve_attribute_read_solo),
/* K6 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
/* K7 */ be_nested_str_weak(read_attribute),
/* K8 */ be_nested_str_weak(session),
@@ -2965,7 +3102,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
}),
be_str_weak(process_read_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[245]) { /* code */
+ ( &(const binstruction[252]) { /* code */
0xB80E0200, // 0000 GETNGBL R3 K1
0x880C0702, // 0001 GETMBR R3 R3 K2
0x900A0003, // 0002 SETMBR R2 K0 R3
@@ -3131,86 +3268,93 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
0x8C24130B, // 00A2 GETMET R9 R9 K11
0x582C002C, // 00A3 LDCONST R11 K44
0x7C240400, // 00A4 CALL R9 2
- 0xB8260200, // 00A5 GETNGBL R9 K1
- 0x8C24132D, // 00A6 GETMET R9 R9 K45
- 0x882C052E, // 00A7 GETMBR R11 R2 K46
- 0x8830052F, // 00A8 GETMBR R12 R2 K47
- 0x7C240600, // 00A9 CALL R9 3
- 0x78260002, // 00AA JMPF R9 #00AE
- 0x002A6009, // 00AB ADD R10 K48 R9
- 0x00281531, // 00AC ADD R10 R10 K49
- 0x70020000, // 00AD JMP #00AF
- 0x58280032, // 00AE LDCONST R10 K50
- 0x5C241400, // 00AF MOVE R9 R10
- 0x4C280000, // 00B0 LDNIL R10
- 0x2028080A, // 00B1 NE R10 R4 R10
- 0x782A0012, // 00B2 JMPF R10 #00C6
- 0xB82A4A00, // 00B3 GETNGBL R10 K37
- 0x8C281526, // 00B4 GETMET R10 R10 K38
- 0x58300013, // 00B5 LDCONST R12 K19
- 0x7C280400, // 00B6 CALL R10 2
- 0x782A000C, // 00B7 JMPF R10 #00C5
- 0x8C280933, // 00B8 GETMET R10 R4 K51
- 0x7C280200, // 00B9 CALL R10 1
- 0xB82E1600, // 00BA GETNGBL R11 K11
- 0x60300018, // 00BB GETGBL R12 G24
- 0x58340034, // 00BC LDCONST R13 K52
- 0x88380308, // 00BD GETMBR R14 R1 K8
- 0x88381D1F, // 00BE GETMBR R14 R14 K31
- 0x5C3C0400, // 00BF MOVE R15 R2
- 0x5C401200, // 00C0 MOVE R16 R9
- 0x5C441400, // 00C1 MOVE R17 R10
- 0x7C300A00, // 00C2 CALL R12 5
- 0x58340013, // 00C3 LDCONST R13 K19
- 0x7C2C0400, // 00C4 CALL R11 2
- 0x7002002C, // 00C5 JMP #00F3
- 0x88280500, // 00C6 GETMBR R10 R2 K0
- 0x4C2C0000, // 00C7 LDNIL R11
- 0x2028140B, // 00C8 NE R10 R10 R11
- 0x782A0019, // 00C9 JMPF R10 #00E4
- 0x88280500, // 00CA GETMBR R10 R2 K0
- 0xB82E0200, // 00CB GETNGBL R11 K1
- 0x882C1706, // 00CC GETMBR R11 R11 K6
- 0x1C28140B, // 00CD EQ R10 R10 R11
- 0x782A0001, // 00CE JMPF R10 #00D1
- 0x58280006, // 00CF LDCONST R10 K6
- 0x70020000, // 00D0 JMP #00D2
- 0x58280032, // 00D1 LDCONST R10 K50
- 0xB82E4A00, // 00D2 GETNGBL R11 K37
- 0x8C2C1726, // 00D3 GETMET R11 R11 K38
- 0x58340013, // 00D4 LDCONST R13 K19
- 0x7C2C0400, // 00D5 CALL R11 2
- 0x782E000B, // 00D6 JMPF R11 #00E3
- 0xB82E1600, // 00D7 GETNGBL R11 K11
- 0x60300018, // 00D8 GETGBL R12 G24
- 0x58340035, // 00D9 LDCONST R13 K53
- 0x88380308, // 00DA GETMBR R14 R1 K8
- 0x88381D1F, // 00DB GETMBR R14 R14 K31
- 0x5C3C0400, // 00DC MOVE R15 R2
- 0x5C401200, // 00DD MOVE R16 R9
- 0x88440500, // 00DE GETMBR R17 R2 K0
- 0x5C481400, // 00DF MOVE R18 R10
- 0x7C300C00, // 00E0 CALL R12 6
- 0x58340013, // 00E1 LDCONST R13 K19
- 0x7C2C0400, // 00E2 CALL R11 2
- 0x7002000E, // 00E3 JMP #00F3
- 0xB82A4A00, // 00E4 GETNGBL R10 K37
- 0x8C281526, // 00E5 GETMET R10 R10 K38
- 0x58300013, // 00E6 LDCONST R12 K19
- 0x7C280400, // 00E7 CALL R10 2
- 0x782A0009, // 00E8 JMPF R10 #00F3
- 0xB82A1600, // 00E9 GETNGBL R10 K11
- 0x602C0018, // 00EA GETGBL R11 G24
- 0x58300036, // 00EB LDCONST R12 K54
- 0x88340308, // 00EC GETMBR R13 R1 K8
- 0x88341B1F, // 00ED GETMBR R13 R13 K31
- 0x5C380400, // 00EE MOVE R14 R2
- 0x5C3C1200, // 00EF MOVE R15 R9
- 0x7C2C0800, // 00F0 CALL R11 4
- 0x58300013, // 00F1 LDCONST R12 K19
- 0x7C280400, // 00F2 CALL R10 2
- 0x50280200, // 00F3 LDBOOL R10 1 0
- 0x80041400, // 00F4 RET 1 R10
+ 0x4C240000, // 00A5 LDNIL R9
+ 0xB82A4A00, // 00A6 GETNGBL R10 K37
+ 0x8C281526, // 00A7 GETMET R10 R10 K38
+ 0x58300013, // 00A8 LDCONST R12 K19
+ 0x7C280400, // 00A9 CALL R10 2
+ 0x782A000B, // 00AA JMPF R10 #00B7
+ 0xB82A0200, // 00AB GETNGBL R10 K1
+ 0x8C28152D, // 00AC GETMET R10 R10 K45
+ 0x8830052E, // 00AD GETMBR R12 R2 K46
+ 0x8834052F, // 00AE GETMBR R13 R2 K47
+ 0x7C280600, // 00AF CALL R10 3
+ 0x5C241400, // 00B0 MOVE R9 R10
+ 0x78260002, // 00B1 JMPF R9 #00B5
+ 0x002A6009, // 00B2 ADD R10 K48 R9
+ 0x00281531, // 00B3 ADD R10 R10 K49
+ 0x70020000, // 00B4 JMP #00B6
+ 0x58280032, // 00B5 LDCONST R10 K50
+ 0x5C241400, // 00B6 MOVE R9 R10
+ 0x4C280000, // 00B7 LDNIL R10
+ 0x2028080A, // 00B8 NE R10 R4 R10
+ 0x782A0012, // 00B9 JMPF R10 #00CD
+ 0xB82A4A00, // 00BA GETNGBL R10 K37
+ 0x8C281526, // 00BB GETMET R10 R10 K38
+ 0x58300013, // 00BC LDCONST R12 K19
+ 0x7C280400, // 00BD CALL R10 2
+ 0x782A000C, // 00BE JMPF R10 #00CC
+ 0x8C280933, // 00BF GETMET R10 R4 K51
+ 0x7C280200, // 00C0 CALL R10 1
+ 0xB82E1600, // 00C1 GETNGBL R11 K11
+ 0x60300018, // 00C2 GETGBL R12 G24
+ 0x58340034, // 00C3 LDCONST R13 K52
+ 0x88380308, // 00C4 GETMBR R14 R1 K8
+ 0x88381D1F, // 00C5 GETMBR R14 R14 K31
+ 0x5C3C0400, // 00C6 MOVE R15 R2
+ 0x5C401200, // 00C7 MOVE R16 R9
+ 0x5C441400, // 00C8 MOVE R17 R10
+ 0x7C300A00, // 00C9 CALL R12 5
+ 0x58340013, // 00CA LDCONST R13 K19
+ 0x7C2C0400, // 00CB CALL R11 2
+ 0x7002002C, // 00CC JMP #00FA
+ 0x88280500, // 00CD GETMBR R10 R2 K0
+ 0x4C2C0000, // 00CE LDNIL R11
+ 0x2028140B, // 00CF NE R10 R10 R11
+ 0x782A0019, // 00D0 JMPF R10 #00EB
+ 0x88280500, // 00D1 GETMBR R10 R2 K0
+ 0xB82E0200, // 00D2 GETNGBL R11 K1
+ 0x882C1706, // 00D3 GETMBR R11 R11 K6
+ 0x1C28140B, // 00D4 EQ R10 R10 R11
+ 0x782A0001, // 00D5 JMPF R10 #00D8
+ 0x58280006, // 00D6 LDCONST R10 K6
+ 0x70020000, // 00D7 JMP #00D9
+ 0x58280032, // 00D8 LDCONST R10 K50
+ 0xB82E4A00, // 00D9 GETNGBL R11 K37
+ 0x8C2C1726, // 00DA GETMET R11 R11 K38
+ 0x58340013, // 00DB LDCONST R13 K19
+ 0x7C2C0400, // 00DC CALL R11 2
+ 0x782E000B, // 00DD JMPF R11 #00EA
+ 0xB82E1600, // 00DE GETNGBL R11 K11
+ 0x60300018, // 00DF GETGBL R12 G24
+ 0x58340035, // 00E0 LDCONST R13 K53
+ 0x88380308, // 00E1 GETMBR R14 R1 K8
+ 0x88381D1F, // 00E2 GETMBR R14 R14 K31
+ 0x5C3C0400, // 00E3 MOVE R15 R2
+ 0x5C401200, // 00E4 MOVE R16 R9
+ 0x88440500, // 00E5 GETMBR R17 R2 K0
+ 0x5C481400, // 00E6 MOVE R18 R10
+ 0x7C300C00, // 00E7 CALL R12 6
+ 0x58340013, // 00E8 LDCONST R13 K19
+ 0x7C2C0400, // 00E9 CALL R11 2
+ 0x7002000E, // 00EA JMP #00FA
+ 0xB82A4A00, // 00EB GETNGBL R10 K37
+ 0x8C281526, // 00EC GETMET R10 R10 K38
+ 0x58300013, // 00ED LDCONST R12 K19
+ 0x7C280400, // 00EE CALL R10 2
+ 0x782A0009, // 00EF JMPF R10 #00FA
+ 0xB82A1600, // 00F0 GETNGBL R10 K11
+ 0x602C0018, // 00F1 GETGBL R11 G24
+ 0x58300036, // 00F2 LDCONST R12 K54
+ 0x88340308, // 00F3 GETMBR R13 R1 K8
+ 0x88341B1F, // 00F4 GETMBR R13 R13 K31
+ 0x5C380400, // 00F5 MOVE R14 R2
+ 0x5C3C1200, // 00F6 MOVE R15 R9
+ 0x7C2C0800, // 00F7 CALL R11 4
+ 0x58300013, // 00F8 LDCONST R12 K19
+ 0x7C280400, // 00F9 CALL R10 2
+ 0x50280200, // 00FA LDBOOL R10 1 0
+ 0x80041400, // 00FB RET 1 R10
})
)
);
@@ -3409,7 +3553,7 @@ be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_subscribe_request, /* name */
be_nested_proto(
- 17, /* nstack */
+ 20, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3435,7 +3579,7 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/* K14 */ be_nested_str_weak(push),
/* K15 */ be_nested_str_weak(stop_iteration),
/* K16 */ be_nested_str_weak(log),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s_X20attr_req_X3D_X25s_X20event_req_X3D_X25s),
/* K18 */ be_nested_str_weak(local_session_id),
/* K19 */ be_nested_str_weak(concat),
/* K20 */ be_nested_str_weak(_X20),
@@ -3445,9 +3589,9 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/* K24 */ be_const_int(0),
/* K25 */ be_nested_str_weak(subscription_id),
/* K26 */ be_nested_str_weak(fabric_filtered),
- /* K27 */ be_const_int(3),
+ /* K27 */ be_nested_str_weak(_X2D),
/* K28 */ be_nested_str_weak(event_requests),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20event_requests_size_X3D_X25s),
+ /* K29 */ be_const_int(3),
/* K30 */ be_nested_str_weak(_inner_process_read_request),
/* K31 */ be_nested_str_weak(device),
/* K32 */ be_nested_str_weak(debug),
@@ -3455,7 +3599,7 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
}),
be_str_weak(subscribe_request),
&be_const_str_solidified,
- ( &(const binstruction[103]) { /* code */
+ ( &(const binstruction[101]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
@@ -3517,48 +3661,46 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0x58380018, // 003A LDCONST R14 K24
0x883C0919, // 003B GETMBR R15 R4 K25
0x8840071A, // 003C GETMBR R16 R3 K26
- 0x7C201000, // 003D CALL R8 8
- 0x5824001B, // 003E LDCONST R9 K27
- 0x7C1C0400, // 003F CALL R7 2
- 0x881C071C, // 0040 GETMBR R7 R3 K28
- 0x4C200000, // 0041 LDNIL R8
- 0x201C0E08, // 0042 NE R7 R7 R8
- 0x781E000F, // 0043 JMPF R7 #0054
- 0x601C000C, // 0044 GETGBL R7 G12
- 0x8820071C, // 0045 GETMBR R8 R3 K28
- 0x7C1C0200, // 0046 CALL R7 1
- 0x241C0F18, // 0047 GT R7 R7 K24
- 0x781E000A, // 0048 JMPF R7 #0054
- 0xB81E2000, // 0049 GETNGBL R7 K16
- 0x60200018, // 004A GETGBL R8 G24
- 0x5824001D, // 004B LDCONST R9 K29
- 0x88280306, // 004C GETMBR R10 R1 K6
- 0x88281512, // 004D GETMBR R10 R10 K18
- 0x602C000C, // 004E GETGBL R11 G12
- 0x8830071C, // 004F GETMBR R12 R3 K28
- 0x7C2C0200, // 0050 CALL R11 1
- 0x7C200600, // 0051 CALL R8 3
- 0x5824001B, // 0052 LDCONST R9 K27
- 0x7C1C0400, // 0053 CALL R7 2
- 0x8C1C011E, // 0054 GETMET R7 R0 K30
- 0x88240306, // 0055 GETMBR R9 R1 K6
- 0x5C280600, // 0056 MOVE R10 R3
- 0x5C2C0200, // 0057 MOVE R11 R1
- 0x8830011F, // 0058 GETMBR R12 R0 K31
- 0x88301920, // 0059 GETMBR R12 R12 K32
- 0x78320000, // 005A JMPF R12 #005C
- 0x50300001, // 005B LDBOOL R12 0 1
- 0x50300200, // 005C LDBOOL R12 1 0
- 0x7C1C0A00, // 005D CALL R7 5
- 0x88200919, // 005E GETMBR R8 R4 K25
- 0x901E3208, // 005F SETMBR R7 K25 R8
- 0x8C200121, // 0060 GETMET R8 R0 K33
- 0x5C280200, // 0061 MOVE R10 R1
- 0x5C2C0E00, // 0062 MOVE R11 R7
- 0x5C300800, // 0063 MOVE R12 R4
- 0x7C200800, // 0064 CALL R8 4
- 0x50200200, // 0065 LDBOOL R8 1 0
- 0x80041000, // 0066 RET 1 R8
+ 0x8844070A, // 003D GETMBR R17 R3 K10
+ 0x4C480000, // 003E LDNIL R18
+ 0x20442212, // 003F NE R17 R17 R18
+ 0x78460003, // 0040 JMPF R17 #0045
+ 0x6044000C, // 0041 GETGBL R17 G12
+ 0x8848070A, // 0042 GETMBR R18 R3 K10
+ 0x7C440200, // 0043 CALL R17 1
+ 0x70020000, // 0044 JMP #0046
+ 0x5844001B, // 0045 LDCONST R17 K27
+ 0x8848071C, // 0046 GETMBR R18 R3 K28
+ 0x4C4C0000, // 0047 LDNIL R19
+ 0x20482413, // 0048 NE R18 R18 R19
+ 0x784A0003, // 0049 JMPF R18 #004E
+ 0x6048000C, // 004A GETGBL R18 G12
+ 0x884C071C, // 004B GETMBR R19 R3 K28
+ 0x7C480200, // 004C CALL R18 1
+ 0x70020000, // 004D JMP #004F
+ 0x5848001B, // 004E LDCONST R18 K27
+ 0x7C201400, // 004F CALL R8 10
+ 0x5824001D, // 0050 LDCONST R9 K29
+ 0x7C1C0400, // 0051 CALL R7 2
+ 0x8C1C011E, // 0052 GETMET R7 R0 K30
+ 0x88240306, // 0053 GETMBR R9 R1 K6
+ 0x5C280600, // 0054 MOVE R10 R3
+ 0x5C2C0200, // 0055 MOVE R11 R1
+ 0x8830011F, // 0056 GETMBR R12 R0 K31
+ 0x88301920, // 0057 GETMBR R12 R12 K32
+ 0x78320000, // 0058 JMPF R12 #005A
+ 0x50300001, // 0059 LDBOOL R12 0 1
+ 0x50300200, // 005A LDBOOL R12 1 0
+ 0x7C1C0A00, // 005B CALL R7 5
+ 0x88200919, // 005C GETMBR R8 R4 K25
+ 0x901E3208, // 005D SETMBR R7 K25 R8
+ 0x8C200121, // 005E GETMET R8 R0 K33
+ 0x5C280200, // 005F MOVE R10 R1
+ 0x5C2C0E00, // 0060 MOVE R11 R7
+ 0x5C300800, // 0061 MOVE R12 R4
+ 0x7C200800, // 0062 CALL R8 4
+ 0x50200200, // 0063 LDBOOL R8 1 0
+ 0x80041000, // 0064 RET 1 R8
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
index 22bb7bc99..793cca7da 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
@@ -6,6 +6,181 @@
extern const bclass be_class_Matter_Frame;
+/********************************************************************
+** Solidified function: get_node_id
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_get_node_id, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(get_node_id),
+ }),
+ be_str_weak(get_node_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060003, // 0001 JMPF R1 #0006
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x8C040301, // 0003 GETMET R1 R1 K1
+ 0x7C040200, // 0004 CALL R1 1
+ 0x70020000, // 0005 JMP #0007
+ 0x4C040000, // 0006 LDNIL R1
+ 0x80040200, // 0007 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: encrypt
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_encrypt, /* name */
+ be_nested_proto(
+ 23, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(raw),
+ /* K2 */ be_nested_str_weak(session),
+ /* K3 */ be_nested_str_weak(payload_idx),
+ /* K4 */ be_nested_str_weak(get_r2i),
+ /* K5 */ be_nested_str_weak(message_handler),
+ /* K6 */ be_nested_str_weak(_n_bytes),
+ /* K7 */ be_nested_str_weak(clear),
+ /* K8 */ be_nested_str_weak(add),
+ /* K9 */ be_nested_str_weak(flags),
+ /* K10 */ be_const_int(1),
+ /* K11 */ be_nested_str_weak(message_counter),
+ /* K12 */ be_nested_str_weak(is_CASE),
+ /* K13 */ be_nested_str_weak(get_device_id),
+ /* K14 */ be_nested_str_weak(resize),
+ /* K15 */ be_nested_str_weak(AES_CCM),
+ /* K16 */ be_nested_str_weak(encrypt1),
+ /* K17 */ be_const_int(0),
+ }),
+ be_str_weak(encrypt),
+ &be_const_str_solidified,
+ ( &(const binstruction[63]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x88100103, // 0003 GETMBR R4 R0 K3
+ 0x5416000F, // 0004 LDINT R5 16
+ 0x8C180704, // 0005 GETMET R6 R3 K4
+ 0x7C180200, // 0006 CALL R6 1
+ 0x881C0105, // 0007 GETMBR R7 R0 K5
+ 0x881C0F06, // 0008 GETMBR R7 R7 K6
+ 0x8C200F07, // 0009 GETMET R8 R7 K7
+ 0x7C200200, // 000A CALL R8 1
+ 0x8C200F08, // 000B GETMET R8 R7 K8
+ 0x88280109, // 000C GETMBR R10 R0 K9
+ 0x582C000A, // 000D LDCONST R11 K10
+ 0x7C200600, // 000E CALL R8 3
+ 0x8C200F08, // 000F GETMET R8 R7 K8
+ 0x8828010B, // 0010 GETMBR R10 R0 K11
+ 0x542E0003, // 0011 LDINT R11 4
+ 0x7C200600, // 0012 CALL R8 3
+ 0x8C20070C, // 0013 GETMET R8 R3 K12
+ 0x7C200200, // 0014 CALL R8 1
+ 0x78220005, // 0015 JMPF R8 #001C
+ 0x8C20070D, // 0016 GETMET R8 R3 K13
+ 0x7C200200, // 0017 CALL R8 1
+ 0x78220002, // 0018 JMPF R8 #001C
+ 0x8C20070D, // 0019 GETMET R8 R3 K13
+ 0x7C200200, // 001A CALL R8 1
+ 0x40200E08, // 001B CONNECT R8 R7 R8
+ 0x8C200F0E, // 001C GETMET R8 R7 K14
+ 0x542A000C, // 001D LDINT R10 13
+ 0x7C200400, // 001E CALL R8 2
+ 0x8C20050E, // 001F GETMET R8 R2 K14
+ 0x6028000C, // 0020 GETGBL R10 G12
+ 0x5C2C0400, // 0021 MOVE R11 R2
+ 0x7C280200, // 0022 CALL R10 1
+ 0x00281405, // 0023 ADD R10 R10 R5
+ 0x7C200400, // 0024 CALL R8 2
+ 0x8820030F, // 0025 GETMBR R8 R1 K15
+ 0x8C201110, // 0026 GETMET R8 R8 K16
+ 0x5C280C00, // 0027 MOVE R10 R6
+ 0x5C2C0E00, // 0028 MOVE R11 R7
+ 0x58300011, // 0029 LDCONST R12 K17
+ 0x6034000C, // 002A GETGBL R13 G12
+ 0x5C380E00, // 002B MOVE R14 R7
+ 0x7C340200, // 002C CALL R13 1
+ 0x5C380400, // 002D MOVE R14 R2
+ 0x583C0011, // 002E LDCONST R15 K17
+ 0x5C400800, // 002F MOVE R16 R4
+ 0x5C440400, // 0030 MOVE R17 R2
+ 0x5C480800, // 0031 MOVE R18 R4
+ 0x604C000C, // 0032 GETGBL R19 G12
+ 0x5C500400, // 0033 MOVE R20 R2
+ 0x7C4C0200, // 0034 CALL R19 1
+ 0x044C2604, // 0035 SUB R19 R19 R4
+ 0x044C2605, // 0036 SUB R19 R19 R5
+ 0x5C500400, // 0037 MOVE R20 R2
+ 0x6054000C, // 0038 GETGBL R21 G12
+ 0x5C580400, // 0039 MOVE R22 R2
+ 0x7C540200, // 003A CALL R21 1
+ 0x04542A05, // 003B SUB R21 R21 R5
+ 0x5C580A00, // 003C MOVE R22 R5
+ 0x7C201C00, // 003D CALL R8 14
+ 0x80000000, // 003E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(raw),
+ /* K2 */ be_nested_str_weak(remote_ip),
+ /* K3 */ be_nested_str_weak(remote_port),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x90020403, // 0002 SETMBR R0 K2 R3
+ 0x90020604, // 0003 SETMBR R0 K3 R4
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: encode_frame
********************************************************************/
@@ -215,481 +390,6 @@ be_local_closure(class_Matter_Frame_encode_frame, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: encrypt
-********************************************************************/
-extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_encrypt, /* name */
- be_nested_proto(
- 23, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Frame,
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(raw),
- /* K2 */ be_nested_str_weak(session),
- /* K3 */ be_nested_str_weak(payload_idx),
- /* K4 */ be_nested_str_weak(get_r2i),
- /* K5 */ be_nested_str_weak(message_handler),
- /* K6 */ be_nested_str_weak(_n_bytes),
- /* K7 */ be_nested_str_weak(clear),
- /* K8 */ be_nested_str_weak(add),
- /* K9 */ be_nested_str_weak(flags),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(message_counter),
- /* K12 */ be_nested_str_weak(is_CASE),
- /* K13 */ be_nested_str_weak(get_device_id),
- /* K14 */ be_nested_str_weak(resize),
- /* K15 */ be_nested_str_weak(AES_CCM),
- /* K16 */ be_nested_str_weak(encrypt1),
- /* K17 */ be_const_int(0),
- }),
- be_str_weak(encrypt),
- &be_const_str_solidified,
- ( &(const binstruction[63]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x88100103, // 0003 GETMBR R4 R0 K3
- 0x5416000F, // 0004 LDINT R5 16
- 0x8C180704, // 0005 GETMET R6 R3 K4
- 0x7C180200, // 0006 CALL R6 1
- 0x881C0105, // 0007 GETMBR R7 R0 K5
- 0x881C0F06, // 0008 GETMBR R7 R7 K6
- 0x8C200F07, // 0009 GETMET R8 R7 K7
- 0x7C200200, // 000A CALL R8 1
- 0x8C200F08, // 000B GETMET R8 R7 K8
- 0x88280109, // 000C GETMBR R10 R0 K9
- 0x582C000A, // 000D LDCONST R11 K10
- 0x7C200600, // 000E CALL R8 3
- 0x8C200F08, // 000F GETMET R8 R7 K8
- 0x8828010B, // 0010 GETMBR R10 R0 K11
- 0x542E0003, // 0011 LDINT R11 4
- 0x7C200600, // 0012 CALL R8 3
- 0x8C20070C, // 0013 GETMET R8 R3 K12
- 0x7C200200, // 0014 CALL R8 1
- 0x78220005, // 0015 JMPF R8 #001C
- 0x8C20070D, // 0016 GETMET R8 R3 K13
- 0x7C200200, // 0017 CALL R8 1
- 0x78220002, // 0018 JMPF R8 #001C
- 0x8C20070D, // 0019 GETMET R8 R3 K13
- 0x7C200200, // 001A CALL R8 1
- 0x40200E08, // 001B CONNECT R8 R7 R8
- 0x8C200F0E, // 001C GETMET R8 R7 K14
- 0x542A000C, // 001D LDINT R10 13
- 0x7C200400, // 001E CALL R8 2
- 0x8C20050E, // 001F GETMET R8 R2 K14
- 0x6028000C, // 0020 GETGBL R10 G12
- 0x5C2C0400, // 0021 MOVE R11 R2
- 0x7C280200, // 0022 CALL R10 1
- 0x00281405, // 0023 ADD R10 R10 R5
- 0x7C200400, // 0024 CALL R8 2
- 0x8820030F, // 0025 GETMBR R8 R1 K15
- 0x8C201110, // 0026 GETMET R8 R8 K16
- 0x5C280C00, // 0027 MOVE R10 R6
- 0x5C2C0E00, // 0028 MOVE R11 R7
- 0x58300011, // 0029 LDCONST R12 K17
- 0x6034000C, // 002A GETGBL R13 G12
- 0x5C380E00, // 002B MOVE R14 R7
- 0x7C340200, // 002C CALL R13 1
- 0x5C380400, // 002D MOVE R14 R2
- 0x583C0011, // 002E LDCONST R15 K17
- 0x5C400800, // 002F MOVE R16 R4
- 0x5C440400, // 0030 MOVE R17 R2
- 0x5C480800, // 0031 MOVE R18 R4
- 0x604C000C, // 0032 GETGBL R19 G12
- 0x5C500400, // 0033 MOVE R20 R2
- 0x7C4C0200, // 0034 CALL R19 1
- 0x044C2604, // 0035 SUB R19 R19 R4
- 0x044C2605, // 0036 SUB R19 R19 R5
- 0x5C500400, // 0037 MOVE R20 R2
- 0x6054000C, // 0038 GETGBL R21 G12
- 0x5C580400, // 0039 MOVE R22 R2
- 0x7C540200, // 003A CALL R21 1
- 0x04542A05, // 003B SUB R21 R21 R5
- 0x5C580A00, // 003C MOVE R22 R5
- 0x7C201C00, // 003D CALL R8 14
- 0x80000000, // 003E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: debug
-********************************************************************/
-extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_debug, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Frame,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(Frame),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(decode_header),
- /* K4 */ be_nested_str_weak(decode_payload),
- }),
- be_str_weak(debug),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x80000400, // 0000 RET 0
- 0xB80A0000, // 0001 GETNGBL R2 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x88100102, // 0003 GETMBR R4 R0 K2
- 0x5C140200, // 0004 MOVE R5 R1
- 0x7C080600, // 0005 CALL R2 3
- 0x8C0C0503, // 0006 GETMET R3 R2 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0504, // 0008 GETMET R3 R2 K4
- 0x7C0C0200, // 0009 CALL R3 1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: build_standalone_ack
-********************************************************************/
-extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_build_standalone_ack, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Frame,
- 1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(remote_ip),
- /* K2 */ be_nested_str_weak(remote_port),
- /* K3 */ be_nested_str_weak(flag_s),
- /* K4 */ be_nested_str_weak(flag_dsiz),
- /* K5 */ be_const_int(1),
- /* K6 */ be_nested_str_weak(dest_node_id_8),
- /* K7 */ be_nested_str_weak(source_node_id),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(message_counter),
- /* K11 */ be_nested_str_weak(counter_snd_next),
- /* K12 */ be_nested_str_weak(local_session_id),
- /* K13 */ be_nested_str_weak(initiator_session_id),
- /* K14 */ be_nested_str_weak(x_flag_i),
- /* K15 */ be_nested_str_weak(opcode),
- /* K16 */ be_nested_str_weak(exchange_id),
- /* K17 */ be_nested_str_weak(protocol_id),
- /* K18 */ be_nested_str_weak(x_flag_a),
- /* K19 */ be_nested_str_weak(ack_message_counter),
- /* K20 */ be_nested_str_weak(x_flag_r),
- }),
- be_str_weak(build_standalone_ack),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x60080006, // 0000 GETGBL R2 G6
- 0x5C0C0000, // 0001 MOVE R3 R0
- 0x7C080200, // 0002 CALL R2 1
- 0x880C0100, // 0003 GETMBR R3 R0 K0
- 0x7C080200, // 0004 CALL R2 1
- 0x880C0101, // 0005 GETMBR R3 R0 K1
- 0x900A0203, // 0006 SETMBR R2 K1 R3
- 0x880C0102, // 0007 GETMBR R3 R0 K2
- 0x900A0403, // 0008 SETMBR R2 K2 R3
- 0x880C0103, // 0009 GETMBR R3 R0 K3
- 0x780E0003, // 000A JMPF R3 #000F
- 0x900A0905, // 000B SETMBR R2 K4 K5
- 0x880C0107, // 000C GETMBR R3 R0 K7
- 0x900A0C03, // 000D SETMBR R2 K6 R3
- 0x70020000, // 000E JMP #0010
- 0x900A0908, // 000F SETMBR R2 K4 K8
- 0x880C0109, // 0010 GETMBR R3 R0 K9
- 0x900A1203, // 0011 SETMBR R2 K9 R3
- 0x880C0109, // 0012 GETMBR R3 R0 K9
- 0x8C0C070B, // 0013 GETMET R3 R3 K11
- 0x7C0C0200, // 0014 CALL R3 1
- 0x900A1403, // 0015 SETMBR R2 K10 R3
- 0x880C0109, // 0016 GETMBR R3 R0 K9
- 0x880C070D, // 0017 GETMBR R3 R3 K13
- 0x900A1803, // 0018 SETMBR R2 K12 R3
- 0x880C010E, // 0019 GETMBR R3 R0 K14
- 0x780E0001, // 001A JMPF R3 #001D
- 0x580C0008, // 001B LDCONST R3 K8
- 0x70020000, // 001C JMP #001E
- 0x580C0005, // 001D LDCONST R3 K5
- 0x900A1C03, // 001E SETMBR R2 K14 R3
- 0x540E000F, // 001F LDINT R3 16
- 0x900A1E03, // 0020 SETMBR R2 K15 R3
- 0x880C0110, // 0021 GETMBR R3 R0 K16
- 0x900A2003, // 0022 SETMBR R2 K16 R3
- 0x900A2308, // 0023 SETMBR R2 K17 K8
- 0x900A2505, // 0024 SETMBR R2 K18 K5
- 0x880C010A, // 0025 GETMBR R3 R0 K10
- 0x900A2603, // 0026 SETMBR R2 K19 R3
- 0x78060001, // 0027 JMPF R1 #002A
- 0x580C0005, // 0028 LDCONST R3 K5
- 0x70020000, // 0029 JMP #002B
- 0x580C0008, // 002A LDCONST R3 K8
- 0x900A2803, // 002B SETMBR R2 K20 R3
- 0x80040400, // 002C RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: build_response
-********************************************************************/
-extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_build_response, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Frame,
- 1, /* has constants */
- ( &(const bvalue[29]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(remote_ip),
- /* K2 */ be_nested_str_weak(remote_port),
- /* K3 */ be_nested_str_weak(flag_s),
- /* K4 */ be_nested_str_weak(flag_dsiz),
- /* K5 */ be_const_int(1),
- /* K6 */ be_nested_str_weak(dest_node_id_8),
- /* K7 */ be_nested_str_weak(source_node_id),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(local_session_id),
- /* K11 */ be_nested_str_weak(initiator_session_id),
- /* K12 */ be_nested_str_weak(message_counter),
- /* K13 */ be_nested_str_weak(counter_snd_next),
- /* K14 */ be_nested_str_weak(_counter_insecure_snd),
- /* K15 */ be_nested_str_weak(next),
- /* K16 */ be_nested_str_weak(x_flag_i),
- /* K17 */ be_nested_str_weak(opcode),
- /* K18 */ be_nested_str_weak(exchange_id),
- /* K19 */ be_nested_str_weak(protocol_id),
- /* K20 */ be_nested_str_weak(x_flag_r),
- /* K21 */ be_nested_str_weak(x_flag_a),
- /* K22 */ be_nested_str_weak(ack_message_counter),
- /* K23 */ be_nested_str_weak(matter),
- /* K24 */ be_nested_str_weak(get_opcode_name),
- /* K25 */ be_nested_str_weak(0x_X2502X),
- /* K26 */ be_nested_str_weak(log),
- /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
- /* K28 */ be_const_int(3),
- }),
- be_str_weak(build_response),
- &be_const_str_solidified,
- ( &(const binstruction[90]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x1C100604, // 0001 EQ R4 R3 R4
- 0x78120005, // 0002 JMPF R4 #0009
- 0x60100006, // 0003 GETGBL R4 G6
- 0x5C140000, // 0004 MOVE R5 R0
- 0x7C100200, // 0005 CALL R4 1
- 0x88140100, // 0006 GETMBR R5 R0 K0
- 0x7C100200, // 0007 CALL R4 1
- 0x5C0C0800, // 0008 MOVE R3 R4
- 0x88100101, // 0009 GETMBR R4 R0 K1
- 0x900E0204, // 000A SETMBR R3 K1 R4
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0x900E0404, // 000C SETMBR R3 K2 R4
- 0x88100103, // 000D GETMBR R4 R0 K3
- 0x78120003, // 000E JMPF R4 #0013
- 0x900E0905, // 000F SETMBR R3 K4 K5
- 0x88100107, // 0010 GETMBR R4 R0 K7
- 0x900E0C04, // 0011 SETMBR R3 K6 R4
- 0x70020000, // 0012 JMP #0014
- 0x900E0908, // 0013 SETMBR R3 K4 K8
- 0x88100109, // 0014 GETMBR R4 R0 K9
- 0x900E1204, // 0015 SETMBR R3 K9 R4
- 0x8810010A, // 0016 GETMBR R4 R0 K10
- 0x20100908, // 0017 NE R4 R4 K8
- 0x7812000D, // 0018 JMPF R4 #0027
- 0x88100109, // 0019 GETMBR R4 R0 K9
- 0x7812000B, // 001A JMPF R4 #0027
- 0x88100109, // 001B GETMBR R4 R0 K9
- 0x8810090B, // 001C GETMBR R4 R4 K11
- 0x20100908, // 001D NE R4 R4 K8
- 0x78120007, // 001E JMPF R4 #0027
- 0x88100109, // 001F GETMBR R4 R0 K9
- 0x8C10090D, // 0020 GETMET R4 R4 K13
- 0x7C100200, // 0021 CALL R4 1
- 0x900E1804, // 0022 SETMBR R3 K12 R4
- 0x88100109, // 0023 GETMBR R4 R0 K9
- 0x8810090B, // 0024 GETMBR R4 R4 K11
- 0x900E1404, // 0025 SETMBR R3 K10 R4
- 0x70020005, // 0026 JMP #002D
- 0x88100109, // 0027 GETMBR R4 R0 K9
- 0x8810090E, // 0028 GETMBR R4 R4 K14
- 0x8C10090F, // 0029 GETMET R4 R4 K15
- 0x7C100200, // 002A CALL R4 1
- 0x900E1804, // 002B SETMBR R3 K12 R4
- 0x900E1508, // 002C SETMBR R3 K10 K8
- 0x88100110, // 002D GETMBR R4 R0 K16
- 0x78120001, // 002E JMPF R4 #0031
- 0x58100008, // 002F LDCONST R4 K8
- 0x70020000, // 0030 JMP #0032
- 0x58100005, // 0031 LDCONST R4 K5
- 0x900E2004, // 0032 SETMBR R3 K16 R4
- 0x900E2201, // 0033 SETMBR R3 K17 R1
- 0x88100112, // 0034 GETMBR R4 R0 K18
- 0x900E2404, // 0035 SETMBR R3 K18 R4
- 0x88100113, // 0036 GETMBR R4 R0 K19
- 0x900E2604, // 0037 SETMBR R3 K19 R4
- 0x88100114, // 0038 GETMBR R4 R0 K20
- 0x78120002, // 0039 JMPF R4 #003D
- 0x900E2B05, // 003A SETMBR R3 K21 K5
- 0x8810010C, // 003B GETMBR R4 R0 K12
- 0x900E2C04, // 003C SETMBR R3 K22 R4
- 0x780A0001, // 003D JMPF R2 #0040
- 0x58100005, // 003E LDCONST R4 K5
- 0x70020000, // 003F JMP #0041
- 0x58100008, // 0040 LDCONST R4 K8
- 0x900E2804, // 0041 SETMBR R3 K20 R4
- 0x8810070A, // 0042 GETMBR R4 R3 K10
- 0x1C100908, // 0043 EQ R4 R4 K8
- 0x78120013, // 0044 JMPF R4 #0059
- 0xB8122E00, // 0045 GETNGBL R4 K23
- 0x8C100918, // 0046 GETMET R4 R4 K24
- 0x88180711, // 0047 GETMBR R6 R3 K17
- 0x7C100400, // 0048 CALL R4 2
- 0x5C140800, // 0049 MOVE R5 R4
- 0x74160004, // 004A JMPT R5 #0050
- 0x60140018, // 004B GETGBL R5 G24
- 0x58180019, // 004C LDCONST R6 K25
- 0x881C0711, // 004D GETMBR R7 R3 K17
- 0x7C140400, // 004E CALL R5 2
- 0x5C100A00, // 004F MOVE R4 R5
- 0xB8163400, // 0050 GETNGBL R5 K26
- 0x60180018, // 0051 GETGBL R6 G24
- 0x581C001B, // 0052 LDCONST R7 K27
- 0x88200709, // 0053 GETMBR R8 R3 K9
- 0x8820110A, // 0054 GETMBR R8 R8 K10
- 0x5C240800, // 0055 MOVE R9 R4
- 0x7C180600, // 0056 CALL R6 3
- 0x581C001C, // 0057 LDCONST R7 K28
- 0x7C140400, // 0058 CALL R5 2
- 0x80040600, // 0059 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: initiate_response
-********************************************************************/
-extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_initiate_response, /* name */
- be_nested_proto(
- 9, /* nstack */
- 5, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Frame,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Frame),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(Frame),
- /* K3 */ be_nested_str_weak(remote_ip),
- /* K4 */ be_nested_str_weak(_ip),
- /* K5 */ be_nested_str_weak(remote_port),
- /* K6 */ be_nested_str_weak(_port),
- /* K7 */ be_nested_str_weak(flag_dsiz),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(initiator_session_id),
- /* K11 */ be_nested_str_weak(message_counter),
- /* K12 */ be_nested_str_weak(counter_snd_next),
- /* K13 */ be_nested_str_weak(local_session_id),
- /* K14 */ be_nested_str_weak(_counter_insecure_snd),
- /* K15 */ be_nested_str_weak(next),
- /* K16 */ be_nested_str_weak(x_flag_i),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(opcode),
- /* K19 */ be_nested_str_weak(_exchange_id),
- /* K20 */ be_nested_str_weak(exchange_id),
- /* K21 */ be_nested_str_weak(protocol_id),
- /* K22 */ be_nested_str_weak(x_flag_r),
- }),
- be_str_weak(initiate_response),
- &be_const_str_solidified,
- ( &(const binstruction[46]) { /* code */
- 0x58140000, // 0000 LDCONST R5 K0
- 0x4C180000, // 0001 LDNIL R6
- 0x1C180806, // 0002 EQ R6 R4 R6
- 0x781A0004, // 0003 JMPF R6 #0009
- 0xB81A0200, // 0004 GETNGBL R6 K1
- 0x8C180D02, // 0005 GETMET R6 R6 K2
- 0x5C200000, // 0006 MOVE R8 R0
- 0x7C180400, // 0007 CALL R6 2
- 0x5C100C00, // 0008 MOVE R4 R6
- 0x88180304, // 0009 GETMBR R6 R1 K4
- 0x90120606, // 000A SETMBR R4 K3 R6
- 0x88180306, // 000B GETMBR R6 R1 K6
- 0x90120A06, // 000C SETMBR R4 K5 R6
- 0x90120F08, // 000D SETMBR R4 K7 K8
- 0x90121201, // 000E SETMBR R4 K9 R1
- 0x78060008, // 000F JMPF R1 #0019
- 0x8818030A, // 0010 GETMBR R6 R1 K10
- 0x20180D08, // 0011 NE R6 R6 K8
- 0x781A0005, // 0012 JMPF R6 #0019
- 0x8C18030C, // 0013 GETMET R6 R1 K12
- 0x7C180200, // 0014 CALL R6 1
- 0x90121606, // 0015 SETMBR R4 K11 R6
- 0x8818030A, // 0016 GETMBR R6 R1 K10
- 0x90121A06, // 0017 SETMBR R4 K13 R6
- 0x70020004, // 0018 JMP #001E
- 0x8818030E, // 0019 GETMBR R6 R1 K14
- 0x8C180D0F, // 001A GETMET R6 R6 K15
- 0x7C180200, // 001B CALL R6 1
- 0x90121606, // 001C SETMBR R4 K11 R6
- 0x90121B08, // 001D SETMBR R4 K13 K8
- 0x90122111, // 001E SETMBR R4 K16 K17
- 0x90122402, // 001F SETMBR R4 K18 R2
- 0x88180313, // 0020 GETMBR R6 R1 K19
- 0x00180D11, // 0021 ADD R6 R6 K17
- 0x90062606, // 0022 SETMBR R1 K19 R6
- 0x88180313, // 0023 GETMBR R6 R1 K19
- 0x541EFFFF, // 0024 LDINT R7 65536
- 0x30180C07, // 0025 OR R6 R6 R7
- 0x90122806, // 0026 SETMBR R4 K20 R6
- 0x90122B11, // 0027 SETMBR R4 K21 K17
- 0x780E0001, // 0028 JMPF R3 #002B
- 0x58180011, // 0029 LDCONST R6 K17
- 0x70020000, // 002A JMP #002C
- 0x58180008, // 002B LDCONST R6 K8
- 0x90122C06, // 002C SETMBR R4 K22 R6
- 0x80040800, // 002D RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: decode_header
********************************************************************/
@@ -858,33 +558,39 @@ be_local_closure(class_Matter_Frame_decode_header, /* name */
/********************************************************************
-** Solidified function: init
+** Solidified function: debug
********************************************************************/
extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_init, /* name */
+be_local_closure(class_Matter_Frame_debug, /* name */
be_nested_proto(
- 5, /* nstack */
- 5, /* argc */
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Frame,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(raw),
- /* K2 */ be_nested_str_weak(remote_ip),
- /* K3 */ be_nested_str_weak(remote_port),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(Frame),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(decode_header),
+ /* K4 */ be_nested_str_weak(decode_payload),
}),
- be_str_weak(init),
+ be_str_weak(debug),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x90020604, // 0003 SETMBR R0 K3 R4
- 0x80000000, // 0004 RET 0
+ ( &(const binstruction[10]) { /* code */
+ 0x80000400, // 0000 RET 0
+ 0xB80A0000, // 0001 GETNGBL R2 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x88100102, // 0003 GETMBR R4 R0 K2
+ 0x5C140200, // 0004 MOVE R5 R1
+ 0x7C080600, // 0005 CALL R2 3
+ 0x8C0C0503, // 0006 GETMET R3 R2 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0504, // 0008 GETMET R3 R2 K4
+ 0x7C0C0200, // 0009 CALL R3 1
})
)
);
@@ -892,136 +598,143 @@ be_local_closure(class_Matter_Frame_init, /* name */
/********************************************************************
-** Solidified function: decode_payload
+** Solidified function: build_response
********************************************************************/
extern const bclass be_class_Matter_Frame;
-be_local_closure(class_Matter_Frame_decode_payload, /* name */
+be_local_closure(class_Matter_Frame_build_response, /* name */
be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
+ 10, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Frame,
1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(payload_idx),
- /* K1 */ be_nested_str_weak(raw),
- /* K2 */ be_nested_str_weak(x_flags),
- /* K3 */ be_nested_str_weak(get),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(x_flag_v),
- /* K6 */ be_nested_str_weak(getbits),
- /* K7 */ be_nested_str_weak(x_flag_sx),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(x_flag_r),
- /* K10 */ be_const_int(2),
- /* K11 */ be_nested_str_weak(x_flag_a),
- /* K12 */ be_nested_str_weak(x_flag_i),
- /* K13 */ be_nested_str_weak(opcode),
- /* K14 */ be_nested_str_weak(exchange_id),
- /* K15 */ be_nested_str_weak(protocol_id),
- /* K16 */ be_nested_str_weak(vendor_id),
- /* K17 */ be_nested_str_weak(ack_message_counter),
- /* K18 */ be_nested_str_weak(app_payload_idx),
+ ( &(const bvalue[29]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(remote_ip),
+ /* K2 */ be_nested_str_weak(remote_port),
+ /* K3 */ be_nested_str_weak(flag_s),
+ /* K4 */ be_nested_str_weak(flag_dsiz),
+ /* K5 */ be_const_int(1),
+ /* K6 */ be_nested_str_weak(dest_node_id_8),
+ /* K7 */ be_nested_str_weak(source_node_id),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(local_session_id),
+ /* K11 */ be_nested_str_weak(initiator_session_id),
+ /* K12 */ be_nested_str_weak(message_counter),
+ /* K13 */ be_nested_str_weak(counter_snd_next),
+ /* K14 */ be_nested_str_weak(_counter_insecure_snd),
+ /* K15 */ be_nested_str_weak(next),
+ /* K16 */ be_nested_str_weak(x_flag_i),
+ /* K17 */ be_nested_str_weak(opcode),
+ /* K18 */ be_nested_str_weak(exchange_id),
+ /* K19 */ be_nested_str_weak(protocol_id),
+ /* K20 */ be_nested_str_weak(x_flag_r),
+ /* K21 */ be_nested_str_weak(x_flag_a),
+ /* K22 */ be_nested_str_weak(ack_message_counter),
+ /* K23 */ be_nested_str_weak(matter),
+ /* K24 */ be_nested_str_weak(get_opcode_name),
+ /* K25 */ be_nested_str_weak(0x_X2502X),
+ /* K26 */ be_nested_str_weak(log),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
+ /* K28 */ be_const_int(3),
}),
- be_str_weak(decode_payload),
+ be_str_weak(build_response),
&be_const_str_solidified,
- ( &(const binstruction[93]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x8C0C0503, // 0002 GETMET R3 R2 K3
- 0x5C140200, // 0003 MOVE R5 R1
- 0x58180004, // 0004 LDCONST R6 K4
- 0x7C0C0600, // 0005 CALL R3 3
- 0x90020403, // 0006 SETMBR R0 K2 R3
- 0x8C0C0506, // 0007 GETMET R3 R2 K6
- 0x54160007, // 0008 LDINT R5 8
- 0x08140205, // 0009 MUL R5 R1 R5
- 0x541A0003, // 000A LDINT R6 4
- 0x00140A06, // 000B ADD R5 R5 R6
- 0x58180004, // 000C LDCONST R6 K4
- 0x7C0C0600, // 000D CALL R3 3
- 0x90020A03, // 000E SETMBR R0 K5 R3
- 0x8C0C0506, // 000F GETMET R3 R2 K6
- 0x54160007, // 0010 LDINT R5 8
- 0x08140205, // 0011 MUL R5 R1 R5
- 0x00140B08, // 0012 ADD R5 R5 K8
- 0x58180004, // 0013 LDCONST R6 K4
- 0x7C0C0600, // 0014 CALL R3 3
- 0x90020E03, // 0015 SETMBR R0 K7 R3
- 0x8C0C0506, // 0016 GETMET R3 R2 K6
- 0x54160007, // 0017 LDINT R5 8
- 0x08140205, // 0018 MUL R5 R1 R5
- 0x00140B0A, // 0019 ADD R5 R5 K10
- 0x58180004, // 001A LDCONST R6 K4
- 0x7C0C0600, // 001B CALL R3 3
- 0x90021203, // 001C SETMBR R0 K9 R3
- 0x8C0C0506, // 001D GETMET R3 R2 K6
- 0x54160007, // 001E LDINT R5 8
- 0x08140205, // 001F MUL R5 R1 R5
- 0x00140B04, // 0020 ADD R5 R5 K4
- 0x58180004, // 0021 LDCONST R6 K4
- 0x7C0C0600, // 0022 CALL R3 3
- 0x90021603, // 0023 SETMBR R0 K11 R3
- 0x8C0C0506, // 0024 GETMET R3 R2 K6
- 0x54160007, // 0025 LDINT R5 8
- 0x08140205, // 0026 MUL R5 R1 R5
- 0x58180004, // 0027 LDCONST R6 K4
- 0x7C0C0600, // 0028 CALL R3 3
- 0x90021803, // 0029 SETMBR R0 K12 R3
- 0x8C0C0503, // 002A GETMET R3 R2 K3
- 0x00140304, // 002B ADD R5 R1 K4
- 0x58180004, // 002C LDCONST R6 K4
- 0x7C0C0600, // 002D CALL R3 3
- 0x90021A03, // 002E SETMBR R0 K13 R3
- 0x8C0C0503, // 002F GETMET R3 R2 K3
- 0x0014030A, // 0030 ADD R5 R1 K10
- 0x5818000A, // 0031 LDCONST R6 K10
- 0x7C0C0600, // 0032 CALL R3 3
- 0x90021C03, // 0033 SETMBR R0 K14 R3
- 0x880C010C, // 0034 GETMBR R3 R0 K12
- 0x740E0003, // 0035 JMPT R3 #003A
- 0x880C010E, // 0036 GETMBR R3 R0 K14
- 0x5412FFFF, // 0037 LDINT R4 65536
- 0x300C0604, // 0038 OR R3 R3 R4
- 0x90021C03, // 0039 SETMBR R0 K14 R3
- 0x8C0C0503, // 003A GETMET R3 R2 K3
- 0x54160003, // 003B LDINT R5 4
- 0x00140205, // 003C ADD R5 R1 R5
- 0x5818000A, // 003D LDCONST R6 K10
- 0x7C0C0600, // 003E CALL R3 3
- 0x90021E03, // 003F SETMBR R0 K15 R3
- 0x540E0005, // 0040 LDINT R3 6
- 0x00040203, // 0041 ADD R1 R1 R3
- 0x880C0105, // 0042 GETMBR R3 R0 K5
- 0x780E0005, // 0043 JMPF R3 #004A
- 0x8C0C0503, // 0044 GETMET R3 R2 K3
- 0x5C140200, // 0045 MOVE R5 R1
- 0x5818000A, // 0046 LDCONST R6 K10
- 0x7C0C0600, // 0047 CALL R3 3
- 0x90022003, // 0048 SETMBR R0 K16 R3
- 0x0004030A, // 0049 ADD R1 R1 K10
- 0x880C010B, // 004A GETMBR R3 R0 K11
- 0x780E0006, // 004B JMPF R3 #0053
- 0x8C0C0503, // 004C GETMET R3 R2 K3
- 0x5C140200, // 004D MOVE R5 R1
- 0x541A0003, // 004E LDINT R6 4
- 0x7C0C0600, // 004F CALL R3 3
- 0x90022203, // 0050 SETMBR R0 K17 R3
- 0x540E0003, // 0051 LDINT R3 4
- 0x00040203, // 0052 ADD R1 R1 R3
- 0x880C0107, // 0053 GETMBR R3 R0 K7
- 0x780E0005, // 0054 JMPF R3 #005B
- 0x8C0C0503, // 0055 GETMET R3 R2 K3
- 0x5C140200, // 0056 MOVE R5 R1
- 0x5818000A, // 0057 LDCONST R6 K10
- 0x7C0C0600, // 0058 CALL R3 3
- 0x0010070A, // 0059 ADD R4 R3 K10
- 0x00040204, // 005A ADD R1 R1 R4
- 0x90022401, // 005B SETMBR R0 K18 R1
- 0x80040000, // 005C RET 1 R0
+ ( &(const binstruction[90]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x1C100604, // 0001 EQ R4 R3 R4
+ 0x78120005, // 0002 JMPF R4 #0009
+ 0x60100006, // 0003 GETGBL R4 G6
+ 0x5C140000, // 0004 MOVE R5 R0
+ 0x7C100200, // 0005 CALL R4 1
+ 0x88140100, // 0006 GETMBR R5 R0 K0
+ 0x7C100200, // 0007 CALL R4 1
+ 0x5C0C0800, // 0008 MOVE R3 R4
+ 0x88100101, // 0009 GETMBR R4 R0 K1
+ 0x900E0204, // 000A SETMBR R3 K1 R4
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0x900E0404, // 000C SETMBR R3 K2 R4
+ 0x88100103, // 000D GETMBR R4 R0 K3
+ 0x78120003, // 000E JMPF R4 #0013
+ 0x900E0905, // 000F SETMBR R3 K4 K5
+ 0x88100107, // 0010 GETMBR R4 R0 K7
+ 0x900E0C04, // 0011 SETMBR R3 K6 R4
+ 0x70020000, // 0012 JMP #0014
+ 0x900E0908, // 0013 SETMBR R3 K4 K8
+ 0x88100109, // 0014 GETMBR R4 R0 K9
+ 0x900E1204, // 0015 SETMBR R3 K9 R4
+ 0x8810010A, // 0016 GETMBR R4 R0 K10
+ 0x20100908, // 0017 NE R4 R4 K8
+ 0x7812000D, // 0018 JMPF R4 #0027
+ 0x88100109, // 0019 GETMBR R4 R0 K9
+ 0x7812000B, // 001A JMPF R4 #0027
+ 0x88100109, // 001B GETMBR R4 R0 K9
+ 0x8810090B, // 001C GETMBR R4 R4 K11
+ 0x20100908, // 001D NE R4 R4 K8
+ 0x78120007, // 001E JMPF R4 #0027
+ 0x88100109, // 001F GETMBR R4 R0 K9
+ 0x8C10090D, // 0020 GETMET R4 R4 K13
+ 0x7C100200, // 0021 CALL R4 1
+ 0x900E1804, // 0022 SETMBR R3 K12 R4
+ 0x88100109, // 0023 GETMBR R4 R0 K9
+ 0x8810090B, // 0024 GETMBR R4 R4 K11
+ 0x900E1404, // 0025 SETMBR R3 K10 R4
+ 0x70020005, // 0026 JMP #002D
+ 0x88100109, // 0027 GETMBR R4 R0 K9
+ 0x8810090E, // 0028 GETMBR R4 R4 K14
+ 0x8C10090F, // 0029 GETMET R4 R4 K15
+ 0x7C100200, // 002A CALL R4 1
+ 0x900E1804, // 002B SETMBR R3 K12 R4
+ 0x900E1508, // 002C SETMBR R3 K10 K8
+ 0x88100110, // 002D GETMBR R4 R0 K16
+ 0x78120001, // 002E JMPF R4 #0031
+ 0x58100008, // 002F LDCONST R4 K8
+ 0x70020000, // 0030 JMP #0032
+ 0x58100005, // 0031 LDCONST R4 K5
+ 0x900E2004, // 0032 SETMBR R3 K16 R4
+ 0x900E2201, // 0033 SETMBR R3 K17 R1
+ 0x88100112, // 0034 GETMBR R4 R0 K18
+ 0x900E2404, // 0035 SETMBR R3 K18 R4
+ 0x88100113, // 0036 GETMBR R4 R0 K19
+ 0x900E2604, // 0037 SETMBR R3 K19 R4
+ 0x88100114, // 0038 GETMBR R4 R0 K20
+ 0x78120002, // 0039 JMPF R4 #003D
+ 0x900E2B05, // 003A SETMBR R3 K21 K5
+ 0x8810010C, // 003B GETMBR R4 R0 K12
+ 0x900E2C04, // 003C SETMBR R3 K22 R4
+ 0x780A0001, // 003D JMPF R2 #0040
+ 0x58100005, // 003E LDCONST R4 K5
+ 0x70020000, // 003F JMP #0041
+ 0x58100008, // 0040 LDCONST R4 K8
+ 0x900E2804, // 0041 SETMBR R3 K20 R4
+ 0x8810070A, // 0042 GETMBR R4 R3 K10
+ 0x1C100908, // 0043 EQ R4 R4 K8
+ 0x78120013, // 0044 JMPF R4 #0059
+ 0xB8122E00, // 0045 GETNGBL R4 K23
+ 0x8C100918, // 0046 GETMET R4 R4 K24
+ 0x88180711, // 0047 GETMBR R6 R3 K17
+ 0x7C100400, // 0048 CALL R4 2
+ 0x5C140800, // 0049 MOVE R5 R4
+ 0x74160004, // 004A JMPT R5 #0050
+ 0x60140018, // 004B GETGBL R5 G24
+ 0x58180019, // 004C LDCONST R6 K25
+ 0x881C0711, // 004D GETMBR R7 R3 K17
+ 0x7C140400, // 004E CALL R5 2
+ 0x5C100A00, // 004F MOVE R4 R5
+ 0xB8163400, // 0050 GETNGBL R5 K26
+ 0x60180018, // 0051 GETGBL R6 G24
+ 0x581C001B, // 0052 LDCONST R7 K27
+ 0x88200709, // 0053 GETMBR R8 R3 K9
+ 0x8820110A, // 0054 GETMBR R8 R8 K10
+ 0x5C240800, // 0055 MOVE R9 R4
+ 0x7C180600, // 0056 CALL R6 3
+ 0x581C001C, // 0057 LDCONST R7 K28
+ 0x7C140400, // 0058 CALL R5 2
+ 0x80040600, // 0059 RET 1 R3
})
)
);
@@ -1197,56 +910,379 @@ be_local_closure(class_Matter_Frame_decrypt, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: build_standalone_ack
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_build_standalone_ack, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[21]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(remote_ip),
+ /* K2 */ be_nested_str_weak(remote_port),
+ /* K3 */ be_nested_str_weak(flag_s),
+ /* K4 */ be_nested_str_weak(flag_dsiz),
+ /* K5 */ be_const_int(1),
+ /* K6 */ be_nested_str_weak(dest_node_id_8),
+ /* K7 */ be_nested_str_weak(source_node_id),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(message_counter),
+ /* K11 */ be_nested_str_weak(counter_snd_next),
+ /* K12 */ be_nested_str_weak(local_session_id),
+ /* K13 */ be_nested_str_weak(initiator_session_id),
+ /* K14 */ be_nested_str_weak(x_flag_i),
+ /* K15 */ be_nested_str_weak(opcode),
+ /* K16 */ be_nested_str_weak(exchange_id),
+ /* K17 */ be_nested_str_weak(protocol_id),
+ /* K18 */ be_nested_str_weak(x_flag_a),
+ /* K19 */ be_nested_str_weak(ack_message_counter),
+ /* K20 */ be_nested_str_weak(x_flag_r),
+ }),
+ be_str_weak(build_standalone_ack),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x60080006, // 0000 GETGBL R2 G6
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x880C0100, // 0003 GETMBR R3 R0 K0
+ 0x7C080200, // 0004 CALL R2 1
+ 0x880C0101, // 0005 GETMBR R3 R0 K1
+ 0x900A0203, // 0006 SETMBR R2 K1 R3
+ 0x880C0102, // 0007 GETMBR R3 R0 K2
+ 0x900A0403, // 0008 SETMBR R2 K2 R3
+ 0x880C0103, // 0009 GETMBR R3 R0 K3
+ 0x780E0003, // 000A JMPF R3 #000F
+ 0x900A0905, // 000B SETMBR R2 K4 K5
+ 0x880C0107, // 000C GETMBR R3 R0 K7
+ 0x900A0C03, // 000D SETMBR R2 K6 R3
+ 0x70020000, // 000E JMP #0010
+ 0x900A0908, // 000F SETMBR R2 K4 K8
+ 0x880C0109, // 0010 GETMBR R3 R0 K9
+ 0x900A1203, // 0011 SETMBR R2 K9 R3
+ 0x880C0109, // 0012 GETMBR R3 R0 K9
+ 0x8C0C070B, // 0013 GETMET R3 R3 K11
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x900A1403, // 0015 SETMBR R2 K10 R3
+ 0x880C0109, // 0016 GETMBR R3 R0 K9
+ 0x880C070D, // 0017 GETMBR R3 R3 K13
+ 0x900A1803, // 0018 SETMBR R2 K12 R3
+ 0x880C010E, // 0019 GETMBR R3 R0 K14
+ 0x780E0001, // 001A JMPF R3 #001D
+ 0x580C0008, // 001B LDCONST R3 K8
+ 0x70020000, // 001C JMP #001E
+ 0x580C0005, // 001D LDCONST R3 K5
+ 0x900A1C03, // 001E SETMBR R2 K14 R3
+ 0x540E000F, // 001F LDINT R3 16
+ 0x900A1E03, // 0020 SETMBR R2 K15 R3
+ 0x880C0110, // 0021 GETMBR R3 R0 K16
+ 0x900A2003, // 0022 SETMBR R2 K16 R3
+ 0x900A2308, // 0023 SETMBR R2 K17 K8
+ 0x900A2505, // 0024 SETMBR R2 K18 K5
+ 0x880C010A, // 0025 GETMBR R3 R0 K10
+ 0x900A2603, // 0026 SETMBR R2 K19 R3
+ 0x78060001, // 0027 JMPF R1 #002A
+ 0x580C0005, // 0028 LDCONST R3 K5
+ 0x70020000, // 0029 JMP #002B
+ 0x580C0008, // 002A LDCONST R3 K8
+ 0x900A2803, // 002B SETMBR R2 K20 R3
+ 0x80040400, // 002C RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: initiate_response
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_initiate_response, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 5, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Frame),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(Frame),
+ /* K3 */ be_nested_str_weak(remote_ip),
+ /* K4 */ be_nested_str_weak(_ip),
+ /* K5 */ be_nested_str_weak(remote_port),
+ /* K6 */ be_nested_str_weak(_port),
+ /* K7 */ be_nested_str_weak(flag_dsiz),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(initiator_session_id),
+ /* K11 */ be_nested_str_weak(message_counter),
+ /* K12 */ be_nested_str_weak(counter_snd_next),
+ /* K13 */ be_nested_str_weak(local_session_id),
+ /* K14 */ be_nested_str_weak(_counter_insecure_snd),
+ /* K15 */ be_nested_str_weak(next),
+ /* K16 */ be_nested_str_weak(x_flag_i),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(opcode),
+ /* K19 */ be_nested_str_weak(_exchange_id),
+ /* K20 */ be_nested_str_weak(exchange_id),
+ /* K21 */ be_nested_str_weak(protocol_id),
+ /* K22 */ be_nested_str_weak(x_flag_r),
+ }),
+ be_str_weak(initiate_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[46]) { /* code */
+ 0x58140000, // 0000 LDCONST R5 K0
+ 0x4C180000, // 0001 LDNIL R6
+ 0x1C180806, // 0002 EQ R6 R4 R6
+ 0x781A0004, // 0003 JMPF R6 #0009
+ 0xB81A0200, // 0004 GETNGBL R6 K1
+ 0x8C180D02, // 0005 GETMET R6 R6 K2
+ 0x5C200000, // 0006 MOVE R8 R0
+ 0x7C180400, // 0007 CALL R6 2
+ 0x5C100C00, // 0008 MOVE R4 R6
+ 0x88180304, // 0009 GETMBR R6 R1 K4
+ 0x90120606, // 000A SETMBR R4 K3 R6
+ 0x88180306, // 000B GETMBR R6 R1 K6
+ 0x90120A06, // 000C SETMBR R4 K5 R6
+ 0x90120F08, // 000D SETMBR R4 K7 K8
+ 0x90121201, // 000E SETMBR R4 K9 R1
+ 0x78060008, // 000F JMPF R1 #0019
+ 0x8818030A, // 0010 GETMBR R6 R1 K10
+ 0x20180D08, // 0011 NE R6 R6 K8
+ 0x781A0005, // 0012 JMPF R6 #0019
+ 0x8C18030C, // 0013 GETMET R6 R1 K12
+ 0x7C180200, // 0014 CALL R6 1
+ 0x90121606, // 0015 SETMBR R4 K11 R6
+ 0x8818030A, // 0016 GETMBR R6 R1 K10
+ 0x90121A06, // 0017 SETMBR R4 K13 R6
+ 0x70020004, // 0018 JMP #001E
+ 0x8818030E, // 0019 GETMBR R6 R1 K14
+ 0x8C180D0F, // 001A GETMET R6 R6 K15
+ 0x7C180200, // 001B CALL R6 1
+ 0x90121606, // 001C SETMBR R4 K11 R6
+ 0x90121B08, // 001D SETMBR R4 K13 K8
+ 0x90122111, // 001E SETMBR R4 K16 K17
+ 0x90122402, // 001F SETMBR R4 K18 R2
+ 0x88180313, // 0020 GETMBR R6 R1 K19
+ 0x00180D11, // 0021 ADD R6 R6 K17
+ 0x90062606, // 0022 SETMBR R1 K19 R6
+ 0x88180313, // 0023 GETMBR R6 R1 K19
+ 0x541EFFFF, // 0024 LDINT R7 65536
+ 0x30180C07, // 0025 OR R6 R6 R7
+ 0x90122806, // 0026 SETMBR R4 K20 R6
+ 0x90122B11, // 0027 SETMBR R4 K21 K17
+ 0x780E0001, // 0028 JMPF R3 #002B
+ 0x58180011, // 0029 LDCONST R6 K17
+ 0x70020000, // 002A JMP #002C
+ 0x58180008, // 002B LDCONST R6 K8
+ 0x90122C06, // 002C SETMBR R4 K22 R6
+ 0x80040800, // 002D RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: decode_payload
+********************************************************************/
+extern const bclass be_class_Matter_Frame;
+be_local_closure(class_Matter_Frame_decode_payload, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Frame,
+ 1, /* has constants */
+ ( &(const bvalue[19]) { /* constants */
+ /* K0 */ be_nested_str_weak(payload_idx),
+ /* K1 */ be_nested_str_weak(raw),
+ /* K2 */ be_nested_str_weak(x_flags),
+ /* K3 */ be_nested_str_weak(get),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(x_flag_v),
+ /* K6 */ be_nested_str_weak(getbits),
+ /* K7 */ be_nested_str_weak(x_flag_sx),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(x_flag_r),
+ /* K10 */ be_const_int(2),
+ /* K11 */ be_nested_str_weak(x_flag_a),
+ /* K12 */ be_nested_str_weak(x_flag_i),
+ /* K13 */ be_nested_str_weak(opcode),
+ /* K14 */ be_nested_str_weak(exchange_id),
+ /* K15 */ be_nested_str_weak(protocol_id),
+ /* K16 */ be_nested_str_weak(vendor_id),
+ /* K17 */ be_nested_str_weak(ack_message_counter),
+ /* K18 */ be_nested_str_weak(app_payload_idx),
+ }),
+ be_str_weak(decode_payload),
+ &be_const_str_solidified,
+ ( &(const binstruction[93]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x8C0C0503, // 0002 GETMET R3 R2 K3
+ 0x5C140200, // 0003 MOVE R5 R1
+ 0x58180004, // 0004 LDCONST R6 K4
+ 0x7C0C0600, // 0005 CALL R3 3
+ 0x90020403, // 0006 SETMBR R0 K2 R3
+ 0x8C0C0506, // 0007 GETMET R3 R2 K6
+ 0x54160007, // 0008 LDINT R5 8
+ 0x08140205, // 0009 MUL R5 R1 R5
+ 0x541A0003, // 000A LDINT R6 4
+ 0x00140A06, // 000B ADD R5 R5 R6
+ 0x58180004, // 000C LDCONST R6 K4
+ 0x7C0C0600, // 000D CALL R3 3
+ 0x90020A03, // 000E SETMBR R0 K5 R3
+ 0x8C0C0506, // 000F GETMET R3 R2 K6
+ 0x54160007, // 0010 LDINT R5 8
+ 0x08140205, // 0011 MUL R5 R1 R5
+ 0x00140B08, // 0012 ADD R5 R5 K8
+ 0x58180004, // 0013 LDCONST R6 K4
+ 0x7C0C0600, // 0014 CALL R3 3
+ 0x90020E03, // 0015 SETMBR R0 K7 R3
+ 0x8C0C0506, // 0016 GETMET R3 R2 K6
+ 0x54160007, // 0017 LDINT R5 8
+ 0x08140205, // 0018 MUL R5 R1 R5
+ 0x00140B0A, // 0019 ADD R5 R5 K10
+ 0x58180004, // 001A LDCONST R6 K4
+ 0x7C0C0600, // 001B CALL R3 3
+ 0x90021203, // 001C SETMBR R0 K9 R3
+ 0x8C0C0506, // 001D GETMET R3 R2 K6
+ 0x54160007, // 001E LDINT R5 8
+ 0x08140205, // 001F MUL R5 R1 R5
+ 0x00140B04, // 0020 ADD R5 R5 K4
+ 0x58180004, // 0021 LDCONST R6 K4
+ 0x7C0C0600, // 0022 CALL R3 3
+ 0x90021603, // 0023 SETMBR R0 K11 R3
+ 0x8C0C0506, // 0024 GETMET R3 R2 K6
+ 0x54160007, // 0025 LDINT R5 8
+ 0x08140205, // 0026 MUL R5 R1 R5
+ 0x58180004, // 0027 LDCONST R6 K4
+ 0x7C0C0600, // 0028 CALL R3 3
+ 0x90021803, // 0029 SETMBR R0 K12 R3
+ 0x8C0C0503, // 002A GETMET R3 R2 K3
+ 0x00140304, // 002B ADD R5 R1 K4
+ 0x58180004, // 002C LDCONST R6 K4
+ 0x7C0C0600, // 002D CALL R3 3
+ 0x90021A03, // 002E SETMBR R0 K13 R3
+ 0x8C0C0503, // 002F GETMET R3 R2 K3
+ 0x0014030A, // 0030 ADD R5 R1 K10
+ 0x5818000A, // 0031 LDCONST R6 K10
+ 0x7C0C0600, // 0032 CALL R3 3
+ 0x90021C03, // 0033 SETMBR R0 K14 R3
+ 0x880C010C, // 0034 GETMBR R3 R0 K12
+ 0x740E0003, // 0035 JMPT R3 #003A
+ 0x880C010E, // 0036 GETMBR R3 R0 K14
+ 0x5412FFFF, // 0037 LDINT R4 65536
+ 0x300C0604, // 0038 OR R3 R3 R4
+ 0x90021C03, // 0039 SETMBR R0 K14 R3
+ 0x8C0C0503, // 003A GETMET R3 R2 K3
+ 0x54160003, // 003B LDINT R5 4
+ 0x00140205, // 003C ADD R5 R1 R5
+ 0x5818000A, // 003D LDCONST R6 K10
+ 0x7C0C0600, // 003E CALL R3 3
+ 0x90021E03, // 003F SETMBR R0 K15 R3
+ 0x540E0005, // 0040 LDINT R3 6
+ 0x00040203, // 0041 ADD R1 R1 R3
+ 0x880C0105, // 0042 GETMBR R3 R0 K5
+ 0x780E0005, // 0043 JMPF R3 #004A
+ 0x8C0C0503, // 0044 GETMET R3 R2 K3
+ 0x5C140200, // 0045 MOVE R5 R1
+ 0x5818000A, // 0046 LDCONST R6 K10
+ 0x7C0C0600, // 0047 CALL R3 3
+ 0x90022003, // 0048 SETMBR R0 K16 R3
+ 0x0004030A, // 0049 ADD R1 R1 K10
+ 0x880C010B, // 004A GETMBR R3 R0 K11
+ 0x780E0006, // 004B JMPF R3 #0053
+ 0x8C0C0503, // 004C GETMET R3 R2 K3
+ 0x5C140200, // 004D MOVE R5 R1
+ 0x541A0003, // 004E LDINT R6 4
+ 0x7C0C0600, // 004F CALL R3 3
+ 0x90022203, // 0050 SETMBR R0 K17 R3
+ 0x540E0003, // 0051 LDINT R3 4
+ 0x00040203, // 0052 ADD R1 R1 R3
+ 0x880C0107, // 0053 GETMBR R3 R0 K7
+ 0x780E0005, // 0054 JMPF R3 #005B
+ 0x8C0C0503, // 0055 GETMET R3 R2 K3
+ 0x5C140200, // 0056 MOVE R5 R1
+ 0x5818000A, // 0057 LDCONST R6 K10
+ 0x7C0C0600, // 0058 CALL R3 3
+ 0x0010070A, // 0059 ADD R4 R3 K10
+ 0x00040204, // 005A ADD R1 R1 R4
+ 0x90022401, // 005B SETMBR R0 K18 R1
+ 0x80040000, // 005C RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Frame
********************************************************************/
be_local_class(Matter_Frame,
32,
NULL,
- be_nested_map(42,
+ be_nested_map(43,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(x_flag_i, -1), be_const_var(22) },
- { be_const_key_weak(dest_node_id_8, 7), be_const_var(16) },
- { be_const_key_weak(x_flags, -1), be_const_var(17) },
- { be_const_key_weak(x_flag_a, -1), be_const_var(21) },
- { be_const_key_weak(exchange_id, -1), be_const_var(24) },
- { be_const_key_weak(opcode, -1), be_const_var(23) },
- { be_const_key_weak(encode_frame, -1), be_const_closure(class_Matter_Frame_encode_frame_closure) },
- { be_const_key_weak(app_payload_idx, -1), be_const_var(29) },
- { be_const_key_weak(payload_idx, -1), be_const_var(3) },
- { be_const_key_weak(ack_message_counter, 24), be_const_var(27) },
- { be_const_key_weak(build_standalone_ack, -1), be_const_closure(class_Matter_Frame_build_standalone_ack_closure) },
- { be_const_key_weak(x_flag_v, 6), be_const_var(18) },
- { be_const_key_weak(sec_c, -1), be_const_var(10) },
- { be_const_key_weak(vendor_id, 32), be_const_var(26) },
- { be_const_key_weak(local_session_id, -1), be_const_var(7) },
- { be_const_key_weak(flag_s, -1), be_const_var(5) },
- { be_const_key_weak(debug, -1), be_const_closure(class_Matter_Frame_debug_closure) },
- { be_const_key_weak(message_handler, 10), be_const_var(0) },
- { be_const_key_weak(encrypt, 34), be_const_closure(class_Matter_Frame_encrypt_closure) },
- { be_const_key_weak(session, -1), be_const_var(1) },
- { be_const_key_weak(sec_flags, -1), be_const_var(8) },
- { be_const_key_weak(build_response, -1), be_const_closure(class_Matter_Frame_build_response_closure) },
- { be_const_key_weak(initiate_response, -1), be_const_static_closure(class_Matter_Frame_initiate_response_closure) },
- { be_const_key_weak(remote_port, -1), be_const_var(31) },
- { be_const_key_weak(sec_sesstype, -1), be_const_var(12) },
- { be_const_key_weak(decode_header, 23), be_const_closure(class_Matter_Frame_decode_header_closure) },
- { be_const_key_weak(flags, -1), be_const_var(4) },
- { be_const_key_weak(protocol_id, 13), be_const_var(25) },
+ { be_const_key_weak(decode_payload, 35), be_const_closure(class_Matter_Frame_decode_payload_closure) },
{ be_const_key_weak(raw, -1), be_const_var(2) },
- { be_const_key_weak(source_node_id, 28), be_const_var(14) },
+ { be_const_key_weak(sec_c, 30), be_const_var(10) },
+ { be_const_key_weak(message_counter, 11), be_const_var(13) },
+ { be_const_key_weak(message_handler, -1), be_const_var(0) },
+ { be_const_key_weak(remote_ip, 4), be_const_var(30) },
+ { be_const_key_weak(x_flag_sx, -1), be_const_var(19) },
+ { be_const_key_weak(get_node_id, -1), be_const_closure(class_Matter_Frame_get_node_id_closure) },
+ { be_const_key_weak(sec_mx, -1), be_const_var(11) },
{ be_const_key_weak(flag_dsiz, -1), be_const_var(6) },
- { be_const_key_weak(x_flag_r, -1), be_const_var(20) },
- { be_const_key_weak(message_counter, -1), be_const_var(13) },
- { be_const_key_weak(init, 14), be_const_closure(class_Matter_Frame_init_closure) },
- { be_const_key_weak(x_flag_sx, 12), be_const_var(19) },
- { be_const_key_weak(dest_node_id_2, -1), be_const_var(15) },
- { be_const_key_weak(decode_payload, -1), be_const_closure(class_Matter_Frame_decode_payload_closure) },
- { be_const_key_weak(sec_p, 8), be_const_var(9) },
- { be_const_key_weak(decrypt, -1), be_const_closure(class_Matter_Frame_decrypt_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Frame_init_closure) },
+ { be_const_key_weak(x_flag_r, 9), be_const_var(20) },
+ { be_const_key_weak(encode_frame, 36), be_const_closure(class_Matter_Frame_encode_frame_closure) },
+ { be_const_key_weak(exchange_id, -1), be_const_var(24) },
+ { be_const_key_weak(x_flag_v, -1), be_const_var(18) },
{ be_const_key_weak(sec_extensions, -1), be_const_var(28) },
- { be_const_key_weak(sec_mx, 3), be_const_var(11) },
- { be_const_key_weak(remote_ip, 2), be_const_var(30) },
+ { be_const_key_weak(opcode, -1), be_const_var(23) },
+ { be_const_key_weak(local_session_id, -1), be_const_var(7) },
+ { be_const_key_weak(decode_header, -1), be_const_closure(class_Matter_Frame_decode_header_closure) },
+ { be_const_key_weak(debug, 22), be_const_closure(class_Matter_Frame_debug_closure) },
+ { be_const_key_weak(dest_node_id_8, -1), be_const_var(16) },
+ { be_const_key_weak(vendor_id, 32), be_const_var(26) },
+ { be_const_key_weak(initiate_response, -1), be_const_static_closure(class_Matter_Frame_initiate_response_closure) },
+ { be_const_key_weak(build_response, -1), be_const_closure(class_Matter_Frame_build_response_closure) },
+ { be_const_key_weak(payload_idx, -1), be_const_var(3) },
+ { be_const_key_weak(encrypt, 23), be_const_closure(class_Matter_Frame_encrypt_closure) },
+ { be_const_key_weak(dest_node_id_2, 21), be_const_var(15) },
+ { be_const_key_weak(sec_p, -1), be_const_var(9) },
+ { be_const_key_weak(sec_sesstype, 16), be_const_var(12) },
+ { be_const_key_weak(protocol_id, -1), be_const_var(25) },
+ { be_const_key_weak(build_standalone_ack, 38), be_const_closure(class_Matter_Frame_build_standalone_ack_closure) },
+ { be_const_key_weak(remote_port, -1), be_const_var(31) },
+ { be_const_key_weak(decrypt, -1), be_const_closure(class_Matter_Frame_decrypt_closure) },
+ { be_const_key_weak(session, 24), be_const_var(1) },
+ { be_const_key_weak(x_flag_i, -1), be_const_var(22) },
+ { be_const_key_weak(flag_s, -1), be_const_var(5) },
+ { be_const_key_weak(sec_flags, 37), be_const_var(8) },
+ { be_const_key_weak(x_flag_a, -1), be_const_var(21) },
+ { be_const_key_weak(app_payload_idx, -1), be_const_var(29) },
+ { be_const_key_weak(flags, -1), be_const_var(4) },
+ { be_const_key_weak(ack_message_counter, 8), be_const_var(27) },
+ { be_const_key_weak(source_node_id, -1), be_const_var(14) },
+ { be_const_key_weak(x_flags, 0), be_const_var(17) },
})),
be_str_weak(Matter_Frame)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 401fd4429..8c3e21abe 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -7,38 +7,12 @@
extern const bclass be_class_Matter_Plugin;
/********************************************************************
-** Solidified function: write_attribute
+** Solidified function: update_shadow
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_write_attribute, /* name */
+be_local_closure(class_Matter_Plugin_update_shadow, /* name */
be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(write_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: append_state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_append_state_json, /* name */
- be_nested_proto(
- 1, /* nstack */
+ 2, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -46,13 +20,17 @@ be_local_closure(class_Matter_Plugin_append_state_json, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
}),
- be_str_weak(append_state_json),
+ be_str_weak(update_shadow),
&be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80060000, // 0000 RET 1 K0
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040101, // 0000 GETMBR R1 R0 K1
+ 0x88040300, // 0001 GETMBR R1 R1 K0
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
})
)
);
@@ -117,176 +95,6 @@ be_local_closure(class_Matter_Plugin_state_json, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: timed_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_timed_request, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(timed_request),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_sensors
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(get_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_virtual
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_virtual, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(update_virtual),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ui_conf_to_string
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(find),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(ui_conf_to_string),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x780E0006, // 0002 JMPF R3 #000A
- 0x60100008, // 0003 GETGBL R4 G8
- 0x8C140302, // 0004 GETMET R5 R1 K2
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x58200003, // 0006 LDCONST R8 K3
- 0x7C140600, // 0007 CALL R5 3
- 0x7C100200, // 0008 CALL R4 1
- 0x70020000, // 0009 JMP #000B
- 0x58100003, // 000A LDCONST R4 K3
- 0x80040800, // 000B RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: ack_request
********************************************************************/
@@ -331,12 +139,64 @@ be_local_closure(class_Matter_Plugin_ack_request, /* name */
/********************************************************************
-** Solidified function: get_cluster_list_sorted
+** Solidified function: write_attribute
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
+be_local_closure(class_Matter_Plugin_write_attribute, /* name */
be_nested_proto(
- 4, /* nstack */
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(write_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: invoke_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_invoke_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: append_state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_append_state_json, /* name */
+ be_nested_proto(
+ 1, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -344,137 +204,13 @@ be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(k2l),
- /* K2 */ be_nested_str_weak(clusters),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
}),
- be_str_weak(get_cluster_list_sorted),
+ be_str_weak(append_state_json),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x7C040400, // 0003 CALL R1 2
- 0x80040200, // 0004 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: contains_cluster
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(contains),
- }),
- be_str_weak(contains_cluster),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_init, /* name */
- be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(clusters),
- /* K3 */ be_nested_str_weak(get_clusters),
- /* K4 */ be_nested_str_weak(parse_configuration),
- /* K5 */ be_nested_str_weak(node_label),
- /* K6 */ be_nested_str_weak(find),
- /* K7 */ be_nested_str_weak(name),
- /* K8 */ be_nested_str_weak(),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x8C100103, // 0002 GETMET R4 R0 K3
- 0x7C100200, // 0003 CALL R4 1
- 0x90020404, // 0004 SETMBR R0 K2 R4
- 0x8C100104, // 0005 GETMET R4 R0 K4
- 0x5C180600, // 0006 MOVE R6 R3
- 0x7C100400, // 0007 CALL R4 2
- 0x8C100706, // 0008 GETMET R4 R3 K6
- 0x58180007, // 0009 LDCONST R6 K7
- 0x581C0008, // 000A LDCONST R7 K8
- 0x7C100600, // 000B CALL R4 3
- 0x90020A04, // 000C SETMBR R0 K5 R4
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: ui_string_to_conf
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Plugin),
- /* K1 */ be_nested_str_weak(ARG),
- /* K2 */ be_nested_str_weak(ARG_TYPE),
- }),
- be_str_weak(ui_string_to_conf),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x88100101, // 0001 GETMBR R4 R0 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x780A0004, // 0003 JMPF R2 #0009
- 0x78120003, // 0004 JMPF R4 #0009
- 0x5C180A00, // 0005 MOVE R6 R5
- 0x5C1C0400, // 0006 MOVE R7 R2
- 0x7C180200, // 0007 CALL R6 1
- 0x98040806, // 0008 SETIDX R1 R4 R6
- 0x80040200, // 0009 RET 1 R1
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80060000, // 0000 RET 1 K0
})
)
);
@@ -545,25 +281,113 @@ be_local_closure(class_Matter_Plugin_every_250ms, /* name */
/********************************************************************
-** Solidified function: subscribe_event
+** Solidified function: publish_event
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
+be_local_closure(class_Matter_Plugin_publish_event, /* name */
be_nested_proto(
- 6, /* nstack */
+ 17, /* nstack */
5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_event),
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(EventDataIB),
+ /* K2 */ be_nested_str_weak(EventPathIB),
+ /* K3 */ be_nested_str_weak(endpoint),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(event),
+ /* K6 */ be_nested_str_weak(path),
+ /* K7 */ be_nested_str_weak(priority),
+ /* K8 */ be_nested_str_weak(event_number),
+ /* K9 */ be_nested_str_weak(device),
+ /* K10 */ be_nested_str_weak(events),
+ /* K11 */ be_nested_str_weak(get_next_event_no),
+ /* K12 */ be_nested_str_weak(epoch_timestamp),
+ /* K13 */ be_nested_str_weak(tasmota),
+ /* K14 */ be_nested_str_weak(rtc),
+ /* K15 */ be_nested_str_weak(utc),
+ /* K16 */ be_const_int(1700000000),
+ /* K17 */ be_nested_str_weak(data),
+ /* K18 */ be_const_int(2),
+ /* K19 */ be_nested_str_weak(CRIT_X20_X20),
+ /* K20 */ be_const_int(1),
+ /* K21 */ be_nested_str_weak(INFO_X20_X20),
+ /* K22 */ be_nested_str_weak(DEBUG_X20),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20_X2BAdd_Event_X20_X28_X25s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2504X_X20_X28_X255i_X29_X20_X2D_X20_X25s),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20Publishing_X20event_X20_X25s),
+ /* K26 */ be_nested_str_weak(queue_event),
+ }),
+ be_str_weak(publish_event),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
+ ( &(const binstruction[62]) { /* code */
+ 0xB8160000, // 0000 GETNGBL R5 K0
+ 0x8C140B01, // 0001 GETMET R5 R5 K1
+ 0x7C140200, // 0002 CALL R5 1
+ 0xB81A0000, // 0003 GETNGBL R6 K0
+ 0x8C180D02, // 0004 GETMET R6 R6 K2
+ 0x7C180200, // 0005 CALL R6 1
+ 0x881C0103, // 0006 GETMBR R7 R0 K3
+ 0x901A0607, // 0007 SETMBR R6 K3 R7
+ 0x901A0801, // 0008 SETMBR R6 K4 R1
+ 0x901A0A02, // 0009 SETMBR R6 K5 R2
+ 0x90160C06, // 000A SETMBR R5 K6 R6
+ 0x90160E03, // 000B SETMBR R5 K7 R3
+ 0x881C0109, // 000C GETMBR R7 R0 K9
+ 0x881C0F0A, // 000D GETMBR R7 R7 K10
+ 0x8C1C0F0B, // 000E GETMET R7 R7 K11
+ 0x7C1C0200, // 000F CALL R7 1
+ 0x90161007, // 0010 SETMBR R5 K8 R7
+ 0xB81E1A00, // 0011 GETNGBL R7 K13
+ 0x8C1C0F0E, // 0012 GETMET R7 R7 K14
+ 0x5824000F, // 0013 LDCONST R9 K15
+ 0x7C1C0400, // 0014 CALL R7 2
+ 0x90161807, // 0015 SETMBR R5 K12 R7
+ 0x881C0B0C, // 0016 GETMBR R7 R5 K12
+ 0x141C0F10, // 0017 LT R7 R7 K16
+ 0x781E0001, // 0018 JMPF R7 #001B
+ 0x4C1C0000, // 0019 LDNIL R7
+ 0x90161807, // 001A SETMBR R5 K12 R7
+ 0x90162204, // 001B SETMBR R5 K17 R4
+ 0x1C1C0712, // 001C EQ R7 R3 K18
+ 0x781E0001, // 001D JMPF R7 #0020
+ 0x581C0013, // 001E LDCONST R7 K19
+ 0x70020004, // 001F JMP #0025
+ 0x1C1C0714, // 0020 EQ R7 R3 K20
+ 0x781E0001, // 0021 JMPF R7 #0024
+ 0x581C0015, // 0022 LDCONST R7 K21
+ 0x70020000, // 0023 JMP #0025
+ 0x581C0016, // 0024 LDCONST R7 K22
+ 0xB8222E00, // 0025 GETNGBL R8 K23
+ 0x60240018, // 0026 GETGBL R9 G24
+ 0x58280018, // 0027 LDCONST R10 K24
+ 0x5C2C0E00, // 0028 MOVE R11 R7
+ 0x88300D03, // 0029 GETMBR R12 R6 K3
+ 0x88340D04, // 002A GETMBR R13 R6 K4
+ 0x88380D05, // 002B GETMBR R14 R6 K5
+ 0x883C0B08, // 002C GETMBR R15 R5 K8
+ 0x88400B11, // 002D GETMBR R16 R5 K17
+ 0x7C240E00, // 002E CALL R9 7
+ 0x58280012, // 002F LDCONST R10 K18
+ 0x7C200400, // 0030 CALL R8 2
+ 0xB8222E00, // 0031 GETNGBL R8 K23
+ 0x60240018, // 0032 GETGBL R9 G24
+ 0x58280019, // 0033 LDCONST R10 K25
+ 0x5C2C0A00, // 0034 MOVE R11 R5
+ 0x7C240400, // 0035 CALL R9 2
+ 0x542A0003, // 0036 LDINT R10 4
+ 0x7C200400, // 0037 CALL R8 2
+ 0x88200109, // 0038 GETMBR R8 R0 K9
+ 0x8820110A, // 0039 GETMBR R8 R8 K10
+ 0x8C20111A, // 003A GETMET R8 R8 K26
+ 0x5C280A00, // 003B MOVE R10 R5
+ 0x7C200400, // 003C CALL R8 2
+ 0x80000000, // 003D RET 0
})
)
);
@@ -571,10 +395,10 @@ be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
/********************************************************************
-** Solidified function: get_attribute_list
+** Solidified function: set_name
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
+be_local_closure(class_Matter_Plugin_set_name, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@@ -585,19 +409,393 @@ be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(clusters),
- /* K1 */ be_nested_str_weak(find),
+ /* K0 */ be_nested_str_weak(node_label),
+ /* K1 */ be_nested_str_weak(attribute_updated),
}),
- be_str_weak(get_attribute_list),
+ be_str_weak(set_name),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140012, // 0003 GETGBL R5 G18
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0003, // 0002 JMPF R2 #0007
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x54120038, // 0004 LDINT R4 57
+ 0x54160004, // 0005 LDINT R5 5
+ 0x7C080600, // 0006 CALL R2 3
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040008, // 0000 GETGBL R1 G8
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ui_string_to_conf
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_ui_string_to_conf, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(ARG_TYPE),
+ }),
+ be_str_weak(ui_string_to_conf),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x88100101, // 0001 GETMBR R4 R0 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x780A0004, // 0003 JMPF R2 #0009
+ 0x78120003, // 0004 JMPF R4 #0009
+ 0x5C180A00, // 0005 MOVE R6 R5
+ 0x5C1C0400, // 0006 MOVE R7 R2
+ 0x7C180200, // 0007 CALL R6 1
+ 0x98040806, // 0008 SETIDX R1 R4 R6
+ 0x80040200, // 0009 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: timed_request
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_timed_request, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(timed_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x80040800, // 0001 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_init, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(clusters),
+ /* K3 */ be_nested_str_weak(get_clusters),
+ /* K4 */ be_nested_str_weak(parse_configuration),
+ /* K5 */ be_nested_str_weak(node_label),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_nested_str_weak(name),
+ /* K8 */ be_nested_str_weak(),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x8C100103, // 0002 GETMET R4 R0 K3
+ 0x7C100200, // 0003 CALL R4 1
+ 0x90020404, // 0004 SETMBR R0 K2 R4
+ 0x8C100104, // 0005 GETMET R4 R0 K4
+ 0x5C180600, // 0006 MOVE R6 R3
+ 0x7C100400, // 0007 CALL R4 2
+ 0x8C100706, // 0008 GETMET R4 R3 K6
+ 0x58180007, // 0009 LDCONST R6 K7
+ 0x581C0008, // 000A LDCONST R7 K8
+ 0x7C100600, // 000B CALL R4 3
+ 0x90020A04, // 000C SETMBR R0 K5 R4
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_local_device
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_is_local_device, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(BRIDGE),
+ }),
+ be_str_weak(is_local_device),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x50040001, // 0002 LDBOOL R1 0 1
+ 0x50040200, // 0003 LDBOOL R1 1 0
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: consolidate_update_commands
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
+ }),
+ be_str_weak(consolidate_update_commands),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow_lazy
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(update_shadow),
+ }),
+ be_str_weak(update_shadow_lazy),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x88080500, // 0002 GETMBR R2 R2 K0
+ 0x20040202, // 0003 NE R1 R1 R2
+ 0x78060004, // 0004 JMPF R1 #000A
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x7C040200, // 0006 CALL R1 1
+ 0x88040101, // 0007 GETMBR R1 R0 K1
+ 0x88040300, // 0008 GETMBR R1 R1 K0
+ 0x90020001, // 0009 SETMBR R0 K0 R1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_cluster_list_sorted
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_cluster_list_sorted, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(k2l),
+ /* K2 */ be_nested_str_weak(clusters),
+ }),
+ be_str_weak(get_cluster_list_sorted),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x80040200, // 0004 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: ui_conf_to_string
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_ui_conf_to_string, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Plugin),
+ /* K1 */ be_nested_str_weak(ARG),
+ /* K2 */ be_nested_str_weak(find),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(ui_conf_to_string),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x780E0006, // 0002 JMPF R3 #000A
+ 0x60100008, // 0003 GETGBL R4 G8
+ 0x8C140302, // 0004 GETMET R5 R1 K2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x58200003, // 0006 LDCONST R8 K3
+ 0x7C140600, // 0007 CALL R5 3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x70020000, // 0009 JMP #000B
+ 0x58100003, // 000A LDCONST R4 K3
+ 0x80040800, // 000B RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K2 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x88180102, // 0002 GETMBR R6 R0 K2
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_virtual
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_update_virtual, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(update_virtual),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
})
)
);
@@ -650,10 +848,35 @@ be_local_closure(class_Matter_Plugin__parse_update_virtual, /* name */
/********************************************************************
-** Solidified function: consolidate_update_commands
+** Solidified function: parse_configuration
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
+be_local_closure(class_Matter_Plugin_parse_configuration, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_name
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_name, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -664,9 +887,9 @@ be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(UPDATE_COMMANDS),
+ /* K0 */ be_nested_str_weak(node_label),
}),
- be_str_weak(consolidate_update_commands),
+ be_str_weak(get_name),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -678,25 +901,27 @@ be_local_closure(class_Matter_Plugin_consolidate_update_commands, /* name */
/********************************************************************
-** Solidified function: subscribe_attribute
+** Solidified function: get_endpoint
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
+be_local_closure(class_Matter_Plugin_get_endpoint, /* name */
be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
+ 2, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(subscribe_attribute),
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ }),
+ be_str_weak(get_endpoint),
&be_const_str_solidified,
( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
})
)
);
@@ -755,54 +980,25 @@ be_local_closure(class_Matter_Plugin_contains_attribute, /* name */
/********************************************************************
-** Solidified function: get_clusters
+** Solidified function: subscribe_event
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_clusters, /* name */
+be_local_closure(class_Matter_Plugin_subscribe_event, /* name */
be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
+ 6, /* nstack */
+ 5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(CLUSTERS),
- }),
- be_str_weak(get_clusters),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
0, /* has constants */
NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
+ be_str_weak(subscribe_event),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040008, // 0000 GETGBL R1 G8
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
})
)
);
@@ -810,27 +1006,84 @@ be_local_closure(class_Matter_Plugin__X3Clambda_X3E, /* name */
/********************************************************************
-** Solidified function: get_name
+** Solidified function: read_event
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_get_name, /* name */
+be_local_closure(class_Matter_Plugin_read_event, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(read_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_parse_sensors, /* name */
be_nested_proto(
2, /* nstack */
- 1, /* argc */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(parse_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_attribute_list
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_get_attribute_list, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(find),
}),
- be_str_weak(get_name),
+ be_str_weak(get_attribute_list),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140012, // 0003 GETGBL R5 G18
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
})
)
);
@@ -918,204 +1171,10 @@ be_local_closure(class_Matter_Plugin_publish_command, /* name */
/********************************************************************
-** Solidified function: set_name
+** Solidified function: get_clusters
********************************************************************/
extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_set_name, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(node_label),
- /* K1 */ be_nested_str_weak(attribute_updated),
- }),
- be_str_weak(set_name),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0003, // 0002 JMPF R2 #0007
- 0x8C080101, // 0003 GETMET R2 R0 K1
- 0x54120038, // 0004 LDINT R4 57
- 0x54160004, // 0005 LDINT R5 5
- 0x7C080600, // 0006 CALL R2 3
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow_lazy
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow_lazy, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(update_shadow),
- }),
- be_str_weak(update_shadow_lazy),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x88080500, // 0002 GETMBR R2 R2 K0
- 0x20040202, // 0003 NE R1 R1 R2
- 0x78060004, // 0004 JMPF R1 #000A
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x7C040200, // 0006 CALL R1 1
- 0x88040101, // 0007 GETMBR R1 R0 K1
- 0x88040300, // 0008 GETMBR R1 R1 K0
- 0x90020001, // 0009 SETMBR R0 K0 R1
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_event
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_read_event, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(read_event),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x80040A00, // 0001 RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_update_shadow, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_nested_str_weak(device),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x88040300, // 0001 GETMBR R1 R1 K0
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_invoke_request, /* name */
- be_nested_proto(
- 5, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x80040800, // 0001 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attribute_updated
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_attribute_updated, /* name */
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(attribute_updated),
- /* K2 */ be_nested_str_weak(endpoint),
- }),
- be_str_weak(attribute_updated),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x88180102, // 0002 GETMBR R6 R0 K2
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_local_device
-********************************************************************/
-extern const bclass be_class_Matter_Plugin;
-be_local_closure(class_Matter_Plugin_is_local_device, /* name */
+be_local_closure(class_Matter_Plugin_get_clusters, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -1126,16 +1185,45 @@ be_local_closure(class_Matter_Plugin_is_local_device, /* name */
&be_class_Matter_Plugin,
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(BRIDGE),
+ /* K0 */ be_nested_str_weak(CLUSTERS),
}),
- be_str_weak(is_local_device),
+ be_str_weak(get_clusters),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: contains_cluster
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_contains_cluster, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(clusters),
+ /* K1 */ be_nested_str_weak(contains),
+ }),
+ be_str_weak(contains_cluster),
&be_const_str_solidified,
( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x50040001, // 0002 LDBOOL R1 0 1
- 0x50040200, // 0003 LDBOOL R1 1 0
- 0x80040200, // 0004 RET 1 R1
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -1350,57 +1438,89 @@ be_local_closure(class_Matter_Plugin_read_attribute, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: subscribe_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin;
+be_local_closure(class_Matter_Plugin_subscribe_attribute, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(subscribe_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x80040A00, // 0001 RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_Plugin
********************************************************************/
be_local_class(Matter_Plugin,
6,
NULL,
- be_nested_map(51,
+ be_nested_map(52,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(3,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(258, -1), be_const_int(5) },
- { be_const_key_int(49, 2), be_const_int(4) },
- { be_const_key_int(514, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
- { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
- { be_const_key_weak(state_json, -1), be_const_closure(class_Matter_Plugin_state_json_closure) },
- { be_const_key_weak(read_attribute, 9), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
- { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
- { be_const_key_weak(clusters, -1), be_const_var(3) },
- { be_const_key_weak(is_local_device, -1), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
- { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
- { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
- { be_const_key_weak(_parse_update_virtual, 2), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
+ { be_const_key_weak(subscribe_attribute, -1), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
+ { be_const_key_weak(state_json, 38), be_const_closure(class_Matter_Plugin_state_json_closure) },
+ { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
+ { be_const_key_weak(device, -1), be_const_var(1) },
{ be_const_key_weak(ack_request, -1), be_const_closure(class_Matter_Plugin_ack_request_closure) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
- { be_const_key_weak(get_endpoint, 19), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak() },
- { be_const_key_weak(UPDATE_COMMANDS, 47), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
+ { be_const_key_weak(get_cluster_list_sorted, -1), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
+ { be_const_key_weak(write_attribute, -1), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
+ { be_const_key_weak(BRIDGE, -1), be_const_bool(0) },
+ { be_const_key_weak(get_clusters, -1), be_const_closure(class_Matter_Plugin_get_clusters_closure) },
+ { be_const_key_weak(CLUSTERS, 51), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(UPDATE_COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(0,
( (struct bvalue*) &(const bvalue[]) {
})) ) } )) },
- { be_const_key_weak(ui_string_to_conf, -1), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
- { be_const_key_weak(every_250ms, 34), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
- { be_const_key_weak(device, -1), be_const_var(1) },
- { be_const_key_weak(consolidate_update_commands, 48), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
- { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
+ { be_const_key_weak(every_250ms, 0), be_const_closure(class_Matter_Plugin_every_250ms_closure) },
+ { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
{ be_const_key_weak(get_attribute_list, -1), be_const_closure(class_Matter_Plugin_get_attribute_list_closure) },
- { be_const_key_weak(write_attribute, 10), be_const_closure(class_Matter_Plugin_write_attribute_closure) },
- { be_const_key_weak(contains_attribute, -1), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
- { be_const_key_weak(read_event, 38), be_const_closure(class_Matter_Plugin_read_event_closure) },
- { be_const_key_weak(subscribe_attribute, -1), be_const_closure(class_Matter_Plugin_subscribe_attribute_closure) },
- { be_const_key_weak(contains_cluster, 23), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
- { be_const_key_weak(get_clusters, -1), be_const_closure(class_Matter_Plugin_get_clusters_closure) },
+ { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin__X3Clambda_X3E_closure) },
- { be_const_key_weak(get_name, 30), be_const_closure(class_Matter_Plugin_get_name_closure) },
- { be_const_key_weak(update_shadow_lazy, -1), be_const_closure(class_Matter_Plugin_update_shadow_lazy_closure) },
- { be_const_key_weak(TYPE, 6), be_nested_str_weak() },
- { be_const_key_weak(tick, -1), be_const_var(4) },
- { be_const_key_weak(CLUSTER_REVISIONS, 24), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(update_virtual, -1), be_const_closure(class_Matter_Plugin_update_virtual_closure) },
+ { be_const_key_weak(timed_request, -1), be_const_closure(class_Matter_Plugin_timed_request_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
+ { be_const_key_weak(is_local_device, 34), be_const_closure(class_Matter_Plugin_is_local_device_closure) },
+ { be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(29, -1), be_const_nil() },
+ })) ) } )) },
+ { be_const_key_weak(clusters, -1), be_const_var(3) },
+ { be_const_key_weak(VIRTUAL, 5), be_const_bool(0) },
+ { be_const_key_weak(CLUSTER_REVISIONS, 23), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(25,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(8, -1), be_const_int(5) },
@@ -1429,44 +1549,39 @@ be_local_class(Matter_Plugin,
{ be_const_key_int(6, -1), be_const_int(5) },
{ be_const_key_int(1024, -1), be_const_int(3) },
})) ) } )) },
- { be_const_key_weak(update_next, -1), be_const_var(0) },
- { be_const_key_weak(COMMANDS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_nil() },
- })) ) } )) },
- { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
- { be_const_key_weak(set_name, -1), be_const_closure(class_Matter_Plugin_set_name_closure) },
- { be_const_key_weak(publish_command, -1), be_const_closure(class_Matter_Plugin_publish_command_closure) },
+ { be_const_key_weak(consolidate_update_commands, 6), be_const_closure(class_Matter_Plugin_consolidate_update_commands_closure) },
{ be_const_key_weak(ui_conf_to_string, -1), be_const_static_closure(class_Matter_Plugin_ui_conf_to_string_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
- { be_const_key_weak(parse_sensors, 14), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
- { be_const_key_weak(CLUSTERS, 12), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
+ { be_const_key_weak(_parse_update_virtual, 36), be_const_closure(class_Matter_Plugin__parse_update_virtual_closure) },
+ { be_const_key_weak(update_next, 17), be_const_var(0) },
+ { be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(_Not_X20used_) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_parse_configuration_closure) },
+ { be_const_key_weak(invoke_request, 27), be_const_closure(class_Matter_Plugin_invoke_request_closure) },
+ { be_const_key_weak(node_label, -1), be_const_var(5) },
+ { be_const_key_weak(update_shadow, 30), be_const_closure(class_Matter_Plugin_update_shadow_closure) },
+ { be_const_key_weak(endpoint, 2), be_const_var(2) },
+ { be_const_key_weak(get_name, -1), be_const_closure(class_Matter_Plugin_get_name_closure) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Plugin_attribute_updated_closure) },
+ { be_const_key_weak(get_endpoint, -1), be_const_closure(class_Matter_Plugin_get_endpoint_closure) },
+ { be_const_key_weak(FEATURE_MAPS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(3,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
+ { be_const_key_int(258, -1), be_const_int(5) },
+ { be_const_key_int(49, 2), be_const_int(4) },
+ { be_const_key_int(514, -1), be_const_int(2) },
})) ) } )) },
- })) ) } )) },
- { be_const_key_weak(VIRTUAL, -1), be_const_bool(0) },
- { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak() },
- { be_const_key_weak(node_label, 7), be_const_var(5) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_init_closure) },
- { be_const_key_weak(get_cluster_list_sorted, 39), be_const_closure(class_Matter_Plugin_get_cluster_list_sorted_closure) },
- { be_const_key_weak(endpoint, -1), be_const_var(2) },
- { be_const_key_weak(BRIDGE, 0), be_const_bool(0) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak() },
+ { be_const_key_weak(subscribe_event, -1), be_const_closure(class_Matter_Plugin_subscribe_event_closure) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak() },
+ { be_const_key_weak(read_event, -1), be_const_closure(class_Matter_Plugin_read_event_closure) },
+ { be_const_key_weak(publish_event, 21), be_const_closure(class_Matter_Plugin_publish_event_closure) },
+ { be_const_key_weak(parse_sensors, -1), be_const_closure(class_Matter_Plugin_parse_sensors_closure) },
+ { be_const_key_weak(DISPLAY_NAME, 14), be_nested_str_weak() },
+ { be_const_key_weak(ui_string_to_conf, 13), be_const_static_closure(class_Matter_Plugin_ui_string_to_conf_closure) },
+ { be_const_key_weak(contains_attribute, 9), be_const_closure(class_Matter_Plugin_contains_attribute_closure) },
+ { be_const_key_weak(tick, -1), be_const_var(4) },
+ { be_const_key_weak(contains_cluster, -1), be_const_closure(class_Matter_Plugin_contains_cluster_closure) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_read_attribute_closure) },
+ { be_const_key_weak(append_state_json, -1), be_const_closure(class_Matter_Plugin_append_state_json_closure) },
})),
be_str_weak(Matter_Plugin)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
index aebdbd01e..4d0d8cb27 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
@@ -20,7 +20,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin_Root,
1, /* has constants */
- ( &(const bvalue[95]) { /* constants */
+ ( &(const bvalue[96]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV),
@@ -108,18 +108,19 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
/* K84 */ be_nested_str_weak(Status_X202),
/* K85 */ be_nested_str_weak(StatusFWR),
/* K86 */ be_nested_str_weak(Hardware),
- /* K87 */ be_nested_str_weak(Version),
- /* K88 */ be_nested_str_weak(_X28),
- /* K89 */ be_nested_str_weak(locale),
- /* K90 */ be_nested_str_weak(create_TLV),
- /* K91 */ be_nested_str_weak(get_active_endpoints),
- /* K92 */ be_nested_str_weak(disable_bridge_mode),
- /* K93 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K94 */ be_nested_str_weak(read_attribute),
+ /* K87 */ be_nested_str_weak(version),
+ /* K88 */ be_nested_str_weak(Version),
+ /* K89 */ be_nested_str_weak(_X28),
+ /* K90 */ be_nested_str_weak(locale),
+ /* K91 */ be_nested_str_weak(create_TLV),
+ /* K92 */ be_nested_str_weak(get_active_endpoints),
+ /* K93 */ be_nested_str_weak(disable_bridge_mode),
+ /* K94 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K95 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[924]) { /* code */
+ ( &(const binstruction[926]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0xB8160200, // 0001 GETNGBL R5 K1
0x88140B02, // 0002 GETMBR R5 R5 K2
@@ -176,11 +177,11 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x502C0000, // 0035 LDBOOL R11 0 0
0x7C200600, // 0036 CALL R8 3
0x80041000, // 0037 RET 1 R8
- 0x70020359, // 0038 JMP #0393
+ 0x7002035B, // 0038 JMP #0395
0x54220031, // 0039 LDINT R8 50
0x1C200C08, // 003A EQ R8 R6 R8
0x78220000, // 003B JMPF R8 #003D
- 0x70020355, // 003C JMP #0393
+ 0x70020357, // 003C JMP #0395
0x54220032, // 003D LDINT R8 51
0x1C200C08, // 003E EQ R8 R6 R8
0x782200DC, // 003F JMPF R8 #011D
@@ -404,11 +405,11 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x502C0000, // 0119 LDBOOL R11 0 0
0x7C200600, // 011A CALL R8 3
0x80041000, // 011B RET 1 R8
- 0x70020275, // 011C JMP #0393
+ 0x70020277, // 011C JMP #0395
0x54220033, // 011D LDINT R8 52
0x1C200C08, // 011E EQ R8 R6 R8
0x78220000, // 011F JMPF R8 #0121
- 0x70020271, // 0120 JMP #0393
+ 0x70020273, // 0120 JMP #0395
0x54220037, // 0121 LDINT R8 56
0x1C200C08, // 0122 EQ R8 R6 R8
0x7822002B, // 0123 JMPF R8 #0150
@@ -455,7 +456,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x5C301000, // 014C MOVE R12 R8
0x7C240600, // 014D CALL R9 3
0x80041200, // 014E RET 1 R9
- 0x70020242, // 014F JMP #0393
+ 0x70020244, // 014F JMP #0395
0x5422003D, // 0150 LDINT R8 62
0x1C200C08, // 0151 EQ R8 R6 R8
0x782200B5, // 0152 JMPF R8 #0209
@@ -640,7 +641,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x5C301000, // 0205 MOVE R12 R8
0x7C240600, // 0206 CALL R9 3
0x80041200, // 0207 RET 1 R9
- 0x70020189, // 0208 JMP #0393
+ 0x7002018B, // 0208 JMP #0395
0x5422003B, // 0209 LDINT R8 60
0x1C200C08, // 020A EQ R8 R6 R8
0x78220030, // 020B JMPF R8 #023D
@@ -692,10 +693,10 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x7C300200, // 0239 CALL R12 1
0x7C240600, // 023A CALL R9 3
0x80041200, // 023B RET 1 R9
- 0x70020155, // 023C JMP #0393
+ 0x70020157, // 023C JMP #0395
0x54220027, // 023D LDINT R8 40
0x1C200C08, // 023E EQ R8 R6 R8
- 0x782200BA, // 023F JMPF R8 #02FB
+ 0x782200BC, // 023F JMPF R8 #02FD
0x8C200133, // 0240 GETMET R8 R0 K51
0x5C280400, // 0241 MOVE R10 R2
0x7C200400, // 0242 CALL R8 2
@@ -706,7 +707,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x582C0009, // 0247 LDCONST R11 K9
0x7C200600, // 0248 CALL R8 3
0x80041000, // 0249 RET 1 R8
- 0x700200AE, // 024A JMP #02FA
+ 0x700200B0, // 024A JMP #02FC
0x1C200F09, // 024B EQ R8 R7 K9
0x78220005, // 024C JMPF R8 #0253
0x8C200706, // 024D GETMET R8 R3 K6
@@ -714,7 +715,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x582C004E, // 024F LDCONST R11 K78
0x7C200600, // 0250 CALL R8 3
0x80041000, // 0251 RET 1 R8
- 0x700200A6, // 0252 JMP #02FA
+ 0x700200A8, // 0252 JMP #02FC
0x1C200F0D, // 0253 EQ R8 R7 K13
0x78220006, // 0254 JMPF R8 #025C
0x8C200706, // 0255 GETMET R8 R3 K6
@@ -723,7 +724,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x882C174F, // 0258 GETMBR R11 R11 K79
0x7C200600, // 0259 CALL R8 3
0x80041000, // 025A RET 1 R8
- 0x7002009D, // 025B JMP #02FA
+ 0x7002009F, // 025B JMP #02FC
0x1C200F0F, // 025C EQ R8 R7 K15
0x7822000A, // 025D JMPF R8 #0269
0x8C200706, // 025E GETMET R8 R3 K6
@@ -736,7 +737,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x942C1750, // 0265 GETIDX R11 R11 K80
0x7C200600, // 0266 CALL R8 3
0x80041000, // 0267 RET 1 R8
- 0x70020090, // 0268 JMP #02FA
+ 0x70020092, // 0268 JMP #02FC
0x54220003, // 0269 LDINT R8 4
0x1C200E08, // 026A EQ R8 R7 R8
0x78220005, // 026B JMPF R8 #0272
@@ -745,7 +746,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x542E7FFF, // 026E LDINT R11 32768
0x7C200600, // 026F CALL R8 3
0x80041000, // 0270 RET 1 R8
- 0x70020087, // 0271 JMP #02FA
+ 0x70020089, // 0271 JMP #02FC
0x54220004, // 0272 LDINT R8 5
0x1C200E08, // 0273 EQ R8 R7 R8
0x7822000A, // 0274 JMPF R8 #0280
@@ -759,7 +760,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x942C1752, // 027C GETIDX R11 R11 K82
0x7C200600, // 027D CALL R8 3
0x80041000, // 027E RET 1 R8
- 0x70020079, // 027F JMP #02FA
+ 0x7002007B, // 027F JMP #02FC
0x54220005, // 0280 LDINT R8 6
0x1C200E08, // 0281 EQ R8 R7 R8
0x78220005, // 0282 JMPF R8 #0289
@@ -768,7 +769,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x582C0053, // 0285 LDCONST R11 K83
0x7C200600, // 0286 CALL R8 3
0x80041000, // 0287 RET 1 R8
- 0x70020070, // 0288 JMP #02FA
+ 0x70020072, // 0288 JMP #02FC
0x54220006, // 0289 LDINT R8 7
0x1C200E08, // 028A EQ R8 R7 R8
0x78220005, // 028B JMPF R8 #0292
@@ -777,7 +778,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x582C0005, // 028E LDCONST R11 K5
0x7C200600, // 028F CALL R8 3
0x80041000, // 0290 RET 1 R8
- 0x70020067, // 0291 JMP #02FA
+ 0x70020069, // 0291 JMP #02FC
0x54220007, // 0292 LDINT R8 8
0x1C200E08, // 0293 EQ R8 R7 R8
0x7822000B, // 0294 JMPF R8 #02A1
@@ -792,258 +793,260 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
0x942C1756, // 029D GETIDX R11 R11 K86
0x7C200600, // 029E CALL R8 3
0x80041000, // 029F RET 1 R8
- 0x70020058, // 02A0 JMP #02FA
+ 0x7002005A, // 02A0 JMP #02FC
0x54220008, // 02A1 LDINT R8 9
0x1C200E08, // 02A2 EQ R8 R7 R8
- 0x78220005, // 02A3 JMPF R8 #02AA
+ 0x78220007, // 02A3 JMPF R8 #02AC
0x8C200706, // 02A4 GETMET R8 R3 K6
- 0x88280B0C, // 02A5 GETMBR R10 R5 K12
- 0x582C0009, // 02A6 LDCONST R11 K9
- 0x7C200600, // 02A7 CALL R8 3
- 0x80041000, // 02A8 RET 1 R8
- 0x7002004F, // 02A9 JMP #02FA
- 0x54220009, // 02AA LDINT R8 10
- 0x1C200E08, // 02AB EQ R8 R7 R8
- 0x78220015, // 02AC JMPF R8 #02C3
- 0xB8222400, // 02AD GETNGBL R8 K18
- 0x8C201126, // 02AE GETMET R8 R8 K38
- 0x58280054, // 02AF LDCONST R10 K84
- 0x502C0200, // 02B0 LDBOOL R11 1 0
- 0x7C200600, // 02B1 CALL R8 3
- 0x94201155, // 02B2 GETIDX R8 R8 K85
- 0x94201157, // 02B3 GETIDX R8 R8 K87
- 0x8C24091B, // 02B4 GETMET R9 R4 K27
- 0x5C2C1000, // 02B5 MOVE R11 R8
- 0x58300058, // 02B6 LDCONST R12 K88
- 0x7C240600, // 02B7 CALL R9 3
- 0x24281305, // 02B8 GT R10 R9 K5
- 0x782A0002, // 02B9 JMPF R10 #02BD
- 0x04281309, // 02BA SUB R10 R9 K9
- 0x402A0A0A, // 02BB CONNECT R10 K5 R10
- 0x9420100A, // 02BC GETIDX R8 R8 R10
- 0x8C280706, // 02BD GETMET R10 R3 K6
- 0x88300B16, // 02BE GETMBR R12 R5 K22
- 0x5C341000, // 02BF MOVE R13 R8
- 0x7C280600, // 02C0 CALL R10 3
- 0x80041400, // 02C1 RET 1 R10
- 0x70020036, // 02C2 JMP #02FA
- 0x5422000E, // 02C3 LDINT R8 15
- 0x1C200E08, // 02C4 EQ R8 R7 R8
- 0x7822000B, // 02C5 JMPF R8 #02D2
- 0x8C200706, // 02C6 GETMET R8 R3 K6
- 0x88280B16, // 02C7 GETMBR R10 R5 K22
- 0xB82E2400, // 02C8 GETNGBL R11 K18
- 0x8C2C1725, // 02C9 GETMET R11 R11 K37
- 0x7C2C0200, // 02CA CALL R11 1
- 0x8C2C171B, // 02CB GETMET R11 R11 K27
- 0x5834001C, // 02CC LDCONST R13 K28
- 0x5838001D, // 02CD LDCONST R14 K29
- 0x7C2C0600, // 02CE CALL R11 3
- 0x7C200600, // 02CF CALL R8 3
- 0x80041000, // 02D0 RET 1 R8
- 0x70020027, // 02D1 JMP #02FA
- 0x54220010, // 02D2 LDINT R8 17
- 0x1C200E08, // 02D3 EQ R8 R7 R8
- 0x78220005, // 02D4 JMPF R8 #02DB
- 0x8C200706, // 02D5 GETMET R8 R3 K6
- 0x88280B10, // 02D6 GETMBR R10 R5 K16
- 0x582C0009, // 02D7 LDCONST R11 K9
- 0x7C200600, // 02D8 CALL R8 3
- 0x80041000, // 02D9 RET 1 R8
- 0x7002001E, // 02DA JMP #02FA
- 0x54220011, // 02DB LDINT R8 18
- 0x1C200E08, // 02DC EQ R8 R7 R8
- 0x7822000B, // 02DD JMPF R8 #02EA
- 0x8C200706, // 02DE GETMET R8 R3 K6
- 0x88280B16, // 02DF GETMBR R10 R5 K22
- 0xB82E2400, // 02E0 GETNGBL R11 K18
- 0x8C2C1725, // 02E1 GETMET R11 R11 K37
- 0x7C2C0200, // 02E2 CALL R11 1
- 0x8C2C171B, // 02E3 GETMET R11 R11 K27
- 0x5834001C, // 02E4 LDCONST R13 K28
- 0x5838001D, // 02E5 LDCONST R14 K29
- 0x7C2C0600, // 02E6 CALL R11 3
- 0x7C200600, // 02E7 CALL R8 3
- 0x80041000, // 02E8 RET 1 R8
- 0x7002000F, // 02E9 JMP #02FA
- 0x54220012, // 02EA LDINT R8 19
- 0x1C200E08, // 02EB EQ R8 R7 R8
- 0x7822000C, // 02EC JMPF R8 #02FA
- 0x8C200B0A, // 02ED GETMET R8 R5 K10
- 0x7C200200, // 02EE CALL R8 1
- 0x8C24110B, // 02EF GETMET R9 R8 K11
- 0x582C0005, // 02F0 LDCONST R11 K5
- 0x88300B0C, // 02F1 GETMBR R12 R5 K12
- 0x5834000F, // 02F2 LDCONST R13 K15
- 0x7C240800, // 02F3 CALL R9 4
- 0x8C24110B, // 02F4 GETMET R9 R8 K11
- 0x582C0009, // 02F5 LDCONST R11 K9
- 0x88300B0C, // 02F6 GETMBR R12 R5 K12
- 0x5834000F, // 02F7 LDCONST R13 K15
- 0x7C240800, // 02F8 CALL R9 4
- 0x80041000, // 02F9 RET 1 R8
- 0x70020097, // 02FA JMP #0393
- 0x5422003E, // 02FB LDINT R8 63
- 0x1C200C08, // 02FC EQ R8 R6 R8
- 0x78220000, // 02FD JMPF R8 #02FF
- 0x70020093, // 02FE JMP #0393
- 0x54220029, // 02FF LDINT R8 42
- 0x1C200C08, // 0300 EQ R8 R6 R8
- 0x7822001D, // 0301 JMPF R8 #0320
- 0x1C200F05, // 0302 EQ R8 R7 K5
- 0x78220003, // 0303 JMPF R8 #0308
- 0x8C200B11, // 0304 GETMET R8 R5 K17
- 0x7C200200, // 0305 CALL R8 1
- 0x80041000, // 0306 RET 1 R8
- 0x70020016, // 0307 JMP #031F
- 0x1C200F09, // 0308 EQ R8 R7 K9
- 0x78220005, // 0309 JMPF R8 #0310
- 0x8C200706, // 030A GETMET R8 R3 K6
- 0x88280B10, // 030B GETMBR R10 R5 K16
- 0x582C0005, // 030C LDCONST R11 K5
- 0x7C200600, // 030D CALL R8 3
- 0x80041000, // 030E RET 1 R8
- 0x7002000E, // 030F JMP #031F
- 0x1C200F0D, // 0310 EQ R8 R7 K13
- 0x78220005, // 0311 JMPF R8 #0318
- 0x8C200706, // 0312 GETMET R8 R3 K6
- 0x88280B0E, // 0313 GETMBR R10 R5 K14
- 0x582C0009, // 0314 LDCONST R11 K9
- 0x7C200600, // 0315 CALL R8 3
- 0x80041000, // 0316 RET 1 R8
- 0x70020006, // 0317 JMP #031F
- 0x1C200F0F, // 0318 EQ R8 R7 K15
- 0x78220004, // 0319 JMPF R8 #031F
- 0x8C200706, // 031A GETMET R8 R3 K6
- 0x88280B18, // 031B GETMBR R10 R5 K24
- 0x4C2C0000, // 031C LDNIL R11
- 0x7C200600, // 031D CALL R8 3
- 0x80041000, // 031E RET 1 R8
- 0x70020072, // 031F JMP #0393
- 0x5422002A, // 0320 LDINT R8 43
- 0x1C200C08, // 0321 EQ R8 R6 R8
- 0x78220016, // 0322 JMPF R8 #033A
- 0x1C200F05, // 0323 EQ R8 R7 K5
- 0x78220007, // 0324 JMPF R8 #032D
- 0x8C200706, // 0325 GETMET R8 R3 K6
- 0x88280B16, // 0326 GETMBR R10 R5 K22
- 0xB82E2400, // 0327 GETNGBL R11 K18
- 0x8C2C1759, // 0328 GETMET R11 R11 K89
- 0x7C2C0200, // 0329 CALL R11 1
- 0x7C200600, // 032A CALL R8 3
- 0x80041000, // 032B RET 1 R8
- 0x7002000B, // 032C JMP #0339
- 0x1C200F09, // 032D EQ R8 R7 K9
- 0x78220009, // 032E JMPF R8 #0339
- 0x8C200B11, // 032F GETMET R8 R5 K17
- 0x7C200200, // 0330 CALL R8 1
- 0x8C24110B, // 0331 GETMET R9 R8 K11
- 0x4C2C0000, // 0332 LDNIL R11
- 0x88300B16, // 0333 GETMBR R12 R5 K22
- 0xB8362400, // 0334 GETNGBL R13 K18
- 0x8C341B59, // 0335 GETMET R13 R13 K89
- 0x7C340200, // 0336 CALL R13 1
- 0x7C240800, // 0337 CALL R9 4
- 0x80041000, // 0338 RET 1 R8
- 0x70020058, // 0339 JMP #0393
- 0x5422002B, // 033A LDINT R8 44
- 0x1C200C08, // 033B EQ R8 R6 R8
- 0x7822001C, // 033C JMPF R8 #035A
- 0x1C200F05, // 033D EQ R8 R7 K5
- 0x78220005, // 033E JMPF R8 #0345
- 0x8C200706, // 033F GETMET R8 R3 K6
- 0x88280B0E, // 0340 GETMBR R10 R5 K14
- 0x582C0009, // 0341 LDCONST R11 K9
- 0x7C200600, // 0342 CALL R8 3
- 0x80041000, // 0343 RET 1 R8
- 0x70020013, // 0344 JMP #0359
- 0x1C200F09, // 0345 EQ R8 R7 K9
- 0x78220005, // 0346 JMPF R8 #034D
- 0x8C200706, // 0347 GETMET R8 R3 K6
- 0x88280B0E, // 0348 GETMBR R10 R5 K14
- 0x542E0003, // 0349 LDINT R11 4
- 0x7C200600, // 034A CALL R8 3
- 0x80041000, // 034B RET 1 R8
- 0x7002000B, // 034C JMP #0359
- 0x1C200F0D, // 034D EQ R8 R7 K13
- 0x78220009, // 034E JMPF R8 #0359
- 0x8C200B11, // 034F GETMET R8 R5 K17
- 0x7C200200, // 0350 CALL R8 1
- 0x8C24110B, // 0351 GETMET R9 R8 K11
- 0x4C2C0000, // 0352 LDNIL R11
- 0x8C300B5A, // 0353 GETMET R12 R5 K90
- 0x88380B0E, // 0354 GETMBR R14 R5 K14
- 0x543E0003, // 0355 LDINT R15 4
- 0x7C300600, // 0356 CALL R12 3
- 0x7C240600, // 0357 CALL R9 3
- 0x80041000, // 0358 RET 1 R8
- 0x70020038, // 0359 JMP #0393
- 0x54220030, // 035A LDINT R8 49
- 0x1C200C08, // 035B EQ R8 R6 R8
- 0x78220007, // 035C JMPF R8 #0365
- 0x1C200F0F, // 035D EQ R8 R7 K15
- 0x78220004, // 035E JMPF R8 #0364
- 0x8C200706, // 035F GETMET R8 R3 K6
- 0x88280B0E, // 0360 GETMBR R10 R5 K14
- 0x542E001D, // 0361 LDINT R11 30
- 0x7C200600, // 0362 CALL R8 3
- 0x80041000, // 0363 RET 1 R8
- 0x7002002D, // 0364 JMP #0393
- 0x5422001C, // 0365 LDINT R8 29
- 0x1C200C08, // 0366 EQ R8 R6 R8
- 0x7822002A, // 0367 JMPF R8 #0393
- 0x1C200F0D, // 0368 EQ R8 R7 K13
- 0x78220008, // 0369 JMPF R8 #0373
- 0x8C200B11, // 036A GETMET R8 R5 K17
- 0x7C200200, // 036B CALL R8 1
- 0x8C24110B, // 036C GETMET R9 R8 K11
- 0x4C2C0000, // 036D LDNIL R11
- 0x88300B0C, // 036E GETMBR R12 R5 K12
- 0x5436001E, // 036F LDINT R13 31
- 0x7C240800, // 0370 CALL R9 4
- 0x80041000, // 0371 RET 1 R8
- 0x7002001F, // 0372 JMP #0393
- 0x1C200F0F, // 0373 EQ R8 R7 K15
- 0x7822001D, // 0374 JMPF R8 #0393
- 0x8C200B11, // 0375 GETMET R8 R5 K17
- 0x7C200200, // 0376 CALL R8 1
- 0x88240136, // 0377 GETMBR R9 R0 K54
- 0x8C24135B, // 0378 GETMET R9 R9 K91
- 0x502C0200, // 0379 LDBOOL R11 1 0
- 0x7C240400, // 037A CALL R9 2
- 0x88280136, // 037B GETMBR R10 R0 K54
- 0x8828155C, // 037C GETMBR R10 R10 K92
- 0x602C0010, // 037D GETGBL R11 G16
- 0x5C301200, // 037E MOVE R12 R9
- 0x7C2C0200, // 037F CALL R11 1
- 0xA802000D, // 0380 EXBLK 0 #038F
- 0x5C301600, // 0381 MOVE R12 R11
- 0x7C300000, // 0382 CALL R12 0
- 0x5C341400, // 0383 MOVE R13 R10
- 0x78360003, // 0384 JMPF R13 #0389
- 0xB8360200, // 0385 GETNGBL R13 K1
- 0x88341B5D, // 0386 GETMBR R13 R13 K93
- 0x2034180D, // 0387 NE R13 R12 R13
- 0x78360004, // 0388 JMPF R13 #038E
- 0x8C34110B, // 0389 GETMET R13 R8 K11
- 0x4C3C0000, // 038A LDNIL R15
- 0x88400B0C, // 038B GETMBR R16 R5 K12
- 0x5C441800, // 038C MOVE R17 R12
- 0x7C340800, // 038D CALL R13 4
- 0x7001FFF1, // 038E JMP #0381
- 0x582C003E, // 038F LDCONST R11 K62
- 0xAC2C0200, // 0390 CATCH R11 1 0
- 0xB0080000, // 0391 RAISE 2 R0 R0
- 0x80041000, // 0392 RET 1 R8
- 0x60200003, // 0393 GETGBL R8 G3
- 0x5C240000, // 0394 MOVE R9 R0
- 0x7C200200, // 0395 CALL R8 1
- 0x8C20115E, // 0396 GETMET R8 R8 K94
- 0x5C280200, // 0397 MOVE R10 R1
- 0x5C2C0400, // 0398 MOVE R11 R2
- 0x5C300600, // 0399 MOVE R12 R3
- 0x7C200800, // 039A CALL R8 4
- 0x80041000, // 039B RET 1 R8
+ 0x88280B2A, // 02A5 GETMBR R10 R5 K42
+ 0xB82E2400, // 02A6 GETNGBL R11 K18
+ 0x8C2C1757, // 02A7 GETMET R11 R11 K87
+ 0x7C2C0200, // 02A8 CALL R11 1
+ 0x7C200600, // 02A9 CALL R8 3
+ 0x80041000, // 02AA RET 1 R8
+ 0x7002004F, // 02AB JMP #02FC
+ 0x54220009, // 02AC LDINT R8 10
+ 0x1C200E08, // 02AD EQ R8 R7 R8
+ 0x78220015, // 02AE JMPF R8 #02C5
+ 0xB8222400, // 02AF GETNGBL R8 K18
+ 0x8C201126, // 02B0 GETMET R8 R8 K38
+ 0x58280054, // 02B1 LDCONST R10 K84
+ 0x502C0200, // 02B2 LDBOOL R11 1 0
+ 0x7C200600, // 02B3 CALL R8 3
+ 0x94201155, // 02B4 GETIDX R8 R8 K85
+ 0x94201158, // 02B5 GETIDX R8 R8 K88
+ 0x8C24091B, // 02B6 GETMET R9 R4 K27
+ 0x5C2C1000, // 02B7 MOVE R11 R8
+ 0x58300059, // 02B8 LDCONST R12 K89
+ 0x7C240600, // 02B9 CALL R9 3
+ 0x24281305, // 02BA GT R10 R9 K5
+ 0x782A0002, // 02BB JMPF R10 #02BF
+ 0x04281309, // 02BC SUB R10 R9 K9
+ 0x402A0A0A, // 02BD CONNECT R10 K5 R10
+ 0x9420100A, // 02BE GETIDX R8 R8 R10
+ 0x8C280706, // 02BF GETMET R10 R3 K6
+ 0x88300B16, // 02C0 GETMBR R12 R5 K22
+ 0x5C341000, // 02C1 MOVE R13 R8
+ 0x7C280600, // 02C2 CALL R10 3
+ 0x80041400, // 02C3 RET 1 R10
+ 0x70020036, // 02C4 JMP #02FC
+ 0x5422000E, // 02C5 LDINT R8 15
+ 0x1C200E08, // 02C6 EQ R8 R7 R8
+ 0x7822000B, // 02C7 JMPF R8 #02D4
+ 0x8C200706, // 02C8 GETMET R8 R3 K6
+ 0x88280B16, // 02C9 GETMBR R10 R5 K22
+ 0xB82E2400, // 02CA GETNGBL R11 K18
+ 0x8C2C1725, // 02CB GETMET R11 R11 K37
+ 0x7C2C0200, // 02CC CALL R11 1
+ 0x8C2C171B, // 02CD GETMET R11 R11 K27
+ 0x5834001C, // 02CE LDCONST R13 K28
+ 0x5838001D, // 02CF LDCONST R14 K29
+ 0x7C2C0600, // 02D0 CALL R11 3
+ 0x7C200600, // 02D1 CALL R8 3
+ 0x80041000, // 02D2 RET 1 R8
+ 0x70020027, // 02D3 JMP #02FC
+ 0x54220010, // 02D4 LDINT R8 17
+ 0x1C200E08, // 02D5 EQ R8 R7 R8
+ 0x78220005, // 02D6 JMPF R8 #02DD
+ 0x8C200706, // 02D7 GETMET R8 R3 K6
+ 0x88280B10, // 02D8 GETMBR R10 R5 K16
+ 0x582C0009, // 02D9 LDCONST R11 K9
+ 0x7C200600, // 02DA CALL R8 3
+ 0x80041000, // 02DB RET 1 R8
+ 0x7002001E, // 02DC JMP #02FC
+ 0x54220011, // 02DD LDINT R8 18
+ 0x1C200E08, // 02DE EQ R8 R7 R8
+ 0x7822000B, // 02DF JMPF R8 #02EC
+ 0x8C200706, // 02E0 GETMET R8 R3 K6
+ 0x88280B16, // 02E1 GETMBR R10 R5 K22
+ 0xB82E2400, // 02E2 GETNGBL R11 K18
+ 0x8C2C1725, // 02E3 GETMET R11 R11 K37
+ 0x7C2C0200, // 02E4 CALL R11 1
+ 0x8C2C171B, // 02E5 GETMET R11 R11 K27
+ 0x5834001C, // 02E6 LDCONST R13 K28
+ 0x5838001D, // 02E7 LDCONST R14 K29
+ 0x7C2C0600, // 02E8 CALL R11 3
+ 0x7C200600, // 02E9 CALL R8 3
+ 0x80041000, // 02EA RET 1 R8
+ 0x7002000F, // 02EB JMP #02FC
+ 0x54220012, // 02EC LDINT R8 19
+ 0x1C200E08, // 02ED EQ R8 R7 R8
+ 0x7822000C, // 02EE JMPF R8 #02FC
+ 0x8C200B0A, // 02EF GETMET R8 R5 K10
+ 0x7C200200, // 02F0 CALL R8 1
+ 0x8C24110B, // 02F1 GETMET R9 R8 K11
+ 0x582C0005, // 02F2 LDCONST R11 K5
+ 0x88300B0C, // 02F3 GETMBR R12 R5 K12
+ 0x5834000F, // 02F4 LDCONST R13 K15
+ 0x7C240800, // 02F5 CALL R9 4
+ 0x8C24110B, // 02F6 GETMET R9 R8 K11
+ 0x582C0009, // 02F7 LDCONST R11 K9
+ 0x88300B0C, // 02F8 GETMBR R12 R5 K12
+ 0x5834000F, // 02F9 LDCONST R13 K15
+ 0x7C240800, // 02FA CALL R9 4
+ 0x80041000, // 02FB RET 1 R8
+ 0x70020097, // 02FC JMP #0395
+ 0x5422003E, // 02FD LDINT R8 63
+ 0x1C200C08, // 02FE EQ R8 R6 R8
+ 0x78220000, // 02FF JMPF R8 #0301
+ 0x70020093, // 0300 JMP #0395
+ 0x54220029, // 0301 LDINT R8 42
+ 0x1C200C08, // 0302 EQ R8 R6 R8
+ 0x7822001D, // 0303 JMPF R8 #0322
+ 0x1C200F05, // 0304 EQ R8 R7 K5
+ 0x78220003, // 0305 JMPF R8 #030A
+ 0x8C200B11, // 0306 GETMET R8 R5 K17
+ 0x7C200200, // 0307 CALL R8 1
+ 0x80041000, // 0308 RET 1 R8
+ 0x70020016, // 0309 JMP #0321
+ 0x1C200F09, // 030A EQ R8 R7 K9
+ 0x78220005, // 030B JMPF R8 #0312
+ 0x8C200706, // 030C GETMET R8 R3 K6
+ 0x88280B10, // 030D GETMBR R10 R5 K16
+ 0x582C0005, // 030E LDCONST R11 K5
+ 0x7C200600, // 030F CALL R8 3
+ 0x80041000, // 0310 RET 1 R8
+ 0x7002000E, // 0311 JMP #0321
+ 0x1C200F0D, // 0312 EQ R8 R7 K13
+ 0x78220005, // 0313 JMPF R8 #031A
+ 0x8C200706, // 0314 GETMET R8 R3 K6
+ 0x88280B0E, // 0315 GETMBR R10 R5 K14
+ 0x582C0009, // 0316 LDCONST R11 K9
+ 0x7C200600, // 0317 CALL R8 3
+ 0x80041000, // 0318 RET 1 R8
+ 0x70020006, // 0319 JMP #0321
+ 0x1C200F0F, // 031A EQ R8 R7 K15
+ 0x78220004, // 031B JMPF R8 #0321
+ 0x8C200706, // 031C GETMET R8 R3 K6
+ 0x88280B18, // 031D GETMBR R10 R5 K24
+ 0x4C2C0000, // 031E LDNIL R11
+ 0x7C200600, // 031F CALL R8 3
+ 0x80041000, // 0320 RET 1 R8
+ 0x70020072, // 0321 JMP #0395
+ 0x5422002A, // 0322 LDINT R8 43
+ 0x1C200C08, // 0323 EQ R8 R6 R8
+ 0x78220016, // 0324 JMPF R8 #033C
+ 0x1C200F05, // 0325 EQ R8 R7 K5
+ 0x78220007, // 0326 JMPF R8 #032F
+ 0x8C200706, // 0327 GETMET R8 R3 K6
+ 0x88280B16, // 0328 GETMBR R10 R5 K22
+ 0xB82E2400, // 0329 GETNGBL R11 K18
+ 0x8C2C175A, // 032A GETMET R11 R11 K90
+ 0x7C2C0200, // 032B CALL R11 1
+ 0x7C200600, // 032C CALL R8 3
+ 0x80041000, // 032D RET 1 R8
+ 0x7002000B, // 032E JMP #033B
+ 0x1C200F09, // 032F EQ R8 R7 K9
+ 0x78220009, // 0330 JMPF R8 #033B
+ 0x8C200B11, // 0331 GETMET R8 R5 K17
+ 0x7C200200, // 0332 CALL R8 1
+ 0x8C24110B, // 0333 GETMET R9 R8 K11
+ 0x4C2C0000, // 0334 LDNIL R11
+ 0x88300B16, // 0335 GETMBR R12 R5 K22
+ 0xB8362400, // 0336 GETNGBL R13 K18
+ 0x8C341B5A, // 0337 GETMET R13 R13 K90
+ 0x7C340200, // 0338 CALL R13 1
+ 0x7C240800, // 0339 CALL R9 4
+ 0x80041000, // 033A RET 1 R8
+ 0x70020058, // 033B JMP #0395
+ 0x5422002B, // 033C LDINT R8 44
+ 0x1C200C08, // 033D EQ R8 R6 R8
+ 0x7822001C, // 033E JMPF R8 #035C
+ 0x1C200F05, // 033F EQ R8 R7 K5
+ 0x78220005, // 0340 JMPF R8 #0347
+ 0x8C200706, // 0341 GETMET R8 R3 K6
+ 0x88280B0E, // 0342 GETMBR R10 R5 K14
+ 0x582C0009, // 0343 LDCONST R11 K9
+ 0x7C200600, // 0344 CALL R8 3
+ 0x80041000, // 0345 RET 1 R8
+ 0x70020013, // 0346 JMP #035B
+ 0x1C200F09, // 0347 EQ R8 R7 K9
+ 0x78220005, // 0348 JMPF R8 #034F
+ 0x8C200706, // 0349 GETMET R8 R3 K6
+ 0x88280B0E, // 034A GETMBR R10 R5 K14
+ 0x542E0003, // 034B LDINT R11 4
+ 0x7C200600, // 034C CALL R8 3
+ 0x80041000, // 034D RET 1 R8
+ 0x7002000B, // 034E JMP #035B
+ 0x1C200F0D, // 034F EQ R8 R7 K13
+ 0x78220009, // 0350 JMPF R8 #035B
+ 0x8C200B11, // 0351 GETMET R8 R5 K17
+ 0x7C200200, // 0352 CALL R8 1
+ 0x8C24110B, // 0353 GETMET R9 R8 K11
+ 0x4C2C0000, // 0354 LDNIL R11
+ 0x8C300B5B, // 0355 GETMET R12 R5 K91
+ 0x88380B0E, // 0356 GETMBR R14 R5 K14
+ 0x543E0003, // 0357 LDINT R15 4
+ 0x7C300600, // 0358 CALL R12 3
+ 0x7C240600, // 0359 CALL R9 3
+ 0x80041000, // 035A RET 1 R8
+ 0x70020038, // 035B JMP #0395
+ 0x54220030, // 035C LDINT R8 49
+ 0x1C200C08, // 035D EQ R8 R6 R8
+ 0x78220007, // 035E JMPF R8 #0367
+ 0x1C200F0F, // 035F EQ R8 R7 K15
+ 0x78220004, // 0360 JMPF R8 #0366
+ 0x8C200706, // 0361 GETMET R8 R3 K6
+ 0x88280B0E, // 0362 GETMBR R10 R5 K14
+ 0x542E001D, // 0363 LDINT R11 30
+ 0x7C200600, // 0364 CALL R8 3
+ 0x80041000, // 0365 RET 1 R8
+ 0x7002002D, // 0366 JMP #0395
+ 0x5422001C, // 0367 LDINT R8 29
+ 0x1C200C08, // 0368 EQ R8 R6 R8
+ 0x7822002A, // 0369 JMPF R8 #0395
+ 0x1C200F0D, // 036A EQ R8 R7 K13
+ 0x78220008, // 036B JMPF R8 #0375
+ 0x8C200B11, // 036C GETMET R8 R5 K17
+ 0x7C200200, // 036D CALL R8 1
+ 0x8C24110B, // 036E GETMET R9 R8 K11
+ 0x4C2C0000, // 036F LDNIL R11
+ 0x88300B0C, // 0370 GETMBR R12 R5 K12
+ 0x5436001E, // 0371 LDINT R13 31
+ 0x7C240800, // 0372 CALL R9 4
+ 0x80041000, // 0373 RET 1 R8
+ 0x7002001F, // 0374 JMP #0395
+ 0x1C200F0F, // 0375 EQ R8 R7 K15
+ 0x7822001D, // 0376 JMPF R8 #0395
+ 0x8C200B11, // 0377 GETMET R8 R5 K17
+ 0x7C200200, // 0378 CALL R8 1
+ 0x88240136, // 0379 GETMBR R9 R0 K54
+ 0x8C24135C, // 037A GETMET R9 R9 K92
+ 0x502C0200, // 037B LDBOOL R11 1 0
+ 0x7C240400, // 037C CALL R9 2
+ 0x88280136, // 037D GETMBR R10 R0 K54
+ 0x8828155D, // 037E GETMBR R10 R10 K93
+ 0x602C0010, // 037F GETGBL R11 G16
+ 0x5C301200, // 0380 MOVE R12 R9
+ 0x7C2C0200, // 0381 CALL R11 1
+ 0xA802000D, // 0382 EXBLK 0 #0391
+ 0x5C301600, // 0383 MOVE R12 R11
+ 0x7C300000, // 0384 CALL R12 0
+ 0x5C341400, // 0385 MOVE R13 R10
+ 0x78360003, // 0386 JMPF R13 #038B
+ 0xB8360200, // 0387 GETNGBL R13 K1
+ 0x88341B5E, // 0388 GETMBR R13 R13 K94
+ 0x2034180D, // 0389 NE R13 R12 R13
+ 0x78360004, // 038A JMPF R13 #0390
+ 0x8C34110B, // 038B GETMET R13 R8 K11
+ 0x4C3C0000, // 038C LDNIL R15
+ 0x88400B0C, // 038D GETMBR R16 R5 K12
+ 0x5C441800, // 038E MOVE R17 R12
+ 0x7C340800, // 038F CALL R13 4
+ 0x7001FFF1, // 0390 JMP #0383
+ 0x582C003E, // 0391 LDCONST R11 K62
+ 0xAC2C0200, // 0392 CATCH R11 1 0
+ 0xB0080000, // 0393 RAISE 2 R0 R0
+ 0x80041000, // 0394 RET 1 R8
+ 0x60200003, // 0395 GETGBL R8 G3
+ 0x5C240000, // 0396 MOVE R9 R0
+ 0x7C200200, // 0397 CALL R8 1
+ 0x8C20115F, // 0398 GETMET R8 R8 K95
+ 0x5C280200, // 0399 MOVE R10 R1
+ 0x5C2C0400, // 039A MOVE R11 R2
+ 0x5C300600, // 039B MOVE R12 R3
+ 0x7C200800, // 039C CALL R8 4
+ 0x80041000, // 039D RET 1 R8
})
)
);
@@ -1188,6 +1191,88 @@ be_local_closure(class_Matter_Plugin_Root_write_attribute, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Root;
+be_local_closure(class_Matter_Plugin_Root_init, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Root,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(publish_event),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(EVENT_CRITICAL),
+ /* K5 */ be_nested_str_weak(TLV),
+ /* K6 */ be_nested_str_weak(Matter_TLV_item),
+ /* K7 */ be_nested_str_weak(set),
+ /* K8 */ be_nested_str_weak(U4),
+ /* K9 */ be_nested_str_weak(tasmota),
+ /* K10 */ be_nested_str_weak(version),
+ /* K11 */ be_const_int(3),
+ /* K12 */ be_nested_str_weak(U1),
+ /* K13 */ be_const_int(1),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[43]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x5C1C0400, // 0005 MOVE R7 R2
+ 0x5C200600, // 0006 MOVE R8 R3
+ 0x7C100800, // 0007 CALL R4 4
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x541A0027, // 0009 LDINT R6 40
+ 0x581C0002, // 000A LDCONST R7 K2
+ 0xB8220600, // 000B GETNGBL R8 K3
+ 0x88201104, // 000C GETMBR R8 R8 K4
+ 0xB8260600, // 000D GETNGBL R9 K3
+ 0x88241305, // 000E GETMBR R9 R9 K5
+ 0x8C241306, // 000F GETMET R9 R9 K6
+ 0x7C240200, // 0010 CALL R9 1
+ 0x8C241307, // 0011 GETMET R9 R9 K7
+ 0xB82E0600, // 0012 GETNGBL R11 K3
+ 0x882C1705, // 0013 GETMBR R11 R11 K5
+ 0x882C1708, // 0014 GETMBR R11 R11 K8
+ 0xB8321200, // 0015 GETNGBL R12 K9
+ 0x8C30190A, // 0016 GETMET R12 R12 K10
+ 0x7C300200, // 0017 CALL R12 1
+ 0x7C240600, // 0018 CALL R9 3
+ 0x7C100A00, // 0019 CALL R4 5
+ 0x8C100101, // 001A GETMET R4 R0 K1
+ 0x541A0032, // 001B LDINT R6 51
+ 0x581C000B, // 001C LDCONST R7 K11
+ 0xB8220600, // 001D GETNGBL R8 K3
+ 0x88201104, // 001E GETMBR R8 R8 K4
+ 0xB8260600, // 001F GETNGBL R9 K3
+ 0x88241305, // 0020 GETMBR R9 R9 K5
+ 0x8C241306, // 0021 GETMET R9 R9 K6
+ 0x7C240200, // 0022 CALL R9 1
+ 0x8C241307, // 0023 GETMET R9 R9 K7
+ 0xB82E0600, // 0024 GETNGBL R11 K3
+ 0x882C1705, // 0025 GETMBR R11 R11 K5
+ 0x882C170C, // 0026 GETMBR R11 R11 K12
+ 0x5830000D, // 0027 LDCONST R12 K13
+ 0x7C240600, // 0028 CALL R9 3
+ 0x7C100A00, // 0029 CALL R4 5
+ 0x80000000, // 002A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: invoke_request
********************************************************************/
@@ -2088,19 +2173,19 @@ extern const bclass be_class_Matter_Plugin;
be_local_class(Matter_Plugin_Root,
0,
&be_class_Matter_Plugin,
- be_nested_map(7,
+ be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(read_attribute, 1), be_const_closure(class_Matter_Plugin_Root_read_attribute_closure) },
- { be_const_key_weak(invoke_request, 6), be_const_closure(class_Matter_Plugin_Root_invoke_request_closure) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(root) },
- { be_const_key_weak(TYPES, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(invoke_request, 1), be_const_closure(class_Matter_Plugin_Root_invoke_request_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Plugin_Root_init_closure) },
+ { be_const_key_weak(TYPES, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(22, -1), be_const_int(1) },
})) ) } )) },
- { be_const_key_weak(write_attribute, -1), be_const_closure(class_Matter_Plugin_Root_write_attribute_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Root_X20node) },
- { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(write_attribute, 0), be_const_closure(class_Matter_Plugin_Root_write_attribute_closure) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(root) },
+ { be_const_key_weak(DISPLAY_NAME, 4), be_nested_str_weak(Root_X20node) },
+ { be_const_key_weak(CLUSTERS, 7), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(14,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(56, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
@@ -2295,6 +2380,7 @@ be_local_class(Matter_Plugin_Root,
be_const_int(65533),
})) ) } )) },
})) ) } )) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Root_read_attribute_closure) },
})),
be_str_weak(Matter_Plugin_Root)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
new file mode 100644
index 000000000..6f6e9d11c
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
@@ -0,0 +1,350 @@
+/* Solidification of Matter_Plugin_2_Sensor_GenericSwitch.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_shadow
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_update_shadow, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(update_shadow),
+ /* K1 */ be_nested_str_weak(shadow_value),
+ }),
+ be_str_weak(update_shadow),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x60040003, // 0000 GETGBL R1 G3
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x8C040300, // 0003 GETMET R1 R1 K0
+ 0x7C040200, // 0004 CALL R1 1
+ 0x50040000, // 0005 LDBOOL R1 0 0
+ 0x90020201, // 0006 SETMBR R0 K1 R1
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(set),
+ /* K6 */ be_nested_str_weak(U1),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(U4),
+ /* K10 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[51]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E003A, // 0004 LDINT R7 59
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0022, // 0006 JMPF R7 #002A
+ 0x1C1C0D04, // 0007 EQ R7 R6 K4
+ 0x781E0005, // 0008 JMPF R7 #000F
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x58280007, // 000B LDCONST R10 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x7002001A, // 000E JMP #002A
+ 0x1C1C0D08, // 000F EQ R7 R6 K8
+ 0x781E0005, // 0010 JMPF R7 #0017
+ 0x8C1C0705, // 0011 GETMET R7 R3 K5
+ 0x88240906, // 0012 GETMBR R9 R4 K6
+ 0x58280004, // 0013 LDCONST R10 K4
+ 0x7C1C0600, // 0014 CALL R7 3
+ 0x80040E00, // 0015 RET 1 R7
+ 0x70020012, // 0016 JMP #002A
+ 0x1C1C0D07, // 0017 EQ R7 R6 K7
+ 0x781E0005, // 0018 JMPF R7 #001F
+ 0x8C1C0705, // 0019 GETMET R7 R3 K5
+ 0x88240906, // 001A GETMBR R9 R4 K6
+ 0x58280007, // 001B LDCONST R10 K7
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x80040E00, // 001D RET 1 R7
+ 0x7002000A, // 001E JMP #002A
+ 0x541EFFFB, // 001F LDINT R7 65532
+ 0x1C1C0C07, // 0020 EQ R7 R6 R7
+ 0x781E0007, // 0021 JMPF R7 #002A
+ 0x8C1C0705, // 0022 GETMET R7 R3 K5
+ 0x88240909, // 0023 GETMBR R9 R4 K9
+ 0x542A0003, // 0024 LDINT R10 4
+ 0x002A0E0A, // 0025 ADD R10 K7 R10
+ 0x542E0007, // 0026 LDINT R11 8
+ 0x0028140B, // 0027 ADD R10 R10 R11
+ 0x7C1C0600, // 0028 CALL R7 3
+ 0x80040E00, // 0029 RET 1 R7
+ 0x601C0003, // 002A GETGBL R7 G3
+ 0x5C200000, // 002B MOVE R8 R0
+ 0x7C1C0200, // 002C CALL R7 1
+ 0x8C1C0F0A, // 002D GETMET R7 R7 K10
+ 0x5C240200, // 002E MOVE R9 R1
+ 0x5C280400, // 002F MOVE R10 R2
+ 0x5C2C0600, // 0030 MOVE R11 R3
+ 0x7C1C0800, // 0031 CALL R7 4
+ 0x80040E00, // 0032 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: append_state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_append_state_json, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_X2C_X22Switch_X22_X3A_X25s),
+ /* K1 */ be_nested_str_weak(shadow_onoff),
+ }),
+ be_str_weak(append_state_json),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x60040018, // 0000 GETGBL R1 G24
+ 0x58080000, // 0001 LDCONST R2 K0
+ 0x600C0009, // 0002 GETGBL R3 G9
+ 0x88100101, // 0003 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x7C040400, // 0005 CALL R1 2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_GenericSwitch
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_class(Matter_Plugin_Sensor_GenericSwitch,
+ 2,
+ &be_class_Matter_Plugin_Device,
+ be_nested_map(14,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(CLUSTERS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(5, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(59, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(9,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
+ { be_const_key_weak(UPDATE_TIME, 4), be_const_int(750) },
+ { be_const_key_weak(TYPE, -1), be_nested_str_weak(gensw) },
+ { be_const_key_weak(append_state_json, 9), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_append_state_json_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Generic_X20Switch) },
+ { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_read_attribute_closure) },
+ { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_update_shadow_closure) },
+ { be_const_key_weak(ARG_HINT, 12), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
+ { be_const_key_weak(tasmota_switch_index, 13), be_const_var(0) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(15, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(parse_configuration, 8), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_parse_configuration_closure) },
+ { be_const_key_weak(shadow_value, -1), be_const_var(1) },
+ { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_GenericSwitch__X3Clambda_X3E_closure) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_GenericSwitch)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
index 146803b6b..a3546184f 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Session.h
@@ -7,12 +7,12 @@
extern const bclass be_class_Matter_Session;
/********************************************************************
-** Solidified function: close
+** Solidified function: get_device_id
********************************************************************/
extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_close, /* name */
+be_local_closure(class_Matter_Session_get_device_id, /* name */
be_nested_proto(
- 8, /* nstack */
+ 2, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -20,93 +20,682 @@ be_local_closure(class_Matter_Session_close, /* name */
0, /* has sup protos */
&be_class_Matter_Session,
1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(local_session_id),
- /* K1 */ be_nested_str_weak(__future_local_session_id),
- /* K2 */ be_nested_str_weak(initiator_session_id),
- /* K3 */ be_nested_str_weak(__future_initiator_session_id),
- /* K4 */ be_nested_str_weak(_counter_rcv_impl),
- /* K5 */ be_nested_str_weak(reset),
- /* K6 */ be_nested_str_weak(_counter_snd_impl),
- /* K7 */ be_nested_str_weak(counter_rcv),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(counter_snd),
- /* K10 */ be_nested_str_weak(next),
- /* K11 */ be_nested_str_weak(i2rkey),
- /* K12 */ be_nested_str_weak(_i2r_privacy),
- /* K13 */ be_nested_str_weak(r2ikey),
- /* K14 */ be_nested_str_weak(attestation_challenge),
- /* K15 */ be_nested_str_weak(introspect),
- /* K16 */ be_nested_str_weak(members),
- /* K17 */ be_nested_str_weak(get),
- /* K18 */ be_nested_str_weak(function),
- /* K19 */ be_nested_str_weak(instance),
- /* K20 */ be_nested_str_weak(_),
- /* K21 */ be_const_int(1),
- /* K22 */ be_nested_str_weak(stop_iteration),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(device_id),
}),
- be_str_weak(close),
+ be_str_weak(get_device_id),
&be_const_str_solidified,
- ( &(const binstruction[59]) { /* code */
- 0x88040101, // 0000 GETMBR R1 R0 K1
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x88040103, // 0002 GETMBR R1 R0 K3
- 0x90020401, // 0003 SETMBR R0 K2 R1
- 0x88040104, // 0004 GETMBR R1 R0 K4
- 0x8C040305, // 0005 GETMET R1 R1 K5
- 0x7C040200, // 0006 CALL R1 1
- 0x88040106, // 0007 GETMBR R1 R0 K6
- 0x8C040305, // 0008 GETMET R1 R1 K5
- 0x7C040200, // 0009 CALL R1 1
- 0x90020F08, // 000A SETMBR R0 K7 K8
- 0x88040106, // 000B GETMBR R1 R0 K6
- 0x8C04030A, // 000C GETMET R1 R1 K10
- 0x7C040200, // 000D CALL R1 1
- 0x90021201, // 000E SETMBR R0 K9 R1
- 0x4C040000, // 000F LDNIL R1
- 0x90021601, // 0010 SETMBR R0 K11 R1
- 0x4C040000, // 0011 LDNIL R1
- 0x90021801, // 0012 SETMBR R0 K12 R1
- 0x4C040000, // 0013 LDNIL R1
- 0x90021A01, // 0014 SETMBR R0 K13 R1
- 0x4C040000, // 0015 LDNIL R1
- 0x90021C01, // 0016 SETMBR R0 K14 R1
- 0xA4061E00, // 0017 IMPORT R1 K15
- 0x60080010, // 0018 GETGBL R2 G16
- 0x8C0C0310, // 0019 GETMET R3 R1 K16
- 0x5C140000, // 001A MOVE R5 R0
- 0x7C0C0400, // 001B CALL R3 2
- 0x7C080200, // 001C CALL R2 1
- 0xA8020018, // 001D EXBLK 0 #0037
- 0x5C0C0400, // 001E MOVE R3 R2
- 0x7C0C0000, // 001F CALL R3 0
- 0x8C100311, // 0020 GETMET R4 R1 K17
- 0x5C180000, // 0021 MOVE R6 R0
- 0x5C1C0600, // 0022 MOVE R7 R3
- 0x7C100600, // 0023 CALL R4 3
- 0x60140004, // 0024 GETGBL R5 G4
- 0x5C180800, // 0025 MOVE R6 R4
- 0x7C140200, // 0026 CALL R5 1
- 0x20140B12, // 0027 NE R5 R5 K18
- 0x7816000C, // 0028 JMPF R5 #0036
- 0x60140004, // 0029 GETGBL R5 G4
- 0x5C180800, // 002A MOVE R6 R4
- 0x7C140200, // 002B CALL R5 1
- 0x20140B13, // 002C NE R5 R5 K19
- 0x78160007, // 002D JMPF R5 #0036
- 0x94140708, // 002E GETIDX R5 R3 K8
- 0x1C140B14, // 002F EQ R5 R5 K20
- 0x78160004, // 0030 JMPF R5 #0036
- 0x94140715, // 0031 GETIDX R5 R3 K21
- 0x1C140B14, // 0032 EQ R5 R5 K20
- 0x78160001, // 0033 JMPF R5 #0036
- 0x4C140000, // 0034 LDNIL R5
- 0x90000605, // 0035 SETMBR R0 R3 R5
- 0x7001FFE6, // 0036 JMP #001E
- 0x58080016, // 0037 LDCONST R2 K22
- 0xAC080200, // 0038 CATCH R2 1 0
- 0xB0080000, // 0039 RAISE 2 R0 R0
- 0x80000000, // 003A RET 0
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: before_remove
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_before_remove, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29),
+ /* K2 */ be_nested_str_weak(local_session_id),
+ /* K3 */ be_const_int(3),
+ }),
+ be_str_weak(before_remove),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x60080018, // 0001 GETGBL R2 G24
+ 0x580C0001, // 0002 LDCONST R3 K1
+ 0x88100102, // 0003 GETMBR R4 R0 K2
+ 0x7C080400, // 0004 CALL R2 2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x7C040400, // 0006 CALL R1 2
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_mode_CASE
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_set_mode_CASE, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(set_mode),
+ /* K1 */ be_nested_str_weak(_CASE),
+ }),
+ be_str_weak(set_mode_CASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x7C040400, // 0002 CALL R1 2
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_CASE
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_is_CASE, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(mode),
+ /* K1 */ be_nested_str_weak(_CASE),
+ }),
+ be_str_weak(is_CASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: persist_to_fabric
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_persist_to_fabric, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(add_session),
+ }),
+ be_str_weak(persist_to_fabric),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_noc
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_noc, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(noc),
+ }),
+ be_str_weak(get_noc),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x80040200, // 0002 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_init, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(_store),
+ /* K2 */ be_nested_str_weak(mode),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(local_session_id),
+ /* K5 */ be_nested_str_weak(initiator_session_id),
+ /* K6 */ be_nested_str_weak(_counter_snd_impl),
+ /* K7 */ be_nested_str_weak(matter),
+ /* K8 */ be_nested_str_weak(Counter),
+ /* K9 */ be_nested_str_weak(_counter_rcv_impl),
+ /* K10 */ be_nested_str_weak(counter_rcv),
+ /* K11 */ be_nested_str_weak(counter_snd),
+ /* K12 */ be_nested_str_weak(next),
+ /* K13 */ be_nested_str_weak(_COUNTER_SND_INCR),
+ /* K14 */ be_nested_str_weak(_counter_insecure_rcv),
+ /* K15 */ be_nested_str_weak(_counter_insecure_snd),
+ /* K16 */ be_nested_str_weak(_breadcrumb),
+ /* K17 */ be_nested_str_weak(_exchange_id),
+ /* K18 */ be_nested_str_weak(random),
+ /* K19 */ be_const_int(2),
+ /* K20 */ be_nested_str_weak(get),
+ /* K21 */ be_nested_str_weak(_fabric),
+ /* K22 */ be_nested_str_weak(update),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[41]) { /* code */
+ 0xA4160000, // 0000 IMPORT R5 K0
+ 0x90020201, // 0001 SETMBR R0 K1 R1
+ 0x90020503, // 0002 SETMBR R0 K2 K3
+ 0x90020802, // 0003 SETMBR R0 K4 R2
+ 0x90020A03, // 0004 SETMBR R0 K5 R3
+ 0xB81A0E00, // 0005 GETNGBL R6 K7
+ 0x8C180D08, // 0006 GETMET R6 R6 K8
+ 0x7C180200, // 0007 CALL R6 1
+ 0x90020C06, // 0008 SETMBR R0 K6 R6
+ 0xB81A0E00, // 0009 GETNGBL R6 K7
+ 0x8C180D08, // 000A GETMET R6 R6 K8
+ 0x7C180200, // 000B CALL R6 1
+ 0x90021206, // 000C SETMBR R0 K9 R6
+ 0x90021503, // 000D SETMBR R0 K10 K3
+ 0x88180106, // 000E GETMBR R6 R0 K6
+ 0x8C180D0C, // 000F GETMET R6 R6 K12
+ 0x7C180200, // 0010 CALL R6 1
+ 0x881C010D, // 0011 GETMBR R7 R0 K13
+ 0x00180C07, // 0012 ADD R6 R6 R7
+ 0x90021606, // 0013 SETMBR R0 K11 R6
+ 0xB81A0E00, // 0014 GETNGBL R6 K7
+ 0x8C180D08, // 0015 GETMET R6 R6 K8
+ 0x7C180200, // 0016 CALL R6 1
+ 0x90021C06, // 0017 SETMBR R0 K14 R6
+ 0xB81A0E00, // 0018 GETNGBL R6 K7
+ 0x8C180D08, // 0019 GETMET R6 R6 K8
+ 0x7C180200, // 001A CALL R6 1
+ 0x90021E06, // 001B SETMBR R0 K15 R6
+ 0x90022103, // 001C SETMBR R0 K16 K3
+ 0x8C180B12, // 001D GETMET R6 R5 K18
+ 0x58200013, // 001E LDCONST R8 K19
+ 0x7C180400, // 001F CALL R6 2
+ 0x8C180D14, // 0020 GETMET R6 R6 K20
+ 0x58200003, // 0021 LDCONST R8 K3
+ 0x58240013, // 0022 LDCONST R9 K19
+ 0x7C180600, // 0023 CALL R6 3
+ 0x90022206, // 0024 SETMBR R0 K17 R6
+ 0x90022A04, // 0025 SETMBR R0 K21 R4
+ 0x8C180116, // 0026 GETMET R6 R0 K22
+ 0x7C180200, // 0027 CALL R6 1
+ 0x80000000, // 0028 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_admin_vendor
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_admin_vendor, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(admin_vendor),
+ }),
+ be_str_weak(get_admin_vendor),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_i2r
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_i2r, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(i2rkey),
+ }),
+ be_str_weak(get_i2r),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: counter_rcv_validate
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_counter_rcv_validate, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(_counter_rcv_impl),
+ /* K1 */ be_nested_str_weak(validate),
+ /* K2 */ be_nested_str_weak(counter_rcv),
+ /* K3 */ be_nested_str_weak(val),
+ }),
+ be_str_weak(counter_rcv_validate),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x5C180400, // 0003 MOVE R6 R2
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x780E0003, // 0005 JMPF R3 #000A
+ 0x88100100, // 0006 GETMBR R4 R0 K0
+ 0x8C100903, // 0007 GETMET R4 R4 K3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x90020404, // 0009 SETMBR R0 K2 R4
+ 0x80040600, // 000A RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ca
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_ca, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(root_ca_certificate),
+ }),
+ be_str_weak(get_ca),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x80040200, // 0002 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_fabric_index
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_fabric_index, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(fabric_index),
+ }),
+ be_str_weak(get_fabric_index),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_r2i
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_r2i, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(r2ikey),
+ }),
+ be_str_weak(get_r2i),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: counter_snd_next
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_counter_snd_next, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(_counter_snd_impl),
+ /* K1 */ be_nested_str_weak(next),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(Counter),
+ /* K4 */ be_nested_str_weak(is_greater),
+ /* K5 */ be_nested_str_weak(counter_snd),
+ /* K6 */ be_nested_str_weak(_COUNTER_SND_INCR),
+ /* K7 */ be_nested_str_weak(does_persist),
+ /* K8 */ be_nested_str_weak(save),
+ }),
+ be_str_weak(counter_snd_next),
+ &be_const_str_solidified,
+ ( &(const binstruction[19]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0xB80A0400, // 0003 GETNGBL R2 K2
+ 0x88080503, // 0004 GETMBR R2 R2 K3
+ 0x8C080504, // 0005 GETMET R2 R2 K4
+ 0x5C100200, // 0006 MOVE R4 R1
+ 0x88140105, // 0007 GETMBR R5 R0 K5
+ 0x7C080600, // 0008 CALL R2 3
+ 0x780A0007, // 0009 JMPF R2 #0012
+ 0x88080106, // 000A GETMBR R2 R0 K6
+ 0x00080202, // 000B ADD R2 R1 R2
+ 0x90020A02, // 000C SETMBR R0 K5 R2
+ 0x8C080107, // 000D GETMET R2 R0 K7
+ 0x7C080200, // 000E CALL R2 1
+ 0x780A0001, // 000F JMPF R2 #0012
+ 0x8C080108, // 0010 GETMET R2 R0 K8
+ 0x7C080200, // 0011 CALL R2 1
+ 0x80040200, // 0012 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_temp_ca_pub
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_temp_ca_pub, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(TLV),
+ /* K3 */ be_nested_str_weak(parse),
+ /* K4 */ be_nested_str_weak(findsubval),
+ }),
+ be_str_weak(get_temp_ca_pub),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060008, // 0001 JMPF R1 #000B
+ 0xB80A0200, // 0002 GETNGBL R2 K1
+ 0x88080502, // 0003 GETMBR R2 R2 K2
+ 0x8C080503, // 0004 GETMET R2 R2 K3
+ 0x5C100200, // 0005 MOVE R4 R1
+ 0x7C080400, // 0006 CALL R2 2
+ 0x8C0C0504, // 0007 GETMET R3 R2 K4
+ 0x54160008, // 0008 LDINT R5 9
+ 0x7C0C0400, // 0009 CALL R3 2
+ 0x80040600, // 000A RET 1 R3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_temp_ca
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_temp_ca, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
+ }),
+ be_str_weak(get_temp_ca),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_fabric_id
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_fabric_id, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(fabric_id),
+ }),
+ be_str_weak(get_fabric_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x80040200, // 0002 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_mode_PASE
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_set_mode_PASE, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(set_mode),
+ /* K1 */ be_nested_str_weak(_PASE),
+ }),
+ be_str_weak(set_mode_PASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x7C040400, // 0002 CALL R1 2
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_fabric_label
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_fabric_label, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(fabric_label),
+ }),
+ be_str_weak(get_fabric_label),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
})
)
);
@@ -147,66 +736,10 @@ be_local_closure(class_Matter_Session_update, /* name */
/********************************************************************
-** Solidified function: get_ac
+** Solidified function: get_icac
********************************************************************/
extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_ac, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(attestation_challenge),
- }),
- be_str_weak(get_ac),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_fabric
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_fabric, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- }),
- be_str_weak(get_fabric),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_noc
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_noc, /* name */
+be_local_closure(class_Matter_Session_get_icac, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -218,9 +751,9 @@ be_local_closure(class_Matter_Session_get_noc, /* name */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(noc),
+ /* K1 */ be_nested_str_weak(icac),
}),
- be_str_weak(get_noc),
+ be_str_weak(get_icac),
&be_const_str_solidified,
( &(const binstruction[ 3]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -233,12 +766,12 @@ be_local_closure(class_Matter_Session_get_noc, /* name */
/********************************************************************
-** Solidified function: get_device_id
+** Solidified function: is_PASE
********************************************************************/
extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_device_id, /* name */
+be_local_closure(class_Matter_Session_is_PASE, /* name */
be_nested_proto(
- 2, /* nstack */
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -247,19 +780,16 @@ be_local_closure(class_Matter_Session_get_device_id, /* name */
&be_class_Matter_Session,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(device_id),
+ /* K0 */ be_nested_str_weak(mode),
+ /* K1 */ be_nested_str_weak(_PASE),
}),
- be_str_weak(get_device_id),
+ be_str_weak(is_PASE),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
+ ( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
})
)
);
@@ -303,47 +833,10 @@ be_local_closure(class_Matter_Session_set_fabric_label, /* name */
/********************************************************************
-** Solidified function: set_keys
+** Solidified function: get_node_id
********************************************************************/
extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_set_keys, /* name */
- be_nested_proto(
- 6, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(i2rkey),
- /* K1 */ be_nested_str_weak(_i2r_privacy),
- /* K2 */ be_nested_str_weak(r2ikey),
- /* K3 */ be_nested_str_weak(attestation_challenge),
- /* K4 */ be_nested_str_weak(created),
- }),
- be_str_weak(set_keys),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x4C140000, // 0001 LDNIL R5
- 0x90020205, // 0002 SETMBR R0 K1 R5
- 0x90020402, // 0003 SETMBR R0 K2 R2
- 0x90020603, // 0004 SETMBR R0 K3 R3
- 0x90020804, // 0005 SETMBR R0 K4 R4
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_r2i
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_r2i, /* name */
+be_local_closure(class_Matter_Session_get_node_id, /* name */
be_nested_proto(
2, /* nstack */
1, /* argc */
@@ -353,14 +846,98 @@ be_local_closure(class_Matter_Session_get_r2i, /* name */
0, /* has sup protos */
&be_class_Matter_Session,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(r2ikey),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(device_id),
}),
- be_str_weak(get_r2i),
+ be_str_weak(get_node_id),
&be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
+ ( &(const binstruction[ 7]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ca_pub
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_ca_pub, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(get_ca_pub),
+ }),
+ be_str_weak(get_ca_pub),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_pk
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_pk, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(get_pk),
+ /* K2 */ be_nested_str_weak(_temp_pk),
+ /* K3 */ be_nested_str_weak(crypto),
+ /* K4 */ be_nested_str_weak(random),
+ }),
+ be_str_weak(get_pk),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060004, // 0001 JMPF R1 #0007
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x8C040301, // 0003 GETMET R1 R1 K1
+ 0x7C040200, // 0004 CALL R1 1
+ 0x80040200, // 0005 RET 1 R1
+ 0x70020008, // 0006 JMP #0010
+ 0x88040102, // 0007 GETMBR R1 R0 K2
+ 0x74060004, // 0008 JMPT R1 #000E
+ 0xA4060600, // 0009 IMPORT R1 K3
+ 0x8C080304, // 000A GETMET R2 R1 K4
+ 0x5412001F, // 000B LDINT R4 32
+ 0x7C080400, // 000C CALL R2 2
+ 0x90020402, // 000D SETMBR R0 K2 R2
+ 0x88040102, // 000E GETMBR R1 R0 K2
+ 0x80040200, // 000F RET 1 R1
+ 0x80000000, // 0010 RET 0
})
)
);
@@ -509,6 +1086,223 @@ be_local_closure(class_Matter_Session_tojson, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: close
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_close, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(local_session_id),
+ /* K1 */ be_nested_str_weak(__future_local_session_id),
+ /* K2 */ be_nested_str_weak(initiator_session_id),
+ /* K3 */ be_nested_str_weak(__future_initiator_session_id),
+ /* K4 */ be_nested_str_weak(_counter_rcv_impl),
+ /* K5 */ be_nested_str_weak(reset),
+ /* K6 */ be_nested_str_weak(_counter_snd_impl),
+ /* K7 */ be_nested_str_weak(counter_rcv),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(counter_snd),
+ /* K10 */ be_nested_str_weak(next),
+ /* K11 */ be_nested_str_weak(i2rkey),
+ /* K12 */ be_nested_str_weak(_i2r_privacy),
+ /* K13 */ be_nested_str_weak(r2ikey),
+ /* K14 */ be_nested_str_weak(attestation_challenge),
+ /* K15 */ be_nested_str_weak(introspect),
+ /* K16 */ be_nested_str_weak(members),
+ /* K17 */ be_nested_str_weak(get),
+ /* K18 */ be_nested_str_weak(function),
+ /* K19 */ be_nested_str_weak(instance),
+ /* K20 */ be_nested_str_weak(_),
+ /* K21 */ be_const_int(1),
+ /* K22 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(close),
+ &be_const_str_solidified,
+ ( &(const binstruction[59]) { /* code */
+ 0x88040101, // 0000 GETMBR R1 R0 K1
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x88040103, // 0002 GETMBR R1 R0 K3
+ 0x90020401, // 0003 SETMBR R0 K2 R1
+ 0x88040104, // 0004 GETMBR R1 R0 K4
+ 0x8C040305, // 0005 GETMET R1 R1 K5
+ 0x7C040200, // 0006 CALL R1 1
+ 0x88040106, // 0007 GETMBR R1 R0 K6
+ 0x8C040305, // 0008 GETMET R1 R1 K5
+ 0x7C040200, // 0009 CALL R1 1
+ 0x90020F08, // 000A SETMBR R0 K7 K8
+ 0x88040106, // 000B GETMBR R1 R0 K6
+ 0x8C04030A, // 000C GETMET R1 R1 K10
+ 0x7C040200, // 000D CALL R1 1
+ 0x90021201, // 000E SETMBR R0 K9 R1
+ 0x4C040000, // 000F LDNIL R1
+ 0x90021601, // 0010 SETMBR R0 K11 R1
+ 0x4C040000, // 0011 LDNIL R1
+ 0x90021801, // 0012 SETMBR R0 K12 R1
+ 0x4C040000, // 0013 LDNIL R1
+ 0x90021A01, // 0014 SETMBR R0 K13 R1
+ 0x4C040000, // 0015 LDNIL R1
+ 0x90021C01, // 0016 SETMBR R0 K14 R1
+ 0xA4061E00, // 0017 IMPORT R1 K15
+ 0x60080010, // 0018 GETGBL R2 G16
+ 0x8C0C0310, // 0019 GETMET R3 R1 K16
+ 0x5C140000, // 001A MOVE R5 R0
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x7C080200, // 001C CALL R2 1
+ 0xA8020018, // 001D EXBLK 0 #0037
+ 0x5C0C0400, // 001E MOVE R3 R2
+ 0x7C0C0000, // 001F CALL R3 0
+ 0x8C100311, // 0020 GETMET R4 R1 K17
+ 0x5C180000, // 0021 MOVE R6 R0
+ 0x5C1C0600, // 0022 MOVE R7 R3
+ 0x7C100600, // 0023 CALL R4 3
+ 0x60140004, // 0024 GETGBL R5 G4
+ 0x5C180800, // 0025 MOVE R6 R4
+ 0x7C140200, // 0026 CALL R5 1
+ 0x20140B12, // 0027 NE R5 R5 K18
+ 0x7816000C, // 0028 JMPF R5 #0036
+ 0x60140004, // 0029 GETGBL R5 G4
+ 0x5C180800, // 002A MOVE R6 R4
+ 0x7C140200, // 002B CALL R5 1
+ 0x20140B13, // 002C NE R5 R5 K19
+ 0x78160007, // 002D JMPF R5 #0036
+ 0x94140708, // 002E GETIDX R5 R3 K8
+ 0x1C140B14, // 002F EQ R5 R5 K20
+ 0x78160004, // 0030 JMPF R5 #0036
+ 0x94140715, // 0031 GETIDX R5 R3 K21
+ 0x1C140B14, // 0032 EQ R5 R5 K20
+ 0x78160001, // 0033 JMPF R5 #0036
+ 0x4C140000, // 0034 LDNIL R5
+ 0x90000605, // 0035 SETMBR R0 R3 R5
+ 0x7001FFE6, // 0036 JMP #001E
+ 0x58080016, // 0037 LDCONST R2 K22
+ 0xAC080200, // 0038 CATCH R2 1 0
+ 0xB0080000, // 0039 RAISE 2 R0 R0
+ 0x80000000, // 003A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ac
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_ac, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(attestation_challenge),
+ }),
+ be_str_weak(get_ac),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_fabric
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_fabric, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ }),
+ be_str_weak(get_fabric),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_i2r_privacy
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_i2r_privacy, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(_i2r_privacy),
+ /* K1 */ be_nested_str_weak(crypto),
+ /* K2 */ be_nested_str_weak(HKDF_SHA256),
+ /* K3 */ be_nested_str_weak(derive),
+ /* K4 */ be_nested_str_weak(get_i2r),
+ /* K5 */ be_nested_str_weak(fromstring),
+ /* K6 */ be_nested_str_weak(PrivacyKey),
+ }),
+ be_str_weak(get_i2r_privacy),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x7806000F, // 0003 JMPF R1 #0014
+ 0xA4060200, // 0004 IMPORT R1 K1
+ 0x8C080302, // 0005 GETMET R2 R1 K2
+ 0x7C080200, // 0006 CALL R2 1
+ 0x8C080503, // 0007 GETMET R2 R2 K3
+ 0x8C100104, // 0008 GETMET R4 R0 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x60140015, // 000A GETGBL R5 G21
+ 0x7C140000, // 000B CALL R5 0
+ 0x60180015, // 000C GETGBL R6 G21
+ 0x7C180000, // 000D CALL R6 0
+ 0x8C180D05, // 000E GETMET R6 R6 K5
+ 0x58200006, // 000F LDCONST R8 K6
+ 0x7C180400, // 0010 CALL R6 2
+ 0x541E000F, // 0011 LDINT R7 16
+ 0x7C080A00, // 0012 CALL R2 5
+ 0x90020002, // 0013 SETMBR R0 K0 R2
+ 0x88040100, // 0014 GETMBR R1 R0 K0
+ 0x80040200, // 0015 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: fromjson
********************************************************************/
@@ -626,6 +1420,304 @@ be_local_closure(class_Matter_Session_fromjson, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: save
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_save, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_store),
+ /* K1 */ be_nested_str_weak(save_fabrics),
+ }),
+ be_str_weak(save),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: hydrate_post
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_hydrate_post, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(_counter_snd_impl),
+ /* K1 */ be_nested_str_weak(reset),
+ /* K2 */ be_nested_str_weak(counter_snd),
+ /* K3 */ be_nested_str_weak(_counter_rcv_impl),
+ /* K4 */ be_nested_str_weak(counter_rcv),
+ /* K5 */ be_nested_str_weak(val),
+ }),
+ be_str_weak(hydrate_post),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040103, // 0004 GETMBR R1 R0 K3
+ 0x8C040301, // 0005 GETMET R1 R1 K1
+ 0x880C0104, // 0006 GETMBR R3 R0 K4
+ 0x7C040400, // 0007 CALL R1 2
+ 0x88040100, // 0008 GETMBR R1 R0 K0
+ 0x8C040305, // 0009 GETMET R1 R1 K5
+ 0x7C040200, // 000A CALL R1 1
+ 0x90020401, // 000B SETMBR R0 K2 R1
+ 0x88040103, // 000C GETMBR R1 R0 K3
+ 0x8C040305, // 000D GETMET R1 R1 K5
+ 0x7C040200, // 000E CALL R1 1
+ 0x90020801, // 000F SETMBR R0 K4 R1
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_admin_subject
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_admin_subject, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(admin_subject),
+ }),
+ be_str_weak(get_admin_subject),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_ipk_epoch_key
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_ipk_epoch_key, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(ipk_epoch_key),
+ }),
+ be_str_weak(get_ipk_epoch_key),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x88040301, // 0001 GETMBR R1 R1 K1
+ 0x80040200, // 0002 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_fabric_compressed
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_fabric_compressed, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_fabric),
+ /* K1 */ be_nested_str_weak(fabric_compressed),
+ }),
+ be_str_weak(get_fabric_compressed),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060002, // 0001 JMPF R1 #0005
+ 0x88040100, // 0002 GETMBR R1 R0 K0
+ 0x88040301, // 0003 GETMBR R1 R1 K1
+ 0x70020000, // 0004 JMP #0006
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_mode
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_get_mode, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(mode),
+ }),
+ be_str_weak(get_mode),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_temp_ca
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_set_temp_ca, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
+ }),
+ be_str_weak(set_temp_ca),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_mode
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_set_mode, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(mode),
+ }),
+ be_str_weak(set_mode),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_keys
+********************************************************************/
+extern const bclass be_class_Matter_Session;
+be_local_closure(class_Matter_Session_set_keys, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Session,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(i2rkey),
+ /* K1 */ be_nested_str_weak(_i2r_privacy),
+ /* K2 */ be_nested_str_weak(r2ikey),
+ /* K3 */ be_nested_str_weak(attestation_challenge),
+ /* K4 */ be_nested_str_weak(created),
+ }),
+ be_str_weak(set_keys),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x4C140000, // 0001 LDNIL R5
+ 0x90020205, // 0002 SETMBR R0 K1 R5
+ 0x90020402, // 0003 SETMBR R0 K2 R2
+ 0x90020603, // 0004 SETMBR R0 K3 R3
+ 0x90020804, // 0005 SETMBR R0 K4 R4
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: gen_CSR
********************************************************************/
@@ -736,366 +1828,6 @@ be_local_closure(class_Matter_Session_gen_CSR, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: get_ipk_epoch_key
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_ipk_epoch_key, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(ipk_epoch_key),
- }),
- be_str_weak(get_ipk_epoch_key),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: counter_rcv_validate
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_counter_rcv_validate, /* name */
- be_nested_proto(
- 7, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(_counter_rcv_impl),
- /* K1 */ be_nested_str_weak(validate),
- /* K2 */ be_nested_str_weak(counter_rcv),
- /* K3 */ be_nested_str_weak(val),
- }),
- be_str_weak(counter_rcv_validate),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x5C180400, // 0003 MOVE R6 R2
- 0x7C0C0600, // 0004 CALL R3 3
- 0x780E0003, // 0005 JMPF R3 #000A
- 0x88100100, // 0006 GETMBR R4 R0 K0
- 0x8C100903, // 0007 GETMET R4 R4 K3
- 0x7C100200, // 0008 CALL R4 1
- 0x90020404, // 0009 SETMBR R0 K2 R4
- 0x80040600, // 000A RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_admin_subject
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_admin_subject, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(admin_subject),
- }),
- be_str_weak(get_admin_subject),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_fabric_compressed
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_fabric_compressed, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(fabric_compressed),
- }),
- be_str_weak(get_fabric_compressed),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: persist_to_fabric
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_persist_to_fabric, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(add_session),
- }),
- be_str_weak(persist_to_fabric),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_ca
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_ca, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(root_ca_certificate),
- }),
- be_str_weak(get_ca),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_PASE
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_is_PASE, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(mode),
- /* K1 */ be_nested_str_weak(_PASE),
- }),
- be_str_weak(is_PASE),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_CASE
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_is_CASE, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(mode),
- /* K1 */ be_nested_str_weak(_CASE),
- }),
- be_str_weak(is_CASE),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: before_remove
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_before_remove, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29),
- /* K2 */ be_nested_str_weak(local_session_id),
- /* K3 */ be_const_int(3),
- }),
- be_str_weak(before_remove),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x60080018, // 0001 GETGBL R2 G24
- 0x580C0001, // 0002 LDCONST R3 K1
- 0x88100102, // 0003 GETMBR R4 R0 K2
- 0x7C080400, // 0004 CALL R2 2
- 0x580C0003, // 0005 LDCONST R3 K3
- 0x7C040400, // 0006 CALL R1 2
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_save, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_store),
- /* K1 */ be_nested_str_weak(save_fabrics),
- }),
- be_str_weak(save),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_fabric_id
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_fabric_id, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(fabric_id),
- }),
- be_str_weak(get_fabric_id),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: get_ipk_group_key
********************************************************************/
@@ -1127,704 +1859,6 @@ be_local_closure(class_Matter_Session_get_ipk_group_key, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: get_temp_ca_pub
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_temp_ca_pub, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(TLV),
- /* K3 */ be_nested_str_weak(parse),
- /* K4 */ be_nested_str_weak(findsubval),
- }),
- be_str_weak(get_temp_ca_pub),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060008, // 0001 JMPF R1 #000B
- 0xB80A0200, // 0002 GETNGBL R2 K1
- 0x88080502, // 0003 GETMBR R2 R2 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x5C100200, // 0005 MOVE R4 R1
- 0x7C080400, // 0006 CALL R2 2
- 0x8C0C0504, // 0007 GETMET R3 R2 K4
- 0x54160008, // 0008 LDINT R5 9
- 0x7C0C0400, // 0009 CALL R3 2
- 0x80040600, // 000A RET 1 R3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_ca_pub
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_ca_pub, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(get_ca_pub),
- }),
- be_str_weak(get_ca_pub),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_mode
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_mode, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(mode),
- }),
- be_str_weak(get_mode),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: hydrate_post
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_hydrate_post, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(_counter_snd_impl),
- /* K1 */ be_nested_str_weak(reset),
- /* K2 */ be_nested_str_weak(counter_snd),
- /* K3 */ be_nested_str_weak(_counter_rcv_impl),
- /* K4 */ be_nested_str_weak(counter_rcv),
- /* K5 */ be_nested_str_weak(val),
- }),
- be_str_weak(hydrate_post),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x7C040400, // 0003 CALL R1 2
- 0x88040103, // 0004 GETMBR R1 R0 K3
- 0x8C040301, // 0005 GETMET R1 R1 K1
- 0x880C0104, // 0006 GETMBR R3 R0 K4
- 0x7C040400, // 0007 CALL R1 2
- 0x88040100, // 0008 GETMBR R1 R0 K0
- 0x8C040305, // 0009 GETMET R1 R1 K5
- 0x7C040200, // 000A CALL R1 1
- 0x90020401, // 000B SETMBR R0 K2 R1
- 0x88040103, // 000C GETMBR R1 R0 K3
- 0x8C040305, // 000D GETMET R1 R1 K5
- 0x7C040200, // 000E CALL R1 1
- 0x90020801, // 000F SETMBR R0 K4 R1
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_fabric_label
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_fabric_label, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(fabric_label),
- }),
- be_str_weak(get_fabric_label),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_icac
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_icac, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(icac),
- }),
- be_str_weak(get_icac),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x88040301, // 0001 GETMBR R1 R1 K1
- 0x80040200, // 0002 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_mode_CASE
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_set_mode_CASE, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(set_mode),
- /* K1 */ be_nested_str_weak(_CASE),
- }),
- be_str_weak(set_mode_CASE),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: counter_snd_next
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_counter_snd_next, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(_counter_snd_impl),
- /* K1 */ be_nested_str_weak(next),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(Counter),
- /* K4 */ be_nested_str_weak(is_greater),
- /* K5 */ be_nested_str_weak(counter_snd),
- /* K6 */ be_nested_str_weak(_COUNTER_SND_INCR),
- /* K7 */ be_nested_str_weak(does_persist),
- /* K8 */ be_nested_str_weak(save),
- }),
- be_str_weak(counter_snd_next),
- &be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0xB80A0400, // 0003 GETNGBL R2 K2
- 0x88080503, // 0004 GETMBR R2 R2 K3
- 0x8C080504, // 0005 GETMET R2 R2 K4
- 0x5C100200, // 0006 MOVE R4 R1
- 0x88140105, // 0007 GETMBR R5 R0 K5
- 0x7C080600, // 0008 CALL R2 3
- 0x780A0007, // 0009 JMPF R2 #0012
- 0x88080106, // 000A GETMBR R2 R0 K6
- 0x00080202, // 000B ADD R2 R1 R2
- 0x90020A02, // 000C SETMBR R0 K5 R2
- 0x8C080107, // 000D GETMET R2 R0 K7
- 0x7C080200, // 000E CALL R2 1
- 0x780A0001, // 000F JMPF R2 #0012
- 0x8C080108, // 0010 GETMET R2 R0 K8
- 0x7C080200, // 0011 CALL R2 1
- 0x80040200, // 0012 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_i2r_privacy
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_i2r_privacy, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(_i2r_privacy),
- /* K1 */ be_nested_str_weak(crypto),
- /* K2 */ be_nested_str_weak(HKDF_SHA256),
- /* K3 */ be_nested_str_weak(derive),
- /* K4 */ be_nested_str_weak(get_i2r),
- /* K5 */ be_nested_str_weak(fromstring),
- /* K6 */ be_nested_str_weak(PrivacyKey),
- }),
- be_str_weak(get_i2r_privacy),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x7806000F, // 0003 JMPF R1 #0014
- 0xA4060200, // 0004 IMPORT R1 K1
- 0x8C080302, // 0005 GETMET R2 R1 K2
- 0x7C080200, // 0006 CALL R2 1
- 0x8C080503, // 0007 GETMET R2 R2 K3
- 0x8C100104, // 0008 GETMET R4 R0 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x60140015, // 000A GETGBL R5 G21
- 0x7C140000, // 000B CALL R5 0
- 0x60180015, // 000C GETGBL R6 G21
- 0x7C180000, // 000D CALL R6 0
- 0x8C180D05, // 000E GETMET R6 R6 K5
- 0x58200006, // 000F LDCONST R8 K6
- 0x7C180400, // 0010 CALL R6 2
- 0x541E000F, // 0011 LDINT R7 16
- 0x7C080A00, // 0012 CALL R2 5
- 0x90020002, // 0013 SETMBR R0 K0 R2
- 0x88040100, // 0014 GETMBR R1 R0 K0
- 0x80040200, // 0015 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_i2r
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_i2r, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(i2rkey),
- }),
- be_str_weak(get_i2r),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_admin_vendor
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_admin_vendor, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(admin_vendor),
- }),
- be_str_weak(get_admin_vendor),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_temp_ca
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_set_temp_ca, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
- }),
- be_str_weak(set_temp_ca),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_init, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(_store),
- /* K2 */ be_nested_str_weak(mode),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(local_session_id),
- /* K5 */ be_nested_str_weak(initiator_session_id),
- /* K6 */ be_nested_str_weak(_counter_snd_impl),
- /* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(Counter),
- /* K9 */ be_nested_str_weak(_counter_rcv_impl),
- /* K10 */ be_nested_str_weak(counter_rcv),
- /* K11 */ be_nested_str_weak(counter_snd),
- /* K12 */ be_nested_str_weak(next),
- /* K13 */ be_nested_str_weak(_COUNTER_SND_INCR),
- /* K14 */ be_nested_str_weak(_counter_insecure_rcv),
- /* K15 */ be_nested_str_weak(_counter_insecure_snd),
- /* K16 */ be_nested_str_weak(_breadcrumb),
- /* K17 */ be_nested_str_weak(_exchange_id),
- /* K18 */ be_nested_str_weak(random),
- /* K19 */ be_const_int(2),
- /* K20 */ be_nested_str_weak(get),
- /* K21 */ be_nested_str_weak(_fabric),
- /* K22 */ be_nested_str_weak(update),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[41]) { /* code */
- 0xA4160000, // 0000 IMPORT R5 K0
- 0x90020201, // 0001 SETMBR R0 K1 R1
- 0x90020503, // 0002 SETMBR R0 K2 K3
- 0x90020802, // 0003 SETMBR R0 K4 R2
- 0x90020A03, // 0004 SETMBR R0 K5 R3
- 0xB81A0E00, // 0005 GETNGBL R6 K7
- 0x8C180D08, // 0006 GETMET R6 R6 K8
- 0x7C180200, // 0007 CALL R6 1
- 0x90020C06, // 0008 SETMBR R0 K6 R6
- 0xB81A0E00, // 0009 GETNGBL R6 K7
- 0x8C180D08, // 000A GETMET R6 R6 K8
- 0x7C180200, // 000B CALL R6 1
- 0x90021206, // 000C SETMBR R0 K9 R6
- 0x90021503, // 000D SETMBR R0 K10 K3
- 0x88180106, // 000E GETMBR R6 R0 K6
- 0x8C180D0C, // 000F GETMET R6 R6 K12
- 0x7C180200, // 0010 CALL R6 1
- 0x881C010D, // 0011 GETMBR R7 R0 K13
- 0x00180C07, // 0012 ADD R6 R6 R7
- 0x90021606, // 0013 SETMBR R0 K11 R6
- 0xB81A0E00, // 0014 GETNGBL R6 K7
- 0x8C180D08, // 0015 GETMET R6 R6 K8
- 0x7C180200, // 0016 CALL R6 1
- 0x90021C06, // 0017 SETMBR R0 K14 R6
- 0xB81A0E00, // 0018 GETNGBL R6 K7
- 0x8C180D08, // 0019 GETMET R6 R6 K8
- 0x7C180200, // 001A CALL R6 1
- 0x90021E06, // 001B SETMBR R0 K15 R6
- 0x90022103, // 001C SETMBR R0 K16 K3
- 0x8C180B12, // 001D GETMET R6 R5 K18
- 0x58200013, // 001E LDCONST R8 K19
- 0x7C180400, // 001F CALL R6 2
- 0x8C180D14, // 0020 GETMET R6 R6 K20
- 0x58200003, // 0021 LDCONST R8 K3
- 0x58240013, // 0022 LDCONST R9 K19
- 0x7C180600, // 0023 CALL R6 3
- 0x90022206, // 0024 SETMBR R0 K17 R6
- 0x90022A04, // 0025 SETMBR R0 K21 R4
- 0x8C180116, // 0026 GETMET R6 R0 K22
- 0x7C180200, // 0027 CALL R6 1
- 0x80000000, // 0028 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_fabric_index
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_fabric_index, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(fabric_index),
- }),
- be_str_weak(get_fabric_index),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060002, // 0001 JMPF R1 #0005
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x88040301, // 0003 GETMBR R1 R1 K1
- 0x70020000, // 0004 JMP #0006
- 0x4C040000, // 0005 LDNIL R1
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_temp_ca
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_temp_ca, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(_temp_root_ca_certificate),
- }),
- be_str_weak(get_temp_ca),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_pk
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_get_pk, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_fabric),
- /* K1 */ be_nested_str_weak(get_pk),
- /* K2 */ be_nested_str_weak(_temp_pk),
- /* K3 */ be_nested_str_weak(crypto),
- /* K4 */ be_nested_str_weak(random),
- }),
- be_str_weak(get_pk),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060004, // 0001 JMPF R1 #0007
- 0x88040100, // 0002 GETMBR R1 R0 K0
- 0x8C040301, // 0003 GETMET R1 R1 K1
- 0x7C040200, // 0004 CALL R1 1
- 0x80040200, // 0005 RET 1 R1
- 0x70020008, // 0006 JMP #0010
- 0x88040102, // 0007 GETMBR R1 R0 K2
- 0x74060004, // 0008 JMPT R1 #000E
- 0xA4060600, // 0009 IMPORT R1 K3
- 0x8C080304, // 000A GETMET R2 R1 K4
- 0x5412001F, // 000B LDINT R4 32
- 0x7C080400, // 000C CALL R2 2
- 0x90020402, // 000D SETMBR R0 K2 R2
- 0x88040102, // 000E GETMBR R1 R0 K2
- 0x80040200, // 000F RET 1 R1
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_mode_PASE
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_set_mode_PASE, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(set_mode),
- /* K1 */ be_nested_str_weak(_PASE),
- }),
- be_str_weak(set_mode_PASE),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x880C0101, // 0001 GETMBR R3 R0 K1
- 0x7C040400, // 0002 CALL R1 2
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: set_mode
-********************************************************************/
-extern const bclass be_class_Matter_Session;
-be_local_closure(class_Matter_Session_set_mode, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Session,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(mode),
- }),
- be_str_weak(set_mode),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Session
********************************************************************/
@@ -1832,92 +1866,93 @@ extern const bclass be_class_Matter_Expirable;
be_local_class(Matter_Session,
38,
&be_class_Matter_Expirable,
- be_nested_map(84,
+ be_nested_map(85,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(set_mode, 6), be_const_closure(class_Matter_Session_set_mode_closure) },
- { be_const_key_weak(set_mode_PASE, 57), be_const_closure(class_Matter_Session_set_mode_PASE_closure) },
- { be_const_key_weak(_counter_rcv_impl, 79), be_const_var(14) },
- { be_const_key_weak(attestation_challenge, 56), be_const_var(25) },
- { be_const_key_weak(get_ac, -1), be_const_closure(class_Matter_Session_get_ac_closure) },
- { be_const_key_weak(get_fabric, -1), be_const_closure(class_Matter_Session_get_fabric_closure) },
- { be_const_key_weak(get_temp_ca, 69), be_const_closure(class_Matter_Session_get_temp_ca_closure) },
- { be_const_key_weak(_COUNTER_SND_INCR, -1), be_const_int(1024) },
- { be_const_key_weak(_CASE, -1), be_const_int(2) },
- { be_const_key_weak(_counter_insecure_rcv, 2), be_const_var(20) },
- { be_const_key_weak(_breadcrumb, -1), be_const_var(27) },
- { be_const_key_weak(r2ikey, 82), be_const_var(23) },
- { be_const_key_weak(set_keys, 52), be_const_closure(class_Matter_Session_set_keys_closure) },
- { be_const_key_weak(_exchange_id, -1), be_const_var(16) },
- { be_const_key_weak(peer_node_id, 8), be_const_var(26) },
- { be_const_key_weak(last_used, 80), be_const_var(6) },
- { be_const_key_weak(_source_node_id, 48), be_const_var(7) },
- { be_const_key_weak(init, 36), be_const_closure(class_Matter_Session_init_closure) },
- { be_const_key_weak(set_temp_ca, -1), be_const_closure(class_Matter_Session_set_temp_ca_closure) },
- { be_const_key_weak(created, -1), be_const_var(5) },
- { be_const_key_weak(persist_to_fabric, -1), be_const_closure(class_Matter_Session_persist_to_fabric_closure) },
- { be_const_key_weak(__initiator_pub, -1), be_const_var(32) },
- { be_const_key_weak(gen_CSR, -1), be_const_closure(class_Matter_Session_gen_CSR_closure) },
- { be_const_key_weak(_store, -1), be_const_var(0) },
- { be_const_key_weak(get_ipk_epoch_key, 49), be_const_closure(class_Matter_Session_get_ipk_epoch_key_closure) },
- { be_const_key_weak(__responder_priv, 7), be_const_var(30) },
- { be_const_key_weak(counter_rcv_validate, -1), be_const_closure(class_Matter_Session_counter_rcv_validate_closure) },
- { be_const_key_weak(_ip, -1), be_const_var(17) },
- { be_const_key_weak(get_admin_subject, 40), be_const_closure(class_Matter_Session_get_admin_subject_closure) },
- { be_const_key_weak(resumption_id, -1), be_const_var(28) },
- { be_const_key_weak(_i2r_privacy, -1), be_const_var(24) },
- { be_const_key_weak(get_fabric_compressed, -1), be_const_closure(class_Matter_Session_get_fabric_compressed_closure) },
{ be_const_key_weak(_temp_pk, -1), be_const_var(9) },
- { be_const_key_weak(shared_secret, 74), be_const_var(29) },
- { be_const_key_weak(_temp_root_ca_certificate, -1), be_const_var(8) },
- { be_const_key_weak(get_ca, -1), be_const_closure(class_Matter_Session_get_ca_closure) },
- { be_const_key_weak(_fabric, 10), be_const_var(2) },
- { be_const_key_weak(__spake_cA, -1), be_const_var(33) },
- { be_const_key_weak(get_ipk_group_key, -1), be_const_closure(class_Matter_Session_get_ipk_group_key_closure) },
- { be_const_key_weak(initiator_session_id, 18), be_const_var(4) },
- { be_const_key_weak(get_i2r_privacy, -1), be_const_closure(class_Matter_Session_get_i2r_privacy_closure) },
- { be_const_key_weak(__chunked_attr_reports, -1), be_const_var(37) },
- { be_const_key_weak(get_ca_pub, -1), be_const_closure(class_Matter_Session_get_ca_pub_closure) },
- { be_const_key_weak(counter_snd, 20), be_const_var(13) },
- { be_const_key_weak(set_fabric_label, 35), be_const_closure(class_Matter_Session_set_fabric_label_closure) },
- { be_const_key_weak(_counter_snd_impl, 71), be_const_var(15) },
- { be_const_key_weak(is_CASE, -1), be_const_closure(class_Matter_Session_is_CASE_closure) },
- { be_const_key_weak(before_remove, -1), be_const_closure(class_Matter_Session_before_remove_closure) },
+ { be_const_key_weak(get_device_id, -1), be_const_closure(class_Matter_Session_get_device_id_closure) },
+ { be_const_key_weak(_exchange_id, 46), be_const_var(16) },
+ { be_const_key_weak(_PASE, 37), be_const_int(1) },
{ be_const_key_weak(set_mode_CASE, -1), be_const_closure(class_Matter_Session_set_mode_CASE_closure) },
- { be_const_key_weak(get_icac, -1), be_const_closure(class_Matter_Session_get_icac_closure) },
- { be_const_key_weak(tojson, 61), be_const_closure(class_Matter_Session_tojson_closure) },
- { be_const_key_weak(close, 1), be_const_closure(class_Matter_Session_close_closure) },
- { be_const_key_weak(get_fabric_label, 42), be_const_closure(class_Matter_Session_get_fabric_label_closure) },
- { be_const_key_weak(_counter_insecure_snd, -1), be_const_var(21) },
- { be_const_key_weak(get_device_id, 63), be_const_closure(class_Matter_Session_get_device_id_closure) },
- { be_const_key_weak(counter_rcv, 62), be_const_var(12) },
- { be_const_key_weak(__Msg1, -1), be_const_var(35) },
- { be_const_key_weak(hydrate_post, 66), be_const_closure(class_Matter_Session_hydrate_post_closure) },
+ { be_const_key_weak(get_ipk_group_key, 9), be_const_closure(class_Matter_Session_get_ipk_group_key_closure) },
+ { be_const_key_weak(is_CASE, -1), be_const_closure(class_Matter_Session_is_CASE_closure) },
{ be_const_key_weak(_message_handler, -1), be_const_var(19) },
- { be_const_key_weak(__future_initiator_session_id, -1), be_const_var(10) },
- { be_const_key_weak(__spake_Ke, 32), be_const_var(34) },
- { be_const_key_weak(__Msg2, 38), be_const_var(36) },
- { be_const_key_weak(get_mode, -1), be_const_closure(class_Matter_Session_get_mode_closure) },
+ { be_const_key_weak(persist_to_fabric, 2), be_const_closure(class_Matter_Session_persist_to_fabric_closure) },
{ be_const_key_weak(mode, -1), be_const_var(1) },
- { be_const_key_weak(update, 16), be_const_closure(class_Matter_Session_update_closure) },
- { be_const_key_weak(counter_snd_next, -1), be_const_closure(class_Matter_Session_counter_snd_next_closure) },
- { be_const_key_weak(get_temp_ca_pub, -1), be_const_closure(class_Matter_Session_get_temp_ca_pub_closure) },
- { be_const_key_weak(get_i2r, -1), be_const_closure(class_Matter_Session_get_i2r_closure) },
- { be_const_key_weak(get_noc, 37), be_const_closure(class_Matter_Session_get_noc_closure) },
- { be_const_key_weak(get_fabric_id, -1), be_const_closure(class_Matter_Session_get_fabric_id_closure) },
+ { be_const_key_weak(before_remove, 58), be_const_closure(class_Matter_Session_before_remove_closure) },
+ { be_const_key_weak(gen_CSR, 41), be_const_closure(class_Matter_Session_gen_CSR_closure) },
+ { be_const_key_weak(__responder_pub, 23), be_const_var(31) },
+ { be_const_key_weak(i2rkey, 83), be_const_var(22) },
+ { be_const_key_weak(_port, 29), be_const_var(18) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Session_init_closure) },
{ be_const_key_weak(get_admin_vendor, -1), be_const_closure(class_Matter_Session_get_admin_vendor_closure) },
- { be_const_key_weak(is_PASE, -1), be_const_closure(class_Matter_Session_is_PASE_closure) },
- { be_const_key_weak(save, 21), be_const_closure(class_Matter_Session_save_closure) },
- { be_const_key_weak(_GROUP_KEY, -1), be_nested_str_weak(GroupKey_X20v1_X2E0) },
- { be_const_key_weak(local_session_id, 76), be_const_var(3) },
- { be_const_key_weak(i2rkey, 17), be_const_var(22) },
+ { be_const_key_weak(get_i2r, -1), be_const_closure(class_Matter_Session_get_i2r_closure) },
+ { be_const_key_weak(_fabric, 73), be_const_var(2) },
+ { be_const_key_weak(local_session_id, 84), be_const_var(3) },
+ { be_const_key_weak(counter_rcv_validate, -1), be_const_closure(class_Matter_Session_counter_rcv_validate_closure) },
+ { be_const_key_weak(get_ca, -1), be_const_closure(class_Matter_Session_get_ca_closure) },
+ { be_const_key_weak(__responder_priv, -1), be_const_var(30) },
+ { be_const_key_weak(_counter_snd_impl, -1), be_const_var(15) },
+ { be_const_key_weak(__spake_cA, 67), be_const_var(33) },
+ { be_const_key_weak(__future_initiator_session_id, -1), be_const_var(10) },
{ be_const_key_weak(__future_local_session_id, -1), be_const_var(11) },
- { be_const_key_weak(_PASE, -1), be_const_int(1) },
- { be_const_key_weak(get_fabric_index, -1), be_const_closure(class_Matter_Session_get_fabric_index_closure) },
- { be_const_key_weak(_port, -1), be_const_var(18) },
- { be_const_key_weak(get_r2i, -1), be_const_closure(class_Matter_Session_get_r2i_closure) },
+ { be_const_key_weak(set_mode, -1), be_const_closure(class_Matter_Session_set_mode_closure) },
+ { be_const_key_weak(counter_snd_next, -1), be_const_closure(class_Matter_Session_counter_snd_next_closure) },
+ { be_const_key_weak(set_temp_ca, 33), be_const_closure(class_Matter_Session_set_temp_ca_closure) },
+ { be_const_key_weak(get_temp_ca_pub, -1), be_const_closure(class_Matter_Session_get_temp_ca_pub_closure) },
+ { be_const_key_weak(get_temp_ca, 54), be_const_closure(class_Matter_Session_get_temp_ca_closure) },
+ { be_const_key_weak(get_fabric_id, -1), be_const_closure(class_Matter_Session_get_fabric_id_closure) },
+ { be_const_key_weak(get_mode, -1), be_const_closure(class_Matter_Session_get_mode_closure) },
+ { be_const_key_weak(initiator_session_id, 22), be_const_var(4) },
+ { be_const_key_weak(set_mode_PASE, -1), be_const_closure(class_Matter_Session_set_mode_PASE_closure) },
+ { be_const_key_weak(get_fabric_compressed, 43), be_const_closure(class_Matter_Session_get_fabric_compressed_closure) },
+ { be_const_key_weak(__Msg2, -1), be_const_var(36) },
+ { be_const_key_weak(_counter_insecure_snd, 26), be_const_var(21) },
+ { be_const_key_weak(get_fabric_label, 52), be_const_closure(class_Matter_Session_get_fabric_label_closure) },
+ { be_const_key_weak(last_used, -1), be_const_var(6) },
+ { be_const_key_weak(close, -1), be_const_closure(class_Matter_Session_close_closure) },
+ { be_const_key_weak(counter_snd, 74), be_const_var(13) },
+ { be_const_key_weak(_store, -1), be_const_var(0) },
+ { be_const_key_weak(_breadcrumb, 72), be_const_var(27) },
+ { be_const_key_weak(_counter_insecure_rcv, -1), be_const_var(20) },
+ { be_const_key_weak(get_ac, -1), be_const_closure(class_Matter_Session_get_ac_closure) },
+ { be_const_key_weak(set_fabric_label, -1), be_const_closure(class_Matter_Session_set_fabric_label_closure) },
+ { be_const_key_weak(get_node_id, -1), be_const_closure(class_Matter_Session_get_node_id_closure) },
+ { be_const_key_weak(get_ca_pub, -1), be_const_closure(class_Matter_Session_get_ca_pub_closure) },
+ { be_const_key_weak(_COUNTER_SND_INCR, 55), be_const_int(1024) },
+ { be_const_key_weak(tojson, -1), be_const_closure(class_Matter_Session_tojson_closure) },
+ { be_const_key_weak(hydrate_post, -1), be_const_closure(class_Matter_Session_hydrate_post_closure) },
+ { be_const_key_weak(__spake_Ke, 36), be_const_var(34) },
+ { be_const_key_weak(_i2r_privacy, -1), be_const_var(24) },
+ { be_const_key_weak(get_fabric, 71), be_const_closure(class_Matter_Session_get_fabric_closure) },
+ { be_const_key_weak(__chunked_attr_reports, -1), be_const_var(37) },
+ { be_const_key_weak(_source_node_id, 66), be_const_var(7) },
+ { be_const_key_weak(get_i2r_privacy, 19), be_const_closure(class_Matter_Session_get_i2r_privacy_closure) },
+ { be_const_key_weak(_CASE, 57), be_const_int(2) },
+ { be_const_key_weak(fromjson, -1), be_const_static_closure(class_Matter_Session_fromjson_closure) },
+ { be_const_key_weak(get_noc, 60), be_const_closure(class_Matter_Session_get_noc_closure) },
+ { be_const_key_weak(save, -1), be_const_closure(class_Matter_Session_save_closure) },
+ { be_const_key_weak(counter_rcv, -1), be_const_var(12) },
+ { be_const_key_weak(update, 56), be_const_closure(class_Matter_Session_update_closure) },
+ { be_const_key_weak(_GROUP_KEY, -1), be_nested_str_weak(GroupKey_X20v1_X2E0) },
+ { be_const_key_weak(peer_node_id, -1), be_const_var(26) },
+ { be_const_key_weak(__Msg1, 82), be_const_var(35) },
+ { be_const_key_weak(get_admin_subject, -1), be_const_closure(class_Matter_Session_get_admin_subject_closure) },
+ { be_const_key_weak(get_ipk_epoch_key, -1), be_const_closure(class_Matter_Session_get_ipk_epoch_key_closure) },
+ { be_const_key_weak(__initiator_pub, -1), be_const_var(32) },
{ be_const_key_weak(get_pk, -1), be_const_closure(class_Matter_Session_get_pk_closure) },
- { be_const_key_weak(__responder_pub, -1), be_const_var(31) },
- { be_const_key_weak(fromjson, 0), be_const_static_closure(class_Matter_Session_fromjson_closure) },
+ { be_const_key_weak(is_PASE, -1), be_const_closure(class_Matter_Session_is_PASE_closure) },
+ { be_const_key_weak(get_icac, -1), be_const_closure(class_Matter_Session_get_icac_closure) },
+ { be_const_key_weak(resumption_id, -1), be_const_var(28) },
+ { be_const_key_weak(_ip, 27), be_const_var(17) },
+ { be_const_key_weak(set_keys, -1), be_const_closure(class_Matter_Session_set_keys_closure) },
+ { be_const_key_weak(r2ikey, 25), be_const_var(23) },
+ { be_const_key_weak(attestation_challenge, 5), be_const_var(25) },
+ { be_const_key_weak(created, -1), be_const_var(5) },
+ { be_const_key_weak(_temp_root_ca_certificate, -1), be_const_var(8) },
+ { be_const_key_weak(get_r2i, 11), be_const_closure(class_Matter_Session_get_r2i_closure) },
+ { be_const_key_weak(get_fabric_index, -1), be_const_closure(class_Matter_Session_get_fabric_index_closure) },
+ { be_const_key_weak(_counter_rcv_impl, -1), be_const_var(14) },
+ { be_const_key_weak(shared_secret, -1), be_const_var(29) },
})),
be_str_weak(Matter_Session)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index d7855d907..f045923c7 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -7,137 +7,12 @@
extern const bclass be_class_Matter_Device;
/********************************************************************
-** Solidified function: mdns_remove_op_discovery
+** Solidified function: save_before_restart
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
+be_local_closure(class_Matter_Device_save_before_restart, /* name */
be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(eth),
- /* K9 */ be_nested_str_weak(find),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K13 */ be_const_int(3),
- /* K14 */ be_nested_str_weak(remove_service),
- /* K15 */ be_nested_str_weak(_matter),
- /* K16 */ be_nested_str_weak(_tcp),
- /* K17 */ be_nested_str_weak(hostname_eth),
- /* K18 */ be_nested_str_weak(wifi),
- /* K19 */ be_nested_str_weak(hostname_wifi),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K21 */ be_nested_str_weak(_X7C),
- /* K22 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_op_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x8C180D08, // 0011 GETMET R6 R6 K8
- 0x7C180200, // 0012 CALL R6 1
- 0x8C180D09, // 0013 GETMET R6 R6 K9
- 0x5820000A, // 0014 LDCONST R8 K10
- 0x7C180400, // 0015 CALL R6 2
- 0x781A000D, // 0016 JMPF R6 #0025
- 0xB81A1600, // 0017 GETNGBL R6 K11
- 0x601C0018, // 0018 GETGBL R7 G24
- 0x5820000C, // 0019 LDCONST R8 K12
- 0x58240008, // 001A LDCONST R9 K8
- 0x5C280A00, // 001B MOVE R10 R5
- 0x7C1C0600, // 001C CALL R7 3
- 0x5820000D, // 001D LDCONST R8 K13
- 0x7C180400, // 001E CALL R6 2
- 0x8C18050E, // 001F GETMET R6 R2 K14
- 0x5820000F, // 0020 LDCONST R8 K15
- 0x58240010, // 0021 LDCONST R9 K16
- 0x5C280A00, // 0022 MOVE R10 R5
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x7C180A00, // 0024 CALL R6 5
- 0xB81A0E00, // 0025 GETNGBL R6 K7
- 0x8C180D12, // 0026 GETMET R6 R6 K18
- 0x7C180200, // 0027 CALL R6 1
- 0x8C180D09, // 0028 GETMET R6 R6 K9
- 0x5820000A, // 0029 LDCONST R8 K10
- 0x7C180400, // 002A CALL R6 2
- 0x781A000D, // 002B JMPF R6 #003A
- 0xB81A1600, // 002C GETNGBL R6 K11
- 0x601C0018, // 002D GETGBL R7 G24
- 0x5820000C, // 002E LDCONST R8 K12
- 0x58240012, // 002F LDCONST R9 K18
- 0x5C280A00, // 0030 MOVE R10 R5
- 0x7C1C0600, // 0031 CALL R7 3
- 0x5820000D, // 0032 LDCONST R8 K13
- 0x7C180400, // 0033 CALL R6 2
- 0x8C18050E, // 0034 GETMET R6 R2 K14
- 0x5820000F, // 0035 LDCONST R8 K15
- 0x58240010, // 0036 LDCONST R9 K16
- 0x5C280A00, // 0037 MOVE R10 R5
- 0x882C0113, // 0038 GETMBR R11 R0 K19
- 0x7C180A00, // 0039 CALL R6 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC0C0002, // 003C CATCH R3 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8161600, // 003E GETNGBL R5 K11
- 0x60180008, // 003F GETGBL R6 G8
- 0x5C1C0600, // 0040 MOVE R7 R3
- 0x7C180200, // 0041 CALL R6 1
- 0x001A2806, // 0042 ADD R6 K20 R6
- 0x00180D15, // 0043 ADD R6 R6 K21
- 0x601C0008, // 0044 GETGBL R7 G8
- 0x5C200800, // 0045 MOVE R8 R4
- 0x7C1C0200, // 0046 CALL R7 1
- 0x00180C07, // 0047 ADD R6 R6 R7
- 0x581C0016, // 0048 LDCONST R7 K22
- 0x7C140400, // 0049 CALL R5 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start, /* name */
- be_nested_proto(
- 4, /* nstack */
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -145,218 +20,18 @@ be_local_closure(class_Matter_Device_start, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(started),
- /* K1 */ be_nested_str_weak(autoconf_device),
- /* K2 */ be_nested_str_weak(_start_udp),
- /* K3 */ be_nested_str_weak(UDP_PORT),
- /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
}),
- be_str_weak(start),
+ be_str_weak(save_before_restart),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x80000200, // 0002 RET 0
- 0x8C040101, // 0003 GETMET R1 R0 K1
- 0x7C040200, // 0004 CALL R1 1
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x8C040104, // 0008 GETMET R1 R0 K4
- 0x7C040200, // 0009 CALL R1 1
- 0x50040200, // 000A LDBOOL R1 1 0
- 0x90020001, // 000B SETMBR R0 K0 R1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_PASE
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(mdns_pase_eth),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
- /* K4 */ be_nested_str_weak(_matterc),
- /* K5 */ be_nested_str_weak(_udp),
- /* K6 */ be_nested_str_weak(commissioning_instance_eth),
- /* K7 */ be_nested_str_weak(hostname_eth),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K10 */ be_nested_str_weak(eth),
- /* K11 */ be_nested_str_weak(remove_service),
- /* K12 */ be_nested_str_weak(mdns_pase_wifi),
- /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
- /* K14 */ be_nested_str_weak(hostname_wifi),
- /* K15 */ be_nested_str_weak(wifi),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K17 */ be_nested_str_weak(_X7C),
- /* K18 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_PASE),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A0019, // 0003 JMPF R2 #001E
- 0xB80A0400, // 0004 GETNGBL R2 K2
- 0x600C0018, // 0005 GETGBL R3 G24
- 0x58100003, // 0006 LDCONST R4 K3
- 0x58140004, // 0007 LDCONST R5 K4
- 0x58180005, // 0008 LDCONST R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x88200107, // 000A GETMBR R8 R0 K7
- 0x7C0C0A00, // 000B CALL R3 5
- 0x58100008, // 000C LDCONST R4 K8
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0400, // 000E GETNGBL R2 K2
- 0x600C0018, // 000F GETGBL R3 G24
- 0x58100009, // 0010 LDCONST R4 K9
- 0x5814000A, // 0011 LDCONST R5 K10
- 0x88180106, // 0012 GETMBR R6 R0 K6
- 0x7C0C0600, // 0013 CALL R3 3
- 0x58100008, // 0014 LDCONST R4 K8
- 0x7C080400, // 0015 CALL R2 2
- 0x50080000, // 0016 LDBOOL R2 0 0
- 0x90020202, // 0017 SETMBR R0 K1 R2
- 0x8C08030B, // 0018 GETMET R2 R1 K11
- 0x58100004, // 0019 LDCONST R4 K4
- 0x58140005, // 001A LDCONST R5 K5
- 0x88180106, // 001B GETMBR R6 R0 K6
- 0x881C0107, // 001C GETMBR R7 R0 K7
- 0x7C080A00, // 001D CALL R2 5
- 0x8808010C, // 001E GETMBR R2 R0 K12
- 0x780A0019, // 001F JMPF R2 #003A
- 0xB80A0400, // 0020 GETNGBL R2 K2
- 0x600C0018, // 0021 GETGBL R3 G24
- 0x58100003, // 0022 LDCONST R4 K3
- 0x58140004, // 0023 LDCONST R5 K4
- 0x58180005, // 0024 LDCONST R6 K5
- 0x881C010D, // 0025 GETMBR R7 R0 K13
- 0x8820010E, // 0026 GETMBR R8 R0 K14
- 0x7C0C0A00, // 0027 CALL R3 5
- 0x58100008, // 0028 LDCONST R4 K8
- 0x7C080400, // 0029 CALL R2 2
- 0xB80A0400, // 002A GETNGBL R2 K2
- 0x600C0018, // 002B GETGBL R3 G24
- 0x58100009, // 002C LDCONST R4 K9
- 0x5814000F, // 002D LDCONST R5 K15
- 0x8818010D, // 002E GETMBR R6 R0 K13
- 0x7C0C0600, // 002F CALL R3 3
- 0x58100008, // 0030 LDCONST R4 K8
- 0x7C080400, // 0031 CALL R2 2
- 0x50080000, // 0032 LDBOOL R2 0 0
- 0x90021802, // 0033 SETMBR R0 K12 R2
- 0x8C08030B, // 0034 GETMET R2 R1 K11
- 0x58100004, // 0035 LDCONST R4 K4
- 0x58140005, // 0036 LDCONST R5 K5
- 0x8818010D, // 0037 GETMBR R6 R0 K13
- 0x881C010E, // 0038 GETMBR R7 R0 K14
- 0x7C080A00, // 0039 CALL R2 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC080002, // 003C CATCH R2 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8120400, // 003E GETNGBL R4 K2
- 0x60140008, // 003F GETGBL R5 G8
- 0x5C180400, // 0040 MOVE R6 R2
- 0x7C140200, // 0041 CALL R5 1
- 0x00162005, // 0042 ADD R5 K16 R5
- 0x00140B11, // 0043 ADD R5 R5 K17
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x00140A06, // 0047 ADD R5 R5 R6
- 0x58180012, // 0048 LDCONST R6 K18
- 0x7C100400, // 0049 CALL R4 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: generate_random_passcode
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(random),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(134217727),
- /* K5 */ be_const_int(99999998),
- /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
- /* K7 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(generate_random_passcode),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x780E001D, // 0003 JMPF R3 #0022
- 0x8C0C0301, // 0004 GETMET R3 R1 K1
- 0x54160003, // 0005 LDINT R5 4
- 0x7C0C0400, // 0006 CALL R3 2
- 0x8C0C0702, // 0007 GETMET R3 R3 K2
- 0x58140003, // 0008 LDCONST R5 K3
- 0x541A0003, // 0009 LDINT R6 4
- 0x7C0C0600, // 000A CALL R3 3
- 0x2C0C0704, // 000B AND R3 R3 K4
- 0x5C080600, // 000C MOVE R2 R3
- 0x240C0505, // 000D GT R3 R2 K5
- 0x780E0000, // 000E JMPF R3 #0010
- 0x7001FFF1, // 000F JMP #0002
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100106, // 0011 GETMBR R4 R0 K6
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA8020005, // 0013 EXBLK 0 #001A
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x1C140404, // 0016 EQ R5 R2 R4
- 0x78160000, // 0017 JMPF R5 #0019
- 0x4C080000, // 0018 LDNIL R2
- 0x7001FFF9, // 0019 JMP #0014
- 0x580C0007, // 001A LDCONST R3 K7
- 0xAC0C0200, // 001B CATCH R3 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x4C0C0000, // 001D LDNIL R3
- 0x200C0403, // 001E NE R3 R2 R3
- 0x780E0000, // 001F JMPF R3 #0021
- 0x80040400, // 0020 RET 1 R2
- 0x7001FFDF, // 0021 JMP #0002
- 0x80000000, // 0022 RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x8C040101, // 0002 GETMET R1 R0 K1
+ 0x7C040200, // 0003 CALL R1 1
+ 0x80000000, // 0004 RET 0
})
)
);
@@ -407,2451 +82,45 @@ be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
/********************************************************************
-** Solidified function: conf_to_log
+** Solidified function: find_plugin_by_endpoint
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_conf_to_log, /* name */
+be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(),
- /* K2 */ be_nested_str_weak(k2l),
- /* K3 */ be_nested_str_weak(type),
- /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(conf_to_log),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x58080001, // 0001 LDCONST R2 K1
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100302, // 0003 GETMET R4 R1 K2
- 0x5C180000, // 0004 MOVE R6 R0
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA802000B, // 0007 EXBLK 0 #0014
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x1C140903, // 000A EQ R5 R4 K3
- 0x78160000, // 000B JMPF R5 #000D
- 0x7001FFFA, // 000C JMP #0008
- 0x60140018, // 000D GETGBL R5 G24
- 0x58180004, // 000E LDCONST R6 K4
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x94200004, // 0010 GETIDX R8 R0 R4
- 0x7C140600, // 0011 CALL R5 3
- 0x00080405, // 0012 ADD R2 R2 R5
- 0x7001FFF3, // 0013 JMP #0008
- 0x580C0005, // 0014 LDCONST R3 K5
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x80040400, // 0017 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_invoke_request, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
+ ( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(plugins),
- /* K3 */ be_nested_str_weak(invoke_request),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(status),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58100000, // 0000 LDCONST R4 K0
- 0x88140701, // 0001 GETMBR R5 R3 K1
- 0x6018000C, // 0002 GETGBL R6 G12
- 0x881C0102, // 0003 GETMBR R7 R0 K2
- 0x7C180200, // 0004 CALL R6 1
- 0x14180806, // 0005 LT R6 R4 R6
- 0x781A000C, // 0006 JMPF R6 #0014
- 0x88180102, // 0007 GETMBR R6 R0 K2
- 0x94180C04, // 0008 GETIDX R6 R6 R4
- 0x881C0D01, // 0009 GETMBR R7 R6 K1
- 0x1C1C0E05, // 000A EQ R7 R7 R5
- 0x781E0005, // 000B JMPF R7 #0012
- 0x8C1C0D03, // 000C GETMET R7 R6 K3
- 0x5C240200, // 000D MOVE R9 R1
- 0x5C280400, // 000E MOVE R10 R2
- 0x5C2C0600, // 000F MOVE R11 R3
- 0x7C1C0800, // 0010 CALL R7 4
- 0x80040E00, // 0011 RET 1 R7
- 0x00100904, // 0012 ADD R4 R4 K4
- 0x7001FFED, // 0013 JMP #0002
- 0xB81A0C00, // 0014 GETNGBL R6 K6
- 0x88180D07, // 0015 GETMBR R6 R6 K7
- 0x900E0A06, // 0016 SETMBR R3 K5 R6
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _instantiate_plugins_from_config
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name */
- be_nested_proto(
- 17, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(k2l_num),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_nested_str_weak(push),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(Plugin_Root),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
- /* K10 */ be_nested_str_weak(root),
- /* K11 */ be_nested_str_weak(),
- /* K12 */ be_nested_str_weak(Plugin_Aggregator),
- /* K13 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K14 */ be_nested_str_weak(aggregator),
- /* K15 */ be_nested_str_weak(find),
- /* K16 */ be_nested_str_weak(type),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
- /* K18 */ be_const_int(3),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
- /* K20 */ be_nested_str_weak(plugins_classes),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K22 */ be_nested_str_weak(_X27_X20skipping),
- /* K23 */ be_nested_str_weak(conf_to_log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_nested_str_weak(stop_iteration),
- /* K27 */ be_nested_str_weak(tasmota),
- /* K28 */ be_nested_str_weak(publish_result),
- /* K29 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Initialized_X22_X3A1_X7D_X7D),
- /* K30 */ be_nested_str_weak(Matter),
- }),
- be_str_weak(_instantiate_plugins_from_config),
- &be_const_str_solidified,
- ( &(const binstruction[146]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0xB80E0200, // 0003 GETNGBL R3 K1
- 0x58100002, // 0004 LDCONST R4 K2
- 0x58140003, // 0005 LDCONST R5 K3
- 0x7C0C0400, // 0006 CALL R3 2
- 0x880C0104, // 0007 GETMBR R3 R0 K4
- 0x8C0C0705, // 0008 GETMET R3 R3 K5
- 0xB8160C00, // 0009 GETNGBL R5 K6
- 0x8C140B07, // 000A GETMET R5 R5 K7
- 0x5C1C0000, // 000B MOVE R7 R0
- 0x58200008, // 000C LDCONST R8 K8
- 0x60240013, // 000D GETGBL R9 G19
- 0x7C240000, // 000E CALL R9 0
- 0x7C140800, // 000F CALL R5 4
- 0x7C0C0400, // 0010 CALL R3 2
- 0xB80E0200, // 0011 GETNGBL R3 K1
- 0x60100018, // 0012 GETGBL R4 G24
- 0x58140009, // 0013 LDCONST R5 K9
- 0x58180008, // 0014 LDCONST R6 K8
- 0x581C000A, // 0015 LDCONST R7 K10
- 0x5820000B, // 0016 LDCONST R8 K11
- 0x7C100800, // 0017 CALL R4 4
- 0x58140003, // 0018 LDCONST R5 K3
- 0x7C0C0400, // 0019 CALL R3 2
- 0x880C0104, // 001A GETMBR R3 R0 K4
- 0x8C0C0705, // 001B GETMET R3 R3 K5
- 0xB8160C00, // 001C GETNGBL R5 K6
- 0x8C140B0C, // 001D GETMET R5 R5 K12
- 0x5C1C0000, // 001E MOVE R7 R0
- 0xB8220C00, // 001F GETNGBL R8 K6
- 0x8820110D, // 0020 GETMBR R8 R8 K13
- 0x60240013, // 0021 GETGBL R9 G19
- 0x7C240000, // 0022 CALL R9 0
- 0x7C140800, // 0023 CALL R5 4
- 0x7C0C0400, // 0024 CALL R3 2
- 0xB80E0200, // 0025 GETNGBL R3 K1
- 0x60100018, // 0026 GETGBL R4 G24
- 0x58140009, // 0027 LDCONST R5 K9
- 0xB81A0C00, // 0028 GETNGBL R6 K6
- 0x88180D0D, // 0029 GETMBR R6 R6 K13
- 0x581C000E, // 002A LDCONST R7 K14
- 0x5820000B, // 002B LDCONST R8 K11
- 0x7C100800, // 002C CALL R4 4
- 0x58140003, // 002D LDCONST R5 K3
- 0x7C0C0400, // 002E CALL R3 2
- 0x600C0010, // 002F GETGBL R3 G16
- 0x5C100400, // 0030 MOVE R4 R2
- 0x7C0C0200, // 0031 CALL R3 1
- 0xA8020055, // 0032 EXBLK 0 #0089
- 0x5C100600, // 0033 MOVE R4 R3
- 0x7C100000, // 0034 CALL R4 0
- 0x1C140908, // 0035 EQ R5 R4 K8
- 0x78160000, // 0036 JMPF R5 #0038
- 0x7001FFFA, // 0037 JMP #0033
- 0xA802003E, // 0038 EXBLK 0 #0078
- 0x60140008, // 0039 GETGBL R5 G8
- 0x5C180800, // 003A MOVE R6 R4
- 0x7C140200, // 003B CALL R5 1
- 0x94140205, // 003C GETIDX R5 R1 R5
- 0x8C180B0F, // 003D GETMET R6 R5 K15
- 0x58200010, // 003E LDCONST R8 K16
- 0x7C180400, // 003F CALL R6 2
- 0x4C1C0000, // 0040 LDNIL R7
- 0x1C1C0C07, // 0041 EQ R7 R6 R7
- 0x781E0005, // 0042 JMPF R7 #0049
- 0xB81E0200, // 0043 GETNGBL R7 K1
- 0x58200011, // 0044 LDCONST R8 K17
- 0x58240012, // 0045 LDCONST R9 K18
- 0x7C1C0400, // 0046 CALL R7 2
- 0xA8040001, // 0047 EXBLK 1 1
- 0x7001FFE9, // 0048 JMP #0033
- 0x1C1C0D0A, // 0049 EQ R7 R6 K10
- 0x781E0005, // 004A JMPF R7 #0051
- 0xB81E0200, // 004B GETNGBL R7 K1
- 0x58200013, // 004C LDCONST R8 K19
- 0x58240012, // 004D LDCONST R9 K18
- 0x7C1C0400, // 004E CALL R7 2
- 0xA8040001, // 004F EXBLK 1 1
- 0x7001FFE1, // 0050 JMP #0033
- 0x881C0114, // 0051 GETMBR R7 R0 K20
- 0x8C1C0F0F, // 0052 GETMET R7 R7 K15
- 0x5C240C00, // 0053 MOVE R9 R6
- 0x7C1C0400, // 0054 CALL R7 2
- 0x4C200000, // 0055 LDNIL R8
- 0x1C200E08, // 0056 EQ R8 R7 R8
- 0x78220009, // 0057 JMPF R8 #0062
- 0xB8220200, // 0058 GETNGBL R8 K1
- 0x60240008, // 0059 GETGBL R9 G8
- 0x5C280C00, // 005A MOVE R10 R6
- 0x7C240200, // 005B CALL R9 1
- 0x00262A09, // 005C ADD R9 K21 R9
- 0x00241316, // 005D ADD R9 R9 K22
- 0x58280003, // 005E LDCONST R10 K3
- 0x7C200400, // 005F CALL R8 2
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7001FFD0, // 0061 JMP #0033
- 0x5C200E00, // 0062 MOVE R8 R7
- 0x5C240000, // 0063 MOVE R9 R0
- 0x5C280800, // 0064 MOVE R10 R4
- 0x5C2C0A00, // 0065 MOVE R11 R5
- 0x7C200600, // 0066 CALL R8 3
- 0x88240104, // 0067 GETMBR R9 R0 K4
- 0x8C241305, // 0068 GETMET R9 R9 K5
- 0x5C2C1000, // 0069 MOVE R11 R8
- 0x7C240400, // 006A CALL R9 2
- 0xB8260200, // 006B GETNGBL R9 K1
- 0x60280018, // 006C GETGBL R10 G24
- 0x582C0009, // 006D LDCONST R11 K9
- 0x5C300800, // 006E MOVE R12 R4
- 0x5C340C00, // 006F MOVE R13 R6
- 0x8C380117, // 0070 GETMET R14 R0 K23
- 0x5C400A00, // 0071 MOVE R16 R5
- 0x7C380400, // 0072 CALL R14 2
- 0x7C280800, // 0073 CALL R10 4
- 0x582C0003, // 0074 LDCONST R11 K3
- 0x7C240400, // 0075 CALL R9 2
- 0xA8040001, // 0076 EXBLK 1 1
- 0x7002000F, // 0077 JMP #0088
- 0xAC140002, // 0078 CATCH R5 0 2
- 0x7002000C, // 0079 JMP #0087
- 0xB81E0200, // 007A GETNGBL R7 K1
- 0x60200008, // 007B GETGBL R8 G8
- 0x5C240A00, // 007C MOVE R9 R5
- 0x7C200200, // 007D CALL R8 1
- 0x00223008, // 007E ADD R8 K24 R8
- 0x00201119, // 007F ADD R8 R8 K25
- 0x60240008, // 0080 GETGBL R9 G8
- 0x5C280C00, // 0081 MOVE R10 R6
- 0x7C240200, // 0082 CALL R9 1
- 0x00201009, // 0083 ADD R8 R8 R9
- 0x58240003, // 0084 LDCONST R9 K3
- 0x7C1C0400, // 0085 CALL R7 2
- 0x70020000, // 0086 JMP #0088
- 0xB0080000, // 0087 RAISE 2 R0 R0
- 0x7001FFA9, // 0088 JMP #0033
- 0x580C001A, // 0089 LDCONST R3 K26
- 0xAC0C0200, // 008A CATCH R3 1 0
- 0xB0080000, // 008B RAISE 2 R0 R0
- 0xB80E3600, // 008C GETNGBL R3 K27
- 0x8C0C071C, // 008D GETMET R3 R3 K28
- 0x5814001D, // 008E LDCONST R5 K29
- 0x5818001E, // 008F LDCONST R6 K30
- 0x7C0C0600, // 0090 CALL R3 3
- 0x80000000, // 0091 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_250ms
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_250ms, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(every_250ms),
- /* K2 */ be_nested_str_weak(read_sensors_scheduler),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_const_int(1),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x58040003, // 0005 LDCONST R1 K3
- 0x6008000C, // 0006 GETGBL R2 G12
- 0x880C0104, // 0007 GETMBR R3 R0 K4
- 0x7C080200, // 0008 CALL R2 1
- 0x14080202, // 0009 LT R2 R1 R2
- 0x780A0005, // 000A JMPF R2 #0011
- 0x88080104, // 000B GETMBR R2 R0 K4
- 0x94080401, // 000C GETIDX R2 R2 R1
- 0x8C080501, // 000D GETMET R2 R2 K1
- 0x7C080200, // 000E CALL R2 1
- 0x00040305, // 000F ADD R1 R1 K5
- 0x7001FFF4, // 0010 JMP #0006
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_read_sensors_schedule
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(jitter),
- }),
- be_str_weak(add_read_sensors_schedule),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x1C080403, // 0002 EQ R2 R2 R3
- 0x740A0002, // 0003 JMPT R2 #0007
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x24080401, // 0005 GT R2 R2 R1
- 0x780A0005, // 0006 JMPF R2 #000D
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0xB80A0400, // 0008 GETNGBL R2 K2
- 0x8C080503, // 0009 GETMET R2 R2 K3
- 0x5C100200, // 000A MOVE R4 R1
- 0x7C080400, // 000B CALL R2 2
- 0x90020202, // 000C SETMBR R0 K1 R2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(remove_driver),
- /* K2 */ be_nested_str_weak(udp_server),
- /* K3 */ be_nested_str_weak(stop),
- }),
- be_str_weak(stop),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x88040102, // 0004 GETMBR R1 R0 K2
- 0x78060002, // 0005 JMPF R1 #0009
- 0x88040102, // 0006 GETMBR R1 R0 K2
- 0x8C040303, // 0007 GETMET R1 R1 K3
- 0x7C040200, // 0008 CALL R1 1
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_qrcode_content
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(resize),
- /* K1 */ be_nested_str_weak(setbits),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(vendorid),
- /* K4 */ be_nested_str_weak(productid),
- /* K5 */ be_nested_str_weak(root_discriminator),
- /* K6 */ be_nested_str_weak(root_passcode),
- /* K7 */ be_const_int(134217727),
- /* K8 */ be_nested_str_weak(MT_X3A),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(Base38),
- /* K11 */ be_nested_str_weak(encode),
- }),
- be_str_weak(compute_qrcode_content),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x60040015, // 0000 GETGBL R1 G21
- 0x7C040000, // 0001 CALL R1 0
- 0x8C040300, // 0002 GETMET R1 R1 K0
- 0x540E000A, // 0003 LDINT R3 11
- 0x7C040400, // 0004 CALL R1 2
- 0x8C080301, // 0005 GETMET R2 R1 K1
- 0x58100002, // 0006 LDCONST R4 K2
- 0x5416000F, // 0007 LDINT R5 16
- 0x88180103, // 0008 GETMBR R6 R0 K3
- 0x7C080800, // 0009 CALL R2 4
- 0x8C080301, // 000A GETMET R2 R1 K1
- 0x54120012, // 000B LDINT R4 19
- 0x5416000F, // 000C LDINT R5 16
- 0x88180104, // 000D GETMBR R6 R0 K4
- 0x7C080800, // 000E CALL R2 4
- 0x8C080301, // 000F GETMET R2 R1 K1
- 0x54120024, // 0010 LDINT R4 37
- 0x54160007, // 0011 LDINT R5 8
- 0x541A0003, // 0012 LDINT R6 4
- 0x7C080800, // 0013 CALL R2 4
- 0x8C080301, // 0014 GETMET R2 R1 K1
- 0x5412002C, // 0015 LDINT R4 45
- 0x5416000B, // 0016 LDINT R5 12
- 0x88180105, // 0017 GETMBR R6 R0 K5
- 0x541E0FFE, // 0018 LDINT R7 4095
- 0x2C180C07, // 0019 AND R6 R6 R7
- 0x7C080800, // 001A CALL R2 4
- 0x8C080301, // 001B GETMET R2 R1 K1
- 0x54120038, // 001C LDINT R4 57
- 0x5416001A, // 001D LDINT R5 27
- 0x88180106, // 001E GETMBR R6 R0 K6
- 0x2C180D07, // 001F AND R6 R6 K7
- 0x7C080800, // 0020 CALL R2 4
- 0xB80A1200, // 0021 GETNGBL R2 K9
- 0x8808050A, // 0022 GETMBR R2 R2 K10
- 0x8C08050B, // 0023 GETMET R2 R2 K11
- 0x5C100200, // 0024 MOVE R4 R1
- 0x7C080400, // 0025 CALL R2 2
- 0x000A1002, // 0026 ADD R2 K8 R2
- 0x80040400, // 0027 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: k2l
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(k2l),
- &be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020005, // 000B EXBLK 0 #0012
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x7C140400, // 0010 CALL R5 2
- 0x7001FFF9, // 0011 JMP #000C
- 0x580C0003, // 0012 LDCONST R3 K3
- 0xAC0C0200, // 0013 CATCH R3 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x600C0010, // 0015 GETGBL R3 G16
- 0x6010000C, // 0016 GETGBL R4 G12
- 0x5C140400, // 0017 MOVE R5 R2
- 0x7C100200, // 0018 CALL R4 1
- 0x04100904, // 0019 SUB R4 R4 K4
- 0x40120804, // 001A CONNECT R4 K4 R4
- 0x7C0C0200, // 001B CALL R3 1
- 0xA8020010, // 001C EXBLK 0 #002E
- 0x5C100600, // 001D MOVE R4 R3
- 0x7C100000, // 001E CALL R4 0
- 0x94140404, // 001F GETIDX R5 R2 R4
- 0x5C180800, // 0020 MOVE R6 R4
- 0x241C0D05, // 0021 GT R7 R6 K5
- 0x781E0008, // 0022 JMPF R7 #002C
- 0x041C0D04, // 0023 SUB R7 R6 K4
- 0x941C0407, // 0024 GETIDX R7 R2 R7
- 0x241C0E05, // 0025 GT R7 R7 R5
- 0x781E0004, // 0026 JMPF R7 #002C
- 0x041C0D04, // 0027 SUB R7 R6 K4
- 0x941C0407, // 0028 GETIDX R7 R2 R7
- 0x98080C07, // 0029 SETIDX R2 R6 R7
- 0x04180D04, // 002A SUB R6 R6 K4
- 0x7001FFF4, // 002B JMP #0021
- 0x98080C05, // 002C SETIDX R2 R6 R5
- 0x7001FFEE, // 002D JMP #001D
- 0x580C0003, // 002E LDCONST R3 K3
- 0xAC0C0200, // 002F CATCH R3 1 0
- 0xB0080000, // 0030 RAISE 2 R0 R0
- 0x80040400, // 0031 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(is_root_commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(publish_result),
- /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
- /* K4 */ be_nested_str_weak(Matter),
- /* K5 */ be_nested_str_weak(commissioning_open),
- /* K6 */ be_nested_str_weak(mdns_remove_PASE),
- /* K7 */ be_nested_str_weak(commissioning_iterations),
- /* K8 */ be_nested_str_weak(commissioning_discriminator),
- /* K9 */ be_nested_str_weak(commissioning_salt),
- /* K10 */ be_nested_str_weak(commissioning_w0),
- /* K11 */ be_nested_str_weak(commissioning_L),
- /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
- }),
- be_str_weak(stop_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x78060004, // 0002 JMPF R1 #0008
- 0xB8060200, // 0003 GETNGBL R1 K1
- 0x8C040302, // 0004 GETMET R1 R1 K2
- 0x580C0003, // 0005 LDCONST R3 K3
- 0x58100004, // 0006 LDCONST R4 K4
- 0x7C040600, // 0007 CALL R1 3
- 0x4C040000, // 0008 LDNIL R1
- 0x90020A01, // 0009 SETMBR R0 K5 R1
- 0x8C040106, // 000A GETMET R1 R0 K6
- 0x7C040200, // 000B CALL R1 1
- 0x4C040000, // 000C LDNIL R1
- 0x90020E01, // 000D SETMBR R0 K7 R1
- 0x4C040000, // 000E LDNIL R1
- 0x90021001, // 000F SETMBR R0 K8 R1
- 0x4C040000, // 0010 LDNIL R1
- 0x90021201, // 0011 SETMBR R0 K9 R1
- 0x4C040000, // 0012 LDNIL R1
- 0x90021401, // 0013 SETMBR R0 K10 R1
- 0x4C040000, // 0014 LDNIL R1
- 0x90021601, // 0015 SETMBR R0 K11 R1
- 0x4C040000, // 0016 LDNIL R1
- 0x90021801, // 0017 SETMBR R0 K12 R1
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrUpdate
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrUpdate, /* name */
- be_nested_proto(
- 18, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(resp_cmnd_str),
- /* K2 */ be_nested_str_weak(Invalid_X20JSON),
- /* K3 */ be_nested_str_weak(find_key_i),
- /* K4 */ be_nested_str_weak(Ep),
- /* K5 */ be_nested_str_weak(Name),
- /* K6 */ be_const_int(0),
- /* K7 */ be_nested_str_weak(Invalid_X20_X27Ep_X27_X20attribute),
- /* K8 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_nested_str_weak(find_plugin_by_friendly_name),
- /* K11 */ be_nested_str_weak(Invalid_X20Device),
- /* K12 */ be_nested_str_weak(VIRTUAL),
- /* K13 */ be_nested_str_weak(Device_X20is_X20not_X20virtual),
- /* K14 */ be_nested_str_weak(consolidate_update_commands),
- /* K15 */ be_nested_str_weak(keys),
- /* K16 */ be_nested_str_weak(find_list_i),
- /* K17 */ be_nested_str_weak(Invalid_X20attribute_X20_X27_X25s_X27),
- /* K18 */ be_nested_str_weak(stop_iteration),
- /* K19 */ be_nested_str_weak(update_virtual),
- /* K20 */ be_nested_str_weak(state_json),
- /* K21 */ be_nested_str_weak(_X7B_X22_X25s_X22_X3A_X25s_X7D),
- /* K22 */ be_nested_str_weak(resp_cmnd),
- /* K23 */ be_nested_str_weak(resp_cmnd_done),
- /* K24 */ be_nested_str_weak(Missing_X20_X27Device_X27_X20attribute),
- }),
- be_str_weak(MtrUpdate),
- &be_const_str_solidified,
- ( &(const binstruction[126]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x1C140805, // 0001 EQ R5 R4 R5
- 0x78160004, // 0002 JMPF R5 #0008
- 0xB8160000, // 0003 GETNGBL R5 K0
- 0x8C140B01, // 0004 GETMET R5 R5 K1
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x7C140400, // 0006 CALL R5 2
- 0x80040A00, // 0007 RET 1 R5
- 0xB8160000, // 0008 GETNGBL R5 K0
- 0x8C140B03, // 0009 GETMET R5 R5 K3
- 0x5C1C0800, // 000A MOVE R7 R4
- 0x58200004, // 000B LDCONST R8 K4
- 0x7C140600, // 000C CALL R5 3
- 0xB81A0000, // 000D GETNGBL R6 K0
- 0x8C180D03, // 000E GETMET R6 R6 K3
- 0x5C200800, // 000F MOVE R8 R4
- 0x58240005, // 0010 LDCONST R9 K5
- 0x7C180600, // 0011 CALL R6 3
- 0x74160000, // 0012 JMPT R5 #0014
- 0x781A0064, // 0013 JMPF R6 #0079
- 0x4C1C0000, // 0014 LDNIL R7
- 0x78160010, // 0015 JMPF R5 #0027
- 0x60200009, // 0016 GETGBL R8 G9
- 0x94240805, // 0017 GETIDX R9 R4 R5
- 0x7C200200, // 0018 CALL R8 1
- 0x18241106, // 0019 LE R9 R8 K6
- 0x78260004, // 001A JMPF R9 #0020
- 0xB8260000, // 001B GETNGBL R9 K0
- 0x8C241301, // 001C GETMET R9 R9 K1
- 0x582C0007, // 001D LDCONST R11 K7
- 0x7C240400, // 001E CALL R9 2
- 0x80041200, // 001F RET 1 R9
- 0x8C240108, // 0020 GETMET R9 R0 K8
- 0x5C2C1000, // 0021 MOVE R11 R8
- 0x7C240400, // 0022 CALL R9 2
- 0x5C1C1200, // 0023 MOVE R7 R9
- 0x8C240909, // 0024 GETMET R9 R4 K9
- 0x5C2C0A00, // 0025 MOVE R11 R5
- 0x7C240400, // 0026 CALL R9 2
- 0x781A0009, // 0027 JMPF R6 #0032
- 0x4C200000, // 0028 LDNIL R8
- 0x1C200E08, // 0029 EQ R8 R7 R8
- 0x78220003, // 002A JMPF R8 #002F
- 0x8C20010A, // 002B GETMET R8 R0 K10
- 0x94280806, // 002C GETIDX R10 R4 R6
- 0x7C200400, // 002D CALL R8 2
- 0x5C1C1000, // 002E MOVE R7 R8
- 0x8C200909, // 002F GETMET R8 R4 K9
- 0x5C280C00, // 0030 MOVE R10 R6
- 0x7C200400, // 0031 CALL R8 2
- 0x4C200000, // 0032 LDNIL R8
- 0x1C200E08, // 0033 EQ R8 R7 R8
- 0x78220004, // 0034 JMPF R8 #003A
- 0xB8220000, // 0035 GETNGBL R8 K0
- 0x8C201101, // 0036 GETMET R8 R8 K1
- 0x5828000B, // 0037 LDCONST R10 K11
- 0x7C200400, // 0038 CALL R8 2
- 0x80041000, // 0039 RET 1 R8
- 0x88200F0C, // 003A GETMBR R8 R7 K12
- 0x74220004, // 003B JMPT R8 #0041
- 0xB8220000, // 003C GETNGBL R8 K0
- 0x8C201101, // 003D GETMET R8 R8 K1
- 0x5828000D, // 003E LDCONST R10 K13
- 0x7C200400, // 003F CALL R8 2
- 0x80041000, // 0040 RET 1 R8
- 0x8C200F0E, // 0041 GETMET R8 R7 K14
- 0x7C200200, // 0042 CALL R8 1
- 0x60240013, // 0043 GETGBL R9 G19
- 0x7C240000, // 0044 CALL R9 0
- 0x60280010, // 0045 GETGBL R10 G16
- 0x8C2C090F, // 0046 GETMET R11 R4 K15
- 0x7C2C0200, // 0047 CALL R11 1
- 0x7C280200, // 0048 CALL R10 1
- 0xA8020016, // 0049 EXBLK 0 #0061
- 0x5C2C1400, // 004A MOVE R11 R10
- 0x7C2C0000, // 004B CALL R11 0
- 0xB8320000, // 004C GETNGBL R12 K0
- 0x8C301910, // 004D GETMET R12 R12 K16
- 0x5C381000, // 004E MOVE R14 R8
- 0x5C3C1600, // 004F MOVE R15 R11
- 0x7C300600, // 0050 CALL R12 3
- 0x4C340000, // 0051 LDNIL R13
- 0x1C34180D, // 0052 EQ R13 R12 R13
- 0x78360008, // 0053 JMPF R13 #005D
- 0xB8360000, // 0054 GETNGBL R13 K0
- 0x8C341B01, // 0055 GETMET R13 R13 K1
- 0x603C0018, // 0056 GETGBL R15 G24
- 0x58400011, // 0057 LDCONST R16 K17
- 0x5C441600, // 0058 MOVE R17 R11
- 0x7C3C0400, // 0059 CALL R15 2
- 0x7C340400, // 005A CALL R13 2
- 0xA8040001, // 005B EXBLK 1 1
- 0x80001A00, // 005C RET 0
- 0x9434100C, // 005D GETIDX R13 R8 R12
- 0x9438080B, // 005E GETIDX R14 R4 R11
- 0x98241A0E, // 005F SETIDX R9 R13 R14
- 0x7001FFE8, // 0060 JMP #004A
- 0x58280012, // 0061 LDCONST R10 K18
- 0xAC280200, // 0062 CATCH R10 1 0
- 0xB0080000, // 0063 RAISE 2 R0 R0
- 0x8C280F13, // 0064 GETMET R10 R7 K19
- 0x5C301200, // 0065 MOVE R12 R9
- 0x7C280400, // 0066 CALL R10 2
- 0x8C280F14, // 0067 GETMET R10 R7 K20
- 0x7C280200, // 0068 CALL R10 1
- 0x782A000A, // 0069 JMPF R10 #0075
- 0x602C0018, // 006A GETGBL R11 G24
- 0x58300015, // 006B LDCONST R12 K21
- 0x5C340200, // 006C MOVE R13 R1
- 0x5C381400, // 006D MOVE R14 R10
- 0x7C2C0600, // 006E CALL R11 3
- 0xB8320000, // 006F GETNGBL R12 K0
- 0x8C301916, // 0070 GETMET R12 R12 K22
- 0x5C381600, // 0071 MOVE R14 R11
- 0x7C300400, // 0072 CALL R12 2
- 0x80041800, // 0073 RET 1 R12
- 0x70020003, // 0074 JMP #0079
- 0xB82E0000, // 0075 GETNGBL R11 K0
- 0x8C2C1717, // 0076 GETMET R11 R11 K23
- 0x7C2C0200, // 0077 CALL R11 1
- 0x80041600, // 0078 RET 1 R11
- 0xB81E0000, // 0079 GETNGBL R7 K0
- 0x8C1C0F01, // 007A GETMET R7 R7 K1
- 0x58240018, // 007B LDCONST R9 K24
- 0x7C1C0400, // 007C CALL R7 2
- 0x80000000, // 007D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrJoin
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrJoin, /* name */
- be_nested_proto(
- 8, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
- /* K1 */ be_nested_str_weak(stop_basic_commissioning),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrJoin),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x60140009, // 0000 GETGBL R5 G9
- 0x5C180600, // 0001 MOVE R6 R3
- 0x7C140200, // 0002 CALL R5 1
- 0x78160002, // 0003 JMPF R5 #0007
- 0x8C180100, // 0004 GETMET R6 R0 K0
- 0x7C180200, // 0005 CALL R6 1
- 0x70020001, // 0006 JMP #0009
- 0x8C180101, // 0007 GETMET R6 R0 K1
- 0x7C180200, // 0008 CALL R6 1
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x8C180D03, // 000A GETMET R6 R6 K3
- 0x7C180200, // 000B CALL R6 1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_fabric
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_remove_fabric, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
- /* K2 */ be_nested_str_weak(get_fabric_id),
- /* K3 */ be_nested_str_weak(copy),
- /* K4 */ be_nested_str_weak(reverse),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(message_handler),
- /* K8 */ be_nested_str_weak(im),
- /* K9 */ be_nested_str_weak(subs_shop),
- /* K10 */ be_nested_str_weak(remove_by_fabric),
- /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(remove_fabric),
- /* K14 */ be_nested_str_weak(save_fabrics),
- }),
- be_str_weak(remove_fabric),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0018, // 0002 JMPF R2 #001C
- 0xB80A0000, // 0003 GETNGBL R2 K0
- 0x8C0C0302, // 0004 GETMET R3 R1 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C0C0705, // 000A GETMET R3 R3 K5
- 0x7C0C0200, // 000B CALL R3 1
- 0x000E0203, // 000C ADD R3 K1 R3
- 0x58100006, // 000D LDCONST R4 K6
- 0x7C080400, // 000E CALL R2 2
- 0x88080107, // 000F GETMBR R2 R0 K7
- 0x88080508, // 0010 GETMBR R2 R2 K8
- 0x88080509, // 0011 GETMBR R2 R2 K9
- 0x8C08050A, // 0012 GETMET R2 R2 K10
- 0x5C100200, // 0013 MOVE R4 R1
- 0x7C080400, // 0014 CALL R2 2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x5C100200, // 0016 MOVE R4 R1
- 0x7C080400, // 0017 CALL R2 2
- 0x8808010C, // 0018 GETMBR R2 R0 K12
- 0x8C08050D, // 0019 GETMET R2 R2 K13
- 0x5C100200, // 001A MOVE R4 R1
- 0x7C080400, // 001B CALL R2 2
- 0x8808010C, // 001C GETMBR R2 R0 K12
- 0x8C08050E, // 001D GETMET R2 R2 K14
- 0x7C080200, // 001E CALL R2 1
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
- be_nested_proto(
- 13, /* nstack */
- 8, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(millis),
- /* K3 */ be_nested_str_weak(commissioning_iterations),
- /* K4 */ be_nested_str_weak(commissioning_discriminator),
- /* K5 */ be_nested_str_weak(commissioning_salt),
- /* K6 */ be_nested_str_weak(commissioning_w0),
- /* K7 */ be_nested_str_weak(commissioning_L),
- /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
- /* K9 */ be_nested_str_weak(wifi),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(mdns_announce_PASE),
- /* K13 */ be_nested_str_weak(add_rule),
- /* K14 */ be_nested_str_weak(Wifi_X23Connected),
- /* K15 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0xB8220200, // 0000 GETNGBL R8 K1
- 0x8C201102, // 0001 GETMET R8 R8 K2
- 0x7C200200, // 0002 CALL R8 1
- 0x542603E7, // 0003 LDINT R9 1000
- 0x08240209, // 0004 MUL R9 R1 R9
- 0x00201009, // 0005 ADD R8 R8 R9
- 0x90020008, // 0006 SETMBR R0 K0 R8
- 0x90020602, // 0007 SETMBR R0 K3 R2
- 0x90020803, // 0008 SETMBR R0 K4 R3
- 0x90020A04, // 0009 SETMBR R0 K5 R4
- 0x90020C05, // 000A SETMBR R0 K6 R5
- 0x90020E06, // 000B SETMBR R0 K7 R6
- 0x90021007, // 000C SETMBR R0 K8 R7
- 0xB8220200, // 000D GETNGBL R8 K1
- 0x8C201109, // 000E GETMET R8 R8 K9
- 0x7C200200, // 000F CALL R8 1
- 0x9420110A, // 0010 GETIDX R8 R8 K10
- 0x74220004, // 0011 JMPT R8 #0017
- 0xB8220200, // 0012 GETNGBL R8 K1
- 0x8C20110B, // 0013 GETMET R8 R8 K11
- 0x7C200200, // 0014 CALL R8 1
- 0x9420110A, // 0015 GETIDX R8 R8 K10
- 0x78220002, // 0016 JMPF R8 #001A
- 0x8C20010C, // 0017 GETMET R8 R0 K12
- 0x7C200200, // 0018 CALL R8 1
- 0x7002000B, // 0019 JMP #0026
- 0xB8220200, // 001A GETNGBL R8 K1
- 0x8C20110D, // 001B GETMET R8 R8 K13
- 0x5828000E, // 001C LDCONST R10 K14
- 0x842C0000, // 001D CLOSURE R11 P0
- 0x5830000C, // 001E LDCONST R12 K12
- 0x7C200800, // 001F CALL R8 4
- 0xB8220200, // 0020 GETNGBL R8 K1
- 0x8C20110D, // 0021 GETMET R8 R8 K13
- 0x5828000F, // 0022 LDCONST R10 K15
- 0x842C0001, // 0023 CLOSURE R11 P1
- 0x5830000C, // 0024 LDCONST R12 K12
- 0x7C200800, // 0025 CALL R8 4
- 0xA0000000, // 0026 CLOSE R0
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_announce_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(mdns_announce_op_discovery_all_fabrics),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_class_arg
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_arg),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_class_displayname
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(DISPLAY_NAME),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_displayname),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_init, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[44]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(get_option),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(MATTER_OPTION),
- /* K5 */ be_nested_str_weak(UI),
- /* K6 */ be_nested_str_weak(profiler),
- /* K7 */ be_nested_str_weak(Profiler),
- /* K8 */ be_nested_str_weak(started),
- /* K9 */ be_nested_str_weak(tick),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(plugins_config_remotes),
- /* K14 */ be_nested_str_weak(vendorid),
- /* K15 */ be_nested_str_weak(VENDOR_ID),
- /* K16 */ be_nested_str_weak(productid),
- /* K17 */ be_nested_str_weak(PRODUCT_ID),
- /* K18 */ be_nested_str_weak(root_iterations),
- /* K19 */ be_nested_str_weak(PBKDF_ITERATIONS),
- /* K20 */ be_nested_str_weak(next_ep),
- /* K21 */ be_const_int(1),
- /* K22 */ be_nested_str_weak(root_salt),
- /* K23 */ be_nested_str_weak(random),
- /* K24 */ be_nested_str_weak(ipv4only),
- /* K25 */ be_nested_str_weak(disable_bridge_mode),
- /* K26 */ be_nested_str_weak(load_param),
- /* K27 */ be_nested_str_weak(sessions),
- /* K28 */ be_nested_str_weak(Session_Store),
- /* K29 */ be_nested_str_weak(load_fabrics),
- /* K30 */ be_nested_str_weak(message_handler),
- /* K31 */ be_nested_str_weak(MessageHandler),
- /* K32 */ be_nested_str_weak(ui),
- /* K33 */ be_nested_str_weak(wifi),
- /* K34 */ be_nested_str_weak(up),
- /* K35 */ be_nested_str_weak(eth),
- /* K36 */ be_nested_str_weak(start),
- /* K37 */ be_nested_str_weak(add_rule),
- /* K38 */ be_nested_str_weak(Wifi_X23Connected),
- /* K39 */ be_nested_str_weak(matter_start),
- /* K40 */ be_nested_str_weak(Eth_X23Connected),
- /* K41 */ be_nested_str_weak(_init_basic_commissioning),
- /* K42 */ be_nested_str_weak(add_driver),
- /* K43 */ be_nested_str_weak(register_commands),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[107]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0xB8120600, // 0003 GETNGBL R4 K3
- 0x88100904, // 0004 GETMBR R4 R4 K4
- 0x7C080400, // 0005 CALL R2 2
- 0x740A0004, // 0006 JMPT R2 #000C
- 0xB80A0600, // 0007 GETNGBL R2 K3
- 0x8C080505, // 0008 GETMET R2 R2 K5
- 0x5C100000, // 0009 MOVE R4 R0
- 0x7C080400, // 000A CALL R2 2
- 0x80000400, // 000B RET 0
- 0xB80A0600, // 000C GETNGBL R2 K3
- 0xB80E0600, // 000D GETNGBL R3 K3
- 0x8C0C0707, // 000E GETMET R3 R3 K7
- 0x7C0C0200, // 000F CALL R3 1
- 0x900A0C03, // 0010 SETMBR R2 K6 R3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x90021002, // 0012 SETMBR R0 K8 R2
- 0x9002130A, // 0013 SETMBR R0 K9 K10
- 0x60080012, // 0014 GETGBL R2 G18
- 0x7C080000, // 0015 CALL R2 0
- 0x90021602, // 0016 SETMBR R0 K11 R2
- 0x50080000, // 0017 LDBOOL R2 0 0
- 0x90021802, // 0018 SETMBR R0 K12 R2
- 0x60080013, // 0019 GETGBL R2 G19
- 0x7C080000, // 001A CALL R2 0
- 0x90021A02, // 001B SETMBR R0 K13 R2
- 0x8808010F, // 001C GETMBR R2 R0 K15
- 0x90021C02, // 001D SETMBR R0 K14 R2
- 0x88080111, // 001E GETMBR R2 R0 K17
- 0x90022002, // 001F SETMBR R0 K16 R2
- 0x88080113, // 0020 GETMBR R2 R0 K19
- 0x90022402, // 0021 SETMBR R0 K18 R2
- 0x90022915, // 0022 SETMBR R0 K20 K21
- 0x8C080317, // 0023 GETMET R2 R1 K23
- 0x5412000F, // 0024 LDINT R4 16
- 0x7C080400, // 0025 CALL R2 2
- 0x90022C02, // 0026 SETMBR R0 K22 R2
- 0x50080000, // 0027 LDBOOL R2 0 0
- 0x90023002, // 0028 SETMBR R0 K24 R2
- 0x50080000, // 0029 LDBOOL R2 0 0
- 0x90023202, // 002A SETMBR R0 K25 R2
- 0x8C08011A, // 002B GETMET R2 R0 K26
- 0x7C080200, // 002C CALL R2 1
- 0xB80A0600, // 002D GETNGBL R2 K3
- 0x8C08051C, // 002E GETMET R2 R2 K28
- 0x5C100000, // 002F MOVE R4 R0
- 0x7C080400, // 0030 CALL R2 2
- 0x90023602, // 0031 SETMBR R0 K27 R2
- 0x8808011B, // 0032 GETMBR R2 R0 K27
- 0x8C08051D, // 0033 GETMET R2 R2 K29
- 0x7C080200, // 0034 CALL R2 1
- 0xB80A0600, // 0035 GETNGBL R2 K3
- 0x8C08051F, // 0036 GETMET R2 R2 K31
- 0x5C100000, // 0037 MOVE R4 R0
- 0x7C080400, // 0038 CALL R2 2
- 0x90023C02, // 0039 SETMBR R0 K30 R2
- 0xB80A0600, // 003A GETNGBL R2 K3
- 0x8C080505, // 003B GETMET R2 R2 K5
- 0x5C100000, // 003C MOVE R4 R0
- 0x7C080400, // 003D CALL R2 2
- 0x90024002, // 003E SETMBR R0 K32 R2
- 0xB80A0200, // 003F GETNGBL R2 K1
- 0x8C080521, // 0040 GETMET R2 R2 K33
- 0x7C080200, // 0041 CALL R2 1
- 0x94080522, // 0042 GETIDX R2 R2 K34
- 0x740A0004, // 0043 JMPT R2 #0049
- 0xB80A0200, // 0044 GETNGBL R2 K1
- 0x8C080523, // 0045 GETMET R2 R2 K35
- 0x7C080200, // 0046 CALL R2 1
- 0x94080522, // 0047 GETIDX R2 R2 K34
- 0x780A0001, // 0048 JMPF R2 #004B
- 0x8C080124, // 0049 GETMET R2 R0 K36
- 0x7C080200, // 004A CALL R2 1
- 0xB80A0200, // 004B GETNGBL R2 K1
- 0x8C080521, // 004C GETMET R2 R2 K33
- 0x7C080200, // 004D CALL R2 1
- 0x94080522, // 004E GETIDX R2 R2 K34
- 0x740A0005, // 004F JMPT R2 #0056
- 0xB80A0200, // 0050 GETNGBL R2 K1
- 0x8C080525, // 0051 GETMET R2 R2 K37
- 0x58100026, // 0052 LDCONST R4 K38
- 0x84140000, // 0053 CLOSURE R5 P0
- 0x58180027, // 0054 LDCONST R6 K39
- 0x7C080800, // 0055 CALL R2 4
- 0xB80A0200, // 0056 GETNGBL R2 K1
- 0x8C080523, // 0057 GETMET R2 R2 K35
- 0x7C080200, // 0058 CALL R2 1
- 0x94080522, // 0059 GETIDX R2 R2 K34
- 0x740A0005, // 005A JMPT R2 #0061
- 0xB80A0200, // 005B GETNGBL R2 K1
- 0x8C080525, // 005C GETMET R2 R2 K37
- 0x58100028, // 005D LDCONST R4 K40
- 0x84140001, // 005E CLOSURE R5 P1
- 0x58180027, // 005F LDCONST R6 K39
- 0x7C080800, // 0060 CALL R2 4
- 0x8C080129, // 0061 GETMET R2 R0 K41
- 0x7C080200, // 0062 CALL R2 1
- 0xB80A0200, // 0063 GETNGBL R2 K1
- 0x8C08052A, // 0064 GETMET R2 R2 K42
- 0x5C100000, // 0065 MOVE R4 R0
- 0x7C080400, // 0066 CALL R2 2
- 0x8C08012B, // 0067 GETMET R2 R0 K43
- 0x7C080200, // 0068 CALL R2 1
- 0xA0000000, // 0069 CLOSE R0
- 0x80000000, // 006A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_read_solo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_read_solo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K4 */ be_nested_str_weak(status),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K7 */ be_nested_str_weak(contains_cluster),
- /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K9 */ be_nested_str_weak(contains_attribute),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- }),
- be_str_weak(process_attribute_read_solo),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0x88100302, // 0002 GETMBR R4 R1 K2
- 0x4C140000, // 0003 LDNIL R5
- 0x1C140405, // 0004 EQ R5 R2 R5
- 0x74160005, // 0005 JMPT R5 #000C
- 0x4C140000, // 0006 LDNIL R5
- 0x1C140605, // 0007 EQ R5 R3 R5
- 0x74160002, // 0008 JMPT R5 #000C
- 0x4C140000, // 0009 LDNIL R5
- 0x1C140805, // 000A EQ R5 R4 R5
- 0x78160001, // 000B JMPF R5 #000E
- 0x4C140000, // 000C LDNIL R5
- 0x80040A00, // 000D RET 1 R5
- 0x8C140103, // 000E GETMET R5 R0 K3
- 0x5C1C0400, // 000F MOVE R7 R2
- 0x7C140400, // 0010 CALL R5 2
- 0x4C180000, // 0011 LDNIL R6
- 0x1C180A06, // 0012 EQ R6 R5 R6
- 0x781A0004, // 0013 JMPF R6 #0019
- 0xB81A0A00, // 0014 GETNGBL R6 K5
- 0x88180D06, // 0015 GETMBR R6 R6 K6
- 0x90060806, // 0016 SETMBR R1 K4 R6
- 0x4C180000, // 0017 LDNIL R6
- 0x80040C00, // 0018 RET 1 R6
- 0x8C180B07, // 0019 GETMET R6 R5 K7
- 0x5C200600, // 001A MOVE R8 R3
- 0x7C180400, // 001B CALL R6 2
- 0x741A0004, // 001C JMPT R6 #0022
- 0xB81A0A00, // 001D GETNGBL R6 K5
- 0x88180D08, // 001E GETMBR R6 R6 K8
- 0x90060806, // 001F SETMBR R1 K4 R6
- 0x4C180000, // 0020 LDNIL R6
- 0x80040C00, // 0021 RET 1 R6
- 0x8C180B09, // 0022 GETMET R6 R5 K9
- 0x5C200600, // 0023 MOVE R8 R3
- 0x5C240800, // 0024 MOVE R9 R4
- 0x7C180600, // 0025 CALL R6 3
- 0x741A0004, // 0026 JMPT R6 #002C
- 0xB81A0A00, // 0027 GETNGBL R6 K5
- 0x88180D0A, // 0028 GETMBR R6 R6 K10
- 0x90060806, // 0029 SETMBR R1 K4 R6
- 0x4C180000, // 002A LDNIL R6
- 0x80040C00, // 002B RET 1 R6
- 0x80040A00, // 002C RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_operational_discovery_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_operational_discovery),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_operational_discovery_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(get_fabric),
- /* K1 */ be_nested_str_weak(get_fabric_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_nested_str_weak(get_admin_vendor_name),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(stop_basic_commissioning),
- }),
- be_str_weak(start_commissioning_complete),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x7C080200, // 0001 CALL R2 1
- 0x8C0C0501, // 0002 GETMET R3 R2 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C100505, // 000A GETMET R4 R2 K5
- 0x7C100200, // 000B CALL R4 1
- 0xB8160C00, // 000C GETNGBL R5 K6
- 0x60180018, // 000D GETGBL R6 G24
- 0x581C0007, // 000E LDCONST R7 K7
- 0x5C200600, // 000F MOVE R8 R3
- 0x5C240800, // 0010 MOVE R9 R4
- 0x7C180600, // 0011 CALL R6 3
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x7C140400, // 0013 CALL R5 2
- 0x8C140109, // 0014 GETMET R5 R0 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_received
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_received, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(msg_received),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x5C180200, // 0002 MOVE R6 R1
- 0x5C1C0400, // 0003 MOVE R7 R2
- 0x5C200600, // 0004 MOVE R8 R3
- 0x7C100800, // 0005 CALL R4 4
- 0x80040800, // 0006 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attribute_updated
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_attribute_updated, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(Path),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(attribute),
- /* K5 */ be_nested_str_weak(message_handler),
- /* K6 */ be_nested_str_weak(im),
- /* K7 */ be_nested_str_weak(subs_shop),
- /* K8 */ be_nested_str_weak(attribute_updated_ctx),
- }),
- be_str_weak(attribute_updated),
- &be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x4C140000, // 0000 LDNIL R5
- 0x1C140805, // 0001 EQ R5 R4 R5
- 0x78160000, // 0002 JMPF R5 #0004
- 0x50100000, // 0003 LDBOOL R4 0 0
- 0xB8160000, // 0004 GETNGBL R5 K0
- 0x8C140B01, // 0005 GETMET R5 R5 K1
- 0x7C140200, // 0006 CALL R5 1
- 0x90160401, // 0007 SETMBR R5 K2 R1
- 0x90160602, // 0008 SETMBR R5 K3 R2
- 0x90160803, // 0009 SETMBR R5 K4 R3
- 0x88180105, // 000A GETMBR R6 R0 K5
- 0x88180D06, // 000B GETMBR R6 R6 K6
- 0x88180D07, // 000C GETMBR R6 R6 K7
- 0x8C180D08, // 000D GETMET R6 R6 K8
- 0x5C200A00, // 000E MOVE R8 R5
- 0x5C240800, // 000F MOVE R9 R4
- 0x7C180600, // 0010 CALL R6 3
- 0x80000000, // 0011 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: event_fabrics_saved
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(event_fabrics_saved),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x24040302, // 0003 GT R1 R1 K2
- 0x78060005, // 0004 JMPF R1 #000B
- 0x88040103, // 0005 GETMBR R1 R0 K3
- 0x74060003, // 0006 JMPT R1 #000B
- 0x50040200, // 0007 LDBOOL R1 1 0
- 0x90020601, // 0008 SETMBR R0 K3 R1
- 0x8C040104, // 0009 GETMET R1 R0 K4
- 0x7C040200, // 000A CALL R1 1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_commissioning_complete),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_commissioning_complete_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_before_restart
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_before_restart, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(stop_basic_commissioning),
- /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
- }),
- be_str_weak(save_before_restart),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x8C040101, // 0002 GETMET R1 R0 K1
- 0x7C040200, // 0003 CALL R1 1
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_add_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K4 */ be_nested_str_weak(_X27_X20skipping),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(next_ep),
- /* K7 */ be_nested_str_weak(plugins),
- /* K8 */ be_nested_str_weak(push),
- /* K9 */ be_nested_str_weak(type),
- /* K10 */ be_nested_str_weak(keys),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
- /* K13 */ be_nested_str_weak(conf_to_log),
- /* K14 */ be_const_int(2),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_persist),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(save_param),
- /* K19 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_add_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120008, // 0006 JMPF R4 #0010
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x60140008, // 0008 GETGBL R5 G8
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C140200, // 000A CALL R5 1
- 0x00160605, // 000B ADD R5 K3 R5
- 0x00140B04, // 000C ADD R5 R5 K4
- 0x58180005, // 000D LDCONST R6 K5
- 0x7C100400, // 000E CALL R4 2
- 0x80000800, // 000F RET 0
- 0x88100106, // 0010 GETMBR R4 R0 K6
- 0x60140008, // 0011 GETGBL R5 G8
- 0x5C180800, // 0012 MOVE R6 R4
- 0x7C140200, // 0013 CALL R5 1
- 0x5C180600, // 0014 MOVE R6 R3
- 0x5C1C0000, // 0015 MOVE R7 R0
- 0x5C200800, // 0016 MOVE R8 R4
- 0x5C240400, // 0017 MOVE R9 R2
- 0x7C180600, // 0018 CALL R6 3
- 0x881C0107, // 0019 GETMBR R7 R0 K7
- 0x8C1C0F08, // 001A GETMET R7 R7 K8
- 0x5C240C00, // 001B MOVE R9 R6
- 0x7C1C0400, // 001C CALL R7 2
- 0x601C0013, // 001D GETGBL R7 G19
- 0x7C1C0000, // 001E CALL R7 0
- 0x981E1201, // 001F SETIDX R7 K9 R1
- 0x60200010, // 0020 GETGBL R8 G16
- 0x8C24050A, // 0021 GETMET R9 R2 K10
- 0x7C240200, // 0022 CALL R9 1
- 0x7C200200, // 0023 CALL R8 1
- 0xA8020004, // 0024 EXBLK 0 #002A
- 0x5C241000, // 0025 MOVE R9 R8
- 0x7C240000, // 0026 CALL R9 0
- 0x94280409, // 0027 GETIDX R10 R2 R9
- 0x981C120A, // 0028 SETIDX R7 R9 R10
- 0x7001FFFA, // 0029 JMP #0025
- 0x5820000B, // 002A LDCONST R8 K11
- 0xAC200200, // 002B CATCH R8 1 0
- 0xB0080000, // 002C RAISE 2 R0 R0
- 0xB8220400, // 002D GETNGBL R8 K2
- 0x60240018, // 002E GETGBL R9 G24
- 0x5828000C, // 002F LDCONST R10 K12
- 0x5C2C0800, // 0030 MOVE R11 R4
- 0x5C300200, // 0031 MOVE R12 R1
- 0x8C34010D, // 0032 GETMET R13 R0 K13
- 0x5C3C0400, // 0033 MOVE R15 R2
- 0x7C340400, // 0034 CALL R13 2
- 0x7C240800, // 0035 CALL R9 4
- 0x5828000E, // 0036 LDCONST R10 K14
- 0x7C200400, // 0037 CALL R8 2
- 0x8820010F, // 0038 GETMBR R8 R0 K15
- 0x98200A07, // 0039 SETIDX R8 R5 R7
- 0x50200200, // 003A LDBOOL R8 1 0
- 0x90022008, // 003B SETMBR R0 K16 R8
- 0x88200106, // 003C GETMBR R8 R0 K6
- 0x00201111, // 003D ADD R8 R8 K17
- 0x90020C08, // 003E SETMBR R0 K6 R8
- 0x8C200112, // 003F GETMET R8 R0 K18
- 0x7C200200, // 0040 CALL R8 1
- 0x8C200113, // 0041 GETMET R8 R0 K19
- 0x7C200200, // 0042 CALL R8 1
- 0x80040800, // 0043 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrInfo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(),
/* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(MtrInfo_one),
- /* K3 */ be_nested_str_weak(endpoint),
- /* K4 */ be_nested_str_weak(stop_iteration),
- /* K5 */ be_nested_str_weak(int),
- /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(resp_cmnd_done),
+ /* K2 */ be_nested_str_weak(get_endpoint),
+ /* K3 */ be_const_int(1),
}),
- be_str_weak(MtrInfo),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x1C140700, // 0000 EQ R5 R3 K0
- 0x7815FFFF, // 0001 JMPF R5 #0002
- 0x1C140700, // 0002 EQ R5 R3 K0
- 0x7816000D, // 0003 JMPF R5 #0012
- 0x60140010, // 0004 GETGBL R5 G16
- 0x88180101, // 0005 GETMBR R6 R0 K1
- 0x7C140200, // 0006 CALL R5 1
- 0xA8020005, // 0007 EXBLK 0 #000E
- 0x5C180A00, // 0008 MOVE R6 R5
- 0x7C180000, // 0009 CALL R6 0
- 0x8C1C0102, // 000A GETMET R7 R0 K2
- 0x88240D03, // 000B GETMBR R9 R6 K3
- 0x7C1C0400, // 000C CALL R7 2
- 0x7001FFF9, // 000D JMP #0008
- 0x58140004, // 000E LDCONST R5 K4
- 0xAC140200, // 000F CATCH R5 1 0
- 0xB0080000, // 0010 RAISE 2 R0 R0
- 0x70020011, // 0011 JMP #0024
- 0x60140004, // 0012 GETGBL R5 G4
- 0x5C180800, // 0013 MOVE R6 R4
- 0x7C140200, // 0014 CALL R5 1
- 0x1C140B05, // 0015 EQ R5 R5 K5
- 0x78160003, // 0016 JMPF R5 #001B
- 0x8C140102, // 0017 GETMET R5 R0 K2
- 0x5C1C0800, // 0018 MOVE R7 R4
- 0x7C140400, // 0019 CALL R5 2
- 0x70020008, // 001A JMP #0024
- 0x8C140106, // 001B GETMET R5 R0 K6
- 0x5C1C0600, // 001C MOVE R7 R3
- 0x7C140400, // 001D CALL R5 2
- 0x4C180000, // 001E LDNIL R6
- 0x20180A06, // 001F NE R6 R5 R6
- 0x781A0002, // 0020 JMPF R6 #0024
- 0x8C180102, // 0021 GETMET R6 R0 K2
- 0x88200B03, // 0022 GETMBR R8 R5 K3
- 0x7C180400, // 0023 CALL R6 2
- 0xB8160E00, // 0024 GETNGBL R5 K7
- 0x8C140B08, // 0025 GETMET R5 R5 K8
- 0x7C140200, // 0026 CALL R5 1
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _start_udp
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__start_udp, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(UDPServer),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(start),
- }),
- be_str_weak(_start_udp),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80000400, // 0002 RET 0
- 0x4C080000, // 0003 LDNIL R2
- 0x1C080202, // 0004 EQ R2 R1 R2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x540615A3, // 0006 LDINT R1 5540
- 0xB80A0200, // 0007 GETNGBL R2 K1
- 0x600C0008, // 0008 GETGBL R3 G8
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C0C0200, // 000A CALL R3 1
- 0x000E0403, // 000B ADD R3 K2 R3
- 0x58100003, // 000C LDCONST R4 K3
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0800, // 000E GETNGBL R2 K4
- 0x8C080505, // 000F GETMET R2 R2 K5
- 0x5C100000, // 0010 MOVE R4 R0
- 0x58140006, // 0011 LDCONST R5 K6
- 0x5C180200, // 0012 MOVE R6 R1
- 0x7C080800, // 0013 CALL R2 4
- 0x90020002, // 0014 SETMBR R0 K0 R2
- 0x88080100, // 0015 GETMBR R2 R0 K0
- 0x8C080507, // 0016 GETMET R2 R2 K7
- 0x84100000, // 0017 CLOSURE R4 P0
- 0x7C080400, // 0018 CALL R2 2
- 0xA0000000, // 0019 CLOSE R0
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_50ms
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_50ms, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_const_int(1),
- }),
- be_str_weak(every_50ms),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x00040301, // 0001 ADD R1 R1 K1
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_root_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
- }),
- be_str_weak(is_root_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060003, // 0003 JMPF R1 #0008
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x1C040202, // 0006 EQ R1 R1 R2
- 0x74060000, // 0007 JMPT R1 #0009
- 0x50040001, // 0008 LDBOOL R1 0 1
- 0x50040200, // 0009 LDBOOL R1 1 0
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: k2l_num
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l_num, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(k2l_num),
- &be_const_str_solidified,
- ( &(const binstruction[52]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020007, // 000B EXBLK 0 #0014
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x601C0009, // 000F GETGBL R7 G9
- 0x5C200800, // 0010 MOVE R8 R4
- 0x7C1C0200, // 0011 CALL R7 1
- 0x7C140400, // 0012 CALL R5 2
- 0x7001FFF7, // 0013 JMP #000C
- 0x580C0003, // 0014 LDCONST R3 K3
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x600C0010, // 0017 GETGBL R3 G16
- 0x6010000C, // 0018 GETGBL R4 G12
- 0x5C140400, // 0019 MOVE R5 R2
- 0x7C100200, // 001A CALL R4 1
- 0x04100904, // 001B SUB R4 R4 K4
- 0x40120804, // 001C CONNECT R4 K4 R4
- 0x7C0C0200, // 001D CALL R3 1
- 0xA8020010, // 001E EXBLK 0 #0030
- 0x5C100600, // 001F MOVE R4 R3
- 0x7C100000, // 0020 CALL R4 0
- 0x94140404, // 0021 GETIDX R5 R2 R4
- 0x5C180800, // 0022 MOVE R6 R4
- 0x241C0D05, // 0023 GT R7 R6 K5
- 0x781E0008, // 0024 JMPF R7 #002E
- 0x041C0D04, // 0025 SUB R7 R6 K4
- 0x941C0407, // 0026 GETIDX R7 R2 R7
- 0x241C0E05, // 0027 GT R7 R7 R5
- 0x781E0004, // 0028 JMPF R7 #002E
- 0x041C0D04, // 0029 SUB R7 R6 K4
- 0x941C0407, // 002A GETIDX R7 R2 R7
- 0x98080C07, // 002B SETIDX R2 R6 R7
- 0x04180D04, // 002C SUB R6 R6 K4
- 0x7001FFF4, // 002D JMP #0023
- 0x98080C05, // 002E SETIDX R2 R6 R5
- 0x7001FFEE, // 002F JMP #001F
- 0x580C0003, // 0030 LDCONST R3 K3
- 0xAC0C0200, // 0031 CATCH R3 1 0
- 0xB0080000, // 0032 RAISE 2 R0 R0
- 0x80040400, // 0033 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_commands
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_commands, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 4]) {
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrJoin),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrUpdate),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(add_cmd),
- /* K2 */ be_nested_str_weak(MtrJoin),
- /* K3 */ be_nested_str_weak(MtrUpdate),
- /* K4 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(register_commands),
+ be_str_weak(find_plugin_by_endpoint),
&be_const_str_solidified,
( &(const binstruction[17]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x580C0002, // 0002 LDCONST R3 K2
- 0x84100000, // 0003 CLOSURE R4 P0
- 0x7C040600, // 0004 CALL R1 3
- 0xB8060000, // 0005 GETNGBL R1 K0
- 0x8C040301, // 0006 GETMET R1 R1 K1
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x84100001, // 0008 CLOSURE R4 P1
- 0x7C040600, // 0009 CALL R1 3
- 0xB8060000, // 000A GETNGBL R1 K0
- 0x8C040301, // 000B GETMET R1 R1 K1
- 0x580C0004, // 000C LDCONST R3 K4
- 0x84100002, // 000D CLOSURE R4 P2
- 0x7C040600, // 000E CALL R1 3
- 0xA0000000, // 000F CLOSE R0
- 0x80000000, // 0010 RET 0
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0008, // 0005 JMPF R3 #000F
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x8C100702, // 0008 GETMET R4 R3 K2
+ 0x7C100200, // 0009 CALL R4 1
+ 0x1C100801, // 000A EQ R4 R4 R1
+ 0x78120000, // 000B JMPF R4 #000D
+ 0x80040600, // 000C RET 1 R3
+ 0x00080503, // 000D ADD R2 R2 K3
+ 0x7001FFF1, // 000E JMP #0001
+ 0x4C0C0000, // 000F LDNIL R3
+ 0x80040600, // 0010 RET 1 R3
})
)
);
@@ -2859,82 +128,52 @@ be_local_closure(class_Matter_Device_register_commands, /* name */
/********************************************************************
-** Solidified function: sort_distinct
+** Solidified function: read_sensors_scheduler
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_sort_distinct, /* name */
+be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
be_nested_proto(
- 7, /* nstack */
+ 4, /* nstack */
1, /* argc */
- 4, /* varg */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_const_int(1),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
/* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(remove),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(time_reached),
+ /* K5 */ be_nested_str_weak(_trigger_read_sensors),
+ /* K6 */ be_nested_str_weak(millis),
}),
- be_str_weak(sort_distinct),
+ be_str_weak(read_sensors_scheduler),
&be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080010, // 0001 GETGBL R2 G16
- 0x600C000C, // 0002 GETGBL R3 G12
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x040C0701, // 0005 SUB R3 R3 K1
- 0x400E0203, // 0006 CONNECT R3 K1 R3
- 0x7C080200, // 0007 CALL R2 1
- 0xA8020010, // 0008 EXBLK 0 #001A
- 0x5C0C0400, // 0009 MOVE R3 R2
- 0x7C0C0000, // 000A CALL R3 0
- 0x94100003, // 000B GETIDX R4 R0 R3
- 0x5C140600, // 000C MOVE R5 R3
- 0x24180B02, // 000D GT R6 R5 K2
- 0x781A0008, // 000E JMPF R6 #0018
- 0x04180B01, // 000F SUB R6 R5 K1
- 0x94180006, // 0010 GETIDX R6 R0 R6
- 0x24180C04, // 0011 GT R6 R6 R4
- 0x781A0004, // 0012 JMPF R6 #0018
- 0x04180B01, // 0013 SUB R6 R5 K1
- 0x94180006, // 0014 GETIDX R6 R0 R6
- 0x98000A06, // 0015 SETIDX R0 R5 R6
- 0x04140B01, // 0016 SUB R5 R5 K1
- 0x7001FFF4, // 0017 JMP #000D
- 0x98000A04, // 0018 SETIDX R0 R5 R4
- 0x7001FFEE, // 0019 JMP #0009
- 0x58080003, // 001A LDCONST R2 K3
- 0xAC080200, // 001B CATCH R2 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x58080001, // 001D LDCONST R2 K1
- 0x600C000C, // 001E GETGBL R3 G12
- 0x5C100000, // 001F MOVE R4 R0
- 0x7C0C0200, // 0020 CALL R3 1
- 0x180C0701, // 0021 LE R3 R3 K1
- 0x780E0000, // 0022 JMPF R3 #0024
- 0x80040000, // 0023 RET 1 R0
- 0x940C0102, // 0024 GETIDX R3 R0 K2
- 0x6010000C, // 0025 GETGBL R4 G12
- 0x5C140000, // 0026 MOVE R5 R0
- 0x7C100200, // 0027 CALL R4 1
- 0x14100404, // 0028 LT R4 R2 R4
- 0x78120009, // 0029 JMPF R4 #0034
- 0x94100002, // 002A GETIDX R4 R0 R2
- 0x1C100803, // 002B EQ R4 R4 R3
- 0x78120003, // 002C JMPF R4 #0031
- 0x8C100104, // 002D GETMET R4 R0 K4
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x70020001, // 0030 JMP #0033
- 0x940C0002, // 0031 GETIDX R3 R0 R2
- 0x00080501, // 0032 ADD R2 R2 K1
- 0x7001FFF0, // 0033 JMP #0025
- 0x80040000, // 0034 RET 1 R0
+ ( &(const binstruction[21]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060000, // 0003 JMPF R1 #0005
+ 0x80000200, // 0004 RET 0
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x1C040302, // 0006 EQ R1 R1 K2
+ 0x74060004, // 0007 JMPT R1 #000D
+ 0xB8060600, // 0008 GETNGBL R1 K3
+ 0x8C040304, // 0009 GETMET R1 R1 K4
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x7C040400, // 000B CALL R1 2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0x8C040105, // 000D GETMET R1 R0 K5
+ 0x7C040200, // 000E CALL R1 1
+ 0xB8060600, // 000F GETNGBL R1 K3
+ 0x8C040306, // 0010 GETMET R1 R1 K6
+ 0x880C0100, // 0011 GETMBR R3 R0 K0
+ 0x7C040400, // 0012 CALL R1 2
+ 0x90020201, // 0013 SETMBR R0 K1 R1
+ 0x80000000, // 0014 RET 0
})
)
);
@@ -2942,240 +181,10 @@ be_local_closure(class_Matter_Device_sort_distinct, /* name */
/********************************************************************
-** Solidified function: check_config_ep
+** Solidified function: _mdns_announce_hostname
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_check_config_ep, /* name */
- be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
- /* K12 */ be_nested_str_weak(next_ep),
- /* K13 */ be_const_int(1),
- }),
- be_str_weak(check_config_ep),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x600C0010, // 0003 GETGBL R3 G16
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x8C100901, // 0005 GETMET R4 R4 K1
- 0x7C100200, // 0006 CALL R4 1
- 0x7C0C0200, // 0007 CALL R3 1
- 0xA8020007, // 0008 EXBLK 0 #0011
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x8C140502, // 000B GETMET R5 R2 K2
- 0x601C0009, // 000C GETGBL R7 G9
- 0x5C200800, // 000D MOVE R8 R4
- 0x7C1C0200, // 000E CALL R7 1
- 0x7C140400, // 000F CALL R5 2
- 0x7001FFF7, // 0010 JMP #0009
- 0x580C0003, // 0011 LDCONST R3 K3
- 0xAC0C0200, // 0012 CATCH R3 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x600C0010, // 0014 GETGBL R3 G16
- 0x5C100400, // 0015 MOVE R4 R2
- 0x7C0C0200, // 0016 CALL R3 1
- 0xA8020030, // 0017 EXBLK 0 #0049
- 0x5C100600, // 0018 MOVE R4 R3
- 0x7C100000, // 0019 CALL R4 0
- 0x1C140904, // 001A EQ R5 R4 K4
- 0x7816000B, // 001B JMPF R5 #0028
- 0xB8160A00, // 001C GETNGBL R5 K5
- 0x58180006, // 001D LDCONST R6 K6
- 0x581C0007, // 001E LDCONST R7 K7
- 0x7C140400, // 001F CALL R5 2
- 0x88140100, // 0020 GETMBR R5 R0 K0
- 0x8C140B08, // 0021 GETMET R5 R5 K8
- 0x601C0008, // 0022 GETGBL R7 G8
- 0x5C200800, // 0023 MOVE R8 R4
- 0x7C1C0200, // 0024 CALL R7 1
- 0x7C140400, // 0025 CALL R5 2
- 0x50040200, // 0026 LDBOOL R1 1 0
- 0x7002001F, // 0027 JMP #0048
- 0xB8161200, // 0028 GETNGBL R5 K9
- 0x88140B0A, // 0029 GETMBR R5 R5 K10
- 0x1C140805, // 002A EQ R5 R4 R5
- 0x7816001B, // 002B JMPF R5 #0048
- 0x50040200, // 002C LDBOOL R1 1 0
- 0xB8160A00, // 002D GETNGBL R5 K5
- 0x60180018, // 002E GETGBL R6 G24
- 0x581C000B, // 002F LDCONST R7 K11
- 0x5C200800, // 0030 MOVE R8 R4
- 0x8824010C, // 0031 GETMBR R9 R0 K12
- 0x7C180600, // 0032 CALL R6 3
- 0x581C0007, // 0033 LDCONST R7 K7
- 0x7C140400, // 0034 CALL R5 2
- 0x60140008, // 0035 GETGBL R5 G8
- 0x8818010C, // 0036 GETMBR R6 R0 K12
- 0x7C140200, // 0037 CALL R5 1
- 0x88180100, // 0038 GETMBR R6 R0 K0
- 0x601C0008, // 0039 GETGBL R7 G8
- 0x5C200800, // 003A MOVE R8 R4
- 0x7C1C0200, // 003B CALL R7 1
- 0x88200100, // 003C GETMBR R8 R0 K0
- 0x941C1007, // 003D GETIDX R7 R8 R7
- 0x98180A07, // 003E SETIDX R6 R5 R7
- 0x88140100, // 003F GETMBR R5 R0 K0
- 0x8C140B08, // 0040 GETMET R5 R5 K8
- 0x601C0008, // 0041 GETGBL R7 G8
- 0x5C200800, // 0042 MOVE R8 R4
- 0x7C1C0200, // 0043 CALL R7 1
- 0x7C140400, // 0044 CALL R5 2
- 0x8814010C, // 0045 GETMBR R5 R0 K12
- 0x00140B0D, // 0046 ADD R5 R5 K13
- 0x90021805, // 0047 SETMBR R0 K12 R5
- 0x7001FFCE, // 0048 JMP #0018
- 0x580C0003, // 0049 LDCONST R3 K3
- 0xAC0C0200, // 004A CATCH R3 1 0
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80040200, // 004C RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_expansion
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(PathGenerator),
- /* K5 */ be_nested_str_weak(start),
- /* K6 */ be_nested_str_weak(next),
- /* K7 */ be_nested_str_weak(get_pi),
- /* K8 */ be_nested_str_weak(endpoint_found),
- /* K9 */ be_nested_str_weak(status),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K11 */ be_nested_str_weak(cluster_found),
- /* K12 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K13 */ be_nested_str_weak(attribute_found),
- /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K15 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
- }),
- be_str_weak(process_attribute_expansion),
- &be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
- 0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x88100301, // 0001 GETMBR R4 R1 K1
- 0x88140302, // 0002 GETMBR R5 R1 K2
- 0x50180000, // 0003 LDBOOL R6 0 0
- 0x501C0000, // 0004 LDBOOL R7 0 0
- 0x50200000, // 0005 LDBOOL R8 0 0
- 0x88240300, // 0006 GETMBR R9 R1 K0
- 0x4C280000, // 0007 LDNIL R10
- 0x2024120A, // 0008 NE R9 R9 R10
- 0x78260007, // 0009 JMPF R9 #0012
- 0x88240301, // 000A GETMBR R9 R1 K1
- 0x4C280000, // 000B LDNIL R10
- 0x2024120A, // 000C NE R9 R9 R10
- 0x78260003, // 000D JMPF R9 #0012
- 0x88240302, // 000E GETMBR R9 R1 K2
- 0x4C280000, // 000F LDNIL R10
- 0x2024120A, // 0010 NE R9 R9 R10
- 0x74260000, // 0011 JMPT R9 #0013
- 0x50240001, // 0012 LDBOOL R9 0 1
- 0x50240200, // 0013 LDBOOL R9 1 0
- 0xB82A0600, // 0014 GETNGBL R10 K3
- 0x8C281504, // 0015 GETMET R10 R10 K4
- 0x5C300000, // 0016 MOVE R12 R0
- 0x7C280400, // 0017 CALL R10 2
- 0x8C2C1505, // 0018 GETMET R11 R10 K5
- 0x5C340200, // 0019 MOVE R13 R1
- 0x4C380000, // 001A LDNIL R14
- 0x7C2C0600, // 001B CALL R11 3
- 0x4C2C0000, // 001C LDNIL R11
- 0x8C301506, // 001D GETMET R12 R10 K6
- 0x7C300200, // 001E CALL R12 1
- 0x5C2C1800, // 001F MOVE R11 R12
- 0x4C340000, // 0020 LDNIL R13
- 0x2030180D, // 0021 NE R12 R12 R13
- 0x78320009, // 0022 JMPF R12 #002D
- 0x5C300400, // 0023 MOVE R12 R2
- 0x8C341507, // 0024 GETMET R13 R10 K7
- 0x7C340200, // 0025 CALL R13 1
- 0x5C381600, // 0026 MOVE R14 R11
- 0x5C3C1200, // 0027 MOVE R15 R9
- 0x7C300600, // 0028 CALL R12 3
- 0x78260001, // 0029 JMPF R9 #002C
- 0x78320000, // 002A JMPF R12 #002C
- 0x80001A00, // 002B RET 0
- 0x7001FFEF, // 002C JMP #001D
- 0x78260019, // 002D JMPF R9 #0048
- 0x88301508, // 002E GETMBR R12 R10 K8
- 0x74320003, // 002F JMPT R12 #0034
- 0xB8320600, // 0030 GETNGBL R12 K3
- 0x8830190A, // 0031 GETMBR R12 R12 K10
- 0x9006120C, // 0032 SETMBR R1 K9 R12
- 0x7002000E, // 0033 JMP #0043
- 0x8830150B, // 0034 GETMBR R12 R10 K11
- 0x74320003, // 0035 JMPT R12 #003A
- 0xB8320600, // 0036 GETNGBL R12 K3
- 0x8830190C, // 0037 GETMBR R12 R12 K12
- 0x9006120C, // 0038 SETMBR R1 K9 R12
- 0x70020008, // 0039 JMP #0043
- 0x8830150D, // 003A GETMBR R12 R10 K13
- 0x74320003, // 003B JMPT R12 #0040
- 0xB8320600, // 003C GETNGBL R12 K3
- 0x8830190E, // 003D GETMBR R12 R12 K14
- 0x9006120C, // 003E SETMBR R1 K9 R12
- 0x70020002, // 003F JMP #0043
- 0xB8320600, // 0040 GETNGBL R12 K3
- 0x8830190F, // 0041 GETMBR R12 R12 K15
- 0x9006120C, // 0042 SETMBR R1 K9 R12
- 0x5C300400, // 0043 MOVE R12 R2
- 0x4C340000, // 0044 LDNIL R13
- 0x5C380200, // 0045 MOVE R14 R1
- 0x503C0200, // 0046 LDBOOL R15 1 0
- 0x7C300600, // 0047 CALL R12 3
- 0x80000000, // 0048 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_announce_op_discovery
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
be_nested_proto(
14, /* nstack */
2, /* argc */
@@ -3187,327 +196,180 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
1, /* has constants */
( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(find),
- /* K13 */ be_nested_str_weak(up),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K15 */ be_nested_str_weak(hostname_eth),
- /* K16 */ be_nested_str_weak(add_service),
- /* K17 */ be_nested_str_weak(_matter),
- /* K18 */ be_nested_str_weak(_tcp),
- /* K19 */ be_nested_str_weak(_I),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K21 */ be_nested_str_weak(add_subtype),
- /* K22 */ be_nested_str_weak(wifi),
- /* K23 */ be_nested_str_weak(hostname_wifi),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_const_int(2),
+ /* K1 */ be_nested_str_weak(string),
+ /* K2 */ be_nested_str_weak(start),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(eth),
+ /* K5 */ be_nested_str_weak(hostname_eth),
+ /* K6 */ be_nested_str_weak(replace),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(mac),
+ /* K9 */ be_nested_str_weak(_X3A),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(ipv4only),
+ /* K12 */ be_nested_str_weak(contains),
+ /* K13 */ be_nested_str_weak(ip6local),
+ /* K14 */ be_nested_str_weak(add_hostname),
+ /* K15 */ be_nested_str_weak(ip),
+ /* K16 */ be_nested_str_weak(ip6),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_nested_str_weak(wifi),
+ /* K21 */ be_nested_str_weak(hostname_wifi),
+ /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K24 */ be_nested_str_weak(_X7C),
+ /* K25 */ be_const_int(2),
+ /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
}),
- be_str_weak(mdns_announce_op_discovery),
+ be_str_weak(_mdns_announce_hostname),
&be_const_str_solidified,
- ( &(const binstruction[115]) { /* code */
+ ( &(const binstruction[144]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
- 0xA802005F, // 0001 EXBLK 0 #0062
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x001E1005, // 0011 ADD R7 K8 R5
- 0x58200009, // 0012 LDCONST R8 K9
- 0x7C180400, // 0013 CALL R6 2
- 0xB81A1400, // 0014 GETNGBL R6 K10
- 0x8C180D0B, // 0015 GETMET R6 R6 K11
- 0x7C180200, // 0016 CALL R6 1
- 0x8C180D0C, // 0017 GETMET R6 R6 K12
- 0x5820000D, // 0018 LDCONST R8 K13
- 0x7C180400, // 0019 CALL R6 2
- 0x781A001E, // 001A JMPF R6 #003A
- 0xB81A0E00, // 001B GETNGBL R6 K7
- 0x601C0018, // 001C GETGBL R7 G24
- 0x5820000E, // 001D LDCONST R8 K14
- 0x5824000B, // 001E LDCONST R9 K11
- 0x5C280A00, // 001F MOVE R10 R5
- 0x882C010F, // 0020 GETMBR R11 R0 K15
- 0x7C1C0800, // 0021 CALL R7 4
- 0x58200009, // 0022 LDCONST R8 K9
- 0x7C180400, // 0023 CALL R6 2
- 0x8C180510, // 0024 GETMET R6 R2 K16
- 0x58200011, // 0025 LDCONST R8 K17
- 0x58240012, // 0026 LDCONST R9 K18
- 0x542A15A3, // 0027 LDINT R10 5540
- 0x4C2C0000, // 0028 LDNIL R11
- 0x5C300A00, // 0029 MOVE R12 R5
- 0x8834010F, // 002A GETMBR R13 R0 K15
- 0x7C180E00, // 002B CALL R6 7
- 0x8C180905, // 002C GETMET R6 R4 K5
- 0x7C180200, // 002D CALL R6 1
- 0x001A2606, // 002E ADD R6 K19 R6
- 0xB81E0E00, // 002F GETNGBL R7 K7
- 0x00222806, // 0030 ADD R8 K20 R6
- 0x58240009, // 0031 LDCONST R9 K9
- 0x7C1C0400, // 0032 CALL R7 2
- 0x8C1C0515, // 0033 GETMET R7 R2 K21
- 0x58240011, // 0034 LDCONST R9 K17
- 0x58280012, // 0035 LDCONST R10 K18
- 0x5C2C0A00, // 0036 MOVE R11 R5
- 0x8830010F, // 0037 GETMBR R12 R0 K15
- 0x5C340C00, // 0038 MOVE R13 R6
- 0x7C1C0C00, // 0039 CALL R7 6
- 0xB81A1400, // 003A GETNGBL R6 K10
- 0x8C180D16, // 003B GETMET R6 R6 K22
- 0x7C180200, // 003C CALL R6 1
- 0x8C180D0C, // 003D GETMET R6 R6 K12
- 0x5820000D, // 003E LDCONST R8 K13
- 0x7C180400, // 003F CALL R6 2
- 0x781A001E, // 0040 JMPF R6 #0060
- 0xB81A0E00, // 0041 GETNGBL R6 K7
- 0x601C0018, // 0042 GETGBL R7 G24
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x58240016, // 0044 LDCONST R9 K22
- 0x5C280A00, // 0045 MOVE R10 R5
- 0x882C0117, // 0046 GETMBR R11 R0 K23
- 0x7C1C0800, // 0047 CALL R7 4
- 0x58200009, // 0048 LDCONST R8 K9
- 0x7C180400, // 0049 CALL R6 2
- 0x8C180510, // 004A GETMET R6 R2 K16
- 0x58200011, // 004B LDCONST R8 K17
- 0x58240012, // 004C LDCONST R9 K18
- 0x542A15A3, // 004D LDINT R10 5540
- 0x4C2C0000, // 004E LDNIL R11
- 0x5C300A00, // 004F MOVE R12 R5
- 0x88340117, // 0050 GETMBR R13 R0 K23
- 0x7C180E00, // 0051 CALL R6 7
- 0x8C180905, // 0052 GETMET R6 R4 K5
- 0x7C180200, // 0053 CALL R6 1
- 0x001A2606, // 0054 ADD R6 K19 R6
- 0xB81E0E00, // 0055 GETNGBL R7 K7
- 0x00222806, // 0056 ADD R8 K20 R6
- 0x58240009, // 0057 LDCONST R9 K9
- 0x7C1C0400, // 0058 CALL R7 2
- 0x8C1C0515, // 0059 GETMET R7 R2 K21
- 0x58240011, // 005A LDCONST R9 K17
- 0x58280012, // 005B LDCONST R10 K18
- 0x5C2C0A00, // 005C MOVE R11 R5
- 0x88300117, // 005D GETMBR R12 R0 K23
- 0x5C340C00, // 005E MOVE R13 R6
- 0x7C1C0C00, // 005F CALL R7 6
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7002000F, // 0061 JMP #0072
- 0xAC0C0002, // 0062 CATCH R3 0 2
- 0x7002000C, // 0063 JMP #0071
- 0xB8160E00, // 0064 GETNGBL R5 K7
- 0x60180008, // 0065 GETGBL R6 G8
- 0x5C1C0600, // 0066 MOVE R7 R3
- 0x7C180200, // 0067 CALL R6 1
- 0x001A3006, // 0068 ADD R6 K24 R6
- 0x00180D19, // 0069 ADD R6 R6 K25
- 0x601C0008, // 006A GETGBL R7 G8
- 0x5C200800, // 006B MOVE R8 R4
- 0x7C1C0200, // 006C CALL R7 1
- 0x00180C07, // 006D ADD R6 R6 R7
- 0x581C001A, // 006E LDCONST R7 K26
- 0x7C140400, // 006F CALL R5 2
- 0x70020000, // 0070 JMP #0072
- 0xB0080000, // 0071 RAISE 2 R0 R0
- 0x80000000, // 0072 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_param
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_param, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(update_remotes_info),
- /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
- /* K3 */ be_nested_str_weak(root_discriminator),
- /* K4 */ be_nested_str_weak(root_passcode),
- /* K5 */ be_nested_str_weak(ipv4only),
- /* K6 */ be_nested_str_weak(true),
- /* K7 */ be_nested_str_weak(false),
- /* K8 */ be_nested_str_weak(disable_bridge_mode),
- /* K9 */ be_nested_str_weak(next_ep),
- /* K10 */ be_nested_str_weak(debug),
- /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
- /* K14 */ be_nested_str_weak(dump),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_config_remotes),
- /* K17 */ be_const_int(0),
- /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
- /* K19 */ be_nested_str_weak(_X7D),
- /* K20 */ be_nested_str_weak(FILENAME),
- /* K21 */ be_nested_str_weak(w),
- /* K22 */ be_nested_str_weak(write),
- /* K23 */ be_nested_str_weak(close),
- /* K24 */ be_nested_str_weak(log),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
- /* K26 */ be_nested_str_weak(_X20and_X20configuration),
- /* K27 */ be_nested_str_weak(),
- /* K28 */ be_const_int(2),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K30 */ be_nested_str_weak(_X7C),
- }),
- be_str_weak(save_param),
- &be_const_str_solidified,
- ( &(const binstruction[83]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x60080018, // 0003 GETGBL R2 G24
- 0x580C0002, // 0004 LDCONST R3 K2
- 0x88100103, // 0005 GETMBR R4 R0 K3
- 0x88140104, // 0006 GETMBR R5 R0 K4
- 0x88180105, // 0007 GETMBR R6 R0 K5
- 0x781A0001, // 0008 JMPF R6 #000B
- 0x58180006, // 0009 LDCONST R6 K6
- 0x70020000, // 000A JMP #000C
- 0x58180007, // 000B LDCONST R6 K7
- 0x881C0108, // 000C GETMBR R7 R0 K8
- 0x781E0001, // 000D JMPF R7 #0010
- 0x581C0006, // 000E LDCONST R7 K6
- 0x70020000, // 000F JMP #0011
- 0x581C0007, // 0010 LDCONST R7 K7
- 0x88200109, // 0011 GETMBR R8 R0 K9
- 0x7C080C00, // 0012 CALL R2 6
- 0x880C010A, // 0013 GETMBR R3 R0 K10
- 0x780E0000, // 0014 JMPF R3 #0016
- 0x0008050B, // 0015 ADD R2 R2 K11
- 0x880C010C, // 0016 GETMBR R3 R0 K12
- 0x780E000E, // 0017 JMPF R3 #0027
- 0x0008050D, // 0018 ADD R2 R2 K13
- 0x8C0C030E, // 0019 GETMET R3 R1 K14
- 0x8814010F, // 001A GETMBR R5 R0 K15
- 0x7C0C0400, // 001B CALL R3 2
- 0x00080403, // 001C ADD R2 R2 R3
- 0x600C000C, // 001D GETGBL R3 G12
- 0x88100110, // 001E GETMBR R4 R0 K16
- 0x7C0C0200, // 001F CALL R3 1
- 0x240C0711, // 0020 GT R3 R3 K17
- 0x780E0004, // 0021 JMPF R3 #0027
- 0x00080512, // 0022 ADD R2 R2 K18
- 0x8C0C030E, // 0023 GETMET R3 R1 K14
- 0x88140110, // 0024 GETMBR R5 R0 K16
- 0x7C0C0400, // 0025 CALL R3 2
- 0x00080403, // 0026 ADD R2 R2 R3
- 0x00080513, // 0027 ADD R2 R2 K19
- 0xA8020017, // 0028 EXBLK 0 #0041
- 0x600C0011, // 0029 GETGBL R3 G17
- 0x88100114, // 002A GETMBR R4 R0 K20
- 0x58140015, // 002B LDCONST R5 K21
- 0x7C0C0400, // 002C CALL R3 2
- 0x8C100716, // 002D GETMET R4 R3 K22
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x8C100717, // 0030 GETMET R4 R3 K23
- 0x7C100200, // 0031 CALL R4 1
- 0xB8123000, // 0032 GETNGBL R4 K24
- 0x60140018, // 0033 GETGBL R5 G24
- 0x58180019, // 0034 LDCONST R6 K25
- 0x881C010C, // 0035 GETMBR R7 R0 K12
- 0x781E0001, // 0036 JMPF R7 #0039
- 0x581C001A, // 0037 LDCONST R7 K26
- 0x70020000, // 0038 JMP #003A
- 0x581C001B, // 0039 LDCONST R7 K27
- 0x7C140400, // 003A CALL R5 2
- 0x5818001C, // 003B LDCONST R6 K28
- 0x7C100400, // 003C CALL R4 2
- 0xA8040001, // 003D EXBLK 1 1
- 0x80040400, // 003E RET 1 R2
- 0xA8040001, // 003F EXBLK 1 1
- 0x70020010, // 0040 JMP #0052
- 0xAC0C0002, // 0041 CATCH R3 0 2
- 0x7002000D, // 0042 JMP #0051
- 0xB8163000, // 0043 GETNGBL R5 K24
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x001A3A06, // 0047 ADD R6 K29 R6
- 0x00180D1E, // 0048 ADD R6 R6 K30
- 0x601C0008, // 0049 GETGBL R7 G8
- 0x5C200800, // 004A MOVE R8 R4
- 0x7C1C0200, // 004B CALL R7 1
- 0x00180C07, // 004C ADD R6 R6 R7
- 0x581C001C, // 004D LDCONST R7 K28
- 0x7C140400, // 004E CALL R5 2
- 0x80040400, // 004F RET 1 R2
- 0x70020000, // 0050 JMP #0052
- 0xB0080000, // 0051 RAISE 2 R0 R0
- 0x80000000, // 0052 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _init_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
- }),
- be_str_weak(_init_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x1C040302, // 0003 EQ R1 R1 K2
- 0x78060001, // 0004 JMPF R1 #0007
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x7C040200, // 0006 CALL R1 1
- 0x80000000, // 0007 RET 0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0x8C100502, // 0002 GETMET R4 R2 K2
+ 0x7C100200, // 0003 CALL R4 1
+ 0xA8020077, // 0004 EXBLK 0 #007D
+ 0x78060033, // 0005 JMPF R1 #003A
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x8C140706, // 0009 GETMET R5 R3 K6
+ 0x8C1C0907, // 000A GETMET R7 R4 K7
+ 0x58240008, // 000B LDCONST R9 K8
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x58200009, // 000D LDCONST R8 K9
+ 0x5824000A, // 000E LDCONST R9 K10
+ 0x7C140800, // 000F CALL R5 4
+ 0x90020A05, // 0010 SETMBR R0 K5 R5
+ 0x8814010B, // 0011 GETMBR R5 R0 K11
+ 0x78160003, // 0012 JMPF R5 #0017
+ 0x8C14090C, // 0013 GETMET R5 R4 K12
+ 0x581C000D, // 0014 LDCONST R7 K13
+ 0x7C140400, // 0015 CALL R5 2
+ 0x7416000F, // 0016 JMPT R5 #0027
+ 0x8C14050E, // 0017 GETMET R5 R2 K14
+ 0x881C0105, // 0018 GETMBR R7 R0 K5
+ 0x8C200907, // 0019 GETMET R8 R4 K7
+ 0x5828000D, // 001A LDCONST R10 K13
+ 0x582C000A, // 001B LDCONST R11 K10
+ 0x7C200600, // 001C CALL R8 3
+ 0x8C240907, // 001D GETMET R9 R4 K7
+ 0x582C000F, // 001E LDCONST R11 K15
+ 0x5830000A, // 001F LDCONST R12 K10
+ 0x7C240600, // 0020 CALL R9 3
+ 0x8C280907, // 0021 GETMET R10 R4 K7
+ 0x58300010, // 0022 LDCONST R12 K16
+ 0x5834000A, // 0023 LDCONST R13 K10
+ 0x7C280600, // 0024 CALL R10 3
+ 0x7C140A00, // 0025 CALL R5 5
+ 0x70020011, // 0026 JMP #0039
+ 0xB8162200, // 0027 GETNGBL R5 K17
+ 0x60180018, // 0028 GETGBL R6 G24
+ 0x581C0012, // 0029 LDCONST R7 K18
+ 0x88200105, // 002A GETMBR R8 R0 K5
+ 0x8C240907, // 002B GETMET R9 R4 K7
+ 0x582C000F, // 002C LDCONST R11 K15
+ 0x5830000A, // 002D LDCONST R12 K10
+ 0x7C240600, // 002E CALL R9 3
+ 0x7C180600, // 002F CALL R6 3
+ 0x581C0013, // 0030 LDCONST R7 K19
+ 0x7C140400, // 0031 CALL R5 2
+ 0x8C14050E, // 0032 GETMET R5 R2 K14
+ 0x881C0105, // 0033 GETMBR R7 R0 K5
+ 0x8C200907, // 0034 GETMET R8 R4 K7
+ 0x5828000F, // 0035 LDCONST R10 K15
+ 0x582C000A, // 0036 LDCONST R11 K10
+ 0x7C200600, // 0037 CALL R8 3
+ 0x7C140600, // 0038 CALL R5 3
+ 0x70020032, // 0039 JMP #006D
+ 0xB8120600, // 003A GETNGBL R4 K3
+ 0x8C100914, // 003B GETMET R4 R4 K20
+ 0x7C100200, // 003C CALL R4 1
+ 0x8C140706, // 003D GETMET R5 R3 K6
+ 0x8C1C0907, // 003E GETMET R7 R4 K7
+ 0x58240008, // 003F LDCONST R9 K8
+ 0x7C1C0400, // 0040 CALL R7 2
+ 0x58200009, // 0041 LDCONST R8 K9
+ 0x5824000A, // 0042 LDCONST R9 K10
+ 0x7C140800, // 0043 CALL R5 4
+ 0x90022A05, // 0044 SETMBR R0 K21 R5
+ 0x8814010B, // 0045 GETMBR R5 R0 K11
+ 0x78160003, // 0046 JMPF R5 #004B
+ 0x8C14090C, // 0047 GETMET R5 R4 K12
+ 0x581C000D, // 0048 LDCONST R7 K13
+ 0x7C140400, // 0049 CALL R5 2
+ 0x7416000F, // 004A JMPT R5 #005B
+ 0x8C14050E, // 004B GETMET R5 R2 K14
+ 0x881C0115, // 004C GETMBR R7 R0 K21
+ 0x8C200907, // 004D GETMET R8 R4 K7
+ 0x5828000D, // 004E LDCONST R10 K13
+ 0x582C000A, // 004F LDCONST R11 K10
+ 0x7C200600, // 0050 CALL R8 3
+ 0x8C240907, // 0051 GETMET R9 R4 K7
+ 0x582C000F, // 0052 LDCONST R11 K15
+ 0x5830000A, // 0053 LDCONST R12 K10
+ 0x7C240600, // 0054 CALL R9 3
+ 0x8C280907, // 0055 GETMET R10 R4 K7
+ 0x58300010, // 0056 LDCONST R12 K16
+ 0x5834000A, // 0057 LDCONST R13 K10
+ 0x7C280600, // 0058 CALL R10 3
+ 0x7C140A00, // 0059 CALL R5 5
+ 0x70020011, // 005A JMP #006D
+ 0xB8162200, // 005B GETNGBL R5 K17
+ 0x60180018, // 005C GETGBL R6 G24
+ 0x581C0012, // 005D LDCONST R7 K18
+ 0x88200115, // 005E GETMBR R8 R0 K21
+ 0x8C240907, // 005F GETMET R9 R4 K7
+ 0x582C000F, // 0060 LDCONST R11 K15
+ 0x5830000A, // 0061 LDCONST R12 K10
+ 0x7C240600, // 0062 CALL R9 3
+ 0x7C180600, // 0063 CALL R6 3
+ 0x581C0013, // 0064 LDCONST R7 K19
+ 0x7C140400, // 0065 CALL R5 2
+ 0x8C14050E, // 0066 GETMET R5 R2 K14
+ 0x881C0115, // 0067 GETMBR R7 R0 K21
+ 0x8C200907, // 0068 GETMET R8 R4 K7
+ 0x5828000F, // 0069 LDCONST R10 K15
+ 0x582C000A, // 006A LDCONST R11 K10
+ 0x7C200600, // 006B CALL R8 3
+ 0x7C140600, // 006C CALL R5 3
+ 0xB8122200, // 006D GETNGBL R4 K17
+ 0x60140018, // 006E GETGBL R5 G24
+ 0x58180016, // 006F LDCONST R6 K22
+ 0x78060001, // 0070 JMPF R1 #0073
+ 0x581C0004, // 0071 LDCONST R7 K4
+ 0x70020000, // 0072 JMP #0074
+ 0x581C0014, // 0073 LDCONST R7 K20
+ 0x78060001, // 0074 JMPF R1 #0077
+ 0x88200105, // 0075 GETMBR R8 R0 K5
+ 0x70020000, // 0076 JMP #0078
+ 0x88200115, // 0077 GETMBR R8 R0 K21
+ 0x7C140600, // 0078 CALL R5 3
+ 0x58180013, // 0079 LDCONST R6 K19
+ 0x7C100400, // 007A CALL R4 2
+ 0xA8040001, // 007B EXBLK 1 1
+ 0x7002000F, // 007C JMP #008D
+ 0xAC100002, // 007D CATCH R4 0 2
+ 0x7002000C, // 007E JMP #008C
+ 0xB81A2200, // 007F GETNGBL R6 K17
+ 0x601C0008, // 0080 GETGBL R7 G8
+ 0x5C200800, // 0081 MOVE R8 R4
+ 0x7C1C0200, // 0082 CALL R7 1
+ 0x001E2E07, // 0083 ADD R7 K23 R7
+ 0x001C0F18, // 0084 ADD R7 R7 K24
+ 0x60200008, // 0085 GETGBL R8 G8
+ 0x5C240A00, // 0086 MOVE R9 R5
+ 0x7C200200, // 0087 CALL R8 1
+ 0x001C0E08, // 0088 ADD R7 R7 R8
+ 0x58200019, // 0089 LDCONST R8 K25
+ 0x7C180400, // 008A CALL R6 2
+ 0x70020000, // 008B JMP #008D
+ 0xB0080000, // 008C RAISE 2 R0 R0
+ 0x8C10011A, // 008D GETMET R4 R0 K26
+ 0x7C100200, // 008E CALL R4 1
+ 0x80000000, // 008F RET 0
})
)
);
@@ -3805,194 +667,54 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
/********************************************************************
-** Solidified function: start_mdns_announce_hostnames
+** Solidified function: conf_to_log
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080200, // 0002 LDBOOL R2 1 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(wifi),
- /* K2 */ be_nested_str_weak(up),
- /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K4 */ be_nested_str_weak(add_rule),
- /* K5 */ be_nested_str_weak(Wifi_X23Connected),
- /* K6 */ be_nested_str_weak(matter_mdns_host),
- /* K7 */ be_nested_str_weak(eth),
- /* K8 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_mdns_announce_hostnames),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x94040302, // 0003 GETIDX R1 R1 K2
- 0x78060003, // 0004 JMPF R1 #0009
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x500C0000, // 0006 LDBOOL R3 0 0
- 0x7C040400, // 0007 CALL R1 2
- 0x70020005, // 0008 JMP #000F
- 0xB8060000, // 0009 GETNGBL R1 K0
- 0x8C040304, // 000A GETMET R1 R1 K4
- 0x580C0005, // 000B LDCONST R3 K5
- 0x84100000, // 000C CLOSURE R4 P0
- 0x58140006, // 000D LDCONST R5 K6
- 0x7C040800, // 000E CALL R1 4
- 0xB8060000, // 000F GETNGBL R1 K0
- 0x8C040307, // 0010 GETMET R1 R1 K7
- 0x7C040200, // 0011 CALL R1 1
- 0x94040302, // 0012 GETIDX R1 R1 K2
- 0x78060003, // 0013 JMPF R1 #0018
- 0x8C040103, // 0014 GETMET R1 R0 K3
- 0x500C0200, // 0015 LDBOOL R3 1 0
- 0x7C040400, // 0016 CALL R1 2
- 0x70020005, // 0017 JMP #001E
- 0xB8060000, // 0018 GETNGBL R1 K0
- 0x8C040304, // 0019 GETMET R1 R1 K4
- 0x580C0008, // 001A LDCONST R3 K8
- 0x84100001, // 001B CLOSURE R4 P1
- 0x58140006, // 001C LDCONST R5 K6
- 0x7C040800, // 001D CALL R1 4
- 0xA0000000, // 001E CLOSE R0
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_manual_pairing_code
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+be_local_closure(class_Matter_Device_conf_to_log, /* name */
be_nested_proto(
9, /* nstack */
1, /* argc */
- 2, /* varg */
+ 4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(root_discriminator),
- /* K1 */ be_nested_str_weak(root_passcode),
- /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Verhoeff),
- /* K5 */ be_nested_str_weak(checksum),
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(),
+ /* K2 */ be_nested_str_weak(k2l),
+ /* K3 */ be_nested_str_weak(type),
+ /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
+ /* K5 */ be_nested_str_weak(stop_iteration),
}),
- be_str_weak(compute_manual_pairing_code),
+ be_str_weak(conf_to_log),
&be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x540A0FFE, // 0001 LDINT R2 4095
- 0x2C040202, // 0002 AND R1 R1 R2
- 0x540A0009, // 0003 LDINT R2 10
- 0x3C040202, // 0004 SHR R1 R1 R2
- 0x88080100, // 0005 GETMBR R2 R0 K0
- 0x540E02FF, // 0006 LDINT R3 768
- 0x2C080403, // 0007 AND R2 R2 R3
- 0x540E0005, // 0008 LDINT R3 6
- 0x38080403, // 0009 SHL R2 R2 R3
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x54123FFE, // 000B LDINT R4 16383
- 0x2C0C0604, // 000C AND R3 R3 R4
- 0x30080403, // 000D OR R2 R2 R3
- 0x880C0101, // 000E GETMBR R3 R0 K1
- 0x5412000D, // 000F LDINT R4 14
- 0x3C0C0604, // 0010 SHR R3 R3 R4
- 0x60100018, // 0011 GETGBL R4 G24
- 0x58140002, // 0012 LDCONST R5 K2
- 0x5C180200, // 0013 MOVE R6 R1
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x5C200600, // 0015 MOVE R8 R3
- 0x7C100800, // 0016 CALL R4 4
- 0xB8160600, // 0017 GETNGBL R5 K3
- 0x88140B04, // 0018 GETMBR R5 R5 K4
- 0x8C140B05, // 0019 GETMET R5 R5 K5
- 0x5C1C0800, // 001A MOVE R7 R4
- 0x7C140400, // 001B CALL R5 2
- 0x00100805, // 001C ADD R4 R4 R5
- 0x80040800, // 001D RET 1 R4
+ ( &(const binstruction[24]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x58080001, // 0001 LDCONST R2 K1
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100302, // 0003 GETMET R4 R1 K2
+ 0x5C180000, // 0004 MOVE R6 R0
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA802000B, // 0007 EXBLK 0 #0014
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x1C140903, // 000A EQ R5 R4 K3
+ 0x78160000, // 000B JMPF R5 #000D
+ 0x7001FFFA, // 000C JMP #0008
+ 0x60140018, // 000D GETGBL R5 G24
+ 0x58180004, // 000E LDCONST R6 K4
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x94200004, // 0010 GETIDX R8 R0 R4
+ 0x7C140600, // 0011 CALL R5 3
+ 0x00080405, // 0012 ADD R2 R2 R5
+ 0x7001FFF3, // 0013 JMP #0008
+ 0x580C0005, // 0014 LDCONST R3 K5
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x80040400, // 0017 RET 1 R2
})
)
);
@@ -4000,110 +722,12 @@ be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
/********************************************************************
-** Solidified function: get_plugin_remote_info
+** Solidified function: generate_random_passcode
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config_remotes),
- /* K1 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_plugin_remote_info),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140013, // 0003 GETGBL R5 G19
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_friendly_name
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
+be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
be_nested_proto(
7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_name),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_plugin_by_friendly_name),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x740A0004, // 0002 JMPT R2 #0008
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x1C080500, // 0006 EQ R2 R2 K0
- 0x780A0001, // 0007 JMPF R2 #000A
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- 0x58080000, // 000A LDCONST R2 K0
- 0x600C000C, // 000B GETGBL R3 G12
- 0x88100101, // 000C GETMBR R4 R0 K1
- 0x7C0C0200, // 000D CALL R3 1
- 0x140C0403, // 000E LT R3 R2 R3
- 0x780E0010, // 000F JMPF R3 #0021
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x940C0602, // 0011 GETIDX R3 R3 R2
- 0x8C100702, // 0012 GETMET R4 R3 K2
- 0x7C100200, // 0013 CALL R4 1
- 0x4C140000, // 0014 LDNIL R5
- 0x20140805, // 0015 NE R5 R4 R5
- 0x78160007, // 0016 JMPF R5 #001F
- 0x6014000C, // 0017 GETGBL R5 G12
- 0x5C180800, // 0018 MOVE R6 R4
- 0x7C140200, // 0019 CALL R5 1
- 0x24140B00, // 001A GT R5 R5 K0
- 0x78160002, // 001B JMPF R5 #001F
- 0x1C140801, // 001C EQ R5 R4 R1
- 0x78160000, // 001D JMPF R5 #001F
- 0x80040600, // 001E RET 1 R3
- 0x00080503, // 001F ADD R2 R2 K3
- 0x7001FFE9, // 0020 JMP #000B
- 0x4C0C0000, // 0021 LDNIL R3
- 0x80040600, // 0022 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _trigger_read_sensors
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
- be_nested_proto(
- 8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -4111,72 +735,54 @@ be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(read_sensors),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
- /* K7 */ be_nested_str_weak(load),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(plugins),
- /* K10 */ be_nested_str_weak(parse_sensors),
- /* K11 */ be_const_int(1),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(random),
+ /* K2 */ be_nested_str_weak(get),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_const_int(134217727),
+ /* K5 */ be_const_int(99999998),
+ /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
+ /* K7 */ be_nested_str_weak(stop_iteration),
}),
- be_str_weak(_trigger_read_sensors),
+ be_str_weak(generate_random_passcode),
&be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
+ ( &(const binstruction[35]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x8C0C0703, // 0005 GETMET R3 R3 K3
- 0x58140004, // 0006 LDCONST R5 K4
- 0x7C0C0400, // 0007 CALL R3 2
- 0x780E0006, // 0008 JMPF R3 #0010
- 0xB80E0A00, // 0009 GETNGBL R3 K5
- 0x60100008, // 000A GETGBL R4 G8
- 0x5C140400, // 000B MOVE R5 R2
- 0x7C100200, // 000C CALL R4 1
- 0x00120C04, // 000D ADD R4 K6 R4
- 0x58140004, // 000E LDCONST R5 K4
- 0x7C0C0400, // 000F CALL R3 2
- 0x4C0C0000, // 0010 LDNIL R3
- 0x1C0C0403, // 0011 EQ R3 R2 R3
- 0x780E0000, // 0012 JMPF R3 #0014
- 0x80000600, // 0013 RET 0
- 0x8C0C0307, // 0014 GETMET R3 R1 K7
- 0x5C140400, // 0015 MOVE R5 R2
- 0x7C0C0400, // 0016 CALL R3 2
- 0x4C100000, // 0017 LDNIL R4
- 0x20100604, // 0018 NE R4 R3 R4
- 0x7812000D, // 0019 JMPF R4 #0028
- 0x58100008, // 001A LDCONST R4 K8
- 0x6014000C, // 001B GETGBL R5 G12
- 0x88180109, // 001C GETMBR R6 R0 K9
- 0x7C140200, // 001D CALL R5 1
- 0x14140805, // 001E LT R5 R4 R5
- 0x78160006, // 001F JMPF R5 #0027
- 0x88140109, // 0020 GETMBR R5 R0 K9
- 0x94140A04, // 0021 GETIDX R5 R5 R4
- 0x8C140B0A, // 0022 GETMET R5 R5 K10
- 0x5C1C0600, // 0023 MOVE R7 R3
- 0x7C140400, // 0024 CALL R5 2
- 0x0010090B, // 0025 ADD R4 R4 K11
- 0x7001FFF3, // 0026 JMP #001B
- 0x70020006, // 0027 JMP #002F
- 0xB8120A00, // 0028 GETNGBL R4 K5
- 0x60140008, // 0029 GETGBL R5 G8
- 0x5C180400, // 002A MOVE R6 R2
- 0x7C140200, // 002B CALL R5 1
- 0x00161805, // 002C ADD R5 K12 R5
- 0x58180004, // 002D LDCONST R6 K4
- 0x7C100400, // 002E CALL R4 2
- 0x80000000, // 002F RET 0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x500C0200, // 0002 LDBOOL R3 1 0
+ 0x780E001D, // 0003 JMPF R3 #0022
+ 0x8C0C0301, // 0004 GETMET R3 R1 K1
+ 0x54160003, // 0005 LDINT R5 4
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x8C0C0702, // 0007 GETMET R3 R3 K2
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x541A0003, // 0009 LDINT R6 4
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x2C0C0704, // 000B AND R3 R3 K4
+ 0x5C080600, // 000C MOVE R2 R3
+ 0x240C0505, // 000D GT R3 R2 K5
+ 0x780E0000, // 000E JMPF R3 #0010
+ 0x7001FFF1, // 000F JMP #0002
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100106, // 0011 GETMBR R4 R0 K6
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA8020005, // 0013 EXBLK 0 #001A
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x1C140404, // 0016 EQ R5 R2 R4
+ 0x78160000, // 0017 JMPF R5 #0019
+ 0x4C080000, // 0018 LDNIL R2
+ 0x7001FFF9, // 0019 JMP #0014
+ 0x580C0007, // 001A LDCONST R3 K7
+ 0xAC0C0200, // 001B CATCH R3 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x4C0C0000, // 001D LDNIL R3
+ 0x200C0403, // 001E NE R3 R2 R3
+ 0x780E0000, // 001F JMPF R3 #0021
+ 0x80040400, // 0020 RET 1 R2
+ 0x7001FFDF, // 0021 JMP #0002
+ 0x80000000, // 0022 RET 0
})
)
);
@@ -4184,12 +790,12 @@ be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
/********************************************************************
-** Solidified function: adjust_next_ep
+** Solidified function: event_fabrics_saved
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
+be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
be_nested_proto(
- 5, /* nstack */
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -4198,89 +804,27 @@ be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(next_ep),
- /* K3 */ be_const_int(1),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(adjust_next_ep),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000A, // 0005 EXBLK 0 #0011
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x600C0009, // 0008 GETGBL R3 G9
- 0x5C100400, // 0009 MOVE R4 R2
- 0x7C0C0200, // 000A CALL R3 1
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0x28100604, // 000C GE R4 R3 R4
- 0x78120001, // 000D JMPF R4 #0010
- 0x00100703, // 000E ADD R4 R3 K3
- 0x90020404, // 000F SETMBR R0 K2 R4
- 0x7001FFF4, // 0010 JMP #0006
- 0x58040004, // 0011 LDCONST R1 K4
- 0xAC040200, // 0012 CATCH R1 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(save_param),
}),
- be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ be_str_weak(event_fabrics_saved),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x24040302, // 0003 GT R1 R1 K2
+ 0x78060005, // 0004 JMPF R1 #000B
+ 0x88040103, // 0005 GETMBR R1 R0 K3
+ 0x74060003, // 0006 JMPT R1 #000B
+ 0x50040200, // 0007 LDBOOL R1 1 0
+ 0x90020601, // 0008 SETMBR R0 K3 R1
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x80000000, // 000B RET 0
})
)
);
@@ -4288,58 +832,113 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /*
/********************************************************************
-** Solidified function: get_active_endpoints
+** Solidified function: process_attribute_expansion
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
+be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
+ 16, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins),
- /* K1 */ be_nested_str_weak(get_endpoint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(stop_iteration),
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(start),
+ /* K6 */ be_nested_str_weak(next),
+ /* K7 */ be_nested_str_weak(get_pi),
+ /* K8 */ be_nested_str_weak(endpoint_found),
+ /* K9 */ be_nested_str_weak(status),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K11 */ be_nested_str_weak(cluster_found),
+ /* K12 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K13 */ be_nested_str_weak(attribute_found),
+ /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ /* K15 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
}),
- be_str_weak(get_active_endpoints),
+ be_str_weak(process_attribute_expansion),
&be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x88100100, // 0003 GETMBR R4 R0 K0
- 0x7C0C0200, // 0004 CALL R3 1
- 0xA8020011, // 0005 EXBLK 0 #0018
- 0x5C100600, // 0006 MOVE R4 R3
- 0x7C100000, // 0007 CALL R4 0
- 0x8C140901, // 0008 GETMET R5 R4 K1
- 0x7C140200, // 0009 CALL R5 1
- 0x78060002, // 000A JMPF R1 #000E
- 0x1C180B02, // 000B EQ R6 R5 K2
- 0x781A0000, // 000C JMPF R6 #000E
- 0x7001FFF7, // 000D JMP #0006
- 0x8C180503, // 000E GETMET R6 R2 K3
- 0x5C200A00, // 000F MOVE R8 R5
- 0x7C180400, // 0010 CALL R6 2
- 0x4C1C0000, // 0011 LDNIL R7
- 0x1C180C07, // 0012 EQ R6 R6 R7
- 0x781A0002, // 0013 JMPF R6 #0017
- 0x8C180504, // 0014 GETMET R6 R2 K4
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x7C180400, // 0016 CALL R6 2
- 0x7001FFED, // 0017 JMP #0006
- 0x580C0005, // 0018 LDCONST R3 K5
- 0xAC0C0200, // 0019 CATCH R3 1 0
- 0xB0080000, // 001A RAISE 2 R0 R0
- 0x80040400, // 001B RET 1 R2
+ ( &(const binstruction[73]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x88140302, // 0002 GETMBR R5 R1 K2
+ 0x50180000, // 0003 LDBOOL R6 0 0
+ 0x501C0000, // 0004 LDBOOL R7 0 0
+ 0x50200000, // 0005 LDBOOL R8 0 0
+ 0x88240300, // 0006 GETMBR R9 R1 K0
+ 0x4C280000, // 0007 LDNIL R10
+ 0x2024120A, // 0008 NE R9 R9 R10
+ 0x78260007, // 0009 JMPF R9 #0012
+ 0x88240301, // 000A GETMBR R9 R1 K1
+ 0x4C280000, // 000B LDNIL R10
+ 0x2024120A, // 000C NE R9 R9 R10
+ 0x78260003, // 000D JMPF R9 #0012
+ 0x88240302, // 000E GETMBR R9 R1 K2
+ 0x4C280000, // 000F LDNIL R10
+ 0x2024120A, // 0010 NE R9 R9 R10
+ 0x74260000, // 0011 JMPT R9 #0013
+ 0x50240001, // 0012 LDBOOL R9 0 1
+ 0x50240200, // 0013 LDBOOL R9 1 0
+ 0xB82A0600, // 0014 GETNGBL R10 K3
+ 0x8C281504, // 0015 GETMET R10 R10 K4
+ 0x5C300000, // 0016 MOVE R12 R0
+ 0x7C280400, // 0017 CALL R10 2
+ 0x8C2C1505, // 0018 GETMET R11 R10 K5
+ 0x5C340200, // 0019 MOVE R13 R1
+ 0x4C380000, // 001A LDNIL R14
+ 0x7C2C0600, // 001B CALL R11 3
+ 0x4C2C0000, // 001C LDNIL R11
+ 0x8C301506, // 001D GETMET R12 R10 K6
+ 0x7C300200, // 001E CALL R12 1
+ 0x5C2C1800, // 001F MOVE R11 R12
+ 0x4C340000, // 0020 LDNIL R13
+ 0x2030180D, // 0021 NE R12 R12 R13
+ 0x78320009, // 0022 JMPF R12 #002D
+ 0x5C300400, // 0023 MOVE R12 R2
+ 0x8C341507, // 0024 GETMET R13 R10 K7
+ 0x7C340200, // 0025 CALL R13 1
+ 0x5C381600, // 0026 MOVE R14 R11
+ 0x5C3C1200, // 0027 MOVE R15 R9
+ 0x7C300600, // 0028 CALL R12 3
+ 0x78260001, // 0029 JMPF R9 #002C
+ 0x78320000, // 002A JMPF R12 #002C
+ 0x80001A00, // 002B RET 0
+ 0x7001FFEF, // 002C JMP #001D
+ 0x78260019, // 002D JMPF R9 #0048
+ 0x88301508, // 002E GETMBR R12 R10 K8
+ 0x74320003, // 002F JMPT R12 #0034
+ 0xB8320600, // 0030 GETNGBL R12 K3
+ 0x8830190A, // 0031 GETMBR R12 R12 K10
+ 0x9006120C, // 0032 SETMBR R1 K9 R12
+ 0x7002000E, // 0033 JMP #0043
+ 0x8830150B, // 0034 GETMBR R12 R10 K11
+ 0x74320003, // 0035 JMPT R12 #003A
+ 0xB8320600, // 0036 GETNGBL R12 K3
+ 0x8830190C, // 0037 GETMBR R12 R12 K12
+ 0x9006120C, // 0038 SETMBR R1 K9 R12
+ 0x70020008, // 0039 JMP #0043
+ 0x8830150D, // 003A GETMBR R12 R10 K13
+ 0x74320003, // 003B JMPT R12 #0040
+ 0xB8320600, // 003C GETNGBL R12 K3
+ 0x8830190E, // 003D GETMBR R12 R12 K14
+ 0x9006120C, // 003E SETMBR R1 K9 R12
+ 0x70020002, // 003F JMP #0043
+ 0xB8320600, // 0040 GETNGBL R12 K3
+ 0x8830190F, // 0041 GETMBR R12 R12 K15
+ 0x9006120C, // 0042 SETMBR R1 K9 R12
+ 0x5C300400, // 0043 MOVE R12 R2
+ 0x4C340000, // 0044 LDNIL R13
+ 0x5C380200, // 0045 MOVE R14 R1
+ 0x503C0200, // 0046 LDBOOL R15 1 0
+ 0x7C300600, // 0047 CALL R12 3
+ 0x80000000, // 0048 RET 0
})
)
);
@@ -4347,10 +946,10 @@ be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
/********************************************************************
-** Solidified function: every_second
+** Solidified function: every_250ms
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_second, /* name */
+be_local_closure(class_Matter_Device_every_250ms, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -4361,33 +960,33 @@ be_local_closure(class_Matter_Device_every_second, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(every_second),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(commissioning_open),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(every_250ms),
+ /* K2 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_const_int(1),
}),
- be_str_weak(every_second),
+ be_str_weak(every_250ms),
&be_const_str_solidified,
( &(const binstruction[18]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C040301, // 0004 GETMET R1 R1 K1
- 0x7C040200, // 0005 CALL R1 1
- 0x88040103, // 0006 GETMBR R1 R0 K3
- 0x4C080000, // 0007 LDNIL R2
- 0x20040202, // 0008 NE R1 R1 R2
- 0x78060006, // 0009 JMPF R1 #0011
- 0xB8060800, // 000A GETNGBL R1 K4
- 0x8C040305, // 000B GETMET R1 R1 K5
- 0x880C0103, // 000C GETMBR R3 R0 K3
- 0x7C040400, // 000D CALL R1 2
- 0x78060001, // 000E JMPF R1 #0011
- 0x4C040000, // 000F LDNIL R1
- 0x90020601, // 0010 SETMBR R0 K3 R1
+ 0x8C040102, // 0003 GETMET R1 R0 K2
+ 0x7C040200, // 0004 CALL R1 1
+ 0x58040003, // 0005 LDCONST R1 K3
+ 0x6008000C, // 0006 GETGBL R2 G12
+ 0x880C0104, // 0007 GETMBR R3 R0 K4
+ 0x7C080200, // 0008 CALL R2 1
+ 0x14080202, // 0009 LT R2 R1 R2
+ 0x780A0005, // 000A JMPF R2 #0011
+ 0x88080104, // 000B GETMBR R2 R0 K4
+ 0x94080401, // 000C GETIDX R2 R2 R1
+ 0x8C080501, // 000D GETMET R2 R2 K1
+ 0x7C080200, // 000E CALL R2 1
+ 0x00040305, // 000F ADD R1 R1 K5
+ 0x7001FFF4, // 0010 JMP #0006
0x80000000, // 0011 RET 0
})
)
@@ -4396,121 +995,454 @@ be_local_closure(class_Matter_Device_every_second, /* name */
/********************************************************************
-** Solidified function: clean_remotes
+** Solidified function: invoke_request
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_clean_remotes, /* name */
+be_local_closure(class_Matter_Device_invoke_request, /* name */
be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
+ 12, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(introspect),
- /* K1 */ be_nested_str_weak(http_remotes),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_nested_str_weak(get),
- /* K6 */ be_nested_str_weak(http_remote),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(keys),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
- /* K13 */ be_nested_str_weak(addr),
- /* K14 */ be_const_int(3),
- /* K15 */ be_nested_str_weak(close),
- /* K16 */ be_nested_str_weak(remove),
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(invoke_request),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(status),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
}),
- be_str_weak(clean_remotes),
+ be_str_weak(invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[80]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x780A004B, // 0002 JMPF R2 #004F
- 0x60080013, // 0003 GETGBL R2 G19
- 0x7C080000, // 0004 CALL R2 0
- 0x600C0010, // 0005 GETGBL R3 G16
- 0x88100101, // 0006 GETMBR R4 R0 K1
+ ( &(const binstruction[24]) { /* code */
+ 0x58100000, // 0000 LDCONST R4 K0
+ 0x88140701, // 0001 GETMBR R5 R3 K1
+ 0x6018000C, // 0002 GETGBL R6 G12
+ 0x881C0102, // 0003 GETMBR R7 R0 K2
+ 0x7C180200, // 0004 CALL R6 1
+ 0x14180806, // 0005 LT R6 R4 R6
+ 0x781A000C, // 0006 JMPF R6 #0014
+ 0x88180102, // 0007 GETMBR R6 R0 K2
+ 0x94180C04, // 0008 GETIDX R6 R6 R4
+ 0x881C0D01, // 0009 GETMBR R7 R6 K1
+ 0x1C1C0E05, // 000A EQ R7 R7 R5
+ 0x781E0005, // 000B JMPF R7 #0012
+ 0x8C1C0D03, // 000C GETMET R7 R6 K3
+ 0x5C240200, // 000D MOVE R9 R1
+ 0x5C280400, // 000E MOVE R10 R2
+ 0x5C2C0600, // 000F MOVE R11 R3
+ 0x7C1C0800, // 0010 CALL R7 4
+ 0x80040E00, // 0011 RET 1 R7
+ 0x00100904, // 0012 ADD R4 R4 K4
+ 0x7001FFED, // 0013 JMP #0002
+ 0xB81A0C00, // 0014 GETNGBL R6 K6
+ 0x88180D07, // 0015 GETMBR R6 R6 K7
+ 0x900E0A06, // 0016 SETMBR R3 K5 R6
+ 0x80000000, // 0017 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: k2l
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_k2l, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(0),
+ }),
+ be_str_weak(k2l),
+ &be_const_str_solidified,
+ ( &(const binstruction[50]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020005, // 000B EXBLK 0 #0012
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x7C140400, // 0010 CALL R5 2
+ 0x7001FFF9, // 0011 JMP #000C
+ 0x580C0003, // 0012 LDCONST R3 K3
+ 0xAC0C0200, // 0013 CATCH R3 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x600C0010, // 0015 GETGBL R3 G16
+ 0x6010000C, // 0016 GETGBL R4 G12
+ 0x5C140400, // 0017 MOVE R5 R2
+ 0x7C100200, // 0018 CALL R4 1
+ 0x04100904, // 0019 SUB R4 R4 K4
+ 0x40120804, // 001A CONNECT R4 K4 R4
+ 0x7C0C0200, // 001B CALL R3 1
+ 0xA8020010, // 001C EXBLK 0 #002E
+ 0x5C100600, // 001D MOVE R4 R3
+ 0x7C100000, // 001E CALL R4 0
+ 0x94140404, // 001F GETIDX R5 R2 R4
+ 0x5C180800, // 0020 MOVE R6 R4
+ 0x241C0D05, // 0021 GT R7 R6 K5
+ 0x781E0008, // 0022 JMPF R7 #002C
+ 0x041C0D04, // 0023 SUB R7 R6 K4
+ 0x941C0407, // 0024 GETIDX R7 R2 R7
+ 0x241C0E05, // 0025 GT R7 R7 R5
+ 0x781E0004, // 0026 JMPF R7 #002C
+ 0x041C0D04, // 0027 SUB R7 R6 K4
+ 0x941C0407, // 0028 GETIDX R7 R2 R7
+ 0x98080C07, // 0029 SETIDX R2 R6 R7
+ 0x04180D04, // 002A SUB R6 R6 K4
+ 0x7001FFF4, // 002B JMP #0021
+ 0x98080C05, // 002C SETIDX R2 R6 R5
+ 0x7001FFEE, // 002D JMP #001D
+ 0x580C0003, // 002E LDCONST R3 K3
+ 0xAC0C0200, // 002F CATCH R3 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0x80040400, // 0031 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _instantiate_plugins_from_config
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name */
+ be_nested_proto(
+ 17, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(k2l_num),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Plugin_Root),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
+ /* K10 */ be_nested_str_weak(root),
+ /* K11 */ be_nested_str_weak(),
+ /* K12 */ be_nested_str_weak(Plugin_Aggregator),
+ /* K13 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K14 */ be_nested_str_weak(aggregator),
+ /* K15 */ be_nested_str_weak(find),
+ /* K16 */ be_nested_str_weak(type),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
+ /* K18 */ be_const_int(3),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
+ /* K20 */ be_nested_str_weak(plugins_classes),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K22 */ be_nested_str_weak(_X27_X20skipping),
+ /* K23 */ be_nested_str_weak(conf_to_log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_nested_str_weak(stop_iteration),
+ /* K27 */ be_nested_str_weak(tasmota),
+ /* K28 */ be_nested_str_weak(publish_result),
+ /* K29 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Initialized_X22_X3A1_X7D_X7D),
+ /* K30 */ be_nested_str_weak(Matter),
+ }),
+ be_str_weak(_instantiate_plugins_from_config),
+ &be_const_str_solidified,
+ ( &(const binstruction[146]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x880C0101, // 0003 GETMBR R3 R0 K1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0xB8160600, // 0005 GETNGBL R5 K3
+ 0x8C140B04, // 0006 GETMET R5 R5 K4
+ 0x5C1C0000, // 0007 MOVE R7 R0
+ 0x58200005, // 0008 LDCONST R8 K5
+ 0x60240013, // 0009 GETGBL R9 G19
+ 0x7C240000, // 000A CALL R9 0
+ 0x7C140800, // 000B CALL R5 4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0xB80E0C00, // 000D GETNGBL R3 K6
+ 0x58100007, // 000E LDCONST R4 K7
+ 0x58140008, // 000F LDCONST R5 K8
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0xB80E0C00, // 0011 GETNGBL R3 K6
+ 0x60100018, // 0012 GETGBL R4 G24
+ 0x58140009, // 0013 LDCONST R5 K9
+ 0x58180005, // 0014 LDCONST R6 K5
+ 0x581C000A, // 0015 LDCONST R7 K10
+ 0x5820000B, // 0016 LDCONST R8 K11
+ 0x7C100800, // 0017 CALL R4 4
+ 0x58140008, // 0018 LDCONST R5 K8
+ 0x7C0C0400, // 0019 CALL R3 2
+ 0x880C0101, // 001A GETMBR R3 R0 K1
+ 0x8C0C0702, // 001B GETMET R3 R3 K2
+ 0xB8160600, // 001C GETNGBL R5 K3
+ 0x8C140B0C, // 001D GETMET R5 R5 K12
+ 0x5C1C0000, // 001E MOVE R7 R0
+ 0xB8220600, // 001F GETNGBL R8 K3
+ 0x8820110D, // 0020 GETMBR R8 R8 K13
+ 0x60240013, // 0021 GETGBL R9 G19
+ 0x7C240000, // 0022 CALL R9 0
+ 0x7C140800, // 0023 CALL R5 4
+ 0x7C0C0400, // 0024 CALL R3 2
+ 0xB80E0C00, // 0025 GETNGBL R3 K6
+ 0x60100018, // 0026 GETGBL R4 G24
+ 0x58140009, // 0027 LDCONST R5 K9
+ 0xB81A0600, // 0028 GETNGBL R6 K3
+ 0x88180D0D, // 0029 GETMBR R6 R6 K13
+ 0x581C000E, // 002A LDCONST R7 K14
+ 0x5820000B, // 002B LDCONST R8 K11
+ 0x7C100800, // 002C CALL R4 4
+ 0x58140008, // 002D LDCONST R5 K8
+ 0x7C0C0400, // 002E CALL R3 2
+ 0x600C0010, // 002F GETGBL R3 G16
+ 0x5C100400, // 0030 MOVE R4 R2
+ 0x7C0C0200, // 0031 CALL R3 1
+ 0xA8020055, // 0032 EXBLK 0 #0089
+ 0x5C100600, // 0033 MOVE R4 R3
+ 0x7C100000, // 0034 CALL R4 0
+ 0x1C140905, // 0035 EQ R5 R4 K5
+ 0x78160000, // 0036 JMPF R5 #0038
+ 0x7001FFFA, // 0037 JMP #0033
+ 0xA802003E, // 0038 EXBLK 0 #0078
+ 0x60140008, // 0039 GETGBL R5 G8
+ 0x5C180800, // 003A MOVE R6 R4
+ 0x7C140200, // 003B CALL R5 1
+ 0x94140205, // 003C GETIDX R5 R1 R5
+ 0x8C180B0F, // 003D GETMET R6 R5 K15
+ 0x58200010, // 003E LDCONST R8 K16
+ 0x7C180400, // 003F CALL R6 2
+ 0x4C1C0000, // 0040 LDNIL R7
+ 0x1C1C0C07, // 0041 EQ R7 R6 R7
+ 0x781E0005, // 0042 JMPF R7 #0049
+ 0xB81E0C00, // 0043 GETNGBL R7 K6
+ 0x58200011, // 0044 LDCONST R8 K17
+ 0x58240012, // 0045 LDCONST R9 K18
+ 0x7C1C0400, // 0046 CALL R7 2
+ 0xA8040001, // 0047 EXBLK 1 1
+ 0x7001FFE9, // 0048 JMP #0033
+ 0x1C1C0D0A, // 0049 EQ R7 R6 K10
+ 0x781E0005, // 004A JMPF R7 #0051
+ 0xB81E0C00, // 004B GETNGBL R7 K6
+ 0x58200013, // 004C LDCONST R8 K19
+ 0x58240012, // 004D LDCONST R9 K18
+ 0x7C1C0400, // 004E CALL R7 2
+ 0xA8040001, // 004F EXBLK 1 1
+ 0x7001FFE1, // 0050 JMP #0033
+ 0x881C0114, // 0051 GETMBR R7 R0 K20
+ 0x8C1C0F0F, // 0052 GETMET R7 R7 K15
+ 0x5C240C00, // 0053 MOVE R9 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x4C200000, // 0055 LDNIL R8
+ 0x1C200E08, // 0056 EQ R8 R7 R8
+ 0x78220009, // 0057 JMPF R8 #0062
+ 0xB8220C00, // 0058 GETNGBL R8 K6
+ 0x60240008, // 0059 GETGBL R9 G8
+ 0x5C280C00, // 005A MOVE R10 R6
+ 0x7C240200, // 005B CALL R9 1
+ 0x00262A09, // 005C ADD R9 K21 R9
+ 0x00241316, // 005D ADD R9 R9 K22
+ 0x58280008, // 005E LDCONST R10 K8
+ 0x7C200400, // 005F CALL R8 2
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7001FFD0, // 0061 JMP #0033
+ 0x5C200E00, // 0062 MOVE R8 R7
+ 0x5C240000, // 0063 MOVE R9 R0
+ 0x5C280800, // 0064 MOVE R10 R4
+ 0x5C2C0A00, // 0065 MOVE R11 R5
+ 0x7C200600, // 0066 CALL R8 3
+ 0x88240101, // 0067 GETMBR R9 R0 K1
+ 0x8C241302, // 0068 GETMET R9 R9 K2
+ 0x5C2C1000, // 0069 MOVE R11 R8
+ 0x7C240400, // 006A CALL R9 2
+ 0xB8260C00, // 006B GETNGBL R9 K6
+ 0x60280018, // 006C GETGBL R10 G24
+ 0x582C0009, // 006D LDCONST R11 K9
+ 0x5C300800, // 006E MOVE R12 R4
+ 0x5C340C00, // 006F MOVE R13 R6
+ 0x8C380117, // 0070 GETMET R14 R0 K23
+ 0x5C400A00, // 0071 MOVE R16 R5
+ 0x7C380400, // 0072 CALL R14 2
+ 0x7C280800, // 0073 CALL R10 4
+ 0x582C0008, // 0074 LDCONST R11 K8
+ 0x7C240400, // 0075 CALL R9 2
+ 0xA8040001, // 0076 EXBLK 1 1
+ 0x7002000F, // 0077 JMP #0088
+ 0xAC140002, // 0078 CATCH R5 0 2
+ 0x7002000C, // 0079 JMP #0087
+ 0xB81E0C00, // 007A GETNGBL R7 K6
+ 0x60200008, // 007B GETGBL R8 G8
+ 0x5C240A00, // 007C MOVE R9 R5
+ 0x7C200200, // 007D CALL R8 1
+ 0x00223008, // 007E ADD R8 K24 R8
+ 0x00201119, // 007F ADD R8 R8 K25
+ 0x60240008, // 0080 GETGBL R9 G8
+ 0x5C280C00, // 0081 MOVE R10 R6
+ 0x7C240200, // 0082 CALL R9 1
+ 0x00201009, // 0083 ADD R8 R8 R9
+ 0x58240008, // 0084 LDCONST R9 K8
+ 0x7C1C0400, // 0085 CALL R7 2
+ 0x70020000, // 0086 JMP #0088
+ 0xB0080000, // 0087 RAISE 2 R0 R0
+ 0x7001FFA9, // 0088 JMP #0033
+ 0x580C001A, // 0089 LDCONST R3 K26
+ 0xAC0C0200, // 008A CATCH R3 1 0
+ 0xB0080000, // 008B RAISE 2 R0 R0
+ 0xB80E3600, // 008C GETNGBL R3 K27
+ 0x8C0C071C, // 008D GETMET R3 R3 K28
+ 0x5814001D, // 008E LDCONST R5 K29
+ 0x5818001E, // 008F LDCONST R6 K30
+ 0x7C0C0600, // 0090 CALL R3 3
+ 0x80000000, // 0091 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: add_read_sensors_schedule
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(jitter),
+ }),
+ be_str_weak(add_read_sensors_schedule),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x1C080403, // 0002 EQ R2 R2 R3
+ 0x740A0002, // 0003 JMPT R2 #0007
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x24080401, // 0005 GT R2 R2 R1
+ 0x780A0005, // 0006 JMPF R2 #000D
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0xB80A0400, // 0008 GETNGBL R2 K2
+ 0x8C080503, // 0009 GETMET R2 R2 K3
+ 0x5C100200, // 000A MOVE R4 R1
+ 0x7C080400, // 000B CALL R2 2
+ 0x90020202, // 000C SETMBR R0 K1 R2
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: remove_fabric
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_remove_fabric, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(message_handler),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(subs_shop),
+ /* K10 */ be_nested_str_weak(remove_by_fabric),
+ /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(remove_fabric),
+ /* K14 */ be_nested_str_weak(save_fabrics),
+ }),
+ be_str_weak(remove_fabric),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0018, // 0002 JMPF R2 #001C
+ 0xB80A0000, // 0003 GETNGBL R2 K0
+ 0x8C0C0302, // 0004 GETMET R3 R1 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
0x7C0C0200, // 0007 CALL R3 1
- 0xA8020003, // 0008 EXBLK 0 #000D
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x98080902, // 000B SETIDX R2 R4 K2
- 0x7001FFFB, // 000C JMP #0009
- 0x580C0003, // 000D LDCONST R3 K3
- 0xAC0C0200, // 000E CATCH R3 1 0
- 0xB0080000, // 000F RAISE 2 R0 R0
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100104, // 0011 GETMBR R4 R0 K4
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA802000F, // 0013 EXBLK 0 #0024
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x8C140305, // 0016 GETMET R5 R1 K5
- 0x5C1C0800, // 0017 MOVE R7 R4
- 0x58200006, // 0018 LDCONST R8 K6
- 0x7C140600, // 0019 CALL R5 3
- 0x4C180000, // 001A LDNIL R6
- 0x20180A06, // 001B NE R6 R5 R6
- 0x781A0005, // 001C JMPF R6 #0023
- 0x8C180507, // 001D GETMET R6 R2 K7
- 0x5C200A00, // 001E MOVE R8 R5
- 0x58240002, // 001F LDCONST R9 K2
- 0x7C180600, // 0020 CALL R6 3
- 0x00180D08, // 0021 ADD R6 R6 K8
- 0x98080A06, // 0022 SETIDX R2 R5 R6
- 0x7001FFEF, // 0023 JMP #0014
- 0x580C0003, // 0024 LDCONST R3 K3
- 0xAC0C0200, // 0025 CATCH R3 1 0
- 0xB0080000, // 0026 RAISE 2 R0 R0
- 0x600C0012, // 0027 GETGBL R3 G18
- 0x7C0C0000, // 0028 CALL R3 0
- 0x60100010, // 0029 GETGBL R4 G16
- 0x8C140509, // 002A GETMET R5 R2 K9
- 0x7C140200, // 002B CALL R5 1
- 0x7C100200, // 002C CALL R4 1
- 0xA8020008, // 002D EXBLK 0 #0037
- 0x5C140800, // 002E MOVE R5 R4
- 0x7C140000, // 002F CALL R5 0
- 0x94180405, // 0030 GETIDX R6 R2 R5
- 0x1C180D02, // 0031 EQ R6 R6 K2
- 0x781A0002, // 0032 JMPF R6 #0036
- 0x8C18070A, // 0033 GETMET R6 R3 K10
- 0x5C200A00, // 0034 MOVE R8 R5
- 0x7C180400, // 0035 CALL R6 2
- 0x7001FFF6, // 0036 JMP #002E
- 0x58100003, // 0037 LDCONST R4 K3
- 0xAC100200, // 0038 CATCH R4 1 0
- 0xB0080000, // 0039 RAISE 2 R0 R0
- 0x60100010, // 003A GETGBL R4 G16
- 0x5C140600, // 003B MOVE R5 R3
- 0x7C100200, // 003C CALL R4 1
- 0xA802000D, // 003D EXBLK 0 #004C
- 0x5C140800, // 003E MOVE R5 R4
- 0x7C140000, // 003F CALL R5 0
- 0xB81A1600, // 0040 GETNGBL R6 K11
- 0x881C0B0D, // 0041 GETMBR R7 R5 K13
- 0x001E1807, // 0042 ADD R7 K12 R7
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x7C180400, // 0044 CALL R6 2
- 0x8C180B0F, // 0045 GETMET R6 R5 K15
- 0x7C180200, // 0046 CALL R6 1
- 0x88180101, // 0047 GETMBR R6 R0 K1
- 0x8C180D10, // 0048 GETMET R6 R6 K16
- 0x88200B0D, // 0049 GETMBR R8 R5 K13
- 0x7C180400, // 004A CALL R6 2
- 0x7001FFF1, // 004B JMP #003E
- 0x58100003, // 004C LDCONST R4 K3
- 0xAC100200, // 004D CATCH R4 1 0
- 0xB0080000, // 004E RAISE 2 R0 R0
- 0x80000000, // 004F RET 0
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C0C0705, // 000A GETMET R3 R3 K5
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x000E0203, // 000C ADD R3 K1 R3
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x88080508, // 0010 GETMBR R2 R2 K8
+ 0x88080509, // 0011 GETMBR R2 R2 K9
+ 0x8C08050A, // 0012 GETMET R2 R2 K10
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x8C08010B, // 0015 GETMET R2 R0 K11
+ 0x5C100200, // 0016 MOVE R4 R1
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8808010C, // 0018 GETMBR R2 R0 K12
+ 0x8C08050D, // 0019 GETMET R2 R2 K13
+ 0x5C100200, // 001A MOVE R4 R1
+ 0x7C080400, // 001B CALL R2 2
+ 0x8808010C, // 001C GETMBR R2 R0 K12
+ 0x8C08050E, // 001D GETMET R2 R2 K14
+ 0x7C080200, // 001E CALL R2 1
+ 0x80000000, // 001F RET 0
})
)
);
@@ -4712,10 +1644,244 @@ be_local_closure(class_Matter_Device_load_param, /* name */
/********************************************************************
-** Solidified function: received_ack
+** Solidified function: compute_qrcode_content
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_received_ack, /* name */
+be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(resize),
+ /* K1 */ be_nested_str_weak(setbits),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(vendorid),
+ /* K4 */ be_nested_str_weak(productid),
+ /* K5 */ be_nested_str_weak(root_discriminator),
+ /* K6 */ be_nested_str_weak(root_passcode),
+ /* K7 */ be_const_int(134217727),
+ /* K8 */ be_nested_str_weak(MT_X3A),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(Base38),
+ /* K11 */ be_nested_str_weak(encode),
+ }),
+ be_str_weak(compute_qrcode_content),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x60040015, // 0000 GETGBL R1 G21
+ 0x7C040000, // 0001 CALL R1 0
+ 0x8C040300, // 0002 GETMET R1 R1 K0
+ 0x540E000A, // 0003 LDINT R3 11
+ 0x7C040400, // 0004 CALL R1 2
+ 0x8C080301, // 0005 GETMET R2 R1 K1
+ 0x58100002, // 0006 LDCONST R4 K2
+ 0x5416000F, // 0007 LDINT R5 16
+ 0x88180103, // 0008 GETMBR R6 R0 K3
+ 0x7C080800, // 0009 CALL R2 4
+ 0x8C080301, // 000A GETMET R2 R1 K1
+ 0x54120012, // 000B LDINT R4 19
+ 0x5416000F, // 000C LDINT R5 16
+ 0x88180104, // 000D GETMBR R6 R0 K4
+ 0x7C080800, // 000E CALL R2 4
+ 0x8C080301, // 000F GETMET R2 R1 K1
+ 0x54120024, // 0010 LDINT R4 37
+ 0x54160007, // 0011 LDINT R5 8
+ 0x541A0003, // 0012 LDINT R6 4
+ 0x7C080800, // 0013 CALL R2 4
+ 0x8C080301, // 0014 GETMET R2 R1 K1
+ 0x5412002C, // 0015 LDINT R4 45
+ 0x5416000B, // 0016 LDINT R5 12
+ 0x88180105, // 0017 GETMBR R6 R0 K5
+ 0x541E0FFE, // 0018 LDINT R7 4095
+ 0x2C180C07, // 0019 AND R6 R6 R7
+ 0x7C080800, // 001A CALL R2 4
+ 0x8C080301, // 001B GETMET R2 R1 K1
+ 0x54120038, // 001C LDINT R4 57
+ 0x5416001A, // 001D LDINT R5 27
+ 0x88180106, // 001E GETMBR R6 R0 K6
+ 0x2C180D07, // 001F AND R6 R6 K7
+ 0x7C080800, // 0020 CALL R2 4
+ 0xB80A1200, // 0021 GETNGBL R2 K9
+ 0x8808050A, // 0022 GETMBR R2 R2 K10
+ 0x8C08050B, // 0023 GETMET R2 R2 K11
+ 0x5C100200, // 0024 MOVE R4 R1
+ 0x7C080400, // 0025 CALL R2 2
+ 0x000A1002, // 0026 ADD R2 K8 R2
+ 0x80040400, // 0027 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_attribute_updated, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(Path),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(attribute),
+ /* K5 */ be_nested_str_weak(message_handler),
+ /* K6 */ be_nested_str_weak(im),
+ /* K7 */ be_nested_str_weak(subs_shop),
+ /* K8 */ be_nested_str_weak(attribute_updated_ctx),
+ }),
+ be_str_weak(attribute_updated),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x1C140805, // 0001 EQ R5 R4 R5
+ 0x78160000, // 0002 JMPF R5 #0004
+ 0x50100000, // 0003 LDBOOL R4 0 0
+ 0xB8160000, // 0004 GETNGBL R5 K0
+ 0x8C140B01, // 0005 GETMET R5 R5 K1
+ 0x7C140200, // 0006 CALL R5 1
+ 0x90160401, // 0007 SETMBR R5 K2 R1
+ 0x90160602, // 0008 SETMBR R5 K3 R2
+ 0x90160803, // 0009 SETMBR R5 K4 R3
+ 0x88180105, // 000A GETMBR R6 R0 K5
+ 0x88180D06, // 000B GETMBR R6 R6 K6
+ 0x88180D07, // 000C GETMBR R6 R6 K7
+ 0x8C180D08, // 000D GETMET R6 R6 K8
+ 0x5C200A00, // 000E MOVE R8 R5
+ 0x5C240800, // 000F MOVE R9 R4
+ 0x7C180600, // 0010 CALL R6 3
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_http_remote
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_http_remote, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(get_timeout),
+ /* K3 */ be_nested_str_weak(set_timeout),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(HTTP_remote),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(set_info),
+ }),
+ be_str_weak(register_http_remote),
+ &be_const_str_solidified,
+ ( &(const binstruction[42]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x1C0C0604, // 0002 EQ R3 R3 R4
+ 0x780E0002, // 0003 JMPF R3 #0007
+ 0x600C0013, // 0004 GETGBL R3 G19
+ 0x7C0C0000, // 0005 CALL R3 0
+ 0x90020003, // 0006 SETMBR R0 K0 R3
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x88100100, // 0008 GETMBR R4 R0 K0
+ 0x8C100901, // 0009 GETMET R4 R4 K1
+ 0x5C180200, // 000A MOVE R6 R1
+ 0x7C100400, // 000B CALL R4 2
+ 0x78120009, // 000C JMPF R4 #0017
+ 0x88100100, // 000D GETMBR R4 R0 K0
+ 0x940C0801, // 000E GETIDX R3 R4 R1
+ 0x8C140702, // 000F GETMET R5 R3 K2
+ 0x7C140200, // 0010 CALL R5 1
+ 0x14140405, // 0011 LT R5 R2 R5
+ 0x78160002, // 0012 JMPF R5 #0016
+ 0x8C140703, // 0013 GETMET R5 R3 K3
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x7C140400, // 0015 CALL R5 2
+ 0x70020011, // 0016 JMP #0029
+ 0xB8120800, // 0017 GETNGBL R4 K4
+ 0x8C100905, // 0018 GETMET R4 R4 K5
+ 0x5C180000, // 0019 MOVE R6 R0
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x5C200400, // 001B MOVE R8 R2
+ 0x7C100800, // 001C CALL R4 4
+ 0x5C0C0800, // 001D MOVE R3 R4
+ 0x88100106, // 001E GETMBR R4 R0 K6
+ 0x8C100901, // 001F GETMET R4 R4 K1
+ 0x5C180200, // 0020 MOVE R6 R1
+ 0x7C100400, // 0021 CALL R4 2
+ 0x78120003, // 0022 JMPF R4 #0027
+ 0x8C100707, // 0023 GETMET R4 R3 K7
+ 0x88180106, // 0024 GETMBR R6 R0 K6
+ 0x94180C01, // 0025 GETIDX R6 R6 R1
+ 0x7C100400, // 0026 CALL R4 2
+ 0x88100100, // 0027 GETMBR R4 R0 K0
+ 0x98100203, // 0028 SETIDX R4 R1 R3
+ 0x80040600, // 0029 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ }),
+ be_str_weak(is_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_class_arg
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -4725,18 +1891,24 @@ be_local_closure(class_Matter_Device_received_ack, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(received_ack),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_nested_str_weak(),
}),
- be_str_weak(received_ack),
+ be_str_weak(get_plugin_class_arg),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100200, // 0002 MOVE R4 R1
0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
})
)
);
@@ -4744,12 +1916,12 @@ be_local_closure(class_Matter_Device_received_ack, /* name */
/********************************************************************
-** Solidified function: start_root_basic_commissioning
+** Solidified function: MtrInfo_one
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
+be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
be_nested_proto(
- 13, /* nstack */
+ 9, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -4757,68 +1929,37 @@ be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name *
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
- /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(compute_qrcode_content),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(publish_result),
- /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
- /* K9 */ be_nested_str_weak(Matter),
- /* K10 */ be_nested_str_weak(_compute_pbkdf),
- /* K11 */ be_nested_str_weak(root_passcode),
- /* K12 */ be_nested_str_weak(root_iterations),
- /* K13 */ be_nested_str_weak(root_salt),
- /* K14 */ be_nested_str_weak(start_basic_commissioning),
- /* K15 */ be_nested_str_weak(root_discriminator),
- /* K16 */ be_nested_str_weak(root_w0),
- /* K17 */ be_nested_str_weak(root_L),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K1 */ be_nested_str_weak(state_json),
+ /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(publish_result),
+ /* K5 */ be_nested_str_weak(),
}),
- be_str_weak(start_root_basic_commissioning),
+ be_str_weak(MtrInfo_one),
&be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x88040100, // 0003 GETMBR R1 R0 K0
- 0x8C080101, // 0004 GETMET R2 R0 K1
- 0x7C080200, // 0005 CALL R2 1
- 0xB80E0400, // 0006 GETNGBL R3 K2
- 0x60100018, // 0007 GETGBL R4 G24
- 0x58140003, // 0008 LDCONST R5 K3
- 0x5C180400, // 0009 MOVE R6 R2
- 0x7C100400, // 000A CALL R4 2
- 0x58140004, // 000B LDCONST R5 K4
- 0x7C0C0400, // 000C CALL R3 2
- 0x8C0C0105, // 000D GETMET R3 R0 K5
- 0x7C0C0200, // 000E CALL R3 1
- 0xB8120C00, // 000F GETNGBL R4 K6
- 0x8C100907, // 0010 GETMET R4 R4 K7
- 0x60180018, // 0011 GETGBL R6 G24
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x5C200400, // 0013 MOVE R8 R2
- 0x5C240600, // 0014 MOVE R9 R3
- 0x7C180600, // 0015 CALL R6 3
- 0x581C0009, // 0016 LDCONST R7 K9
- 0x7C100600, // 0017 CALL R4 3
- 0x8C10010A, // 0018 GETMET R4 R0 K10
- 0x8818010B, // 0019 GETMBR R6 R0 K11
- 0x881C010C, // 001A GETMBR R7 R0 K12
- 0x8820010D, // 001B GETMBR R8 R0 K13
- 0x7C100800, // 001C CALL R4 4
- 0x8C10010E, // 001D GETMET R4 R0 K14
- 0x5C180200, // 001E MOVE R6 R1
- 0x881C010C, // 001F GETMBR R7 R0 K12
- 0x8820010F, // 0020 GETMBR R8 R0 K15
- 0x8824010D, // 0021 GETMBR R9 R0 K13
- 0x88280110, // 0022 GETMBR R10 R0 K16
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x4C300000, // 0024 LDNIL R12
- 0x7C101000, // 0025 CALL R4 8
- 0x80000000, // 0026 RET 0
+ ( &(const binstruction[20]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0403, // 0004 EQ R3 R2 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80000600, // 0006 RET 0
+ 0x8C0C0501, // 0007 GETMET R3 R2 K1
+ 0x7C0C0200, // 0008 CALL R3 1
+ 0x780E0008, // 0009 JMPF R3 #0013
+ 0x60100018, // 000A GETGBL R4 G24
+ 0x58140002, // 000B LDCONST R5 K2
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x7C100400, // 000D CALL R4 2
+ 0xB8160600, // 000E GETNGBL R5 K3
+ 0x8C140B04, // 000F GETMET R5 R5 K4
+ 0x5C1C0800, // 0010 MOVE R7 R4
+ 0x58200005, // 0011 LDCONST R8 K5
+ 0x7C140600, // 0012 CALL R5 3
+ 0x80000000, // 0013 RET 0
})
)
);
@@ -4924,45 +2065,628 @@ be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
/********************************************************************
-** Solidified function: find_plugin_by_endpoint
+** Solidified function: resolve_attribute_read_solo
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
+be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K4 */ be_nested_str_weak(status),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K7 */ be_nested_str_weak(contains_cluster),
+ /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K9 */ be_nested_str_weak(contains_attribute),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ }),
+ be_str_weak(resolve_attribute_read_solo),
+ &be_const_str_solidified,
+ ( &(const binstruction[45]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0x88100302, // 0002 GETMBR R4 R1 K2
+ 0x4C140000, // 0003 LDNIL R5
+ 0x1C140405, // 0004 EQ R5 R2 R5
+ 0x74160005, // 0005 JMPT R5 #000C
+ 0x4C140000, // 0006 LDNIL R5
+ 0x1C140605, // 0007 EQ R5 R3 R5
+ 0x74160002, // 0008 JMPT R5 #000C
+ 0x4C140000, // 0009 LDNIL R5
+ 0x1C140805, // 000A EQ R5 R4 R5
+ 0x78160001, // 000B JMPF R5 #000E
+ 0x4C140000, // 000C LDNIL R5
+ 0x80040A00, // 000D RET 1 R5
+ 0x8C140103, // 000E GETMET R5 R0 K3
+ 0x5C1C0400, // 000F MOVE R7 R2
+ 0x7C140400, // 0010 CALL R5 2
+ 0x4C180000, // 0011 LDNIL R6
+ 0x1C180A06, // 0012 EQ R6 R5 R6
+ 0x781A0004, // 0013 JMPF R6 #0019
+ 0xB81A0A00, // 0014 GETNGBL R6 K5
+ 0x88180D06, // 0015 GETMBR R6 R6 K6
+ 0x90060806, // 0016 SETMBR R1 K4 R6
+ 0x4C180000, // 0017 LDNIL R6
+ 0x80040C00, // 0018 RET 1 R6
+ 0x8C180B07, // 0019 GETMET R6 R5 K7
+ 0x5C200600, // 001A MOVE R8 R3
+ 0x7C180400, // 001B CALL R6 2
+ 0x741A0004, // 001C JMPT R6 #0022
+ 0xB81A0A00, // 001D GETNGBL R6 K5
+ 0x88180D08, // 001E GETMBR R6 R6 K8
+ 0x90060806, // 001F SETMBR R1 K4 R6
+ 0x4C180000, // 0020 LDNIL R6
+ 0x80040C00, // 0021 RET 1 R6
+ 0x8C180B09, // 0022 GETMET R6 R5 K9
+ 0x5C200600, // 0023 MOVE R8 R3
+ 0x5C240800, // 0024 MOVE R9 R4
+ 0x7C180600, // 0025 CALL R6 3
+ 0x741A0004, // 0026 JMPT R6 #002C
+ 0xB81A0A00, // 0027 GETNGBL R6 K5
+ 0x88180D0A, // 0028 GETMBR R6 R6 K10
+ 0x90060806, // 0029 SETMBR R1 K4 R6
+ 0x4C180000, // 002A LDNIL R6
+ 0x80040C00, // 002B RET 1 R6
+ 0x80040A00, // 002C RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_root_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
+ /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
+ /* K4 */ be_const_int(2),
+ /* K5 */ be_nested_str_weak(compute_qrcode_content),
+ /* K6 */ be_nested_str_weak(tasmota),
+ /* K7 */ be_nested_str_weak(publish_result),
+ /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
+ /* K9 */ be_nested_str_weak(Matter),
+ /* K10 */ be_nested_str_weak(_compute_pbkdf),
+ /* K11 */ be_nested_str_weak(root_passcode),
+ /* K12 */ be_nested_str_weak(root_iterations),
+ /* K13 */ be_nested_str_weak(root_salt),
+ /* K14 */ be_nested_str_weak(start_basic_commissioning),
+ /* K15 */ be_nested_str_weak(root_discriminator),
+ /* K16 */ be_nested_str_weak(root_w0),
+ /* K17 */ be_nested_str_weak(root_L),
+ }),
+ be_str_weak(start_root_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[39]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x88040100, // 0003 GETMBR R1 R0 K0
+ 0x8C080101, // 0004 GETMET R2 R0 K1
+ 0x7C080200, // 0005 CALL R2 1
+ 0xB80E0400, // 0006 GETNGBL R3 K2
+ 0x60100018, // 0007 GETGBL R4 G24
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x5C180400, // 0009 MOVE R6 R2
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140004, // 000B LDCONST R5 K4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x8C0C0105, // 000D GETMET R3 R0 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0xB8120C00, // 000F GETNGBL R4 K6
+ 0x8C100907, // 0010 GETMET R4 R4 K7
+ 0x60180018, // 0011 GETGBL R6 G24
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x5C200400, // 0013 MOVE R8 R2
+ 0x5C240600, // 0014 MOVE R9 R3
+ 0x7C180600, // 0015 CALL R6 3
+ 0x581C0009, // 0016 LDCONST R7 K9
+ 0x7C100600, // 0017 CALL R4 3
+ 0x8C10010A, // 0018 GETMET R4 R0 K10
+ 0x8818010B, // 0019 GETMBR R6 R0 K11
+ 0x881C010C, // 001A GETMBR R7 R0 K12
+ 0x8820010D, // 001B GETMBR R8 R0 K13
+ 0x7C100800, // 001C CALL R4 4
+ 0x8C10010E, // 001D GETMET R4 R0 K14
+ 0x5C180200, // 001E MOVE R6 R1
+ 0x881C010C, // 001F GETMBR R7 R0 K12
+ 0x8820010F, // 0020 GETMBR R8 R0 K15
+ 0x8824010D, // 0021 GETMBR R9 R0 K13
+ 0x88280110, // 0022 GETMBR R10 R0 K16
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x4C300000, // 0024 LDNIL R12
+ 0x7C101000, // 0025 CALL R4 8
+ 0x80000000, // 0026 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete_deferred
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_commissioning_complete),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_commissioning_complete_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(started),
+ /* K1 */ be_nested_str_weak(autoconf_device),
+ /* K2 */ be_nested_str_weak(_start_udp),
+ /* K3 */ be_nested_str_weak(UDP_PORT),
+ /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ }),
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x80000200, // 0002 RET 0
+ 0x8C040101, // 0003 GETMET R1 R0 K1
+ 0x7C040200, // 0004 CALL R1 1
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x8C040104, // 0008 GETMET R1 R0 K4
+ 0x7C040200, // 0009 CALL R1 1
+ 0x50040200, // 000A LDBOOL R1 1 0
+ 0x90020001, // 000B SETMBR R0 K0 R1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_50ms
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_50ms, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_const_int(1),
+ }),
+ be_str_weak(every_50ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x00040301, // 0001 ADD R1 R1 K1
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _trigger_read_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(read_sensors),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
+ /* K7 */ be_nested_str_weak(load),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(plugins),
+ /* K10 */ be_nested_str_weak(parse_sensors),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
+ }),
+ be_str_weak(_trigger_read_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0200, // 0004 GETNGBL R3 K1
+ 0x8C0C0703, // 0005 GETMET R3 R3 K3
+ 0x58140004, // 0006 LDCONST R5 K4
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x780E0006, // 0008 JMPF R3 #0010
+ 0xB80E0A00, // 0009 GETNGBL R3 K5
+ 0x60100008, // 000A GETGBL R4 G8
+ 0x5C140400, // 000B MOVE R5 R2
+ 0x7C100200, // 000C CALL R4 1
+ 0x00120C04, // 000D ADD R4 K6 R4
+ 0x58140004, // 000E LDCONST R5 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x1C0C0403, // 0011 EQ R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x80000600, // 0013 RET 0
+ 0x8C0C0307, // 0014 GETMET R3 R1 K7
+ 0x5C140400, // 0015 MOVE R5 R2
+ 0x7C0C0400, // 0016 CALL R3 2
+ 0x4C100000, // 0017 LDNIL R4
+ 0x20100604, // 0018 NE R4 R3 R4
+ 0x7812000D, // 0019 JMPF R4 #0028
+ 0x58100008, // 001A LDCONST R4 K8
+ 0x6014000C, // 001B GETGBL R5 G12
+ 0x88180109, // 001C GETMBR R6 R0 K9
+ 0x7C140200, // 001D CALL R5 1
+ 0x14140805, // 001E LT R5 R4 R5
+ 0x78160006, // 001F JMPF R5 #0027
+ 0x88140109, // 0020 GETMBR R5 R0 K9
+ 0x94140A04, // 0021 GETIDX R5 R5 R4
+ 0x8C140B0A, // 0022 GETMET R5 R5 K10
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C140400, // 0024 CALL R5 2
+ 0x0010090B, // 0025 ADD R4 R4 K11
+ 0x7001FFF3, // 0026 JMP #001B
+ 0x70020006, // 0027 JMP #002F
+ 0xB8120A00, // 0028 GETNGBL R4 K5
+ 0x60140008, // 0029 GETGBL R5 G8
+ 0x5C180400, // 002A MOVE R6 R2
+ 0x7C140200, // 002B CALL R5 1
+ 0x00161805, // 002C ADD R5 K12 R5
+ 0x58180004, // 002D LDCONST R6 K4
+ 0x7C100400, // 002E CALL R4 2
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_PASE
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[19]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(mdns_pase_eth),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
+ /* K4 */ be_nested_str_weak(_matterc),
+ /* K5 */ be_nested_str_weak(_udp),
+ /* K6 */ be_nested_str_weak(commissioning_instance_eth),
+ /* K7 */ be_nested_str_weak(hostname_eth),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K10 */ be_nested_str_weak(eth),
+ /* K11 */ be_nested_str_weak(remove_service),
+ /* K12 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
+ /* K14 */ be_nested_str_weak(hostname_wifi),
+ /* K15 */ be_nested_str_weak(wifi),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K17 */ be_nested_str_weak(_X7C),
+ /* K18 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_remove_PASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x88080101, // 0002 GETMBR R2 R0 K1
+ 0x780A0019, // 0003 JMPF R2 #001E
+ 0xB80A0400, // 0004 GETNGBL R2 K2
+ 0x600C0018, // 0005 GETGBL R3 G24
+ 0x58100003, // 0006 LDCONST R4 K3
+ 0x58140004, // 0007 LDCONST R5 K4
+ 0x58180005, // 0008 LDCONST R6 K5
+ 0x881C0106, // 0009 GETMBR R7 R0 K6
+ 0x88200107, // 000A GETMBR R8 R0 K7
+ 0x7C0C0A00, // 000B CALL R3 5
+ 0x58100008, // 000C LDCONST R4 K8
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0400, // 000E GETNGBL R2 K2
+ 0x600C0018, // 000F GETGBL R3 G24
+ 0x58100009, // 0010 LDCONST R4 K9
+ 0x5814000A, // 0011 LDCONST R5 K10
+ 0x88180106, // 0012 GETMBR R6 R0 K6
+ 0x7C0C0600, // 0013 CALL R3 3
+ 0x58100008, // 0014 LDCONST R4 K8
+ 0x7C080400, // 0015 CALL R2 2
+ 0x50080000, // 0016 LDBOOL R2 0 0
+ 0x90020202, // 0017 SETMBR R0 K1 R2
+ 0x8C08030B, // 0018 GETMET R2 R1 K11
+ 0x58100004, // 0019 LDCONST R4 K4
+ 0x58140005, // 001A LDCONST R5 K5
+ 0x88180106, // 001B GETMBR R6 R0 K6
+ 0x881C0107, // 001C GETMBR R7 R0 K7
+ 0x7C080A00, // 001D CALL R2 5
+ 0x8808010C, // 001E GETMBR R2 R0 K12
+ 0x780A0019, // 001F JMPF R2 #003A
+ 0xB80A0400, // 0020 GETNGBL R2 K2
+ 0x600C0018, // 0021 GETGBL R3 G24
+ 0x58100003, // 0022 LDCONST R4 K3
+ 0x58140004, // 0023 LDCONST R5 K4
+ 0x58180005, // 0024 LDCONST R6 K5
+ 0x881C010D, // 0025 GETMBR R7 R0 K13
+ 0x8820010E, // 0026 GETMBR R8 R0 K14
+ 0x7C0C0A00, // 0027 CALL R3 5
+ 0x58100008, // 0028 LDCONST R4 K8
+ 0x7C080400, // 0029 CALL R2 2
+ 0xB80A0400, // 002A GETNGBL R2 K2
+ 0x600C0018, // 002B GETGBL R3 G24
+ 0x58100009, // 002C LDCONST R4 K9
+ 0x5814000F, // 002D LDCONST R5 K15
+ 0x8818010D, // 002E GETMBR R6 R0 K13
+ 0x7C0C0600, // 002F CALL R3 3
+ 0x58100008, // 0030 LDCONST R4 K8
+ 0x7C080400, // 0031 CALL R2 2
+ 0x50080000, // 0032 LDBOOL R2 0 0
+ 0x90021802, // 0033 SETMBR R0 K12 R2
+ 0x8C08030B, // 0034 GETMET R2 R1 K11
+ 0x58100004, // 0035 LDCONST R4 K4
+ 0x58140005, // 0036 LDCONST R5 K5
+ 0x8818010D, // 0037 GETMBR R6 R0 K13
+ 0x881C010E, // 0038 GETMBR R7 R0 K14
+ 0x7C080A00, // 0039 CALL R2 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC080002, // 003C CATCH R2 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8120400, // 003E GETNGBL R4 K2
+ 0x60140008, // 003F GETGBL R5 G8
+ 0x5C180400, // 0040 MOVE R6 R2
+ 0x7C140200, // 0041 CALL R5 1
+ 0x00162005, // 0042 ADD R5 K16 R5
+ 0x00140B11, // 0043 ADD R5 R5 K17
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x00140A06, // 0047 ADD R5 R5 R6
+ 0x58180012, // 0048 LDCONST R6 K18
+ 0x7C100400, // 0049 CALL R4 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_active_endpoints
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins),
+ /* K1 */ be_nested_str_weak(get_endpoint),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(get_active_endpoints),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x88100100, // 0003 GETMBR R4 R0 K0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0xA8020011, // 0005 EXBLK 0 #0018
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x7C100000, // 0007 CALL R4 0
+ 0x8C140901, // 0008 GETMET R5 R4 K1
+ 0x7C140200, // 0009 CALL R5 1
+ 0x78060002, // 000A JMPF R1 #000E
+ 0x1C180B02, // 000B EQ R6 R5 K2
+ 0x781A0000, // 000C JMPF R6 #000E
+ 0x7001FFF7, // 000D JMP #0006
+ 0x8C180503, // 000E GETMET R6 R2 K3
+ 0x5C200A00, // 000F MOVE R8 R5
+ 0x7C180400, // 0010 CALL R6 2
+ 0x4C1C0000, // 0011 LDNIL R7
+ 0x1C180C07, // 0012 EQ R6 R6 R7
+ 0x781A0002, // 0013 JMPF R6 #0017
+ 0x8C180504, // 0014 GETMET R6 R2 K4
+ 0x5C200A00, // 0015 MOVE R8 R5
+ 0x7C180400, // 0016 CALL R6 2
+ 0x7001FFED, // 0017 JMP #0006
+ 0x580C0005, // 0018 LDCONST R3 K5
+ 0xAC0C0200, // 0019 CATCH R3 1 0
+ 0xB0080000, // 001A RAISE 2 R0 R0
+ 0x80040400, // 001B RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_plugin_by_friendly_name
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_endpoint),
+ /* K2 */ be_nested_str_weak(get_name),
/* K3 */ be_const_int(1),
}),
- be_str_weak(find_plugin_by_endpoint),
+ be_str_weak(find_plugin_by_friendly_name),
&be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0008, // 0005 JMPF R3 #000F
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x8C100702, // 0008 GETMET R4 R3 K2
- 0x7C100200, // 0009 CALL R4 1
- 0x1C100801, // 000A EQ R4 R4 R1
- 0x78120000, // 000B JMPF R4 #000D
- 0x80040600, // 000C RET 1 R3
- 0x00080503, // 000D ADD R2 R2 K3
- 0x7001FFF1, // 000E JMP #0001
- 0x4C0C0000, // 000F LDNIL R3
- 0x80040600, // 0010 RET 1 R3
+ ( &(const binstruction[35]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x740A0004, // 0002 JMPT R2 #0008
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x5C0C0200, // 0004 MOVE R3 R1
+ 0x7C080200, // 0005 CALL R2 1
+ 0x1C080500, // 0006 EQ R2 R2 K0
+ 0x780A0001, // 0007 JMPF R2 #000A
+ 0x4C080000, // 0008 LDNIL R2
+ 0x80040400, // 0009 RET 1 R2
+ 0x58080000, // 000A LDCONST R2 K0
+ 0x600C000C, // 000B GETGBL R3 G12
+ 0x88100101, // 000C GETMBR R4 R0 K1
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x140C0403, // 000E LT R3 R2 R3
+ 0x780E0010, // 000F JMPF R3 #0021
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x940C0602, // 0011 GETIDX R3 R3 R2
+ 0x8C100702, // 0012 GETMET R4 R3 K2
+ 0x7C100200, // 0013 CALL R4 1
+ 0x4C140000, // 0014 LDNIL R5
+ 0x20140805, // 0015 NE R5 R4 R5
+ 0x78160007, // 0016 JMPF R5 #001F
+ 0x6014000C, // 0017 GETGBL R5 G12
+ 0x5C180800, // 0018 MOVE R6 R4
+ 0x7C140200, // 0019 CALL R5 1
+ 0x24140B00, // 001A GT R5 R5 K0
+ 0x78160002, // 001B JMPF R5 #001F
+ 0x1C140801, // 001C EQ R5 R4 R1
+ 0x78160000, // 001D JMPF R5 #001F
+ 0x80040600, // 001E RET 1 R3
+ 0x00080503, // 001F ADD R2 R2 K3
+ 0x7001FFE9, // 0020 JMP #000B
+ 0x4C0C0000, // 0021 LDNIL R3
+ 0x80040600, // 0022 RET 1 R3
})
)
);
@@ -4970,12 +2694,12 @@ be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
/********************************************************************
-** Solidified function: update_remotes_info
+** Solidified function: adjust_next_ep
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_update_remotes_info, /* name */
+be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
be_nested_proto(
- 7, /* nstack */
+ 5, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -4983,50 +2707,419 @@ be_local_closure(class_Matter_Device_update_remotes_info, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
/* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(get_info),
- /* K3 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(next_ep),
+ /* K3 */ be_const_int(1),
/* K4 */ be_nested_str_weak(stop_iteration),
- /* K5 */ be_nested_str_weak(plugins_config_remotes),
}),
- be_str_weak(update_remotes_info),
+ be_str_weak(adjust_next_ep),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x60040013, // 0000 GETGBL R1 G19
- 0x7C040000, // 0001 CALL R1 0
- 0x88080100, // 0002 GETMBR R2 R0 K0
+ ( &(const binstruction[21]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000A, // 0005 EXBLK 0 #0011
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x600C0009, // 0008 GETGBL R3 G9
+ 0x5C100400, // 0009 MOVE R4 R2
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0x28100604, // 000C GE R4 R3 R4
+ 0x78120001, // 000D JMPF R4 #0010
+ 0x00100703, // 000E ADD R4 R3 K3
+ 0x90020404, // 000F SETMBR R0 K2 R4
+ 0x7001FFF4, // 0010 JMP #0006
+ 0x58040004, // 0011 LDCONST R1 K4
+ 0xAC040200, // 0012 CATCH R1 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: sort_distinct
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_sort_distinct, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(sort_distinct),
+ &be_const_str_solidified,
+ ( &(const binstruction[53]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080010, // 0001 GETGBL R2 G16
+ 0x600C000C, // 0002 GETGBL R3 G12
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x040C0701, // 0005 SUB R3 R3 K1
+ 0x400E0203, // 0006 CONNECT R3 K1 R3
+ 0x7C080200, // 0007 CALL R2 1
+ 0xA8020010, // 0008 EXBLK 0 #001A
+ 0x5C0C0400, // 0009 MOVE R3 R2
+ 0x7C0C0000, // 000A CALL R3 0
+ 0x94100003, // 000B GETIDX R4 R0 R3
+ 0x5C140600, // 000C MOVE R5 R3
+ 0x24180B02, // 000D GT R6 R5 K2
+ 0x781A0008, // 000E JMPF R6 #0018
+ 0x04180B01, // 000F SUB R6 R5 K1
+ 0x94180006, // 0010 GETIDX R6 R0 R6
+ 0x24180C04, // 0011 GT R6 R6 R4
+ 0x781A0004, // 0012 JMPF R6 #0018
+ 0x04180B01, // 0013 SUB R6 R5 K1
+ 0x94180006, // 0014 GETIDX R6 R0 R6
+ 0x98000A06, // 0015 SETIDX R0 R5 R6
+ 0x04140B01, // 0016 SUB R5 R5 K1
+ 0x7001FFF4, // 0017 JMP #000D
+ 0x98000A04, // 0018 SETIDX R0 R5 R4
+ 0x7001FFEE, // 0019 JMP #0009
+ 0x58080003, // 001A LDCONST R2 K3
+ 0xAC080200, // 001B CATCH R2 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x58080001, // 001D LDCONST R2 K1
+ 0x600C000C, // 001E GETGBL R3 G12
+ 0x5C100000, // 001F MOVE R4 R0
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x180C0701, // 0021 LE R3 R3 K1
+ 0x780E0000, // 0022 JMPF R3 #0024
+ 0x80040000, // 0023 RET 1 R0
+ 0x940C0102, // 0024 GETIDX R3 R0 K2
+ 0x6010000C, // 0025 GETGBL R4 G12
+ 0x5C140000, // 0026 MOVE R5 R0
+ 0x7C100200, // 0027 CALL R4 1
+ 0x14100404, // 0028 LT R4 R2 R4
+ 0x78120009, // 0029 JMPF R4 #0034
+ 0x94100002, // 002A GETIDX R4 R0 R2
+ 0x1C100803, // 002B EQ R4 R4 R3
+ 0x78120003, // 002C JMPF R4 #0031
+ 0x8C100104, // 002D GETMET R4 R0 K4
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x70020001, // 0030 JMP #0033
+ 0x940C0002, // 0031 GETIDX R3 R0 R2
+ 0x00080501, // 0032 ADD R2 R2 K1
+ 0x7001FFF0, // 0033 JMP #0025
+ 0x80040000, // 0034 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: k2l_num
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_k2l_num, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(0),
+ }),
+ be_str_weak(k2l_num),
+ &be_const_str_solidified,
+ ( &(const binstruction[52]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
0x4C0C0000, // 0003 LDNIL R3
- 0x20080403, // 0004 NE R2 R2 R3
- 0x780A0018, // 0005 JMPF R2 #001F
- 0x60080010, // 0006 GETGBL R2 G16
- 0x880C0100, // 0007 GETMBR R3 R0 K0
- 0x8C0C0701, // 0008 GETMET R3 R3 K1
- 0x7C0C0200, // 0009 CALL R3 1
- 0x7C080200, // 000A CALL R2 1
- 0xA802000F, // 000B EXBLK 0 #001C
- 0x5C0C0400, // 000C MOVE R3 R2
- 0x7C0C0000, // 000D CALL R3 0
- 0x88100100, // 000E GETMBR R4 R0 K0
- 0x94100803, // 000F GETIDX R4 R4 R3
- 0x8C100902, // 0010 GETMET R4 R4 K2
- 0x7C100200, // 0011 CALL R4 1
- 0x4C140000, // 0012 LDNIL R5
- 0x20140805, // 0013 NE R5 R4 R5
- 0x78160005, // 0014 JMPF R5 #001B
- 0x6014000C, // 0015 GETGBL R5 G12
- 0x5C180800, // 0016 MOVE R6 R4
- 0x7C140200, // 0017 CALL R5 1
- 0x24140B03, // 0018 GT R5 R5 K3
- 0x78160000, // 0019 JMPF R5 #001B
- 0x98040604, // 001A SETIDX R1 R3 R4
- 0x7001FFEF, // 001B JMP #000C
- 0x58080004, // 001C LDCONST R2 K4
- 0xAC080200, // 001D CATCH R2 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x90020A01, // 001F SETMBR R0 K5 R1
- 0x80040200, // 0020 RET 1 R1
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020007, // 000B EXBLK 0 #0014
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x601C0009, // 000F GETGBL R7 G9
+ 0x5C200800, // 0010 MOVE R8 R4
+ 0x7C1C0200, // 0011 CALL R7 1
+ 0x7C140400, // 0012 CALL R5 2
+ 0x7001FFF7, // 0013 JMP #000C
+ 0x580C0003, // 0014 LDCONST R3 K3
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x600C0010, // 0017 GETGBL R3 G16
+ 0x6010000C, // 0018 GETGBL R4 G12
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x7C100200, // 001A CALL R4 1
+ 0x04100904, // 001B SUB R4 R4 K4
+ 0x40120804, // 001C CONNECT R4 K4 R4
+ 0x7C0C0200, // 001D CALL R3 1
+ 0xA8020010, // 001E EXBLK 0 #0030
+ 0x5C100600, // 001F MOVE R4 R3
+ 0x7C100000, // 0020 CALL R4 0
+ 0x94140404, // 0021 GETIDX R5 R2 R4
+ 0x5C180800, // 0022 MOVE R6 R4
+ 0x241C0D05, // 0023 GT R7 R6 K5
+ 0x781E0008, // 0024 JMPF R7 #002E
+ 0x041C0D04, // 0025 SUB R7 R6 K4
+ 0x941C0407, // 0026 GETIDX R7 R2 R7
+ 0x241C0E05, // 0027 GT R7 R7 R5
+ 0x781E0004, // 0028 JMPF R7 #002E
+ 0x041C0D04, // 0029 SUB R7 R6 K4
+ 0x941C0407, // 002A GETIDX R7 R2 R7
+ 0x98080C07, // 002B SETIDX R2 R6 R7
+ 0x04180D04, // 002C SUB R6 R6 K4
+ 0x7001FFF4, // 002D JMP #0023
+ 0x98080C05, // 002E SETIDX R2 R6 R5
+ 0x7001FFEE, // 002F JMP #001F
+ 0x580C0003, // 0030 LDCONST R3 K3
+ 0xAC0C0200, // 0031 CATCH R3 1 0
+ 0xB0080000, // 0032 RAISE 2 R0 R0
+ 0x80040400, // 0033 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 8, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(millis),
+ /* K3 */ be_nested_str_weak(commissioning_iterations),
+ /* K4 */ be_nested_str_weak(commissioning_discriminator),
+ /* K5 */ be_nested_str_weak(commissioning_salt),
+ /* K6 */ be_nested_str_weak(commissioning_w0),
+ /* K7 */ be_nested_str_weak(commissioning_L),
+ /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
+ /* K9 */ be_nested_str_weak(wifi),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K13 */ be_nested_str_weak(add_rule),
+ /* K14 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K15 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0xB8220200, // 0000 GETNGBL R8 K1
+ 0x8C201102, // 0001 GETMET R8 R8 K2
+ 0x7C200200, // 0002 CALL R8 1
+ 0x542603E7, // 0003 LDINT R9 1000
+ 0x08240209, // 0004 MUL R9 R1 R9
+ 0x00201009, // 0005 ADD R8 R8 R9
+ 0x90020008, // 0006 SETMBR R0 K0 R8
+ 0x90020602, // 0007 SETMBR R0 K3 R2
+ 0x90020803, // 0008 SETMBR R0 K4 R3
+ 0x90020A04, // 0009 SETMBR R0 K5 R4
+ 0x90020C05, // 000A SETMBR R0 K6 R5
+ 0x90020E06, // 000B SETMBR R0 K7 R6
+ 0x90021007, // 000C SETMBR R0 K8 R7
+ 0xB8220200, // 000D GETNGBL R8 K1
+ 0x8C201109, // 000E GETMET R8 R8 K9
+ 0x7C200200, // 000F CALL R8 1
+ 0x9420110A, // 0010 GETIDX R8 R8 K10
+ 0x74220004, // 0011 JMPT R8 #0017
+ 0xB8220200, // 0012 GETNGBL R8 K1
+ 0x8C20110B, // 0013 GETMET R8 R8 K11
+ 0x7C200200, // 0014 CALL R8 1
+ 0x9420110A, // 0015 GETIDX R8 R8 K10
+ 0x78220002, // 0016 JMPF R8 #001A
+ 0x8C20010C, // 0017 GETMET R8 R0 K12
+ 0x7C200200, // 0018 CALL R8 1
+ 0x7002000B, // 0019 JMP #0026
+ 0xB8220200, // 001A GETNGBL R8 K1
+ 0x8C20110D, // 001B GETMET R8 R8 K13
+ 0x5828000E, // 001C LDCONST R10 K14
+ 0x842C0000, // 001D CLOSURE R11 P0
+ 0x5830000C, // 001E LDCONST R12 K12
+ 0x7C200800, // 001F CALL R8 4
+ 0xB8220200, // 0020 GETNGBL R8 K1
+ 0x8C20110D, // 0021 GETMET R8 R8 K13
+ 0x5828000F, // 0022 LDCONST R10 K15
+ 0x842C0001, // 0023 CLOSURE R11 P1
+ 0x5830000C, // 0024 LDCONST R12 K12
+ 0x7C200800, // 0025 CALL R8 4
+ 0xA0000000, // 0026 CLOSE R0
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_stop, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(remove_driver),
+ /* K2 */ be_nested_str_weak(udp_server),
+ /* K3 */ be_nested_str_weak(stop),
+ }),
+ be_str_weak(stop),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040102, // 0004 GETMBR R1 R0 K2
+ 0x78060002, // 0005 JMPF R1 #0009
+ 0x88040102, // 0006 GETMBR R1 R0 K2
+ 0x8C040303, // 0007 GETMET R1 R1 K3
+ 0x7C040200, // 0008 CALL R1 1
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_send
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_send, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(send_UDP),
+ }),
+ be_str_weak(msg_send),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -5112,532 +3205,6 @@ be_local_closure(class_Matter_Device_autoconf_device, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: read_sensors_scheduler
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(time_reached),
- /* K5 */ be_nested_str_weak(_trigger_read_sensors),
- /* K6 */ be_nested_str_weak(millis),
- }),
- be_str_weak(read_sensors_scheduler),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x1C040302, // 0006 EQ R1 R1 K2
- 0x74060004, // 0007 JMPT R1 #000D
- 0xB8060600, // 0008 GETNGBL R1 K3
- 0x8C040304, // 0009 GETMET R1 R1 K4
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x7C040400, // 000B CALL R1 2
- 0x78060006, // 000C JMPF R1 #0014
- 0x8C040105, // 000D GETMET R1 R0 K5
- 0x7C040200, // 000E CALL R1 1
- 0xB8060600, // 000F GETNGBL R1 K3
- 0x8C040306, // 0010 GETMET R1 R1 K6
- 0x880C0100, // 0011 GETMBR R3 R0 K0
- 0x7C040400, // 0012 CALL R1 2
- 0x90020201, // 0013 SETMBR R0 K1 R1
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _mdns_announce_hostname
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
- be_nested_proto(
- 14, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(string),
- /* K2 */ be_nested_str_weak(start),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(eth),
- /* K5 */ be_nested_str_weak(hostname_eth),
- /* K6 */ be_nested_str_weak(replace),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(mac),
- /* K9 */ be_nested_str_weak(_X3A),
- /* K10 */ be_nested_str_weak(),
- /* K11 */ be_nested_str_weak(ipv4only),
- /* K12 */ be_nested_str_weak(contains),
- /* K13 */ be_nested_str_weak(ip6local),
- /* K14 */ be_nested_str_weak(add_hostname),
- /* K15 */ be_nested_str_weak(ip),
- /* K16 */ be_nested_str_weak(ip6),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(wifi),
- /* K21 */ be_nested_str_weak(hostname_wifi),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K24 */ be_nested_str_weak(_X7C),
- /* K25 */ be_const_int(2),
- /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
- }),
- be_str_weak(_mdns_announce_hostname),
- &be_const_str_solidified,
- ( &(const binstruction[144]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100502, // 0002 GETMET R4 R2 K2
- 0x7C100200, // 0003 CALL R4 1
- 0xA8020077, // 0004 EXBLK 0 #007D
- 0x78060033, // 0005 JMPF R1 #003A
- 0xB8120600, // 0006 GETNGBL R4 K3
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x7C100200, // 0008 CALL R4 1
- 0x8C140706, // 0009 GETMET R5 R3 K6
- 0x8C1C0907, // 000A GETMET R7 R4 K7
- 0x58240008, // 000B LDCONST R9 K8
- 0x7C1C0400, // 000C CALL R7 2
- 0x58200009, // 000D LDCONST R8 K9
- 0x5824000A, // 000E LDCONST R9 K10
- 0x7C140800, // 000F CALL R5 4
- 0x90020A05, // 0010 SETMBR R0 K5 R5
- 0x8814010B, // 0011 GETMBR R5 R0 K11
- 0x78160003, // 0012 JMPF R5 #0017
- 0x8C14090C, // 0013 GETMET R5 R4 K12
- 0x581C000D, // 0014 LDCONST R7 K13
- 0x7C140400, // 0015 CALL R5 2
- 0x7416000F, // 0016 JMPT R5 #0027
- 0x8C14050E, // 0017 GETMET R5 R2 K14
- 0x881C0105, // 0018 GETMBR R7 R0 K5
- 0x8C200907, // 0019 GETMET R8 R4 K7
- 0x5828000D, // 001A LDCONST R10 K13
- 0x582C000A, // 001B LDCONST R11 K10
- 0x7C200600, // 001C CALL R8 3
- 0x8C240907, // 001D GETMET R9 R4 K7
- 0x582C000F, // 001E LDCONST R11 K15
- 0x5830000A, // 001F LDCONST R12 K10
- 0x7C240600, // 0020 CALL R9 3
- 0x8C280907, // 0021 GETMET R10 R4 K7
- 0x58300010, // 0022 LDCONST R12 K16
- 0x5834000A, // 0023 LDCONST R13 K10
- 0x7C280600, // 0024 CALL R10 3
- 0x7C140A00, // 0025 CALL R5 5
- 0x70020011, // 0026 JMP #0039
- 0xB8162200, // 0027 GETNGBL R5 K17
- 0x60180018, // 0028 GETGBL R6 G24
- 0x581C0012, // 0029 LDCONST R7 K18
- 0x88200105, // 002A GETMBR R8 R0 K5
- 0x8C240907, // 002B GETMET R9 R4 K7
- 0x582C000F, // 002C LDCONST R11 K15
- 0x5830000A, // 002D LDCONST R12 K10
- 0x7C240600, // 002E CALL R9 3
- 0x7C180600, // 002F CALL R6 3
- 0x581C0013, // 0030 LDCONST R7 K19
- 0x7C140400, // 0031 CALL R5 2
- 0x8C14050E, // 0032 GETMET R5 R2 K14
- 0x881C0105, // 0033 GETMBR R7 R0 K5
- 0x8C200907, // 0034 GETMET R8 R4 K7
- 0x5828000F, // 0035 LDCONST R10 K15
- 0x582C000A, // 0036 LDCONST R11 K10
- 0x7C200600, // 0037 CALL R8 3
- 0x7C140600, // 0038 CALL R5 3
- 0x70020032, // 0039 JMP #006D
- 0xB8120600, // 003A GETNGBL R4 K3
- 0x8C100914, // 003B GETMET R4 R4 K20
- 0x7C100200, // 003C CALL R4 1
- 0x8C140706, // 003D GETMET R5 R3 K6
- 0x8C1C0907, // 003E GETMET R7 R4 K7
- 0x58240008, // 003F LDCONST R9 K8
- 0x7C1C0400, // 0040 CALL R7 2
- 0x58200009, // 0041 LDCONST R8 K9
- 0x5824000A, // 0042 LDCONST R9 K10
- 0x7C140800, // 0043 CALL R5 4
- 0x90022A05, // 0044 SETMBR R0 K21 R5
- 0x8814010B, // 0045 GETMBR R5 R0 K11
- 0x78160003, // 0046 JMPF R5 #004B
- 0x8C14090C, // 0047 GETMET R5 R4 K12
- 0x581C000D, // 0048 LDCONST R7 K13
- 0x7C140400, // 0049 CALL R5 2
- 0x7416000F, // 004A JMPT R5 #005B
- 0x8C14050E, // 004B GETMET R5 R2 K14
- 0x881C0115, // 004C GETMBR R7 R0 K21
- 0x8C200907, // 004D GETMET R8 R4 K7
- 0x5828000D, // 004E LDCONST R10 K13
- 0x582C000A, // 004F LDCONST R11 K10
- 0x7C200600, // 0050 CALL R8 3
- 0x8C240907, // 0051 GETMET R9 R4 K7
- 0x582C000F, // 0052 LDCONST R11 K15
- 0x5830000A, // 0053 LDCONST R12 K10
- 0x7C240600, // 0054 CALL R9 3
- 0x8C280907, // 0055 GETMET R10 R4 K7
- 0x58300010, // 0056 LDCONST R12 K16
- 0x5834000A, // 0057 LDCONST R13 K10
- 0x7C280600, // 0058 CALL R10 3
- 0x7C140A00, // 0059 CALL R5 5
- 0x70020011, // 005A JMP #006D
- 0xB8162200, // 005B GETNGBL R5 K17
- 0x60180018, // 005C GETGBL R6 G24
- 0x581C0012, // 005D LDCONST R7 K18
- 0x88200115, // 005E GETMBR R8 R0 K21
- 0x8C240907, // 005F GETMET R9 R4 K7
- 0x582C000F, // 0060 LDCONST R11 K15
- 0x5830000A, // 0061 LDCONST R12 K10
- 0x7C240600, // 0062 CALL R9 3
- 0x7C180600, // 0063 CALL R6 3
- 0x581C0013, // 0064 LDCONST R7 K19
- 0x7C140400, // 0065 CALL R5 2
- 0x8C14050E, // 0066 GETMET R5 R2 K14
- 0x881C0115, // 0067 GETMBR R7 R0 K21
- 0x8C200907, // 0068 GETMET R8 R4 K7
- 0x5828000F, // 0069 LDCONST R10 K15
- 0x582C000A, // 006A LDCONST R11 K10
- 0x7C200600, // 006B CALL R8 3
- 0x7C140600, // 006C CALL R5 3
- 0xB8122200, // 006D GETNGBL R4 K17
- 0x60140018, // 006E GETGBL R5 G24
- 0x58180016, // 006F LDCONST R6 K22
- 0x78060001, // 0070 JMPF R1 #0073
- 0x581C0004, // 0071 LDCONST R7 K4
- 0x70020000, // 0072 JMP #0074
- 0x581C0014, // 0073 LDCONST R7 K20
- 0x78060001, // 0074 JMPF R1 #0077
- 0x88200105, // 0075 GETMBR R8 R0 K5
- 0x70020000, // 0076 JMP #0078
- 0x88200115, // 0077 GETMBR R8 R0 K21
- 0x7C140600, // 0078 CALL R5 3
- 0x58180013, // 0079 LDCONST R6 K19
- 0x7C100400, // 007A CALL R4 2
- 0xA8040001, // 007B EXBLK 1 1
- 0x7002000F, // 007C JMP #008D
- 0xAC100002, // 007D CATCH R4 0 2
- 0x7002000C, // 007E JMP #008C
- 0xB81A2200, // 007F GETNGBL R6 K17
- 0x601C0008, // 0080 GETGBL R7 G8
- 0x5C200800, // 0081 MOVE R8 R4
- 0x7C1C0200, // 0082 CALL R7 1
- 0x001E2E07, // 0083 ADD R7 K23 R7
- 0x001C0F18, // 0084 ADD R7 R7 K24
- 0x60200008, // 0085 GETGBL R8 G8
- 0x5C240A00, // 0086 MOVE R9 R5
- 0x7C200200, // 0087 CALL R8 1
- 0x001C0E08, // 0088 ADD R7 R7 R8
- 0x58200019, // 0089 LDCONST R8 K25
- 0x7C180400, // 008A CALL R6 2
- 0x70020000, // 008B JMP #008D
- 0xB0080000, // 008C RAISE 2 R0 R0
- 0x8C10011A, // 008D GETMET R4 R0 K26
- 0x7C100200, // 008E CALL R4 1
- 0x80000000, // 008F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_send
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_send, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(send_UDP),
- }),
- be_str_weak(msg_send),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_http_remote
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_http_remote, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(get_timeout),
- /* K3 */ be_nested_str_weak(set_timeout),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(HTTP_remote),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(set_info),
- }),
- be_str_weak(register_http_remote),
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x1C0C0604, // 0002 EQ R3 R3 R4
- 0x780E0002, // 0003 JMPF R3 #0007
- 0x600C0013, // 0004 GETGBL R3 G19
- 0x7C0C0000, // 0005 CALL R3 0
- 0x90020003, // 0006 SETMBR R0 K0 R3
- 0x4C0C0000, // 0007 LDNIL R3
- 0x88100100, // 0008 GETMBR R4 R0 K0
- 0x8C100901, // 0009 GETMET R4 R4 K1
- 0x5C180200, // 000A MOVE R6 R1
- 0x7C100400, // 000B CALL R4 2
- 0x78120009, // 000C JMPF R4 #0017
- 0x88100100, // 000D GETMBR R4 R0 K0
- 0x940C0801, // 000E GETIDX R3 R4 R1
- 0x8C140702, // 000F GETMET R5 R3 K2
- 0x7C140200, // 0010 CALL R5 1
- 0x14140405, // 0011 LT R5 R2 R5
- 0x78160002, // 0012 JMPF R5 #0016
- 0x8C140703, // 0013 GETMET R5 R3 K3
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x7C140400, // 0015 CALL R5 2
- 0x70020011, // 0016 JMP #0029
- 0xB8120800, // 0017 GETNGBL R4 K4
- 0x8C100905, // 0018 GETMET R4 R4 K5
- 0x5C180000, // 0019 MOVE R6 R0
- 0x5C1C0200, // 001A MOVE R7 R1
- 0x5C200400, // 001B MOVE R8 R2
- 0x7C100800, // 001C CALL R4 4
- 0x5C0C0800, // 001D MOVE R3 R4
- 0x88100106, // 001E GETMBR R4 R0 K6
- 0x8C100901, // 001F GETMET R4 R4 K1
- 0x5C180200, // 0020 MOVE R6 R1
- 0x7C100400, // 0021 CALL R4 2
- 0x78120003, // 0022 JMPF R4 #0027
- 0x8C100707, // 0023 GETMET R4 R3 K7
- 0x88180106, // 0024 GETMBR R6 R0 K6
- 0x94180C01, // 0025 GETIDX R6 R6 R1
- 0x7C100400, // 0026 CALL R4 2
- 0x88100100, // 0027 GETMBR R4 R0 K0
- 0x98100203, // 0028 SETIDX R4 R1 R3
- 0x80040600, // 0029 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrInfo_one
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K1 */ be_nested_str_weak(state_json),
- /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(publish_result),
- /* K5 */ be_nested_str_weak(),
- }),
- be_str_weak(MtrInfo_one),
- &be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0403, // 0004 EQ R3 R2 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80000600, // 0006 RET 0
- 0x8C0C0501, // 0007 GETMET R3 R2 K1
- 0x7C0C0200, // 0008 CALL R3 1
- 0x780E0008, // 0009 JMPF R3 #0013
- 0x60100018, // 000A GETGBL R4 G24
- 0x58140002, // 000B LDCONST R5 K2
- 0x5C180600, // 000C MOVE R6 R3
- 0x7C100400, // 000D CALL R4 2
- 0xB8160600, // 000E GETNGBL R5 K3
- 0x8C140B04, // 000F GETMET R5 R5 K4
- 0x5C1C0800, // 0010 MOVE R7 R4
- 0x58200005, // 0011 LDCONST R8 K5
- 0x7C140600, // 0012 CALL R5 3
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _compute_pbkdf
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
- be_nested_proto(
- 13, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(add),
- /* K2 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
- /* K3 */ be_nested_str_weak(derive),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(root_w0),
- /* K6 */ be_nested_str_weak(EC_P256),
- /* K7 */ be_nested_str_weak(mod),
- /* K8 */ be_nested_str_weak(root_L),
- /* K9 */ be_nested_str_weak(public_key),
- }),
- be_str_weak(_compute_pbkdf),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x60140015, // 0001 GETGBL R5 G21
- 0x7C140000, // 0002 CALL R5 0
- 0x8C140B01, // 0003 GETMET R5 R5 K1
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x54220003, // 0005 LDINT R8 4
- 0x7C140600, // 0006 CALL R5 3
- 0x8C180902, // 0007 GETMET R6 R4 K2
- 0x7C180200, // 0008 CALL R6 1
- 0x8C180D03, // 0009 GETMET R6 R6 K3
- 0x5C200A00, // 000A MOVE R8 R5
- 0x5C240600, // 000B MOVE R9 R3
- 0x5C280400, // 000C MOVE R10 R2
- 0x542E004F, // 000D LDINT R11 80
- 0x7C180A00, // 000E CALL R6 5
- 0x541E0026, // 000F LDINT R7 39
- 0x401E0807, // 0010 CONNECT R7 K4 R7
- 0x941C0C07, // 0011 GETIDX R7 R6 R7
- 0x54220027, // 0012 LDINT R8 40
- 0x5426004E, // 0013 LDINT R9 79
- 0x40201009, // 0014 CONNECT R8 R8 R9
- 0x94200C08, // 0015 GETIDX R8 R6 R8
- 0x8C240906, // 0016 GETMET R9 R4 K6
- 0x7C240200, // 0017 CALL R9 1
- 0x8C241307, // 0018 GETMET R9 R9 K7
- 0x5C2C0E00, // 0019 MOVE R11 R7
- 0x7C240400, // 001A CALL R9 2
- 0x90020A09, // 001B SETMBR R0 K5 R9
- 0x8C240906, // 001C GETMET R9 R4 K6
- 0x7C240200, // 001D CALL R9 1
- 0x8C241307, // 001E GETMET R9 R9 K7
- 0x5C2C1000, // 001F MOVE R11 R8
- 0x7C240400, // 0020 CALL R9 2
- 0x8C280906, // 0021 GETMET R10 R4 K6
- 0x7C280200, // 0022 CALL R10 1
- 0x8C281509, // 0023 GETMET R10 R10 K9
- 0x5C301200, // 0024 MOVE R12 R9
- 0x7C280400, // 0025 CALL R10 2
- 0x9002100A, // 0026 SETMBR R0 K8 R10
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: signal_endpoints_changed
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- }),
- be_str_weak(signal_endpoints_changed),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x5412001C, // 0002 LDINT R4 29
- 0x58140002, // 0003 LDCONST R5 K2
- 0x50180000, // 0004 LDBOOL R6 0 0
- 0x7C040A00, // 0005 CALL R1 5
- 0x8C040100, // 0006 GETMET R1 R0 K0
- 0xB80E0600, // 0007 GETNGBL R3 K3
- 0x880C0704, // 0008 GETMBR R3 R3 K4
- 0x5412001C, // 0009 LDINT R4 29
- 0x58140002, // 000A LDCONST R5 K2
- 0x50180000, // 000B LDBOOL R6 0 0
- 0x7C040A00, // 000C CALL R1 5
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: autoconf_device_map
********************************************************************/
@@ -5897,6 +3464,1175 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: update_remotes_info
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_update_remotes_info, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(get_info),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(plugins_config_remotes),
+ }),
+ be_str_weak(update_remotes_info),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x60040013, // 0000 GETGBL R1 G19
+ 0x7C040000, // 0001 CALL R1 0
+ 0x88080100, // 0002 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x20080403, // 0004 NE R2 R2 R3
+ 0x780A0018, // 0005 JMPF R2 #001F
+ 0x60080010, // 0006 GETGBL R2 G16
+ 0x880C0100, // 0007 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0008 GETMET R3 R3 K1
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x7C080200, // 000A CALL R2 1
+ 0xA802000F, // 000B EXBLK 0 #001C
+ 0x5C0C0400, // 000C MOVE R3 R2
+ 0x7C0C0000, // 000D CALL R3 0
+ 0x88100100, // 000E GETMBR R4 R0 K0
+ 0x94100803, // 000F GETIDX R4 R4 R3
+ 0x8C100902, // 0010 GETMET R4 R4 K2
+ 0x7C100200, // 0011 CALL R4 1
+ 0x4C140000, // 0012 LDNIL R5
+ 0x20140805, // 0013 NE R5 R4 R5
+ 0x78160005, // 0014 JMPF R5 #001B
+ 0x6014000C, // 0015 GETGBL R5 G12
+ 0x5C180800, // 0016 MOVE R6 R4
+ 0x7C140200, // 0017 CALL R5 1
+ 0x24140B03, // 0018 GT R5 R5 K3
+ 0x78160000, // 0019 JMPF R5 #001B
+ 0x98040604, // 001A SETIDX R1 R3 R4
+ 0x7001FFEF, // 001B JMP #000C
+ 0x58080004, // 001C LDCONST R2 K4
+ 0xAC080200, // 001D CATCH R2 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x90020A01, // 001F SETMBR R0 K5 R1
+ 0x80040200, // 0020 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: check_config_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_check_config_ep, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
+ /* K12 */ be_nested_str_weak(next_ep),
+ /* K13 */ be_const_int(1),
+ }),
+ be_str_weak(check_config_ep),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0x50040000, // 0000 LDBOOL R1 0 0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x600C0010, // 0003 GETGBL R3 G16
+ 0x88100100, // 0004 GETMBR R4 R0 K0
+ 0x8C100901, // 0005 GETMET R4 R4 K1
+ 0x7C100200, // 0006 CALL R4 1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020007, // 0008 EXBLK 0 #0011
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x8C140502, // 000B GETMET R5 R2 K2
+ 0x601C0009, // 000C GETGBL R7 G9
+ 0x5C200800, // 000D MOVE R8 R4
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x7C140400, // 000F CALL R5 2
+ 0x7001FFF7, // 0010 JMP #0009
+ 0x580C0003, // 0011 LDCONST R3 K3
+ 0xAC0C0200, // 0012 CATCH R3 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x600C0010, // 0014 GETGBL R3 G16
+ 0x5C100400, // 0015 MOVE R4 R2
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0xA8020030, // 0017 EXBLK 0 #0049
+ 0x5C100600, // 0018 MOVE R4 R3
+ 0x7C100000, // 0019 CALL R4 0
+ 0x1C140904, // 001A EQ R5 R4 K4
+ 0x7816000B, // 001B JMPF R5 #0028
+ 0xB8160A00, // 001C GETNGBL R5 K5
+ 0x58180006, // 001D LDCONST R6 K6
+ 0x581C0007, // 001E LDCONST R7 K7
+ 0x7C140400, // 001F CALL R5 2
+ 0x88140100, // 0020 GETMBR R5 R0 K0
+ 0x8C140B08, // 0021 GETMET R5 R5 K8
+ 0x601C0008, // 0022 GETGBL R7 G8
+ 0x5C200800, // 0023 MOVE R8 R4
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x50040200, // 0026 LDBOOL R1 1 0
+ 0x7002001F, // 0027 JMP #0048
+ 0xB8161200, // 0028 GETNGBL R5 K9
+ 0x88140B0A, // 0029 GETMBR R5 R5 K10
+ 0x1C140805, // 002A EQ R5 R4 R5
+ 0x7816001B, // 002B JMPF R5 #0048
+ 0x50040200, // 002C LDBOOL R1 1 0
+ 0xB8160A00, // 002D GETNGBL R5 K5
+ 0x60180018, // 002E GETGBL R6 G24
+ 0x581C000B, // 002F LDCONST R7 K11
+ 0x5C200800, // 0030 MOVE R8 R4
+ 0x8824010C, // 0031 GETMBR R9 R0 K12
+ 0x7C180600, // 0032 CALL R6 3
+ 0x581C0007, // 0033 LDCONST R7 K7
+ 0x7C140400, // 0034 CALL R5 2
+ 0x60140008, // 0035 GETGBL R5 G8
+ 0x8818010C, // 0036 GETMBR R6 R0 K12
+ 0x7C140200, // 0037 CALL R5 1
+ 0x88180100, // 0038 GETMBR R6 R0 K0
+ 0x601C0008, // 0039 GETGBL R7 G8
+ 0x5C200800, // 003A MOVE R8 R4
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x88200100, // 003C GETMBR R8 R0 K0
+ 0x941C1007, // 003D GETIDX R7 R8 R7
+ 0x98180A07, // 003E SETIDX R6 R5 R7
+ 0x88140100, // 003F GETMBR R5 R0 K0
+ 0x8C140B08, // 0040 GETMET R5 R5 K8
+ 0x601C0008, // 0041 GETGBL R7 G8
+ 0x5C200800, // 0042 MOVE R8 R4
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x7C140400, // 0044 CALL R5 2
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x00140B0D, // 0046 ADD R5 R5 K13
+ 0x90021805, // 0047 SETMBR R0 K12 R5
+ 0x7001FFCE, // 0048 JMP #0018
+ 0x580C0003, // 0049 LDCONST R3 K3
+ 0xAC0C0200, // 004A CATCH R3 1 0
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80040200, // 004C RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_fabric),
+ /* K1 */ be_nested_str_weak(get_fabric_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(get_admin_vendor_name),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(stop_basic_commissioning),
+ }),
+ be_str_weak(start_commissioning_complete),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x8C0C0501, // 0002 GETMET R3 R2 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C100505, // 000A GETMET R4 R2 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xB8160C00, // 000C GETNGBL R5 K6
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0007, // 000E LDCONST R7 K7
+ 0x5C200600, // 000F MOVE R8 R3
+ 0x5C240800, // 0010 MOVE R9 R4
+ 0x7C180600, // 0011 CALL R6 3
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x7C140400, // 0013 CALL R5 2
+ 0x8C140109, // 0014 GETMET R5 R0 K9
+ 0x7C140200, // 0015 CALL R5 1
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(eth),
+ /* K9 */ be_nested_str_weak(find),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K13 */ be_const_int(3),
+ /* K14 */ be_nested_str_weak(remove_service),
+ /* K15 */ be_nested_str_weak(_matter),
+ /* K16 */ be_nested_str_weak(_tcp),
+ /* K17 */ be_nested_str_weak(hostname_eth),
+ /* K18 */ be_nested_str_weak(wifi),
+ /* K19 */ be_nested_str_weak(hostname_wifi),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K21 */ be_nested_str_weak(_X7C),
+ /* K22 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_remove_op_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x8C180D08, // 0011 GETMET R6 R6 K8
+ 0x7C180200, // 0012 CALL R6 1
+ 0x8C180D09, // 0013 GETMET R6 R6 K9
+ 0x5820000A, // 0014 LDCONST R8 K10
+ 0x7C180400, // 0015 CALL R6 2
+ 0x781A000D, // 0016 JMPF R6 #0025
+ 0xB81A1600, // 0017 GETNGBL R6 K11
+ 0x601C0018, // 0018 GETGBL R7 G24
+ 0x5820000C, // 0019 LDCONST R8 K12
+ 0x58240008, // 001A LDCONST R9 K8
+ 0x5C280A00, // 001B MOVE R10 R5
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x5820000D, // 001D LDCONST R8 K13
+ 0x7C180400, // 001E CALL R6 2
+ 0x8C18050E, // 001F GETMET R6 R2 K14
+ 0x5820000F, // 0020 LDCONST R8 K15
+ 0x58240010, // 0021 LDCONST R9 K16
+ 0x5C280A00, // 0022 MOVE R10 R5
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x7C180A00, // 0024 CALL R6 5
+ 0xB81A0E00, // 0025 GETNGBL R6 K7
+ 0x8C180D12, // 0026 GETMET R6 R6 K18
+ 0x7C180200, // 0027 CALL R6 1
+ 0x8C180D09, // 0028 GETMET R6 R6 K9
+ 0x5820000A, // 0029 LDCONST R8 K10
+ 0x7C180400, // 002A CALL R6 2
+ 0x781A000D, // 002B JMPF R6 #003A
+ 0xB81A1600, // 002C GETNGBL R6 K11
+ 0x601C0018, // 002D GETGBL R7 G24
+ 0x5820000C, // 002E LDCONST R8 K12
+ 0x58240012, // 002F LDCONST R9 K18
+ 0x5C280A00, // 0030 MOVE R10 R5
+ 0x7C1C0600, // 0031 CALL R7 3
+ 0x5820000D, // 0032 LDCONST R8 K13
+ 0x7C180400, // 0033 CALL R6 2
+ 0x8C18050E, // 0034 GETMET R6 R2 K14
+ 0x5820000F, // 0035 LDCONST R8 K15
+ 0x58240010, // 0036 LDCONST R9 K16
+ 0x5C280A00, // 0037 MOVE R10 R5
+ 0x882C0113, // 0038 GETMBR R11 R0 K19
+ 0x7C180A00, // 0039 CALL R6 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC0C0002, // 003C CATCH R3 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8161600, // 003E GETNGBL R5 K11
+ 0x60180008, // 003F GETGBL R6 G8
+ 0x5C1C0600, // 0040 MOVE R7 R3
+ 0x7C180200, // 0041 CALL R6 1
+ 0x001A2806, // 0042 ADD R6 K20 R6
+ 0x00180D15, // 0043 ADD R6 R6 K21
+ 0x601C0008, // 0044 GETGBL R7 G8
+ 0x5C200800, // 0045 MOVE R8 R4
+ 0x7C1C0200, // 0046 CALL R7 1
+ 0x00180C07, // 0047 ADD R6 R6 R7
+ 0x581C0016, // 0048 LDCONST R7 K22
+ 0x7C140400, // 0049 CALL R5 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(is_root_commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(publish_result),
+ /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
+ /* K4 */ be_nested_str_weak(Matter),
+ /* K5 */ be_nested_str_weak(commissioning_open),
+ /* K6 */ be_nested_str_weak(mdns_remove_PASE),
+ /* K7 */ be_nested_str_weak(commissioning_iterations),
+ /* K8 */ be_nested_str_weak(commissioning_discriminator),
+ /* K9 */ be_nested_str_weak(commissioning_salt),
+ /* K10 */ be_nested_str_weak(commissioning_w0),
+ /* K11 */ be_nested_str_weak(commissioning_L),
+ /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(stop_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x78060004, // 0002 JMPF R1 #0008
+ 0xB8060200, // 0003 GETNGBL R1 K1
+ 0x8C040302, // 0004 GETMET R1 R1 K2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x58100004, // 0006 LDCONST R4 K4
+ 0x7C040600, // 0007 CALL R1 3
+ 0x4C040000, // 0008 LDNIL R1
+ 0x90020A01, // 0009 SETMBR R0 K5 R1
+ 0x8C040106, // 000A GETMET R1 R0 K6
+ 0x7C040200, // 000B CALL R1 1
+ 0x4C040000, // 000C LDNIL R1
+ 0x90020E01, // 000D SETMBR R0 K7 R1
+ 0x4C040000, // 000E LDNIL R1
+ 0x90021001, // 000F SETMBR R0 K8 R1
+ 0x4C040000, // 0010 LDNIL R1
+ 0x90021201, // 0011 SETMBR R0 K9 R1
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90021401, // 0013 SETMBR R0 K10 R1
+ 0x4C040000, // 0014 LDNIL R1
+ 0x90021601, // 0015 SETMBR R0 K11 R1
+ 0x4C040000, // 0016 LDNIL R1
+ 0x90021801, // 0017 SETMBR R0 K12 R1
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _compute_pbkdf
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(add),
+ /* K2 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
+ /* K3 */ be_nested_str_weak(derive),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(root_w0),
+ /* K6 */ be_nested_str_weak(EC_P256),
+ /* K7 */ be_nested_str_weak(mod),
+ /* K8 */ be_nested_str_weak(root_L),
+ /* K9 */ be_nested_str_weak(public_key),
+ }),
+ be_str_weak(_compute_pbkdf),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0xA4120000, // 0000 IMPORT R4 K0
+ 0x60140015, // 0001 GETGBL R5 G21
+ 0x7C140000, // 0002 CALL R5 0
+ 0x8C140B01, // 0003 GETMET R5 R5 K1
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x54220003, // 0005 LDINT R8 4
+ 0x7C140600, // 0006 CALL R5 3
+ 0x8C180902, // 0007 GETMET R6 R4 K2
+ 0x7C180200, // 0008 CALL R6 1
+ 0x8C180D03, // 0009 GETMET R6 R6 K3
+ 0x5C200A00, // 000A MOVE R8 R5
+ 0x5C240600, // 000B MOVE R9 R3
+ 0x5C280400, // 000C MOVE R10 R2
+ 0x542E004F, // 000D LDINT R11 80
+ 0x7C180A00, // 000E CALL R6 5
+ 0x541E0026, // 000F LDINT R7 39
+ 0x401E0807, // 0010 CONNECT R7 K4 R7
+ 0x941C0C07, // 0011 GETIDX R7 R6 R7
+ 0x54220027, // 0012 LDINT R8 40
+ 0x5426004E, // 0013 LDINT R9 79
+ 0x40201009, // 0014 CONNECT R8 R8 R9
+ 0x94200C08, // 0015 GETIDX R8 R6 R8
+ 0x8C240906, // 0016 GETMET R9 R4 K6
+ 0x7C240200, // 0017 CALL R9 1
+ 0x8C241307, // 0018 GETMET R9 R9 K7
+ 0x5C2C0E00, // 0019 MOVE R11 R7
+ 0x7C240400, // 001A CALL R9 2
+ 0x90020A09, // 001B SETMBR R0 K5 R9
+ 0x8C240906, // 001C GETMET R9 R4 K6
+ 0x7C240200, // 001D CALL R9 1
+ 0x8C241307, // 001E GETMET R9 R9 K7
+ 0x5C2C1000, // 001F MOVE R11 R8
+ 0x7C240400, // 0020 CALL R9 2
+ 0x8C280906, // 0021 GETMET R10 R4 K6
+ 0x7C280200, // 0022 CALL R10 1
+ 0x8C281509, // 0023 GETMET R10 R10 K9
+ 0x5C301200, // 0024 MOVE R12 R9
+ 0x7C280400, // 0025 CALL R10 2
+ 0x9002100A, // 0026 SETMBR R0 K8 R10
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrUpdate
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrUpdate, /* name */
+ be_nested_proto(
+ 18, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[25]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(resp_cmnd_str),
+ /* K2 */ be_nested_str_weak(Invalid_X20JSON),
+ /* K3 */ be_nested_str_weak(find_key_i),
+ /* K4 */ be_nested_str_weak(Ep),
+ /* K5 */ be_nested_str_weak(Name),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(Invalid_X20_X27Ep_X27_X20attribute),
+ /* K8 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K9 */ be_nested_str_weak(remove),
+ /* K10 */ be_nested_str_weak(find_plugin_by_friendly_name),
+ /* K11 */ be_nested_str_weak(Invalid_X20Device),
+ /* K12 */ be_nested_str_weak(VIRTUAL),
+ /* K13 */ be_nested_str_weak(Device_X20is_X20not_X20virtual),
+ /* K14 */ be_nested_str_weak(consolidate_update_commands),
+ /* K15 */ be_nested_str_weak(keys),
+ /* K16 */ be_nested_str_weak(find_list_i),
+ /* K17 */ be_nested_str_weak(Invalid_X20attribute_X20_X27_X25s_X27),
+ /* K18 */ be_nested_str_weak(stop_iteration),
+ /* K19 */ be_nested_str_weak(update_virtual),
+ /* K20 */ be_nested_str_weak(state_json),
+ /* K21 */ be_nested_str_weak(_X7B_X22_X25s_X22_X3A_X25s_X7D),
+ /* K22 */ be_nested_str_weak(resp_cmnd),
+ /* K23 */ be_nested_str_weak(resp_cmnd_done),
+ /* K24 */ be_nested_str_weak(Missing_X20_X27Device_X27_X20attribute),
+ }),
+ be_str_weak(MtrUpdate),
+ &be_const_str_solidified,
+ ( &(const binstruction[126]) { /* code */
+ 0x4C140000, // 0000 LDNIL R5
+ 0x1C140805, // 0001 EQ R5 R4 R5
+ 0x78160004, // 0002 JMPF R5 #0008
+ 0xB8160000, // 0003 GETNGBL R5 K0
+ 0x8C140B01, // 0004 GETMET R5 R5 K1
+ 0x581C0002, // 0005 LDCONST R7 K2
+ 0x7C140400, // 0006 CALL R5 2
+ 0x80040A00, // 0007 RET 1 R5
+ 0xB8160000, // 0008 GETNGBL R5 K0
+ 0x8C140B03, // 0009 GETMET R5 R5 K3
+ 0x5C1C0800, // 000A MOVE R7 R4
+ 0x58200004, // 000B LDCONST R8 K4
+ 0x7C140600, // 000C CALL R5 3
+ 0xB81A0000, // 000D GETNGBL R6 K0
+ 0x8C180D03, // 000E GETMET R6 R6 K3
+ 0x5C200800, // 000F MOVE R8 R4
+ 0x58240005, // 0010 LDCONST R9 K5
+ 0x7C180600, // 0011 CALL R6 3
+ 0x74160000, // 0012 JMPT R5 #0014
+ 0x781A0064, // 0013 JMPF R6 #0079
+ 0x4C1C0000, // 0014 LDNIL R7
+ 0x78160010, // 0015 JMPF R5 #0027
+ 0x60200009, // 0016 GETGBL R8 G9
+ 0x94240805, // 0017 GETIDX R9 R4 R5
+ 0x7C200200, // 0018 CALL R8 1
+ 0x18241106, // 0019 LE R9 R8 K6
+ 0x78260004, // 001A JMPF R9 #0020
+ 0xB8260000, // 001B GETNGBL R9 K0
+ 0x8C241301, // 001C GETMET R9 R9 K1
+ 0x582C0007, // 001D LDCONST R11 K7
+ 0x7C240400, // 001E CALL R9 2
+ 0x80041200, // 001F RET 1 R9
+ 0x8C240108, // 0020 GETMET R9 R0 K8
+ 0x5C2C1000, // 0021 MOVE R11 R8
+ 0x7C240400, // 0022 CALL R9 2
+ 0x5C1C1200, // 0023 MOVE R7 R9
+ 0x8C240909, // 0024 GETMET R9 R4 K9
+ 0x5C2C0A00, // 0025 MOVE R11 R5
+ 0x7C240400, // 0026 CALL R9 2
+ 0x781A0009, // 0027 JMPF R6 #0032
+ 0x4C200000, // 0028 LDNIL R8
+ 0x1C200E08, // 0029 EQ R8 R7 R8
+ 0x78220003, // 002A JMPF R8 #002F
+ 0x8C20010A, // 002B GETMET R8 R0 K10
+ 0x94280806, // 002C GETIDX R10 R4 R6
+ 0x7C200400, // 002D CALL R8 2
+ 0x5C1C1000, // 002E MOVE R7 R8
+ 0x8C200909, // 002F GETMET R8 R4 K9
+ 0x5C280C00, // 0030 MOVE R10 R6
+ 0x7C200400, // 0031 CALL R8 2
+ 0x4C200000, // 0032 LDNIL R8
+ 0x1C200E08, // 0033 EQ R8 R7 R8
+ 0x78220004, // 0034 JMPF R8 #003A
+ 0xB8220000, // 0035 GETNGBL R8 K0
+ 0x8C201101, // 0036 GETMET R8 R8 K1
+ 0x5828000B, // 0037 LDCONST R10 K11
+ 0x7C200400, // 0038 CALL R8 2
+ 0x80041000, // 0039 RET 1 R8
+ 0x88200F0C, // 003A GETMBR R8 R7 K12
+ 0x74220004, // 003B JMPT R8 #0041
+ 0xB8220000, // 003C GETNGBL R8 K0
+ 0x8C201101, // 003D GETMET R8 R8 K1
+ 0x5828000D, // 003E LDCONST R10 K13
+ 0x7C200400, // 003F CALL R8 2
+ 0x80041000, // 0040 RET 1 R8
+ 0x8C200F0E, // 0041 GETMET R8 R7 K14
+ 0x7C200200, // 0042 CALL R8 1
+ 0x60240013, // 0043 GETGBL R9 G19
+ 0x7C240000, // 0044 CALL R9 0
+ 0x60280010, // 0045 GETGBL R10 G16
+ 0x8C2C090F, // 0046 GETMET R11 R4 K15
+ 0x7C2C0200, // 0047 CALL R11 1
+ 0x7C280200, // 0048 CALL R10 1
+ 0xA8020016, // 0049 EXBLK 0 #0061
+ 0x5C2C1400, // 004A MOVE R11 R10
+ 0x7C2C0000, // 004B CALL R11 0
+ 0xB8320000, // 004C GETNGBL R12 K0
+ 0x8C301910, // 004D GETMET R12 R12 K16
+ 0x5C381000, // 004E MOVE R14 R8
+ 0x5C3C1600, // 004F MOVE R15 R11
+ 0x7C300600, // 0050 CALL R12 3
+ 0x4C340000, // 0051 LDNIL R13
+ 0x1C34180D, // 0052 EQ R13 R12 R13
+ 0x78360008, // 0053 JMPF R13 #005D
+ 0xB8360000, // 0054 GETNGBL R13 K0
+ 0x8C341B01, // 0055 GETMET R13 R13 K1
+ 0x603C0018, // 0056 GETGBL R15 G24
+ 0x58400011, // 0057 LDCONST R16 K17
+ 0x5C441600, // 0058 MOVE R17 R11
+ 0x7C3C0400, // 0059 CALL R15 2
+ 0x7C340400, // 005A CALL R13 2
+ 0xA8040001, // 005B EXBLK 1 1
+ 0x80001A00, // 005C RET 0
+ 0x9434100C, // 005D GETIDX R13 R8 R12
+ 0x9438080B, // 005E GETIDX R14 R4 R11
+ 0x98241A0E, // 005F SETIDX R9 R13 R14
+ 0x7001FFE8, // 0060 JMP #004A
+ 0x58280012, // 0061 LDCONST R10 K18
+ 0xAC280200, // 0062 CATCH R10 1 0
+ 0xB0080000, // 0063 RAISE 2 R0 R0
+ 0x8C280F13, // 0064 GETMET R10 R7 K19
+ 0x5C301200, // 0065 MOVE R12 R9
+ 0x7C280400, // 0066 CALL R10 2
+ 0x8C280F14, // 0067 GETMET R10 R7 K20
+ 0x7C280200, // 0068 CALL R10 1
+ 0x782A000A, // 0069 JMPF R10 #0075
+ 0x602C0018, // 006A GETGBL R11 G24
+ 0x58300015, // 006B LDCONST R12 K21
+ 0x5C340200, // 006C MOVE R13 R1
+ 0x5C381400, // 006D MOVE R14 R10
+ 0x7C2C0600, // 006E CALL R11 3
+ 0xB8320000, // 006F GETNGBL R12 K0
+ 0x8C301916, // 0070 GETMET R12 R12 K22
+ 0x5C381600, // 0071 MOVE R14 R11
+ 0x7C300400, // 0072 CALL R12 2
+ 0x80041800, // 0073 RET 1 R12
+ 0x70020003, // 0074 JMP #0079
+ 0xB82E0000, // 0075 GETNGBL R11 K0
+ 0x8C2C1717, // 0076 GETMET R11 R11 K23
+ 0x7C2C0200, // 0077 CALL R11 1
+ 0x80041600, // 0078 RET 1 R11
+ 0xB81E0000, // 0079 GETNGBL R7 K0
+ 0x8C1C0F01, // 007A GETMET R7 R7 K1
+ 0x58240018, // 007B LDCONST R9 K24
+ 0x7C1C0400, // 007C CALL R7 2
+ 0x80000000, // 007D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
+ /* K9 */ be_const_int(3),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(find),
+ /* K13 */ be_nested_str_weak(up),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K15 */ be_nested_str_weak(hostname_eth),
+ /* K16 */ be_nested_str_weak(add_service),
+ /* K17 */ be_nested_str_weak(_matter),
+ /* K18 */ be_nested_str_weak(_tcp),
+ /* K19 */ be_nested_str_weak(_I),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K21 */ be_nested_str_weak(add_subtype),
+ /* K22 */ be_nested_str_weak(wifi),
+ /* K23 */ be_nested_str_weak(hostname_wifi),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_announce_op_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[115]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA802005F, // 0001 EXBLK 0 #0062
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x001E1005, // 0011 ADD R7 K8 R5
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0xB81A1400, // 0014 GETNGBL R6 K10
+ 0x8C180D0B, // 0015 GETMET R6 R6 K11
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180D0C, // 0017 GETMET R6 R6 K12
+ 0x5820000D, // 0018 LDCONST R8 K13
+ 0x7C180400, // 0019 CALL R6 2
+ 0x781A001E, // 001A JMPF R6 #003A
+ 0xB81A0E00, // 001B GETNGBL R6 K7
+ 0x601C0018, // 001C GETGBL R7 G24
+ 0x5820000E, // 001D LDCONST R8 K14
+ 0x5824000B, // 001E LDCONST R9 K11
+ 0x5C280A00, // 001F MOVE R10 R5
+ 0x882C010F, // 0020 GETMBR R11 R0 K15
+ 0x7C1C0800, // 0021 CALL R7 4
+ 0x58200009, // 0022 LDCONST R8 K9
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8C180510, // 0024 GETMET R6 R2 K16
+ 0x58200011, // 0025 LDCONST R8 K17
+ 0x58240012, // 0026 LDCONST R9 K18
+ 0x542A15A3, // 0027 LDINT R10 5540
+ 0x4C2C0000, // 0028 LDNIL R11
+ 0x5C300A00, // 0029 MOVE R12 R5
+ 0x8834010F, // 002A GETMBR R13 R0 K15
+ 0x7C180E00, // 002B CALL R6 7
+ 0x8C180905, // 002C GETMET R6 R4 K5
+ 0x7C180200, // 002D CALL R6 1
+ 0x001A2606, // 002E ADD R6 K19 R6
+ 0xB81E0E00, // 002F GETNGBL R7 K7
+ 0x00222806, // 0030 ADD R8 K20 R6
+ 0x58240009, // 0031 LDCONST R9 K9
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x8C1C0515, // 0033 GETMET R7 R2 K21
+ 0x58240011, // 0034 LDCONST R9 K17
+ 0x58280012, // 0035 LDCONST R10 K18
+ 0x5C2C0A00, // 0036 MOVE R11 R5
+ 0x8830010F, // 0037 GETMBR R12 R0 K15
+ 0x5C340C00, // 0038 MOVE R13 R6
+ 0x7C1C0C00, // 0039 CALL R7 6
+ 0xB81A1400, // 003A GETNGBL R6 K10
+ 0x8C180D16, // 003B GETMET R6 R6 K22
+ 0x7C180200, // 003C CALL R6 1
+ 0x8C180D0C, // 003D GETMET R6 R6 K12
+ 0x5820000D, // 003E LDCONST R8 K13
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A001E, // 0040 JMPF R6 #0060
+ 0xB81A0E00, // 0041 GETNGBL R6 K7
+ 0x601C0018, // 0042 GETGBL R7 G24
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x58240016, // 0044 LDCONST R9 K22
+ 0x5C280A00, // 0045 MOVE R10 R5
+ 0x882C0117, // 0046 GETMBR R11 R0 K23
+ 0x7C1C0800, // 0047 CALL R7 4
+ 0x58200009, // 0048 LDCONST R8 K9
+ 0x7C180400, // 0049 CALL R6 2
+ 0x8C180510, // 004A GETMET R6 R2 K16
+ 0x58200011, // 004B LDCONST R8 K17
+ 0x58240012, // 004C LDCONST R9 K18
+ 0x542A15A3, // 004D LDINT R10 5540
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x5C300A00, // 004F MOVE R12 R5
+ 0x88340117, // 0050 GETMBR R13 R0 K23
+ 0x7C180E00, // 0051 CALL R6 7
+ 0x8C180905, // 0052 GETMET R6 R4 K5
+ 0x7C180200, // 0053 CALL R6 1
+ 0x001A2606, // 0054 ADD R6 K19 R6
+ 0xB81E0E00, // 0055 GETNGBL R7 K7
+ 0x00222806, // 0056 ADD R8 K20 R6
+ 0x58240009, // 0057 LDCONST R9 K9
+ 0x7C1C0400, // 0058 CALL R7 2
+ 0x8C1C0515, // 0059 GETMET R7 R2 K21
+ 0x58240011, // 005A LDCONST R9 K17
+ 0x58280012, // 005B LDCONST R10 K18
+ 0x5C2C0A00, // 005C MOVE R11 R5
+ 0x88300117, // 005D GETMBR R12 R0 K23
+ 0x5C340C00, // 005E MOVE R13 R6
+ 0x7C1C0C00, // 005F CALL R7 6
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7002000F, // 0061 JMP #0072
+ 0xAC0C0002, // 0062 CATCH R3 0 2
+ 0x7002000C, // 0063 JMP #0071
+ 0xB8160E00, // 0064 GETNGBL R5 K7
+ 0x60180008, // 0065 GETGBL R6 G8
+ 0x5C1C0600, // 0066 MOVE R7 R3
+ 0x7C180200, // 0067 CALL R6 1
+ 0x001A3006, // 0068 ADD R6 K24 R6
+ 0x00180D19, // 0069 ADD R6 R6 K25
+ 0x601C0008, // 006A GETGBL R7 G8
+ 0x5C200800, // 006B MOVE R8 R4
+ 0x7C1C0200, // 006C CALL R7 1
+ 0x00180C07, // 006D ADD R6 R6 R7
+ 0x581C001A, // 006E LDCONST R7 K26
+ 0x7C140400, // 006F CALL R5 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: save_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_save_param, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(update_remotes_info),
+ /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
+ /* K3 */ be_nested_str_weak(root_discriminator),
+ /* K4 */ be_nested_str_weak(root_passcode),
+ /* K5 */ be_nested_str_weak(ipv4only),
+ /* K6 */ be_nested_str_weak(true),
+ /* K7 */ be_nested_str_weak(false),
+ /* K8 */ be_nested_str_weak(disable_bridge_mode),
+ /* K9 */ be_nested_str_weak(next_ep),
+ /* K10 */ be_nested_str_weak(debug),
+ /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
+ /* K14 */ be_nested_str_weak(dump),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_config_remotes),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
+ /* K19 */ be_nested_str_weak(_X7D),
+ /* K20 */ be_nested_str_weak(FILENAME),
+ /* K21 */ be_nested_str_weak(w),
+ /* K22 */ be_nested_str_weak(write),
+ /* K23 */ be_nested_str_weak(close),
+ /* K24 */ be_nested_str_weak(log),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
+ /* K26 */ be_nested_str_weak(_X20and_X20configuration),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_const_int(2),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K30 */ be_nested_str_weak(_X7C),
+ }),
+ be_str_weak(save_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080018, // 0003 GETGBL R2 G24
+ 0x580C0002, // 0004 LDCONST R3 K2
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x88140104, // 0006 GETMBR R5 R0 K4
+ 0x88180105, // 0007 GETMBR R6 R0 K5
+ 0x781A0001, // 0008 JMPF R6 #000B
+ 0x58180006, // 0009 LDCONST R6 K6
+ 0x70020000, // 000A JMP #000C
+ 0x58180007, // 000B LDCONST R6 K7
+ 0x881C0108, // 000C GETMBR R7 R0 K8
+ 0x781E0001, // 000D JMPF R7 #0010
+ 0x581C0006, // 000E LDCONST R7 K6
+ 0x70020000, // 000F JMP #0011
+ 0x581C0007, // 0010 LDCONST R7 K7
+ 0x88200109, // 0011 GETMBR R8 R0 K9
+ 0x7C080C00, // 0012 CALL R2 6
+ 0x880C010A, // 0013 GETMBR R3 R0 K10
+ 0x780E0000, // 0014 JMPF R3 #0016
+ 0x0008050B, // 0015 ADD R2 R2 K11
+ 0x880C010C, // 0016 GETMBR R3 R0 K12
+ 0x780E000E, // 0017 JMPF R3 #0027
+ 0x0008050D, // 0018 ADD R2 R2 K13
+ 0x8C0C030E, // 0019 GETMET R3 R1 K14
+ 0x8814010F, // 001A GETMBR R5 R0 K15
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x00080403, // 001C ADD R2 R2 R3
+ 0x600C000C, // 001D GETGBL R3 G12
+ 0x88100110, // 001E GETMBR R4 R0 K16
+ 0x7C0C0200, // 001F CALL R3 1
+ 0x240C0711, // 0020 GT R3 R3 K17
+ 0x780E0004, // 0021 JMPF R3 #0027
+ 0x00080512, // 0022 ADD R2 R2 K18
+ 0x8C0C030E, // 0023 GETMET R3 R1 K14
+ 0x88140110, // 0024 GETMBR R5 R0 K16
+ 0x7C0C0400, // 0025 CALL R3 2
+ 0x00080403, // 0026 ADD R2 R2 R3
+ 0x00080513, // 0027 ADD R2 R2 K19
+ 0xA8020017, // 0028 EXBLK 0 #0041
+ 0x600C0011, // 0029 GETGBL R3 G17
+ 0x88100114, // 002A GETMBR R4 R0 K20
+ 0x58140015, // 002B LDCONST R5 K21
+ 0x7C0C0400, // 002C CALL R3 2
+ 0x8C100716, // 002D GETMET R4 R3 K22
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x8C100717, // 0030 GETMET R4 R3 K23
+ 0x7C100200, // 0031 CALL R4 1
+ 0xB8123000, // 0032 GETNGBL R4 K24
+ 0x60140018, // 0033 GETGBL R5 G24
+ 0x58180019, // 0034 LDCONST R6 K25
+ 0x881C010C, // 0035 GETMBR R7 R0 K12
+ 0x781E0001, // 0036 JMPF R7 #0039
+ 0x581C001A, // 0037 LDCONST R7 K26
+ 0x70020000, // 0038 JMP #003A
+ 0x581C001B, // 0039 LDCONST R7 K27
+ 0x7C140400, // 003A CALL R5 2
+ 0x5818001C, // 003B LDCONST R6 K28
+ 0x7C100400, // 003C CALL R4 2
+ 0xA8040001, // 003D EXBLK 1 1
+ 0x80040400, // 003E RET 1 R2
+ 0xA8040001, // 003F EXBLK 1 1
+ 0x70020010, // 0040 JMP #0052
+ 0xAC0C0002, // 0041 CATCH R3 0 2
+ 0x7002000D, // 0042 JMP #0051
+ 0xB8163000, // 0043 GETNGBL R5 K24
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x001A3A06, // 0047 ADD R6 K29 R6
+ 0x00180D1E, // 0048 ADD R6 R6 K30
+ 0x601C0008, // 0049 GETGBL R7 G8
+ 0x5C200800, // 004A MOVE R8 R4
+ 0x7C1C0200, // 004B CALL R7 1
+ 0x00180C07, // 004C ADD R6 R6 R7
+ 0x581C001C, // 004D LDCONST R7 K28
+ 0x7C140400, // 004E CALL R5 2
+ 0x80040400, // 004F RET 1 R2
+ 0x70020000, // 0050 JMP #0052
+ 0xB0080000, // 0051 RAISE 2 R0 R0
+ 0x80000000, // 0052 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_operational_discovery_deferred
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_operational_discovery),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_operational_discovery_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
+ }),
+ be_str_weak(_init_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040302, // 0003 EQ R1 R1 K2
+ 0x78060001, // 0004 JMPF R1 #0007
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x7C040200, // 0006 CALL R1 1
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_received
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_received, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(msg_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x5C1C0400, // 0003 MOVE R7 R2
+ 0x5C200600, // 0004 MOVE R8 R3
+ 0x7C100800, // 0005 CALL R4 4
+ 0x80040800, // 0006 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: autoconf_sensors_list
********************************************************************/
@@ -6060,10 +4796,585 @@ be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
/********************************************************************
-** Solidified function: is_commissioning_open
+** Solidified function: MtrInfo
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+be_local_closure(class_Matter_Device_MtrInfo, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(MtrInfo_one),
+ /* K3 */ be_nested_str_weak(endpoint),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(int),
+ /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrInfo),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x1C140700, // 0000 EQ R5 R3 K0
+ 0x7815FFFF, // 0001 JMPF R5 #0002
+ 0x1C140700, // 0002 EQ R5 R3 K0
+ 0x7816000D, // 0003 JMPF R5 #0012
+ 0x60140010, // 0004 GETGBL R5 G16
+ 0x88180101, // 0005 GETMBR R6 R0 K1
+ 0x7C140200, // 0006 CALL R5 1
+ 0xA8020005, // 0007 EXBLK 0 #000E
+ 0x5C180A00, // 0008 MOVE R6 R5
+ 0x7C180000, // 0009 CALL R6 0
+ 0x8C1C0102, // 000A GETMET R7 R0 K2
+ 0x88240D03, // 000B GETMBR R9 R6 K3
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x7001FFF9, // 000D JMP #0008
+ 0x58140004, // 000E LDCONST R5 K4
+ 0xAC140200, // 000F CATCH R5 1 0
+ 0xB0080000, // 0010 RAISE 2 R0 R0
+ 0x70020011, // 0011 JMP #0024
+ 0x60140004, // 0012 GETGBL R5 G4
+ 0x5C180800, // 0013 MOVE R6 R4
+ 0x7C140200, // 0014 CALL R5 1
+ 0x1C140B05, // 0015 EQ R5 R5 K5
+ 0x78160003, // 0016 JMPF R5 #001B
+ 0x8C140102, // 0017 GETMET R5 R0 K2
+ 0x5C1C0800, // 0018 MOVE R7 R4
+ 0x7C140400, // 0019 CALL R5 2
+ 0x70020008, // 001A JMP #0024
+ 0x8C140106, // 001B GETMET R5 R0 K6
+ 0x5C1C0600, // 001C MOVE R7 R3
+ 0x7C140400, // 001D CALL R5 2
+ 0x4C180000, // 001E LDNIL R6
+ 0x20180A06, // 001F NE R6 R5 R6
+ 0x781A0002, // 0020 JMPF R6 #0024
+ 0x8C180102, // 0021 GETMET R6 R0 K2
+ 0x88200B03, // 0022 GETMBR R8 R5 K3
+ 0x7C180400, // 0023 CALL R6 2
+ 0xB8160E00, // 0024 GETNGBL R5 K7
+ 0x8C140B08, // 0025 GETMET R5 R5 K8
+ 0x7C140200, // 0026 CALL R5 1
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_manual_pairing_code
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(root_discriminator),
+ /* K1 */ be_nested_str_weak(root_passcode),
+ /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Verhoeff),
+ /* K5 */ be_nested_str_weak(checksum),
+ }),
+ be_str_weak(compute_manual_pairing_code),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x540A0FFE, // 0001 LDINT R2 4095
+ 0x2C040202, // 0002 AND R1 R1 R2
+ 0x540A0009, // 0003 LDINT R2 10
+ 0x3C040202, // 0004 SHR R1 R1 R2
+ 0x88080100, // 0005 GETMBR R2 R0 K0
+ 0x540E02FF, // 0006 LDINT R3 768
+ 0x2C080403, // 0007 AND R2 R2 R3
+ 0x540E0005, // 0008 LDINT R3 6
+ 0x38080403, // 0009 SHL R2 R2 R3
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x54123FFE, // 000B LDINT R4 16383
+ 0x2C0C0604, // 000C AND R3 R3 R4
+ 0x30080403, // 000D OR R2 R2 R3
+ 0x880C0101, // 000E GETMBR R3 R0 K1
+ 0x5412000D, // 000F LDINT R4 14
+ 0x3C0C0604, // 0010 SHR R3 R3 R4
+ 0x60100018, // 0011 GETGBL R4 G24
+ 0x58140002, // 0012 LDCONST R5 K2
+ 0x5C180200, // 0013 MOVE R6 R1
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x5C200600, // 0015 MOVE R8 R3
+ 0x7C100800, // 0016 CALL R4 4
+ 0xB8160600, // 0017 GETNGBL R5 K3
+ 0x88140B04, // 0018 GETMBR R5 R5 K4
+ 0x8C140B05, // 0019 GETMET R5 R5 K5
+ 0x5C1C0800, // 001A MOVE R7 R4
+ 0x7C140400, // 001B CALL R5 2
+ 0x00100805, // 001C ADD R4 R4 R5
+ 0x80040800, // 001D RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: signal_endpoints_changed
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ }),
+ be_str_weak(signal_endpoints_changed),
+ &be_const_str_solidified,
+ ( &(const binstruction[14]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x580C0001, // 0001 LDCONST R3 K1
+ 0x5412001C, // 0002 LDINT R4 29
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x50180000, // 0004 LDBOOL R6 0 0
+ 0x7C040A00, // 0005 CALL R1 5
+ 0x8C040100, // 0006 GETMET R1 R0 K0
+ 0xB80E0600, // 0007 GETNGBL R3 K3
+ 0x880C0704, // 0008 GETMBR R3 R3 K4
+ 0x5412001C, // 0009 LDINT R4 29
+ 0x58140002, // 000A LDCONST R5 K2
+ 0x50180000, // 000B LDBOOL R6 0 0
+ 0x7C040A00, // 000C CALL R1 5
+ 0x80000000, // 000D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrJoin
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrJoin, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
+ /* K1 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrJoin),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x60140009, // 0000 GETGBL R5 G9
+ 0x5C180600, // 0001 MOVE R6 R3
+ 0x7C140200, // 0002 CALL R5 1
+ 0x78160002, // 0003 JMPF R5 #0007
+ 0x8C180100, // 0004 GETMET R6 R0 K0
+ 0x7C180200, // 0005 CALL R6 1
+ 0x70020001, // 0006 JMP #0009
+ 0x8C180101, // 0007 GETMET R6 R0 K1
+ 0x7C180200, // 0008 CALL R6 1
+ 0xB81A0400, // 0009 GETNGBL R6 K2
+ 0x8C180D03, // 000A GETMET R6 R6 K3
+ 0x7C180200, // 000B CALL R6 1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_add_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K4 */ be_nested_str_weak(_X27_X20skipping),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(next_ep),
+ /* K7 */ be_nested_str_weak(plugins),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(type),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
+ /* K13 */ be_nested_str_weak(conf_to_log),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_persist),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_add_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[68]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120008, // 0006 JMPF R4 #0010
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x60140008, // 0008 GETGBL R5 G8
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C140200, // 000A CALL R5 1
+ 0x00160605, // 000B ADD R5 K3 R5
+ 0x00140B04, // 000C ADD R5 R5 K4
+ 0x58180005, // 000D LDCONST R6 K5
+ 0x7C100400, // 000E CALL R4 2
+ 0x80000800, // 000F RET 0
+ 0x88100106, // 0010 GETMBR R4 R0 K6
+ 0x60140008, // 0011 GETGBL R5 G8
+ 0x5C180800, // 0012 MOVE R6 R4
+ 0x7C140200, // 0013 CALL R5 1
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x5C1C0000, // 0015 MOVE R7 R0
+ 0x5C200800, // 0016 MOVE R8 R4
+ 0x5C240400, // 0017 MOVE R9 R2
+ 0x7C180600, // 0018 CALL R6 3
+ 0x881C0107, // 0019 GETMBR R7 R0 K7
+ 0x8C1C0F08, // 001A GETMET R7 R7 K8
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x7C1C0400, // 001C CALL R7 2
+ 0x601C0013, // 001D GETGBL R7 G19
+ 0x7C1C0000, // 001E CALL R7 0
+ 0x981E1201, // 001F SETIDX R7 K9 R1
+ 0x60200010, // 0020 GETGBL R8 G16
+ 0x8C24050A, // 0021 GETMET R9 R2 K10
+ 0x7C240200, // 0022 CALL R9 1
+ 0x7C200200, // 0023 CALL R8 1
+ 0xA8020004, // 0024 EXBLK 0 #002A
+ 0x5C241000, // 0025 MOVE R9 R8
+ 0x7C240000, // 0026 CALL R9 0
+ 0x94280409, // 0027 GETIDX R10 R2 R9
+ 0x981C120A, // 0028 SETIDX R7 R9 R10
+ 0x7001FFFA, // 0029 JMP #0025
+ 0x5820000B, // 002A LDCONST R8 K11
+ 0xAC200200, // 002B CATCH R8 1 0
+ 0xB0080000, // 002C RAISE 2 R0 R0
+ 0xB8220400, // 002D GETNGBL R8 K2
+ 0x60240018, // 002E GETGBL R9 G24
+ 0x5828000C, // 002F LDCONST R10 K12
+ 0x5C2C0800, // 0030 MOVE R11 R4
+ 0x5C300200, // 0031 MOVE R12 R1
+ 0x8C34010D, // 0032 GETMET R13 R0 K13
+ 0x5C3C0400, // 0033 MOVE R15 R2
+ 0x7C340400, // 0034 CALL R13 2
+ 0x7C240800, // 0035 CALL R9 4
+ 0x5828000E, // 0036 LDCONST R10 K14
+ 0x7C200400, // 0037 CALL R8 2
+ 0x8820010F, // 0038 GETMBR R8 R0 K15
+ 0x98200A07, // 0039 SETIDX R8 R5 R7
+ 0x50200200, // 003A LDBOOL R8 1 0
+ 0x90022008, // 003B SETMBR R0 K16 R8
+ 0x88200106, // 003C GETMBR R8 R0 K6
+ 0x00201111, // 003D ADD R8 R8 K17
+ 0x90020C08, // 003E SETMBR R0 K6 R8
+ 0x8C200112, // 003F GETMET R8 R0 K18
+ 0x7C200200, // 0040 CALL R8 1
+ 0x8C200113, // 0041 GETMET R8 R0 K19
+ 0x7C200200, // 0042 CALL R8 1
+ 0x80040800, // 0043 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_second, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(every_second),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(commissioning_open),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(time_reached),
+ }),
+ be_str_weak(every_second),
+ &be_const_str_solidified,
+ ( &(const binstruction[18]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040301, // 0004 GETMET R1 R1 K1
+ 0x7C040200, // 0005 CALL R1 1
+ 0x88040103, // 0006 GETMBR R1 R0 K3
+ 0x4C080000, // 0007 LDNIL R2
+ 0x20040202, // 0008 NE R1 R1 R2
+ 0x78060006, // 0009 JMPF R1 #0011
+ 0xB8060800, // 000A GETNGBL R1 K4
+ 0x8C040305, // 000B GETMET R1 R1 K5
+ 0x880C0103, // 000C GETMBR R3 R0 K3
+ 0x7C040400, // 000D CALL R1 2
+ 0x78060001, // 000E JMPF R1 #0011
+ 0x4C040000, // 000F LDNIL R1
+ 0x90020601, // 0010 SETMBR R0 K3 R1
+ 0x80000000, // 0011 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: received_ack
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_received_ack, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(received_ack),
+ }),
+ be_str_weak(received_ack),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clean_remotes
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_clean_remotes, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(introspect),
+ /* K1 */ be_nested_str_weak(http_remotes),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_nested_str_weak(get),
+ /* K6 */ be_nested_str_weak(http_remote),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(keys),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(close),
+ /* K16 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(clean_remotes),
+ &be_const_str_solidified,
+ ( &(const binstruction[80]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x780A004B, // 0002 JMPF R2 #004F
+ 0x60080013, // 0003 GETGBL R2 G19
+ 0x7C080000, // 0004 CALL R2 0
+ 0x600C0010, // 0005 GETGBL R3 G16
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020003, // 0008 EXBLK 0 #000D
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x98080902, // 000B SETIDX R2 R4 K2
+ 0x7001FFFB, // 000C JMP #0009
+ 0x580C0003, // 000D LDCONST R3 K3
+ 0xAC0C0200, // 000E CATCH R3 1 0
+ 0xB0080000, // 000F RAISE 2 R0 R0
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100104, // 0011 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA802000F, // 0013 EXBLK 0 #0024
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x8C140305, // 0016 GETMET R5 R1 K5
+ 0x5C1C0800, // 0017 MOVE R7 R4
+ 0x58200006, // 0018 LDCONST R8 K6
+ 0x7C140600, // 0019 CALL R5 3
+ 0x4C180000, // 001A LDNIL R6
+ 0x20180A06, // 001B NE R6 R5 R6
+ 0x781A0005, // 001C JMPF R6 #0023
+ 0x8C180507, // 001D GETMET R6 R2 K7
+ 0x5C200A00, // 001E MOVE R8 R5
+ 0x58240002, // 001F LDCONST R9 K2
+ 0x7C180600, // 0020 CALL R6 3
+ 0x00180D08, // 0021 ADD R6 R6 K8
+ 0x98080A06, // 0022 SETIDX R2 R5 R6
+ 0x7001FFEF, // 0023 JMP #0014
+ 0x580C0003, // 0024 LDCONST R3 K3
+ 0xAC0C0200, // 0025 CATCH R3 1 0
+ 0xB0080000, // 0026 RAISE 2 R0 R0
+ 0x600C0012, // 0027 GETGBL R3 G18
+ 0x7C0C0000, // 0028 CALL R3 0
+ 0x60100010, // 0029 GETGBL R4 G16
+ 0x8C140509, // 002A GETMET R5 R2 K9
+ 0x7C140200, // 002B CALL R5 1
+ 0x7C100200, // 002C CALL R4 1
+ 0xA8020008, // 002D EXBLK 0 #0037
+ 0x5C140800, // 002E MOVE R5 R4
+ 0x7C140000, // 002F CALL R5 0
+ 0x94180405, // 0030 GETIDX R6 R2 R5
+ 0x1C180D02, // 0031 EQ R6 R6 K2
+ 0x781A0002, // 0032 JMPF R6 #0036
+ 0x8C18070A, // 0033 GETMET R6 R3 K10
+ 0x5C200A00, // 0034 MOVE R8 R5
+ 0x7C180400, // 0035 CALL R6 2
+ 0x7001FFF6, // 0036 JMP #002E
+ 0x58100003, // 0037 LDCONST R4 K3
+ 0xAC100200, // 0038 CATCH R4 1 0
+ 0xB0080000, // 0039 RAISE 2 R0 R0
+ 0x60100010, // 003A GETGBL R4 G16
+ 0x5C140600, // 003B MOVE R5 R3
+ 0x7C100200, // 003C CALL R4 1
+ 0xA802000D, // 003D EXBLK 0 #004C
+ 0x5C140800, // 003E MOVE R5 R4
+ 0x7C140000, // 003F CALL R5 0
+ 0xB81A1600, // 0040 GETNGBL R6 K11
+ 0x881C0B0D, // 0041 GETMBR R7 R5 K13
+ 0x001E1807, // 0042 ADD R7 K12 R7
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x7C180400, // 0044 CALL R6 2
+ 0x8C180B0F, // 0045 GETMET R6 R5 K15
+ 0x7C180200, // 0046 CALL R6 1
+ 0x88180101, // 0047 GETMBR R6 R0 K1
+ 0x8C180D10, // 0048 GETMET R6 R6 K16
+ 0x88200B0D, // 0049 GETMBR R8 R5 K13
+ 0x7C180400, // 004A CALL R6 2
+ 0x7001FFF1, // 004B JMP #003E
+ 0x58100003, // 004C LDCONST R4 K3
+ 0xAC100200, // 004D CATCH R4 1 0
+ 0xB0080000, // 004E RAISE 2 R0 R0
+ 0x80000000, // 004F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_class_displayname
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(DISPLAY_NAME),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_displayname),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_root_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -6073,16 +5384,712 @@ be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
+ ( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
}),
- be_str_weak(is_commissioning_open),
+ be_str_weak(is_root_commissioning_open),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
+ ( &(const binstruction[11]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x20040202, // 0002 NE R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
+ 0x78060003, // 0003 JMPF R1 #0008
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x74060000, // 0007 JMPT R1 #0009
+ 0x50040001, // 0008 LDBOOL R1 0 1
+ 0x50040200, // 0009 LDBOOL R1 1 0
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_remote_info
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config_remotes),
+ /* K1 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_plugin_remote_info),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140013, // 0003 GETGBL R5 G19
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _start_udp
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__start_udp, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x7C0C0800, // 0005 CALL R3 4
+ 0x80040600, // 0006 RET 1 R3
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(UDPServer),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(start),
+ }),
+ be_str_weak(_start_udp),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80000400, // 0002 RET 0
+ 0x4C080000, // 0003 LDNIL R2
+ 0x1C080202, // 0004 EQ R2 R1 R2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x540615A3, // 0006 LDINT R1 5540
+ 0xB80A0200, // 0007 GETNGBL R2 K1
+ 0x600C0008, // 0008 GETGBL R3 G8
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x000E0403, // 000B ADD R3 K2 R3
+ 0x58100003, // 000C LDCONST R4 K3
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0800, // 000E GETNGBL R2 K4
+ 0x8C080505, // 000F GETMET R2 R2 K5
+ 0x5C100000, // 0010 MOVE R4 R0
+ 0x58140006, // 0011 LDCONST R5 K6
+ 0x5C180200, // 0012 MOVE R6 R1
+ 0x7C080800, // 0013 CALL R2 4
+ 0x90020002, // 0014 SETMBR R0 K0 R2
+ 0x88080100, // 0015 GETMBR R2 R0 K0
+ 0x8C080507, // 0016 GETMET R2 R2 K7
+ 0x84100000, // 0017 CLOSURE R4 P0
+ 0x7C080400, // 0018 CALL R2 2
+ 0xA0000000, // 0019 CLOSE R0
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_commands
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_commands, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 4]) {
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrJoin),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrUpdate),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrInfo),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(add_cmd),
+ /* K2 */ be_nested_str_weak(MtrJoin),
+ /* K3 */ be_nested_str_weak(MtrUpdate),
+ /* K4 */ be_nested_str_weak(MtrInfo),
+ }),
+ be_str_weak(register_commands),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x580C0002, // 0002 LDCONST R3 K2
+ 0x84100000, // 0003 CLOSURE R4 P0
+ 0x7C040600, // 0004 CALL R1 3
+ 0xB8060000, // 0005 GETNGBL R1 K0
+ 0x8C040301, // 0006 GETMET R1 R1 K1
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x84100001, // 0008 CLOSURE R4 P1
+ 0x7C040600, // 0009 CALL R1 3
+ 0xB8060000, // 000A GETNGBL R1 K0
+ 0x8C040301, // 000B GETMET R1 R1 K1
+ 0x580C0004, // 000C LDCONST R3 K4
+ 0x84100002, // 000D CLOSURE R4 P2
+ 0x7C040600, // 000E CALL R1 3
+ 0xA0000000, // 000F CLOSE R0
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_mdns_announce_hostnames
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080000, // 0002 LDBOOL R2 0 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(wifi),
+ /* K2 */ be_nested_str_weak(up),
+ /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K4 */ be_nested_str_weak(add_rule),
+ /* K5 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K6 */ be_nested_str_weak(matter_mdns_host),
+ /* K7 */ be_nested_str_weak(eth),
+ /* K8 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_mdns_announce_hostnames),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x94040302, // 0003 GETIDX R1 R1 K2
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x500C0000, // 0006 LDBOOL R3 0 0
+ 0x7C040400, // 0007 CALL R1 2
+ 0x70020005, // 0008 JMP #000F
+ 0xB8060000, // 0009 GETNGBL R1 K0
+ 0x8C040304, // 000A GETMET R1 R1 K4
+ 0x580C0005, // 000B LDCONST R3 K5
+ 0x84100000, // 000C CLOSURE R4 P0
+ 0x58140006, // 000D LDCONST R5 K6
+ 0x7C040800, // 000E CALL R1 4
+ 0xB8060000, // 000F GETNGBL R1 K0
+ 0x8C040307, // 0010 GETMET R1 R1 K7
+ 0x7C040200, // 0011 CALL R1 1
+ 0x94040302, // 0012 GETIDX R1 R1 K2
+ 0x78060003, // 0013 JMPF R1 #0018
+ 0x8C040103, // 0014 GETMET R1 R0 K3
+ 0x500C0200, // 0015 LDBOOL R3 1 0
+ 0x7C040400, // 0016 CALL R1 2
+ 0x70020005, // 0017 JMP #001E
+ 0xB8060000, // 0018 GETNGBL R1 K0
+ 0x8C040304, // 0019 GETMET R1 R1 K4
+ 0x580C0008, // 001A LDCONST R3 K8
+ 0x84100001, // 001B CLOSURE R4 P1
+ 0x58140006, // 001C LDCONST R5 K6
+ 0x7C040800, // 001D CALL R1 4
+ 0xA0000000, // 001E CLOSE R0
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_init, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[46]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(get_option),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(MATTER_OPTION),
+ /* K5 */ be_nested_str_weak(UI),
+ /* K6 */ be_nested_str_weak(profiler),
+ /* K7 */ be_nested_str_weak(Profiler),
+ /* K8 */ be_nested_str_weak(started),
+ /* K9 */ be_nested_str_weak(tick),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(plugins_config_remotes),
+ /* K14 */ be_nested_str_weak(vendorid),
+ /* K15 */ be_nested_str_weak(VENDOR_ID),
+ /* K16 */ be_nested_str_weak(productid),
+ /* K17 */ be_nested_str_weak(PRODUCT_ID),
+ /* K18 */ be_nested_str_weak(root_iterations),
+ /* K19 */ be_nested_str_weak(PBKDF_ITERATIONS),
+ /* K20 */ be_nested_str_weak(next_ep),
+ /* K21 */ be_const_int(1),
+ /* K22 */ be_nested_str_weak(root_salt),
+ /* K23 */ be_nested_str_weak(random),
+ /* K24 */ be_nested_str_weak(ipv4only),
+ /* K25 */ be_nested_str_weak(disable_bridge_mode),
+ /* K26 */ be_nested_str_weak(load_param),
+ /* K27 */ be_nested_str_weak(sessions),
+ /* K28 */ be_nested_str_weak(Session_Store),
+ /* K29 */ be_nested_str_weak(load_fabrics),
+ /* K30 */ be_nested_str_weak(message_handler),
+ /* K31 */ be_nested_str_weak(MessageHandler),
+ /* K32 */ be_nested_str_weak(events),
+ /* K33 */ be_nested_str_weak(EventHandler),
+ /* K34 */ be_nested_str_weak(ui),
+ /* K35 */ be_nested_str_weak(wifi),
+ /* K36 */ be_nested_str_weak(up),
+ /* K37 */ be_nested_str_weak(eth),
+ /* K38 */ be_nested_str_weak(start),
+ /* K39 */ be_nested_str_weak(add_rule),
+ /* K40 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K41 */ be_nested_str_weak(matter_start),
+ /* K42 */ be_nested_str_weak(Eth_X23Connected),
+ /* K43 */ be_nested_str_weak(_init_basic_commissioning),
+ /* K44 */ be_nested_str_weak(add_driver),
+ /* K45 */ be_nested_str_weak(register_commands),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[112]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0xB8120600, // 0003 GETNGBL R4 K3
+ 0x88100904, // 0004 GETMBR R4 R4 K4
+ 0x7C080400, // 0005 CALL R2 2
+ 0x740A0004, // 0006 JMPT R2 #000C
+ 0xB80A0600, // 0007 GETNGBL R2 K3
+ 0x8C080505, // 0008 GETMET R2 R2 K5
+ 0x5C100000, // 0009 MOVE R4 R0
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000400, // 000B RET 0
+ 0xB80A0600, // 000C GETNGBL R2 K3
+ 0xB80E0600, // 000D GETNGBL R3 K3
+ 0x8C0C0707, // 000E GETMET R3 R3 K7
+ 0x7C0C0200, // 000F CALL R3 1
+ 0x900A0C03, // 0010 SETMBR R2 K6 R3
+ 0x50080000, // 0011 LDBOOL R2 0 0
+ 0x90021002, // 0012 SETMBR R0 K8 R2
+ 0x9002130A, // 0013 SETMBR R0 K9 K10
+ 0x60080012, // 0014 GETGBL R2 G18
+ 0x7C080000, // 0015 CALL R2 0
+ 0x90021602, // 0016 SETMBR R0 K11 R2
+ 0x50080000, // 0017 LDBOOL R2 0 0
+ 0x90021802, // 0018 SETMBR R0 K12 R2
+ 0x60080013, // 0019 GETGBL R2 G19
+ 0x7C080000, // 001A CALL R2 0
+ 0x90021A02, // 001B SETMBR R0 K13 R2
+ 0x8808010F, // 001C GETMBR R2 R0 K15
+ 0x90021C02, // 001D SETMBR R0 K14 R2
+ 0x88080111, // 001E GETMBR R2 R0 K17
+ 0x90022002, // 001F SETMBR R0 K16 R2
+ 0x88080113, // 0020 GETMBR R2 R0 K19
+ 0x90022402, // 0021 SETMBR R0 K18 R2
+ 0x90022915, // 0022 SETMBR R0 K20 K21
+ 0x8C080317, // 0023 GETMET R2 R1 K23
+ 0x5412000F, // 0024 LDINT R4 16
+ 0x7C080400, // 0025 CALL R2 2
+ 0x90022C02, // 0026 SETMBR R0 K22 R2
+ 0x50080000, // 0027 LDBOOL R2 0 0
+ 0x90023002, // 0028 SETMBR R0 K24 R2
+ 0x50080000, // 0029 LDBOOL R2 0 0
+ 0x90023202, // 002A SETMBR R0 K25 R2
+ 0x8C08011A, // 002B GETMET R2 R0 K26
+ 0x7C080200, // 002C CALL R2 1
+ 0xB80A0600, // 002D GETNGBL R2 K3
+ 0x8C08051C, // 002E GETMET R2 R2 K28
+ 0x5C100000, // 002F MOVE R4 R0
+ 0x7C080400, // 0030 CALL R2 2
+ 0x90023602, // 0031 SETMBR R0 K27 R2
+ 0x8808011B, // 0032 GETMBR R2 R0 K27
+ 0x8C08051D, // 0033 GETMET R2 R2 K29
+ 0x7C080200, // 0034 CALL R2 1
+ 0xB80A0600, // 0035 GETNGBL R2 K3
+ 0x8C08051F, // 0036 GETMET R2 R2 K31
+ 0x5C100000, // 0037 MOVE R4 R0
+ 0x7C080400, // 0038 CALL R2 2
+ 0x90023C02, // 0039 SETMBR R0 K30 R2
+ 0xB80A0600, // 003A GETNGBL R2 K3
+ 0x8C080521, // 003B GETMET R2 R2 K33
+ 0x5C100000, // 003C MOVE R4 R0
+ 0x7C080400, // 003D CALL R2 2
+ 0x90024002, // 003E SETMBR R0 K32 R2
+ 0xB80A0600, // 003F GETNGBL R2 K3
+ 0x8C080505, // 0040 GETMET R2 R2 K5
+ 0x5C100000, // 0041 MOVE R4 R0
+ 0x7C080400, // 0042 CALL R2 2
+ 0x90024402, // 0043 SETMBR R0 K34 R2
+ 0xB80A0200, // 0044 GETNGBL R2 K1
+ 0x8C080523, // 0045 GETMET R2 R2 K35
+ 0x7C080200, // 0046 CALL R2 1
+ 0x94080524, // 0047 GETIDX R2 R2 K36
+ 0x740A0004, // 0048 JMPT R2 #004E
+ 0xB80A0200, // 0049 GETNGBL R2 K1
+ 0x8C080525, // 004A GETMET R2 R2 K37
+ 0x7C080200, // 004B CALL R2 1
+ 0x94080524, // 004C GETIDX R2 R2 K36
+ 0x780A0001, // 004D JMPF R2 #0050
+ 0x8C080126, // 004E GETMET R2 R0 K38
+ 0x7C080200, // 004F CALL R2 1
+ 0xB80A0200, // 0050 GETNGBL R2 K1
+ 0x8C080523, // 0051 GETMET R2 R2 K35
+ 0x7C080200, // 0052 CALL R2 1
+ 0x94080524, // 0053 GETIDX R2 R2 K36
+ 0x740A0005, // 0054 JMPT R2 #005B
+ 0xB80A0200, // 0055 GETNGBL R2 K1
+ 0x8C080527, // 0056 GETMET R2 R2 K39
+ 0x58100028, // 0057 LDCONST R4 K40
+ 0x84140000, // 0058 CLOSURE R5 P0
+ 0x58180029, // 0059 LDCONST R6 K41
+ 0x7C080800, // 005A CALL R2 4
+ 0xB80A0200, // 005B GETNGBL R2 K1
+ 0x8C080525, // 005C GETMET R2 R2 K37
+ 0x7C080200, // 005D CALL R2 1
+ 0x94080524, // 005E GETIDX R2 R2 K36
+ 0x740A0005, // 005F JMPT R2 #0066
+ 0xB80A0200, // 0060 GETNGBL R2 K1
+ 0x8C080527, // 0061 GETMET R2 R2 K39
+ 0x5810002A, // 0062 LDCONST R4 K42
+ 0x84140001, // 0063 CLOSURE R5 P1
+ 0x58180029, // 0064 LDCONST R6 K41
+ 0x7C080800, // 0065 CALL R2 4
+ 0x8C08012B, // 0066 GETMET R2 R0 K43
+ 0x7C080200, // 0067 CALL R2 1
+ 0xB80A0200, // 0068 GETNGBL R2 K1
+ 0x8C08052C, // 0069 GETMET R2 R2 K44
+ 0x5C100000, // 006A MOVE R4 R0
+ 0x7C080400, // 006B CALL R2 2
+ 0x8C08012D, // 006C GETMET R2 R0 K45
+ 0x7C080200, // 006D CALL R2 1
+ 0xA0000000, // 006E CLOSE R0
+ 0x80000000, // 006F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_announce_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
})
)
);
@@ -6093,133 +6100,21 @@ be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
** Solidified class: Matter_Device
********************************************************************/
be_local_class(Matter_Device,
- 39,
+ 40,
NULL,
- be_nested_map(118,
+ be_nested_map(119,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(vendorid, -1), be_const_var(22) },
- { be_const_key_weak(mdns_remove_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
- { be_const_key_weak(commissioning_discriminator, 11), be_const_var(13) },
- { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
- { be_const_key_weak(probe_sensor_time, -1), be_const_var(37) },
- { be_const_key_weak(generate_random_passcode, 94), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
- { be_const_key_weak(plugins_classes, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(52,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(v_rain, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
- { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
- { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
- { be_const_key_weak(http_occupancy, 4), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
- { be_const_key_weak(flow, -1), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
- { be_const_key_weak(relay, 17), be_const_class(be_class_Matter_Plugin_OnOff) },
- { be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
- { be_const_key_weak(v_temp, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
- { be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
- { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
- { be_const_key_weak(onoff, 2), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
- { be_const_key_weak(http_waterleak, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_light2, 49), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
- { be_const_key_weak(v_flow, 14), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
- { be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
- { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
- { be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
- { be_const_key_weak(v_waterleak, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
- { be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
- { be_const_key_weak(light2, -1), be_const_class(be_class_Matter_Plugin_Light2) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
- { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
- { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
- { be_const_key_weak(v_illuminance, 12), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
- { be_const_key_weak(http_pressure, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
- { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(v_humidity, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
- { be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
- { be_const_key_weak(v_light0, 1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
- { be_const_key_weak(http_relay, 20), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(http_temperature, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
- { be_const_key_weak(root, 28), be_const_class(be_class_Matter_Plugin_Root) },
- { be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(v_airquality, 33), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
- { be_const_key_weak(aggregator, 22), be_const_class(be_class_Matter_Plugin_Aggregator) },
- { be_const_key_weak(v_contact, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
- { be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
- { be_const_key_weak(http_light3, 44), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
- { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
- { be_const_key_weak(shutter, 21), be_const_class(be_class_Matter_Plugin_Shutter) },
- { be_const_key_weak(contact, -1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(light3, 15), be_const_class(be_class_Matter_Plugin_Light3) },
- { be_const_key_weak(airquality, 0), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
- { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
- { be_const_key_weak(http_illuminance, 31), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
- })) ) } )) },
- { be_const_key_weak(start_operational_discovery, -1), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
- { be_const_key_weak(tick, -1), be_const_var(10) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Device_invoke_request_closure) },
- { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
- { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_Device_every_250ms_closure) },
- { be_const_key_weak(root_passcode, 16), be_const_var(28) },
- { be_const_key_weak(hostname_eth, -1), be_const_var(21) },
- { be_const_key_weak(add_read_sensors_schedule, 117), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
- { be_const_key_weak(udp_server, -1), be_const_var(5) },
+ { be_const_key_weak(commissioning_L, -1), be_const_var(17) },
{ be_const_key_weak(save_before_restart, -1), be_const_closure(class_Matter_Device_save_before_restart_closure) },
- { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
- { be_const_key_weak(MtrUpdate, -1), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
- { be_const_key_weak(root_discriminator, -1), be_const_var(27) },
- { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
- { be_const_key_weak(conf_to_log, 32), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
- { be_const_key_weak(remove_fabric, -1), be_const_closure(class_Matter_Device_remove_fabric_closure) },
- { be_const_key_weak(k2l, 70), be_const_static_closure(class_Matter_Device_k2l_closure) },
- { be_const_key_weak(http_remotes, -1), be_const_var(26) },
- { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
- { be_const_key_weak(commissioning_open, 114), be_const_var(11) },
- { be_const_key_weak(root_iterations, -1), be_const_var(33) },
- { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
- { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Device_init_closure) },
- { be_const_key_weak(root_L, 3), be_const_var(36) },
- { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
- { be_const_key_weak(UDP_PORT, -1), be_const_int(5540) },
- { be_const_key_weak(_compute_pbkdf, 49), be_const_closure(class_Matter_Device__compute_pbkdf_closure) },
- { be_const_key_weak(msg_received, 78), be_const_closure(class_Matter_Device_msg_received_closure) },
- { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
- { be_const_key_weak(ipv4only, -1), be_const_var(29) },
- { be_const_key_weak(start_commissioning_complete, 77), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
- { be_const_key_weak(root_salt, 21), be_const_var(34) },
- { be_const_key_weak(start_commissioning_complete_deferred, 67), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
- { be_const_key_weak(plugins_config, 17), be_const_var(3) },
- { be_const_key_weak(commissioning_admin_fabric, 26), be_const_var(17) },
- { be_const_key_weak(profiler, -1), be_const_var(6) },
- { be_const_key_weak(process_attribute_expansion, -1), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
- { be_const_key_weak(MtrInfo, -1), be_const_closure(class_Matter_Device_MtrInfo_closure) },
- { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
- { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
- { be_const_key_weak(read_sensors_scheduler, -1), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
- { be_const_key_weak(started, 34), be_const_var(0) },
- { be_const_key_weak(is_root_commissioning_open, -1), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
- { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
- { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
- { be_const_key_weak(find_plugin_by_endpoint, 96), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
- { be_const_key_weak(register_commands, -1), be_const_closure(class_Matter_Device_register_commands_closure) },
- { be_const_key_weak(commissioning_instance_wifi, 104), be_const_var(18) },
- { be_const_key_weak(bridge_remove_endpoint, -1), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
- { be_const_key_weak(mdns_remove_PASE, 38), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
- { be_const_key_weak(root_w0, 45), be_const_var(35) },
- { be_const_key_weak(plugins_persist, 40), be_const_var(2) },
- { be_const_key_weak(message_handler, -1), be_const_var(7) },
- { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
- { be_const_key_weak(disable_bridge_mode, 2), be_const_var(30) },
- { be_const_key_weak(debug, 8), be_const_var(32) },
- { be_const_key_weak(commissioning_instance_eth, 72), be_const_var(19) },
- { be_const_key_weak(commissioning_w0, -1), be_const_var(15) },
- { be_const_key_weak(PASSCODE_INVALID, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(mdns_pase_eth, -1), be_const_var(25) },
+ { be_const_key_weak(start_operational_discovery, 30), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(productid, -1), be_const_var(24) },
+ { be_const_key_weak(find_plugin_by_endpoint, -1), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
+ { be_const_key_weak(read_sensors_scheduler, 22), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
+ { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
+ { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
+ { be_const_key_weak(PASSCODE_INVALID, 51), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(12,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@@ -6235,56 +6130,170 @@ be_local_class(Matter_Device,
be_const_int(12345678),
be_const_int(87654321),
})) ) } )) },
- { be_const_key_weak(bridge_add_endpoint, 54), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
- { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(25) },
- { be_const_key_weak(received_ack, 4), be_const_closure(class_Matter_Device_received_ack_closure) },
- { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(38) },
- { be_const_key_weak(compute_manual_pairing_code, 111), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
- { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
- { be_const_key_weak(hostname_wifi, -1), be_const_var(20) },
- { be_const_key_weak(PBKDF_ITERATIONS, 90), be_const_int(1000) },
- { be_const_key_weak(plugins_config_remotes, -1), be_const_var(4) },
- { be_const_key_weak(get_plugin_remote_info, 112), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
- { be_const_key_weak(sessions, 47), be_const_var(8) },
- { be_const_key_weak(mdns_pase_eth, -1), be_const_var(24) },
- { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
- { be_const_key_weak(_trigger_read_sensors, 52), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
- { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
- { be_const_key_weak(get_active_endpoints, 10), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
- { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(_instantiate_plugins_from_config, 83), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
{ be_const_key_weak(FILENAME, -1), be_nested_str_weak(_matter_device_X2Ejson) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
- { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
- { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
- { be_const_key_weak(start_mdns_announce_hostnames, -1), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
- { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
- { be_const_key_weak(process_attribute_read_solo, 65), be_const_closure(class_Matter_Device_process_attribute_read_solo_closure) },
- { be_const_key_weak(start, 57), be_const_closure(class_Matter_Device_start_closure) },
- { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
- { be_const_key_weak(attribute_updated, 53), be_const_closure(class_Matter_Device_attribute_updated_closure) },
- { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
- { be_const_key_weak(compute_qrcode_content, 35), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
- { be_const_key_weak(_mdns_announce_hostname, -1), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
- { be_const_key_weak(commissioning_salt, -1), be_const_var(14) },
- { be_const_key_weak(PRODUCT_ID, 43), be_const_int(32768) },
- { be_const_key_weak(msg_send, -1), be_const_closure(class_Matter_Device_msg_send_closure) },
- { be_const_key_weak(register_http_remote, -1), be_const_closure(class_Matter_Device_register_http_remote_closure) },
- { be_const_key_weak(k2l_num, 37), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
- { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
- { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
- { be_const_key_weak(next_ep, -1), be_const_var(31) },
- { be_const_key_weak(commissioning_iterations, -1), be_const_var(12) },
- { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
- { be_const_key_weak(ui, -1), be_const_var(9) },
- { be_const_key_weak(start_basic_commissioning, 13), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
+ { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Device_invoke_request_closure) },
+ { be_const_key_weak(generate_random_passcode, -1), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
+ { be_const_key_weak(UDP_PORT, 74), be_const_int(5540) },
{ be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
- { be_const_key_weak(productid, -1), be_const_var(23) },
+ { be_const_key_weak(debug, -1), be_const_var(33) },
{ be_const_key_weak(plugins, -1), be_const_var(1) },
- { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(commissioning_L, -1), be_const_var(16) },
+ { be_const_key_weak(process_attribute_expansion, 59), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
+ { be_const_key_weak(commissioning_open, -1), be_const_var(12) },
+ { be_const_key_weak(plugins_config, -1), be_const_var(3) },
+ { be_const_key_weak(vendorid, -1), be_const_var(23) },
+ { be_const_key_weak(start_mdns_announce_hostnames, 12), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
+ { be_const_key_weak(register_commands, 61), be_const_closure(class_Matter_Device_register_commands_closure) },
+ { be_const_key_weak(k2l, 32), be_const_static_closure(class_Matter_Device_k2l_closure) },
+ { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
+ { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
+ { be_const_key_weak(remove_fabric, -1), be_const_closure(class_Matter_Device_remove_fabric_closure) },
+ { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
+ { be_const_key_weak(plugins_classes, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(53,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
+ { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
+ { be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
+ { be_const_key_weak(v_contact, 36), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
+ { be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
+ { be_const_key_weak(flow, 8), be_const_class(be_class_Matter_Plugin_Sensor_Flow) },
+ { be_const_key_weak(http_contact, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Contact) },
+ { be_const_key_weak(shutter, -1), be_const_class(be_class_Matter_Plugin_Shutter) },
+ { be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
+ { be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
+ { be_const_key_weak(http_pressure, 32), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
+ { be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
+ { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
+ { be_const_key_weak(v_illuminance, 15), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(contact, 1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(http_relay, 12), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
+ { be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
+ { be_const_key_weak(http_occupancy, 6), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
+ { be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
+ { be_const_key_weak(root, -1), be_const_class(be_class_Matter_Plugin_Root) },
+ { be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
+ { be_const_key_weak(v_temp, 20), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
+ { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
+ { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
+ { be_const_key_weak(light2, 27), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
+ { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
+ { be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
+ { be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
+ { be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
+ { be_const_key_weak(http_humidity, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Humidity) },
+ { be_const_key_weak(http_illuminance, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Illuminance) },
+ { be_const_key_weak(v_rain, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
+ { be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
+ { be_const_key_weak(http_waterleak, 45), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
+ { be_const_key_weak(airquality, 35), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
+ { be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
+ { be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
+ { be_const_key_weak(http_temperature, 41), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
+ { be_const_key_weak(v_humidity, 29), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
+ { be_const_key_weak(aggregator, 11), be_const_class(be_class_Matter_Plugin_Aggregator) },
+ { be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
+ { be_const_key_weak(gensw, -1), be_const_class(be_class_Matter_Plugin_Sensor_GenericSwitch) },
+ })) ) } )) },
+ { be_const_key_weak(get_plugin_remote_info, 35), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
+ { be_const_key_weak(message_handler, -1), be_const_var(7) },
+ { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
+ { be_const_key_weak(root_salt, 87), be_const_var(35) },
+ { be_const_key_weak(start_basic_commissioning, 8), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
+ { be_const_key_weak(hostname_wifi, -1), be_const_var(21) },
{ be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
- { be_const_key_weak(stop, -1), be_const_closure(class_Matter_Device_stop_closure) },
+ { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
+ { be_const_key_weak(commissioning_discriminator, -1), be_const_var(14) },
+ { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
+ { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
+ { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
+ { be_const_key_weak(PBKDF_ITERATIONS, -1), be_const_int(1000) },
+ { be_const_key_weak(resolve_attribute_read_solo, -1), be_const_closure(class_Matter_Device_resolve_attribute_read_solo_closure) },
+ { be_const_key_weak(http_remotes, -1), be_const_var(27) },
+ { be_const_key_weak(mdns_pase_wifi, 71), be_const_var(26) },
+ { be_const_key_weak(_instantiate_plugins_from_config, 107), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
+ { be_const_key_weak(commissioning_w0, 114), be_const_var(16) },
+ { be_const_key_weak(start, -1), be_const_closure(class_Matter_Device_start_closure) },
+ { be_const_key_weak(plugins_persist, 63), be_const_var(2) },
+ { be_const_key_weak(_trigger_read_sensors, -1), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
+ { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
+ { be_const_key_weak(mdns_remove_PASE, -1), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
+ { be_const_key_weak(get_active_endpoints, 40), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
+ { be_const_key_weak(bridge_remove_endpoint, 103), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
+ { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
+ { be_const_key_weak(commissioning_instance_wifi, -1), be_const_var(19) },
+ { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
+ { be_const_key_weak(adjust_next_ep, 110), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
+ { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
+ { be_const_key_weak(attribute_updated, 34), be_const_closure(class_Matter_Device_attribute_updated_closure) },
+ { be_const_key_weak(next_ep, -1), be_const_var(32) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
+ { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(18) },
+ { be_const_key_weak(msg_send, -1), be_const_closure(class_Matter_Device_msg_send_closure) },
+ { be_const_key_weak(register_http_remote, 41), be_const_closure(class_Matter_Device_register_http_remote_closure) },
+ { be_const_key_weak(tick, -1), be_const_var(10) },
+ { be_const_key_weak(udp_server, 45), be_const_var(5) },
+ { be_const_key_weak(bridge_add_endpoint, 97), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
+ { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
+ { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
+ { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
+ { be_const_key_weak(root_iterations, 112), be_const_var(34) },
+ { be_const_key_weak(start_commissioning_complete, 62), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
+ { be_const_key_weak(compute_manual_pairing_code, -1), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
+ { be_const_key_weak(MtrInfo, 98), be_const_closure(class_Matter_Device_MtrInfo_closure) },
+ { be_const_key_weak(ipv4only, 96), be_const_var(30) },
+ { be_const_key_weak(commissioning_instance_eth, -1), be_const_var(20) },
+ { be_const_key_weak(MtrUpdate, 25), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
+ { be_const_key_weak(profiler, -1), be_const_var(6) },
+ { be_const_key_weak(root_L, -1), be_const_var(37) },
+ { be_const_key_weak(start_operational_discovery_deferred, 72), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
+ { be_const_key_weak(add_read_sensors_schedule, 92), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
+ { be_const_key_weak(hostname_eth, 91), be_const_var(22) },
+ { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
+ { be_const_key_weak(every_250ms, 77), be_const_closure(class_Matter_Device_every_250ms_closure) },
+ { be_const_key_weak(compute_qrcode_content, 81), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
+ { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
+ { be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_Device_msg_received_closure) },
+ { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
+ { be_const_key_weak(root_discriminator, 75), be_const_var(28) },
+ { be_const_key_weak(events, -1), be_const_var(11) },
+ { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
+ { be_const_key_weak(ui, 69), be_const_var(9) },
+ { be_const_key_weak(_mdns_announce_hostname, 68), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
+ { be_const_key_weak(_compute_pbkdf, -1), be_const_closure(class_Matter_Device__compute_pbkdf_closure) },
+ { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
+ { be_const_key_weak(mdns_remove_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
+ { be_const_key_weak(root_w0, -1), be_const_var(36) },
+ { be_const_key_weak(received_ack, 55), be_const_closure(class_Matter_Device_received_ack_closure) },
+ { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
+ { be_const_key_weak(PRODUCT_ID, 49), be_const_int(32768) },
+ { be_const_key_weak(autoconf_device_map, 26), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
+ { be_const_key_weak(conf_to_log, 44), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
+ { be_const_key_weak(sessions, -1), be_const_var(8) },
+ { be_const_key_weak(probe_sensor_time, -1), be_const_var(38) },
+ { be_const_key_weak(plugins_config_remotes, -1), be_const_var(4) },
+ { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(39) },
+ { be_const_key_weak(is_root_commissioning_open, -1), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
+ { be_const_key_weak(started, -1), be_const_var(0) },
+ { be_const_key_weak(disable_bridge_mode, -1), be_const_var(31) },
+ { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
+ { be_const_key_weak(commissioning_salt, 23), be_const_var(15) },
+ { be_const_key_weak(root_passcode, -1), be_const_var(29) },
+ { be_const_key_weak(stop, 20), be_const_closure(class_Matter_Device_stop_closure) },
+ { be_const_key_weak(commissioning_iterations, -1), be_const_var(13) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Device_init_closure) },
+ { be_const_key_weak(start_commissioning_complete_deferred, 4), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
})),
be_str_weak(Matter_Device)
);
From d15b88f7462e6d3ab9b7ee9305edd8ffa5d83f1e Mon Sep 17 00:00:00 2001
From: Christian Baars
Date: Sun, 16 Jun 2024 20:54:59 +0200
Subject: [PATCH 069/252] improve parser (#21648)
---
tasmota/include/xsns_62_esp32_mi.h | 14 +-
.../tasmota_xsns_sensor/xsns_62_esp32_mi.ino | 162 ++++++++++--------
2 files changed, 101 insertions(+), 75 deletions(-)
diff --git a/tasmota/include/xsns_62_esp32_mi.h b/tasmota/include/xsns_62_esp32_mi.h
index 787c32fc2..9995b2ff1 100644
--- a/tasmota/include/xsns_62_esp32_mi.h
+++ b/tasmota/include/xsns_62_esp32_mi.h
@@ -44,8 +44,7 @@ struct frame_crtl_t{
};
struct mi_payload_t{
- uint8_t type;
- uint8_t ten;
+ uint16_t type;
uint8_t size;
union {
struct{ //0d
@@ -61,6 +60,7 @@ struct mi_payload_t{
uint8_t leak; //14
uint32_t NMT; //17
uint8_t door; //19
+ uint16_t objID; //0x0002
struct{ //01
uint8_t num;
uint8_t value;
@@ -274,7 +274,7 @@ struct mi_sensor_t{
uint32_t leak:1;
uint32_t payload:1;
};
- uint32_t raw;
+ uint32_t raw = 0;
} feature;
union {
struct {
@@ -295,18 +295,18 @@ struct mi_sensor_t{
uint32_t leak:1;
uint32_t payload:1;
};
- uint32_t raw;
+ uint32_t raw = 0;
} eventType;
union{
struct{
uint8_t hasWrongKey:1;
uint8_t isUnbounded:1;
};
- uint8_t raw;
+ uint8_t raw = 0;
} status;
- int RSSI;
- uint32_t lastTime;
+ int RSSI = 0;
+ uint32_t lastTime = 0;
uint32_t lux;
uint8_t lux_history[24];
float temp; //Flora, MJ_HT_V1, LYWSD0x, CGx
diff --git a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
index e4249095e..66a32ac41 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi.ino
@@ -1668,7 +1668,7 @@ if(_beacon->frame.isEncrypted){
}
else{
uint32_t _offset = (_beacon->frame.includesCapability)?0:1;
- uint32_t _payloadSize = (_beacon->frame.includesCapability)?_beacon->payload.size:_beacon->payload.ten;
+ size_t _payloadSize = *(uint8_t*)(&_beacon->payload.size - _offset);
if(_beacon->frame.includesMAC && _beacon->frame.includesObj) {
// AddLog(LOG_LEVEL_DEBUG,PSTR("M32: offset %u, size: %u"),_offset,_payloadSize);
memcpy((uint8_t*)&_payload,(uint8_t*)(&_beacon->payload)-_offset, _payloadSize + 3);
@@ -1676,14 +1676,17 @@ else{
}
}
if(decryptRet!=0){
- AddLog(LOG_LEVEL_DEBUG,PSTR("M32: Decryption failed with error: %d"),decryptRet);
+ AddLog(LOG_LEVEL_DEBUG,PSTR("M32: Decryption failed with error: %d for %u"),decryptRet, _slot);
if (decryptRet == -1) MIBLEsensors[_slot].status.hasWrongKey = 1;
return;
}
// AddLog(LOG_LEVEL_DEBUG,PSTR("%s at slot %u with payload type: %02x"), MI32getDeviceName(_slot),_slot,_payload.type);
switch(_payload.type){
- case 0x01:
+ case 0x0002:
+ AddLog(LOG_LEVEL_DEBUG_MORE,PSTR("M32: obj id to pair: %02x"),_payload.objID); // pretty pointless for Tasmota
+ break;
+ case 0x1001:
MIBLEsensors[_slot].feature.Btn = 1;
if(_payload.Btn.type == 4){ //dimmer knob rotation
MIBLEsensors[_slot].eventType.knob = 1;
@@ -1716,7 +1719,7 @@ if(decryptRet!=0){
MI32.mode.shallTriggerTele = 1;
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 1: U16: %u Button"), MIBLEsensors[_slot].Btn );
break;
- case 0x04:
+ case 0x1004:
MIBLEsensors[_slot].feature.temp = 1;
_tempFloat=(float)(_payload.temp)/10.0f;
if(_tempFloat<60){
@@ -1729,7 +1732,7 @@ if(decryptRet!=0){
#endif //USE_MI_EXT_GUI
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 4: U16: %u Temp"), _payload.temp );
break;
- case 0x06:
+ case 0x1006:
MIBLEsensors[_slot].feature.hum = 1;
_tempFloat=(float)(_payload.hum)/10.0f;
if(_tempFloat<101){
@@ -1742,7 +1745,7 @@ if(decryptRet!=0){
#endif //USE_MI_EXT_GUI
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 6: U16: %u Hum"), _payload.hum);
break;
- case 0x07:
+ case 0x1007:
MIBLEsensors[_slot].feature.lux = 1;
MIBLEsensors[_slot].lux=_payload.lux & 0x00ffffff;
if(MIBLEsensors[_slot].type==MJYD2S){
@@ -1754,21 +1757,21 @@ if(decryptRet!=0){
#endif //USE_MI_EXT_GUI
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 7: U24: %u Lux"), _payload.lux & 0x00ffffff);
break;
- case 0x08:
+ case 0x1008:
MIBLEsensors[_slot].feature.moist = 1;
MIBLEsensors[_slot].moisture=_payload.moist;
MIBLEsensors[_slot].eventType.moist = 1;
DEBUG_SENSOR_LOG(PSTR("Mode 8: moisture updated"));
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 8: U8: %u Moisture"), _payload.moist);
break;
- case 0x09:
+ case 0x1009:
MIBLEsensors[_slot].feature.fert = 1;
MIBLEsensors[_slot].fertility=_payload.fert;
MIBLEsensors[_slot].eventType.fert = 1;
DEBUG_SENSOR_LOG(PSTR("Mode 9: fertility updated"));
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 9: U16: %u Fertility"), _payload.fert);
break;
- case 0x0a:
+ case 0x100a: case 0x4803:
MIBLEsensors[_slot].feature.bat = 1;
if(MI32.option.ignoreBogusBattery){
if(MIBLEsensors[_slot].type==LYWSD03MMC || MIBLEsensors[_slot].type==MHOC401){
@@ -1782,7 +1785,7 @@ if(decryptRet!=0){
}
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode a: U8: %u %%"), _payload.bat);
break;
- case 0x0d:
+ case 0x100d:
_tempFloat=(float)(_payload.HT.temp)/10.0f;
if(_tempFloat<60){
MIBLEsensors[_slot].temp = _tempFloat;
@@ -1797,8 +1800,8 @@ if(decryptRet!=0){
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode d: U16: %x Temp U16: %x Hum"), _payload.HT.temp, _payload.HT.hum);
break;
- case 0x0f:
- if (_payload.ten!=0) break;
+ case 0x000f:
+ // if (_payload.ten!=0) break;
MIBLEsensors[_slot].feature.motion = 1;
MIBLEsensors[_slot].feature.NMT = 1; //only driver based
MIBLEsensors[_slot].eventType.motion = 1;
@@ -1812,20 +1815,20 @@ if(decryptRet!=0){
#endif //USE_MI_EXT_GUI
// AddLog(LOG_LEVEL_DEBUG,PSTR("motion: primary"),MIBLEsensors[_slot].lux );
break;
- case 0x14:
+ case 0x1014:
MIBLEsensors[_slot].feature.leak = 1;
MIBLEsensors[_slot].leak = _payload.leak;
MIBLEsensors[_slot].eventType.leak = 1;
if(_payload.leak>0) MI32.mode.shallTriggerTele = 1;
break;
- case 0x17:
+ case 0x1017:
MIBLEsensors[_slot].feature.NMT = 1;
MIBLEsensors[_slot].NMT = _payload.NMT;
MIBLEsensors[_slot].eventType.NMT = 1;
MI32.mode.shallTriggerTele = 1;
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 17: NMT: %u seconds"), _payload.NMT);
break;
- case 0x19:
+ case 0x1019:
MIBLEsensors[_slot].feature.door = 1;
MIBLEsensors[_slot].door = _payload.door;
MIBLEsensors[_slot].eventType.door = 1;
@@ -1833,7 +1836,27 @@ if(decryptRet!=0){
MI32.mode.shallTriggerTele = 1;
// AddLog(LOG_LEVEL_DEBUG,PSTR("Mode 19: %u"), _payload.door);
break;
-
+ case 0x4e0c:
+ MIBLEsensors[_slot].feature.Btn = 1;
+ MIBLEsensors[_slot].Btn = _payload.size; // a guess, makes sense for the XMWXKG01LM
+ MIBLEsensors[_slot].BtnType = 0;
+ MIBLEsensors[_slot].eventType.Btn = 1;
+ MI32.mode.shallTriggerTele = 1;
+ break;
+ case 0x4e0d:
+ MIBLEsensors[_slot].feature.Btn = 1;
+ MIBLEsensors[_slot].Btn = _payload.size;
+ MIBLEsensors[_slot].BtnType = 1;
+ MIBLEsensors[_slot].eventType.Btn = 1;
+ MI32.mode.shallTriggerTele = 1;
+ break;
+ case 0x4e0e:
+ MIBLEsensors[_slot].feature.Btn = 1;
+ MIBLEsensors[_slot].Btn = _payload.size;
+ MIBLEsensors[_slot].BtnType = 2;
+ MIBLEsensors[_slot].eventType.Btn = 1;
+ MI32.mode.shallTriggerTele = 1;
+ break;
default:
if (MIBLEsensors[_slot].type==NLIGHT){
MIBLEsensors[_slot].eventType.motion = 1; //motion
@@ -1844,6 +1867,7 @@ if(decryptRet!=0){
else{
//unknown payload
AddLogBuffer(LOG_LEVEL_DEBUG,(uint8_t*)_buf,_bufSize);
+ AddLogBuffer(LOG_LEVEL_DEBUG,(uint8_t*)&_payload,_payload.size + 2);
}
break;
}
@@ -1856,45 +1880,47 @@ void MI32parseBTHomePacket(char * _buf, uint32_t length, uint8_t addr[6], int RS
const uint32_t _slot = MIBLEgetSensorSlot(addr, 0xb770, 0); // fake ID, constant fake counter
if(_slot==0xff) return;
+ auto &_sensor = MIBLEsensors[_slot];
if (optionalName[0] != '\0'){
- AddLog(LOG_LEVEL_DEBUG,PSTR("%s at slot %u"), optionalName,_slot);
+ if(_sensor.name == nullptr){
+ _sensor.name = new char[strlen(optionalName) + 1];
+ strcpy(_sensor.name, optionalName);
+ }
}
- const auto _sensor = &MIBLEsensors[_slot];
- _sensor->RSSI = RSSI;
- // _sensor->lastTime = Rtc.local_time;
+ _sensor.RSSI = RSSI;
BTHome_info_t info;
info.byte_value = _buf[0];
- _sensor->feature.needsKey = info.encrypted;
+ _sensor.feature.needsKey = info.encrypted;
uint32_t idx = 1;
while(idx < length - 1){
switch(_buf[idx]){
case 0x00:
- if(_buf[idx+1] == _sensor->lastCnt){
+ if(_buf[idx+1] == _sensor.lastCnt){
return; // known packet
}
- _sensor->lastCnt = _buf[idx+1];
+ _sensor.lastCnt = _buf[idx+1];
idx += 2;
break;
case 0x01:
- _sensor->bat = _buf[idx+1];
- _sensor->eventType.bat = 1;
- _sensor->feature.bat = 1;
+ _sensor.bat = _buf[idx+1];
+ _sensor.eventType.bat = 1;
+ _sensor.feature.bat = 1;
idx += 2;
break;
case 0x02:
- _sensor->temp = (int16_t)(_buf[idx+1]|_buf[idx+2] << 8)/100.0f;
- _sensor->eventType.temp = 1;
- _sensor->feature.temp = 1;
- MI32addHistory(_sensor->temp_history, _sensor->temp, 0);
+ _sensor.temp = (int16_t)(_buf[idx+1]|_buf[idx+2] << 8)/100.0f;
+ _sensor.eventType.temp = 1;
+ _sensor.feature.temp = 1;
+ MI32addHistory(_sensor.temp_history, _sensor.temp, 0);
idx += 3;
break;
case 0x03:
- _sensor->hum = (uint16_t)(_buf[idx+1]|_buf[idx+2] << 8)/100.0f;
- _sensor->eventType.hum = 1;
- _sensor->feature.hum = 1;
- MI32addHistory(_sensor->hum_history, _sensor->hum, 1);
+ _sensor.hum = (uint16_t)(_buf[idx+1]|_buf[idx+2] << 8)/100.0f;
+ _sensor.eventType.hum = 1;
+ _sensor.feature.hum = 1;
+ MI32addHistory(_sensor.hum_history, _sensor.hum, 1);
idx += 3;
break;
case 0x0b:
@@ -1919,7 +1945,7 @@ void MI32parseBTHomePacket(char * _buf, uint32_t length, uint8_t addr[6], int RS
#ifdef USE_MI_EXT_GUI
bitSet(MI32.widgetSlot,_slot);
#endif //USE_MI_EXT_GUI
- _sensor->shallSendMQTT = 1;
+ _sensor.shallSendMQTT = 1;
if(MI32.option.directBridgeMode == 1) MI32.mode.shallTriggerTele = 1;
}
@@ -2402,7 +2428,7 @@ void MI32sendWidget(uint32_t slot){
if (_sensor.bat == 0) _bat[9] = 0;
WSContentSend_P(HTTP_MI32_WIDGET,slot+1,_opacity,_MAC,_sensor.RSSI,_bat,_key,MI32getDeviceName(slot));
- if(_sensor.feature.temp && _sensor.feature.hum){
+ if(_sensor.feature.temp == 1 && _sensor.feature.hum == 1){
if(!isnan(_sensor.temp)){
char _polyline[176];
MI32createPolyline(_polyline,_sensor.temp_history);
@@ -2421,7 +2447,7 @@ void MI32sendWidget(uint32_t slot){
WSContentSend_P(PSTR("" D_JSON_DEWPOINT ": %.1f °C"),CalcTempHumToDew(_sensor.temp,_sensor.hum));
}
}
- else if(_sensor.feature.temp){
+ else if(_sensor.feature.temp == 1){
if(!isnan(_sensor.temp)){
char _polyline[176];
MI32createPolyline(_polyline,_sensor.temp_history);
@@ -2430,7 +2456,7 @@ void MI32sendWidget(uint32_t slot){
WSContentSend_P(PSTR(""));
}
}
- if(_sensor.feature.lux){
+ if(_sensor.feature.lux == 1){
if(_sensor.lux!=0x00ffffff){
char _polyline[176];
MI32createPolyline(_polyline,_sensor.lux_history);
@@ -2439,7 +2465,7 @@ void MI32sendWidget(uint32_t slot){
WSContentSend_P(PSTR(""));
}
}
- if(_sensor.feature.knob){
+ if(_sensor.feature.knob == 1){
if(_sensor.pressed == 0) {
WSContentSend_P(PSTR("Dimmer Steps: %d
"),_sensor.dimmer);
}
@@ -2448,16 +2474,16 @@ void MI32sendWidget(uint32_t slot){
}
WSContentSend_P(PSTR("Hold: %u
"),_sensor.longpress);
}
- if(_sensor.feature.Btn){
+ if(_sensor.feature.Btn == 1){
char _message[16];
GetTextIndexed(_message, sizeof(_message), _sensor.BtnType, kMI32_ButtonMsg);
if(_sensor.Btn<12) WSContentSend_P(PSTR("Button%u: %s
"),_sensor.Btn,_message);
}
- if(_sensor.feature.motion){
+ if(_sensor.feature.motion == 1){
WSContentSend_P(PSTR("Events: %u
"),_sensor.events);
WSContentSend_P(PSTR("No motion for > %u seconds
"),_sensor.NMT);
}
- if(_sensor.feature.door){
+ if(_sensor.feature.door == 1){
if(_sensor.door!=255){
if(_sensor.door==1){
WSContentSend_P(PSTR("Contact open
"));
@@ -2468,7 +2494,7 @@ void MI32sendWidget(uint32_t slot){
WSContentSend_P(PSTR("Events: %u
"),_sensor.events);
}
}
- if(_sensor.feature.leak){
+ if(_sensor.feature.leak == 1){
if(_sensor.leak==1){
WSContentSend_P(PSTR("Leak !!!
"));
}
@@ -2576,8 +2602,8 @@ void MI32Show(bool json)
if(MI32.mode.triggeredTele == 1){
bool tempHumSended = false;
- if(MIBLEsensors[i].feature.tempHum){
- if(MIBLEsensors[i].eventType.tempHum || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
+ if(MIBLEsensors[i].feature.tempHum == 1){
+ if(MIBLEsensors[i].eventType.tempHum == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
if (!isnan(MIBLEsensors[i].hum) && !isnan(MIBLEsensors[i].temp)) {
MI32ShowContinuation(&commaflg);
ResponseAppendTHD(MIBLEsensors[i].temp, MIBLEsensors[i].hum);
@@ -2585,8 +2611,8 @@ void MI32Show(bool json)
}
}
}
- if(MIBLEsensors[i].feature.temp && !tempHumSended){
- if(MIBLEsensors[i].eventType.temp || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1) {
+ if(MIBLEsensors[i].feature.temp == 1 && !tempHumSended){
+ if(MIBLEsensors[i].eventType.temp == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1) {
if (!isnan(MIBLEsensors[i].temp)) {
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"" D_JSON_TEMPERATURE "\":%*_f"),
@@ -2594,8 +2620,8 @@ void MI32Show(bool json)
}
}
}
- if(MIBLEsensors[i].feature.hum && !tempHumSended){
- if(MIBLEsensors[i].eventType.hum || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1) {
+ if(MIBLEsensors[i].feature.hum == 1 && !tempHumSended){
+ if(MIBLEsensors[i].eventType.hum == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1) {
if (!isnan(MIBLEsensors[i].hum)) {
char hum[FLOATSZ];
dtostrfd(MIBLEsensors[i].hum, Settings->flag2.humidity_resolution, hum);
@@ -2604,16 +2630,16 @@ void MI32Show(bool json)
}
}
}
- if (MIBLEsensors[i].feature.lux){
- if(MIBLEsensors[i].eventType.lux || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
+ if (MIBLEsensors[i].feature.lux == 1){
+ if(MIBLEsensors[i].eventType.lux == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
if ((MIBLEsensors[i].lux != 0x0ffffff)) { // this is the error code -> no lux
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"" D_JSON_ILLUMINANCE "\":%u"), MIBLEsensors[i].lux);
}
}
}
- if (MIBLEsensors[i].feature.moist){
- if(MIBLEsensors[i].eventType.moist || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
+ if (MIBLEsensors[i].feature.moist == 1){
+ if(MIBLEsensors[i].eventType.moist == 1 || MI32.mode.triggeredTele == 0 || MI32.option.allwaysAggregate == 1){
if ((MIBLEsensors[i].moisture != 0xff)) {
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"" D_JSON_MOISTURE "\":%u"), MIBLEsensors[i].moisture);
@@ -2628,14 +2654,14 @@ void MI32Show(bool json)
}
}
}
- if (MIBLEsensors[i].feature.Btn){
- if(MIBLEsensors[i].eventType.Btn){
+ if (MIBLEsensors[i].feature.Btn == 1){
+ if(MIBLEsensors[i].eventType.Btn == 1){
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Button%u\":%u"),MIBLEsensors[i].Btn,MIBLEsensors[i].BtnType + 1); //internal type is Xiaomi/Homekit 0,1,2 -> Tasmota 1,2,3
}
}
- if (MIBLEsensors[i].feature.knob){
- if(MIBLEsensors[i].eventType.knob){
+ if (MIBLEsensors[i].feature.knob == 1){
+ if(MIBLEsensors[i].eventType.knob == 1){
MI32ShowContinuation(&commaflg);
char _pressed[3] = {'_','P',0};
if (MIBLEsensors[i].pressed == 0){
@@ -2643,15 +2669,15 @@ void MI32Show(bool json)
}
ResponseAppend_P(PSTR("\"Dimmer%s\":%d"),_pressed, MIBLEsensors[i].dimmer);
}
- if(MIBLEsensors[i].eventType.longpress){
+ if(MIBLEsensors[i].eventType.longpress == 1){
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Hold\":%d"), MIBLEsensors[i].longpress);
}
}
} // minimal summary
- if (MIBLEsensors[i].feature.motion){
- if(MIBLEsensors[i].eventType.motion || MI32.mode.triggeredTele == 0){
- if(MI32.mode.triggeredTele) {
+ if (MIBLEsensors[i].feature.motion == 1){
+ if(MIBLEsensors[i].eventType.motion == 1 || MI32.mode.triggeredTele == 0){
+ if(MI32.mode.triggeredTele == 1) {
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Motion\":1")); // only real-time
}
@@ -2664,9 +2690,9 @@ void MI32Show(bool json)
}
}
- if (MIBLEsensors[i].feature.door){
- if(MIBLEsensors[i].eventType.door || MI32.mode.triggeredTele == 0){
- if(MI32.mode.triggeredTele) {
+ if (MIBLEsensors[i].feature.door == 1){
+ if(MIBLEsensors[i].eventType.door == 1 || MI32.mode.triggeredTele == 0){
+ if(MI32.mode.triggeredTele == 1) {
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Door\":%u"),MIBLEsensors[i].door);
}
@@ -2682,8 +2708,8 @@ void MI32Show(bool json)
}
}
- if (MIBLEsensors[i].feature.NMT || MI32.mode.triggeredTele == 0){
- if(MIBLEsensors[i].eventType.NMT){
+ if (MIBLEsensors[i].feature.NMT == 1|| MI32.mode.triggeredTele == 0){
+ if(MIBLEsensors[i].eventType.NMT == 1){
MI32ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"NMT\":%u"), MIBLEsensors[i].NMT);
}
@@ -2758,11 +2784,11 @@ void MI32Show(bool json)
WSContentSend_THD(_sensorName, MIBLEsensors[i].temp, MIBLEsensors[i].hum);
}
}
- if (MIBLEsensors[i].feature.needsKey) {
+ if (MIBLEsensors[i].feature.needsKey == 1) {
if(MIBLEsensors[i].key == nullptr){
WSContentSend_PD(PSTR("{s}No known Key!!{m} can not decrypt messages{e}"));
}
- else if(MIBLEsensors[i].status.hasWrongKey){
+ else if(MIBLEsensors[i].status.hasWrongKey == 1){
WSContentSend_PD(PSTR("{s}Wrong Key!!{m} can not decrypt messages{e}"));
}
}
From 2115e09839b218779a152577e3a7aa28113bdb7a Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 16 Jun 2024 22:18:50 +0200
Subject: [PATCH 070/252] Matter show event name in logs (#21649)
* Matter show event name in logs
* Optimize logging
* Human readable version
---
.../berry_matter/generate/be_matter_events.h | 58 +++++++
.../berry_matter/src/be_matter_module.c | 12 ++
.../src/embedded/Matter_Plugin_0.be | 18 ++-
.../src/solidify/solidified_Matter_Plugin_0.h | 153 ++++++++++++------
4 files changed, 192 insertions(+), 49 deletions(-)
create mode 100644 lib/libesp32/berry_matter/generate/be_matter_events.h
diff --git a/lib/libesp32/berry_matter/generate/be_matter_events.h b/lib/libesp32/berry_matter/generate/be_matter_events.h
new file mode 100644
index 000000000..296f1236c
--- /dev/null
+++ b/lib/libesp32/berry_matter/generate/be_matter_events.h
@@ -0,0 +1,58 @@
+/*********************************************************************************\
+* Compact form for events
+*
+\*********************************************************************************/
+#include
+#include
+
+typedef struct {
+ uint16_t cluster;
+ uint8_t event;
+ const char* name;
+} matter_event_t;
+
+// Must be sorted, cluster first, then attribute
+
+const matter_event_t matter_Events[] = {
+ // 0x001F Access Control Cluster
+ { 0x001F, 0x00, "AccessControlEntryChanged" },
+ { 0x001F, 0x00, "AccessControlExtensionChanged" },
+ // 0x0025 Actions Cluster
+ { 0x0025, 0x00, "StateChanged" },
+ { 0x0025, 0x01, "ActionFailed" },
+ // 0x0028 Basic Information Cluster
+ { 0x0028, 0x00, "StartUp" },
+ { 0x0028, 0x01, "ShutDown" },
+ { 0x0028, 0x02, "Leave" },
+ { 0x0028, 0x03, "ReachableChanged" },
+ // 0x002F Power Source Cluster
+ { 0x002F, 0x00, "WiredFaultChange" },
+ { 0x002F, 0x01, "BatFaultChange" },
+ { 0x002F, 0x02, "BatChargeFaultChange" },
+ // 0x0033 General Diagnostics Cluster
+ { 0x0033, 0x00, "HardwareFaultChange" },
+ { 0x0033, 0x01, "RadioFaultChange" },
+ { 0x0033, 0x02, "NetworkFaultChange" },
+ { 0x0033, 0x03, "BootReason" },
+ // 0x0034 Software Diagnostics Cluster
+ { 0x0034, 0x00, "SoftwareFault" },
+ // 0x0035 Thread Network Diagnostics Cluster
+ // { 0x0035, 0x00, "ConnectionStatus" },
+ // { 0x0035, 0x01, "NetworkFaultChange" },
+ // 0x0036 Wi-Fi Network Diagnostics Cluster
+ { 0x0036, 0x00, "Disconnection" },
+ { 0x0036, 0x01, "AssociationFailure" },
+ { 0x0036, 0x02, "ConnectionStatus" },
+ // 0x0038 Time Synchronization Cluster
+ { 0x0038, 0x00, "DSTTableEmpty" },
+ { 0x0038, 0x01, "DSTStatus" },
+ { 0x0038, 0x02, "TimeZoneStatus" },
+ { 0x0038, 0x03, "TimeFailure" },
+ { 0x0038, 0x04, "MissingTrustedTimeSource" },
+ // 0x0039 Bridged Device Basic Information Cluster
+ { 0x0039, 0x00, "StartUp" },
+ { 0x0039, 0x01, "ShutDown" },
+ { 0x0039, 0x02, "Leave" },
+ { 0x0039, 0x03, "ReachableChanged" },
+ { 0xFFFF, 0xFF, NULL }
+};
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 25b6cd0ff..673280191 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -85,6 +85,7 @@ extern const bclass be_class_Matter_QRCode;
#include "solidify/solidified_Matter_Module.h"
#include "../generate/be_matter_clusters.h"
+#include "../generate/be_matter_events.h"
#include "../generate/be_matter_opcodes.h"
#include "../generate/be_matter_vendors.h"
@@ -188,6 +189,16 @@ const char* matter_get_command_name(uint16_t cluster, uint16_t command) {
}
BE_FUNC_CTYPE_DECLARE(matter_get_command_name, "s", "ii")
+const char* matter_get_event_name(uint16_t cluster, uint8_t event) {
+ for (const matter_event_t * ev = matter_Events; ev->cluster != 0xFFFF; ev++) {
+ if (ev->cluster == cluster && ev->event == event) {
+ return ev->name;
+ }
+ }
+ return NULL;
+}
+BE_FUNC_CTYPE_DECLARE(matter_get_event_name, "s", "ii")
+
// Convert an IP address from string to raw bytes
extern const void* matter_get_ip_bytes(const char* ip_str, size_t* ret_len);
BE_FUNC_CTYPE_DECLARE(matter_get_ip_bytes, "&", "s")
@@ -330,6 +341,7 @@ module matter (scope: global, strings: weak) {
is_attribute_writable, ctype_func(matter_is_attribute_writable)
is_attribute_reportable, ctype_func(matter_is_attribute_reportable)
get_command_name, ctype_func(matter_get_command_name)
+ get_event_name, ctype_func(matter_get_event_name)
get_opcode_name, ctype_func(matter_get_opcode_name)
TLV, class(be_class_Matter_TLV)
sort, closure(module_matter_sort_closure)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 9d54b769c..6c2f19160 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -195,9 +195,21 @@ class Matter_Plugin
event_ib.epoch_timestamp = tasmota.rtc('utc')
if (event_ib.epoch_timestamp < 1700000000) event_ib.epoch_timestamp = nil end # no valid time
event_ib.data = data
- var priority_str = (priority == 2) ? "CRIT " : (priority == 1) ? "INFO " : "DEBUG "
- log(f"MTR: +Add_Event ({priority_str}) [{event_path.endpoint:02X}]{event_path.cluster:04X}/{event_path.event:04X} ({event_ib.event_number:5i}) - {event_ib.data}", 2)
- log(f"MTR: Publishing event {event_ib}", 4)
+ if tasmota.loglevel(3)
+ var data_str = str(event_ib.data)
+ if (cluster == 0x0028) && (event == 0x00)
+ # put the software version in a readable format
+ var val = event_ib.data.val
+ data_str = format("%i.%i.%i.%i", (val >> 24) & 0xFF, (val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
+ end
+ var priority_str = (priority == 2) ? "CRIT " : (priority == 1) ? "INFO " : "DEBUG "
+ var event_name = matter.get_event_name(cluster, event)
+ event_name = (event_name != nil) ? "(" + event_name + ") " : ""
+ log(f"MTR: +Add_Event ({priority_str}{event_ib.event_number:8s}) [{event_path.endpoint:02X}]{event_path.cluster:04X}/{event_path.event:02X} {event_name}- {data_str}", 2)
+ end
+ if tasmota.loglevel(4)
+ log(f"MTR: Publishing event {event_ib}", 4)
+ end
self.device.events.queue_event(event_ib)
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 8c3e21abe..966d14ab0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -286,7 +286,7 @@ be_local_closure(class_Matter_Plugin_every_250ms, /* name */
extern const bclass be_class_Matter_Plugin;
be_local_closure(class_Matter_Plugin_publish_event, /* name */
be_nested_proto(
- 17, /* nstack */
+ 20, /* nstack */
5, /* argc */
2, /* varg */
0, /* has upvals */
@@ -294,7 +294,7 @@ be_local_closure(class_Matter_Plugin_publish_event, /* name */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
+ ( &(const bvalue[36]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(EventDataIB),
/* K2 */ be_nested_str_weak(EventPathIB),
@@ -313,19 +313,28 @@ be_local_closure(class_Matter_Plugin_publish_event, /* name */
/* K15 */ be_nested_str_weak(utc),
/* K16 */ be_const_int(1700000000),
/* K17 */ be_nested_str_weak(data),
- /* K18 */ be_const_int(2),
- /* K19 */ be_nested_str_weak(CRIT_X20_X20),
- /* K20 */ be_const_int(1),
- /* K21 */ be_nested_str_weak(INFO_X20_X20),
- /* K22 */ be_nested_str_weak(DEBUG_X20),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20_X2BAdd_Event_X20_X28_X25s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2504X_X20_X28_X255i_X29_X20_X2D_X20_X25s),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20Publishing_X20event_X20_X25s),
- /* K26 */ be_nested_str_weak(queue_event),
+ /* K18 */ be_nested_str_weak(loglevel),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_const_int(0),
+ /* K21 */ be_nested_str_weak(val),
+ /* K22 */ be_nested_str_weak(_X25i_X2E_X25i_X2E_X25i_X2E_X25i),
+ /* K23 */ be_const_int(2),
+ /* K24 */ be_nested_str_weak(CRIT_X20_X20),
+ /* K25 */ be_const_int(1),
+ /* K26 */ be_nested_str_weak(INFO_X20_X20),
+ /* K27 */ be_nested_str_weak(DEBUG_X20),
+ /* K28 */ be_nested_str_weak(get_event_name),
+ /* K29 */ be_nested_str_weak(_X28),
+ /* K30 */ be_nested_str_weak(_X29_X20),
+ /* K31 */ be_nested_str_weak(),
+ /* K32 */ be_nested_str_weak(log),
+ /* K33 */ be_nested_str_weak(MTR_X3A_X20_X2BAdd_Event_X20_X28_X25s_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X20_X25s_X2D_X20_X25s),
+ /* K34 */ be_nested_str_weak(MTR_X3A_X20Publishing_X20event_X20_X25s),
+ /* K35 */ be_nested_str_weak(queue_event),
}),
be_str_weak(publish_event),
&be_const_str_solidified,
- ( &(const binstruction[62]) { /* code */
+ ( &(const binstruction[114]) { /* code */
0xB8160000, // 0000 GETNGBL R5 K0
0x8C140B01, // 0001 GETMET R5 R5 K1
0x7C140200, // 0002 CALL R5 1
@@ -354,40 +363,92 @@ be_local_closure(class_Matter_Plugin_publish_event, /* name */
0x4C1C0000, // 0019 LDNIL R7
0x90161807, // 001A SETMBR R5 K12 R7
0x90162204, // 001B SETMBR R5 K17 R4
- 0x1C1C0712, // 001C EQ R7 R3 K18
- 0x781E0001, // 001D JMPF R7 #0020
- 0x581C0013, // 001E LDCONST R7 K19
- 0x70020004, // 001F JMP #0025
- 0x1C1C0714, // 0020 EQ R7 R3 K20
- 0x781E0001, // 0021 JMPF R7 #0024
- 0x581C0015, // 0022 LDCONST R7 K21
- 0x70020000, // 0023 JMP #0025
- 0x581C0016, // 0024 LDCONST R7 K22
- 0xB8222E00, // 0025 GETNGBL R8 K23
- 0x60240018, // 0026 GETGBL R9 G24
- 0x58280018, // 0027 LDCONST R10 K24
- 0x5C2C0E00, // 0028 MOVE R11 R7
- 0x88300D03, // 0029 GETMBR R12 R6 K3
- 0x88340D04, // 002A GETMBR R13 R6 K4
- 0x88380D05, // 002B GETMBR R14 R6 K5
- 0x883C0B08, // 002C GETMBR R15 R5 K8
- 0x88400B11, // 002D GETMBR R16 R5 K17
- 0x7C240E00, // 002E CALL R9 7
- 0x58280012, // 002F LDCONST R10 K18
- 0x7C200400, // 0030 CALL R8 2
- 0xB8222E00, // 0031 GETNGBL R8 K23
- 0x60240018, // 0032 GETGBL R9 G24
- 0x58280019, // 0033 LDCONST R10 K25
- 0x5C2C0A00, // 0034 MOVE R11 R5
- 0x7C240400, // 0035 CALL R9 2
- 0x542A0003, // 0036 LDINT R10 4
- 0x7C200400, // 0037 CALL R8 2
- 0x88200109, // 0038 GETMBR R8 R0 K9
- 0x8820110A, // 0039 GETMBR R8 R8 K10
- 0x8C20111A, // 003A GETMET R8 R8 K26
- 0x5C280A00, // 003B MOVE R10 R5
- 0x7C200400, // 003C CALL R8 2
- 0x80000000, // 003D RET 0
+ 0xB81E1A00, // 001C GETNGBL R7 K13
+ 0x8C1C0F12, // 001D GETMET R7 R7 K18
+ 0x58240013, // 001E LDCONST R9 K19
+ 0x7C1C0400, // 001F CALL R7 2
+ 0x781E003E, // 0020 JMPF R7 #0060
+ 0x601C0008, // 0021 GETGBL R7 G8
+ 0x88200B11, // 0022 GETMBR R8 R5 K17
+ 0x7C1C0200, // 0023 CALL R7 1
+ 0x54220027, // 0024 LDINT R8 40
+ 0x1C200208, // 0025 EQ R8 R1 R8
+ 0x78220015, // 0026 JMPF R8 #003D
+ 0x1C200514, // 0027 EQ R8 R2 K20
+ 0x78220013, // 0028 JMPF R8 #003D
+ 0x88200B11, // 0029 GETMBR R8 R5 K17
+ 0x88201115, // 002A GETMBR R8 R8 K21
+ 0x60240018, // 002B GETGBL R9 G24
+ 0x58280016, // 002C LDCONST R10 K22
+ 0x542E0017, // 002D LDINT R11 24
+ 0x3C2C100B, // 002E SHR R11 R8 R11
+ 0x543200FE, // 002F LDINT R12 255
+ 0x2C2C160C, // 0030 AND R11 R11 R12
+ 0x5432000F, // 0031 LDINT R12 16
+ 0x3C30100C, // 0032 SHR R12 R8 R12
+ 0x543600FE, // 0033 LDINT R13 255
+ 0x2C30180D, // 0034 AND R12 R12 R13
+ 0x54360007, // 0035 LDINT R13 8
+ 0x3C34100D, // 0036 SHR R13 R8 R13
+ 0x543A00FE, // 0037 LDINT R14 255
+ 0x2C341A0E, // 0038 AND R13 R13 R14
+ 0x543A00FE, // 0039 LDINT R14 255
+ 0x2C38100E, // 003A AND R14 R8 R14
+ 0x7C240A00, // 003B CALL R9 5
+ 0x5C1C1200, // 003C MOVE R7 R9
+ 0x1C200717, // 003D EQ R8 R3 K23
+ 0x78220001, // 003E JMPF R8 #0041
+ 0x58200018, // 003F LDCONST R8 K24
+ 0x70020004, // 0040 JMP #0046
+ 0x1C200719, // 0041 EQ R8 R3 K25
+ 0x78220001, // 0042 JMPF R8 #0045
+ 0x5820001A, // 0043 LDCONST R8 K26
+ 0x70020000, // 0044 JMP #0046
+ 0x5820001B, // 0045 LDCONST R8 K27
+ 0xB8260000, // 0046 GETNGBL R9 K0
+ 0x8C24131C, // 0047 GETMET R9 R9 K28
+ 0x5C2C0200, // 0048 MOVE R11 R1
+ 0x5C300400, // 0049 MOVE R12 R2
+ 0x7C240600, // 004A CALL R9 3
+ 0x4C280000, // 004B LDNIL R10
+ 0x2028120A, // 004C NE R10 R9 R10
+ 0x782A0002, // 004D JMPF R10 #0051
+ 0x002A3A09, // 004E ADD R10 K29 R9
+ 0x0028151E, // 004F ADD R10 R10 K30
+ 0x70020000, // 0050 JMP #0052
+ 0x5828001F, // 0051 LDCONST R10 K31
+ 0x5C241400, // 0052 MOVE R9 R10
+ 0xB82A4000, // 0053 GETNGBL R10 K32
+ 0x602C0018, // 0054 GETGBL R11 G24
+ 0x58300021, // 0055 LDCONST R12 K33
+ 0x5C341000, // 0056 MOVE R13 R8
+ 0x88380B08, // 0057 GETMBR R14 R5 K8
+ 0x883C0D03, // 0058 GETMBR R15 R6 K3
+ 0x88400D04, // 0059 GETMBR R16 R6 K4
+ 0x88440D05, // 005A GETMBR R17 R6 K5
+ 0x5C481200, // 005B MOVE R18 R9
+ 0x5C4C0E00, // 005C MOVE R19 R7
+ 0x7C2C1000, // 005D CALL R11 8
+ 0x58300017, // 005E LDCONST R12 K23
+ 0x7C280400, // 005F CALL R10 2
+ 0xB81E1A00, // 0060 GETNGBL R7 K13
+ 0x8C1C0F12, // 0061 GETMET R7 R7 K18
+ 0x54260003, // 0062 LDINT R9 4
+ 0x7C1C0400, // 0063 CALL R7 2
+ 0x781E0006, // 0064 JMPF R7 #006C
+ 0xB81E4000, // 0065 GETNGBL R7 K32
+ 0x60200018, // 0066 GETGBL R8 G24
+ 0x58240022, // 0067 LDCONST R9 K34
+ 0x5C280A00, // 0068 MOVE R10 R5
+ 0x7C200400, // 0069 CALL R8 2
+ 0x54260003, // 006A LDINT R9 4
+ 0x7C1C0400, // 006B CALL R7 2
+ 0x881C0109, // 006C GETMBR R7 R0 K9
+ 0x881C0F0A, // 006D GETMBR R7 R7 K10
+ 0x8C1C0F23, // 006E GETMET R7 R7 K35
+ 0x5C240A00, // 006F MOVE R9 R5
+ 0x7C1C0400, // 0070 CALL R7 2
+ 0x80000000, // 0071 RET 0
})
)
);
From fe280fe6aa88ee2571beacbd5f78b75328838838 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 20 Jun 2024 16:22:49 +0200
Subject: [PATCH 071/252] remove compile flag for risc-v MCUs which is only
valid for xtensa MCUs (#21665)
---
pio-tools/add_c_flags.py | 9 +++++++++
pio-tools/strip-floats.py | 19 ++++++++++---------
platformio_tasmota_cenv_sample.ini | 6 ------
platformio_tasmota_env32.ini | 16 ----------------
4 files changed, 19 insertions(+), 31 deletions(-)
diff --git a/pio-tools/add_c_flags.py b/pio-tools/add_c_flags.py
index 1ce5d5936..7e51a4fe1 100644
--- a/pio-tools/add_c_flags.py
+++ b/pio-tools/add_c_flags.py
@@ -5,3 +5,12 @@ env.Append(CXXFLAGS=["-Wno-volatile"])
# General options that are passed to the C compiler (C only; not C++).
env.Append(CFLAGS=["-Wno-discarded-qualifiers", "-Wno-implicit-function-declaration", "-Wno-incompatible-pointer-types"])
+
+
+# Remove build flags which are not valid for risc-v
+build_flags = env['BUILD_FLAGS']
+chip = env.get("BOARD_MCU").lower()
+
+if "c" in chip:
+ build_flags.pop(build_flags.index("-mno-target-align"))
+ build_flags.pop(build_flags.index("-mtarget-align"))
diff --git a/pio-tools/strip-floats.py b/pio-tools/strip-floats.py
index dfb8916dc..4b49321fb 100644
--- a/pio-tools/strip-floats.py
+++ b/pio-tools/strip-floats.py
@@ -1,21 +1,22 @@
Import('env')
-build_flags = " ".join(env.GetProjectOption("build_flags"))
+link_flags = " ".join(env['LINKFLAGS'])
+build_flags = " ".join(env['BUILD_FLAGS'])
#
# Dump build environment (for debug)
-#print env.Dump()
+#print(env.Dump())
#
-flags = " ".join(env['LINKFLAGS'])
-flags = flags.replace("-u _printf_float", "")
-flags = flags.replace("-u _scanf_float", "")
+link_flags = link_flags.replace("-u _printf_float", "")
+link_flags = link_flags.replace("-u _scanf_float", "")
if "FIRMWARE_SAFEBOOT" in build_flags:
# Crash Recorder is not included in safeboot firmware -> remove Linker wrap
- flags = flags.replace("-Wl,--wrap=panicHandler", "")
- flags = flags.replace("-Wl,--wrap=xt_unhandled_exception", "")
-newflags = flags.split()
+ link_flags = link_flags.replace("-Wl,--wrap=panicHandler", "")
+ link_flags = link_flags.replace("-Wl,--wrap=xt_unhandled_exception", "")
+
+new_link_flags = link_flags.split()
env.Replace(
- LINKFLAGS=newflags
+ LINKFLAGS=new_link_flags
)
\ No newline at end of file
diff --git a/platformio_tasmota_cenv_sample.ini b/platformio_tasmota_cenv_sample.ini
index 1fd7c5e17..3643e3d7c 100644
--- a/platformio_tasmota_cenv_sample.ini
+++ b/platformio_tasmota_cenv_sample.ini
@@ -81,8 +81,6 @@ build_flags = ${env:tasmota32_base.build_flags}
[env:tasmota32c3-bluetooth]
extends = env:tasmota32_base
board = esp32c3
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mtarget-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_BLUETOOTH
; -DUSE_EQ3_ESP32
@@ -111,8 +109,6 @@ lib_ignore = Micro-RTSP
[env:tasmota32c3-mi32]
extends = env:tasmota32_base
board = esp32c3
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mtarget-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_BLUETOOTH
-DUSE_MI_EXT_GUI
@@ -133,8 +129,6 @@ lib_ignore = Micro-RTSP
[env:tasmota32c6-mi32]
extends = env:tasmota32_base
board = esp32c6
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mtarget-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_BLUETOOTH
-DUSE_MI_EXT_GUI
diff --git a/platformio_tasmota_env32.ini b/platformio_tasmota_env32.ini
index ce888463c..ef8d46a58 100644
--- a/platformio_tasmota_env32.ini
+++ b/platformio_tasmota_env32.ini
@@ -71,8 +71,6 @@ lib_ignore = ${safeboot_flags.lib_ignore}
extends = env:tasmota32_base
board = esp32c2
board_build.app_partition_name = safeboot
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_SAFEBOOT
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c2-safeboot.bin"'
@@ -83,8 +81,6 @@ lib_ignore = ${safeboot_flags.lib_ignore}
extends = env:tasmota32_base
board = esp32c3
board_build.app_partition_name = safeboot
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_SAFEBOOT
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c3-safeboot.bin"'
@@ -95,8 +91,6 @@ lib_ignore = ${safeboot_flags.lib_ignore}
extends = env:tasmota32_base
board = esp32c3ser
board_build.app_partition_name = safeboot
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_SAFEBOOT
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c3ser-safeboot.bin"'
@@ -117,8 +111,6 @@ lib_ignore = ${safeboot_flags.lib_ignore}
extends = env:tasmota32_base
board = esp32c6
board_build.app_partition_name = safeboot
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_SAFEBOOT
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c6-safeboot.bin"'
@@ -129,8 +121,6 @@ lib_ignore = ${safeboot_flags.lib_ignore}
extends = env:tasmota32_base
board = esp32c6ser
board_build.app_partition_name = safeboot
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_SAFEBOOT
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c6ser-safeboot.bin"'
@@ -187,8 +177,6 @@ lib_ignore = ${env:tasmota32_base.lib_ignore}
[env:tasmota32c2]
extends = env:tasmota32_base
board = esp32c2
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c2.bin"'
@@ -198,8 +186,6 @@ lib_ignore = ${env:tasmota32_base.lib_ignore}
[env:tasmota32c3]
extends = env:tasmota32_base
board = esp32c3
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c3.bin"'
@@ -209,8 +195,6 @@ lib_ignore = ${env:tasmota32_base.lib_ignore}
[env:tasmota32c6]
extends = env:tasmota32_base
board = esp32c6
-build_unflags = ${env:tasmota32_base.build_unflags}
- -mno-target-align
build_flags = ${env:tasmota32_base.build_flags}
-DFIRMWARE_TASMOTA32
-DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32c6.bin"'
From 3537d184838cd9fcdb7761c862c60e2467ed8c6d Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Thu, 20 Jun 2024 23:23:53 +0200
Subject: [PATCH 072/252] Update esp8266 platform to 2024.06.10 (#21668)
* Update esp8266 platform (2024.06.00)
* Update strip-floats.py
* Rename strip-floats.py to strip-flags.py
* rename to `strip_flags.py`
* esp8266 v2.7.7
---
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
pio-tools/{strip-floats.py => strip-flags.py} | 9 +--------
platformio.ini | 16 +++++-----------
3 files changed, 7 insertions(+), 20 deletions(-)
rename pio-tools/{strip-floats.py => strip-flags.py} (71%)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 167baad82..fb378f095 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -6,7 +6,7 @@
- [ ] The pull request is done against the latest development branch
- [ ] Only relevant files were touched
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
- - [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.6
+ - [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.7
- [ ] The code change is tested and works with Tasmota core ESP32 V.3.0.1
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
diff --git a/pio-tools/strip-floats.py b/pio-tools/strip-flags.py
similarity index 71%
rename from pio-tools/strip-floats.py
rename to pio-tools/strip-flags.py
index 4b49321fb..714e84a0f 100644
--- a/pio-tools/strip-floats.py
+++ b/pio-tools/strip-flags.py
@@ -3,13 +3,6 @@ Import('env')
link_flags = " ".join(env['LINKFLAGS'])
build_flags = " ".join(env['BUILD_FLAGS'])
-#
-# Dump build environment (for debug)
-#print(env.Dump())
-#
-
-link_flags = link_flags.replace("-u _printf_float", "")
-link_flags = link_flags.replace("-u _scanf_float", "")
if "FIRMWARE_SAFEBOOT" in build_flags:
# Crash Recorder is not included in safeboot firmware -> remove Linker wrap
link_flags = link_flags.replace("-Wl,--wrap=panicHandler", "")
@@ -19,4 +12,4 @@ new_link_flags = link_flags.split()
env.Replace(
LINKFLAGS=new_link_flags
-)
\ No newline at end of file
+)
diff --git a/platformio.ini b/platformio.ini
index 0f21033da..0a56d36eb 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -73,7 +73,7 @@ build_flags =
extra_scripts = pre:pio-tools/pre_source_dir.py
pre:pio-tools/set_partition_table.py
pre:pio-tools/override_copy.py
- post:pio-tools/strip-floats.py
+ post:pio-tools/strip-flags.py
[esp_defaults]
extra_scripts = post:pio-tools/name-firmware.py
@@ -121,18 +121,12 @@ build_flags = ${esp_defaults.build_flags}
; uncomment the following to enable TLS with 4096 RSA certificates
;-DUSE_4K_RSA
lib_ignore =
- Servo(esp8266)
- ESP8266AVRISP
ESP8266LLMNR
ESP8266NetBIOS
ESP8266SSDP
- SP8266WiFiMesh
- Ethernet(esp8266)
- GDBStub
- TFT_Touch_Shield_V2
- ESP8266HTTPUpdateServer
ESP8266WiFiMesh
- EspSoftwareSerial
+ GDBStub
+ ESP8266HTTPUpdateServer
SPISlave
Hash
; Disable next if you want to use ArduinoOTA in Tasmota (default disabled)
@@ -140,8 +134,8 @@ lib_ignore =
[core]
; *** Esp8266 Tasmota modified Arduino core based on core 2.7.4. Added Backport for PWM selection
-platform = https://github.com/tasmota/platform-espressif8266/releases/download/2024.01.01/platform-espressif8266.zip
-platform_packages = tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v4.7.2/esptool.zip
+platform = https://github.com/tasmota/platform-espressif8266/releases/download/2024.06.00/platform-espressif8266.zip
+platform_packages =
build_unflags = ${esp_defaults.build_unflags}
build_flags = ${esp82xx_defaults.build_flags}
; *** Use ONE of the two PWM variants. Tasmota default is Locked PWM
From d18925897a103c54a6bb20263695cf560fbbaf8c Mon Sep 17 00:00:00 2001
From: stefanbode
Date: Fri, 21 Jun 2024 16:35:05 +0200
Subject: [PATCH 073/252] MQTT fix on inverted shutter (#21663)
* MQTT fix on inverted shutter
* MQTT fix on inverted shutter
---
tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino | 10 ++++------
tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino | 9 ++++-----
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino b/tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino
index 283be9951..2a028bb97 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_27_esp32_shutter.ino
@@ -1868,12 +1868,10 @@ void CmndShutterPosition(void)
}
int8_t target_pos_percent = (XdrvMailbox.payload < 0) ? (XdrvMailbox.payload == -99 ? ShutterRealToPercentPosition(Shutter[index].real_position, index) : 0) : ((XdrvMailbox.payload > 100) ? 100 : XdrvMailbox.payload);
- target_pos_percent = ((ShutterSettings.shutter_options[index] & 1) && ((SRC_MQTT != TasmotaGlobal.last_source) // 1
- && (SRC_SERIAL != TasmotaGlobal.last_source) // 6
- && (SRC_WEBGUI != TasmotaGlobal.last_source) // 7
- && (SRC_WEBCOMMAND != TasmotaGlobal.last_source) // 8
- )) ? 100 - target_pos_percent : target_pos_percent;
-
+ target_pos_percent = ((ShutterSettings.shutter_options[index] & 1) && ( (SRC_SERIAL != TasmotaGlobal.last_source) // 6
+ && (SRC_WEBGUI != TasmotaGlobal.last_source) // 7
+ && (SRC_WEBCOMMAND != TasmotaGlobal.last_source) // 8
+ )) ? 100 - target_pos_percent : target_pos_percent;
// if position is either 0 or 100 reset the tilt to avoid tilt moving at the end
if (target_pos_percent == 0 && ShutterRealToPercentPosition(Shutter[index].real_position, index) > 0 ) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[4];}
if (target_pos_percent == 100 && ShutterRealToPercentPosition(Shutter[index].real_position, index) < 100) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[3];}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino b/tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino
index db1f622fb..776f08a74 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_27_shutter.ino
@@ -1332,11 +1332,10 @@ void CmndShutterPosition(void)
}
int8_t target_pos_percent = (XdrvMailbox.payload < 0) ? (XdrvMailbox.payload == -99 ? ShutterRealToPercentPosition(Shutter[index].real_position, index) : 0) : ((XdrvMailbox.payload > 100) ? 100 : XdrvMailbox.payload);
- target_pos_percent = ((Settings->shutter_options[index] & 1) && ((SRC_MQTT != TasmotaGlobal.last_source)
- && (SRC_SERIAL != TasmotaGlobal.last_source)
- && (SRC_WEBGUI != TasmotaGlobal.last_source)
- && (SRC_WEBCOMMAND != TasmotaGlobal.last_source)
- )) ? 100 - target_pos_percent : target_pos_percent;
+ target_pos_percent = ((Settings->shutter_options[index] & 1) && ( (SRC_SERIAL != TasmotaGlobal.last_source)
+ && (SRC_WEBGUI != TasmotaGlobal.last_source)
+ && (SRC_WEBCOMMAND != TasmotaGlobal.last_source)
+ )) ? 100 - target_pos_percent : target_pos_percent;
// if position is either 0 or 100 reset the tilt to avoid tilt moving at the end
if (target_pos_percent == 0 && ShutterRealToPercentPosition(Shutter[index].real_position, index) > 0 ) {Shutter[index].tilt_target_pos = Shutter[index].tilt_config[4];}
From aa380ea190a62c3b1465b9185810574ef3374684 Mon Sep 17 00:00:00 2001
From: gemu
Date: Fri, 21 Jun 2024 16:35:20 +0200
Subject: [PATCH 074/252] fix tcp server (#21660)
---
.../tasmota_xdrv_driver/xdrv_10_scripter.ino | 82 ++++++++++++++-----
1 file changed, 60 insertions(+), 22 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
index b116e7abf..eb8714737 100755
--- a/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
@@ -2600,12 +2600,19 @@ char *isargs(char *lp, uint32_t isind) {
if (glob_script_mem.si_num[isind] > MAX_SARRAY_NUM) {
glob_script_mem.si_num[isind] = MAX_SARRAY_NUM;
}
+ //glob_script_mem.last_index_string[isind] = (char*)calloc(glob_script_mem.max_ssize * glob_script_mem.si_num[isind], 1);
+ uint32_t sasize = glob_script_mem.max_ssize * glob_script_mem.si_num[isind];
+ glob_script_mem.last_index_string[isind] = (char*)special_malloc(sasize);
+ if (glob_script_mem.last_index_string[isind]) {
+ memset(glob_script_mem.last_index_string[isind], 0, sasize);
+ for (uint32_t cnt = 0; cnt < glob_script_mem.siro_num[isind]; cnt++) {
+ char str[SCRIPT_MAX_SBSIZE];
+ GetTextIndexed(str, sizeof(str), cnt, sstart);
+ strlcpy(glob_script_mem.last_index_string[isind] + (cnt * glob_script_mem.max_ssize), str, glob_script_mem.max_ssize);
+ }
+ } else {
+ // memory error
- glob_script_mem.last_index_string[isind] = (char*)calloc(glob_script_mem.max_ssize * glob_script_mem.si_num[isind], 1);
- for (uint32_t cnt = 0; cnt < glob_script_mem.siro_num[isind]; cnt++) {
- char str[SCRIPT_MAX_SBSIZE];
- GetTextIndexed(str, sizeof(str), cnt, sstart);
- strlcpy(glob_script_mem.last_index_string[isind] + (cnt * glob_script_mem.max_ssize), str, glob_script_mem.max_ssize);
}
} else {
glob_script_mem.last_index_string[isind] = sstart;
@@ -3439,7 +3446,7 @@ extern void W8960_SetGain(uint8_t sel, uint16_t value);
FS *cfp = script_file_path(str);
while (*lp == ' ') lp++;
uint8_t mode = 0;
- if ((*lp == 'r') || (*lp == 'w') || (*lp == 'a')) {
+ if ((*lp == 'r') || (*lp == 'w') || (*lp == 'a') || (*lp == 'u')) {
switch (*lp) {
case 'r':
mode = 0;
@@ -3450,6 +3457,12 @@ extern void W8960_SetGain(uint8_t sel, uint16_t value);
case 'a':
mode = 2;
break;
+ case 'u':
+ mode = 3;
+ break;
+ case 'U':
+ mode = 4;
+ break;
}
lp++;
} else {
@@ -3477,10 +3490,20 @@ extern void W8960_SetGain(uint8_t sel, uint16_t value);
#ifdef DEBUG_FS
AddLog(LOG_LEVEL_INFO, PSTR("SCR: open file for write %d"), cnt);
#endif
- } else {
+ } else if (mode == 2) {
glob_script_mem.files[cnt] = cfp->open(str,FS_FILE_APPEND);
#ifdef DEBUG_FS
AddLog(LOG_LEVEL_INFO, PSTR("SCR: open file for append %d"), cnt);
+#endif
+ } else if (mode == 3) {
+ glob_script_mem.files[cnt] = cfp->open(str, "w+");
+#ifdef DEBUG_FS
+ AddLog(LOG_LEVEL_INFO, PSTR("SCR: open file for write update %d"), cnt);
+#endif
+ } else {
+ glob_script_mem.files[cnt] = cfp->open(str, "r+");
+#ifdef DEBUG_FS
+ AddLog(LOG_LEVEL_INFO, PSTR("SCR: open file for read update %d"), cnt);
#endif
}
}
@@ -4744,7 +4767,8 @@ extern void W8960_SetGain(uint8_t sel, uint16_t value);
len = 0;
goto exit;
}
-#ifdef USE_MORITZ
+#ifdef USE_BINPLUGINS
+char *Plugin_Query(uint8_t, uint8_t);
if (!strncmp_XP(lp, XPSTR("mo("), 3)) {
TS_FLOAT fvar1;
lp = GetNumericArgument(lp + 3, OPER_EQU, &fvar1, gv);
@@ -4752,14 +4776,21 @@ extern void W8960_SetGain(uint8_t sel, uint16_t value);
TS_FLOAT fvar2;
lp = GetNumericArgument(lp, OPER_EQU, &fvar2, gv);
SCRIPT_SKIP_SPACES
- char rbuff[64];
- fvar = mo_getvars(fvar1, fvar2, rbuff);
+ char *rbuff = Plugin_Query(fvar1, fvar2);
+ if (rbuff) {
+ if (sp) strlcpy(sp, rbuff, glob_script_mem.max_ssize);
+ free (rbuff);
+ } else {
+ if (sp) {
+ strcpy_P(sp, PSTR("not found"));
+ }
+ }
lp++;
- if (sp) strlcpy(sp, rbuff, glob_script_mem.max_ssize);
len = 0;
goto strexit;
}
-#endif //USE_MORITZ
+#endif //USE_BINPLUGINS
+
#ifdef ESP32_FAST_MUX
if (!strncmp_XP(lp, XPSTR("mux("), 4)) {
lp = GetNumericArgument(lp + 4, OPER_EQU, &fvar, gv);
@@ -6219,16 +6250,24 @@ void tmod_directModeOutput(uint32_t pin);
if (!strncmp_XP(lp, XPSTR("wso("), 4)) {
TS_FLOAT port;
lp = GetNumericArgument(lp + 4, OPER_EQU, &port, gv);
- glob_script_mem.tcp_server = new WiFiServer(port);
- fvar = 0;
- if (!glob_script_mem.tcp_server) {
- fvar = -1;
- } else {
- AddLog(LOG_LEVEL_INFO, PSTR("tcp server started"));
+ if (TasmotaGlobal.global_state.wifi_down) {
+ fvar = - 2;
+ } else {
+ if (glob_script_mem.tcp_server) {
+ glob_script_mem.tcp_client.stop();
+ glob_script_mem.tcp_server->stop();
+ delete glob_script_mem.tcp_server;
+ }
+ glob_script_mem.tcp_server = new WiFiServer(port);
+ fvar = 0;
+ if (!glob_script_mem.tcp_server) {
+ fvar = -1;
+ } else {
+ glob_script_mem.tcp_server->begin();
+ glob_script_mem.tcp_server->setNoDelay(true);
+ AddLog(LOG_LEVEL_INFO, PSTR("tcp server started"));
+ }
}
- glob_script_mem.tcp_server->begin();
- glob_script_mem.tcp_server->setNoDelay(true);
-
goto nfuncexit;
}
if (!strncmp_XP(lp, XPSTR("wsc("), 4)) {
@@ -12055,7 +12094,6 @@ exgc:
}
}
snprintf_P(options, SCRIPT_GC_OPTIONS_SIZE, SCRIPT_MSG_GOPT4);
- if (options) free(options);
}
if (tonly) {
WSContentSend_P("]);");
From 9ac4712527e26ceee541e376bdc7f5e5f833dce8 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 22 Jun 2024 10:10:57 +0200
Subject: [PATCH 075/252] Matter fix TLV.U8 unsigned encoding (#21672)
---
.../berry_matter/src/embedded/Matter_TLV.be | 13 +-
.../src/solidify/solidified_Matter_TLV.h | 806 +++++++++---------
2 files changed, 434 insertions(+), 385 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
index ab14e4a0e..e1c6294d9 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_TLV.be
@@ -293,6 +293,13 @@ class Matter_TLV
if self.typ == TLV.RAW b..self.val return b end
+ # special case for U8/I8 if we have an int, simplify to smaller size
+ if (self.typ == TLV.I8 || self.typ == TLV.U8) && (type(self.val) == 'int') # don't change if instance of `int64`
+ if self.typ == TLV.I8 self.typ = TLV.I4 # we can safely cast to I4
+ else self.typ = TLV.U4 # or to U4, and let further reduction happen below
+ end
+ end
+
# special case for bool
# we need to change the type according to the value
if self.typ == TLV.BFALSE || self.typ == TLV.BTRUE
@@ -344,7 +351,11 @@ class Matter_TLV
elif isinstance(i64, int64)
i64 = i64.tobytes() # bytes(8)
else
- i64 = int64(int(i64)).tobytes() # bytes(8)
+ if (self.typ == TLV.I8) # signed
+ i64 = int64(int(i64)).tobytes() # bytes(8)
+ else # unsigned
+ i64 = int64.fromu32(int(i64)).tobytes() # bytes(8)
+ end
end
b .. i64
elif self.typ == TLV.BFALSE || self.typ == TLV.BTRUE
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
index 78ba7508d..b5ee74e2a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_TLV.h
@@ -1439,53 +1439,55 @@ be_local_closure(class_Matter_TLV_item_tlv2raw, /* name */
0, /* has sup protos */
&be_class_Matter_TLV_item,
1, /* has constants */
- ( &(const bvalue[42]) { /* constants */
+ ( &(const bvalue[44]) { /* constants */
/* K0 */ be_nested_str_weak(TLV),
/* K1 */ be_nested_str_weak(typ),
/* K2 */ be_nested_str_weak(RAW),
/* K3 */ be_nested_str_weak(val),
- /* K4 */ be_nested_str_weak(BFALSE),
- /* K5 */ be_nested_str_weak(BTRUE),
- /* K6 */ be_nested_str_weak(I2),
+ /* K4 */ be_nested_str_weak(I8),
+ /* K5 */ be_nested_str_weak(U8),
+ /* K6 */ be_nested_str_weak(int),
/* K7 */ be_nested_str_weak(I4),
- /* K8 */ be_nested_str_weak(I1),
- /* K9 */ be_nested_str_weak(U2),
- /* K10 */ be_nested_str_weak(U4),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(U1),
- /* K13 */ be_nested_str_weak(B1),
- /* K14 */ be_nested_str_weak(B8),
- /* K15 */ be_nested_str_weak(B2),
- /* K16 */ be_nested_str_weak(B4),
- /* K17 */ be_nested_str_weak(UTF1),
- /* K18 */ be_nested_str_weak(UTF8),
- /* K19 */ be_nested_str_weak(UTF2),
- /* K20 */ be_nested_str_weak(UTF4),
- /* K21 */ be_nested_str_weak(_encode_tag),
- /* K22 */ be_nested_str_weak(add),
- /* K23 */ be_const_int(1),
- /* K24 */ be_const_int(2),
- /* K25 */ be_nested_str_weak(I8),
- /* K26 */ be_nested_str_weak(U8),
- /* K27 */ be_nested_str_weak(copy),
- /* K28 */ be_nested_str_weak(resize),
- /* K29 */ be_nested_str_weak(int64),
- /* K30 */ be_nested_str_weak(tobytes),
- /* K31 */ be_nested_str_weak(FLOAT),
- /* K32 */ be_nested_str_weak(setfloat),
- /* K33 */ be_nested_str_weak(DOUBLE),
- /* K34 */ be_nested_str_weak(value_error),
- /* K35 */ be_nested_str_weak(Unsupported_X20type_X20TLV_X2EDOUBLE),
- /* K36 */ be_nested_str_weak(string_X20too_X20big),
- /* K37 */ be_nested_str_weak(fromstring),
- /* K38 */ be_nested_str_weak(frostring),
- /* K39 */ be_nested_str_weak(bytes_X20too_X20big),
- /* K40 */ be_nested_str_weak(NULL),
- /* K41 */ be_nested_str_weak(unsupported_X20type_X20),
+ /* K8 */ be_nested_str_weak(U4),
+ /* K9 */ be_nested_str_weak(BFALSE),
+ /* K10 */ be_nested_str_weak(BTRUE),
+ /* K11 */ be_nested_str_weak(I2),
+ /* K12 */ be_nested_str_weak(I1),
+ /* K13 */ be_nested_str_weak(U2),
+ /* K14 */ be_const_int(0),
+ /* K15 */ be_nested_str_weak(U1),
+ /* K16 */ be_nested_str_weak(B1),
+ /* K17 */ be_nested_str_weak(B8),
+ /* K18 */ be_nested_str_weak(B2),
+ /* K19 */ be_nested_str_weak(B4),
+ /* K20 */ be_nested_str_weak(UTF1),
+ /* K21 */ be_nested_str_weak(UTF8),
+ /* K22 */ be_nested_str_weak(UTF2),
+ /* K23 */ be_nested_str_weak(UTF4),
+ /* K24 */ be_nested_str_weak(_encode_tag),
+ /* K25 */ be_nested_str_weak(add),
+ /* K26 */ be_const_int(1),
+ /* K27 */ be_const_int(2),
+ /* K28 */ be_nested_str_weak(copy),
+ /* K29 */ be_nested_str_weak(resize),
+ /* K30 */ be_nested_str_weak(int64),
+ /* K31 */ be_nested_str_weak(tobytes),
+ /* K32 */ be_nested_str_weak(fromu32),
+ /* K33 */ be_nested_str_weak(FLOAT),
+ /* K34 */ be_nested_str_weak(setfloat),
+ /* K35 */ be_nested_str_weak(DOUBLE),
+ /* K36 */ be_nested_str_weak(value_error),
+ /* K37 */ be_nested_str_weak(Unsupported_X20type_X20TLV_X2EDOUBLE),
+ /* K38 */ be_nested_str_weak(string_X20too_X20big),
+ /* K39 */ be_nested_str_weak(fromstring),
+ /* K40 */ be_nested_str_weak(frostring),
+ /* K41 */ be_nested_str_weak(bytes_X20too_X20big),
+ /* K42 */ be_nested_str_weak(NULL),
+ /* K43 */ be_nested_str_weak(unsupported_X20type_X20),
}),
be_str_weak(tlv2raw),
&be_const_str_solidified,
- ( &(const binstruction[368]) { /* code */
+ ( &(const binstruction[404]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x4C0C0000, // 0001 LDNIL R3
0x1C0C0203, // 0002 EQ R3 R1 R3
@@ -1507,353 +1509,389 @@ be_local_closure(class_Matter_TLV_item_tlv2raw, /* name */
0x880C0101, // 0012 GETMBR R3 R0 K1
0x88100505, // 0013 GETMBR R4 R2 K5
0x1C0C0604, // 0014 EQ R3 R3 R4
- 0x780E0008, // 0015 JMPF R3 #001F
- 0x600C0017, // 0016 GETGBL R3 G23
+ 0x780E000D, // 0015 JMPF R3 #0024
+ 0x600C0004, // 0016 GETGBL R3 G4
0x88100103, // 0017 GETMBR R4 R0 K3
0x7C0C0200, // 0018 CALL R3 1
- 0x780E0001, // 0019 JMPF R3 #001C
- 0x880C0505, // 001A GETMBR R3 R2 K5
- 0x70020000, // 001B JMP #001D
- 0x880C0504, // 001C GETMBR R3 R2 K4
- 0x90020203, // 001D SETMBR R0 K1 R3
- 0x70020070, // 001E JMP #0090
- 0x880C0101, // 001F GETMBR R3 R0 K1
- 0x88100506, // 0020 GETMBR R4 R2 K6
- 0x280C0604, // 0021 GE R3 R3 R4
- 0x780E0018, // 0022 JMPF R3 #003C
- 0x880C0101, // 0023 GETMBR R3 R0 K1
- 0x88100507, // 0024 GETMBR R4 R2 K7
- 0x180C0604, // 0025 LE R3 R3 R4
- 0x780E0014, // 0026 JMPF R3 #003C
- 0x600C0009, // 0027 GETGBL R3 G9
- 0x88100103, // 0028 GETMBR R4 R0 K3
- 0x7C0C0200, // 0029 CALL R3 1
- 0x5412007E, // 002A LDINT R4 127
- 0x18100604, // 002B LE R4 R3 R4
- 0x78120005, // 002C JMPF R4 #0033
- 0x5411FF7F, // 002D LDINT R4 -128
- 0x28100604, // 002E GE R4 R3 R4
- 0x78120002, // 002F JMPF R4 #0033
- 0x88100508, // 0030 GETMBR R4 R2 K8
- 0x90020204, // 0031 SETMBR R0 K1 R4
- 0x70020007, // 0032 JMP #003B
- 0x54127FFE, // 0033 LDINT R4 32767
- 0x18100604, // 0034 LE R4 R3 R4
- 0x78120004, // 0035 JMPF R4 #003B
- 0x54117FFF, // 0036 LDINT R4 -32768
- 0x28100604, // 0037 GE R4 R3 R4
- 0x78120001, // 0038 JMPF R4 #003B
- 0x88100506, // 0039 GETMBR R4 R2 K6
- 0x90020204, // 003A SETMBR R0 K1 R4
- 0x70020053, // 003B JMP #0090
- 0x880C0101, // 003C GETMBR R3 R0 K1
- 0x88100509, // 003D GETMBR R4 R2 K9
- 0x280C0604, // 003E GE R3 R3 R4
- 0x780E0016, // 003F JMPF R3 #0057
- 0x880C0101, // 0040 GETMBR R3 R0 K1
- 0x8810050A, // 0041 GETMBR R4 R2 K10
- 0x180C0604, // 0042 LE R3 R3 R4
- 0x780E0012, // 0043 JMPF R3 #0057
- 0x600C0009, // 0044 GETGBL R3 G9
- 0x88100103, // 0045 GETMBR R4 R0 K3
- 0x7C0C0200, // 0046 CALL R3 1
- 0x541200FE, // 0047 LDINT R4 255
- 0x18100604, // 0048 LE R4 R3 R4
- 0x78120004, // 0049 JMPF R4 #004F
- 0x2810070B, // 004A GE R4 R3 K11
- 0x78120002, // 004B JMPF R4 #004F
- 0x8810050C, // 004C GETMBR R4 R2 K12
- 0x90020204, // 004D SETMBR R0 K1 R4
- 0x70020006, // 004E JMP #0056
- 0x5412FFFE, // 004F LDINT R4 65535
- 0x18100604, // 0050 LE R4 R3 R4
- 0x78120003, // 0051 JMPF R4 #0056
- 0x2810070B, // 0052 GE R4 R3 K11
- 0x78120001, // 0053 JMPF R4 #0056
- 0x88100509, // 0054 GETMBR R4 R2 K9
- 0x90020204, // 0055 SETMBR R0 K1 R4
- 0x70020038, // 0056 JMP #0090
- 0x880C0101, // 0057 GETMBR R3 R0 K1
- 0x8810050D, // 0058 GETMBR R4 R2 K13
- 0x280C0604, // 0059 GE R3 R3 R4
- 0x780E0018, // 005A JMPF R3 #0074
- 0x880C0101, // 005B GETMBR R3 R0 K1
- 0x8810050E, // 005C GETMBR R4 R2 K14
- 0x180C0604, // 005D LE R3 R3 R4
- 0x780E0014, // 005E JMPF R3 #0074
- 0x600C000C, // 005F GETGBL R3 G12
- 0x88100103, // 0060 GETMBR R4 R0 K3
- 0x7C0C0200, // 0061 CALL R3 1
- 0x541200FE, // 0062 LDINT R4 255
- 0x180C0604, // 0063 LE R3 R3 R4
- 0x780E0002, // 0064 JMPF R3 #0068
- 0x880C050D, // 0065 GETMBR R3 R2 K13
- 0x90020203, // 0066 SETMBR R0 K1 R3
- 0x7002000A, // 0067 JMP #0073
- 0x600C000C, // 0068 GETGBL R3 G12
- 0x88100103, // 0069 GETMBR R4 R0 K3
- 0x7C0C0200, // 006A CALL R3 1
- 0x5412FFFE, // 006B LDINT R4 65535
- 0x180C0604, // 006C LE R3 R3 R4
- 0x780E0002, // 006D JMPF R3 #0071
- 0x880C050F, // 006E GETMBR R3 R2 K15
- 0x90020203, // 006F SETMBR R0 K1 R3
- 0x70020001, // 0070 JMP #0073
- 0x880C0510, // 0071 GETMBR R3 R2 K16
- 0x90020203, // 0072 SETMBR R0 K1 R3
- 0x7002001B, // 0073 JMP #0090
- 0x880C0101, // 0074 GETMBR R3 R0 K1
- 0x88100511, // 0075 GETMBR R4 R2 K17
- 0x280C0604, // 0076 GE R3 R3 R4
- 0x780E0017, // 0077 JMPF R3 #0090
- 0x880C0101, // 0078 GETMBR R3 R0 K1
- 0x88100512, // 0079 GETMBR R4 R2 K18
- 0x180C0604, // 007A LE R3 R3 R4
- 0x780E0013, // 007B JMPF R3 #0090
- 0x600C000C, // 007C GETGBL R3 G12
- 0x88100103, // 007D GETMBR R4 R0 K3
- 0x7C0C0200, // 007E CALL R3 1
- 0x541200FE, // 007F LDINT R4 255
- 0x180C0604, // 0080 LE R3 R3 R4
- 0x780E0002, // 0081 JMPF R3 #0085
- 0x880C0511, // 0082 GETMBR R3 R2 K17
- 0x90020203, // 0083 SETMBR R0 K1 R3
- 0x7002000A, // 0084 JMP #0090
- 0x600C000C, // 0085 GETGBL R3 G12
- 0x88100103, // 0086 GETMBR R4 R0 K3
- 0x7C0C0200, // 0087 CALL R3 1
- 0x5412FFFE, // 0088 LDINT R4 65535
- 0x180C0604, // 0089 LE R3 R3 R4
- 0x780E0002, // 008A JMPF R3 #008E
- 0x880C0513, // 008B GETMBR R3 R2 K19
- 0x90020203, // 008C SETMBR R0 K1 R3
- 0x70020001, // 008D JMP #0090
- 0x880C0514, // 008E GETMBR R3 R2 K20
- 0x90020203, // 008F SETMBR R0 K1 R3
- 0x8C0C0115, // 0090 GETMET R3 R0 K21
- 0x5C140200, // 0091 MOVE R5 R1
- 0x7C0C0400, // 0092 CALL R3 2
- 0x880C0101, // 0093 GETMBR R3 R0 K1
- 0x88100508, // 0094 GETMBR R4 R2 K8
- 0x1C0C0604, // 0095 EQ R3 R3 R4
- 0x740E0003, // 0096 JMPT R3 #009B
- 0x880C0101, // 0097 GETMBR R3 R0 K1
- 0x8810050C, // 0098 GETMBR R4 R2 K12
- 0x1C0C0604, // 0099 EQ R3 R3 R4
- 0x780E0006, // 009A JMPF R3 #00A2
- 0x8C0C0316, // 009B GETMET R3 R1 K22
- 0x60140009, // 009C GETGBL R5 G9
- 0x88180103, // 009D GETMBR R6 R0 K3
- 0x7C140200, // 009E CALL R5 1
- 0x58180017, // 009F LDCONST R6 K23
- 0x7C0C0600, // 00A0 CALL R3 3
- 0x700200CC, // 00A1 JMP #016F
- 0x880C0101, // 00A2 GETMBR R3 R0 K1
- 0x88100506, // 00A3 GETMBR R4 R2 K6
- 0x1C0C0604, // 00A4 EQ R3 R3 R4
- 0x740E0003, // 00A5 JMPT R3 #00AA
- 0x880C0101, // 00A6 GETMBR R3 R0 K1
- 0x88100509, // 00A7 GETMBR R4 R2 K9
- 0x1C0C0604, // 00A8 EQ R3 R3 R4
- 0x780E0006, // 00A9 JMPF R3 #00B1
- 0x8C0C0316, // 00AA GETMET R3 R1 K22
- 0x60140009, // 00AB GETGBL R5 G9
- 0x88180103, // 00AC GETMBR R6 R0 K3
- 0x7C140200, // 00AD CALL R5 1
- 0x58180018, // 00AE LDCONST R6 K24
- 0x7C0C0600, // 00AF CALL R3 3
- 0x700200BD, // 00B0 JMP #016F
- 0x880C0101, // 00B1 GETMBR R3 R0 K1
- 0x88100507, // 00B2 GETMBR R4 R2 K7
- 0x1C0C0604, // 00B3 EQ R3 R3 R4
- 0x740E0003, // 00B4 JMPT R3 #00B9
- 0x880C0101, // 00B5 GETMBR R3 R0 K1
- 0x8810050A, // 00B6 GETMBR R4 R2 K10
- 0x1C0C0604, // 00B7 EQ R3 R3 R4
- 0x780E0006, // 00B8 JMPF R3 #00C0
- 0x8C0C0316, // 00B9 GETMET R3 R1 K22
- 0x60140009, // 00BA GETGBL R5 G9
- 0x88180103, // 00BB GETMBR R6 R0 K3
- 0x7C140200, // 00BC CALL R5 1
- 0x541A0003, // 00BD LDINT R6 4
- 0x7C0C0600, // 00BE CALL R3 3
- 0x700200AE, // 00BF JMP #016F
- 0x880C0101, // 00C0 GETMBR R3 R0 K1
- 0x88100519, // 00C1 GETMBR R4 R2 K25
- 0x1C0C0604, // 00C2 EQ R3 R3 R4
- 0x740E0003, // 00C3 JMPT R3 #00C8
- 0x880C0101, // 00C4 GETMBR R3 R0 K1
- 0x8810051A, // 00C5 GETMBR R4 R2 K26
- 0x1C0C0604, // 00C6 EQ R3 R3 R4
- 0x780E001F, // 00C7 JMPF R3 #00E8
- 0x880C0103, // 00C8 GETMBR R3 R0 K3
- 0x6010000F, // 00C9 GETGBL R4 G15
- 0x5C140600, // 00CA MOVE R5 R3
- 0x60180015, // 00CB GETGBL R6 G21
- 0x7C100400, // 00CC CALL R4 2
- 0x78120006, // 00CD JMPF R4 #00D5
- 0x8C10071B, // 00CE GETMET R4 R3 K27
- 0x7C100200, // 00CF CALL R4 1
- 0x8C10091C, // 00D0 GETMET R4 R4 K28
- 0x541A0007, // 00D1 LDINT R6 8
- 0x7C100400, // 00D2 CALL R4 2
- 0x5C0C0800, // 00D3 MOVE R3 R4
- 0x70020010, // 00D4 JMP #00E6
- 0x6010000F, // 00D5 GETGBL R4 G15
- 0x5C140600, // 00D6 MOVE R5 R3
- 0xB81A3A00, // 00D7 GETNGBL R6 K29
- 0x7C100400, // 00D8 CALL R4 2
- 0x78120003, // 00D9 JMPF R4 #00DE
- 0x8C10071E, // 00DA GETMET R4 R3 K30
- 0x7C100200, // 00DB CALL R4 1
- 0x5C0C0800, // 00DC MOVE R3 R4
- 0x70020007, // 00DD JMP #00E6
- 0xB8123A00, // 00DE GETNGBL R4 K29
- 0x60140009, // 00DF GETGBL R5 G9
- 0x5C180600, // 00E0 MOVE R6 R3
- 0x7C140200, // 00E1 CALL R5 1
- 0x7C100200, // 00E2 CALL R4 1
- 0x8C10091E, // 00E3 GETMET R4 R4 K30
- 0x7C100200, // 00E4 CALL R4 1
- 0x5C0C0800, // 00E5 MOVE R3 R4
- 0x40100203, // 00E6 CONNECT R4 R1 R3
- 0x70020086, // 00E7 JMP #016F
- 0x880C0101, // 00E8 GETMBR R3 R0 K1
- 0x88100504, // 00E9 GETMBR R4 R2 K4
- 0x1C0C0604, // 00EA EQ R3 R3 R4
- 0x740E0003, // 00EB JMPT R3 #00F0
- 0x880C0101, // 00EC GETMBR R3 R0 K1
- 0x88100505, // 00ED GETMBR R4 R2 K5
- 0x1C0C0604, // 00EE EQ R3 R3 R4
- 0x780E0000, // 00EF JMPF R3 #00F1
- 0x7002007D, // 00F0 JMP #016F
- 0x880C0101, // 00F1 GETMBR R3 R0 K1
- 0x8810051F, // 00F2 GETMBR R4 R2 K31
- 0x1C0C0604, // 00F3 EQ R3 R3 R4
- 0x780E000D, // 00F4 JMPF R3 #0103
- 0x600C000C, // 00F5 GETGBL R3 G12
- 0x5C100200, // 00F6 MOVE R4 R1
- 0x7C0C0200, // 00F7 CALL R3 1
- 0x8C100316, // 00F8 GETMET R4 R1 K22
- 0x5818000B, // 00F9 LDCONST R6 K11
- 0x541E0003, // 00FA LDINT R7 4
- 0x7C100600, // 00FB CALL R4 3
- 0x8C100320, // 00FC GETMET R4 R1 K32
- 0x5C180600, // 00FD MOVE R6 R3
- 0x601C000A, // 00FE GETGBL R7 G10
- 0x88200103, // 00FF GETMBR R8 R0 K3
- 0x7C1C0200, // 0100 CALL R7 1
- 0x7C100600, // 0101 CALL R4 3
- 0x7002006B, // 0102 JMP #016F
- 0x880C0101, // 0103 GETMBR R3 R0 K1
- 0x88100521, // 0104 GETMBR R4 R2 K33
- 0x1C0C0604, // 0105 EQ R3 R3 R4
- 0x780E0001, // 0106 JMPF R3 #0109
- 0xB0064523, // 0107 RAISE 1 K34 K35
- 0x70020065, // 0108 JMP #016F
- 0x880C0101, // 0109 GETMBR R3 R0 K1
- 0x88100511, // 010A GETMBR R4 R2 K17
- 0x1C0C0604, // 010B EQ R3 R3 R4
- 0x780E0015, // 010C JMPF R3 #0123
- 0x600C000C, // 010D GETGBL R3 G12
- 0x88100103, // 010E GETMBR R4 R0 K3
- 0x7C0C0200, // 010F CALL R3 1
- 0x541200FE, // 0110 LDINT R4 255
- 0x240C0604, // 0111 GT R3 R3 R4
- 0x780E0000, // 0112 JMPF R3 #0114
- 0xB0064524, // 0113 RAISE 1 K34 K36
- 0x8C0C0316, // 0114 GETMET R3 R1 K22
- 0x6014000C, // 0115 GETGBL R5 G12
- 0x88180103, // 0116 GETMBR R6 R0 K3
- 0x7C140200, // 0117 CALL R5 1
- 0x58180017, // 0118 LDCONST R6 K23
- 0x7C0C0600, // 0119 CALL R3 3
- 0x600C0015, // 011A GETGBL R3 G21
- 0x7C0C0000, // 011B CALL R3 0
- 0x8C0C0725, // 011C GETMET R3 R3 K37
- 0x60140008, // 011D GETGBL R5 G8
- 0x88180103, // 011E GETMBR R6 R0 K3
- 0x7C140200, // 011F CALL R5 1
- 0x7C0C0400, // 0120 CALL R3 2
- 0x400C0203, // 0121 CONNECT R3 R1 R3
- 0x7002004B, // 0122 JMP #016F
- 0x880C0101, // 0123 GETMBR R3 R0 K1
- 0x88100513, // 0124 GETMBR R4 R2 K19
- 0x1C0C0604, // 0125 EQ R3 R3 R4
- 0x780E0015, // 0126 JMPF R3 #013D
- 0x600C000C, // 0127 GETGBL R3 G12
- 0x88100103, // 0128 GETMBR R4 R0 K3
- 0x7C0C0200, // 0129 CALL R3 1
- 0x5412FFFE, // 012A LDINT R4 65535
- 0x240C0604, // 012B GT R3 R3 R4
- 0x780E0000, // 012C JMPF R3 #012E
- 0xB0064524, // 012D RAISE 1 K34 K36
- 0x8C0C0316, // 012E GETMET R3 R1 K22
- 0x6014000C, // 012F GETGBL R5 G12
- 0x88180103, // 0130 GETMBR R6 R0 K3
- 0x7C140200, // 0131 CALL R5 1
- 0x58180018, // 0132 LDCONST R6 K24
- 0x7C0C0600, // 0133 CALL R3 3
- 0x600C0015, // 0134 GETGBL R3 G21
- 0x7C0C0000, // 0135 CALL R3 0
- 0x8C0C0726, // 0136 GETMET R3 R3 K38
- 0x60140008, // 0137 GETGBL R5 G8
- 0x88180103, // 0138 GETMBR R6 R0 K3
- 0x7C140200, // 0139 CALL R5 1
- 0x7C0C0400, // 013A CALL R3 2
- 0x400C0203, // 013B CONNECT R3 R1 R3
- 0x70020031, // 013C JMP #016F
- 0x880C0101, // 013D GETMBR R3 R0 K1
- 0x8810050D, // 013E GETMBR R4 R2 K13
- 0x1C0C0604, // 013F EQ R3 R3 R4
- 0x780E000F, // 0140 JMPF R3 #0151
- 0x600C000C, // 0141 GETGBL R3 G12
- 0x88100103, // 0142 GETMBR R4 R0 K3
- 0x7C0C0200, // 0143 CALL R3 1
- 0x541200FE, // 0144 LDINT R4 255
- 0x240C0604, // 0145 GT R3 R3 R4
- 0x780E0000, // 0146 JMPF R3 #0148
- 0xB0064527, // 0147 RAISE 1 K34 K39
- 0x8C0C0316, // 0148 GETMET R3 R1 K22
- 0x6014000C, // 0149 GETGBL R5 G12
- 0x88180103, // 014A GETMBR R6 R0 K3
- 0x7C140200, // 014B CALL R5 1
- 0x58180017, // 014C LDCONST R6 K23
- 0x7C0C0600, // 014D CALL R3 3
- 0x880C0103, // 014E GETMBR R3 R0 K3
- 0x400C0203, // 014F CONNECT R3 R1 R3
- 0x7002001D, // 0150 JMP #016F
- 0x880C0101, // 0151 GETMBR R3 R0 K1
- 0x8810050F, // 0152 GETMBR R4 R2 K15
- 0x1C0C0604, // 0153 EQ R3 R3 R4
- 0x780E000F, // 0154 JMPF R3 #0165
- 0x600C000C, // 0155 GETGBL R3 G12
- 0x88100103, // 0156 GETMBR R4 R0 K3
- 0x7C0C0200, // 0157 CALL R3 1
- 0x5412FFFE, // 0158 LDINT R4 65535
- 0x240C0604, // 0159 GT R3 R3 R4
- 0x780E0000, // 015A JMPF R3 #015C
- 0xB0064527, // 015B RAISE 1 K34 K39
- 0x8C0C0316, // 015C GETMET R3 R1 K22
- 0x6014000C, // 015D GETGBL R5 G12
- 0x88180103, // 015E GETMBR R6 R0 K3
- 0x7C140200, // 015F CALL R5 1
- 0x58180018, // 0160 LDCONST R6 K24
- 0x7C0C0600, // 0161 CALL R3 3
- 0x880C0103, // 0162 GETMBR R3 R0 K3
- 0x400C0203, // 0163 CONNECT R3 R1 R3
- 0x70020009, // 0164 JMP #016F
- 0x880C0101, // 0165 GETMBR R3 R0 K1
- 0x88100528, // 0166 GETMBR R4 R2 K40
- 0x1C0C0604, // 0167 EQ R3 R3 R4
- 0x780E0000, // 0168 JMPF R3 #016A
- 0x70020004, // 0169 JMP #016F
- 0x600C0008, // 016A GETGBL R3 G8
- 0x88100101, // 016B GETMBR R4 R0 K1
- 0x7C0C0200, // 016C CALL R3 1
- 0x000E5203, // 016D ADD R3 K41 R3
- 0xB0064403, // 016E RAISE 1 K34 R3
- 0x80040200, // 016F RET 1 R1
+ 0x1C0C0706, // 0019 EQ R3 R3 K6
+ 0x780E0008, // 001A JMPF R3 #0024
+ 0x880C0101, // 001B GETMBR R3 R0 K1
+ 0x88100504, // 001C GETMBR R4 R2 K4
+ 0x1C0C0604, // 001D EQ R3 R3 R4
+ 0x780E0002, // 001E JMPF R3 #0022
+ 0x880C0507, // 001F GETMBR R3 R2 K7
+ 0x90020203, // 0020 SETMBR R0 K1 R3
+ 0x70020001, // 0021 JMP #0024
+ 0x880C0508, // 0022 GETMBR R3 R2 K8
+ 0x90020203, // 0023 SETMBR R0 K1 R3
+ 0x880C0101, // 0024 GETMBR R3 R0 K1
+ 0x88100509, // 0025 GETMBR R4 R2 K9
+ 0x1C0C0604, // 0026 EQ R3 R3 R4
+ 0x740E0003, // 0027 JMPT R3 #002C
+ 0x880C0101, // 0028 GETMBR R3 R0 K1
+ 0x8810050A, // 0029 GETMBR R4 R2 K10
+ 0x1C0C0604, // 002A EQ R3 R3 R4
+ 0x780E0008, // 002B JMPF R3 #0035
+ 0x600C0017, // 002C GETGBL R3 G23
+ 0x88100103, // 002D GETMBR R4 R0 K3
+ 0x7C0C0200, // 002E CALL R3 1
+ 0x780E0001, // 002F JMPF R3 #0032
+ 0x880C050A, // 0030 GETMBR R3 R2 K10
+ 0x70020000, // 0031 JMP #0033
+ 0x880C0509, // 0032 GETMBR R3 R2 K9
+ 0x90020203, // 0033 SETMBR R0 K1 R3
+ 0x70020070, // 0034 JMP #00A6
+ 0x880C0101, // 0035 GETMBR R3 R0 K1
+ 0x8810050B, // 0036 GETMBR R4 R2 K11
+ 0x280C0604, // 0037 GE R3 R3 R4
+ 0x780E0018, // 0038 JMPF R3 #0052
+ 0x880C0101, // 0039 GETMBR R3 R0 K1
+ 0x88100507, // 003A GETMBR R4 R2 K7
+ 0x180C0604, // 003B LE R3 R3 R4
+ 0x780E0014, // 003C JMPF R3 #0052
+ 0x600C0009, // 003D GETGBL R3 G9
+ 0x88100103, // 003E GETMBR R4 R0 K3
+ 0x7C0C0200, // 003F CALL R3 1
+ 0x5412007E, // 0040 LDINT R4 127
+ 0x18100604, // 0041 LE R4 R3 R4
+ 0x78120005, // 0042 JMPF R4 #0049
+ 0x5411FF7F, // 0043 LDINT R4 -128
+ 0x28100604, // 0044 GE R4 R3 R4
+ 0x78120002, // 0045 JMPF R4 #0049
+ 0x8810050C, // 0046 GETMBR R4 R2 K12
+ 0x90020204, // 0047 SETMBR R0 K1 R4
+ 0x70020007, // 0048 JMP #0051
+ 0x54127FFE, // 0049 LDINT R4 32767
+ 0x18100604, // 004A LE R4 R3 R4
+ 0x78120004, // 004B JMPF R4 #0051
+ 0x54117FFF, // 004C LDINT R4 -32768
+ 0x28100604, // 004D GE R4 R3 R4
+ 0x78120001, // 004E JMPF R4 #0051
+ 0x8810050B, // 004F GETMBR R4 R2 K11
+ 0x90020204, // 0050 SETMBR R0 K1 R4
+ 0x70020053, // 0051 JMP #00A6
+ 0x880C0101, // 0052 GETMBR R3 R0 K1
+ 0x8810050D, // 0053 GETMBR R4 R2 K13
+ 0x280C0604, // 0054 GE R3 R3 R4
+ 0x780E0016, // 0055 JMPF R3 #006D
+ 0x880C0101, // 0056 GETMBR R3 R0 K1
+ 0x88100508, // 0057 GETMBR R4 R2 K8
+ 0x180C0604, // 0058 LE R3 R3 R4
+ 0x780E0012, // 0059 JMPF R3 #006D
+ 0x600C0009, // 005A GETGBL R3 G9
+ 0x88100103, // 005B GETMBR R4 R0 K3
+ 0x7C0C0200, // 005C CALL R3 1
+ 0x541200FE, // 005D LDINT R4 255
+ 0x18100604, // 005E LE R4 R3 R4
+ 0x78120004, // 005F JMPF R4 #0065
+ 0x2810070E, // 0060 GE R4 R3 K14
+ 0x78120002, // 0061 JMPF R4 #0065
+ 0x8810050F, // 0062 GETMBR R4 R2 K15
+ 0x90020204, // 0063 SETMBR R0 K1 R4
+ 0x70020006, // 0064 JMP #006C
+ 0x5412FFFE, // 0065 LDINT R4 65535
+ 0x18100604, // 0066 LE R4 R3 R4
+ 0x78120003, // 0067 JMPF R4 #006C
+ 0x2810070E, // 0068 GE R4 R3 K14
+ 0x78120001, // 0069 JMPF R4 #006C
+ 0x8810050D, // 006A GETMBR R4 R2 K13
+ 0x90020204, // 006B SETMBR R0 K1 R4
+ 0x70020038, // 006C JMP #00A6
+ 0x880C0101, // 006D GETMBR R3 R0 K1
+ 0x88100510, // 006E GETMBR R4 R2 K16
+ 0x280C0604, // 006F GE R3 R3 R4
+ 0x780E0018, // 0070 JMPF R3 #008A
+ 0x880C0101, // 0071 GETMBR R3 R0 K1
+ 0x88100511, // 0072 GETMBR R4 R2 K17
+ 0x180C0604, // 0073 LE R3 R3 R4
+ 0x780E0014, // 0074 JMPF R3 #008A
+ 0x600C000C, // 0075 GETGBL R3 G12
+ 0x88100103, // 0076 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0077 CALL R3 1
+ 0x541200FE, // 0078 LDINT R4 255
+ 0x180C0604, // 0079 LE R3 R3 R4
+ 0x780E0002, // 007A JMPF R3 #007E
+ 0x880C0510, // 007B GETMBR R3 R2 K16
+ 0x90020203, // 007C SETMBR R0 K1 R3
+ 0x7002000A, // 007D JMP #0089
+ 0x600C000C, // 007E GETGBL R3 G12
+ 0x88100103, // 007F GETMBR R4 R0 K3
+ 0x7C0C0200, // 0080 CALL R3 1
+ 0x5412FFFE, // 0081 LDINT R4 65535
+ 0x180C0604, // 0082 LE R3 R3 R4
+ 0x780E0002, // 0083 JMPF R3 #0087
+ 0x880C0512, // 0084 GETMBR R3 R2 K18
+ 0x90020203, // 0085 SETMBR R0 K1 R3
+ 0x70020001, // 0086 JMP #0089
+ 0x880C0513, // 0087 GETMBR R3 R2 K19
+ 0x90020203, // 0088 SETMBR R0 K1 R3
+ 0x7002001B, // 0089 JMP #00A6
+ 0x880C0101, // 008A GETMBR R3 R0 K1
+ 0x88100514, // 008B GETMBR R4 R2 K20
+ 0x280C0604, // 008C GE R3 R3 R4
+ 0x780E0017, // 008D JMPF R3 #00A6
+ 0x880C0101, // 008E GETMBR R3 R0 K1
+ 0x88100515, // 008F GETMBR R4 R2 K21
+ 0x180C0604, // 0090 LE R3 R3 R4
+ 0x780E0013, // 0091 JMPF R3 #00A6
+ 0x600C000C, // 0092 GETGBL R3 G12
+ 0x88100103, // 0093 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0094 CALL R3 1
+ 0x541200FE, // 0095 LDINT R4 255
+ 0x180C0604, // 0096 LE R3 R3 R4
+ 0x780E0002, // 0097 JMPF R3 #009B
+ 0x880C0514, // 0098 GETMBR R3 R2 K20
+ 0x90020203, // 0099 SETMBR R0 K1 R3
+ 0x7002000A, // 009A JMP #00A6
+ 0x600C000C, // 009B GETGBL R3 G12
+ 0x88100103, // 009C GETMBR R4 R0 K3
+ 0x7C0C0200, // 009D CALL R3 1
+ 0x5412FFFE, // 009E LDINT R4 65535
+ 0x180C0604, // 009F LE R3 R3 R4
+ 0x780E0002, // 00A0 JMPF R3 #00A4
+ 0x880C0516, // 00A1 GETMBR R3 R2 K22
+ 0x90020203, // 00A2 SETMBR R0 K1 R3
+ 0x70020001, // 00A3 JMP #00A6
+ 0x880C0517, // 00A4 GETMBR R3 R2 K23
+ 0x90020203, // 00A5 SETMBR R0 K1 R3
+ 0x8C0C0118, // 00A6 GETMET R3 R0 K24
+ 0x5C140200, // 00A7 MOVE R5 R1
+ 0x7C0C0400, // 00A8 CALL R3 2
+ 0x880C0101, // 00A9 GETMBR R3 R0 K1
+ 0x8810050C, // 00AA GETMBR R4 R2 K12
+ 0x1C0C0604, // 00AB EQ R3 R3 R4
+ 0x740E0003, // 00AC JMPT R3 #00B1
+ 0x880C0101, // 00AD GETMBR R3 R0 K1
+ 0x8810050F, // 00AE GETMBR R4 R2 K15
+ 0x1C0C0604, // 00AF EQ R3 R3 R4
+ 0x780E0006, // 00B0 JMPF R3 #00B8
+ 0x8C0C0319, // 00B1 GETMET R3 R1 K25
+ 0x60140009, // 00B2 GETGBL R5 G9
+ 0x88180103, // 00B3 GETMBR R6 R0 K3
+ 0x7C140200, // 00B4 CALL R5 1
+ 0x5818001A, // 00B5 LDCONST R6 K26
+ 0x7C0C0600, // 00B6 CALL R3 3
+ 0x700200DA, // 00B7 JMP #0193
+ 0x880C0101, // 00B8 GETMBR R3 R0 K1
+ 0x8810050B, // 00B9 GETMBR R4 R2 K11
+ 0x1C0C0604, // 00BA EQ R3 R3 R4
+ 0x740E0003, // 00BB JMPT R3 #00C0
+ 0x880C0101, // 00BC GETMBR R3 R0 K1
+ 0x8810050D, // 00BD GETMBR R4 R2 K13
+ 0x1C0C0604, // 00BE EQ R3 R3 R4
+ 0x780E0006, // 00BF JMPF R3 #00C7
+ 0x8C0C0319, // 00C0 GETMET R3 R1 K25
+ 0x60140009, // 00C1 GETGBL R5 G9
+ 0x88180103, // 00C2 GETMBR R6 R0 K3
+ 0x7C140200, // 00C3 CALL R5 1
+ 0x5818001B, // 00C4 LDCONST R6 K27
+ 0x7C0C0600, // 00C5 CALL R3 3
+ 0x700200CB, // 00C6 JMP #0193
+ 0x880C0101, // 00C7 GETMBR R3 R0 K1
+ 0x88100507, // 00C8 GETMBR R4 R2 K7
+ 0x1C0C0604, // 00C9 EQ R3 R3 R4
+ 0x740E0003, // 00CA JMPT R3 #00CF
+ 0x880C0101, // 00CB GETMBR R3 R0 K1
+ 0x88100508, // 00CC GETMBR R4 R2 K8
+ 0x1C0C0604, // 00CD EQ R3 R3 R4
+ 0x780E0006, // 00CE JMPF R3 #00D6
+ 0x8C0C0319, // 00CF GETMET R3 R1 K25
+ 0x60140009, // 00D0 GETGBL R5 G9
+ 0x88180103, // 00D1 GETMBR R6 R0 K3
+ 0x7C140200, // 00D2 CALL R5 1
+ 0x541A0003, // 00D3 LDINT R6 4
+ 0x7C0C0600, // 00D4 CALL R3 3
+ 0x700200BC, // 00D5 JMP #0193
+ 0x880C0101, // 00D6 GETMBR R3 R0 K1
+ 0x88100504, // 00D7 GETMBR R4 R2 K4
+ 0x1C0C0604, // 00D8 EQ R3 R3 R4
+ 0x740E0003, // 00D9 JMPT R3 #00DE
+ 0x880C0101, // 00DA GETMBR R3 R0 K1
+ 0x88100505, // 00DB GETMBR R4 R2 K5
+ 0x1C0C0604, // 00DC EQ R3 R3 R4
+ 0x780E002D, // 00DD JMPF R3 #010C
+ 0x880C0103, // 00DE GETMBR R3 R0 K3
+ 0x6010000F, // 00DF GETGBL R4 G15
+ 0x5C140600, // 00E0 MOVE R5 R3
+ 0x60180015, // 00E1 GETGBL R6 G21
+ 0x7C100400, // 00E2 CALL R4 2
+ 0x78120006, // 00E3 JMPF R4 #00EB
+ 0x8C10071C, // 00E4 GETMET R4 R3 K28
+ 0x7C100200, // 00E5 CALL R4 1
+ 0x8C10091D, // 00E6 GETMET R4 R4 K29
+ 0x541A0007, // 00E7 LDINT R6 8
+ 0x7C100400, // 00E8 CALL R4 2
+ 0x5C0C0800, // 00E9 MOVE R3 R4
+ 0x7002001E, // 00EA JMP #010A
+ 0x6010000F, // 00EB GETGBL R4 G15
+ 0x5C140600, // 00EC MOVE R5 R3
+ 0xB81A3C00, // 00ED GETNGBL R6 K30
+ 0x7C100400, // 00EE CALL R4 2
+ 0x78120003, // 00EF JMPF R4 #00F4
+ 0x8C10071F, // 00F0 GETMET R4 R3 K31
+ 0x7C100200, // 00F1 CALL R4 1
+ 0x5C0C0800, // 00F2 MOVE R3 R4
+ 0x70020015, // 00F3 JMP #010A
+ 0x88100101, // 00F4 GETMBR R4 R0 K1
+ 0x88140504, // 00F5 GETMBR R5 R2 K4
+ 0x1C100805, // 00F6 EQ R4 R4 R5
+ 0x78120008, // 00F7 JMPF R4 #0101
+ 0xB8123C00, // 00F8 GETNGBL R4 K30
+ 0x60140009, // 00F9 GETGBL R5 G9
+ 0x5C180600, // 00FA MOVE R6 R3
+ 0x7C140200, // 00FB CALL R5 1
+ 0x7C100200, // 00FC CALL R4 1
+ 0x8C10091F, // 00FD GETMET R4 R4 K31
+ 0x7C100200, // 00FE CALL R4 1
+ 0x5C0C0800, // 00FF MOVE R3 R4
+ 0x70020008, // 0100 JMP #010A
+ 0xB8123C00, // 0101 GETNGBL R4 K30
+ 0x8C100920, // 0102 GETMET R4 R4 K32
+ 0x60180009, // 0103 GETGBL R6 G9
+ 0x5C1C0600, // 0104 MOVE R7 R3
+ 0x7C180200, // 0105 CALL R6 1
+ 0x7C100400, // 0106 CALL R4 2
+ 0x8C10091F, // 0107 GETMET R4 R4 K31
+ 0x7C100200, // 0108 CALL R4 1
+ 0x5C0C0800, // 0109 MOVE R3 R4
+ 0x40100203, // 010A CONNECT R4 R1 R3
+ 0x70020086, // 010B JMP #0193
+ 0x880C0101, // 010C GETMBR R3 R0 K1
+ 0x88100509, // 010D GETMBR R4 R2 K9
+ 0x1C0C0604, // 010E EQ R3 R3 R4
+ 0x740E0003, // 010F JMPT R3 #0114
+ 0x880C0101, // 0110 GETMBR R3 R0 K1
+ 0x8810050A, // 0111 GETMBR R4 R2 K10
+ 0x1C0C0604, // 0112 EQ R3 R3 R4
+ 0x780E0000, // 0113 JMPF R3 #0115
+ 0x7002007D, // 0114 JMP #0193
+ 0x880C0101, // 0115 GETMBR R3 R0 K1
+ 0x88100521, // 0116 GETMBR R4 R2 K33
+ 0x1C0C0604, // 0117 EQ R3 R3 R4
+ 0x780E000D, // 0118 JMPF R3 #0127
+ 0x600C000C, // 0119 GETGBL R3 G12
+ 0x5C100200, // 011A MOVE R4 R1
+ 0x7C0C0200, // 011B CALL R3 1
+ 0x8C100319, // 011C GETMET R4 R1 K25
+ 0x5818000E, // 011D LDCONST R6 K14
+ 0x541E0003, // 011E LDINT R7 4
+ 0x7C100600, // 011F CALL R4 3
+ 0x8C100322, // 0120 GETMET R4 R1 K34
+ 0x5C180600, // 0121 MOVE R6 R3
+ 0x601C000A, // 0122 GETGBL R7 G10
+ 0x88200103, // 0123 GETMBR R8 R0 K3
+ 0x7C1C0200, // 0124 CALL R7 1
+ 0x7C100600, // 0125 CALL R4 3
+ 0x7002006B, // 0126 JMP #0193
+ 0x880C0101, // 0127 GETMBR R3 R0 K1
+ 0x88100523, // 0128 GETMBR R4 R2 K35
+ 0x1C0C0604, // 0129 EQ R3 R3 R4
+ 0x780E0001, // 012A JMPF R3 #012D
+ 0xB0064925, // 012B RAISE 1 K36 K37
+ 0x70020065, // 012C JMP #0193
+ 0x880C0101, // 012D GETMBR R3 R0 K1
+ 0x88100514, // 012E GETMBR R4 R2 K20
+ 0x1C0C0604, // 012F EQ R3 R3 R4
+ 0x780E0015, // 0130 JMPF R3 #0147
+ 0x600C000C, // 0131 GETGBL R3 G12
+ 0x88100103, // 0132 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0133 CALL R3 1
+ 0x541200FE, // 0134 LDINT R4 255
+ 0x240C0604, // 0135 GT R3 R3 R4
+ 0x780E0000, // 0136 JMPF R3 #0138
+ 0xB0064926, // 0137 RAISE 1 K36 K38
+ 0x8C0C0319, // 0138 GETMET R3 R1 K25
+ 0x6014000C, // 0139 GETGBL R5 G12
+ 0x88180103, // 013A GETMBR R6 R0 K3
+ 0x7C140200, // 013B CALL R5 1
+ 0x5818001A, // 013C LDCONST R6 K26
+ 0x7C0C0600, // 013D CALL R3 3
+ 0x600C0015, // 013E GETGBL R3 G21
+ 0x7C0C0000, // 013F CALL R3 0
+ 0x8C0C0727, // 0140 GETMET R3 R3 K39
+ 0x60140008, // 0141 GETGBL R5 G8
+ 0x88180103, // 0142 GETMBR R6 R0 K3
+ 0x7C140200, // 0143 CALL R5 1
+ 0x7C0C0400, // 0144 CALL R3 2
+ 0x400C0203, // 0145 CONNECT R3 R1 R3
+ 0x7002004B, // 0146 JMP #0193
+ 0x880C0101, // 0147 GETMBR R3 R0 K1
+ 0x88100516, // 0148 GETMBR R4 R2 K22
+ 0x1C0C0604, // 0149 EQ R3 R3 R4
+ 0x780E0015, // 014A JMPF R3 #0161
+ 0x600C000C, // 014B GETGBL R3 G12
+ 0x88100103, // 014C GETMBR R4 R0 K3
+ 0x7C0C0200, // 014D CALL R3 1
+ 0x5412FFFE, // 014E LDINT R4 65535
+ 0x240C0604, // 014F GT R3 R3 R4
+ 0x780E0000, // 0150 JMPF R3 #0152
+ 0xB0064926, // 0151 RAISE 1 K36 K38
+ 0x8C0C0319, // 0152 GETMET R3 R1 K25
+ 0x6014000C, // 0153 GETGBL R5 G12
+ 0x88180103, // 0154 GETMBR R6 R0 K3
+ 0x7C140200, // 0155 CALL R5 1
+ 0x5818001B, // 0156 LDCONST R6 K27
+ 0x7C0C0600, // 0157 CALL R3 3
+ 0x600C0015, // 0158 GETGBL R3 G21
+ 0x7C0C0000, // 0159 CALL R3 0
+ 0x8C0C0728, // 015A GETMET R3 R3 K40
+ 0x60140008, // 015B GETGBL R5 G8
+ 0x88180103, // 015C GETMBR R6 R0 K3
+ 0x7C140200, // 015D CALL R5 1
+ 0x7C0C0400, // 015E CALL R3 2
+ 0x400C0203, // 015F CONNECT R3 R1 R3
+ 0x70020031, // 0160 JMP #0193
+ 0x880C0101, // 0161 GETMBR R3 R0 K1
+ 0x88100510, // 0162 GETMBR R4 R2 K16
+ 0x1C0C0604, // 0163 EQ R3 R3 R4
+ 0x780E000F, // 0164 JMPF R3 #0175
+ 0x600C000C, // 0165 GETGBL R3 G12
+ 0x88100103, // 0166 GETMBR R4 R0 K3
+ 0x7C0C0200, // 0167 CALL R3 1
+ 0x541200FE, // 0168 LDINT R4 255
+ 0x240C0604, // 0169 GT R3 R3 R4
+ 0x780E0000, // 016A JMPF R3 #016C
+ 0xB0064929, // 016B RAISE 1 K36 K41
+ 0x8C0C0319, // 016C GETMET R3 R1 K25
+ 0x6014000C, // 016D GETGBL R5 G12
+ 0x88180103, // 016E GETMBR R6 R0 K3
+ 0x7C140200, // 016F CALL R5 1
+ 0x5818001A, // 0170 LDCONST R6 K26
+ 0x7C0C0600, // 0171 CALL R3 3
+ 0x880C0103, // 0172 GETMBR R3 R0 K3
+ 0x400C0203, // 0173 CONNECT R3 R1 R3
+ 0x7002001D, // 0174 JMP #0193
+ 0x880C0101, // 0175 GETMBR R3 R0 K1
+ 0x88100512, // 0176 GETMBR R4 R2 K18
+ 0x1C0C0604, // 0177 EQ R3 R3 R4
+ 0x780E000F, // 0178 JMPF R3 #0189
+ 0x600C000C, // 0179 GETGBL R3 G12
+ 0x88100103, // 017A GETMBR R4 R0 K3
+ 0x7C0C0200, // 017B CALL R3 1
+ 0x5412FFFE, // 017C LDINT R4 65535
+ 0x240C0604, // 017D GT R3 R3 R4
+ 0x780E0000, // 017E JMPF R3 #0180
+ 0xB0064929, // 017F RAISE 1 K36 K41
+ 0x8C0C0319, // 0180 GETMET R3 R1 K25
+ 0x6014000C, // 0181 GETGBL R5 G12
+ 0x88180103, // 0182 GETMBR R6 R0 K3
+ 0x7C140200, // 0183 CALL R5 1
+ 0x5818001B, // 0184 LDCONST R6 K27
+ 0x7C0C0600, // 0185 CALL R3 3
+ 0x880C0103, // 0186 GETMBR R3 R0 K3
+ 0x400C0203, // 0187 CONNECT R3 R1 R3
+ 0x70020009, // 0188 JMP #0193
+ 0x880C0101, // 0189 GETMBR R3 R0 K1
+ 0x8810052A, // 018A GETMBR R4 R2 K42
+ 0x1C0C0604, // 018B EQ R3 R3 R4
+ 0x780E0000, // 018C JMPF R3 #018E
+ 0x70020004, // 018D JMP #0193
+ 0x600C0008, // 018E GETGBL R3 G8
+ 0x88100101, // 018F GETMBR R4 R0 K1
+ 0x7C0C0200, // 0190 CALL R3 1
+ 0x000E5603, // 0191 ADD R3 K43 R3
+ 0xB0064803, // 0192 RAISE 1 K36 R3
+ 0x80040200, // 0193 RET 1 R1
})
)
);
From 40fb8fa7df1107d3ed1561b1a9aa0f18d5aebf5b Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 22 Jun 2024 10:15:39 +0200
Subject: [PATCH 076/252] Fix Matter resumption final ack (#21673)
---
.../src/embedded/Matter_Commissioning.be | 4 +-
.../src/embedded/Matter_Message.be | 2 +-
.../src/embedded/Matter_MessageHandler.be | 5 +-
.../solidified_Matter_Commissioning.h | 1063 +++++++++--------
.../src/solidify/solidified_Matter_Message.h | 48 +-
.../solidified_Matter_MessageHandler.h | 568 ++++-----
6 files changed, 857 insertions(+), 833 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
index 7330292ce..2e7f0e170 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Commissioning.be
@@ -349,6 +349,7 @@ class Matter_Commisioning_Context
# Check that it's a resumption
if is_resumption
# Resumption p.169
+ log("MTR: Sigma1 Resumption", 3)
var s1rk_salt = sigma1.initiatorRandom + sigma1.resumptionID
var s1rk_info = bytes().fromstring("Sigma1_Resume")
var s1rk = crypto.HKDF_SHA256().derive(session_resumption.shared_secret, s1rk_salt, s1rk_info, 16)
@@ -696,7 +697,8 @@ class Matter_Commisioning_Context
# placeholder, nothing to run for now
def parse_StatusReport(msg)
var session = msg.session
- log("MTR: >Status "+msg.raw[msg.app_payload_idx..].tohex(), 3)
+ var status_msg = msg.raw[msg.app_payload_idx..].tohex()
+ log(f"MTR: >Status {status_msg}", (status_msg != "0000000000000000") ? 3 : 4)
return false # we don't explicitly ack the message
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
index 38653625a..5af630497 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Message.be
@@ -215,7 +215,7 @@ class Matter_Frame
raw.add(self.x_flags, 1)
# opcode (mandatory)
raw.add(self.opcode, 1)
- raw.add(self.exchange_id & 0xFFFF, 2)
+ raw.add((self.exchange_id != nil) ? self.exchange_id & 0xFFFF : 0, 2)
raw.add(self.protocol_id, 2)
if self.x_flag_a raw.add(self.ack_message_counter, 4) end
# finally payload
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
index adff5a375..e9a0bc40d 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
@@ -50,6 +50,8 @@ class Matter_MessageHandler
def send_simple_ack(frame, reliable)
if frame.x_flag_r # nothing to respond, check if we need a standalone ack
var resp = frame.build_standalone_ack(reliable)
+ # special case, the local_session_id is not the one from the session
+ resp.local_session_id = frame.local_session_id
resp.encode_frame()
if tasmota.loglevel(4)
log(format("MTR: Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3)
+ log(format("MTR: >Received (%6i) %s from [%s]:%i", session.local_session_id, op_name, addr, port), 3)
+ # log(format("MTR: >Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3)
end
else
if tasmota.loglevel(4)
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
index 24421debc..ff7954af0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Commissioning.h
@@ -12,7 +12,7 @@ extern const bclass be_class_Matter_Commisioning_Context;
extern const bclass be_class_Matter_Commisioning_Context;
be_local_closure(class_Matter_Commisioning_Context_parse_StatusReport, /* name */
be_nested_proto(
- 6, /* nstack */
+ 8, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -20,32 +20,40 @@ be_local_closure(class_Matter_Commisioning_Context_parse_StatusReport, /* name
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20),
- /* K3 */ be_nested_str_weak(raw),
- /* K4 */ be_nested_str_weak(app_payload_idx),
- /* K5 */ be_const_int(2147483647),
- /* K6 */ be_nested_str_weak(tohex),
- /* K7 */ be_const_int(3),
+ /* K1 */ be_nested_str_weak(raw),
+ /* K2 */ be_nested_str_weak(app_payload_idx),
+ /* K3 */ be_const_int(2147483647),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20_X25s),
+ /* K7 */ be_nested_str_weak(0000000000000000),
+ /* K8 */ be_const_int(3),
}),
be_str_weak(parse_StatusReport),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
+ ( &(const binstruction[20]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x88100304, // 0002 GETMBR R4 R1 K4
- 0x40100905, // 0003 CONNECT R4 R4 K5
- 0x88140303, // 0004 GETMBR R5 R1 K3
- 0x94100A04, // 0005 GETIDX R4 R5 R4
- 0x8C100906, // 0006 GETMET R4 R4 K6
- 0x7C100200, // 0007 CALL R4 1
- 0x00120404, // 0008 ADD R4 K2 R4
- 0x58140007, // 0009 LDCONST R5 K7
- 0x7C0C0400, // 000A CALL R3 2
- 0x500C0000, // 000B LDBOOL R3 0 0
- 0x80040600, // 000C RET 1 R3
+ 0x880C0302, // 0001 GETMBR R3 R1 K2
+ 0x400C0703, // 0002 CONNECT R3 R3 K3
+ 0x88100301, // 0003 GETMBR R4 R1 K1
+ 0x940C0803, // 0004 GETIDX R3 R4 R3
+ 0x8C0C0704, // 0005 GETMET R3 R3 K4
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xB8120A00, // 0007 GETNGBL R4 K5
+ 0x60140018, // 0008 GETGBL R5 G24
+ 0x58180006, // 0009 LDCONST R6 K6
+ 0x5C1C0600, // 000A MOVE R7 R3
+ 0x7C140400, // 000B CALL R5 2
+ 0x20180707, // 000C NE R6 R3 K7
+ 0x781A0001, // 000D JMPF R6 #0010
+ 0x58180008, // 000E LDCONST R6 K8
+ 0x70020000, // 000F JMP #0011
+ 0x541A0003, // 0010 LDINT R6 4
+ 0x7C100400, // 0011 CALL R4 2
+ 0x50100000, // 0012 LDBOOL R4 0 0
+ 0x80040800, // 0013 RET 1 R4
})
)
);
@@ -1374,7 +1382,7 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
0, /* has sup protos */
&be_class_Matter_Commisioning_Context,
1, /* has constants */
- ( &(const bvalue[107]) { /* constants */
+ ( &(const bvalue[108]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(session),
/* K2 */ be_nested_str_weak(opcode),
@@ -1401,91 +1409,92 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
/* K23 */ be_nested_str_weak(find_session_by_resumption_id),
/* K24 */ be_nested_str_weak(_fabric),
/* K25 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20FAILED_X2C_X20session_X20not_X20found_X20resumption_id_X3D_X25s),
- /* K26 */ be_nested_str_weak(initiatorRandom),
- /* K27 */ be_nested_str_weak(fromstring),
- /* K28 */ be_nested_str_weak(Sigma1_Resume),
- /* K29 */ be_nested_str_weak(HKDF_SHA256),
- /* K30 */ be_nested_str_weak(derive),
- /* K31 */ be_nested_str_weak(shared_secret),
- /* K32 */ be_nested_str_weak(NCASE_SigmaS1),
- /* K33 */ be_const_int(2147483647),
- /* K34 */ be_nested_str_weak(AES_CCM),
- /* K35 */ be_nested_str_weak(decrypt),
- /* K36 */ be_nested_str_weak(tag),
- /* K37 */ be_nested_str_weak(_source_node_id),
- /* K38 */ be_nested_str_weak(source_node_id),
- /* K39 */ be_nested_str_weak(set_mode_CASE),
- /* K40 */ be_nested_str_weak(__future_initiator_session_id),
- /* K41 */ be_nested_str_weak(initiator_session_id),
- /* K42 */ be_nested_str_weak(__future_local_session_id),
- /* K43 */ be_nested_str_weak(gen_local_session_id),
- /* K44 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
- /* K45 */ be_nested_str_weak(remote_ip),
- /* K46 */ be_nested_str_weak(remote_port),
- /* K47 */ be_nested_str_weak(resumption_id),
- /* K48 */ be_nested_str_weak(random),
- /* K49 */ be_nested_str_weak(Sigma2_Resume),
- /* K50 */ be_nested_str_weak(NCASE_SigmaS2),
- /* K51 */ be_nested_str_weak(Sigma2Resume),
- /* K52 */ be_nested_str_weak(sigma2ResumeMIC),
- /* K53 */ be_nested_str_weak(responderSessionID),
- /* K54 */ be_nested_str_weak(SessionResumptionKeys),
- /* K55 */ be_nested_str_weak(tasmota),
- /* K56 */ be_nested_str_weak(rtc_utc),
- /* K57 */ be_nested_str_weak(tlv2raw),
- /* K58 */ be_nested_str_weak(__Msg1),
- /* K59 */ be_nested_str_weak(build_response),
- /* K60 */ be_nested_str_weak(encode_frame),
- /* K61 */ be_nested_str_weak(responder),
- /* K62 */ be_nested_str_weak(send_response_frame),
- /* K63 */ be_nested_str_weak(close),
- /* K64 */ be_nested_str_weak(set_keys),
- /* K65 */ be_nested_str_weak(peer_node_id),
- /* K66 */ be_nested_str_weak(_breadcrumb),
- /* K67 */ be_nested_str_weak(counter_snd_next),
- /* K68 */ be_nested_str_weak(set_persist),
- /* K69 */ be_nested_str_weak(set_no_expiration),
- /* K70 */ be_nested_str_weak(persist_to_fabric),
- /* K71 */ be_nested_str_weak(save),
- /* K72 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20SUCCEEDED),
- /* K73 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20FAILED_X2C_X20switching_X20to_X20CASE),
- /* K74 */ be_nested_str_weak(find_fabric_by_destination_id),
- /* K75 */ be_nested_str_weak(destinationId),
- /* K76 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28GeneralCode_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20NO_SHARED_TRUST_ROOTS_X29),
- /* K77 */ be_nested_str_weak(__responder_priv),
- /* K78 */ be_nested_str_weak(__responder_pub),
- /* K79 */ be_nested_str_weak(EC_P256),
- /* K80 */ be_nested_str_weak(public_key),
- /* K81 */ be_nested_str_weak(shared_key),
- /* K82 */ be_nested_str_weak(TLV),
- /* K83 */ be_nested_str_weak(Matter_TLV_struct),
- /* K84 */ be_nested_str_weak(add_TLV),
- /* K85 */ be_nested_str_weak(B2),
- /* K86 */ be_nested_str_weak(get_noc),
- /* K87 */ be_nested_str_weak(get_icac),
- /* K88 */ be_nested_str_weak(ecdsa_sign_sha256),
- /* K89 */ be_nested_str_weak(get_pk),
- /* K90 */ be_nested_str_weak(Msg1),
- /* K91 */ be_nested_str_weak(SHA256),
- /* K92 */ be_nested_str_weak(update),
- /* K93 */ be_nested_str_weak(out),
- /* K94 */ be_nested_str_weak(S2K_Info),
- /* K95 */ be_nested_str_weak(get_ipk_group_key),
- /* K96 */ be_nested_str_weak(TBEData2_Nonce),
- /* K97 */ be_nested_str_weak(encrypt),
- /* K98 */ be_nested_str_weak(Sigma2),
- /* K99 */ be_nested_str_weak(responderRandom),
- /* K100 */ be_nested_str_weak(responderSessionId),
- /* K101 */ be_nested_str_weak(responderEphPubKey),
- /* K102 */ be_nested_str_weak(encrypted2),
- /* K103 */ be_nested_str_weak(__Msg2),
- /* K104 */ be_nested_str_weak(MTR_X3A_X20New_X20Connection_X20_X28CASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K105 */ be_nested_str_weak(_ip),
- /* K106 */ be_nested_str_weak(_port),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption),
+ /* K27 */ be_nested_str_weak(initiatorRandom),
+ /* K28 */ be_nested_str_weak(fromstring),
+ /* K29 */ be_nested_str_weak(Sigma1_Resume),
+ /* K30 */ be_nested_str_weak(HKDF_SHA256),
+ /* K31 */ be_nested_str_weak(derive),
+ /* K32 */ be_nested_str_weak(shared_secret),
+ /* K33 */ be_nested_str_weak(NCASE_SigmaS1),
+ /* K34 */ be_const_int(2147483647),
+ /* K35 */ be_nested_str_weak(AES_CCM),
+ /* K36 */ be_nested_str_weak(decrypt),
+ /* K37 */ be_nested_str_weak(tag),
+ /* K38 */ be_nested_str_weak(_source_node_id),
+ /* K39 */ be_nested_str_weak(source_node_id),
+ /* K40 */ be_nested_str_weak(set_mode_CASE),
+ /* K41 */ be_nested_str_weak(__future_initiator_session_id),
+ /* K42 */ be_nested_str_weak(initiator_session_id),
+ /* K43 */ be_nested_str_weak(__future_local_session_id),
+ /* K44 */ be_nested_str_weak(gen_local_session_id),
+ /* K45 */ be_nested_str_weak(MTR_X3A_X20_X2BSession_X20_X20_X20_X28_X256i_X29_X20from_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
+ /* K46 */ be_nested_str_weak(remote_ip),
+ /* K47 */ be_nested_str_weak(remote_port),
+ /* K48 */ be_nested_str_weak(resumption_id),
+ /* K49 */ be_nested_str_weak(random),
+ /* K50 */ be_nested_str_weak(Sigma2_Resume),
+ /* K51 */ be_nested_str_weak(NCASE_SigmaS2),
+ /* K52 */ be_nested_str_weak(Sigma2Resume),
+ /* K53 */ be_nested_str_weak(sigma2ResumeMIC),
+ /* K54 */ be_nested_str_weak(responderSessionID),
+ /* K55 */ be_nested_str_weak(SessionResumptionKeys),
+ /* K56 */ be_nested_str_weak(tasmota),
+ /* K57 */ be_nested_str_weak(rtc_utc),
+ /* K58 */ be_nested_str_weak(tlv2raw),
+ /* K59 */ be_nested_str_weak(__Msg1),
+ /* K60 */ be_nested_str_weak(build_response),
+ /* K61 */ be_nested_str_weak(encode_frame),
+ /* K62 */ be_nested_str_weak(responder),
+ /* K63 */ be_nested_str_weak(send_response_frame),
+ /* K64 */ be_nested_str_weak(close),
+ /* K65 */ be_nested_str_weak(set_keys),
+ /* K66 */ be_nested_str_weak(peer_node_id),
+ /* K67 */ be_nested_str_weak(_breadcrumb),
+ /* K68 */ be_nested_str_weak(counter_snd_next),
+ /* K69 */ be_nested_str_weak(set_persist),
+ /* K70 */ be_nested_str_weak(set_no_expiration),
+ /* K71 */ be_nested_str_weak(persist_to_fabric),
+ /* K72 */ be_nested_str_weak(save),
+ /* K73 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20SUCCEEDED),
+ /* K74 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Sigma1_X20Resumption_X20FAILED_X2C_X20switching_X20to_X20CASE),
+ /* K75 */ be_nested_str_weak(find_fabric_by_destination_id),
+ /* K76 */ be_nested_str_weak(destinationId),
+ /* K77 */ be_nested_str_weak(MTR_X3A_X20StatusReport_X28GeneralCode_X3A_X20FAILURE_X2C_X20ProtocolId_X3A_X20SECURE_CHANNEL_X2C_X20ProtocolCode_X3A_X20NO_SHARED_TRUST_ROOTS_X29),
+ /* K78 */ be_nested_str_weak(__responder_priv),
+ /* K79 */ be_nested_str_weak(__responder_pub),
+ /* K80 */ be_nested_str_weak(EC_P256),
+ /* K81 */ be_nested_str_weak(public_key),
+ /* K82 */ be_nested_str_weak(shared_key),
+ /* K83 */ be_nested_str_weak(TLV),
+ /* K84 */ be_nested_str_weak(Matter_TLV_struct),
+ /* K85 */ be_nested_str_weak(add_TLV),
+ /* K86 */ be_nested_str_weak(B2),
+ /* K87 */ be_nested_str_weak(get_noc),
+ /* K88 */ be_nested_str_weak(get_icac),
+ /* K89 */ be_nested_str_weak(ecdsa_sign_sha256),
+ /* K90 */ be_nested_str_weak(get_pk),
+ /* K91 */ be_nested_str_weak(Msg1),
+ /* K92 */ be_nested_str_weak(SHA256),
+ /* K93 */ be_nested_str_weak(update),
+ /* K94 */ be_nested_str_weak(out),
+ /* K95 */ be_nested_str_weak(S2K_Info),
+ /* K96 */ be_nested_str_weak(get_ipk_group_key),
+ /* K97 */ be_nested_str_weak(TBEData2_Nonce),
+ /* K98 */ be_nested_str_weak(encrypt),
+ /* K99 */ be_nested_str_weak(Sigma2),
+ /* K100 */ be_nested_str_weak(responderRandom),
+ /* K101 */ be_nested_str_weak(responderSessionId),
+ /* K102 */ be_nested_str_weak(responderEphPubKey),
+ /* K103 */ be_nested_str_weak(encrypted2),
+ /* K104 */ be_nested_str_weak(__Msg2),
+ /* K105 */ be_nested_str_weak(MTR_X3A_X20New_X20Connection_X20_X28CASE_X20id_X3D_X25i_X29_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K106 */ be_nested_str_weak(_ip),
+ /* K107 */ be_nested_str_weak(_port),
}),
be_str_weak(parse_Sigma1),
&be_const_str_solidified,
- ( &(const binstruction[493]) { /* code */
+ ( &(const binstruction[497]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -1553,432 +1562,436 @@ be_local_closure(class_Matter_Commisioning_Context_parse_Sigma1, /* name */
0x58240008, // 0040 LDCONST R9 K8
0x7C1C0400, // 0041 CALL R7 2
0x50140000, // 0042 LDBOOL R5 0 0
- 0x781600BF, // 0043 JMPF R5 #0104
- 0x881C091A, // 0044 GETMBR R7 R4 K26
- 0x88200913, // 0045 GETMBR R8 R4 K19
- 0x001C0E08, // 0046 ADD R7 R7 R8
- 0x60200015, // 0047 GETGBL R8 G21
- 0x7C200000, // 0048 CALL R8 0
- 0x8C20111B, // 0049 GETMET R8 R8 K27
- 0x5828001C, // 004A LDCONST R10 K28
- 0x7C200400, // 004B CALL R8 2
- 0x8C24051D, // 004C GETMET R9 R2 K29
- 0x7C240200, // 004D CALL R9 1
- 0x8C24131E, // 004E GETMET R9 R9 K30
- 0x882C0D1F, // 004F GETMBR R11 R6 K31
- 0x5C300E00, // 0050 MOVE R12 R7
- 0x5C341000, // 0051 MOVE R13 R8
- 0x543A000F, // 0052 LDINT R14 16
- 0x7C240A00, // 0053 CALL R9 5
- 0x60280015, // 0054 GETGBL R10 G21
- 0x7C280000, // 0055 CALL R10 0
- 0x8C28151B, // 0056 GETMET R10 R10 K27
- 0x58300020, // 0057 LDCONST R12 K32
- 0x7C280400, // 0058 CALL R10 2
- 0x542DFFEE, // 0059 LDINT R11 -17
- 0x402E080B, // 005A CONNECT R11 K4 R11
- 0x88300914, // 005B GETMBR R12 R4 K20
- 0x942C180B, // 005C GETIDX R11 R12 R11
- 0x5435FFEF, // 005D LDINT R13 -16
- 0x40341B21, // 005E CONNECT R13 R13 K33
- 0x88380914, // 005F GETMBR R14 R4 K20
- 0x94301C0D, // 0060 GETIDX R12 R14 R13
- 0x8C3C0522, // 0061 GETMET R15 R2 K34
- 0x5C441200, // 0062 MOVE R17 R9
- 0x5C481400, // 0063 MOVE R18 R10
- 0x604C0015, // 0064 GETGBL R19 G21
- 0x7C4C0000, // 0065 CALL R19 0
- 0x6050000C, // 0066 GETGBL R20 G12
- 0x5C541600, // 0067 MOVE R21 R11
- 0x7C500200, // 0068 CALL R20 1
- 0x5456000F, // 0069 LDINT R21 16
- 0x7C3C0C00, // 006A CALL R15 6
- 0x5C341E00, // 006B MOVE R13 R15
- 0x8C3C1B23, // 006C GETMET R15 R13 K35
- 0x5C441600, // 006D MOVE R17 R11
- 0x7C3C0400, // 006E CALL R15 2
- 0x5C381E00, // 006F MOVE R14 R15
+ 0x781600C3, // 0043 JMPF R5 #0108
+ 0xB81E0C00, // 0044 GETNGBL R7 K6
+ 0x5820001A, // 0045 LDCONST R8 K26
+ 0x58240008, // 0046 LDCONST R9 K8
+ 0x7C1C0400, // 0047 CALL R7 2
+ 0x881C091B, // 0048 GETMBR R7 R4 K27
+ 0x88200913, // 0049 GETMBR R8 R4 K19
+ 0x001C0E08, // 004A ADD R7 R7 R8
+ 0x60200015, // 004B GETGBL R8 G21
+ 0x7C200000, // 004C CALL R8 0
+ 0x8C20111C, // 004D GETMET R8 R8 K28
+ 0x5828001D, // 004E LDCONST R10 K29
+ 0x7C200400, // 004F CALL R8 2
+ 0x8C24051E, // 0050 GETMET R9 R2 K30
+ 0x7C240200, // 0051 CALL R9 1
+ 0x8C24131F, // 0052 GETMET R9 R9 K31
+ 0x882C0D20, // 0053 GETMBR R11 R6 K32
+ 0x5C300E00, // 0054 MOVE R12 R7
+ 0x5C341000, // 0055 MOVE R13 R8
+ 0x543A000F, // 0056 LDINT R14 16
+ 0x7C240A00, // 0057 CALL R9 5
+ 0x60280015, // 0058 GETGBL R10 G21
+ 0x7C280000, // 0059 CALL R10 0
+ 0x8C28151C, // 005A GETMET R10 R10 K28
+ 0x58300021, // 005B LDCONST R12 K33
+ 0x7C280400, // 005C CALL R10 2
+ 0x542DFFEE, // 005D LDINT R11 -17
+ 0x402E080B, // 005E CONNECT R11 K4 R11
+ 0x88300914, // 005F GETMBR R12 R4 K20
+ 0x942C180B, // 0060 GETIDX R11 R12 R11
+ 0x5435FFEF, // 0061 LDINT R13 -16
+ 0x40341B22, // 0062 CONNECT R13 R13 K34
+ 0x88380914, // 0063 GETMBR R14 R4 K20
+ 0x94301C0D, // 0064 GETIDX R12 R14 R13
+ 0x8C3C0523, // 0065 GETMET R15 R2 K35
+ 0x5C441200, // 0066 MOVE R17 R9
+ 0x5C481400, // 0067 MOVE R18 R10
+ 0x604C0015, // 0068 GETGBL R19 G21
+ 0x7C4C0000, // 0069 CALL R19 0
+ 0x6050000C, // 006A GETGBL R20 G12
+ 0x5C541600, // 006B MOVE R21 R11
+ 0x7C500200, // 006C CALL R20 1
+ 0x5456000F, // 006D LDINT R21 16
+ 0x7C3C0C00, // 006E CALL R15 6
+ 0x5C341E00, // 006F MOVE R13 R15
0x8C3C1B24, // 0070 GETMET R15 R13 K36
- 0x7C3C0200, // 0071 CALL R15 1
- 0x1C40180F, // 0072 EQ R16 R12 R15
- 0x7842008A, // 0073 JMPF R16 #00FF
- 0x88400D18, // 0074 GETMBR R16 R6 K24
- 0x900E3010, // 0075 SETMBR R3 K24 R16
- 0x88400326, // 0076 GETMBR R16 R1 K38
- 0x900E4A10, // 0077 SETMBR R3 K37 R16
- 0x8C400727, // 0078 GETMET R16 R3 K39
- 0x7C400200, // 0079 CALL R16 1
- 0x88400929, // 007A GETMBR R16 R4 K41
- 0x900E5010, // 007B SETMBR R3 K40 R16
- 0x88400115, // 007C GETMBR R16 R0 K21
- 0x88402116, // 007D GETMBR R16 R16 K22
- 0x8C40212B, // 007E GETMET R16 R16 K43
- 0x7C400200, // 007F CALL R16 1
- 0x900E5410, // 0080 SETMBR R3 K42 R16
- 0xB8420C00, // 0081 GETNGBL R16 K6
- 0x60440018, // 0082 GETGBL R17 G24
- 0x5848002C, // 0083 LDCONST R18 K44
- 0x884C072A, // 0084 GETMBR R19 R3 K42
- 0x8850032D, // 0085 GETMBR R20 R1 K45
- 0x8854032E, // 0086 GETMBR R21 R1 K46
- 0x7C440800, // 0087 CALL R17 4
- 0x58480008, // 0088 LDCONST R18 K8
- 0x7C400400, // 0089 CALL R16 2
- 0x88400D1F, // 008A GETMBR R16 R6 K31
- 0x900E3E10, // 008B SETMBR R3 K31 R16
- 0x8C400530, // 008C GETMET R16 R2 K48
- 0x544A000F, // 008D LDINT R18 16
- 0x7C400400, // 008E CALL R16 2
- 0x900E5E10, // 008F SETMBR R3 K47 R16
- 0x60400015, // 0090 GETGBL R16 G21
- 0x7C400000, // 0091 CALL R16 0
- 0x8C40211B, // 0092 GETMET R16 R16 K27
- 0x58480031, // 0093 LDCONST R18 K49
- 0x7C400400, // 0094 CALL R16 2
- 0x8844091A, // 0095 GETMBR R17 R4 K26
- 0x8848072F, // 0096 GETMBR R18 R3 K47
- 0x00442212, // 0097 ADD R17 R17 R18
- 0x8C48051D, // 0098 GETMET R18 R2 K29
- 0x7C480200, // 0099 CALL R18 1
- 0x8C48251E, // 009A GETMET R18 R18 K30
- 0x8850071F, // 009B GETMBR R20 R3 K31
- 0x5C542200, // 009C MOVE R21 R17
- 0x5C582000, // 009D MOVE R22 R16
- 0x545E000F, // 009E LDINT R23 16
- 0x7C480A00, // 009F CALL R18 5
- 0x8C4C0522, // 00A0 GETMET R19 R2 K34
- 0x5C542400, // 00A1 MOVE R21 R18
- 0x60580015, // 00A2 GETGBL R22 G21
- 0x7C580000, // 00A3 CALL R22 0
- 0x8C582D1B, // 00A4 GETMET R22 R22 K27
- 0x58600032, // 00A5 LDCONST R24 K50
- 0x7C580400, // 00A6 CALL R22 2
- 0x605C0015, // 00A7 GETGBL R23 G21
- 0x7C5C0000, // 00A8 CALL R23 0
- 0x58600004, // 00A9 LDCONST R24 K4
- 0x5466000F, // 00AA LDINT R25 16
- 0x7C4C0C00, // 00AB CALL R19 6
- 0x8C502724, // 00AC GETMET R20 R19 K36
- 0x7C500200, // 00AD CALL R20 1
- 0xB8561800, // 00AE GETNGBL R21 K12
- 0x8C542B33, // 00AF GETMET R21 R21 K51
- 0x7C540200, // 00B0 CALL R21 1
- 0x8858072F, // 00B1 GETMBR R22 R3 K47
- 0x90562616, // 00B2 SETMBR R21 K19 R22
- 0x90566814, // 00B3 SETMBR R21 K52 R20
- 0x8858072A, // 00B4 GETMBR R22 R3 K42
- 0x90566A16, // 00B5 SETMBR R21 K53 R22
- 0x8858091A, // 00B6 GETMBR R22 R4 K26
- 0x885C0D2F, // 00B7 GETMBR R23 R6 K47
- 0x00582C17, // 00B8 ADD R22 R22 R23
- 0x8C5C051D, // 00B9 GETMET R23 R2 K29
- 0x7C5C0200, // 00BA CALL R23 1
- 0x8C5C2F1E, // 00BB GETMET R23 R23 K30
- 0x8864071F, // 00BC GETMBR R25 R3 K31
- 0x5C682C00, // 00BD MOVE R26 R22
- 0x606C0015, // 00BE GETGBL R27 G21
- 0x7C6C0000, // 00BF CALL R27 0
- 0x8C6C371B, // 00C0 GETMET R27 R27 K27
- 0x58740036, // 00C1 LDCONST R29 K54
- 0x7C6C0400, // 00C2 CALL R27 2
- 0x5472002F, // 00C3 LDINT R28 48
- 0x7C5C0A00, // 00C4 CALL R23 5
- 0x5462000E, // 00C5 LDINT R24 15
- 0x40620818, // 00C6 CONNECT R24 K4 R24
- 0x94602E18, // 00C7 GETIDX R24 R23 R24
- 0x5466000F, // 00C8 LDINT R25 16
- 0x546A001E, // 00C9 LDINT R26 31
- 0x4064321A, // 00CA CONNECT R25 R25 R26
- 0x94642E19, // 00CB GETIDX R25 R23 R25
- 0x546A001F, // 00CC LDINT R26 32
- 0x546E002E, // 00CD LDINT R27 47
- 0x4068341B, // 00CE CONNECT R26 R26 R27
- 0x94682E1A, // 00CF GETIDX R26 R23 R26
- 0xB86E6E00, // 00D0 GETNGBL R27 K55
- 0x8C6C3738, // 00D1 GETMET R27 R27 K56
- 0x7C6C0200, // 00D2 CALL R27 1
- 0x8C702B39, // 00D3 GETMET R28 R21 K57
- 0x7C700200, // 00D4 CALL R28 1
- 0x4C740000, // 00D5 LDNIL R29
- 0x900E741D, // 00D6 SETMBR R3 K58 R29
- 0x8C74033B, // 00D7 GETMET R29 R1 K59
- 0x547E0032, // 00D8 LDINT R31 51
- 0x50800200, // 00D9 LDBOOL R32 1 0
- 0x7C740600, // 00DA CALL R29 3
- 0x8C783B3C, // 00DB GETMET R30 R29 K60
- 0x5C803800, // 00DC MOVE R32 R28
- 0x7C780400, // 00DD CALL R30 2
- 0x887C013D, // 00DE GETMBR R31 R0 K61
- 0x8C7C3F3E, // 00DF GETMET R31 R31 K62
- 0x5C843A00, // 00E0 MOVE R33 R29
- 0x7C7C0400, // 00E1 CALL R31 2
- 0x8C7C073F, // 00E2 GETMET R31 R3 K63
- 0x7C7C0200, // 00E3 CALL R31 1
- 0x8C7C0740, // 00E4 GETMET R31 R3 K64
- 0x5C843000, // 00E5 MOVE R33 R24
- 0x5C883200, // 00E6 MOVE R34 R25
- 0x5C8C3400, // 00E7 MOVE R35 R26
- 0x5C903600, // 00E8 MOVE R36 R27
- 0x7C7C0A00, // 00E9 CALL R31 5
- 0x887C0D41, // 00EA GETMBR R31 R6 K65
- 0x900E821F, // 00EB SETMBR R3 K65 R31
- 0x900E8504, // 00EC SETMBR R3 K66 K4
- 0x8C7C0743, // 00ED GETMET R31 R3 K67
- 0x7C7C0200, // 00EE CALL R31 1
- 0x8C7C0744, // 00EF GETMET R31 R3 K68
- 0x50840200, // 00F0 LDBOOL R33 1 0
- 0x7C7C0400, // 00F1 CALL R31 2
- 0x8C7C0745, // 00F2 GETMET R31 R3 K69
- 0x7C7C0200, // 00F3 CALL R31 1
- 0x8C7C0746, // 00F4 GETMET R31 R3 K70
- 0x7C7C0200, // 00F5 CALL R31 1
- 0x8C7C0747, // 00F6 GETMET R31 R3 K71
+ 0x5C441600, // 0071 MOVE R17 R11
+ 0x7C3C0400, // 0072 CALL R15 2
+ 0x5C381E00, // 0073 MOVE R14 R15
+ 0x8C3C1B25, // 0074 GETMET R15 R13 K37
+ 0x7C3C0200, // 0075 CALL R15 1
+ 0x1C40180F, // 0076 EQ R16 R12 R15
+ 0x7842008A, // 0077 JMPF R16 #0103
+ 0x88400D18, // 0078 GETMBR R16 R6 K24
+ 0x900E3010, // 0079 SETMBR R3 K24 R16
+ 0x88400327, // 007A GETMBR R16 R1 K39
+ 0x900E4C10, // 007B SETMBR R3 K38 R16
+ 0x8C400728, // 007C GETMET R16 R3 K40
+ 0x7C400200, // 007D CALL R16 1
+ 0x8840092A, // 007E GETMBR R16 R4 K42
+ 0x900E5210, // 007F SETMBR R3 K41 R16
+ 0x88400115, // 0080 GETMBR R16 R0 K21
+ 0x88402116, // 0081 GETMBR R16 R16 K22
+ 0x8C40212C, // 0082 GETMET R16 R16 K44
+ 0x7C400200, // 0083 CALL R16 1
+ 0x900E5610, // 0084 SETMBR R3 K43 R16
+ 0xB8420C00, // 0085 GETNGBL R16 K6
+ 0x60440018, // 0086 GETGBL R17 G24
+ 0x5848002D, // 0087 LDCONST R18 K45
+ 0x884C072B, // 0088 GETMBR R19 R3 K43
+ 0x8850032E, // 0089 GETMBR R20 R1 K46
+ 0x8854032F, // 008A GETMBR R21 R1 K47
+ 0x7C440800, // 008B CALL R17 4
+ 0x58480008, // 008C LDCONST R18 K8
+ 0x7C400400, // 008D CALL R16 2
+ 0x88400D20, // 008E GETMBR R16 R6 K32
+ 0x900E4010, // 008F SETMBR R3 K32 R16
+ 0x8C400531, // 0090 GETMET R16 R2 K49
+ 0x544A000F, // 0091 LDINT R18 16
+ 0x7C400400, // 0092 CALL R16 2
+ 0x900E6010, // 0093 SETMBR R3 K48 R16
+ 0x60400015, // 0094 GETGBL R16 G21
+ 0x7C400000, // 0095 CALL R16 0
+ 0x8C40211C, // 0096 GETMET R16 R16 K28
+ 0x58480032, // 0097 LDCONST R18 K50
+ 0x7C400400, // 0098 CALL R16 2
+ 0x8844091B, // 0099 GETMBR R17 R4 K27
+ 0x88480730, // 009A GETMBR R18 R3 K48
+ 0x00442212, // 009B ADD R17 R17 R18
+ 0x8C48051E, // 009C GETMET R18 R2 K30
+ 0x7C480200, // 009D CALL R18 1
+ 0x8C48251F, // 009E GETMET R18 R18 K31
+ 0x88500720, // 009F GETMBR R20 R3 K32
+ 0x5C542200, // 00A0 MOVE R21 R17
+ 0x5C582000, // 00A1 MOVE R22 R16
+ 0x545E000F, // 00A2 LDINT R23 16
+ 0x7C480A00, // 00A3 CALL R18 5
+ 0x8C4C0523, // 00A4 GETMET R19 R2 K35
+ 0x5C542400, // 00A5 MOVE R21 R18
+ 0x60580015, // 00A6 GETGBL R22 G21
+ 0x7C580000, // 00A7 CALL R22 0
+ 0x8C582D1C, // 00A8 GETMET R22 R22 K28
+ 0x58600033, // 00A9 LDCONST R24 K51
+ 0x7C580400, // 00AA CALL R22 2
+ 0x605C0015, // 00AB GETGBL R23 G21
+ 0x7C5C0000, // 00AC CALL R23 0
+ 0x58600004, // 00AD LDCONST R24 K4
+ 0x5466000F, // 00AE LDINT R25 16
+ 0x7C4C0C00, // 00AF CALL R19 6
+ 0x8C502725, // 00B0 GETMET R20 R19 K37
+ 0x7C500200, // 00B1 CALL R20 1
+ 0xB8561800, // 00B2 GETNGBL R21 K12
+ 0x8C542B34, // 00B3 GETMET R21 R21 K52
+ 0x7C540200, // 00B4 CALL R21 1
+ 0x88580730, // 00B5 GETMBR R22 R3 K48
+ 0x90562616, // 00B6 SETMBR R21 K19 R22
+ 0x90566A14, // 00B7 SETMBR R21 K53 R20
+ 0x8858072B, // 00B8 GETMBR R22 R3 K43
+ 0x90566C16, // 00B9 SETMBR R21 K54 R22
+ 0x8858091B, // 00BA GETMBR R22 R4 K27
+ 0x885C0D30, // 00BB GETMBR R23 R6 K48
+ 0x00582C17, // 00BC ADD R22 R22 R23
+ 0x8C5C051E, // 00BD GETMET R23 R2 K30
+ 0x7C5C0200, // 00BE CALL R23 1
+ 0x8C5C2F1F, // 00BF GETMET R23 R23 K31
+ 0x88640720, // 00C0 GETMBR R25 R3 K32
+ 0x5C682C00, // 00C1 MOVE R26 R22
+ 0x606C0015, // 00C2 GETGBL R27 G21
+ 0x7C6C0000, // 00C3 CALL R27 0
+ 0x8C6C371C, // 00C4 GETMET R27 R27 K28
+ 0x58740037, // 00C5 LDCONST R29 K55
+ 0x7C6C0400, // 00C6 CALL R27 2
+ 0x5472002F, // 00C7 LDINT R28 48
+ 0x7C5C0A00, // 00C8 CALL R23 5
+ 0x5462000E, // 00C9 LDINT R24 15
+ 0x40620818, // 00CA CONNECT R24 K4 R24
+ 0x94602E18, // 00CB GETIDX R24 R23 R24
+ 0x5466000F, // 00CC LDINT R25 16
+ 0x546A001E, // 00CD LDINT R26 31
+ 0x4064321A, // 00CE CONNECT R25 R25 R26
+ 0x94642E19, // 00CF GETIDX R25 R23 R25
+ 0x546A001F, // 00D0 LDINT R26 32
+ 0x546E002E, // 00D1 LDINT R27 47
+ 0x4068341B, // 00D2 CONNECT R26 R26 R27
+ 0x94682E1A, // 00D3 GETIDX R26 R23 R26
+ 0xB86E7000, // 00D4 GETNGBL R27 K56
+ 0x8C6C3739, // 00D5 GETMET R27 R27 K57
+ 0x7C6C0200, // 00D6 CALL R27 1
+ 0x8C702B3A, // 00D7 GETMET R28 R21 K58
+ 0x7C700200, // 00D8 CALL R28 1
+ 0x4C740000, // 00D9 LDNIL R29
+ 0x900E761D, // 00DA SETMBR R3 K59 R29
+ 0x8C74033C, // 00DB GETMET R29 R1 K60
+ 0x547E0032, // 00DC LDINT R31 51
+ 0x50800200, // 00DD LDBOOL R32 1 0
+ 0x7C740600, // 00DE CALL R29 3
+ 0x8C783B3D, // 00DF GETMET R30 R29 K61
+ 0x5C803800, // 00E0 MOVE R32 R28
+ 0x7C780400, // 00E1 CALL R30 2
+ 0x887C013E, // 00E2 GETMBR R31 R0 K62
+ 0x8C7C3F3F, // 00E3 GETMET R31 R31 K63
+ 0x5C843A00, // 00E4 MOVE R33 R29
+ 0x7C7C0400, // 00E5 CALL R31 2
+ 0x8C7C0740, // 00E6 GETMET R31 R3 K64
+ 0x7C7C0200, // 00E7 CALL R31 1
+ 0x8C7C0741, // 00E8 GETMET R31 R3 K65
+ 0x5C843000, // 00E9 MOVE R33 R24
+ 0x5C883200, // 00EA MOVE R34 R25
+ 0x5C8C3400, // 00EB MOVE R35 R26
+ 0x5C903600, // 00EC MOVE R36 R27
+ 0x7C7C0A00, // 00ED CALL R31 5
+ 0x887C0D42, // 00EE GETMBR R31 R6 K66
+ 0x900E841F, // 00EF SETMBR R3 K66 R31
+ 0x900E8704, // 00F0 SETMBR R3 K67 K4
+ 0x8C7C0744, // 00F1 GETMET R31 R3 K68
+ 0x7C7C0200, // 00F2 CALL R31 1
+ 0x8C7C0745, // 00F3 GETMET R31 R3 K69
+ 0x50840200, // 00F4 LDBOOL R33 1 0
+ 0x7C7C0400, // 00F5 CALL R31 2
+ 0x8C7C0746, // 00F6 GETMET R31 R3 K70
0x7C7C0200, // 00F7 CALL R31 1
- 0xB87E0C00, // 00F8 GETNGBL R31 K6
- 0x58800048, // 00F9 LDCONST R32 K72
- 0x58840008, // 00FA LDCONST R33 K8
- 0x7C7C0400, // 00FB CALL R31 2
- 0x507C0200, // 00FC LDBOOL R31 1 0
- 0x80043E00, // 00FD RET 1 R31
- 0x70020004, // 00FE JMP #0104
- 0xB8420C00, // 00FF GETNGBL R16 K6
- 0x58440049, // 0100 LDCONST R17 K73
- 0x58480008, // 0101 LDCONST R18 K8
- 0x7C400400, // 0102 CALL R16 2
- 0x50140000, // 0103 LDBOOL R5 0 0
- 0x5C1C0A00, // 0104 MOVE R7 R5
- 0x741E00E4, // 0105 JMPT R7 #01EB
- 0x8C1C014A, // 0106 GETMET R7 R0 K74
- 0x8824094B, // 0107 GETMBR R9 R4 K75
- 0x8828091A, // 0108 GETMBR R10 R4 K26
- 0x7C1C0600, // 0109 CALL R7 3
- 0x900E3007, // 010A SETMBR R3 K24 R7
- 0x4C200000, // 010B LDNIL R8
- 0x1C200608, // 010C EQ R8 R3 R8
- 0x74220003, // 010D JMPT R8 #0112
- 0x88200718, // 010E GETMBR R8 R3 K24
- 0x4C240000, // 010F LDNIL R9
- 0x1C201009, // 0110 EQ R8 R8 R9
- 0x7822000C, // 0111 JMPF R8 #011F
- 0xB8220C00, // 0112 GETNGBL R8 K6
- 0x5824004C, // 0113 LDCONST R9 K76
- 0x58280008, // 0114 LDCONST R10 K8
- 0x7C200400, // 0115 CALL R8 2
- 0x8C200109, // 0116 GETMET R8 R0 K9
- 0x5C280200, // 0117 MOVE R10 R1
- 0x582C000A, // 0118 LDCONST R11 K10
- 0x58300004, // 0119 LDCONST R12 K4
- 0x5834000A, // 011A LDCONST R13 K10
- 0x50380000, // 011B LDBOOL R14 0 0
- 0x7C200C00, // 011C CALL R8 6
- 0x50200000, // 011D LDBOOL R8 0 0
- 0x80041000, // 011E RET 1 R8
- 0x88200326, // 011F GETMBR R8 R1 K38
- 0x900E4A08, // 0120 SETMBR R3 K37 R8
- 0x8C200727, // 0121 GETMET R8 R3 K39
- 0x7C200200, // 0122 CALL R8 1
- 0x88200929, // 0123 GETMBR R8 R4 K41
- 0x900E5008, // 0124 SETMBR R3 K40 R8
- 0x88200115, // 0125 GETMBR R8 R0 K21
- 0x88201116, // 0126 GETMBR R8 R8 K22
- 0x8C20112B, // 0127 GETMET R8 R8 K43
- 0x7C200200, // 0128 CALL R8 1
- 0x900E5408, // 0129 SETMBR R3 K42 R8
- 0xB8220C00, // 012A GETNGBL R8 K6
- 0x60240018, // 012B GETGBL R9 G24
- 0x5828002C, // 012C LDCONST R10 K44
- 0x882C072A, // 012D GETMBR R11 R3 K42
- 0x8830032D, // 012E GETMBR R12 R1 K45
- 0x8834032E, // 012F GETMBR R13 R1 K46
- 0x7C240800, // 0130 CALL R9 4
- 0x58280008, // 0131 LDCONST R10 K8
- 0x7C200400, // 0132 CALL R8 2
- 0x8C200530, // 0133 GETMET R8 R2 K48
- 0x542A000F, // 0134 LDINT R10 16
- 0x7C200400, // 0135 CALL R8 2
- 0x900E5E08, // 0136 SETMBR R3 K47 R8
- 0x8C200530, // 0137 GETMET R8 R2 K48
- 0x542A001F, // 0138 LDINT R10 32
+ 0x8C7C0747, // 00F8 GETMET R31 R3 K71
+ 0x7C7C0200, // 00F9 CALL R31 1
+ 0x8C7C0748, // 00FA GETMET R31 R3 K72
+ 0x7C7C0200, // 00FB CALL R31 1
+ 0xB87E0C00, // 00FC GETNGBL R31 K6
+ 0x58800049, // 00FD LDCONST R32 K73
+ 0x58840008, // 00FE LDCONST R33 K8
+ 0x7C7C0400, // 00FF CALL R31 2
+ 0x507C0200, // 0100 LDBOOL R31 1 0
+ 0x80043E00, // 0101 RET 1 R31
+ 0x70020004, // 0102 JMP #0108
+ 0xB8420C00, // 0103 GETNGBL R16 K6
+ 0x5844004A, // 0104 LDCONST R17 K74
+ 0x58480008, // 0105 LDCONST R18 K8
+ 0x7C400400, // 0106 CALL R16 2
+ 0x50140000, // 0107 LDBOOL R5 0 0
+ 0x5C1C0A00, // 0108 MOVE R7 R5
+ 0x741E00E4, // 0109 JMPT R7 #01EF
+ 0x8C1C014B, // 010A GETMET R7 R0 K75
+ 0x8824094C, // 010B GETMBR R9 R4 K76
+ 0x8828091B, // 010C GETMBR R10 R4 K27
+ 0x7C1C0600, // 010D CALL R7 3
+ 0x900E3007, // 010E SETMBR R3 K24 R7
+ 0x4C200000, // 010F LDNIL R8
+ 0x1C200608, // 0110 EQ R8 R3 R8
+ 0x74220003, // 0111 JMPT R8 #0116
+ 0x88200718, // 0112 GETMBR R8 R3 K24
+ 0x4C240000, // 0113 LDNIL R9
+ 0x1C201009, // 0114 EQ R8 R8 R9
+ 0x7822000C, // 0115 JMPF R8 #0123
+ 0xB8220C00, // 0116 GETNGBL R8 K6
+ 0x5824004D, // 0117 LDCONST R9 K77
+ 0x58280008, // 0118 LDCONST R10 K8
+ 0x7C200400, // 0119 CALL R8 2
+ 0x8C200109, // 011A GETMET R8 R0 K9
+ 0x5C280200, // 011B MOVE R10 R1
+ 0x582C000A, // 011C LDCONST R11 K10
+ 0x58300004, // 011D LDCONST R12 K4
+ 0x5834000A, // 011E LDCONST R13 K10
+ 0x50380000, // 011F LDBOOL R14 0 0
+ 0x7C200C00, // 0120 CALL R8 6
+ 0x50200000, // 0121 LDBOOL R8 0 0
+ 0x80041000, // 0122 RET 1 R8
+ 0x88200327, // 0123 GETMBR R8 R1 K39
+ 0x900E4C08, // 0124 SETMBR R3 K38 R8
+ 0x8C200728, // 0125 GETMET R8 R3 K40
+ 0x7C200200, // 0126 CALL R8 1
+ 0x8820092A, // 0127 GETMBR R8 R4 K42
+ 0x900E5208, // 0128 SETMBR R3 K41 R8
+ 0x88200115, // 0129 GETMBR R8 R0 K21
+ 0x88201116, // 012A GETMBR R8 R8 K22
+ 0x8C20112C, // 012B GETMET R8 R8 K44
+ 0x7C200200, // 012C CALL R8 1
+ 0x900E5608, // 012D SETMBR R3 K43 R8
+ 0xB8220C00, // 012E GETNGBL R8 K6
+ 0x60240018, // 012F GETGBL R9 G24
+ 0x5828002D, // 0130 LDCONST R10 K45
+ 0x882C072B, // 0131 GETMBR R11 R3 K43
+ 0x8830032E, // 0132 GETMBR R12 R1 K46
+ 0x8834032F, // 0133 GETMBR R13 R1 K47
+ 0x7C240800, // 0134 CALL R9 4
+ 0x58280008, // 0135 LDCONST R10 K8
+ 0x7C200400, // 0136 CALL R8 2
+ 0x8C200531, // 0137 GETMET R8 R2 K49
+ 0x542A000F, // 0138 LDINT R10 16
0x7C200400, // 0139 CALL R8 2
- 0x900E9A08, // 013A SETMBR R3 K77 R8
- 0x8C20054F, // 013B GETMET R8 R2 K79
- 0x7C200200, // 013C CALL R8 1
- 0x8C201150, // 013D GETMET R8 R8 K80
- 0x8828074D, // 013E GETMBR R10 R3 K77
- 0x7C200400, // 013F CALL R8 2
- 0x900E9C08, // 0140 SETMBR R3 K78 R8
- 0x8C200530, // 0141 GETMET R8 R2 K48
- 0x542A001F, // 0142 LDINT R10 32
+ 0x900E6008, // 013A SETMBR R3 K48 R8
+ 0x8C200531, // 013B GETMET R8 R2 K49
+ 0x542A001F, // 013C LDINT R10 32
+ 0x7C200400, // 013D CALL R8 2
+ 0x900E9C08, // 013E SETMBR R3 K78 R8
+ 0x8C200550, // 013F GETMET R8 R2 K80
+ 0x7C200200, // 0140 CALL R8 1
+ 0x8C201151, // 0141 GETMET R8 R8 K81
+ 0x8828074E, // 0142 GETMBR R10 R3 K78
0x7C200400, // 0143 CALL R8 2
- 0x8C24054F, // 0144 GETMET R9 R2 K79
- 0x7C240200, // 0145 CALL R9 1
- 0x8C241351, // 0146 GETMET R9 R9 K81
- 0x882C074D, // 0147 GETMBR R11 R3 K77
- 0x88300912, // 0148 GETMBR R12 R4 K18
- 0x7C240600, // 0149 CALL R9 3
- 0x900E3E09, // 014A SETMBR R3 K31 R9
- 0xB8261800, // 014B GETNGBL R9 K12
- 0x88241352, // 014C GETMBR R9 R9 K82
- 0x8C241353, // 014D GETMET R9 R9 K83
- 0x7C240200, // 014E CALL R9 1
- 0x8C281354, // 014F GETMET R10 R9 K84
- 0x5830000A, // 0150 LDCONST R12 K10
- 0xB8361800, // 0151 GETNGBL R13 K12
- 0x88341B52, // 0152 GETMBR R13 R13 K82
- 0x88341B55, // 0153 GETMBR R13 R13 K85
- 0x8C380F56, // 0154 GETMET R14 R7 K86
- 0x7C380200, // 0155 CALL R14 1
- 0x7C280800, // 0156 CALL R10 4
- 0x8C281354, // 0157 GETMET R10 R9 K84
- 0x5830000B, // 0158 LDCONST R12 K11
- 0xB8361800, // 0159 GETNGBL R13 K12
- 0x88341B52, // 015A GETMBR R13 R13 K82
- 0x88341B55, // 015B GETMBR R13 R13 K85
- 0x8C380F57, // 015C GETMET R14 R7 K87
- 0x7C380200, // 015D CALL R14 1
- 0x7C280800, // 015E CALL R10 4
- 0x8C281354, // 015F GETMET R10 R9 K84
- 0x58300008, // 0160 LDCONST R12 K8
- 0xB8361800, // 0161 GETNGBL R13 K12
- 0x88341B52, // 0162 GETMBR R13 R13 K82
- 0x88341B55, // 0163 GETMBR R13 R13 K85
- 0x8838074E, // 0164 GETMBR R14 R3 K78
- 0x7C280800, // 0165 CALL R10 4
- 0x8C281354, // 0166 GETMET R10 R9 K84
- 0x54320003, // 0167 LDINT R12 4
- 0xB8361800, // 0168 GETNGBL R13 K12
- 0x88341B52, // 0169 GETMBR R13 R13 K82
- 0x88341B55, // 016A GETMBR R13 R13 K85
- 0x88380912, // 016B GETMBR R14 R4 K18
- 0x7C280800, // 016C CALL R10 4
- 0x8C28054F, // 016D GETMET R10 R2 K79
- 0x7C280200, // 016E CALL R10 1
- 0x8C281558, // 016F GETMET R10 R10 K88
- 0x8C300F59, // 0170 GETMET R12 R7 K89
- 0x7C300200, // 0171 CALL R12 1
- 0x8C341339, // 0172 GETMET R13 R9 K57
- 0x7C340200, // 0173 CALL R13 1
- 0x7C280600, // 0174 CALL R10 3
- 0xB82E1800, // 0175 GETNGBL R11 K12
- 0x882C1752, // 0176 GETMBR R11 R11 K82
- 0x8C2C1753, // 0177 GETMET R11 R11 K83
- 0x7C2C0200, // 0178 CALL R11 1
- 0x8C301754, // 0179 GETMET R12 R11 K84
- 0x5838000A, // 017A LDCONST R14 K10
- 0xB83E1800, // 017B GETNGBL R15 K12
- 0x883C1F52, // 017C GETMBR R15 R15 K82
- 0x883C1F55, // 017D GETMBR R15 R15 K85
- 0x8C400F56, // 017E GETMET R16 R7 K86
- 0x7C400200, // 017F CALL R16 1
- 0x7C300800, // 0180 CALL R12 4
- 0x8C301754, // 0181 GETMET R12 R11 K84
- 0x5838000B, // 0182 LDCONST R14 K11
- 0xB83E1800, // 0183 GETNGBL R15 K12
- 0x883C1F52, // 0184 GETMBR R15 R15 K82
- 0x883C1F55, // 0185 GETMBR R15 R15 K85
- 0x8C400F57, // 0186 GETMET R16 R7 K87
- 0x7C400200, // 0187 CALL R16 1
- 0x7C300800, // 0188 CALL R12 4
- 0x8C301754, // 0189 GETMET R12 R11 K84
- 0x58380008, // 018A LDCONST R14 K8
- 0xB83E1800, // 018B GETNGBL R15 K12
- 0x883C1F52, // 018C GETMBR R15 R15 K82
- 0x883C1F55, // 018D GETMBR R15 R15 K85
- 0x5C401400, // 018E MOVE R16 R10
- 0x7C300800, // 018F CALL R12 4
- 0x8C301754, // 0190 GETMET R12 R11 K84
- 0x543A0003, // 0191 LDINT R14 4
- 0xB83E1800, // 0192 GETNGBL R15 K12
- 0x883C1F52, // 0193 GETMBR R15 R15 K82
- 0x883C1F55, // 0194 GETMBR R15 R15 K85
- 0x8840072F, // 0195 GETMBR R16 R3 K47
- 0x7C300800, // 0196 CALL R12 4
- 0x8830095A, // 0197 GETMBR R12 R4 K90
- 0x900E740C, // 0198 SETMBR R3 K58 R12
- 0x8C30055B, // 0199 GETMET R12 R2 K91
- 0x7C300200, // 019A CALL R12 1
- 0x8C30195C, // 019B GETMET R12 R12 K92
- 0x8838073A, // 019C GETMBR R14 R3 K58
- 0x7C300400, // 019D CALL R12 2
- 0x8C30195D, // 019E GETMET R12 R12 K93
- 0x7C300200, // 019F CALL R12 1
- 0x60340015, // 01A0 GETGBL R13 G21
- 0x7C340000, // 01A1 CALL R13 0
- 0x8C341B1B, // 01A2 GETMET R13 R13 K27
- 0x883C015E, // 01A3 GETMBR R15 R0 K94
- 0x7C340400, // 01A4 CALL R13 2
- 0x8C380F5F, // 01A5 GETMET R14 R7 K95
- 0x7C380200, // 01A6 CALL R14 1
- 0x00381C08, // 01A7 ADD R14 R14 R8
- 0x883C074E, // 01A8 GETMBR R15 R3 K78
- 0x00381C0F, // 01A9 ADD R14 R14 R15
- 0x00381C0C, // 01AA ADD R14 R14 R12
- 0x8C3C051D, // 01AB GETMET R15 R2 K29
- 0x7C3C0200, // 01AC CALL R15 1
- 0x8C3C1F1E, // 01AD GETMET R15 R15 K30
- 0x8844071F, // 01AE GETMBR R17 R3 K31
- 0x5C481C00, // 01AF MOVE R18 R14
- 0x5C4C1A00, // 01B0 MOVE R19 R13
- 0x5452000F, // 01B1 LDINT R20 16
- 0x7C3C0A00, // 01B2 CALL R15 5
- 0x8C401739, // 01B3 GETMET R16 R11 K57
- 0x7C400200, // 01B4 CALL R16 1
- 0x8C440522, // 01B5 GETMET R17 R2 K34
- 0x5C4C1E00, // 01B6 MOVE R19 R15
- 0x60500015, // 01B7 GETGBL R20 G21
- 0x7C500000, // 01B8 CALL R20 0
- 0x8C50291B, // 01B9 GETMET R20 R20 K27
- 0x88580160, // 01BA GETMBR R22 R0 K96
- 0x7C500400, // 01BB CALL R20 2
- 0x60540015, // 01BC GETGBL R21 G21
- 0x7C540000, // 01BD CALL R21 0
- 0x6058000C, // 01BE GETGBL R22 G12
- 0x5C5C2000, // 01BF MOVE R23 R16
- 0x7C580200, // 01C0 CALL R22 1
- 0x545E000F, // 01C1 LDINT R23 16
- 0x7C440C00, // 01C2 CALL R17 6
- 0x8C482361, // 01C3 GETMET R18 R17 K97
- 0x5C502000, // 01C4 MOVE R20 R16
- 0x7C480400, // 01C5 CALL R18 2
- 0x8C4C2324, // 01C6 GETMET R19 R17 K36
- 0x7C4C0200, // 01C7 CALL R19 1
- 0x00482413, // 01C8 ADD R18 R18 R19
- 0xB84E1800, // 01C9 GETNGBL R19 K12
- 0x8C4C2762, // 01CA GETMET R19 R19 K98
+ 0x900E9E08, // 0144 SETMBR R3 K79 R8
+ 0x8C200531, // 0145 GETMET R8 R2 K49
+ 0x542A001F, // 0146 LDINT R10 32
+ 0x7C200400, // 0147 CALL R8 2
+ 0x8C240550, // 0148 GETMET R9 R2 K80
+ 0x7C240200, // 0149 CALL R9 1
+ 0x8C241352, // 014A GETMET R9 R9 K82
+ 0x882C074E, // 014B GETMBR R11 R3 K78
+ 0x88300912, // 014C GETMBR R12 R4 K18
+ 0x7C240600, // 014D CALL R9 3
+ 0x900E4009, // 014E SETMBR R3 K32 R9
+ 0xB8261800, // 014F GETNGBL R9 K12
+ 0x88241353, // 0150 GETMBR R9 R9 K83
+ 0x8C241354, // 0151 GETMET R9 R9 K84
+ 0x7C240200, // 0152 CALL R9 1
+ 0x8C281355, // 0153 GETMET R10 R9 K85
+ 0x5830000A, // 0154 LDCONST R12 K10
+ 0xB8361800, // 0155 GETNGBL R13 K12
+ 0x88341B53, // 0156 GETMBR R13 R13 K83
+ 0x88341B56, // 0157 GETMBR R13 R13 K86
+ 0x8C380F57, // 0158 GETMET R14 R7 K87
+ 0x7C380200, // 0159 CALL R14 1
+ 0x7C280800, // 015A CALL R10 4
+ 0x8C281355, // 015B GETMET R10 R9 K85
+ 0x5830000B, // 015C LDCONST R12 K11
+ 0xB8361800, // 015D GETNGBL R13 K12
+ 0x88341B53, // 015E GETMBR R13 R13 K83
+ 0x88341B56, // 015F GETMBR R13 R13 K86
+ 0x8C380F58, // 0160 GETMET R14 R7 K88
+ 0x7C380200, // 0161 CALL R14 1
+ 0x7C280800, // 0162 CALL R10 4
+ 0x8C281355, // 0163 GETMET R10 R9 K85
+ 0x58300008, // 0164 LDCONST R12 K8
+ 0xB8361800, // 0165 GETNGBL R13 K12
+ 0x88341B53, // 0166 GETMBR R13 R13 K83
+ 0x88341B56, // 0167 GETMBR R13 R13 K86
+ 0x8838074F, // 0168 GETMBR R14 R3 K79
+ 0x7C280800, // 0169 CALL R10 4
+ 0x8C281355, // 016A GETMET R10 R9 K85
+ 0x54320003, // 016B LDINT R12 4
+ 0xB8361800, // 016C GETNGBL R13 K12
+ 0x88341B53, // 016D GETMBR R13 R13 K83
+ 0x88341B56, // 016E GETMBR R13 R13 K86
+ 0x88380912, // 016F GETMBR R14 R4 K18
+ 0x7C280800, // 0170 CALL R10 4
+ 0x8C280550, // 0171 GETMET R10 R2 K80
+ 0x7C280200, // 0172 CALL R10 1
+ 0x8C281559, // 0173 GETMET R10 R10 K89
+ 0x8C300F5A, // 0174 GETMET R12 R7 K90
+ 0x7C300200, // 0175 CALL R12 1
+ 0x8C34133A, // 0176 GETMET R13 R9 K58
+ 0x7C340200, // 0177 CALL R13 1
+ 0x7C280600, // 0178 CALL R10 3
+ 0xB82E1800, // 0179 GETNGBL R11 K12
+ 0x882C1753, // 017A GETMBR R11 R11 K83
+ 0x8C2C1754, // 017B GETMET R11 R11 K84
+ 0x7C2C0200, // 017C CALL R11 1
+ 0x8C301755, // 017D GETMET R12 R11 K85
+ 0x5838000A, // 017E LDCONST R14 K10
+ 0xB83E1800, // 017F GETNGBL R15 K12
+ 0x883C1F53, // 0180 GETMBR R15 R15 K83
+ 0x883C1F56, // 0181 GETMBR R15 R15 K86
+ 0x8C400F57, // 0182 GETMET R16 R7 K87
+ 0x7C400200, // 0183 CALL R16 1
+ 0x7C300800, // 0184 CALL R12 4
+ 0x8C301755, // 0185 GETMET R12 R11 K85
+ 0x5838000B, // 0186 LDCONST R14 K11
+ 0xB83E1800, // 0187 GETNGBL R15 K12
+ 0x883C1F53, // 0188 GETMBR R15 R15 K83
+ 0x883C1F56, // 0189 GETMBR R15 R15 K86
+ 0x8C400F58, // 018A GETMET R16 R7 K88
+ 0x7C400200, // 018B CALL R16 1
+ 0x7C300800, // 018C CALL R12 4
+ 0x8C301755, // 018D GETMET R12 R11 K85
+ 0x58380008, // 018E LDCONST R14 K8
+ 0xB83E1800, // 018F GETNGBL R15 K12
+ 0x883C1F53, // 0190 GETMBR R15 R15 K83
+ 0x883C1F56, // 0191 GETMBR R15 R15 K86
+ 0x5C401400, // 0192 MOVE R16 R10
+ 0x7C300800, // 0193 CALL R12 4
+ 0x8C301755, // 0194 GETMET R12 R11 K85
+ 0x543A0003, // 0195 LDINT R14 4
+ 0xB83E1800, // 0196 GETNGBL R15 K12
+ 0x883C1F53, // 0197 GETMBR R15 R15 K83
+ 0x883C1F56, // 0198 GETMBR R15 R15 K86
+ 0x88400730, // 0199 GETMBR R16 R3 K48
+ 0x7C300800, // 019A CALL R12 4
+ 0x8830095B, // 019B GETMBR R12 R4 K91
+ 0x900E760C, // 019C SETMBR R3 K59 R12
+ 0x8C30055C, // 019D GETMET R12 R2 K92
+ 0x7C300200, // 019E CALL R12 1
+ 0x8C30195D, // 019F GETMET R12 R12 K93
+ 0x8838073B, // 01A0 GETMBR R14 R3 K59
+ 0x7C300400, // 01A1 CALL R12 2
+ 0x8C30195E, // 01A2 GETMET R12 R12 K94
+ 0x7C300200, // 01A3 CALL R12 1
+ 0x60340015, // 01A4 GETGBL R13 G21
+ 0x7C340000, // 01A5 CALL R13 0
+ 0x8C341B1C, // 01A6 GETMET R13 R13 K28
+ 0x883C015F, // 01A7 GETMBR R15 R0 K95
+ 0x7C340400, // 01A8 CALL R13 2
+ 0x8C380F60, // 01A9 GETMET R14 R7 K96
+ 0x7C380200, // 01AA CALL R14 1
+ 0x00381C08, // 01AB ADD R14 R14 R8
+ 0x883C074F, // 01AC GETMBR R15 R3 K79
+ 0x00381C0F, // 01AD ADD R14 R14 R15
+ 0x00381C0C, // 01AE ADD R14 R14 R12
+ 0x8C3C051E, // 01AF GETMET R15 R2 K30
+ 0x7C3C0200, // 01B0 CALL R15 1
+ 0x8C3C1F1F, // 01B1 GETMET R15 R15 K31
+ 0x88440720, // 01B2 GETMBR R17 R3 K32
+ 0x5C481C00, // 01B3 MOVE R18 R14
+ 0x5C4C1A00, // 01B4 MOVE R19 R13
+ 0x5452000F, // 01B5 LDINT R20 16
+ 0x7C3C0A00, // 01B6 CALL R15 5
+ 0x8C40173A, // 01B7 GETMET R16 R11 K58
+ 0x7C400200, // 01B8 CALL R16 1
+ 0x8C440523, // 01B9 GETMET R17 R2 K35
+ 0x5C4C1E00, // 01BA MOVE R19 R15
+ 0x60500015, // 01BB GETGBL R20 G21
+ 0x7C500000, // 01BC CALL R20 0
+ 0x8C50291C, // 01BD GETMET R20 R20 K28
+ 0x88580161, // 01BE GETMBR R22 R0 K97
+ 0x7C500400, // 01BF CALL R20 2
+ 0x60540015, // 01C0 GETGBL R21 G21
+ 0x7C540000, // 01C1 CALL R21 0
+ 0x6058000C, // 01C2 GETGBL R22 G12
+ 0x5C5C2000, // 01C3 MOVE R23 R16
+ 0x7C580200, // 01C4 CALL R22 1
+ 0x545E000F, // 01C5 LDINT R23 16
+ 0x7C440C00, // 01C6 CALL R17 6
+ 0x8C482362, // 01C7 GETMET R18 R17 K98
+ 0x5C502000, // 01C8 MOVE R20 R16
+ 0x7C480400, // 01C9 CALL R18 2
+ 0x8C4C2325, // 01CA GETMET R19 R17 K37
0x7C4C0200, // 01CB CALL R19 1
- 0x904EC608, // 01CC SETMBR R19 K99 R8
- 0x8850072A, // 01CD GETMBR R20 R3 K42
- 0x904EC814, // 01CE SETMBR R19 K100 R20
- 0x8850074E, // 01CF GETMBR R20 R3 K78
- 0x904ECA14, // 01D0 SETMBR R19 K101 R20
- 0x904ECC12, // 01D1 SETMBR R19 K102 R18
- 0x8C502739, // 01D2 GETMET R20 R19 K57
- 0x7C500200, // 01D3 CALL R20 1
- 0x900ECE14, // 01D4 SETMBR R3 K103 R20
- 0x8C54033B, // 01D5 GETMET R21 R1 K59
- 0x545E0030, // 01D6 LDINT R23 49
- 0x50600200, // 01D7 LDBOOL R24 1 0
- 0x7C540600, // 01D8 CALL R21 3
- 0x8C582B3C, // 01D9 GETMET R22 R21 K60
- 0x5C602800, // 01DA MOVE R24 R20
- 0x7C580400, // 01DB CALL R22 2
- 0xB85E0C00, // 01DC GETNGBL R23 K6
- 0x60600018, // 01DD GETGBL R24 G24
- 0x58640068, // 01DE LDCONST R25 K104
- 0x8868072A, // 01DF GETMBR R26 R3 K42
- 0x886C0769, // 01E0 GETMBR R27 R3 K105
- 0x8870076A, // 01E1 GETMBR R28 R3 K106
- 0x7C600800, // 01E2 CALL R24 4
- 0x5864000B, // 01E3 LDCONST R25 K11
- 0x7C5C0400, // 01E4 CALL R23 2
- 0x885C013D, // 01E5 GETMBR R23 R0 K61
- 0x8C5C2F3E, // 01E6 GETMET R23 R23 K62
- 0x5C642A00, // 01E7 MOVE R25 R21
+ 0x00482413, // 01CC ADD R18 R18 R19
+ 0xB84E1800, // 01CD GETNGBL R19 K12
+ 0x8C4C2763, // 01CE GETMET R19 R19 K99
+ 0x7C4C0200, // 01CF CALL R19 1
+ 0x904EC808, // 01D0 SETMBR R19 K100 R8
+ 0x8850072B, // 01D1 GETMBR R20 R3 K43
+ 0x904ECA14, // 01D2 SETMBR R19 K101 R20
+ 0x8850074F, // 01D3 GETMBR R20 R3 K79
+ 0x904ECC14, // 01D4 SETMBR R19 K102 R20
+ 0x904ECE12, // 01D5 SETMBR R19 K103 R18
+ 0x8C50273A, // 01D6 GETMET R20 R19 K58
+ 0x7C500200, // 01D7 CALL R20 1
+ 0x900ED014, // 01D8 SETMBR R3 K104 R20
+ 0x8C54033C, // 01D9 GETMET R21 R1 K60
+ 0x545E0030, // 01DA LDINT R23 49
+ 0x50600200, // 01DB LDBOOL R24 1 0
+ 0x7C540600, // 01DC CALL R21 3
+ 0x8C582B3D, // 01DD GETMET R22 R21 K61
+ 0x5C602800, // 01DE MOVE R24 R20
+ 0x7C580400, // 01DF CALL R22 2
+ 0xB85E0C00, // 01E0 GETNGBL R23 K6
+ 0x60600018, // 01E1 GETGBL R24 G24
+ 0x58640069, // 01E2 LDCONST R25 K105
+ 0x8868072B, // 01E3 GETMBR R26 R3 K43
+ 0x886C076A, // 01E4 GETMBR R27 R3 K106
+ 0x8870076B, // 01E5 GETMBR R28 R3 K107
+ 0x7C600800, // 01E6 CALL R24 4
+ 0x5864000B, // 01E7 LDCONST R25 K11
0x7C5C0400, // 01E8 CALL R23 2
- 0x505C0200, // 01E9 LDBOOL R23 1 0
- 0x80042E00, // 01EA RET 1 R23
- 0x501C0200, // 01EB LDBOOL R7 1 0
- 0x80040E00, // 01EC RET 1 R7
+ 0x885C013E, // 01E9 GETMBR R23 R0 K62
+ 0x8C5C2F3F, // 01EA GETMET R23 R23 K63
+ 0x5C642A00, // 01EB MOVE R25 R21
+ 0x7C5C0400, // 01EC CALL R23 2
+ 0x505C0200, // 01ED LDBOOL R23 1 0
+ 0x80042E00, // 01EE RET 1 R23
+ 0x501C0200, // 01EF LDBOOL R7 1 0
+ 0x80040E00, // 01F0 RET 1 R7
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
index 793cca7da..2ddee25dd 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Message.h
@@ -228,7 +228,7 @@ be_local_closure(class_Matter_Frame_encode_frame, /* name */
}),
be_str_weak(encode_frame),
&be_const_str_solidified,
- ( &(const binstruction[155]) { /* code */
+ ( &(const binstruction[161]) { /* code */
0x4C0C0000, // 0000 LDNIL R3
0x1C0C0403, // 0001 EQ R3 R2 R3
0x780E000A, // 0002 JMPF R3 #000E
@@ -362,28 +362,34 @@ be_local_closure(class_Matter_Frame_encode_frame, /* name */
0x7C0C0600, // 0082 CALL R3 3
0x8C0C0505, // 0083 GETMET R3 R2 K5
0x88140118, // 0084 GETMBR R5 R0 K24
- 0x541AFFFE, // 0085 LDINT R6 65535
- 0x2C140A06, // 0086 AND R5 R5 R6
- 0x58180008, // 0087 LDCONST R6 K8
- 0x7C0C0600, // 0088 CALL R3 3
- 0x8C0C0505, // 0089 GETMET R3 R2 K5
- 0x88140119, // 008A GETMBR R5 R0 K25
- 0x58180008, // 008B LDCONST R6 K8
- 0x7C0C0600, // 008C CALL R3 3
- 0x880C0115, // 008D GETMBR R3 R0 K21
- 0x780E0003, // 008E JMPF R3 #0093
+ 0x4C180000, // 0085 LDNIL R6
+ 0x20140A06, // 0086 NE R5 R5 R6
+ 0x78160003, // 0087 JMPF R5 #008C
+ 0x88140118, // 0088 GETMBR R5 R0 K24
+ 0x541AFFFE, // 0089 LDINT R6 65535
+ 0x2C140A06, // 008A AND R5 R5 R6
+ 0x70020000, // 008B JMP #008D
+ 0x58140000, // 008C LDCONST R5 K0
+ 0x58180008, // 008D LDCONST R6 K8
+ 0x7C0C0600, // 008E CALL R3 3
0x8C0C0505, // 008F GETMET R3 R2 K5
- 0x8814011A, // 0090 GETMBR R5 R0 K26
- 0x541A0003, // 0091 LDINT R6 4
+ 0x88140119, // 0090 GETMBR R5 R0 K25
+ 0x58180008, // 0091 LDCONST R6 K8
0x7C0C0600, // 0092 CALL R3 3
- 0x600C000C, // 0093 GETGBL R3 G12
- 0x5C100400, // 0094 MOVE R4 R2
- 0x7C0C0200, // 0095 CALL R3 1
- 0x90023603, // 0096 SETMBR R0 K27 R3
- 0x78060000, // 0097 JMPF R1 #0099
- 0x400C0401, // 0098 CONNECT R3 R2 R1
- 0x90023802, // 0099 SETMBR R0 K28 R2
- 0x80040400, // 009A RET 1 R2
+ 0x880C0115, // 0093 GETMBR R3 R0 K21
+ 0x780E0003, // 0094 JMPF R3 #0099
+ 0x8C0C0505, // 0095 GETMET R3 R2 K5
+ 0x8814011A, // 0096 GETMBR R5 R0 K26
+ 0x541A0003, // 0097 LDINT R6 4
+ 0x7C0C0600, // 0098 CALL R3 3
+ 0x600C000C, // 0099 GETGBL R3 G12
+ 0x5C100400, // 009A MOVE R4 R2
+ 0x7C0C0200, // 009B CALL R3 1
+ 0x90023603, // 009C SETMBR R0 K27 R3
+ 0x78060000, // 009D JMPF R1 #009F
+ 0x400C0401, // 009E CONNECT R3 R2 R1
+ 0x90023802, // 009F SETMBR R0 K28 R2
+ 0x80040400, // 00A0 RET 1 R2
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
index 6eb6dc0e8..be8bf07c2 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
@@ -182,12 +182,12 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
/* K31 */ be_nested_str_weak(get_opcode_name),
/* K32 */ be_nested_str_weak(0x_X2502X),
/* K33 */ be_const_int(3),
- /* K34 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20rid_X3D_X25i_X20exch_X3D_X25i_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K35 */ be_nested_str_weak(exchange_id),
- /* K36 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
- /* K37 */ be_nested_str_weak(x_flag_r),
- /* K38 */ be_nested_str_weak(_X7Breliable_X7D_X20),
- /* K39 */ be_nested_str_weak(),
+ /* K34 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K35 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K36 */ be_nested_str_weak(x_flag_r),
+ /* K37 */ be_nested_str_weak(_X7Breliable_X7D_X20),
+ /* K38 */ be_nested_str_weak(),
+ /* K39 */ be_nested_str_weak(exchange_id),
/* K40 */ be_nested_str_weak(ack_message_counter),
/* K41 */ be_nested_str_weak(commissioning),
/* K42 */ be_nested_str_weak(process_incoming),
@@ -221,14 +221,14 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
}),
be_str_weak(msg_received),
&be_const_str_solidified,
- ( &(const binstruction[356]) { /* code */
+ ( &(const binstruction[354]) { /* code */
0x50100000, // 0000 LDBOOL R4 0 0
0xB8160000, // 0001 GETNGBL R5 K0
0x88140B01, // 0002 GETMBR R5 R5 K1
0x8C140B02, // 0003 GETMET R5 R5 K2
0x581C0003, // 0004 LDCONST R7 K3
0x7C140400, // 0005 CALL R5 2
- 0xA8020143, // 0006 EXBLK 0 #014B
+ 0xA8020141, // 0006 EXBLK 0 #0149
0xB8160000, // 0007 GETNGBL R5 K0
0x8C140B04, // 0008 GETMET R5 R5 K4
0x5C1C0000, // 0009 MOVE R7 R0
@@ -257,13 +257,13 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0x7C200400, // 0020 CALL R8 2
0xA8040001, // 0021 EXBLK 1 1
0x80041000, // 0022 RET 1 R8
- 0x70020122, // 0023 JMP #0147
+ 0x70020120, // 0023 JMP #0145
0x881C0B0D, // 0024 GETMBR R7 R5 K13
0x1C1C0F0E, // 0025 EQ R7 R7 K14
- 0x781E007C, // 0026 JMPF R7 #00A4
+ 0x781E007A, // 0026 JMPF R7 #00A2
0x881C0B0F, // 0027 GETMBR R7 R5 K15
0x1C1C0F0E, // 0028 EQ R7 R7 K14
- 0x781E0079, // 0029 JMPF R7 #00A4
+ 0x781E0077, // 0029 JMPF R7 #00A2
0x881C0107, // 002A GETMBR R7 R0 K7
0x881C0F08, // 002B GETMBR R7 R7 K8
0x8C1C0F09, // 002C GETMET R7 R7 K9
@@ -317,7 +317,7 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0x88200B1E, // 005C GETMBR R8 R5 K30
0x5426000F, // 005D LDINT R9 16
0x20201009, // 005E NE R8 R8 R9
- 0x7822001C, // 005F JMPF R8 #007D
+ 0x7822001A, // 005F JMPF R8 #007B
0xB8220000, // 0060 GETNGBL R8 K0
0x8C20111F, // 0061 GETMET R8 R8 K31
0x88280B1E, // 0062 GETMBR R10 R5 K30
@@ -333,251 +333,249 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0x8C241318, // 006C GETMET R9 R9 K24
0x582C0021, // 006D LDCONST R11 K33
0x7C240400, // 006E CALL R9 2
- 0x7826000B, // 006F JMPF R9 #007C
+ 0x78260009, // 006F JMPF R9 #007A
0xB8260400, // 0070 GETNGBL R9 K2
0x60280018, // 0071 GETGBL R10 G24
0x582C0022, // 0072 LDCONST R11 K34
0x88300F0D, // 0073 GETMBR R12 R7 K13
0x5C341000, // 0074 MOVE R13 R8
- 0x88380B16, // 0075 GETMBR R14 R5 K22
- 0x883C0B23, // 0076 GETMBR R15 R5 K35
- 0x5C400400, // 0077 MOVE R16 R2
- 0x5C440600, // 0078 MOVE R17 R3
- 0x7C280E00, // 0079 CALL R10 7
- 0x582C0021, // 007A LDCONST R11 K33
- 0x7C240400, // 007B CALL R9 2
- 0x70020017, // 007C JMP #0095
- 0xB8222E00, // 007D GETNGBL R8 K23
- 0x8C201118, // 007E GETMET R8 R8 K24
- 0x542A0003, // 007F LDINT R10 4
- 0x7C200400, // 0080 CALL R8 2
- 0x78220012, // 0081 JMPF R8 #0095
- 0xB8220400, // 0082 GETNGBL R8 K2
- 0x60240018, // 0083 GETGBL R9 G24
- 0x58280024, // 0084 LDCONST R10 K36
- 0x882C0F0D, // 0085 GETMBR R11 R7 K13
- 0x88300B16, // 0086 GETMBR R12 R5 K22
- 0x88340B25, // 0087 GETMBR R13 R5 K37
- 0x78360001, // 0088 JMPF R13 #008B
+ 0x5C380400, // 0075 MOVE R14 R2
+ 0x5C3C0600, // 0076 MOVE R15 R3
+ 0x7C280A00, // 0077 CALL R10 5
+ 0x582C0021, // 0078 LDCONST R11 K33
+ 0x7C240400, // 0079 CALL R9 2
+ 0x70020017, // 007A JMP #0093
+ 0xB8222E00, // 007B GETNGBL R8 K23
+ 0x8C201118, // 007C GETMET R8 R8 K24
+ 0x542A0003, // 007D LDINT R10 4
+ 0x7C200400, // 007E CALL R8 2
+ 0x78220012, // 007F JMPF R8 #0093
+ 0xB8220400, // 0080 GETNGBL R8 K2
+ 0x60240018, // 0081 GETGBL R9 G24
+ 0x58280023, // 0082 LDCONST R10 K35
+ 0x882C0F0D, // 0083 GETMBR R11 R7 K13
+ 0x88300B16, // 0084 GETMBR R12 R5 K22
+ 0x88340B24, // 0085 GETMBR R13 R5 K36
+ 0x78360001, // 0086 JMPF R13 #0089
+ 0x58340025, // 0087 LDCONST R13 K37
+ 0x70020000, // 0088 JMP #008A
0x58340026, // 0089 LDCONST R13 K38
- 0x70020000, // 008A JMP #008C
- 0x58340027, // 008B LDCONST R13 K39
- 0x88380B23, // 008C GETMBR R14 R5 K35
- 0x603C0008, // 008D GETGBL R15 G8
- 0x88400B28, // 008E GETMBR R16 R5 K40
- 0x7C3C0200, // 008F CALL R15 1
- 0x5C400400, // 0090 MOVE R16 R2
- 0x5C440600, // 0091 MOVE R17 R3
- 0x7C241000, // 0092 CALL R9 8
- 0x542A0003, // 0093 LDINT R10 4
- 0x7C200400, // 0094 CALL R8 2
- 0x88200129, // 0095 GETMBR R8 R0 K41
- 0x8C20112A, // 0096 GETMET R8 R8 K42
- 0x5C280A00, // 0097 MOVE R10 R5
- 0x7C200400, // 0098 CALL R8 2
- 0x5C101000, // 0099 MOVE R4 R8
- 0x5C200800, // 009A MOVE R8 R4
- 0x74220003, // 009B JMPT R8 #00A0
- 0x8C20011B, // 009C GETMET R8 R0 K27
- 0x5C280A00, // 009D MOVE R10 R5
- 0x502C0000, // 009E LDBOOL R11 0 0
- 0x7C200600, // 009F CALL R8 3
- 0x50200200, // 00A0 LDBOOL R8 1 0
- 0xA8040001, // 00A1 EXBLK 1 1
- 0x80041000, // 00A2 RET 1 R8
- 0x700200A2, // 00A3 JMP #0147
- 0xB81E2E00, // 00A4 GETNGBL R7 K23
- 0x8C1C0F18, // 00A5 GETMET R7 R7 K24
- 0x54260003, // 00A6 LDINT R9 4
- 0x7C1C0400, // 00A7 CALL R7 2
- 0x781E0007, // 00A8 JMPF R7 #00B1
- 0xB81E0400, // 00A9 GETNGBL R7 K2
- 0x60200018, // 00AA GETGBL R8 G24
- 0x5824002B, // 00AB LDCONST R9 K43
- 0x88280B0D, // 00AC GETMBR R10 R5 K13
- 0x882C0B16, // 00AD GETMBR R11 R5 K22
- 0x7C200600, // 00AE CALL R8 3
- 0x54260003, // 00AF LDINT R9 4
- 0x7C1C0400, // 00B0 CALL R7 2
- 0x881C0107, // 00B1 GETMBR R7 R0 K7
- 0x881C0F08, // 00B2 GETMBR R7 R7 K8
- 0x8C1C0F2C, // 00B3 GETMET R7 R7 K44
- 0x88240B0D, // 00B4 GETMBR R9 R5 K13
- 0x7C1C0400, // 00B5 CALL R7 2
- 0x4C200000, // 00B6 LDNIL R8
- 0x1C200E08, // 00B7 EQ R8 R7 R8
- 0x78220009, // 00B8 JMPF R8 #00C3
- 0xB8220400, // 00B9 GETNGBL R8 K2
- 0x60240008, // 00BA GETGBL R9 G8
- 0x88280B0D, // 00BB GETMBR R10 R5 K13
- 0x7C240200, // 00BC CALL R9 1
- 0x00265A09, // 00BD ADD R9 K45 R9
- 0x58280021, // 00BE LDCONST R10 K33
- 0x7C200400, // 00BF CALL R8 2
- 0x50200000, // 00C0 LDBOOL R8 0 0
- 0xA8040001, // 00C1 EXBLK 1 1
- 0x80041000, // 00C2 RET 1 R8
- 0x780A0000, // 00C3 JMPF R2 #00C5
- 0x901E2002, // 00C4 SETMBR R7 K16 R2
- 0x780E0000, // 00C5 JMPF R3 #00C7
- 0x901E2203, // 00C6 SETMBR R7 K17 R3
- 0x901E2400, // 00C7 SETMBR R7 K18 R0
- 0x90162607, // 00C8 SETMBR R5 K19 R7
- 0x8C200F2E, // 00C9 GETMET R8 R7 K46
- 0x88280B16, // 00CA GETMBR R10 R5 K22
- 0x502C0200, // 00CB LDBOOL R11 1 0
- 0x7C200600, // 00CC CALL R8 3
- 0x74220017, // 00CD JMPT R8 #00E6
- 0xB8222E00, // 00CE GETNGBL R8 K23
- 0x8C201118, // 00CF GETMET R8 R8 K24
- 0x58280021, // 00D0 LDCONST R10 K33
- 0x7C200400, // 00D1 CALL R8 2
- 0x7822000B, // 00D2 JMPF R8 #00DF
- 0xB8220400, // 00D3 GETNGBL R8 K2
- 0x60240008, // 00D4 GETGBL R9 G8
- 0x88280B16, // 00D5 GETMBR R10 R5 K22
- 0x7C240200, // 00D6 CALL R9 1
- 0x00265E09, // 00D7 ADD R9 K47 R9
- 0x00241330, // 00D8 ADD R9 R9 K48
- 0x60280008, // 00D9 GETGBL R10 G8
- 0x882C0F31, // 00DA GETMBR R11 R7 K49
- 0x7C280200, // 00DB CALL R10 1
- 0x0024120A, // 00DC ADD R9 R9 R10
- 0x58280021, // 00DD LDCONST R10 K33
- 0x7C200400, // 00DE CALL R8 2
- 0x8C200132, // 00DF GETMET R8 R0 K50
- 0x5C280A00, // 00E0 MOVE R10 R5
- 0x502C0000, // 00E1 LDBOOL R11 0 0
- 0x7C200600, // 00E2 CALL R8 3
- 0x50200000, // 00E3 LDBOOL R8 0 0
- 0xA8040001, // 00E4 EXBLK 1 1
- 0x80041000, // 00E5 RET 1 R8
- 0x8C200B33, // 00E6 GETMET R8 R5 K51
- 0x7C200200, // 00E7 CALL R8 1
- 0xB8260000, // 00E8 GETNGBL R9 K0
- 0x88241301, // 00E9 GETMBR R9 R9 K1
- 0x8C241302, // 00EA GETMET R9 R9 K2
- 0x582C0034, // 00EB LDCONST R11 K52
- 0x7C240400, // 00EC CALL R9 2
- 0x5C241000, // 00ED MOVE R9 R8
- 0x74260002, // 00EE JMPT R9 #00F2
- 0x50240000, // 00EF LDBOOL R9 0 0
- 0xA8040001, // 00F0 EXBLK 1 1
- 0x80041200, // 00F1 RET 1 R9
- 0x8C240B1C, // 00F2 GETMET R9 R5 K28
- 0x7C240200, // 00F3 CALL R9 1
- 0xB8262E00, // 00F4 GETNGBL R9 K23
- 0x8C241318, // 00F5 GETMET R9 R9 K24
- 0x542E0003, // 00F6 LDINT R11 4
- 0x7C240400, // 00F7 CALL R9 2
- 0x78260012, // 00F8 JMPF R9 #010C
- 0xB8260400, // 00F9 GETNGBL R9 K2
- 0x60280008, // 00FA GETGBL R10 G8
- 0x882C0B36, // 00FB GETMBR R11 R5 K54
- 0x7C280200, // 00FC CALL R10 1
- 0x002A6A0A, // 00FD ADD R10 K53 R10
- 0x00281537, // 00FE ADD R10 R10 K55
- 0x602C0008, // 00FF GETGBL R11 G8
- 0x88300B1E, // 0100 GETMBR R12 R5 K30
- 0x7C2C0200, // 0101 CALL R11 1
- 0x0028140B, // 0102 ADD R10 R10 R11
- 0x00281538, // 0103 ADD R10 R10 K56
- 0x602C0008, // 0104 GETGBL R11 G8
- 0x88300B23, // 0105 GETMBR R12 R5 K35
- 0x5436FFFE, // 0106 LDINT R13 65535
- 0x2C30180D, // 0107 AND R12 R12 R13
- 0x7C2C0200, // 0108 CALL R11 1
- 0x0028140B, // 0109 ADD R10 R10 R11
- 0x542E0003, // 010A LDINT R11 4
- 0x7C240400, // 010B CALL R9 2
- 0x88240107, // 010C GETMBR R9 R0 K7
- 0x8C24131D, // 010D GETMET R9 R9 K29
- 0x5C2C0A00, // 010E MOVE R11 R5
- 0x7C240400, // 010F CALL R9 2
- 0x88240B36, // 0110 GETMBR R9 R5 K54
- 0x1C28130E, // 0111 EQ R10 R9 K14
- 0x782A000F, // 0112 JMPF R10 #0123
- 0x88280B1E, // 0113 GETMBR R10 R5 K30
- 0x542E000F, // 0114 LDINT R11 16
- 0x1C28140B, // 0115 EQ R10 R10 R11
- 0x782A0009, // 0116 JMPF R10 #0121
- 0x88280139, // 0117 GETMBR R10 R0 K57
- 0x8C28153A, // 0118 GETMET R10 R10 K58
- 0x5C300A00, // 0119 MOVE R12 R5
- 0x7C280400, // 011A CALL R10 2
- 0x5C101400, // 011B MOVE R4 R10
- 0x78120003, // 011C JMPF R4 #0121
- 0x88280139, // 011D GETMBR R10 R0 K57
- 0x8C28153B, // 011E GETMET R10 R10 K59
- 0x5C300000, // 011F MOVE R12 R0
- 0x7C280400, // 0120 CALL R10 2
- 0x50100200, // 0121 LDBOOL R4 1 0
- 0x70020023, // 0122 JMP #0147
- 0x1C28133C, // 0123 EQ R10 R9 K60
- 0x782A001A, // 0124 JMPF R10 #0140
- 0xB82A0000, // 0125 GETNGBL R10 K0
- 0x88281501, // 0126 GETMBR R10 R10 K1
- 0x8C281502, // 0127 GETMET R10 R10 K2
- 0x5830003D, // 0128 LDCONST R12 K61
- 0x7C280400, // 0129 CALL R10 2
- 0x88280139, // 012A GETMBR R10 R0 K57
- 0x8C28152A, // 012B GETMET R10 R10 K42
- 0x5C300A00, // 012C MOVE R12 R5
- 0x7C280400, // 012D CALL R10 2
- 0x5C101400, // 012E MOVE R4 R10
- 0xB82A0000, // 012F GETNGBL R10 K0
- 0x88281501, // 0130 GETMBR R10 R10 K1
- 0x8C281502, // 0131 GETMET R10 R10 K2
- 0x5830003E, // 0132 LDCONST R12 K62
- 0x7C280400, // 0133 CALL R10 2
- 0x78120004, // 0134 JMPF R4 #013A
- 0x88280139, // 0135 GETMBR R10 R0 K57
- 0x8C28153B, // 0136 GETMET R10 R10 K59
- 0x5C300000, // 0137 MOVE R12 R0
- 0x7C280400, // 0138 CALL R10 2
- 0x70020003, // 0139 JMP #013E
- 0x8C280132, // 013A GETMET R10 R0 K50
- 0x5C300A00, // 013B MOVE R12 R5
- 0x50340200, // 013C LDBOOL R13 1 0
- 0x7C280600, // 013D CALL R10 3
- 0x50100200, // 013E LDBOOL R4 1 0
- 0x70020006, // 013F JMP #0147
- 0xB82A0400, // 0140 GETNGBL R10 K2
- 0x602C0008, // 0141 GETGBL R11 G8
- 0x5C301200, // 0142 MOVE R12 R9
- 0x7C2C0200, // 0143 CALL R11 1
- 0x002E7E0B, // 0144 ADD R11 K63 R11
- 0x58300021, // 0145 LDCONST R12 K33
- 0x7C280400, // 0146 CALL R10 2
+ 0x88380B27, // 008A GETMBR R14 R5 K39
+ 0x603C0008, // 008B GETGBL R15 G8
+ 0x88400B28, // 008C GETMBR R16 R5 K40
+ 0x7C3C0200, // 008D CALL R15 1
+ 0x5C400400, // 008E MOVE R16 R2
+ 0x5C440600, // 008F MOVE R17 R3
+ 0x7C241000, // 0090 CALL R9 8
+ 0x542A0003, // 0091 LDINT R10 4
+ 0x7C200400, // 0092 CALL R8 2
+ 0x88200129, // 0093 GETMBR R8 R0 K41
+ 0x8C20112A, // 0094 GETMET R8 R8 K42
+ 0x5C280A00, // 0095 MOVE R10 R5
+ 0x7C200400, // 0096 CALL R8 2
+ 0x5C101000, // 0097 MOVE R4 R8
+ 0x5C200800, // 0098 MOVE R8 R4
+ 0x74220003, // 0099 JMPT R8 #009E
+ 0x8C20011B, // 009A GETMET R8 R0 K27
+ 0x5C280A00, // 009B MOVE R10 R5
+ 0x502C0000, // 009C LDBOOL R11 0 0
+ 0x7C200600, // 009D CALL R8 3
+ 0x50200200, // 009E LDBOOL R8 1 0
+ 0xA8040001, // 009F EXBLK 1 1
+ 0x80041000, // 00A0 RET 1 R8
+ 0x700200A2, // 00A1 JMP #0145
+ 0xB81E2E00, // 00A2 GETNGBL R7 K23
+ 0x8C1C0F18, // 00A3 GETMET R7 R7 K24
+ 0x54260003, // 00A4 LDINT R9 4
+ 0x7C1C0400, // 00A5 CALL R7 2
+ 0x781E0007, // 00A6 JMPF R7 #00AF
+ 0xB81E0400, // 00A7 GETNGBL R7 K2
+ 0x60200018, // 00A8 GETGBL R8 G24
+ 0x5824002B, // 00A9 LDCONST R9 K43
+ 0x88280B0D, // 00AA GETMBR R10 R5 K13
+ 0x882C0B16, // 00AB GETMBR R11 R5 K22
+ 0x7C200600, // 00AC CALL R8 3
+ 0x54260003, // 00AD LDINT R9 4
+ 0x7C1C0400, // 00AE CALL R7 2
+ 0x881C0107, // 00AF GETMBR R7 R0 K7
+ 0x881C0F08, // 00B0 GETMBR R7 R7 K8
+ 0x8C1C0F2C, // 00B1 GETMET R7 R7 K44
+ 0x88240B0D, // 00B2 GETMBR R9 R5 K13
+ 0x7C1C0400, // 00B3 CALL R7 2
+ 0x4C200000, // 00B4 LDNIL R8
+ 0x1C200E08, // 00B5 EQ R8 R7 R8
+ 0x78220009, // 00B6 JMPF R8 #00C1
+ 0xB8220400, // 00B7 GETNGBL R8 K2
+ 0x60240008, // 00B8 GETGBL R9 G8
+ 0x88280B0D, // 00B9 GETMBR R10 R5 K13
+ 0x7C240200, // 00BA CALL R9 1
+ 0x00265A09, // 00BB ADD R9 K45 R9
+ 0x58280021, // 00BC LDCONST R10 K33
+ 0x7C200400, // 00BD CALL R8 2
+ 0x50200000, // 00BE LDBOOL R8 0 0
+ 0xA8040001, // 00BF EXBLK 1 1
+ 0x80041000, // 00C0 RET 1 R8
+ 0x780A0000, // 00C1 JMPF R2 #00C3
+ 0x901E2002, // 00C2 SETMBR R7 K16 R2
+ 0x780E0000, // 00C3 JMPF R3 #00C5
+ 0x901E2203, // 00C4 SETMBR R7 K17 R3
+ 0x901E2400, // 00C5 SETMBR R7 K18 R0
+ 0x90162607, // 00C6 SETMBR R5 K19 R7
+ 0x8C200F2E, // 00C7 GETMET R8 R7 K46
+ 0x88280B16, // 00C8 GETMBR R10 R5 K22
+ 0x502C0200, // 00C9 LDBOOL R11 1 0
+ 0x7C200600, // 00CA CALL R8 3
+ 0x74220017, // 00CB JMPT R8 #00E4
+ 0xB8222E00, // 00CC GETNGBL R8 K23
+ 0x8C201118, // 00CD GETMET R8 R8 K24
+ 0x58280021, // 00CE LDCONST R10 K33
+ 0x7C200400, // 00CF CALL R8 2
+ 0x7822000B, // 00D0 JMPF R8 #00DD
+ 0xB8220400, // 00D1 GETNGBL R8 K2
+ 0x60240008, // 00D2 GETGBL R9 G8
+ 0x88280B16, // 00D3 GETMBR R10 R5 K22
+ 0x7C240200, // 00D4 CALL R9 1
+ 0x00265E09, // 00D5 ADD R9 K47 R9
+ 0x00241330, // 00D6 ADD R9 R9 K48
+ 0x60280008, // 00D7 GETGBL R10 G8
+ 0x882C0F31, // 00D8 GETMBR R11 R7 K49
+ 0x7C280200, // 00D9 CALL R10 1
+ 0x0024120A, // 00DA ADD R9 R9 R10
+ 0x58280021, // 00DB LDCONST R10 K33
+ 0x7C200400, // 00DC CALL R8 2
+ 0x8C200132, // 00DD GETMET R8 R0 K50
+ 0x5C280A00, // 00DE MOVE R10 R5
+ 0x502C0000, // 00DF LDBOOL R11 0 0
+ 0x7C200600, // 00E0 CALL R8 3
+ 0x50200000, // 00E1 LDBOOL R8 0 0
+ 0xA8040001, // 00E2 EXBLK 1 1
+ 0x80041000, // 00E3 RET 1 R8
+ 0x8C200B33, // 00E4 GETMET R8 R5 K51
+ 0x7C200200, // 00E5 CALL R8 1
+ 0xB8260000, // 00E6 GETNGBL R9 K0
+ 0x88241301, // 00E7 GETMBR R9 R9 K1
+ 0x8C241302, // 00E8 GETMET R9 R9 K2
+ 0x582C0034, // 00E9 LDCONST R11 K52
+ 0x7C240400, // 00EA CALL R9 2
+ 0x5C241000, // 00EB MOVE R9 R8
+ 0x74260002, // 00EC JMPT R9 #00F0
+ 0x50240000, // 00ED LDBOOL R9 0 0
+ 0xA8040001, // 00EE EXBLK 1 1
+ 0x80041200, // 00EF RET 1 R9
+ 0x8C240B1C, // 00F0 GETMET R9 R5 K28
+ 0x7C240200, // 00F1 CALL R9 1
+ 0xB8262E00, // 00F2 GETNGBL R9 K23
+ 0x8C241318, // 00F3 GETMET R9 R9 K24
+ 0x542E0003, // 00F4 LDINT R11 4
+ 0x7C240400, // 00F5 CALL R9 2
+ 0x78260012, // 00F6 JMPF R9 #010A
+ 0xB8260400, // 00F7 GETNGBL R9 K2
+ 0x60280008, // 00F8 GETGBL R10 G8
+ 0x882C0B36, // 00F9 GETMBR R11 R5 K54
+ 0x7C280200, // 00FA CALL R10 1
+ 0x002A6A0A, // 00FB ADD R10 K53 R10
+ 0x00281537, // 00FC ADD R10 R10 K55
+ 0x602C0008, // 00FD GETGBL R11 G8
+ 0x88300B1E, // 00FE GETMBR R12 R5 K30
+ 0x7C2C0200, // 00FF CALL R11 1
+ 0x0028140B, // 0100 ADD R10 R10 R11
+ 0x00281538, // 0101 ADD R10 R10 K56
+ 0x602C0008, // 0102 GETGBL R11 G8
+ 0x88300B27, // 0103 GETMBR R12 R5 K39
+ 0x5436FFFE, // 0104 LDINT R13 65535
+ 0x2C30180D, // 0105 AND R12 R12 R13
+ 0x7C2C0200, // 0106 CALL R11 1
+ 0x0028140B, // 0107 ADD R10 R10 R11
+ 0x542E0003, // 0108 LDINT R11 4
+ 0x7C240400, // 0109 CALL R9 2
+ 0x88240107, // 010A GETMBR R9 R0 K7
+ 0x8C24131D, // 010B GETMET R9 R9 K29
+ 0x5C2C0A00, // 010C MOVE R11 R5
+ 0x7C240400, // 010D CALL R9 2
+ 0x88240B36, // 010E GETMBR R9 R5 K54
+ 0x1C28130E, // 010F EQ R10 R9 K14
+ 0x782A000F, // 0110 JMPF R10 #0121
+ 0x88280B1E, // 0111 GETMBR R10 R5 K30
+ 0x542E000F, // 0112 LDINT R11 16
+ 0x1C28140B, // 0113 EQ R10 R10 R11
+ 0x782A0009, // 0114 JMPF R10 #011F
+ 0x88280139, // 0115 GETMBR R10 R0 K57
+ 0x8C28153A, // 0116 GETMET R10 R10 K58
+ 0x5C300A00, // 0117 MOVE R12 R5
+ 0x7C280400, // 0118 CALL R10 2
+ 0x5C101400, // 0119 MOVE R4 R10
+ 0x78120003, // 011A JMPF R4 #011F
+ 0x88280139, // 011B GETMBR R10 R0 K57
+ 0x8C28153B, // 011C GETMET R10 R10 K59
+ 0x5C300000, // 011D MOVE R12 R0
+ 0x7C280400, // 011E CALL R10 2
+ 0x50100200, // 011F LDBOOL R4 1 0
+ 0x70020023, // 0120 JMP #0145
+ 0x1C28133C, // 0121 EQ R10 R9 K60
+ 0x782A001A, // 0122 JMPF R10 #013E
+ 0xB82A0000, // 0123 GETNGBL R10 K0
+ 0x88281501, // 0124 GETMBR R10 R10 K1
+ 0x8C281502, // 0125 GETMET R10 R10 K2
+ 0x5830003D, // 0126 LDCONST R12 K61
+ 0x7C280400, // 0127 CALL R10 2
+ 0x88280139, // 0128 GETMBR R10 R0 K57
+ 0x8C28152A, // 0129 GETMET R10 R10 K42
+ 0x5C300A00, // 012A MOVE R12 R5
+ 0x7C280400, // 012B CALL R10 2
+ 0x5C101400, // 012C MOVE R4 R10
+ 0xB82A0000, // 012D GETNGBL R10 K0
+ 0x88281501, // 012E GETMBR R10 R10 K1
+ 0x8C281502, // 012F GETMET R10 R10 K2
+ 0x5830003E, // 0130 LDCONST R12 K62
+ 0x7C280400, // 0131 CALL R10 2
+ 0x78120004, // 0132 JMPF R4 #0138
+ 0x88280139, // 0133 GETMBR R10 R0 K57
+ 0x8C28153B, // 0134 GETMET R10 R10 K59
+ 0x5C300000, // 0135 MOVE R12 R0
+ 0x7C280400, // 0136 CALL R10 2
+ 0x70020003, // 0137 JMP #013C
+ 0x8C280132, // 0138 GETMET R10 R0 K50
+ 0x5C300A00, // 0139 MOVE R12 R5
+ 0x50340200, // 013A LDBOOL R13 1 0
+ 0x7C280600, // 013B CALL R10 3
+ 0x50100200, // 013C LDBOOL R4 1 0
+ 0x70020006, // 013D JMP #0145
+ 0xB82A0400, // 013E GETNGBL R10 K2
+ 0x602C0008, // 013F GETGBL R11 G8
+ 0x5C301200, // 0140 MOVE R12 R9
+ 0x7C2C0200, // 0141 CALL R11 1
+ 0x002E7E0B, // 0142 ADD R11 K63 R11
+ 0x58300021, // 0143 LDCONST R12 K33
+ 0x7C280400, // 0144 CALL R10 2
+ 0xA8040001, // 0145 EXBLK 1 1
+ 0x80040800, // 0146 RET 1 R4
0xA8040001, // 0147 EXBLK 1 1
- 0x80040800, // 0148 RET 1 R4
- 0xA8040001, // 0149 EXBLK 1 1
- 0x70020017, // 014A JMP #0163
- 0xAC140002, // 014B CATCH R5 0 2
- 0x70020014, // 014C JMP #0162
- 0xB81E0400, // 014D GETNGBL R7 K2
- 0x60200008, // 014E GETGBL R8 G8
- 0x5C240A00, // 014F MOVE R9 R5
- 0x7C200200, // 0150 CALL R8 1
- 0x00228008, // 0151 ADD R8 K64 R8
- 0x00201141, // 0152 ADD R8 R8 K65
- 0x60240008, // 0153 GETGBL R9 G8
- 0x5C280C00, // 0154 MOVE R10 R6
- 0x7C240200, // 0155 CALL R9 1
- 0x00201009, // 0156 ADD R8 R8 R9
- 0x58240042, // 0157 LDCONST R9 K66
- 0x7C1C0400, // 0158 CALL R7 2
- 0xB81E2E00, // 0159 GETNGBL R7 K23
- 0x881C0F43, // 015A GETMBR R7 R7 K67
- 0x781E0002, // 015B JMPF R7 #015F
- 0xA41E8800, // 015C IMPORT R7 K68
- 0x8C200F45, // 015D GETMET R8 R7 K69
- 0x7C200200, // 015E CALL R8 1
- 0x501C0000, // 015F LDBOOL R7 0 0
- 0x80040E00, // 0160 RET 1 R7
- 0x70020000, // 0161 JMP #0163
- 0xB0080000, // 0162 RAISE 2 R0 R0
- 0x80000000, // 0163 RET 0
+ 0x70020017, // 0148 JMP #0161
+ 0xAC140002, // 0149 CATCH R5 0 2
+ 0x70020014, // 014A JMP #0160
+ 0xB81E0400, // 014B GETNGBL R7 K2
+ 0x60200008, // 014C GETGBL R8 G8
+ 0x5C240A00, // 014D MOVE R9 R5
+ 0x7C200200, // 014E CALL R8 1
+ 0x00228008, // 014F ADD R8 K64 R8
+ 0x00201141, // 0150 ADD R8 R8 K65
+ 0x60240008, // 0151 GETGBL R9 G8
+ 0x5C280C00, // 0152 MOVE R10 R6
+ 0x7C240200, // 0153 CALL R9 1
+ 0x00201009, // 0154 ADD R8 R8 R9
+ 0x58240042, // 0155 LDCONST R9 K66
+ 0x7C1C0400, // 0156 CALL R7 2
+ 0xB81E2E00, // 0157 GETNGBL R7 K23
+ 0x881C0F43, // 0158 GETMBR R7 R7 K67
+ 0x781E0002, // 0159 JMPF R7 #015D
+ 0xA41E8800, // 015A IMPORT R7 K68
+ 0x8C200F45, // 015B GETMET R8 R7 K69
+ 0x7C200200, // 015C CALL R8 1
+ 0x501C0000, // 015D LDBOOL R7 0 0
+ 0x80040E00, // 015E RET 1 R7
+ 0x70020000, // 015F JMP #0161
+ 0xB0080000, // 0160 RAISE 2 R0 R0
+ 0x80000000, // 0161 RET 0
})
)
);
@@ -642,13 +640,13 @@ be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(x_flag_r),
/* K1 */ be_nested_str_weak(build_standalone_ack),
- /* K2 */ be_nested_str_weak(encode_frame),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(loglevel),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i_X20_X25s),
- /* K7 */ be_nested_str_weak(session),
- /* K8 */ be_nested_str_weak(local_session_id),
+ /* K2 */ be_nested_str_weak(local_session_id),
+ /* K3 */ be_nested_str_weak(encode_frame),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(loglevel),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i_X20_X25s),
+ /* K8 */ be_nested_str_weak(session),
/* K9 */ be_nested_str_weak(ack_message_counter),
/* K10 */ be_nested_str_weak(message_counter),
/* K11 */ be_nested_str_weak(_X7Breliable_X7D),
@@ -657,37 +655,39 @@ be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
}),
be_str_weak(send_simple_ack),
&be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
+ ( &(const binstruction[32]) { /* code */
0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x780E001A, // 0001 JMPF R3 #001D
+ 0x780E001C, // 0001 JMPF R3 #001F
0x8C0C0301, // 0002 GETMET R3 R1 K1
0x5C140400, // 0003 MOVE R5 R2
0x7C0C0400, // 0004 CALL R3 2
- 0x8C100702, // 0005 GETMET R4 R3 K2
- 0x7C100200, // 0006 CALL R4 1
- 0xB8120600, // 0007 GETNGBL R4 K3
- 0x8C100904, // 0008 GETMET R4 R4 K4
- 0x541A0003, // 0009 LDINT R6 4
- 0x7C100400, // 000A CALL R4 2
- 0x7812000D, // 000B JMPF R4 #001A
- 0xB8120A00, // 000C GETNGBL R4 K5
- 0x60140018, // 000D GETGBL R5 G24
- 0x58180006, // 000E LDCONST R6 K6
- 0x881C0707, // 000F GETMBR R7 R3 K7
- 0x881C0F08, // 0010 GETMBR R7 R7 K8
- 0x88200709, // 0011 GETMBR R8 R3 K9
- 0x8824070A, // 0012 GETMBR R9 R3 K10
- 0x780A0001, // 0013 JMPF R2 #0016
- 0x5828000B, // 0014 LDCONST R10 K11
- 0x70020000, // 0015 JMP #0017
- 0x5828000C, // 0016 LDCONST R10 K12
- 0x7C140A00, // 0017 CALL R5 5
- 0x541A0003, // 0018 LDINT R6 4
- 0x7C100400, // 0019 CALL R4 2
- 0x8C10010D, // 001A GETMET R4 R0 K13
- 0x5C180600, // 001B MOVE R6 R3
- 0x7C100400, // 001C CALL R4 2
- 0x80000000, // 001D RET 0
+ 0x88100302, // 0005 GETMBR R4 R1 K2
+ 0x900E0404, // 0006 SETMBR R3 K2 R4
+ 0x8C100703, // 0007 GETMET R4 R3 K3
+ 0x7C100200, // 0008 CALL R4 1
+ 0xB8120800, // 0009 GETNGBL R4 K4
+ 0x8C100905, // 000A GETMET R4 R4 K5
+ 0x541A0003, // 000B LDINT R6 4
+ 0x7C100400, // 000C CALL R4 2
+ 0x7812000D, // 000D JMPF R4 #001C
+ 0xB8120C00, // 000E GETNGBL R4 K6
+ 0x60140018, // 000F GETGBL R5 G24
+ 0x58180007, // 0010 LDCONST R6 K7
+ 0x881C0708, // 0011 GETMBR R7 R3 K8
+ 0x881C0F02, // 0012 GETMBR R7 R7 K2
+ 0x88200709, // 0013 GETMBR R8 R3 K9
+ 0x8824070A, // 0014 GETMBR R9 R3 K10
+ 0x780A0001, // 0015 JMPF R2 #0018
+ 0x5828000B, // 0016 LDCONST R10 K11
+ 0x70020000, // 0017 JMP #0019
+ 0x5828000C, // 0018 LDCONST R10 K12
+ 0x7C140A00, // 0019 CALL R5 5
+ 0x541A0003, // 001A LDINT R6 4
+ 0x7C100400, // 001B CALL R4 2
+ 0x8C10010D, // 001C GETMET R4 R0 K13
+ 0x5C180600, // 001D MOVE R6 R3
+ 0x7C100400, // 001E CALL R4 2
+ 0x80000000, // 001F RET 0
})
)
);
From 5decd012995047f90d8b54248ab7a8c9c974b257 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 22 Jun 2024 10:17:50 +0200
Subject: [PATCH 077/252] Matter add copy to Path (#21674)
---
.../src/embedded/Matter_Path_0.be | 8 +++
.../src/solidify/solidified_Matter_Path_0.h | 57 ++++++++++++++++---
2 files changed, 56 insertions(+), 9 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Path_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Path_0.be
index ff675c136..b9b81c5ce 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Path_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Path_0.be
@@ -36,6 +36,14 @@ class Matter_Path
var log # any string that needs to be logged (used to show significant parameters for commands)
var msg # reference of the original message
+ # copy from an aobject that has also endpoint/cluster/attribute variables
+ def copy(c)
+ self.reset()
+ self.endpoint = c.endpoint
+ self.cluster = c.cluster
+ self.attribute = c.attribute
+ end
+
# reset the object, allows reuse of the same object
def reset()
var n = nil # it's actually more compact code to load `nil` into a register and assign all members
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
index dddd45953..0fb2d42fd 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
@@ -123,6 +123,44 @@ be_local_closure(class_Matter_Path_tostring, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: copy
+********************************************************************/
+extern const bclass be_class_Matter_Path;
+be_local_closure(class_Matter_Path_copy, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Path,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(reset),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ }),
+ be_str_weak(copy),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x88080301, // 0002 GETMBR R2 R1 K1
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x88080302, // 0004 GETMBR R2 R1 K2
+ 0x90020402, // 0005 SETMBR R0 K2 R2
+ 0x88080303, // 0006 GETMBR R2 R1 K3
+ 0x90020602, // 0007 SETMBR R0 K3 R2
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: reset
********************************************************************/
@@ -172,18 +210,19 @@ be_local_closure(class_Matter_Path_reset, /* name */
be_local_class(Matter_Path,
8,
NULL,
- be_nested_map(10,
+ be_nested_map(11,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(attribute, -1), be_const_var(2) },
- { be_const_key_weak(log, 0), be_const_var(6) },
- { be_const_key_weak(fabric_filtered, 6), be_const_var(3) },
{ be_const_key_weak(command, -1), be_const_var(4) },
- { be_const_key_weak(msg, -1), be_const_var(7) },
- { be_const_key_weak(tostring, -1), be_const_closure(class_Matter_Path_tostring_closure) },
+ { be_const_key_weak(cluster, 5), be_const_var(1) },
+ { be_const_key_weak(attribute, -1), be_const_var(2) },
+ { be_const_key_weak(tostring, 9), be_const_closure(class_Matter_Path_tostring_closure) },
+ { be_const_key_weak(log, -1), be_const_var(6) },
+ { be_const_key_weak(status, 2), be_const_var(5) },
+ { be_const_key_weak(endpoint, -1), be_const_var(0) },
+ { be_const_key_weak(msg, 6), be_const_var(7) },
+ { be_const_key_weak(fabric_filtered, -1), be_const_var(3) },
+ { be_const_key_weak(copy, -1), be_const_closure(class_Matter_Path_copy_closure) },
{ be_const_key_weak(reset, -1), be_const_closure(class_Matter_Path_reset_closure) },
- { be_const_key_weak(cluster, -1), be_const_var(1) },
- { be_const_key_weak(endpoint, 3), be_const_var(0) },
- { be_const_key_weak(status, -1), be_const_var(5) },
})),
be_str_weak(Matter_Path)
);
From 3701a8cedc59d9fdf4a5763a662e8d8f765500fa Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 22 Jun 2024 12:54:08 +0200
Subject: [PATCH 078/252] Update changelogs
---
CHANGELOG.md | 12 ++++++++++--
RELEASENOTES.md | 10 ++++++++++
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3f855c210..18d3b5d35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
- Matter support for Rain sensor (#21633)
- Matter add internal debug option (#21634)
- Matter add Fan support (virtual only) (#21637)
+- Matter show event name in logs (#21649)
### Breaking Changed
@@ -18,11 +19,18 @@ All notable changes to this project will be documented in this file.
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line (#21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
-- NeoPool make compiler setting available by user_config_override.h
+- NeoPool make compiler setting available by `user_config_override.h` (#21645)
+- ESP32 MI32 improve parser (#21648)
+- ESP8266 platform update from 2024.01.01 to 2024.06.00 (#21668)
+- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 (#21668)
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
-- Matter CASE Sigma1 resumption mode for faster reconnection
+- Matter CASE Sigma1 resumption mode for faster reconnection (#21644)
+- Shutter MQTT on inverted shutter (#21663)
+- Scripter TCP server (#21660)
+- Matter TLV.U8 unsigned encoding (#21672)
+- Matter resumption final ack (#21673)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index fb5f57af5..f75cd7a0c 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -133,22 +133,32 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
- Matter add internal debug option [#21634](https://github.com/arendst/Tasmota/issues/21634)
- Matter add Fan support (virtual only) [#21637](https://github.com/arendst/Tasmota/issues/21637)
+- Matter show event name in logs [#21649](https://github.com/arendst/Tasmota/issues/21649)
### Changed
+- ESP8266 platform update from 2024.01.01 to 2024.06.00 [#21668](https://github.com/arendst/Tasmota/issues/21668)
+- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 [#21668](https://github.com/arendst/Tasmota/issues/21668)
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
- Allow receive or send using SerialBridge
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line [#21622](https://github.com/arendst/Tasmota/issues/21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod [#21628](https://github.com/arendst/Tasmota/issues/21628)
+- NeoPool make compiler setting available by `user_config_override.h` [#21645](https://github.com/arendst/Tasmota/issues/21645)
- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
+- ESP32 MI32 improve parser [#21648](https://github.com/arendst/Tasmota/issues/21648)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
- Matter support for Rain sensor [#21633](https://github.com/arendst/Tasmota/issues/21633)
### Fixed
+- Shutter MQTT on inverted shutter [#21663](https://github.com/arendst/Tasmota/issues/21663)
+- Scripter TCP server [#21660](https://github.com/arendst/Tasmota/issues/21660)
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
- Matter interverted attributes 0xFFF9 and 0xFFFB [#21636](https://github.com/arendst/Tasmota/issues/21636)
+- Matter CASE Sigma1 resumption mode for faster reconnection [#21644](https://github.com/arendst/Tasmota/issues/21644)
+- Matter TLV.U8 unsigned encoding [#21672](https://github.com/arendst/Tasmota/issues/21672)
+- Matter resumption final ack [#21673](https://github.com/arendst/Tasmota/issues/21673)
### Removed
From 0ea245805b0f31a7734546c2652c65cd275945ff Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sat, 22 Jun 2024 13:02:58 +0200
Subject: [PATCH 079/252] Remove entrys in some boards.json (#21676)
which maybe are wrong, since we don't know if the MCU is connected via CDC or USB-serial chip.
---
boards/esp32c3.json | 4 ----
boards/esp32c6.json | 4 ----
boards/esp32s3-opi_opi.json | 10 ----------
boards/esp32s3-opi_opi_120.json | 4 ----
boards/esp32s3-qio_opi.json | 10 ----------
boards/esp32s3-qio_opi_120.json | 4 ----
boards/esp32s3-qio_qspi.json | 10 ----------
boards/esp32s3-qio_qspi_120.json | 4 ----
8 files changed, 50 deletions(-)
diff --git a/boards/esp32c3.json b/boards/esp32c3.json
index 5f77c6990..0dd61b4f9 100644
--- a/boards/esp32c3.json
+++ b/boards/esp32c3.json
@@ -14,10 +14,6 @@
"bluetooth"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32c3.cfg"
},
"frameworks": [
diff --git a/boards/esp32c6.json b/boards/esp32c6.json
index dd5515743..c87d992a8 100644
--- a/boards/esp32c6.json
+++ b/boards/esp32c6.json
@@ -14,10 +14,6 @@
"bluetooth"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32c6.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-opi_opi.json b/boards/esp32s3-opi_opi.json
index 25541b95d..f8f99cc82 100644
--- a/boards/esp32s3-opi_opi.json
+++ b/boards/esp32s3-opi_opi.json
@@ -8,12 +8,6 @@
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "dout",
- "hwids": [
- [
- "0x303A",
- "0x1001"
- ]
- ],
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "partitions/esp32_partition_app2880k_fs320k.csv"
@@ -24,10 +18,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-opi_opi_120.json b/boards/esp32s3-opi_opi_120.json
index ab9ef01fb..771dc90c0 100644
--- a/boards/esp32s3-opi_opi_120.json
+++ b/boards/esp32s3-opi_opi_120.json
@@ -20,10 +20,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-qio_opi.json b/boards/esp32s3-qio_opi.json
index c005158db..6f4754ead 100644
--- a/boards/esp32s3-qio_opi.json
+++ b/boards/esp32s3-qio_opi.json
@@ -8,12 +8,6 @@
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
- "hwids": [
- [
- "0x303A",
- "0x1001"
- ]
- ],
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "partitions/esp32_partition_app2880k_fs320k.csv"
@@ -24,10 +18,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-qio_opi_120.json b/boards/esp32s3-qio_opi_120.json
index 42589ce05..0a4704a92 100644
--- a/boards/esp32s3-qio_opi_120.json
+++ b/boards/esp32s3-qio_opi_120.json
@@ -20,10 +20,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-qio_qspi.json b/boards/esp32s3-qio_qspi.json
index eb834f0c2..6a1e38906 100644
--- a/boards/esp32s3-qio_qspi.json
+++ b/boards/esp32s3-qio_qspi.json
@@ -8,12 +8,6 @@
"f_cpu": "240000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
- "hwids": [
- [
- "0x303A",
- "0x1001"
- ]
- ],
"mcu": "esp32s3",
"variant": "esp32s3",
"partitions": "partitions/esp32_partition_app2880k_fs320k.csv"
@@ -24,10 +18,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
diff --git a/boards/esp32s3-qio_qspi_120.json b/boards/esp32s3-qio_qspi_120.json
index b1d89db91..1c1968916 100644
--- a/boards/esp32s3-qio_qspi_120.json
+++ b/boards/esp32s3-qio_qspi_120.json
@@ -20,10 +20,6 @@
"ethernet"
],
"debug": {
- "default_tool": "esp-builtin",
- "onboard_tools": [
- "esp-builtin"
- ],
"openocd_target": "esp32s3.cfg"
},
"frameworks": [
From c96a48b9e10357b07c7e9a4bab6c00fdf633ff4c Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 22 Jun 2024 13:07:49 +0200
Subject: [PATCH 080/252] Matter refactor reading of multiple attributes to
reduce memory pressure (#21675)
---
CHANGELOG.md | 2 +
.../berry_matter/src/be_matter_module.c | 6 +-
.../berry_matter/src/embedded/Matter_IM.be | 554 +-
.../src/embedded/Matter_IM_Message.be | 177 +-
.../src/embedded/Matter_Path_1_Generator.be | 144 +-
.../src/embedded/Matter_zz_Device.be | 56 +-
.../src/solidify/solidified_Matter_IM.h | 5021 ++++++++---------
.../solidify/solidified_Matter_IM_Message.h | 803 +--
.../solidified_Matter_Path_1_Generator.h | 939 +--
.../solidify/solidified_Matter_zz_Device.h | 180 +-
10 files changed, 3916 insertions(+), 3966 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18d3b5d35..44c81e329 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,10 +19,12 @@ All notable changes to this project will be documented in this file.
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line (#21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
+- NeoPool make compiler setting available by user_config_override.h
- NeoPool make compiler setting available by `user_config_override.h` (#21645)
- ESP32 MI32 improve parser (#21648)
- ESP8266 platform update from 2024.01.01 to 2024.06.00 (#21668)
- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 (#21668)
+- Matter refactor reading of multiple attributes to reduce memory pressure
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 673280191..e020ecfac 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -458,9 +458,9 @@ module matter (scope: global, strings: weak) {
IM_Status, class(be_class_Matter_IM_Status)
IM_InvokeResponse, class(be_class_Matter_IM_InvokeResponse)
IM_WriteResponse, class(be_class_Matter_IM_WriteResponse)
- IM_ReportData, class(be_class_Matter_IM_ReportData)
- IM_ReportDataSubscribed, class(be_class_Matter_IM_ReportDataSubscribed)
- IM_SubscribeResponse, class(be_class_Matter_IM_SubscribeResponse)
+ IM_ReportData_Pull, class(be_class_Matter_IM_ReportData_Pull)
+ IM_ReportDataSubscribed_Pull, class(be_class_Matter_IM_ReportDataSubscribed_Pull)
+ IM_SubscribeResponse_Pull, class(be_class_Matter_IM_SubscribeResponse_Pull)
IM_SubscribedHeartbeat, class(be_class_Matter_IM_SubscribedHeartbeat)
IM_Subscription, class(be_class_Matter_IM_Subscription)
IM_Subscription_Shop, class(be_class_Matter_IM_Subscription_Shop)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 007f68ad5..cff1234ab 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -75,14 +75,16 @@ class Matter_IM
return self.process_status_response(msg, val)
elif opcode == 0x02 # Read Request
# self.send_ack_now(msg) # to improve latency, we don't automatically Ack on invoke request
- return self.process_read_request(msg, val)
+ return self.process_read_request_pull(msg, val)
elif opcode == 0x03 # Subscribe Request
self.send_ack_now(msg)
return self.subscribe_request(msg, val)
elif opcode == 0x04 # Subscribe Response
- return self.subscribe_response(msg, val)
+ # return self.subscribe_response(msg, val)
+ return false # not implemented for Matter device
elif opcode == 0x05 # Report Data
- return self.report_data(msg, val)
+ # return self.report_data(msg, val)
+ return false # not implemented for Matter device
elif opcode == 0x06 # Write Request
self.send_ack_now(msg)
return self.process_write_request(msg, val)
@@ -92,7 +94,8 @@ class Matter_IM
# self.send_ack_now(msg) # to improve latency, we don't automatically Ack on invoke request
return self.process_invoke_request(msg, val)
elif opcode == 0x09 # Invoke Response
- return self.process_invoke_response(msg, val)
+ # return self.process_invoke_response(msg, val)
+ return false # not implemented for Matter device
elif opcode == 0x0A # Timed Request
return self.process_timed_request(msg, val)
end
@@ -222,210 +225,83 @@ class Matter_IM
end
#############################################################
- # Inner code shared between read_attributes and subscribe_request
+ # read_single_attribute_to_bytes
#
- # query: `ReadRequestMessage` or `SubscribeRequestMessage`
- def _inner_process_read_request(session, query, msg, no_log)
+ # Takes a concrete context (endpoint/cluster/attribute)
+ # and a plugin reference, return either the bytes object
+ # or an array of bytes() if the response does not fit in
+ # a single packet
+ #
+ # `pi` is the plugin object
+ # if `pi` is nil, just report the status for ctx.status
+ # `ctx` is the context with endpoint/cluster/attribute, `cts.status` is non-nil for direct request and contains the error message to show
+ # `session` is the current session
+ # `force_log` is false, then don't log normal values - typically used to not log wildcard requests
+ #
+ # return `true` if
+ def read_single_attribute_to_bytes(pi, ctx, session, force_log)
+ var TLV = matter.TLV
+ var attr_name
+ if tasmota.loglevel(3)
+ attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
+ attr_name = attr_name ? " (" + attr_name + ")" : ""
+ end
- ### Inner function to be iterated upon
- # ret is the ReportDataMessage list to send back
- # ctx is the context with endpoint/cluster/attribute
- # direct is true if error is reported, false if error is silently ignored
- #
- # if `pi` is nil, just report the status for ctx.status
- #
- # should return true if answered, false if passing to next handler
- def read_single_attribute(ret, pi, ctx, direct)
- var TLV = matter.TLV
- var attr_name
- if tasmota.loglevel(3)
- attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- attr_name = attr_name ? " (" + attr_name + ")" : ""
+ # Special case to report unsupported item, if pi==nil
+ var direct = (ctx.status != nil) # memorize if the request is 'direct', ctx.status may be changed later
+ var res
+ var ret_raw_or_list # contains either a bytes() buffer to append, or a list of bytes(), or nil
+ if (pi != nil)
+ res = pi.read_attribute(session, ctx, self.tlv_solo)
+ end
+
+ # dispatch depending on the result of the `read_attribute` method
+ if res != nil # we got an actual value
+ # get the value with anonymous tag before it is tagged, for logging
+ var res_str = ""
+ if tasmota.loglevel(3) && force_log
+ res_str = res.to_str_val()
end
- # Special case to report unsupported item, if pi==nil
- ctx.status = nil # reset status, just in case
- var res = (pi != nil) ? pi.read_attribute(session, ctx, self.tlv_solo) : nil
- var found = true # stop expansion since we have a value
- var a1_raw_or_list # contains either a bytes() buffer to append, or a list of bytes(), or nil
- if res != nil
- var res_str = ""
- if !no_log
- res_str = res.to_str_val() # get the value with anonymous tag before it is tagged, for logging
- end
+ # check if too big to encode as a single packet, only for list and array
+ if (res.is_list || res.is_array) && (res.encode_len() > matter.IM_ReportData_Pull.MAX_MESSAGE)
+ ret_raw_or_list = [] # we return a list of block
+ var a1_raw = bytes(48)
+ var empty_list = TLV.Matter_TLV_array()
+ self.attributedata2raw(a1_raw, ctx, empty_list, false)
+ ret_raw_or_list.push(a1_raw)
- # check if too big to encode as a single packet
- if (res.is_list || res.is_array) && res.encode_len() > matter.IM_ReportData.MAX_MESSAGE
- # log(f"MTR: >>>>>> long response", 3)
- a1_raw_or_list = [] # we return a list of block
- var a1_raw = bytes(48)
- var empty_list = TLV.Matter_TLV_array()
- self.attributedata2raw(a1_raw, ctx, empty_list, false)
- a1_raw_or_list.push(a1_raw)
- # log(f"MTR: >>>>>> long response global DELETE {a1_raw.tohex()}", 3)
-
- for elt:res.val
- a1_raw = bytes(48)
- # var list_item = TLV.Matter_TLV_array()
- # list_item.val.push(elt)
- self.attributedata2raw(a1_raw, ctx, elt, true #- add ListIndex:null -#)
- # log(f"MTR: >>>>>> long response global ADD {a1_raw.tohex()}", 3)
- a1_raw_or_list.push(a1_raw)
- end
- # log(f"MTR: >>>>>> long response global {a1_raw_or_list}", 3)
- else
- # normal encoding
- # encode directly raw bytes()
- a1_raw_or_list = bytes(48) # pre-reserve 48 bytes
- self.attributedata2raw(a1_raw_or_list, ctx, res)
- end
-
- if tasmota.loglevel(3) && !no_log
- log(f"MTR: >Read_Attr ({session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
- end
- elif ctx.status != nil
- if direct # we report an error only if a concrete direct read, not with wildcards
- # encode directly raw bytes()
- a1_raw_or_list = bytes(48) # pre-reserve 48 bytes
- self.attributestatus2raw(a1_raw_or_list, ctx, ctx.status)
-
- if tasmota.loglevel(3)
- log(format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3)
- end
+ for elt : res.val
+ a1_raw = bytes(48)
+ # var list_item = TLV.Matter_TLV_array()
+ # list_item.val.push(elt)
+ self.attributedata2raw(a1_raw, ctx, elt, true #- add ListIndex:null -#)
+ ret_raw_or_list.push(a1_raw)
end
else
- if tasmota.loglevel(3) && !no_log
- log(format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3)
- end
- # ignore if content is nil and status is undefined
- if direct
- found = false
- end
+ # normal encoding
+ # encode directly raw bytes()
+ ret_raw_or_list = bytes(48) # pre-reserve 48 bytes
+ self.attributedata2raw(ret_raw_or_list, ctx, res)
end
- # a1_raw_or_list if either nil, bytes(), of list(bytes())
- var idx = isinstance(a1_raw_or_list, list) ? 0 : nil # index in list, or nil if non-list
- while a1_raw_or_list != nil
- var elt = (idx == nil) ? a1_raw_or_list : a1_raw_or_list[idx] # dereference
-
- if size(ret.attribute_reports) == 0
- ret.attribute_reports.push(elt) # push raw binary instead of a TLV
- else # already blocks present, see if we can add to the latest, or need to create a new block
- var last_block = ret.attribute_reports[-1]
- if size(last_block) + size(elt) <= matter.IM_ReportData.MAX_MESSAGE
- # add to last block
- last_block .. elt
- else
- ret.attribute_reports.push(elt) # push raw binary instead of a TLV
- end
- end
-
- if idx == nil
- a1_raw_or_list = nil # stop loop
- else
- idx += 1
- if idx >= size(a1_raw_or_list)
- a1_raw_or_list = nil # stop loop
- end
- end
+ if tasmota.loglevel(3) && force_log
+ log(f"MTR: >Read_Attr ({session.local_session_id:6i}) {ctx}{attr_name} - {res_str}", 3)
end
+ # below, we didn't have a response from `read_attribute`, check if ctx.status contains some information
+ elif ctx.status != nil
+ if direct # we report an error only if a concrete direct read, not with wildcards
+ # encode directly raw bytes()
+ ret_raw_or_list = bytes(48) # pre-reserve 48 bytes
+ self.attributestatus2raw(ret_raw_or_list, ctx, ctx.status)
- # check if we still have enough room in last block
- # if a1_raw_or_list # do we have bytes to add, and it's not zero size
- # if size(ret.attribute_reports) == 0
- # ret.attribute_reports.push(a1_raw_or_list) # push raw binary instead of a TLV
- # else # already blocks present, see if we can add to the latest, or need to create a new block
- # var last_block = ret.attribute_reports[-1]
- # if size(last_block) + size(a1_raw_or_list) <= matter.IM_ReportData.MAX_MESSAGE
- # # add to last block
- # last_block .. a1_raw_or_list
- # else
- # ret.attribute_reports.push(a1_raw_or_list) # push raw binary instead of a TLV
- # end
- # end
- # end
-
- return found # return true if we had a match
- end
-
- var endpoints = self.device.get_active_endpoints()
- # structure is `ReadRequestMessage` 10.6.2 p.558
- var ctx = matter.Path()
- ctx.msg = msg
- var node_id = (msg != nil) ? msg.get_node_id() : nil
-
- # prepare the response
- var ret = matter.ReportDataMessage()
- # ret.suppress_response = true
- ret.attribute_reports = []
-
- for q:query.attributes_requests
- # need to do expansion here
- ctx.endpoint = q.endpoint
- ctx.cluster = q.cluster
- ctx.attribute = q.attribute
- ctx.fabric_filtered = query.fabric_filtered
- ctx.status = matter.UNSUPPORTED_ATTRIBUTE #default error if returned `nil`
-
- # expand endpoint
- if ctx.endpoint == nil || ctx.cluster == nil || ctx.attribute == nil
- # we need expansion, log first
if tasmota.loglevel(3)
- if ctx.cluster != nil && ctx.attribute != nil
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
- else
- log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
- end
- end
-
- end
-
- # implement concrete expansion
- self.device.process_attribute_expansion(ctx,
- / pi, ctx, direct -> read_single_attribute(ret, pi, ctx, direct)
- )
- end
-
- # tasmota.log(f">>>: event_1")
- var event_requests = query.event_requests
- var event_filters = query.event_filters
- var event_no_min = nil # do we have a filter for minimum event_no (int64 or nil)
- if event_requests # if not `nil` and not empty list
- # read event minimum
- if event_filters
- for filter: event_filters # filter is an instance of `EventFilterIB`
- tasmota.log(f"MTR: EventFilter {filter=} {node_id=}", 3)
- var filter_node = int64.toint64(filter.node) # nil or int64
- if filter_node # there is a filter on node-id
- if filter.node.tobytes() != node_id # the node id doesn't match
- tasmota.log(f"MTR: node_id filter {filter_node.tobytes().tohex()} doesn't match {node_id.tohex()}")
- continue
- end
- # specified minimum value
- var new_event_no_min = int64.toint64(filter.event_min)
- if (event_no_min != nil) || (event_no_min < new_event_no_min)
- event_no_min = new_event_no_min
- end
- end
+ log(format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3)
end
end
- # event_no_min is either `nil` or has an `int64` value
-
- ret.event_reports = []
- for q: event_requests
- # need to do expansion here
- ctx.endpoint = q.endpoint
- ctx.cluster = q.cluster
- ctx.attribute = q.event
- #TODO
- tasmota.log(f"MTR: >Read_Event({session.local_session_id:%6i}) {ctx}", 3)
- end
end
- # tasmota.log("MTR: ReportDataMessage=" + str(ret), 3)
- # tasmota.log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
- return ret
+ return ret_raw_or_list
end
#############################################################
@@ -713,20 +589,75 @@ class Matter_IM
end
#############################################################
- # process IM 0x02 Read Request
+ # process IM 0x02 Read Request (Pull Mode)
#
# val is the TLV structure
#
+ # This version lazily reads attributes when building the response packets
+ #
# returns `true` if processed, `false` if silently ignored,
# or raises an exception
- def process_read_request(msg, val)
- matter.profiler.log("read_request_start")
+ def process_read_request_pull(msg, val)
+ matter.profiler.log("read_request_start_pull")
var query = matter.ReadRequestMessage().from_TLV(val)
+ var generator_or_arr = self.process_read_or_subscribe_request_pull(query, msg)
+
+ self.send_report_data_pull(msg, generator_or_arr) # pack into a response structure that will read attributes when expansion is triggered
+
+ return true
+ end
+
+
+ #############################################################
+ # process_read_or_subscribe_request_pull
+ #
+ # This version lazily reads attributes when building the response packets
+ #
+ # returns `true` if processed, `false` if silently ignored,
+ # or raises an exception
+ def process_read_or_subscribe_request_pull(query, msg)
if query.attributes_requests != nil
- var ret = self._inner_process_read_request(msg.session, query, msg)
- self.send_report_data(msg, ret)
+ var generator_or_arr # single path generator (common case) or array of generators
+ var node_id = (msg != nil) ? msg.get_node_id() : nil
+
+ # structure is `ReadRequestMessage` 10.6.2 p.558
+ if size(query.attributes_requests) > 1
+ generator_or_arr = []
+ end
+
+ for q : query.attributes_requests
+ var gen = matter.PathGenerator(self.device)
+ gen.start(q.endpoint, q.cluster, q.attribute, query.fabric_filtered)
+
+ if size(query.attributes_requests) > 1
+ generator_or_arr.push(gen)
+ else
+ generator_or_arr = gen
+ end
+
+ if tasmota.loglevel(3)
+ # log read request if it contains expansion (wildcard), single reads are logged at concrete time
+ if q.endpoint == nil || q.cluster == nil || q.attribute == nil
+ # we need expansion, log first
+ var ctx = matter.Path()
+ ctx.endpoint = q.endpoint
+ ctx.cluster = q.cluster
+ ctx.attribute = q.attribute
+ ctx.fabric_filtered = query.fabric_filtered
+ var ctx_str = str(ctx)
+
+ if q.cluster != nil && q.attribute != nil
+ var attr_name = matter.get_attribute_name(q.cluster, q.attribute)
+ log(format("MTR: >Read_Attr (%6i) %s", msg.session.local_session_id, ctx_str + (attr_name ? " (" + attr_name + ")" : "")), 3)
+ else
+ log(format("MTR: >Read_Attr (%6i) %s", msg.session.local_session_id, ctx_str), 3)
+ end
+ end
+ end
+ end
+ return generator_or_arr
end
- return true # always consider succesful even if empty
+ return nil
end
#############################################################
@@ -755,13 +686,13 @@ class Matter_IM
if res != nil
# check if the payload is a complex structure and too long to fit in a single response packet
- if (res.is_list || res.is_array) && (res.encode_len() > matter.IM_ReportData.MAX_MESSAGE)
+ if (res.is_list || res.is_array) && (res.encode_len() > matter.IM_ReportData_Pull.MAX_MESSAGE)
# revert to standard
# the attribute will be read again, but it's hard to avoid it
res = nil # indicated to GC that we don't need it again
log(f"MTR: Response to big, revert to non-solo", 3)
var val = matter.TLV.parse(msg.raw, msg.app_payload_idx)
- return self.process_read_request(msg, val)
+ return self.process_read_request_pull(msg, val)
end
# encode directly raw bytes()
raw = bytes(48) # pre-reserve 48 bytes
@@ -850,6 +781,7 @@ class Matter_IM
var query = matter.SubscribeRequestMessage().from_TLV(val)
if !query.keep_subscriptions
+ # log(f"MTR: remove all subscriptions for session {msg.session}", 3)
self.subs_shop.remove_by_session(msg.session) # if `keep_subscriptions`, kill all subscriptions from current session
end
@@ -858,26 +790,27 @@ class Matter_IM
var sub = self.subs_shop.new_subscription(msg.session, query)
# expand a string with all attributes requested
- var attr_req = []
- var ctx = matter.Path()
- ctx.msg = msg
- for q:query.attributes_requests
- ctx.endpoint = q.endpoint
- ctx.cluster = q.cluster
- ctx.attribute = q.attribute
- attr_req.push(str(ctx))
+ if tasmota.loglevel(3)
+ var attr_req = []
+ var ctx = matter.Path()
+ ctx.msg = msg
+ for q:query.attributes_requests
+ ctx.endpoint = q.endpoint
+ ctx.cluster = q.cluster
+ ctx.attribute = q.attribute
+ attr_req.push(str(ctx))
+ end
+ log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s attr_req=%s event_req=%s",
+ msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0,
+ sub.subscription_id, query.fabric_filtered,
+ query.attributes_requests != nil ? size(query.attributes_requests) : "-",
+ query.event_requests != nil ? size(query.event_requests) : "-"), 3)
end
- log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s attr_req=%s event_req=%s",
- msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0,
- sub.subscription_id, query.fabric_filtered,
- query.attributes_requests != nil ? size(query.attributes_requests) : "-",
- query.event_requests != nil ? size(query.event_requests) : "-"), 3)
- var ret = self._inner_process_read_request(msg.session, query, msg, !self.device.debug #-log only if debug enabled-#)
- # ret is of type `Matter_ReportDataMessage`
- ret.subscription_id = sub.subscription_id # enrich with subscription id TODO
- self.send_subscribe_response(msg, ret, sub)
+ var generator_or_arr = self.process_read_or_subscribe_request_pull(query, msg)
+ self.send_subscribe_response_pull(msg, generator_or_arr, sub) # pack into a response structure that will read attributes when expansion is triggered
return true
+
end
#############################################################
@@ -1030,19 +963,53 @@ class Matter_IM
#############################################################
# process IM 0x04 Subscribe Response
#
- def subscribe_response(msg, val)
- var query = matter.SubscribeResponseMessage().from_TLV(val)
- # log("MTR: received SubscribeResponsetMessage=" + str(query), 4)
- return false
- end
+ # def subscribe_response(msg, val)
+ # var query = matter.SubscribeResponseMessage().from_TLV(val)
+ # # log("MTR: received SubscribeResponsetMessage=" + str(query), 4)
+ # return false
+ # end
#############################################################
# process IM 0x05 ReportData
#
- def report_data(msg, val)
- var query = matter.ReportDataMessage().from_TLV(val)
- # log("MTR: received ReportDataMessage=" + str(query), 4)
- return false
+ # def report_data(msg, val)
+ # var query = matter.ReportDataMessage().from_TLV(val)
+ # # log("MTR: received ReportDataMessage=" + str(query), 4)
+ # return false
+ # end
+
+
+ #############################################################
+ # write_single_attribute_status_to_bytes
+ #
+ # Takes a concrete context (endpoint/cluster/attribute)
+ # and a status, and completes the WriteResponseMessage (in ret)
+ #
+ # `ret` is the array WriteResponseMessage.write_responses
+ # `ctx` is the context with endpoint/cluster/attribute, `cts.status` is non-nil for direct request and contains the error message to show
+ # `write_data` the data written, only for logging
+ #
+ def write_single_attribute_status_to_bytes(ret, ctx, write_data)
+ var TLV = matter.TLV
+ var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
+ attr_name = attr_name ? " (" + attr_name + ")" : ""
+
+ # output only if there is a status
+ if ctx.status != nil
+ var a1 = matter.AttributeStatusIB()
+ a1.path = matter.AttributePathIB()
+ a1.status = matter.StatusIB()
+ a1.path.endpoint = ctx.endpoint
+ a1.path.cluster = ctx.cluster
+ a1.path.attribute = ctx.attribute
+ a1.status.status = ctx.status
+
+ ret.write_responses.push(a1)
+ log(format("MTR: >Write_Attr%s%s - %s STATUS: 0x%02X %s", str(ctx), attr_name, write_data, ctx.status, ctx.status == matter.SUCCESS ? "SUCCESS" : ""), (ctx.endpoint != 0) ? 2 : 3)
+ elif tasmota.loglevel(3)
+ log(format("MTR: >Write_Attr%s%s - IGNORED", str(ctx), attr_name), 3)
+ # ignore if content is nil and status is undefined
+ end
end
#############################################################
@@ -1051,93 +1018,59 @@ class Matter_IM
def process_write_request(msg, val)
var query = matter.WriteRequestMessage().from_TLV(val)
# log("MTR: received WriteRequestMessage=" + str(query), 3)
+ var ctx_log = matter.Path() # pre-allocate object for logging
var suppress_response = query.suppress_response
# var timed_request = query.timed_request # TODO not supported
# var more_chunked_messages = query.more_chunked_messages # TODO not supported
- var endpoints = self.device.get_active_endpoints()
-
- ### Inner function to be iterated upon
- # ret is the ReportDataMessage list to send back
- # ctx is the context with endpoint/cluster/attribute
- # val is the TLV object containing the value
- # direct is true if error is reported, false if error is silently ignored
- #
- # if `pi` is nil, just report the status for ctx.status
- #
- # should return true if answered, false if failed
- def write_single_attribute(ret, pi, ctx, write_data, direct)
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- attr_name = attr_name ? " (" + attr_name + ")" : ""
- # log(format("MTR: Read Attribute " + str(ctx) + (attr_name ? " (" + attr_name + ")" : ""), 2)
- # Special case to report unsupported item, if pi==nil
- ctx.status = matter.UNSUPPORTED_WRITE
- var res = (pi != nil) ? pi.write_attribute(msg.session, ctx, write_data) : nil
- if res ctx.status = matter.SUCCESS end # if the cb returns true, the request was processed
- if ctx.status != nil
- if direct
- var a1 = matter.AttributeStatusIB()
- a1.path = matter.AttributePathIB()
- a1.status = matter.StatusIB()
- a1.path.endpoint = ctx.endpoint
- a1.path.cluster = ctx.cluster
- a1.path.attribute = ctx.attribute
- a1.status.status = ctx.status
-
- ret.write_responses.push(a1)
- log(format("MTR: Write_Attr %s%s - STATUS: 0x%02X %s", str(ctx), attr_name, ctx.status, ctx.status == matter.SUCCESS ? "SUCCESS" : ""), (ctx.endpoint != 0) ? 2 : 3)
- return true
- end
- else
- log(format("MTR: Write_Attr %s%s - IGNORED", str(ctx), attr_name), 3)
- # ignore if content is nil and status is undefined
- end
- end
-
- # structure is `ReadRequestMessage` 10.6.2 p.558
- # log("MTR: IM:write_request processing start", 4)
- var ctx = matter.Path()
- ctx.msg = msg
-
if query.write_requests != nil
# prepare the response
var ret = matter.WriteResponseMessage()
# ret.suppress_response = true
ret.write_responses = []
+ var generator = matter.PathGenerator(self.device)
for q:query.write_requests # q is AttributeDataIB
- var path = q.path
+ var write_path = q.path
var write_data = q.data
- # need to do expansion here
- ctx.endpoint = path.endpoint
- ctx.cluster = path.cluster
- ctx.attribute = path.attribute
- ctx.status = matter.UNSUPPORTED_ATTRIBUTE #default error if returned `nil`
+ ctx_log.copy(write_path) # copy endpoint/cluster/attribute in ctx_log for pretty logging
# return an error if the expansion is illegal
- if ctx.cluster == nil || ctx.attribute == nil
- # force INVALID_ACTION reporting
- ctx.status = matter.INVALID_ACTION
- write_single_attribute(ret, nil, ctx, nil, true)
+ if write_path.cluster == nil || write_path.attribute == nil
+ ctx_log.status = matter.INVALID_ACTION
+ self.write_single_attribute_status_to_bytes(ret, ctx_log, nil)
continue
end
- # expand endpoint
- if tasmota.loglevel(3) && (ctx.endpoint == nil)
- # we need expansion, log first
- var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
- log("MTR: Write_Attr " + str(ctx) + (attr_name ? " (" + attr_name + ")" : ""), 3)
+ # expansion is only allowed on endpoint number, log if it happens
+ if (write_path.endpoint == nil) && tasmota.loglevel(3)
+ var attr_name = matter.get_attribute_name(write_path.cluster, write_path.attribute)
+ log("MTR: Write_Attr " + str(ctx_log) + (attr_name ? " (" + attr_name + ")" : ""), 3)
end
- # implement concrete expansion
- self.device.process_attribute_expansion(ctx,
- / pi, ctx, direct -> write_single_attribute(ret, pi, ctx, write_data, direct)
- )
- end
+ generator.start(write_path.endpoint, write_path.cluster, write_path.attribute)
+ var direct = generator.is_direct()
+ var ctx
+ while (ctx := generator.next())
+ ctx.msg = msg # enrich with message
+ if ctx.status != nil # no match, return error because it was direct
+ ctx.status = nil # remove status to silence output
+ self.write_single_attribute_status_to_bytes(ret, ctx, write_data)
- # log("MTR: ReportWriteMessage=" + str(ret), 4)
- # log("MTR: ReportWriteMessageTLV=" + str(ret.to_TLV()), 3)
+ else # ctx.status is nil, it exists
+
+ var pi = generator.get_pi()
+ ctx.status = matter.UNSUPPORTED_WRITE
+ # ctx.status = matter.UNSUPPORTED_WRITE
+ var res = (pi != nil) ? pi.write_attribute(msg.session, ctx, write_data) : nil
+ if (res) ctx.status = matter.SUCCESS end # if the cb returns true, the request was processed
+
+ self.write_single_attribute_status_to_bytes(ret, ctx, write_data)
+ end
+ end
+
+ end
# send the reponse that may need to be chunked if too large to fit in a single UDP message
if !suppress_response
@@ -1159,11 +1092,11 @@ class Matter_IM
#############################################################
# process IM 0x09 Invoke Response
#
- def process_invoke_response(msg, val)
- var query = matter.InvokeResponseMessage().from_TLV(val)
- # log("MTR: received InvokeResponseMessage=" + str(query), 4)
- return false
- end
+ # def process_invoke_response(msg, val)
+ # var query = matter.InvokeResponseMessage().from_TLV(val)
+ # # log("MTR: received InvokeResponseMessage=" + str(query), 4)
+ # return false
+ # end
#############################################################
# process IM 0x0A Timed Request
@@ -1202,11 +1135,9 @@ class Matter_IM
log(format("MTR: >>: Matter_IM_ReportData_Pull send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
if !self.ready return false end
- var resp = self.resp # response frame object
- var data = self.data # TLV data of the response (if any)
- var was_chunked = data.more_chunked_messages # is this following a chunked packet?
+ var resp = self.resp # response frame object
+ var data = (self.data != nil) ? self.data : bytes() # bytes() object of the TLV encoded response
+ self.data = nil # we remove the data that was saved for next packet
- # the message were grouped by right-sized binaries upfront, we just need to send one block at time
- var elements = 1 # number of elements added
+ var not_full = true # marker used to exit imbricated loops
- # log(format("MTR: exch=%i elements=%i msg_sz=%i total=%i", self.get_exchangeid(), elements, msg_sz, sz_attribute_reports), 3)
- var next_elemnts
- if data.attribute_reports != nil
- next_elemnts = data.attribute_reports[elements .. ]
- data.attribute_reports = data.attribute_reports[0 .. elements - 1]
- data.more_chunked_messages = (size(next_elemnts) > 0)
- else
- data.more_chunked_messages = false
- end
- if was_chunked
- # log(format("MTR: .Read_Attr next_chunk exch=%i", self.get_exchangeid()), 4)
- end
- if data.more_chunked_messages
- if !was_chunked
- # log(format("MTR: .Read_Attr first_chunk exch=%i", self.get_exchangeid()), 4)
+ while not_full && (self.generator_or_arr != nil)
+ # get the current generator (first element of list or single object)
+ var current_generator = isinstance(self.generator_or_arr, list) ? self.generator_or_arr[0] : self.generator_or_arr
+ # log(f">>>: ReportData_Pull send_im start {current_generator.path_in_endpoint}/{current_generator.path_in_cluster}/{current_generator.path_in_attribute}",3)
+
+ var ctx
+ while not_full && (ctx := current_generator.next()) # 'not_full' must be first to avoid removing an item when we don't want
+ # log(f">>>: ReportData_Pull {ctx=}", 3)
+ var debug = responder.device.debug
+ var force_log = current_generator.is_direct() || debug
+ var elt_bytes = responder.im.read_single_attribute_to_bytes(current_generator.get_pi(), ctx, resp.session, force_log) # TODO adapt no_log
+ if (elt_bytes == nil) continue end # silently ignored, iterate to next
+ # check if we overflow
+ if (size(data) + size(elt_bytes) > self.MAX_MESSAGE)
+ self.data = elt_bytes # save response for later
+ not_full = false
+ else
+ data.append(elt_bytes) # append response since we have enough room
+ end
end
- # log("MTR: sending TLV" + str(data), 4)
+
+ # if we are here, then we exhausted the current generator, and we need to move to the next one
+ if not_full
+ # log(f">>>: ReportData_Pull remove current generator",3)
+ if isinstance(self.generator_or_arr, list)
+ self.generator_or_arr.remove(0) # remove first element
+ if size(self.generator_or_arr) == 0
+ self.generator_or_arr = nil # empty array so we put nil
+ end
+ else
+ self.generator_or_arr = nil # there was a single entry, so replace with nil
+ end
+ end
+
end
+ # prepare the response
+ var ret = matter.ReportDataMessage()
+ ret.subscription_id = self.subscription_id
+ ret.suppress_response = self.suppress_response
+ # ret.suppress_response = true
+ ret.attribute_reports = [data]
+ ret.more_chunked_messages = (self.data != nil) # we got more data to send
+
# print(">>>>> send elements before encode")
- var raw_tlv = self.data.to_TLV()
+ var raw_tlv = ret.to_TLV()
# print(">>>>> send elements before encode 2")
var encoded_tlv = raw_tlv.tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
# print(">>>>> send elements before encode 3")
@@ -217,37 +255,49 @@ class Matter_IM_ReportData : Matter_IM_Message
responder.send_response_frame(resp)
self.last_counter = resp.message_counter
- if next_elemnts != nil && size(next_elemnts) > 0
- data.attribute_reports = next_elemnts
- # log(format("MTR: to_be_sent_later size=%i exch=%i", size(data.attribute_reports), resp.exchange_id), 4)
+ if ret.more_chunked_messages # we have more to send
self.ready = false # wait for Status Report before continuing sending
# keep alive
else
+ # log(f">>>: ReportData_Pull finished",3)
self.finish = true # finished, remove
end
+
end
end
-matter.IM_ReportData = Matter_IM_ReportData
-
+matter.IM_ReportData_Pull = Matter_IM_ReportData_Pull
#################################################################################
-# Matter_IM_ReportDataSubscribed
+# Matter_IM_ReportDataSubscribed_Pull
#
# Main difference is that we are the spontaneous initiator
#################################################################################
-class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
+class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
+ # inherited from Matter_IM_Message
+ # static var MSG_TIMEOUT = 5000 # 5s
+ # var expiration # expiration time for the reporting
+ # var resp # response Frame object
+ # var ready # bool: ready to send (true) or wait (false)
+ # var finish # if true, the message is removed from the queue
+ # var data # TLV data of the response (if any)
+ # var last_counter # counter value of last sent packet (to match ack)
+ # inherited from Matter_IM_ReportData_Pull
+ # static var MAX_MESSAGE = 1200 # max bytes size for a single TLV worklaod
+ # var generator_or_arr # a PathGenerator or an array of PathGenerator
+ # var subscription_id # if not `nil`, subscription_id in response
var sub # subscription object
var report_data_phase # true during reportdata
- def init(message_handler, session, data, sub)
+ def init(message_handler, session, ctx_generator_or_arr, sub)
+ super(self).init(nil, ctx_generator_or_arr) # send msg=nil to avoid creating a reponse
+ # we need to initiate a new virtual response, because it's a spontaneous message
self.resp = matter.Frame.initiate_response(message_handler, session, 0x05 #-Report Data-#, true)
- self.data = data
- self.ready = true # by default send immediately
- self.expiration = tasmota.millis() + self.MSG_TIMEOUT
#
self.sub = sub
self.report_data_phase = true
+ self.set_subscription_id(sub.subscription_id)
+ self.set_suppress_response(false)
end
def reached_timeout()
@@ -256,7 +306,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# ack received, confirm the heartbeat
def ack_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed ack_received sub=%i", self.sub.subscription_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed_Pull ack_received sub=%i", self.sub.subscription_id), 3)
super(self).ack_received(msg)
if !self.report_data_phase
# if ack is received while all data is sent, means that it finished without error
@@ -271,14 +321,14 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# we received an ACK error, remove subscription
def status_error_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed_Pull status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
self.sub.remove_self()
end
# ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_ReportDataSubscribed_Pull status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
if self.report_data_phase
return super(self).status_ok_received(msg)
else
@@ -291,10 +341,11 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# returns true if transaction is complete (remove object from queue)
# default responder for data
def send_im(responder)
- # log(format("MTR: IM_ReportDataSubscribed send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
+ # log(format("MTR: IM_ReportDataSubscribed_Pull send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
# log(format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
if !self.ready return false end
- if size(self.data.attribute_reports) > 0 # do we have still attributes to send
+
+ if (self.generator_or_arr != nil) # do we have still attributes to send
if self.report_data_phase
super(self).send_im(responder)
# log(format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3)
@@ -327,7 +378,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
end
end
end
-matter.IM_ReportDataSubscribed = Matter_IM_ReportDataSubscribed
+matter.IM_ReportDataSubscribed_Pull = Matter_IM_ReportDataSubscribed_Pull
#################################################################################
# Matter_IM_SubscribedHeartbeat
@@ -336,16 +387,17 @@ matter.IM_ReportDataSubscribed = Matter_IM_ReportDataSubscribed
#
# Main difference is that we are the spontaneous initiator
#################################################################################
-class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData
+class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData_Pull
var sub # subscription object
- def init(message_handler, session, data, sub)
+ def init(message_handler, session, sub)
+ super(self).init(nil, nil #-no ctx_generator_or_arr-#) # send msg=nil to avoid creating a reponse
+ # we need to initiate a new virtual response, because it's a spontaneous message
self.resp = matter.Frame.initiate_response(message_handler, session, 0x05 #-Report Data-#, true)
- self.data = data
- self.ready = true # by default send immediately
- self.expiration = tasmota.millis() + self.MSG_TIMEOUT
#
self.sub = sub
+ self.set_subscription_id(sub.subscription_id)
+ self.set_suppress_response(true)
end
def reached_timeout()
@@ -386,18 +438,22 @@ end
matter.IM_SubscribedHeartbeat = Matter_IM_SubscribedHeartbeat
#################################################################################
-# Matter_IM_SubscribeResponse
+# Matter_IM_SubscribeResponse_Pull
#
-# Report Data for a Read Request
+# Report Data for a Read Request - pull (lazy) mode
#################################################################################
-class Matter_IM_SubscribeResponse : Matter_IM_ReportData
+class Matter_IM_SubscribeResponse_Pull : Matter_IM_ReportData_Pull
+ # inherited
+ # static var MAX_MESSAGE = 1200 # max bytes size for a single TLV worklaod
+ # var generator_or_arr # a PathGenerator or an array of PathGenerator
var sub # subscription object
var report_data_phase # true during reportdata
- def init(msg, data, sub)
- super(self).init(msg, data)
+ def init(msg, ctx_generator_or_arr, sub)
+ super(self).init(msg, ctx_generator_or_arr)
self.sub = sub
self.report_data_phase = true
+ self.set_subscription_id(sub.subscription_id)
end
# default responder for data
@@ -414,6 +470,7 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
self.ready = false # wait for Status Report before continuing sending
else
+
# send the final SubscribeReponse
var resp = self.resp
var sr = matter.SubscribeResponseMessage()
@@ -440,6 +497,6 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
end
return super(self).status_ok_received(msg)
end
-
+
end
-matter.IM_SubscribeResponse = Matter_IM_SubscribeResponse
+matter.IM_SubscribeResponse_Pull = Matter_IM_SubscribeResponse_Pull
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be b/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be
index eae306543..b774cfdbb 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be
@@ -27,7 +27,6 @@ import matter
# INPUT: Takes a context:
# - plugin
# - path (abstract or concrete)
-# - session
#
# OUTPUT:
# - returns a concrete Path
@@ -35,10 +34,12 @@ import matter
#################################################################################
class Matter_PathGenerator
var device # reference of device main object
- var path_in # input path (abstract or concrete)
- var session # session object in which the request was made
+ var path_in_endpoint # input endpoint filter (nil or int)
+ var path_in_cluster # input cluster filter (nil or int)
+ var path_in_attribute # input attribute filter (nil or int)
+ var path_in_fabric_filtered # input flag for fabric filtered reads (not implemented yet)
# current status
- var pi # plugin object, `nil` waiting for value, `false` exhausted values
+ var pi # plugin object, `nil` waiting for value, `false` exhausted values, `true` if we responded a direct unmatched and it is the last one
var cluster # current cluster number, `nil` waiting for value, `false` exhausted values
var attribute # current attribute number, `nil` waiting for value, `false` exhausted values
# cache
@@ -49,49 +50,103 @@ class Matter_PathGenerator
var attribute_found # did we find a valid attribute?
# reused at each output
- var path_concrete # placeholder for output concrete path
+ var path_concrete # placeholder for output concrete path, contains 'matter.Path()' instance - WARNING it can be modified once provided
+ #################################################################################
+ # simple constructor
+ #
def init(device)
self.device = device
end
+ #################################################################################
# start generator
- def start(path_in, session)
+ #
+ # `in_endpoint`: endpoint number filter (int or nil for all)
+ # `in_cluster`: cluster number filter (int or nil for all)
+ # `in_attribute`: attribute number filter (int or nil for all)
+ # `in_fabric_filtered`: is the filter fabric-filtered (nil or false or true) - currently stored but ignored
+ def start(in_endpoint, in_cluster, in_attribute, in_fabric_filtered)
+ # log(f">>>: PathGenerator start ep:{in_endpoint} cluster:{in_cluster} attribute:{in_attribute}", 3)
self.path_concrete = matter.Path()
self.reset()
- self.path_in = path_in
- self.session = session
+ self.path_in_endpoint = in_endpoint
+ self.path_in_cluster = in_cluster
+ self.path_in_attribute = in_attribute
+ self.path_in_fabric_filtered = bool(in_fabric_filtered) # defaults to `false` if `nil`
+ self.pi = nil # ready to start
#
self.endpoint_found = false
self.cluster_found = false
self.attribute_found = false
end
+ #################################################################################
+ # reset and free memory
+ #
def reset()
var n = nil
- self.path_in = n
- self.session = n
self.path_concrete.reset()
#
- self.pi = n # pre-load first plugin
+ self.pi = false # mark as inactive
self.cluster = n
self.attribute = n
self.clusters = n
- self.clusters = n
end
- def get_pi()
- return self.pi
+ ################################################################################
+ # is_direct
+ #
+ # Returns true if the original path is concrete, i.e. no expansion.
+ # If not, errors while reading expanded attributes should not return an error
+ def is_direct()
+ return (self.path_in_endpoint != nil) && (self.path_in_cluster != nil) && (self.path_in_attribute != nil)
end
+
+ ################################################################################
+ # default_status_error
+ #
+ # Get the default error if the read or write fails.
+ # This error is only reported if `direct` is true
+ def default_status_error()
+ if self.is_direct()
+ if (!self.endpoint_found) return matter.UNSUPPORTED_ENDPOINT end
+ if (!self.cluster_found) return matter.UNSUPPORTED_CLUSTER end
+ if (!self.attribute_found) return matter.UNSUPPORTED_ATTRIBUTE end
+ return matter.UNREPORTABLE_ATTRIBUTE
+ end
+ return nil
+ end
+
+ ################################################################################
+ # finished
+ #
+ # Returns `true` if we have exhausted the generator
+ def finished()
+ return (self.pi != false)
+ end
+
+ ################################################################################
+ # finished
+ #
+ # Returns the endpoint object for the last context returned, or `nil` if not found or exhausted
+ def get_pi()
+ return ((self.pi == false) || (self.pi == true)) ? nil : self.pi
+ end
+
################################################################################
# next
#
# Generate next concrete path
# Returns:
# - a path object (that is valid until next call)
+ # - if 'direct' (concrete path), ctx.status contains the appropriate error code if the path value is not supported
# - `nil` if no more objects
def next()
- if (self.path_in == nil) return nil end
+ if (self.pi == true) || (self.pi != nil && self.is_direct()) # if we already answered a succesful or missing context for direct request, abort on second call
+ self.reset()
+ return nil
+ end
while (self.pi != false) # loop until we exhausted endpoints
# PRE: self.pi is not `false`
@@ -118,8 +173,27 @@ class Matter_PathGenerator
path_concrete.endpoint = self.pi.get_endpoint()
path_concrete.cluster = self.cluster
path_concrete.attribute = self.attribute
+ path_concrete.fabric_filtered = self.path_in_fabric_filtered
+ path_concrete.status = nil
+ # log(f">>>: PathGenerator next path_concrete:{path_concrete}", 3)
return path_concrete
end
+
+ # special case, if it was 'direct' and we are here, then we didn't find a match
+ # return the concrete path ans prepare status
+ if self.is_direct()
+ var path_concrete = self.path_concrete
+ path_concrete.reset()
+ path_concrete.endpoint = self.path_in_endpoint
+ path_concrete.cluster = self.path_in_cluster
+ path_concrete.attribute = self.path_in_attribute
+ path_concrete.fabric_filtered = self.path_in_fabric_filtered
+ path_concrete.status = self.default_status_error()
+ self.pi = true # next call will trigger Generator exhausted
+ # log(f">>>: PathGenerator next path_concrete:{path_concrete} direct", 3)
+ return path_concrete
+ end
+
# we exhausted all endpoints - finish and clean
self.reset()
return nil
@@ -131,7 +205,7 @@ class Matter_PathGenerator
if (self.pi == false) return false end # exhausted all possible values
var plugins = self.device.plugins # shortcut
- var ep_filter = self.path_in.endpoint
+ var ep_filter = self.path_in_endpoint
# cluster and attribute are now undefined
self.cluster = nil
self.attribute = nil
@@ -164,7 +238,7 @@ class Matter_PathGenerator
if (self.cluster == false) return false end # exhausted all possible values
var clusters = self.clusters
- var cl_filter = self.path_in.cluster
+ var cl_filter = self.path_in_cluster
# attribute is now undefined
self.attribute = nil
var idx = -1
@@ -193,7 +267,7 @@ class Matter_PathGenerator
if (self.attribute == false) return false end # exhausted all possible values
var attributes = self.pi.get_attribute_list(self.cluster)
- var attr_filter = self.path_in.attribute
+ var attr_filter = self.path_in_attribute
var idx = -1
if (self.attribute != nil)
idx = attributes.find(self.attribute) # find index in current list
@@ -222,11 +296,7 @@ matter.PathGenerator = Matter_PathGenerator
var gen = matter.PathGenerator(matter_device)
def gen_path_dump(endpoint, cluster, attribute)
- var path = matter.Path()
- path.endpoint = endpoint
- path.cluster = cluster
- path.attribute = attribute
- gen.start(path)
+ gen.start(endpoint, cluster, attribute)
var cp
while (cp := gen.next())
print(cp)
@@ -242,32 +312,4 @@ gen_path_dump(nil, nil, 0xFFFB)
gen_path_dump(4, 5, 5)
gen_path_dump(4, 5, 6)
-
-
-var gen = matter.PathGenerator(matter_device)
-var path = matter.Path()
-path.endpoint = nil
-gen.start(path)
-
-# print(gen._next_endpoint())
-# print(gen._next_cluster())
-# print(gen._next_attribute())
-
-
-
-var gen = matter.PathGenerator(matter_device)
-var path = matter.Path()
-path.endpoint = 4
-path.cluster = 5
-path.attribute = 1
-gen.start(path)
-
-
-
-
-var cp
-while (cp := gen.next())
- print(cp)
-end
-
-#
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 7c3e44357..4576ebc4d 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -518,8 +518,6 @@ class Matter_Device
#############################################################
# Proceed to attribute expansion (used for Attribute Read/Write/Subscribe)
#
- # Called only when expansion is needed, so we don't need to report any error since they are ignored
- #
# calls `cb(pi, ctx, direct)` for each attribute expanded.
# `pi`: plugin instance targeted by the attribute (via endpoint). Note: nothing is sent if the attribute is not declared in supported attributes in plugin.
# `ctx`: context object with `endpoint`, `cluster`, `attribute` (no `command`)
@@ -530,68 +528,44 @@ class Matter_Device
var endpoint = ctx.endpoint
var cluster = ctx.cluster
var attribute = ctx.attribute
- var endpoint_found = false # did any endpoint match
- var cluster_found = false
- var attribute_found = false
-
- var direct = (ctx.endpoint != nil) && (ctx.cluster != nil) && (ctx.attribute != nil) # true if the target is a precise attribute, false if it results from an expansion and error are ignored
-
- # log(f"MTR: process_attribute_expansion {str(ctx))}", 4)
# build the generator for all endpoint/cluster/attributes candidates
var path_generator = matter.PathGenerator(self)
- path_generator.start(ctx, nil) # TODO add session if we think it's needed later
+ path_generator.start(endpoint, cluster, attribute)
+ var direct = path_generator.is_direct()
var concrete_path
while ((concrete_path := path_generator.next()) != nil)
- var finished = cb(path_generator.get_pi(), concrete_path, direct) # call the callback with the plugin and the context
- if direct && finished return end
- end
-
- # we didn't have any successful match, report an error if direct (non-expansion request)
- if direct
- # since it's a direct request, ctx has already the correct endpoint/cluster/attribute
- if !path_generator.endpoint_found ctx.status = matter.UNSUPPORTED_ENDPOINT
- elif !path_generator.cluster_found ctx.status = matter.UNSUPPORTED_CLUSTER
- elif !path_generator.attribute_found ctx.status = matter.UNSUPPORTED_ATTRIBUTE
- else ctx.status = matter.UNREPORTABLE_ATTRIBUTE
- end
- cb(nil, ctx, true)
+ var finished = cb(path_generator.get_pi(), concrete_path) # call the callback with the plugin and the context
end
end
#############################################################
# Optimized version for a single endpoint/cluster/attribute
#
- # Retrieve the plugin for a read
+ # Retrieve the plugin for a read, or nil if not found
+ # In case of error, ctx.status is updated accordingly
def resolve_attribute_read_solo(ctx)
var endpoint = ctx.endpoint
- # var endpoint_found = false # did any endpoint match
var cluster = ctx.cluster
- # var cluster_found = false
var attribute = ctx.attribute
- # var attribute_found = false
# all 3 elements must be non-nil
- if endpoint == nil || cluster == nil || attribute == nil return nil end
+ if (endpoint == nil) || (cluster == nil) || (attribute == nil) return nil end
# look for plugin
var pi = self.find_plugin_by_endpoint(endpoint)
- if pi == nil # endpoint not found
+ if (pi == nil)
ctx.status = matter.UNSUPPORTED_ENDPOINT
return nil
- end
-
- # check cluster
- if !pi.contains_cluster(cluster)
- ctx.status = matter.UNSUPPORTED_CLUSTER
- return nil
- end
-
- # attribute list
- if !pi.contains_attribute(cluster, attribute)
- ctx.status = matter.UNSUPPORTED_ATTRIBUTE
- return nil
+ else
+ if !pi.contains_cluster(cluster)
+ ctx.status = matter.UNSUPPORTED_CLUSTER
+ return nil
+ elif !pi.contains_attribute(cluster, attribute)
+ ctx.status = matter.UNSUPPORTED_ATTRIBUTE
+ return nil
+ end
end
# all good
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 52c50b066..cb2d47030 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -7,30 +7,517 @@
extern const bclass be_class_Matter_IM;
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: send_subscribe_response_pull
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_every_250ms, /* name */
+be_local_closure(class_Matter_IM_send_subscribe_response_pull, /* name */
be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
+ 11, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(subs_shop),
- /* K1 */ be_nested_str_weak(every_250ms),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(send_queue),
+ /* K1 */ be_nested_str_weak(push),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(IM_SubscribeResponse_Pull),
}),
- be_str_weak(every_250ms),
+ be_str_weak(send_subscribe_response_pull),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
+ ( &(const binstruction[10]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0xB81A0400, // 0002 GETNGBL R6 K2
+ 0x8C180D03, // 0003 GETMET R6 R6 K3
+ 0x5C200200, // 0004 MOVE R8 R1
+ 0x5C240400, // 0005 MOVE R9 R2
+ 0x5C280600, // 0006 MOVE R10 R3
+ 0x7C180800, // 0007 CALL R6 4
+ 0x7C100400, // 0008 CALL R4 2
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_sendqueue_by_exchangeid
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_find_sendqueue_by_exchangeid, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(get_exchangeid),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_sendqueue_by_exchangeid),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0001, // 0002 JMPF R2 #0005
+ 0x4C080000, // 0003 LDNIL R2
+ 0x80040400, // 0004 RET 1 R2
+ 0x58080000, // 0005 LDCONST R2 K0
+ 0x600C000C, // 0006 GETGBL R3 G12
+ 0x88100101, // 0007 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0008 CALL R3 1
+ 0x140C0403, // 0009 LT R3 R2 R3
+ 0x780E0008, // 000A JMPF R3 #0014
+ 0x880C0101, // 000B GETMBR R3 R0 K1
+ 0x940C0602, // 000C GETIDX R3 R3 R2
+ 0x8C100702, // 000D GETMET R4 R3 K2
+ 0x7C100200, // 000E CALL R4 1
+ 0x1C100801, // 000F EQ R4 R4 R1
+ 0x78120000, // 0010 JMPF R4 #0012
+ 0x80040600, // 0011 RET 1 R3
+ 0x00080503, // 0012 ADD R2 R2 K3
+ 0x7001FFF1, // 0013 JMP #0006
+ 0x4C0C0000, // 0014 LDNIL R3
+ 0x80040600, // 0015 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_subscribe_update
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(ReadRequestMessage),
+ /* K3 */ be_nested_str_weak(fabric_filtered),
+ /* K4 */ be_nested_str_weak(attributes_requests),
+ /* K5 */ be_nested_str_weak(updates),
+ /* K6 */ be_nested_str_weak(AttributePathIB),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(cluster),
+ /* K9 */ be_nested_str_weak(attribute),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(log),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
+ /* K14 */ be_nested_str_weak(local_session_id),
+ /* K15 */ be_nested_str_weak(subscription_id),
+ /* K16 */ be_const_int(3),
+ /* K17 */ be_nested_str_weak(is_keep_alive),
+ /* K18 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K19 */ be_nested_str_weak(IM_ReportDataSubscribed_Pull),
+ /* K20 */ be_nested_str_weak(_message_handler),
+ /* K21 */ be_nested_str_weak(send_queue),
+ /* K22 */ be_nested_str_weak(send_enqueued),
+ }),
+ be_str_weak(send_subscribe_update),
+ &be_const_str_solidified,
+ ( &(const binstruction[61]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0xB80E0200, // 0001 GETNGBL R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x50100000, // 0004 LDBOOL R4 0 0
+ 0x900E0604, // 0005 SETMBR R3 K3 R4
+ 0x60100012, // 0006 GETGBL R4 G18
+ 0x7C100000, // 0007 CALL R4 0
+ 0x900E0804, // 0008 SETMBR R3 K4 R4
+ 0x60100010, // 0009 GETGBL R4 G16
+ 0x88140305, // 000A GETMBR R5 R1 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xA802000F, // 000C EXBLK 0 #001D
+ 0x5C140800, // 000D MOVE R5 R4
+ 0x7C140000, // 000E CALL R5 0
+ 0xB81A0200, // 000F GETNGBL R6 K1
+ 0x8C180D06, // 0010 GETMET R6 R6 K6
+ 0x7C180200, // 0011 CALL R6 1
+ 0x881C0B07, // 0012 GETMBR R7 R5 K7
+ 0x901A0E07, // 0013 SETMBR R6 K7 R7
+ 0x881C0B08, // 0014 GETMBR R7 R5 K8
+ 0x901A1007, // 0015 SETMBR R6 K8 R7
+ 0x881C0B09, // 0016 GETMBR R7 R5 K9
+ 0x901A1207, // 0017 SETMBR R6 K9 R7
+ 0x881C0704, // 0018 GETMBR R7 R3 K4
+ 0x8C1C0F0A, // 0019 GETMET R7 R7 K10
+ 0x5C240C00, // 001A MOVE R9 R6
+ 0x7C1C0400, // 001B CALL R7 2
+ 0x7001FFEF, // 001C JMP #000D
+ 0x5810000B, // 001D LDCONST R4 K11
+ 0xAC100200, // 001E CATCH R4 1 0
+ 0xB0080000, // 001F RAISE 2 R0 R0
+ 0xB8121800, // 0020 GETNGBL R4 K12
+ 0x60140018, // 0021 GETGBL R5 G24
+ 0x5818000D, // 0022 LDCONST R6 K13
+ 0x881C050E, // 0023 GETMBR R7 R2 K14
+ 0x8820030F, // 0024 GETMBR R8 R1 K15
+ 0x7C140600, // 0025 CALL R5 3
+ 0x58180010, // 0026 LDCONST R6 K16
+ 0x7C100400, // 0027 CALL R4 2
+ 0x50100000, // 0028 LDBOOL R4 0 0
+ 0x90062204, // 0029 SETMBR R1 K17 R4
+ 0x8C100112, // 002A GETMET R4 R0 K18
+ 0x5C180600, // 002B MOVE R6 R3
+ 0x4C1C0000, // 002C LDNIL R7
+ 0x7C100600, // 002D CALL R4 3
+ 0xB8160200, // 002E GETNGBL R5 K1
+ 0x8C140B13, // 002F GETMET R5 R5 K19
+ 0x881C0514, // 0030 GETMBR R7 R2 K20
+ 0x5C200400, // 0031 MOVE R8 R2
+ 0x5C240800, // 0032 MOVE R9 R4
+ 0x5C280200, // 0033 MOVE R10 R1
+ 0x7C140A00, // 0034 CALL R5 5
+ 0x88180115, // 0035 GETMBR R6 R0 K21
+ 0x8C180D0A, // 0036 GETMET R6 R6 K10
+ 0x5C200A00, // 0037 MOVE R8 R5
+ 0x7C180400, // 0038 CALL R6 2
+ 0x8C180116, // 0039 GETMET R6 R0 K22
+ 0x88200514, // 003A GETMBR R8 R2 K20
+ 0x7C180400, // 003B CALL R6 2
+ 0x80000000, // 003C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_single_attribute_to_bytes
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_read_single_attribute_to_bytes, /* name */
+ be_nested_proto(
+ 21, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(get_attribute_name),
+ /* K6 */ be_nested_str_weak(cluster),
+ /* K7 */ be_nested_str_weak(attribute),
+ /* K8 */ be_nested_str_weak(_X20_X28),
+ /* K9 */ be_nested_str_weak(_X29),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(status),
+ /* K12 */ be_nested_str_weak(read_attribute),
+ /* K13 */ be_nested_str_weak(tlv_solo),
+ /* K14 */ be_nested_str_weak(to_str_val),
+ /* K15 */ be_nested_str_weak(is_list),
+ /* K16 */ be_nested_str_weak(is_array),
+ /* K17 */ be_nested_str_weak(encode_len),
+ /* K18 */ be_nested_str_weak(IM_ReportData_Pull),
+ /* K19 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K20 */ be_nested_str_weak(Matter_TLV_array),
+ /* K21 */ be_nested_str_weak(attributedata2raw),
+ /* K22 */ be_nested_str_weak(push),
+ /* K23 */ be_nested_str_weak(val),
+ /* K24 */ be_nested_str_weak(stop_iteration),
+ /* K25 */ be_nested_str_weak(log),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
+ /* K27 */ be_nested_str_weak(local_session_id),
+ /* K28 */ be_nested_str_weak(attributestatus2raw),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
+ /* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ }),
+ be_str_weak(read_single_attribute_to_bytes),
+ &be_const_str_solidified,
+ ( &(const binstruction[165]) { /* code */
+ 0xB8160000, // 0000 GETNGBL R5 K0
+ 0x88140B01, // 0001 GETMBR R5 R5 K1
+ 0x4C180000, // 0002 LDNIL R6
+ 0xB81E0400, // 0003 GETNGBL R7 K2
+ 0x8C1C0F03, // 0004 GETMET R7 R7 K3
+ 0x58240004, // 0005 LDCONST R9 K4
+ 0x7C1C0400, // 0006 CALL R7 2
+ 0x781E000B, // 0007 JMPF R7 #0014
+ 0xB81E0000, // 0008 GETNGBL R7 K0
+ 0x8C1C0F05, // 0009 GETMET R7 R7 K5
+ 0x88240506, // 000A GETMBR R9 R2 K6
+ 0x88280507, // 000B GETMBR R10 R2 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x5C180E00, // 000D MOVE R6 R7
+ 0x781A0002, // 000E JMPF R6 #0012
+ 0x001E1006, // 000F ADD R7 K8 R6
+ 0x001C0F09, // 0010 ADD R7 R7 K9
+ 0x70020000, // 0011 JMP #0013
+ 0x581C000A, // 0012 LDCONST R7 K10
+ 0x5C180E00, // 0013 MOVE R6 R7
+ 0x881C050B, // 0014 GETMBR R7 R2 K11
+ 0x4C200000, // 0015 LDNIL R8
+ 0x201C0E08, // 0016 NE R7 R7 R8
+ 0x4C200000, // 0017 LDNIL R8
+ 0x4C240000, // 0018 LDNIL R9
+ 0x4C280000, // 0019 LDNIL R10
+ 0x2028020A, // 001A NE R10 R1 R10
+ 0x782A0005, // 001B JMPF R10 #0022
+ 0x8C28030C, // 001C GETMET R10 R1 K12
+ 0x5C300600, // 001D MOVE R12 R3
+ 0x5C340400, // 001E MOVE R13 R2
+ 0x8838010D, // 001F GETMBR R14 R0 K13
+ 0x7C280800, // 0020 CALL R10 4
+ 0x5C201400, // 0021 MOVE R8 R10
+ 0x4C280000, // 0022 LDNIL R10
+ 0x2028100A, // 0023 NE R10 R8 R10
+ 0x782A0057, // 0024 JMPF R10 #007D
+ 0x5828000A, // 0025 LDCONST R10 K10
+ 0xB82E0400, // 0026 GETNGBL R11 K2
+ 0x8C2C1703, // 0027 GETMET R11 R11 K3
+ 0x58340004, // 0028 LDCONST R13 K4
+ 0x7C2C0400, // 0029 CALL R11 2
+ 0x782E0003, // 002A JMPF R11 #002F
+ 0x78120002, // 002B JMPF R4 #002F
+ 0x8C2C110E, // 002C GETMET R11 R8 K14
+ 0x7C2C0200, // 002D CALL R11 1
+ 0x5C281600, // 002E MOVE R10 R11
+ 0x882C110F, // 002F GETMBR R11 R8 K15
+ 0x742E0001, // 0030 JMPT R11 #0033
+ 0x882C1110, // 0031 GETMBR R11 R8 K16
+ 0x782E002F, // 0032 JMPF R11 #0063
+ 0x8C2C1111, // 0033 GETMET R11 R8 K17
+ 0x7C2C0200, // 0034 CALL R11 1
+ 0xB8320000, // 0035 GETNGBL R12 K0
+ 0x88301912, // 0036 GETMBR R12 R12 K18
+ 0x88301913, // 0037 GETMBR R12 R12 K19
+ 0x242C160C, // 0038 GT R11 R11 R12
+ 0x782E0028, // 0039 JMPF R11 #0063
+ 0x602C0012, // 003A GETGBL R11 G18
+ 0x7C2C0000, // 003B CALL R11 0
+ 0x5C241600, // 003C MOVE R9 R11
+ 0x602C0015, // 003D GETGBL R11 G21
+ 0x5432002F, // 003E LDINT R12 48
+ 0x7C2C0200, // 003F CALL R11 1
+ 0x8C300B14, // 0040 GETMET R12 R5 K20
+ 0x7C300200, // 0041 CALL R12 1
+ 0x8C340115, // 0042 GETMET R13 R0 K21
+ 0x5C3C1600, // 0043 MOVE R15 R11
+ 0x5C400400, // 0044 MOVE R16 R2
+ 0x5C441800, // 0045 MOVE R17 R12
+ 0x50480000, // 0046 LDBOOL R18 0 0
+ 0x7C340A00, // 0047 CALL R13 5
+ 0x8C341316, // 0048 GETMET R13 R9 K22
+ 0x5C3C1600, // 0049 MOVE R15 R11
+ 0x7C340400, // 004A CALL R13 2
+ 0x60340010, // 004B GETGBL R13 G16
+ 0x88381117, // 004C GETMBR R14 R8 K23
+ 0x7C340200, // 004D CALL R13 1
+ 0xA802000F, // 004E EXBLK 0 #005F
+ 0x5C381A00, // 004F MOVE R14 R13
+ 0x7C380000, // 0050 CALL R14 0
+ 0x603C0015, // 0051 GETGBL R15 G21
+ 0x5442002F, // 0052 LDINT R16 48
+ 0x7C3C0200, // 0053 CALL R15 1
+ 0x5C2C1E00, // 0054 MOVE R11 R15
+ 0x8C3C0115, // 0055 GETMET R15 R0 K21
+ 0x5C441600, // 0056 MOVE R17 R11
+ 0x5C480400, // 0057 MOVE R18 R2
+ 0x5C4C1C00, // 0058 MOVE R19 R14
+ 0x50500200, // 0059 LDBOOL R20 1 0
+ 0x7C3C0A00, // 005A CALL R15 5
+ 0x8C3C1316, // 005B GETMET R15 R9 K22
+ 0x5C441600, // 005C MOVE R17 R11
+ 0x7C3C0400, // 005D CALL R15 2
+ 0x7001FFEF, // 005E JMP #004F
+ 0x58340018, // 005F LDCONST R13 K24
+ 0xAC340200, // 0060 CATCH R13 1 0
+ 0xB0080000, // 0061 RAISE 2 R0 R0
+ 0x70020008, // 0062 JMP #006C
+ 0x602C0015, // 0063 GETGBL R11 G21
+ 0x5432002F, // 0064 LDINT R12 48
+ 0x7C2C0200, // 0065 CALL R11 1
+ 0x5C241600, // 0066 MOVE R9 R11
+ 0x8C2C0115, // 0067 GETMET R11 R0 K21
+ 0x5C341200, // 0068 MOVE R13 R9
+ 0x5C380400, // 0069 MOVE R14 R2
+ 0x5C3C1000, // 006A MOVE R15 R8
+ 0x7C2C0800, // 006B CALL R11 4
+ 0xB82E0400, // 006C GETNGBL R11 K2
+ 0x8C2C1703, // 006D GETMET R11 R11 K3
+ 0x58340004, // 006E LDCONST R13 K4
+ 0x7C2C0400, // 006F CALL R11 2
+ 0x782E000A, // 0070 JMPF R11 #007C
+ 0x78120009, // 0071 JMPF R4 #007C
+ 0xB82E3200, // 0072 GETNGBL R11 K25
+ 0x60300018, // 0073 GETGBL R12 G24
+ 0x5834001A, // 0074 LDCONST R13 K26
+ 0x8838071B, // 0075 GETMBR R14 R3 K27
+ 0x5C3C0400, // 0076 MOVE R15 R2
+ 0x5C400C00, // 0077 MOVE R16 R6
+ 0x5C441400, // 0078 MOVE R17 R10
+ 0x7C300A00, // 0079 CALL R12 5
+ 0x58340004, // 007A LDCONST R13 K4
+ 0x7C2C0400, // 007B CALL R11 2
+ 0x70020026, // 007C JMP #00A4
+ 0x8828050B, // 007D GETMBR R10 R2 K11
+ 0x4C2C0000, // 007E LDNIL R11
+ 0x2028140B, // 007F NE R10 R10 R11
+ 0x782A0022, // 0080 JMPF R10 #00A4
+ 0x781E0021, // 0081 JMPF R7 #00A4
+ 0x60280015, // 0082 GETGBL R10 G21
+ 0x542E002F, // 0083 LDINT R11 48
+ 0x7C280200, // 0084 CALL R10 1
+ 0x5C241400, // 0085 MOVE R9 R10
+ 0x8C28011C, // 0086 GETMET R10 R0 K28
+ 0x5C301200, // 0087 MOVE R12 R9
+ 0x5C340400, // 0088 MOVE R13 R2
+ 0x8838050B, // 0089 GETMBR R14 R2 K11
+ 0x7C280800, // 008A CALL R10 4
+ 0xB82A0400, // 008B GETNGBL R10 K2
+ 0x8C281503, // 008C GETMET R10 R10 K3
+ 0x58300004, // 008D LDCONST R12 K4
+ 0x7C280400, // 008E CALL R10 2
+ 0x782A0013, // 008F JMPF R10 #00A4
+ 0xB82A3200, // 0090 GETNGBL R10 K25
+ 0x602C0018, // 0091 GETGBL R11 G24
+ 0x5830001D, // 0092 LDCONST R12 K29
+ 0x8834071B, // 0093 GETMBR R13 R3 K27
+ 0x60380008, // 0094 GETGBL R14 G8
+ 0x5C3C0400, // 0095 MOVE R15 R2
+ 0x7C380200, // 0096 CALL R14 1
+ 0x5C3C0C00, // 0097 MOVE R15 R6
+ 0x8840050B, // 0098 GETMBR R16 R2 K11
+ 0x8844050B, // 0099 GETMBR R17 R2 K11
+ 0xB84A0000, // 009A GETNGBL R18 K0
+ 0x8848251E, // 009B GETMBR R18 R18 K30
+ 0x1C442212, // 009C EQ R17 R17 R18
+ 0x78460001, // 009D JMPF R17 #00A0
+ 0x5844001E, // 009E LDCONST R17 K30
+ 0x70020000, // 009F JMP #00A1
+ 0x5844000A, // 00A0 LDCONST R17 K10
+ 0x7C2C0C00, // 00A1 CALL R11 6
+ 0x58300004, // 00A2 LDCONST R12 K4
+ 0x7C280400, // 00A3 CALL R10 2
+ 0x80041200, // 00A4 RET 1 R9
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(subs_shop),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(IM_Subscription_Shop),
+ /* K5 */ be_nested_str_weak(read_request_solo),
+ /* K6 */ be_nested_str_weak(ReadRequestMessage_solo),
+ /* K7 */ be_nested_str_weak(invoke_request_solo),
+ /* K8 */ be_nested_str_weak(InvokeRequestMessage_solo),
+ /* K9 */ be_nested_str_weak(tlv_solo),
+ /* K10 */ be_nested_str_weak(TLV),
+ /* K11 */ be_nested_str_weak(Matter_TLV_item),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0xB80A0600, // 0004 GETNGBL R2 K3
+ 0x8C080504, // 0005 GETMET R2 R2 K4
+ 0x5C100000, // 0006 MOVE R4 R0
+ 0x7C080400, // 0007 CALL R2 2
+ 0x90020402, // 0008 SETMBR R0 K2 R2
+ 0xB80A0600, // 0009 GETNGBL R2 K3
+ 0x8C080506, // 000A GETMET R2 R2 K6
+ 0x7C080200, // 000B CALL R2 1
+ 0x90020A02, // 000C SETMBR R0 K5 R2
+ 0xB80A0600, // 000D GETNGBL R2 K3
+ 0x8C080508, // 000E GETMET R2 R2 K8
+ 0x7C080200, // 000F CALL R2 1
+ 0x90020E02, // 0010 SETMBR R0 K7 R2
+ 0xB80A0600, // 0011 GETNGBL R2 K3
+ 0x8808050A, // 0012 GETMBR R2 R2 K10
+ 0x8C08050B, // 0013 GETMET R2 R2 K11
+ 0x7C080200, // 0014 CALL R2 1
+ 0x90021202, // 0015 SETMBR R0 K9 R2
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_status
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_status, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(send_queue),
+ /* K1 */ be_nested_str_weak(push),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(IM_Status),
+ }),
+ be_str_weak(send_status),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0xB8160400, // 0002 GETNGBL R5 K2
+ 0x8C140B03, // 0003 GETMET R5 R5 K3
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x5C200400, // 0005 MOVE R8 R2
+ 0x7C140600, // 0006 CALL R5 3
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x80000000, // 0008 RET 0
})
)
);
@@ -76,35 +563,28 @@ be_local_closure(class_Matter_IM_process_incoming_ack, /* name */
/********************************************************************
-** Solidified function: subscribe_response
+** Solidified function: every_second
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_subscribe_response, /* name */
+be_local_closure(class_Matter_IM_every_second, /* name */
be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
+ 3, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(SubscribeResponseMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(expire_sendqueue),
}),
- be_str_weak(subscribe_response),
+ be_str_weak(every_second),
&be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x80040800, // 0007 RET 1 R4
+ ( &(const binstruction[ 3]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x80000000, // 0002 RET 0
})
)
);
@@ -112,12 +592,69 @@ be_local_closure(class_Matter_IM_subscribe_response, /* name */
/********************************************************************
-** Solidified function: process_write_response
+** Solidified function: expire_sendqueue
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_write_response, /* name */
+be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
be_nested_proto(
6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(time_reached),
+ /* K4 */ be_nested_str_weak(expiration),
+ /* K5 */ be_nested_str_weak(reached_timeout),
+ /* K6 */ be_nested_str_weak(remove),
+ /* K7 */ be_const_int(1),
+ }),
+ be_str_weak(expire_sendqueue),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0101, // 0002 GETMBR R3 R0 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x14080202, // 0004 LT R2 R1 R2
+ 0x780A000F, // 0005 JMPF R2 #0016
+ 0x88080101, // 0006 GETMBR R2 R0 K1
+ 0x94080401, // 0007 GETIDX R2 R2 R1
+ 0xB80E0400, // 0008 GETNGBL R3 K2
+ 0x8C0C0703, // 0009 GETMET R3 R3 K3
+ 0x88140504, // 000A GETMBR R5 R2 K4
+ 0x7C0C0400, // 000B CALL R3 2
+ 0x780E0006, // 000C JMPF R3 #0014
+ 0x8C0C0505, // 000D GETMET R3 R2 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0x880C0101, // 000F GETMBR R3 R0 K1
+ 0x8C0C0706, // 0010 GETMET R3 R3 K6
+ 0x5C140200, // 0011 MOVE R5 R1
+ 0x7C0C0400, // 0012 CALL R3 2
+ 0x70020000, // 0013 JMP #0015
+ 0x00040307, // 0014 ADD R1 R1 K7
+ 0x7001FFEA, // 0015 JMP #0001
+ 0x4C080000, // 0016 LDNIL R2
+ 0x80040400, // 0017 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_write_response
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_write_response, /* name */
+ be_nested_proto(
+ 9, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -125,22 +662,446 @@ be_local_closure(class_Matter_IM_process_write_response, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(WriteResponseMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(send_queue),
+ /* K1 */ be_nested_str_weak(push),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(IM_WriteResponse),
}),
- be_str_weak(process_write_response),
+ be_str_weak(send_write_response),
&be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0xB8160400, // 0002 GETNGBL R5 K2
+ 0x8C140B03, // 0003 GETMET R5 R5 K3
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x5C200400, // 0005 MOVE R8 R2
+ 0x7C140600, // 0006 CALL R5 3
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_timed_request
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_timed_request, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TimedRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
+ /* K5 */ be_nested_str_weak(session),
+ /* K6 */ be_nested_str_weak(local_session_id),
+ /* K7 */ be_nested_str_weak(timeout),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(send_status),
+ /* K10 */ be_nested_str_weak(SUCCESS),
+ }),
+ be_str_weak(process_timed_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
0x8C0C0702, // 0003 GETMET R3 R3 K2
0x5C140400, // 0004 MOVE R5 R2
0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x80040800, // 0007 RET 1 R4
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x60140018, // 0007 GETGBL R5 G24
+ 0x58180004, // 0008 LDCONST R6 K4
+ 0x881C0305, // 0009 GETMBR R7 R1 K5
+ 0x881C0F06, // 000A GETMBR R7 R7 K6
+ 0x88200707, // 000B GETMBR R8 R3 K7
+ 0x7C140600, // 000C CALL R5 3
+ 0x58180008, // 000D LDCONST R6 K8
+ 0x7C100400, // 000E CALL R4 2
+ 0x8C100109, // 000F GETMET R4 R0 K9
+ 0x5C180200, // 0010 MOVE R6 R1
+ 0xB81E0000, // 0011 GETNGBL R7 K0
+ 0x881C0F0A, // 0012 GETMBR R7 R7 K10
+ 0x7C100600, // 0013 CALL R4 3
+ 0x50100200, // 0014 LDBOOL R4 1 0
+ 0x80040800, // 0015 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: subscribe_request
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_subscribe_request, /* name */
+ be_nested_proto(
+ 20, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[34]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(SubscribeRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(keep_subscriptions),
+ /* K4 */ be_nested_str_weak(subs_shop),
+ /* K5 */ be_nested_str_weak(remove_by_session),
+ /* K6 */ be_nested_str_weak(session),
+ /* K7 */ be_nested_str_weak(new_subscription),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(loglevel),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(Path),
+ /* K12 */ be_nested_str_weak(msg),
+ /* K13 */ be_nested_str_weak(attributes_requests),
+ /* K14 */ be_nested_str_weak(endpoint),
+ /* K15 */ be_nested_str_weak(cluster),
+ /* K16 */ be_nested_str_weak(attribute),
+ /* K17 */ be_nested_str_weak(push),
+ /* K18 */ be_nested_str_weak(stop_iteration),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s_X20attr_req_X3D_X25s_X20event_req_X3D_X25s),
+ /* K21 */ be_nested_str_weak(local_session_id),
+ /* K22 */ be_nested_str_weak(concat),
+ /* K23 */ be_nested_str_weak(_X20),
+ /* K24 */ be_nested_str_weak(min_interval),
+ /* K25 */ be_nested_str_weak(max_interval),
+ /* K26 */ be_const_int(1),
+ /* K27 */ be_const_int(0),
+ /* K28 */ be_nested_str_weak(subscription_id),
+ /* K29 */ be_nested_str_weak(fabric_filtered),
+ /* K30 */ be_nested_str_weak(_X2D),
+ /* K31 */ be_nested_str_weak(event_requests),
+ /* K32 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K33 */ be_nested_str_weak(send_subscribe_response_pull),
+ }),
+ be_str_weak(subscribe_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[98]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x88100703, // 0006 GETMBR R4 R3 K3
+ 0x74120003, // 0007 JMPT R4 #000C
+ 0x88100104, // 0008 GETMBR R4 R0 K4
+ 0x8C100905, // 0009 GETMET R4 R4 K5
+ 0x88180306, // 000A GETMBR R6 R1 K6
+ 0x7C100400, // 000B CALL R4 2
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x88180306, // 000E GETMBR R6 R1 K6
+ 0x5C1C0600, // 000F MOVE R7 R3
+ 0x7C100600, // 0010 CALL R4 3
+ 0xB8161000, // 0011 GETNGBL R5 K8
+ 0x8C140B09, // 0012 GETMET R5 R5 K9
+ 0x581C000A, // 0013 LDCONST R7 K10
+ 0x7C140400, // 0014 CALL R5 2
+ 0x78160040, // 0015 JMPF R5 #0057
+ 0x60140012, // 0016 GETGBL R5 G18
+ 0x7C140000, // 0017 CALL R5 0
+ 0xB81A0000, // 0018 GETNGBL R6 K0
+ 0x8C180D0B, // 0019 GETMET R6 R6 K11
+ 0x7C180200, // 001A CALL R6 1
+ 0x901A1801, // 001B SETMBR R6 K12 R1
+ 0x601C0010, // 001C GETGBL R7 G16
+ 0x8820070D, // 001D GETMBR R8 R3 K13
+ 0x7C1C0200, // 001E CALL R7 1
+ 0xA802000D, // 001F EXBLK 0 #002E
+ 0x5C200E00, // 0020 MOVE R8 R7
+ 0x7C200000, // 0021 CALL R8 0
+ 0x8824110E, // 0022 GETMBR R9 R8 K14
+ 0x901A1C09, // 0023 SETMBR R6 K14 R9
+ 0x8824110F, // 0024 GETMBR R9 R8 K15
+ 0x901A1E09, // 0025 SETMBR R6 K15 R9
+ 0x88241110, // 0026 GETMBR R9 R8 K16
+ 0x901A2009, // 0027 SETMBR R6 K16 R9
+ 0x8C240B11, // 0028 GETMET R9 R5 K17
+ 0x602C0008, // 0029 GETGBL R11 G8
+ 0x5C300C00, // 002A MOVE R12 R6
+ 0x7C2C0200, // 002B CALL R11 1
+ 0x7C240400, // 002C CALL R9 2
+ 0x7001FFF1, // 002D JMP #0020
+ 0x581C0012, // 002E LDCONST R7 K18
+ 0xAC1C0200, // 002F CATCH R7 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0xB81E2600, // 0031 GETNGBL R7 K19
+ 0x60200018, // 0032 GETGBL R8 G24
+ 0x58240014, // 0033 LDCONST R9 K20
+ 0x88280306, // 0034 GETMBR R10 R1 K6
+ 0x88281515, // 0035 GETMBR R10 R10 K21
+ 0x8C2C0B16, // 0036 GETMET R11 R5 K22
+ 0x58340017, // 0037 LDCONST R13 K23
+ 0x7C2C0400, // 0038 CALL R11 2
+ 0x88300918, // 0039 GETMBR R12 R4 K24
+ 0x88340919, // 003A GETMBR R13 R4 K25
+ 0x88380703, // 003B GETMBR R14 R3 K3
+ 0x783A0001, // 003C JMPF R14 #003F
+ 0x5838001A, // 003D LDCONST R14 K26
+ 0x70020000, // 003E JMP #0040
+ 0x5838001B, // 003F LDCONST R14 K27
+ 0x883C091C, // 0040 GETMBR R15 R4 K28
+ 0x8840071D, // 0041 GETMBR R16 R3 K29
+ 0x8844070D, // 0042 GETMBR R17 R3 K13
+ 0x4C480000, // 0043 LDNIL R18
+ 0x20442212, // 0044 NE R17 R17 R18
+ 0x78460003, // 0045 JMPF R17 #004A
+ 0x6044000C, // 0046 GETGBL R17 G12
+ 0x8848070D, // 0047 GETMBR R18 R3 K13
+ 0x7C440200, // 0048 CALL R17 1
+ 0x70020000, // 0049 JMP #004B
+ 0x5844001E, // 004A LDCONST R17 K30
+ 0x8848071F, // 004B GETMBR R18 R3 K31
+ 0x4C4C0000, // 004C LDNIL R19
+ 0x20482413, // 004D NE R18 R18 R19
+ 0x784A0003, // 004E JMPF R18 #0053
+ 0x6048000C, // 004F GETGBL R18 G12
+ 0x884C071F, // 0050 GETMBR R19 R3 K31
+ 0x7C480200, // 0051 CALL R18 1
+ 0x70020000, // 0052 JMP #0054
+ 0x5848001E, // 0053 LDCONST R18 K30
+ 0x7C201400, // 0054 CALL R8 10
+ 0x5824000A, // 0055 LDCONST R9 K10
+ 0x7C1C0400, // 0056 CALL R7 2
+ 0x8C140120, // 0057 GETMET R5 R0 K32
+ 0x5C1C0600, // 0058 MOVE R7 R3
+ 0x5C200200, // 0059 MOVE R8 R1
+ 0x7C140600, // 005A CALL R5 3
+ 0x8C180121, // 005B GETMET R6 R0 K33
+ 0x5C200200, // 005C MOVE R8 R1
+ 0x5C240A00, // 005D MOVE R9 R5
+ 0x5C280800, // 005E MOVE R10 R4
+ 0x7C180800, // 005F CALL R6 4
+ 0x50180200, // 0060 LDBOOL R6 1 0
+ 0x80040C00, // 0061 RET 1 R6
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_enqueued
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_enqueued, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(finish),
+ /* K3 */ be_nested_str_weak(ready),
+ /* K4 */ be_nested_str_weak(send_im),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
+ /* K7 */ be_nested_str_weak(resp),
+ /* K8 */ be_nested_str_weak(exchange_id),
+ /* K9 */ be_nested_str_weak(remove),
+ /* K10 */ be_const_int(1),
+ }),
+ be_str_weak(send_enqueued),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0019, // 0005 JMPF R3 #0020
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x88100702, // 0008 GETMBR R4 R3 K2
+ 0x74120004, // 0009 JMPT R4 #000F
+ 0x88100703, // 000A GETMBR R4 R3 K3
+ 0x78120002, // 000B JMPF R4 #000F
+ 0x8C100704, // 000C GETMET R4 R3 K4
+ 0x5C180200, // 000D MOVE R6 R1
+ 0x7C100400, // 000E CALL R4 2
+ 0x88100702, // 000F GETMBR R4 R3 K2
+ 0x7812000C, // 0010 JMPF R4 #001E
+ 0xB8120A00, // 0011 GETNGBL R4 K5
+ 0x60140008, // 0012 GETGBL R5 G8
+ 0x88180707, // 0013 GETMBR R6 R3 K7
+ 0x88180D08, // 0014 GETMBR R6 R6 K8
+ 0x7C140200, // 0015 CALL R5 1
+ 0x00160C05, // 0016 ADD R5 K6 R5
+ 0x541A0003, // 0017 LDINT R6 4
+ 0x7C100400, // 0018 CALL R4 2
+ 0x88100101, // 0019 GETMBR R4 R0 K1
+ 0x8C100909, // 001A GETMET R4 R4 K9
+ 0x5C180400, // 001B MOVE R6 R2
+ 0x7C100400, // 001C CALL R4 2
+ 0x70020000, // 001D JMP #001F
+ 0x0008050A, // 001E ADD R2 R2 K10
+ 0x7001FFE0, // 001F JMP #0001
+ 0x80000000, // 0020 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: path2raw
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_path2raw, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(attribute),
+ }),
+ be_str_weak(path2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[107]) { /* code */
+ 0x8C140300, // 0000 GETMET R5 R1 K0
+ 0x541E0036, // 0001 LDINT R7 55
+ 0x58200001, // 0002 LDCONST R8 K1
+ 0x7C140600, // 0003 CALL R5 3
+ 0x8C140300, // 0004 GETMET R5 R1 K0
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x58200001, // 0006 LDCONST R8 K1
+ 0x7C140600, // 0007 CALL R5 3
+ 0x88140502, // 0008 GETMBR R5 R2 K2
+ 0x541A00FE, // 0009 LDINT R6 255
+ 0x18140A06, // 000A LE R5 R5 R6
+ 0x78160008, // 000B JMPF R5 #0015
+ 0x8C140300, // 000C GETMET R5 R1 K0
+ 0x541E2401, // 000D LDINT R7 9218
+ 0x5421FFFD, // 000E LDINT R8 -2
+ 0x7C140600, // 000F CALL R5 3
+ 0x8C140300, // 0010 GETMET R5 R1 K0
+ 0x881C0502, // 0011 GETMBR R7 R2 K2
+ 0x58200001, // 0012 LDCONST R8 K1
+ 0x7C140600, // 0013 CALL R5 3
+ 0x70020007, // 0014 JMP #001D
+ 0x8C140300, // 0015 GETMET R5 R1 K0
+ 0x541E2501, // 0016 LDINT R7 9474
+ 0x5421FFFD, // 0017 LDINT R8 -2
+ 0x7C140600, // 0018 CALL R5 3
+ 0x8C140300, // 0019 GETMET R5 R1 K0
+ 0x881C0502, // 001A GETMBR R7 R2 K2
+ 0x58200003, // 001B LDCONST R8 K3
+ 0x7C140600, // 001C CALL R5 3
+ 0x88140504, // 001D GETMBR R5 R2 K4
+ 0x541A00FE, // 001E LDINT R6 255
+ 0x18140A06, // 001F LE R5 R5 R6
+ 0x78160008, // 0020 JMPF R5 #002A
+ 0x8C140300, // 0021 GETMET R5 R1 K0
+ 0x541E2402, // 0022 LDINT R7 9219
+ 0x5421FFFD, // 0023 LDINT R8 -2
+ 0x7C140600, // 0024 CALL R5 3
+ 0x8C140300, // 0025 GETMET R5 R1 K0
+ 0x881C0504, // 0026 GETMBR R7 R2 K4
+ 0x58200001, // 0027 LDCONST R8 K1
+ 0x7C140600, // 0028 CALL R5 3
+ 0x70020014, // 0029 JMP #003F
+ 0x88140504, // 002A GETMBR R5 R2 K4
+ 0x541AFFFE, // 002B LDINT R6 65535
+ 0x18140A06, // 002C LE R5 R5 R6
+ 0x78160008, // 002D JMPF R5 #0037
+ 0x8C140300, // 002E GETMET R5 R1 K0
+ 0x541E2502, // 002F LDINT R7 9475
+ 0x5421FFFD, // 0030 LDINT R8 -2
+ 0x7C140600, // 0031 CALL R5 3
+ 0x8C140300, // 0032 GETMET R5 R1 K0
+ 0x881C0504, // 0033 GETMBR R7 R2 K4
+ 0x58200003, // 0034 LDCONST R8 K3
+ 0x7C140600, // 0035 CALL R5 3
+ 0x70020007, // 0036 JMP #003F
+ 0x8C140300, // 0037 GETMET R5 R1 K0
+ 0x541E2602, // 0038 LDINT R7 9731
+ 0x5421FFFD, // 0039 LDINT R8 -2
+ 0x7C140600, // 003A CALL R5 3
+ 0x8C140300, // 003B GETMET R5 R1 K0
+ 0x881C0504, // 003C GETMBR R7 R2 K4
+ 0x54220003, // 003D LDINT R8 4
+ 0x7C140600, // 003E CALL R5 3
+ 0x88140505, // 003F GETMBR R5 R2 K5
+ 0x541A00FE, // 0040 LDINT R6 255
+ 0x18140A06, // 0041 LE R5 R5 R6
+ 0x78160008, // 0042 JMPF R5 #004C
+ 0x8C140300, // 0043 GETMET R5 R1 K0
+ 0x541E2403, // 0044 LDINT R7 9220
+ 0x5421FFFD, // 0045 LDINT R8 -2
+ 0x7C140600, // 0046 CALL R5 3
+ 0x8C140300, // 0047 GETMET R5 R1 K0
+ 0x881C0505, // 0048 GETMBR R7 R2 K5
+ 0x58200001, // 0049 LDCONST R8 K1
+ 0x7C140600, // 004A CALL R5 3
+ 0x70020014, // 004B JMP #0061
+ 0x88140505, // 004C GETMBR R5 R2 K5
+ 0x541AFFFE, // 004D LDINT R6 65535
+ 0x18140A06, // 004E LE R5 R5 R6
+ 0x78160008, // 004F JMPF R5 #0059
+ 0x8C140300, // 0050 GETMET R5 R1 K0
+ 0x541E2503, // 0051 LDINT R7 9476
+ 0x5421FFFD, // 0052 LDINT R8 -2
+ 0x7C140600, // 0053 CALL R5 3
+ 0x8C140300, // 0054 GETMET R5 R1 K0
+ 0x881C0505, // 0055 GETMBR R7 R2 K5
+ 0x58200003, // 0056 LDCONST R8 K3
+ 0x7C140600, // 0057 CALL R5 3
+ 0x70020007, // 0058 JMP #0061
+ 0x8C140300, // 0059 GETMET R5 R1 K0
+ 0x541E2603, // 005A LDINT R7 9732
+ 0x5421FFFD, // 005B LDINT R8 -2
+ 0x7C140600, // 005C CALL R5 3
+ 0x8C140300, // 005D GETMET R5 R1 K0
+ 0x881C0505, // 005E GETMBR R7 R2 K5
+ 0x54220003, // 005F LDINT R8 4
+ 0x7C140600, // 0060 CALL R5 3
+ 0x78120003, // 0061 JMPF R4 #0066
+ 0x8C140300, // 0062 GETMET R5 R1 K0
+ 0x541E3404, // 0063 LDINT R7 13317
+ 0x5421FFFD, // 0064 LDINT R8 -2
+ 0x7C140600, // 0065 CALL R5 3
+ 0x8C140300, // 0066 GETMET R5 R1 K0
+ 0x541E0017, // 0067 LDINT R7 24
+ 0x58200001, // 0068 LDCONST R8 K1
+ 0x7C140600, // 0069 CALL R5 3
+ 0x80000000, // 006A RET 0
})
)
);
@@ -231,566 +1192,170 @@ be_local_closure(class_Matter_IM_process_status_response, /* name */
/********************************************************************
-** Solidified function: process_timed_request
+** Solidified function: process_incoming
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_timed_request, /* name */
+be_local_closure(class_Matter_IM_process_incoming, /* name */
be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
+ 8, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TimedRequestMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
- /* K5 */ be_nested_str_weak(session),
- /* K6 */ be_nested_str_weak(local_session_id),
- /* K7 */ be_nested_str_weak(timeout),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(send_status),
- /* K10 */ be_nested_str_weak(SUCCESS),
+ ( &(const bvalue[22]) { /* constants */
+ /* K0 */ be_nested_str_weak(opcode),
+ /* K1 */ be_const_int(2),
+ /* K2 */ be_nested_str_weak(read_request_solo),
+ /* K3 */ be_nested_str_weak(from_raw),
+ /* K4 */ be_nested_str_weak(raw),
+ /* K5 */ be_nested_str_weak(app_payload_idx),
+ /* K6 */ be_nested_str_weak(process_read_request_solo),
+ /* K7 */ be_nested_str_weak(invoke_request_solo),
+ /* K8 */ be_nested_str_weak(process_invoke_request_solo),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(TLV),
+ /* K11 */ be_nested_str_weak(parse),
+ /* K12 */ be_const_int(1),
+ /* K13 */ be_nested_str_weak(process_status_response),
+ /* K14 */ be_nested_str_weak(process_read_request_pull),
+ /* K15 */ be_const_int(3),
+ /* K16 */ be_nested_str_weak(send_ack_now),
+ /* K17 */ be_nested_str_weak(subscribe_request),
+ /* K18 */ be_nested_str_weak(process_write_request),
+ /* K19 */ be_nested_str_weak(process_write_response),
+ /* K20 */ be_nested_str_weak(process_invoke_request),
+ /* K21 */ be_nested_str_weak(process_timed_request),
}),
- be_str_weak(process_timed_request),
+ be_str_weak(process_incoming),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0xB8120600, // 0006 GETNGBL R4 K3
- 0x60140018, // 0007 GETGBL R5 G24
- 0x58180004, // 0008 LDCONST R6 K4
- 0x881C0305, // 0009 GETMBR R7 R1 K5
- 0x881C0F06, // 000A GETMBR R7 R7 K6
- 0x88200707, // 000B GETMBR R8 R3 K7
- 0x7C140600, // 000C CALL R5 3
- 0x58180008, // 000D LDCONST R6 K8
- 0x7C100400, // 000E CALL R4 2
- 0x8C100109, // 000F GETMET R4 R0 K9
- 0x5C180200, // 0010 MOVE R6 R1
- 0xB81E0000, // 0011 GETNGBL R7 K0
- 0x881C0F0A, // 0012 GETMBR R7 R7 K10
- 0x7C100600, // 0013 CALL R4 3
- 0x50100200, // 0014 LDBOOL R4 1 0
- 0x80040800, // 0015 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attributedata2raw
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_attributedata2raw, /* name */
- be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(355795236),
- /* K2 */ be_const_int(1),
- /* K3 */ be_nested_str_weak(path2raw),
- /* K4 */ be_nested_str_weak(tag_sub),
- /* K5 */ be_const_int(2),
- /* K6 */ be_nested_str_weak(tlv2raw),
- }),
- be_str_weak(attributedata2raw),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C140300, // 0000 GETMET R5 R1 K0
- 0x581C0001, // 0001 LDCONST R7 K1
- 0x5421FFFB, // 0002 LDINT R8 -4
- 0x7C140600, // 0003 CALL R5 3
- 0x8C140300, // 0004 GETMET R5 R1 K0
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x5421FFFD, // 0006 LDINT R8 -2
- 0x7C140600, // 0007 CALL R5 3
- 0x8C140103, // 0008 GETMET R5 R0 K3
- 0x5C1C0200, // 0009 MOVE R7 R1
- 0x5C200400, // 000A MOVE R8 R2
- 0x58240002, // 000B LDCONST R9 K2
- 0x5C280800, // 000C MOVE R10 R4
- 0x7C140A00, // 000D CALL R5 5
- 0x900E0905, // 000E SETMBR R3 K4 K5
- 0x8C140706, // 000F GETMET R5 R3 K6
- 0x5C1C0200, // 0010 MOVE R7 R1
- 0x7C140400, // 0011 CALL R5 2
- 0x8C140300, // 0012 GETMET R5 R1 K0
- 0x541E1817, // 0013 LDINT R7 6168
- 0x5421FFFD, // 0014 LDINT R8 -2
- 0x7C140600, // 0015 CALL R5 3
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_invoke_request_solo
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
- be_nested_proto(
- 15, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[42]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(invoke_request_solo_start),
- /* K4 */ be_nested_str_weak(msg),
- /* K5 */ be_nested_str_weak(status),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
- /* K7 */ be_nested_str_weak(get_command_name),
- /* K8 */ be_nested_str_weak(cluster),
- /* K9 */ be_nested_str_weak(command),
- /* K10 */ be_nested_str_weak(device),
- /* K11 */ be_nested_str_weak(invoke_request),
- /* K12 */ be_nested_str_weak(session),
- /* K13 */ be_nested_str_weak(command_fields),
- /* K14 */ be_nested_str_weak(COMMAND_X20DONE),
- /* K15 */ be_nested_str_weak(_X28),
- /* K16 */ be_nested_str_weak(_X29_X20),
- /* K17 */ be_nested_str_weak(),
- /* K18 */ be_nested_str_weak(tasmota),
- /* K19 */ be_nested_str_weak(loglevel),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
- /* K22 */ be_nested_str_weak(local_session_id),
- /* K23 */ be_nested_str_weak(add),
- /* K24 */ be_const_int(354943030),
- /* K25 */ be_const_int(1),
- /* K26 */ be_nested_str_weak(SUCCESS),
- /* K27 */ be_nested_str_weak(invokeresponse2raw),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
- /* K29 */ be_nested_str_weak(exchange_id),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
- /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
- /* K32 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
- /* K33 */ be_const_int(405077761),
- /* K34 */ be_nested_str_weak(build_response),
- /* K35 */ be_nested_str_weak(message_handler),
- /* K36 */ be_nested_str_weak(raw),
- /* K37 */ be_nested_str_weak(clear),
- /* K38 */ be_nested_str_weak(encode_frame),
- /* K39 */ be_nested_str_weak(encrypt),
- /* K40 */ be_nested_str_weak(send_response_frame),
- /* K41 */ be_nested_str_weak(RESPONSE_X20SENT),
- }),
- be_str_weak(process_invoke_request_solo),
- &be_const_str_solidified,
- ( &(const binstruction[203]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x900A0801, // 0005 SETMBR R2 K4 R1
- 0xB80E0000, // 0006 GETNGBL R3 K0
- 0x880C0706, // 0007 GETMBR R3 R3 K6
- 0x900A0A03, // 0008 SETMBR R2 K5 R3
- 0xB80E0000, // 0009 GETNGBL R3 K0
- 0x8C0C0707, // 000A GETMET R3 R3 K7
- 0x88140508, // 000B GETMBR R5 R2 K8
- 0x88180509, // 000C GETMBR R6 R2 K9
- 0x7C0C0600, // 000D CALL R3 3
- 0x60100008, // 000E GETGBL R4 G8
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C100200, // 0010 CALL R4 1
- 0x8814010A, // 0011 GETMBR R5 R0 K10
- 0x8C140B0B, // 0012 GETMET R5 R5 K11
- 0x881C030C, // 0013 GETMBR R7 R1 K12
- 0x8820050D, // 0014 GETMBR R8 R2 K13
- 0x5C240400, // 0015 MOVE R9 R2
- 0x7C140800, // 0016 CALL R5 4
- 0xB81A0000, // 0017 GETNGBL R6 K0
- 0x88180D01, // 0018 GETMBR R6 R6 K1
- 0x8C180D02, // 0019 GETMET R6 R6 K2
- 0x5820000E, // 001A LDCONST R8 K14
- 0x7C180400, // 001B CALL R6 2
- 0x88180502, // 001C GETMBR R6 R2 K2
- 0x4C1C0000, // 001D LDNIL R7
- 0x20180C07, // 001E NE R6 R6 R7
- 0x781A0005, // 001F JMPF R6 #0026
- 0x60180008, // 0020 GETGBL R6 G8
- 0x881C0502, // 0021 GETMBR R7 R2 K2
- 0x7C180200, // 0022 CALL R6 1
- 0x001A1E06, // 0023 ADD R6 K15 R6
- 0x00180D10, // 0024 ADD R6 R6 K16
- 0x70020000, // 0025 JMP #0027
- 0x58180011, // 0026 LDCONST R6 K17
- 0xB81E2400, // 0027 GETNGBL R7 K18
- 0x8C1C0F13, // 0028 GETMET R7 R7 K19
- 0x58240014, // 0029 LDCONST R9 K20
- 0x7C1C0400, // 002A CALL R7 2
- 0x781E000D, // 002B JMPF R7 #003A
- 0xB81E0400, // 002C GETNGBL R7 K2
- 0x60200018, // 002D GETGBL R8 G24
- 0x58240015, // 002E LDCONST R9 K21
- 0x8828030C, // 002F GETMBR R10 R1 K12
- 0x88281516, // 0030 GETMBR R10 R10 K22
- 0x5C2C0800, // 0031 MOVE R11 R4
- 0x780E0001, // 0032 JMPF R3 #0035
- 0x5C300600, // 0033 MOVE R12 R3
- 0x70020000, // 0034 JMP #0036
- 0x58300011, // 0035 LDCONST R12 K17
- 0x5C340C00, // 0036 MOVE R13 R6
- 0x7C200A00, // 0037 CALL R8 5
- 0x58240014, // 0038 LDCONST R9 K20
- 0x7C1C0400, // 0039 CALL R7 2
- 0x4C1C0000, // 003A LDNIL R7
- 0x900A0407, // 003B SETMBR R2 K2 R7
- 0x601C0015, // 003C GETGBL R7 G21
- 0x5422002F, // 003D LDINT R8 48
- 0x7C1C0200, // 003E CALL R7 1
- 0x8C200F17, // 003F GETMET R8 R7 K23
- 0x58280018, // 0040 LDCONST R10 K24
- 0x542DFFFB, // 0041 LDINT R11 -4
- 0x7C200600, // 0042 CALL R8 3
- 0x8C200F17, // 0043 GETMET R8 R7 K23
- 0x58280019, // 0044 LDCONST R10 K25
- 0x582C0019, // 0045 LDCONST R11 K25
- 0x7C200600, // 0046 CALL R8 3
- 0x50200200, // 0047 LDBOOL R8 1 0
- 0x1C200A08, // 0048 EQ R8 R5 R8
- 0x74220004, // 0049 JMPT R8 #004F
- 0x88200505, // 004A GETMBR R8 R2 K5
- 0xB8260000, // 004B GETNGBL R9 K0
- 0x8824131A, // 004C GETMBR R9 R9 K26
- 0x1C201009, // 004D EQ R8 R8 R9
- 0x78220016, // 004E JMPF R8 #0066
- 0xB8220000, // 004F GETNGBL R8 K0
- 0x8820111A, // 0050 GETMBR R8 R8 K26
- 0x900A0A08, // 0051 SETMBR R2 K5 R8
- 0x8C20011B, // 0052 GETMET R8 R0 K27
- 0x5C280E00, // 0053 MOVE R10 R7
- 0x5C2C0400, // 0054 MOVE R11 R2
- 0x4C300000, // 0055 LDNIL R12
- 0x7C200800, // 0056 CALL R8 4
- 0xB8222400, // 0057 GETNGBL R8 K18
- 0x8C201113, // 0058 GETMET R8 R8 K19
- 0x58280014, // 0059 LDCONST R10 K20
- 0x7C200400, // 005A CALL R8 2
- 0x78220008, // 005B JMPF R8 #0065
- 0xB8220400, // 005C GETNGBL R8 K2
- 0x60240018, // 005D GETGBL R9 G24
- 0x5828001C, // 005E LDCONST R10 K28
- 0x882C030C, // 005F GETMBR R11 R1 K12
- 0x882C1716, // 0060 GETMBR R11 R11 K22
- 0x8830031D, // 0061 GETMBR R12 R1 K29
- 0x7C240600, // 0062 CALL R9 3
- 0x58280014, // 0063 LDCONST R10 K20
- 0x7C200400, // 0064 CALL R8 2
- 0x70020043, // 0065 JMP #00AA
- 0x4C200000, // 0066 LDNIL R8
- 0x20200A08, // 0067 NE R8 R5 R8
- 0x78220017, // 0068 JMPF R8 #0081
- 0x8C20011B, // 0069 GETMET R8 R0 K27
- 0x5C280E00, // 006A MOVE R10 R7
- 0x5C2C0400, // 006B MOVE R11 R2
- 0x5C300A00, // 006C MOVE R12 R5
- 0x7C200800, // 006D CALL R8 4
- 0x5C200600, // 006E MOVE R8 R3
- 0x74220000, // 006F JMPT R8 #0071
- 0x580C0011, // 0070 LDCONST R3 K17
- 0xB8222400, // 0071 GETNGBL R8 K18
- 0x8C201113, // 0072 GETMET R8 R8 K19
- 0x58280014, // 0073 LDCONST R10 K20
- 0x7C200400, // 0074 CALL R8 2
- 0x78220009, // 0075 JMPF R8 #0080
- 0xB8220400, // 0076 GETNGBL R8 K2
- 0x60240018, // 0077 GETGBL R9 G24
- 0x5828001E, // 0078 LDCONST R10 K30
- 0x882C030C, // 0079 GETMBR R11 R1 K12
- 0x882C1716, // 007A GETMBR R11 R11 K22
- 0x5C300400, // 007B MOVE R12 R2
- 0x5C340600, // 007C MOVE R13 R3
- 0x7C240800, // 007D CALL R9 4
- 0x58280014, // 007E LDCONST R10 K20
- 0x7C200400, // 007F CALL R8 2
- 0x70020028, // 0080 JMP #00AA
- 0x88200505, // 0081 GETMBR R8 R2 K5
- 0x4C240000, // 0082 LDNIL R9
- 0x20201009, // 0083 NE R8 R8 R9
- 0x78220014, // 0084 JMPF R8 #009A
- 0x8C20011B, // 0085 GETMET R8 R0 K27
- 0x5C280E00, // 0086 MOVE R10 R7
- 0x5C2C0400, // 0087 MOVE R11 R2
- 0x4C300000, // 0088 LDNIL R12
- 0x7C200800, // 0089 CALL R8 4
- 0xB8222400, // 008A GETNGBL R8 K18
- 0x8C201113, // 008B GETMET R8 R8 K19
- 0x58280014, // 008C LDCONST R10 K20
- 0x7C200400, // 008D CALL R8 2
- 0x78220009, // 008E JMPF R8 #0099
- 0xB8220400, // 008F GETNGBL R8 K2
- 0x60240018, // 0090 GETGBL R9 G24
- 0x5828001F, // 0091 LDCONST R10 K31
- 0x882C030C, // 0092 GETMBR R11 R1 K12
- 0x882C1716, // 0093 GETMBR R11 R11 K22
- 0x88300505, // 0094 GETMBR R12 R2 K5
- 0x8834031D, // 0095 GETMBR R13 R1 K29
- 0x7C240800, // 0096 CALL R9 4
- 0x58280014, // 0097 LDCONST R10 K20
- 0x7C200400, // 0098 CALL R8 2
- 0x7002000F, // 0099 JMP #00AA
- 0xB8222400, // 009A GETNGBL R8 K18
- 0x8C201113, // 009B GETMET R8 R8 K19
- 0x58280014, // 009C LDCONST R10 K20
- 0x7C200400, // 009D CALL R8 2
- 0x78220008, // 009E JMPF R8 #00A8
- 0xB8220400, // 009F GETNGBL R8 K2
- 0x60240018, // 00A0 GETGBL R9 G24
- 0x58280020, // 00A1 LDCONST R10 K32
- 0x882C030C, // 00A2 GETMBR R11 R1 K12
- 0x882C1716, // 00A3 GETMBR R11 R11 K22
- 0x8830031D, // 00A4 GETMBR R12 R1 K29
- 0x7C240600, // 00A5 CALL R9 3
- 0x58280014, // 00A6 LDCONST R10 K20
- 0x7C200400, // 00A7 CALL R8 2
- 0x50200000, // 00A8 LDBOOL R8 0 0
- 0x80041000, // 00A9 RET 1 R8
- 0x8C200F17, // 00AA GETMET R8 R7 K23
- 0x58280021, // 00AB LDCONST R10 K33
- 0x542DFFFB, // 00AC LDINT R11 -4
- 0x7C200600, // 00AD CALL R8 3
- 0x8C200F17, // 00AE GETMET R8 R7 K23
- 0x542A0017, // 00AF LDINT R10 24
- 0x582C0019, // 00B0 LDCONST R11 K25
- 0x7C200600, // 00B1 CALL R8 3
- 0x8C200322, // 00B2 GETMET R8 R1 K34
- 0x542A0008, // 00B3 LDINT R10 9
- 0x502C0200, // 00B4 LDBOOL R11 1 0
- 0x7C200600, // 00B5 CALL R8 3
- 0x8824010A, // 00B6 GETMBR R9 R0 K10
- 0x88241323, // 00B7 GETMBR R9 R9 K35
- 0x88280324, // 00B8 GETMBR R10 R1 K36
- 0x8C2C1525, // 00B9 GETMET R11 R10 K37
- 0x7C2C0200, // 00BA CALL R11 1
- 0x8C2C1126, // 00BB GETMET R11 R8 K38
- 0x5C340E00, // 00BC MOVE R13 R7
- 0x5C381400, // 00BD MOVE R14 R10
- 0x7C2C0600, // 00BE CALL R11 3
- 0x8C2C1127, // 00BF GETMET R11 R8 K39
- 0x7C2C0200, // 00C0 CALL R11 1
- 0x8C2C1328, // 00C1 GETMET R11 R9 K40
- 0x5C341000, // 00C2 MOVE R13 R8
- 0x7C2C0400, // 00C3 CALL R11 2
- 0xB82E0000, // 00C4 GETNGBL R11 K0
- 0x882C1701, // 00C5 GETMBR R11 R11 K1
- 0x8C2C1702, // 00C6 GETMET R11 R11 K2
- 0x58340029, // 00C7 LDCONST R13 K41
- 0x7C2C0400, // 00C8 CALL R11 2
- 0x502C0200, // 00C9 LDBOOL R11 1 0
- 0x80041600, // 00CA RET 1 R11
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invokeresponse2raw
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(cluster),
- /* K5 */ be_nested_str_weak(command),
- /* K6 */ be_nested_str_weak(status),
- /* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(SUCCESS),
- /* K9 */ be_nested_str_weak(tag_sub),
- /* K10 */ be_nested_str_weak(tlv2raw),
- }),
- be_str_weak(invokeresponse2raw),
- &be_const_str_solidified,
- ( &(const binstruction[148]) { /* code */
- 0x8C100300, // 0000 GETMET R4 R1 K0
- 0x541A0014, // 0001 LDINT R6 21
- 0x581C0001, // 0002 LDCONST R7 K1
- 0x7C100600, // 0003 CALL R4 3
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120004, // 0006 JMPF R4 #000C
- 0x8C100300, // 0007 GETMET R4 R1 K0
- 0x541A3500, // 0008 LDINT R6 13569
- 0x541DFFFD, // 0009 LDINT R7 -2
- 0x7C100600, // 000A CALL R4 3
- 0x70020003, // 000B JMP #0010
- 0x8C100300, // 000C GETMET R4 R1 K0
- 0x541A34FF, // 000D LDINT R6 13568
- 0x541DFFFD, // 000E LDINT R7 -2
- 0x7C100600, // 000F CALL R4 3
- 0x8C100300, // 0010 GETMET R4 R1 K0
- 0x541A36FF, // 0011 LDINT R6 14080
- 0x541DFFFD, // 0012 LDINT R7 -2
- 0x7C100600, // 0013 CALL R4 3
- 0x88100502, // 0014 GETMBR R4 R2 K2
- 0x541600FE, // 0015 LDINT R5 255
- 0x18100805, // 0016 LE R4 R4 R5
- 0x78120008, // 0017 JMPF R4 #0021
- 0x8C100300, // 0018 GETMET R4 R1 K0
- 0x541A23FF, // 0019 LDINT R6 9216
- 0x541DFFFD, // 001A LDINT R7 -2
- 0x7C100600, // 001B CALL R4 3
- 0x8C100300, // 001C GETMET R4 R1 K0
- 0x88180502, // 001D GETMBR R6 R2 K2
- 0x581C0001, // 001E LDCONST R7 K1
+ ( &(const binstruction[124]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x1C0C0501, // 0001 EQ R3 R2 K1
+ 0x780E000D, // 0002 JMPF R3 #0011
+ 0x880C0102, // 0003 GETMBR R3 R0 K2
+ 0x8C0C0703, // 0004 GETMET R3 R3 K3
+ 0x88140304, // 0005 GETMBR R5 R1 K4
+ 0x88180305, // 0006 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0007 CALL R3 3
+ 0x4C100000, // 0008 LDNIL R4
+ 0x20100604, // 0009 NE R4 R3 R4
+ 0x78120004, // 000A JMPF R4 #0010
+ 0x8C100106, // 000B GETMET R4 R0 K6
+ 0x5C180200, // 000C MOVE R6 R1
+ 0x5C1C0600, // 000D MOVE R7 R3
+ 0x7C100600, // 000E CALL R4 3
+ 0x80040800, // 000F RET 1 R4
+ 0x7002000F, // 0010 JMP #0021
+ 0x540E0007, // 0011 LDINT R3 8
+ 0x1C0C0403, // 0012 EQ R3 R2 R3
+ 0x780E000C, // 0013 JMPF R3 #0021
+ 0x880C0107, // 0014 GETMBR R3 R0 K7
+ 0x8C0C0703, // 0015 GETMET R3 R3 K3
+ 0x88140304, // 0016 GETMBR R5 R1 K4
+ 0x88180305, // 0017 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0018 CALL R3 3
+ 0x4C100000, // 0019 LDNIL R4
+ 0x20100604, // 001A NE R4 R3 R4
+ 0x78120004, // 001B JMPF R4 #0021
+ 0x8C100108, // 001C GETMET R4 R0 K8
+ 0x5C180200, // 001D MOVE R6 R1
+ 0x5C1C0600, // 001E MOVE R7 R3
0x7C100600, // 001F CALL R4 3
- 0x70020007, // 0020 JMP #0029
- 0x8C100300, // 0021 GETMET R4 R1 K0
- 0x541A24FF, // 0022 LDINT R6 9472
- 0x541DFFFD, // 0023 LDINT R7 -2
- 0x7C100600, // 0024 CALL R4 3
- 0x8C100300, // 0025 GETMET R4 R1 K0
- 0x88180502, // 0026 GETMBR R6 R2 K2
- 0x581C0003, // 0027 LDCONST R7 K3
- 0x7C100600, // 0028 CALL R4 3
- 0x88100504, // 0029 GETMBR R4 R2 K4
- 0x541600FE, // 002A LDINT R5 255
- 0x18100805, // 002B LE R4 R4 R5
- 0x78120008, // 002C JMPF R4 #0036
- 0x8C100300, // 002D GETMET R4 R1 K0
- 0x541A2400, // 002E LDINT R6 9217
- 0x541DFFFD, // 002F LDINT R7 -2
- 0x7C100600, // 0030 CALL R4 3
- 0x8C100300, // 0031 GETMET R4 R1 K0
- 0x88180504, // 0032 GETMBR R6 R2 K4
- 0x581C0001, // 0033 LDCONST R7 K1
+ 0x80040800, // 0020 RET 1 R4
+ 0xB80E1200, // 0021 GETNGBL R3 K9
+ 0x880C070A, // 0022 GETMBR R3 R3 K10
+ 0x8C0C070B, // 0023 GETMET R3 R3 K11
+ 0x88140304, // 0024 GETMBR R5 R1 K4
+ 0x88180305, // 0025 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0026 CALL R3 3
+ 0x1C10050C, // 0027 EQ R4 R2 K12
+ 0x78120005, // 0028 JMPF R4 #002F
+ 0x8C10010D, // 0029 GETMET R4 R0 K13
+ 0x5C180200, // 002A MOVE R6 R1
+ 0x5C1C0600, // 002B MOVE R7 R3
+ 0x7C100600, // 002C CALL R4 3
+ 0x80040800, // 002D RET 1 R4
+ 0x7002004A, // 002E JMP #007A
+ 0x1C100501, // 002F EQ R4 R2 K1
+ 0x78120005, // 0030 JMPF R4 #0037
+ 0x8C10010E, // 0031 GETMET R4 R0 K14
+ 0x5C180200, // 0032 MOVE R6 R1
+ 0x5C1C0600, // 0033 MOVE R7 R3
0x7C100600, // 0034 CALL R4 3
- 0x70020014, // 0035 JMP #004B
- 0x88100504, // 0036 GETMBR R4 R2 K4
- 0x5416FFFE, // 0037 LDINT R5 65535
- 0x18100805, // 0038 LE R4 R4 R5
- 0x78120008, // 0039 JMPF R4 #0043
- 0x8C100300, // 003A GETMET R4 R1 K0
- 0x541A2500, // 003B LDINT R6 9473
- 0x541DFFFD, // 003C LDINT R7 -2
- 0x7C100600, // 003D CALL R4 3
- 0x8C100300, // 003E GETMET R4 R1 K0
- 0x88180504, // 003F GETMBR R6 R2 K4
- 0x581C0003, // 0040 LDCONST R7 K3
- 0x7C100600, // 0041 CALL R4 3
- 0x70020007, // 0042 JMP #004B
- 0x8C100300, // 0043 GETMET R4 R1 K0
- 0x541A2600, // 0044 LDINT R6 9729
- 0x541DFFFD, // 0045 LDINT R7 -2
- 0x7C100600, // 0046 CALL R4 3
- 0x8C100300, // 0047 GETMET R4 R1 K0
- 0x88180504, // 0048 GETMBR R6 R2 K4
- 0x541E0003, // 0049 LDINT R7 4
- 0x7C100600, // 004A CALL R4 3
- 0x88100505, // 004B GETMBR R4 R2 K5
- 0x541600FE, // 004C LDINT R5 255
- 0x18100805, // 004D LE R4 R4 R5
- 0x78120008, // 004E JMPF R4 #0058
- 0x8C100300, // 004F GETMET R4 R1 K0
- 0x541A2401, // 0050 LDINT R6 9218
- 0x541DFFFD, // 0051 LDINT R7 -2
- 0x7C100600, // 0052 CALL R4 3
- 0x8C100300, // 0053 GETMET R4 R1 K0
- 0x88180505, // 0054 GETMBR R6 R2 K5
- 0x581C0001, // 0055 LDCONST R7 K1
- 0x7C100600, // 0056 CALL R4 3
- 0x70020014, // 0057 JMP #006D
- 0x88100505, // 0058 GETMBR R4 R2 K5
- 0x5416FFFE, // 0059 LDINT R5 65535
- 0x18100805, // 005A LE R4 R4 R5
- 0x78120008, // 005B JMPF R4 #0065
- 0x8C100300, // 005C GETMET R4 R1 K0
- 0x541A2501, // 005D LDINT R6 9474
- 0x541DFFFD, // 005E LDINT R7 -2
- 0x7C100600, // 005F CALL R4 3
- 0x8C100300, // 0060 GETMET R4 R1 K0
- 0x88180505, // 0061 GETMBR R6 R2 K5
- 0x581C0003, // 0062 LDCONST R7 K3
- 0x7C100600, // 0063 CALL R4 3
- 0x70020007, // 0064 JMP #006D
- 0x8C100300, // 0065 GETMET R4 R1 K0
- 0x541A2601, // 0066 LDINT R6 9730
- 0x541DFFFD, // 0067 LDINT R7 -2
- 0x7C100600, // 0068 CALL R4 3
- 0x8C100300, // 0069 GETMET R4 R1 K0
- 0x88180505, // 006A GETMBR R6 R2 K5
- 0x541E0003, // 006B LDINT R7 4
- 0x7C100600, // 006C CALL R4 3
- 0x8C100300, // 006D GETMET R4 R1 K0
- 0x541A0017, // 006E LDINT R6 24
- 0x581C0001, // 006F LDCONST R7 K1
- 0x7C100600, // 0070 CALL R4 3
- 0x4C100000, // 0071 LDNIL R4
- 0x1C100604, // 0072 EQ R4 R3 R4
- 0x78120016, // 0073 JMPF R4 #008B
- 0x88100506, // 0074 GETMBR R4 R2 K6
- 0x4C140000, // 0075 LDNIL R5
- 0x1C140805, // 0076 EQ R5 R4 R5
- 0x78160001, // 0077 JMPF R5 #007A
- 0xB8160E00, // 0078 GETNGBL R5 K7
- 0x88100B08, // 0079 GETMBR R4 R5 K8
- 0x8C140300, // 007A GETMET R5 R1 K0
- 0x541E3500, // 007B LDINT R7 13569
- 0x5421FFFD, // 007C LDINT R8 -2
- 0x7C140600, // 007D CALL R5 3
- 0x8C140300, // 007E GETMET R5 R1 K0
- 0x541E23FF, // 007F LDINT R7 9216
- 0x5421FFFD, // 0080 LDINT R8 -2
- 0x7C140600, // 0081 CALL R5 3
- 0x8C140300, // 0082 GETMET R5 R1 K0
- 0x881C0506, // 0083 GETMBR R7 R2 K6
- 0x58200001, // 0084 LDCONST R8 K1
- 0x7C140600, // 0085 CALL R5 3
- 0x8C140300, // 0086 GETMET R5 R1 K0
- 0x541E0017, // 0087 LDINT R7 24
- 0x58200001, // 0088 LDCONST R8 K1
- 0x7C140600, // 0089 CALL R5 3
- 0x70020003, // 008A JMP #008F
- 0x900E1301, // 008B SETMBR R3 K9 K1
- 0x8C10070A, // 008C GETMET R4 R3 K10
- 0x5C180200, // 008D MOVE R6 R1
- 0x7C100400, // 008E CALL R4 2
- 0x8C100300, // 008F GETMET R4 R1 K0
- 0x541A1817, // 0090 LDINT R6 6168
- 0x541DFFFD, // 0091 LDINT R7 -2
- 0x7C100600, // 0092 CALL R4 3
- 0x80000000, // 0093 RET 0
+ 0x80040800, // 0035 RET 1 R4
+ 0x70020042, // 0036 JMP #007A
+ 0x1C10050F, // 0037 EQ R4 R2 K15
+ 0x78120008, // 0038 JMPF R4 #0042
+ 0x8C100110, // 0039 GETMET R4 R0 K16
+ 0x5C180200, // 003A MOVE R6 R1
+ 0x7C100400, // 003B CALL R4 2
+ 0x8C100111, // 003C GETMET R4 R0 K17
+ 0x5C180200, // 003D MOVE R6 R1
+ 0x5C1C0600, // 003E MOVE R7 R3
+ 0x7C100600, // 003F CALL R4 3
+ 0x80040800, // 0040 RET 1 R4
+ 0x70020037, // 0041 JMP #007A
+ 0x54120003, // 0042 LDINT R4 4
+ 0x1C100404, // 0043 EQ R4 R2 R4
+ 0x78120002, // 0044 JMPF R4 #0048
+ 0x50100000, // 0045 LDBOOL R4 0 0
+ 0x80040800, // 0046 RET 1 R4
+ 0x70020031, // 0047 JMP #007A
+ 0x54120004, // 0048 LDINT R4 5
+ 0x1C100404, // 0049 EQ R4 R2 R4
+ 0x78120002, // 004A JMPF R4 #004E
+ 0x50100000, // 004B LDBOOL R4 0 0
+ 0x80040800, // 004C RET 1 R4
+ 0x7002002B, // 004D JMP #007A
+ 0x54120005, // 004E LDINT R4 6
+ 0x1C100404, // 004F EQ R4 R2 R4
+ 0x78120008, // 0050 JMPF R4 #005A
+ 0x8C100110, // 0051 GETMET R4 R0 K16
+ 0x5C180200, // 0052 MOVE R6 R1
+ 0x7C100400, // 0053 CALL R4 2
+ 0x8C100112, // 0054 GETMET R4 R0 K18
+ 0x5C180200, // 0055 MOVE R6 R1
+ 0x5C1C0600, // 0056 MOVE R7 R3
+ 0x7C100600, // 0057 CALL R4 3
+ 0x80040800, // 0058 RET 1 R4
+ 0x7002001F, // 0059 JMP #007A
+ 0x54120006, // 005A LDINT R4 7
+ 0x1C100404, // 005B EQ R4 R2 R4
+ 0x78120005, // 005C JMPF R4 #0063
+ 0x8C100113, // 005D GETMET R4 R0 K19
+ 0x5C180200, // 005E MOVE R6 R1
+ 0x5C1C0600, // 005F MOVE R7 R3
+ 0x7C100600, // 0060 CALL R4 3
+ 0x80040800, // 0061 RET 1 R4
+ 0x70020016, // 0062 JMP #007A
+ 0x54120007, // 0063 LDINT R4 8
+ 0x1C100404, // 0064 EQ R4 R2 R4
+ 0x78120005, // 0065 JMPF R4 #006C
+ 0x8C100114, // 0066 GETMET R4 R0 K20
+ 0x5C180200, // 0067 MOVE R6 R1
+ 0x5C1C0600, // 0068 MOVE R7 R3
+ 0x7C100600, // 0069 CALL R4 3
+ 0x80040800, // 006A RET 1 R4
+ 0x7002000D, // 006B JMP #007A
+ 0x54120008, // 006C LDINT R4 9
+ 0x1C100404, // 006D EQ R4 R2 R4
+ 0x78120002, // 006E JMPF R4 #0072
+ 0x50100000, // 006F LDBOOL R4 0 0
+ 0x80040800, // 0070 RET 1 R4
+ 0x70020007, // 0071 JMP #007A
+ 0x54120009, // 0072 LDINT R4 10
+ 0x1C100404, // 0073 EQ R4 R2 R4
+ 0x78120004, // 0074 JMPF R4 #007A
+ 0x8C100115, // 0075 GETMET R4 R0 K21
+ 0x5C180200, // 0076 MOVE R6 R1
+ 0x5C1C0600, // 0077 MOVE R7 R3
+ 0x7C100600, // 0078 CALL R4 3
+ 0x80040800, // 0079 RET 1 R4
+ 0x50100000, // 007A LDBOOL R4 0 0
+ 0x80040800, // 007B RET 1 R4
})
)
);
@@ -798,10 +1363,10 @@ be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
/********************************************************************
-** Solidified function: send_ack_now
+** Solidified function: remove_sendqueue_by_exchangeid
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_ack_now, /* name */
+be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@@ -811,25 +1376,40 @@ be_local_closure(class_Matter_IM_send_ack_now, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(_message_handler),
- /* K2 */ be_nested_str_weak(send_encrypted_ack),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(get_exchangeid),
+ /* K3 */ be_nested_str_weak(remove),
+ /* K4 */ be_const_int(1),
}),
- be_str_weak(send_ack_now),
+ be_str_weak(remove_sendqueue_by_exchangeid),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
+ ( &(const binstruction[24]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0000, // 0002 JMPF R2 #0004
0x80000400, // 0003 RET 0
- 0x88080300, // 0004 GETMBR R2 R1 K0
- 0x88080501, // 0005 GETMBR R2 R2 K1
- 0x8C080502, // 0006 GETMET R2 R2 K2
- 0x5C100200, // 0007 MOVE R4 R1
- 0x50140000, // 0008 LDBOOL R5 0 0
- 0x7C080600, // 0009 CALL R2 3
- 0x80000000, // 000A RET 0
+ 0x58080000, // 0004 LDCONST R2 K0
+ 0x600C000C, // 0005 GETGBL R3 G12
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x140C0403, // 0008 LT R3 R2 R3
+ 0x780E000C, // 0009 JMPF R3 #0017
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x940C0602, // 000B GETIDX R3 R3 R2
+ 0x8C0C0702, // 000C GETMET R3 R3 K2
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x1C0C0601, // 000E EQ R3 R3 R1
+ 0x780E0004, // 000F JMPF R3 #0015
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x8C0C0703, // 0011 GETMET R3 R3 K3
+ 0x5C140400, // 0012 MOVE R5 R2
+ 0x7C0C0400, // 0013 CALL R3 2
+ 0x70020000, // 0014 JMP #0016
+ 0x00080504, // 0015 ADD R2 R2 K4
+ 0x7001FFED, // 0016 JMP #0005
+ 0x80000000, // 0017 RET 0
})
)
);
@@ -1133,12 +1713,12 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
/********************************************************************
-** Solidified function: process_read_request
+** Solidified function: process_write_response
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_read_request, /* name */
+be_local_closure(class_Matter_IM_process_write_response, /* name */
be_nested_proto(
- 9, /* nstack */
+ 6, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1146,458 +1726,22 @@ be_local_closure(class_Matter_IM_process_read_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
+ ( &(const bvalue[ 3]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(read_request_start),
- /* K4 */ be_nested_str_weak(ReadRequestMessage),
- /* K5 */ be_nested_str_weak(from_TLV),
- /* K6 */ be_nested_str_weak(attributes_requests),
- /* K7 */ be_nested_str_weak(_inner_process_read_request),
- /* K8 */ be_nested_str_weak(session),
- /* K9 */ be_nested_str_weak(send_report_data),
- }),
- be_str_weak(process_read_request),
- &be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0xB80E0000, // 0005 GETNGBL R3 K0
- 0x8C0C0704, // 0006 GETMET R3 R3 K4
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0705, // 0008 GETMET R3 R3 K5
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x88100706, // 000B GETMBR R4 R3 K6
- 0x4C140000, // 000C LDNIL R5
- 0x20100805, // 000D NE R4 R4 R5
- 0x78120008, // 000E JMPF R4 #0018
- 0x8C100107, // 000F GETMET R4 R0 K7
- 0x88180308, // 0010 GETMBR R6 R1 K8
- 0x5C1C0600, // 0011 MOVE R7 R3
- 0x5C200200, // 0012 MOVE R8 R1
- 0x7C100800, // 0013 CALL R4 4
- 0x8C140109, // 0014 GETMET R5 R0 K9
- 0x5C1C0200, // 0015 MOVE R7 R1
- 0x5C200800, // 0016 MOVE R8 R4
- 0x7C140600, // 0017 CALL R5 3
- 0x50100200, // 0018 LDBOOL R4 1 0
- 0x80040800, // 0019 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_invoke_response
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_invoke_response, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_InvokeResponse),
- }),
- be_str_weak(send_invoke_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_write_response
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_write_response, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_WriteResponse),
- }),
- be_str_weak(send_write_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_write_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_write_request, /* name */
- be_nested_proto(
- 19, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 16, /* nstack */
- 5, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(get_attribute_name),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(_X20_X28),
- /* K5 */ be_nested_str_weak(_X29),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(status),
- /* K8 */ be_nested_str_weak(UNSUPPORTED_WRITE),
- /* K9 */ be_nested_str_weak(write_attribute),
- /* K10 */ be_nested_str_weak(session),
- /* K11 */ be_nested_str_weak(SUCCESS),
- /* K12 */ be_nested_str_weak(AttributeStatusIB),
- /* K13 */ be_nested_str_weak(path),
- /* K14 */ be_nested_str_weak(AttributePathIB),
- /* K15 */ be_nested_str_weak(StatusIB),
- /* K16 */ be_nested_str_weak(endpoint),
- /* K17 */ be_nested_str_weak(write_responses),
- /* K18 */ be_nested_str_weak(push),
- /* K19 */ be_nested_str_weak(log),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
- /* K21 */ be_const_int(0),
- /* K22 */ be_const_int(2),
- /* K23 */ be_const_int(3),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20_X25s_X25s_X20_X2D_X20IGNORED),
- }),
- be_str_weak(write_single_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[99]) { /* code */
- 0xB8160000, // 0000 GETNGBL R5 K0
- 0x8C140B01, // 0001 GETMET R5 R5 K1
- 0x881C0502, // 0002 GETMBR R7 R2 K2
- 0x88200503, // 0003 GETMBR R8 R2 K3
- 0x7C140600, // 0004 CALL R5 3
- 0x78160002, // 0005 JMPF R5 #0009
- 0x001A0805, // 0006 ADD R6 K4 R5
- 0x00180D05, // 0007 ADD R6 R6 K5
- 0x70020000, // 0008 JMP #000A
- 0x58180006, // 0009 LDCONST R6 K6
- 0x5C140C00, // 000A MOVE R5 R6
- 0xB81A0000, // 000B GETNGBL R6 K0
- 0x88180D08, // 000C GETMBR R6 R6 K8
- 0x900A0E06, // 000D SETMBR R2 K7 R6
- 0x4C180000, // 000E LDNIL R6
- 0x20180206, // 000F NE R6 R1 R6
- 0x781A0006, // 0010 JMPF R6 #0018
- 0x8C180309, // 0011 GETMET R6 R1 K9
- 0x68200000, // 0012 GETUPV R8 U0
- 0x8820110A, // 0013 GETMBR R8 R8 K10
- 0x5C240400, // 0014 MOVE R9 R2
- 0x5C280600, // 0015 MOVE R10 R3
- 0x7C180800, // 0016 CALL R6 4
- 0x70020000, // 0017 JMP #0019
- 0x4C180000, // 0018 LDNIL R6
- 0x781A0002, // 0019 JMPF R6 #001D
- 0xB81E0000, // 001A GETNGBL R7 K0
- 0x881C0F0B, // 001B GETMBR R7 R7 K11
- 0x900A0E07, // 001C SETMBR R2 K7 R7
- 0x881C0507, // 001D GETMBR R7 R2 K7
- 0x4C200000, // 001E LDNIL R8
- 0x201C0E08, // 001F NE R7 R7 R8
- 0x781E0036, // 0020 JMPF R7 #0058
- 0x78120034, // 0021 JMPF R4 #0057
- 0xB81E0000, // 0022 GETNGBL R7 K0
- 0x8C1C0F0C, // 0023 GETMET R7 R7 K12
- 0x7C1C0200, // 0024 CALL R7 1
- 0xB8220000, // 0025 GETNGBL R8 K0
- 0x8C20110E, // 0026 GETMET R8 R8 K14
- 0x7C200200, // 0027 CALL R8 1
- 0x901E1A08, // 0028 SETMBR R7 K13 R8
- 0xB8220000, // 0029 GETNGBL R8 K0
- 0x8C20110F, // 002A GETMET R8 R8 K15
- 0x7C200200, // 002B CALL R8 1
- 0x901E0E08, // 002C SETMBR R7 K7 R8
- 0x88200F0D, // 002D GETMBR R8 R7 K13
- 0x88240510, // 002E GETMBR R9 R2 K16
- 0x90222009, // 002F SETMBR R8 K16 R9
- 0x88200F0D, // 0030 GETMBR R8 R7 K13
- 0x88240502, // 0031 GETMBR R9 R2 K2
- 0x90220409, // 0032 SETMBR R8 K2 R9
- 0x88200F0D, // 0033 GETMBR R8 R7 K13
- 0x88240503, // 0034 GETMBR R9 R2 K3
- 0x90220609, // 0035 SETMBR R8 K3 R9
- 0x88200F07, // 0036 GETMBR R8 R7 K7
- 0x88240507, // 0037 GETMBR R9 R2 K7
- 0x90220E09, // 0038 SETMBR R8 K7 R9
- 0x88200111, // 0039 GETMBR R8 R0 K17
- 0x8C201112, // 003A GETMET R8 R8 K18
- 0x5C280E00, // 003B MOVE R10 R7
- 0x7C200400, // 003C CALL R8 2
- 0xB8222600, // 003D GETNGBL R8 K19
- 0x60240018, // 003E GETGBL R9 G24
- 0x58280014, // 003F LDCONST R10 K20
- 0x602C0008, // 0040 GETGBL R11 G8
- 0x5C300400, // 0041 MOVE R12 R2
- 0x7C2C0200, // 0042 CALL R11 1
- 0x5C300A00, // 0043 MOVE R12 R5
- 0x88340507, // 0044 GETMBR R13 R2 K7
- 0x88380507, // 0045 GETMBR R14 R2 K7
- 0xB83E0000, // 0046 GETNGBL R15 K0
- 0x883C1F0B, // 0047 GETMBR R15 R15 K11
- 0x1C381C0F, // 0048 EQ R14 R14 R15
- 0x783A0001, // 0049 JMPF R14 #004C
- 0x5838000B, // 004A LDCONST R14 K11
- 0x70020000, // 004B JMP #004D
- 0x58380006, // 004C LDCONST R14 K6
- 0x7C240A00, // 004D CALL R9 5
- 0x88280510, // 004E GETMBR R10 R2 K16
- 0x20281515, // 004F NE R10 R10 K21
- 0x782A0001, // 0050 JMPF R10 #0053
- 0x58280016, // 0051 LDCONST R10 K22
- 0x70020000, // 0052 JMP #0054
- 0x58280017, // 0053 LDCONST R10 K23
- 0x7C200400, // 0054 CALL R8 2
- 0x50200200, // 0055 LDBOOL R8 1 0
- 0x80041000, // 0056 RET 1 R8
- 0x70020009, // 0057 JMP #0062
- 0xB81E2600, // 0058 GETNGBL R7 K19
- 0x60200018, // 0059 GETGBL R8 G24
- 0x58240018, // 005A LDCONST R9 K24
- 0x60280008, // 005B GETGBL R10 G8
- 0x5C2C0400, // 005C MOVE R11 R2
- 0x7C280200, // 005D CALL R10 1
- 0x5C2C0A00, // 005E MOVE R11 R5
- 0x7C200600, // 005F CALL R8 3
- 0x58240017, // 0060 LDCONST R9 K23
- 0x7C1C0400, // 0061 CALL R7 2
- 0x80000000, // 0062 RET 0
- })
- ),
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 3]) { /* upvals */
- be_local_const_upval(1, 6),
- be_local_const_upval(1, 8),
- be_local_const_upval(1, 12),
- }),
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x68100001, // 0001 GETUPV R4 U1
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x681C0002, // 0004 GETUPV R7 U2
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C0C0A00, // 0006 CALL R3 5
- 0x80040600, // 0007 RET 1 R3
- })
- ),
- &be_class_Matter_IM,
- }),
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(WriteRequestMessage),
+ /* K1 */ be_nested_str_weak(WriteResponseMessage),
/* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(suppress_response),
- /* K4 */ be_nested_str_weak(device),
- /* K5 */ be_nested_str_weak(get_active_endpoints),
- /* K6 */ be_nested_str_weak(Path),
- /* K7 */ be_nested_str_weak(msg),
- /* K8 */ be_nested_str_weak(write_requests),
- /* K9 */ be_nested_str_weak(WriteResponseMessage),
- /* K10 */ be_nested_str_weak(write_responses),
- /* K11 */ be_nested_str_weak(path),
- /* K12 */ be_nested_str_weak(data),
- /* K13 */ be_nested_str_weak(endpoint),
- /* K14 */ be_nested_str_weak(cluster),
- /* K15 */ be_nested_str_weak(attribute),
- /* K16 */ be_nested_str_weak(status),
- /* K17 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K18 */ be_nested_str_weak(INVALID_ACTION),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(loglevel),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(get_attribute_name),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
- /* K25 */ be_nested_str_weak(_X20_X28),
- /* K26 */ be_nested_str_weak(_X29),
- /* K27 */ be_nested_str_weak(),
- /* K28 */ be_nested_str_weak(process_attribute_expansion),
- /* K29 */ be_nested_str_weak(stop_iteration),
- /* K30 */ be_nested_str_weak(send_write_response),
}),
- be_str_weak(process_write_request),
+ be_str_weak(process_write_response),
&be_const_str_solidified,
- ( &(const binstruction[108]) { /* code */
+ ( &(const binstruction[ 8]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x8C0C0701, // 0001 GETMET R3 R3 K1
0x7C0C0200, // 0002 CALL R3 1
0x8C0C0702, // 0003 GETMET R3 R3 K2
0x5C140400, // 0004 MOVE R5 R2
0x7C0C0400, // 0005 CALL R3 2
- 0x88100703, // 0006 GETMBR R4 R3 K3
- 0x88140104, // 0007 GETMBR R5 R0 K4
- 0x8C140B05, // 0008 GETMET R5 R5 K5
- 0x7C140200, // 0009 CALL R5 1
- 0x84180000, // 000A CLOSURE R6 P0
- 0xB81E0000, // 000B GETNGBL R7 K0
- 0x8C1C0F06, // 000C GETMET R7 R7 K6
- 0x7C1C0200, // 000D CALL R7 1
- 0x901E0E01, // 000E SETMBR R7 K7 R1
- 0x88200708, // 000F GETMBR R8 R3 K8
- 0x4C240000, // 0010 LDNIL R9
- 0x20201009, // 0011 NE R8 R8 R9
- 0x78220055, // 0012 JMPF R8 #0069
- 0xB8220000, // 0013 GETNGBL R8 K0
- 0x8C201109, // 0014 GETMET R8 R8 K9
- 0x7C200200, // 0015 CALL R8 1
- 0x60240012, // 0016 GETGBL R9 G18
- 0x7C240000, // 0017 CALL R9 0
- 0x90221409, // 0018 SETMBR R8 K10 R9
- 0x60240010, // 0019 GETGBL R9 G16
- 0x88280708, // 001A GETMBR R10 R3 K8
- 0x7C240200, // 001B CALL R9 1
- 0xA8020041, // 001C EXBLK 0 #005F
- 0x5C281200, // 001D MOVE R10 R9
- 0x7C280000, // 001E CALL R10 0
- 0x882C150B, // 001F GETMBR R11 R10 K11
- 0x8830150C, // 0020 GETMBR R12 R10 K12
- 0x8834170D, // 0021 GETMBR R13 R11 K13
- 0x901E1A0D, // 0022 SETMBR R7 K13 R13
- 0x8834170E, // 0023 GETMBR R13 R11 K14
- 0x901E1C0D, // 0024 SETMBR R7 K14 R13
- 0x8834170F, // 0025 GETMBR R13 R11 K15
- 0x901E1E0D, // 0026 SETMBR R7 K15 R13
- 0xB8360000, // 0027 GETNGBL R13 K0
- 0x88341B11, // 0028 GETMBR R13 R13 K17
- 0x901E200D, // 0029 SETMBR R7 K16 R13
- 0x88340F0E, // 002A GETMBR R13 R7 K14
- 0x4C380000, // 002B LDNIL R14
- 0x1C341A0E, // 002C EQ R13 R13 R14
- 0x74360003, // 002D JMPT R13 #0032
- 0x88340F0F, // 002E GETMBR R13 R7 K15
- 0x4C380000, // 002F LDNIL R14
- 0x1C341A0E, // 0030 EQ R13 R13 R14
- 0x7836000A, // 0031 JMPF R13 #003D
- 0xB8360000, // 0032 GETNGBL R13 K0
- 0x88341B12, // 0033 GETMBR R13 R13 K18
- 0x901E200D, // 0034 SETMBR R7 K16 R13
- 0x5C340C00, // 0035 MOVE R13 R6
- 0x5C381000, // 0036 MOVE R14 R8
- 0x4C3C0000, // 0037 LDNIL R15
- 0x5C400E00, // 0038 MOVE R16 R7
- 0x4C440000, // 0039 LDNIL R17
- 0x50480200, // 003A LDBOOL R18 1 0
- 0x7C340A00, // 003B CALL R13 5
- 0x7001FFDF, // 003C JMP #001D
- 0xB8362600, // 003D GETNGBL R13 K19
- 0x8C341B14, // 003E GETMET R13 R13 K20
- 0x583C0015, // 003F LDCONST R15 K21
- 0x7C340400, // 0040 CALL R13 2
- 0x78360015, // 0041 JMPF R13 #0058
- 0x88340F0D, // 0042 GETMBR R13 R7 K13
- 0x4C380000, // 0043 LDNIL R14
- 0x1C341A0E, // 0044 EQ R13 R13 R14
- 0x78360011, // 0045 JMPF R13 #0058
- 0xB8360000, // 0046 GETNGBL R13 K0
- 0x8C341B16, // 0047 GETMET R13 R13 K22
- 0x883C0F0E, // 0048 GETMBR R15 R7 K14
- 0x88400F0F, // 0049 GETMBR R16 R7 K15
- 0x7C340600, // 004A CALL R13 3
- 0xB83A2E00, // 004B GETNGBL R14 K23
- 0x603C0008, // 004C GETGBL R15 G8
- 0x5C400E00, // 004D MOVE R16 R7
- 0x7C3C0200, // 004E CALL R15 1
- 0x003E300F, // 004F ADD R15 K24 R15
- 0x78360002, // 0050 JMPF R13 #0054
- 0x0042320D, // 0051 ADD R16 K25 R13
- 0x0040211A, // 0052 ADD R16 R16 K26
- 0x70020000, // 0053 JMP #0055
- 0x5840001B, // 0054 LDCONST R16 K27
- 0x003C1E10, // 0055 ADD R15 R15 R16
- 0x58400015, // 0056 LDCONST R16 K21
- 0x7C380400, // 0057 CALL R14 2
- 0x88340104, // 0058 GETMBR R13 R0 K4
- 0x8C341B1C, // 0059 GETMET R13 R13 K28
- 0x5C3C0E00, // 005A MOVE R15 R7
- 0x84400001, // 005B CLOSURE R16 P1
- 0x7C340600, // 005C CALL R13 3
- 0xA0240000, // 005D CLOSE R9
- 0x7001FFBD, // 005E JMP #001D
- 0x5824001D, // 005F LDCONST R9 K29
- 0xAC240200, // 0060 CATCH R9 1 0
- 0xB0080000, // 0061 RAISE 2 R0 R0
- 0x5C240800, // 0062 MOVE R9 R4
- 0x74260003, // 0063 JMPT R9 #0068
- 0x8C24011E, // 0064 GETMET R9 R0 K30
- 0x5C2C0200, // 0065 MOVE R11 R1
- 0x5C301000, // 0066 MOVE R12 R8
- 0x7C240600, // 0067 CALL R9 3
- 0xA0200000, // 0068 CLOSE R8
- 0x50200200, // 0069 LDBOOL R8 1 0
- 0xA0000000, // 006A CLOSE R0
- 0x80041000, // 006B RET 1 R8
+ 0x50100000, // 0006 LDBOOL R4 0 0
+ 0x80040800, // 0007 RET 1 R4
})
)
);
@@ -1605,263 +1749,10 @@ be_local_closure(class_Matter_IM_process_write_request, /* name */
/********************************************************************
-** Solidified function: path2raw
+** Solidified function: send_ack_now
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_path2raw, /* name */
- be_nested_proto(
- 9, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(cluster),
- /* K5 */ be_nested_str_weak(attribute),
- }),
- be_str_weak(path2raw),
- &be_const_str_solidified,
- ( &(const binstruction[107]) { /* code */
- 0x8C140300, // 0000 GETMET R5 R1 K0
- 0x541E0036, // 0001 LDINT R7 55
- 0x58200001, // 0002 LDCONST R8 K1
- 0x7C140600, // 0003 CALL R5 3
- 0x8C140300, // 0004 GETMET R5 R1 K0
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x58200001, // 0006 LDCONST R8 K1
- 0x7C140600, // 0007 CALL R5 3
- 0x88140502, // 0008 GETMBR R5 R2 K2
- 0x541A00FE, // 0009 LDINT R6 255
- 0x18140A06, // 000A LE R5 R5 R6
- 0x78160008, // 000B JMPF R5 #0015
- 0x8C140300, // 000C GETMET R5 R1 K0
- 0x541E2401, // 000D LDINT R7 9218
- 0x5421FFFD, // 000E LDINT R8 -2
- 0x7C140600, // 000F CALL R5 3
- 0x8C140300, // 0010 GETMET R5 R1 K0
- 0x881C0502, // 0011 GETMBR R7 R2 K2
- 0x58200001, // 0012 LDCONST R8 K1
- 0x7C140600, // 0013 CALL R5 3
- 0x70020007, // 0014 JMP #001D
- 0x8C140300, // 0015 GETMET R5 R1 K0
- 0x541E2501, // 0016 LDINT R7 9474
- 0x5421FFFD, // 0017 LDINT R8 -2
- 0x7C140600, // 0018 CALL R5 3
- 0x8C140300, // 0019 GETMET R5 R1 K0
- 0x881C0502, // 001A GETMBR R7 R2 K2
- 0x58200003, // 001B LDCONST R8 K3
- 0x7C140600, // 001C CALL R5 3
- 0x88140504, // 001D GETMBR R5 R2 K4
- 0x541A00FE, // 001E LDINT R6 255
- 0x18140A06, // 001F LE R5 R5 R6
- 0x78160008, // 0020 JMPF R5 #002A
- 0x8C140300, // 0021 GETMET R5 R1 K0
- 0x541E2402, // 0022 LDINT R7 9219
- 0x5421FFFD, // 0023 LDINT R8 -2
- 0x7C140600, // 0024 CALL R5 3
- 0x8C140300, // 0025 GETMET R5 R1 K0
- 0x881C0504, // 0026 GETMBR R7 R2 K4
- 0x58200001, // 0027 LDCONST R8 K1
- 0x7C140600, // 0028 CALL R5 3
- 0x70020014, // 0029 JMP #003F
- 0x88140504, // 002A GETMBR R5 R2 K4
- 0x541AFFFE, // 002B LDINT R6 65535
- 0x18140A06, // 002C LE R5 R5 R6
- 0x78160008, // 002D JMPF R5 #0037
- 0x8C140300, // 002E GETMET R5 R1 K0
- 0x541E2502, // 002F LDINT R7 9475
- 0x5421FFFD, // 0030 LDINT R8 -2
- 0x7C140600, // 0031 CALL R5 3
- 0x8C140300, // 0032 GETMET R5 R1 K0
- 0x881C0504, // 0033 GETMBR R7 R2 K4
- 0x58200003, // 0034 LDCONST R8 K3
- 0x7C140600, // 0035 CALL R5 3
- 0x70020007, // 0036 JMP #003F
- 0x8C140300, // 0037 GETMET R5 R1 K0
- 0x541E2602, // 0038 LDINT R7 9731
- 0x5421FFFD, // 0039 LDINT R8 -2
- 0x7C140600, // 003A CALL R5 3
- 0x8C140300, // 003B GETMET R5 R1 K0
- 0x881C0504, // 003C GETMBR R7 R2 K4
- 0x54220003, // 003D LDINT R8 4
- 0x7C140600, // 003E CALL R5 3
- 0x88140505, // 003F GETMBR R5 R2 K5
- 0x541A00FE, // 0040 LDINT R6 255
- 0x18140A06, // 0041 LE R5 R5 R6
- 0x78160008, // 0042 JMPF R5 #004C
- 0x8C140300, // 0043 GETMET R5 R1 K0
- 0x541E2403, // 0044 LDINT R7 9220
- 0x5421FFFD, // 0045 LDINT R8 -2
- 0x7C140600, // 0046 CALL R5 3
- 0x8C140300, // 0047 GETMET R5 R1 K0
- 0x881C0505, // 0048 GETMBR R7 R2 K5
- 0x58200001, // 0049 LDCONST R8 K1
- 0x7C140600, // 004A CALL R5 3
- 0x70020014, // 004B JMP #0061
- 0x88140505, // 004C GETMBR R5 R2 K5
- 0x541AFFFE, // 004D LDINT R6 65535
- 0x18140A06, // 004E LE R5 R5 R6
- 0x78160008, // 004F JMPF R5 #0059
- 0x8C140300, // 0050 GETMET R5 R1 K0
- 0x541E2503, // 0051 LDINT R7 9476
- 0x5421FFFD, // 0052 LDINT R8 -2
- 0x7C140600, // 0053 CALL R5 3
- 0x8C140300, // 0054 GETMET R5 R1 K0
- 0x881C0505, // 0055 GETMBR R7 R2 K5
- 0x58200003, // 0056 LDCONST R8 K3
- 0x7C140600, // 0057 CALL R5 3
- 0x70020007, // 0058 JMP #0061
- 0x8C140300, // 0059 GETMET R5 R1 K0
- 0x541E2603, // 005A LDINT R7 9732
- 0x5421FFFD, // 005B LDINT R8 -2
- 0x7C140600, // 005C CALL R5 3
- 0x8C140300, // 005D GETMET R5 R1 K0
- 0x881C0505, // 005E GETMBR R7 R2 K5
- 0x54220003, // 005F LDINT R8 4
- 0x7C140600, // 0060 CALL R5 3
- 0x78120003, // 0061 JMPF R4 #0066
- 0x8C140300, // 0062 GETMET R5 R1 K0
- 0x541E3404, // 0063 LDINT R7 13317
- 0x5421FFFD, // 0064 LDINT R8 -2
- 0x7C140600, // 0065 CALL R5 3
- 0x8C140300, // 0066 GETMET R5 R1 K0
- 0x541E0017, // 0067 LDINT R7 24
- 0x58200001, // 0068 LDCONST R8 K1
- 0x7C140600, // 0069 CALL R5 3
- 0x80000000, // 006A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_subscribe_update
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[24]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(ReadRequestMessage),
- /* K3 */ be_nested_str_weak(fabric_filtered),
- /* K4 */ be_nested_str_weak(attributes_requests),
- /* K5 */ be_nested_str_weak(updates),
- /* K6 */ be_nested_str_weak(AttributePathIB),
- /* K7 */ be_nested_str_weak(endpoint),
- /* K8 */ be_nested_str_weak(cluster),
- /* K9 */ be_nested_str_weak(attribute),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(log),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
- /* K14 */ be_nested_str_weak(local_session_id),
- /* K15 */ be_nested_str_weak(subscription_id),
- /* K16 */ be_const_int(3),
- /* K17 */ be_nested_str_weak(is_keep_alive),
- /* K18 */ be_nested_str_weak(_inner_process_read_request),
- /* K19 */ be_nested_str_weak(suppress_response),
- /* K20 */ be_nested_str_weak(IM_ReportDataSubscribed),
- /* K21 */ be_nested_str_weak(_message_handler),
- /* K22 */ be_nested_str_weak(send_queue),
- /* K23 */ be_nested_str_weak(send_enqueued),
- }),
- be_str_weak(send_subscribe_update),
- &be_const_str_solidified,
- ( &(const binstruction[66]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x7C0C0200, // 0003 CALL R3 1
- 0x50100000, // 0004 LDBOOL R4 0 0
- 0x900E0604, // 0005 SETMBR R3 K3 R4
- 0x60100012, // 0006 GETGBL R4 G18
- 0x7C100000, // 0007 CALL R4 0
- 0x900E0804, // 0008 SETMBR R3 K4 R4
- 0x60100010, // 0009 GETGBL R4 G16
- 0x88140305, // 000A GETMBR R5 R1 K5
- 0x7C100200, // 000B CALL R4 1
- 0xA802000F, // 000C EXBLK 0 #001D
- 0x5C140800, // 000D MOVE R5 R4
- 0x7C140000, // 000E CALL R5 0
- 0xB81A0200, // 000F GETNGBL R6 K1
- 0x8C180D06, // 0010 GETMET R6 R6 K6
- 0x7C180200, // 0011 CALL R6 1
- 0x881C0B07, // 0012 GETMBR R7 R5 K7
- 0x901A0E07, // 0013 SETMBR R6 K7 R7
- 0x881C0B08, // 0014 GETMBR R7 R5 K8
- 0x901A1007, // 0015 SETMBR R6 K8 R7
- 0x881C0B09, // 0016 GETMBR R7 R5 K9
- 0x901A1207, // 0017 SETMBR R6 K9 R7
- 0x881C0704, // 0018 GETMBR R7 R3 K4
- 0x8C1C0F0A, // 0019 GETMET R7 R7 K10
- 0x5C240C00, // 001A MOVE R9 R6
- 0x7C1C0400, // 001B CALL R7 2
- 0x7001FFEF, // 001C JMP #000D
- 0x5810000B, // 001D LDCONST R4 K11
- 0xAC100200, // 001E CATCH R4 1 0
- 0xB0080000, // 001F RAISE 2 R0 R0
- 0xB8121800, // 0020 GETNGBL R4 K12
- 0x60140018, // 0021 GETGBL R5 G24
- 0x5818000D, // 0022 LDCONST R6 K13
- 0x881C050E, // 0023 GETMBR R7 R2 K14
- 0x8820030F, // 0024 GETMBR R8 R1 K15
- 0x7C140600, // 0025 CALL R5 3
- 0x58180010, // 0026 LDCONST R6 K16
- 0x7C100400, // 0027 CALL R4 2
- 0x50100000, // 0028 LDBOOL R4 0 0
- 0x90062204, // 0029 SETMBR R1 K17 R4
- 0x8C100112, // 002A GETMET R4 R0 K18
- 0x5C180400, // 002B MOVE R6 R2
- 0x5C1C0600, // 002C MOVE R7 R3
- 0x4C200000, // 002D LDNIL R8
- 0x7C100800, // 002E CALL R4 4
- 0x50140000, // 002F LDBOOL R5 0 0
- 0x90122605, // 0030 SETMBR R4 K19 R5
- 0x8814030F, // 0031 GETMBR R5 R1 K15
- 0x90121E05, // 0032 SETMBR R4 K15 R5
- 0xB8160200, // 0033 GETNGBL R5 K1
- 0x8C140B14, // 0034 GETMET R5 R5 K20
- 0x881C0515, // 0035 GETMBR R7 R2 K21
- 0x5C200400, // 0036 MOVE R8 R2
- 0x5C240800, // 0037 MOVE R9 R4
- 0x5C280200, // 0038 MOVE R10 R1
- 0x7C140A00, // 0039 CALL R5 5
- 0x88180116, // 003A GETMBR R6 R0 K22
- 0x8C180D0A, // 003B GETMET R6 R6 K10
- 0x5C200A00, // 003C MOVE R8 R5
- 0x7C180400, // 003D CALL R6 2
- 0x8C180117, // 003E GETMET R6 R0 K23
- 0x88200515, // 003F GETMBR R8 R2 K21
- 0x7C180400, // 0040 CALL R6 2
- 0x80000000, // 0041 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_sendqueue_by_exchangeid
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
+be_local_closure(class_Matter_IM_send_ack_now, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@@ -1871,40 +1762,25 @@ be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(get_exchangeid),
- /* K3 */ be_nested_str_weak(remove),
- /* K4 */ be_const_int(1),
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(_message_handler),
+ /* K2 */ be_nested_str_weak(send_encrypted_ack),
}),
- be_str_weak(remove_sendqueue_by_exchangeid),
+ be_str_weak(send_ack_now),
&be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
+ ( &(const binstruction[11]) { /* code */
0x4C080000, // 0000 LDNIL R2
0x1C080202, // 0001 EQ R2 R1 R2
0x780A0000, // 0002 JMPF R2 #0004
0x80000400, // 0003 RET 0
- 0x58080000, // 0004 LDCONST R2 K0
- 0x600C000C, // 0005 GETGBL R3 G12
- 0x88100101, // 0006 GETMBR R4 R0 K1
- 0x7C0C0200, // 0007 CALL R3 1
- 0x140C0403, // 0008 LT R3 R2 R3
- 0x780E000C, // 0009 JMPF R3 #0017
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x940C0602, // 000B GETIDX R3 R3 R2
- 0x8C0C0702, // 000C GETMET R3 R3 K2
- 0x7C0C0200, // 000D CALL R3 1
- 0x1C0C0601, // 000E EQ R3 R3 R1
- 0x780E0004, // 000F JMPF R3 #0015
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x8C0C0703, // 0011 GETMET R3 R3 K3
- 0x5C140400, // 0012 MOVE R5 R2
- 0x7C0C0400, // 0013 CALL R3 2
- 0x70020000, // 0014 JMP #0016
- 0x00080504, // 0015 ADD R2 R2 K4
- 0x7001FFED, // 0016 JMP #0005
- 0x80000000, // 0017 RET 0
+ 0x88080300, // 0004 GETMBR R2 R1 K0
+ 0x88080501, // 0005 GETMBR R2 R2 K1
+ 0x8C080502, // 0006 GETMET R2 R2 K2
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x50140000, // 0008 LDBOOL R5 0 0
+ 0x7C080600, // 0009 CALL R2 3
+ 0x80000000, // 000A RET 0
})
)
);
@@ -1912,10 +1788,317 @@ be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
/********************************************************************
-** Solidified function: process_incoming
+** Solidified function: process_read_or_subscribe_request_pull
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_incoming, /* name */
+be_local_closure(class_Matter_IM_process_read_or_subscribe_request_pull, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[25]) { /* constants */
+ /* K0 */ be_nested_str_weak(attributes_requests),
+ /* K1 */ be_nested_str_weak(get_node_id),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(device),
+ /* K6 */ be_nested_str_weak(start),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(cluster),
+ /* K9 */ be_nested_str_weak(attribute),
+ /* K10 */ be_nested_str_weak(fabric_filtered),
+ /* K11 */ be_nested_str_weak(push),
+ /* K12 */ be_nested_str_weak(tasmota),
+ /* K13 */ be_nested_str_weak(loglevel),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(Path),
+ /* K16 */ be_nested_str_weak(get_attribute_name),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
+ /* K19 */ be_nested_str_weak(session),
+ /* K20 */ be_nested_str_weak(local_session_id),
+ /* K21 */ be_nested_str_weak(_X20_X28),
+ /* K22 */ be_nested_str_weak(_X29),
+ /* K23 */ be_nested_str_weak(),
+ /* K24 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(process_read_or_subscribe_request_pull),
+ &be_const_str_solidified,
+ ( &(const binstruction[121]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x200C0604, // 0002 NE R3 R3 R4
+ 0x780E0072, // 0003 JMPF R3 #0077
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x4C100000, // 0005 LDNIL R4
+ 0x20100404, // 0006 NE R4 R2 R4
+ 0x78120002, // 0007 JMPF R4 #000B
+ 0x8C100501, // 0008 GETMET R4 R2 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x70020000, // 000A JMP #000C
+ 0x4C100000, // 000B LDNIL R4
+ 0x6014000C, // 000C GETGBL R5 G12
+ 0x88180300, // 000D GETMBR R6 R1 K0
+ 0x7C140200, // 000E CALL R5 1
+ 0x24140B02, // 000F GT R5 R5 K2
+ 0x78160002, // 0010 JMPF R5 #0014
+ 0x60140012, // 0011 GETGBL R5 G18
+ 0x7C140000, // 0012 CALL R5 0
+ 0x5C0C0A00, // 0013 MOVE R3 R5
+ 0x60140010, // 0014 GETGBL R5 G16
+ 0x88180300, // 0015 GETMBR R6 R1 K0
+ 0x7C140200, // 0016 CALL R5 1
+ 0xA802005A, // 0017 EXBLK 0 #0073
+ 0x5C180A00, // 0018 MOVE R6 R5
+ 0x7C180000, // 0019 CALL R6 0
+ 0xB81E0600, // 001A GETNGBL R7 K3
+ 0x8C1C0F04, // 001B GETMET R7 R7 K4
+ 0x88240105, // 001C GETMBR R9 R0 K5
+ 0x7C1C0400, // 001D CALL R7 2
+ 0x8C200F06, // 001E GETMET R8 R7 K6
+ 0x88280D07, // 001F GETMBR R10 R6 K7
+ 0x882C0D08, // 0020 GETMBR R11 R6 K8
+ 0x88300D09, // 0021 GETMBR R12 R6 K9
+ 0x8834030A, // 0022 GETMBR R13 R1 K10
+ 0x7C200A00, // 0023 CALL R8 5
+ 0x6020000C, // 0024 GETGBL R8 G12
+ 0x88240300, // 0025 GETMBR R9 R1 K0
+ 0x7C200200, // 0026 CALL R8 1
+ 0x24201102, // 0027 GT R8 R8 K2
+ 0x78220003, // 0028 JMPF R8 #002D
+ 0x8C20070B, // 0029 GETMET R8 R3 K11
+ 0x5C280E00, // 002A MOVE R10 R7
+ 0x7C200400, // 002B CALL R8 2
+ 0x70020000, // 002C JMP #002E
+ 0x5C0C0E00, // 002D MOVE R3 R7
+ 0xB8221800, // 002E GETNGBL R8 K12
+ 0x8C20110D, // 002F GETMET R8 R8 K13
+ 0x5828000E, // 0030 LDCONST R10 K14
+ 0x7C200400, // 0031 CALL R8 2
+ 0x7822003E, // 0032 JMPF R8 #0072
+ 0x88200D07, // 0033 GETMBR R8 R6 K7
+ 0x4C240000, // 0034 LDNIL R9
+ 0x1C201009, // 0035 EQ R8 R8 R9
+ 0x74220007, // 0036 JMPT R8 #003F
+ 0x88200D08, // 0037 GETMBR R8 R6 K8
+ 0x4C240000, // 0038 LDNIL R9
+ 0x1C201009, // 0039 EQ R8 R8 R9
+ 0x74220003, // 003A JMPT R8 #003F
+ 0x88200D09, // 003B GETMBR R8 R6 K9
+ 0x4C240000, // 003C LDNIL R9
+ 0x1C201009, // 003D EQ R8 R8 R9
+ 0x78220032, // 003E JMPF R8 #0072
+ 0xB8220600, // 003F GETNGBL R8 K3
+ 0x8C20110F, // 0040 GETMET R8 R8 K15
+ 0x7C200200, // 0041 CALL R8 1
+ 0x88240D07, // 0042 GETMBR R9 R6 K7
+ 0x90220E09, // 0043 SETMBR R8 K7 R9
+ 0x88240D08, // 0044 GETMBR R9 R6 K8
+ 0x90221009, // 0045 SETMBR R8 K8 R9
+ 0x88240D09, // 0046 GETMBR R9 R6 K9
+ 0x90221209, // 0047 SETMBR R8 K9 R9
+ 0x8824030A, // 0048 GETMBR R9 R1 K10
+ 0x90221409, // 0049 SETMBR R8 K10 R9
+ 0x60240008, // 004A GETGBL R9 G8
+ 0x5C281000, // 004B MOVE R10 R8
+ 0x7C240200, // 004C CALL R9 1
+ 0x88280D08, // 004D GETMBR R10 R6 K8
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x2028140B, // 004F NE R10 R10 R11
+ 0x782A0017, // 0050 JMPF R10 #0069
+ 0x88280D09, // 0051 GETMBR R10 R6 K9
+ 0x4C2C0000, // 0052 LDNIL R11
+ 0x2028140B, // 0053 NE R10 R10 R11
+ 0x782A0013, // 0054 JMPF R10 #0069
+ 0xB82A0600, // 0055 GETNGBL R10 K3
+ 0x8C281510, // 0056 GETMET R10 R10 K16
+ 0x88300D08, // 0057 GETMBR R12 R6 K8
+ 0x88340D09, // 0058 GETMBR R13 R6 K9
+ 0x7C280600, // 0059 CALL R10 3
+ 0xB82E2200, // 005A GETNGBL R11 K17
+ 0x60300018, // 005B GETGBL R12 G24
+ 0x58340012, // 005C LDCONST R13 K18
+ 0x88380513, // 005D GETMBR R14 R2 K19
+ 0x88381D14, // 005E GETMBR R14 R14 K20
+ 0x782A0002, // 005F JMPF R10 #0063
+ 0x003E2A0A, // 0060 ADD R15 K21 R10
+ 0x003C1F16, // 0061 ADD R15 R15 K22
+ 0x70020000, // 0062 JMP #0064
+ 0x583C0017, // 0063 LDCONST R15 K23
+ 0x003C120F, // 0064 ADD R15 R9 R15
+ 0x7C300600, // 0065 CALL R12 3
+ 0x5834000E, // 0066 LDCONST R13 K14
+ 0x7C2C0400, // 0067 CALL R11 2
+ 0x70020008, // 0068 JMP #0072
+ 0xB82A2200, // 0069 GETNGBL R10 K17
+ 0x602C0018, // 006A GETGBL R11 G24
+ 0x58300012, // 006B LDCONST R12 K18
+ 0x88340513, // 006C GETMBR R13 R2 K19
+ 0x88341B14, // 006D GETMBR R13 R13 K20
+ 0x5C381200, // 006E MOVE R14 R9
+ 0x7C2C0600, // 006F CALL R11 3
+ 0x5830000E, // 0070 LDCONST R12 K14
+ 0x7C280400, // 0071 CALL R10 2
+ 0x7001FFA4, // 0072 JMP #0018
+ 0x58140018, // 0073 LDCONST R5 K24
+ 0xAC140200, // 0074 CATCH R5 1 0
+ 0xB0080000, // 0075 RAISE 2 R0 R0
+ 0x80040600, // 0076 RET 1 R3
+ 0x4C0C0000, // 0077 LDNIL R3
+ 0x80040600, // 0078 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: write_single_attribute_status_to_bytes
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_write_single_attribute_status_to_bytes, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[25]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(get_attribute_name),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(attribute),
+ /* K5 */ be_nested_str_weak(_X20_X28),
+ /* K6 */ be_nested_str_weak(_X29),
+ /* K7 */ be_nested_str_weak(),
+ /* K8 */ be_nested_str_weak(status),
+ /* K9 */ be_nested_str_weak(AttributeStatusIB),
+ /* K10 */ be_nested_str_weak(path),
+ /* K11 */ be_nested_str_weak(AttributePathIB),
+ /* K12 */ be_nested_str_weak(StatusIB),
+ /* K13 */ be_nested_str_weak(endpoint),
+ /* K14 */ be_nested_str_weak(write_responses),
+ /* K15 */ be_nested_str_weak(push),
+ /* K16 */ be_nested_str_weak(log),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3EWrite_Attr_X25s_X25s_X20_X2D_X20_X25s_X20STATUS_X3A_X200x_X2502X_X20_X25s),
+ /* K18 */ be_nested_str_weak(SUCCESS),
+ /* K19 */ be_const_int(0),
+ /* K20 */ be_const_int(2),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(tasmota),
+ /* K23 */ be_nested_str_weak(loglevel),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20_X3EWrite_Attr_X25s_X25s_X20_X2D_X20IGNORED),
+ }),
+ be_str_weak(write_single_attribute_status_to_bytes),
+ &be_const_str_solidified,
+ ( &(const binstruction[86]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0xB8160000, // 0002 GETNGBL R5 K0
+ 0x8C140B02, // 0003 GETMET R5 R5 K2
+ 0x881C0503, // 0004 GETMBR R7 R2 K3
+ 0x88200504, // 0005 GETMBR R8 R2 K4
+ 0x7C140600, // 0006 CALL R5 3
+ 0x78160002, // 0007 JMPF R5 #000B
+ 0x001A0A05, // 0008 ADD R6 K5 R5
+ 0x00180D06, // 0009 ADD R6 R6 K6
+ 0x70020000, // 000A JMP #000C
+ 0x58180007, // 000B LDCONST R6 K7
+ 0x5C140C00, // 000C MOVE R5 R6
+ 0x88180508, // 000D GETMBR R6 R2 K8
+ 0x4C1C0000, // 000E LDNIL R7
+ 0x20180C07, // 000F NE R6 R6 R7
+ 0x781A0034, // 0010 JMPF R6 #0046
+ 0xB81A0000, // 0011 GETNGBL R6 K0
+ 0x8C180D09, // 0012 GETMET R6 R6 K9
+ 0x7C180200, // 0013 CALL R6 1
+ 0xB81E0000, // 0014 GETNGBL R7 K0
+ 0x8C1C0F0B, // 0015 GETMET R7 R7 K11
+ 0x7C1C0200, // 0016 CALL R7 1
+ 0x901A1407, // 0017 SETMBR R6 K10 R7
+ 0xB81E0000, // 0018 GETNGBL R7 K0
+ 0x8C1C0F0C, // 0019 GETMET R7 R7 K12
+ 0x7C1C0200, // 001A CALL R7 1
+ 0x901A1007, // 001B SETMBR R6 K8 R7
+ 0x881C0D0A, // 001C GETMBR R7 R6 K10
+ 0x8820050D, // 001D GETMBR R8 R2 K13
+ 0x901E1A08, // 001E SETMBR R7 K13 R8
+ 0x881C0D0A, // 001F GETMBR R7 R6 K10
+ 0x88200503, // 0020 GETMBR R8 R2 K3
+ 0x901E0608, // 0021 SETMBR R7 K3 R8
+ 0x881C0D0A, // 0022 GETMBR R7 R6 K10
+ 0x88200504, // 0023 GETMBR R8 R2 K4
+ 0x901E0808, // 0024 SETMBR R7 K4 R8
+ 0x881C0D08, // 0025 GETMBR R7 R6 K8
+ 0x88200508, // 0026 GETMBR R8 R2 K8
+ 0x901E1008, // 0027 SETMBR R7 K8 R8
+ 0x881C030E, // 0028 GETMBR R7 R1 K14
+ 0x8C1C0F0F, // 0029 GETMET R7 R7 K15
+ 0x5C240C00, // 002A MOVE R9 R6
+ 0x7C1C0400, // 002B CALL R7 2
+ 0xB81E2000, // 002C GETNGBL R7 K16
+ 0x60200018, // 002D GETGBL R8 G24
+ 0x58240011, // 002E LDCONST R9 K17
+ 0x60280008, // 002F GETGBL R10 G8
+ 0x5C2C0400, // 0030 MOVE R11 R2
+ 0x7C280200, // 0031 CALL R10 1
+ 0x5C2C0A00, // 0032 MOVE R11 R5
+ 0x5C300600, // 0033 MOVE R12 R3
+ 0x88340508, // 0034 GETMBR R13 R2 K8
+ 0x88380508, // 0035 GETMBR R14 R2 K8
+ 0xB83E0000, // 0036 GETNGBL R15 K0
+ 0x883C1F12, // 0037 GETMBR R15 R15 K18
+ 0x1C381C0F, // 0038 EQ R14 R14 R15
+ 0x783A0001, // 0039 JMPF R14 #003C
+ 0x58380012, // 003A LDCONST R14 K18
+ 0x70020000, // 003B JMP #003D
+ 0x58380007, // 003C LDCONST R14 K7
+ 0x7C200C00, // 003D CALL R8 6
+ 0x8824050D, // 003E GETMBR R9 R2 K13
+ 0x20241313, // 003F NE R9 R9 K19
+ 0x78260001, // 0040 JMPF R9 #0043
+ 0x58240014, // 0041 LDCONST R9 K20
+ 0x70020000, // 0042 JMP #0044
+ 0x58240015, // 0043 LDCONST R9 K21
+ 0x7C1C0400, // 0044 CALL R7 2
+ 0x7002000E, // 0045 JMP #0055
+ 0xB81A2C00, // 0046 GETNGBL R6 K22
+ 0x8C180D17, // 0047 GETMET R6 R6 K23
+ 0x58200015, // 0048 LDCONST R8 K21
+ 0x7C180400, // 0049 CALL R6 2
+ 0x781A0009, // 004A JMPF R6 #0055
+ 0xB81A2000, // 004B GETNGBL R6 K16
+ 0x601C0018, // 004C GETGBL R7 G24
+ 0x58200018, // 004D LDCONST R8 K24
+ 0x60240008, // 004E GETGBL R9 G8
+ 0x5C280400, // 004F MOVE R10 R2
+ 0x7C240200, // 0050 CALL R9 1
+ 0x5C280A00, // 0051 MOVE R10 R5
+ 0x7C1C0600, // 0052 CALL R7 3
+ 0x58200015, // 0053 LDCONST R8 K21
+ 0x7C180400, // 0054 CALL R6 2
+ 0x80000000, // 0055 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_subscribe_heartbeat
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@@ -1925,169 +2108,49 @@ be_local_closure(class_Matter_IM_process_incoming, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
- /* K0 */ be_nested_str_weak(opcode),
- /* K1 */ be_const_int(2),
- /* K2 */ be_nested_str_weak(read_request_solo),
- /* K3 */ be_nested_str_weak(from_raw),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_nested_str_weak(process_read_request_solo),
- /* K7 */ be_nested_str_weak(invoke_request_solo),
- /* K8 */ be_nested_str_weak(process_invoke_request_solo),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(TLV),
- /* K11 */ be_nested_str_weak(parse),
- /* K12 */ be_const_int(1),
- /* K13 */ be_nested_str_weak(process_status_response),
- /* K14 */ be_nested_str_weak(process_read_request),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(send_ack_now),
- /* K17 */ be_nested_str_weak(subscribe_request),
- /* K18 */ be_nested_str_weak(subscribe_response),
- /* K19 */ be_nested_str_weak(report_data),
- /* K20 */ be_nested_str_weak(process_write_request),
- /* K21 */ be_nested_str_weak(process_write_response),
- /* K22 */ be_nested_str_weak(process_invoke_request),
- /* K23 */ be_nested_str_weak(process_invoke_response),
- /* K24 */ be_nested_str_weak(process_timed_request),
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25s),
+ /* K3 */ be_nested_str_weak(local_session_id),
+ /* K4 */ be_nested_str_weak(subscription_id),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(is_keep_alive),
+ /* K7 */ be_nested_str_weak(matter),
+ /* K8 */ be_nested_str_weak(IM_SubscribedHeartbeat),
+ /* K9 */ be_nested_str_weak(_message_handler),
+ /* K10 */ be_nested_str_weak(send_queue),
+ /* K11 */ be_nested_str_weak(push),
+ /* K12 */ be_nested_str_weak(send_enqueued),
}),
- be_str_weak(process_incoming),
+ be_str_weak(send_subscribe_heartbeat),
&be_const_str_solidified,
- ( &(const binstruction[133]) { /* code */
+ ( &(const binstruction[25]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
- 0x1C0C0501, // 0001 EQ R3 R2 K1
- 0x780E000D, // 0002 JMPF R3 #0011
- 0x880C0102, // 0003 GETMBR R3 R0 K2
- 0x8C0C0703, // 0004 GETMET R3 R3 K3
- 0x88140304, // 0005 GETMBR R5 R1 K4
- 0x88180305, // 0006 GETMBR R6 R1 K5
- 0x7C0C0600, // 0007 CALL R3 3
- 0x4C100000, // 0008 LDNIL R4
- 0x20100604, // 0009 NE R4 R3 R4
- 0x78120004, // 000A JMPF R4 #0010
- 0x8C100106, // 000B GETMET R4 R0 K6
- 0x5C180200, // 000C MOVE R6 R1
- 0x5C1C0600, // 000D MOVE R7 R3
- 0x7C100600, // 000E CALL R4 3
- 0x80040800, // 000F RET 1 R4
- 0x7002000F, // 0010 JMP #0021
- 0x540E0007, // 0011 LDINT R3 8
- 0x1C0C0403, // 0012 EQ R3 R2 R3
- 0x780E000C, // 0013 JMPF R3 #0021
- 0x880C0107, // 0014 GETMBR R3 R0 K7
- 0x8C0C0703, // 0015 GETMET R3 R3 K3
- 0x88140304, // 0016 GETMBR R5 R1 K4
- 0x88180305, // 0017 GETMBR R6 R1 K5
- 0x7C0C0600, // 0018 CALL R3 3
- 0x4C100000, // 0019 LDNIL R4
- 0x20100604, // 001A NE R4 R3 R4
- 0x78120004, // 001B JMPF R4 #0021
- 0x8C100108, // 001C GETMET R4 R0 K8
- 0x5C180200, // 001D MOVE R6 R1
- 0x5C1C0600, // 001E MOVE R7 R3
- 0x7C100600, // 001F CALL R4 3
- 0x80040800, // 0020 RET 1 R4
- 0xB80E1200, // 0021 GETNGBL R3 K9
- 0x880C070A, // 0022 GETMBR R3 R3 K10
- 0x8C0C070B, // 0023 GETMET R3 R3 K11
- 0x88140304, // 0024 GETMBR R5 R1 K4
- 0x88180305, // 0025 GETMBR R6 R1 K5
- 0x7C0C0600, // 0026 CALL R3 3
- 0x1C10050C, // 0027 EQ R4 R2 K12
- 0x78120005, // 0028 JMPF R4 #002F
- 0x8C10010D, // 0029 GETMET R4 R0 K13
- 0x5C180200, // 002A MOVE R6 R1
- 0x5C1C0600, // 002B MOVE R7 R3
- 0x7C100600, // 002C CALL R4 3
- 0x80040800, // 002D RET 1 R4
- 0x70020053, // 002E JMP #0083
- 0x1C100501, // 002F EQ R4 R2 K1
- 0x78120005, // 0030 JMPF R4 #0037
- 0x8C10010E, // 0031 GETMET R4 R0 K14
- 0x5C180200, // 0032 MOVE R6 R1
- 0x5C1C0600, // 0033 MOVE R7 R3
- 0x7C100600, // 0034 CALL R4 3
- 0x80040800, // 0035 RET 1 R4
- 0x7002004B, // 0036 JMP #0083
- 0x1C10050F, // 0037 EQ R4 R2 K15
- 0x78120008, // 0038 JMPF R4 #0042
- 0x8C100110, // 0039 GETMET R4 R0 K16
- 0x5C180200, // 003A MOVE R6 R1
- 0x7C100400, // 003B CALL R4 2
- 0x8C100111, // 003C GETMET R4 R0 K17
- 0x5C180200, // 003D MOVE R6 R1
- 0x5C1C0600, // 003E MOVE R7 R3
- 0x7C100600, // 003F CALL R4 3
- 0x80040800, // 0040 RET 1 R4
- 0x70020040, // 0041 JMP #0083
- 0x54120003, // 0042 LDINT R4 4
- 0x1C100404, // 0043 EQ R4 R2 R4
- 0x78120005, // 0044 JMPF R4 #004B
- 0x8C100112, // 0045 GETMET R4 R0 K18
- 0x5C180200, // 0046 MOVE R6 R1
- 0x5C1C0600, // 0047 MOVE R7 R3
- 0x7C100600, // 0048 CALL R4 3
- 0x80040800, // 0049 RET 1 R4
- 0x70020037, // 004A JMP #0083
- 0x54120004, // 004B LDINT R4 5
- 0x1C100404, // 004C EQ R4 R2 R4
- 0x78120005, // 004D JMPF R4 #0054
- 0x8C100113, // 004E GETMET R4 R0 K19
- 0x5C180200, // 004F MOVE R6 R1
- 0x5C1C0600, // 0050 MOVE R7 R3
- 0x7C100600, // 0051 CALL R4 3
- 0x80040800, // 0052 RET 1 R4
- 0x7002002E, // 0053 JMP #0083
- 0x54120005, // 0054 LDINT R4 6
- 0x1C100404, // 0055 EQ R4 R2 R4
- 0x78120008, // 0056 JMPF R4 #0060
- 0x8C100110, // 0057 GETMET R4 R0 K16
- 0x5C180200, // 0058 MOVE R6 R1
- 0x7C100400, // 0059 CALL R4 2
- 0x8C100114, // 005A GETMET R4 R0 K20
- 0x5C180200, // 005B MOVE R6 R1
- 0x5C1C0600, // 005C MOVE R7 R3
- 0x7C100600, // 005D CALL R4 3
- 0x80040800, // 005E RET 1 R4
- 0x70020022, // 005F JMP #0083
- 0x54120006, // 0060 LDINT R4 7
- 0x1C100404, // 0061 EQ R4 R2 R4
- 0x78120005, // 0062 JMPF R4 #0069
- 0x8C100115, // 0063 GETMET R4 R0 K21
- 0x5C180200, // 0064 MOVE R6 R1
- 0x5C1C0600, // 0065 MOVE R7 R3
- 0x7C100600, // 0066 CALL R4 3
- 0x80040800, // 0067 RET 1 R4
- 0x70020019, // 0068 JMP #0083
- 0x54120007, // 0069 LDINT R4 8
- 0x1C100404, // 006A EQ R4 R2 R4
- 0x78120005, // 006B JMPF R4 #0072
- 0x8C100116, // 006C GETMET R4 R0 K22
- 0x5C180200, // 006D MOVE R6 R1
- 0x5C1C0600, // 006E MOVE R7 R3
- 0x7C100600, // 006F CALL R4 3
- 0x80040800, // 0070 RET 1 R4
- 0x70020010, // 0071 JMP #0083
- 0x54120008, // 0072 LDINT R4 9
- 0x1C100404, // 0073 EQ R4 R2 R4
- 0x78120005, // 0074 JMPF R4 #007B
- 0x8C100117, // 0075 GETMET R4 R0 K23
- 0x5C180200, // 0076 MOVE R6 R1
- 0x5C1C0600, // 0077 MOVE R7 R3
- 0x7C100600, // 0078 CALL R4 3
- 0x80040800, // 0079 RET 1 R4
- 0x70020007, // 007A JMP #0083
- 0x54120009, // 007B LDINT R4 10
- 0x1C100404, // 007C EQ R4 R2 R4
- 0x78120004, // 007D JMPF R4 #0083
- 0x8C100118, // 007E GETMET R4 R0 K24
- 0x5C180200, // 007F MOVE R6 R1
- 0x5C1C0600, // 0080 MOVE R7 R3
- 0x7C100600, // 0081 CALL R4 3
- 0x80040800, // 0082 RET 1 R4
- 0x50100000, // 0083 LDBOOL R4 0 0
- 0x80040800, // 0084 RET 1 R4
+ 0xB80E0200, // 0001 GETNGBL R3 K1
+ 0x60100018, // 0002 GETGBL R4 G24
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x88180503, // 0004 GETMBR R6 R2 K3
+ 0x881C0304, // 0005 GETMBR R7 R1 K4
+ 0x7C100600, // 0006 CALL R4 3
+ 0x58140005, // 0007 LDCONST R5 K5
+ 0x7C0C0400, // 0008 CALL R3 2
+ 0x500C0200, // 0009 LDBOOL R3 1 0
+ 0x90060C03, // 000A SETMBR R1 K6 R3
+ 0xB80E0E00, // 000B GETNGBL R3 K7
+ 0x8C0C0708, // 000C GETMET R3 R3 K8
+ 0x88140509, // 000D GETMBR R5 R2 K9
+ 0x5C180400, // 000E MOVE R6 R2
+ 0x5C1C0200, // 000F MOVE R7 R1
+ 0x7C0C0800, // 0010 CALL R3 4
+ 0x8810010A, // 0011 GETMBR R4 R0 K10
+ 0x8C10090B, // 0012 GETMET R4 R4 K11
+ 0x5C180600, // 0013 MOVE R6 R3
+ 0x7C100400, // 0014 CALL R4 2
+ 0x8C10010C, // 0015 GETMET R4 R0 K12
+ 0x88180509, // 0016 GETMBR R6 R2 K9
+ 0x7C100400, // 0017 CALL R4 2
+ 0x80000000, // 0018 RET 0
})
)
);
@@ -2095,728 +2158,54 @@ be_local_closure(class_Matter_IM_process_incoming, /* name */
/********************************************************************
-** Solidified function: process_invoke_response
+** Solidified function: attributedata2raw
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_invoke_response, /* name */
+be_local_closure(class_Matter_IM_attributedata2raw, /* name */
be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(InvokeResponseMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- }),
- be_str_weak(process_invoke_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x80040800, // 0007 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_every_second, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(expire_sendqueue),
- }),
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_status
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_status, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_Status),
- }),
- be_str_weak(send_status),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _inner_process_read_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM__inner_process_read_request, /* name */
- be_nested_proto(
- 23, /* nstack */
+ 11, /* nstack */
5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 20, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 3]) { /* upvals */
- be_local_const_upval(1, 1),
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 4),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[35]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(get_attribute_name),
- /* K6 */ be_nested_str_weak(cluster),
- /* K7 */ be_nested_str_weak(attribute),
- /* K8 */ be_nested_str_weak(_X20_X28),
- /* K9 */ be_nested_str_weak(_X29),
- /* K10 */ be_nested_str_weak(),
- /* K11 */ be_nested_str_weak(status),
- /* K12 */ be_nested_str_weak(read_attribute),
- /* K13 */ be_nested_str_weak(tlv_solo),
- /* K14 */ be_nested_str_weak(to_str_val),
- /* K15 */ be_nested_str_weak(is_list),
- /* K16 */ be_nested_str_weak(is_array),
- /* K17 */ be_nested_str_weak(encode_len),
- /* K18 */ be_nested_str_weak(IM_ReportData),
- /* K19 */ be_nested_str_weak(MAX_MESSAGE),
- /* K20 */ be_nested_str_weak(Matter_TLV_array),
- /* K21 */ be_nested_str_weak(attributedata2raw),
- /* K22 */ be_nested_str_weak(push),
- /* K23 */ be_nested_str_weak(val),
- /* K24 */ be_nested_str_weak(stop_iteration),
- /* K25 */ be_nested_str_weak(log),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
- /* K27 */ be_nested_str_weak(local_session_id),
- /* K28 */ be_nested_str_weak(attributestatus2raw),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
- /* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20IGNORED),
- /* K32 */ be_const_int(0),
- /* K33 */ be_nested_str_weak(attribute_reports),
- /* K34 */ be_const_int(1),
- }),
- be_str_weak(read_single_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[252]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x4C140000, // 0002 LDNIL R5
- 0xB81A0400, // 0003 GETNGBL R6 K2
- 0x8C180D03, // 0004 GETMET R6 R6 K3
- 0x58200004, // 0005 LDCONST R8 K4
- 0x7C180400, // 0006 CALL R6 2
- 0x781A000B, // 0007 JMPF R6 #0014
- 0xB81A0000, // 0008 GETNGBL R6 K0
- 0x8C180D05, // 0009 GETMET R6 R6 K5
- 0x88200506, // 000A GETMBR R8 R2 K6
- 0x88240507, // 000B GETMBR R9 R2 K7
- 0x7C180600, // 000C CALL R6 3
- 0x5C140C00, // 000D MOVE R5 R6
- 0x78160002, // 000E JMPF R5 #0012
- 0x001A1005, // 000F ADD R6 K8 R5
- 0x00180D09, // 0010 ADD R6 R6 K9
- 0x70020000, // 0011 JMP #0013
- 0x5818000A, // 0012 LDCONST R6 K10
- 0x5C140C00, // 0013 MOVE R5 R6
- 0x4C180000, // 0014 LDNIL R6
- 0x900A1606, // 0015 SETMBR R2 K11 R6
- 0x4C180000, // 0016 LDNIL R6
- 0x20180206, // 0017 NE R6 R1 R6
- 0x781A0006, // 0018 JMPF R6 #0020
- 0x8C18030C, // 0019 GETMET R6 R1 K12
- 0x68200000, // 001A GETUPV R8 U0
- 0x5C240400, // 001B MOVE R9 R2
- 0x68280001, // 001C GETUPV R10 U1
- 0x8828150D, // 001D GETMBR R10 R10 K13
- 0x7C180800, // 001E CALL R6 4
- 0x70020000, // 001F JMP #0021
- 0x4C180000, // 0020 LDNIL R6
- 0x501C0200, // 0021 LDBOOL R7 1 0
- 0x4C200000, // 0022 LDNIL R8
- 0x4C240000, // 0023 LDNIL R9
- 0x20240C09, // 0024 NE R9 R6 R9
- 0x78260058, // 0025 JMPF R9 #007F
- 0x5824000A, // 0026 LDCONST R9 K10
- 0x68280002, // 0027 GETUPV R10 U2
- 0x742A0002, // 0028 JMPT R10 #002C
- 0x8C280D0E, // 0029 GETMET R10 R6 K14
- 0x7C280200, // 002A CALL R10 1
- 0x5C241400, // 002B MOVE R9 R10
- 0x88280D0F, // 002C GETMBR R10 R6 K15
- 0x742A0001, // 002D JMPT R10 #0030
- 0x88280D10, // 002E GETMBR R10 R6 K16
- 0x782A0031, // 002F JMPF R10 #0062
- 0x8C280D11, // 0030 GETMET R10 R6 K17
- 0x7C280200, // 0031 CALL R10 1
- 0xB82E0000, // 0032 GETNGBL R11 K0
- 0x882C1712, // 0033 GETMBR R11 R11 K18
- 0x882C1713, // 0034 GETMBR R11 R11 K19
- 0x2428140B, // 0035 GT R10 R10 R11
- 0x782A002A, // 0036 JMPF R10 #0062
- 0x60280012, // 0037 GETGBL R10 G18
- 0x7C280000, // 0038 CALL R10 0
- 0x5C201400, // 0039 MOVE R8 R10
- 0x60280015, // 003A GETGBL R10 G21
- 0x542E002F, // 003B LDINT R11 48
- 0x7C280200, // 003C CALL R10 1
- 0x8C2C0914, // 003D GETMET R11 R4 K20
- 0x7C2C0200, // 003E CALL R11 1
- 0x68300001, // 003F GETUPV R12 U1
- 0x8C301915, // 0040 GETMET R12 R12 K21
- 0x5C381400, // 0041 MOVE R14 R10
- 0x5C3C0400, // 0042 MOVE R15 R2
- 0x5C401600, // 0043 MOVE R16 R11
- 0x50440000, // 0044 LDBOOL R17 0 0
- 0x7C300A00, // 0045 CALL R12 5
- 0x8C301116, // 0046 GETMET R12 R8 K22
- 0x5C381400, // 0047 MOVE R14 R10
- 0x7C300400, // 0048 CALL R12 2
- 0x60300010, // 0049 GETGBL R12 G16
- 0x88340D17, // 004A GETMBR R13 R6 K23
- 0x7C300200, // 004B CALL R12 1
- 0xA8020010, // 004C EXBLK 0 #005E
- 0x5C341800, // 004D MOVE R13 R12
- 0x7C340000, // 004E CALL R13 0
- 0x60380015, // 004F GETGBL R14 G21
- 0x543E002F, // 0050 LDINT R15 48
- 0x7C380200, // 0051 CALL R14 1
- 0x5C281C00, // 0052 MOVE R10 R14
- 0x68380001, // 0053 GETUPV R14 U1
- 0x8C381D15, // 0054 GETMET R14 R14 K21
- 0x5C401400, // 0055 MOVE R16 R10
- 0x5C440400, // 0056 MOVE R17 R2
- 0x5C481A00, // 0057 MOVE R18 R13
- 0x504C0200, // 0058 LDBOOL R19 1 0
- 0x7C380A00, // 0059 CALL R14 5
- 0x8C381116, // 005A GETMET R14 R8 K22
- 0x5C401400, // 005B MOVE R16 R10
- 0x7C380400, // 005C CALL R14 2
- 0x7001FFEE, // 005D JMP #004D
- 0x58300018, // 005E LDCONST R12 K24
- 0xAC300200, // 005F CATCH R12 1 0
- 0xB0080000, // 0060 RAISE 2 R0 R0
- 0x70020009, // 0061 JMP #006C
- 0x60280015, // 0062 GETGBL R10 G21
- 0x542E002F, // 0063 LDINT R11 48
- 0x7C280200, // 0064 CALL R10 1
- 0x5C201400, // 0065 MOVE R8 R10
- 0x68280001, // 0066 GETUPV R10 U1
- 0x8C281515, // 0067 GETMET R10 R10 K21
- 0x5C301000, // 0068 MOVE R12 R8
- 0x5C340400, // 0069 MOVE R13 R2
- 0x5C380C00, // 006A MOVE R14 R6
- 0x7C280800, // 006B CALL R10 4
- 0xB82A0400, // 006C GETNGBL R10 K2
- 0x8C281503, // 006D GETMET R10 R10 K3
- 0x58300004, // 006E LDCONST R12 K4
- 0x7C280400, // 006F CALL R10 2
- 0x782A000C, // 0070 JMPF R10 #007E
- 0x68280002, // 0071 GETUPV R10 U2
- 0x742A000A, // 0072 JMPT R10 #007E
- 0xB82A3200, // 0073 GETNGBL R10 K25
- 0x602C0018, // 0074 GETGBL R11 G24
- 0x5830001A, // 0075 LDCONST R12 K26
- 0x68340000, // 0076 GETUPV R13 U0
- 0x88341B1B, // 0077 GETMBR R13 R13 K27
- 0x5C380400, // 0078 MOVE R14 R2
- 0x5C3C0A00, // 0079 MOVE R15 R5
- 0x5C401200, // 007A MOVE R16 R9
- 0x7C2C0A00, // 007B CALL R11 5
- 0x58300004, // 007C LDCONST R12 K4
- 0x7C280400, // 007D CALL R10 2
- 0x7002003E, // 007E JMP #00BE
- 0x8824050B, // 007F GETMBR R9 R2 K11
- 0x4C280000, // 0080 LDNIL R10
- 0x2024120A, // 0081 NE R9 R9 R10
- 0x78260025, // 0082 JMPF R9 #00A9
- 0x780E0023, // 0083 JMPF R3 #00A8
- 0x60240015, // 0084 GETGBL R9 G21
- 0x542A002F, // 0085 LDINT R10 48
- 0x7C240200, // 0086 CALL R9 1
- 0x5C201200, // 0087 MOVE R8 R9
- 0x68240001, // 0088 GETUPV R9 U1
- 0x8C24131C, // 0089 GETMET R9 R9 K28
- 0x5C2C1000, // 008A MOVE R11 R8
- 0x5C300400, // 008B MOVE R12 R2
- 0x8834050B, // 008C GETMBR R13 R2 K11
- 0x7C240800, // 008D CALL R9 4
- 0xB8260400, // 008E GETNGBL R9 K2
- 0x8C241303, // 008F GETMET R9 R9 K3
- 0x582C0004, // 0090 LDCONST R11 K4
- 0x7C240400, // 0091 CALL R9 2
- 0x78260014, // 0092 JMPF R9 #00A8
- 0xB8263200, // 0093 GETNGBL R9 K25
- 0x60280018, // 0094 GETGBL R10 G24
- 0x582C001D, // 0095 LDCONST R11 K29
- 0x68300000, // 0096 GETUPV R12 U0
- 0x8830191B, // 0097 GETMBR R12 R12 K27
- 0x60340008, // 0098 GETGBL R13 G8
- 0x5C380400, // 0099 MOVE R14 R2
- 0x7C340200, // 009A CALL R13 1
- 0x5C380A00, // 009B MOVE R14 R5
- 0x883C050B, // 009C GETMBR R15 R2 K11
- 0x8840050B, // 009D GETMBR R16 R2 K11
- 0xB8460000, // 009E GETNGBL R17 K0
- 0x8844231E, // 009F GETMBR R17 R17 K30
- 0x1C402011, // 00A0 EQ R16 R16 R17
- 0x78420001, // 00A1 JMPF R16 #00A4
- 0x5840001E, // 00A2 LDCONST R16 K30
- 0x70020000, // 00A3 JMP #00A5
- 0x5840000A, // 00A4 LDCONST R16 K10
- 0x7C280C00, // 00A5 CALL R10 6
- 0x582C0004, // 00A6 LDCONST R11 K4
- 0x7C240400, // 00A7 CALL R9 2
- 0x70020014, // 00A8 JMP #00BE
- 0xB8260400, // 00A9 GETNGBL R9 K2
- 0x8C241303, // 00AA GETMET R9 R9 K3
- 0x582C0004, // 00AB LDCONST R11 K4
- 0x7C240400, // 00AC CALL R9 2
- 0x7826000D, // 00AD JMPF R9 #00BC
- 0x68240002, // 00AE GETUPV R9 U2
- 0x7426000B, // 00AF JMPT R9 #00BC
- 0xB8263200, // 00B0 GETNGBL R9 K25
- 0x60280018, // 00B1 GETGBL R10 G24
- 0x582C001F, // 00B2 LDCONST R11 K31
- 0x68300000, // 00B3 GETUPV R12 U0
- 0x8830191B, // 00B4 GETMBR R12 R12 K27
- 0x60340008, // 00B5 GETGBL R13 G8
- 0x5C380400, // 00B6 MOVE R14 R2
- 0x7C340200, // 00B7 CALL R13 1
- 0x5C380A00, // 00B8 MOVE R14 R5
- 0x7C280800, // 00B9 CALL R10 4
- 0x582C0004, // 00BA LDCONST R11 K4
- 0x7C240400, // 00BB CALL R9 2
- 0x780E0000, // 00BC JMPF R3 #00BE
- 0x501C0000, // 00BD LDBOOL R7 0 0
- 0x6024000F, // 00BE GETGBL R9 G15
- 0x5C281000, // 00BF MOVE R10 R8
- 0x602C0012, // 00C0 GETGBL R11 G18
- 0x7C240400, // 00C1 CALL R9 2
- 0x78260001, // 00C2 JMPF R9 #00C5
- 0x58240020, // 00C3 LDCONST R9 K32
- 0x70020000, // 00C4 JMP #00C6
- 0x4C240000, // 00C5 LDNIL R9
- 0x4C280000, // 00C6 LDNIL R10
- 0x2028100A, // 00C7 NE R10 R8 R10
- 0x782A0031, // 00C8 JMPF R10 #00FB
- 0x4C280000, // 00C9 LDNIL R10
- 0x1C28120A, // 00CA EQ R10 R9 R10
- 0x782A0001, // 00CB JMPF R10 #00CE
- 0x5C281000, // 00CC MOVE R10 R8
- 0x70020000, // 00CD JMP #00CF
- 0x94281009, // 00CE GETIDX R10 R8 R9
- 0x602C000C, // 00CF GETGBL R11 G12
- 0x88300121, // 00D0 GETMBR R12 R0 K33
- 0x7C2C0200, // 00D1 CALL R11 1
- 0x1C2C1720, // 00D2 EQ R11 R11 K32
- 0x782E0004, // 00D3 JMPF R11 #00D9
- 0x882C0121, // 00D4 GETMBR R11 R0 K33
- 0x8C2C1716, // 00D5 GETMET R11 R11 K22
- 0x5C341400, // 00D6 MOVE R13 R10
- 0x7C2C0400, // 00D7 CALL R11 2
- 0x70020014, // 00D8 JMP #00EE
- 0x882C0121, // 00D9 GETMBR R11 R0 K33
- 0x5431FFFE, // 00DA LDINT R12 -1
- 0x942C160C, // 00DB GETIDX R11 R11 R12
- 0x6030000C, // 00DC GETGBL R12 G12
- 0x5C341600, // 00DD MOVE R13 R11
- 0x7C300200, // 00DE CALL R12 1
- 0x6034000C, // 00DF GETGBL R13 G12
- 0x5C381400, // 00E0 MOVE R14 R10
- 0x7C340200, // 00E1 CALL R13 1
- 0x0030180D, // 00E2 ADD R12 R12 R13
- 0xB8360000, // 00E3 GETNGBL R13 K0
- 0x88341B12, // 00E4 GETMBR R13 R13 K18
- 0x88341B13, // 00E5 GETMBR R13 R13 K19
- 0x1830180D, // 00E6 LE R12 R12 R13
- 0x78320001, // 00E7 JMPF R12 #00EA
- 0x4030160A, // 00E8 CONNECT R12 R11 R10
- 0x70020003, // 00E9 JMP #00EE
- 0x88300121, // 00EA GETMBR R12 R0 K33
- 0x8C301916, // 00EB GETMET R12 R12 K22
- 0x5C381400, // 00EC MOVE R14 R10
- 0x7C300400, // 00ED CALL R12 2
- 0x4C2C0000, // 00EE LDNIL R11
- 0x1C2C120B, // 00EF EQ R11 R9 R11
- 0x782E0001, // 00F0 JMPF R11 #00F3
- 0x4C200000, // 00F1 LDNIL R8
- 0x70020006, // 00F2 JMP #00FA
- 0x00241322, // 00F3 ADD R9 R9 K34
- 0x602C000C, // 00F4 GETGBL R11 G12
- 0x5C301000, // 00F5 MOVE R12 R8
- 0x7C2C0200, // 00F6 CALL R11 1
- 0x282C120B, // 00F7 GE R11 R9 R11
- 0x782E0000, // 00F8 JMPF R11 #00FA
- 0x4C200000, // 00F9 LDNIL R8
- 0x7001FFCA, // 00FA JMP #00C6
- 0x80040E00, // 00FB RET 1 R7
- })
- ),
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 5),
- be_local_const_upval(1, 9),
- }),
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x68100001, // 0001 GETUPV R4 U1
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_IM,
- }),
- 1, /* has constants */
- ( &(const bvalue[40]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(get_active_endpoints),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(Path),
- /* K4 */ be_nested_str_weak(msg),
- /* K5 */ be_nested_str_weak(get_node_id),
- /* K6 */ be_nested_str_weak(ReportDataMessage),
- /* K7 */ be_nested_str_weak(attribute_reports),
- /* K8 */ be_nested_str_weak(attributes_requests),
- /* K9 */ be_nested_str_weak(endpoint),
- /* K10 */ be_nested_str_weak(cluster),
- /* K11 */ be_nested_str_weak(attribute),
- /* K12 */ be_nested_str_weak(fabric_filtered),
- /* K13 */ be_nested_str_weak(status),
- /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K15 */ be_nested_str_weak(tasmota),
- /* K16 */ be_nested_str_weak(loglevel),
- /* K17 */ be_const_int(3),
- /* K18 */ be_nested_str_weak(get_attribute_name),
- /* K19 */ be_nested_str_weak(log),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
- /* K21 */ be_nested_str_weak(local_session_id),
- /* K22 */ be_nested_str_weak(_X20_X28),
- /* K23 */ be_nested_str_weak(_X29),
- /* K24 */ be_nested_str_weak(),
- /* K25 */ be_nested_str_weak(process_attribute_expansion),
- /* K26 */ be_nested_str_weak(stop_iteration),
- /* K27 */ be_nested_str_weak(event_requests),
- /* K28 */ be_nested_str_weak(event_filters),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20EventFilter_X20filter_X3D_X25s_X20node_id_X3D_X25s),
- /* K30 */ be_nested_str_weak(int64),
- /* K31 */ be_nested_str_weak(toint64),
- /* K32 */ be_nested_str_weak(node),
- /* K33 */ be_nested_str_weak(tobytes),
- /* K34 */ be_nested_str_weak(MTR_X3A_X20node_id_X20filter_X20_X25s_X20doesn_X27t_X20match_X20_X25s),
- /* K35 */ be_nested_str_weak(tohex),
- /* K36 */ be_nested_str_weak(event_min),
- /* K37 */ be_nested_str_weak(event_reports),
- /* K38 */ be_nested_str_weak(event),
- /* K39 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X29_X20_X25s),
- }),
- be_str_weak(_inner_process_read_request),
- &be_const_str_solidified,
- ( &(const binstruction[191]) { /* code */
- 0x84140000, // 0000 CLOSURE R5 P0
- 0x88180100, // 0001 GETMBR R6 R0 K0
- 0x8C180D01, // 0002 GETMET R6 R6 K1
- 0x7C180200, // 0003 CALL R6 1
- 0xB81E0400, // 0004 GETNGBL R7 K2
- 0x8C1C0F03, // 0005 GETMET R7 R7 K3
- 0x7C1C0200, // 0006 CALL R7 1
- 0x901E0803, // 0007 SETMBR R7 K4 R3
- 0x4C200000, // 0008 LDNIL R8
- 0x20200608, // 0009 NE R8 R3 R8
- 0x78220002, // 000A JMPF R8 #000E
- 0x8C200705, // 000B GETMET R8 R3 K5
- 0x7C200200, // 000C CALL R8 1
- 0x70020000, // 000D JMP #000F
- 0x4C200000, // 000E LDNIL R8
- 0xB8260400, // 000F GETNGBL R9 K2
- 0x8C241306, // 0010 GETMET R9 R9 K6
- 0x7C240200, // 0011 CALL R9 1
- 0x60280012, // 0012 GETGBL R10 G18
- 0x7C280000, // 0013 CALL R10 0
- 0x90260E0A, // 0014 SETMBR R9 K7 R10
- 0x60280010, // 0015 GETGBL R10 G16
- 0x882C0508, // 0016 GETMBR R11 R2 K8
- 0x7C280200, // 0017 CALL R10 1
- 0xA802004B, // 0018 EXBLK 0 #0065
- 0x5C2C1400, // 0019 MOVE R11 R10
- 0x7C2C0000, // 001A CALL R11 0
- 0x88301709, // 001B GETMBR R12 R11 K9
- 0x901E120C, // 001C SETMBR R7 K9 R12
- 0x8830170A, // 001D GETMBR R12 R11 K10
- 0x901E140C, // 001E SETMBR R7 K10 R12
- 0x8830170B, // 001F GETMBR R12 R11 K11
- 0x901E160C, // 0020 SETMBR R7 K11 R12
- 0x8830050C, // 0021 GETMBR R12 R2 K12
- 0x901E180C, // 0022 SETMBR R7 K12 R12
- 0xB8320400, // 0023 GETNGBL R12 K2
- 0x8830190E, // 0024 GETMBR R12 R12 K14
- 0x901E1A0C, // 0025 SETMBR R7 K13 R12
- 0x88300F09, // 0026 GETMBR R12 R7 K9
- 0x4C340000, // 0027 LDNIL R13
- 0x1C30180D, // 0028 EQ R12 R12 R13
- 0x74320007, // 0029 JMPT R12 #0032
- 0x88300F0A, // 002A GETMBR R12 R7 K10
- 0x4C340000, // 002B LDNIL R13
- 0x1C30180D, // 002C EQ R12 R12 R13
- 0x74320003, // 002D JMPT R12 #0032
- 0x88300F0B, // 002E GETMBR R12 R7 K11
- 0x4C340000, // 002F LDNIL R13
- 0x1C30180D, // 0030 EQ R12 R12 R13
- 0x7832002C, // 0031 JMPF R12 #005F
- 0xB8321E00, // 0032 GETNGBL R12 K15
- 0x8C301910, // 0033 GETMET R12 R12 K16
- 0x58380011, // 0034 LDCONST R14 K17
- 0x7C300400, // 0035 CALL R12 2
- 0x78320027, // 0036 JMPF R12 #005F
- 0x88300F0A, // 0037 GETMBR R12 R7 K10
- 0x4C340000, // 0038 LDNIL R13
- 0x2030180D, // 0039 NE R12 R12 R13
- 0x78320019, // 003A JMPF R12 #0055
- 0x88300F0B, // 003B GETMBR R12 R7 K11
- 0x4C340000, // 003C LDNIL R13
- 0x2030180D, // 003D NE R12 R12 R13
- 0x78320015, // 003E JMPF R12 #0055
- 0xB8320400, // 003F GETNGBL R12 K2
- 0x8C301912, // 0040 GETMET R12 R12 K18
- 0x88380F0A, // 0041 GETMBR R14 R7 K10
- 0x883C0F0B, // 0042 GETMBR R15 R7 K11
- 0x7C300600, // 0043 CALL R12 3
- 0xB8362600, // 0044 GETNGBL R13 K19
- 0x60380018, // 0045 GETGBL R14 G24
- 0x583C0014, // 0046 LDCONST R15 K20
- 0x88400315, // 0047 GETMBR R16 R1 K21
- 0x60440008, // 0048 GETGBL R17 G8
- 0x5C480E00, // 0049 MOVE R18 R7
- 0x7C440200, // 004A CALL R17 1
- 0x78320002, // 004B JMPF R12 #004F
- 0x004A2C0C, // 004C ADD R18 K22 R12
- 0x00482517, // 004D ADD R18 R18 K23
- 0x70020000, // 004E JMP #0050
- 0x58480018, // 004F LDCONST R18 K24
- 0x00442212, // 0050 ADD R17 R17 R18
- 0x7C380600, // 0051 CALL R14 3
- 0x583C0011, // 0052 LDCONST R15 K17
- 0x7C340400, // 0053 CALL R13 2
- 0x70020009, // 0054 JMP #005F
- 0xB8322600, // 0055 GETNGBL R12 K19
- 0x60340018, // 0056 GETGBL R13 G24
- 0x58380014, // 0057 LDCONST R14 K20
- 0x883C0315, // 0058 GETMBR R15 R1 K21
- 0x60400008, // 0059 GETGBL R16 G8
- 0x5C440E00, // 005A MOVE R17 R7
- 0x7C400200, // 005B CALL R16 1
- 0x7C340600, // 005C CALL R13 3
- 0x58380011, // 005D LDCONST R14 K17
- 0x7C300400, // 005E CALL R12 2
- 0x88300100, // 005F GETMBR R12 R0 K0
- 0x8C301919, // 0060 GETMET R12 R12 K25
- 0x5C380E00, // 0061 MOVE R14 R7
- 0x843C0001, // 0062 CLOSURE R15 P1
- 0x7C300600, // 0063 CALL R12 3
- 0x7001FFB3, // 0064 JMP #0019
- 0x5828001A, // 0065 LDCONST R10 K26
- 0xAC280200, // 0066 CATCH R10 1 0
- 0xB0080000, // 0067 RAISE 2 R0 R0
- 0x8828051B, // 0068 GETMBR R10 R2 K27
- 0x882C051C, // 0069 GETMBR R11 R2 K28
- 0x4C300000, // 006A LDNIL R12
- 0x782A0050, // 006B JMPF R10 #00BD
- 0x782E0033, // 006C JMPF R11 #00A1
- 0x60340010, // 006D GETGBL R13 G16
- 0x5C381600, // 006E MOVE R14 R11
- 0x7C340200, // 006F CALL R13 1
- 0xA802002C, // 0070 EXBLK 0 #009E
- 0x5C381A00, // 0071 MOVE R14 R13
- 0x7C380000, // 0072 CALL R14 0
- 0xB83E1E00, // 0073 GETNGBL R15 K15
- 0x8C3C1F13, // 0074 GETMET R15 R15 K19
- 0x60440018, // 0075 GETGBL R17 G24
- 0x5848001D, // 0076 LDCONST R18 K29
- 0x5C4C1C00, // 0077 MOVE R19 R14
- 0x5C501000, // 0078 MOVE R20 R8
- 0x7C440600, // 0079 CALL R17 3
- 0x58480011, // 007A LDCONST R18 K17
- 0x7C3C0600, // 007B CALL R15 3
- 0xB83E3C00, // 007C GETNGBL R15 K30
- 0x8C3C1F1F, // 007D GETMET R15 R15 K31
- 0x88441D20, // 007E GETMBR R17 R14 K32
- 0x7C3C0400, // 007F CALL R15 2
- 0x783E001B, // 0080 JMPF R15 #009D
- 0x88401D20, // 0081 GETMBR R16 R14 K32
- 0x8C402121, // 0082 GETMET R16 R16 K33
- 0x7C400200, // 0083 CALL R16 1
- 0x20402008, // 0084 NE R16 R16 R8
- 0x7842000C, // 0085 JMPF R16 #0093
- 0xB8421E00, // 0086 GETNGBL R16 K15
- 0x8C402113, // 0087 GETMET R16 R16 K19
- 0x60480018, // 0088 GETGBL R18 G24
- 0x584C0022, // 0089 LDCONST R19 K34
- 0x8C501F21, // 008A GETMET R20 R15 K33
- 0x7C500200, // 008B CALL R20 1
- 0x8C502923, // 008C GETMET R20 R20 K35
- 0x7C500200, // 008D CALL R20 1
- 0x8C541123, // 008E GETMET R21 R8 K35
- 0x7C540200, // 008F CALL R21 1
- 0x7C480600, // 0090 CALL R18 3
- 0x7C400400, // 0091 CALL R16 2
- 0x7001FFDD, // 0092 JMP #0071
- 0xB8423C00, // 0093 GETNGBL R16 K30
- 0x8C40211F, // 0094 GETMET R16 R16 K31
- 0x88481D24, // 0095 GETMBR R18 R14 K36
- 0x7C400400, // 0096 CALL R16 2
- 0x4C440000, // 0097 LDNIL R17
- 0x20441811, // 0098 NE R17 R12 R17
- 0x74460001, // 0099 JMPT R17 #009C
- 0x14441810, // 009A LT R17 R12 R16
- 0x78460000, // 009B JMPF R17 #009D
- 0x5C302000, // 009C MOVE R12 R16
- 0x7001FFD2, // 009D JMP #0071
- 0x5834001A, // 009E LDCONST R13 K26
- 0xAC340200, // 009F CATCH R13 1 0
- 0xB0080000, // 00A0 RAISE 2 R0 R0
- 0x60340012, // 00A1 GETGBL R13 G18
- 0x7C340000, // 00A2 CALL R13 0
- 0x90264A0D, // 00A3 SETMBR R9 K37 R13
- 0x60340010, // 00A4 GETGBL R13 G16
- 0x5C381400, // 00A5 MOVE R14 R10
- 0x7C340200, // 00A6 CALL R13 1
- 0xA8020011, // 00A7 EXBLK 0 #00BA
- 0x5C381A00, // 00A8 MOVE R14 R13
- 0x7C380000, // 00A9 CALL R14 0
- 0x883C1D09, // 00AA GETMBR R15 R14 K9
- 0x901E120F, // 00AB SETMBR R7 K9 R15
- 0x883C1D0A, // 00AC GETMBR R15 R14 K10
- 0x901E140F, // 00AD SETMBR R7 K10 R15
- 0x883C1D26, // 00AE GETMBR R15 R14 K38
- 0x901E160F, // 00AF SETMBR R7 K11 R15
- 0xB83E1E00, // 00B0 GETNGBL R15 K15
- 0x8C3C1F13, // 00B1 GETMET R15 R15 K19
- 0x60440018, // 00B2 GETGBL R17 G24
- 0x58480027, // 00B3 LDCONST R18 K39
- 0x884C0315, // 00B4 GETMBR R19 R1 K21
- 0x5C500E00, // 00B5 MOVE R20 R7
- 0x7C440600, // 00B6 CALL R17 3
- 0x58480011, // 00B7 LDCONST R18 K17
- 0x7C3C0600, // 00B8 CALL R15 3
- 0x7001FFED, // 00B9 JMP #00A8
- 0x5834001A, // 00BA LDCONST R13 K26
- 0xAC340200, // 00BB CATCH R13 1 0
- 0xB0080000, // 00BC RAISE 2 R0 R0
- 0xA0000000, // 00BD CLOSE R0
- 0x80041200, // 00BE RET 1 R9
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: report_data
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_report_data, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(ReportDataMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(355795236),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(path2raw),
+ /* K4 */ be_nested_str_weak(tag_sub),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(tlv2raw),
}),
- be_str_weak(report_data),
+ be_str_weak(attributedata2raw),
&be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x80040800, // 0007 RET 1 R4
+ ( &(const binstruction[23]) { /* code */
+ 0x8C140300, // 0000 GETMET R5 R1 K0
+ 0x581C0001, // 0001 LDCONST R7 K1
+ 0x5421FFFB, // 0002 LDINT R8 -4
+ 0x7C140600, // 0003 CALL R5 3
+ 0x8C140300, // 0004 GETMET R5 R1 K0
+ 0x581C0002, // 0005 LDCONST R7 K2
+ 0x5421FFFD, // 0006 LDINT R8 -2
+ 0x7C140600, // 0007 CALL R5 3
+ 0x8C140103, // 0008 GETMET R5 R0 K3
+ 0x5C1C0200, // 0009 MOVE R7 R1
+ 0x5C200400, // 000A MOVE R8 R2
+ 0x58240002, // 000B LDCONST R9 K2
+ 0x5C280800, // 000C MOVE R10 R4
+ 0x7C140A00, // 000D CALL R5 5
+ 0x900E0905, // 000E SETMBR R3 K4 K5
+ 0x8C140706, // 000F GETMET R5 R3 K6
+ 0x5C1C0200, // 0010 MOVE R7 R1
+ 0x7C140400, // 0011 CALL R5 2
+ 0x8C140300, // 0012 GETMET R5 R1 K0
+ 0x541E1817, // 0013 LDINT R7 6168
+ 0x5421FFFD, // 0014 LDINT R8 -2
+ 0x7C140600, // 0015 CALL R5 3
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -2902,38 +2291,204 @@ be_local_closure(class_Matter_IM_attributestatus2raw, /* name */
/********************************************************************
-** Solidified function: send_subscribe_response
+** Solidified function: process_write_request
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_response, /* name */
+be_local_closure(class_Matter_IM_process_write_request, /* name */
be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
+ 21, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_SubscribeResponse),
+ ( &(const bvalue[39]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(WriteRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(Path),
+ /* K4 */ be_nested_str_weak(suppress_response),
+ /* K5 */ be_nested_str_weak(write_requests),
+ /* K6 */ be_nested_str_weak(WriteResponseMessage),
+ /* K7 */ be_nested_str_weak(write_responses),
+ /* K8 */ be_nested_str_weak(PathGenerator),
+ /* K9 */ be_nested_str_weak(device),
+ /* K10 */ be_nested_str_weak(path),
+ /* K11 */ be_nested_str_weak(data),
+ /* K12 */ be_nested_str_weak(copy),
+ /* K13 */ be_nested_str_weak(cluster),
+ /* K14 */ be_nested_str_weak(attribute),
+ /* K15 */ be_nested_str_weak(status),
+ /* K16 */ be_nested_str_weak(INVALID_ACTION),
+ /* K17 */ be_nested_str_weak(write_single_attribute_status_to_bytes),
+ /* K18 */ be_nested_str_weak(endpoint),
+ /* K19 */ be_nested_str_weak(tasmota),
+ /* K20 */ be_nested_str_weak(loglevel),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(get_attribute_name),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
+ /* K25 */ be_nested_str_weak(_X20_X28),
+ /* K26 */ be_nested_str_weak(_X29),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_nested_str_weak(start),
+ /* K29 */ be_nested_str_weak(is_direct),
+ /* K30 */ be_nested_str_weak(next),
+ /* K31 */ be_nested_str_weak(msg),
+ /* K32 */ be_nested_str_weak(get_pi),
+ /* K33 */ be_nested_str_weak(UNSUPPORTED_WRITE),
+ /* K34 */ be_nested_str_weak(write_attribute),
+ /* K35 */ be_nested_str_weak(session),
+ /* K36 */ be_nested_str_weak(SUCCESS),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ /* K38 */ be_nested_str_weak(send_write_response),
}),
- be_str_weak(send_subscribe_response),
+ be_str_weak(process_write_request),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0xB81A0400, // 0002 GETNGBL R6 K2
- 0x8C180D03, // 0003 GETMET R6 R6 K3
- 0x5C200200, // 0004 MOVE R8 R1
- 0x5C240400, // 0005 MOVE R9 R2
- 0x5C280600, // 0006 MOVE R10 R3
- 0x7C180800, // 0007 CALL R6 4
- 0x7C100400, // 0008 CALL R4 2
- 0x80000000, // 0009 RET 0
+ ( &(const binstruction[141]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0xB8120000, // 0006 GETNGBL R4 K0
+ 0x8C100903, // 0007 GETMET R4 R4 K3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x88140704, // 0009 GETMBR R5 R3 K4
+ 0x88180705, // 000A GETMBR R6 R3 K5
+ 0x4C1C0000, // 000B LDNIL R7
+ 0x20180C07, // 000C NE R6 R6 R7
+ 0x781A007C, // 000D JMPF R6 #008B
+ 0xB81A0000, // 000E GETNGBL R6 K0
+ 0x8C180D06, // 000F GETMET R6 R6 K6
+ 0x7C180200, // 0010 CALL R6 1
+ 0x601C0012, // 0011 GETGBL R7 G18
+ 0x7C1C0000, // 0012 CALL R7 0
+ 0x901A0E07, // 0013 SETMBR R6 K7 R7
+ 0xB81E0000, // 0014 GETNGBL R7 K0
+ 0x8C1C0F08, // 0015 GETMET R7 R7 K8
+ 0x88240109, // 0016 GETMBR R9 R0 K9
+ 0x7C1C0400, // 0017 CALL R7 2
+ 0x60200010, // 0018 GETGBL R8 G16
+ 0x88240705, // 0019 GETMBR R9 R3 K5
+ 0x7C200200, // 001A CALL R8 1
+ 0xA8020065, // 001B EXBLK 0 #0082
+ 0x5C241000, // 001C MOVE R9 R8
+ 0x7C240000, // 001D CALL R9 0
+ 0x8828130A, // 001E GETMBR R10 R9 K10
+ 0x882C130B, // 001F GETMBR R11 R9 K11
+ 0x8C30090C, // 0020 GETMET R12 R4 K12
+ 0x5C381400, // 0021 MOVE R14 R10
+ 0x7C300400, // 0022 CALL R12 2
+ 0x8830150D, // 0023 GETMBR R12 R10 K13
+ 0x4C340000, // 0024 LDNIL R13
+ 0x1C30180D, // 0025 EQ R12 R12 R13
+ 0x74320003, // 0026 JMPT R12 #002B
+ 0x8830150E, // 0027 GETMBR R12 R10 K14
+ 0x4C340000, // 0028 LDNIL R13
+ 0x1C30180D, // 0029 EQ R12 R12 R13
+ 0x78320008, // 002A JMPF R12 #0034
+ 0xB8320000, // 002B GETNGBL R12 K0
+ 0x88301910, // 002C GETMBR R12 R12 K16
+ 0x90121E0C, // 002D SETMBR R4 K15 R12
+ 0x8C300111, // 002E GETMET R12 R0 K17
+ 0x5C380C00, // 002F MOVE R14 R6
+ 0x5C3C0800, // 0030 MOVE R15 R4
+ 0x4C400000, // 0031 LDNIL R16
+ 0x7C300800, // 0032 CALL R12 4
+ 0x7001FFE7, // 0033 JMP #001C
+ 0x88301512, // 0034 GETMBR R12 R10 K18
+ 0x4C340000, // 0035 LDNIL R13
+ 0x1C30180D, // 0036 EQ R12 R12 R13
+ 0x78320016, // 0037 JMPF R12 #004F
+ 0xB8322600, // 0038 GETNGBL R12 K19
+ 0x8C301914, // 0039 GETMET R12 R12 K20
+ 0x58380015, // 003A LDCONST R14 K21
+ 0x7C300400, // 003B CALL R12 2
+ 0x78320011, // 003C JMPF R12 #004F
+ 0xB8320000, // 003D GETNGBL R12 K0
+ 0x8C301916, // 003E GETMET R12 R12 K22
+ 0x8838150D, // 003F GETMBR R14 R10 K13
+ 0x883C150E, // 0040 GETMBR R15 R10 K14
+ 0x7C300600, // 0041 CALL R12 3
+ 0xB8362E00, // 0042 GETNGBL R13 K23
+ 0x60380008, // 0043 GETGBL R14 G8
+ 0x5C3C0800, // 0044 MOVE R15 R4
+ 0x7C380200, // 0045 CALL R14 1
+ 0x003A300E, // 0046 ADD R14 K24 R14
+ 0x78320002, // 0047 JMPF R12 #004B
+ 0x003E320C, // 0048 ADD R15 K25 R12
+ 0x003C1F1A, // 0049 ADD R15 R15 K26
+ 0x70020000, // 004A JMP #004C
+ 0x583C001B, // 004B LDCONST R15 K27
+ 0x00381C0F, // 004C ADD R14 R14 R15
+ 0x583C0015, // 004D LDCONST R15 K21
+ 0x7C340400, // 004E CALL R13 2
+ 0x8C300F1C, // 004F GETMET R12 R7 K28
+ 0x88381512, // 0050 GETMBR R14 R10 K18
+ 0x883C150D, // 0051 GETMBR R15 R10 K13
+ 0x8840150E, // 0052 GETMBR R16 R10 K14
+ 0x7C300800, // 0053 CALL R12 4
+ 0x8C300F1D, // 0054 GETMET R12 R7 K29
+ 0x7C300200, // 0055 CALL R12 1
+ 0x4C340000, // 0056 LDNIL R13
+ 0x8C380F1E, // 0057 GETMET R14 R7 K30
+ 0x7C380200, // 0058 CALL R14 1
+ 0x5C341C00, // 0059 MOVE R13 R14
+ 0x783A0025, // 005A JMPF R14 #0081
+ 0x90363E01, // 005B SETMBR R13 K31 R1
+ 0x88381B0F, // 005C GETMBR R14 R13 K15
+ 0x4C3C0000, // 005D LDNIL R15
+ 0x20381C0F, // 005E NE R14 R14 R15
+ 0x783A0007, // 005F JMPF R14 #0068
+ 0x4C380000, // 0060 LDNIL R14
+ 0x90361E0E, // 0061 SETMBR R13 K15 R14
+ 0x8C380111, // 0062 GETMET R14 R0 K17
+ 0x5C400C00, // 0063 MOVE R16 R6
+ 0x5C441A00, // 0064 MOVE R17 R13
+ 0x5C481600, // 0065 MOVE R18 R11
+ 0x7C380800, // 0066 CALL R14 4
+ 0x70020017, // 0067 JMP #0080
+ 0x8C380F20, // 0068 GETMET R14 R7 K32
+ 0x7C380200, // 0069 CALL R14 1
+ 0xB83E0000, // 006A GETNGBL R15 K0
+ 0x883C1F21, // 006B GETMBR R15 R15 K33
+ 0x90361E0F, // 006C SETMBR R13 K15 R15
+ 0x4C3C0000, // 006D LDNIL R15
+ 0x203C1C0F, // 006E NE R15 R14 R15
+ 0x783E0005, // 006F JMPF R15 #0076
+ 0x8C3C1D22, // 0070 GETMET R15 R14 K34
+ 0x88440323, // 0071 GETMBR R17 R1 K35
+ 0x5C481A00, // 0072 MOVE R18 R13
+ 0x5C4C1600, // 0073 MOVE R19 R11
+ 0x7C3C0800, // 0074 CALL R15 4
+ 0x70020000, // 0075 JMP #0077
+ 0x4C3C0000, // 0076 LDNIL R15
+ 0x783E0002, // 0077 JMPF R15 #007B
+ 0xB8420000, // 0078 GETNGBL R16 K0
+ 0x88402124, // 0079 GETMBR R16 R16 K36
+ 0x90361E10, // 007A SETMBR R13 K15 R16
+ 0x8C400111, // 007B GETMET R16 R0 K17
+ 0x5C480C00, // 007C MOVE R18 R6
+ 0x5C4C1A00, // 007D MOVE R19 R13
+ 0x5C501600, // 007E MOVE R20 R11
+ 0x7C400800, // 007F CALL R16 4
+ 0x7001FFD5, // 0080 JMP #0057
+ 0x7001FF99, // 0081 JMP #001C
+ 0x58200025, // 0082 LDCONST R8 K37
+ 0xAC200200, // 0083 CATCH R8 1 0
+ 0xB0080000, // 0084 RAISE 2 R0 R0
+ 0x5C200A00, // 0085 MOVE R8 R5
+ 0x74220003, // 0086 JMPT R8 #008B
+ 0x8C200126, // 0087 GETMET R8 R0 K38
+ 0x5C280200, // 0088 MOVE R10 R1
+ 0x5C2C0C00, // 0089 MOVE R11 R6
+ 0x7C200600, // 008A CALL R8 3
+ 0x50180200, // 008B LDBOOL R6 1 0
+ 0x80040C00, // 008C RET 1 R6
})
)
);
@@ -2941,10 +2496,10 @@ be_local_closure(class_Matter_IM_send_subscribe_response, /* name */
/********************************************************************
-** Solidified function: send_report_data
+** Solidified function: send_report_data_pull
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_report_data, /* name */
+be_local_closure(class_Matter_IM_send_report_data_pull, /* name */
be_nested_proto(
9, /* nstack */
3, /* argc */
@@ -2958,9 +2513,9 @@ be_local_closure(class_Matter_IM_send_report_data, /* name */
/* K0 */ be_nested_str_weak(send_queue),
/* K1 */ be_nested_str_weak(push),
/* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_ReportData),
+ /* K3 */ be_nested_str_weak(IM_ReportData_Pull),
}),
- be_str_weak(send_report_data),
+ be_str_weak(send_report_data_pull),
&be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
@@ -2979,50 +2534,269 @@ be_local_closure(class_Matter_IM_send_report_data, /* name */
/********************************************************************
-** Solidified function: find_sendqueue_by_exchangeid
+** Solidified function: process_invoke_request_solo
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_find_sendqueue_by_exchangeid, /* name */
+be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
+ 15, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(get_exchangeid),
- /* K3 */ be_const_int(1),
+ ( &(const bvalue[42]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(profiler),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(invoke_request_solo_start),
+ /* K4 */ be_nested_str_weak(msg),
+ /* K5 */ be_nested_str_weak(status),
+ /* K6 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
+ /* K7 */ be_nested_str_weak(get_command_name),
+ /* K8 */ be_nested_str_weak(cluster),
+ /* K9 */ be_nested_str_weak(command),
+ /* K10 */ be_nested_str_weak(device),
+ /* K11 */ be_nested_str_weak(invoke_request),
+ /* K12 */ be_nested_str_weak(session),
+ /* K13 */ be_nested_str_weak(command_fields),
+ /* K14 */ be_nested_str_weak(COMMAND_X20DONE),
+ /* K15 */ be_nested_str_weak(_X28),
+ /* K16 */ be_nested_str_weak(_X29_X20),
+ /* K17 */ be_nested_str_weak(),
+ /* K18 */ be_nested_str_weak(tasmota),
+ /* K19 */ be_nested_str_weak(loglevel),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
+ /* K22 */ be_nested_str_weak(local_session_id),
+ /* K23 */ be_nested_str_weak(add),
+ /* K24 */ be_const_int(354943030),
+ /* K25 */ be_const_int(1),
+ /* K26 */ be_nested_str_weak(SUCCESS),
+ /* K27 */ be_nested_str_weak(invokeresponse2raw),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
+ /* K29 */ be_nested_str_weak(exchange_id),
+ /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
+ /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
+ /* K32 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
+ /* K33 */ be_const_int(405077761),
+ /* K34 */ be_nested_str_weak(build_response),
+ /* K35 */ be_nested_str_weak(message_handler),
+ /* K36 */ be_nested_str_weak(raw),
+ /* K37 */ be_nested_str_weak(clear),
+ /* K38 */ be_nested_str_weak(encode_frame),
+ /* K39 */ be_nested_str_weak(encrypt),
+ /* K40 */ be_nested_str_weak(send_response_frame),
+ /* K41 */ be_nested_str_weak(RESPONSE_X20SENT),
}),
- be_str_weak(find_sendqueue_by_exchangeid),
+ be_str_weak(process_invoke_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0001, // 0002 JMPF R2 #0005
- 0x4C080000, // 0003 LDNIL R2
- 0x80040400, // 0004 RET 1 R2
- 0x58080000, // 0005 LDCONST R2 K0
- 0x600C000C, // 0006 GETGBL R3 G12
- 0x88100101, // 0007 GETMBR R4 R0 K1
- 0x7C0C0200, // 0008 CALL R3 1
- 0x140C0403, // 0009 LT R3 R2 R3
- 0x780E0008, // 000A JMPF R3 #0014
- 0x880C0101, // 000B GETMBR R3 R0 K1
- 0x940C0602, // 000C GETIDX R3 R3 R2
- 0x8C100702, // 000D GETMET R4 R3 K2
- 0x7C100200, // 000E CALL R4 1
- 0x1C100801, // 000F EQ R4 R4 R1
- 0x78120000, // 0010 JMPF R4 #0012
- 0x80040600, // 0011 RET 1 R3
- 0x00080503, // 0012 ADD R2 R2 K3
- 0x7001FFF1, // 0013 JMP #0006
- 0x4C0C0000, // 0014 LDNIL R3
- 0x80040600, // 0015 RET 1 R3
+ ( &(const binstruction[203]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x880C0701, // 0001 GETMBR R3 R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x58140003, // 0003 LDCONST R5 K3
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0x900A0801, // 0005 SETMBR R2 K4 R1
+ 0xB80E0000, // 0006 GETNGBL R3 K0
+ 0x880C0706, // 0007 GETMBR R3 R3 K6
+ 0x900A0A03, // 0008 SETMBR R2 K5 R3
+ 0xB80E0000, // 0009 GETNGBL R3 K0
+ 0x8C0C0707, // 000A GETMET R3 R3 K7
+ 0x88140508, // 000B GETMBR R5 R2 K8
+ 0x88180509, // 000C GETMBR R6 R2 K9
+ 0x7C0C0600, // 000D CALL R3 3
+ 0x60100008, // 000E GETGBL R4 G8
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C100200, // 0010 CALL R4 1
+ 0x8814010A, // 0011 GETMBR R5 R0 K10
+ 0x8C140B0B, // 0012 GETMET R5 R5 K11
+ 0x881C030C, // 0013 GETMBR R7 R1 K12
+ 0x8820050D, // 0014 GETMBR R8 R2 K13
+ 0x5C240400, // 0015 MOVE R9 R2
+ 0x7C140800, // 0016 CALL R5 4
+ 0xB81A0000, // 0017 GETNGBL R6 K0
+ 0x88180D01, // 0018 GETMBR R6 R6 K1
+ 0x8C180D02, // 0019 GETMET R6 R6 K2
+ 0x5820000E, // 001A LDCONST R8 K14
+ 0x7C180400, // 001B CALL R6 2
+ 0x88180502, // 001C GETMBR R6 R2 K2
+ 0x4C1C0000, // 001D LDNIL R7
+ 0x20180C07, // 001E NE R6 R6 R7
+ 0x781A0005, // 001F JMPF R6 #0026
+ 0x60180008, // 0020 GETGBL R6 G8
+ 0x881C0502, // 0021 GETMBR R7 R2 K2
+ 0x7C180200, // 0022 CALL R6 1
+ 0x001A1E06, // 0023 ADD R6 K15 R6
+ 0x00180D10, // 0024 ADD R6 R6 K16
+ 0x70020000, // 0025 JMP #0027
+ 0x58180011, // 0026 LDCONST R6 K17
+ 0xB81E2400, // 0027 GETNGBL R7 K18
+ 0x8C1C0F13, // 0028 GETMET R7 R7 K19
+ 0x58240014, // 0029 LDCONST R9 K20
+ 0x7C1C0400, // 002A CALL R7 2
+ 0x781E000D, // 002B JMPF R7 #003A
+ 0xB81E0400, // 002C GETNGBL R7 K2
+ 0x60200018, // 002D GETGBL R8 G24
+ 0x58240015, // 002E LDCONST R9 K21
+ 0x8828030C, // 002F GETMBR R10 R1 K12
+ 0x88281516, // 0030 GETMBR R10 R10 K22
+ 0x5C2C0800, // 0031 MOVE R11 R4
+ 0x780E0001, // 0032 JMPF R3 #0035
+ 0x5C300600, // 0033 MOVE R12 R3
+ 0x70020000, // 0034 JMP #0036
+ 0x58300011, // 0035 LDCONST R12 K17
+ 0x5C340C00, // 0036 MOVE R13 R6
+ 0x7C200A00, // 0037 CALL R8 5
+ 0x58240014, // 0038 LDCONST R9 K20
+ 0x7C1C0400, // 0039 CALL R7 2
+ 0x4C1C0000, // 003A LDNIL R7
+ 0x900A0407, // 003B SETMBR R2 K2 R7
+ 0x601C0015, // 003C GETGBL R7 G21
+ 0x5422002F, // 003D LDINT R8 48
+ 0x7C1C0200, // 003E CALL R7 1
+ 0x8C200F17, // 003F GETMET R8 R7 K23
+ 0x58280018, // 0040 LDCONST R10 K24
+ 0x542DFFFB, // 0041 LDINT R11 -4
+ 0x7C200600, // 0042 CALL R8 3
+ 0x8C200F17, // 0043 GETMET R8 R7 K23
+ 0x58280019, // 0044 LDCONST R10 K25
+ 0x582C0019, // 0045 LDCONST R11 K25
+ 0x7C200600, // 0046 CALL R8 3
+ 0x50200200, // 0047 LDBOOL R8 1 0
+ 0x1C200A08, // 0048 EQ R8 R5 R8
+ 0x74220004, // 0049 JMPT R8 #004F
+ 0x88200505, // 004A GETMBR R8 R2 K5
+ 0xB8260000, // 004B GETNGBL R9 K0
+ 0x8824131A, // 004C GETMBR R9 R9 K26
+ 0x1C201009, // 004D EQ R8 R8 R9
+ 0x78220016, // 004E JMPF R8 #0066
+ 0xB8220000, // 004F GETNGBL R8 K0
+ 0x8820111A, // 0050 GETMBR R8 R8 K26
+ 0x900A0A08, // 0051 SETMBR R2 K5 R8
+ 0x8C20011B, // 0052 GETMET R8 R0 K27
+ 0x5C280E00, // 0053 MOVE R10 R7
+ 0x5C2C0400, // 0054 MOVE R11 R2
+ 0x4C300000, // 0055 LDNIL R12
+ 0x7C200800, // 0056 CALL R8 4
+ 0xB8222400, // 0057 GETNGBL R8 K18
+ 0x8C201113, // 0058 GETMET R8 R8 K19
+ 0x58280014, // 0059 LDCONST R10 K20
+ 0x7C200400, // 005A CALL R8 2
+ 0x78220008, // 005B JMPF R8 #0065
+ 0xB8220400, // 005C GETNGBL R8 K2
+ 0x60240018, // 005D GETGBL R9 G24
+ 0x5828001C, // 005E LDCONST R10 K28
+ 0x882C030C, // 005F GETMBR R11 R1 K12
+ 0x882C1716, // 0060 GETMBR R11 R11 K22
+ 0x8830031D, // 0061 GETMBR R12 R1 K29
+ 0x7C240600, // 0062 CALL R9 3
+ 0x58280014, // 0063 LDCONST R10 K20
+ 0x7C200400, // 0064 CALL R8 2
+ 0x70020043, // 0065 JMP #00AA
+ 0x4C200000, // 0066 LDNIL R8
+ 0x20200A08, // 0067 NE R8 R5 R8
+ 0x78220017, // 0068 JMPF R8 #0081
+ 0x8C20011B, // 0069 GETMET R8 R0 K27
+ 0x5C280E00, // 006A MOVE R10 R7
+ 0x5C2C0400, // 006B MOVE R11 R2
+ 0x5C300A00, // 006C MOVE R12 R5
+ 0x7C200800, // 006D CALL R8 4
+ 0x5C200600, // 006E MOVE R8 R3
+ 0x74220000, // 006F JMPT R8 #0071
+ 0x580C0011, // 0070 LDCONST R3 K17
+ 0xB8222400, // 0071 GETNGBL R8 K18
+ 0x8C201113, // 0072 GETMET R8 R8 K19
+ 0x58280014, // 0073 LDCONST R10 K20
+ 0x7C200400, // 0074 CALL R8 2
+ 0x78220009, // 0075 JMPF R8 #0080
+ 0xB8220400, // 0076 GETNGBL R8 K2
+ 0x60240018, // 0077 GETGBL R9 G24
+ 0x5828001E, // 0078 LDCONST R10 K30
+ 0x882C030C, // 0079 GETMBR R11 R1 K12
+ 0x882C1716, // 007A GETMBR R11 R11 K22
+ 0x5C300400, // 007B MOVE R12 R2
+ 0x5C340600, // 007C MOVE R13 R3
+ 0x7C240800, // 007D CALL R9 4
+ 0x58280014, // 007E LDCONST R10 K20
+ 0x7C200400, // 007F CALL R8 2
+ 0x70020028, // 0080 JMP #00AA
+ 0x88200505, // 0081 GETMBR R8 R2 K5
+ 0x4C240000, // 0082 LDNIL R9
+ 0x20201009, // 0083 NE R8 R8 R9
+ 0x78220014, // 0084 JMPF R8 #009A
+ 0x8C20011B, // 0085 GETMET R8 R0 K27
+ 0x5C280E00, // 0086 MOVE R10 R7
+ 0x5C2C0400, // 0087 MOVE R11 R2
+ 0x4C300000, // 0088 LDNIL R12
+ 0x7C200800, // 0089 CALL R8 4
+ 0xB8222400, // 008A GETNGBL R8 K18
+ 0x8C201113, // 008B GETMET R8 R8 K19
+ 0x58280014, // 008C LDCONST R10 K20
+ 0x7C200400, // 008D CALL R8 2
+ 0x78220009, // 008E JMPF R8 #0099
+ 0xB8220400, // 008F GETNGBL R8 K2
+ 0x60240018, // 0090 GETGBL R9 G24
+ 0x5828001F, // 0091 LDCONST R10 K31
+ 0x882C030C, // 0092 GETMBR R11 R1 K12
+ 0x882C1716, // 0093 GETMBR R11 R11 K22
+ 0x88300505, // 0094 GETMBR R12 R2 K5
+ 0x8834031D, // 0095 GETMBR R13 R1 K29
+ 0x7C240800, // 0096 CALL R9 4
+ 0x58280014, // 0097 LDCONST R10 K20
+ 0x7C200400, // 0098 CALL R8 2
+ 0x7002000F, // 0099 JMP #00AA
+ 0xB8222400, // 009A GETNGBL R8 K18
+ 0x8C201113, // 009B GETMET R8 R8 K19
+ 0x58280014, // 009C LDCONST R10 K20
+ 0x7C200400, // 009D CALL R8 2
+ 0x78220008, // 009E JMPF R8 #00A8
+ 0xB8220400, // 009F GETNGBL R8 K2
+ 0x60240018, // 00A0 GETGBL R9 G24
+ 0x58280020, // 00A1 LDCONST R10 K32
+ 0x882C030C, // 00A2 GETMBR R11 R1 K12
+ 0x882C1716, // 00A3 GETMBR R11 R11 K22
+ 0x8830031D, // 00A4 GETMBR R12 R1 K29
+ 0x7C240600, // 00A5 CALL R9 3
+ 0x58280014, // 00A6 LDCONST R10 K20
+ 0x7C200400, // 00A7 CALL R8 2
+ 0x50200000, // 00A8 LDBOOL R8 0 0
+ 0x80041000, // 00A9 RET 1 R8
+ 0x8C200F17, // 00AA GETMET R8 R7 K23
+ 0x58280021, // 00AB LDCONST R10 K33
+ 0x542DFFFB, // 00AC LDINT R11 -4
+ 0x7C200600, // 00AD CALL R8 3
+ 0x8C200F17, // 00AE GETMET R8 R7 K23
+ 0x542A0017, // 00AF LDINT R10 24
+ 0x582C0019, // 00B0 LDCONST R11 K25
+ 0x7C200600, // 00B1 CALL R8 3
+ 0x8C200322, // 00B2 GETMET R8 R1 K34
+ 0x542A0008, // 00B3 LDINT R10 9
+ 0x502C0200, // 00B4 LDBOOL R11 1 0
+ 0x7C200600, // 00B5 CALL R8 3
+ 0x8824010A, // 00B6 GETMBR R9 R0 K10
+ 0x88241323, // 00B7 GETMBR R9 R9 K35
+ 0x88280324, // 00B8 GETMBR R10 R1 K36
+ 0x8C2C1525, // 00B9 GETMET R11 R10 K37
+ 0x7C2C0200, // 00BA CALL R11 1
+ 0x8C2C1126, // 00BB GETMET R11 R8 K38
+ 0x5C340E00, // 00BC MOVE R13 R7
+ 0x5C381400, // 00BD MOVE R14 R10
+ 0x7C2C0600, // 00BE CALL R11 3
+ 0x8C2C1127, // 00BF GETMET R11 R8 K39
+ 0x7C2C0200, // 00C0 CALL R11 1
+ 0x8C2C1328, // 00C1 GETMET R11 R9 K40
+ 0x5C341000, // 00C2 MOVE R13 R8
+ 0x7C2C0400, // 00C3 CALL R11 2
+ 0xB82E0000, // 00C4 GETNGBL R11 K0
+ 0x882C1701, // 00C5 GETMBR R11 R11 K1
+ 0x8C2C1702, // 00C6 GETMET R11 R11 K2
+ 0x58340029, // 00C7 LDCONST R13 K41
+ 0x7C2C0400, // 00C8 CALL R11 2
+ 0x502C0200, // 00C9 LDBOOL R11 1 0
+ 0x80041600, // 00CA RET 1 R11
})
)
);
@@ -3060,7 +2834,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/* K13 */ be_nested_str_weak(is_list),
/* K14 */ be_nested_str_weak(is_array),
/* K15 */ be_nested_str_weak(encode_len),
- /* K16 */ be_nested_str_weak(IM_ReportData),
+ /* K16 */ be_nested_str_weak(IM_ReportData_Pull),
/* K17 */ be_nested_str_weak(MAX_MESSAGE),
/* K18 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Response_X20to_X20big_X2C_X20revert_X20to_X20non_X2Dsolo),
/* K19 */ be_const_int(3),
@@ -3068,7 +2842,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/* K21 */ be_nested_str_weak(parse),
/* K22 */ be_nested_str_weak(raw),
/* K23 */ be_nested_str_weak(app_payload_idx),
- /* K24 */ be_nested_str_weak(process_read_request),
+ /* K24 */ be_nested_str_weak(process_read_request_pull),
/* K25 */ be_nested_str_weak(add),
/* K26 */ be_const_int(1),
/* K27 */ be_nested_str_weak(attributedata2raw),
@@ -3362,198 +3136,12 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/********************************************************************
-** Solidified function: send_enqueued
+** Solidified function: process_read_request_pull
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_enqueued, /* name */
+be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(finish),
- /* K3 */ be_nested_str_weak(ready),
- /* K4 */ be_nested_str_weak(send_im),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
- /* K7 */ be_nested_str_weak(resp),
- /* K8 */ be_nested_str_weak(exchange_id),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_const_int(1),
- }),
- be_str_weak(send_enqueued),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0019, // 0005 JMPF R3 #0020
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x88100702, // 0008 GETMBR R4 R3 K2
- 0x74120004, // 0009 JMPT R4 #000F
- 0x88100703, // 000A GETMBR R4 R3 K3
- 0x78120002, // 000B JMPF R4 #000F
- 0x8C100704, // 000C GETMET R4 R3 K4
- 0x5C180200, // 000D MOVE R6 R1
- 0x7C100400, // 000E CALL R4 2
- 0x88100702, // 000F GETMBR R4 R3 K2
- 0x7812000C, // 0010 JMPF R4 #001E
- 0xB8120A00, // 0011 GETNGBL R4 K5
- 0x60140008, // 0012 GETGBL R5 G8
- 0x88180707, // 0013 GETMBR R6 R3 K7
- 0x88180D08, // 0014 GETMBR R6 R6 K8
- 0x7C140200, // 0015 CALL R5 1
- 0x00160C05, // 0016 ADD R5 K6 R5
- 0x541A0003, // 0017 LDINT R6 4
- 0x7C100400, // 0018 CALL R4 2
- 0x88100101, // 0019 GETMBR R4 R0 K1
- 0x8C100909, // 001A GETMET R4 R4 K9
- 0x5C180400, // 001B MOVE R6 R2
- 0x7C100400, // 001C CALL R4 2
- 0x70020000, // 001D JMP #001F
- 0x0008050A, // 001E ADD R2 R2 K10
- 0x7001FFE0, // 001F JMP #0001
- 0x80000000, // 0020 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(subs_shop),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(IM_Subscription_Shop),
- /* K5 */ be_nested_str_weak(read_request_solo),
- /* K6 */ be_nested_str_weak(ReadRequestMessage_solo),
- /* K7 */ be_nested_str_weak(invoke_request_solo),
- /* K8 */ be_nested_str_weak(InvokeRequestMessage_solo),
- /* K9 */ be_nested_str_weak(tlv_solo),
- /* K10 */ be_nested_str_weak(TLV),
- /* K11 */ be_nested_str_weak(Matter_TLV_item),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x90020202, // 0003 SETMBR R0 K1 R2
- 0xB80A0600, // 0004 GETNGBL R2 K3
- 0x8C080504, // 0005 GETMET R2 R2 K4
- 0x5C100000, // 0006 MOVE R4 R0
- 0x7C080400, // 0007 CALL R2 2
- 0x90020402, // 0008 SETMBR R0 K2 R2
- 0xB80A0600, // 0009 GETNGBL R2 K3
- 0x8C080506, // 000A GETMET R2 R2 K6
- 0x7C080200, // 000B CALL R2 1
- 0x90020A02, // 000C SETMBR R0 K5 R2
- 0xB80A0600, // 000D GETNGBL R2 K3
- 0x8C080508, // 000E GETMET R2 R2 K8
- 0x7C080200, // 000F CALL R2 1
- 0x90020E02, // 0010 SETMBR R0 K7 R2
- 0xB80A0600, // 0011 GETNGBL R2 K3
- 0x8808050A, // 0012 GETMBR R2 R2 K10
- 0x8C08050B, // 0013 GETMET R2 R2 K11
- 0x7C080200, // 0014 CALL R2 1
- 0x90021202, // 0015 SETMBR R0 K9 R2
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: expire_sendqueue
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(time_reached),
- /* K4 */ be_nested_str_weak(expiration),
- /* K5 */ be_nested_str_weak(reached_timeout),
- /* K6 */ be_nested_str_weak(remove),
- /* K7 */ be_const_int(1),
- }),
- be_str_weak(expire_sendqueue),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0101, // 0002 GETMBR R3 R0 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x14080202, // 0004 LT R2 R1 R2
- 0x780A000F, // 0005 JMPF R2 #0016
- 0x88080101, // 0006 GETMBR R2 R0 K1
- 0x94080401, // 0007 GETIDX R2 R2 R1
- 0xB80E0400, // 0008 GETNGBL R3 K2
- 0x8C0C0703, // 0009 GETMET R3 R3 K3
- 0x88140504, // 000A GETMBR R5 R2 K4
- 0x7C0C0400, // 000B CALL R3 2
- 0x780E0006, // 000C JMPF R3 #0014
- 0x8C0C0505, // 000D GETMET R3 R2 K5
- 0x7C0C0200, // 000E CALL R3 1
- 0x880C0101, // 000F GETMBR R3 R0 K1
- 0x8C0C0706, // 0010 GETMET R3 R3 K6
- 0x5C140200, // 0011 MOVE R5 R1
- 0x7C0C0400, // 0012 CALL R3 2
- 0x70020000, // 0013 JMP #0015
- 0x00040307, // 0014 ADD R1 R1 K7
- 0x7001FFEA, // 0015 JMP #0001
- 0x4C080000, // 0016 LDNIL R2
- 0x80040400, // 0017 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: subscribe_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_subscribe_request, /* name */
- be_nested_proto(
- 20, /* nstack */
+ 9, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3561,146 +3149,40 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[34]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(SubscribeRequestMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(keep_subscriptions),
- /* K4 */ be_nested_str_weak(subs_shop),
- /* K5 */ be_nested_str_weak(remove_by_session),
- /* K6 */ be_nested_str_weak(session),
- /* K7 */ be_nested_str_weak(new_subscription),
- /* K8 */ be_nested_str_weak(Path),
- /* K9 */ be_nested_str_weak(msg),
- /* K10 */ be_nested_str_weak(attributes_requests),
- /* K11 */ be_nested_str_weak(endpoint),
- /* K12 */ be_nested_str_weak(cluster),
- /* K13 */ be_nested_str_weak(attribute),
- /* K14 */ be_nested_str_weak(push),
- /* K15 */ be_nested_str_weak(stop_iteration),
- /* K16 */ be_nested_str_weak(log),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s_X20attr_req_X3D_X25s_X20event_req_X3D_X25s),
- /* K18 */ be_nested_str_weak(local_session_id),
- /* K19 */ be_nested_str_weak(concat),
- /* K20 */ be_nested_str_weak(_X20),
- /* K21 */ be_nested_str_weak(min_interval),
- /* K22 */ be_nested_str_weak(max_interval),
- /* K23 */ be_const_int(1),
- /* K24 */ be_const_int(0),
- /* K25 */ be_nested_str_weak(subscription_id),
- /* K26 */ be_nested_str_weak(fabric_filtered),
- /* K27 */ be_nested_str_weak(_X2D),
- /* K28 */ be_nested_str_weak(event_requests),
- /* K29 */ be_const_int(3),
- /* K30 */ be_nested_str_weak(_inner_process_read_request),
- /* K31 */ be_nested_str_weak(device),
- /* K32 */ be_nested_str_weak(debug),
- /* K33 */ be_nested_str_weak(send_subscribe_response),
+ /* K1 */ be_nested_str_weak(profiler),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(read_request_start_pull),
+ /* K4 */ be_nested_str_weak(ReadRequestMessage),
+ /* K5 */ be_nested_str_weak(from_TLV),
+ /* K6 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K7 */ be_nested_str_weak(send_report_data_pull),
}),
- be_str_weak(subscribe_request),
+ be_str_weak(process_read_request_pull),
&be_const_str_solidified,
- ( &(const binstruction[101]) { /* code */
+ ( &(const binstruction[21]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x88100703, // 0006 GETMBR R4 R3 K3
- 0x74120003, // 0007 JMPT R4 #000C
- 0x88100104, // 0008 GETMBR R4 R0 K4
- 0x8C100905, // 0009 GETMET R4 R4 K5
- 0x88180306, // 000A GETMBR R6 R1 K6
- 0x7C100400, // 000B CALL R4 2
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x8C100907, // 000D GETMET R4 R4 K7
- 0x88180306, // 000E GETMBR R6 R1 K6
- 0x5C1C0600, // 000F MOVE R7 R3
- 0x7C100600, // 0010 CALL R4 3
- 0x60140012, // 0011 GETGBL R5 G18
- 0x7C140000, // 0012 CALL R5 0
- 0xB81A0000, // 0013 GETNGBL R6 K0
- 0x8C180D08, // 0014 GETMET R6 R6 K8
- 0x7C180200, // 0015 CALL R6 1
- 0x901A1201, // 0016 SETMBR R6 K9 R1
- 0x601C0010, // 0017 GETGBL R7 G16
- 0x8820070A, // 0018 GETMBR R8 R3 K10
- 0x7C1C0200, // 0019 CALL R7 1
- 0xA802000D, // 001A EXBLK 0 #0029
- 0x5C200E00, // 001B MOVE R8 R7
- 0x7C200000, // 001C CALL R8 0
- 0x8824110B, // 001D GETMBR R9 R8 K11
- 0x901A1609, // 001E SETMBR R6 K11 R9
- 0x8824110C, // 001F GETMBR R9 R8 K12
- 0x901A1809, // 0020 SETMBR R6 K12 R9
- 0x8824110D, // 0021 GETMBR R9 R8 K13
- 0x901A1A09, // 0022 SETMBR R6 K13 R9
- 0x8C240B0E, // 0023 GETMET R9 R5 K14
- 0x602C0008, // 0024 GETGBL R11 G8
- 0x5C300C00, // 0025 MOVE R12 R6
- 0x7C2C0200, // 0026 CALL R11 1
- 0x7C240400, // 0027 CALL R9 2
- 0x7001FFF1, // 0028 JMP #001B
- 0x581C000F, // 0029 LDCONST R7 K15
- 0xAC1C0200, // 002A CATCH R7 1 0
- 0xB0080000, // 002B RAISE 2 R0 R0
- 0xB81E2000, // 002C GETNGBL R7 K16
- 0x60200018, // 002D GETGBL R8 G24
- 0x58240011, // 002E LDCONST R9 K17
- 0x88280306, // 002F GETMBR R10 R1 K6
- 0x88281512, // 0030 GETMBR R10 R10 K18
- 0x8C2C0B13, // 0031 GETMET R11 R5 K19
- 0x58340014, // 0032 LDCONST R13 K20
- 0x7C2C0400, // 0033 CALL R11 2
- 0x88300915, // 0034 GETMBR R12 R4 K21
- 0x88340916, // 0035 GETMBR R13 R4 K22
- 0x88380703, // 0036 GETMBR R14 R3 K3
- 0x783A0001, // 0037 JMPF R14 #003A
- 0x58380017, // 0038 LDCONST R14 K23
- 0x70020000, // 0039 JMP #003B
- 0x58380018, // 003A LDCONST R14 K24
- 0x883C0919, // 003B GETMBR R15 R4 K25
- 0x8840071A, // 003C GETMBR R16 R3 K26
- 0x8844070A, // 003D GETMBR R17 R3 K10
- 0x4C480000, // 003E LDNIL R18
- 0x20442212, // 003F NE R17 R17 R18
- 0x78460003, // 0040 JMPF R17 #0045
- 0x6044000C, // 0041 GETGBL R17 G12
- 0x8848070A, // 0042 GETMBR R18 R3 K10
- 0x7C440200, // 0043 CALL R17 1
- 0x70020000, // 0044 JMP #0046
- 0x5844001B, // 0045 LDCONST R17 K27
- 0x8848071C, // 0046 GETMBR R18 R3 K28
- 0x4C4C0000, // 0047 LDNIL R19
- 0x20482413, // 0048 NE R18 R18 R19
- 0x784A0003, // 0049 JMPF R18 #004E
- 0x6048000C, // 004A GETGBL R18 G12
- 0x884C071C, // 004B GETMBR R19 R3 K28
- 0x7C480200, // 004C CALL R18 1
- 0x70020000, // 004D JMP #004F
- 0x5848001B, // 004E LDCONST R18 K27
- 0x7C201400, // 004F CALL R8 10
- 0x5824001D, // 0050 LDCONST R9 K29
- 0x7C1C0400, // 0051 CALL R7 2
- 0x8C1C011E, // 0052 GETMET R7 R0 K30
- 0x88240306, // 0053 GETMBR R9 R1 K6
- 0x5C280600, // 0054 MOVE R10 R3
- 0x5C2C0200, // 0055 MOVE R11 R1
- 0x8830011F, // 0056 GETMBR R12 R0 K31
- 0x88301920, // 0057 GETMBR R12 R12 K32
- 0x78320000, // 0058 JMPF R12 #005A
- 0x50300001, // 0059 LDBOOL R12 0 1
- 0x50300200, // 005A LDBOOL R12 1 0
- 0x7C1C0A00, // 005B CALL R7 5
- 0x88200919, // 005C GETMBR R8 R4 K25
- 0x901E3208, // 005D SETMBR R7 K25 R8
- 0x8C200121, // 005E GETMET R8 R0 K33
- 0x5C280200, // 005F MOVE R10 R1
- 0x5C2C0E00, // 0060 MOVE R11 R7
- 0x5C300800, // 0061 MOVE R12 R4
- 0x7C200800, // 0062 CALL R8 4
- 0x50200200, // 0063 LDBOOL R8 1 0
- 0x80041000, // 0064 RET 1 R8
+ 0x880C0701, // 0001 GETMBR R3 R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x58140003, // 0003 LDCONST R5 K3
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0xB80E0000, // 0005 GETNGBL R3 K0
+ 0x8C0C0704, // 0006 GETMET R3 R3 K4
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0705, // 0008 GETMET R3 R3 K5
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x8C100106, // 000B GETMET R4 R0 K6
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x5C1C0200, // 000D MOVE R7 R1
+ 0x7C100600, // 000E CALL R4 3
+ 0x8C140107, // 000F GETMET R5 R0 K7
+ 0x5C1C0200, // 0010 MOVE R7 R1
+ 0x5C200800, // 0011 MOVE R8 R4
+ 0x7C140600, // 0012 CALL R5 3
+ 0x50140200, // 0013 LDBOOL R5 1 0
+ 0x80040A00, // 0014 RET 1 R5
})
)
);
@@ -3708,72 +3190,252 @@ be_local_closure(class_Matter_IM_subscribe_request, /* name */
/********************************************************************
-** Solidified function: send_subscribe_heartbeat
+** Solidified function: invokeresponse2raw
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
+be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
+ 9, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25i),
- /* K3 */ be_nested_str_weak(local_session_id),
- /* K4 */ be_nested_str_weak(subscription_id),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(is_keep_alive),
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(command),
+ /* K6 */ be_nested_str_weak(status),
/* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(ReportDataMessage),
- /* K9 */ be_nested_str_weak(suppress_response),
- /* K10 */ be_nested_str_weak(IM_SubscribedHeartbeat),
- /* K11 */ be_nested_str_weak(_message_handler),
- /* K12 */ be_nested_str_weak(send_queue),
- /* K13 */ be_nested_str_weak(push),
- /* K14 */ be_nested_str_weak(send_enqueued),
+ /* K8 */ be_nested_str_weak(SUCCESS),
+ /* K9 */ be_nested_str_weak(tag_sub),
+ /* K10 */ be_nested_str_weak(tlv2raw),
}),
- be_str_weak(send_subscribe_heartbeat),
+ be_str_weak(invokeresponse2raw),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x60100018, // 0002 GETGBL R4 G24
- 0x58140002, // 0003 LDCONST R5 K2
- 0x88180503, // 0004 GETMBR R6 R2 K3
- 0x881C0304, // 0005 GETMBR R7 R1 K4
- 0x7C100600, // 0006 CALL R4 3
- 0x58140005, // 0007 LDCONST R5 K5
- 0x7C0C0400, // 0008 CALL R3 2
- 0x500C0200, // 0009 LDBOOL R3 1 0
- 0x90060C03, // 000A SETMBR R1 K6 R3
- 0xB80E0E00, // 000B GETNGBL R3 K7
- 0x8C0C0708, // 000C GETMET R3 R3 K8
- 0x7C0C0200, // 000D CALL R3 1
- 0x50100200, // 000E LDBOOL R4 1 0
- 0x900E1204, // 000F SETMBR R3 K9 R4
- 0x88100304, // 0010 GETMBR R4 R1 K4
- 0x900E0804, // 0011 SETMBR R3 K4 R4
- 0xB8120E00, // 0012 GETNGBL R4 K7
- 0x8C10090A, // 0013 GETMET R4 R4 K10
- 0x8818050B, // 0014 GETMBR R6 R2 K11
- 0x5C1C0400, // 0015 MOVE R7 R2
- 0x5C200600, // 0016 MOVE R8 R3
- 0x5C240200, // 0017 MOVE R9 R1
- 0x7C100A00, // 0018 CALL R4 5
- 0x8814010C, // 0019 GETMBR R5 R0 K12
- 0x8C140B0D, // 001A GETMET R5 R5 K13
- 0x5C1C0800, // 001B MOVE R7 R4
- 0x7C140400, // 001C CALL R5 2
- 0x8C14010E, // 001D GETMET R5 R0 K14
- 0x881C050B, // 001E GETMBR R7 R2 K11
- 0x7C140400, // 001F CALL R5 2
- 0x80000000, // 0020 RET 0
+ ( &(const binstruction[148]) { /* code */
+ 0x8C100300, // 0000 GETMET R4 R1 K0
+ 0x541A0014, // 0001 LDINT R6 21
+ 0x581C0001, // 0002 LDCONST R7 K1
+ 0x7C100600, // 0003 CALL R4 3
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120004, // 0006 JMPF R4 #000C
+ 0x8C100300, // 0007 GETMET R4 R1 K0
+ 0x541A3500, // 0008 LDINT R6 13569
+ 0x541DFFFD, // 0009 LDINT R7 -2
+ 0x7C100600, // 000A CALL R4 3
+ 0x70020003, // 000B JMP #0010
+ 0x8C100300, // 000C GETMET R4 R1 K0
+ 0x541A34FF, // 000D LDINT R6 13568
+ 0x541DFFFD, // 000E LDINT R7 -2
+ 0x7C100600, // 000F CALL R4 3
+ 0x8C100300, // 0010 GETMET R4 R1 K0
+ 0x541A36FF, // 0011 LDINT R6 14080
+ 0x541DFFFD, // 0012 LDINT R7 -2
+ 0x7C100600, // 0013 CALL R4 3
+ 0x88100502, // 0014 GETMBR R4 R2 K2
+ 0x541600FE, // 0015 LDINT R5 255
+ 0x18100805, // 0016 LE R4 R4 R5
+ 0x78120008, // 0017 JMPF R4 #0021
+ 0x8C100300, // 0018 GETMET R4 R1 K0
+ 0x541A23FF, // 0019 LDINT R6 9216
+ 0x541DFFFD, // 001A LDINT R7 -2
+ 0x7C100600, // 001B CALL R4 3
+ 0x8C100300, // 001C GETMET R4 R1 K0
+ 0x88180502, // 001D GETMBR R6 R2 K2
+ 0x581C0001, // 001E LDCONST R7 K1
+ 0x7C100600, // 001F CALL R4 3
+ 0x70020007, // 0020 JMP #0029
+ 0x8C100300, // 0021 GETMET R4 R1 K0
+ 0x541A24FF, // 0022 LDINT R6 9472
+ 0x541DFFFD, // 0023 LDINT R7 -2
+ 0x7C100600, // 0024 CALL R4 3
+ 0x8C100300, // 0025 GETMET R4 R1 K0
+ 0x88180502, // 0026 GETMBR R6 R2 K2
+ 0x581C0003, // 0027 LDCONST R7 K3
+ 0x7C100600, // 0028 CALL R4 3
+ 0x88100504, // 0029 GETMBR R4 R2 K4
+ 0x541600FE, // 002A LDINT R5 255
+ 0x18100805, // 002B LE R4 R4 R5
+ 0x78120008, // 002C JMPF R4 #0036
+ 0x8C100300, // 002D GETMET R4 R1 K0
+ 0x541A2400, // 002E LDINT R6 9217
+ 0x541DFFFD, // 002F LDINT R7 -2
+ 0x7C100600, // 0030 CALL R4 3
+ 0x8C100300, // 0031 GETMET R4 R1 K0
+ 0x88180504, // 0032 GETMBR R6 R2 K4
+ 0x581C0001, // 0033 LDCONST R7 K1
+ 0x7C100600, // 0034 CALL R4 3
+ 0x70020014, // 0035 JMP #004B
+ 0x88100504, // 0036 GETMBR R4 R2 K4
+ 0x5416FFFE, // 0037 LDINT R5 65535
+ 0x18100805, // 0038 LE R4 R4 R5
+ 0x78120008, // 0039 JMPF R4 #0043
+ 0x8C100300, // 003A GETMET R4 R1 K0
+ 0x541A2500, // 003B LDINT R6 9473
+ 0x541DFFFD, // 003C LDINT R7 -2
+ 0x7C100600, // 003D CALL R4 3
+ 0x8C100300, // 003E GETMET R4 R1 K0
+ 0x88180504, // 003F GETMBR R6 R2 K4
+ 0x581C0003, // 0040 LDCONST R7 K3
+ 0x7C100600, // 0041 CALL R4 3
+ 0x70020007, // 0042 JMP #004B
+ 0x8C100300, // 0043 GETMET R4 R1 K0
+ 0x541A2600, // 0044 LDINT R6 9729
+ 0x541DFFFD, // 0045 LDINT R7 -2
+ 0x7C100600, // 0046 CALL R4 3
+ 0x8C100300, // 0047 GETMET R4 R1 K0
+ 0x88180504, // 0048 GETMBR R6 R2 K4
+ 0x541E0003, // 0049 LDINT R7 4
+ 0x7C100600, // 004A CALL R4 3
+ 0x88100505, // 004B GETMBR R4 R2 K5
+ 0x541600FE, // 004C LDINT R5 255
+ 0x18100805, // 004D LE R4 R4 R5
+ 0x78120008, // 004E JMPF R4 #0058
+ 0x8C100300, // 004F GETMET R4 R1 K0
+ 0x541A2401, // 0050 LDINT R6 9218
+ 0x541DFFFD, // 0051 LDINT R7 -2
+ 0x7C100600, // 0052 CALL R4 3
+ 0x8C100300, // 0053 GETMET R4 R1 K0
+ 0x88180505, // 0054 GETMBR R6 R2 K5
+ 0x581C0001, // 0055 LDCONST R7 K1
+ 0x7C100600, // 0056 CALL R4 3
+ 0x70020014, // 0057 JMP #006D
+ 0x88100505, // 0058 GETMBR R4 R2 K5
+ 0x5416FFFE, // 0059 LDINT R5 65535
+ 0x18100805, // 005A LE R4 R4 R5
+ 0x78120008, // 005B JMPF R4 #0065
+ 0x8C100300, // 005C GETMET R4 R1 K0
+ 0x541A2501, // 005D LDINT R6 9474
+ 0x541DFFFD, // 005E LDINT R7 -2
+ 0x7C100600, // 005F CALL R4 3
+ 0x8C100300, // 0060 GETMET R4 R1 K0
+ 0x88180505, // 0061 GETMBR R6 R2 K5
+ 0x581C0003, // 0062 LDCONST R7 K3
+ 0x7C100600, // 0063 CALL R4 3
+ 0x70020007, // 0064 JMP #006D
+ 0x8C100300, // 0065 GETMET R4 R1 K0
+ 0x541A2601, // 0066 LDINT R6 9730
+ 0x541DFFFD, // 0067 LDINT R7 -2
+ 0x7C100600, // 0068 CALL R4 3
+ 0x8C100300, // 0069 GETMET R4 R1 K0
+ 0x88180505, // 006A GETMBR R6 R2 K5
+ 0x541E0003, // 006B LDINT R7 4
+ 0x7C100600, // 006C CALL R4 3
+ 0x8C100300, // 006D GETMET R4 R1 K0
+ 0x541A0017, // 006E LDINT R6 24
+ 0x581C0001, // 006F LDCONST R7 K1
+ 0x7C100600, // 0070 CALL R4 3
+ 0x4C100000, // 0071 LDNIL R4
+ 0x1C100604, // 0072 EQ R4 R3 R4
+ 0x78120016, // 0073 JMPF R4 #008B
+ 0x88100506, // 0074 GETMBR R4 R2 K6
+ 0x4C140000, // 0075 LDNIL R5
+ 0x1C140805, // 0076 EQ R5 R4 R5
+ 0x78160001, // 0077 JMPF R5 #007A
+ 0xB8160E00, // 0078 GETNGBL R5 K7
+ 0x88100B08, // 0079 GETMBR R4 R5 K8
+ 0x8C140300, // 007A GETMET R5 R1 K0
+ 0x541E3500, // 007B LDINT R7 13569
+ 0x5421FFFD, // 007C LDINT R8 -2
+ 0x7C140600, // 007D CALL R5 3
+ 0x8C140300, // 007E GETMET R5 R1 K0
+ 0x541E23FF, // 007F LDINT R7 9216
+ 0x5421FFFD, // 0080 LDINT R8 -2
+ 0x7C140600, // 0081 CALL R5 3
+ 0x8C140300, // 0082 GETMET R5 R1 K0
+ 0x881C0506, // 0083 GETMBR R7 R2 K6
+ 0x58200001, // 0084 LDCONST R8 K1
+ 0x7C140600, // 0085 CALL R5 3
+ 0x8C140300, // 0086 GETMET R5 R1 K0
+ 0x541E0017, // 0087 LDINT R7 24
+ 0x58200001, // 0088 LDCONST R8 K1
+ 0x7C140600, // 0089 CALL R5 3
+ 0x70020003, // 008A JMP #008F
+ 0x900E1301, // 008B SETMBR R3 K9 K1
+ 0x8C10070A, // 008C GETMET R4 R3 K10
+ 0x5C180200, // 008D MOVE R6 R1
+ 0x7C100400, // 008E CALL R4 2
+ 0x8C100300, // 008F GETMET R4 R1 K0
+ 0x541A1817, // 0090 LDINT R6 6168
+ 0x541DFFFD, // 0091 LDINT R7 -2
+ 0x7C100600, // 0092 CALL R4 3
+ 0x80000000, // 0093 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_invoke_response
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_invoke_response, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(send_queue),
+ /* K1 */ be_nested_str_weak(push),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(IM_InvokeResponse),
+ }),
+ be_str_weak(send_invoke_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0xB8160400, // 0002 GETNGBL R5 K2
+ 0x8C140B03, // 0003 GETMET R5 R5 K3
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x5C200400, // 0005 MOVE R8 R2
+ 0x7C140600, // 0006 CALL R5 3
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_every_250ms, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(subs_shop),
+ /* K1 */ be_nested_str_weak(every_250ms),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80000000, // 0003 RET 0
})
)
);
@@ -3786,48 +3448,47 @@ be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
be_local_class(Matter_IM,
6,
NULL,
- be_nested_map(40,
+ be_nested_map(39,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_IM_every_250ms_closure) },
- { be_const_key_weak(process_incoming_ack, -1), be_const_closure(class_Matter_IM_process_incoming_ack_closure) },
- { be_const_key_weak(send_ack_now, -1), be_const_closure(class_Matter_IM_send_ack_now_closure) },
- { be_const_key_weak(subscribe_response, -1), be_const_closure(class_Matter_IM_subscribe_response_closure) },
- { be_const_key_weak(process_write_response, -1), be_const_closure(class_Matter_IM_process_write_response_closure) },
- { be_const_key_weak(process_status_response, -1), be_const_closure(class_Matter_IM_process_status_response_closure) },
- { be_const_key_weak(send_subscribe_heartbeat, -1), be_const_closure(class_Matter_IM_send_subscribe_heartbeat_closure) },
- { be_const_key_weak(attributedata2raw, 12), be_const_closure(class_Matter_IM_attributedata2raw_closure) },
- { be_const_key_weak(subscribe_request, 37), be_const_closure(class_Matter_IM_subscribe_request_closure) },
- { be_const_key_weak(send_subscribe_update, -1), be_const_closure(class_Matter_IM_send_subscribe_update_closure) },
- { be_const_key_weak(invokeresponse2raw, 2), be_const_closure(class_Matter_IM_invokeresponse2raw_closure) },
- { be_const_key_weak(read_request_solo, 38), be_const_var(3) },
- { be_const_key_weak(process_incoming, -1), be_const_closure(class_Matter_IM_process_incoming_closure) },
- { be_const_key_weak(process_invoke_request_solo, 8), be_const_closure(class_Matter_IM_process_invoke_request_solo_closure) },
- { be_const_key_weak(send_invoke_response, -1), be_const_closure(class_Matter_IM_send_invoke_response_closure) },
- { be_const_key_weak(send_write_response, 6), be_const_closure(class_Matter_IM_send_write_response_closure) },
- { be_const_key_weak(process_write_request, -1), be_const_closure(class_Matter_IM_process_write_request_closure) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_IM_every_second_closure) },
- { be_const_key_weak(path2raw, -1), be_const_closure(class_Matter_IM_path2raw_closure) },
{ be_const_key_weak(invoke_request_solo, -1), be_const_var(4) },
- { be_const_key_weak(_inner_process_read_request, -1), be_const_closure(class_Matter_IM__inner_process_read_request_closure) },
- { be_const_key_weak(tlv_solo, -1), be_const_var(5) },
- { be_const_key_weak(remove_sendqueue_by_exchangeid, -1), be_const_closure(class_Matter_IM_remove_sendqueue_by_exchangeid_closure) },
- { be_const_key_weak(find_sendqueue_by_exchangeid, -1), be_const_closure(class_Matter_IM_find_sendqueue_by_exchangeid_closure) },
- { be_const_key_weak(send_report_data, -1), be_const_closure(class_Matter_IM_send_report_data_closure) },
- { be_const_key_weak(process_invoke_request, 17), be_const_closure(class_Matter_IM_process_invoke_request_closure) },
- { be_const_key_weak(send_status, -1), be_const_closure(class_Matter_IM_send_status_closure) },
- { be_const_key_weak(subs_shop, 20), be_const_var(1) },
- { be_const_key_weak(process_timed_request, 32), be_const_closure(class_Matter_IM_process_timed_request_closure) },
- { be_const_key_weak(attributestatus2raw, 23), be_const_closure(class_Matter_IM_attributestatus2raw_closure) },
- { be_const_key_weak(send_subscribe_response, -1), be_const_closure(class_Matter_IM_send_subscribe_response_closure) },
- { be_const_key_weak(process_invoke_response, 24), be_const_closure(class_Matter_IM_process_invoke_response_closure) },
- { be_const_key_weak(report_data, 9), be_const_closure(class_Matter_IM_report_data_closure) },
- { be_const_key_weak(process_read_request_solo, -1), be_const_closure(class_Matter_IM_process_read_request_solo_closure) },
- { be_const_key_weak(send_enqueued, -1), be_const_closure(class_Matter_IM_send_enqueued_closure) },
+ { be_const_key_weak(send_subscribe_response_pull, -1), be_const_closure(class_Matter_IM_send_subscribe_response_pull_closure) },
+ { be_const_key_weak(every_250ms, 17), be_const_closure(class_Matter_IM_every_250ms_closure) },
+ { be_const_key_weak(device, 32), be_const_var(0) },
+ { be_const_key_weak(send_subscribe_update, -1), be_const_closure(class_Matter_IM_send_subscribe_update_closure) },
+ { be_const_key_weak(read_single_attribute_to_bytes, 14), be_const_closure(class_Matter_IM_read_single_attribute_to_bytes_closure) },
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_init_closure) },
- { be_const_key_weak(expire_sendqueue, -1), be_const_closure(class_Matter_IM_expire_sendqueue_closure) },
- { be_const_key_weak(process_read_request, -1), be_const_closure(class_Matter_IM_process_read_request_closure) },
- { be_const_key_weak(device, -1), be_const_var(0) },
+ { be_const_key_weak(send_status, -1), be_const_closure(class_Matter_IM_send_status_closure) },
+ { be_const_key_weak(process_incoming_ack, 12), be_const_closure(class_Matter_IM_process_incoming_ack_closure) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_IM_every_second_closure) },
+ { be_const_key_weak(expire_sendqueue, 37), be_const_closure(class_Matter_IM_expire_sendqueue_closure) },
+ { be_const_key_weak(send_write_response, -1), be_const_closure(class_Matter_IM_send_write_response_closure) },
+ { be_const_key_weak(send_invoke_response, 13), be_const_closure(class_Matter_IM_send_invoke_response_closure) },
+ { be_const_key_weak(invokeresponse2raw, -1), be_const_closure(class_Matter_IM_invokeresponse2raw_closure) },
+ { be_const_key_weak(path2raw, -1), be_const_closure(class_Matter_IM_path2raw_closure) },
+ { be_const_key_weak(process_status_response, -1), be_const_closure(class_Matter_IM_process_status_response_closure) },
+ { be_const_key_weak(process_invoke_request_solo, -1), be_const_closure(class_Matter_IM_process_invoke_request_solo_closure) },
+ { be_const_key_weak(process_incoming, 15), be_const_closure(class_Matter_IM_process_incoming_closure) },
+ { be_const_key_weak(remove_sendqueue_by_exchangeid, -1), be_const_closure(class_Matter_IM_remove_sendqueue_by_exchangeid_closure) },
+ { be_const_key_weak(process_read_or_subscribe_request_pull, -1), be_const_closure(class_Matter_IM_process_read_or_subscribe_request_pull_closure) },
{ be_const_key_weak(send_queue, -1), be_const_var(2) },
+ { be_const_key_weak(process_write_request, -1), be_const_closure(class_Matter_IM_process_write_request_closure) },
+ { be_const_key_weak(process_write_response, -1), be_const_closure(class_Matter_IM_process_write_response_closure) },
+ { be_const_key_weak(send_ack_now, -1), be_const_closure(class_Matter_IM_send_ack_now_closure) },
+ { be_const_key_weak(find_sendqueue_by_exchangeid, 19), be_const_closure(class_Matter_IM_find_sendqueue_by_exchangeid_closure) },
+ { be_const_key_weak(write_single_attribute_status_to_bytes, -1), be_const_closure(class_Matter_IM_write_single_attribute_status_to_bytes_closure) },
+ { be_const_key_weak(send_subscribe_heartbeat, -1), be_const_closure(class_Matter_IM_send_subscribe_heartbeat_closure) },
+ { be_const_key_weak(attributedata2raw, 28), be_const_closure(class_Matter_IM_attributedata2raw_closure) },
+ { be_const_key_weak(attributestatus2raw, -1), be_const_closure(class_Matter_IM_attributestatus2raw_closure) },
+ { be_const_key_weak(read_request_solo, -1), be_const_var(3) },
+ { be_const_key_weak(process_invoke_request, 21), be_const_closure(class_Matter_IM_process_invoke_request_closure) },
+ { be_const_key_weak(send_report_data_pull, -1), be_const_closure(class_Matter_IM_send_report_data_pull_closure) },
+ { be_const_key_weak(subs_shop, 36), be_const_var(1) },
+ { be_const_key_weak(tlv_solo, 16), be_const_var(5) },
+ { be_const_key_weak(process_read_request_solo, -1), be_const_closure(class_Matter_IM_process_read_request_solo_closure) },
+ { be_const_key_weak(process_read_request_pull, -1), be_const_closure(class_Matter_IM_process_read_request_pull_closure) },
+ { be_const_key_weak(process_timed_request, -1), be_const_closure(class_Matter_IM_process_timed_request_closure) },
+ { be_const_key_weak(subscribe_request, -1), be_const_closure(class_Matter_IM_subscribe_request_closure) },
+ { be_const_key_weak(send_enqueued, 2), be_const_closure(class_Matter_IM_send_enqueued_closure) },
})),
be_str_weak(Matter_IM)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 0daab0c27..66be8720b 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -205,26 +205,31 @@ be_local_closure(class_Matter_IM_Message_reset, /* name */
}),
be_str_weak(reset),
&be_const_str_solidified,
- ( &(const binstruction[19]) { /* code */
- 0x8C100301, // 0000 GETMET R4 R1 K1
- 0x5C180400, // 0001 MOVE R6 R2
- 0x5C1C0600, // 0002 MOVE R7 R3
- 0x7C100600, // 0003 CALL R4 3
- 0x90020004, // 0004 SETMBR R0 K0 R4
- 0x50100200, // 0005 LDBOOL R4 1 0
- 0x90020404, // 0006 SETMBR R0 K2 R4
- 0xB8120800, // 0007 GETNGBL R4 K4
- 0x8C100905, // 0008 GETMET R4 R4 K5
- 0x7C100200, // 0009 CALL R4 1
- 0x88140106, // 000A GETMBR R5 R0 K6
- 0x00100805, // 000B ADD R4 R4 R5
- 0x90020604, // 000C SETMBR R0 K3 R4
- 0x90020F08, // 000D SETMBR R0 K7 K8
- 0x50100000, // 000E LDBOOL R4 0 0
- 0x90021204, // 000F SETMBR R0 K9 R4
- 0x4C100000, // 0010 LDNIL R4
- 0x90021404, // 0011 SETMBR R0 K10 R4
- 0x80000000, // 0012 RET 0
+ ( &(const binstruction[24]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x20100204, // 0001 NE R4 R1 R4
+ 0x78120004, // 0002 JMPF R4 #0008
+ 0x8C100301, // 0003 GETMET R4 R1 K1
+ 0x5C180400, // 0004 MOVE R6 R2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x7C100600, // 0006 CALL R4 3
+ 0x70020000, // 0007 JMP #0009
+ 0x4C100000, // 0008 LDNIL R4
+ 0x90020004, // 0009 SETMBR R0 K0 R4
+ 0x50100200, // 000A LDBOOL R4 1 0
+ 0x90020404, // 000B SETMBR R0 K2 R4
+ 0xB8120800, // 000C GETNGBL R4 K4
+ 0x8C100905, // 000D GETMET R4 R4 K5
+ 0x7C100200, // 000E CALL R4 1
+ 0x88140106, // 000F GETMBR R5 R0 K6
+ 0x00100805, // 0010 ADD R4 R4 R5
+ 0x90020604, // 0011 SETMBR R0 K3 R4
+ 0x90020F08, // 0012 SETMBR R0 K7 K8
+ 0x50100000, // 0013 LDBOOL R4 0 0
+ 0x90021204, // 0014 SETMBR R0 K9 R4
+ 0x4C100000, // 0015 LDNIL R4
+ 0x90021404, // 0016 SETMBR R0 K10 R4
+ 0x80000000, // 0017 RET 0
})
)
);
@@ -540,111 +545,219 @@ be_local_class(Matter_IM_WriteResponse,
be_str_weak(Matter_IM_WriteResponse)
);
-extern const bclass be_class_Matter_IM_ReportData;
+extern const bclass be_class_Matter_IM_ReportData_Pull;
/********************************************************************
-** Solidified function: send_im
+** Solidified function: set_subscription_id
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData;
-be_local_closure(class_Matter_IM_ReportData_send_im, /* name */
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_set_subscription_id, /* name */
be_nested_proto(
- 12, /* nstack */
+ 2, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportData,
+ &be_class_Matter_IM_ReportData_Pull,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(subscription_id),
+ }),
+ be_str_weak(set_subscription_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_im
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
+ be_nested_proto(
+ 15, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[30]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(resp),
/* K2 */ be_nested_str_weak(data),
- /* K3 */ be_nested_str_weak(more_chunked_messages),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(attribute_reports),
- /* K6 */ be_const_int(2147483647),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(to_TLV),
- /* K9 */ be_nested_str_weak(tlv2raw),
- /* K10 */ be_nested_str_weak(MAX_MESSAGE),
- /* K11 */ be_nested_str_weak(encode_frame),
- /* K12 */ be_nested_str_weak(encrypt),
- /* K13 */ be_nested_str_weak(send_response_frame),
- /* K14 */ be_nested_str_weak(last_counter),
- /* K15 */ be_nested_str_weak(message_counter),
- /* K16 */ be_nested_str_weak(finish),
+ /* K3 */ be_nested_str_weak(generator_or_arr),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(next),
+ /* K6 */ be_nested_str_weak(device),
+ /* K7 */ be_nested_str_weak(debug),
+ /* K8 */ be_nested_str_weak(is_direct),
+ /* K9 */ be_nested_str_weak(im),
+ /* K10 */ be_nested_str_weak(read_single_attribute_to_bytes),
+ /* K11 */ be_nested_str_weak(get_pi),
+ /* K12 */ be_nested_str_weak(session),
+ /* K13 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K14 */ be_nested_str_weak(append),
+ /* K15 */ be_nested_str_weak(remove),
+ /* K16 */ be_nested_str_weak(matter),
+ /* K17 */ be_nested_str_weak(ReportDataMessage),
+ /* K18 */ be_nested_str_weak(subscription_id),
+ /* K19 */ be_nested_str_weak(suppress_response),
+ /* K20 */ be_nested_str_weak(attribute_reports),
+ /* K21 */ be_nested_str_weak(more_chunked_messages),
+ /* K22 */ be_nested_str_weak(to_TLV),
+ /* K23 */ be_nested_str_weak(tlv2raw),
+ /* K24 */ be_nested_str_weak(encode_frame),
+ /* K25 */ be_nested_str_weak(encrypt),
+ /* K26 */ be_nested_str_weak(send_response_frame),
+ /* K27 */ be_nested_str_weak(last_counter),
+ /* K28 */ be_nested_str_weak(message_counter),
+ /* K29 */ be_nested_str_weak(finish),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[67]) { /* code */
+ ( &(const binstruction[134]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
0x80040400, // 0003 RET 1 R2
0x88080101, // 0004 GETMBR R2 R0 K1
0x880C0102, // 0005 GETMBR R3 R0 K2
- 0x88100703, // 0006 GETMBR R4 R3 K3
- 0x58140004, // 0007 LDCONST R5 K4
- 0x4C180000, // 0008 LDNIL R6
- 0x881C0705, // 0009 GETMBR R7 R3 K5
- 0x4C200000, // 000A LDNIL R8
- 0x201C0E08, // 000B NE R7 R7 R8
- 0x781E000D, // 000C JMPF R7 #001B
- 0x401C0B06, // 000D CONNECT R7 R5 K6
- 0x88200705, // 000E GETMBR R8 R3 K5
- 0x94181007, // 000F GETIDX R6 R8 R7
- 0x04240B04, // 0010 SUB R9 R5 K4
- 0x40260E09, // 0011 CONNECT R9 K7 R9
- 0x88280705, // 0012 GETMBR R10 R3 K5
- 0x94241409, // 0013 GETIDX R9 R10 R9
- 0x900E0A09, // 0014 SETMBR R3 K5 R9
- 0x6024000C, // 0015 GETGBL R9 G12
- 0x5C280C00, // 0016 MOVE R10 R6
- 0x7C240200, // 0017 CALL R9 1
- 0x24241307, // 0018 GT R9 R9 K7
- 0x900E0609, // 0019 SETMBR R3 K3 R9
- 0x70020001, // 001A JMP #001D
- 0x501C0000, // 001B LDBOOL R7 0 0
- 0x900E0607, // 001C SETMBR R3 K3 R7
- 0x7811FFFF, // 001D JMPF R4 #001E
- 0x881C0703, // 001E GETMBR R7 R3 K3
- 0x781E0001, // 001F JMPF R7 #0022
- 0x5C1C0800, // 0020 MOVE R7 R4
- 0x741DFFFF, // 0021 JMPT R7 #0022
- 0x881C0102, // 0022 GETMBR R7 R0 K2
- 0x8C1C0F08, // 0023 GETMET R7 R7 K8
- 0x7C1C0200, // 0024 CALL R7 1
- 0x8C200F09, // 0025 GETMET R8 R7 K9
- 0x60280015, // 0026 GETGBL R10 G21
- 0x882C010A, // 0027 GETMBR R11 R0 K10
- 0x7C280200, // 0028 CALL R10 1
- 0x7C200400, // 0029 CALL R8 2
- 0x8C24050B, // 002A GETMET R9 R2 K11
- 0x5C2C1000, // 002B MOVE R11 R8
- 0x7C240400, // 002C CALL R9 2
- 0x8C24050C, // 002D GETMET R9 R2 K12
- 0x7C240200, // 002E CALL R9 1
- 0x8C24030D, // 002F GETMET R9 R1 K13
- 0x5C2C0400, // 0030 MOVE R11 R2
- 0x7C240400, // 0031 CALL R9 2
- 0x8824050F, // 0032 GETMBR R9 R2 K15
- 0x90021C09, // 0033 SETMBR R0 K14 R9
- 0x4C240000, // 0034 LDNIL R9
- 0x20240C09, // 0035 NE R9 R6 R9
- 0x78260008, // 0036 JMPF R9 #0040
- 0x6024000C, // 0037 GETGBL R9 G12
- 0x5C280C00, // 0038 MOVE R10 R6
- 0x7C240200, // 0039 CALL R9 1
- 0x24241307, // 003A GT R9 R9 K7
- 0x78260003, // 003B JMPF R9 #0040
- 0x900E0A06, // 003C SETMBR R3 K5 R6
- 0x50240000, // 003D LDBOOL R9 0 0
- 0x90020009, // 003E SETMBR R0 K0 R9
- 0x70020001, // 003F JMP #0042
- 0x50240200, // 0040 LDBOOL R9 1 0
- 0x90022009, // 0041 SETMBR R0 K16 R9
- 0x80000000, // 0042 RET 0
+ 0x4C100000, // 0006 LDNIL R4
+ 0x200C0604, // 0007 NE R3 R3 R4
+ 0x780E0001, // 0008 JMPF R3 #000B
+ 0x880C0102, // 0009 GETMBR R3 R0 K2
+ 0x70020001, // 000A JMP #000D
+ 0x600C0015, // 000B GETGBL R3 G21
+ 0x7C0C0000, // 000C CALL R3 0
+ 0x4C100000, // 000D LDNIL R4
+ 0x90020404, // 000E SETMBR R0 K2 R4
+ 0x50100200, // 000F LDBOOL R4 1 0
+ 0x7812004C, // 0010 JMPF R4 #005E
+ 0x88140103, // 0011 GETMBR R5 R0 K3
+ 0x4C180000, // 0012 LDNIL R6
+ 0x20140A06, // 0013 NE R5 R5 R6
+ 0x78160048, // 0014 JMPF R5 #005E
+ 0x6014000F, // 0015 GETGBL R5 G15
+ 0x88180103, // 0016 GETMBR R6 R0 K3
+ 0x601C0012, // 0017 GETGBL R7 G18
+ 0x7C140400, // 0018 CALL R5 2
+ 0x78160002, // 0019 JMPF R5 #001D
+ 0x88140103, // 001A GETMBR R5 R0 K3
+ 0x94140B04, // 001B GETIDX R5 R5 K4
+ 0x70020000, // 001C JMP #001E
+ 0x88140103, // 001D GETMBR R5 R0 K3
+ 0x4C180000, // 001E LDNIL R6
+ 0x78120028, // 001F JMPF R4 #0049
+ 0x8C1C0B05, // 0020 GETMET R7 R5 K5
+ 0x7C1C0200, // 0021 CALL R7 1
+ 0x5C180E00, // 0022 MOVE R6 R7
+ 0x781E0024, // 0023 JMPF R7 #0049
+ 0x881C0306, // 0024 GETMBR R7 R1 K6
+ 0x881C0F07, // 0025 GETMBR R7 R7 K7
+ 0x8C200B08, // 0026 GETMET R8 R5 K8
+ 0x7C200200, // 0027 CALL R8 1
+ 0x74220001, // 0028 JMPT R8 #002B
+ 0x741E0000, // 0029 JMPT R7 #002B
+ 0x50200001, // 002A LDBOOL R8 0 1
+ 0x50200200, // 002B LDBOOL R8 1 0
+ 0x88240309, // 002C GETMBR R9 R1 K9
+ 0x8C24130A, // 002D GETMET R9 R9 K10
+ 0x8C2C0B0B, // 002E GETMET R11 R5 K11
+ 0x7C2C0200, // 002F CALL R11 1
+ 0x5C300C00, // 0030 MOVE R12 R6
+ 0x8834050C, // 0031 GETMBR R13 R2 K12
+ 0x5C381000, // 0032 MOVE R14 R8
+ 0x7C240A00, // 0033 CALL R9 5
+ 0x4C280000, // 0034 LDNIL R10
+ 0x1C28120A, // 0035 EQ R10 R9 R10
+ 0x782A0000, // 0036 JMPF R10 #0038
+ 0x7001FFE6, // 0037 JMP #001F
+ 0x6028000C, // 0038 GETGBL R10 G12
+ 0x5C2C0600, // 0039 MOVE R11 R3
+ 0x7C280200, // 003A CALL R10 1
+ 0x602C000C, // 003B GETGBL R11 G12
+ 0x5C301200, // 003C MOVE R12 R9
+ 0x7C2C0200, // 003D CALL R11 1
+ 0x0028140B, // 003E ADD R10 R10 R11
+ 0x882C010D, // 003F GETMBR R11 R0 K13
+ 0x2428140B, // 0040 GT R10 R10 R11
+ 0x782A0002, // 0041 JMPF R10 #0045
+ 0x90020409, // 0042 SETMBR R0 K2 R9
+ 0x50100000, // 0043 LDBOOL R4 0 0
+ 0x70020002, // 0044 JMP #0048
+ 0x8C28070E, // 0045 GETMET R10 R3 K14
+ 0x5C301200, // 0046 MOVE R12 R9
+ 0x7C280400, // 0047 CALL R10 2
+ 0x7001FFD5, // 0048 JMP #001F
+ 0x78120012, // 0049 JMPF R4 #005D
+ 0x601C000F, // 004A GETGBL R7 G15
+ 0x88200103, // 004B GETMBR R8 R0 K3
+ 0x60240012, // 004C GETGBL R9 G18
+ 0x7C1C0400, // 004D CALL R7 2
+ 0x781E000B, // 004E JMPF R7 #005B
+ 0x881C0103, // 004F GETMBR R7 R0 K3
+ 0x8C1C0F0F, // 0050 GETMET R7 R7 K15
+ 0x58240004, // 0051 LDCONST R9 K4
+ 0x7C1C0400, // 0052 CALL R7 2
+ 0x601C000C, // 0053 GETGBL R7 G12
+ 0x88200103, // 0054 GETMBR R8 R0 K3
+ 0x7C1C0200, // 0055 CALL R7 1
+ 0x1C1C0F04, // 0056 EQ R7 R7 K4
+ 0x781E0001, // 0057 JMPF R7 #005A
+ 0x4C1C0000, // 0058 LDNIL R7
+ 0x90020607, // 0059 SETMBR R0 K3 R7
+ 0x70020001, // 005A JMP #005D
+ 0x4C1C0000, // 005B LDNIL R7
+ 0x90020607, // 005C SETMBR R0 K3 R7
+ 0x7001FFB1, // 005D JMP #0010
+ 0xB8162000, // 005E GETNGBL R5 K16
+ 0x8C140B11, // 005F GETMET R5 R5 K17
+ 0x7C140200, // 0060 CALL R5 1
+ 0x88180112, // 0061 GETMBR R6 R0 K18
+ 0x90162406, // 0062 SETMBR R5 K18 R6
+ 0x88180113, // 0063 GETMBR R6 R0 K19
+ 0x90162606, // 0064 SETMBR R5 K19 R6
+ 0x60180012, // 0065 GETGBL R6 G18
+ 0x7C180000, // 0066 CALL R6 0
+ 0x401C0C03, // 0067 CONNECT R7 R6 R3
+ 0x90162806, // 0068 SETMBR R5 K20 R6
+ 0x88180102, // 0069 GETMBR R6 R0 K2
+ 0x4C1C0000, // 006A LDNIL R7
+ 0x20180C07, // 006B NE R6 R6 R7
+ 0x90162A06, // 006C SETMBR R5 K21 R6
+ 0x8C180B16, // 006D GETMET R6 R5 K22
+ 0x7C180200, // 006E CALL R6 1
+ 0x8C1C0D17, // 006F GETMET R7 R6 K23
+ 0x60240015, // 0070 GETGBL R9 G21
+ 0x8828010D, // 0071 GETMBR R10 R0 K13
+ 0x7C240200, // 0072 CALL R9 1
+ 0x7C1C0400, // 0073 CALL R7 2
+ 0x8C200518, // 0074 GETMET R8 R2 K24
+ 0x5C280E00, // 0075 MOVE R10 R7
+ 0x7C200400, // 0076 CALL R8 2
+ 0x8C200519, // 0077 GETMET R8 R2 K25
+ 0x7C200200, // 0078 CALL R8 1
+ 0x8C20031A, // 0079 GETMET R8 R1 K26
+ 0x5C280400, // 007A MOVE R10 R2
+ 0x7C200400, // 007B CALL R8 2
+ 0x8820051C, // 007C GETMBR R8 R2 K28
+ 0x90023608, // 007D SETMBR R0 K27 R8
+ 0x88200B15, // 007E GETMBR R8 R5 K21
+ 0x78220002, // 007F JMPF R8 #0083
+ 0x50200000, // 0080 LDBOOL R8 0 0
+ 0x90020008, // 0081 SETMBR R0 K0 R8
+ 0x70020001, // 0082 JMP #0085
+ 0x50200200, // 0083 LDBOOL R8 1 0
+ 0x90023A08, // 0084 SETMBR R0 K29 R8
+ 0x80000000, // 0085 RET 0
})
)
);
@@ -654,8 +767,8 @@ be_local_closure(class_Matter_IM_ReportData_send_im, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData;
-be_local_closure(class_Matter_IM_ReportData_init, /* name */
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_init, /* name */
be_nested_proto(
8, /* nstack */
3, /* argc */
@@ -663,11 +776,11 @@ be_local_closure(class_Matter_IM_ReportData_init, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportData,
+ &be_class_Matter_IM_ReportData_Pull,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(data),
+ /* K1 */ be_nested_str_weak(generator_or_arr),
}),
be_str_weak(init),
&be_const_str_solidified,
@@ -689,28 +802,61 @@ be_local_closure(class_Matter_IM_ReportData_init, /* name */
/********************************************************************
-** Solidified class: Matter_IM_ReportData
+** Solidified function: set_suppress_response
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_set_suppress_response, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(suppress_response),
+ }),
+ be_str_weak(set_suppress_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_IM_ReportData_Pull
********************************************************************/
extern const bclass be_class_Matter_IM_Message;
-be_local_class(Matter_IM_ReportData,
- 0,
+be_local_class(Matter_IM_ReportData_Pull,
+ 3,
&be_class_Matter_IM_Message,
- be_nested_map(3,
+ be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(send_im, 1), be_const_closure(class_Matter_IM_ReportData_send_im_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportData_init_closure) },
+ { be_const_key_weak(suppress_response, -1), be_const_var(2) },
{ be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1200) },
+ { be_const_key_weak(generator_or_arr, 5), be_const_var(0) },
+ { be_const_key_weak(set_subscription_id, 6), be_const_closure(class_Matter_IM_ReportData_Pull_set_subscription_id_closure) },
+ { be_const_key_weak(subscription_id, -1), be_const_var(1) },
+ { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportData_Pull_send_im_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportData_Pull_init_closure) },
+ { be_const_key_weak(set_suppress_response, -1), be_const_closure(class_Matter_IM_ReportData_Pull_set_suppress_response_closure) },
})),
- be_str_weak(Matter_IM_ReportData)
+ be_str_weak(Matter_IM_ReportData_Pull)
);
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
/********************************************************************
** Solidified function: ack_received
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_ack_received, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_ack_received, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -718,7 +864,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_ack_received, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(ack_received),
@@ -759,8 +905,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_ack_received, /* name */
/********************************************************************
** Solidified function: send_im
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
be_nested_proto(
9, /* nstack */
2, /* argc */
@@ -768,107 +914,103 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
- ( &(const bvalue[21]) { /* constants */
+ ( &(const bvalue[19]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
- /* K1 */ be_nested_str_weak(data),
- /* K2 */ be_nested_str_weak(attribute_reports),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(report_data_phase),
- /* K5 */ be_nested_str_weak(send_im),
- /* K6 */ be_nested_str_weak(finish),
- /* K7 */ be_nested_str_weak(resp),
- /* K8 */ be_nested_str_weak(build_standalone_ack),
- /* K9 */ be_nested_str_weak(encode_frame),
- /* K10 */ be_nested_str_weak(encrypt),
- /* K11 */ be_nested_str_weak(tasmota),
- /* K12 */ be_nested_str_weak(loglevel),
- /* K13 */ be_nested_str_weak(log),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
- /* K15 */ be_nested_str_weak(session),
- /* K16 */ be_nested_str_weak(local_session_id),
- /* K17 */ be_nested_str_weak(ack_message_counter),
- /* K18 */ be_nested_str_weak(message_counter),
- /* K19 */ be_nested_str_weak(send_response_frame),
- /* K20 */ be_nested_str_weak(last_counter),
+ /* K1 */ be_nested_str_weak(generator_or_arr),
+ /* K2 */ be_nested_str_weak(report_data_phase),
+ /* K3 */ be_nested_str_weak(send_im),
+ /* K4 */ be_nested_str_weak(finish),
+ /* K5 */ be_nested_str_weak(resp),
+ /* K6 */ be_nested_str_weak(build_standalone_ack),
+ /* K7 */ be_nested_str_weak(encode_frame),
+ /* K8 */ be_nested_str_weak(encrypt),
+ /* K9 */ be_nested_str_weak(tasmota),
+ /* K10 */ be_nested_str_weak(loglevel),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
+ /* K13 */ be_nested_str_weak(session),
+ /* K14 */ be_nested_str_weak(local_session_id),
+ /* K15 */ be_nested_str_weak(ack_message_counter),
+ /* K16 */ be_nested_str_weak(message_counter),
+ /* K17 */ be_nested_str_weak(send_response_frame),
+ /* K18 */ be_nested_str_weak(last_counter),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
+ ( &(const binstruction[71]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
0x80040400, // 0003 RET 1 R2
- 0x6008000C, // 0004 GETGBL R2 G12
- 0x880C0101, // 0005 GETMBR R3 R0 K1
- 0x880C0702, // 0006 GETMBR R3 R3 K2
- 0x7C080200, // 0007 CALL R2 1
- 0x24080503, // 0008 GT R2 R2 K3
- 0x780A0030, // 0009 JMPF R2 #003B
- 0x88080104, // 000A GETMBR R2 R0 K4
- 0x780A000F, // 000B JMPF R2 #001C
- 0x60080003, // 000C GETGBL R2 G3
- 0x5C0C0000, // 000D MOVE R3 R0
- 0x7C080200, // 000E CALL R2 1
- 0x8C080505, // 000F GETMET R2 R2 K5
- 0x5C100200, // 0010 MOVE R4 R1
- 0x7C080400, // 0011 CALL R2 2
- 0x88080106, // 0012 GETMBR R2 R0 K6
- 0x740A0000, // 0013 JMPT R2 #0015
- 0x80000400, // 0014 RET 0
+ 0x88080101, // 0004 GETMBR R2 R0 K1
+ 0x4C0C0000, // 0005 LDNIL R3
+ 0x20080403, // 0006 NE R2 R2 R3
+ 0x780A0030, // 0007 JMPF R2 #0039
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x780A000F, // 0009 JMPF R2 #001A
+ 0x60080003, // 000A GETGBL R2 G3
+ 0x5C0C0000, // 000B MOVE R3 R0
+ 0x7C080200, // 000C CALL R2 1
+ 0x8C080503, // 000D GETMET R2 R2 K3
+ 0x5C100200, // 000E MOVE R4 R1
+ 0x7C080400, // 000F CALL R2 2
+ 0x88080104, // 0010 GETMBR R2 R0 K4
+ 0x740A0000, // 0011 JMPT R2 #0013
+ 0x80000400, // 0012 RET 0
+ 0x50080000, // 0013 LDBOOL R2 0 0
+ 0x90020402, // 0014 SETMBR R0 K2 R2
0x50080000, // 0015 LDBOOL R2 0 0
- 0x90020802, // 0016 SETMBR R0 K4 R2
+ 0x90020002, // 0016 SETMBR R0 K0 R2
0x50080000, // 0017 LDBOOL R2 0 0
- 0x90020002, // 0018 SETMBR R0 K0 R2
- 0x50080000, // 0019 LDBOOL R2 0 0
- 0x90020C02, // 001A SETMBR R0 K6 R2
- 0x7002001D, // 001B JMP #003A
- 0x88080107, // 001C GETMBR R2 R0 K7
- 0x8C080508, // 001D GETMET R2 R2 K8
- 0x50100000, // 001E LDBOOL R4 0 0
- 0x7C080400, // 001F CALL R2 2
- 0x8C0C0509, // 0020 GETMET R3 R2 K9
+ 0x90020802, // 0018 SETMBR R0 K4 R2
+ 0x7002001D, // 0019 JMP #0038
+ 0x88080105, // 001A GETMBR R2 R0 K5
+ 0x8C080506, // 001B GETMET R2 R2 K6
+ 0x50100000, // 001C LDBOOL R4 0 0
+ 0x7C080400, // 001D CALL R2 2
+ 0x8C0C0507, // 001E GETMET R3 R2 K7
+ 0x7C0C0200, // 001F CALL R3 1
+ 0x8C0C0508, // 0020 GETMET R3 R2 K8
0x7C0C0200, // 0021 CALL R3 1
- 0x8C0C050A, // 0022 GETMET R3 R2 K10
- 0x7C0C0200, // 0023 CALL R3 1
- 0xB80E1600, // 0024 GETNGBL R3 K11
- 0x8C0C070C, // 0025 GETMET R3 R3 K12
- 0x54160003, // 0026 LDINT R5 4
- 0x7C0C0400, // 0027 CALL R3 2
- 0x780E0009, // 0028 JMPF R3 #0033
- 0xB80E1A00, // 0029 GETNGBL R3 K13
- 0x60100018, // 002A GETGBL R4 G24
- 0x5814000E, // 002B LDCONST R5 K14
- 0x8818050F, // 002C GETMBR R6 R2 K15
- 0x88180D10, // 002D GETMBR R6 R6 K16
- 0x881C0511, // 002E GETMBR R7 R2 K17
- 0x88200512, // 002F GETMBR R8 R2 K18
- 0x7C100800, // 0030 CALL R4 4
- 0x54160003, // 0031 LDINT R5 4
- 0x7C0C0400, // 0032 CALL R3 2
- 0x8C0C0313, // 0033 GETMET R3 R1 K19
- 0x5C140400, // 0034 MOVE R5 R2
- 0x7C0C0400, // 0035 CALL R3 2
- 0x880C0512, // 0036 GETMBR R3 R2 K18
- 0x90022803, // 0037 SETMBR R0 K20 R3
- 0x500C0200, // 0038 LDBOOL R3 1 0
- 0x90020C03, // 0039 SETMBR R0 K6 R3
- 0x7002000C, // 003A JMP #0048
- 0x88080104, // 003B GETMBR R2 R0 K4
- 0x780A0008, // 003C JMPF R2 #0046
- 0x60080003, // 003D GETGBL R2 G3
- 0x5C0C0000, // 003E MOVE R3 R0
- 0x7C080200, // 003F CALL R2 1
- 0x8C080505, // 0040 GETMET R2 R2 K5
- 0x5C100200, // 0041 MOVE R4 R1
- 0x7C080400, // 0042 CALL R2 2
- 0x50080000, // 0043 LDBOOL R2 0 0
- 0x90020802, // 0044 SETMBR R0 K4 R2
- 0x70020001, // 0045 JMP #0048
- 0x50080200, // 0046 LDBOOL R2 1 0
- 0x90020C02, // 0047 SETMBR R0 K6 R2
- 0x80000000, // 0048 RET 0
+ 0xB80E1200, // 0022 GETNGBL R3 K9
+ 0x8C0C070A, // 0023 GETMET R3 R3 K10
+ 0x54160003, // 0024 LDINT R5 4
+ 0x7C0C0400, // 0025 CALL R3 2
+ 0x780E0009, // 0026 JMPF R3 #0031
+ 0xB80E1600, // 0027 GETNGBL R3 K11
+ 0x60100018, // 0028 GETGBL R4 G24
+ 0x5814000C, // 0029 LDCONST R5 K12
+ 0x8818050D, // 002A GETMBR R6 R2 K13
+ 0x88180D0E, // 002B GETMBR R6 R6 K14
+ 0x881C050F, // 002C GETMBR R7 R2 K15
+ 0x88200510, // 002D GETMBR R8 R2 K16
+ 0x7C100800, // 002E CALL R4 4
+ 0x54160003, // 002F LDINT R5 4
+ 0x7C0C0400, // 0030 CALL R3 2
+ 0x8C0C0311, // 0031 GETMET R3 R1 K17
+ 0x5C140400, // 0032 MOVE R5 R2
+ 0x7C0C0400, // 0033 CALL R3 2
+ 0x880C0510, // 0034 GETMBR R3 R2 K16
+ 0x90022403, // 0035 SETMBR R0 K18 R3
+ 0x500C0200, // 0036 LDBOOL R3 1 0
+ 0x90020803, // 0037 SETMBR R0 K4 R3
+ 0x7002000C, // 0038 JMP #0046
+ 0x88080102, // 0039 GETMBR R2 R0 K2
+ 0x780A0008, // 003A JMPF R2 #0044
+ 0x60080003, // 003B GETGBL R2 G3
+ 0x5C0C0000, // 003C MOVE R3 R0
+ 0x7C080200, // 003D CALL R2 1
+ 0x8C080503, // 003E GETMET R2 R2 K3
+ 0x5C100200, // 003F MOVE R4 R1
+ 0x7C080400, // 0040 CALL R2 2
+ 0x50080000, // 0041 LDBOOL R2 0 0
+ 0x90020402, // 0042 SETMBR R0 K2 R2
+ 0x70020001, // 0043 JMP #0046
+ 0x50080200, // 0044 LDBOOL R2 1 0
+ 0x90020802, // 0045 SETMBR R0 K4 R2
+ 0x80000000, // 0046 RET 0
})
)
);
@@ -878,8 +1020,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_send_im, /* name */
/********************************************************************
** Solidified function: init
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_init, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_init, /* name */
be_nested_proto(
11, /* nstack */
5, /* argc */
@@ -887,47 +1029,49 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_init, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(resp),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(Frame),
- /* K3 */ be_nested_str_weak(initiate_response),
- /* K4 */ be_nested_str_weak(data),
- /* K5 */ be_nested_str_weak(ready),
- /* K6 */ be_nested_str_weak(expiration),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(millis),
- /* K9 */ be_nested_str_weak(MSG_TIMEOUT),
- /* K10 */ be_nested_str_weak(sub),
- /* K11 */ be_nested_str_weak(report_data_phase),
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(resp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(Frame),
+ /* K4 */ be_nested_str_weak(initiate_response),
+ /* K5 */ be_nested_str_weak(sub),
+ /* K6 */ be_nested_str_weak(report_data_phase),
+ /* K7 */ be_nested_str_weak(set_subscription_id),
+ /* K8 */ be_nested_str_weak(subscription_id),
+ /* K9 */ be_nested_str_weak(set_suppress_response),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xB8160200, // 0000 GETNGBL R5 K1
- 0x88140B02, // 0001 GETMBR R5 R5 K2
- 0x8C140B03, // 0002 GETMET R5 R5 K3
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x54260004, // 0005 LDINT R9 5
- 0x50280200, // 0006 LDBOOL R10 1 0
- 0x7C140A00, // 0007 CALL R5 5
- 0x90020005, // 0008 SETMBR R0 K0 R5
- 0x90020803, // 0009 SETMBR R0 K4 R3
- 0x50140200, // 000A LDBOOL R5 1 0
- 0x90020A05, // 000B SETMBR R0 K5 R5
- 0xB8160E00, // 000C GETNGBL R5 K7
- 0x8C140B08, // 000D GETMET R5 R5 K8
- 0x7C140200, // 000E CALL R5 1
- 0x88180109, // 000F GETMBR R6 R0 K9
- 0x00140A06, // 0010 ADD R5 R5 R6
- 0x90020C05, // 0011 SETMBR R0 K6 R5
- 0x90021404, // 0012 SETMBR R0 K10 R4
- 0x50140200, // 0013 LDBOOL R5 1 0
- 0x90021605, // 0014 SETMBR R0 K11 R5
- 0x80000000, // 0015 RET 0
+ ( &(const binstruction[26]) { /* code */
+ 0x60140003, // 0000 GETGBL R5 G3
+ 0x5C180000, // 0001 MOVE R6 R0
+ 0x7C140200, // 0002 CALL R5 1
+ 0x8C140B00, // 0003 GETMET R5 R5 K0
+ 0x4C1C0000, // 0004 LDNIL R7
+ 0x5C200600, // 0005 MOVE R8 R3
+ 0x7C140600, // 0006 CALL R5 3
+ 0xB8160400, // 0007 GETNGBL R5 K2
+ 0x88140B03, // 0008 GETMBR R5 R5 K3
+ 0x8C140B04, // 0009 GETMET R5 R5 K4
+ 0x5C1C0200, // 000A MOVE R7 R1
+ 0x5C200400, // 000B MOVE R8 R2
+ 0x54260004, // 000C LDINT R9 5
+ 0x50280200, // 000D LDBOOL R10 1 0
+ 0x7C140A00, // 000E CALL R5 5
+ 0x90020205, // 000F SETMBR R0 K1 R5
+ 0x90020A04, // 0010 SETMBR R0 K5 R4
+ 0x50140200, // 0011 LDBOOL R5 1 0
+ 0x90020C05, // 0012 SETMBR R0 K6 R5
+ 0x8C140107, // 0013 GETMET R5 R0 K7
+ 0x881C0908, // 0014 GETMBR R7 R4 K8
+ 0x7C140400, // 0015 CALL R5 2
+ 0x8C140109, // 0016 GETMET R5 R0 K9
+ 0x501C0000, // 0017 LDBOOL R7 0 0
+ 0x7C140400, // 0018 CALL R5 2
+ 0x80000000, // 0019 RET 0
})
)
);
@@ -937,8 +1081,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_init, /* name */
/********************************************************************
** Solidified function: status_error_received
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_status_error_received, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_status_error_received, /* name */
be_nested_proto(
4, /* nstack */
2, /* argc */
@@ -946,7 +1090,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_status_error_received, /
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(sub),
@@ -968,8 +1112,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_status_error_received, /
/********************************************************************
** Solidified function: reached_timeout
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_reached_timeout, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_reached_timeout, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -977,7 +1121,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_reached_timeout, /* name
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(sub),
@@ -999,8 +1143,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_reached_timeout, /* name
/********************************************************************
** Solidified function: status_ok_received
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportDataSubscribed;
-be_local_closure(class_Matter_IM_ReportDataSubscribed_status_ok_received, /* name */
+extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
+be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_status_ok_received, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -1008,7 +1152,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_status_ok_received, /* n
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_ReportDataSubscribed,
+ &be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_str_weak(report_data_phase),
@@ -1048,24 +1192,24 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_status_ok_received, /* n
/********************************************************************
-** Solidified class: Matter_IM_ReportDataSubscribed
+** Solidified class: Matter_IM_ReportDataSubscribed_Pull
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData;
-be_local_class(Matter_IM_ReportDataSubscribed,
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_class(Matter_IM_ReportDataSubscribed_Pull,
2,
- &be_class_Matter_IM_ReportData,
+ &be_class_Matter_IM_ReportData_Pull,
be_nested_map(8,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(ack_received, 1), be_const_closure(class_Matter_IM_ReportDataSubscribed_ack_received_closure) },
- { be_const_key_weak(status_ok_received, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_status_ok_received_closure) },
- { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_send_im_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_init_closure) },
+ { be_const_key_weak(ack_received, 1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_ack_received_closure) },
+ { be_const_key_weak(status_ok_received, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_status_ok_received_closure) },
+ { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im_closure) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_init_closure) },
{ be_const_key_weak(report_data_phase, 7), be_const_var(1) },
{ be_const_key_weak(sub, 6), be_const_var(0) },
- { be_const_key_weak(reached_timeout, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_reached_timeout_closure) },
- { be_const_key_weak(status_error_received, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_status_error_received_closure) },
+ { be_const_key_weak(reached_timeout, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_reached_timeout_closure) },
+ { be_const_key_weak(status_error_received, -1), be_const_closure(class_Matter_IM_ReportDataSubscribed_Pull_status_error_received_closure) },
})),
- be_str_weak(Matter_IM_ReportDataSubscribed)
+ be_str_weak(Matter_IM_ReportDataSubscribed_Pull)
);
extern const bclass be_class_Matter_IM_SubscribedHeartbeat;
@@ -1242,50 +1386,52 @@ be_local_closure(class_Matter_IM_SubscribedHeartbeat_status_ok_received, /* na
extern const bclass be_class_Matter_IM_SubscribedHeartbeat;
be_local_closure(class_Matter_IM_SubscribedHeartbeat_init, /* name */
be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
+ 10, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM_SubscribedHeartbeat,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(resp),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(Frame),
- /* K3 */ be_nested_str_weak(initiate_response),
- /* K4 */ be_nested_str_weak(data),
- /* K5 */ be_nested_str_weak(ready),
- /* K6 */ be_nested_str_weak(expiration),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(millis),
- /* K9 */ be_nested_str_weak(MSG_TIMEOUT),
- /* K10 */ be_nested_str_weak(sub),
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(resp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(Frame),
+ /* K4 */ be_nested_str_weak(initiate_response),
+ /* K5 */ be_nested_str_weak(sub),
+ /* K6 */ be_nested_str_weak(set_subscription_id),
+ /* K7 */ be_nested_str_weak(subscription_id),
+ /* K8 */ be_nested_str_weak(set_suppress_response),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0xB8160200, // 0000 GETNGBL R5 K1
- 0x88140B02, // 0001 GETMBR R5 R5 K2
- 0x8C140B03, // 0002 GETMET R5 R5 K3
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x54260004, // 0005 LDINT R9 5
- 0x50280200, // 0006 LDBOOL R10 1 0
- 0x7C140A00, // 0007 CALL R5 5
- 0x90020005, // 0008 SETMBR R0 K0 R5
- 0x90020803, // 0009 SETMBR R0 K4 R3
- 0x50140200, // 000A LDBOOL R5 1 0
- 0x90020A05, // 000B SETMBR R0 K5 R5
- 0xB8160E00, // 000C GETNGBL R5 K7
- 0x8C140B08, // 000D GETMET R5 R5 K8
- 0x7C140200, // 000E CALL R5 1
- 0x88180109, // 000F GETMBR R6 R0 K9
- 0x00140A06, // 0010 ADD R5 R5 R6
- 0x90020C05, // 0011 SETMBR R0 K6 R5
- 0x90021404, // 0012 SETMBR R0 K10 R4
- 0x80000000, // 0013 RET 0
+ ( &(const binstruction[24]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x4C180000, // 0004 LDNIL R6
+ 0x4C1C0000, // 0005 LDNIL R7
+ 0x7C100600, // 0006 CALL R4 3
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x88100903, // 0008 GETMBR R4 R4 K3
+ 0x8C100904, // 0009 GETMET R4 R4 K4
+ 0x5C180200, // 000A MOVE R6 R1
+ 0x5C1C0400, // 000B MOVE R7 R2
+ 0x54220004, // 000C LDINT R8 5
+ 0x50240200, // 000D LDBOOL R9 1 0
+ 0x7C100A00, // 000E CALL R4 5
+ 0x90020204, // 000F SETMBR R0 K1 R4
+ 0x90020A03, // 0010 SETMBR R0 K5 R3
+ 0x8C100106, // 0011 GETMET R4 R0 K6
+ 0x88180707, // 0012 GETMBR R6 R3 K7
+ 0x7C100400, // 0013 CALL R4 2
+ 0x8C100108, // 0014 GETMET R4 R0 K8
+ 0x50180200, // 0015 LDBOOL R6 1 0
+ 0x7C100400, // 0016 CALL R4 2
+ 0x80000000, // 0017 RET 0
})
)
);
@@ -1295,10 +1441,10 @@ be_local_closure(class_Matter_IM_SubscribedHeartbeat_init, /* name */
/********************************************************************
** Solidified class: Matter_IM_SubscribedHeartbeat
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData;
+extern const bclass be_class_Matter_IM_ReportData_Pull;
be_local_class(Matter_IM_SubscribedHeartbeat,
1,
- &be_class_Matter_IM_ReportData,
+ &be_class_Matter_IM_ReportData_Pull,
be_nested_map(7,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(init, 1), be_const_closure(class_Matter_IM_SubscribedHeartbeat_init_closure) },
@@ -1312,13 +1458,13 @@ be_local_class(Matter_IM_SubscribedHeartbeat,
be_str_weak(Matter_IM_SubscribedHeartbeat)
);
-extern const bclass be_class_Matter_IM_SubscribeResponse;
+extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
/********************************************************************
** Solidified function: init
********************************************************************/
-extern const bclass be_class_Matter_IM_SubscribeResponse;
-be_local_closure(class_Matter_IM_SubscribeResponse_init, /* name */
+extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
+be_local_closure(class_Matter_IM_SubscribeResponse_Pull_init, /* name */
be_nested_proto(
8, /* nstack */
4, /* argc */
@@ -1326,16 +1472,18 @@ be_local_closure(class_Matter_IM_SubscribeResponse_init, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_SubscribeResponse,
+ &be_class_Matter_IM_SubscribeResponse_Pull,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(sub),
/* K2 */ be_nested_str_weak(report_data_phase),
+ /* K3 */ be_nested_str_weak(set_subscription_id),
+ /* K4 */ be_nested_str_weak(subscription_id),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
+ ( &(const binstruction[14]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
@@ -1346,7 +1494,10 @@ be_local_closure(class_Matter_IM_SubscribeResponse_init, /* name */
0x90020203, // 0007 SETMBR R0 K1 R3
0x50100200, // 0008 LDBOOL R4 1 0
0x90020404, // 0009 SETMBR R0 K2 R4
- 0x80000000, // 000A RET 0
+ 0x8C100103, // 000A GETMET R4 R0 K3
+ 0x88180704, // 000B GETMBR R6 R3 K4
+ 0x7C100400, // 000C CALL R4 2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -1356,8 +1507,8 @@ be_local_closure(class_Matter_IM_SubscribeResponse_init, /* name */
/********************************************************************
** Solidified function: status_ok_received
********************************************************************/
-extern const bclass be_class_Matter_IM_SubscribeResponse;
-be_local_closure(class_Matter_IM_SubscribeResponse_status_ok_received, /* name */
+extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
+be_local_closure(class_Matter_IM_SubscribeResponse_Pull_status_ok_received, /* name */
be_nested_proto(
7, /* nstack */
2, /* argc */
@@ -1365,7 +1516,7 @@ be_local_closure(class_Matter_IM_SubscribeResponse_status_ok_received, /* name
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_SubscribeResponse,
+ &be_class_Matter_IM_SubscribeResponse_Pull,
1, /* has constants */
( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota),
@@ -1413,8 +1564,8 @@ be_local_closure(class_Matter_IM_SubscribeResponse_status_ok_received, /* name
/********************************************************************
** Solidified function: send_im
********************************************************************/
-extern const bclass be_class_Matter_IM_SubscribeResponse;
-be_local_closure(class_Matter_IM_SubscribeResponse_send_im, /* name */
+extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
+be_local_closure(class_Matter_IM_SubscribeResponse_Pull_send_im, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@@ -1422,7 +1573,7 @@ be_local_closure(class_Matter_IM_SubscribeResponse_send_im, /* name */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
- &be_class_Matter_IM_SubscribeResponse,
+ &be_class_Matter_IM_SubscribeResponse_Pull,
1, /* has constants */
( &(const bvalue[19]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
@@ -1508,21 +1659,21 @@ be_local_closure(class_Matter_IM_SubscribeResponse_send_im, /* name */
/********************************************************************
-** Solidified class: Matter_IM_SubscribeResponse
+** Solidified class: Matter_IM_SubscribeResponse_Pull
********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData;
-be_local_class(Matter_IM_SubscribeResponse,
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_class(Matter_IM_SubscribeResponse_Pull,
2,
- &be_class_Matter_IM_ReportData,
+ &be_class_Matter_IM_ReportData_Pull,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, 4), be_const_closure(class_Matter_IM_SubscribeResponse_init_closure) },
+ { be_const_key_weak(init, 4), be_const_closure(class_Matter_IM_SubscribeResponse_Pull_init_closure) },
{ be_const_key_weak(sub, -1), be_const_var(0) },
- { be_const_key_weak(status_ok_received, -1), be_const_closure(class_Matter_IM_SubscribeResponse_status_ok_received_closure) },
- { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_SubscribeResponse_send_im_closure) },
+ { be_const_key_weak(status_ok_received, -1), be_const_closure(class_Matter_IM_SubscribeResponse_Pull_status_ok_received_closure) },
+ { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_SubscribeResponse_Pull_send_im_closure) },
{ be_const_key_weak(report_data_phase, -1), be_const_var(1) },
})),
- be_str_weak(Matter_IM_SubscribeResponse)
+ be_str_weak(Matter_IM_SubscribeResponse_Pull)
);
/********************************************************************/
/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h
index 1d20a695e..5457a5159 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h
@@ -7,10 +7,10 @@
extern const bclass be_class_Matter_PathGenerator;
/********************************************************************
-** Solidified function: next
+** Solidified function: reset
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_next, /* name */
+be_local_closure(class_Matter_PathGenerator_reset, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -20,240 +20,27 @@ be_local_closure(class_Matter_PathGenerator_next, /* name */
0, /* has sup protos */
&be_class_Matter_PathGenerator,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(path_in),
- /* K1 */ be_nested_str_weak(pi),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(_next_endpoint),
- /* K4 */ be_nested_str_weak(endpoint_found),
- /* K5 */ be_nested_str_weak(attribute),
- /* K6 */ be_nested_str_weak(_next_cluster),
- /* K7 */ be_nested_str_weak(cluster_found),
- /* K8 */ be_nested_str_weak(_next_attribute),
- /* K9 */ be_nested_str_weak(attribute_found),
- /* K10 */ be_nested_str_weak(path_concrete),
- /* K11 */ be_nested_str_weak(reset),
- /* K12 */ be_nested_str_weak(endpoint),
- /* K13 */ be_nested_str_weak(get_endpoint),
- }),
- be_str_weak(next),
- &be_const_str_solidified,
- ( &(const binstruction[62]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060001, // 0003 JMPF R1 #0006
- 0x4C040000, // 0004 LDNIL R1
- 0x80040200, // 0005 RET 1 R1
- 0x88040101, // 0006 GETMBR R1 R0 K1
- 0x50080000, // 0007 LDBOOL R2 0 0
- 0x20040202, // 0008 NE R1 R1 R2
- 0x7806002F, // 0009 JMPF R1 #003A
- 0x88040101, // 000A GETMBR R1 R0 K1
- 0x4C080000, // 000B LDNIL R2
- 0x1C040202, // 000C EQ R1 R1 R2
- 0x74060003, // 000D JMPT R1 #0012
- 0x88040102, // 000E GETMBR R1 R0 K2
- 0x50080000, // 000F LDBOOL R2 0 0
- 0x1C040202, // 0010 EQ R1 R1 R2
- 0x78060002, // 0011 JMPF R1 #0015
- 0x8C040103, // 0012 GETMET R1 R0 K3
- 0x7C040200, // 0013 CALL R1 1
- 0x7001FFF0, // 0014 JMP #0006
- 0x50040200, // 0015 LDBOOL R1 1 0
- 0x90020801, // 0016 SETMBR R0 K4 R1
- 0x88040102, // 0017 GETMBR R1 R0 K2
- 0x4C080000, // 0018 LDNIL R2
- 0x1C040202, // 0019 EQ R1 R1 R2
- 0x74060003, // 001A JMPT R1 #001F
- 0x88040105, // 001B GETMBR R1 R0 K5
- 0x50080000, // 001C LDBOOL R2 0 0
- 0x1C040202, // 001D EQ R1 R1 R2
- 0x78060002, // 001E JMPF R1 #0022
- 0x8C040106, // 001F GETMET R1 R0 K6
- 0x7C040200, // 0020 CALL R1 1
- 0x7001FFE3, // 0021 JMP #0006
- 0x50040200, // 0022 LDBOOL R1 1 0
- 0x90020E01, // 0023 SETMBR R0 K7 R1
- 0x8C040108, // 0024 GETMET R1 R0 K8
- 0x7C040200, // 0025 CALL R1 1
- 0x88040105, // 0026 GETMBR R1 R0 K5
- 0x50080000, // 0027 LDBOOL R2 0 0
- 0x1C040202, // 0028 EQ R1 R1 R2
- 0x78060000, // 0029 JMPF R1 #002B
- 0x7001FFDA, // 002A JMP #0006
- 0x50040200, // 002B LDBOOL R1 1 0
- 0x90021201, // 002C SETMBR R0 K9 R1
- 0x8804010A, // 002D GETMBR R1 R0 K10
- 0x8C08030B, // 002E GETMET R2 R1 K11
- 0x7C080200, // 002F CALL R2 1
- 0x88080101, // 0030 GETMBR R2 R0 K1
- 0x8C08050D, // 0031 GETMET R2 R2 K13
- 0x7C080200, // 0032 CALL R2 1
- 0x90061802, // 0033 SETMBR R1 K12 R2
- 0x88080102, // 0034 GETMBR R2 R0 K2
- 0x90060402, // 0035 SETMBR R1 K2 R2
- 0x88080105, // 0036 GETMBR R2 R0 K5
- 0x90060A02, // 0037 SETMBR R1 K5 R2
- 0x80040200, // 0038 RET 1 R1
- 0x7001FFCB, // 0039 JMP #0006
- 0x8C04010B, // 003A GETMET R1 R0 K11
- 0x7C040200, // 003B CALL R1 1
- 0x4C040000, // 003C LDNIL R1
- 0x80040200, // 003D RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _next_cluster
-********************************************************************/
-extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator__next_cluster, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_PathGenerator,
- 1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(cluster),
- /* K1 */ be_nested_str_weak(clusters),
- /* K2 */ be_nested_str_weak(path_in),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_nested_str_weak(find),
- /* K5 */ be_const_int(1),
- }),
- be_str_weak(_next_cluster),
- &be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x50080000, // 0001 LDBOOL R2 0 0
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060001, // 0003 JMPF R1 #0006
- 0x50040000, // 0004 LDBOOL R1 0 0
- 0x80040200, // 0005 RET 1 R1
- 0x88040101, // 0006 GETMBR R1 R0 K1
- 0x88080102, // 0007 GETMBR R2 R0 K2
- 0x88080500, // 0008 GETMBR R2 R2 K0
- 0x4C0C0000, // 0009 LDNIL R3
- 0x90020603, // 000A SETMBR R0 K3 R3
- 0x540DFFFE, // 000B LDINT R3 -1
- 0x88100100, // 000C GETMBR R4 R0 K0
- 0x4C140000, // 000D LDNIL R5
- 0x20100805, // 000E NE R4 R4 R5
- 0x78120003, // 000F JMPF R4 #0014
- 0x8C100304, // 0010 GETMET R4 R1 K4
- 0x88180100, // 0011 GETMBR R6 R0 K0
- 0x7C100400, // 0012 CALL R4 2
- 0x5C0C0800, // 0013 MOVE R3 R4
- 0x4C100000, // 0014 LDNIL R4
- 0x20100604, // 0015 NE R4 R3 R4
- 0x78120011, // 0016 JMPF R4 #0029
- 0x00100705, // 0017 ADD R4 R3 K5
- 0x6014000C, // 0018 GETGBL R5 G12
- 0x5C180200, // 0019 MOVE R6 R1
- 0x7C140200, // 001A CALL R5 1
- 0x14100805, // 001B LT R4 R4 R5
- 0x7812000B, // 001C JMPF R4 #0029
- 0x000C0705, // 001D ADD R3 R3 K5
- 0x94100203, // 001E GETIDX R4 R1 R3
- 0x90020004, // 001F SETMBR R0 K0 R4
- 0x4C100000, // 0020 LDNIL R4
- 0x1C100404, // 0021 EQ R4 R2 R4
- 0x74120002, // 0022 JMPT R4 #0026
- 0x88100100, // 0023 GETMBR R4 R0 K0
- 0x1C100404, // 0024 EQ R4 R2 R4
- 0x78120001, // 0025 JMPF R4 #0028
- 0x88100100, // 0026 GETMBR R4 R0 K0
- 0x80040800, // 0027 RET 1 R4
- 0x7001FFED, // 0028 JMP #0017
- 0x50100000, // 0029 LDBOOL R4 0 0
- 0x90020004, // 002A SETMBR R0 K0 R4
- 0x50100000, // 002B LDBOOL R4 0 0
- 0x80040800, // 002C RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start
-********************************************************************/
-extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_start, /* name */
- be_nested_proto(
- 5, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_PathGenerator,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(path_concrete),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(Path),
- /* K3 */ be_nested_str_weak(reset),
- /* K4 */ be_nested_str_weak(path_in),
- /* K5 */ be_nested_str_weak(session),
- /* K6 */ be_nested_str_weak(endpoint_found),
- /* K7 */ be_nested_str_weak(cluster_found),
- /* K8 */ be_nested_str_weak(attribute_found),
+ /* K1 */ be_nested_str_weak(reset),
+ /* K2 */ be_nested_str_weak(pi),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(attribute),
+ /* K5 */ be_nested_str_weak(clusters),
}),
- be_str_weak(start),
+ be_str_weak(reset),
&be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0xB80E0200, // 0000 GETNGBL R3 K1
- 0x8C0C0702, // 0001 GETMET R3 R3 K2
- 0x7C0C0200, // 0002 CALL R3 1
- 0x90020003, // 0003 SETMBR R0 K0 R3
- 0x8C0C0103, // 0004 GETMET R3 R0 K3
- 0x7C0C0200, // 0005 CALL R3 1
- 0x90020801, // 0006 SETMBR R0 K4 R1
- 0x90020A02, // 0007 SETMBR R0 K5 R2
- 0x500C0000, // 0008 LDBOOL R3 0 0
- 0x90020C03, // 0009 SETMBR R0 K6 R3
- 0x500C0000, // 000A LDBOOL R3 0 0
- 0x90020E03, // 000B SETMBR R0 K7 R3
- 0x500C0000, // 000C LDBOOL R3 0 0
- 0x90021003, // 000D SETMBR R0 K8 R3
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_pi
-********************************************************************/
-extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_get_pi, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_PathGenerator,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(pi),
- }),
- be_str_weak(get_pi),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x80040200, // 0001 RET 1 R1
+ ( &(const binstruction[10]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x50080000, // 0004 LDBOOL R2 0 0
+ 0x90020402, // 0005 SETMBR R0 K2 R2
+ 0x90020601, // 0006 SETMBR R0 K3 R1
+ 0x90020801, // 0007 SETMBR R0 K4 R1
+ 0x90020A01, // 0008 SETMBR R0 K5 R1
+ 0x80000000, // 0009 RET 0
})
)
);
@@ -289,10 +76,110 @@ be_local_closure(class_Matter_PathGenerator_init, /* name */
/********************************************************************
-** Solidified function: reset
+** Solidified function: is_direct
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_reset, /* name */
+be_local_closure(class_Matter_PathGenerator_is_direct, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(path_in_endpoint),
+ /* K1 */ be_nested_str_weak(path_in_cluster),
+ /* K2 */ be_nested_str_weak(path_in_attribute),
+ }),
+ be_str_weak(is_direct),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060007, // 0003 JMPF R1 #000C
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x20040202, // 0006 NE R1 R1 R2
+ 0x78060003, // 0007 JMPF R1 #000C
+ 0x88040102, // 0008 GETMBR R1 R0 K2
+ 0x4C080000, // 0009 LDNIL R2
+ 0x20040202, // 000A NE R1 R1 R2
+ 0x74060000, // 000B JMPT R1 #000D
+ 0x50040001, // 000C LDBOOL R1 0 1
+ 0x50040200, // 000D LDBOOL R1 1 0
+ 0x80040200, // 000E RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: default_status_error
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator_default_status_error, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(is_direct),
+ /* K1 */ be_nested_str_weak(endpoint_found),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K4 */ be_nested_str_weak(cluster_found),
+ /* K5 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K6 */ be_nested_str_weak(attribute_found),
+ /* K7 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ /* K8 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
+ }),
+ be_str_weak(default_status_error),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x78060011, // 0002 JMPF R1 #0015
+ 0x88040101, // 0003 GETMBR R1 R0 K1
+ 0x74060002, // 0004 JMPT R1 #0008
+ 0xB8060400, // 0005 GETNGBL R1 K2
+ 0x88040303, // 0006 GETMBR R1 R1 K3
+ 0x80040200, // 0007 RET 1 R1
+ 0x88040104, // 0008 GETMBR R1 R0 K4
+ 0x74060002, // 0009 JMPT R1 #000D
+ 0xB8060400, // 000A GETNGBL R1 K2
+ 0x88040305, // 000B GETMBR R1 R1 K5
+ 0x80040200, // 000C RET 1 R1
+ 0x88040106, // 000D GETMBR R1 R0 K6
+ 0x74060002, // 000E JMPT R1 #0012
+ 0xB8060400, // 000F GETNGBL R1 K2
+ 0x88040307, // 0010 GETMBR R1 R1 K7
+ 0x80040200, // 0011 RET 1 R1
+ 0xB8060400, // 0012 GETNGBL R1 K2
+ 0x88040308, // 0013 GETMBR R1 R1 K8
+ 0x80040200, // 0014 RET 1 R1
+ 0x4C040000, // 0015 LDNIL R1
+ 0x80040200, // 0016 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: next
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator_next, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -302,31 +189,127 @@ be_local_closure(class_Matter_PathGenerator_reset, /* name */
0, /* has sup protos */
&be_class_Matter_PathGenerator,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(path_in),
- /* K1 */ be_nested_str_weak(session),
- /* K2 */ be_nested_str_weak(path_concrete),
- /* K3 */ be_nested_str_weak(reset),
- /* K4 */ be_nested_str_weak(pi),
- /* K5 */ be_nested_str_weak(cluster),
+ ( &(const bvalue[21]) { /* constants */
+ /* K0 */ be_nested_str_weak(pi),
+ /* K1 */ be_nested_str_weak(is_direct),
+ /* K2 */ be_nested_str_weak(reset),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(_next_endpoint),
+ /* K5 */ be_nested_str_weak(endpoint_found),
/* K6 */ be_nested_str_weak(attribute),
- /* K7 */ be_nested_str_weak(clusters),
+ /* K7 */ be_nested_str_weak(_next_cluster),
+ /* K8 */ be_nested_str_weak(cluster_found),
+ /* K9 */ be_nested_str_weak(_next_attribute),
+ /* K10 */ be_nested_str_weak(attribute_found),
+ /* K11 */ be_nested_str_weak(path_concrete),
+ /* K12 */ be_nested_str_weak(endpoint),
+ /* K13 */ be_nested_str_weak(get_endpoint),
+ /* K14 */ be_nested_str_weak(fabric_filtered),
+ /* K15 */ be_nested_str_weak(path_in_fabric_filtered),
+ /* K16 */ be_nested_str_weak(status),
+ /* K17 */ be_nested_str_weak(path_in_endpoint),
+ /* K18 */ be_nested_str_weak(path_in_cluster),
+ /* K19 */ be_nested_str_weak(path_in_attribute),
+ /* K20 */ be_nested_str_weak(default_status_error),
}),
- be_str_weak(reset),
+ be_str_weak(next),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x90020201, // 0002 SETMBR R0 K1 R1
- 0x88080102, // 0003 GETMBR R2 R0 K2
- 0x8C080503, // 0004 GETMET R2 R2 K3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020801, // 0006 SETMBR R0 K4 R1
- 0x90020A01, // 0007 SETMBR R0 K5 R1
- 0x90020C01, // 0008 SETMBR R0 K6 R1
- 0x90020E01, // 0009 SETMBR R0 K7 R1
- 0x90020E01, // 000A SETMBR R0 K7 R1
- 0x80000000, // 000B RET 0
+ ( &(const binstruction[95]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x50080200, // 0001 LDBOOL R2 1 0
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x74060006, // 0003 JMPT R1 #000B
+ 0x88040100, // 0004 GETMBR R1 R0 K0
+ 0x4C080000, // 0005 LDNIL R2
+ 0x20040202, // 0006 NE R1 R1 R2
+ 0x78060006, // 0007 JMPF R1 #000F
+ 0x8C040101, // 0008 GETMET R1 R0 K1
+ 0x7C040200, // 0009 CALL R1 1
+ 0x78060003, // 000A JMPF R1 #000F
+ 0x8C040102, // 000B GETMET R1 R0 K2
+ 0x7C040200, // 000C CALL R1 1
+ 0x4C040000, // 000D LDNIL R1
+ 0x80040200, // 000E RET 1 R1
+ 0x88040100, // 000F GETMBR R1 R0 K0
+ 0x50080000, // 0010 LDBOOL R2 0 0
+ 0x20040202, // 0011 NE R1 R1 R2
+ 0x78060033, // 0012 JMPF R1 #0047
+ 0x88040100, // 0013 GETMBR R1 R0 K0
+ 0x4C080000, // 0014 LDNIL R2
+ 0x1C040202, // 0015 EQ R1 R1 R2
+ 0x74060003, // 0016 JMPT R1 #001B
+ 0x88040103, // 0017 GETMBR R1 R0 K3
+ 0x50080000, // 0018 LDBOOL R2 0 0
+ 0x1C040202, // 0019 EQ R1 R1 R2
+ 0x78060002, // 001A JMPF R1 #001E
+ 0x8C040104, // 001B GETMET R1 R0 K4
+ 0x7C040200, // 001C CALL R1 1
+ 0x7001FFF0, // 001D JMP #000F
+ 0x50040200, // 001E LDBOOL R1 1 0
+ 0x90020A01, // 001F SETMBR R0 K5 R1
+ 0x88040103, // 0020 GETMBR R1 R0 K3
+ 0x4C080000, // 0021 LDNIL R2
+ 0x1C040202, // 0022 EQ R1 R1 R2
+ 0x74060003, // 0023 JMPT R1 #0028
+ 0x88040106, // 0024 GETMBR R1 R0 K6
+ 0x50080000, // 0025 LDBOOL R2 0 0
+ 0x1C040202, // 0026 EQ R1 R1 R2
+ 0x78060002, // 0027 JMPF R1 #002B
+ 0x8C040107, // 0028 GETMET R1 R0 K7
+ 0x7C040200, // 0029 CALL R1 1
+ 0x7001FFE3, // 002A JMP #000F
+ 0x50040200, // 002B LDBOOL R1 1 0
+ 0x90021001, // 002C SETMBR R0 K8 R1
+ 0x8C040109, // 002D GETMET R1 R0 K9
+ 0x7C040200, // 002E CALL R1 1
+ 0x88040106, // 002F GETMBR R1 R0 K6
+ 0x50080000, // 0030 LDBOOL R2 0 0
+ 0x1C040202, // 0031 EQ R1 R1 R2
+ 0x78060000, // 0032 JMPF R1 #0034
+ 0x7001FFDA, // 0033 JMP #000F
+ 0x50040200, // 0034 LDBOOL R1 1 0
+ 0x90021401, // 0035 SETMBR R0 K10 R1
+ 0x8804010B, // 0036 GETMBR R1 R0 K11
+ 0x8C080302, // 0037 GETMET R2 R1 K2
+ 0x7C080200, // 0038 CALL R2 1
+ 0x88080100, // 0039 GETMBR R2 R0 K0
+ 0x8C08050D, // 003A GETMET R2 R2 K13
+ 0x7C080200, // 003B CALL R2 1
+ 0x90061802, // 003C SETMBR R1 K12 R2
+ 0x88080103, // 003D GETMBR R2 R0 K3
+ 0x90060602, // 003E SETMBR R1 K3 R2
+ 0x88080106, // 003F GETMBR R2 R0 K6
+ 0x90060C02, // 0040 SETMBR R1 K6 R2
+ 0x8808010F, // 0041 GETMBR R2 R0 K15
+ 0x90061C02, // 0042 SETMBR R1 K14 R2
+ 0x4C080000, // 0043 LDNIL R2
+ 0x90062002, // 0044 SETMBR R1 K16 R2
+ 0x80040200, // 0045 RET 1 R1
+ 0x7001FFC7, // 0046 JMP #000F
+ 0x8C040101, // 0047 GETMET R1 R0 K1
+ 0x7C040200, // 0048 CALL R1 1
+ 0x78060010, // 0049 JMPF R1 #005B
+ 0x8804010B, // 004A GETMBR R1 R0 K11
+ 0x8C080302, // 004B GETMET R2 R1 K2
+ 0x7C080200, // 004C CALL R2 1
+ 0x88080111, // 004D GETMBR R2 R0 K17
+ 0x90061802, // 004E SETMBR R1 K12 R2
+ 0x88080112, // 004F GETMBR R2 R0 K18
+ 0x90060602, // 0050 SETMBR R1 K3 R2
+ 0x88080113, // 0051 GETMBR R2 R0 K19
+ 0x90060C02, // 0052 SETMBR R1 K6 R2
+ 0x8808010F, // 0053 GETMBR R2 R0 K15
+ 0x90061C02, // 0054 SETMBR R1 K14 R2
+ 0x8C080114, // 0055 GETMET R2 R0 K20
+ 0x7C080200, // 0056 CALL R2 1
+ 0x90062002, // 0057 SETMBR R1 K16 R2
+ 0x50080200, // 0058 LDBOOL R2 1 0
+ 0x90020002, // 0059 SETMBR R0 K0 R2
+ 0x80040200, // 005A RET 1 R1
+ 0x8C040102, // 005B GETMET R1 R0 K2
+ 0x7C040200, // 005C CALL R1 1
+ 0x4C040000, // 005D LDNIL R1
+ 0x80040200, // 005E RET 1 R1
})
)
);
@@ -334,10 +317,10 @@ be_local_closure(class_Matter_PathGenerator_reset, /* name */
/********************************************************************
-** Solidified function: _next_endpoint
+** Solidified function: _next_cluster
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator__next_endpoint, /* name */
+be_local_closure(class_Matter_PathGenerator__next_cluster, /* name */
be_nested_proto(
7, /* nstack */
1, /* argc */
@@ -347,23 +330,17 @@ be_local_closure(class_Matter_PathGenerator__next_endpoint, /* name */
0, /* has sup protos */
&be_class_Matter_PathGenerator,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(pi),
- /* K1 */ be_nested_str_weak(device),
- /* K2 */ be_nested_str_weak(plugins),
- /* K3 */ be_nested_str_weak(path_in),
- /* K4 */ be_nested_str_weak(endpoint),
- /* K5 */ be_nested_str_weak(cluster),
- /* K6 */ be_nested_str_weak(attribute),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(get_endpoint),
- /* K10 */ be_nested_str_weak(clusters),
- /* K11 */ be_nested_str_weak(get_cluster_list_sorted),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(cluster),
+ /* K1 */ be_nested_str_weak(clusters),
+ /* K2 */ be_nested_str_weak(path_in_cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_nested_str_weak(find),
+ /* K5 */ be_const_int(1),
}),
- be_str_weak(_next_endpoint),
+ be_str_weak(_next_cluster),
&be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
+ ( &(const binstruction[44]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x50080000, // 0001 LDBOOL R2 0 0
0x1C040202, // 0002 EQ R1 R1 R2
@@ -371,53 +348,73 @@ be_local_closure(class_Matter_PathGenerator__next_endpoint, /* name */
0x50040000, // 0004 LDBOOL R1 0 0
0x80040200, // 0005 RET 1 R1
0x88040101, // 0006 GETMBR R1 R0 K1
- 0x88040302, // 0007 GETMBR R1 R1 K2
- 0x88080103, // 0008 GETMBR R2 R0 K3
- 0x88080504, // 0009 GETMBR R2 R2 K4
- 0x4C0C0000, // 000A LDNIL R3
- 0x90020A03, // 000B SETMBR R0 K5 R3
- 0x4C0C0000, // 000C LDNIL R3
- 0x90020C03, // 000D SETMBR R0 K6 R3
- 0x540DFFFE, // 000E LDINT R3 -1
- 0x88100100, // 000F GETMBR R4 R0 K0
- 0x4C140000, // 0010 LDNIL R5
- 0x20100805, // 0011 NE R4 R4 R5
- 0x78120003, // 0012 JMPF R4 #0017
- 0x8C100307, // 0013 GETMET R4 R1 K7
- 0x88180100, // 0014 GETMBR R6 R0 K0
- 0x7C100400, // 0015 CALL R4 2
- 0x5C0C0800, // 0016 MOVE R3 R4
- 0x4C100000, // 0017 LDNIL R4
- 0x20100604, // 0018 NE R4 R3 R4
- 0x78120017, // 0019 JMPF R4 #0032
- 0x00100708, // 001A ADD R4 R3 K8
- 0x6014000C, // 001B GETGBL R5 G12
- 0x5C180200, // 001C MOVE R6 R1
- 0x7C140200, // 001D CALL R5 1
- 0x14100805, // 001E LT R4 R4 R5
- 0x78120011, // 001F JMPF R4 #0032
- 0x000C0708, // 0020 ADD R3 R3 K8
- 0x94100203, // 0021 GETIDX R4 R1 R3
- 0x90020004, // 0022 SETMBR R0 K0 R4
- 0x4C100000, // 0023 LDNIL R4
- 0x1C100404, // 0024 EQ R4 R2 R4
- 0x74120004, // 0025 JMPT R4 #002B
- 0x88100100, // 0026 GETMBR R4 R0 K0
- 0x8C100909, // 0027 GETMET R4 R4 K9
- 0x7C100200, // 0028 CALL R4 1
- 0x1C100404, // 0029 EQ R4 R2 R4
- 0x78120005, // 002A JMPF R4 #0031
- 0x88100100, // 002B GETMBR R4 R0 K0
- 0x8C10090B, // 002C GETMET R4 R4 K11
- 0x7C100200, // 002D CALL R4 1
- 0x90021404, // 002E SETMBR R0 K10 R4
- 0x88100100, // 002F GETMBR R4 R0 K0
- 0x80040800, // 0030 RET 1 R4
- 0x7001FFE7, // 0031 JMP #001A
- 0x50100000, // 0032 LDBOOL R4 0 0
- 0x90020004, // 0033 SETMBR R0 K0 R4
- 0x50100000, // 0034 LDBOOL R4 0 0
- 0x80040800, // 0035 RET 1 R4
+ 0x88080102, // 0007 GETMBR R2 R0 K2
+ 0x4C0C0000, // 0008 LDNIL R3
+ 0x90020603, // 0009 SETMBR R0 K3 R3
+ 0x540DFFFE, // 000A LDINT R3 -1
+ 0x88100100, // 000B GETMBR R4 R0 K0
+ 0x4C140000, // 000C LDNIL R5
+ 0x20100805, // 000D NE R4 R4 R5
+ 0x78120003, // 000E JMPF R4 #0013
+ 0x8C100304, // 000F GETMET R4 R1 K4
+ 0x88180100, // 0010 GETMBR R6 R0 K0
+ 0x7C100400, // 0011 CALL R4 2
+ 0x5C0C0800, // 0012 MOVE R3 R4
+ 0x4C100000, // 0013 LDNIL R4
+ 0x20100604, // 0014 NE R4 R3 R4
+ 0x78120011, // 0015 JMPF R4 #0028
+ 0x00100705, // 0016 ADD R4 R3 K5
+ 0x6014000C, // 0017 GETGBL R5 G12
+ 0x5C180200, // 0018 MOVE R6 R1
+ 0x7C140200, // 0019 CALL R5 1
+ 0x14100805, // 001A LT R4 R4 R5
+ 0x7812000B, // 001B JMPF R4 #0028
+ 0x000C0705, // 001C ADD R3 R3 K5
+ 0x94100203, // 001D GETIDX R4 R1 R3
+ 0x90020004, // 001E SETMBR R0 K0 R4
+ 0x4C100000, // 001F LDNIL R4
+ 0x1C100404, // 0020 EQ R4 R2 R4
+ 0x74120002, // 0021 JMPT R4 #0025
+ 0x88100100, // 0022 GETMBR R4 R0 K0
+ 0x1C100404, // 0023 EQ R4 R2 R4
+ 0x78120001, // 0024 JMPF R4 #0027
+ 0x88100100, // 0025 GETMBR R4 R0 K0
+ 0x80040800, // 0026 RET 1 R4
+ 0x7001FFED, // 0027 JMP #0016
+ 0x50100000, // 0028 LDBOOL R4 0 0
+ 0x90020004, // 0029 SETMBR R0 K0 R4
+ 0x50100000, // 002A LDBOOL R4 0 0
+ 0x80040800, // 002B RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: finished
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator_finished, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(pi),
+ }),
+ be_str_weak(finished),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
})
)
);
@@ -443,13 +440,13 @@ be_local_closure(class_Matter_PathGenerator__next_attribute, /* name */
/* K1 */ be_nested_str_weak(pi),
/* K2 */ be_nested_str_weak(get_attribute_list),
/* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(path_in),
+ /* K4 */ be_nested_str_weak(path_in_attribute),
/* K5 */ be_nested_str_weak(find),
/* K6 */ be_const_int(1),
}),
be_str_weak(_next_attribute),
&be_const_str_solidified,
- ( &(const binstruction[46]) { /* code */
+ ( &(const binstruction[45]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x50080000, // 0001 LDBOOL R2 0 0
0x1C040202, // 0002 EQ R1 R1 R2
@@ -461,41 +458,226 @@ be_local_closure(class_Matter_PathGenerator__next_attribute, /* name */
0x880C0103, // 0008 GETMBR R3 R0 K3
0x7C040400, // 0009 CALL R1 2
0x88080104, // 000A GETMBR R2 R0 K4
- 0x88080500, // 000B GETMBR R2 R2 K0
- 0x540DFFFE, // 000C LDINT R3 -1
- 0x88100100, // 000D GETMBR R4 R0 K0
- 0x4C140000, // 000E LDNIL R5
- 0x20100805, // 000F NE R4 R4 R5
- 0x78120003, // 0010 JMPF R4 #0015
- 0x8C100305, // 0011 GETMET R4 R1 K5
- 0x88180100, // 0012 GETMBR R6 R0 K0
- 0x7C100400, // 0013 CALL R4 2
- 0x5C0C0800, // 0014 MOVE R3 R4
- 0x4C100000, // 0015 LDNIL R4
- 0x20100604, // 0016 NE R4 R3 R4
- 0x78120011, // 0017 JMPF R4 #002A
- 0x00100706, // 0018 ADD R4 R3 K6
- 0x6014000C, // 0019 GETGBL R5 G12
- 0x5C180200, // 001A MOVE R6 R1
- 0x7C140200, // 001B CALL R5 1
- 0x14100805, // 001C LT R4 R4 R5
- 0x7812000B, // 001D JMPF R4 #002A
- 0x000C0706, // 001E ADD R3 R3 K6
- 0x94100203, // 001F GETIDX R4 R1 R3
- 0x90020004, // 0020 SETMBR R0 K0 R4
- 0x4C100000, // 0021 LDNIL R4
- 0x1C100404, // 0022 EQ R4 R2 R4
- 0x74120002, // 0023 JMPT R4 #0027
- 0x88100100, // 0024 GETMBR R4 R0 K0
- 0x1C100404, // 0025 EQ R4 R2 R4
- 0x78120001, // 0026 JMPF R4 #0029
- 0x88100100, // 0027 GETMBR R4 R0 K0
- 0x80040800, // 0028 RET 1 R4
- 0x7001FFED, // 0029 JMP #0018
- 0x50100000, // 002A LDBOOL R4 0 0
- 0x90020004, // 002B SETMBR R0 K0 R4
- 0x50100000, // 002C LDBOOL R4 0 0
- 0x80040800, // 002D RET 1 R4
+ 0x540DFFFE, // 000B LDINT R3 -1
+ 0x88100100, // 000C GETMBR R4 R0 K0
+ 0x4C140000, // 000D LDNIL R5
+ 0x20100805, // 000E NE R4 R4 R5
+ 0x78120003, // 000F JMPF R4 #0014
+ 0x8C100305, // 0010 GETMET R4 R1 K5
+ 0x88180100, // 0011 GETMBR R6 R0 K0
+ 0x7C100400, // 0012 CALL R4 2
+ 0x5C0C0800, // 0013 MOVE R3 R4
+ 0x4C100000, // 0014 LDNIL R4
+ 0x20100604, // 0015 NE R4 R3 R4
+ 0x78120011, // 0016 JMPF R4 #0029
+ 0x00100706, // 0017 ADD R4 R3 K6
+ 0x6014000C, // 0018 GETGBL R5 G12
+ 0x5C180200, // 0019 MOVE R6 R1
+ 0x7C140200, // 001A CALL R5 1
+ 0x14100805, // 001B LT R4 R4 R5
+ 0x7812000B, // 001C JMPF R4 #0029
+ 0x000C0706, // 001D ADD R3 R3 K6
+ 0x94100203, // 001E GETIDX R4 R1 R3
+ 0x90020004, // 001F SETMBR R0 K0 R4
+ 0x4C100000, // 0020 LDNIL R4
+ 0x1C100404, // 0021 EQ R4 R2 R4
+ 0x74120002, // 0022 JMPT R4 #0026
+ 0x88100100, // 0023 GETMBR R4 R0 K0
+ 0x1C100404, // 0024 EQ R4 R2 R4
+ 0x78120001, // 0025 JMPF R4 #0028
+ 0x88100100, // 0026 GETMBR R4 R0 K0
+ 0x80040800, // 0027 RET 1 R4
+ 0x7001FFED, // 0028 JMP #0017
+ 0x50100000, // 0029 LDBOOL R4 0 0
+ 0x90020004, // 002A SETMBR R0 K0 R4
+ 0x50100000, // 002B LDBOOL R4 0 0
+ 0x80040800, // 002C RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _next_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator__next_endpoint, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(pi),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(path_in_endpoint),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(attribute),
+ /* K6 */ be_nested_str_weak(find),
+ /* K7 */ be_const_int(1),
+ /* K8 */ be_nested_str_weak(get_endpoint),
+ /* K9 */ be_nested_str_weak(clusters),
+ /* K10 */ be_nested_str_weak(get_cluster_list_sorted),
+ }),
+ be_str_weak(_next_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[53]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060001, // 0003 JMPF R1 #0006
+ 0x50040000, // 0004 LDBOOL R1 0 0
+ 0x80040200, // 0005 RET 1 R1
+ 0x88040101, // 0006 GETMBR R1 R0 K1
+ 0x88040302, // 0007 GETMBR R1 R1 K2
+ 0x88080103, // 0008 GETMBR R2 R0 K3
+ 0x4C0C0000, // 0009 LDNIL R3
+ 0x90020803, // 000A SETMBR R0 K4 R3
+ 0x4C0C0000, // 000B LDNIL R3
+ 0x90020A03, // 000C SETMBR R0 K5 R3
+ 0x540DFFFE, // 000D LDINT R3 -1
+ 0x88100100, // 000E GETMBR R4 R0 K0
+ 0x4C140000, // 000F LDNIL R5
+ 0x20100805, // 0010 NE R4 R4 R5
+ 0x78120003, // 0011 JMPF R4 #0016
+ 0x8C100306, // 0012 GETMET R4 R1 K6
+ 0x88180100, // 0013 GETMBR R6 R0 K0
+ 0x7C100400, // 0014 CALL R4 2
+ 0x5C0C0800, // 0015 MOVE R3 R4
+ 0x4C100000, // 0016 LDNIL R4
+ 0x20100604, // 0017 NE R4 R3 R4
+ 0x78120017, // 0018 JMPF R4 #0031
+ 0x00100707, // 0019 ADD R4 R3 K7
+ 0x6014000C, // 001A GETGBL R5 G12
+ 0x5C180200, // 001B MOVE R6 R1
+ 0x7C140200, // 001C CALL R5 1
+ 0x14100805, // 001D LT R4 R4 R5
+ 0x78120011, // 001E JMPF R4 #0031
+ 0x000C0707, // 001F ADD R3 R3 K7
+ 0x94100203, // 0020 GETIDX R4 R1 R3
+ 0x90020004, // 0021 SETMBR R0 K0 R4
+ 0x4C100000, // 0022 LDNIL R4
+ 0x1C100404, // 0023 EQ R4 R2 R4
+ 0x74120004, // 0024 JMPT R4 #002A
+ 0x88100100, // 0025 GETMBR R4 R0 K0
+ 0x8C100908, // 0026 GETMET R4 R4 K8
+ 0x7C100200, // 0027 CALL R4 1
+ 0x1C100404, // 0028 EQ R4 R2 R4
+ 0x78120005, // 0029 JMPF R4 #0030
+ 0x88100100, // 002A GETMBR R4 R0 K0
+ 0x8C10090A, // 002B GETMET R4 R4 K10
+ 0x7C100200, // 002C CALL R4 1
+ 0x90021204, // 002D SETMBR R0 K9 R4
+ 0x88100100, // 002E GETMBR R4 R0 K0
+ 0x80040800, // 002F RET 1 R4
+ 0x7001FFE7, // 0030 JMP #0019
+ 0x50100000, // 0031 LDBOOL R4 0 0
+ 0x90020004, // 0032 SETMBR R0 K0 R4
+ 0x50100000, // 0033 LDBOOL R4 0 0
+ 0x80040800, // 0034 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_pi
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator_get_pi, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(pi),
+ }),
+ be_str_weak(get_pi),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x74060003, // 0003 JMPT R1 #0008
+ 0x88040100, // 0004 GETMBR R1 R0 K0
+ 0x50080200, // 0005 LDBOOL R2 1 0
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x78060001, // 0007 JMPF R1 #000A
+ 0x4C040000, // 0008 LDNIL R1
+ 0x70020000, // 0009 JMP #000B
+ 0x88040100, // 000A GETMBR R1 R0 K0
+ 0x80040200, // 000B RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+extern const bclass be_class_Matter_PathGenerator;
+be_local_closure(class_Matter_PathGenerator_start, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_PathGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(path_concrete),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(Path),
+ /* K3 */ be_nested_str_weak(reset),
+ /* K4 */ be_nested_str_weak(path_in_endpoint),
+ /* K5 */ be_nested_str_weak(path_in_cluster),
+ /* K6 */ be_nested_str_weak(path_in_attribute),
+ /* K7 */ be_nested_str_weak(path_in_fabric_filtered),
+ /* K8 */ be_nested_str_weak(pi),
+ /* K9 */ be_nested_str_weak(endpoint_found),
+ /* K10 */ be_nested_str_weak(cluster_found),
+ /* K11 */ be_nested_str_weak(attribute_found),
+ }),
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xB8160200, // 0000 GETNGBL R5 K1
+ 0x8C140B02, // 0001 GETMET R5 R5 K2
+ 0x7C140200, // 0002 CALL R5 1
+ 0x90020005, // 0003 SETMBR R0 K0 R5
+ 0x8C140103, // 0004 GETMET R5 R0 K3
+ 0x7C140200, // 0005 CALL R5 1
+ 0x90020801, // 0006 SETMBR R0 K4 R1
+ 0x90020A02, // 0007 SETMBR R0 K5 R2
+ 0x90020C03, // 0008 SETMBR R0 K6 R3
+ 0x60140017, // 0009 GETGBL R5 G23
+ 0x5C180800, // 000A MOVE R6 R4
+ 0x7C140200, // 000B CALL R5 1
+ 0x90020E05, // 000C SETMBR R0 K7 R5
+ 0x4C140000, // 000D LDNIL R5
+ 0x90021005, // 000E SETMBR R0 K8 R5
+ 0x50140000, // 000F LDBOOL R5 0 0
+ 0x90021205, // 0010 SETMBR R0 K9 R5
+ 0x50140000, // 0011 LDBOOL R5 0 0
+ 0x90021405, // 0012 SETMBR R0 K10 R5
+ 0x50140000, // 0013 LDBOOL R5 0 0
+ 0x90021605, // 0014 SETMBR R0 K11 R5
+ 0x80000000, // 0015 RET 0
})
)
);
@@ -506,29 +688,34 @@ be_local_closure(class_Matter_PathGenerator__next_attribute, /* name */
** Solidified class: Matter_PathGenerator
********************************************************************/
be_local_class(Matter_PathGenerator,
- 11,
+ 13,
NULL,
- be_nested_map(19,
+ be_nested_map(24,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(_next_cluster, -1), be_const_closure(class_Matter_PathGenerator__next_cluster_closure) },
- { be_const_key_weak(_next_endpoint, -1), be_const_closure(class_Matter_PathGenerator__next_endpoint_closure) },
- { be_const_key_weak(endpoint_found, 0), be_const_var(7) },
+ { be_const_key_weak(reset, -1), be_const_closure(class_Matter_PathGenerator_reset_closure) },
{ be_const_key_weak(start, -1), be_const_closure(class_Matter_PathGenerator_start_closure) },
- { be_const_key_weak(session, -1), be_const_var(2) },
- { be_const_key_weak(get_pi, 12), be_const_closure(class_Matter_PathGenerator_get_pi_closure) },
- { be_const_key_weak(pi, -1), be_const_var(3) },
- { be_const_key_weak(attribute, 10), be_const_var(5) },
- { be_const_key_weak(cluster_found, 14), be_const_var(8) },
- { be_const_key_weak(device, -1), be_const_var(0) },
- { be_const_key_weak(attribute_found, -1), be_const_var(9) },
- { be_const_key_weak(clusters, -1), be_const_var(6) },
- { be_const_key_weak(path_in, -1), be_const_var(1) },
- { be_const_key_weak(init, 11), be_const_closure(class_Matter_PathGenerator_init_closure) },
- { be_const_key_weak(path_concrete, -1), be_const_var(10) },
- { be_const_key_weak(next, 9), be_const_closure(class_Matter_PathGenerator_next_closure) },
- { be_const_key_weak(cluster, 4), be_const_var(4) },
- { be_const_key_weak(reset, 1), be_const_closure(class_Matter_PathGenerator_reset_closure) },
+ { be_const_key_weak(pi, -1), be_const_var(5) },
+ { be_const_key_weak(init, 15), be_const_closure(class_Matter_PathGenerator_init_closure) },
+ { be_const_key_weak(path_in_endpoint, -1), be_const_var(1) },
+ { be_const_key_weak(path_in_cluster, -1), be_const_var(2) },
+ { be_const_key_weak(get_pi, -1), be_const_closure(class_Matter_PathGenerator_get_pi_closure) },
+ { be_const_key_weak(is_direct, 22), be_const_closure(class_Matter_PathGenerator_is_direct_closure) },
+ { be_const_key_weak(default_status_error, 9), be_const_closure(class_Matter_PathGenerator_default_status_error_closure) },
+ { be_const_key_weak(next, -1), be_const_closure(class_Matter_PathGenerator_next_closure) },
+ { be_const_key_weak(cluster_found, 17), be_const_var(10) },
+ { be_const_key_weak(endpoint_found, 6), be_const_var(9) },
{ be_const_key_weak(_next_attribute, -1), be_const_closure(class_Matter_PathGenerator__next_attribute_closure) },
+ { be_const_key_weak(cluster, -1), be_const_var(6) },
+ { be_const_key_weak(_next_cluster, -1), be_const_closure(class_Matter_PathGenerator__next_cluster_closure) },
+ { be_const_key_weak(device, -1), be_const_var(0) },
+ { be_const_key_weak(path_concrete, -1), be_const_var(12) },
+ { be_const_key_weak(clusters, -1), be_const_var(8) },
+ { be_const_key_weak(path_in_fabric_filtered, -1), be_const_var(4) },
+ { be_const_key_weak(finished, -1), be_const_closure(class_Matter_PathGenerator_finished_closure) },
+ { be_const_key_weak(attribute_found, 12), be_const_var(11) },
+ { be_const_key_weak(_next_endpoint, -1), be_const_closure(class_Matter_PathGenerator__next_endpoint_closure) },
+ { be_const_key_weak(path_in_attribute, -1), be_const_var(3) },
+ { be_const_key_weak(attribute, 1), be_const_var(7) },
})),
be_str_weak(Matter_PathGenerator)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index f045923c7..8fc07b9df 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -837,7 +837,7 @@ be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
be_nested_proto(
- 16, /* nstack */
+ 12, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -845,100 +845,48 @@ be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(endpoint),
/* K1 */ be_nested_str_weak(cluster),
/* K2 */ be_nested_str_weak(attribute),
/* K3 */ be_nested_str_weak(matter),
/* K4 */ be_nested_str_weak(PathGenerator),
/* K5 */ be_nested_str_weak(start),
- /* K6 */ be_nested_str_weak(next),
- /* K7 */ be_nested_str_weak(get_pi),
- /* K8 */ be_nested_str_weak(endpoint_found),
- /* K9 */ be_nested_str_weak(status),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K11 */ be_nested_str_weak(cluster_found),
- /* K12 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K13 */ be_nested_str_weak(attribute_found),
- /* K14 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K15 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
+ /* K6 */ be_nested_str_weak(is_direct),
+ /* K7 */ be_nested_str_weak(next),
+ /* K8 */ be_nested_str_weak(get_pi),
}),
be_str_weak(process_attribute_expansion),
&be_const_str_solidified,
- ( &(const binstruction[73]) { /* code */
+ ( &(const binstruction[28]) { /* code */
0x880C0300, // 0000 GETMBR R3 R1 K0
0x88100301, // 0001 GETMBR R4 R1 K1
0x88140302, // 0002 GETMBR R5 R1 K2
- 0x50180000, // 0003 LDBOOL R6 0 0
- 0x501C0000, // 0004 LDBOOL R7 0 0
- 0x50200000, // 0005 LDBOOL R8 0 0
- 0x88240300, // 0006 GETMBR R9 R1 K0
- 0x4C280000, // 0007 LDNIL R10
- 0x2024120A, // 0008 NE R9 R9 R10
- 0x78260007, // 0009 JMPF R9 #0012
- 0x88240301, // 000A GETMBR R9 R1 K1
- 0x4C280000, // 000B LDNIL R10
- 0x2024120A, // 000C NE R9 R9 R10
- 0x78260003, // 000D JMPF R9 #0012
- 0x88240302, // 000E GETMBR R9 R1 K2
- 0x4C280000, // 000F LDNIL R10
- 0x2024120A, // 0010 NE R9 R9 R10
- 0x74260000, // 0011 JMPT R9 #0013
- 0x50240001, // 0012 LDBOOL R9 0 1
- 0x50240200, // 0013 LDBOOL R9 1 0
- 0xB82A0600, // 0014 GETNGBL R10 K3
- 0x8C281504, // 0015 GETMET R10 R10 K4
- 0x5C300000, // 0016 MOVE R12 R0
- 0x7C280400, // 0017 CALL R10 2
- 0x8C2C1505, // 0018 GETMET R11 R10 K5
- 0x5C340200, // 0019 MOVE R13 R1
- 0x4C380000, // 001A LDNIL R14
- 0x7C2C0600, // 001B CALL R11 3
- 0x4C2C0000, // 001C LDNIL R11
- 0x8C301506, // 001D GETMET R12 R10 K6
- 0x7C300200, // 001E CALL R12 1
- 0x5C2C1800, // 001F MOVE R11 R12
- 0x4C340000, // 0020 LDNIL R13
- 0x2030180D, // 0021 NE R12 R12 R13
- 0x78320009, // 0022 JMPF R12 #002D
- 0x5C300400, // 0023 MOVE R12 R2
- 0x8C341507, // 0024 GETMET R13 R10 K7
- 0x7C340200, // 0025 CALL R13 1
- 0x5C381600, // 0026 MOVE R14 R11
- 0x5C3C1200, // 0027 MOVE R15 R9
- 0x7C300600, // 0028 CALL R12 3
- 0x78260001, // 0029 JMPF R9 #002C
- 0x78320000, // 002A JMPF R12 #002C
- 0x80001A00, // 002B RET 0
- 0x7001FFEF, // 002C JMP #001D
- 0x78260019, // 002D JMPF R9 #0048
- 0x88301508, // 002E GETMBR R12 R10 K8
- 0x74320003, // 002F JMPT R12 #0034
- 0xB8320600, // 0030 GETNGBL R12 K3
- 0x8830190A, // 0031 GETMBR R12 R12 K10
- 0x9006120C, // 0032 SETMBR R1 K9 R12
- 0x7002000E, // 0033 JMP #0043
- 0x8830150B, // 0034 GETMBR R12 R10 K11
- 0x74320003, // 0035 JMPT R12 #003A
- 0xB8320600, // 0036 GETNGBL R12 K3
- 0x8830190C, // 0037 GETMBR R12 R12 K12
- 0x9006120C, // 0038 SETMBR R1 K9 R12
- 0x70020008, // 0039 JMP #0043
- 0x8830150D, // 003A GETMBR R12 R10 K13
- 0x74320003, // 003B JMPT R12 #0040
- 0xB8320600, // 003C GETNGBL R12 K3
- 0x8830190E, // 003D GETMBR R12 R12 K14
- 0x9006120C, // 003E SETMBR R1 K9 R12
- 0x70020002, // 003F JMP #0043
- 0xB8320600, // 0040 GETNGBL R12 K3
- 0x8830190F, // 0041 GETMBR R12 R12 K15
- 0x9006120C, // 0042 SETMBR R1 K9 R12
- 0x5C300400, // 0043 MOVE R12 R2
- 0x4C340000, // 0044 LDNIL R13
- 0x5C380200, // 0045 MOVE R14 R1
- 0x503C0200, // 0046 LDBOOL R15 1 0
- 0x7C300600, // 0047 CALL R12 3
- 0x80000000, // 0048 RET 0
+ 0xB81A0600, // 0003 GETNGBL R6 K3
+ 0x8C180D04, // 0004 GETMET R6 R6 K4
+ 0x5C200000, // 0005 MOVE R8 R0
+ 0x7C180400, // 0006 CALL R6 2
+ 0x8C1C0D05, // 0007 GETMET R7 R6 K5
+ 0x5C240600, // 0008 MOVE R9 R3
+ 0x5C280800, // 0009 MOVE R10 R4
+ 0x5C2C0A00, // 000A MOVE R11 R5
+ 0x7C1C0800, // 000B CALL R7 4
+ 0x8C1C0D06, // 000C GETMET R7 R6 K6
+ 0x7C1C0200, // 000D CALL R7 1
+ 0x4C200000, // 000E LDNIL R8
+ 0x8C240D07, // 000F GETMET R9 R6 K7
+ 0x7C240200, // 0010 CALL R9 1
+ 0x5C201200, // 0011 MOVE R8 R9
+ 0x4C280000, // 0012 LDNIL R10
+ 0x2024120A, // 0013 NE R9 R9 R10
+ 0x78260005, // 0014 JMPF R9 #001B
+ 0x5C240400, // 0015 MOVE R9 R2
+ 0x8C280D08, // 0016 GETMET R10 R6 K8
+ 0x7C280200, // 0017 CALL R10 1
+ 0x5C2C1000, // 0018 MOVE R11 R8
+ 0x7C240400, // 0019 CALL R9 2
+ 0x7001FFF3, // 001A JMP #000F
+ 0x80000000, // 001B RET 0
})
)
);
@@ -2093,7 +2041,7 @@ be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
}),
be_str_weak(resolve_attribute_read_solo),
&be_const_str_solidified,
- ( &(const binstruction[45]) { /* code */
+ ( &(const binstruction[47]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@@ -2113,32 +2061,34 @@ be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
0x7C140400, // 0010 CALL R5 2
0x4C180000, // 0011 LDNIL R6
0x1C180A06, // 0012 EQ R6 R5 R6
- 0x781A0004, // 0013 JMPF R6 #0019
+ 0x781A0005, // 0013 JMPF R6 #001A
0xB81A0A00, // 0014 GETNGBL R6 K5
0x88180D06, // 0015 GETMBR R6 R6 K6
0x90060806, // 0016 SETMBR R1 K4 R6
0x4C180000, // 0017 LDNIL R6
0x80040C00, // 0018 RET 1 R6
- 0x8C180B07, // 0019 GETMET R6 R5 K7
- 0x5C200600, // 001A MOVE R8 R3
- 0x7C180400, // 001B CALL R6 2
- 0x741A0004, // 001C JMPT R6 #0022
- 0xB81A0A00, // 001D GETNGBL R6 K5
- 0x88180D08, // 001E GETMBR R6 R6 K8
- 0x90060806, // 001F SETMBR R1 K4 R6
- 0x4C180000, // 0020 LDNIL R6
- 0x80040C00, // 0021 RET 1 R6
- 0x8C180B09, // 0022 GETMET R6 R5 K9
- 0x5C200600, // 0023 MOVE R8 R3
- 0x5C240800, // 0024 MOVE R9 R4
- 0x7C180600, // 0025 CALL R6 3
- 0x741A0004, // 0026 JMPT R6 #002C
- 0xB81A0A00, // 0027 GETNGBL R6 K5
- 0x88180D0A, // 0028 GETMBR R6 R6 K10
- 0x90060806, // 0029 SETMBR R1 K4 R6
- 0x4C180000, // 002A LDNIL R6
- 0x80040C00, // 002B RET 1 R6
- 0x80040A00, // 002C RET 1 R5
+ 0x70020013, // 0019 JMP #002E
+ 0x8C180B07, // 001A GETMET R6 R5 K7
+ 0x5C200600, // 001B MOVE R8 R3
+ 0x7C180400, // 001C CALL R6 2
+ 0x741A0005, // 001D JMPT R6 #0024
+ 0xB81A0A00, // 001E GETNGBL R6 K5
+ 0x88180D08, // 001F GETMBR R6 R6 K8
+ 0x90060806, // 0020 SETMBR R1 K4 R6
+ 0x4C180000, // 0021 LDNIL R6
+ 0x80040C00, // 0022 RET 1 R6
+ 0x70020009, // 0023 JMP #002E
+ 0x8C180B09, // 0024 GETMET R6 R5 K9
+ 0x5C200600, // 0025 MOVE R8 R3
+ 0x5C240800, // 0026 MOVE R9 R4
+ 0x7C180600, // 0027 CALL R6 3
+ 0x741A0004, // 0028 JMPT R6 #002E
+ 0xB81A0A00, // 0029 GETNGBL R6 K5
+ 0x88180D0A, // 002A GETMBR R6 R6 K10
+ 0x90060806, // 002B SETMBR R1 K4 R6
+ 0x4C180000, // 002C LDNIL R6
+ 0x80040C00, // 002D RET 1 R6
+ 0x80040A00, // 002E RET 1 R5
})
)
);
@@ -6163,25 +6113,25 @@ be_local_class(Matter_Device,
{ be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
{ be_const_key_weak(http_pressure, 32), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
{ be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(temperature, -1), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
{ be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
{ be_const_key_weak(v_illuminance, 15), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
{ be_const_key_weak(contact, 1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(http_relay, 12), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(temperature, 27), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
{ be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
{ be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
{ be_const_key_weak(http_occupancy, 6), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
{ be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
{ be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
{ be_const_key_weak(root, -1), be_const_class(be_class_Matter_Plugin_Root) },
{ be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(v_temp, 20), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(v_temp, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
{ be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
{ be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
- { be_const_key_weak(light2, 27), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
+ { be_const_key_weak(light2, 29), be_const_class(be_class_Matter_Plugin_Light2) },
{ be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
{ be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
{ be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
@@ -6192,14 +6142,14 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_rain, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
{ be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
{ be_const_key_weak(http_waterleak, 45), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
{ be_const_key_weak(airquality, 35), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
{ be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
{ be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_temperature, 41), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(http_temperature, 20), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_humidity, 29), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(v_humidity, 12), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
{ be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
{ be_const_key_weak(aggregator, 11), be_const_class(be_class_Matter_Plugin_Aggregator) },
{ be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
From b853886cb7f6426306a62d1e28c42c6a67b0e8d2 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sat, 22 Jun 2024 13:37:20 +0200
Subject: [PATCH 081/252] Refactor `strip_flags.py` and `add_c_flags.py`
(#21677)
* refactor strip-flags.py
* refac more readable
* make failsafe
* move var to top
* align
---
pio-tools/add_c_flags.py | 19 ++++++++++++-------
pio-tools/strip-flags.py | 18 +++++++++---------
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/pio-tools/add_c_flags.py b/pio-tools/add_c_flags.py
index 7e51a4fe1..345d4e814 100644
--- a/pio-tools/add_c_flags.py
+++ b/pio-tools/add_c_flags.py
@@ -1,16 +1,21 @@
Import("env")
+build_flags = env['BUILD_FLAGS']
+chip = env.get("BOARD_MCU").lower()
+
# General options that are passed to the C++ compiler
env.Append(CXXFLAGS=["-Wno-volatile"])
# General options that are passed to the C compiler (C only; not C++).
env.Append(CFLAGS=["-Wno-discarded-qualifiers", "-Wno-implicit-function-declaration", "-Wno-incompatible-pointer-types"])
-
# Remove build flags which are not valid for risc-v
-build_flags = env['BUILD_FLAGS']
-chip = env.get("BOARD_MCU").lower()
-
-if "c" in chip:
- build_flags.pop(build_flags.index("-mno-target-align"))
- build_flags.pop(build_flags.index("-mtarget-align"))
+if chip in ("esp32c2", "esp32c3", "esp32c6", "esp32h2"):
+ try:
+ build_flags.pop(build_flags.index("-mno-target-align"))
+ except:
+ do_nothing=""
+ try:
+ build_flags.pop(build_flags.index("-mtarget-align"))
+ except:
+ do_nothing=""
\ No newline at end of file
diff --git a/pio-tools/strip-flags.py b/pio-tools/strip-flags.py
index 714e84a0f..981918273 100644
--- a/pio-tools/strip-flags.py
+++ b/pio-tools/strip-flags.py
@@ -1,15 +1,15 @@
Import('env')
-link_flags = " ".join(env['LINKFLAGS'])
+link_flags = env['LINKFLAGS']
build_flags = " ".join(env['BUILD_FLAGS'])
if "FIRMWARE_SAFEBOOT" in build_flags:
# Crash Recorder is not included in safeboot firmware -> remove Linker wrap
- link_flags = link_flags.replace("-Wl,--wrap=panicHandler", "")
- link_flags = link_flags.replace("-Wl,--wrap=xt_unhandled_exception", "")
-
-new_link_flags = link_flags.split()
-
-env.Replace(
- LINKFLAGS=new_link_flags
-)
+ try:
+ link_flags.pop(link_flags.index("-Wl,--wrap=panicHandler"))
+ except:
+ do_nothing=""
+ try:
+ link_flags.pop(link_flags.index("-Wl,--wrap=xt_unhandled_exception"))
+ except:
+ do_nothing=""
\ No newline at end of file
From 904fb01e75d36f1d284503de716ad793e629ef17 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 22 Jun 2024 14:12:48 +0200
Subject: [PATCH 082/252] Update changelogs
---
CHANGELOG.md | 3 +--
RELEASENOTES.md | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 44c81e329..8070ff702 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,12 +19,11 @@ All notable changes to this project will be documented in this file.
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line (#21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod (#21628)
-- NeoPool make compiler setting available by user_config_override.h
- NeoPool make compiler setting available by `user_config_override.h` (#21645)
- ESP32 MI32 improve parser (#21648)
- ESP8266 platform update from 2024.01.01 to 2024.06.00 (#21668)
- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 (#21668)
-- Matter refactor reading of multiple attributes to reduce memory pressure
+- Matter refactor reading of multiple attributes to reduce memory pressure (#21675)
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index f75cd7a0c..ac1c2d110 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -151,6 +151,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
- Matter support for Rain sensor [#21633](https://github.com/arendst/Tasmota/issues/21633)
+- Matter refactor reading of multiple attributes to reduce memory pressure [#21675](https://github.com/arendst/Tasmota/issues/21675)
### Fixed
- Shutter MQTT on inverted shutter [#21663](https://github.com/arendst/Tasmota/issues/21663)
From f3dcbdcea97b337de5abc1f6d80c2894051aac1c Mon Sep 17 00:00:00 2001
From: Roland Praml
Date: Sat, 22 Jun 2024 13:17:05 +0100
Subject: [PATCH 083/252] FIX: Allow use of UART0 with enabled USB_CDC_CONSOLE
(#21496)
Co-authored-by: Roland Praml
---
tasmota/tasmota_support/support.ino | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tasmota/tasmota_support/support.ino b/tasmota/tasmota_support/support.ino
index 57f207c67..fb945953a 100755
--- a/tasmota/tasmota_support/support.ino
+++ b/tasmota/tasmota_support/support.ino
@@ -2138,7 +2138,9 @@ void ClaimSerial(void) {
#ifdef ESP32
#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
#ifdef USE_USB_CDC_CONSOLE
- return; // USB console does not use serial
+ if (!tasconsole_serial) {
+ return; // USB console does not use serial
+ }
#endif // USE_USB_CDC_CONSOLE
#endif // ESP32C3/C6, S2 or S3
#endif // ESP32
From 25f17d714156352376e4ce66545e26f934636b5d Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sat, 22 Jun 2024 14:22:09 +0200
Subject: [PATCH 084/252] Update changelogs
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 7 ++++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8070ff702..303e03c57 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,6 +32,7 @@ All notable changes to this project will be documented in this file.
- Scripter TCP server (#21660)
- Matter TLV.U8 unsigned encoding (#21672)
- Matter resumption final ack (#21673)
+- ESP32 allow use of UART0 with enabled USB_CDC_CONSOLE (#21496)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index ac1c2d110..a788376d1 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -34,11 +34,11 @@ While fallback or downgrading is common practice it was never supported due to S
## Supported Core versions
-This release will be supported from ESP8266/Arduino library Core version **2.7.6** due to reported security and stability issues on previous Core version. This will also support gzipped binaries.
+This release will be supported from ESP8266/Arduino library Core version **2.7.7** due to reported security and stability issues on previous Core version. This will also support gzipped binaries.
This release will be supported from ESP32/Arduino library Core version **3.0.1**.
-Support of ESP8266 Core versions before 2.7.6 and ESP32 Core versions before 3.0.1 have been removed.
+Support of ESP8266 Core versions before 2.7.7 and ESP32 Core versions before 3.0.1 have been removed.
### Known issues with v14.1.0
@@ -60,7 +60,7 @@ Easy initial installation of Tasmota can be performed using the [Tasmota WebInst
## Provided Binary Downloads
### ESP8266 or ESP8285 based
-The following binary downloads have been compiled with ESP8266/Arduino library core version **2.7.6**.
+The following binary downloads have been compiled with ESP8266/Arduino library core version **2.7.7**.
- **tasmota.bin** = The Tasmota version with most drivers for 1M+ flash. **RECOMMENDED RELEASE BINARY**
- **tasmota-4M.bin** = The Tasmota version with most drivers and filesystem for 4M+ flash.
@@ -156,6 +156,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Fixed
- Shutter MQTT on inverted shutter [#21663](https://github.com/arendst/Tasmota/issues/21663)
- Scripter TCP server [#21660](https://github.com/arendst/Tasmota/issues/21660)
+- ESP32 allow use of UART0 with enabled USB_CDC_CONSOLE [#21496](https://github.com/arendst/Tasmota/issues/21496)
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
- Matter interverted attributes 0xFFF9 and 0xFFFB [#21636](https://github.com/arendst/Tasmota/issues/21636)
- Matter CASE Sigma1 resumption mode for faster reconnection [#21644](https://github.com/arendst/Tasmota/issues/21644)
From 17ea73275319b262c7b40870eb223e35892bb0c1 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sun, 23 Jun 2024 15:01:07 +0200
Subject: [PATCH 085/252] Do not abort compile when safeboot firmware can not
be downloaded (#21684)
* Message when dl of safeboot failed
* check for safeboot
---
pio-tools/post_esp32.py | 133 ++++++++++++++++++++++------------------
1 file changed, 73 insertions(+), 60 deletions(-)
diff --git a/pio-tools/post_esp32.py b/pio-tools/post_esp32.py
index a468e14e1..e296be29e 100644
--- a/pio-tools/post_esp32.py
+++ b/pio-tools/post_esp32.py
@@ -181,18 +181,30 @@ def esp32_fetch_safeboot_bin(tasmota_platform):
safeboot_fw_name = join(variants_dir, tasmota_platform + "-safeboot.bin")
if(exists(safeboot_fw_name)):
print("safeboot binary already in place.")
- return
+ return True
print("Will download safeboot binary from URL:")
print(safeboot_fw_url)
- response = requests.get(safeboot_fw_url)
- open(safeboot_fw_name, "wb").write(response.content)
- print("safeboot binary written to variants dir.")
+ try:
+ response = requests.get(safeboot_fw_url)
+ open(safeboot_fw_name, "wb").write(response.content)
+ print("safeboot binary written to variants dir.")
+ return True
+ except:
+ print(Fore.RED + "Download of safeboot binary failed. Please check your Internet connection.")
+ print(Fore.RED + "Creation of " + tasmota_platform + "-factory.bin not possible")
+ print(Fore.YELLOW + "Without Internet " + Fore.GREEN + tasmota_platform + "-safeboot.bin" + Fore.YELLOW + " needs to be compiled before " + Fore.GREEN + tasmota_platform)
+ return False
def esp32_copy_new_safeboot_bin(tasmota_platform,new_local_safeboot_fw):
print("Copy new local safeboot firmware to variants dir -> using it for further flashing operations")
safeboot_fw_name = join(variants_dir, tasmota_platform + "-safeboot.bin")
if os.path.exists(variants_dir):
- shutil.copy(new_local_safeboot_fw, safeboot_fw_name)
+ try:
+ shutil.copy(new_local_safeboot_fw, safeboot_fw_name)
+ return True
+ except:
+ return False
+
def esp32_create_combined_bin(source, target, env):
#print("Generating combined binary for serial flashing")
@@ -235,69 +247,70 @@ def esp32_create_combined_bin(source, target, env):
if not os.path.exists(variants_dir):
os.makedirs(variants_dir)
if "safeboot" in firmware_name:
- esp32_copy_new_safeboot_bin(tasmota_platform,firmware_name)
+ s_flag = esp32_copy_new_safeboot_bin(tasmota_platform,firmware_name)
else:
- esp32_fetch_safeboot_bin(tasmota_platform)
+ s_flag = esp32_fetch_safeboot_bin(tasmota_platform)
- flash_size = env.BoardConfig().get("upload.flash_size", "4MB")
- flash_mode = env["__get_board_flash_mode"](env)
- flash_freq = env["__get_board_f_flash"](env)
+ if s_flag: # check if safeboot firmware is existing
+ flash_size = env.BoardConfig().get("upload.flash_size", "4MB")
+ flash_mode = env["__get_board_flash_mode"](env)
+ flash_freq = env["__get_board_f_flash"](env)
- cmd = [
- "--chip",
- chip,
- "merge_bin",
- "-o",
- new_file_name,
- "--flash_mode",
- flash_mode,
- "--flash_freq",
- flash_freq,
- "--flash_size",
- flash_size,
- ]
+ cmd = [
+ "--chip",
+ chip,
+ "merge_bin",
+ "-o",
+ new_file_name,
+ "--flash_mode",
+ flash_mode,
+ "--flash_freq",
+ flash_freq,
+ "--flash_size",
+ flash_size,
+ ]
- print(" Offset | File")
- for section in sections:
- sect_adr, sect_file = section.split(" ", 1)
- print(f" - {sect_adr} | {sect_file}")
- cmd += [sect_adr, sect_file]
+ print(" Offset | File")
+ for section in sections:
+ sect_adr, sect_file = section.split(" ", 1)
+ print(f" - {sect_adr} | {sect_file}")
+ cmd += [sect_adr, sect_file]
- # "main" firmware to app0 - mandatory, except we just built a new safeboot bin locally
- if "safeboot" not in firmware_name:
- print(f" - {hex(app_offset)} | {firmware_name}")
- cmd += [hex(app_offset), firmware_name]
+ # "main" firmware to app0 - mandatory, except we just built a new safeboot bin locally
+ if ("safeboot" not in firmware_name):
+ print(f" - {hex(app_offset)} | {firmware_name}")
+ cmd += [hex(app_offset), firmware_name]
- else:
- print("Upload new safeboot binary only")
+ else:
+ print("Upload new safeboot binary only")
- upload_protocol = env.subst("$UPLOAD_PROTOCOL")
- if(upload_protocol == "esptool") and (fs_offset != -1):
- fs_bin = join(env.subst("$BUILD_DIR"),"littlefs.bin")
- if exists(fs_bin):
- before_reset = env.BoardConfig().get("upload.before_reset", "default_reset")
- after_reset = env.BoardConfig().get("upload.after_reset", "hard_reset")
- print(f" - {hex(fs_offset)}| {fs_bin}")
- cmd += [hex(fs_offset), fs_bin]
- env.Replace(
- UPLOADERFLAGS=[
- "--chip", chip,
- "--port", '"$UPLOAD_PORT"',
- "--baud", "$UPLOAD_SPEED",
- "--before", before_reset,
- "--after", after_reset,
- "write_flash", "-z",
- "--flash_mode", "${__get_board_flash_mode(__env__)}",
- "--flash_freq", "${__get_board_f_flash(__env__)}",
- "--flash_size", flash_size
- ],
- UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS ' + " ".join(cmd[7:])
- )
- print("Will use custom upload command for flashing operation to add file system defined for this build target.")
+ upload_protocol = env.subst("$UPLOAD_PROTOCOL")
+ if(upload_protocol == "esptool") and (fs_offset != -1):
+ fs_bin = join(env.subst("$BUILD_DIR"),"littlefs.bin")
+ if exists(fs_bin):
+ before_reset = env.BoardConfig().get("upload.before_reset", "default_reset")
+ after_reset = env.BoardConfig().get("upload.after_reset", "hard_reset")
+ print(f" - {hex(fs_offset)}| {fs_bin}")
+ cmd += [hex(fs_offset), fs_bin]
+ env.Replace(
+ UPLOADERFLAGS=[
+ "--chip", chip,
+ "--port", '"$UPLOAD_PORT"',
+ "--baud", "$UPLOAD_SPEED",
+ "--before", before_reset,
+ "--after", after_reset,
+ "write_flash", "-z",
+ "--flash_mode", "${__get_board_flash_mode(__env__)}",
+ "--flash_freq", "${__get_board_f_flash(__env__)}",
+ "--flash_size", flash_size
+ ],
+ UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS ' + " ".join(cmd[7:])
+ )
+ print("Will use custom upload command for flashing operation to add file system defined for this build target.")
- if("safeboot" not in firmware_name):
- #print('Using esptool.py arguments: %s' % ' '.join(cmd))
- esptool.main(cmd)
+ if("safeboot" not in firmware_name):
+ #print('Using esptool.py arguments: %s' % ' '.join(cmd))
+ esptool.main(cmd)
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_combined_bin)
From ddf762b7cce341c3d47081ba6497d9a753ea9d7a Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 23 Jun 2024 17:38:54 +0200
Subject: [PATCH 086/252] Refactor GPS driver
---
tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino | 306 ++++++++++----------
1 file changed, 161 insertions(+), 145 deletions(-)
diff --git a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
index 73b307450..82f10f0cf 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
@@ -21,7 +21,7 @@
#if defined(ESP32) && defined(USE_FLOG)
#undef USE_FLOG
#warning FLOG deactivated on ESP32
-#endif //ESP32
+#endif // ESP32
/*********************************************************************************************\
--------------------------------------------------------------------------------------------
Version Date Action Description
@@ -156,7 +156,7 @@ const char UBLOX_INIT[] PROGMEM = {
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x92, //NAV-TIMEUTC off
#ifdef USE_GPS_VELOCITY
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x29, //NAV-VELNED off
-#endif
+#endif // USE_GPS_VELOCITY
// Enable UBX
// 0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x07,0x00,0x01,0x00,0x00,0x00,0x00,0x18,0xE1, //NAV-PVT on
@@ -165,7 +165,7 @@ const char UBLOX_INIT[] PROGMEM = {
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x21,0x00,0x01,0x00,0x00,0x00,0x00,0x32,0x97, //NAV-TIMEUTC on
#ifdef USE_GPS_VELOCITY
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x00,0x23,0x2E, //NAV-VELNED on
-#endif
+#endif // USE_GPS_VELOCITY
// Rate - we will not reset it for the moment after restart
// 0xB5,0x62,0x06,0x08,0x06,0x00,0x64,0x00,0x01,0x00,0x01,0x00,0x7A,0x12, //(10Hz)
// 0xB5,0x62,0x06,0x08,0x06,0x00,0xC8,0x00,0x01,0x00,0x01,0x00,0xDE,0x6A, //(5Hz)
@@ -181,19 +181,22 @@ struct UBX_t {
const char NAV_STATUS_HEADER[2] = { 0x01, 0x03 };
const char NAV_TIME_HEADER[2] = { 0x01, 0x21 };
#ifdef USE_GPS_VELOCITY
- const char NAV_VEL_HEADER[2] = { 0x01, 0x12 };
-#endif
+ const char NAV_VEL_HEADER[2] = { 0x01, 0x12 };
+#endif // USE_GPS_VELOCITY
+
+ int32_t lat;
+ int32_t lon;
struct entry_t {
- int32_t lat; //raw sensor value
- int32_t lon; //raw sensor value
- uint32_t time; //local time from system (maybe provided by the sensor)
- };
+ int32_t lat; // raw sensor value
+ int32_t lon; // raw sensor value
+ uint32_t time; // local time from system (maybe provided by the sensor)
+ };
union {
entry_t values;
uint8_t bytes[sizeof(entry_t)];
- } rec_buffer;
+ } rec_buffer;
struct POLL_MSG {
uint8_t cls;
@@ -202,76 +205,78 @@ struct UBX_t {
};
struct NAV_POSLLH {
- uint8_t cls;
- uint8_t id;
- uint16_t len;
- uint32_t iTOW;
- int32_t lon;
- int32_t lat;
- int32_t alt;
- int32_t hMSL;
- uint32_t hAcc;
- uint32_t vAcc;
- };
+ uint8_t cls; // 0x01
+ uint8_t id; // 0x02
+ uint16_t len; // 28 bytes
+ uint32_t iTOW; // ms
+ int32_t lon; // 1e-7, degree
+ int32_t lat; // 1e-7, degree
+ int32_t alt; // mm
+ int32_t hMSL; // mm
+ uint32_t hAcc; // mm
+ uint32_t vAcc; // mm
+ };
struct NAV_STATUS {
- uint8_t cls;
- uint8_t id;
- uint16_t len;
- uint32_t iTOW;
- uint8_t gpsFix;
- uint8_t flags; //bit 0 - gpsfix valid
- uint8_t fixStat;
- uint8_t flags2;
- uint32_t ttff;
- uint32_t msss;
- };
+ uint8_t cls; // 0x01
+ uint8_t id; // 0x03
+ uint16_t len; // 16 bytes
+ uint32_t iTOW; // ms
+ uint8_t gpsFix; //
+ uint8_t flags; // bit 0 - gpsfix valid
+ uint8_t fixStat; //
+ uint8_t flags2; //
+ uint32_t ttff; // ms
+ uint32_t msss; // ms
+ };
struct NAV_TIME_UTC {
- uint8_t cls;
- uint8_t id;
- uint16_t len;
- uint32_t iTOW;
- uint32_t tAcc;
- int32_t nano; // Nanoseconds of second, range -1e9 .. 1e9 (UTC)
- uint16_t year;
- uint8_t month;
- uint8_t day;
- uint8_t hour;
- uint8_t min;
- uint8_t sec;
+ uint8_t cls; // 0x01
+ uint8_t id; // 0x21
+ uint16_t len; // 20 bytes
+ uint32_t iTOW; // ms
+ uint32_t tAcc; // ns
+ int32_t nano; // Nanoseconds of second, range -1e9 .. 1e9 (UTC)
+ uint16_t year; // y
+ uint8_t month; // month
+ uint8_t day; // d
+ uint8_t hour; // h
+ uint8_t min; // min
+ uint8_t sec; // s
struct {
uint8_t UTC:1;
- uint8_t WKN:1; // week number
- uint8_t TOW:1; // time of week
+ uint8_t WKN:1; // week number
+ uint8_t TOW:1; // time of week
uint8_t padding:5;
- } valid;
- };
+ } valid;
+ };
+
#ifdef USE_GPS_VELOCITY
struct NAV_VEL {
- uint8_t cls;
- uint8_t id;
- uint16_t len;
- uint32_t iTOW;
- int32_t velN;
- int32_t velE; //bit 0 - gpsfix valid
- int32_t velD;
- uint32_t speed;
- uint32_t gSpeed;
- int32_t heading;
- uint32_t sAcc;
- uint32_t cAcc;
- };
-#endif
+ uint8_t cls; // 0x01
+ uint8_t id; // 0x12
+ uint16_t len; // 36 bytes
+ uint32_t iTOW; // ms
+ int32_t velN; // cm/s
+ int32_t velE; // cm/s
+ int32_t velD; // cm/s
+ uint32_t speed; // cm/s
+ uint32_t gSpeed; // cm/s
+ int32_t heading; // 1e-5, degree
+ uint32_t sAcc; // cm/s
+ uint32_t cAcc; // 1e-5, degree
+ };
+#endif // USE_GPS_VELOCITY
+
struct CFG_RATE {
- uint8_t cls; //0x06
- uint8_t id; //0x08
- uint16_t len; // 6 bytes
- uint16_t measRate; // in every ms -> 1 Hz = 1000 ms; 10 Hz = 100 ms -> x = 1000 ms / Hz
- uint16_t navRate; // x measurements for 1 navigation event
- uint16_t timeRef; // align to time system: 0= UTC, 1 = GPS, 2 = GLONASS, ...
- char CK[2]; // checksum
- };
+ uint8_t cls; // 0x06
+ uint8_t id; // 0x08
+ uint16_t len; // 6 bytes
+ uint16_t measRate; // in every ms -> 1 Hz = 1000 ms; 10 Hz = 100 ms -> x = 1000 ms / Hz
+ uint16_t navRate; // x measurements for 1 navigation event
+ uint16_t timeRef; // align to time system: 0= UTC, 1 = GPS, 2 = GLONASS, ...
+ char CK[2]; // checksum
+ };
struct {
uint32_t last_iTOW;
@@ -287,7 +292,7 @@ struct UBX_t {
struct {
uint32_t init:1;
uint32_t filter_noise:1;
- uint32_t send_when_new:1; // no teleinterval
+ uint32_t send_when_new:1; // no teleinterval
uint32_t send_UI_only:1;
uint32_t runningNTP:1;
// uint32_t blockedNTP:1;
@@ -302,10 +307,10 @@ struct UBX_t {
NAV_TIME_UTC navTime;
#ifdef USE_GPS_VELOCITY
NAV_VEL navVel;
-#endif
+#endif // USE_GPS_VELOCITY
POLL_MSG pollMsg;
CFG_RATE cfgRate;
- } Message;
+ } Message;
uint32_t utc_time;
@@ -320,13 +325,13 @@ enum UBXMsgType {
MT_NAV_TIME,
#ifdef USE_GPS_VELOCITY
MT_NAV_VEL,
-#endif
+#endif // USE_GPS_VELOCITY
MT_POLL
};
#ifdef USE_FLOG
FLOG *Flog = nullptr;
-#endif //USE_FLOG
+#endif // USE_FLOG
TasmotaSerial *UBXSerial;
NtpServer timeServer(PortUdp);
@@ -400,7 +405,7 @@ void UBXDetect(void)
Flog = new FLOG; // init Flash Log
Flog->init();
}
-#endif // USE_FLOG
+#endif // USE_FLOG
UBX.state.log_interval = 10; // 1 second
UBX.mode.send_UI_only = true; // send UI data ...
@@ -465,7 +470,7 @@ uint32_t UBXprocessGPS()
payloadSize = sizeof(UBX_t::NAV_VEL);
DEBUG_SENSOR_LOG(PSTR("UBX: got NAV_VEL"));
}
-#endif
+#endif // USE_GPS_VELOCITY
else {
// unknown message type, bail
fpos = 0;
@@ -558,7 +563,7 @@ void UBXsendFile(void)
if (!HttpCheckPriviledgedAccess()) { return; }
Flog->startDownload(sizeof(UBX.rec_buffer),UBXsendHeader,UBXsendRecord,UBXsendFooter);
}
-#endif //USE_FLOG
+#endif // USE_FLOG
/********************************************************************************************/
@@ -616,7 +621,7 @@ void UBXSelectMode(uint16_t mode)
}
AddLog(LOG_LEVEL_INFO, PSTR("UBX: stop recording"));
break;
-#endif //USE_FLOG
+#endif // USE_FLOG
case 7:
UBX.mode.send_when_new = 1; // send mqtt on new postion + TELE -> consider to set TELE to a very high value
break;
@@ -634,11 +639,10 @@ void UBXSelectMode(uint16_t mode)
UBXsendCFGLine(11); //NAV-POSLLH on
UBXsendCFGLine(12); //NAV-STATUS on
UBXsendCFGLine(14); //NAV-VELNED on
-#endif
-#ifndef USE_GPS_VELOCITY
+#else
UBXsendCFGLine(10); //NAV-POSLLH on
UBXsendCFGLine(11); //NAV-STATUS on
-#endif
+#endif // USE_GPS_VELOCITY
break;
case 11:
UBX.mode.forceUTCupdate = true;
@@ -691,11 +695,11 @@ bool UBXHandlePOSLLH()
MqttPublishTeleperiodSensor();
}
if (UBX.mode.runningNTP){ // after receiving pos-data at least once -> go to pure NTP-mode
- UBXsendCFGLine(7); //NAV-POSLLH off
- UBXsendCFGLine(8); //NAV-STATUS off
+ UBXsendCFGLine(7); // NAV-POSLLH off
+ UBXsendCFGLine(8); // NAV-STATUS off
#ifdef USE_GPS_VELOCITY
- UBXsendCFGLine(10); //NAV-VELNED off
-#endif
+ UBXsendCFGLine(10); // NAV-VELNED off
+#endif // USE_GPS_VELOCITY
}
//UBX_LAT_LON_THRESHOLD = 20 * UBX.Message.navPosllh.hAcc;
return true; // new position
@@ -717,7 +721,7 @@ void UBXHandleVEL()
}
}
-#endif
+#endif // USE_GPS_VELOCITY
void UBXHandleSTATUS()
{
@@ -813,7 +817,7 @@ void UBXLoop(void)
case MT_NAV_VEL:
UBXHandleVEL();
break;
-#endif
+#endif // USE_GPS_VELOCITY
default:
UBXHandleOther();
break;
@@ -827,7 +831,7 @@ void UBXLoop(void)
counter = 0;
}
}
-#endif // USE_FLOG
+#endif // USE_FLOG
counter++;
}
@@ -836,64 +840,63 @@ void UBXLoop(void)
// normaly in i18n.h
#ifdef USE_WEBSERVER
- // {s} = , {m} = , {e} =
+// {s} = , {m} = , {e} =
#ifdef USE_FLOG
#ifdef DEBUG_TASMOTA_SENSOR
- const char HTTP_SNS_FLOGVER[] PROGMEM = "{s} {m} {e}{s} FLOG with %u sectors: {m}%u bytes{e}"
- "{s} FLOG next sector for REC: {m} %u {e}"
- "{s} %u sector(s) with data at sector: {m} %u {e}";
- const char HTTP_SNS_FLOGREC[] PROGMEM = "{s} RECORDING (bytes in buffer) {m}%u{e}";
+const char HTTP_SNS_FLOGVER[] PROGMEM = "{s}FLOG with %u sectors:{m}%u bytes{e}"
+ "{s}FLOG next sector for REC:{m} %u {e}"
+ "{s}%u sector(s) with data at sector:{m}%u{e}";
+const char HTTP_SNS_FLOGREC[] PROGMEM = "{s}RECORDING (bytes in buffer){m}%u{e}";
#endif // DEBUG_TASMOTA_SENSOR
- const char HTTP_SNS_FLOG[] PROGMEM = "{s} {m} {e}{s} Flash-Log {m} %s{e}";
- const char kFLOG_STATE0[] PROGMEM = "ready";
- const char kFLOG_STATE1[] PROGMEM = "recording";
- const char * kFLOG_STATE[] ={kFLOG_STATE0, kFLOG_STATE1};
+const char HTTP_SNS_FLOG[] PROGMEM = "{s}GPS Logging{m}%s{e}";
+const char kFLOGstate[] PROGMEM = "Ready|Recording";
+const char HTTP_BTN_FLOG_DL[] PROGMEM = "Download GPX-File ";
+#endif // USE_FLOG
- const char HTTP_BTN_FLOG_DL[] PROGMEM = "Download GPX-File ";
+const char HTTP_SNS_NTPSERVER[] PROGMEM = "{s}GPS NTP server{m}Active{e}";
-#endif //USE_FLOG
- const char HTTP_SNS_NTPSERVER[] PROGMEM = "{s} NTP server {m}active{e}";
-
- const char HTTP_SNS_GPS[] PROGMEM = "{s}GPS " D_LATITUDE "{m}%s{e}"
- "{s}GPS " D_LONGITUDE "{m}%s{e}"
- "{s}GPS " D_ALTITUDE "{m}%3_f " D_UNIT_METER "{e}"
- "{s}GPS " D_HORIZONTAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}"
- "{s}GPS " D_VERTICAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}"
- "{s}GPS " D_SAT_FIX "{m}%s{e}";
+const char HTTP_SNS_GPS[] PROGMEM = "{s}GPS " D_SAT_FIX "{m}%s{e}"
+ "{s}GPS " D_LATITUDE "{m}%s{e}"
+ "{s}GPS " D_LONGITUDE "{m}%s{e}"
+ "{s}GPS " D_HORIZONTAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}"
+ "{s}GPS " D_ALTITUDE "{m}%3_f " D_UNIT_METER "{e}"
+ "{s}GPS " D_VERTICAL_ACCURACY "{m}%3_f " D_UNIT_METER "{e}";
#ifdef USE_GPS_VELOCITY
- const char HTTP_SNS_GPS2[] PROGMEM = "{s}GPS " D_SPEED "{m}%1_f{e}"
- "{s}GPS " D_HEADING "{m}%1_f{e}"
- "{s}GPS " D_HEADING_ACCURACY "{m}%2_f{e}"
- "{s}GPS " D_SPEED_ACCURACY "{m}%2_f{e}";
-#endif
+const char HTTP_SNS_GPS2[] PROGMEM = "{s}GPS " D_SPEED "{m}%2_f " D_UNIT_KILOMETER_PER_HOUR "{e}"
+ "{s}GPS " D_SPEED_ACCURACY "{m}%2_f " D_UNIT_KILOMETER_PER_HOUR "{e}"
+ "{s}GPS " D_HEADING "{m}%1_f{e}"
+ "{s}GPS " D_HEADING_ACCURACY "{m}%1_f{e}";
+#endif // USE_GPS_VELOCITY
const char kGPSFix[] PROGMEM = D_SAT_FIX_NO_FIX "|" D_SAT_FIX_DEAD_RECK "|" D_SAT_FIX_2D "|" D_SAT_FIX_3D "|" D_SAT_FIX_GPS_DEAD "|" D_SAT_FIX_TIME;
-// const char UBX_GOOGLE_MAPS[] ="";
+#ifdef USE_GPS_MAPS
+const char UBX_GOOGLE_MAPS[] ="";
+#endif // USE_GPS_MAPS
#endif // USE_WEBSERVER
/********************************************************************************************/
-void UBXShow(bool json)
-{
- char lat[12];
- dtostrfd((double)UBX.rec_buffer.values.lat/10000000.0f,7,lat);
- char lon[12];
- dtostrfd((double)UBX.rec_buffer.values.lon/10000000.0f,7,lon);
- float alt = (float)UBX.state.last_alt / 1000.0f;
- float hAcc = (float)UBX.state.last_vAcc / 1000.0f;
- float vAcc = (float)UBX.state.last_hAcc / 1000.0f;
+void UBXShow(bool json) {
char fix[32];
GetTextIndexed(fix, sizeof(fix), UBX.state.gpsFix, kGPSFix);
+ char lat[12];
+ dtostrfd((double)UBX.rec_buffer.values.lat / 10000000.0f, 7, lat); // degrees
+ char lon[12];
+ dtostrfd((double)UBX.rec_buffer.values.lon / 10000000.0f, 7, lon); // degrees
+ float hAcc = (float)UBX.state.last_vAcc / 1000.0f; // mm -> meters
+ float alt = (float)UBX.state.last_alt / 1000.0f; // mm -> meters
+ float vAcc = (float)UBX.state.last_hAcc / 1000.0f; // mm -> meters
#ifdef USE_GPS_VELOCITY
- float spd = (float)UBX.Message.navVel.gSpeed / 27.778f;
- float hdng = (float)UBX.Message.navVel.heading / 100000.0f;
- float cAcc = (float)UBX.Message.navVel.cAcc / 100000.0f;
- float sAcc = (float)UBX.Message.navVel.sAcc / 100000.0f;
-#endif
+ float spd = (float)UBX.Message.navVel.gSpeed / 27.778f; // cm/s -> km/h
+ float sAcc = (float)UBX.Message.navVel.sAcc / 27.778f; // cm/s -> km/h
+ float hdng = (float)UBX.Message.navVel.heading / 100000.0f; // degrees
+ float cAcc = (float)UBX.Message.navVel.cAcc / 100000.0f; // degrees
+ if (cAcc > 360) { cAcc = 0; }
+#endif // USE_GPS_VELOCITY
if (json) {
ResponseAppend_P(PSTR(",\"GPS\":{"));
@@ -904,41 +907,54 @@ void UBXShow(bool json)
ResponseAppend_P(PSTR("\"Lat\":%s,\"Lon\":%s,\"Alt\":%3_f,\"hAcc\":%3_f,\"vAcc\":%3_f,\"Fix\":\"%s\""),
lat, lon, &alt, &hAcc, &vAcc, fix);
#ifdef USE_GPS_VELOCITY
- ResponseAppend_P(PSTR(",\"Spd\":%1_f,\"Hdng\":%1_f,\"cAcc\":%2_f,\"sAcc\":%2_f"),
- &spd, &hdng, &cAcc, &sAcc);
-#endif
+ ResponseAppend_P(PSTR(",\"Spd\":%2_f,\"Hdng\":%1_f,\"sAcc\":%2_f,\"cAcc\":%1_f"),
+ &spd, &hdng, &sAcc, &cAcc);
+#endif // USE_GPS_VELOCITY
ResponseAppend_P(PSTR("}"));
}
#ifdef USE_FLOG
ResponseAppend_P(PSTR(",\"FLOG\":{\"Rec\":%u,\"Mode\":%u,\"Sec\":%u}"), Flog->recording, Flog->mode, Flog->sectors_left);
-#endif //USE_FLOG
+#endif // USE_FLOG
UBX.mode.send_UI_only = false;
#ifdef USE_WEBSERVER
} else {
- WSContentSend_PD(HTTP_SNS_GPS, lat, lon, &alt, &hAcc, &vAcc, fix);
+ WSContentSend_PD(HTTP_SNS_GPS, fix, lat, lon, &hAcc, &alt, &vAcc);
#ifdef USE_GPS_VELOCITY
- WSContentSend_PD(HTTP_SNS_GPS2, &spd, &hdng, &cAcc, &sAcc);
-#endif
- //WSContentSend_P(UBX_GOOGLE_MAPS, lat, lon);
-#ifdef DEBUG_TASMOTA_SENSOR
+ WSContentSend_PD(HTTP_SNS_GPS2, &spd, &sAcc, &hdng, &cAcc);
+#endif // USE_GPS_VELOCITY
+
+#ifdef USE_GPS_MAPS
+ int32_t lat_diff = UBX.rec_buffer.values.lat - UBX.lat;
+ int32_t lon_diff = UBX.rec_buffer.values.lon - UBX.lon;
+ if ((lat_diff > 1000) || (lon_diff > 1000)) {
+ UBX.lat = UBX.rec_buffer.values.lat;
+ UBX.lon = UBX.rec_buffer.values.lon;
+ WSContentSend_P(UBX_GOOGLE_MAPS, lat, lon);
+ }
+#endif // USE_GPS_MAPS
+
#ifdef USE_FLOG
+ WSContentSeparator(0);
+#ifdef DEBUG_TASMOTA_SENSOR
WSContentSend_PD(HTTP_SNS_FLOGVER, Flog->num_sectors, Flog->size, Flog->current_sector, Flog->sectors_left, Flog->sector.header.physical_start_sector);
if (Flog->recording) {
WSContentSend_PD(HTTP_SNS_FLOGREC, Flog->sector.header.buf_pointer - 8);
}
-#endif //USE_FLOG
-#endif // DEBUG_TASMOTA_SENSOR
-#ifdef USE_FLOG
+#endif // DEBUG_TASMOTA_SENSOR
if (Flog->ready) {
- WSContentSend_P(HTTP_SNS_FLOG,kFLOG_STATE[Flog->recording]);
+ char flog_state[32];
+ WSContentSend_P(HTTP_SNS_FLOG, GetTextIndexed(flog_state, sizeof(flog_state), Flog->recording, kFLOGstate));
}
if (!Flog->recording && Flog->found_saved_data) {
WSContentSend_P(HTTP_BTN_FLOG_DL);
}
-#endif //USE_FLOG
+#endif // USE_FLOG
+
if (UBX.mode.runningNTP) {
+ WSContentSeparator(0);
WSContentSend_P(HTTP_SNS_NTPSERVER);
}
+
#endif // USE_WEBSERVER
}
}
@@ -982,7 +998,7 @@ bool Xsns60(uint32_t function)
case FUNC_EVERY_100_MSECOND:
#ifdef USE_FLOG
if (!Flog->running_download)
-#endif //USE_FLOG
+#endif // USE_FLOG
{
UBXLoop();
}
@@ -991,7 +1007,7 @@ bool Xsns60(uint32_t function)
case FUNC_WEB_ADD_HANDLER:
WebServer_on(PSTR("/UBX"), UBXsendFile);
break;
-#endif //USE_FLOG
+#endif // USE_FLOG
case FUNC_JSON_APPEND:
UBXShow(1);
break;
@@ -999,7 +1015,7 @@ bool Xsns60(uint32_t function)
case FUNC_WEB_SENSOR:
#ifdef USE_FLOG
if (!Flog->running_download)
-#endif //USE_FLOG
+#endif // USE_FLOG
{
UBXShow(0);
}
From aa39e000f7d9f16dcc51882e5b15baf753a22490 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sun, 23 Jun 2024 21:44:56 +0200
Subject: [PATCH 087/252] add C2 as target for BLE (#21685)
---
tasmota/tasmota_xdrv_driver/xdrv_79_esp32_ble.ino | 2 +-
tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino | 2 +-
tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_79_esp32_ble.ino b/tasmota/tasmota_xdrv_driver/xdrv_79_esp32_ble.ino
index 7c10f2967..763ffc477 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_79_esp32_ble.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_79_esp32_ble.ino
@@ -32,7 +32,7 @@
#endif
#ifdef ESP32 // ESP32 family only. Use define USE_HM10 for ESP8266 support
-#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
+#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
#ifdef USE_BLE_ESP32
/*
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino b/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
index 23a82d2fc..219b083a9 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_85_esp32_ble_eq3_trv.ino
@@ -128,7 +128,7 @@ print("".join(pin))
#define USE_EQ3_ESP32
#endif
-#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
+#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
#ifdef USE_EQ3_ESP32
#ifdef ESP32 // ESP32 only. Use define USE_HM10 for ESP8266 support
#ifdef USE_BLE_ESP32
diff --git a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
index 73a1acaba..5cb582616 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_62_esp32_mi_ble.ino
@@ -78,7 +78,7 @@
#ifdef USE_BLE_ESP32
#ifdef ESP32 // ESP32 family only. Use define USE_HM10 for ESP8266 support
-#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
+#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3
#ifdef USE_MI_ESP32
From 0bddfad14e9549c646513ce4e68d42f669170456 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 25 Jun 2024 15:13:16 +0200
Subject: [PATCH 088/252] No Ethernet support for the C2 (#21691)
* No Ethernet for the C2
* Post process: Disable always Ethernet for C2
* better check for Ethernet available
* typo
* excluse c2 with `ifndef`
---
.../ESP-Mail-Client/src/extras/Networks_Provider.h | 2 +-
tasmota/include/tasmota_configurations_ESP32.h | 8 ++++++++
tasmota/tasmota_xdrv_driver/xdrv_82_esp32_ethernet.ino | 4 ++--
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/lib/libesp32/ESP-Mail-Client/src/extras/Networks_Provider.h b/lib/libesp32/ESP-Mail-Client/src/extras/Networks_Provider.h
index fd523be67..8e55a735d 100644
--- a/lib/libesp32/ESP-Mail-Client/src/extras/Networks_Provider.h
+++ b/lib/libesp32/ESP-Mail-Client/src/extras/Networks_Provider.h
@@ -75,7 +75,7 @@
#if !defined(ESP_MAIL_DISABLE_NATIVE_ETHERNET)
-#if defined(ESP32) && __has_include()
+#if defined(ESP32) && __has_include()
#include
#define ESP_MAIL_ETH_IS_AVAILABLE
#elif defined(ESP8266) && defined(ESP8266_CORE_SDK_V3_X_X)
diff --git a/tasmota/include/tasmota_configurations_ESP32.h b/tasmota/include/tasmota_configurations_ESP32.h
index c323ec5f0..f6ac7fc22 100644
--- a/tasmota/include/tasmota_configurations_ESP32.h
+++ b/tasmota/include/tasmota_configurations_ESP32.h
@@ -825,5 +825,13 @@
#endif // USE_MATTER_DEVICE
+/*********************************************************************************************\
+ * Post-process compile options for esp32-c2
+\*********************************************************************************************/
+
+#ifdef CONFIG_IDF_TARGET_ESP32C2
+ #undef USE_ETHERNET
+#endif // CONFIG_IDF_TARGET_ESP32C2
+
#endif // ESP32
#endif // _TASMOTA_CONFIGURATIONS_ESP32_H_
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_82_esp32_ethernet.ino b/tasmota/tasmota_xdrv_driver/xdrv_82_esp32_ethernet.ino
index b44be11f3..a9e7ed17c 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_82_esp32_ethernet.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_82_esp32_ethernet.ino
@@ -18,7 +18,7 @@
*/
#ifdef ESP32
-//#if CONFIG_IDF_TARGET_ESP32
+#ifndef CONFIG_IDF_TARGET_ESP32C2
#ifdef USE_ETHERNET
/*********************************************************************************************\
* Ethernet support for ESP32
@@ -445,5 +445,5 @@ bool Xdrv82(uint32_t function) {
}
#endif // USE_ETHERNET
-//#endif // CONFIG_IDF_TARGET_ESP32
+#endif // CONFIG_IDF_TARGET_ESP32C2
#endif // ESP32
From af1fa724af188122c0cf161a79a76f452bef6771 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 25 Jun 2024 16:36:28 +0200
Subject: [PATCH 089/252] Fix non-webserver compilation
---
tasmota/tasmota_support/support.ino | 4 ++++
tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino | 4 ----
tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino | 2 ++
tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino | 4 ++--
4 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/tasmota/tasmota_support/support.ino b/tasmota/tasmota_support/support.ino
index fb945953a..e6b85cd5c 100755
--- a/tasmota/tasmota_support/support.ino
+++ b/tasmota/tasmota_support/support.ino
@@ -2709,6 +2709,10 @@ String HtmlEscape(const String unescaped) {
return result;
}
+String SettingsTextEscaped(uint32_t index) {
+ return HtmlEscape(SettingsText(index));
+}
+
String UrlEscape(const char *unescaped) {
static const char *hex = "0123456789ABCDEF";
String result;
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino b/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino
index de9b796ba..b9837b786 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino
@@ -477,10 +477,6 @@ static void WebGetArg(const char* arg, char* out, size_t max)
// out[max-1] = '\0'; // Ensure terminating NUL
}
-String SettingsTextEscaped(uint32_t index) {
- return HtmlEscape(SettingsText(index));
-}
-
String AddWebCommand(const char* command, const char* arg, const char* dflt) {
/*
// OK but fixed max argument
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
index 58c6f691a..3ea6508ad 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
@@ -894,6 +894,7 @@ bool Xdrv52(uint32_t function)
BrLoad("autoexec.be"); // run autoexec.be at first tick, so we know all modules are initialized
berry.autoexec_done = true;
+#ifdef USE_WEBSERVER
// check if `web_add_handler` was missed, for example because of Berry VM restart
if (!berry.web_add_handler_done) {
bool network_up = WifiHasIP();
@@ -905,6 +906,7 @@ bool Xdrv52(uint32_t function)
berry.web_add_handler_done = true;
}
}
+#endif // USE_WEBSERVER
}
if (TasmotaGlobal.berry_fast_loop_enabled) { // call only if enabled at global level
callBerryFastLoop(false); // call `tasmota.fast_loop()` optimized for minimal performance impact
diff --git a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
index 82f10f0cf..5f0e3633e 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
@@ -870,14 +870,14 @@ const char HTTP_SNS_GPS2[] PROGMEM = "{s}GPS " D_SPEED "{m}%2_f " D_UNIT_KILOMET
"{s}GPS " D_HEADING_ACCURACY "{m}%1_f{e}";
#endif // USE_GPS_VELOCITY
-const char kGPSFix[] PROGMEM = D_SAT_FIX_NO_FIX "|" D_SAT_FIX_DEAD_RECK "|" D_SAT_FIX_2D "|" D_SAT_FIX_3D "|" D_SAT_FIX_GPS_DEAD "|" D_SAT_FIX_TIME;
-
#ifdef USE_GPS_MAPS
const char UBX_GOOGLE_MAPS[] ="";
#endif // USE_GPS_MAPS
#endif // USE_WEBSERVER
+const char kGPSFix[] PROGMEM = D_SAT_FIX_NO_FIX "|" D_SAT_FIX_DEAD_RECK "|" D_SAT_FIX_2D "|" D_SAT_FIX_3D "|" D_SAT_FIX_GPS_DEAD "|" D_SAT_FIX_TIME;
+
/********************************************************************************************/
void UBXShow(bool json) {
From 0df56eaffa8fdcf225ed35ef3346dc2546a26819 Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 25 Jun 2024 17:00:07 +0200
Subject: [PATCH 090/252] Tasmota esp32 platform 2024.06.11 (#21694)
---
platformio_tasmota32.ini | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/platformio_tasmota32.ini b/platformio_tasmota32.ini
index 23eed748f..1cade16c7 100644
--- a/platformio_tasmota32.ini
+++ b/platformio_tasmota32.ini
@@ -81,7 +81,7 @@ lib_ignore = ${esp32_defaults.lib_ignore}
ccronexpr
[core32]
-platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.10/platform-espressif32.zip
+platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.11/platform-espressif32.zip
platform_packages =
build_unflags = ${esp32_defaults.build_unflags}
build_flags = ${esp32_defaults.build_flags}
From a38b8852759fbd6512879600dad01e1065cfc58b Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Tue, 25 Jun 2024 17:33:15 +0200
Subject: [PATCH 091/252] esp32 core 3.0.2
---
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index fb378f095..481df28dc 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -7,7 +7,7 @@
- [ ] Only relevant files were touched
- [ ] Only one feature/fix was added per PR and the code change compiles without warnings
- [ ] The code change is tested and works with Tasmota core ESP8266 V.2.7.7
- - [ ] The code change is tested and works with Tasmota core ESP32 V.3.0.1
+ - [ ] The code change is tested and works with Tasmota core ESP32 V.3.0.2
- [ ] I accept the [CLA](https://github.com/arendst/Tasmota/blob/development/CONTRIBUTING.md#contributor-license-agreement-cla).
_NOTE: The code change must pass CI tests. **Your PR cannot be merged unless tests pass**_
From bf1dace55dc3efbb43c7a46c7d1fde78a2287dd4 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 25 Jun 2024 22:52:15 +0200
Subject: [PATCH 092/252] Add ESP32 USE_FLOG support (experimental)
---
tasmota/tasmota_support/support_flash_log.ino | 36 ++++++++-----------
tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino | 4 ---
2 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/tasmota/tasmota_support/support_flash_log.ino b/tasmota/tasmota_support/support_flash_log.ino
index c28528a7f..42b2b1eed 100644
--- a/tasmota/tasmota_support/support_flash_log.ino
+++ b/tasmota/tasmota_support/support_flash_log.ino
@@ -19,13 +19,11 @@
--------------------------------------------------------------------------------------------
Version Date Action Description
--------------------------------------------------------------------------------------------
-
-
+ 2.0.0.0 20240625 expand - Add support for ESP32
---
1.0.0.0 20190923 started - further development by Christian Baars - https://github.com/Staars/Sonoff-Tasmota
forked - from arendst/tasmota - https://github.com/arendst/Sonoff-Tasmota
base - code base from arendst and - written from scratch
-
*/
/********************************************************************************************\
@@ -37,7 +35,6 @@
\*********************************************************************************************/
#ifdef USE_FLOG
-#ifdef ESP8266
class FLOG
@@ -84,8 +81,8 @@ public:
bool recording = false; // ready for recording
union sector_t{
- uint32_t dword_buffer[FLASH_SECTOR_SIZE/4];
- uint8_t byte_buffer[FLASH_SECTOR_SIZE];
+ uint32_t dword_buffer[SPI_FLASH_SEC_SIZE/4];
+ uint8_t byte_buffer[SPI_FLASH_SEC_SIZE];
header_t header; // should be 4-byte-aligned
} sector; // the global buffer of 4096 bytes, used for reading and writing
@@ -100,20 +97,16 @@ public:
void startDownload(size_t size, CallbackNoArgs sendHeader, CallbackWithArgs sendRecord, CallbackNoArgs sendFooter);
};
-extern "C" uint32_t _SPIFFS_start; // we make shure later, that only one of the two is really used ...
-extern "C" uint32_t _FS_start; // ... depending on core-sdk-version
-
/**
* @brief Will examine the start and end of the OTA-partition. Then the sector size will be computed, saved data should be found and the initial state will be configured.
*/
void FLOG::init(void)
{
DEBUG_SENSOR_LOG(PSTR("FLOG: init ..."));
-size = ESP.getSketchSize();
-// round one sector up
-start = (size + FLASH_SECTOR_SIZE - 1) & (~(FLASH_SECTOR_SIZE - 1));
-end = (uint32_t)&_FS_start - 0x40200000;
-num_sectors = (end - start)/FLASH_SECTOR_SIZE;
+size = ESP_getSketchSize();
+start = FlashWriteStartSector() * SPI_FLASH_SEC_SIZE;
+end = FlashWriteMaxSector() * SPI_FLASH_SEC_SIZE;
+num_sectors = (end - start) / SPI_FLASH_SEC_SIZE;
DEBUG_SENSOR_LOG(PSTR("FLOG: size: 0x%lx, start: 0x%lx, end: 0x%lx, num_sectors(dec): %lu"), size, start, end, num_sectors );
_findFirstErasedSector();
if(first_erased_sector == 0xffff){
@@ -138,7 +131,7 @@ ready = true;
*/
void FLOG::_readSector(uint8_t one_sector){
DEBUG_SENSOR_LOG(PSTR("FLOG: read sector number: %u" ), one_sector);
- ESP.flashRead(start+(one_sector * FLASH_SECTOR_SIZE),(uint32_t *)§or.dword_buffer, FLASH_SECTOR_SIZE);
+ ESP.flashRead(start+(one_sector * SPI_FLASH_SEC_SIZE),(uint32_t *)§or.dword_buffer, SPI_FLASH_SEC_SIZE);
}
/**
* @brief Erase the given sector og the OTA-partition
@@ -147,7 +140,7 @@ void FLOG::_readSector(uint8_t one_sector){
*/
void FLOG::_eraseSector(uint8_t one_sector){ // Erase sector of FLOG/OTA
DEBUG_SENSOR_LOG(PSTR("FLOG: erasing sector number: %u" ), one_sector);
- ESP.flashEraseSector((start/FLASH_SECTOR_SIZE)+one_sector);
+ ESP.flashEraseSector((start/SPI_FLASH_SEC_SIZE)+one_sector);
}
/**
* @brief Write the global buffer to the given sector
@@ -156,7 +149,7 @@ void FLOG::_eraseSector(uint8_t one_sector){ // Erase sector of FLOG/OTA
*/
void FLOG::_writeSector(uint8_t one_sector){ // Write sector of FLOG/OTA
DEBUG_SENSOR_LOG(PSTR("FLOG: write buffer to sector number: %u" ), one_sector);
- ESP.flashWrite(start+(one_sector * FLASH_SECTOR_SIZE),(uint32_t *)§or.dword_buffer, FLASH_SECTOR_SIZE);
+ ESP.flashWrite(start+(one_sector * SPI_FLASH_SEC_SIZE),(uint32_t *)§or.dword_buffer, SPI_FLASH_SEC_SIZE);
}
/**
* @brief Clear the global buffer, but leave the header intact
@@ -301,8 +294,8 @@ void FLOG::addToBuffer(uint8_t src[], uint32_t size){
return; // we ignore additional calls and are done, TODO: maybe use meaningful return values
}
}
- if((FLASH_SECTOR_SIZE-sector.header.buf_pointer-sizeof(sector.header))>size){
- // DEBUG_SENSOR_LOG(PSTR("FLOG: enough space left in buffer: %u"), FLASH_SECTOR_SIZE - sector.header.buf_pointer - sizeof(sector.header));
+ if((SPI_FLASH_SEC_SIZE-sector.header.buf_pointer-sizeof(sector.header))>size){
+ // DEBUG_SENSOR_LOG(PSTR("FLOG: enough space left in buffer: %u"), SPI_FLASH_SEC_SIZE - sector.header.buf_pointer - sizeof(sector.header));
// DEBUG_SENSOR_LOG(PSTR("FLOG: current buf_pointer: %u, size of added: %u"), sector.header.buf_pointer, size);
memcpy(sector.byte_buffer + sector.header.buf_pointer, src, size);
@@ -315,7 +308,7 @@ void FLOG::addToBuffer(uint8_t src[], uint32_t size){
_saveBufferToSector();
sectors_left++;
// but now save the data to the fresh buffer
- if((FLASH_SECTOR_SIZE-sector.header.buf_pointer-sizeof(sector.header))>size){
+ if((SPI_FLASH_SEC_SIZE-sector.header.buf_pointer-sizeof(sector.header))>size){
memcpy(sector.byte_buffer + sector.header.buf_pointer, src, size);
sector.header.buf_pointer+=size; // this is the next free spot
}
@@ -426,5 +419,4 @@ void FLOG::stopRecording(void){
_initBuffer();
}
- #endif // ESP8266
- #endif // USE_FLOG
\ No newline at end of file
+#endif // USE_FLOG
\ No newline at end of file
diff --git a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
index 5f0e3633e..31f3a26a7 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_60_GPS.ino
@@ -18,10 +18,6 @@
*/
#ifdef USE_GPS
-#if defined(ESP32) && defined(USE_FLOG)
- #undef USE_FLOG
- #warning FLOG deactivated on ESP32
-#endif // ESP32
/*********************************************************************************************\
--------------------------------------------------------------------------------------------
Version Date Action Description
From 33225bfabb6040a537e42bf82b932d0fb8b4c463 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 25 Jun 2024 22:58:46 +0200
Subject: [PATCH 093/252] Update changelogs
---
CHANGELOG.md | 2 ++
RELEASENOTES.md | 8 +++++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 303e03c57..b6cabc8bb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,8 @@ All notable changes to this project will be documented in this file.
- ESP8266 platform update from 2024.01.01 to 2024.06.00 (#21668)
- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 (#21668)
- Matter refactor reading of multiple attributes to reduce memory pressure (#21675)
+- ESP32 platform update from 2024.06.10 to 2024.06.11 (#21694)
+- ESP32 Framework (Arduino Core) from v3.0.1 to v3.0.2 (#21694)
### Fixed
- Matter interverted attributes 0xFFF9 and 0xFFFB (#21636)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index a788376d1..a40a8e135 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -36,9 +36,9 @@ While fallback or downgrading is common practice it was never supported due to S
This release will be supported from ESP8266/Arduino library Core version **2.7.7** due to reported security and stability issues on previous Core version. This will also support gzipped binaries.
-This release will be supported from ESP32/Arduino library Core version **3.0.1**.
+This release will be supported from ESP32/Arduino library Core version **3.0.2**.
-Support of ESP8266 Core versions before 2.7.7 and ESP32 Core versions before 3.0.1 have been removed.
+Support of ESP8266 Core versions before 2.7.7 and ESP32 Core versions before 3.0.2 have been removed.
### Known issues with v14.1.0
@@ -85,7 +85,7 @@ Historical binaries can be downloaded from
The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin.gz``
### ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-S2 and ESP32-S3 based
-The following binary downloads have been compiled with ESP32/Arduino library core version **3.0.1**.
+The following binary downloads have been compiled with ESP32/Arduino library core version **3.0.2**.
- **tasmota32.bin** = The Tasmota version with most drivers including additional sensors and KNX for 4M+ flash. **RECOMMENDED RELEASE BINARY**
- **tasmota32solo1.bin** = The Tasmota version with most drivers including additional sensors and KNX for single core ESP32 and 4M+ flash.
@@ -138,6 +138,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Changed
- ESP8266 platform update from 2024.01.01 to 2024.06.00 [#21668](https://github.com/arendst/Tasmota/issues/21668)
- ESP8266 Framework (Arduino Core) from v2.7.6 to v2.7.7 [#21668](https://github.com/arendst/Tasmota/issues/21668)
+- ESP32 platform update from 2024.05.13 to 2024.06.11 [#21694](https://github.com/arendst/Tasmota/issues/21694)
+- ESP32 Framework (Arduino Core) from v3.0.0 to v3.0.2 [#21694](https://github.com/arendst/Tasmota/issues/21694)
- Optional MQTT_TELE_RETAIN to Energy Margins message replaced by ``SensorRetain``
- Display timing splash screen with display modes 1 to 5
- Allow receive or send using SerialBridge
From 97017017a4668c7f585d632cf1c41e9f0aa099d3 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 27 Jun 2024 00:03:34 +0200
Subject: [PATCH 094/252] Matter full support of events (#21698)
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 4 +-
.../src/embedded/Matter_EventHandler.be | 204 +-
.../berry_matter/src/embedded/Matter_IM.be | 172 +-
.../src/embedded/Matter_IM_Message.be | 91 +-
.../src/embedded/Matter_IM_Subscription.be | 134 +-
.../src/embedded/Matter_Message.be | 1 -
.../src/embedded/Matter_MessageHandler.be | 6 +-
.../src/embedded/Matter_Path_0.be | 6 +
.../embedded/Matter_Path_1_EventGenerator.be | 147 +
...ator.be => Matter_Path_1_PathGenerator.be} | 20 +-
.../src/embedded/Matter_Plugin_0.be | 34 +-
.../src/embedded/Matter_Plugin_1_Root.be | 1 -
.../src/embedded/Matter_zz_Device.be | 6 +-
.../solidify/solidified_Matter_EventHandler.h | 1076 +++-
.../src/solidify/solidified_Matter_IM.h | 4711 +++++++++--------
.../solidify/solidified_Matter_IM_Message.h | 894 ++--
.../solidified_Matter_IM_Subscription.h | 1222 +++--
.../solidified_Matter_MessageHandler.h | 10 +-
.../src/solidify/solidified_Matter_Path_0.h | 141 +-
.../solidified_Matter_Path_1_EventGenerator.h | 351 ++
... solidified_Matter_Path_1_PathGenerator.h} | 112 +-
.../src/solidify/solidified_Matter_Plugin_0.h | 173 +-
.../solidify/solidified_Matter_zz_Device.h | 119 +-
.../xdrv_52_3_berry_tasmota.ino | 1 +
25 files changed, 5795 insertions(+), 3842 deletions(-)
create mode 100644 lib/libesp32/berry_matter/src/embedded/Matter_Path_1_EventGenerator.be
rename lib/libesp32/berry_matter/src/embedded/{Matter_Path_1_Generator.be => Matter_Path_1_PathGenerator.be} (97%)
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_EventGenerator.h
rename lib/libesp32/berry_matter/src/solidify/{solidified_Matter_Path_1_Generator.h => solidified_Matter_Path_1_PathGenerator.h} (96%)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b6cabc8bb..5f65758c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file.
- Matter add internal debug option (#21634)
- Matter add Fan support (virtual only) (#21637)
- Matter show event name in logs (#21649)
+- Matter full support of events
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index e020ecfac..34d480df3 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -209,7 +209,8 @@ extern int matter_publish_command(bvm *vm);
extern const bclass be_class_Matter_TLV; // need to declare it upfront because of circular reference
#include "solidify/solidified_Matter_Path_0.h"
-#include "solidify/solidified_Matter_Path_1_Generator.h"
+#include "solidify/solidified_Matter_Path_1_PathGenerator.h"
+#include "solidify/solidified_Matter_Path_1_EventGenerator.h"
#include "solidify/solidified_Matter_TLV.h"
#include "solidify/solidified_Matter_IM_Data.h"
#include "solidify/solidified_Matter_UDPServer.h"
@@ -455,6 +456,7 @@ module matter (scope: global, strings: weak) {
// Interation Model
Path, class(be_class_Matter_Path)
PathGenerator, class(be_class_Matter_PathGenerator)
+ EventGenerator, class(be_class_Matter_EventGenerator)
IM_Status, class(be_class_Matter_IM_Status)
IM_InvokeResponse, class(be_class_Matter_IM_InvokeResponse)
IM_WriteResponse, class(be_class_Matter_IM_WriteResponse)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
index 12145524f..5c1f17434 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
@@ -38,20 +38,70 @@ class Matter_EventQueued
var event_id
var is_urgent
var priority
+ var data0, data1, data2
var event_no
+ var epoch_timestamp
var raw_tlv # content encoded as full TLV
- def init(event_ib)
- self.endpoint = event_ib.path.endpoint
- self.cluster = event_ib.path.cluster
- self.event_id = event_ib.path.event
- self.is_urgent = event_ib.path.is_urgent
- self.priority = event_ib.priority
+ def init(event_no, endpoint, cluster, event_id, is_urgent, priority, data0, data1, data2)
+ self.event_no = event_no
+ self.endpoint = endpoint
+ self.cluster = cluster
+ self.event_id = event_id
+ self.is_urgent = is_urgent
+ self.priority = priority
+ # priority
if (self.priority < 0) self.priority = 0 end
if (self.priority > matter.EVENT_CRITICAL) self.priority = matter.EVENT_CRITICAL end
- self.event_no = int64.toint64(event_ib.event_number) # int64
- self.raw_tlv = event_ib.to_TLV().tlv2raw() # bytes()
+ # epoch_time
+ self.epoch_timestamp = tasmota.rtc('utc')
+ if (self.epoch_timestamp < 1700000000)
+ self.epoch_timestamp = tasmota.rtc('config_time') # no valid time, take the last config time
+ end
+ self.data0 = data0
+ self.data1 = data1
+ self.data2 = data2
end
+
+ #################################################################################
+ # to_raw_bytes
+ #
+ # Computes a complete EventReportIB structure as bytes()
+ #
+ # It is memoized in self.raw_tlv, but is cleaned after sending messages to
+ # free up some space
+ def to_raw_bytes()
+ if (self.raw_tlv == nil)
+ var event_report = matter.EventReportIB()
+ var event_ib = matter.EventDataIB()
+ event_report.event_data = event_ib
+ var event_path = matter.EventPathIB()
+ event_path.endpoint = self.endpoint
+ event_path.cluster = self.cluster
+ event_path.event = self.event_id
+ event_path.is_urgent = self.is_urgent
+ event_ib.path = event_path
+ event_ib.priority = self.priority
+ event_ib.event_number = self.event_no
+ event_ib.epoch_timestamp = self.epoch_timestamp
+ event_ib.data = matter.TLV.Matter_TLV_struct()
+ if (self.data0 != nil) event_ib.data.add_obj(0, self.data0) end
+ if (self.data1 != nil) event_ib.data.add_obj(1, self.data1) end
+ if (self.data2 != nil) event_ib.data.add_obj(2, self.data2) end
+
+ self.raw_tlv = event_report.to_TLV().tlv2raw() # bytes()
+ end
+ return self.raw_tlv
+ end
+
+ #################################################################################
+ # compact
+ #
+ # Remove the local cache of `raw_tlv` to save space (it can always be recreated)
+ def compact()
+ self.raw_tlv = nil
+ end
+
end
matter.EventQueued = Matter_EventQueued
@@ -77,11 +127,16 @@ matter.EventQueued = Matter_EventQueued
# EVENT_CRITICAL=2
#################################################################################
-# Matter_IM class
+# Matter_EventHandler class
+#
+# Keep track of events in 3 queues for DEBUG/INFO/CRITICAL levels
+#
+# Invariants:
+# All 3 queues (debug/info/critical) have events in sorted order by `event_no`
#################################################################################
class Matter_EventHandler
- static var EVENT_NO_INCR = 1000 # counter increased when persisting
- static var EVENT_NO_FILENAME = "_matter_event_no"
+ static var EVENT_NO_INCR = 1000 # counter increased when persisting, default value from Matter spec
+ static var EVENT_NO_KEY = "_matter_event_no"
static var EVENT_QUEUE_SIZE_MAX = 10 # each queue is 10 elements depth
# circular buffers
@@ -109,22 +164,20 @@ class Matter_EventHandler
# with a predefined gap `self.EVENT_NO_INCR` (default 1000)
def load_event_no_persisted()
import persist
- var event_no_str = str(persist.find(self.EVENT_NO_FILENAME, "0"))
+ var event_no_str = str(persist.find(self.EVENT_NO_KEY, "0"))
self.counter_event_no = int64.fromstring(event_no_str)
self.counter_event_no_persisted = self.counter_event_no.add(self.EVENT_NO_INCR)
# save back next slot
- persist.setmember(self.EVENT_NO_FILENAME, self.counter_event_no_persisted.tostring())
+ persist.setmember(self.EVENT_NO_KEY, self.counter_event_no_persisted.tostring())
persist.save()
end
#####################################################################
# Enqueue event
#
- # Takes `Matter_EventDataIB`
+ # Takes `EventQueued`
#####################################################################
- def queue_event(ev_ib)
- var ev_queued = matter.EventQueued(ev_ib)
-
+ def queue_event(ev_queued)
var cur_prio = ev_queued.priority
# we reuse the same logic as connectedhomeip
@@ -183,10 +236,37 @@ class Matter_EventHandler
end
end
+ #############################################################
+ # dispatch every second click to sub-objects that need it
+ def every_second()
+ self.compact()
+ end
+
+ #####################################################################
+ # Enqueue event
+ #
+ # Remove the cached `raw_tlv` from all events in queues
+ # to save some space
+ def compact()
+ def compact_queue(q)
+ var i = 0
+ while i < size(q)
+ q[i].compact()
+ i += 1
+ end
+ end
+ compact_queue(self.queue_debug)
+ compact_queue(self.queue_info)
+ compact_queue(self.queue_critical)
+ end
+
#####################################################################
# Events handling
#####################################################################
# Get next event number
+ #
+ # Also make sure that we don't go above the persisted last number,
+ # in such case increase the persisted number and use the next chunk
def get_next_event_no()
self.counter_event_no = self.counter_event_no.add(1)
if self.counter_event_no >= self.counter_event_no_persisted
@@ -194,7 +274,10 @@ class Matter_EventHandler
end
return self.counter_event_no
end
-
+ # Get last event number (all events sent up to now are lower or equal than this value)
+ def get_last_event_no()
+ return self.counter_event_no
+ end
#####################################################################
# Dump events for debugging
@@ -208,6 +291,91 @@ class Matter_EventHandler
tasmota.log(f"MTR: Events by types: critical {cnt[2]}, info {cnt[1]}, debug {cnt[0]}", 2)
end
+ #####################################################################
+ # find_min_no
+ #
+ # Find the next event number just above the provided value,
+ # or the smallest if nil is passed
+ #
+ # Arg:
+ # - event_min: minimal event number (strictly above),
+ # or `nil` if smallest number
+ #
+ # Returns:
+ # - event_no (int) or `nil` of none found
+ #####################################################################
+ def find_min_no(event_min_no)
+ # fail fast if `event_min_no` is the same as `counter_event_no`
+ # meaning that we dont have any more events since last report
+ if (event_min_no != nil) && (event_min_no >= self.counter_event_no)
+ return nil
+ end
+
+ #####################################################################
+ # Find the next available event right above `event_min_no`
+ #
+ # TODO: since queues are sorted, we can abort searching when we reach
+ # an event below `event_min_no`
+ #
+ # Arg
+ # - event_smallest: the event found up to now (from previous queues)
+ # - q: the queue oject
+ # - event_min_no: minimum acceptable event number (int64) or nil if any
+ def find_in_queue(event_smallest, q, event_min_no)
+ var i = size(q) - 1
+ while i >= 0
+ var cur_event = q[i]
+ # fail fast: since queues are sorted, we can abort searching when we reach an event below `event_min_no`
+ if (event_min_no != nil) && (cur_event.event_no <= event_min_no)
+ return event_smallest
+ end
+
+ # we know that event_no is in acceptable range, is it smaller?
+ if (event_smallest == nil) || (cur_event.event_no < event_smallest.event_no)
+ event_smallest = cur_event
+ end
+
+ i -= 1
+ end
+ return event_smallest
+ end
+
+ var event
+ # look in debug
+ event = find_in_queue(event, self.queue_debug, event_min_no)
+ # look in info
+ event = find_in_queue(event, self.queue_info, event_min_no)
+ # look in critical
+ event = find_in_queue(event, self.queue_critical, event_min_no)
+
+ return event
+ end
+
+ #############################################################
+ # generate a new event
+ #
+ def publish_event(endpoint, cluster, event_id, is_urgent, priority, data0, data1, data2)
+ var new_event = matter.EventQueued(self.get_next_event_no(), endpoint, cluster, event_id, is_urgent, priority, data0, data1, data2)
+ if tasmota.loglevel(3)
+ var data_str = ''
+ if (data0 != nil) data_str = str(data0) end
+ if (data1 != nil) data_str += ", " + str(data1) end
+ if (data2 != nil) data_str += ", " + str(data2) end
+ if (cluster == 0x0028) && (event_id == 0x00)
+ # put the software version in a readable format
+ var val = data0.val
+ data_str = format("%i.%i.%i.%i", (val >> 24) & 0xFF, (val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
+ end
+ var priority_str = (priority == 2) ? "CRIT " : (priority == 1) ? "INFO " : "DEBUG "
+ var event_name = matter.get_event_name(cluster, event_id)
+ event_name = (event_name != nil) ? "(" + event_name + ") " : ""
+ log(f"MTR: +Add_Event ({priority_str}{new_event.event_no:8s}) [{new_event.endpoint:02X}]{new_event.cluster:04X}/{new_event.event_id:02X} {event_name}- {data_str}", 2)
+ end
+ self.queue_event(new_event)
+ # check if we have an subscription interested in this new event
+ self.device.message_handler.im.subs_shop.event_published(new_event)
+ end
+
end
matter.EventHandler = Matter_EventHandler
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index cff1234ab..21de50682 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -601,8 +601,9 @@ class Matter_IM
matter.profiler.log("read_request_start_pull")
var query = matter.ReadRequestMessage().from_TLV(val)
var generator_or_arr = self.process_read_or_subscribe_request_pull(query, msg)
+ var event_generator_or_arr = self.process_read_or_subscribe_request_event_pull(query, msg)
- self.send_report_data_pull(msg, generator_or_arr) # pack into a response structure that will read attributes when expansion is triggered
+ self.send_queue.push(matter.IM_ReportData_Pull(msg, generator_or_arr, event_generator_or_arr))
return true
end
@@ -613,15 +614,14 @@ class Matter_IM
#
# This version lazily reads attributes when building the response packets
#
- # returns `true` if processed, `false` if silently ignored,
- # or raises an exception
def process_read_or_subscribe_request_pull(query, msg)
- if query.attributes_requests != nil
+ if (query.attributes_requests != nil)
var generator_or_arr # single path generator (common case) or array of generators
- var node_id = (msg != nil) ? msg.get_node_id() : nil
- # structure is `ReadRequestMessage` 10.6.2 p.558
- if size(query.attributes_requests) > 1
+ # structure is `ReadRequestMessage` 10.6.2 p.558
+ var size_requests = (query.attributes_requests ? size(query.attributes_requests) : 0)
+ # log(f"MTR: process_read_or_subscribe_request_pull {size_requests=}")
+ if (size_requests > 1)
generator_or_arr = []
end
@@ -629,7 +629,7 @@ class Matter_IM
var gen = matter.PathGenerator(self.device)
gen.start(q.endpoint, q.cluster, q.attribute, query.fabric_filtered)
- if size(query.attributes_requests) > 1
+ if (size_requests > 1)
generator_or_arr.push(gen)
else
generator_or_arr = gen
@@ -655,6 +655,88 @@ class Matter_IM
end
end
end
+
+ return generator_or_arr
+ end
+ return nil
+ end
+
+ #############################################################
+ # parse_event_filters_min_no
+ #
+ # Parse an object EventFilters and extract the minimum event
+ # number (as int64) or nil if none
+ static def parse_event_filters_min_no(event_filters, node_id)
+ var event_no_min = nil # do we have a filter for minimum event_no (int64 or nil)
+ if event_filters != nil
+ for filter: event_filters # filter is an instance of `EventFilterIB`
+ # tasmota.log(f"MTR: EventFilter {filter=} {node_id=}", 3)
+ var filter_node = int64.toint64(filter.node) # nil or int64
+ if (filter_node && node_id) # there is a filter on node-id
+ if filter.node.tobytes() != node_id # the node id doesn't match
+ tasmota.log(f"MTR: node_id filter {filter_node.tobytes().tohex()} doesn't match {node_id.tohex()}")
+ continue
+ end
+ end
+ # specified minimum value
+ var new_event_no_min = int64.toint64(filter.event_min)
+ if (event_no_min == nil) || (event_no_min < new_event_no_min)
+ event_no_min = new_event_no_min
+ end
+ end
+ end
+ return event_no_min
+ end
+
+ #############################################################
+ # process_read_or_subscribe_request_event_pull
+ #
+ # This version converts event request to an EventGenerator, a list of EventGenerator or nil
+ #
+ # or raises an exception
+ def process_read_or_subscribe_request_event_pull(query, msg)
+ if (query.event_requests != nil)
+ var generator_or_arr # single path generator (common case) or array of generators
+ var node_id = (msg != nil) ? msg.get_node_id() : nil
+
+ # structure is `ReadRequestMessage` 10.6.2 p.558
+ var size_requests = (query.event_requests ? size(query.event_requests) : 0)
+ # log(f"MTR: process_read_or_subscribe_request_pull {size_requests=}")
+ if (size_requests > 1)
+ generator_or_arr = []
+ end
+
+ # parse event requests
+ # scan event filters
+ var event_no_min = self.parse_event_filters_min_no(query.event_filters, node_id)
+
+ # scan event filters
+ if query.event_requests
+ for q : query.event_requests
+ var gen = matter.EventGenerator(self.device)
+ gen.start(q.endpoint, q.cluster, q.event, event_no_min)
+
+ if (size_requests > 1)
+ generator_or_arr.push(gen)
+ else
+ generator_or_arr = gen
+ end
+
+ if tasmota.loglevel(3)
+ var event_name = ""
+ if (q.cluster != nil) && (q.event != nil)
+ event_name = matter.get_event_name(q.cluster, q.event)
+ event_name = (event_name != nil) ? "(" + event_name + ") " : ""
+ end
+ var ep_str = (q.endpoint != nil) ? f"{q.endpoint:02X}" : "**"
+ var cl_str = (q.cluster != nil) ? f"{q.cluster:04X}" : "****"
+ var ev_str = (q.event != nil) ? f"{q.event:02X}" : "**"
+ var event_no_min_str = (event_no_min != nil) ? f" (>{event_no_min})" : ""
+ log(f"MTR: >Read_Event({msg.session.local_session_id:6i}) [{ep_str}]{cl_str}/{ev_str} {event_name}{event_no_min_str}", 3)
+ end
+ end
+ end
+
return generator_or_arr
end
return nil
@@ -785,12 +867,10 @@ class Matter_IM
self.subs_shop.remove_by_session(msg.session) # if `keep_subscriptions`, kill all subscriptions from current session
end
- # log("MTR: received SubscribeRequestMessage=" + str(query), 3)
-
var sub = self.subs_shop.new_subscription(msg.session, query)
-
+
# expand a string with all attributes requested
- if tasmota.loglevel(3)
+ if tasmota.loglevel(3) && (query.attributes_requests != nil)
var attr_req = []
var ctx = matter.Path()
ctx.msg = msg
@@ -800,15 +880,17 @@ class Matter_IM
ctx.attribute = q.attribute
attr_req.push(str(ctx))
end
- log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s attr_req=%s event_req=%s",
+ log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i fabric_filtered=%s",
msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0,
- sub.subscription_id, query.fabric_filtered,
- query.attributes_requests != nil ? size(query.attributes_requests) : "-",
- query.event_requests != nil ? size(query.event_requests) : "-"), 3)
+ sub.subscription_id, query.fabric_filtered), 3)
end
var generator_or_arr = self.process_read_or_subscribe_request_pull(query, msg)
- self.send_subscribe_response_pull(msg, generator_or_arr, sub) # pack into a response structure that will read attributes when expansion is triggered
+ var event_generator_or_arr = self.process_read_or_subscribe_request_event_pull(query, msg)
+
+ sub.set_event_generator_or_arr(event_generator_or_arr)
+
+ self.send_queue.push(matter.IM_SubscribeResponse_Pull(msg, generator_or_arr, event_generator_or_arr, sub))
return true
end
@@ -881,7 +963,7 @@ class Matter_IM
end
if size(ret.invoke_responses) > 0
- self.send_invoke_response(msg, ret)
+ self.send_queue.push(matter.IM_InvokeResponse(msg, ret))
else
return false # we don't send anything, hence the responder sends a simple packet ack
end
@@ -1052,7 +1134,7 @@ class Matter_IM
generator.start(write_path.endpoint, write_path.cluster, write_path.attribute)
var direct = generator.is_direct()
var ctx
- while (ctx := generator.next())
+ while (ctx := generator.next_attribute())
ctx.msg = msg # enrich with message
if ctx.status != nil # no match, return error because it was direct
ctx.status = nil # remove status to silence output
@@ -1074,7 +1156,7 @@ class Matter_IM
# send the reponse that may need to be chunked if too large to fit in a single UDP message
if !suppress_response
- self.send_write_response(msg, ret)
+ self.send_queue.push(matter.IM_WriteResponse(msg, ret))
end
end
return true
@@ -1123,7 +1205,7 @@ class Matter_IM
var fake_read = matter.ReadRequestMessage()
fake_read.fabric_filtered = false
fake_read.attributes_requests = []
-
+ # build fake read request containing single read requests for all attributes that were changed
for ctx: sub.updates
var p1 = matter.AttributePathIB()
p1.endpoint = ctx.endpoint
@@ -1136,8 +1218,9 @@ class Matter_IM
sub.is_keep_alive = false # sending an actual data update
var generator_or_arr = self.process_read_or_subscribe_request_pull(fake_read, nil #-no msg-#)
+ var event_generator_or_arr = sub.update_event_generator_array()
- var report_data_msg = matter.IM_ReportDataSubscribed_Pull(session._message_handler, session, generator_or_arr, sub)
+ var report_data_msg = matter.IM_ReportDataSubscribed_Pull(session._message_handler, session, generator_or_arr, event_generator_or_arr, sub)
self.send_queue.push(report_data_msg) # push message to queue
self.send_enqueued(session._message_handler) # and send queued messages now
end
@@ -1148,12 +1231,13 @@ class Matter_IM
def send_subscribe_heartbeat(sub)
var session = sub.session
- log(f"MTR: >>: ReportData_Pull send_im start {current_generator.path_in_endpoint}/{current_generator.path_in_cluster}/{current_generator.path_in_attribute}",3)
var ctx
- while not_full && (ctx := current_generator.next()) # 'not_full' must be first to avoid removing an item when we don't want
+ while not_full && (ctx := current_generator.next_attribute()) # 'not_full' must be first to avoid removing an item when we don't want
# log(f">>>: ReportData_Pull {ctx=}", 3)
- var debug = responder.device.debug
var force_log = current_generator.is_direct() || debug
var elt_bytes = responder.im.read_single_attribute_to_bytes(current_generator.get_pi(), ctx, resp.session, force_log) # TODO adapt no_log
if (elt_bytes == nil) continue end # silently ignored, iterate to next
@@ -234,23 +240,75 @@ class Matter_IM_ReportData_Pull : Matter_IM_Message
end
+ # do we have left-overs from events, i.e. self.data_ev is non-empty bytes()
+ if not_full && (self.data_ev != nil) && (size(self.data_ev) > 0)
+ # try to add self.data_ev
+ if (size(data) + size(self.data_ev) > self.MAX_MESSAGE)
+ not_full = false # skip until next iteration
+ data_ev = nil # don't output any value
+ else
+ self.data_ev = nil # we could add it, so remove from left-overs
+ end
+ end
+
+ ########## Events
+ while not_full && (self.event_generator_or_arr != nil)
+ # get the current generator (first element of list or single object)
+ var current_generator = isinstance(self.event_generator_or_arr, list) ? self.event_generator_or_arr[0] : self.event_generator_or_arr
+ # now events
+ var ev
+ while not_full && (ev := current_generator.next_event()) # 'not_full' must be first to avoid removing an item when we don't want
+ # conditional logging
+ if debug && tasmota.loglevel(3)
+ var data_str = ''
+ if (ev.data0 != nil) data_str = " - " + str(ev.data0) end
+ if (ev.data1 != nil) data_str += ", " + str(ev.data1) end
+ if (ev.data2 != nil) data_str += ", " + str(ev.data2) end
+ log(f"MTR: >Read_Event({resp.session.local_session_id:6i}|{ev.event_no:8s}) [{ev.endpoint:02X}]{ev.cluster:04X}/{ev.event_id:02X}{data_str}", 3)
+ end
+ # send bytes
+ var ev_bytes = ev.to_raw_bytes()
+ if (size(data) + size(data_ev) + size(ev_bytes) > self.MAX_MESSAGE)
+ self.data_ev = ev_bytes # save for next iteration
+ not_full = false
+ else
+ data_ev.append(ev_bytes) # append response since we have enough room
+ end
+ end
+
+ # if we are here, then we exhausted the current generator, and we need to move to the next one
+ if not_full
+ if isinstance(self.event_generator_or_arr, list)
+ self.event_generator_or_arr.remove(0) # remove first element
+ if size(self.event_generator_or_arr) == 0
+ self.event_generator_or_arr = nil # empty array so we put nil
+ end
+ else
+ self.event_generator_or_arr = nil # there was a single entry, so replace with nil
+ end
+ end
+
+ end
+
+ ########## Response
# prepare the response
var ret = matter.ReportDataMessage()
ret.subscription_id = self.subscription_id
ret.suppress_response = self.suppress_response
# ret.suppress_response = true
- ret.attribute_reports = [data]
- ret.more_chunked_messages = (self.data != nil) # we got more data to send
+ if (data != nil && size(data) > 0)
+ ret.attribute_reports = [data]
+ end
+ if (data_ev != nil && size(data_ev) > 0)
+ ret.event_reports = [data_ev]
+ end
+ ret.more_chunked_messages = (self.data != nil) || (self.data_ev != nil) # we got more data to send
# print(">>>>> send elements before encode")
var raw_tlv = ret.to_TLV()
- # print(">>>>> send elements before encode 2")
var encoded_tlv = raw_tlv.tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
- # print(">>>>> send elements before encode 3")
resp.encode_frame(encoded_tlv) # payload in cleartext, pre-allocate max buffer
- # print(">>>>> send elements after encode")
resp.encrypt()
- # print(">>>>> send elements after encrypt")
# log(format("MTR: {self.path_in_event_min}} event_no={self.event_no} event={matter.inspect(next_event)})", 3)
+ return next_event
+ end
+ end
+ end
+
+ ################################################################################
+ # event_is_match
+ #
+ # Returns true if the event passed as argument matches the filter
+ # but does not check the event number, because it is filtered out before
+ def event_is_match(next_event)
+ var match = true
+ if (self.path_in_endpoint != nil)
+ match = match && (self.path_in_endpoint == next_event.endpoint)
+ end
+ if (self.path_in_cluster != nil)
+ match = match && (self.path_in_cluster == next_event.cluster)
+ end
+ if (self.path_in_event != nil)
+ match = match && (self.path_in_event == next_event.event_id)
+ end
+ return match
+ end
+end
+matter.EventGenerator = Matter_EventGenerator
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be b/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_PathGenerator.be
similarity index 97%
rename from lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be
rename to lib/libesp32/berry_matter/src/embedded/Matter_Path_1_PathGenerator.be
index b774cfdbb..49be5faac 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_Generator.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Path_1_PathGenerator.be
@@ -1,5 +1,5 @@
#
-# Matter_IM_Path_1.be - suppport for Matter concrete path generator
+# Matter_Path_1_Generator.be - suppport for Matter concrete path generator
#
# Copyright (C) 2023 Stephan Hadinger & Theo Arends
#
@@ -104,11 +104,11 @@ class Matter_PathGenerator
end
################################################################################
- # default_status_error
+ # _default_status_error
#
# Get the default error if the read or write fails.
# This error is only reported if `direct` is true
- def default_status_error()
+ def _default_status_error()
if self.is_direct()
if (!self.endpoint_found) return matter.UNSUPPORTED_ENDPOINT end
if (!self.cluster_found) return matter.UNSUPPORTED_CLUSTER end
@@ -119,15 +119,15 @@ class Matter_PathGenerator
end
################################################################################
- # finished
+ # is_finished
#
# Returns `true` if we have exhausted the generator
- def finished()
+ def is_finished()
return (self.pi != false)
end
################################################################################
- # finished
+ # get_pi
#
# Returns the endpoint object for the last context returned, or `nil` if not found or exhausted
def get_pi()
@@ -135,14 +135,14 @@ class Matter_PathGenerator
end
################################################################################
- # next
+ # next_attribute
#
# Generate next concrete path
# Returns:
# - a path object (that is valid until next call)
# - if 'direct' (concrete path), ctx.status contains the appropriate error code if the path value is not supported
# - `nil` if no more objects
- def next()
+ def next_attribute()
if (self.pi == true) || (self.pi != nil && self.is_direct()) # if we already answered a succesful or missing context for direct request, abort on second call
self.reset()
return nil
@@ -188,7 +188,7 @@ class Matter_PathGenerator
path_concrete.cluster = self.path_in_cluster
path_concrete.attribute = self.path_in_attribute
path_concrete.fabric_filtered = self.path_in_fabric_filtered
- path_concrete.status = self.default_status_error()
+ path_concrete.status = self._default_status_error()
self.pi = true # next call will trigger Generator exhausted
# log(f">>>: PathGenerator next path_concrete:{path_concrete} direct", 3)
return path_concrete
@@ -298,7 +298,7 @@ var gen = matter.PathGenerator(matter_device)
def gen_path_dump(endpoint, cluster, attribute)
gen.start(endpoint, cluster, attribute)
var cp
- while (cp := gen.next())
+ while (cp := gen.next_attribute())
print(cp)
end
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
index 6c2f19160..32d223593 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_0.be
@@ -183,36 +183,12 @@ class Matter_Plugin
#############################################################
# generate a new event
#
- def publish_event(cluster, event, priority, data)
- var event_ib = matter.EventDataIB()
- var event_path = matter.EventPathIB()
- event_path.endpoint = self.endpoint
- event_path.cluster = cluster
- event_path.event = event
- event_ib.path = event_path
- event_ib.priority = priority
- event_ib.event_number = self.device.events.get_next_event_no()
- event_ib.epoch_timestamp = tasmota.rtc('utc')
- if (event_ib.epoch_timestamp < 1700000000) event_ib.epoch_timestamp = nil end # no valid time
- event_ib.data = data
- if tasmota.loglevel(3)
- var data_str = str(event_ib.data)
- if (cluster == 0x0028) && (event == 0x00)
- # put the software version in a readable format
- var val = event_ib.data.val
- data_str = format("%i.%i.%i.%i", (val >> 24) & 0xFF, (val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
- end
- var priority_str = (priority == 2) ? "CRIT " : (priority == 1) ? "INFO " : "DEBUG "
- var event_name = matter.get_event_name(cluster, event)
- event_name = (event_name != nil) ? "(" + event_name + ") " : ""
- log(f"MTR: +Add_Event ({priority_str}{event_ib.event_number:8s}) [{event_path.endpoint:02X}]{event_path.cluster:04X}/{event_path.event:02X} {event_name}- {data_str}", 2)
- end
- if tasmota.loglevel(4)
- log(f"MTR: Publishing event {event_ib}", 4)
- end
-
- self.device.events.queue_event(event_ib)
+ def publish_event(cluster, event_id, priority, data0, data1, data2)
+ self.device.events.publish_event(self.endpoint, cluster, event_id, true #-urgent-#, priority, data0, data1, data2)
end
+ # def publish_event_non_urgent(cluster, event, priority, data0, data1, data2)
+ # self.device.events.publish_event(self.endpoint, cluster, event, false #-non_urgent-#, priority, data0, data1, data2)
+ # end
#- testing
var root = matter_device.plugins[0]
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
index a01e7bcd2..1dc5b0a6a 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
@@ -49,7 +49,6 @@ class Matter_Plugin_Root : Matter_Plugin
# Constructor
def init(device, endpoint, config)
super(self).init(device, endpoint, config)
-
self.publish_event(0x0028, 0x00, matter.EVENT_CRITICAL, matter.TLV.Matter_TLV_item().set(matter.TLV.U4, tasmota.version())) # Event StartUp - Software Version
self.publish_event(0x0033, 0x03, matter.EVENT_CRITICAL, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1)) # Event BootReason - PowerOnReboot - TODO if we need to refine
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 4576ebc4d..56c53fe18 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -313,6 +313,7 @@ class Matter_Device
def every_second()
self.sessions.every_second()
self.message_handler.every_second()
+ self.events.every_second() # periodically remove bytes() representation of events
if self.commissioning_open != nil && tasmota.time_reached(self.commissioning_open) # timeout reached, close provisioning
self.commissioning_open = nil
end
@@ -321,7 +322,6 @@ class Matter_Device
#############################################################
# dispatch every 250ms to all plugins
def every_250ms()
- self.message_handler.every_250ms()
# call read_sensors if needed
self.read_sensors_scheduler()
# call all plugins, use a manual loop to avoid creating a new object
@@ -380,9 +380,11 @@ class Matter_Device
end
#############################################################
+ # dispatch every 50ms
# ticks
def every_50ms()
self.tick += 1
+ self.message_handler.every_50ms()
end
#############################################################
@@ -535,7 +537,7 @@ class Matter_Device
var direct = path_generator.is_direct()
var concrete_path
- while ((concrete_path := path_generator.next()) != nil)
+ while ((concrete_path := path_generator.next_attribute()) != nil)
var finished = cb(path_generator.get_pi(), concrete_path) # call the callback with the plugin and the context
end
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
index e5659f35c..84a9fb13a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
@@ -6,187 +6,6 @@
extern const bclass be_class_Matter_EventHandler;
-/********************************************************************
-** Solidified function: queue_event
-********************************************************************/
-extern const bclass be_class_Matter_EventHandler;
-be_local_closure(class_Matter_EventHandler_queue_event, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_EventHandler,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(EventQueued),
- /* K2 */ be_nested_str_weak(priority),
- /* K3 */ be_nested_str_weak(queue_debug),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(EVENT_QUEUE_SIZE_MAX),
- /* K6 */ be_nested_str_weak(pop),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(EVENT_DEBUG),
- /* K9 */ be_nested_str_weak(queue_info),
- /* K10 */ be_nested_str_weak(EVENT_INFO),
- /* K11 */ be_nested_str_weak(queue_critical),
- }),
- be_str_weak(queue_event),
- &be_const_str_solidified,
- ( &(const binstruction[58]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x880C0502, // 0004 GETMBR R3 R2 K2
- 0x88100103, // 0005 GETMBR R4 R0 K3
- 0x8C100904, // 0006 GETMET R4 R4 K4
- 0x5C180400, // 0007 MOVE R6 R2
- 0x7C100400, // 0008 CALL R4 2
- 0x6010000C, // 0009 GETGBL R4 G12
- 0x88140103, // 000A GETMBR R5 R0 K3
- 0x7C100200, // 000B CALL R4 1
- 0x88140105, // 000C GETMBR R5 R0 K5
- 0x24100805, // 000D GT R4 R4 R5
- 0x78120029, // 000E JMPF R4 #0039
- 0x88100103, // 000F GETMBR R4 R0 K3
- 0x8C100906, // 0010 GETMET R4 R4 K6
- 0x58180007, // 0011 LDCONST R6 K7
- 0x7C100400, // 0012 CALL R4 2
- 0x88140902, // 0013 GETMBR R5 R4 K2
- 0xB81A0000, // 0014 GETNGBL R6 K0
- 0x88180D08, // 0015 GETMBR R6 R6 K8
- 0x24140A06, // 0016 GT R5 R5 R6
- 0x78160020, // 0017 JMPF R5 #0039
- 0x88140109, // 0018 GETMBR R5 R0 K9
- 0x8C140B04, // 0019 GETMET R5 R5 K4
- 0x5C1C0800, // 001A MOVE R7 R4
- 0x7C140400, // 001B CALL R5 2
- 0x6014000C, // 001C GETGBL R5 G12
- 0x88180109, // 001D GETMBR R6 R0 K9
- 0x7C140200, // 001E CALL R5 1
- 0x88180105, // 001F GETMBR R6 R0 K5
- 0x24140A06, // 0020 GT R5 R5 R6
- 0x78160016, // 0021 JMPF R5 #0039
- 0x88140109, // 0022 GETMBR R5 R0 K9
- 0x8C140B06, // 0023 GETMET R5 R5 K6
- 0x581C0007, // 0024 LDCONST R7 K7
- 0x7C140400, // 0025 CALL R5 2
- 0x88180B02, // 0026 GETMBR R6 R5 K2
- 0xB81E0000, // 0027 GETNGBL R7 K0
- 0x881C0F0A, // 0028 GETMBR R7 R7 K10
- 0x24180C07, // 0029 GT R6 R6 R7
- 0x781A000D, // 002A JMPF R6 #0039
- 0x8818010B, // 002B GETMBR R6 R0 K11
- 0x8C180D04, // 002C GETMET R6 R6 K4
- 0x5C200A00, // 002D MOVE R8 R5
- 0x7C180400, // 002E CALL R6 2
- 0x6018000C, // 002F GETGBL R6 G12
- 0x881C010B, // 0030 GETMBR R7 R0 K11
- 0x7C180200, // 0031 CALL R6 1
- 0x881C0105, // 0032 GETMBR R7 R0 K5
- 0x24180C07, // 0033 GT R6 R6 R7
- 0x781A0003, // 0034 JMPF R6 #0039
- 0x8818010B, // 0035 GETMBR R6 R0 K11
- 0x8C180D06, // 0036 GETMET R6 R6 K6
- 0x58200007, // 0037 LDCONST R8 K7
- 0x7C180400, // 0038 CALL R6 2
- 0x80000000, // 0039 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_EventHandler;
-be_local_closure(class_Matter_EventHandler_init, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_EventHandler,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(queue_debug),
- /* K2 */ be_nested_str_weak(queue_info),
- /* K3 */ be_nested_str_weak(queue_critical),
- /* K4 */ be_nested_str_weak(load_event_no_persisted),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x90020202, // 0003 SETMBR R0 K1 R2
- 0x60080012, // 0004 GETGBL R2 G18
- 0x7C080000, // 0005 CALL R2 0
- 0x90020402, // 0006 SETMBR R0 K2 R2
- 0x60080012, // 0007 GETGBL R2 G18
- 0x7C080000, // 0008 CALL R2 0
- 0x90020602, // 0009 SETMBR R0 K3 R2
- 0x8C080104, // 000A GETMET R2 R0 K4
- 0x7C080200, // 000B CALL R2 1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_next_event_no
-********************************************************************/
-extern const bclass be_class_Matter_EventHandler;
-be_local_closure(class_Matter_EventHandler_get_next_event_no, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_EventHandler,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(counter_event_no),
- /* K1 */ be_nested_str_weak(add),
- /* K2 */ be_const_int(1),
- /* K3 */ be_nested_str_weak(counter_event_no_persisted),
- /* K4 */ be_nested_str_weak(load_event_no_persisted),
- }),
- be_str_weak(get_next_event_no),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x580C0002, // 0002 LDCONST R3 K2
- 0x7C040400, // 0003 CALL R1 2
- 0x90020001, // 0004 SETMBR R0 K0 R1
- 0x88040100, // 0005 GETMBR R1 R0 K0
- 0x88080103, // 0006 GETMBR R2 R0 K3
- 0x28040202, // 0007 GE R1 R1 R2
- 0x78060001, // 0008 JMPF R1 #000B
- 0x8C040104, // 0009 GETMET R1 R0 K4
- 0x7C040200, // 000A CALL R1 1
- 0x88040100, // 000B GETMBR R1 R0 K0
- 0x80040200, // 000C RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: dump
********************************************************************/
@@ -298,6 +117,77 @@ be_local_closure(class_Matter_EventHandler_dump, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: get_last_event_no
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_get_last_event_no, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(counter_event_no),
+ }),
+ be_str_weak(get_last_event_no),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_next_event_no
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_get_next_event_no, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(counter_event_no),
+ /* K1 */ be_nested_str_weak(add),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(counter_event_no_persisted),
+ /* K4 */ be_nested_str_weak(load_event_no_persisted),
+ }),
+ be_str_weak(get_next_event_no),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x580C0002, // 0002 LDCONST R3 K2
+ 0x7C040400, // 0003 CALL R1 2
+ 0x90020001, // 0004 SETMBR R0 K0 R1
+ 0x88040100, // 0005 GETMBR R1 R0 K0
+ 0x88080103, // 0006 GETMBR R2 R0 K3
+ 0x28040202, // 0007 GE R1 R1 R2
+ 0x78060001, // 0008 JMPF R1 #000B
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x88040100, // 000B GETMBR R1 R0 K0
+ 0x80040200, // 000C RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: load_event_no_persisted
********************************************************************/
@@ -315,7 +205,7 @@ be_local_closure(class_Matter_EventHandler_load_event_no_persisted, /* name */
( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(persist),
/* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(EVENT_NO_FILENAME),
+ /* K2 */ be_nested_str_weak(EVENT_NO_KEY),
/* K3 */ be_nested_str_weak(0),
/* K4 */ be_nested_str_weak(counter_event_no),
/* K5 */ be_nested_str_weak(int64),
@@ -362,28 +252,539 @@ be_local_closure(class_Matter_EventHandler_load_event_no_persisted, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: queue_event
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_queue_event, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(priority),
+ /* K1 */ be_nested_str_weak(queue_debug),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(EVENT_QUEUE_SIZE_MAX),
+ /* K4 */ be_nested_str_weak(pop),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(EVENT_DEBUG),
+ /* K8 */ be_nested_str_weak(queue_info),
+ /* K9 */ be_nested_str_weak(EVENT_INFO),
+ /* K10 */ be_nested_str_weak(queue_critical),
+ }),
+ be_str_weak(queue_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[54]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x5C140200, // 0003 MOVE R5 R1
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0x600C000C, // 0005 GETGBL R3 G12
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x88100103, // 0008 GETMBR R4 R0 K3
+ 0x240C0604, // 0009 GT R3 R3 R4
+ 0x780E0029, // 000A JMPF R3 #0035
+ 0x880C0101, // 000B GETMBR R3 R0 K1
+ 0x8C0C0704, // 000C GETMET R3 R3 K4
+ 0x58140005, // 000D LDCONST R5 K5
+ 0x7C0C0400, // 000E CALL R3 2
+ 0x88100700, // 000F GETMBR R4 R3 K0
+ 0xB8160C00, // 0010 GETNGBL R5 K6
+ 0x88140B07, // 0011 GETMBR R5 R5 K7
+ 0x24100805, // 0012 GT R4 R4 R5
+ 0x78120020, // 0013 JMPF R4 #0035
+ 0x88100108, // 0014 GETMBR R4 R0 K8
+ 0x8C100902, // 0015 GETMET R4 R4 K2
+ 0x5C180600, // 0016 MOVE R6 R3
+ 0x7C100400, // 0017 CALL R4 2
+ 0x6010000C, // 0018 GETGBL R4 G12
+ 0x88140108, // 0019 GETMBR R5 R0 K8
+ 0x7C100200, // 001A CALL R4 1
+ 0x88140103, // 001B GETMBR R5 R0 K3
+ 0x24100805, // 001C GT R4 R4 R5
+ 0x78120016, // 001D JMPF R4 #0035
+ 0x88100108, // 001E GETMBR R4 R0 K8
+ 0x8C100904, // 001F GETMET R4 R4 K4
+ 0x58180005, // 0020 LDCONST R6 K5
+ 0x7C100400, // 0021 CALL R4 2
+ 0x88140900, // 0022 GETMBR R5 R4 K0
+ 0xB81A0C00, // 0023 GETNGBL R6 K6
+ 0x88180D09, // 0024 GETMBR R6 R6 K9
+ 0x24140A06, // 0025 GT R5 R5 R6
+ 0x7816000D, // 0026 JMPF R5 #0035
+ 0x8814010A, // 0027 GETMBR R5 R0 K10
+ 0x8C140B02, // 0028 GETMET R5 R5 K2
+ 0x5C1C0800, // 0029 MOVE R7 R4
+ 0x7C140400, // 002A CALL R5 2
+ 0x6014000C, // 002B GETGBL R5 G12
+ 0x8818010A, // 002C GETMBR R6 R0 K10
+ 0x7C140200, // 002D CALL R5 1
+ 0x88180103, // 002E GETMBR R6 R0 K3
+ 0x24140A06, // 002F GT R5 R5 R6
+ 0x78160003, // 0030 JMPF R5 #0035
+ 0x8814010A, // 0031 GETMBR R5 R0 K10
+ 0x8C140B04, // 0032 GETMET R5 R5 K4
+ 0x581C0005, // 0033 LDCONST R7 K5
+ 0x7C140400, // 0034 CALL R5 2
+ 0x80000000, // 0035 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_every_second, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(compact),
+ }),
+ be_str_weak(every_second),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x80000000, // 0002 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(queue_debug),
+ /* K2 */ be_nested_str_weak(queue_info),
+ /* K3 */ be_nested_str_weak(queue_critical),
+ /* K4 */ be_nested_str_weak(load_event_no_persisted),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x60080012, // 0004 GETGBL R2 G18
+ 0x7C080000, // 0005 CALL R2 0
+ 0x90020402, // 0006 SETMBR R0 K2 R2
+ 0x60080012, // 0007 GETGBL R2 G18
+ 0x7C080000, // 0008 CALL R2 0
+ 0x90020602, // 0009 SETMBR R0 K3 R2
+ 0x8C080104, // 000A GETMET R2 R0 K4
+ 0x7C080200, // 000B CALL R2 1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_min_no
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_find_min_no, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 7, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_int(1),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(event_no),
+ }),
+ be_str_weak(find_in_queue),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x600C000C, // 0000 GETGBL R3 G12
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x040C0700, // 0003 SUB R3 R3 K0
+ 0x28100701, // 0004 GE R4 R3 K1
+ 0x78120011, // 0005 JMPF R4 #0018
+ 0x94100203, // 0006 GETIDX R4 R1 R3
+ 0x4C140000, // 0007 LDNIL R5
+ 0x20140405, // 0008 NE R5 R2 R5
+ 0x78160003, // 0009 JMPF R5 #000E
+ 0x88140902, // 000A GETMBR R5 R4 K2
+ 0x18140A02, // 000B LE R5 R5 R2
+ 0x78160000, // 000C JMPF R5 #000E
+ 0x80040000, // 000D RET 1 R0
+ 0x4C140000, // 000E LDNIL R5
+ 0x1C140005, // 000F EQ R5 R0 R5
+ 0x74160003, // 0010 JMPT R5 #0015
+ 0x88140902, // 0011 GETMBR R5 R4 K2
+ 0x88180102, // 0012 GETMBR R6 R0 K2
+ 0x14140A06, // 0013 LT R5 R5 R6
+ 0x78160000, // 0014 JMPF R5 #0016
+ 0x5C000800, // 0015 MOVE R0 R4
+ 0x040C0700, // 0016 SUB R3 R3 K0
+ 0x7001FFEB, // 0017 JMP #0004
+ 0x80040000, // 0018 RET 1 R0
+ })
+ ),
+ &be_class_Matter_EventHandler,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(counter_event_no),
+ /* K1 */ be_nested_str_weak(queue_debug),
+ /* K2 */ be_nested_str_weak(queue_info),
+ /* K3 */ be_nested_str_weak(queue_critical),
+ }),
+ be_str_weak(find_min_no),
+ &be_const_str_solidified,
+ ( &(const binstruction[29]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0004, // 0002 JMPF R2 #0008
+ 0x88080100, // 0003 GETMBR R2 R0 K0
+ 0x28080202, // 0004 GE R2 R1 R2
+ 0x780A0001, // 0005 JMPF R2 #0008
+ 0x4C080000, // 0006 LDNIL R2
+ 0x80040400, // 0007 RET 1 R2
+ 0x84080000, // 0008 CLOSURE R2 P0
+ 0x4C0C0000, // 0009 LDNIL R3
+ 0x5C100400, // 000A MOVE R4 R2
+ 0x5C140600, // 000B MOVE R5 R3
+ 0x88180101, // 000C GETMBR R6 R0 K1
+ 0x5C1C0200, // 000D MOVE R7 R1
+ 0x7C100600, // 000E CALL R4 3
+ 0x5C0C0800, // 000F MOVE R3 R4
+ 0x5C100400, // 0010 MOVE R4 R2
+ 0x5C140600, // 0011 MOVE R5 R3
+ 0x88180102, // 0012 GETMBR R6 R0 K2
+ 0x5C1C0200, // 0013 MOVE R7 R1
+ 0x7C100600, // 0014 CALL R4 3
+ 0x5C0C0800, // 0015 MOVE R3 R4
+ 0x5C100400, // 0016 MOVE R4 R2
+ 0x5C140600, // 0017 MOVE R5 R3
+ 0x88180103, // 0018 GETMBR R6 R0 K3
+ 0x5C1C0200, // 0019 MOVE R7 R1
+ 0x7C100600, // 001A CALL R4 3
+ 0x5C0C0800, // 001B MOVE R3 R4
+ 0x80040600, // 001C RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: publish_event
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_publish_event, /* name */
+ be_nested_proto(
+ 23, /* nstack */
+ 9, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventHandler,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(EventQueued),
+ /* K2 */ be_nested_str_weak(get_next_event_no),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(loglevel),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(_X2C_X20),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(val),
+ /* K10 */ be_nested_str_weak(_X25i_X2E_X25i_X2E_X25i_X2E_X25i),
+ /* K11 */ be_const_int(2),
+ /* K12 */ be_nested_str_weak(CRIT_X20_X20),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(INFO_X20_X20),
+ /* K15 */ be_nested_str_weak(DEBUG_X20),
+ /* K16 */ be_nested_str_weak(get_event_name),
+ /* K17 */ be_nested_str_weak(_X28),
+ /* K18 */ be_nested_str_weak(_X29_X20),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20_X2BAdd_Event_X20_X28_X25s_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X20_X25s_X2D_X20_X25s),
+ /* K21 */ be_nested_str_weak(event_no),
+ /* K22 */ be_nested_str_weak(endpoint),
+ /* K23 */ be_nested_str_weak(cluster),
+ /* K24 */ be_nested_str_weak(event_id),
+ /* K25 */ be_nested_str_weak(queue_event),
+ /* K26 */ be_nested_str_weak(device),
+ /* K27 */ be_nested_str_weak(message_handler),
+ /* K28 */ be_nested_str_weak(im),
+ /* K29 */ be_nested_str_weak(subs_shop),
+ /* K30 */ be_nested_str_weak(event_published),
+ }),
+ be_str_weak(publish_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[112]) { /* code */
+ 0xB8260000, // 0000 GETNGBL R9 K0
+ 0x8C241301, // 0001 GETMET R9 R9 K1
+ 0x8C2C0102, // 0002 GETMET R11 R0 K2
+ 0x7C2C0200, // 0003 CALL R11 1
+ 0x5C300200, // 0004 MOVE R12 R1
+ 0x5C340400, // 0005 MOVE R13 R2
+ 0x5C380600, // 0006 MOVE R14 R3
+ 0x5C3C0800, // 0007 MOVE R15 R4
+ 0x5C400A00, // 0008 MOVE R16 R5
+ 0x5C440C00, // 0009 MOVE R17 R6
+ 0x5C480E00, // 000A MOVE R18 R7
+ 0x5C4C1000, // 000B MOVE R19 R8
+ 0x7C241400, // 000C CALL R9 10
+ 0xB82A0600, // 000D GETNGBL R10 K3
+ 0x8C281504, // 000E GETMET R10 R10 K4
+ 0x58300005, // 000F LDCONST R12 K5
+ 0x7C280400, // 0010 CALL R10 2
+ 0x782A0052, // 0011 JMPF R10 #0065
+ 0x58280006, // 0012 LDCONST R10 K6
+ 0x4C2C0000, // 0013 LDNIL R11
+ 0x202C0C0B, // 0014 NE R11 R6 R11
+ 0x782E0003, // 0015 JMPF R11 #001A
+ 0x602C0008, // 0016 GETGBL R11 G8
+ 0x5C300C00, // 0017 MOVE R12 R6
+ 0x7C2C0200, // 0018 CALL R11 1
+ 0x5C281600, // 0019 MOVE R10 R11
+ 0x4C2C0000, // 001A LDNIL R11
+ 0x202C0E0B, // 001B NE R11 R7 R11
+ 0x782E0004, // 001C JMPF R11 #0022
+ 0x602C0008, // 001D GETGBL R11 G8
+ 0x5C300E00, // 001E MOVE R12 R7
+ 0x7C2C0200, // 001F CALL R11 1
+ 0x002E0E0B, // 0020 ADD R11 K7 R11
+ 0x0028140B, // 0021 ADD R10 R10 R11
+ 0x4C2C0000, // 0022 LDNIL R11
+ 0x202C100B, // 0023 NE R11 R8 R11
+ 0x782E0004, // 0024 JMPF R11 #002A
+ 0x602C0008, // 0025 GETGBL R11 G8
+ 0x5C301000, // 0026 MOVE R12 R8
+ 0x7C2C0200, // 0027 CALL R11 1
+ 0x002E0E0B, // 0028 ADD R11 K7 R11
+ 0x0028140B, // 0029 ADD R10 R10 R11
+ 0x542E0027, // 002A LDINT R11 40
+ 0x1C2C040B, // 002B EQ R11 R2 R11
+ 0x782E0014, // 002C JMPF R11 #0042
+ 0x1C2C0708, // 002D EQ R11 R3 K8
+ 0x782E0012, // 002E JMPF R11 #0042
+ 0x882C0D09, // 002F GETMBR R11 R6 K9
+ 0x60300018, // 0030 GETGBL R12 G24
+ 0x5834000A, // 0031 LDCONST R13 K10
+ 0x543A0017, // 0032 LDINT R14 24
+ 0x3C38160E, // 0033 SHR R14 R11 R14
+ 0x543E00FE, // 0034 LDINT R15 255
+ 0x2C381C0F, // 0035 AND R14 R14 R15
+ 0x543E000F, // 0036 LDINT R15 16
+ 0x3C3C160F, // 0037 SHR R15 R11 R15
+ 0x544200FE, // 0038 LDINT R16 255
+ 0x2C3C1E10, // 0039 AND R15 R15 R16
+ 0x54420007, // 003A LDINT R16 8
+ 0x3C401610, // 003B SHR R16 R11 R16
+ 0x544600FE, // 003C LDINT R17 255
+ 0x2C402011, // 003D AND R16 R16 R17
+ 0x544600FE, // 003E LDINT R17 255
+ 0x2C441611, // 003F AND R17 R11 R17
+ 0x7C300A00, // 0040 CALL R12 5
+ 0x5C281800, // 0041 MOVE R10 R12
+ 0x1C2C0B0B, // 0042 EQ R11 R5 K11
+ 0x782E0001, // 0043 JMPF R11 #0046
+ 0x582C000C, // 0044 LDCONST R11 K12
+ 0x70020004, // 0045 JMP #004B
+ 0x1C2C0B0D, // 0046 EQ R11 R5 K13
+ 0x782E0001, // 0047 JMPF R11 #004A
+ 0x582C000E, // 0048 LDCONST R11 K14
+ 0x70020000, // 0049 JMP #004B
+ 0x582C000F, // 004A LDCONST R11 K15
+ 0xB8320000, // 004B GETNGBL R12 K0
+ 0x8C301910, // 004C GETMET R12 R12 K16
+ 0x5C380400, // 004D MOVE R14 R2
+ 0x5C3C0600, // 004E MOVE R15 R3
+ 0x7C300600, // 004F CALL R12 3
+ 0x4C340000, // 0050 LDNIL R13
+ 0x2034180D, // 0051 NE R13 R12 R13
+ 0x78360002, // 0052 JMPF R13 #0056
+ 0x0036220C, // 0053 ADD R13 K17 R12
+ 0x00341B12, // 0054 ADD R13 R13 K18
+ 0x70020000, // 0055 JMP #0057
+ 0x58340006, // 0056 LDCONST R13 K6
+ 0x5C301A00, // 0057 MOVE R12 R13
+ 0xB8362600, // 0058 GETNGBL R13 K19
+ 0x60380018, // 0059 GETGBL R14 G24
+ 0x583C0014, // 005A LDCONST R15 K20
+ 0x5C401600, // 005B MOVE R16 R11
+ 0x88441315, // 005C GETMBR R17 R9 K21
+ 0x88481316, // 005D GETMBR R18 R9 K22
+ 0x884C1317, // 005E GETMBR R19 R9 K23
+ 0x88501318, // 005F GETMBR R20 R9 K24
+ 0x5C541800, // 0060 MOVE R21 R12
+ 0x5C581400, // 0061 MOVE R22 R10
+ 0x7C381000, // 0062 CALL R14 8
+ 0x583C000B, // 0063 LDCONST R15 K11
+ 0x7C340400, // 0064 CALL R13 2
+ 0x8C280119, // 0065 GETMET R10 R0 K25
+ 0x5C301200, // 0066 MOVE R12 R9
+ 0x7C280400, // 0067 CALL R10 2
+ 0x8828011A, // 0068 GETMBR R10 R0 K26
+ 0x8828151B, // 0069 GETMBR R10 R10 K27
+ 0x8828151C, // 006A GETMBR R10 R10 K28
+ 0x8828151D, // 006B GETMBR R10 R10 K29
+ 0x8C28151E, // 006C GETMET R10 R10 K30
+ 0x5C301200, // 006D MOVE R12 R9
+ 0x7C280400, // 006E CALL R10 2
+ 0x80000000, // 006F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compact
+********************************************************************/
+extern const bclass be_class_Matter_EventHandler;
+be_local_closure(class_Matter_EventHandler_compact, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(compact),
+ /* K2 */ be_const_int(1),
+ }),
+ be_str_weak(compact_queue),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C080200, // 0003 CALL R2 1
+ 0x14080202, // 0004 LT R2 R1 R2
+ 0x780A0004, // 0005 JMPF R2 #000B
+ 0x94080001, // 0006 GETIDX R2 R0 R1
+ 0x8C080501, // 0007 GETMET R2 R2 K1
+ 0x7C080200, // 0008 CALL R2 1
+ 0x00040302, // 0009 ADD R1 R1 K2
+ 0x7001FFF5, // 000A JMP #0001
+ 0x80000000, // 000B RET 0
+ })
+ ),
+ &be_class_Matter_EventHandler,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(queue_debug),
+ /* K1 */ be_nested_str_weak(queue_info),
+ /* K2 */ be_nested_str_weak(queue_critical),
+ }),
+ be_str_weak(compact),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x84040000, // 0000 CLOSURE R1 P0
+ 0x5C080200, // 0001 MOVE R2 R1
+ 0x880C0100, // 0002 GETMBR R3 R0 K0
+ 0x7C080200, // 0003 CALL R2 1
+ 0x5C080200, // 0004 MOVE R2 R1
+ 0x880C0101, // 0005 GETMBR R3 R0 K1
+ 0x7C080200, // 0006 CALL R2 1
+ 0x5C080200, // 0007 MOVE R2 R1
+ 0x880C0102, // 0008 GETMBR R3 R0 K2
+ 0x7C080200, // 0009 CALL R2 1
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_EventHandler
********************************************************************/
be_local_class(Matter_EventHandler,
6,
NULL,
- be_nested_map(14,
+ be_nested_map(19,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(EVENT_NO_INCR, -1), be_const_int(1000) },
{ be_const_key_weak(queue_info, -1), be_const_var(1) },
- { be_const_key_weak(queue_critical, 11), be_const_var(2) },
- { be_const_key_weak(queue_event, -1), be_const_closure(class_Matter_EventHandler_queue_event_closure) },
- { be_const_key_weak(counter_event_no_persisted, 6), be_const_var(5) },
+ { be_const_key_weak(dump, 4), be_const_closure(class_Matter_EventHandler_dump_closure) },
+ { be_const_key_weak(compact, -1), be_const_closure(class_Matter_EventHandler_compact_closure) },
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_EventHandler_init_closure) },
- { be_const_key_weak(get_next_event_no, -1), be_const_closure(class_Matter_EventHandler_get_next_event_no_closure) },
- { be_const_key_weak(dump, -1), be_const_closure(class_Matter_EventHandler_dump_closure) },
- { be_const_key_weak(queue_debug, 10), be_const_var(0) },
- { be_const_key_weak(EVENT_NO_FILENAME, -1), be_nested_str_weak(_matter_event_no) },
- { be_const_key_weak(counter_event_no, -1), be_const_var(4) },
+ { be_const_key_weak(EVENT_NO_INCR, -1), be_const_int(1000) },
+ { be_const_key_weak(load_event_no_persisted, 2), be_const_closure(class_Matter_EventHandler_load_event_no_persisted_closure) },
+ { be_const_key_weak(EVENT_NO_KEY, -1), be_nested_str_weak(_matter_event_no) },
{ be_const_key_weak(EVENT_QUEUE_SIZE_MAX, -1), be_const_int(10) },
- { be_const_key_weak(load_event_no_persisted, -1), be_const_closure(class_Matter_EventHandler_load_event_no_persisted_closure) },
- { be_const_key_weak(device, -1), be_const_var(3) },
+ { be_const_key_weak(counter_event_no, -1), be_const_var(4) },
+ { be_const_key_weak(queue_debug, -1), be_const_var(0) },
+ { be_const_key_weak(publish_event, -1), be_const_closure(class_Matter_EventHandler_publish_event_closure) },
+ { be_const_key_weak(queue_event, -1), be_const_closure(class_Matter_EventHandler_queue_event_closure) },
+ { be_const_key_weak(get_last_event_no, 18), be_const_closure(class_Matter_EventHandler_get_last_event_no_closure) },
+ { be_const_key_weak(get_next_event_no, 3), be_const_closure(class_Matter_EventHandler_get_next_event_no_closure) },
+ { be_const_key_weak(counter_event_no_persisted, 16), be_const_var(5) },
+ { be_const_key_weak(device, 10), be_const_var(3) },
+ { be_const_key_weak(find_min_no, -1), be_const_closure(class_Matter_EventHandler_find_min_no_closure) },
+ { be_const_key_weak(queue_critical, -1), be_const_var(2) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_EventHandler_every_second_closure) },
})),
be_str_weak(Matter_EventHandler)
);
@@ -391,78 +792,227 @@ be_local_class(Matter_EventHandler,
extern const bclass be_class_Matter_EventQueued;
/********************************************************************
-** Solidified function: init
+** Solidified function: compact
********************************************************************/
extern const bclass be_class_Matter_EventQueued;
-be_local_closure(class_Matter_EventQueued_init, /* name */
+be_local_closure(class_Matter_EventQueued_compact, /* name */
be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
+ 2, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_EventQueued,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(path),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(raw_tlv),
+ }),
+ be_str_weak(compact),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x80000000, // 0002 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: to_raw_bytes
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_to_raw_bytes, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[28]) { /* constants */
+ /* K0 */ be_nested_str_weak(raw_tlv),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(EventReportIB),
+ /* K3 */ be_nested_str_weak(EventDataIB),
+ /* K4 */ be_nested_str_weak(event_data),
+ /* K5 */ be_nested_str_weak(EventPathIB),
+ /* K6 */ be_nested_str_weak(endpoint),
+ /* K7 */ be_nested_str_weak(cluster),
+ /* K8 */ be_nested_str_weak(event),
+ /* K9 */ be_nested_str_weak(event_id),
+ /* K10 */ be_nested_str_weak(is_urgent),
+ /* K11 */ be_nested_str_weak(path),
+ /* K12 */ be_nested_str_weak(priority),
+ /* K13 */ be_nested_str_weak(event_number),
+ /* K14 */ be_nested_str_weak(event_no),
+ /* K15 */ be_nested_str_weak(epoch_timestamp),
+ /* K16 */ be_nested_str_weak(data),
+ /* K17 */ be_nested_str_weak(TLV),
+ /* K18 */ be_nested_str_weak(Matter_TLV_struct),
+ /* K19 */ be_nested_str_weak(data0),
+ /* K20 */ be_nested_str_weak(add_obj),
+ /* K21 */ be_const_int(0),
+ /* K22 */ be_nested_str_weak(data1),
+ /* K23 */ be_const_int(1),
+ /* K24 */ be_nested_str_weak(data2),
+ /* K25 */ be_const_int(2),
+ /* K26 */ be_nested_str_weak(to_TLV),
+ /* K27 */ be_nested_str_weak(tlv2raw),
+ }),
+ be_str_weak(to_raw_bytes),
+ &be_const_str_solidified,
+ ( &(const binstruction[68]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x7806003D, // 0003 JMPF R1 #0042
+ 0xB8060200, // 0004 GETNGBL R1 K1
+ 0x8C040302, // 0005 GETMET R1 R1 K2
+ 0x7C040200, // 0006 CALL R1 1
+ 0xB80A0200, // 0007 GETNGBL R2 K1
+ 0x8C080503, // 0008 GETMET R2 R2 K3
+ 0x7C080200, // 0009 CALL R2 1
+ 0x90060802, // 000A SETMBR R1 K4 R2
+ 0xB80E0200, // 000B GETNGBL R3 K1
+ 0x8C0C0705, // 000C GETMET R3 R3 K5
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x88100106, // 000E GETMBR R4 R0 K6
+ 0x900E0C04, // 000F SETMBR R3 K6 R4
+ 0x88100107, // 0010 GETMBR R4 R0 K7
+ 0x900E0E04, // 0011 SETMBR R3 K7 R4
+ 0x88100109, // 0012 GETMBR R4 R0 K9
+ 0x900E1004, // 0013 SETMBR R3 K8 R4
+ 0x8810010A, // 0014 GETMBR R4 R0 K10
+ 0x900E1404, // 0015 SETMBR R3 K10 R4
+ 0x900A1603, // 0016 SETMBR R2 K11 R3
+ 0x8810010C, // 0017 GETMBR R4 R0 K12
+ 0x900A1804, // 0018 SETMBR R2 K12 R4
+ 0x8810010E, // 0019 GETMBR R4 R0 K14
+ 0x900A1A04, // 001A SETMBR R2 K13 R4
+ 0x8810010F, // 001B GETMBR R4 R0 K15
+ 0x900A1E04, // 001C SETMBR R2 K15 R4
+ 0xB8120200, // 001D GETNGBL R4 K1
+ 0x88100911, // 001E GETMBR R4 R4 K17
+ 0x8C100912, // 001F GETMET R4 R4 K18
+ 0x7C100200, // 0020 CALL R4 1
+ 0x900A2004, // 0021 SETMBR R2 K16 R4
+ 0x88100113, // 0022 GETMBR R4 R0 K19
+ 0x4C140000, // 0023 LDNIL R5
+ 0x20100805, // 0024 NE R4 R4 R5
+ 0x78120004, // 0025 JMPF R4 #002B
+ 0x88100510, // 0026 GETMBR R4 R2 K16
+ 0x8C100914, // 0027 GETMET R4 R4 K20
+ 0x58180015, // 0028 LDCONST R6 K21
+ 0x881C0113, // 0029 GETMBR R7 R0 K19
+ 0x7C100600, // 002A CALL R4 3
+ 0x88100116, // 002B GETMBR R4 R0 K22
+ 0x4C140000, // 002C LDNIL R5
+ 0x20100805, // 002D NE R4 R4 R5
+ 0x78120004, // 002E JMPF R4 #0034
+ 0x88100510, // 002F GETMBR R4 R2 K16
+ 0x8C100914, // 0030 GETMET R4 R4 K20
+ 0x58180017, // 0031 LDCONST R6 K23
+ 0x881C0116, // 0032 GETMBR R7 R0 K22
+ 0x7C100600, // 0033 CALL R4 3
+ 0x88100118, // 0034 GETMBR R4 R0 K24
+ 0x4C140000, // 0035 LDNIL R5
+ 0x20100805, // 0036 NE R4 R4 R5
+ 0x78120004, // 0037 JMPF R4 #003D
+ 0x88100510, // 0038 GETMBR R4 R2 K16
+ 0x8C100914, // 0039 GETMET R4 R4 K20
+ 0x58180019, // 003A LDCONST R6 K25
+ 0x881C0118, // 003B GETMBR R7 R0 K24
+ 0x7C100600, // 003C CALL R4 3
+ 0x8C10031A, // 003D GETMET R4 R1 K26
+ 0x7C100200, // 003E CALL R4 1
+ 0x8C10091B, // 003F GETMET R4 R4 K27
+ 0x7C100200, // 0040 CALL R4 1
+ 0x90020004, // 0041 SETMBR R0 K0 R4
+ 0x88040100, // 0042 GETMBR R1 R0 K0
+ 0x80040200, // 0043 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_init, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 10, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(event_no),
+ /* K1 */ be_nested_str_weak(endpoint),
/* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(event_id),
- /* K4 */ be_nested_str_weak(event),
- /* K5 */ be_nested_str_weak(is_urgent),
- /* K6 */ be_nested_str_weak(priority),
- /* K7 */ be_const_int(0),
- /* K8 */ be_nested_str_weak(matter),
- /* K9 */ be_nested_str_weak(EVENT_CRITICAL),
- /* K10 */ be_nested_str_weak(event_no),
- /* K11 */ be_nested_str_weak(int64),
- /* K12 */ be_nested_str_weak(toint64),
- /* K13 */ be_nested_str_weak(event_number),
- /* K14 */ be_nested_str_weak(raw_tlv),
- /* K15 */ be_nested_str_weak(to_TLV),
- /* K16 */ be_nested_str_weak(tlv2raw),
+ /* K4 */ be_nested_str_weak(is_urgent),
+ /* K5 */ be_nested_str_weak(priority),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(matter),
+ /* K8 */ be_nested_str_weak(EVENT_CRITICAL),
+ /* K9 */ be_nested_str_weak(epoch_timestamp),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(rtc),
+ /* K12 */ be_nested_str_weak(utc),
+ /* K13 */ be_const_int(1700000000),
+ /* K14 */ be_nested_str_weak(config_time),
+ /* K15 */ be_nested_str_weak(data0),
+ /* K16 */ be_nested_str_weak(data1),
+ /* K17 */ be_nested_str_weak(data2),
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[37]) { /* code */
- 0x88080301, // 0000 GETMBR R2 R1 K1
- 0x88080500, // 0001 GETMBR R2 R2 K0
- 0x90020002, // 0002 SETMBR R0 K0 R2
- 0x88080301, // 0003 GETMBR R2 R1 K1
- 0x88080502, // 0004 GETMBR R2 R2 K2
- 0x90020402, // 0005 SETMBR R0 K2 R2
- 0x88080301, // 0006 GETMBR R2 R1 K1
- 0x88080504, // 0007 GETMBR R2 R2 K4
- 0x90020602, // 0008 SETMBR R0 K3 R2
- 0x88080301, // 0009 GETMBR R2 R1 K1
- 0x88080505, // 000A GETMBR R2 R2 K5
- 0x90020A02, // 000B SETMBR R0 K5 R2
- 0x88080306, // 000C GETMBR R2 R1 K6
- 0x90020C02, // 000D SETMBR R0 K6 R2
- 0x88080106, // 000E GETMBR R2 R0 K6
- 0x14080507, // 000F LT R2 R2 K7
- 0x780A0000, // 0010 JMPF R2 #0012
- 0x90020D07, // 0011 SETMBR R0 K6 K7
- 0x88080106, // 0012 GETMBR R2 R0 K6
- 0xB80E1000, // 0013 GETNGBL R3 K8
- 0x880C0709, // 0014 GETMBR R3 R3 K9
- 0x24080403, // 0015 GT R2 R2 R3
- 0x780A0002, // 0016 JMPF R2 #001A
- 0xB80A1000, // 0017 GETNGBL R2 K8
- 0x88080509, // 0018 GETMBR R2 R2 K9
- 0x90020C02, // 0019 SETMBR R0 K6 R2
- 0xB80A1600, // 001A GETNGBL R2 K11
- 0x8C08050C, // 001B GETMET R2 R2 K12
- 0x8810030D, // 001C GETMBR R4 R1 K13
- 0x7C080400, // 001D CALL R2 2
- 0x90021402, // 001E SETMBR R0 K10 R2
- 0x8C08030F, // 001F GETMET R2 R1 K15
- 0x7C080200, // 0020 CALL R2 1
- 0x8C080510, // 0021 GETMET R2 R2 K16
- 0x7C080200, // 0022 CALL R2 1
- 0x90021C02, // 0023 SETMBR R0 K14 R2
- 0x80000000, // 0024 RET 0
+ ( &(const binstruction[35]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x90020403, // 0002 SETMBR R0 K2 R3
+ 0x90020604, // 0003 SETMBR R0 K3 R4
+ 0x90020805, // 0004 SETMBR R0 K4 R5
+ 0x90020A06, // 0005 SETMBR R0 K5 R6
+ 0x88280105, // 0006 GETMBR R10 R0 K5
+ 0x14281506, // 0007 LT R10 R10 K6
+ 0x782A0000, // 0008 JMPF R10 #000A
+ 0x90020B06, // 0009 SETMBR R0 K5 K6
+ 0x88280105, // 000A GETMBR R10 R0 K5
+ 0xB82E0E00, // 000B GETNGBL R11 K7
+ 0x882C1708, // 000C GETMBR R11 R11 K8
+ 0x2428140B, // 000D GT R10 R10 R11
+ 0x782A0002, // 000E JMPF R10 #0012
+ 0xB82A0E00, // 000F GETNGBL R10 K7
+ 0x88281508, // 0010 GETMBR R10 R10 K8
+ 0x90020A0A, // 0011 SETMBR R0 K5 R10
+ 0xB82A1400, // 0012 GETNGBL R10 K10
+ 0x8C28150B, // 0013 GETMET R10 R10 K11
+ 0x5830000C, // 0014 LDCONST R12 K12
+ 0x7C280400, // 0015 CALL R10 2
+ 0x9002120A, // 0016 SETMBR R0 K9 R10
+ 0x88280109, // 0017 GETMBR R10 R0 K9
+ 0x1428150D, // 0018 LT R10 R10 K13
+ 0x782A0004, // 0019 JMPF R10 #001F
+ 0xB82A1400, // 001A GETNGBL R10 K10
+ 0x8C28150B, // 001B GETMET R10 R10 K11
+ 0x5830000E, // 001C LDCONST R12 K14
+ 0x7C280400, // 001D CALL R10 2
+ 0x9002120A, // 001E SETMBR R0 K9 R10
+ 0x90021E07, // 001F SETMBR R0 K15 R7
+ 0x90022008, // 0020 SETMBR R0 K16 R8
+ 0x90022209, // 0021 SETMBR R0 K17 R9
+ 0x80000000, // 0022 RET 0
})
)
);
@@ -473,18 +1023,24 @@ be_local_closure(class_Matter_EventQueued_init, /* name */
** Solidified class: Matter_EventQueued
********************************************************************/
be_local_class(Matter_EventQueued,
- 7,
+ 11,
NULL,
- be_nested_map(8,
+ be_nested_map(14,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(is_urgent, -1), be_const_var(3) },
- { be_const_key_weak(priority, -1), be_const_var(4) },
{ be_const_key_weak(endpoint, -1), be_const_var(0) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_EventQueued_init_closure) },
- { be_const_key_weak(raw_tlv, 2), be_const_var(6) },
- { be_const_key_weak(event_id, 6), be_const_var(2) },
+ { be_const_key_weak(epoch_timestamp, -1), be_const_var(9) },
+ { be_const_key_weak(compact, -1), be_const_closure(class_Matter_EventQueued_compact_closure) },
+ { be_const_key_weak(init, 10), be_const_closure(class_Matter_EventQueued_init_closure) },
+ { be_const_key_weak(data2, 11), be_const_var(7) },
+ { be_const_key_weak(event_no, 3), be_const_var(8) },
+ { be_const_key_weak(raw_tlv, -1), be_const_var(10) },
+ { be_const_key_weak(is_urgent, 12), be_const_var(3) },
+ { be_const_key_weak(data1, -1), be_const_var(6) },
+ { be_const_key_weak(priority, 4), be_const_var(4) },
+ { be_const_key_weak(event_id, -1), be_const_var(2) },
+ { be_const_key_weak(to_raw_bytes, 1), be_const_closure(class_Matter_EventQueued_to_raw_bytes_closure) },
{ be_const_key_weak(cluster, -1), be_const_var(1) },
- { be_const_key_weak(event_no, 0), be_const_var(5) },
+ { be_const_key_weak(data0, -1), be_const_var(5) },
})),
be_str_weak(Matter_EventQueued)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index cb2d47030..4b4dfe583 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -7,492 +7,12 @@
extern const bclass be_class_Matter_IM;
/********************************************************************
-** Solidified function: send_subscribe_response_pull
+** Solidified function: process_read_request_pull
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_response_pull, /* name */
+be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
be_nested_proto(
- 11, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_SubscribeResponse_Pull),
- }),
- be_str_weak(send_subscribe_response_pull),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0xB81A0400, // 0002 GETNGBL R6 K2
- 0x8C180D03, // 0003 GETMET R6 R6 K3
- 0x5C200200, // 0004 MOVE R8 R1
- 0x5C240400, // 0005 MOVE R9 R2
- 0x5C280600, // 0006 MOVE R10 R3
- 0x7C180800, // 0007 CALL R6 4
- 0x7C100400, // 0008 CALL R4 2
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_sendqueue_by_exchangeid
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_find_sendqueue_by_exchangeid, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(get_exchangeid),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_sendqueue_by_exchangeid),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0001, // 0002 JMPF R2 #0005
- 0x4C080000, // 0003 LDNIL R2
- 0x80040400, // 0004 RET 1 R2
- 0x58080000, // 0005 LDCONST R2 K0
- 0x600C000C, // 0006 GETGBL R3 G12
- 0x88100101, // 0007 GETMBR R4 R0 K1
- 0x7C0C0200, // 0008 CALL R3 1
- 0x140C0403, // 0009 LT R3 R2 R3
- 0x780E0008, // 000A JMPF R3 #0014
- 0x880C0101, // 000B GETMBR R3 R0 K1
- 0x940C0602, // 000C GETIDX R3 R3 R2
- 0x8C100702, // 000D GETMET R4 R3 K2
- 0x7C100200, // 000E CALL R4 1
- 0x1C100801, // 000F EQ R4 R4 R1
- 0x78120000, // 0010 JMPF R4 #0012
- 0x80040600, // 0011 RET 1 R3
- 0x00080503, // 0012 ADD R2 R2 K3
- 0x7001FFF1, // 0013 JMP #0006
- 0x4C0C0000, // 0014 LDNIL R3
- 0x80040600, // 0015 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_subscribe_update
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
- be_nested_proto(
- 11, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(ReadRequestMessage),
- /* K3 */ be_nested_str_weak(fabric_filtered),
- /* K4 */ be_nested_str_weak(attributes_requests),
- /* K5 */ be_nested_str_weak(updates),
- /* K6 */ be_nested_str_weak(AttributePathIB),
- /* K7 */ be_nested_str_weak(endpoint),
- /* K8 */ be_nested_str_weak(cluster),
- /* K9 */ be_nested_str_weak(attribute),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(log),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
- /* K14 */ be_nested_str_weak(local_session_id),
- /* K15 */ be_nested_str_weak(subscription_id),
- /* K16 */ be_const_int(3),
- /* K17 */ be_nested_str_weak(is_keep_alive),
- /* K18 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
- /* K19 */ be_nested_str_weak(IM_ReportDataSubscribed_Pull),
- /* K20 */ be_nested_str_weak(_message_handler),
- /* K21 */ be_nested_str_weak(send_queue),
- /* K22 */ be_nested_str_weak(send_enqueued),
- }),
- be_str_weak(send_subscribe_update),
- &be_const_str_solidified,
- ( &(const binstruction[61]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x7C0C0200, // 0003 CALL R3 1
- 0x50100000, // 0004 LDBOOL R4 0 0
- 0x900E0604, // 0005 SETMBR R3 K3 R4
- 0x60100012, // 0006 GETGBL R4 G18
- 0x7C100000, // 0007 CALL R4 0
- 0x900E0804, // 0008 SETMBR R3 K4 R4
- 0x60100010, // 0009 GETGBL R4 G16
- 0x88140305, // 000A GETMBR R5 R1 K5
- 0x7C100200, // 000B CALL R4 1
- 0xA802000F, // 000C EXBLK 0 #001D
- 0x5C140800, // 000D MOVE R5 R4
- 0x7C140000, // 000E CALL R5 0
- 0xB81A0200, // 000F GETNGBL R6 K1
- 0x8C180D06, // 0010 GETMET R6 R6 K6
- 0x7C180200, // 0011 CALL R6 1
- 0x881C0B07, // 0012 GETMBR R7 R5 K7
- 0x901A0E07, // 0013 SETMBR R6 K7 R7
- 0x881C0B08, // 0014 GETMBR R7 R5 K8
- 0x901A1007, // 0015 SETMBR R6 K8 R7
- 0x881C0B09, // 0016 GETMBR R7 R5 K9
- 0x901A1207, // 0017 SETMBR R6 K9 R7
- 0x881C0704, // 0018 GETMBR R7 R3 K4
- 0x8C1C0F0A, // 0019 GETMET R7 R7 K10
- 0x5C240C00, // 001A MOVE R9 R6
- 0x7C1C0400, // 001B CALL R7 2
- 0x7001FFEF, // 001C JMP #000D
- 0x5810000B, // 001D LDCONST R4 K11
- 0xAC100200, // 001E CATCH R4 1 0
- 0xB0080000, // 001F RAISE 2 R0 R0
- 0xB8121800, // 0020 GETNGBL R4 K12
- 0x60140018, // 0021 GETGBL R5 G24
- 0x5818000D, // 0022 LDCONST R6 K13
- 0x881C050E, // 0023 GETMBR R7 R2 K14
- 0x8820030F, // 0024 GETMBR R8 R1 K15
- 0x7C140600, // 0025 CALL R5 3
- 0x58180010, // 0026 LDCONST R6 K16
- 0x7C100400, // 0027 CALL R4 2
- 0x50100000, // 0028 LDBOOL R4 0 0
- 0x90062204, // 0029 SETMBR R1 K17 R4
- 0x8C100112, // 002A GETMET R4 R0 K18
- 0x5C180600, // 002B MOVE R6 R3
- 0x4C1C0000, // 002C LDNIL R7
- 0x7C100600, // 002D CALL R4 3
- 0xB8160200, // 002E GETNGBL R5 K1
- 0x8C140B13, // 002F GETMET R5 R5 K19
- 0x881C0514, // 0030 GETMBR R7 R2 K20
- 0x5C200400, // 0031 MOVE R8 R2
- 0x5C240800, // 0032 MOVE R9 R4
- 0x5C280200, // 0033 MOVE R10 R1
- 0x7C140A00, // 0034 CALL R5 5
- 0x88180115, // 0035 GETMBR R6 R0 K21
- 0x8C180D0A, // 0036 GETMET R6 R6 K10
- 0x5C200A00, // 0037 MOVE R8 R5
- 0x7C180400, // 0038 CALL R6 2
- 0x8C180116, // 0039 GETMET R6 R0 K22
- 0x88200514, // 003A GETMBR R8 R2 K20
- 0x7C180400, // 003B CALL R6 2
- 0x80000000, // 003C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_single_attribute_to_bytes
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_read_single_attribute_to_bytes, /* name */
- be_nested_proto(
- 21, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(get_attribute_name),
- /* K6 */ be_nested_str_weak(cluster),
- /* K7 */ be_nested_str_weak(attribute),
- /* K8 */ be_nested_str_weak(_X20_X28),
- /* K9 */ be_nested_str_weak(_X29),
- /* K10 */ be_nested_str_weak(),
- /* K11 */ be_nested_str_weak(status),
- /* K12 */ be_nested_str_weak(read_attribute),
- /* K13 */ be_nested_str_weak(tlv_solo),
- /* K14 */ be_nested_str_weak(to_str_val),
- /* K15 */ be_nested_str_weak(is_list),
- /* K16 */ be_nested_str_weak(is_array),
- /* K17 */ be_nested_str_weak(encode_len),
- /* K18 */ be_nested_str_weak(IM_ReportData_Pull),
- /* K19 */ be_nested_str_weak(MAX_MESSAGE),
- /* K20 */ be_nested_str_weak(Matter_TLV_array),
- /* K21 */ be_nested_str_weak(attributedata2raw),
- /* K22 */ be_nested_str_weak(push),
- /* K23 */ be_nested_str_weak(val),
- /* K24 */ be_nested_str_weak(stop_iteration),
- /* K25 */ be_nested_str_weak(log),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
- /* K27 */ be_nested_str_weak(local_session_id),
- /* K28 */ be_nested_str_weak(attributestatus2raw),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
- /* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- }),
- be_str_weak(read_single_attribute_to_bytes),
- &be_const_str_solidified,
- ( &(const binstruction[165]) { /* code */
- 0xB8160000, // 0000 GETNGBL R5 K0
- 0x88140B01, // 0001 GETMBR R5 R5 K1
- 0x4C180000, // 0002 LDNIL R6
- 0xB81E0400, // 0003 GETNGBL R7 K2
- 0x8C1C0F03, // 0004 GETMET R7 R7 K3
- 0x58240004, // 0005 LDCONST R9 K4
- 0x7C1C0400, // 0006 CALL R7 2
- 0x781E000B, // 0007 JMPF R7 #0014
- 0xB81E0000, // 0008 GETNGBL R7 K0
- 0x8C1C0F05, // 0009 GETMET R7 R7 K5
- 0x88240506, // 000A GETMBR R9 R2 K6
- 0x88280507, // 000B GETMBR R10 R2 K7
- 0x7C1C0600, // 000C CALL R7 3
- 0x5C180E00, // 000D MOVE R6 R7
- 0x781A0002, // 000E JMPF R6 #0012
- 0x001E1006, // 000F ADD R7 K8 R6
- 0x001C0F09, // 0010 ADD R7 R7 K9
- 0x70020000, // 0011 JMP #0013
- 0x581C000A, // 0012 LDCONST R7 K10
- 0x5C180E00, // 0013 MOVE R6 R7
- 0x881C050B, // 0014 GETMBR R7 R2 K11
- 0x4C200000, // 0015 LDNIL R8
- 0x201C0E08, // 0016 NE R7 R7 R8
- 0x4C200000, // 0017 LDNIL R8
- 0x4C240000, // 0018 LDNIL R9
- 0x4C280000, // 0019 LDNIL R10
- 0x2028020A, // 001A NE R10 R1 R10
- 0x782A0005, // 001B JMPF R10 #0022
- 0x8C28030C, // 001C GETMET R10 R1 K12
- 0x5C300600, // 001D MOVE R12 R3
- 0x5C340400, // 001E MOVE R13 R2
- 0x8838010D, // 001F GETMBR R14 R0 K13
- 0x7C280800, // 0020 CALL R10 4
- 0x5C201400, // 0021 MOVE R8 R10
- 0x4C280000, // 0022 LDNIL R10
- 0x2028100A, // 0023 NE R10 R8 R10
- 0x782A0057, // 0024 JMPF R10 #007D
- 0x5828000A, // 0025 LDCONST R10 K10
- 0xB82E0400, // 0026 GETNGBL R11 K2
- 0x8C2C1703, // 0027 GETMET R11 R11 K3
- 0x58340004, // 0028 LDCONST R13 K4
- 0x7C2C0400, // 0029 CALL R11 2
- 0x782E0003, // 002A JMPF R11 #002F
- 0x78120002, // 002B JMPF R4 #002F
- 0x8C2C110E, // 002C GETMET R11 R8 K14
- 0x7C2C0200, // 002D CALL R11 1
- 0x5C281600, // 002E MOVE R10 R11
- 0x882C110F, // 002F GETMBR R11 R8 K15
- 0x742E0001, // 0030 JMPT R11 #0033
- 0x882C1110, // 0031 GETMBR R11 R8 K16
- 0x782E002F, // 0032 JMPF R11 #0063
- 0x8C2C1111, // 0033 GETMET R11 R8 K17
- 0x7C2C0200, // 0034 CALL R11 1
- 0xB8320000, // 0035 GETNGBL R12 K0
- 0x88301912, // 0036 GETMBR R12 R12 K18
- 0x88301913, // 0037 GETMBR R12 R12 K19
- 0x242C160C, // 0038 GT R11 R11 R12
- 0x782E0028, // 0039 JMPF R11 #0063
- 0x602C0012, // 003A GETGBL R11 G18
- 0x7C2C0000, // 003B CALL R11 0
- 0x5C241600, // 003C MOVE R9 R11
- 0x602C0015, // 003D GETGBL R11 G21
- 0x5432002F, // 003E LDINT R12 48
- 0x7C2C0200, // 003F CALL R11 1
- 0x8C300B14, // 0040 GETMET R12 R5 K20
- 0x7C300200, // 0041 CALL R12 1
- 0x8C340115, // 0042 GETMET R13 R0 K21
- 0x5C3C1600, // 0043 MOVE R15 R11
- 0x5C400400, // 0044 MOVE R16 R2
- 0x5C441800, // 0045 MOVE R17 R12
- 0x50480000, // 0046 LDBOOL R18 0 0
- 0x7C340A00, // 0047 CALL R13 5
- 0x8C341316, // 0048 GETMET R13 R9 K22
- 0x5C3C1600, // 0049 MOVE R15 R11
- 0x7C340400, // 004A CALL R13 2
- 0x60340010, // 004B GETGBL R13 G16
- 0x88381117, // 004C GETMBR R14 R8 K23
- 0x7C340200, // 004D CALL R13 1
- 0xA802000F, // 004E EXBLK 0 #005F
- 0x5C381A00, // 004F MOVE R14 R13
- 0x7C380000, // 0050 CALL R14 0
- 0x603C0015, // 0051 GETGBL R15 G21
- 0x5442002F, // 0052 LDINT R16 48
- 0x7C3C0200, // 0053 CALL R15 1
- 0x5C2C1E00, // 0054 MOVE R11 R15
- 0x8C3C0115, // 0055 GETMET R15 R0 K21
- 0x5C441600, // 0056 MOVE R17 R11
- 0x5C480400, // 0057 MOVE R18 R2
- 0x5C4C1C00, // 0058 MOVE R19 R14
- 0x50500200, // 0059 LDBOOL R20 1 0
- 0x7C3C0A00, // 005A CALL R15 5
- 0x8C3C1316, // 005B GETMET R15 R9 K22
- 0x5C441600, // 005C MOVE R17 R11
- 0x7C3C0400, // 005D CALL R15 2
- 0x7001FFEF, // 005E JMP #004F
- 0x58340018, // 005F LDCONST R13 K24
- 0xAC340200, // 0060 CATCH R13 1 0
- 0xB0080000, // 0061 RAISE 2 R0 R0
- 0x70020008, // 0062 JMP #006C
- 0x602C0015, // 0063 GETGBL R11 G21
- 0x5432002F, // 0064 LDINT R12 48
- 0x7C2C0200, // 0065 CALL R11 1
- 0x5C241600, // 0066 MOVE R9 R11
- 0x8C2C0115, // 0067 GETMET R11 R0 K21
- 0x5C341200, // 0068 MOVE R13 R9
- 0x5C380400, // 0069 MOVE R14 R2
- 0x5C3C1000, // 006A MOVE R15 R8
- 0x7C2C0800, // 006B CALL R11 4
- 0xB82E0400, // 006C GETNGBL R11 K2
- 0x8C2C1703, // 006D GETMET R11 R11 K3
- 0x58340004, // 006E LDCONST R13 K4
- 0x7C2C0400, // 006F CALL R11 2
- 0x782E000A, // 0070 JMPF R11 #007C
- 0x78120009, // 0071 JMPF R4 #007C
- 0xB82E3200, // 0072 GETNGBL R11 K25
- 0x60300018, // 0073 GETGBL R12 G24
- 0x5834001A, // 0074 LDCONST R13 K26
- 0x8838071B, // 0075 GETMBR R14 R3 K27
- 0x5C3C0400, // 0076 MOVE R15 R2
- 0x5C400C00, // 0077 MOVE R16 R6
- 0x5C441400, // 0078 MOVE R17 R10
- 0x7C300A00, // 0079 CALL R12 5
- 0x58340004, // 007A LDCONST R13 K4
- 0x7C2C0400, // 007B CALL R11 2
- 0x70020026, // 007C JMP #00A4
- 0x8828050B, // 007D GETMBR R10 R2 K11
- 0x4C2C0000, // 007E LDNIL R11
- 0x2028140B, // 007F NE R10 R10 R11
- 0x782A0022, // 0080 JMPF R10 #00A4
- 0x781E0021, // 0081 JMPF R7 #00A4
- 0x60280015, // 0082 GETGBL R10 G21
- 0x542E002F, // 0083 LDINT R11 48
- 0x7C280200, // 0084 CALL R10 1
- 0x5C241400, // 0085 MOVE R9 R10
- 0x8C28011C, // 0086 GETMET R10 R0 K28
- 0x5C301200, // 0087 MOVE R12 R9
- 0x5C340400, // 0088 MOVE R13 R2
- 0x8838050B, // 0089 GETMBR R14 R2 K11
- 0x7C280800, // 008A CALL R10 4
- 0xB82A0400, // 008B GETNGBL R10 K2
- 0x8C281503, // 008C GETMET R10 R10 K3
- 0x58300004, // 008D LDCONST R12 K4
- 0x7C280400, // 008E CALL R10 2
- 0x782A0013, // 008F JMPF R10 #00A4
- 0xB82A3200, // 0090 GETNGBL R10 K25
- 0x602C0018, // 0091 GETGBL R11 G24
- 0x5830001D, // 0092 LDCONST R12 K29
- 0x8834071B, // 0093 GETMBR R13 R3 K27
- 0x60380008, // 0094 GETGBL R14 G8
- 0x5C3C0400, // 0095 MOVE R15 R2
- 0x7C380200, // 0096 CALL R14 1
- 0x5C3C0C00, // 0097 MOVE R15 R6
- 0x8840050B, // 0098 GETMBR R16 R2 K11
- 0x8844050B, // 0099 GETMBR R17 R2 K11
- 0xB84A0000, // 009A GETNGBL R18 K0
- 0x8848251E, // 009B GETMBR R18 R18 K30
- 0x1C442212, // 009C EQ R17 R17 R18
- 0x78460001, // 009D JMPF R17 #00A0
- 0x5844001E, // 009E LDCONST R17 K30
- 0x70020000, // 009F JMP #00A1
- 0x5844000A, // 00A0 LDCONST R17 K10
- 0x7C2C0C00, // 00A1 CALL R11 6
- 0x58300004, // 00A2 LDCONST R12 K4
- 0x7C280400, // 00A3 CALL R10 2
- 0x80041200, // 00A4 RET 1 R9
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_init, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(device),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(subs_shop),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(IM_Subscription_Shop),
- /* K5 */ be_nested_str_weak(read_request_solo),
- /* K6 */ be_nested_str_weak(ReadRequestMessage_solo),
- /* K7 */ be_nested_str_weak(invoke_request_solo),
- /* K8 */ be_nested_str_weak(InvokeRequestMessage_solo),
- /* K9 */ be_nested_str_weak(tlv_solo),
- /* K10 */ be_nested_str_weak(TLV),
- /* K11 */ be_nested_str_weak(Matter_TLV_item),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x90020202, // 0003 SETMBR R0 K1 R2
- 0xB80A0600, // 0004 GETNGBL R2 K3
- 0x8C080504, // 0005 GETMET R2 R2 K4
- 0x5C100000, // 0006 MOVE R4 R0
- 0x7C080400, // 0007 CALL R2 2
- 0x90020402, // 0008 SETMBR R0 K2 R2
- 0xB80A0600, // 0009 GETNGBL R2 K3
- 0x8C080506, // 000A GETMET R2 R2 K6
- 0x7C080200, // 000B CALL R2 1
- 0x90020A02, // 000C SETMBR R0 K5 R2
- 0xB80A0600, // 000D GETNGBL R2 K3
- 0x8C080508, // 000E GETMET R2 R2 K8
- 0x7C080200, // 000F CALL R2 1
- 0x90020E02, // 0010 SETMBR R0 K7 R2
- 0xB80A0600, // 0011 GETNGBL R2 K3
- 0x8808050A, // 0012 GETMBR R2 R2 K10
- 0x8C08050B, // 0013 GETMET R2 R2 K11
- 0x7C080200, // 0014 CALL R2 1
- 0x90021202, // 0015 SETMBR R0 K9 R2
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_status
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_status, /* name */
- be_nested_proto(
- 9, /* nstack */
+ 13, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
@@ -500,24 +20,52 @@ be_local_closure(class_Matter_IM_send_status, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_Status),
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(profiler),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(read_request_start_pull),
+ /* K4 */ be_nested_str_weak(ReadRequestMessage),
+ /* K5 */ be_nested_str_weak(from_TLV),
+ /* K6 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K7 */ be_nested_str_weak(process_read_or_subscribe_request_event_pull),
+ /* K8 */ be_nested_str_weak(send_queue),
+ /* K9 */ be_nested_str_weak(push),
+ /* K10 */ be_nested_str_weak(IM_ReportData_Pull),
}),
- be_str_weak(send_status),
+ be_str_weak(process_read_request_pull),
&be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
+ ( &(const binstruction[30]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x880C0701, // 0001 GETMBR R3 R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x58140003, // 0003 LDCONST R5 K3
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0xB80E0000, // 0005 GETNGBL R3 K0
+ 0x8C0C0704, // 0006 GETMET R3 R3 K4
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0705, // 0008 GETMET R3 R3 K5
+ 0x5C140400, // 0009 MOVE R5 R2
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x8C100106, // 000B GETMET R4 R0 K6
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x5C1C0200, // 000D MOVE R7 R1
+ 0x7C100600, // 000E CALL R4 3
+ 0x8C140107, // 000F GETMET R5 R0 K7
+ 0x5C1C0600, // 0010 MOVE R7 R3
+ 0x5C200200, // 0011 MOVE R8 R1
+ 0x7C140600, // 0012 CALL R5 3
+ 0x88180108, // 0013 GETMBR R6 R0 K8
+ 0x8C180D09, // 0014 GETMET R6 R6 K9
+ 0xB8220000, // 0015 GETNGBL R8 K0
+ 0x8C20110A, // 0016 GETMET R8 R8 K10
+ 0x5C280200, // 0017 MOVE R10 R1
+ 0x5C2C0800, // 0018 MOVE R11 R4
+ 0x5C300A00, // 0019 MOVE R12 R5
+ 0x7C200800, // 001A CALL R8 4
+ 0x7C180400, // 001B CALL R6 2
+ 0x50180200, // 001C LDBOOL R6 1 0
+ 0x80040C00, // 001D RET 1 R6
})
)
);
@@ -562,860 +110,6 @@ be_local_closure(class_Matter_IM_process_incoming_ack, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_every_second, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(expire_sendqueue),
- }),
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: expire_sendqueue
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(time_reached),
- /* K4 */ be_nested_str_weak(expiration),
- /* K5 */ be_nested_str_weak(reached_timeout),
- /* K6 */ be_nested_str_weak(remove),
- /* K7 */ be_const_int(1),
- }),
- be_str_weak(expire_sendqueue),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0101, // 0002 GETMBR R3 R0 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x14080202, // 0004 LT R2 R1 R2
- 0x780A000F, // 0005 JMPF R2 #0016
- 0x88080101, // 0006 GETMBR R2 R0 K1
- 0x94080401, // 0007 GETIDX R2 R2 R1
- 0xB80E0400, // 0008 GETNGBL R3 K2
- 0x8C0C0703, // 0009 GETMET R3 R3 K3
- 0x88140504, // 000A GETMBR R5 R2 K4
- 0x7C0C0400, // 000B CALL R3 2
- 0x780E0006, // 000C JMPF R3 #0014
- 0x8C0C0505, // 000D GETMET R3 R2 K5
- 0x7C0C0200, // 000E CALL R3 1
- 0x880C0101, // 000F GETMBR R3 R0 K1
- 0x8C0C0706, // 0010 GETMET R3 R3 K6
- 0x5C140200, // 0011 MOVE R5 R1
- 0x7C0C0400, // 0012 CALL R3 2
- 0x70020000, // 0013 JMP #0015
- 0x00040307, // 0014 ADD R1 R1 K7
- 0x7001FFEA, // 0015 JMP #0001
- 0x4C080000, // 0016 LDNIL R2
- 0x80040400, // 0017 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_write_response
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_write_response, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_WriteResponse),
- }),
- be_str_weak(send_write_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_timed_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_timed_request, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TimedRequestMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
- /* K5 */ be_nested_str_weak(session),
- /* K6 */ be_nested_str_weak(local_session_id),
- /* K7 */ be_nested_str_weak(timeout),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(send_status),
- /* K10 */ be_nested_str_weak(SUCCESS),
- }),
- be_str_weak(process_timed_request),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0xB8120600, // 0006 GETNGBL R4 K3
- 0x60140018, // 0007 GETGBL R5 G24
- 0x58180004, // 0008 LDCONST R6 K4
- 0x881C0305, // 0009 GETMBR R7 R1 K5
- 0x881C0F06, // 000A GETMBR R7 R7 K6
- 0x88200707, // 000B GETMBR R8 R3 K7
- 0x7C140600, // 000C CALL R5 3
- 0x58180008, // 000D LDCONST R6 K8
- 0x7C100400, // 000E CALL R4 2
- 0x8C100109, // 000F GETMET R4 R0 K9
- 0x5C180200, // 0010 MOVE R6 R1
- 0xB81E0000, // 0011 GETNGBL R7 K0
- 0x881C0F0A, // 0012 GETMBR R7 R7 K10
- 0x7C100600, // 0013 CALL R4 3
- 0x50100200, // 0014 LDBOOL R4 1 0
- 0x80040800, // 0015 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: subscribe_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_subscribe_request, /* name */
- be_nested_proto(
- 20, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[34]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(SubscribeRequestMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(keep_subscriptions),
- /* K4 */ be_nested_str_weak(subs_shop),
- /* K5 */ be_nested_str_weak(remove_by_session),
- /* K6 */ be_nested_str_weak(session),
- /* K7 */ be_nested_str_weak(new_subscription),
- /* K8 */ be_nested_str_weak(tasmota),
- /* K9 */ be_nested_str_weak(loglevel),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(Path),
- /* K12 */ be_nested_str_weak(msg),
- /* K13 */ be_nested_str_weak(attributes_requests),
- /* K14 */ be_nested_str_weak(endpoint),
- /* K15 */ be_nested_str_weak(cluster),
- /* K16 */ be_nested_str_weak(attribute),
- /* K17 */ be_nested_str_weak(push),
- /* K18 */ be_nested_str_weak(stop_iteration),
- /* K19 */ be_nested_str_weak(log),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s_X20attr_req_X3D_X25s_X20event_req_X3D_X25s),
- /* K21 */ be_nested_str_weak(local_session_id),
- /* K22 */ be_nested_str_weak(concat),
- /* K23 */ be_nested_str_weak(_X20),
- /* K24 */ be_nested_str_weak(min_interval),
- /* K25 */ be_nested_str_weak(max_interval),
- /* K26 */ be_const_int(1),
- /* K27 */ be_const_int(0),
- /* K28 */ be_nested_str_weak(subscription_id),
- /* K29 */ be_nested_str_weak(fabric_filtered),
- /* K30 */ be_nested_str_weak(_X2D),
- /* K31 */ be_nested_str_weak(event_requests),
- /* K32 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
- /* K33 */ be_nested_str_weak(send_subscribe_response_pull),
- }),
- be_str_weak(subscribe_request),
- &be_const_str_solidified,
- ( &(const binstruction[98]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x88100703, // 0006 GETMBR R4 R3 K3
- 0x74120003, // 0007 JMPT R4 #000C
- 0x88100104, // 0008 GETMBR R4 R0 K4
- 0x8C100905, // 0009 GETMET R4 R4 K5
- 0x88180306, // 000A GETMBR R6 R1 K6
- 0x7C100400, // 000B CALL R4 2
- 0x88100104, // 000C GETMBR R4 R0 K4
- 0x8C100907, // 000D GETMET R4 R4 K7
- 0x88180306, // 000E GETMBR R6 R1 K6
- 0x5C1C0600, // 000F MOVE R7 R3
- 0x7C100600, // 0010 CALL R4 3
- 0xB8161000, // 0011 GETNGBL R5 K8
- 0x8C140B09, // 0012 GETMET R5 R5 K9
- 0x581C000A, // 0013 LDCONST R7 K10
- 0x7C140400, // 0014 CALL R5 2
- 0x78160040, // 0015 JMPF R5 #0057
- 0x60140012, // 0016 GETGBL R5 G18
- 0x7C140000, // 0017 CALL R5 0
- 0xB81A0000, // 0018 GETNGBL R6 K0
- 0x8C180D0B, // 0019 GETMET R6 R6 K11
- 0x7C180200, // 001A CALL R6 1
- 0x901A1801, // 001B SETMBR R6 K12 R1
- 0x601C0010, // 001C GETGBL R7 G16
- 0x8820070D, // 001D GETMBR R8 R3 K13
- 0x7C1C0200, // 001E CALL R7 1
- 0xA802000D, // 001F EXBLK 0 #002E
- 0x5C200E00, // 0020 MOVE R8 R7
- 0x7C200000, // 0021 CALL R8 0
- 0x8824110E, // 0022 GETMBR R9 R8 K14
- 0x901A1C09, // 0023 SETMBR R6 K14 R9
- 0x8824110F, // 0024 GETMBR R9 R8 K15
- 0x901A1E09, // 0025 SETMBR R6 K15 R9
- 0x88241110, // 0026 GETMBR R9 R8 K16
- 0x901A2009, // 0027 SETMBR R6 K16 R9
- 0x8C240B11, // 0028 GETMET R9 R5 K17
- 0x602C0008, // 0029 GETGBL R11 G8
- 0x5C300C00, // 002A MOVE R12 R6
- 0x7C2C0200, // 002B CALL R11 1
- 0x7C240400, // 002C CALL R9 2
- 0x7001FFF1, // 002D JMP #0020
- 0x581C0012, // 002E LDCONST R7 K18
- 0xAC1C0200, // 002F CATCH R7 1 0
- 0xB0080000, // 0030 RAISE 2 R0 R0
- 0xB81E2600, // 0031 GETNGBL R7 K19
- 0x60200018, // 0032 GETGBL R8 G24
- 0x58240014, // 0033 LDCONST R9 K20
- 0x88280306, // 0034 GETMBR R10 R1 K6
- 0x88281515, // 0035 GETMBR R10 R10 K21
- 0x8C2C0B16, // 0036 GETMET R11 R5 K22
- 0x58340017, // 0037 LDCONST R13 K23
- 0x7C2C0400, // 0038 CALL R11 2
- 0x88300918, // 0039 GETMBR R12 R4 K24
- 0x88340919, // 003A GETMBR R13 R4 K25
- 0x88380703, // 003B GETMBR R14 R3 K3
- 0x783A0001, // 003C JMPF R14 #003F
- 0x5838001A, // 003D LDCONST R14 K26
- 0x70020000, // 003E JMP #0040
- 0x5838001B, // 003F LDCONST R14 K27
- 0x883C091C, // 0040 GETMBR R15 R4 K28
- 0x8840071D, // 0041 GETMBR R16 R3 K29
- 0x8844070D, // 0042 GETMBR R17 R3 K13
- 0x4C480000, // 0043 LDNIL R18
- 0x20442212, // 0044 NE R17 R17 R18
- 0x78460003, // 0045 JMPF R17 #004A
- 0x6044000C, // 0046 GETGBL R17 G12
- 0x8848070D, // 0047 GETMBR R18 R3 K13
- 0x7C440200, // 0048 CALL R17 1
- 0x70020000, // 0049 JMP #004B
- 0x5844001E, // 004A LDCONST R17 K30
- 0x8848071F, // 004B GETMBR R18 R3 K31
- 0x4C4C0000, // 004C LDNIL R19
- 0x20482413, // 004D NE R18 R18 R19
- 0x784A0003, // 004E JMPF R18 #0053
- 0x6048000C, // 004F GETGBL R18 G12
- 0x884C071F, // 0050 GETMBR R19 R3 K31
- 0x7C480200, // 0051 CALL R18 1
- 0x70020000, // 0052 JMP #0054
- 0x5848001E, // 0053 LDCONST R18 K30
- 0x7C201400, // 0054 CALL R8 10
- 0x5824000A, // 0055 LDCONST R9 K10
- 0x7C1C0400, // 0056 CALL R7 2
- 0x8C140120, // 0057 GETMET R5 R0 K32
- 0x5C1C0600, // 0058 MOVE R7 R3
- 0x5C200200, // 0059 MOVE R8 R1
- 0x7C140600, // 005A CALL R5 3
- 0x8C180121, // 005B GETMET R6 R0 K33
- 0x5C200200, // 005C MOVE R8 R1
- 0x5C240A00, // 005D MOVE R9 R5
- 0x5C280800, // 005E MOVE R10 R4
- 0x7C180800, // 005F CALL R6 4
- 0x50180200, // 0060 LDBOOL R6 1 0
- 0x80040C00, // 0061 RET 1 R6
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_enqueued
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_enqueued, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(finish),
- /* K3 */ be_nested_str_weak(ready),
- /* K4 */ be_nested_str_weak(send_im),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
- /* K7 */ be_nested_str_weak(resp),
- /* K8 */ be_nested_str_weak(exchange_id),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_const_int(1),
- }),
- be_str_weak(send_enqueued),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0019, // 0005 JMPF R3 #0020
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x88100702, // 0008 GETMBR R4 R3 K2
- 0x74120004, // 0009 JMPT R4 #000F
- 0x88100703, // 000A GETMBR R4 R3 K3
- 0x78120002, // 000B JMPF R4 #000F
- 0x8C100704, // 000C GETMET R4 R3 K4
- 0x5C180200, // 000D MOVE R6 R1
- 0x7C100400, // 000E CALL R4 2
- 0x88100702, // 000F GETMBR R4 R3 K2
- 0x7812000C, // 0010 JMPF R4 #001E
- 0xB8120A00, // 0011 GETNGBL R4 K5
- 0x60140008, // 0012 GETGBL R5 G8
- 0x88180707, // 0013 GETMBR R6 R3 K7
- 0x88180D08, // 0014 GETMBR R6 R6 K8
- 0x7C140200, // 0015 CALL R5 1
- 0x00160C05, // 0016 ADD R5 K6 R5
- 0x541A0003, // 0017 LDINT R6 4
- 0x7C100400, // 0018 CALL R4 2
- 0x88100101, // 0019 GETMBR R4 R0 K1
- 0x8C100909, // 001A GETMET R4 R4 K9
- 0x5C180400, // 001B MOVE R6 R2
- 0x7C100400, // 001C CALL R4 2
- 0x70020000, // 001D JMP #001F
- 0x0008050A, // 001E ADD R2 R2 K10
- 0x7001FFE0, // 001F JMP #0001
- 0x80000000, // 0020 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: path2raw
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_path2raw, /* name */
- be_nested_proto(
- 9, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(cluster),
- /* K5 */ be_nested_str_weak(attribute),
- }),
- be_str_weak(path2raw),
- &be_const_str_solidified,
- ( &(const binstruction[107]) { /* code */
- 0x8C140300, // 0000 GETMET R5 R1 K0
- 0x541E0036, // 0001 LDINT R7 55
- 0x58200001, // 0002 LDCONST R8 K1
- 0x7C140600, // 0003 CALL R5 3
- 0x8C140300, // 0004 GETMET R5 R1 K0
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x58200001, // 0006 LDCONST R8 K1
- 0x7C140600, // 0007 CALL R5 3
- 0x88140502, // 0008 GETMBR R5 R2 K2
- 0x541A00FE, // 0009 LDINT R6 255
- 0x18140A06, // 000A LE R5 R5 R6
- 0x78160008, // 000B JMPF R5 #0015
- 0x8C140300, // 000C GETMET R5 R1 K0
- 0x541E2401, // 000D LDINT R7 9218
- 0x5421FFFD, // 000E LDINT R8 -2
- 0x7C140600, // 000F CALL R5 3
- 0x8C140300, // 0010 GETMET R5 R1 K0
- 0x881C0502, // 0011 GETMBR R7 R2 K2
- 0x58200001, // 0012 LDCONST R8 K1
- 0x7C140600, // 0013 CALL R5 3
- 0x70020007, // 0014 JMP #001D
- 0x8C140300, // 0015 GETMET R5 R1 K0
- 0x541E2501, // 0016 LDINT R7 9474
- 0x5421FFFD, // 0017 LDINT R8 -2
- 0x7C140600, // 0018 CALL R5 3
- 0x8C140300, // 0019 GETMET R5 R1 K0
- 0x881C0502, // 001A GETMBR R7 R2 K2
- 0x58200003, // 001B LDCONST R8 K3
- 0x7C140600, // 001C CALL R5 3
- 0x88140504, // 001D GETMBR R5 R2 K4
- 0x541A00FE, // 001E LDINT R6 255
- 0x18140A06, // 001F LE R5 R5 R6
- 0x78160008, // 0020 JMPF R5 #002A
- 0x8C140300, // 0021 GETMET R5 R1 K0
- 0x541E2402, // 0022 LDINT R7 9219
- 0x5421FFFD, // 0023 LDINT R8 -2
- 0x7C140600, // 0024 CALL R5 3
- 0x8C140300, // 0025 GETMET R5 R1 K0
- 0x881C0504, // 0026 GETMBR R7 R2 K4
- 0x58200001, // 0027 LDCONST R8 K1
- 0x7C140600, // 0028 CALL R5 3
- 0x70020014, // 0029 JMP #003F
- 0x88140504, // 002A GETMBR R5 R2 K4
- 0x541AFFFE, // 002B LDINT R6 65535
- 0x18140A06, // 002C LE R5 R5 R6
- 0x78160008, // 002D JMPF R5 #0037
- 0x8C140300, // 002E GETMET R5 R1 K0
- 0x541E2502, // 002F LDINT R7 9475
- 0x5421FFFD, // 0030 LDINT R8 -2
- 0x7C140600, // 0031 CALL R5 3
- 0x8C140300, // 0032 GETMET R5 R1 K0
- 0x881C0504, // 0033 GETMBR R7 R2 K4
- 0x58200003, // 0034 LDCONST R8 K3
- 0x7C140600, // 0035 CALL R5 3
- 0x70020007, // 0036 JMP #003F
- 0x8C140300, // 0037 GETMET R5 R1 K0
- 0x541E2602, // 0038 LDINT R7 9731
- 0x5421FFFD, // 0039 LDINT R8 -2
- 0x7C140600, // 003A CALL R5 3
- 0x8C140300, // 003B GETMET R5 R1 K0
- 0x881C0504, // 003C GETMBR R7 R2 K4
- 0x54220003, // 003D LDINT R8 4
- 0x7C140600, // 003E CALL R5 3
- 0x88140505, // 003F GETMBR R5 R2 K5
- 0x541A00FE, // 0040 LDINT R6 255
- 0x18140A06, // 0041 LE R5 R5 R6
- 0x78160008, // 0042 JMPF R5 #004C
- 0x8C140300, // 0043 GETMET R5 R1 K0
- 0x541E2403, // 0044 LDINT R7 9220
- 0x5421FFFD, // 0045 LDINT R8 -2
- 0x7C140600, // 0046 CALL R5 3
- 0x8C140300, // 0047 GETMET R5 R1 K0
- 0x881C0505, // 0048 GETMBR R7 R2 K5
- 0x58200001, // 0049 LDCONST R8 K1
- 0x7C140600, // 004A CALL R5 3
- 0x70020014, // 004B JMP #0061
- 0x88140505, // 004C GETMBR R5 R2 K5
- 0x541AFFFE, // 004D LDINT R6 65535
- 0x18140A06, // 004E LE R5 R5 R6
- 0x78160008, // 004F JMPF R5 #0059
- 0x8C140300, // 0050 GETMET R5 R1 K0
- 0x541E2503, // 0051 LDINT R7 9476
- 0x5421FFFD, // 0052 LDINT R8 -2
- 0x7C140600, // 0053 CALL R5 3
- 0x8C140300, // 0054 GETMET R5 R1 K0
- 0x881C0505, // 0055 GETMBR R7 R2 K5
- 0x58200003, // 0056 LDCONST R8 K3
- 0x7C140600, // 0057 CALL R5 3
- 0x70020007, // 0058 JMP #0061
- 0x8C140300, // 0059 GETMET R5 R1 K0
- 0x541E2603, // 005A LDINT R7 9732
- 0x5421FFFD, // 005B LDINT R8 -2
- 0x7C140600, // 005C CALL R5 3
- 0x8C140300, // 005D GETMET R5 R1 K0
- 0x881C0505, // 005E GETMBR R7 R2 K5
- 0x54220003, // 005F LDINT R8 4
- 0x7C140600, // 0060 CALL R5 3
- 0x78120003, // 0061 JMPF R4 #0066
- 0x8C140300, // 0062 GETMET R5 R1 K0
- 0x541E3404, // 0063 LDINT R7 13317
- 0x5421FFFD, // 0064 LDINT R8 -2
- 0x7C140600, // 0065 CALL R5 3
- 0x8C140300, // 0066 GETMET R5 R1 K0
- 0x541E0017, // 0067 LDINT R7 24
- 0x58200001, // 0068 LDCONST R8 K1
- 0x7C140600, // 0069 CALL R5 3
- 0x80000000, // 006A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_status_response
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_status_response, /* name */
- be_nested_proto(
- 10, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(findsubval),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(find_sendqueue_by_exchangeid),
- /* K3 */ be_nested_str_weak(exchange_id),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(SUCCESS),
- /* K6 */ be_nested_str_weak(status_ok_received),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
- /* K9 */ be_nested_str_weak(session),
- /* K10 */ be_nested_str_weak(local_session_id),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
- /* K12 */ be_const_int(3),
- /* K13 */ be_nested_str_weak(status_error_received),
- /* K14 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
- }),
- be_str_weak(process_status_response),
- &be_const_str_solidified,
- ( &(const binstruction[43]) { /* code */
- 0x8C0C0500, // 0000 GETMET R3 R2 K0
- 0x58140001, // 0001 LDCONST R5 K1
- 0x541A00FE, // 0002 LDINT R6 255
- 0x7C0C0600, // 0003 CALL R3 3
- 0x8C100102, // 0004 GETMET R4 R0 K2
- 0x88180303, // 0005 GETMBR R6 R1 K3
- 0x7C100400, // 0006 CALL R4 2
- 0xB8160800, // 0007 GETNGBL R5 K4
- 0x88140B05, // 0008 GETMBR R5 R5 K5
- 0x1C140605, // 0009 EQ R5 R3 R5
- 0x7816000F, // 000A JMPF R5 #001B
- 0x78120004, // 000B JMPF R4 #0011
- 0x8C140906, // 000C GETMET R5 R4 K6
- 0x5C1C0200, // 000D MOVE R7 R1
- 0x7C140400, // 000E CALL R5 2
- 0x80040A00, // 000F RET 1 R5
- 0x70020008, // 0010 JMP #001A
- 0xB8160E00, // 0011 GETNGBL R5 K7
- 0x60180018, // 0012 GETGBL R6 G24
- 0x581C0008, // 0013 LDCONST R7 K8
- 0x88200309, // 0014 GETMBR R8 R1 K9
- 0x8820110A, // 0015 GETMBR R8 R8 K10
- 0x88240303, // 0016 GETMBR R9 R1 K3
- 0x7C180600, // 0017 CALL R6 3
- 0x541E0003, // 0018 LDINT R7 4
- 0x7C140400, // 0019 CALL R5 2
- 0x7002000D, // 001A JMP #0029
- 0xB8160E00, // 001B GETNGBL R5 K7
- 0x60180018, // 001C GETGBL R6 G24
- 0x581C000B, // 001D LDCONST R7 K11
- 0x5C200600, // 001E MOVE R8 R3
- 0x7C180400, // 001F CALL R6 2
- 0x581C000C, // 0020 LDCONST R7 K12
- 0x7C140400, // 0021 CALL R5 2
- 0x78120005, // 0022 JMPF R4 #0029
- 0x8C14090D, // 0023 GETMET R5 R4 K13
- 0x5C1C0200, // 0024 MOVE R7 R1
- 0x7C140400, // 0025 CALL R5 2
- 0x8C14010E, // 0026 GETMET R5 R0 K14
- 0x881C0303, // 0027 GETMBR R7 R1 K3
- 0x7C140400, // 0028 CALL R5 2
- 0x50140000, // 0029 LDBOOL R5 0 0
- 0x80040A00, // 002A RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_incoming
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_incoming, /* name */
- be_nested_proto(
- 8, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
- /* K0 */ be_nested_str_weak(opcode),
- /* K1 */ be_const_int(2),
- /* K2 */ be_nested_str_weak(read_request_solo),
- /* K3 */ be_nested_str_weak(from_raw),
- /* K4 */ be_nested_str_weak(raw),
- /* K5 */ be_nested_str_weak(app_payload_idx),
- /* K6 */ be_nested_str_weak(process_read_request_solo),
- /* K7 */ be_nested_str_weak(invoke_request_solo),
- /* K8 */ be_nested_str_weak(process_invoke_request_solo),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(TLV),
- /* K11 */ be_nested_str_weak(parse),
- /* K12 */ be_const_int(1),
- /* K13 */ be_nested_str_weak(process_status_response),
- /* K14 */ be_nested_str_weak(process_read_request_pull),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(send_ack_now),
- /* K17 */ be_nested_str_weak(subscribe_request),
- /* K18 */ be_nested_str_weak(process_write_request),
- /* K19 */ be_nested_str_weak(process_write_response),
- /* K20 */ be_nested_str_weak(process_invoke_request),
- /* K21 */ be_nested_str_weak(process_timed_request),
- }),
- be_str_weak(process_incoming),
- &be_const_str_solidified,
- ( &(const binstruction[124]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x1C0C0501, // 0001 EQ R3 R2 K1
- 0x780E000D, // 0002 JMPF R3 #0011
- 0x880C0102, // 0003 GETMBR R3 R0 K2
- 0x8C0C0703, // 0004 GETMET R3 R3 K3
- 0x88140304, // 0005 GETMBR R5 R1 K4
- 0x88180305, // 0006 GETMBR R6 R1 K5
- 0x7C0C0600, // 0007 CALL R3 3
- 0x4C100000, // 0008 LDNIL R4
- 0x20100604, // 0009 NE R4 R3 R4
- 0x78120004, // 000A JMPF R4 #0010
- 0x8C100106, // 000B GETMET R4 R0 K6
- 0x5C180200, // 000C MOVE R6 R1
- 0x5C1C0600, // 000D MOVE R7 R3
- 0x7C100600, // 000E CALL R4 3
- 0x80040800, // 000F RET 1 R4
- 0x7002000F, // 0010 JMP #0021
- 0x540E0007, // 0011 LDINT R3 8
- 0x1C0C0403, // 0012 EQ R3 R2 R3
- 0x780E000C, // 0013 JMPF R3 #0021
- 0x880C0107, // 0014 GETMBR R3 R0 K7
- 0x8C0C0703, // 0015 GETMET R3 R3 K3
- 0x88140304, // 0016 GETMBR R5 R1 K4
- 0x88180305, // 0017 GETMBR R6 R1 K5
- 0x7C0C0600, // 0018 CALL R3 3
- 0x4C100000, // 0019 LDNIL R4
- 0x20100604, // 001A NE R4 R3 R4
- 0x78120004, // 001B JMPF R4 #0021
- 0x8C100108, // 001C GETMET R4 R0 K8
- 0x5C180200, // 001D MOVE R6 R1
- 0x5C1C0600, // 001E MOVE R7 R3
- 0x7C100600, // 001F CALL R4 3
- 0x80040800, // 0020 RET 1 R4
- 0xB80E1200, // 0021 GETNGBL R3 K9
- 0x880C070A, // 0022 GETMBR R3 R3 K10
- 0x8C0C070B, // 0023 GETMET R3 R3 K11
- 0x88140304, // 0024 GETMBR R5 R1 K4
- 0x88180305, // 0025 GETMBR R6 R1 K5
- 0x7C0C0600, // 0026 CALL R3 3
- 0x1C10050C, // 0027 EQ R4 R2 K12
- 0x78120005, // 0028 JMPF R4 #002F
- 0x8C10010D, // 0029 GETMET R4 R0 K13
- 0x5C180200, // 002A MOVE R6 R1
- 0x5C1C0600, // 002B MOVE R7 R3
- 0x7C100600, // 002C CALL R4 3
- 0x80040800, // 002D RET 1 R4
- 0x7002004A, // 002E JMP #007A
- 0x1C100501, // 002F EQ R4 R2 K1
- 0x78120005, // 0030 JMPF R4 #0037
- 0x8C10010E, // 0031 GETMET R4 R0 K14
- 0x5C180200, // 0032 MOVE R6 R1
- 0x5C1C0600, // 0033 MOVE R7 R3
- 0x7C100600, // 0034 CALL R4 3
- 0x80040800, // 0035 RET 1 R4
- 0x70020042, // 0036 JMP #007A
- 0x1C10050F, // 0037 EQ R4 R2 K15
- 0x78120008, // 0038 JMPF R4 #0042
- 0x8C100110, // 0039 GETMET R4 R0 K16
- 0x5C180200, // 003A MOVE R6 R1
- 0x7C100400, // 003B CALL R4 2
- 0x8C100111, // 003C GETMET R4 R0 K17
- 0x5C180200, // 003D MOVE R6 R1
- 0x5C1C0600, // 003E MOVE R7 R3
- 0x7C100600, // 003F CALL R4 3
- 0x80040800, // 0040 RET 1 R4
- 0x70020037, // 0041 JMP #007A
- 0x54120003, // 0042 LDINT R4 4
- 0x1C100404, // 0043 EQ R4 R2 R4
- 0x78120002, // 0044 JMPF R4 #0048
- 0x50100000, // 0045 LDBOOL R4 0 0
- 0x80040800, // 0046 RET 1 R4
- 0x70020031, // 0047 JMP #007A
- 0x54120004, // 0048 LDINT R4 5
- 0x1C100404, // 0049 EQ R4 R2 R4
- 0x78120002, // 004A JMPF R4 #004E
- 0x50100000, // 004B LDBOOL R4 0 0
- 0x80040800, // 004C RET 1 R4
- 0x7002002B, // 004D JMP #007A
- 0x54120005, // 004E LDINT R4 6
- 0x1C100404, // 004F EQ R4 R2 R4
- 0x78120008, // 0050 JMPF R4 #005A
- 0x8C100110, // 0051 GETMET R4 R0 K16
- 0x5C180200, // 0052 MOVE R6 R1
- 0x7C100400, // 0053 CALL R4 2
- 0x8C100112, // 0054 GETMET R4 R0 K18
- 0x5C180200, // 0055 MOVE R6 R1
- 0x5C1C0600, // 0056 MOVE R7 R3
- 0x7C100600, // 0057 CALL R4 3
- 0x80040800, // 0058 RET 1 R4
- 0x7002001F, // 0059 JMP #007A
- 0x54120006, // 005A LDINT R4 7
- 0x1C100404, // 005B EQ R4 R2 R4
- 0x78120005, // 005C JMPF R4 #0063
- 0x8C100113, // 005D GETMET R4 R0 K19
- 0x5C180200, // 005E MOVE R6 R1
- 0x5C1C0600, // 005F MOVE R7 R3
- 0x7C100600, // 0060 CALL R4 3
- 0x80040800, // 0061 RET 1 R4
- 0x70020016, // 0062 JMP #007A
- 0x54120007, // 0063 LDINT R4 8
- 0x1C100404, // 0064 EQ R4 R2 R4
- 0x78120005, // 0065 JMPF R4 #006C
- 0x8C100114, // 0066 GETMET R4 R0 K20
- 0x5C180200, // 0067 MOVE R6 R1
- 0x5C1C0600, // 0068 MOVE R7 R3
- 0x7C100600, // 0069 CALL R4 3
- 0x80040800, // 006A RET 1 R4
- 0x7002000D, // 006B JMP #007A
- 0x54120008, // 006C LDINT R4 9
- 0x1C100404, // 006D EQ R4 R2 R4
- 0x78120002, // 006E JMPF R4 #0072
- 0x50100000, // 006F LDBOOL R4 0 0
- 0x80040800, // 0070 RET 1 R4
- 0x70020007, // 0071 JMP #007A
- 0x54120009, // 0072 LDINT R4 10
- 0x1C100404, // 0073 EQ R4 R2 R4
- 0x78120004, // 0074 JMPF R4 #007A
- 0x8C100115, // 0075 GETMET R4 R0 K21
- 0x5C180200, // 0076 MOVE R6 R1
- 0x5C1C0600, // 0077 MOVE R7 R3
- 0x7C100600, // 0078 CALL R4 3
- 0x80040800, // 0079 RET 1 R4
- 0x50100000, // 007A LDBOOL R4 0 0
- 0x80040800, // 007B RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_sendqueue_by_exchangeid
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(get_exchangeid),
- /* K3 */ be_nested_str_weak(remove),
- /* K4 */ be_const_int(1),
- }),
- be_str_weak(remove_sendqueue_by_exchangeid),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x80000400, // 0003 RET 0
- 0x58080000, // 0004 LDCONST R2 K0
- 0x600C000C, // 0005 GETGBL R3 G12
- 0x88100101, // 0006 GETMBR R4 R0 K1
- 0x7C0C0200, // 0007 CALL R3 1
- 0x140C0403, // 0008 LT R3 R2 R3
- 0x780E000C, // 0009 JMPF R3 #0017
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x940C0602, // 000B GETIDX R3 R3 R2
- 0x8C0C0702, // 000C GETMET R3 R3 K2
- 0x7C0C0200, // 000D CALL R3 1
- 0x1C0C0601, // 000E EQ R3 R3 R1
- 0x780E0004, // 000F JMPF R3 #0015
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x8C0C0703, // 0011 GETMET R3 R3 K3
- 0x5C140400, // 0012 MOVE R5 R2
- 0x7C0C0400, // 0013 CALL R3 2
- 0x70020000, // 0014 JMP #0016
- 0x00080504, // 0015 ADD R2 R2 K4
- 0x7001FFED, // 0016 JMP #0005
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: process_invoke_request
********************************************************************/
@@ -1430,7 +124,7 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[43]) { /* constants */
+ ( &(const bvalue[44]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(profiler),
/* K2 */ be_nested_str_weak(log),
@@ -1473,11 +167,12 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
/* K39 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
/* K40 */ be_nested_str_weak(stop_iteration),
/* K41 */ be_const_int(0),
- /* K42 */ be_nested_str_weak(send_invoke_response),
+ /* K42 */ be_nested_str_weak(send_queue),
+ /* K43 */ be_nested_str_weak(IM_InvokeResponse),
}),
be_str_weak(process_invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[228]) { /* code */
+ ( &(const binstruction[232]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
0x880C0701, // 0001 GETMBR R3 R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@@ -1496,7 +191,7 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0x88140908, // 000F GETMBR R5 R4 K8
0x4C180000, // 0010 LDNIL R6
0x20140A06, // 0011 NE R5 R5 R6
- 0x781600CF, // 0012 JMPF R5 #00E3
+ 0x781600D3, // 0012 JMPF R5 #00E7
0xB8160000, // 0013 GETNGBL R5 K0
0x8C140B09, // 0014 GETMET R5 R5 K9
0x7C140200, // 0015 CALL R5 1
@@ -1695,263 +390,21 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0x881C0B0B, // 00D6 GETMBR R7 R5 K11
0x7C180200, // 00D7 CALL R6 1
0x24180D29, // 00D8 GT R6 R6 K41
- 0x781A0004, // 00D9 JMPF R6 #00DF
- 0x8C18012A, // 00DA GETMET R6 R0 K42
- 0x5C200200, // 00DB MOVE R8 R1
- 0x5C240A00, // 00DC MOVE R9 R5
- 0x7C180600, // 00DD CALL R6 3
- 0x70020001, // 00DE JMP #00E1
- 0x50180000, // 00DF LDBOOL R6 0 0
- 0x80040C00, // 00E0 RET 1 R6
- 0x50180200, // 00E1 LDBOOL R6 1 0
- 0x80040C00, // 00E2 RET 1 R6
- 0x80000000, // 00E3 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_write_response
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_write_response, /* name */
- be_nested_proto(
- 6, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(WriteResponseMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- }),
- be_str_weak(process_write_response),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0x50100000, // 0006 LDBOOL R4 0 0
- 0x80040800, // 0007 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_ack_now
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_ack_now, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(_message_handler),
- /* K2 */ be_nested_str_weak(send_encrypted_ack),
- }),
- be_str_weak(send_ack_now),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x80000400, // 0003 RET 0
- 0x88080300, // 0004 GETMBR R2 R1 K0
- 0x88080501, // 0005 GETMBR R2 R2 K1
- 0x8C080502, // 0006 GETMET R2 R2 K2
- 0x5C100200, // 0007 MOVE R4 R1
- 0x50140000, // 0008 LDBOOL R5 0 0
- 0x7C080600, // 0009 CALL R2 3
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_read_or_subscribe_request_pull
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_read_or_subscribe_request_pull, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[25]) { /* constants */
- /* K0 */ be_nested_str_weak(attributes_requests),
- /* K1 */ be_nested_str_weak(get_node_id),
- /* K2 */ be_const_int(1),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(PathGenerator),
- /* K5 */ be_nested_str_weak(device),
- /* K6 */ be_nested_str_weak(start),
- /* K7 */ be_nested_str_weak(endpoint),
- /* K8 */ be_nested_str_weak(cluster),
- /* K9 */ be_nested_str_weak(attribute),
- /* K10 */ be_nested_str_weak(fabric_filtered),
- /* K11 */ be_nested_str_weak(push),
- /* K12 */ be_nested_str_weak(tasmota),
- /* K13 */ be_nested_str_weak(loglevel),
- /* K14 */ be_const_int(3),
- /* K15 */ be_nested_str_weak(Path),
- /* K16 */ be_nested_str_weak(get_attribute_name),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
- /* K19 */ be_nested_str_weak(session),
- /* K20 */ be_nested_str_weak(local_session_id),
- /* K21 */ be_nested_str_weak(_X20_X28),
- /* K22 */ be_nested_str_weak(_X29),
- /* K23 */ be_nested_str_weak(),
- /* K24 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(process_read_or_subscribe_request_pull),
- &be_const_str_solidified,
- ( &(const binstruction[121]) { /* code */
- 0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x200C0604, // 0002 NE R3 R3 R4
- 0x780E0072, // 0003 JMPF R3 #0077
- 0x4C0C0000, // 0004 LDNIL R3
- 0x4C100000, // 0005 LDNIL R4
- 0x20100404, // 0006 NE R4 R2 R4
- 0x78120002, // 0007 JMPF R4 #000B
- 0x8C100501, // 0008 GETMET R4 R2 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x70020000, // 000A JMP #000C
- 0x4C100000, // 000B LDNIL R4
- 0x6014000C, // 000C GETGBL R5 G12
- 0x88180300, // 000D GETMBR R6 R1 K0
- 0x7C140200, // 000E CALL R5 1
- 0x24140B02, // 000F GT R5 R5 K2
- 0x78160002, // 0010 JMPF R5 #0014
- 0x60140012, // 0011 GETGBL R5 G18
- 0x7C140000, // 0012 CALL R5 0
- 0x5C0C0A00, // 0013 MOVE R3 R5
- 0x60140010, // 0014 GETGBL R5 G16
- 0x88180300, // 0015 GETMBR R6 R1 K0
- 0x7C140200, // 0016 CALL R5 1
- 0xA802005A, // 0017 EXBLK 0 #0073
- 0x5C180A00, // 0018 MOVE R6 R5
- 0x7C180000, // 0019 CALL R6 0
- 0xB81E0600, // 001A GETNGBL R7 K3
- 0x8C1C0F04, // 001B GETMET R7 R7 K4
- 0x88240105, // 001C GETMBR R9 R0 K5
- 0x7C1C0400, // 001D CALL R7 2
- 0x8C200F06, // 001E GETMET R8 R7 K6
- 0x88280D07, // 001F GETMBR R10 R6 K7
- 0x882C0D08, // 0020 GETMBR R11 R6 K8
- 0x88300D09, // 0021 GETMBR R12 R6 K9
- 0x8834030A, // 0022 GETMBR R13 R1 K10
- 0x7C200A00, // 0023 CALL R8 5
- 0x6020000C, // 0024 GETGBL R8 G12
- 0x88240300, // 0025 GETMBR R9 R1 K0
- 0x7C200200, // 0026 CALL R8 1
- 0x24201102, // 0027 GT R8 R8 K2
- 0x78220003, // 0028 JMPF R8 #002D
- 0x8C20070B, // 0029 GETMET R8 R3 K11
- 0x5C280E00, // 002A MOVE R10 R7
- 0x7C200400, // 002B CALL R8 2
- 0x70020000, // 002C JMP #002E
- 0x5C0C0E00, // 002D MOVE R3 R7
- 0xB8221800, // 002E GETNGBL R8 K12
- 0x8C20110D, // 002F GETMET R8 R8 K13
- 0x5828000E, // 0030 LDCONST R10 K14
- 0x7C200400, // 0031 CALL R8 2
- 0x7822003E, // 0032 JMPF R8 #0072
- 0x88200D07, // 0033 GETMBR R8 R6 K7
- 0x4C240000, // 0034 LDNIL R9
- 0x1C201009, // 0035 EQ R8 R8 R9
- 0x74220007, // 0036 JMPT R8 #003F
- 0x88200D08, // 0037 GETMBR R8 R6 K8
- 0x4C240000, // 0038 LDNIL R9
- 0x1C201009, // 0039 EQ R8 R8 R9
- 0x74220003, // 003A JMPT R8 #003F
- 0x88200D09, // 003B GETMBR R8 R6 K9
- 0x4C240000, // 003C LDNIL R9
- 0x1C201009, // 003D EQ R8 R8 R9
- 0x78220032, // 003E JMPF R8 #0072
- 0xB8220600, // 003F GETNGBL R8 K3
- 0x8C20110F, // 0040 GETMET R8 R8 K15
- 0x7C200200, // 0041 CALL R8 1
- 0x88240D07, // 0042 GETMBR R9 R6 K7
- 0x90220E09, // 0043 SETMBR R8 K7 R9
- 0x88240D08, // 0044 GETMBR R9 R6 K8
- 0x90221009, // 0045 SETMBR R8 K8 R9
- 0x88240D09, // 0046 GETMBR R9 R6 K9
- 0x90221209, // 0047 SETMBR R8 K9 R9
- 0x8824030A, // 0048 GETMBR R9 R1 K10
- 0x90221409, // 0049 SETMBR R8 K10 R9
- 0x60240008, // 004A GETGBL R9 G8
- 0x5C281000, // 004B MOVE R10 R8
- 0x7C240200, // 004C CALL R9 1
- 0x88280D08, // 004D GETMBR R10 R6 K8
- 0x4C2C0000, // 004E LDNIL R11
- 0x2028140B, // 004F NE R10 R10 R11
- 0x782A0017, // 0050 JMPF R10 #0069
- 0x88280D09, // 0051 GETMBR R10 R6 K9
- 0x4C2C0000, // 0052 LDNIL R11
- 0x2028140B, // 0053 NE R10 R10 R11
- 0x782A0013, // 0054 JMPF R10 #0069
- 0xB82A0600, // 0055 GETNGBL R10 K3
- 0x8C281510, // 0056 GETMET R10 R10 K16
- 0x88300D08, // 0057 GETMBR R12 R6 K8
- 0x88340D09, // 0058 GETMBR R13 R6 K9
- 0x7C280600, // 0059 CALL R10 3
- 0xB82E2200, // 005A GETNGBL R11 K17
- 0x60300018, // 005B GETGBL R12 G24
- 0x58340012, // 005C LDCONST R13 K18
- 0x88380513, // 005D GETMBR R14 R2 K19
- 0x88381D14, // 005E GETMBR R14 R14 K20
- 0x782A0002, // 005F JMPF R10 #0063
- 0x003E2A0A, // 0060 ADD R15 K21 R10
- 0x003C1F16, // 0061 ADD R15 R15 K22
- 0x70020000, // 0062 JMP #0064
- 0x583C0017, // 0063 LDCONST R15 K23
- 0x003C120F, // 0064 ADD R15 R9 R15
- 0x7C300600, // 0065 CALL R12 3
- 0x5834000E, // 0066 LDCONST R13 K14
- 0x7C2C0400, // 0067 CALL R11 2
- 0x70020008, // 0068 JMP #0072
- 0xB82A2200, // 0069 GETNGBL R10 K17
- 0x602C0018, // 006A GETGBL R11 G24
- 0x58300012, // 006B LDCONST R12 K18
- 0x88340513, // 006C GETMBR R13 R2 K19
- 0x88341B14, // 006D GETMBR R13 R13 K20
- 0x5C381200, // 006E MOVE R14 R9
- 0x7C2C0600, // 006F CALL R11 3
- 0x5830000E, // 0070 LDCONST R12 K14
- 0x7C280400, // 0071 CALL R10 2
- 0x7001FFA4, // 0072 JMP #0018
- 0x58140018, // 0073 LDCONST R5 K24
- 0xAC140200, // 0074 CATCH R5 1 0
- 0xB0080000, // 0075 RAISE 2 R0 R0
- 0x80040600, // 0076 RET 1 R3
- 0x4C0C0000, // 0077 LDNIL R3
- 0x80040600, // 0078 RET 1 R3
+ 0x781A0008, // 00D9 JMPF R6 #00E3
+ 0x8818012A, // 00DA GETMBR R6 R0 K42
+ 0x8C180D20, // 00DB GETMET R6 R6 K32
+ 0xB8220000, // 00DC GETNGBL R8 K0
+ 0x8C20112B, // 00DD GETMET R8 R8 K43
+ 0x5C280200, // 00DE MOVE R10 R1
+ 0x5C2C0A00, // 00DF MOVE R11 R5
+ 0x7C200600, // 00E0 CALL R8 3
+ 0x7C180400, // 00E1 CALL R6 2
+ 0x70020001, // 00E2 JMP #00E5
+ 0x50180000, // 00E3 LDBOOL R6 0 0
+ 0x80040C00, // 00E4 RET 1 R6
+ 0x50180200, // 00E5 LDBOOL R6 1 0
+ 0x80040C00, // 00E6 RET 1 R6
+ 0x80000000, // 00E7 RET 0
})
)
);
@@ -2095,10 +548,331 @@ be_local_closure(class_Matter_IM_write_single_attribute_status_to_bytes, /* na
/********************************************************************
-** Solidified function: send_subscribe_heartbeat
+** Solidified function: subscribe_request
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
+be_local_closure(class_Matter_IM_subscribe_request, /* name */
+ be_nested_proto(
+ 17, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[35]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(SubscribeRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(keep_subscriptions),
+ /* K4 */ be_nested_str_weak(subs_shop),
+ /* K5 */ be_nested_str_weak(remove_by_session),
+ /* K6 */ be_nested_str_weak(session),
+ /* K7 */ be_nested_str_weak(new_subscription),
+ /* K8 */ be_nested_str_weak(tasmota),
+ /* K9 */ be_nested_str_weak(loglevel),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(attributes_requests),
+ /* K12 */ be_nested_str_weak(Path),
+ /* K13 */ be_nested_str_weak(msg),
+ /* K14 */ be_nested_str_weak(endpoint),
+ /* K15 */ be_nested_str_weak(cluster),
+ /* K16 */ be_nested_str_weak(attribute),
+ /* K17 */ be_nested_str_weak(push),
+ /* K18 */ be_nested_str_weak(stop_iteration),
+ /* K19 */ be_nested_str_weak(log),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3ESubscribe_X20_X28_X256i_X29_X20_X25s_X20_X28min_X3D_X25i_X2C_X20max_X3D_X25i_X2C_X20keep_X3D_X25i_X29_X20sub_X3D_X25i_X20fabric_filtered_X3D_X25s),
+ /* K21 */ be_nested_str_weak(local_session_id),
+ /* K22 */ be_nested_str_weak(concat),
+ /* K23 */ be_nested_str_weak(_X20),
+ /* K24 */ be_nested_str_weak(min_interval),
+ /* K25 */ be_nested_str_weak(max_interval),
+ /* K26 */ be_const_int(1),
+ /* K27 */ be_const_int(0),
+ /* K28 */ be_nested_str_weak(subscription_id),
+ /* K29 */ be_nested_str_weak(fabric_filtered),
+ /* K30 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K31 */ be_nested_str_weak(process_read_or_subscribe_request_event_pull),
+ /* K32 */ be_nested_str_weak(set_event_generator_or_arr),
+ /* K33 */ be_nested_str_weak(send_queue),
+ /* K34 */ be_nested_str_weak(IM_SubscribeResponse_Pull),
+ }),
+ be_str_weak(subscribe_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[96]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x88100703, // 0006 GETMBR R4 R3 K3
+ 0x74120003, // 0007 JMPT R4 #000C
+ 0x88100104, // 0008 GETMBR R4 R0 K4
+ 0x8C100905, // 0009 GETMET R4 R4 K5
+ 0x88180306, // 000A GETMBR R6 R1 K6
+ 0x7C100400, // 000B CALL R4 2
+ 0x88100104, // 000C GETMBR R4 R0 K4
+ 0x8C100907, // 000D GETMET R4 R4 K7
+ 0x88180306, // 000E GETMBR R6 R1 K6
+ 0x5C1C0600, // 000F MOVE R7 R3
+ 0x7C100600, // 0010 CALL R4 3
+ 0xB8161000, // 0011 GETNGBL R5 K8
+ 0x8C140B09, // 0012 GETMET R5 R5 K9
+ 0x581C000A, // 0013 LDCONST R7 K10
+ 0x7C140400, // 0014 CALL R5 2
+ 0x78160032, // 0015 JMPF R5 #0049
+ 0x8814070B, // 0016 GETMBR R5 R3 K11
+ 0x4C180000, // 0017 LDNIL R6
+ 0x20140A06, // 0018 NE R5 R5 R6
+ 0x7816002E, // 0019 JMPF R5 #0049
+ 0x60140012, // 001A GETGBL R5 G18
+ 0x7C140000, // 001B CALL R5 0
+ 0xB81A0000, // 001C GETNGBL R6 K0
+ 0x8C180D0C, // 001D GETMET R6 R6 K12
+ 0x7C180200, // 001E CALL R6 1
+ 0x901A1A01, // 001F SETMBR R6 K13 R1
+ 0x601C0010, // 0020 GETGBL R7 G16
+ 0x8820070B, // 0021 GETMBR R8 R3 K11
+ 0x7C1C0200, // 0022 CALL R7 1
+ 0xA802000D, // 0023 EXBLK 0 #0032
+ 0x5C200E00, // 0024 MOVE R8 R7
+ 0x7C200000, // 0025 CALL R8 0
+ 0x8824110E, // 0026 GETMBR R9 R8 K14
+ 0x901A1C09, // 0027 SETMBR R6 K14 R9
+ 0x8824110F, // 0028 GETMBR R9 R8 K15
+ 0x901A1E09, // 0029 SETMBR R6 K15 R9
+ 0x88241110, // 002A GETMBR R9 R8 K16
+ 0x901A2009, // 002B SETMBR R6 K16 R9
+ 0x8C240B11, // 002C GETMET R9 R5 K17
+ 0x602C0008, // 002D GETGBL R11 G8
+ 0x5C300C00, // 002E MOVE R12 R6
+ 0x7C2C0200, // 002F CALL R11 1
+ 0x7C240400, // 0030 CALL R9 2
+ 0x7001FFF1, // 0031 JMP #0024
+ 0x581C0012, // 0032 LDCONST R7 K18
+ 0xAC1C0200, // 0033 CATCH R7 1 0
+ 0xB0080000, // 0034 RAISE 2 R0 R0
+ 0xB81E2600, // 0035 GETNGBL R7 K19
+ 0x60200018, // 0036 GETGBL R8 G24
+ 0x58240014, // 0037 LDCONST R9 K20
+ 0x88280306, // 0038 GETMBR R10 R1 K6
+ 0x88281515, // 0039 GETMBR R10 R10 K21
+ 0x8C2C0B16, // 003A GETMET R11 R5 K22
+ 0x58340017, // 003B LDCONST R13 K23
+ 0x7C2C0400, // 003C CALL R11 2
+ 0x88300918, // 003D GETMBR R12 R4 K24
+ 0x88340919, // 003E GETMBR R13 R4 K25
+ 0x88380703, // 003F GETMBR R14 R3 K3
+ 0x783A0001, // 0040 JMPF R14 #0043
+ 0x5838001A, // 0041 LDCONST R14 K26
+ 0x70020000, // 0042 JMP #0044
+ 0x5838001B, // 0043 LDCONST R14 K27
+ 0x883C091C, // 0044 GETMBR R15 R4 K28
+ 0x8840071D, // 0045 GETMBR R16 R3 K29
+ 0x7C201000, // 0046 CALL R8 8
+ 0x5824000A, // 0047 LDCONST R9 K10
+ 0x7C1C0400, // 0048 CALL R7 2
+ 0x8C14011E, // 0049 GETMET R5 R0 K30
+ 0x5C1C0600, // 004A MOVE R7 R3
+ 0x5C200200, // 004B MOVE R8 R1
+ 0x7C140600, // 004C CALL R5 3
+ 0x8C18011F, // 004D GETMET R6 R0 K31
+ 0x5C200600, // 004E MOVE R8 R3
+ 0x5C240200, // 004F MOVE R9 R1
+ 0x7C180600, // 0050 CALL R6 3
+ 0x8C1C0920, // 0051 GETMET R7 R4 K32
+ 0x5C240C00, // 0052 MOVE R9 R6
+ 0x7C1C0400, // 0053 CALL R7 2
+ 0x881C0121, // 0054 GETMBR R7 R0 K33
+ 0x8C1C0F11, // 0055 GETMET R7 R7 K17
+ 0xB8260000, // 0056 GETNGBL R9 K0
+ 0x8C241322, // 0057 GETMET R9 R9 K34
+ 0x5C2C0200, // 0058 MOVE R11 R1
+ 0x5C300A00, // 0059 MOVE R12 R5
+ 0x5C340C00, // 005A MOVE R13 R6
+ 0x5C380800, // 005B MOVE R14 R4
+ 0x7C240A00, // 005C CALL R9 5
+ 0x7C1C0400, // 005D CALL R7 2
+ 0x501C0200, // 005E LDBOOL R7 1 0
+ 0x80040E00, // 005F RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_read_or_subscribe_request_pull
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_read_or_subscribe_request_pull, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[25]) { /* constants */
+ /* K0 */ be_nested_str_weak(attributes_requests),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(device),
+ /* K6 */ be_nested_str_weak(start),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(cluster),
+ /* K9 */ be_nested_str_weak(attribute),
+ /* K10 */ be_nested_str_weak(fabric_filtered),
+ /* K11 */ be_nested_str_weak(push),
+ /* K12 */ be_nested_str_weak(tasmota),
+ /* K13 */ be_nested_str_weak(loglevel),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(Path),
+ /* K16 */ be_nested_str_weak(get_attribute_name),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s),
+ /* K19 */ be_nested_str_weak(session),
+ /* K20 */ be_nested_str_weak(local_session_id),
+ /* K21 */ be_nested_str_weak(_X20_X28),
+ /* K22 */ be_nested_str_weak(_X29),
+ /* K23 */ be_nested_str_weak(),
+ /* K24 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(process_read_or_subscribe_request_pull),
+ &be_const_str_solidified,
+ ( &(const binstruction[115]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x200C0604, // 0002 NE R3 R3 R4
+ 0x780E006C, // 0003 JMPF R3 #0071
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x88100300, // 0005 GETMBR R4 R1 K0
+ 0x78120003, // 0006 JMPF R4 #000B
+ 0x6010000C, // 0007 GETGBL R4 G12
+ 0x88140300, // 0008 GETMBR R5 R1 K0
+ 0x7C100200, // 0009 CALL R4 1
+ 0x70020000, // 000A JMP #000C
+ 0x58100001, // 000B LDCONST R4 K1
+ 0x24140902, // 000C GT R5 R4 K2
+ 0x78160002, // 000D JMPF R5 #0011
+ 0x60140012, // 000E GETGBL R5 G18
+ 0x7C140000, // 000F CALL R5 0
+ 0x5C0C0A00, // 0010 MOVE R3 R5
+ 0x60140010, // 0011 GETGBL R5 G16
+ 0x88180300, // 0012 GETMBR R6 R1 K0
+ 0x7C140200, // 0013 CALL R5 1
+ 0xA8020057, // 0014 EXBLK 0 #006D
+ 0x5C180A00, // 0015 MOVE R6 R5
+ 0x7C180000, // 0016 CALL R6 0
+ 0xB81E0600, // 0017 GETNGBL R7 K3
+ 0x8C1C0F04, // 0018 GETMET R7 R7 K4
+ 0x88240105, // 0019 GETMBR R9 R0 K5
+ 0x7C1C0400, // 001A CALL R7 2
+ 0x8C200F06, // 001B GETMET R8 R7 K6
+ 0x88280D07, // 001C GETMBR R10 R6 K7
+ 0x882C0D08, // 001D GETMBR R11 R6 K8
+ 0x88300D09, // 001E GETMBR R12 R6 K9
+ 0x8834030A, // 001F GETMBR R13 R1 K10
+ 0x7C200A00, // 0020 CALL R8 5
+ 0x24200902, // 0021 GT R8 R4 K2
+ 0x78220003, // 0022 JMPF R8 #0027
+ 0x8C20070B, // 0023 GETMET R8 R3 K11
+ 0x5C280E00, // 0024 MOVE R10 R7
+ 0x7C200400, // 0025 CALL R8 2
+ 0x70020000, // 0026 JMP #0028
+ 0x5C0C0E00, // 0027 MOVE R3 R7
+ 0xB8221800, // 0028 GETNGBL R8 K12
+ 0x8C20110D, // 0029 GETMET R8 R8 K13
+ 0x5828000E, // 002A LDCONST R10 K14
+ 0x7C200400, // 002B CALL R8 2
+ 0x7822003E, // 002C JMPF R8 #006C
+ 0x88200D07, // 002D GETMBR R8 R6 K7
+ 0x4C240000, // 002E LDNIL R9
+ 0x1C201009, // 002F EQ R8 R8 R9
+ 0x74220007, // 0030 JMPT R8 #0039
+ 0x88200D08, // 0031 GETMBR R8 R6 K8
+ 0x4C240000, // 0032 LDNIL R9
+ 0x1C201009, // 0033 EQ R8 R8 R9
+ 0x74220003, // 0034 JMPT R8 #0039
+ 0x88200D09, // 0035 GETMBR R8 R6 K9
+ 0x4C240000, // 0036 LDNIL R9
+ 0x1C201009, // 0037 EQ R8 R8 R9
+ 0x78220032, // 0038 JMPF R8 #006C
+ 0xB8220600, // 0039 GETNGBL R8 K3
+ 0x8C20110F, // 003A GETMET R8 R8 K15
+ 0x7C200200, // 003B CALL R8 1
+ 0x88240D07, // 003C GETMBR R9 R6 K7
+ 0x90220E09, // 003D SETMBR R8 K7 R9
+ 0x88240D08, // 003E GETMBR R9 R6 K8
+ 0x90221009, // 003F SETMBR R8 K8 R9
+ 0x88240D09, // 0040 GETMBR R9 R6 K9
+ 0x90221209, // 0041 SETMBR R8 K9 R9
+ 0x8824030A, // 0042 GETMBR R9 R1 K10
+ 0x90221409, // 0043 SETMBR R8 K10 R9
+ 0x60240008, // 0044 GETGBL R9 G8
+ 0x5C281000, // 0045 MOVE R10 R8
+ 0x7C240200, // 0046 CALL R9 1
+ 0x88280D08, // 0047 GETMBR R10 R6 K8
+ 0x4C2C0000, // 0048 LDNIL R11
+ 0x2028140B, // 0049 NE R10 R10 R11
+ 0x782A0017, // 004A JMPF R10 #0063
+ 0x88280D09, // 004B GETMBR R10 R6 K9
+ 0x4C2C0000, // 004C LDNIL R11
+ 0x2028140B, // 004D NE R10 R10 R11
+ 0x782A0013, // 004E JMPF R10 #0063
+ 0xB82A0600, // 004F GETNGBL R10 K3
+ 0x8C281510, // 0050 GETMET R10 R10 K16
+ 0x88300D08, // 0051 GETMBR R12 R6 K8
+ 0x88340D09, // 0052 GETMBR R13 R6 K9
+ 0x7C280600, // 0053 CALL R10 3
+ 0xB82E2200, // 0054 GETNGBL R11 K17
+ 0x60300018, // 0055 GETGBL R12 G24
+ 0x58340012, // 0056 LDCONST R13 K18
+ 0x88380513, // 0057 GETMBR R14 R2 K19
+ 0x88381D14, // 0058 GETMBR R14 R14 K20
+ 0x782A0002, // 0059 JMPF R10 #005D
+ 0x003E2A0A, // 005A ADD R15 K21 R10
+ 0x003C1F16, // 005B ADD R15 R15 K22
+ 0x70020000, // 005C JMP #005E
+ 0x583C0017, // 005D LDCONST R15 K23
+ 0x003C120F, // 005E ADD R15 R9 R15
+ 0x7C300600, // 005F CALL R12 3
+ 0x5834000E, // 0060 LDCONST R13 K14
+ 0x7C2C0400, // 0061 CALL R11 2
+ 0x70020008, // 0062 JMP #006C
+ 0xB82A2200, // 0063 GETNGBL R10 K17
+ 0x602C0018, // 0064 GETGBL R11 G24
+ 0x58300012, // 0065 LDCONST R12 K18
+ 0x88340513, // 0066 GETMBR R13 R2 K19
+ 0x88341B14, // 0067 GETMBR R13 R13 K20
+ 0x5C381200, // 0068 MOVE R14 R9
+ 0x7C2C0600, // 0069 CALL R11 3
+ 0x5830000E, // 006A LDCONST R12 K14
+ 0x7C280400, // 006B CALL R10 2
+ 0x7001FFA7, // 006C JMP #0015
+ 0x58140018, // 006D LDCONST R5 K24
+ 0xAC140200, // 006E CATCH R5 1 0
+ 0xB0080000, // 006F RAISE 2 R0 R0
+ 0x80040600, // 0070 RET 1 R3
+ 0x4C0C0000, // 0071 LDNIL R3
+ 0x80040600, // 0072 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_incoming
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_incoming, /* name */
be_nested_proto(
8, /* nstack */
2, /* argc */
@@ -2108,425 +882,157 @@ be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(session),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25s),
- /* K3 */ be_nested_str_weak(local_session_id),
- /* K4 */ be_nested_str_weak(subscription_id),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(is_keep_alive),
- /* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(IM_SubscribedHeartbeat),
- /* K9 */ be_nested_str_weak(_message_handler),
- /* K10 */ be_nested_str_weak(send_queue),
- /* K11 */ be_nested_str_weak(push),
- /* K12 */ be_nested_str_weak(send_enqueued),
+ ( &(const bvalue[22]) { /* constants */
+ /* K0 */ be_nested_str_weak(opcode),
+ /* K1 */ be_const_int(2),
+ /* K2 */ be_nested_str_weak(read_request_solo),
+ /* K3 */ be_nested_str_weak(from_raw),
+ /* K4 */ be_nested_str_weak(raw),
+ /* K5 */ be_nested_str_weak(app_payload_idx),
+ /* K6 */ be_nested_str_weak(process_read_request_solo),
+ /* K7 */ be_nested_str_weak(invoke_request_solo),
+ /* K8 */ be_nested_str_weak(process_invoke_request_solo),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(TLV),
+ /* K11 */ be_nested_str_weak(parse),
+ /* K12 */ be_const_int(1),
+ /* K13 */ be_nested_str_weak(process_status_response),
+ /* K14 */ be_nested_str_weak(process_read_request_pull),
+ /* K15 */ be_const_int(3),
+ /* K16 */ be_nested_str_weak(send_ack_now),
+ /* K17 */ be_nested_str_weak(subscribe_request),
+ /* K18 */ be_nested_str_weak(process_write_request),
+ /* K19 */ be_nested_str_weak(process_write_response),
+ /* K20 */ be_nested_str_weak(process_invoke_request),
+ /* K21 */ be_nested_str_weak(process_timed_request),
}),
- be_str_weak(send_subscribe_heartbeat),
+ be_str_weak(process_incoming),
&be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
+ ( &(const binstruction[124]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
- 0xB80E0200, // 0001 GETNGBL R3 K1
- 0x60100018, // 0002 GETGBL R4 G24
- 0x58140002, // 0003 LDCONST R5 K2
- 0x88180503, // 0004 GETMBR R6 R2 K3
- 0x881C0304, // 0005 GETMBR R7 R1 K4
- 0x7C100600, // 0006 CALL R4 3
- 0x58140005, // 0007 LDCONST R5 K5
- 0x7C0C0400, // 0008 CALL R3 2
- 0x500C0200, // 0009 LDBOOL R3 1 0
- 0x90060C03, // 000A SETMBR R1 K6 R3
- 0xB80E0E00, // 000B GETNGBL R3 K7
- 0x8C0C0708, // 000C GETMET R3 R3 K8
- 0x88140509, // 000D GETMBR R5 R2 K9
- 0x5C180400, // 000E MOVE R6 R2
- 0x5C1C0200, // 000F MOVE R7 R1
- 0x7C0C0800, // 0010 CALL R3 4
- 0x8810010A, // 0011 GETMBR R4 R0 K10
- 0x8C10090B, // 0012 GETMET R4 R4 K11
- 0x5C180600, // 0013 MOVE R6 R3
- 0x7C100400, // 0014 CALL R4 2
- 0x8C10010C, // 0015 GETMET R4 R0 K12
- 0x88180509, // 0016 GETMBR R6 R2 K9
- 0x7C100400, // 0017 CALL R4 2
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attributedata2raw
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_attributedata2raw, /* name */
- be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(355795236),
- /* K2 */ be_const_int(1),
- /* K3 */ be_nested_str_weak(path2raw),
- /* K4 */ be_nested_str_weak(tag_sub),
- /* K5 */ be_const_int(2),
- /* K6 */ be_nested_str_weak(tlv2raw),
- }),
- be_str_weak(attributedata2raw),
- &be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C140300, // 0000 GETMET R5 R1 K0
- 0x581C0001, // 0001 LDCONST R7 K1
- 0x5421FFFB, // 0002 LDINT R8 -4
- 0x7C140600, // 0003 CALL R5 3
- 0x8C140300, // 0004 GETMET R5 R1 K0
- 0x581C0002, // 0005 LDCONST R7 K2
- 0x5421FFFD, // 0006 LDINT R8 -2
- 0x7C140600, // 0007 CALL R5 3
- 0x8C140103, // 0008 GETMET R5 R0 K3
- 0x5C1C0200, // 0009 MOVE R7 R1
- 0x5C200400, // 000A MOVE R8 R2
- 0x58240002, // 000B LDCONST R9 K2
- 0x5C280800, // 000C MOVE R10 R4
- 0x7C140A00, // 000D CALL R5 5
- 0x900E0905, // 000E SETMBR R3 K4 K5
- 0x8C140706, // 000F GETMET R5 R3 K6
- 0x5C1C0200, // 0010 MOVE R7 R1
- 0x7C140400, // 0011 CALL R5 2
- 0x8C140300, // 0012 GETMET R5 R1 K0
- 0x541E1817, // 0013 LDINT R7 6168
- 0x5421FFFD, // 0014 LDINT R8 -2
- 0x7C140600, // 0015 CALL R5 3
- 0x80000000, // 0016 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: attributestatus2raw
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_attributestatus2raw, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(add),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(path2raw),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(status),
- /* K5 */ be_const_int(2),
- }),
- be_str_weak(attributestatus2raw),
- &be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
- 0x8C100300, // 0000 GETMET R4 R1 K0
- 0x541A0014, // 0001 LDINT R6 21
- 0x581C0001, // 0002 LDCONST R7 K1
- 0x7C100600, // 0003 CALL R4 3
- 0x8C100300, // 0004 GETMET R4 R1 K0
- 0x541A34FF, // 0005 LDINT R6 13568
- 0x541DFFFD, // 0006 LDINT R7 -2
- 0x7C100600, // 0007 CALL R4 3
- 0x8C100102, // 0008 GETMET R4 R0 K2
- 0x5C180200, // 0009 MOVE R6 R1
- 0x5C1C0400, // 000A MOVE R7 R2
- 0x58200003, // 000B LDCONST R8 K3
- 0x7C100800, // 000C CALL R4 4
- 0x8C100300, // 000D GETMET R4 R1 K0
- 0x541A3500, // 000E LDINT R6 13569
- 0x541DFFFD, // 000F LDINT R7 -2
- 0x7C100600, // 0010 CALL R4 3
- 0x88100504, // 0011 GETMBR R4 R2 K4
- 0x541600FE, // 0012 LDINT R5 255
- 0x18100805, // 0013 LE R4 R4 R5
- 0x78120008, // 0014 JMPF R4 #001E
- 0x8C100300, // 0015 GETMET R4 R1 K0
- 0x541A23FF, // 0016 LDINT R6 9216
- 0x541DFFFD, // 0017 LDINT R7 -2
- 0x7C100600, // 0018 CALL R4 3
- 0x8C100300, // 0019 GETMET R4 R1 K0
- 0x88180504, // 001A GETMBR R6 R2 K4
- 0x581C0001, // 001B LDCONST R7 K1
- 0x7C100600, // 001C CALL R4 3
- 0x70020007, // 001D JMP #0026
- 0x8C100300, // 001E GETMET R4 R1 K0
- 0x541A24FF, // 001F LDINT R6 9472
- 0x541DFFFD, // 0020 LDINT R7 -2
- 0x7C100600, // 0021 CALL R4 3
- 0x8C100300, // 0022 GETMET R4 R1 K0
- 0x88180504, // 0023 GETMBR R6 R2 K4
- 0x581C0005, // 0024 LDCONST R7 K5
- 0x7C100600, // 0025 CALL R4 3
- 0x8C100300, // 0026 GETMET R4 R1 K0
- 0x541A1817, // 0027 LDINT R6 6168
- 0x541DFFFD, // 0028 LDINT R7 -2
- 0x7C100600, // 0029 CALL R4 3
- 0x8C100300, // 002A GETMET R4 R1 K0
- 0x541A0017, // 002B LDINT R6 24
- 0x581C0001, // 002C LDCONST R7 K1
- 0x7C100600, // 002D CALL R4 3
- 0x80000000, // 002E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_write_request
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_write_request, /* name */
- be_nested_proto(
- 21, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[39]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(WriteRequestMessage),
- /* K2 */ be_nested_str_weak(from_TLV),
- /* K3 */ be_nested_str_weak(Path),
- /* K4 */ be_nested_str_weak(suppress_response),
- /* K5 */ be_nested_str_weak(write_requests),
- /* K6 */ be_nested_str_weak(WriteResponseMessage),
- /* K7 */ be_nested_str_weak(write_responses),
- /* K8 */ be_nested_str_weak(PathGenerator),
- /* K9 */ be_nested_str_weak(device),
- /* K10 */ be_nested_str_weak(path),
- /* K11 */ be_nested_str_weak(data),
- /* K12 */ be_nested_str_weak(copy),
- /* K13 */ be_nested_str_weak(cluster),
- /* K14 */ be_nested_str_weak(attribute),
- /* K15 */ be_nested_str_weak(status),
- /* K16 */ be_nested_str_weak(INVALID_ACTION),
- /* K17 */ be_nested_str_weak(write_single_attribute_status_to_bytes),
- /* K18 */ be_nested_str_weak(endpoint),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(loglevel),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(get_attribute_name),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
- /* K25 */ be_nested_str_weak(_X20_X28),
- /* K26 */ be_nested_str_weak(_X29),
- /* K27 */ be_nested_str_weak(),
- /* K28 */ be_nested_str_weak(start),
- /* K29 */ be_nested_str_weak(is_direct),
- /* K30 */ be_nested_str_weak(next),
- /* K31 */ be_nested_str_weak(msg),
- /* K32 */ be_nested_str_weak(get_pi),
- /* K33 */ be_nested_str_weak(UNSUPPORTED_WRITE),
- /* K34 */ be_nested_str_weak(write_attribute),
- /* K35 */ be_nested_str_weak(session),
- /* K36 */ be_nested_str_weak(SUCCESS),
- /* K37 */ be_nested_str_weak(stop_iteration),
- /* K38 */ be_nested_str_weak(send_write_response),
- }),
- be_str_weak(process_write_request),
- &be_const_str_solidified,
- ( &(const binstruction[141]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0702, // 0003 GETMET R3 R3 K2
- 0x5C140400, // 0004 MOVE R5 R2
- 0x7C0C0400, // 0005 CALL R3 2
- 0xB8120000, // 0006 GETNGBL R4 K0
- 0x8C100903, // 0007 GETMET R4 R4 K3
- 0x7C100200, // 0008 CALL R4 1
- 0x88140704, // 0009 GETMBR R5 R3 K4
- 0x88180705, // 000A GETMBR R6 R3 K5
- 0x4C1C0000, // 000B LDNIL R7
- 0x20180C07, // 000C NE R6 R6 R7
- 0x781A007C, // 000D JMPF R6 #008B
- 0xB81A0000, // 000E GETNGBL R6 K0
- 0x8C180D06, // 000F GETMET R6 R6 K6
- 0x7C180200, // 0010 CALL R6 1
- 0x601C0012, // 0011 GETGBL R7 G18
- 0x7C1C0000, // 0012 CALL R7 0
- 0x901A0E07, // 0013 SETMBR R6 K7 R7
- 0xB81E0000, // 0014 GETNGBL R7 K0
- 0x8C1C0F08, // 0015 GETMET R7 R7 K8
- 0x88240109, // 0016 GETMBR R9 R0 K9
- 0x7C1C0400, // 0017 CALL R7 2
- 0x60200010, // 0018 GETGBL R8 G16
- 0x88240705, // 0019 GETMBR R9 R3 K5
- 0x7C200200, // 001A CALL R8 1
- 0xA8020065, // 001B EXBLK 0 #0082
- 0x5C241000, // 001C MOVE R9 R8
- 0x7C240000, // 001D CALL R9 0
- 0x8828130A, // 001E GETMBR R10 R9 K10
- 0x882C130B, // 001F GETMBR R11 R9 K11
- 0x8C30090C, // 0020 GETMET R12 R4 K12
- 0x5C381400, // 0021 MOVE R14 R10
- 0x7C300400, // 0022 CALL R12 2
- 0x8830150D, // 0023 GETMBR R12 R10 K13
- 0x4C340000, // 0024 LDNIL R13
- 0x1C30180D, // 0025 EQ R12 R12 R13
- 0x74320003, // 0026 JMPT R12 #002B
- 0x8830150E, // 0027 GETMBR R12 R10 K14
- 0x4C340000, // 0028 LDNIL R13
- 0x1C30180D, // 0029 EQ R12 R12 R13
- 0x78320008, // 002A JMPF R12 #0034
- 0xB8320000, // 002B GETNGBL R12 K0
- 0x88301910, // 002C GETMBR R12 R12 K16
- 0x90121E0C, // 002D SETMBR R4 K15 R12
- 0x8C300111, // 002E GETMET R12 R0 K17
- 0x5C380C00, // 002F MOVE R14 R6
- 0x5C3C0800, // 0030 MOVE R15 R4
- 0x4C400000, // 0031 LDNIL R16
- 0x7C300800, // 0032 CALL R12 4
- 0x7001FFE7, // 0033 JMP #001C
- 0x88301512, // 0034 GETMBR R12 R10 K18
- 0x4C340000, // 0035 LDNIL R13
- 0x1C30180D, // 0036 EQ R12 R12 R13
- 0x78320016, // 0037 JMPF R12 #004F
- 0xB8322600, // 0038 GETNGBL R12 K19
- 0x8C301914, // 0039 GETMET R12 R12 K20
- 0x58380015, // 003A LDCONST R14 K21
- 0x7C300400, // 003B CALL R12 2
- 0x78320011, // 003C JMPF R12 #004F
- 0xB8320000, // 003D GETNGBL R12 K0
- 0x8C301916, // 003E GETMET R12 R12 K22
- 0x8838150D, // 003F GETMBR R14 R10 K13
- 0x883C150E, // 0040 GETMBR R15 R10 K14
- 0x7C300600, // 0041 CALL R12 3
- 0xB8362E00, // 0042 GETNGBL R13 K23
- 0x60380008, // 0043 GETGBL R14 G8
- 0x5C3C0800, // 0044 MOVE R15 R4
- 0x7C380200, // 0045 CALL R14 1
- 0x003A300E, // 0046 ADD R14 K24 R14
- 0x78320002, // 0047 JMPF R12 #004B
- 0x003E320C, // 0048 ADD R15 K25 R12
- 0x003C1F1A, // 0049 ADD R15 R15 K26
- 0x70020000, // 004A JMP #004C
- 0x583C001B, // 004B LDCONST R15 K27
- 0x00381C0F, // 004C ADD R14 R14 R15
- 0x583C0015, // 004D LDCONST R15 K21
- 0x7C340400, // 004E CALL R13 2
- 0x8C300F1C, // 004F GETMET R12 R7 K28
- 0x88381512, // 0050 GETMBR R14 R10 K18
- 0x883C150D, // 0051 GETMBR R15 R10 K13
- 0x8840150E, // 0052 GETMBR R16 R10 K14
- 0x7C300800, // 0053 CALL R12 4
- 0x8C300F1D, // 0054 GETMET R12 R7 K29
- 0x7C300200, // 0055 CALL R12 1
- 0x4C340000, // 0056 LDNIL R13
- 0x8C380F1E, // 0057 GETMET R14 R7 K30
- 0x7C380200, // 0058 CALL R14 1
- 0x5C341C00, // 0059 MOVE R13 R14
- 0x783A0025, // 005A JMPF R14 #0081
- 0x90363E01, // 005B SETMBR R13 K31 R1
- 0x88381B0F, // 005C GETMBR R14 R13 K15
- 0x4C3C0000, // 005D LDNIL R15
- 0x20381C0F, // 005E NE R14 R14 R15
- 0x783A0007, // 005F JMPF R14 #0068
- 0x4C380000, // 0060 LDNIL R14
- 0x90361E0E, // 0061 SETMBR R13 K15 R14
- 0x8C380111, // 0062 GETMET R14 R0 K17
- 0x5C400C00, // 0063 MOVE R16 R6
- 0x5C441A00, // 0064 MOVE R17 R13
- 0x5C481600, // 0065 MOVE R18 R11
- 0x7C380800, // 0066 CALL R14 4
- 0x70020017, // 0067 JMP #0080
- 0x8C380F20, // 0068 GETMET R14 R7 K32
- 0x7C380200, // 0069 CALL R14 1
- 0xB83E0000, // 006A GETNGBL R15 K0
- 0x883C1F21, // 006B GETMBR R15 R15 K33
- 0x90361E0F, // 006C SETMBR R13 K15 R15
- 0x4C3C0000, // 006D LDNIL R15
- 0x203C1C0F, // 006E NE R15 R14 R15
- 0x783E0005, // 006F JMPF R15 #0076
- 0x8C3C1D22, // 0070 GETMET R15 R14 K34
- 0x88440323, // 0071 GETMBR R17 R1 K35
- 0x5C481A00, // 0072 MOVE R18 R13
- 0x5C4C1600, // 0073 MOVE R19 R11
- 0x7C3C0800, // 0074 CALL R15 4
- 0x70020000, // 0075 JMP #0077
- 0x4C3C0000, // 0076 LDNIL R15
- 0x783E0002, // 0077 JMPF R15 #007B
- 0xB8420000, // 0078 GETNGBL R16 K0
- 0x88402124, // 0079 GETMBR R16 R16 K36
- 0x90361E10, // 007A SETMBR R13 K15 R16
- 0x8C400111, // 007B GETMET R16 R0 K17
- 0x5C480C00, // 007C MOVE R18 R6
- 0x5C4C1A00, // 007D MOVE R19 R13
- 0x5C501600, // 007E MOVE R20 R11
- 0x7C400800, // 007F CALL R16 4
- 0x7001FFD5, // 0080 JMP #0057
- 0x7001FF99, // 0081 JMP #001C
- 0x58200025, // 0082 LDCONST R8 K37
- 0xAC200200, // 0083 CATCH R8 1 0
- 0xB0080000, // 0084 RAISE 2 R0 R0
- 0x5C200A00, // 0085 MOVE R8 R5
- 0x74220003, // 0086 JMPT R8 #008B
- 0x8C200126, // 0087 GETMET R8 R0 K38
- 0x5C280200, // 0088 MOVE R10 R1
- 0x5C2C0C00, // 0089 MOVE R11 R6
- 0x7C200600, // 008A CALL R8 3
- 0x50180200, // 008B LDBOOL R6 1 0
- 0x80040C00, // 008C RET 1 R6
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: send_report_data_pull
-********************************************************************/
-extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_report_data_pull, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(send_queue),
- /* K1 */ be_nested_str_weak(push),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_ReportData_Pull),
- }),
- be_str_weak(send_report_data_pull),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0xB8160400, // 0002 GETNGBL R5 K2
- 0x8C140B03, // 0003 GETMET R5 R5 K3
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x5C200400, // 0005 MOVE R8 R2
- 0x7C140600, // 0006 CALL R5 3
- 0x7C0C0400, // 0007 CALL R3 2
- 0x80000000, // 0008 RET 0
+ 0x1C0C0501, // 0001 EQ R3 R2 K1
+ 0x780E000D, // 0002 JMPF R3 #0011
+ 0x880C0102, // 0003 GETMBR R3 R0 K2
+ 0x8C0C0703, // 0004 GETMET R3 R3 K3
+ 0x88140304, // 0005 GETMBR R5 R1 K4
+ 0x88180305, // 0006 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0007 CALL R3 3
+ 0x4C100000, // 0008 LDNIL R4
+ 0x20100604, // 0009 NE R4 R3 R4
+ 0x78120004, // 000A JMPF R4 #0010
+ 0x8C100106, // 000B GETMET R4 R0 K6
+ 0x5C180200, // 000C MOVE R6 R1
+ 0x5C1C0600, // 000D MOVE R7 R3
+ 0x7C100600, // 000E CALL R4 3
+ 0x80040800, // 000F RET 1 R4
+ 0x7002000F, // 0010 JMP #0021
+ 0x540E0007, // 0011 LDINT R3 8
+ 0x1C0C0403, // 0012 EQ R3 R2 R3
+ 0x780E000C, // 0013 JMPF R3 #0021
+ 0x880C0107, // 0014 GETMBR R3 R0 K7
+ 0x8C0C0703, // 0015 GETMET R3 R3 K3
+ 0x88140304, // 0016 GETMBR R5 R1 K4
+ 0x88180305, // 0017 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0018 CALL R3 3
+ 0x4C100000, // 0019 LDNIL R4
+ 0x20100604, // 001A NE R4 R3 R4
+ 0x78120004, // 001B JMPF R4 #0021
+ 0x8C100108, // 001C GETMET R4 R0 K8
+ 0x5C180200, // 001D MOVE R6 R1
+ 0x5C1C0600, // 001E MOVE R7 R3
+ 0x7C100600, // 001F CALL R4 3
+ 0x80040800, // 0020 RET 1 R4
+ 0xB80E1200, // 0021 GETNGBL R3 K9
+ 0x880C070A, // 0022 GETMBR R3 R3 K10
+ 0x8C0C070B, // 0023 GETMET R3 R3 K11
+ 0x88140304, // 0024 GETMBR R5 R1 K4
+ 0x88180305, // 0025 GETMBR R6 R1 K5
+ 0x7C0C0600, // 0026 CALL R3 3
+ 0x1C10050C, // 0027 EQ R4 R2 K12
+ 0x78120005, // 0028 JMPF R4 #002F
+ 0x8C10010D, // 0029 GETMET R4 R0 K13
+ 0x5C180200, // 002A MOVE R6 R1
+ 0x5C1C0600, // 002B MOVE R7 R3
+ 0x7C100600, // 002C CALL R4 3
+ 0x80040800, // 002D RET 1 R4
+ 0x7002004A, // 002E JMP #007A
+ 0x1C100501, // 002F EQ R4 R2 K1
+ 0x78120005, // 0030 JMPF R4 #0037
+ 0x8C10010E, // 0031 GETMET R4 R0 K14
+ 0x5C180200, // 0032 MOVE R6 R1
+ 0x5C1C0600, // 0033 MOVE R7 R3
+ 0x7C100600, // 0034 CALL R4 3
+ 0x80040800, // 0035 RET 1 R4
+ 0x70020042, // 0036 JMP #007A
+ 0x1C10050F, // 0037 EQ R4 R2 K15
+ 0x78120008, // 0038 JMPF R4 #0042
+ 0x8C100110, // 0039 GETMET R4 R0 K16
+ 0x5C180200, // 003A MOVE R6 R1
+ 0x7C100400, // 003B CALL R4 2
+ 0x8C100111, // 003C GETMET R4 R0 K17
+ 0x5C180200, // 003D MOVE R6 R1
+ 0x5C1C0600, // 003E MOVE R7 R3
+ 0x7C100600, // 003F CALL R4 3
+ 0x80040800, // 0040 RET 1 R4
+ 0x70020037, // 0041 JMP #007A
+ 0x54120003, // 0042 LDINT R4 4
+ 0x1C100404, // 0043 EQ R4 R2 R4
+ 0x78120002, // 0044 JMPF R4 #0048
+ 0x50100000, // 0045 LDBOOL R4 0 0
+ 0x80040800, // 0046 RET 1 R4
+ 0x70020031, // 0047 JMP #007A
+ 0x54120004, // 0048 LDINT R4 5
+ 0x1C100404, // 0049 EQ R4 R2 R4
+ 0x78120002, // 004A JMPF R4 #004E
+ 0x50100000, // 004B LDBOOL R4 0 0
+ 0x80040800, // 004C RET 1 R4
+ 0x7002002B, // 004D JMP #007A
+ 0x54120005, // 004E LDINT R4 6
+ 0x1C100404, // 004F EQ R4 R2 R4
+ 0x78120008, // 0050 JMPF R4 #005A
+ 0x8C100110, // 0051 GETMET R4 R0 K16
+ 0x5C180200, // 0052 MOVE R6 R1
+ 0x7C100400, // 0053 CALL R4 2
+ 0x8C100112, // 0054 GETMET R4 R0 K18
+ 0x5C180200, // 0055 MOVE R6 R1
+ 0x5C1C0600, // 0056 MOVE R7 R3
+ 0x7C100600, // 0057 CALL R4 3
+ 0x80040800, // 0058 RET 1 R4
+ 0x7002001F, // 0059 JMP #007A
+ 0x54120006, // 005A LDINT R4 7
+ 0x1C100404, // 005B EQ R4 R2 R4
+ 0x78120005, // 005C JMPF R4 #0063
+ 0x8C100113, // 005D GETMET R4 R0 K19
+ 0x5C180200, // 005E MOVE R6 R1
+ 0x5C1C0600, // 005F MOVE R7 R3
+ 0x7C100600, // 0060 CALL R4 3
+ 0x80040800, // 0061 RET 1 R4
+ 0x70020016, // 0062 JMP #007A
+ 0x54120007, // 0063 LDINT R4 8
+ 0x1C100404, // 0064 EQ R4 R2 R4
+ 0x78120005, // 0065 JMPF R4 #006C
+ 0x8C100114, // 0066 GETMET R4 R0 K20
+ 0x5C180200, // 0067 MOVE R6 R1
+ 0x5C1C0600, // 0068 MOVE R7 R3
+ 0x7C100600, // 0069 CALL R4 3
+ 0x80040800, // 006A RET 1 R4
+ 0x7002000D, // 006B JMP #007A
+ 0x54120008, // 006C LDINT R4 9
+ 0x1C100404, // 006D EQ R4 R2 R4
+ 0x78120002, // 006E JMPF R4 #0072
+ 0x50100000, // 006F LDBOOL R4 0 0
+ 0x80040800, // 0070 RET 1 R4
+ 0x70020007, // 0071 JMP #007A
+ 0x54120009, // 0072 LDINT R4 10
+ 0x1C100404, // 0073 EQ R4 R2 R4
+ 0x78120004, // 0074 JMPF R4 #007A
+ 0x8C100115, // 0075 GETMET R4 R0 K21
+ 0x5C180200, // 0076 MOVE R6 R1
+ 0x5C1C0600, // 0077 MOVE R7 R3
+ 0x7C100600, // 0078 CALL R4 3
+ 0x80040800, // 0079 RET 1 R4
+ 0x50100000, // 007A LDBOOL R4 0 0
+ 0x80040800, // 007B RET 1 R4
})
)
);
@@ -2803,6 +1309,527 @@ be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: invokeresponse2raw
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(command),
+ /* K6 */ be_nested_str_weak(status),
+ /* K7 */ be_nested_str_weak(matter),
+ /* K8 */ be_nested_str_weak(SUCCESS),
+ /* K9 */ be_nested_str_weak(tag_sub),
+ /* K10 */ be_nested_str_weak(tlv2raw),
+ }),
+ be_str_weak(invokeresponse2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[148]) { /* code */
+ 0x8C100300, // 0000 GETMET R4 R1 K0
+ 0x541A0014, // 0001 LDINT R6 21
+ 0x581C0001, // 0002 LDCONST R7 K1
+ 0x7C100600, // 0003 CALL R4 3
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120004, // 0006 JMPF R4 #000C
+ 0x8C100300, // 0007 GETMET R4 R1 K0
+ 0x541A3500, // 0008 LDINT R6 13569
+ 0x541DFFFD, // 0009 LDINT R7 -2
+ 0x7C100600, // 000A CALL R4 3
+ 0x70020003, // 000B JMP #0010
+ 0x8C100300, // 000C GETMET R4 R1 K0
+ 0x541A34FF, // 000D LDINT R6 13568
+ 0x541DFFFD, // 000E LDINT R7 -2
+ 0x7C100600, // 000F CALL R4 3
+ 0x8C100300, // 0010 GETMET R4 R1 K0
+ 0x541A36FF, // 0011 LDINT R6 14080
+ 0x541DFFFD, // 0012 LDINT R7 -2
+ 0x7C100600, // 0013 CALL R4 3
+ 0x88100502, // 0014 GETMBR R4 R2 K2
+ 0x541600FE, // 0015 LDINT R5 255
+ 0x18100805, // 0016 LE R4 R4 R5
+ 0x78120008, // 0017 JMPF R4 #0021
+ 0x8C100300, // 0018 GETMET R4 R1 K0
+ 0x541A23FF, // 0019 LDINT R6 9216
+ 0x541DFFFD, // 001A LDINT R7 -2
+ 0x7C100600, // 001B CALL R4 3
+ 0x8C100300, // 001C GETMET R4 R1 K0
+ 0x88180502, // 001D GETMBR R6 R2 K2
+ 0x581C0001, // 001E LDCONST R7 K1
+ 0x7C100600, // 001F CALL R4 3
+ 0x70020007, // 0020 JMP #0029
+ 0x8C100300, // 0021 GETMET R4 R1 K0
+ 0x541A24FF, // 0022 LDINT R6 9472
+ 0x541DFFFD, // 0023 LDINT R7 -2
+ 0x7C100600, // 0024 CALL R4 3
+ 0x8C100300, // 0025 GETMET R4 R1 K0
+ 0x88180502, // 0026 GETMBR R6 R2 K2
+ 0x581C0003, // 0027 LDCONST R7 K3
+ 0x7C100600, // 0028 CALL R4 3
+ 0x88100504, // 0029 GETMBR R4 R2 K4
+ 0x541600FE, // 002A LDINT R5 255
+ 0x18100805, // 002B LE R4 R4 R5
+ 0x78120008, // 002C JMPF R4 #0036
+ 0x8C100300, // 002D GETMET R4 R1 K0
+ 0x541A2400, // 002E LDINT R6 9217
+ 0x541DFFFD, // 002F LDINT R7 -2
+ 0x7C100600, // 0030 CALL R4 3
+ 0x8C100300, // 0031 GETMET R4 R1 K0
+ 0x88180504, // 0032 GETMBR R6 R2 K4
+ 0x581C0001, // 0033 LDCONST R7 K1
+ 0x7C100600, // 0034 CALL R4 3
+ 0x70020014, // 0035 JMP #004B
+ 0x88100504, // 0036 GETMBR R4 R2 K4
+ 0x5416FFFE, // 0037 LDINT R5 65535
+ 0x18100805, // 0038 LE R4 R4 R5
+ 0x78120008, // 0039 JMPF R4 #0043
+ 0x8C100300, // 003A GETMET R4 R1 K0
+ 0x541A2500, // 003B LDINT R6 9473
+ 0x541DFFFD, // 003C LDINT R7 -2
+ 0x7C100600, // 003D CALL R4 3
+ 0x8C100300, // 003E GETMET R4 R1 K0
+ 0x88180504, // 003F GETMBR R6 R2 K4
+ 0x581C0003, // 0040 LDCONST R7 K3
+ 0x7C100600, // 0041 CALL R4 3
+ 0x70020007, // 0042 JMP #004B
+ 0x8C100300, // 0043 GETMET R4 R1 K0
+ 0x541A2600, // 0044 LDINT R6 9729
+ 0x541DFFFD, // 0045 LDINT R7 -2
+ 0x7C100600, // 0046 CALL R4 3
+ 0x8C100300, // 0047 GETMET R4 R1 K0
+ 0x88180504, // 0048 GETMBR R6 R2 K4
+ 0x541E0003, // 0049 LDINT R7 4
+ 0x7C100600, // 004A CALL R4 3
+ 0x88100505, // 004B GETMBR R4 R2 K5
+ 0x541600FE, // 004C LDINT R5 255
+ 0x18100805, // 004D LE R4 R4 R5
+ 0x78120008, // 004E JMPF R4 #0058
+ 0x8C100300, // 004F GETMET R4 R1 K0
+ 0x541A2401, // 0050 LDINT R6 9218
+ 0x541DFFFD, // 0051 LDINT R7 -2
+ 0x7C100600, // 0052 CALL R4 3
+ 0x8C100300, // 0053 GETMET R4 R1 K0
+ 0x88180505, // 0054 GETMBR R6 R2 K5
+ 0x581C0001, // 0055 LDCONST R7 K1
+ 0x7C100600, // 0056 CALL R4 3
+ 0x70020014, // 0057 JMP #006D
+ 0x88100505, // 0058 GETMBR R4 R2 K5
+ 0x5416FFFE, // 0059 LDINT R5 65535
+ 0x18100805, // 005A LE R4 R4 R5
+ 0x78120008, // 005B JMPF R4 #0065
+ 0x8C100300, // 005C GETMET R4 R1 K0
+ 0x541A2501, // 005D LDINT R6 9474
+ 0x541DFFFD, // 005E LDINT R7 -2
+ 0x7C100600, // 005F CALL R4 3
+ 0x8C100300, // 0060 GETMET R4 R1 K0
+ 0x88180505, // 0061 GETMBR R6 R2 K5
+ 0x581C0003, // 0062 LDCONST R7 K3
+ 0x7C100600, // 0063 CALL R4 3
+ 0x70020007, // 0064 JMP #006D
+ 0x8C100300, // 0065 GETMET R4 R1 K0
+ 0x541A2601, // 0066 LDINT R6 9730
+ 0x541DFFFD, // 0067 LDINT R7 -2
+ 0x7C100600, // 0068 CALL R4 3
+ 0x8C100300, // 0069 GETMET R4 R1 K0
+ 0x88180505, // 006A GETMBR R6 R2 K5
+ 0x541E0003, // 006B LDINT R7 4
+ 0x7C100600, // 006C CALL R4 3
+ 0x8C100300, // 006D GETMET R4 R1 K0
+ 0x541A0017, // 006E LDINT R6 24
+ 0x581C0001, // 006F LDCONST R7 K1
+ 0x7C100600, // 0070 CALL R4 3
+ 0x4C100000, // 0071 LDNIL R4
+ 0x1C100604, // 0072 EQ R4 R3 R4
+ 0x78120016, // 0073 JMPF R4 #008B
+ 0x88100506, // 0074 GETMBR R4 R2 K6
+ 0x4C140000, // 0075 LDNIL R5
+ 0x1C140805, // 0076 EQ R5 R4 R5
+ 0x78160001, // 0077 JMPF R5 #007A
+ 0xB8160E00, // 0078 GETNGBL R5 K7
+ 0x88100B08, // 0079 GETMBR R4 R5 K8
+ 0x8C140300, // 007A GETMET R5 R1 K0
+ 0x541E3500, // 007B LDINT R7 13569
+ 0x5421FFFD, // 007C LDINT R8 -2
+ 0x7C140600, // 007D CALL R5 3
+ 0x8C140300, // 007E GETMET R5 R1 K0
+ 0x541E23FF, // 007F LDINT R7 9216
+ 0x5421FFFD, // 0080 LDINT R8 -2
+ 0x7C140600, // 0081 CALL R5 3
+ 0x8C140300, // 0082 GETMET R5 R1 K0
+ 0x881C0506, // 0083 GETMBR R7 R2 K6
+ 0x58200001, // 0084 LDCONST R8 K1
+ 0x7C140600, // 0085 CALL R5 3
+ 0x8C140300, // 0086 GETMET R5 R1 K0
+ 0x541E0017, // 0087 LDINT R7 24
+ 0x58200001, // 0088 LDCONST R8 K1
+ 0x7C140600, // 0089 CALL R5 3
+ 0x70020003, // 008A JMP #008F
+ 0x900E1301, // 008B SETMBR R3 K9 K1
+ 0x8C10070A, // 008C GETMET R4 R3 K10
+ 0x5C180200, // 008D MOVE R6 R1
+ 0x7C100400, // 008E CALL R4 2
+ 0x8C100300, // 008F GETMET R4 R1 K0
+ 0x541A1817, // 0090 LDINT R6 6168
+ 0x541DFFFD, // 0091 LDINT R7 -2
+ 0x7C100600, // 0092 CALL R4 3
+ 0x80000000, // 0093 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: expire_sendqueue
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_expire_sendqueue, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(time_reached),
+ /* K4 */ be_nested_str_weak(expiration),
+ /* K5 */ be_nested_str_weak(reached_timeout),
+ /* K6 */ be_nested_str_weak(remove),
+ /* K7 */ be_const_int(1),
+ }),
+ be_str_weak(expire_sendqueue),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0101, // 0002 GETMBR R3 R0 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x14080202, // 0004 LT R2 R1 R2
+ 0x780A000F, // 0005 JMPF R2 #0016
+ 0x88080101, // 0006 GETMBR R2 R0 K1
+ 0x94080401, // 0007 GETIDX R2 R2 R1
+ 0xB80E0400, // 0008 GETNGBL R3 K2
+ 0x8C0C0703, // 0009 GETMET R3 R3 K3
+ 0x88140504, // 000A GETMBR R5 R2 K4
+ 0x7C0C0400, // 000B CALL R3 2
+ 0x780E0006, // 000C JMPF R3 #0014
+ 0x8C0C0505, // 000D GETMET R3 R2 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0x880C0101, // 000F GETMBR R3 R0 K1
+ 0x8C0C0706, // 0010 GETMET R3 R3 K6
+ 0x5C140200, // 0011 MOVE R5 R1
+ 0x7C0C0400, // 0012 CALL R3 2
+ 0x70020000, // 0013 JMP #0015
+ 0x00040307, // 0014 ADD R1 R1 K7
+ 0x7001FFEA, // 0015 JMP #0001
+ 0x4C080000, // 0016 LDNIL R2
+ 0x80040400, // 0017 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_enqueued
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_enqueued, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(finish),
+ /* K3 */ be_nested_str_weak(ready),
+ /* K4 */ be_nested_str_weak(send_im),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
+ /* K7 */ be_nested_str_weak(resp),
+ /* K8 */ be_nested_str_weak(exchange_id),
+ /* K9 */ be_nested_str_weak(remove),
+ /* K10 */ be_const_int(1),
+ }),
+ be_str_weak(send_enqueued),
+ &be_const_str_solidified,
+ ( &(const binstruction[33]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0019, // 0005 JMPF R3 #0020
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x88100702, // 0008 GETMBR R4 R3 K2
+ 0x74120004, // 0009 JMPT R4 #000F
+ 0x88100703, // 000A GETMBR R4 R3 K3
+ 0x78120002, // 000B JMPF R4 #000F
+ 0x8C100704, // 000C GETMET R4 R3 K4
+ 0x5C180200, // 000D MOVE R6 R1
+ 0x7C100400, // 000E CALL R4 2
+ 0x88100702, // 000F GETMBR R4 R3 K2
+ 0x7812000C, // 0010 JMPF R4 #001E
+ 0xB8120A00, // 0011 GETNGBL R4 K5
+ 0x60140008, // 0012 GETGBL R5 G8
+ 0x88180707, // 0013 GETMBR R6 R3 K7
+ 0x88180D08, // 0014 GETMBR R6 R6 K8
+ 0x7C140200, // 0015 CALL R5 1
+ 0x00160C05, // 0016 ADD R5 K6 R5
+ 0x541A0003, // 0017 LDINT R6 4
+ 0x7C100400, // 0018 CALL R4 2
+ 0x88100101, // 0019 GETMBR R4 R0 K1
+ 0x8C100909, // 001A GETMET R4 R4 K9
+ 0x5C180400, // 001B MOVE R6 R2
+ 0x7C100400, // 001C CALL R4 2
+ 0x70020000, // 001D JMP #001F
+ 0x0008050A, // 001E ADD R2 R2 K10
+ 0x7001FFE0, // 001F JMP #0001
+ 0x80000000, // 0020 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_write_request
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_write_request, /* name */
+ be_nested_proto(
+ 21, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[41]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(WriteRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(Path),
+ /* K4 */ be_nested_str_weak(suppress_response),
+ /* K5 */ be_nested_str_weak(write_requests),
+ /* K6 */ be_nested_str_weak(WriteResponseMessage),
+ /* K7 */ be_nested_str_weak(write_responses),
+ /* K8 */ be_nested_str_weak(PathGenerator),
+ /* K9 */ be_nested_str_weak(device),
+ /* K10 */ be_nested_str_weak(path),
+ /* K11 */ be_nested_str_weak(data),
+ /* K12 */ be_nested_str_weak(copy),
+ /* K13 */ be_nested_str_weak(cluster),
+ /* K14 */ be_nested_str_weak(attribute),
+ /* K15 */ be_nested_str_weak(status),
+ /* K16 */ be_nested_str_weak(INVALID_ACTION),
+ /* K17 */ be_nested_str_weak(write_single_attribute_status_to_bytes),
+ /* K18 */ be_nested_str_weak(endpoint),
+ /* K19 */ be_nested_str_weak(tasmota),
+ /* K20 */ be_nested_str_weak(loglevel),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(get_attribute_name),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Write_Attr_X20),
+ /* K25 */ be_nested_str_weak(_X20_X28),
+ /* K26 */ be_nested_str_weak(_X29),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_nested_str_weak(start),
+ /* K29 */ be_nested_str_weak(is_direct),
+ /* K30 */ be_nested_str_weak(next_attribute),
+ /* K31 */ be_nested_str_weak(msg),
+ /* K32 */ be_nested_str_weak(get_pi),
+ /* K33 */ be_nested_str_weak(UNSUPPORTED_WRITE),
+ /* K34 */ be_nested_str_weak(write_attribute),
+ /* K35 */ be_nested_str_weak(session),
+ /* K36 */ be_nested_str_weak(SUCCESS),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ /* K38 */ be_nested_str_weak(send_queue),
+ /* K39 */ be_nested_str_weak(push),
+ /* K40 */ be_nested_str_weak(IM_WriteResponse),
+ }),
+ be_str_weak(process_write_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[145]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0xB8120000, // 0006 GETNGBL R4 K0
+ 0x8C100903, // 0007 GETMET R4 R4 K3
+ 0x7C100200, // 0008 CALL R4 1
+ 0x88140704, // 0009 GETMBR R5 R3 K4
+ 0x88180705, // 000A GETMBR R6 R3 K5
+ 0x4C1C0000, // 000B LDNIL R7
+ 0x20180C07, // 000C NE R6 R6 R7
+ 0x781A0080, // 000D JMPF R6 #008F
+ 0xB81A0000, // 000E GETNGBL R6 K0
+ 0x8C180D06, // 000F GETMET R6 R6 K6
+ 0x7C180200, // 0010 CALL R6 1
+ 0x601C0012, // 0011 GETGBL R7 G18
+ 0x7C1C0000, // 0012 CALL R7 0
+ 0x901A0E07, // 0013 SETMBR R6 K7 R7
+ 0xB81E0000, // 0014 GETNGBL R7 K0
+ 0x8C1C0F08, // 0015 GETMET R7 R7 K8
+ 0x88240109, // 0016 GETMBR R9 R0 K9
+ 0x7C1C0400, // 0017 CALL R7 2
+ 0x60200010, // 0018 GETGBL R8 G16
+ 0x88240705, // 0019 GETMBR R9 R3 K5
+ 0x7C200200, // 001A CALL R8 1
+ 0xA8020065, // 001B EXBLK 0 #0082
+ 0x5C241000, // 001C MOVE R9 R8
+ 0x7C240000, // 001D CALL R9 0
+ 0x8828130A, // 001E GETMBR R10 R9 K10
+ 0x882C130B, // 001F GETMBR R11 R9 K11
+ 0x8C30090C, // 0020 GETMET R12 R4 K12
+ 0x5C381400, // 0021 MOVE R14 R10
+ 0x7C300400, // 0022 CALL R12 2
+ 0x8830150D, // 0023 GETMBR R12 R10 K13
+ 0x4C340000, // 0024 LDNIL R13
+ 0x1C30180D, // 0025 EQ R12 R12 R13
+ 0x74320003, // 0026 JMPT R12 #002B
+ 0x8830150E, // 0027 GETMBR R12 R10 K14
+ 0x4C340000, // 0028 LDNIL R13
+ 0x1C30180D, // 0029 EQ R12 R12 R13
+ 0x78320008, // 002A JMPF R12 #0034
+ 0xB8320000, // 002B GETNGBL R12 K0
+ 0x88301910, // 002C GETMBR R12 R12 K16
+ 0x90121E0C, // 002D SETMBR R4 K15 R12
+ 0x8C300111, // 002E GETMET R12 R0 K17
+ 0x5C380C00, // 002F MOVE R14 R6
+ 0x5C3C0800, // 0030 MOVE R15 R4
+ 0x4C400000, // 0031 LDNIL R16
+ 0x7C300800, // 0032 CALL R12 4
+ 0x7001FFE7, // 0033 JMP #001C
+ 0x88301512, // 0034 GETMBR R12 R10 K18
+ 0x4C340000, // 0035 LDNIL R13
+ 0x1C30180D, // 0036 EQ R12 R12 R13
+ 0x78320016, // 0037 JMPF R12 #004F
+ 0xB8322600, // 0038 GETNGBL R12 K19
+ 0x8C301914, // 0039 GETMET R12 R12 K20
+ 0x58380015, // 003A LDCONST R14 K21
+ 0x7C300400, // 003B CALL R12 2
+ 0x78320011, // 003C JMPF R12 #004F
+ 0xB8320000, // 003D GETNGBL R12 K0
+ 0x8C301916, // 003E GETMET R12 R12 K22
+ 0x8838150D, // 003F GETMBR R14 R10 K13
+ 0x883C150E, // 0040 GETMBR R15 R10 K14
+ 0x7C300600, // 0041 CALL R12 3
+ 0xB8362E00, // 0042 GETNGBL R13 K23
+ 0x60380008, // 0043 GETGBL R14 G8
+ 0x5C3C0800, // 0044 MOVE R15 R4
+ 0x7C380200, // 0045 CALL R14 1
+ 0x003A300E, // 0046 ADD R14 K24 R14
+ 0x78320002, // 0047 JMPF R12 #004B
+ 0x003E320C, // 0048 ADD R15 K25 R12
+ 0x003C1F1A, // 0049 ADD R15 R15 K26
+ 0x70020000, // 004A JMP #004C
+ 0x583C001B, // 004B LDCONST R15 K27
+ 0x00381C0F, // 004C ADD R14 R14 R15
+ 0x583C0015, // 004D LDCONST R15 K21
+ 0x7C340400, // 004E CALL R13 2
+ 0x8C300F1C, // 004F GETMET R12 R7 K28
+ 0x88381512, // 0050 GETMBR R14 R10 K18
+ 0x883C150D, // 0051 GETMBR R15 R10 K13
+ 0x8840150E, // 0052 GETMBR R16 R10 K14
+ 0x7C300800, // 0053 CALL R12 4
+ 0x8C300F1D, // 0054 GETMET R12 R7 K29
+ 0x7C300200, // 0055 CALL R12 1
+ 0x4C340000, // 0056 LDNIL R13
+ 0x8C380F1E, // 0057 GETMET R14 R7 K30
+ 0x7C380200, // 0058 CALL R14 1
+ 0x5C341C00, // 0059 MOVE R13 R14
+ 0x783A0025, // 005A JMPF R14 #0081
+ 0x90363E01, // 005B SETMBR R13 K31 R1
+ 0x88381B0F, // 005C GETMBR R14 R13 K15
+ 0x4C3C0000, // 005D LDNIL R15
+ 0x20381C0F, // 005E NE R14 R14 R15
+ 0x783A0007, // 005F JMPF R14 #0068
+ 0x4C380000, // 0060 LDNIL R14
+ 0x90361E0E, // 0061 SETMBR R13 K15 R14
+ 0x8C380111, // 0062 GETMET R14 R0 K17
+ 0x5C400C00, // 0063 MOVE R16 R6
+ 0x5C441A00, // 0064 MOVE R17 R13
+ 0x5C481600, // 0065 MOVE R18 R11
+ 0x7C380800, // 0066 CALL R14 4
+ 0x70020017, // 0067 JMP #0080
+ 0x8C380F20, // 0068 GETMET R14 R7 K32
+ 0x7C380200, // 0069 CALL R14 1
+ 0xB83E0000, // 006A GETNGBL R15 K0
+ 0x883C1F21, // 006B GETMBR R15 R15 K33
+ 0x90361E0F, // 006C SETMBR R13 K15 R15
+ 0x4C3C0000, // 006D LDNIL R15
+ 0x203C1C0F, // 006E NE R15 R14 R15
+ 0x783E0005, // 006F JMPF R15 #0076
+ 0x8C3C1D22, // 0070 GETMET R15 R14 K34
+ 0x88440323, // 0071 GETMBR R17 R1 K35
+ 0x5C481A00, // 0072 MOVE R18 R13
+ 0x5C4C1600, // 0073 MOVE R19 R11
+ 0x7C3C0800, // 0074 CALL R15 4
+ 0x70020000, // 0075 JMP #0077
+ 0x4C3C0000, // 0076 LDNIL R15
+ 0x783E0002, // 0077 JMPF R15 #007B
+ 0xB8420000, // 0078 GETNGBL R16 K0
+ 0x88402124, // 0079 GETMBR R16 R16 K36
+ 0x90361E10, // 007A SETMBR R13 K15 R16
+ 0x8C400111, // 007B GETMET R16 R0 K17
+ 0x5C480C00, // 007C MOVE R18 R6
+ 0x5C4C1A00, // 007D MOVE R19 R13
+ 0x5C501600, // 007E MOVE R20 R11
+ 0x7C400800, // 007F CALL R16 4
+ 0x7001FFD5, // 0080 JMP #0057
+ 0x7001FF99, // 0081 JMP #001C
+ 0x58200025, // 0082 LDCONST R8 K37
+ 0xAC200200, // 0083 CATCH R8 1 0
+ 0xB0080000, // 0084 RAISE 2 R0 R0
+ 0x5C200A00, // 0085 MOVE R8 R5
+ 0x74220007, // 0086 JMPT R8 #008F
+ 0x88200126, // 0087 GETMBR R8 R0 K38
+ 0x8C201127, // 0088 GETMET R8 R8 K39
+ 0xB82A0000, // 0089 GETNGBL R10 K0
+ 0x8C281528, // 008A GETMET R10 R10 K40
+ 0x5C300200, // 008B MOVE R12 R1
+ 0x5C340C00, // 008C MOVE R13 R6
+ 0x7C280600, // 008D CALL R10 3
+ 0x7C200400, // 008E CALL R8 2
+ 0x50180200, // 008F LDBOOL R6 1 0
+ 0x80040C00, // 0090 RET 1 R6
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: process_read_request_solo
********************************************************************/
@@ -3136,53 +2163,112 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/********************************************************************
-** Solidified function: process_read_request_pull
+** Solidified function: send_subscribe_update
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
+be_local_closure(class_Matter_IM_send_subscribe_update, /* name */
be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
+ 13, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(read_request_start_pull),
- /* K4 */ be_nested_str_weak(ReadRequestMessage),
- /* K5 */ be_nested_str_weak(from_TLV),
- /* K6 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
- /* K7 */ be_nested_str_weak(send_report_data_pull),
+ ( &(const bvalue[24]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(ReadRequestMessage),
+ /* K3 */ be_nested_str_weak(fabric_filtered),
+ /* K4 */ be_nested_str_weak(attributes_requests),
+ /* K5 */ be_nested_str_weak(updates),
+ /* K6 */ be_nested_str_weak(AttributePathIB),
+ /* K7 */ be_nested_str_weak(endpoint),
+ /* K8 */ be_nested_str_weak(cluster),
+ /* K9 */ be_nested_str_weak(attribute),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(log),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Data_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
+ /* K14 */ be_nested_str_weak(local_session_id),
+ /* K15 */ be_nested_str_weak(subscription_id),
+ /* K16 */ be_const_int(3),
+ /* K17 */ be_nested_str_weak(is_keep_alive),
+ /* K18 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K19 */ be_nested_str_weak(update_event_generator_array),
+ /* K20 */ be_nested_str_weak(IM_ReportDataSubscribed_Pull),
+ /* K21 */ be_nested_str_weak(_message_handler),
+ /* K22 */ be_nested_str_weak(send_queue),
+ /* K23 */ be_nested_str_weak(send_enqueued),
}),
- be_str_weak(process_read_request_pull),
+ be_str_weak(send_subscribe_update),
&be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
+ ( &(const binstruction[64]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0xB80E0000, // 0005 GETNGBL R3 K0
- 0x8C0C0704, // 0006 GETMET R3 R3 K4
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0705, // 0008 GETMET R3 R3 K5
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x8C100106, // 000B GETMET R4 R0 K6
- 0x5C180600, // 000C MOVE R6 R3
- 0x5C1C0200, // 000D MOVE R7 R1
- 0x7C100600, // 000E CALL R4 3
- 0x8C140107, // 000F GETMET R5 R0 K7
- 0x5C1C0200, // 0010 MOVE R7 R1
- 0x5C200800, // 0011 MOVE R8 R4
- 0x7C140600, // 0012 CALL R5 3
- 0x50140200, // 0013 LDBOOL R5 1 0
- 0x80040A00, // 0014 RET 1 R5
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x50100000, // 0004 LDBOOL R4 0 0
+ 0x900E0604, // 0005 SETMBR R3 K3 R4
+ 0x60100012, // 0006 GETGBL R4 G18
+ 0x7C100000, // 0007 CALL R4 0
+ 0x900E0804, // 0008 SETMBR R3 K4 R4
+ 0x60100010, // 0009 GETGBL R4 G16
+ 0x88140305, // 000A GETMBR R5 R1 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xA802000F, // 000C EXBLK 0 #001D
+ 0x5C140800, // 000D MOVE R5 R4
+ 0x7C140000, // 000E CALL R5 0
+ 0xB81A0200, // 000F GETNGBL R6 K1
+ 0x8C180D06, // 0010 GETMET R6 R6 K6
+ 0x7C180200, // 0011 CALL R6 1
+ 0x881C0B07, // 0012 GETMBR R7 R5 K7
+ 0x901A0E07, // 0013 SETMBR R6 K7 R7
+ 0x881C0B08, // 0014 GETMBR R7 R5 K8
+ 0x901A1007, // 0015 SETMBR R6 K8 R7
+ 0x881C0B09, // 0016 GETMBR R7 R5 K9
+ 0x901A1207, // 0017 SETMBR R6 K9 R7
+ 0x881C0704, // 0018 GETMBR R7 R3 K4
+ 0x8C1C0F0A, // 0019 GETMET R7 R7 K10
+ 0x5C240C00, // 001A MOVE R9 R6
+ 0x7C1C0400, // 001B CALL R7 2
+ 0x7001FFEF, // 001C JMP #000D
+ 0x5810000B, // 001D LDCONST R4 K11
+ 0xAC100200, // 001E CATCH R4 1 0
+ 0xB0080000, // 001F RAISE 2 R0 R0
+ 0xB8121800, // 0020 GETNGBL R4 K12
+ 0x60140018, // 0021 GETGBL R5 G24
+ 0x5818000D, // 0022 LDCONST R6 K13
+ 0x881C050E, // 0023 GETMBR R7 R2 K14
+ 0x8820030F, // 0024 GETMBR R8 R1 K15
+ 0x7C140600, // 0025 CALL R5 3
+ 0x58180010, // 0026 LDCONST R6 K16
+ 0x7C100400, // 0027 CALL R4 2
+ 0x50100000, // 0028 LDBOOL R4 0 0
+ 0x90062204, // 0029 SETMBR R1 K17 R4
+ 0x8C100112, // 002A GETMET R4 R0 K18
+ 0x5C180600, // 002B MOVE R6 R3
+ 0x4C1C0000, // 002C LDNIL R7
+ 0x7C100600, // 002D CALL R4 3
+ 0x8C140313, // 002E GETMET R5 R1 K19
+ 0x7C140200, // 002F CALL R5 1
+ 0xB81A0200, // 0030 GETNGBL R6 K1
+ 0x8C180D14, // 0031 GETMET R6 R6 K20
+ 0x88200515, // 0032 GETMBR R8 R2 K21
+ 0x5C240400, // 0033 MOVE R9 R2
+ 0x5C280800, // 0034 MOVE R10 R4
+ 0x5C2C0A00, // 0035 MOVE R11 R5
+ 0x5C300200, // 0036 MOVE R12 R1
+ 0x7C180C00, // 0037 CALL R6 6
+ 0x881C0116, // 0038 GETMBR R7 R0 K22
+ 0x8C1C0F0A, // 0039 GETMET R7 R7 K10
+ 0x5C240C00, // 003A MOVE R9 R6
+ 0x7C1C0400, // 003B CALL R7 2
+ 0x8C1C0117, // 003C GETMET R7 R0 K23
+ 0x88240515, // 003D GETMBR R9 R2 K21
+ 0x7C1C0400, // 003E CALL R7 2
+ 0x80000000, // 003F RET 0
})
)
);
@@ -3190,10 +2276,521 @@ be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
/********************************************************************
-** Solidified function: invokeresponse2raw
+** Solidified function: send_subscribe_heartbeat
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
+be_local_closure(class_Matter_IM_send_subscribe_heartbeat, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(loglevel),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(log),
+ /* K5 */ be_nested_str_weak(MTR_X3A_X20_X3CSub_Alive_X20_X28_X256i_X29_X20sub_X3D_X25s),
+ /* K6 */ be_nested_str_weak(local_session_id),
+ /* K7 */ be_nested_str_weak(subscription_id),
+ /* K8 */ be_nested_str_weak(is_keep_alive),
+ /* K9 */ be_nested_str_weak(send_queue),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(matter),
+ /* K12 */ be_nested_str_weak(IM_SubscribedHeartbeat),
+ /* K13 */ be_nested_str_weak(_message_handler),
+ /* K14 */ be_nested_str_weak(send_enqueued),
+ }),
+ be_str_weak(send_subscribe_heartbeat),
+ &be_const_str_solidified,
+ ( &(const binstruction[29]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0xB80E0200, // 0001 GETNGBL R3 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x58140003, // 0003 LDCONST R5 K3
+ 0x7C0C0400, // 0004 CALL R3 2
+ 0x780E0007, // 0005 JMPF R3 #000E
+ 0xB80E0800, // 0006 GETNGBL R3 K4
+ 0x60100018, // 0007 GETGBL R4 G24
+ 0x58140005, // 0008 LDCONST R5 K5
+ 0x88180506, // 0009 GETMBR R6 R2 K6
+ 0x881C0307, // 000A GETMBR R7 R1 K7
+ 0x7C100600, // 000B CALL R4 3
+ 0x58140003, // 000C LDCONST R5 K3
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x500C0200, // 000E LDBOOL R3 1 0
+ 0x90061003, // 000F SETMBR R1 K8 R3
+ 0x880C0109, // 0010 GETMBR R3 R0 K9
+ 0x8C0C070A, // 0011 GETMET R3 R3 K10
+ 0xB8161600, // 0012 GETNGBL R5 K11
+ 0x8C140B0C, // 0013 GETMET R5 R5 K12
+ 0x881C050D, // 0014 GETMBR R7 R2 K13
+ 0x5C200400, // 0015 MOVE R8 R2
+ 0x5C240200, // 0016 MOVE R9 R1
+ 0x7C140800, // 0017 CALL R5 4
+ 0x7C0C0400, // 0018 CALL R3 2
+ 0x8C0C010E, // 0019 GETMET R3 R0 K14
+ 0x8814050D, // 001A GETMBR R5 R2 K13
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x80000000, // 001C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_50ms
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_every_50ms, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(subs_shop),
+ /* K1 */ be_nested_str_weak(every_50ms),
+ }),
+ be_str_weak(every_50ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_write_response
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_write_response, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(WriteResponseMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ }),
+ be_str_weak(process_write_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x50100000, // 0006 LDBOOL R4 0 0
+ 0x80040800, // 0007 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_init, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(subs_shop),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(IM_Subscription_Shop),
+ /* K5 */ be_nested_str_weak(read_request_solo),
+ /* K6 */ be_nested_str_weak(ReadRequestMessage_solo),
+ /* K7 */ be_nested_str_weak(invoke_request_solo),
+ /* K8 */ be_nested_str_weak(InvokeRequestMessage_solo),
+ /* K9 */ be_nested_str_weak(tlv_solo),
+ /* K10 */ be_nested_str_weak(TLV),
+ /* K11 */ be_nested_str_weak(Matter_TLV_item),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0xB80A0600, // 0004 GETNGBL R2 K3
+ 0x8C080504, // 0005 GETMET R2 R2 K4
+ 0x5C100000, // 0006 MOVE R4 R0
+ 0x7C080400, // 0007 CALL R2 2
+ 0x90020402, // 0008 SETMBR R0 K2 R2
+ 0xB80A0600, // 0009 GETNGBL R2 K3
+ 0x8C080506, // 000A GETMET R2 R2 K6
+ 0x7C080200, // 000B CALL R2 1
+ 0x90020A02, // 000C SETMBR R0 K5 R2
+ 0xB80A0600, // 000D GETNGBL R2 K3
+ 0x8C080508, // 000E GETMET R2 R2 K8
+ 0x7C080200, // 000F CALL R2 1
+ 0x90020E02, // 0010 SETMBR R0 K7 R2
+ 0xB80A0600, // 0011 GETNGBL R2 K3
+ 0x8808050A, // 0012 GETMBR R2 R2 K10
+ 0x8C08050B, // 0013 GETMET R2 R2 K11
+ 0x7C080200, // 0014 CALL R2 1
+ 0x90021202, // 0015 SETMBR R0 K9 R2
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_ack_now
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_ack_now, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(session),
+ /* K1 */ be_nested_str_weak(_message_handler),
+ /* K2 */ be_nested_str_weak(send_encrypted_ack),
+ }),
+ be_str_weak(send_ack_now),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x80000400, // 0003 RET 0
+ 0x88080300, // 0004 GETMBR R2 R1 K0
+ 0x88080501, // 0005 GETMBR R2 R2 K1
+ 0x8C080502, // 0006 GETMET R2 R2 K2
+ 0x5C100200, // 0007 MOVE R4 R1
+ 0x50140000, // 0008 LDBOOL R5 0 0
+ 0x7C080600, // 0009 CALL R2 3
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_single_attribute_to_bytes
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_read_single_attribute_to_bytes, /* name */
+ be_nested_proto(
+ 21, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(get_attribute_name),
+ /* K6 */ be_nested_str_weak(cluster),
+ /* K7 */ be_nested_str_weak(attribute),
+ /* K8 */ be_nested_str_weak(_X20_X28),
+ /* K9 */ be_nested_str_weak(_X29),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(status),
+ /* K12 */ be_nested_str_weak(read_attribute),
+ /* K13 */ be_nested_str_weak(tlv_solo),
+ /* K14 */ be_nested_str_weak(to_str_val),
+ /* K15 */ be_nested_str_weak(is_list),
+ /* K16 */ be_nested_str_weak(is_array),
+ /* K17 */ be_nested_str_weak(encode_len),
+ /* K18 */ be_nested_str_weak(IM_ReportData_Pull),
+ /* K19 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K20 */ be_nested_str_weak(Matter_TLV_array),
+ /* K21 */ be_nested_str_weak(attributedata2raw),
+ /* K22 */ be_nested_str_weak(push),
+ /* K23 */ be_nested_str_weak(val),
+ /* K24 */ be_nested_str_weak(stop_iteration),
+ /* K25 */ be_nested_str_weak(log),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
+ /* K27 */ be_nested_str_weak(local_session_id),
+ /* K28 */ be_nested_str_weak(attributestatus2raw),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
+ /* K30 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ }),
+ be_str_weak(read_single_attribute_to_bytes),
+ &be_const_str_solidified,
+ ( &(const binstruction[165]) { /* code */
+ 0xB8160000, // 0000 GETNGBL R5 K0
+ 0x88140B01, // 0001 GETMBR R5 R5 K1
+ 0x4C180000, // 0002 LDNIL R6
+ 0xB81E0400, // 0003 GETNGBL R7 K2
+ 0x8C1C0F03, // 0004 GETMET R7 R7 K3
+ 0x58240004, // 0005 LDCONST R9 K4
+ 0x7C1C0400, // 0006 CALL R7 2
+ 0x781E000B, // 0007 JMPF R7 #0014
+ 0xB81E0000, // 0008 GETNGBL R7 K0
+ 0x8C1C0F05, // 0009 GETMET R7 R7 K5
+ 0x88240506, // 000A GETMBR R9 R2 K6
+ 0x88280507, // 000B GETMBR R10 R2 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x5C180E00, // 000D MOVE R6 R7
+ 0x781A0002, // 000E JMPF R6 #0012
+ 0x001E1006, // 000F ADD R7 K8 R6
+ 0x001C0F09, // 0010 ADD R7 R7 K9
+ 0x70020000, // 0011 JMP #0013
+ 0x581C000A, // 0012 LDCONST R7 K10
+ 0x5C180E00, // 0013 MOVE R6 R7
+ 0x881C050B, // 0014 GETMBR R7 R2 K11
+ 0x4C200000, // 0015 LDNIL R8
+ 0x201C0E08, // 0016 NE R7 R7 R8
+ 0x4C200000, // 0017 LDNIL R8
+ 0x4C240000, // 0018 LDNIL R9
+ 0x4C280000, // 0019 LDNIL R10
+ 0x2028020A, // 001A NE R10 R1 R10
+ 0x782A0005, // 001B JMPF R10 #0022
+ 0x8C28030C, // 001C GETMET R10 R1 K12
+ 0x5C300600, // 001D MOVE R12 R3
+ 0x5C340400, // 001E MOVE R13 R2
+ 0x8838010D, // 001F GETMBR R14 R0 K13
+ 0x7C280800, // 0020 CALL R10 4
+ 0x5C201400, // 0021 MOVE R8 R10
+ 0x4C280000, // 0022 LDNIL R10
+ 0x2028100A, // 0023 NE R10 R8 R10
+ 0x782A0057, // 0024 JMPF R10 #007D
+ 0x5828000A, // 0025 LDCONST R10 K10
+ 0xB82E0400, // 0026 GETNGBL R11 K2
+ 0x8C2C1703, // 0027 GETMET R11 R11 K3
+ 0x58340004, // 0028 LDCONST R13 K4
+ 0x7C2C0400, // 0029 CALL R11 2
+ 0x782E0003, // 002A JMPF R11 #002F
+ 0x78120002, // 002B JMPF R4 #002F
+ 0x8C2C110E, // 002C GETMET R11 R8 K14
+ 0x7C2C0200, // 002D CALL R11 1
+ 0x5C281600, // 002E MOVE R10 R11
+ 0x882C110F, // 002F GETMBR R11 R8 K15
+ 0x742E0001, // 0030 JMPT R11 #0033
+ 0x882C1110, // 0031 GETMBR R11 R8 K16
+ 0x782E002F, // 0032 JMPF R11 #0063
+ 0x8C2C1111, // 0033 GETMET R11 R8 K17
+ 0x7C2C0200, // 0034 CALL R11 1
+ 0xB8320000, // 0035 GETNGBL R12 K0
+ 0x88301912, // 0036 GETMBR R12 R12 K18
+ 0x88301913, // 0037 GETMBR R12 R12 K19
+ 0x242C160C, // 0038 GT R11 R11 R12
+ 0x782E0028, // 0039 JMPF R11 #0063
+ 0x602C0012, // 003A GETGBL R11 G18
+ 0x7C2C0000, // 003B CALL R11 0
+ 0x5C241600, // 003C MOVE R9 R11
+ 0x602C0015, // 003D GETGBL R11 G21
+ 0x5432002F, // 003E LDINT R12 48
+ 0x7C2C0200, // 003F CALL R11 1
+ 0x8C300B14, // 0040 GETMET R12 R5 K20
+ 0x7C300200, // 0041 CALL R12 1
+ 0x8C340115, // 0042 GETMET R13 R0 K21
+ 0x5C3C1600, // 0043 MOVE R15 R11
+ 0x5C400400, // 0044 MOVE R16 R2
+ 0x5C441800, // 0045 MOVE R17 R12
+ 0x50480000, // 0046 LDBOOL R18 0 0
+ 0x7C340A00, // 0047 CALL R13 5
+ 0x8C341316, // 0048 GETMET R13 R9 K22
+ 0x5C3C1600, // 0049 MOVE R15 R11
+ 0x7C340400, // 004A CALL R13 2
+ 0x60340010, // 004B GETGBL R13 G16
+ 0x88381117, // 004C GETMBR R14 R8 K23
+ 0x7C340200, // 004D CALL R13 1
+ 0xA802000F, // 004E EXBLK 0 #005F
+ 0x5C381A00, // 004F MOVE R14 R13
+ 0x7C380000, // 0050 CALL R14 0
+ 0x603C0015, // 0051 GETGBL R15 G21
+ 0x5442002F, // 0052 LDINT R16 48
+ 0x7C3C0200, // 0053 CALL R15 1
+ 0x5C2C1E00, // 0054 MOVE R11 R15
+ 0x8C3C0115, // 0055 GETMET R15 R0 K21
+ 0x5C441600, // 0056 MOVE R17 R11
+ 0x5C480400, // 0057 MOVE R18 R2
+ 0x5C4C1C00, // 0058 MOVE R19 R14
+ 0x50500200, // 0059 LDBOOL R20 1 0
+ 0x7C3C0A00, // 005A CALL R15 5
+ 0x8C3C1316, // 005B GETMET R15 R9 K22
+ 0x5C441600, // 005C MOVE R17 R11
+ 0x7C3C0400, // 005D CALL R15 2
+ 0x7001FFEF, // 005E JMP #004F
+ 0x58340018, // 005F LDCONST R13 K24
+ 0xAC340200, // 0060 CATCH R13 1 0
+ 0xB0080000, // 0061 RAISE 2 R0 R0
+ 0x70020008, // 0062 JMP #006C
+ 0x602C0015, // 0063 GETGBL R11 G21
+ 0x5432002F, // 0064 LDINT R12 48
+ 0x7C2C0200, // 0065 CALL R11 1
+ 0x5C241600, // 0066 MOVE R9 R11
+ 0x8C2C0115, // 0067 GETMET R11 R0 K21
+ 0x5C341200, // 0068 MOVE R13 R9
+ 0x5C380400, // 0069 MOVE R14 R2
+ 0x5C3C1000, // 006A MOVE R15 R8
+ 0x7C2C0800, // 006B CALL R11 4
+ 0xB82E0400, // 006C GETNGBL R11 K2
+ 0x8C2C1703, // 006D GETMET R11 R11 K3
+ 0x58340004, // 006E LDCONST R13 K4
+ 0x7C2C0400, // 006F CALL R11 2
+ 0x782E000A, // 0070 JMPF R11 #007C
+ 0x78120009, // 0071 JMPF R4 #007C
+ 0xB82E3200, // 0072 GETNGBL R11 K25
+ 0x60300018, // 0073 GETGBL R12 G24
+ 0x5834001A, // 0074 LDCONST R13 K26
+ 0x8838071B, // 0075 GETMBR R14 R3 K27
+ 0x5C3C0400, // 0076 MOVE R15 R2
+ 0x5C400C00, // 0077 MOVE R16 R6
+ 0x5C441400, // 0078 MOVE R17 R10
+ 0x7C300A00, // 0079 CALL R12 5
+ 0x58340004, // 007A LDCONST R13 K4
+ 0x7C2C0400, // 007B CALL R11 2
+ 0x70020026, // 007C JMP #00A4
+ 0x8828050B, // 007D GETMBR R10 R2 K11
+ 0x4C2C0000, // 007E LDNIL R11
+ 0x2028140B, // 007F NE R10 R10 R11
+ 0x782A0022, // 0080 JMPF R10 #00A4
+ 0x781E0021, // 0081 JMPF R7 #00A4
+ 0x60280015, // 0082 GETGBL R10 G21
+ 0x542E002F, // 0083 LDINT R11 48
+ 0x7C280200, // 0084 CALL R10 1
+ 0x5C241400, // 0085 MOVE R9 R10
+ 0x8C28011C, // 0086 GETMET R10 R0 K28
+ 0x5C301200, // 0087 MOVE R12 R9
+ 0x5C340400, // 0088 MOVE R13 R2
+ 0x8838050B, // 0089 GETMBR R14 R2 K11
+ 0x7C280800, // 008A CALL R10 4
+ 0xB82A0400, // 008B GETNGBL R10 K2
+ 0x8C281503, // 008C GETMET R10 R10 K3
+ 0x58300004, // 008D LDCONST R12 K4
+ 0x7C280400, // 008E CALL R10 2
+ 0x782A0013, // 008F JMPF R10 #00A4
+ 0xB82A3200, // 0090 GETNGBL R10 K25
+ 0x602C0018, // 0091 GETGBL R11 G24
+ 0x5830001D, // 0092 LDCONST R12 K29
+ 0x8834071B, // 0093 GETMBR R13 R3 K27
+ 0x60380008, // 0094 GETGBL R14 G8
+ 0x5C3C0400, // 0095 MOVE R15 R2
+ 0x7C380200, // 0096 CALL R14 1
+ 0x5C3C0C00, // 0097 MOVE R15 R6
+ 0x8840050B, // 0098 GETMBR R16 R2 K11
+ 0x8844050B, // 0099 GETMBR R17 R2 K11
+ 0xB84A0000, // 009A GETNGBL R18 K0
+ 0x8848251E, // 009B GETMBR R18 R18 K30
+ 0x1C442212, // 009C EQ R17 R17 R18
+ 0x78460001, // 009D JMPF R17 #00A0
+ 0x5844001E, // 009E LDCONST R17 K30
+ 0x70020000, // 009F JMP #00A1
+ 0x5844000A, // 00A0 LDCONST R17 K10
+ 0x7C2C0C00, // 00A1 CALL R11 6
+ 0x58300004, // 00A2 LDCONST R12 K4
+ 0x7C280400, // 00A3 CALL R10 2
+ 0x80041200, // 00A4 RET 1 R9
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attributedata2raw
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_attributedata2raw, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(355795236),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(path2raw),
+ /* K4 */ be_nested_str_weak(tag_sub),
+ /* K5 */ be_const_int(2),
+ /* K6 */ be_nested_str_weak(tlv2raw),
+ }),
+ be_str_weak(attributedata2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[23]) { /* code */
+ 0x8C140300, // 0000 GETMET R5 R1 K0
+ 0x581C0001, // 0001 LDCONST R7 K1
+ 0x5421FFFB, // 0002 LDINT R8 -4
+ 0x7C140600, // 0003 CALL R5 3
+ 0x8C140300, // 0004 GETMET R5 R1 K0
+ 0x581C0002, // 0005 LDCONST R7 K2
+ 0x5421FFFD, // 0006 LDINT R8 -2
+ 0x7C140600, // 0007 CALL R5 3
+ 0x8C140103, // 0008 GETMET R5 R0 K3
+ 0x5C1C0200, // 0009 MOVE R7 R1
+ 0x5C200400, // 000A MOVE R8 R2
+ 0x58240002, // 000B LDCONST R9 K2
+ 0x5C280800, // 000C MOVE R10 R4
+ 0x7C140A00, // 000D CALL R5 5
+ 0x900E0905, // 000E SETMBR R3 K4 K5
+ 0x8C140706, // 000F GETMET R5 R3 K6
+ 0x5C1C0200, // 0010 MOVE R7 R1
+ 0x7C140400, // 0011 CALL R5 2
+ 0x8C140300, // 0012 GETMET R5 R1 K0
+ 0x541E1817, // 0013 LDINT R7 6168
+ 0x5421FFFD, // 0014 LDINT R8 -2
+ 0x7C140600, // 0015 CALL R5 3
+ 0x80000000, // 0016 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attributestatus2raw
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_attributestatus2raw, /* name */
be_nested_proto(
9, /* nstack */
4, /* argc */
@@ -3203,170 +2800,64 @@ be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
+ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(add),
/* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(cluster),
- /* K5 */ be_nested_str_weak(command),
- /* K6 */ be_nested_str_weak(status),
- /* K7 */ be_nested_str_weak(matter),
- /* K8 */ be_nested_str_weak(SUCCESS),
- /* K9 */ be_nested_str_weak(tag_sub),
- /* K10 */ be_nested_str_weak(tlv2raw),
+ /* K2 */ be_nested_str_weak(path2raw),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_nested_str_weak(status),
+ /* K5 */ be_const_int(2),
}),
- be_str_weak(invokeresponse2raw),
+ be_str_weak(attributestatus2raw),
&be_const_str_solidified,
- ( &(const binstruction[148]) { /* code */
+ ( &(const binstruction[47]) { /* code */
0x8C100300, // 0000 GETMET R4 R1 K0
0x541A0014, // 0001 LDINT R6 21
0x581C0001, // 0002 LDCONST R7 K1
0x7C100600, // 0003 CALL R4 3
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120004, // 0006 JMPF R4 #000C
- 0x8C100300, // 0007 GETMET R4 R1 K0
- 0x541A3500, // 0008 LDINT R6 13569
- 0x541DFFFD, // 0009 LDINT R7 -2
- 0x7C100600, // 000A CALL R4 3
- 0x70020003, // 000B JMP #0010
- 0x8C100300, // 000C GETMET R4 R1 K0
- 0x541A34FF, // 000D LDINT R6 13568
- 0x541DFFFD, // 000E LDINT R7 -2
- 0x7C100600, // 000F CALL R4 3
- 0x8C100300, // 0010 GETMET R4 R1 K0
- 0x541A36FF, // 0011 LDINT R6 14080
- 0x541DFFFD, // 0012 LDINT R7 -2
- 0x7C100600, // 0013 CALL R4 3
- 0x88100502, // 0014 GETMBR R4 R2 K2
- 0x541600FE, // 0015 LDINT R5 255
- 0x18100805, // 0016 LE R4 R4 R5
- 0x78120008, // 0017 JMPF R4 #0021
- 0x8C100300, // 0018 GETMET R4 R1 K0
- 0x541A23FF, // 0019 LDINT R6 9216
- 0x541DFFFD, // 001A LDINT R7 -2
- 0x7C100600, // 001B CALL R4 3
- 0x8C100300, // 001C GETMET R4 R1 K0
- 0x88180502, // 001D GETMBR R6 R2 K2
- 0x581C0001, // 001E LDCONST R7 K1
- 0x7C100600, // 001F CALL R4 3
- 0x70020007, // 0020 JMP #0029
- 0x8C100300, // 0021 GETMET R4 R1 K0
- 0x541A24FF, // 0022 LDINT R6 9472
- 0x541DFFFD, // 0023 LDINT R7 -2
- 0x7C100600, // 0024 CALL R4 3
- 0x8C100300, // 0025 GETMET R4 R1 K0
- 0x88180502, // 0026 GETMBR R6 R2 K2
- 0x581C0003, // 0027 LDCONST R7 K3
- 0x7C100600, // 0028 CALL R4 3
- 0x88100504, // 0029 GETMBR R4 R2 K4
- 0x541600FE, // 002A LDINT R5 255
- 0x18100805, // 002B LE R4 R4 R5
- 0x78120008, // 002C JMPF R4 #0036
- 0x8C100300, // 002D GETMET R4 R1 K0
- 0x541A2400, // 002E LDINT R6 9217
- 0x541DFFFD, // 002F LDINT R7 -2
- 0x7C100600, // 0030 CALL R4 3
- 0x8C100300, // 0031 GETMET R4 R1 K0
- 0x88180504, // 0032 GETMBR R6 R2 K4
- 0x581C0001, // 0033 LDCONST R7 K1
- 0x7C100600, // 0034 CALL R4 3
- 0x70020014, // 0035 JMP #004B
- 0x88100504, // 0036 GETMBR R4 R2 K4
- 0x5416FFFE, // 0037 LDINT R5 65535
- 0x18100805, // 0038 LE R4 R4 R5
- 0x78120008, // 0039 JMPF R4 #0043
- 0x8C100300, // 003A GETMET R4 R1 K0
- 0x541A2500, // 003B LDINT R6 9473
- 0x541DFFFD, // 003C LDINT R7 -2
- 0x7C100600, // 003D CALL R4 3
- 0x8C100300, // 003E GETMET R4 R1 K0
- 0x88180504, // 003F GETMBR R6 R2 K4
- 0x581C0003, // 0040 LDCONST R7 K3
- 0x7C100600, // 0041 CALL R4 3
- 0x70020007, // 0042 JMP #004B
- 0x8C100300, // 0043 GETMET R4 R1 K0
- 0x541A2600, // 0044 LDINT R6 9729
- 0x541DFFFD, // 0045 LDINT R7 -2
- 0x7C100600, // 0046 CALL R4 3
- 0x8C100300, // 0047 GETMET R4 R1 K0
- 0x88180504, // 0048 GETMBR R6 R2 K4
- 0x541E0003, // 0049 LDINT R7 4
- 0x7C100600, // 004A CALL R4 3
- 0x88100505, // 004B GETMBR R4 R2 K5
- 0x541600FE, // 004C LDINT R5 255
- 0x18100805, // 004D LE R4 R4 R5
- 0x78120008, // 004E JMPF R4 #0058
- 0x8C100300, // 004F GETMET R4 R1 K0
- 0x541A2401, // 0050 LDINT R6 9218
- 0x541DFFFD, // 0051 LDINT R7 -2
- 0x7C100600, // 0052 CALL R4 3
- 0x8C100300, // 0053 GETMET R4 R1 K0
- 0x88180505, // 0054 GETMBR R6 R2 K5
- 0x581C0001, // 0055 LDCONST R7 K1
- 0x7C100600, // 0056 CALL R4 3
- 0x70020014, // 0057 JMP #006D
- 0x88100505, // 0058 GETMBR R4 R2 K5
- 0x5416FFFE, // 0059 LDINT R5 65535
- 0x18100805, // 005A LE R4 R4 R5
- 0x78120008, // 005B JMPF R4 #0065
- 0x8C100300, // 005C GETMET R4 R1 K0
- 0x541A2501, // 005D LDINT R6 9474
- 0x541DFFFD, // 005E LDINT R7 -2
- 0x7C100600, // 005F CALL R4 3
- 0x8C100300, // 0060 GETMET R4 R1 K0
- 0x88180505, // 0061 GETMBR R6 R2 K5
- 0x581C0003, // 0062 LDCONST R7 K3
- 0x7C100600, // 0063 CALL R4 3
- 0x70020007, // 0064 JMP #006D
- 0x8C100300, // 0065 GETMET R4 R1 K0
- 0x541A2601, // 0066 LDINT R6 9730
- 0x541DFFFD, // 0067 LDINT R7 -2
- 0x7C100600, // 0068 CALL R4 3
- 0x8C100300, // 0069 GETMET R4 R1 K0
- 0x88180505, // 006A GETMBR R6 R2 K5
- 0x541E0003, // 006B LDINT R7 4
- 0x7C100600, // 006C CALL R4 3
- 0x8C100300, // 006D GETMET R4 R1 K0
- 0x541A0017, // 006E LDINT R6 24
- 0x581C0001, // 006F LDCONST R7 K1
- 0x7C100600, // 0070 CALL R4 3
- 0x4C100000, // 0071 LDNIL R4
- 0x1C100604, // 0072 EQ R4 R3 R4
- 0x78120016, // 0073 JMPF R4 #008B
- 0x88100506, // 0074 GETMBR R4 R2 K6
- 0x4C140000, // 0075 LDNIL R5
- 0x1C140805, // 0076 EQ R5 R4 R5
- 0x78160001, // 0077 JMPF R5 #007A
- 0xB8160E00, // 0078 GETNGBL R5 K7
- 0x88100B08, // 0079 GETMBR R4 R5 K8
- 0x8C140300, // 007A GETMET R5 R1 K0
- 0x541E3500, // 007B LDINT R7 13569
- 0x5421FFFD, // 007C LDINT R8 -2
- 0x7C140600, // 007D CALL R5 3
- 0x8C140300, // 007E GETMET R5 R1 K0
- 0x541E23FF, // 007F LDINT R7 9216
- 0x5421FFFD, // 0080 LDINT R8 -2
- 0x7C140600, // 0081 CALL R5 3
- 0x8C140300, // 0082 GETMET R5 R1 K0
- 0x881C0506, // 0083 GETMBR R7 R2 K6
- 0x58200001, // 0084 LDCONST R8 K1
- 0x7C140600, // 0085 CALL R5 3
- 0x8C140300, // 0086 GETMET R5 R1 K0
- 0x541E0017, // 0087 LDINT R7 24
- 0x58200001, // 0088 LDCONST R8 K1
- 0x7C140600, // 0089 CALL R5 3
- 0x70020003, // 008A JMP #008F
- 0x900E1301, // 008B SETMBR R3 K9 K1
- 0x8C10070A, // 008C GETMET R4 R3 K10
- 0x5C180200, // 008D MOVE R6 R1
- 0x7C100400, // 008E CALL R4 2
- 0x8C100300, // 008F GETMET R4 R1 K0
- 0x541A1817, // 0090 LDINT R6 6168
- 0x541DFFFD, // 0091 LDINT R7 -2
- 0x7C100600, // 0092 CALL R4 3
- 0x80000000, // 0093 RET 0
+ 0x8C100300, // 0004 GETMET R4 R1 K0
+ 0x541A34FF, // 0005 LDINT R6 13568
+ 0x541DFFFD, // 0006 LDINT R7 -2
+ 0x7C100600, // 0007 CALL R4 3
+ 0x8C100102, // 0008 GETMET R4 R0 K2
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x5C1C0400, // 000A MOVE R7 R2
+ 0x58200003, // 000B LDCONST R8 K3
+ 0x7C100800, // 000C CALL R4 4
+ 0x8C100300, // 000D GETMET R4 R1 K0
+ 0x541A3500, // 000E LDINT R6 13569
+ 0x541DFFFD, // 000F LDINT R7 -2
+ 0x7C100600, // 0010 CALL R4 3
+ 0x88100504, // 0011 GETMBR R4 R2 K4
+ 0x541600FE, // 0012 LDINT R5 255
+ 0x18100805, // 0013 LE R4 R4 R5
+ 0x78120008, // 0014 JMPF R4 #001E
+ 0x8C100300, // 0015 GETMET R4 R1 K0
+ 0x541A23FF, // 0016 LDINT R6 9216
+ 0x541DFFFD, // 0017 LDINT R7 -2
+ 0x7C100600, // 0018 CALL R4 3
+ 0x8C100300, // 0019 GETMET R4 R1 K0
+ 0x88180504, // 001A GETMBR R6 R2 K4
+ 0x581C0001, // 001B LDCONST R7 K1
+ 0x7C100600, // 001C CALL R4 3
+ 0x70020007, // 001D JMP #0026
+ 0x8C100300, // 001E GETMET R4 R1 K0
+ 0x541A24FF, // 001F LDINT R6 9472
+ 0x541DFFFD, // 0020 LDINT R7 -2
+ 0x7C100600, // 0021 CALL R4 3
+ 0x8C100300, // 0022 GETMET R4 R1 K0
+ 0x88180504, // 0023 GETMBR R6 R2 K4
+ 0x581C0005, // 0024 LDCONST R7 K5
+ 0x7C100600, // 0025 CALL R4 3
+ 0x8C100300, // 0026 GETMET R4 R1 K0
+ 0x541A1817, // 0027 LDINT R6 6168
+ 0x541DFFFD, // 0028 LDINT R7 -2
+ 0x7C100600, // 0029 CALL R4 3
+ 0x8C100300, // 002A GETMET R4 R1 K0
+ 0x541A0017, // 002B LDINT R6 24
+ 0x581C0001, // 002C LDCONST R7 K1
+ 0x7C100600, // 002D CALL R4 3
+ 0x80000000, // 002E RET 0
})
)
);
@@ -3374,10 +2865,144 @@ be_local_closure(class_Matter_IM_invokeresponse2raw, /* name */
/********************************************************************
-** Solidified function: send_invoke_response
+** Solidified function: process_status_response
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_send_invoke_response, /* name */
+be_local_closure(class_Matter_IM_process_status_response, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(findsubval),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(find_sendqueue_by_exchangeid),
+ /* K3 */ be_nested_str_weak(exchange_id),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(SUCCESS),
+ /* K6 */ be_nested_str_weak(status_ok_received),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(local_session_id),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
+ /* K12 */ be_const_int(3),
+ /* K13 */ be_nested_str_weak(status_error_received),
+ /* K14 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
+ }),
+ be_str_weak(process_status_response),
+ &be_const_str_solidified,
+ ( &(const binstruction[43]) { /* code */
+ 0x8C0C0500, // 0000 GETMET R3 R2 K0
+ 0x58140001, // 0001 LDCONST R5 K1
+ 0x541A00FE, // 0002 LDINT R6 255
+ 0x7C0C0600, // 0003 CALL R3 3
+ 0x8C100102, // 0004 GETMET R4 R0 K2
+ 0x88180303, // 0005 GETMBR R6 R1 K3
+ 0x7C100400, // 0006 CALL R4 2
+ 0xB8160800, // 0007 GETNGBL R5 K4
+ 0x88140B05, // 0008 GETMBR R5 R5 K5
+ 0x1C140605, // 0009 EQ R5 R3 R5
+ 0x7816000F, // 000A JMPF R5 #001B
+ 0x78120004, // 000B JMPF R4 #0011
+ 0x8C140906, // 000C GETMET R5 R4 K6
+ 0x5C1C0200, // 000D MOVE R7 R1
+ 0x7C140400, // 000E CALL R5 2
+ 0x80040A00, // 000F RET 1 R5
+ 0x70020008, // 0010 JMP #001A
+ 0xB8160E00, // 0011 GETNGBL R5 K7
+ 0x60180018, // 0012 GETGBL R6 G24
+ 0x581C0008, // 0013 LDCONST R7 K8
+ 0x88200309, // 0014 GETMBR R8 R1 K9
+ 0x8820110A, // 0015 GETMBR R8 R8 K10
+ 0x88240303, // 0016 GETMBR R9 R1 K3
+ 0x7C180600, // 0017 CALL R6 3
+ 0x541E0003, // 0018 LDINT R7 4
+ 0x7C140400, // 0019 CALL R5 2
+ 0x7002000D, // 001A JMP #0029
+ 0xB8160E00, // 001B GETNGBL R5 K7
+ 0x60180018, // 001C GETGBL R6 G24
+ 0x581C000B, // 001D LDCONST R7 K11
+ 0x5C200600, // 001E MOVE R8 R3
+ 0x7C180400, // 001F CALL R6 2
+ 0x581C000C, // 0020 LDCONST R7 K12
+ 0x7C140400, // 0021 CALL R5 2
+ 0x78120005, // 0022 JMPF R4 #0029
+ 0x8C14090D, // 0023 GETMET R5 R4 K13
+ 0x5C1C0200, // 0024 MOVE R7 R1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x8C14010E, // 0026 GETMET R5 R0 K14
+ 0x881C0303, // 0027 GETMBR R7 R1 K3
+ 0x7C140400, // 0028 CALL R5 2
+ 0x50140000, // 0029 LDBOOL R5 0 0
+ 0x80040A00, // 002A RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_sendqueue_by_exchangeid
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_find_sendqueue_by_exchangeid, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(get_exchangeid),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_sendqueue_by_exchangeid),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0001, // 0002 JMPF R2 #0005
+ 0x4C080000, // 0003 LDNIL R2
+ 0x80040400, // 0004 RET 1 R2
+ 0x58080000, // 0005 LDCONST R2 K0
+ 0x600C000C, // 0006 GETGBL R3 G12
+ 0x88100101, // 0007 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0008 CALL R3 1
+ 0x140C0403, // 0009 LT R3 R2 R3
+ 0x780E0008, // 000A JMPF R3 #0014
+ 0x880C0101, // 000B GETMBR R3 R0 K1
+ 0x940C0602, // 000C GETIDX R3 R3 R2
+ 0x8C100702, // 000D GETMET R4 R3 K2
+ 0x7C100200, // 000E CALL R4 1
+ 0x1C100801, // 000F EQ R4 R4 R1
+ 0x78120000, // 0010 JMPF R4 #0012
+ 0x80040600, // 0011 RET 1 R3
+ 0x00080503, // 0012 ADD R2 R2 K3
+ 0x7001FFF1, // 0013 JMP #0006
+ 0x4C0C0000, // 0014 LDNIL R3
+ 0x80040600, // 0015 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: send_status
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_send_status, /* name */
be_nested_proto(
9, /* nstack */
3, /* argc */
@@ -3391,9 +3016,9 @@ be_local_closure(class_Matter_IM_send_invoke_response, /* name */
/* K0 */ be_nested_str_weak(send_queue),
/* K1 */ be_nested_str_weak(push),
/* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(IM_InvokeResponse),
+ /* K3 */ be_nested_str_weak(IM_Status),
}),
- be_str_weak(send_invoke_response),
+ be_str_weak(send_status),
&be_const_str_solidified,
( &(const binstruction[ 9]) { /* code */
0x880C0100, // 0000 GETMBR R3 R0 K0
@@ -3412,10 +3037,264 @@ be_local_closure(class_Matter_IM_send_invoke_response, /* name */
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: process_timed_request
********************************************************************/
extern const bclass be_class_Matter_IM;
-be_local_closure(class_Matter_IM_every_250ms, /* name */
+be_local_closure(class_Matter_IM_process_timed_request, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TimedRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20TimedRequest_X3D_X25i),
+ /* K5 */ be_nested_str_weak(session),
+ /* K6 */ be_nested_str_weak(local_session_id),
+ /* K7 */ be_nested_str_weak(timeout),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(send_status),
+ /* K10 */ be_nested_str_weak(SUCCESS),
+ }),
+ be_str_weak(process_timed_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0xB80E0000, // 0000 GETNGBL R3 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x60140018, // 0007 GETGBL R5 G24
+ 0x58180004, // 0008 LDCONST R6 K4
+ 0x881C0305, // 0009 GETMBR R7 R1 K5
+ 0x881C0F06, // 000A GETMBR R7 R7 K6
+ 0x88200707, // 000B GETMBR R8 R3 K7
+ 0x7C140600, // 000C CALL R5 3
+ 0x58180008, // 000D LDCONST R6 K8
+ 0x7C100400, // 000E CALL R4 2
+ 0x8C100109, // 000F GETMET R4 R0 K9
+ 0x5C180200, // 0010 MOVE R6 R1
+ 0xB81E0000, // 0011 GETNGBL R7 K0
+ 0x881C0F0A, // 0012 GETMBR R7 R7 K10
+ 0x7C100600, // 0013 CALL R4 3
+ 0x50100200, // 0014 LDBOOL R4 1 0
+ 0x80040800, // 0015 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_read_or_subscribe_request_event_pull
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_process_read_or_subscribe_request_event_pull, /* name */
+ be_nested_proto(
+ 24, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(event_requests),
+ /* K1 */ be_nested_str_weak(get_node_id),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_nested_str_weak(parse_event_filters_min_no),
+ /* K5 */ be_nested_str_weak(event_filters),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(EventGenerator),
+ /* K8 */ be_nested_str_weak(device),
+ /* K9 */ be_nested_str_weak(start),
+ /* K10 */ be_nested_str_weak(endpoint),
+ /* K11 */ be_nested_str_weak(cluster),
+ /* K12 */ be_nested_str_weak(event),
+ /* K13 */ be_nested_str_weak(push),
+ /* K14 */ be_nested_str_weak(tasmota),
+ /* K15 */ be_nested_str_weak(loglevel),
+ /* K16 */ be_const_int(3),
+ /* K17 */ be_nested_str_weak(),
+ /* K18 */ be_nested_str_weak(get_event_name),
+ /* K19 */ be_nested_str_weak(_X28),
+ /* K20 */ be_nested_str_weak(_X29_X20),
+ /* K21 */ be_nested_str_weak(_X2502X),
+ /* K22 */ be_nested_str_weak(_X2A_X2A),
+ /* K23 */ be_nested_str_weak(_X2504X),
+ /* K24 */ be_nested_str_weak(_X2A_X2A_X2A_X2A),
+ /* K25 */ be_nested_str_weak(_X20_X28_X3E_X25s_X29),
+ /* K26 */ be_nested_str_weak(log),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X29_X20_X5B_X25s_X5D_X25s_X2F_X25s_X20_X25s_X25s),
+ /* K28 */ be_nested_str_weak(session),
+ /* K29 */ be_nested_str_weak(local_session_id),
+ /* K30 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(process_read_or_subscribe_request_event_pull),
+ &be_const_str_solidified,
+ ( &(const binstruction[140]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x200C0604, // 0002 NE R3 R3 R4
+ 0x780E0085, // 0003 JMPF R3 #008A
+ 0x4C0C0000, // 0004 LDNIL R3
+ 0x4C100000, // 0005 LDNIL R4
+ 0x20100404, // 0006 NE R4 R2 R4
+ 0x78120002, // 0007 JMPF R4 #000B
+ 0x8C100501, // 0008 GETMET R4 R2 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x70020000, // 000A JMP #000C
+ 0x4C100000, // 000B LDNIL R4
+ 0x88140300, // 000C GETMBR R5 R1 K0
+ 0x78160003, // 000D JMPF R5 #0012
+ 0x6014000C, // 000E GETGBL R5 G12
+ 0x88180300, // 000F GETMBR R6 R1 K0
+ 0x7C140200, // 0010 CALL R5 1
+ 0x70020000, // 0011 JMP #0013
+ 0x58140002, // 0012 LDCONST R5 K2
+ 0x24180B03, // 0013 GT R6 R5 K3
+ 0x781A0002, // 0014 JMPF R6 #0018
+ 0x60180012, // 0015 GETGBL R6 G18
+ 0x7C180000, // 0016 CALL R6 0
+ 0x5C0C0C00, // 0017 MOVE R3 R6
+ 0x8C180104, // 0018 GETMET R6 R0 K4
+ 0x88200305, // 0019 GETMBR R8 R1 K5
+ 0x5C240800, // 001A MOVE R9 R4
+ 0x7C180600, // 001B CALL R6 3
+ 0x881C0300, // 001C GETMBR R7 R1 K0
+ 0x781E006A, // 001D JMPF R7 #0089
+ 0x601C0010, // 001E GETGBL R7 G16
+ 0x88200300, // 001F GETMBR R8 R1 K0
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0xA8020063, // 0021 EXBLK 0 #0086
+ 0x5C200E00, // 0022 MOVE R8 R7
+ 0x7C200000, // 0023 CALL R8 0
+ 0xB8260C00, // 0024 GETNGBL R9 K6
+ 0x8C241307, // 0025 GETMET R9 R9 K7
+ 0x882C0108, // 0026 GETMBR R11 R0 K8
+ 0x7C240400, // 0027 CALL R9 2
+ 0x8C281309, // 0028 GETMET R10 R9 K9
+ 0x8830110A, // 0029 GETMBR R12 R8 K10
+ 0x8834110B, // 002A GETMBR R13 R8 K11
+ 0x8838110C, // 002B GETMBR R14 R8 K12
+ 0x5C3C0C00, // 002C MOVE R15 R6
+ 0x7C280A00, // 002D CALL R10 5
+ 0x24280B03, // 002E GT R10 R5 K3
+ 0x782A0003, // 002F JMPF R10 #0034
+ 0x8C28070D, // 0030 GETMET R10 R3 K13
+ 0x5C301200, // 0031 MOVE R12 R9
+ 0x7C280400, // 0032 CALL R10 2
+ 0x70020000, // 0033 JMP #0035
+ 0x5C0C1200, // 0034 MOVE R3 R9
+ 0xB82A1C00, // 0035 GETNGBL R10 K14
+ 0x8C28150F, // 0036 GETMET R10 R10 K15
+ 0x58300010, // 0037 LDCONST R12 K16
+ 0x7C280400, // 0038 CALL R10 2
+ 0x782A004A, // 0039 JMPF R10 #0085
+ 0x58280011, // 003A LDCONST R10 K17
+ 0x882C110B, // 003B GETMBR R11 R8 K11
+ 0x4C300000, // 003C LDNIL R12
+ 0x202C160C, // 003D NE R11 R11 R12
+ 0x782E0011, // 003E JMPF R11 #0051
+ 0x882C110C, // 003F GETMBR R11 R8 K12
+ 0x4C300000, // 0040 LDNIL R12
+ 0x202C160C, // 0041 NE R11 R11 R12
+ 0x782E000D, // 0042 JMPF R11 #0051
+ 0xB82E0C00, // 0043 GETNGBL R11 K6
+ 0x8C2C1712, // 0044 GETMET R11 R11 K18
+ 0x8834110B, // 0045 GETMBR R13 R8 K11
+ 0x8838110C, // 0046 GETMBR R14 R8 K12
+ 0x7C2C0600, // 0047 CALL R11 3
+ 0x5C281600, // 0048 MOVE R10 R11
+ 0x4C2C0000, // 0049 LDNIL R11
+ 0x202C140B, // 004A NE R11 R10 R11
+ 0x782E0002, // 004B JMPF R11 #004F
+ 0x002E260A, // 004C ADD R11 K19 R10
+ 0x002C1714, // 004D ADD R11 R11 K20
+ 0x70020000, // 004E JMP #0050
+ 0x582C0011, // 004F LDCONST R11 K17
+ 0x5C281600, // 0050 MOVE R10 R11
+ 0x882C110A, // 0051 GETMBR R11 R8 K10
+ 0x4C300000, // 0052 LDNIL R12
+ 0x202C160C, // 0053 NE R11 R11 R12
+ 0x782E0004, // 0054 JMPF R11 #005A
+ 0x602C0018, // 0055 GETGBL R11 G24
+ 0x58300015, // 0056 LDCONST R12 K21
+ 0x8834110A, // 0057 GETMBR R13 R8 K10
+ 0x7C2C0400, // 0058 CALL R11 2
+ 0x70020000, // 0059 JMP #005B
+ 0x582C0016, // 005A LDCONST R11 K22
+ 0x8830110B, // 005B GETMBR R12 R8 K11
+ 0x4C340000, // 005C LDNIL R13
+ 0x2030180D, // 005D NE R12 R12 R13
+ 0x78320004, // 005E JMPF R12 #0064
+ 0x60300018, // 005F GETGBL R12 G24
+ 0x58340017, // 0060 LDCONST R13 K23
+ 0x8838110B, // 0061 GETMBR R14 R8 K11
+ 0x7C300400, // 0062 CALL R12 2
+ 0x70020000, // 0063 JMP #0065
+ 0x58300018, // 0064 LDCONST R12 K24
+ 0x8834110C, // 0065 GETMBR R13 R8 K12
+ 0x4C380000, // 0066 LDNIL R14
+ 0x20341A0E, // 0067 NE R13 R13 R14
+ 0x78360004, // 0068 JMPF R13 #006E
+ 0x60340018, // 0069 GETGBL R13 G24
+ 0x58380015, // 006A LDCONST R14 K21
+ 0x883C110C, // 006B GETMBR R15 R8 K12
+ 0x7C340400, // 006C CALL R13 2
+ 0x70020000, // 006D JMP #006F
+ 0x58340016, // 006E LDCONST R13 K22
+ 0x4C380000, // 006F LDNIL R14
+ 0x20380C0E, // 0070 NE R14 R6 R14
+ 0x783A0004, // 0071 JMPF R14 #0077
+ 0x60380018, // 0072 GETGBL R14 G24
+ 0x583C0019, // 0073 LDCONST R15 K25
+ 0x5C400C00, // 0074 MOVE R16 R6
+ 0x7C380400, // 0075 CALL R14 2
+ 0x70020000, // 0076 JMP #0078
+ 0x58380011, // 0077 LDCONST R14 K17
+ 0xB83E3400, // 0078 GETNGBL R15 K26
+ 0x60400018, // 0079 GETGBL R16 G24
+ 0x5844001B, // 007A LDCONST R17 K27
+ 0x8848051C, // 007B GETMBR R18 R2 K28
+ 0x8848251D, // 007C GETMBR R18 R18 K29
+ 0x5C4C1600, // 007D MOVE R19 R11
+ 0x5C501800, // 007E MOVE R20 R12
+ 0x5C541A00, // 007F MOVE R21 R13
+ 0x5C581400, // 0080 MOVE R22 R10
+ 0x5C5C1C00, // 0081 MOVE R23 R14
+ 0x7C400E00, // 0082 CALL R16 7
+ 0x58440010, // 0083 LDCONST R17 K16
+ 0x7C3C0400, // 0084 CALL R15 2
+ 0x7001FF9B, // 0085 JMP #0022
+ 0x581C001E, // 0086 LDCONST R7 K30
+ 0xAC1C0200, // 0087 CATCH R7 1 0
+ 0xB0080000, // 0088 RAISE 2 R0 R0
+ 0x80040600, // 0089 RET 1 R3
+ 0x4C0C0000, // 008A LDNIL R3
+ 0x80040600, // 008B RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_every_second, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -3425,17 +3304,293 @@ be_local_closure(class_Matter_IM_every_250ms, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(subs_shop),
- /* K1 */ be_nested_str_weak(every_250ms),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(expire_sendqueue),
}),
- be_str_weak(every_250ms),
+ be_str_weak(every_second),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x80000000, // 0003 RET 0
+ ( &(const binstruction[ 3]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x80000000, // 0002 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: remove_sendqueue_by_exchangeid
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_remove_sendqueue_by_exchangeid, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(send_queue),
+ /* K2 */ be_nested_str_weak(get_exchangeid),
+ /* K3 */ be_nested_str_weak(remove),
+ /* K4 */ be_const_int(1),
+ }),
+ be_str_weak(remove_sendqueue_by_exchangeid),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x80000400, // 0003 RET 0
+ 0x58080000, // 0004 LDCONST R2 K0
+ 0x600C000C, // 0005 GETGBL R3 G12
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x140C0403, // 0008 LT R3 R2 R3
+ 0x780E000C, // 0009 JMPF R3 #0017
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x940C0602, // 000B GETIDX R3 R3 R2
+ 0x8C0C0702, // 000C GETMET R3 R3 K2
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x1C0C0601, // 000E EQ R3 R3 R1
+ 0x780E0004, // 000F JMPF R3 #0015
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x8C0C0703, // 0011 GETMET R3 R3 K3
+ 0x5C140400, // 0012 MOVE R5 R2
+ 0x7C0C0400, // 0013 CALL R3 2
+ 0x70020000, // 0014 JMP #0016
+ 0x00080504, // 0015 ADD R2 R2 K4
+ 0x7001FFED, // 0016 JMP #0005
+ 0x80000000, // 0017 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: path2raw
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_path2raw, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(cluster),
+ /* K5 */ be_nested_str_weak(attribute),
+ }),
+ be_str_weak(path2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[107]) { /* code */
+ 0x8C140300, // 0000 GETMET R5 R1 K0
+ 0x541E0036, // 0001 LDINT R7 55
+ 0x58200001, // 0002 LDCONST R8 K1
+ 0x7C140600, // 0003 CALL R5 3
+ 0x8C140300, // 0004 GETMET R5 R1 K0
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x58200001, // 0006 LDCONST R8 K1
+ 0x7C140600, // 0007 CALL R5 3
+ 0x88140502, // 0008 GETMBR R5 R2 K2
+ 0x541A00FE, // 0009 LDINT R6 255
+ 0x18140A06, // 000A LE R5 R5 R6
+ 0x78160008, // 000B JMPF R5 #0015
+ 0x8C140300, // 000C GETMET R5 R1 K0
+ 0x541E2401, // 000D LDINT R7 9218
+ 0x5421FFFD, // 000E LDINT R8 -2
+ 0x7C140600, // 000F CALL R5 3
+ 0x8C140300, // 0010 GETMET R5 R1 K0
+ 0x881C0502, // 0011 GETMBR R7 R2 K2
+ 0x58200001, // 0012 LDCONST R8 K1
+ 0x7C140600, // 0013 CALL R5 3
+ 0x70020007, // 0014 JMP #001D
+ 0x8C140300, // 0015 GETMET R5 R1 K0
+ 0x541E2501, // 0016 LDINT R7 9474
+ 0x5421FFFD, // 0017 LDINT R8 -2
+ 0x7C140600, // 0018 CALL R5 3
+ 0x8C140300, // 0019 GETMET R5 R1 K0
+ 0x881C0502, // 001A GETMBR R7 R2 K2
+ 0x58200003, // 001B LDCONST R8 K3
+ 0x7C140600, // 001C CALL R5 3
+ 0x88140504, // 001D GETMBR R5 R2 K4
+ 0x541A00FE, // 001E LDINT R6 255
+ 0x18140A06, // 001F LE R5 R5 R6
+ 0x78160008, // 0020 JMPF R5 #002A
+ 0x8C140300, // 0021 GETMET R5 R1 K0
+ 0x541E2402, // 0022 LDINT R7 9219
+ 0x5421FFFD, // 0023 LDINT R8 -2
+ 0x7C140600, // 0024 CALL R5 3
+ 0x8C140300, // 0025 GETMET R5 R1 K0
+ 0x881C0504, // 0026 GETMBR R7 R2 K4
+ 0x58200001, // 0027 LDCONST R8 K1
+ 0x7C140600, // 0028 CALL R5 3
+ 0x70020014, // 0029 JMP #003F
+ 0x88140504, // 002A GETMBR R5 R2 K4
+ 0x541AFFFE, // 002B LDINT R6 65535
+ 0x18140A06, // 002C LE R5 R5 R6
+ 0x78160008, // 002D JMPF R5 #0037
+ 0x8C140300, // 002E GETMET R5 R1 K0
+ 0x541E2502, // 002F LDINT R7 9475
+ 0x5421FFFD, // 0030 LDINT R8 -2
+ 0x7C140600, // 0031 CALL R5 3
+ 0x8C140300, // 0032 GETMET R5 R1 K0
+ 0x881C0504, // 0033 GETMBR R7 R2 K4
+ 0x58200003, // 0034 LDCONST R8 K3
+ 0x7C140600, // 0035 CALL R5 3
+ 0x70020007, // 0036 JMP #003F
+ 0x8C140300, // 0037 GETMET R5 R1 K0
+ 0x541E2602, // 0038 LDINT R7 9731
+ 0x5421FFFD, // 0039 LDINT R8 -2
+ 0x7C140600, // 003A CALL R5 3
+ 0x8C140300, // 003B GETMET R5 R1 K0
+ 0x881C0504, // 003C GETMBR R7 R2 K4
+ 0x54220003, // 003D LDINT R8 4
+ 0x7C140600, // 003E CALL R5 3
+ 0x88140505, // 003F GETMBR R5 R2 K5
+ 0x541A00FE, // 0040 LDINT R6 255
+ 0x18140A06, // 0041 LE R5 R5 R6
+ 0x78160008, // 0042 JMPF R5 #004C
+ 0x8C140300, // 0043 GETMET R5 R1 K0
+ 0x541E2403, // 0044 LDINT R7 9220
+ 0x5421FFFD, // 0045 LDINT R8 -2
+ 0x7C140600, // 0046 CALL R5 3
+ 0x8C140300, // 0047 GETMET R5 R1 K0
+ 0x881C0505, // 0048 GETMBR R7 R2 K5
+ 0x58200001, // 0049 LDCONST R8 K1
+ 0x7C140600, // 004A CALL R5 3
+ 0x70020014, // 004B JMP #0061
+ 0x88140505, // 004C GETMBR R5 R2 K5
+ 0x541AFFFE, // 004D LDINT R6 65535
+ 0x18140A06, // 004E LE R5 R5 R6
+ 0x78160008, // 004F JMPF R5 #0059
+ 0x8C140300, // 0050 GETMET R5 R1 K0
+ 0x541E2503, // 0051 LDINT R7 9476
+ 0x5421FFFD, // 0052 LDINT R8 -2
+ 0x7C140600, // 0053 CALL R5 3
+ 0x8C140300, // 0054 GETMET R5 R1 K0
+ 0x881C0505, // 0055 GETMBR R7 R2 K5
+ 0x58200003, // 0056 LDCONST R8 K3
+ 0x7C140600, // 0057 CALL R5 3
+ 0x70020007, // 0058 JMP #0061
+ 0x8C140300, // 0059 GETMET R5 R1 K0
+ 0x541E2603, // 005A LDINT R7 9732
+ 0x5421FFFD, // 005B LDINT R8 -2
+ 0x7C140600, // 005C CALL R5 3
+ 0x8C140300, // 005D GETMET R5 R1 K0
+ 0x881C0505, // 005E GETMBR R7 R2 K5
+ 0x54220003, // 005F LDINT R8 4
+ 0x7C140600, // 0060 CALL R5 3
+ 0x78120003, // 0061 JMPF R4 #0066
+ 0x8C140300, // 0062 GETMET R5 R1 K0
+ 0x541E3404, // 0063 LDINT R7 13317
+ 0x5421FFFD, // 0064 LDINT R8 -2
+ 0x7C140600, // 0065 CALL R5 3
+ 0x8C140300, // 0066 GETMET R5 R1 K0
+ 0x541E0017, // 0067 LDINT R7 24
+ 0x58200001, // 0068 LDCONST R8 K1
+ 0x7C140600, // 0069 CALL R5 3
+ 0x80000000, // 006A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_event_filters_min_no
+********************************************************************/
+extern const bclass be_class_Matter_IM;
+be_local_closure(class_Matter_IM_parse_event_filters_min_no, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_IM),
+ /* K1 */ be_nested_str_weak(int64),
+ /* K2 */ be_nested_str_weak(toint64),
+ /* K3 */ be_nested_str_weak(node),
+ /* K4 */ be_nested_str_weak(tobytes),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20node_id_X20filter_X20_X25s_X20doesn_X27t_X20match_X20_X25s),
+ /* K8 */ be_nested_str_weak(tohex),
+ /* K9 */ be_nested_str_weak(event_min),
+ /* K10 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(parse_event_filters_min_no),
+ &be_const_str_solidified,
+ ( &(const binstruction[50]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x4C100000, // 0002 LDNIL R4
+ 0x20100004, // 0003 NE R4 R0 R4
+ 0x7812002B, // 0004 JMPF R4 #0031
+ 0x60100010, // 0005 GETGBL R4 G16
+ 0x5C140000, // 0006 MOVE R5 R0
+ 0x7C100200, // 0007 CALL R4 1
+ 0xA8020024, // 0008 EXBLK 0 #002E
+ 0x5C140800, // 0009 MOVE R5 R4
+ 0x7C140000, // 000A CALL R5 0
+ 0xB81A0200, // 000B GETNGBL R6 K1
+ 0x8C180D02, // 000C GETMET R6 R6 K2
+ 0x88200B03, // 000D GETMBR R8 R5 K3
+ 0x7C180400, // 000E CALL R6 2
+ 0x781A0012, // 000F JMPF R6 #0023
+ 0x78060011, // 0010 JMPF R1 #0023
+ 0x881C0B03, // 0011 GETMBR R7 R5 K3
+ 0x8C1C0F04, // 0012 GETMET R7 R7 K4
+ 0x7C1C0200, // 0013 CALL R7 1
+ 0x201C0E01, // 0014 NE R7 R7 R1
+ 0x781E000C, // 0015 JMPF R7 #0023
+ 0xB81E0A00, // 0016 GETNGBL R7 K5
+ 0x8C1C0F06, // 0017 GETMET R7 R7 K6
+ 0x60240018, // 0018 GETGBL R9 G24
+ 0x58280007, // 0019 LDCONST R10 K7
+ 0x8C2C0D04, // 001A GETMET R11 R6 K4
+ 0x7C2C0200, // 001B CALL R11 1
+ 0x8C2C1708, // 001C GETMET R11 R11 K8
+ 0x7C2C0200, // 001D CALL R11 1
+ 0x8C300308, // 001E GETMET R12 R1 K8
+ 0x7C300200, // 001F CALL R12 1
+ 0x7C240600, // 0020 CALL R9 3
+ 0x7C1C0400, // 0021 CALL R7 2
+ 0x7001FFE5, // 0022 JMP #0009
+ 0xB81E0200, // 0023 GETNGBL R7 K1
+ 0x8C1C0F02, // 0024 GETMET R7 R7 K2
+ 0x88240B09, // 0025 GETMBR R9 R5 K9
+ 0x7C1C0400, // 0026 CALL R7 2
+ 0x4C200000, // 0027 LDNIL R8
+ 0x1C200608, // 0028 EQ R8 R3 R8
+ 0x74220001, // 0029 JMPT R8 #002C
+ 0x14200607, // 002A LT R8 R3 R7
+ 0x78220000, // 002B JMPF R8 #002D
+ 0x5C0C0E00, // 002C MOVE R3 R7
+ 0x7001FFDA, // 002D JMP #0009
+ 0x5810000A, // 002E LDCONST R4 K10
+ 0xAC100200, // 002F CATCH R4 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0x80040600, // 0031 RET 1 R3
})
)
);
@@ -3448,47 +3603,45 @@ be_local_closure(class_Matter_IM_every_250ms, /* name */
be_local_class(Matter_IM,
6,
NULL,
- be_nested_map(39,
+ be_nested_map(37,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(invoke_request_solo, -1), be_const_var(4) },
- { be_const_key_weak(send_subscribe_response_pull, -1), be_const_closure(class_Matter_IM_send_subscribe_response_pull_closure) },
- { be_const_key_weak(every_250ms, 17), be_const_closure(class_Matter_IM_every_250ms_closure) },
- { be_const_key_weak(device, 32), be_const_var(0) },
- { be_const_key_weak(send_subscribe_update, -1), be_const_closure(class_Matter_IM_send_subscribe_update_closure) },
- { be_const_key_weak(read_single_attribute_to_bytes, 14), be_const_closure(class_Matter_IM_read_single_attribute_to_bytes_closure) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_init_closure) },
- { be_const_key_weak(send_status, -1), be_const_closure(class_Matter_IM_send_status_closure) },
- { be_const_key_weak(process_incoming_ack, 12), be_const_closure(class_Matter_IM_process_incoming_ack_closure) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_IM_every_second_closure) },
- { be_const_key_weak(expire_sendqueue, 37), be_const_closure(class_Matter_IM_expire_sendqueue_closure) },
- { be_const_key_weak(send_write_response, -1), be_const_closure(class_Matter_IM_send_write_response_closure) },
- { be_const_key_weak(send_invoke_response, 13), be_const_closure(class_Matter_IM_send_invoke_response_closure) },
- { be_const_key_weak(invokeresponse2raw, -1), be_const_closure(class_Matter_IM_invokeresponse2raw_closure) },
- { be_const_key_weak(path2raw, -1), be_const_closure(class_Matter_IM_path2raw_closure) },
- { be_const_key_weak(process_status_response, -1), be_const_closure(class_Matter_IM_process_status_response_closure) },
- { be_const_key_weak(process_invoke_request_solo, -1), be_const_closure(class_Matter_IM_process_invoke_request_solo_closure) },
- { be_const_key_weak(process_incoming, 15), be_const_closure(class_Matter_IM_process_incoming_closure) },
- { be_const_key_weak(remove_sendqueue_by_exchangeid, -1), be_const_closure(class_Matter_IM_remove_sendqueue_by_exchangeid_closure) },
- { be_const_key_weak(process_read_or_subscribe_request_pull, -1), be_const_closure(class_Matter_IM_process_read_or_subscribe_request_pull_closure) },
- { be_const_key_weak(send_queue, -1), be_const_var(2) },
- { be_const_key_weak(process_write_request, -1), be_const_closure(class_Matter_IM_process_write_request_closure) },
- { be_const_key_weak(process_write_response, -1), be_const_closure(class_Matter_IM_process_write_response_closure) },
- { be_const_key_weak(send_ack_now, -1), be_const_closure(class_Matter_IM_send_ack_now_closure) },
- { be_const_key_weak(find_sendqueue_by_exchangeid, 19), be_const_closure(class_Matter_IM_find_sendqueue_by_exchangeid_closure) },
- { be_const_key_weak(write_single_attribute_status_to_bytes, -1), be_const_closure(class_Matter_IM_write_single_attribute_status_to_bytes_closure) },
- { be_const_key_weak(send_subscribe_heartbeat, -1), be_const_closure(class_Matter_IM_send_subscribe_heartbeat_closure) },
- { be_const_key_weak(attributedata2raw, 28), be_const_closure(class_Matter_IM_attributedata2raw_closure) },
- { be_const_key_weak(attributestatus2raw, -1), be_const_closure(class_Matter_IM_attributestatus2raw_closure) },
- { be_const_key_weak(read_request_solo, -1), be_const_var(3) },
- { be_const_key_weak(process_invoke_request, 21), be_const_closure(class_Matter_IM_process_invoke_request_closure) },
- { be_const_key_weak(send_report_data_pull, -1), be_const_closure(class_Matter_IM_send_report_data_pull_closure) },
- { be_const_key_weak(subs_shop, 36), be_const_var(1) },
- { be_const_key_weak(tlv_solo, 16), be_const_var(5) },
- { be_const_key_weak(process_read_request_solo, -1), be_const_closure(class_Matter_IM_process_read_request_solo_closure) },
- { be_const_key_weak(process_read_request_pull, -1), be_const_closure(class_Matter_IM_process_read_request_pull_closure) },
- { be_const_key_weak(process_timed_request, -1), be_const_closure(class_Matter_IM_process_timed_request_closure) },
+ { be_const_key_weak(process_read_request_pull, 32), be_const_closure(class_Matter_IM_process_read_request_pull_closure) },
+ { be_const_key_weak(process_incoming_ack, 7), be_const_closure(class_Matter_IM_process_incoming_ack_closure) },
+ { be_const_key_weak(process_invoke_request, -1), be_const_closure(class_Matter_IM_process_invoke_request_closure) },
{ be_const_key_weak(subscribe_request, -1), be_const_closure(class_Matter_IM_subscribe_request_closure) },
- { be_const_key_weak(send_enqueued, 2), be_const_closure(class_Matter_IM_send_enqueued_closure) },
+ { be_const_key_weak(path2raw, 21), be_const_closure(class_Matter_IM_path2raw_closure) },
+ { be_const_key_weak(subs_shop, 33), be_const_var(1) },
+ { be_const_key_weak(process_read_or_subscribe_request_pull, -1), be_const_closure(class_Matter_IM_process_read_or_subscribe_request_pull_closure) },
+ { be_const_key_weak(invoke_request_solo, 11), be_const_var(4) },
+ { be_const_key_weak(process_incoming, -1), be_const_closure(class_Matter_IM_process_incoming_closure) },
+ { be_const_key_weak(process_invoke_request_solo, -1), be_const_closure(class_Matter_IM_process_invoke_request_solo_closure) },
+ { be_const_key_weak(invokeresponse2raw, 34), be_const_closure(class_Matter_IM_invokeresponse2raw_closure) },
+ { be_const_key_weak(tlv_solo, -1), be_const_var(5) },
+ { be_const_key_weak(send_queue, -1), be_const_var(2) },
+ { be_const_key_weak(remove_sendqueue_by_exchangeid, 15), be_const_closure(class_Matter_IM_remove_sendqueue_by_exchangeid_closure) },
+ { be_const_key_weak(process_write_request, 26), be_const_closure(class_Matter_IM_process_write_request_closure) },
+ { be_const_key_weak(read_single_attribute_to_bytes, -1), be_const_closure(class_Matter_IM_read_single_attribute_to_bytes_closure) },
+ { be_const_key_weak(send_subscribe_update, -1), be_const_closure(class_Matter_IM_send_subscribe_update_closure) },
+ { be_const_key_weak(device, -1), be_const_var(0) },
+ { be_const_key_weak(send_subscribe_heartbeat, -1), be_const_closure(class_Matter_IM_send_subscribe_heartbeat_closure) },
+ { be_const_key_weak(every_50ms, 28), be_const_closure(class_Matter_IM_every_50ms_closure) },
+ { be_const_key_weak(process_write_response, 27), be_const_closure(class_Matter_IM_process_write_response_closure) },
+ { be_const_key_weak(process_read_or_subscribe_request_event_pull, -1), be_const_closure(class_Matter_IM_process_read_or_subscribe_request_event_pull_closure) },
+ { be_const_key_weak(send_ack_now, -1), be_const_closure(class_Matter_IM_send_ack_now_closure) },
+ { be_const_key_weak(process_read_request_solo, 13), be_const_closure(class_Matter_IM_process_read_request_solo_closure) },
+ { be_const_key_weak(attributedata2raw, 4), be_const_closure(class_Matter_IM_attributedata2raw_closure) },
+ { be_const_key_weak(write_single_attribute_status_to_bytes, 30), be_const_closure(class_Matter_IM_write_single_attribute_status_to_bytes_closure) },
+ { be_const_key_weak(process_status_response, -1), be_const_closure(class_Matter_IM_process_status_response_closure) },
+ { be_const_key_weak(send_status, -1), be_const_closure(class_Matter_IM_send_status_closure) },
+ { be_const_key_weak(find_sendqueue_by_exchangeid, -1), be_const_closure(class_Matter_IM_find_sendqueue_by_exchangeid_closure) },
+ { be_const_key_weak(process_timed_request, -1), be_const_closure(class_Matter_IM_process_timed_request_closure) },
+ { be_const_key_weak(attributestatus2raw, 35), be_const_closure(class_Matter_IM_attributestatus2raw_closure) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_IM_every_second_closure) },
+ { be_const_key_weak(init, 3), be_const_closure(class_Matter_IM_init_closure) },
+ { be_const_key_weak(send_enqueued, -1), be_const_closure(class_Matter_IM_send_enqueued_closure) },
+ { be_const_key_weak(expire_sendqueue, -1), be_const_closure(class_Matter_IM_expire_sendqueue_closure) },
+ { be_const_key_weak(read_request_solo, -1), be_const_var(3) },
+ { be_const_key_weak(parse_event_filters_min_no, -1), be_const_static_closure(class_Matter_IM_parse_event_filters_min_no_closure) },
})),
be_str_weak(Matter_IM)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 66be8720b..1ccdc6e0c 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -575,13 +575,52 @@ be_local_closure(class_Matter_IM_ReportData_Pull_set_subscription_id, /* name
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(generator_or_arr),
+ /* K2 */ be_nested_str_weak(event_generator_or_arr),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x541E0004, // 0005 LDINT R7 5
+ 0x50200200, // 0006 LDBOOL R8 1 0
+ 0x7C100800, // 0007 CALL R4 4
+ 0x90020202, // 0008 SETMBR R0 K1 R2
+ 0x90020403, // 0009 SETMBR R0 K2 R3
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: send_im
********************************************************************/
extern const bclass be_class_Matter_IM_ReportData_Pull;
be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
be_nested_proto(
- 15, /* nstack */
+ 19, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -589,41 +628,62 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
0, /* has sup protos */
&be_class_Matter_IM_ReportData_Pull,
1, /* has constants */
- ( &(const bvalue[30]) { /* constants */
+ ( &(const bvalue[51]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(resp),
/* K2 */ be_nested_str_weak(data),
- /* K3 */ be_nested_str_weak(generator_or_arr),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(next),
- /* K6 */ be_nested_str_weak(device),
- /* K7 */ be_nested_str_weak(debug),
- /* K8 */ be_nested_str_weak(is_direct),
- /* K9 */ be_nested_str_weak(im),
- /* K10 */ be_nested_str_weak(read_single_attribute_to_bytes),
- /* K11 */ be_nested_str_weak(get_pi),
- /* K12 */ be_nested_str_weak(session),
- /* K13 */ be_nested_str_weak(MAX_MESSAGE),
- /* K14 */ be_nested_str_weak(append),
- /* K15 */ be_nested_str_weak(remove),
- /* K16 */ be_nested_str_weak(matter),
- /* K17 */ be_nested_str_weak(ReportDataMessage),
- /* K18 */ be_nested_str_weak(subscription_id),
- /* K19 */ be_nested_str_weak(suppress_response),
- /* K20 */ be_nested_str_weak(attribute_reports),
- /* K21 */ be_nested_str_weak(more_chunked_messages),
- /* K22 */ be_nested_str_weak(to_TLV),
- /* K23 */ be_nested_str_weak(tlv2raw),
- /* K24 */ be_nested_str_weak(encode_frame),
- /* K25 */ be_nested_str_weak(encrypt),
- /* K26 */ be_nested_str_weak(send_response_frame),
- /* K27 */ be_nested_str_weak(last_counter),
- /* K28 */ be_nested_str_weak(message_counter),
- /* K29 */ be_nested_str_weak(finish),
+ /* K3 */ be_nested_str_weak(device),
+ /* K4 */ be_nested_str_weak(debug),
+ /* K5 */ be_nested_str_weak(data_ev),
+ /* K6 */ be_nested_str_weak(event_generator_or_arr),
+ /* K7 */ be_nested_str_weak(generator_or_arr),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(next_attribute),
+ /* K10 */ be_nested_str_weak(is_direct),
+ /* K11 */ be_nested_str_weak(im),
+ /* K12 */ be_nested_str_weak(read_single_attribute_to_bytes),
+ /* K13 */ be_nested_str_weak(get_pi),
+ /* K14 */ be_nested_str_weak(session),
+ /* K15 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K16 */ be_nested_str_weak(append),
+ /* K17 */ be_nested_str_weak(remove),
+ /* K18 */ be_nested_str_weak(next_event),
+ /* K19 */ be_nested_str_weak(tasmota),
+ /* K20 */ be_nested_str_weak(loglevel),
+ /* K21 */ be_const_int(3),
+ /* K22 */ be_nested_str_weak(),
+ /* K23 */ be_nested_str_weak(data0),
+ /* K24 */ be_nested_str_weak(_X20_X2D_X20),
+ /* K25 */ be_nested_str_weak(data1),
+ /* K26 */ be_nested_str_weak(_X2C_X20),
+ /* K27 */ be_nested_str_weak(data2),
+ /* K28 */ be_nested_str_weak(log),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X7C_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X25s),
+ /* K30 */ be_nested_str_weak(local_session_id),
+ /* K31 */ be_nested_str_weak(event_no),
+ /* K32 */ be_nested_str_weak(endpoint),
+ /* K33 */ be_nested_str_weak(cluster),
+ /* K34 */ be_nested_str_weak(event_id),
+ /* K35 */ be_nested_str_weak(to_raw_bytes),
+ /* K36 */ be_nested_str_weak(matter),
+ /* K37 */ be_nested_str_weak(ReportDataMessage),
+ /* K38 */ be_nested_str_weak(subscription_id),
+ /* K39 */ be_nested_str_weak(suppress_response),
+ /* K40 */ be_nested_str_weak(attribute_reports),
+ /* K41 */ be_nested_str_weak(event_reports),
+ /* K42 */ be_nested_str_weak(more_chunked_messages),
+ /* K43 */ be_nested_str_weak(to_TLV),
+ /* K44 */ be_nested_str_weak(tlv2raw),
+ /* K45 */ be_nested_str_weak(encode_frame),
+ /* K46 */ be_nested_str_weak(encrypt),
+ /* K47 */ be_nested_str_weak(send_response_frame),
+ /* K48 */ be_nested_str_weak(last_counter),
+ /* K49 */ be_nested_str_weak(message_counter),
+ /* K50 */ be_nested_str_weak(finish),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[134]) { /* code */
+ ( &(const binstruction[311]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
@@ -640,161 +700,301 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
0x4C100000, // 000D LDNIL R4
0x90020404, // 000E SETMBR R0 K2 R4
0x50100200, // 000F LDBOOL R4 1 0
- 0x7812004C, // 0010 JMPF R4 #005E
- 0x88140103, // 0011 GETMBR R5 R0 K3
- 0x4C180000, // 0012 LDNIL R6
- 0x20140A06, // 0013 NE R5 R5 R6
- 0x78160048, // 0014 JMPF R5 #005E
- 0x6014000F, // 0015 GETGBL R5 G15
- 0x88180103, // 0016 GETMBR R6 R0 K3
- 0x601C0012, // 0017 GETGBL R7 G18
- 0x7C140400, // 0018 CALL R5 2
- 0x78160002, // 0019 JMPF R5 #001D
- 0x88140103, // 001A GETMBR R5 R0 K3
- 0x94140B04, // 001B GETIDX R5 R5 K4
- 0x70020000, // 001C JMP #001E
- 0x88140103, // 001D GETMBR R5 R0 K3
- 0x4C180000, // 001E LDNIL R6
- 0x78120028, // 001F JMPF R4 #0049
- 0x8C1C0B05, // 0020 GETMET R7 R5 K5
- 0x7C1C0200, // 0021 CALL R7 1
- 0x5C180E00, // 0022 MOVE R6 R7
- 0x781E0024, // 0023 JMPF R7 #0049
- 0x881C0306, // 0024 GETMBR R7 R1 K6
- 0x881C0F07, // 0025 GETMBR R7 R7 K7
- 0x8C200B08, // 0026 GETMET R8 R5 K8
- 0x7C200200, // 0027 CALL R8 1
- 0x74220001, // 0028 JMPT R8 #002B
- 0x741E0000, // 0029 JMPT R7 #002B
- 0x50200001, // 002A LDBOOL R8 0 1
- 0x50200200, // 002B LDBOOL R8 1 0
- 0x88240309, // 002C GETMBR R9 R1 K9
- 0x8C24130A, // 002D GETMET R9 R9 K10
- 0x8C2C0B0B, // 002E GETMET R11 R5 K11
- 0x7C2C0200, // 002F CALL R11 1
- 0x5C300C00, // 0030 MOVE R12 R6
- 0x8834050C, // 0031 GETMBR R13 R2 K12
- 0x5C381000, // 0032 MOVE R14 R8
- 0x7C240A00, // 0033 CALL R9 5
- 0x4C280000, // 0034 LDNIL R10
- 0x1C28120A, // 0035 EQ R10 R9 R10
- 0x782A0000, // 0036 JMPF R10 #0038
- 0x7001FFE6, // 0037 JMP #001F
- 0x6028000C, // 0038 GETGBL R10 G12
- 0x5C2C0600, // 0039 MOVE R11 R3
- 0x7C280200, // 003A CALL R10 1
- 0x602C000C, // 003B GETGBL R11 G12
- 0x5C301200, // 003C MOVE R12 R9
- 0x7C2C0200, // 003D CALL R11 1
- 0x0028140B, // 003E ADD R10 R10 R11
- 0x882C010D, // 003F GETMBR R11 R0 K13
- 0x2428140B, // 0040 GT R10 R10 R11
- 0x782A0002, // 0041 JMPF R10 #0045
- 0x90020409, // 0042 SETMBR R0 K2 R9
- 0x50100000, // 0043 LDBOOL R4 0 0
- 0x70020002, // 0044 JMP #0048
- 0x8C28070E, // 0045 GETMET R10 R3 K14
- 0x5C301200, // 0046 MOVE R12 R9
- 0x7C280400, // 0047 CALL R10 2
- 0x7001FFD5, // 0048 JMP #001F
- 0x78120012, // 0049 JMPF R4 #005D
- 0x601C000F, // 004A GETGBL R7 G15
- 0x88200103, // 004B GETMBR R8 R0 K3
- 0x60240012, // 004C GETGBL R9 G18
- 0x7C1C0400, // 004D CALL R7 2
- 0x781E000B, // 004E JMPF R7 #005B
- 0x881C0103, // 004F GETMBR R7 R0 K3
- 0x8C1C0F0F, // 0050 GETMET R7 R7 K15
- 0x58240004, // 0051 LDCONST R9 K4
- 0x7C1C0400, // 0052 CALL R7 2
- 0x601C000C, // 0053 GETGBL R7 G12
- 0x88200103, // 0054 GETMBR R8 R0 K3
- 0x7C1C0200, // 0055 CALL R7 1
- 0x1C1C0F04, // 0056 EQ R7 R7 K4
- 0x781E0001, // 0057 JMPF R7 #005A
- 0x4C1C0000, // 0058 LDNIL R7
- 0x90020607, // 0059 SETMBR R0 K3 R7
- 0x70020001, // 005A JMP #005D
- 0x4C1C0000, // 005B LDNIL R7
- 0x90020607, // 005C SETMBR R0 K3 R7
- 0x7001FFB1, // 005D JMP #0010
- 0xB8162000, // 005E GETNGBL R5 K16
- 0x8C140B11, // 005F GETMET R5 R5 K17
- 0x7C140200, // 0060 CALL R5 1
- 0x88180112, // 0061 GETMBR R6 R0 K18
- 0x90162406, // 0062 SETMBR R5 K18 R6
- 0x88180113, // 0063 GETMBR R6 R0 K19
- 0x90162606, // 0064 SETMBR R5 K19 R6
- 0x60180012, // 0065 GETGBL R6 G18
- 0x7C180000, // 0066 CALL R6 0
- 0x401C0C03, // 0067 CONNECT R7 R6 R3
- 0x90162806, // 0068 SETMBR R5 K20 R6
- 0x88180102, // 0069 GETMBR R6 R0 K2
- 0x4C1C0000, // 006A LDNIL R7
- 0x20180C07, // 006B NE R6 R6 R7
- 0x90162A06, // 006C SETMBR R5 K21 R6
- 0x8C180B16, // 006D GETMET R6 R5 K22
- 0x7C180200, // 006E CALL R6 1
- 0x8C1C0D17, // 006F GETMET R7 R6 K23
- 0x60240015, // 0070 GETGBL R9 G21
- 0x8828010D, // 0071 GETMBR R10 R0 K13
- 0x7C240200, // 0072 CALL R9 1
- 0x7C1C0400, // 0073 CALL R7 2
- 0x8C200518, // 0074 GETMET R8 R2 K24
- 0x5C280E00, // 0075 MOVE R10 R7
- 0x7C200400, // 0076 CALL R8 2
- 0x8C200519, // 0077 GETMET R8 R2 K25
- 0x7C200200, // 0078 CALL R8 1
- 0x8C20031A, // 0079 GETMET R8 R1 K26
- 0x5C280400, // 007A MOVE R10 R2
- 0x7C200400, // 007B CALL R8 2
- 0x8820051C, // 007C GETMBR R8 R2 K28
- 0x90023608, // 007D SETMBR R0 K27 R8
- 0x88200B15, // 007E GETMBR R8 R5 K21
- 0x78220002, // 007F JMPF R8 #0083
- 0x50200000, // 0080 LDBOOL R8 0 0
- 0x90020008, // 0081 SETMBR R0 K0 R8
+ 0x88140303, // 0010 GETMBR R5 R1 K3
+ 0x88140B04, // 0011 GETMBR R5 R5 K4
+ 0x88180105, // 0012 GETMBR R6 R0 K5
+ 0x4C1C0000, // 0013 LDNIL R7
+ 0x20180C07, // 0014 NE R6 R6 R7
+ 0x781A0001, // 0015 JMPF R6 #0018
+ 0x88180105, // 0016 GETMBR R6 R0 K5
+ 0x70020007, // 0017 JMP #0020
+ 0x88180106, // 0018 GETMBR R6 R0 K6
+ 0x4C1C0000, // 0019 LDNIL R7
+ 0x20180C07, // 001A NE R6 R6 R7
+ 0x781A0002, // 001B JMPF R6 #001F
+ 0x60180015, // 001C GETGBL R6 G21
+ 0x7C180000, // 001D CALL R6 0
+ 0x70020000, // 001E JMP #0020
+ 0x4C180000, // 001F LDNIL R6
+ 0x7812004A, // 0020 JMPF R4 #006C
+ 0x881C0107, // 0021 GETMBR R7 R0 K7
+ 0x4C200000, // 0022 LDNIL R8
+ 0x201C0E08, // 0023 NE R7 R7 R8
+ 0x781E0046, // 0024 JMPF R7 #006C
+ 0x601C000F, // 0025 GETGBL R7 G15
+ 0x88200107, // 0026 GETMBR R8 R0 K7
+ 0x60240012, // 0027 GETGBL R9 G18
+ 0x7C1C0400, // 0028 CALL R7 2
+ 0x781E0002, // 0029 JMPF R7 #002D
+ 0x881C0107, // 002A GETMBR R7 R0 K7
+ 0x941C0F08, // 002B GETIDX R7 R7 K8
+ 0x70020000, // 002C JMP #002E
+ 0x881C0107, // 002D GETMBR R7 R0 K7
+ 0x4C200000, // 002E LDNIL R8
+ 0x78120026, // 002F JMPF R4 #0057
+ 0x8C240F09, // 0030 GETMET R9 R7 K9
+ 0x7C240200, // 0031 CALL R9 1
+ 0x5C201200, // 0032 MOVE R8 R9
+ 0x78260022, // 0033 JMPF R9 #0057
+ 0x8C240F0A, // 0034 GETMET R9 R7 K10
+ 0x7C240200, // 0035 CALL R9 1
+ 0x74260001, // 0036 JMPT R9 #0039
+ 0x74160000, // 0037 JMPT R5 #0039
+ 0x50240001, // 0038 LDBOOL R9 0 1
+ 0x50240200, // 0039 LDBOOL R9 1 0
+ 0x8828030B, // 003A GETMBR R10 R1 K11
+ 0x8C28150C, // 003B GETMET R10 R10 K12
+ 0x8C300F0D, // 003C GETMET R12 R7 K13
+ 0x7C300200, // 003D CALL R12 1
+ 0x5C341000, // 003E MOVE R13 R8
+ 0x8838050E, // 003F GETMBR R14 R2 K14
+ 0x5C3C1200, // 0040 MOVE R15 R9
+ 0x7C280A00, // 0041 CALL R10 5
+ 0x4C2C0000, // 0042 LDNIL R11
+ 0x1C2C140B, // 0043 EQ R11 R10 R11
+ 0x782E0000, // 0044 JMPF R11 #0046
+ 0x7001FFE8, // 0045 JMP #002F
+ 0x602C000C, // 0046 GETGBL R11 G12
+ 0x5C300600, // 0047 MOVE R12 R3
+ 0x7C2C0200, // 0048 CALL R11 1
+ 0x6030000C, // 0049 GETGBL R12 G12
+ 0x5C341400, // 004A MOVE R13 R10
+ 0x7C300200, // 004B CALL R12 1
+ 0x002C160C, // 004C ADD R11 R11 R12
+ 0x8830010F, // 004D GETMBR R12 R0 K15
+ 0x242C160C, // 004E GT R11 R11 R12
+ 0x782E0002, // 004F JMPF R11 #0053
+ 0x9002040A, // 0050 SETMBR R0 K2 R10
+ 0x50100000, // 0051 LDBOOL R4 0 0
+ 0x70020002, // 0052 JMP #0056
+ 0x8C2C0710, // 0053 GETMET R11 R3 K16
+ 0x5C341400, // 0054 MOVE R13 R10
+ 0x7C2C0400, // 0055 CALL R11 2
+ 0x7001FFD7, // 0056 JMP #002F
+ 0x78120012, // 0057 JMPF R4 #006B
+ 0x6024000F, // 0058 GETGBL R9 G15
+ 0x88280107, // 0059 GETMBR R10 R0 K7
+ 0x602C0012, // 005A GETGBL R11 G18
+ 0x7C240400, // 005B CALL R9 2
+ 0x7826000B, // 005C JMPF R9 #0069
+ 0x88240107, // 005D GETMBR R9 R0 K7
+ 0x8C241311, // 005E GETMET R9 R9 K17
+ 0x582C0008, // 005F LDCONST R11 K8
+ 0x7C240400, // 0060 CALL R9 2
+ 0x6024000C, // 0061 GETGBL R9 G12
+ 0x88280107, // 0062 GETMBR R10 R0 K7
+ 0x7C240200, // 0063 CALL R9 1
+ 0x1C241308, // 0064 EQ R9 R9 K8
+ 0x78260001, // 0065 JMPF R9 #0068
+ 0x4C240000, // 0066 LDNIL R9
+ 0x90020E09, // 0067 SETMBR R0 K7 R9
+ 0x70020001, // 0068 JMP #006B
+ 0x4C240000, // 0069 LDNIL R9
+ 0x90020E09, // 006A SETMBR R0 K7 R9
+ 0x7001FFB3, // 006B JMP #0020
+ 0x78120017, // 006C JMPF R4 #0085
+ 0x881C0105, // 006D GETMBR R7 R0 K5
+ 0x4C200000, // 006E LDNIL R8
+ 0x201C0E08, // 006F NE R7 R7 R8
+ 0x781E0013, // 0070 JMPF R7 #0085
+ 0x601C000C, // 0071 GETGBL R7 G12
+ 0x88200105, // 0072 GETMBR R8 R0 K5
+ 0x7C1C0200, // 0073 CALL R7 1
+ 0x241C0F08, // 0074 GT R7 R7 K8
+ 0x781E000E, // 0075 JMPF R7 #0085
+ 0x601C000C, // 0076 GETGBL R7 G12
+ 0x5C200600, // 0077 MOVE R8 R3
+ 0x7C1C0200, // 0078 CALL R7 1
+ 0x6020000C, // 0079 GETGBL R8 G12
+ 0x88240105, // 007A GETMBR R9 R0 K5
+ 0x7C200200, // 007B CALL R8 1
+ 0x001C0E08, // 007C ADD R7 R7 R8
+ 0x8820010F, // 007D GETMBR R8 R0 K15
+ 0x241C0E08, // 007E GT R7 R7 R8
+ 0x781E0002, // 007F JMPF R7 #0083
+ 0x50100000, // 0080 LDBOOL R4 0 0
+ 0x4C180000, // 0081 LDNIL R6
0x70020001, // 0082 JMP #0085
- 0x50200200, // 0083 LDBOOL R8 1 0
- 0x90023A08, // 0084 SETMBR R0 K29 R8
- 0x80000000, // 0085 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData_Pull;
-be_local_closure(class_Matter_IM_ReportData_Pull_init, /* name */
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_ReportData_Pull,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(generator_or_arr),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x600C0003, // 0000 GETGBL R3 G3
- 0x5C100000, // 0001 MOVE R4 R0
- 0x7C0C0200, // 0002 CALL R3 1
- 0x8C0C0700, // 0003 GETMET R3 R3 K0
- 0x5C140200, // 0004 MOVE R5 R1
- 0x541A0004, // 0005 LDINT R6 5
- 0x501C0200, // 0006 LDBOOL R7 1 0
- 0x7C0C0800, // 0007 CALL R3 4
- 0x90020202, // 0008 SETMBR R0 K1 R2
- 0x80000000, // 0009 RET 0
+ 0x4C1C0000, // 0083 LDNIL R7
+ 0x90020A07, // 0084 SETMBR R0 K5 R7
+ 0x7812006D, // 0085 JMPF R4 #00F4
+ 0x881C0106, // 0086 GETMBR R7 R0 K6
+ 0x4C200000, // 0087 LDNIL R8
+ 0x201C0E08, // 0088 NE R7 R7 R8
+ 0x781E0069, // 0089 JMPF R7 #00F4
+ 0x601C000F, // 008A GETGBL R7 G15
+ 0x88200106, // 008B GETMBR R8 R0 K6
+ 0x60240012, // 008C GETGBL R9 G18
+ 0x7C1C0400, // 008D CALL R7 2
+ 0x781E0002, // 008E JMPF R7 #0092
+ 0x881C0106, // 008F GETMBR R7 R0 K6
+ 0x941C0F08, // 0090 GETIDX R7 R7 K8
+ 0x70020000, // 0091 JMP #0093
+ 0x881C0106, // 0092 GETMBR R7 R0 K6
+ 0x4C200000, // 0093 LDNIL R8
+ 0x78120049, // 0094 JMPF R4 #00DF
+ 0x8C240F12, // 0095 GETMET R9 R7 K18
+ 0x7C240200, // 0096 CALL R9 1
+ 0x5C201200, // 0097 MOVE R8 R9
+ 0x78260045, // 0098 JMPF R9 #00DF
+ 0x7816002D, // 0099 JMPF R5 #00C8
+ 0xB8262600, // 009A GETNGBL R9 K19
+ 0x8C241314, // 009B GETMET R9 R9 K20
+ 0x582C0015, // 009C LDCONST R11 K21
+ 0x7C240400, // 009D CALL R9 2
+ 0x78260028, // 009E JMPF R9 #00C8
+ 0x58240016, // 009F LDCONST R9 K22
+ 0x88281117, // 00A0 GETMBR R10 R8 K23
+ 0x4C2C0000, // 00A1 LDNIL R11
+ 0x2028140B, // 00A2 NE R10 R10 R11
+ 0x782A0004, // 00A3 JMPF R10 #00A9
+ 0x60280008, // 00A4 GETGBL R10 G8
+ 0x882C1117, // 00A5 GETMBR R11 R8 K23
+ 0x7C280200, // 00A6 CALL R10 1
+ 0x002A300A, // 00A7 ADD R10 K24 R10
+ 0x5C241400, // 00A8 MOVE R9 R10
+ 0x88281119, // 00A9 GETMBR R10 R8 K25
+ 0x4C2C0000, // 00AA LDNIL R11
+ 0x2028140B, // 00AB NE R10 R10 R11
+ 0x782A0004, // 00AC JMPF R10 #00B2
+ 0x60280008, // 00AD GETGBL R10 G8
+ 0x882C1119, // 00AE GETMBR R11 R8 K25
+ 0x7C280200, // 00AF CALL R10 1
+ 0x002A340A, // 00B0 ADD R10 K26 R10
+ 0x0024120A, // 00B1 ADD R9 R9 R10
+ 0x8828111B, // 00B2 GETMBR R10 R8 K27
+ 0x4C2C0000, // 00B3 LDNIL R11
+ 0x2028140B, // 00B4 NE R10 R10 R11
+ 0x782A0004, // 00B5 JMPF R10 #00BB
+ 0x60280008, // 00B6 GETGBL R10 G8
+ 0x882C111B, // 00B7 GETMBR R11 R8 K27
+ 0x7C280200, // 00B8 CALL R10 1
+ 0x002A340A, // 00B9 ADD R10 K26 R10
+ 0x0024120A, // 00BA ADD R9 R9 R10
+ 0xB82A3800, // 00BB GETNGBL R10 K28
+ 0x602C0018, // 00BC GETGBL R11 G24
+ 0x5830001D, // 00BD LDCONST R12 K29
+ 0x8834050E, // 00BE GETMBR R13 R2 K14
+ 0x88341B1E, // 00BF GETMBR R13 R13 K30
+ 0x8838111F, // 00C0 GETMBR R14 R8 K31
+ 0x883C1120, // 00C1 GETMBR R15 R8 K32
+ 0x88401121, // 00C2 GETMBR R16 R8 K33
+ 0x88441122, // 00C3 GETMBR R17 R8 K34
+ 0x5C481200, // 00C4 MOVE R18 R9
+ 0x7C2C0E00, // 00C5 CALL R11 7
+ 0x58300015, // 00C6 LDCONST R12 K21
+ 0x7C280400, // 00C7 CALL R10 2
+ 0x8C241123, // 00C8 GETMET R9 R8 K35
+ 0x7C240200, // 00C9 CALL R9 1
+ 0x6028000C, // 00CA GETGBL R10 G12
+ 0x5C2C0600, // 00CB MOVE R11 R3
+ 0x7C280200, // 00CC CALL R10 1
+ 0x602C000C, // 00CD GETGBL R11 G12
+ 0x5C300C00, // 00CE MOVE R12 R6
+ 0x7C2C0200, // 00CF CALL R11 1
+ 0x0028140B, // 00D0 ADD R10 R10 R11
+ 0x602C000C, // 00D1 GETGBL R11 G12
+ 0x5C301200, // 00D2 MOVE R12 R9
+ 0x7C2C0200, // 00D3 CALL R11 1
+ 0x0028140B, // 00D4 ADD R10 R10 R11
+ 0x882C010F, // 00D5 GETMBR R11 R0 K15
+ 0x2428140B, // 00D6 GT R10 R10 R11
+ 0x782A0002, // 00D7 JMPF R10 #00DB
+ 0x90020A09, // 00D8 SETMBR R0 K5 R9
+ 0x50100000, // 00D9 LDBOOL R4 0 0
+ 0x70020002, // 00DA JMP #00DE
+ 0x8C280D10, // 00DB GETMET R10 R6 K16
+ 0x5C301200, // 00DC MOVE R12 R9
+ 0x7C280400, // 00DD CALL R10 2
+ 0x7001FFB4, // 00DE JMP #0094
+ 0x78120012, // 00DF JMPF R4 #00F3
+ 0x6024000F, // 00E0 GETGBL R9 G15
+ 0x88280106, // 00E1 GETMBR R10 R0 K6
+ 0x602C0012, // 00E2 GETGBL R11 G18
+ 0x7C240400, // 00E3 CALL R9 2
+ 0x7826000B, // 00E4 JMPF R9 #00F1
+ 0x88240106, // 00E5 GETMBR R9 R0 K6
+ 0x8C241311, // 00E6 GETMET R9 R9 K17
+ 0x582C0008, // 00E7 LDCONST R11 K8
+ 0x7C240400, // 00E8 CALL R9 2
+ 0x6024000C, // 00E9 GETGBL R9 G12
+ 0x88280106, // 00EA GETMBR R10 R0 K6
+ 0x7C240200, // 00EB CALL R9 1
+ 0x1C241308, // 00EC EQ R9 R9 K8
+ 0x78260001, // 00ED JMPF R9 #00F0
+ 0x4C240000, // 00EE LDNIL R9
+ 0x90020C09, // 00EF SETMBR R0 K6 R9
+ 0x70020001, // 00F0 JMP #00F3
+ 0x4C240000, // 00F1 LDNIL R9
+ 0x90020C09, // 00F2 SETMBR R0 K6 R9
+ 0x7001FF90, // 00F3 JMP #0085
+ 0xB81E4800, // 00F4 GETNGBL R7 K36
+ 0x8C1C0F25, // 00F5 GETMET R7 R7 K37
+ 0x7C1C0200, // 00F6 CALL R7 1
+ 0x88200126, // 00F7 GETMBR R8 R0 K38
+ 0x901E4C08, // 00F8 SETMBR R7 K38 R8
+ 0x88200127, // 00F9 GETMBR R8 R0 K39
+ 0x901E4E08, // 00FA SETMBR R7 K39 R8
+ 0x4C200000, // 00FB LDNIL R8
+ 0x20200608, // 00FC NE R8 R3 R8
+ 0x78220008, // 00FD JMPF R8 #0107
+ 0x6020000C, // 00FE GETGBL R8 G12
+ 0x5C240600, // 00FF MOVE R9 R3
+ 0x7C200200, // 0100 CALL R8 1
+ 0x24201108, // 0101 GT R8 R8 K8
+ 0x78220003, // 0102 JMPF R8 #0107
+ 0x60200012, // 0103 GETGBL R8 G18
+ 0x7C200000, // 0104 CALL R8 0
+ 0x40241003, // 0105 CONNECT R9 R8 R3
+ 0x901E5008, // 0106 SETMBR R7 K40 R8
+ 0x4C200000, // 0107 LDNIL R8
+ 0x20200C08, // 0108 NE R8 R6 R8
+ 0x78220008, // 0109 JMPF R8 #0113
+ 0x6020000C, // 010A GETGBL R8 G12
+ 0x5C240C00, // 010B MOVE R9 R6
+ 0x7C200200, // 010C CALL R8 1
+ 0x24201108, // 010D GT R8 R8 K8
+ 0x78220003, // 010E JMPF R8 #0113
+ 0x60200012, // 010F GETGBL R8 G18
+ 0x7C200000, // 0110 CALL R8 0
+ 0x40241006, // 0111 CONNECT R9 R8 R6
+ 0x901E5208, // 0112 SETMBR R7 K41 R8
+ 0x88200102, // 0113 GETMBR R8 R0 K2
+ 0x4C240000, // 0114 LDNIL R9
+ 0x20201009, // 0115 NE R8 R8 R9
+ 0x74220004, // 0116 JMPT R8 #011C
+ 0x88200105, // 0117 GETMBR R8 R0 K5
+ 0x4C240000, // 0118 LDNIL R9
+ 0x20201009, // 0119 NE R8 R8 R9
+ 0x74220000, // 011A JMPT R8 #011C
+ 0x50200001, // 011B LDBOOL R8 0 1
+ 0x50200200, // 011C LDBOOL R8 1 0
+ 0x901E5408, // 011D SETMBR R7 K42 R8
+ 0x8C200F2B, // 011E GETMET R8 R7 K43
+ 0x7C200200, // 011F CALL R8 1
+ 0x8C24112C, // 0120 GETMET R9 R8 K44
+ 0x602C0015, // 0121 GETGBL R11 G21
+ 0x8830010F, // 0122 GETMBR R12 R0 K15
+ 0x7C2C0200, // 0123 CALL R11 1
+ 0x7C240400, // 0124 CALL R9 2
+ 0x8C28052D, // 0125 GETMET R10 R2 K45
+ 0x5C301200, // 0126 MOVE R12 R9
+ 0x7C280400, // 0127 CALL R10 2
+ 0x8C28052E, // 0128 GETMET R10 R2 K46
+ 0x7C280200, // 0129 CALL R10 1
+ 0x8C28032F, // 012A GETMET R10 R1 K47
+ 0x5C300400, // 012B MOVE R12 R2
+ 0x7C280400, // 012C CALL R10 2
+ 0x88280531, // 012D GETMBR R10 R2 K49
+ 0x9002600A, // 012E SETMBR R0 K48 R10
+ 0x88280F2A, // 012F GETMBR R10 R7 K42
+ 0x782A0002, // 0130 JMPF R10 #0134
+ 0x50280000, // 0131 LDBOOL R10 0 0
+ 0x9002000A, // 0132 SETMBR R0 K0 R10
+ 0x70020001, // 0133 JMP #0136
+ 0x50280200, // 0134 LDBOOL R10 1 0
+ 0x9002640A, // 0135 SETMBR R0 K50 R10
+ 0x80000000, // 0136 RET 0
})
)
);
@@ -834,18 +1034,20 @@ be_local_closure(class_Matter_IM_ReportData_Pull_set_suppress_response, /* nam
********************************************************************/
extern const bclass be_class_Matter_IM_Message;
be_local_class(Matter_IM_ReportData_Pull,
- 3,
+ 5,
&be_class_Matter_IM_Message,
- be_nested_map(8,
+ be_nested_map(10,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(suppress_response, -1), be_const_var(2) },
+ { be_const_key_weak(set_suppress_response, 2), be_const_closure(class_Matter_IM_ReportData_Pull_set_suppress_response_closure) },
+ { be_const_key_weak(data_ev, -1), be_const_var(4) },
+ { be_const_key_weak(event_generator_or_arr, -1), be_const_var(1) },
{ be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1200) },
- { be_const_key_weak(generator_or_arr, 5), be_const_var(0) },
- { be_const_key_weak(set_subscription_id, 6), be_const_closure(class_Matter_IM_ReportData_Pull_set_subscription_id_closure) },
- { be_const_key_weak(subscription_id, -1), be_const_var(1) },
- { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportData_Pull_send_im_closure) },
+ { be_const_key_weak(subscription_id, -1), be_const_var(2) },
{ be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportData_Pull_init_closure) },
- { be_const_key_weak(set_suppress_response, -1), be_const_closure(class_Matter_IM_ReportData_Pull_set_suppress_response_closure) },
+ { be_const_key_weak(generator_or_arr, 9), be_const_var(0) },
+ { be_const_key_weak(set_subscription_id, 0), be_const_closure(class_Matter_IM_ReportData_Pull_set_subscription_id_closure) },
+ { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportData_Pull_send_im_closure) },
+ { be_const_key_weak(suppress_response, -1), be_const_var(3) },
})),
be_str_weak(Matter_IM_ReportData_Pull)
);
@@ -916,30 +1118,33 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
0, /* has sup protos */
&be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
+ ( &(const bvalue[22]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(generator_or_arr),
- /* K2 */ be_nested_str_weak(report_data_phase),
- /* K3 */ be_nested_str_weak(send_im),
- /* K4 */ be_nested_str_weak(finish),
- /* K5 */ be_nested_str_weak(resp),
- /* K6 */ be_nested_str_weak(build_standalone_ack),
- /* K7 */ be_nested_str_weak(encode_frame),
- /* K8 */ be_nested_str_weak(encrypt),
- /* K9 */ be_nested_str_weak(tasmota),
- /* K10 */ be_nested_str_weak(loglevel),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
- /* K13 */ be_nested_str_weak(session),
- /* K14 */ be_nested_str_weak(local_session_id),
- /* K15 */ be_nested_str_weak(ack_message_counter),
- /* K16 */ be_nested_str_weak(message_counter),
- /* K17 */ be_nested_str_weak(send_response_frame),
- /* K18 */ be_nested_str_weak(last_counter),
+ /* K2 */ be_nested_str_weak(event_generator_or_arr),
+ /* K3 */ be_nested_str_weak(report_data_phase),
+ /* K4 */ be_nested_str_weak(send_im),
+ /* K5 */ be_nested_str_weak(finish),
+ /* K6 */ be_nested_str_weak(resp),
+ /* K7 */ be_nested_str_weak(build_standalone_ack),
+ /* K8 */ be_nested_str_weak(encode_frame),
+ /* K9 */ be_nested_str_weak(encrypt),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(loglevel),
+ /* K12 */ be_nested_str_weak(log),
+ /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
+ /* K14 */ be_nested_str_weak(session),
+ /* K15 */ be_nested_str_weak(local_session_id),
+ /* K16 */ be_nested_str_weak(ack_message_counter),
+ /* K17 */ be_nested_str_weak(message_counter),
+ /* K18 */ be_nested_str_weak(send_response_frame),
+ /* K19 */ be_nested_str_weak(last_counter),
+ /* K20 */ be_nested_str_weak(sub),
+ /* K21 */ be_nested_str_weak(re_arm),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[71]) { /* code */
+ ( &(const binstruction[81]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
@@ -947,70 +1152,80 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
0x88080101, // 0004 GETMBR R2 R0 K1
0x4C0C0000, // 0005 LDNIL R3
0x20080403, // 0006 NE R2 R2 R3
- 0x780A0030, // 0007 JMPF R2 #0039
+ 0x740A0003, // 0007 JMPT R2 #000C
0x88080102, // 0008 GETMBR R2 R0 K2
- 0x780A000F, // 0009 JMPF R2 #001A
- 0x60080003, // 000A GETGBL R2 G3
- 0x5C0C0000, // 000B MOVE R3 R0
- 0x7C080200, // 000C CALL R2 1
- 0x8C080503, // 000D GETMET R2 R2 K3
- 0x5C100200, // 000E MOVE R4 R1
- 0x7C080400, // 000F CALL R2 2
- 0x88080104, // 0010 GETMBR R2 R0 K4
- 0x740A0000, // 0011 JMPT R2 #0013
- 0x80000400, // 0012 RET 0
- 0x50080000, // 0013 LDBOOL R2 0 0
- 0x90020402, // 0014 SETMBR R0 K2 R2
- 0x50080000, // 0015 LDBOOL R2 0 0
- 0x90020002, // 0016 SETMBR R0 K0 R2
+ 0x4C0C0000, // 0009 LDNIL R3
+ 0x20080403, // 000A NE R2 R2 R3
+ 0x780A0033, // 000B JMPF R2 #0040
+ 0x88080103, // 000C GETMBR R2 R0 K3
+ 0x780A000F, // 000D JMPF R2 #001E
+ 0x60080003, // 000E GETGBL R2 G3
+ 0x5C0C0000, // 000F MOVE R3 R0
+ 0x7C080200, // 0010 CALL R2 1
+ 0x8C080504, // 0011 GETMET R2 R2 K4
+ 0x5C100200, // 0012 MOVE R4 R1
+ 0x7C080400, // 0013 CALL R2 2
+ 0x88080105, // 0014 GETMBR R2 R0 K5
+ 0x740A0000, // 0015 JMPT R2 #0017
+ 0x80000400, // 0016 RET 0
0x50080000, // 0017 LDBOOL R2 0 0
- 0x90020802, // 0018 SETMBR R0 K4 R2
- 0x7002001D, // 0019 JMP #0038
- 0x88080105, // 001A GETMBR R2 R0 K5
- 0x8C080506, // 001B GETMET R2 R2 K6
- 0x50100000, // 001C LDBOOL R4 0 0
- 0x7C080400, // 001D CALL R2 2
- 0x8C0C0507, // 001E GETMET R3 R2 K7
- 0x7C0C0200, // 001F CALL R3 1
- 0x8C0C0508, // 0020 GETMET R3 R2 K8
- 0x7C0C0200, // 0021 CALL R3 1
- 0xB80E1200, // 0022 GETNGBL R3 K9
- 0x8C0C070A, // 0023 GETMET R3 R3 K10
- 0x54160003, // 0024 LDINT R5 4
- 0x7C0C0400, // 0025 CALL R3 2
- 0x780E0009, // 0026 JMPF R3 #0031
- 0xB80E1600, // 0027 GETNGBL R3 K11
- 0x60100018, // 0028 GETGBL R4 G24
- 0x5814000C, // 0029 LDCONST R5 K12
- 0x8818050D, // 002A GETMBR R6 R2 K13
- 0x88180D0E, // 002B GETMBR R6 R6 K14
- 0x881C050F, // 002C GETMBR R7 R2 K15
- 0x88200510, // 002D GETMBR R8 R2 K16
- 0x7C100800, // 002E CALL R4 4
- 0x54160003, // 002F LDINT R5 4
- 0x7C0C0400, // 0030 CALL R3 2
- 0x8C0C0311, // 0031 GETMET R3 R1 K17
- 0x5C140400, // 0032 MOVE R5 R2
- 0x7C0C0400, // 0033 CALL R3 2
- 0x880C0510, // 0034 GETMBR R3 R2 K16
- 0x90022403, // 0035 SETMBR R0 K18 R3
- 0x500C0200, // 0036 LDBOOL R3 1 0
- 0x90020803, // 0037 SETMBR R0 K4 R3
- 0x7002000C, // 0038 JMP #0046
- 0x88080102, // 0039 GETMBR R2 R0 K2
- 0x780A0008, // 003A JMPF R2 #0044
- 0x60080003, // 003B GETGBL R2 G3
- 0x5C0C0000, // 003C MOVE R3 R0
- 0x7C080200, // 003D CALL R2 1
- 0x8C080503, // 003E GETMET R2 R2 K3
- 0x5C100200, // 003F MOVE R4 R1
- 0x7C080400, // 0040 CALL R2 2
- 0x50080000, // 0041 LDBOOL R2 0 0
- 0x90020402, // 0042 SETMBR R0 K2 R2
- 0x70020001, // 0043 JMP #0046
- 0x50080200, // 0044 LDBOOL R2 1 0
- 0x90020802, // 0045 SETMBR R0 K4 R2
- 0x80000000, // 0046 RET 0
+ 0x90020602, // 0018 SETMBR R0 K3 R2
+ 0x50080000, // 0019 LDBOOL R2 0 0
+ 0x90020002, // 001A SETMBR R0 K0 R2
+ 0x50080000, // 001B LDBOOL R2 0 0
+ 0x90020A02, // 001C SETMBR R0 K5 R2
+ 0x70020020, // 001D JMP #003F
+ 0x88080106, // 001E GETMBR R2 R0 K6
+ 0x8C080507, // 001F GETMET R2 R2 K7
+ 0x50100000, // 0020 LDBOOL R4 0 0
+ 0x7C080400, // 0021 CALL R2 2
+ 0x8C0C0508, // 0022 GETMET R3 R2 K8
+ 0x7C0C0200, // 0023 CALL R3 1
+ 0x8C0C0509, // 0024 GETMET R3 R2 K9
+ 0x7C0C0200, // 0025 CALL R3 1
+ 0xB80E1400, // 0026 GETNGBL R3 K10
+ 0x8C0C070B, // 0027 GETMET R3 R3 K11
+ 0x54160003, // 0028 LDINT R5 4
+ 0x7C0C0400, // 0029 CALL R3 2
+ 0x780E0009, // 002A JMPF R3 #0035
+ 0xB80E1800, // 002B GETNGBL R3 K12
+ 0x60100018, // 002C GETGBL R4 G24
+ 0x5814000D, // 002D LDCONST R5 K13
+ 0x8818050E, // 002E GETMBR R6 R2 K14
+ 0x88180D0F, // 002F GETMBR R6 R6 K15
+ 0x881C0510, // 0030 GETMBR R7 R2 K16
+ 0x88200511, // 0031 GETMBR R8 R2 K17
+ 0x7C100800, // 0032 CALL R4 4
+ 0x54160003, // 0033 LDINT R5 4
+ 0x7C0C0400, // 0034 CALL R3 2
+ 0x8C0C0312, // 0035 GETMET R3 R1 K18
+ 0x5C140400, // 0036 MOVE R5 R2
+ 0x7C0C0400, // 0037 CALL R3 2
+ 0x880C0511, // 0038 GETMBR R3 R2 K17
+ 0x90022603, // 0039 SETMBR R0 K19 R3
+ 0x500C0200, // 003A LDBOOL R3 1 0
+ 0x90020A03, // 003B SETMBR R0 K5 R3
+ 0x880C0114, // 003C GETMBR R3 R0 K20
+ 0x8C0C0715, // 003D GETMET R3 R3 K21
+ 0x7C0C0200, // 003E CALL R3 1
+ 0x7002000F, // 003F JMP #0050
+ 0x88080103, // 0040 GETMBR R2 R0 K3
+ 0x780A0008, // 0041 JMPF R2 #004B
+ 0x60080003, // 0042 GETGBL R2 G3
+ 0x5C0C0000, // 0043 MOVE R3 R0
+ 0x7C080200, // 0044 CALL R2 1
+ 0x8C080504, // 0045 GETMET R2 R2 K4
+ 0x5C100200, // 0046 MOVE R4 R1
+ 0x7C080400, // 0047 CALL R2 2
+ 0x50080000, // 0048 LDBOOL R2 0 0
+ 0x90020602, // 0049 SETMBR R0 K3 R2
+ 0x70020004, // 004A JMP #0050
+ 0x50080200, // 004B LDBOOL R2 1 0
+ 0x90020A02, // 004C SETMBR R0 K5 R2
+ 0x88080114, // 004D GETMBR R2 R0 K20
+ 0x8C080515, // 004E GETMET R2 R2 K21
+ 0x7C080200, // 004F CALL R2 1
+ 0x80000000, // 0050 RET 0
})
)
);
@@ -1023,8 +1238,8 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
extern const bclass be_class_Matter_IM_ReportDataSubscribed_Pull;
be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_init, /* name */
be_nested_proto(
- 11, /* nstack */
- 5, /* argc */
+ 12, /* nstack */
+ 6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -1045,33 +1260,34 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_init, /* name */
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[26]) { /* code */
- 0x60140003, // 0000 GETGBL R5 G3
- 0x5C180000, // 0001 MOVE R6 R0
- 0x7C140200, // 0002 CALL R5 1
- 0x8C140B00, // 0003 GETMET R5 R5 K0
- 0x4C1C0000, // 0004 LDNIL R7
- 0x5C200600, // 0005 MOVE R8 R3
- 0x7C140600, // 0006 CALL R5 3
- 0xB8160400, // 0007 GETNGBL R5 K2
- 0x88140B03, // 0008 GETMBR R5 R5 K3
- 0x8C140B04, // 0009 GETMET R5 R5 K4
- 0x5C1C0200, // 000A MOVE R7 R1
- 0x5C200400, // 000B MOVE R8 R2
- 0x54260004, // 000C LDINT R9 5
- 0x50280200, // 000D LDBOOL R10 1 0
- 0x7C140A00, // 000E CALL R5 5
- 0x90020205, // 000F SETMBR R0 K1 R5
- 0x90020A04, // 0010 SETMBR R0 K5 R4
- 0x50140200, // 0011 LDBOOL R5 1 0
- 0x90020C05, // 0012 SETMBR R0 K6 R5
- 0x8C140107, // 0013 GETMET R5 R0 K7
- 0x881C0908, // 0014 GETMBR R7 R4 K8
- 0x7C140400, // 0015 CALL R5 2
- 0x8C140109, // 0016 GETMET R5 R0 K9
- 0x501C0000, // 0017 LDBOOL R7 0 0
- 0x7C140400, // 0018 CALL R5 2
- 0x80000000, // 0019 RET 0
+ ( &(const binstruction[27]) { /* code */
+ 0x60180003, // 0000 GETGBL R6 G3
+ 0x5C1C0000, // 0001 MOVE R7 R0
+ 0x7C180200, // 0002 CALL R6 1
+ 0x8C180D00, // 0003 GETMET R6 R6 K0
+ 0x4C200000, // 0004 LDNIL R8
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x5C280800, // 0006 MOVE R10 R4
+ 0x7C180800, // 0007 CALL R6 4
+ 0xB81A0400, // 0008 GETNGBL R6 K2
+ 0x88180D03, // 0009 GETMBR R6 R6 K3
+ 0x8C180D04, // 000A GETMET R6 R6 K4
+ 0x5C200200, // 000B MOVE R8 R1
+ 0x5C240400, // 000C MOVE R9 R2
+ 0x542A0004, // 000D LDINT R10 5
+ 0x502C0200, // 000E LDBOOL R11 1 0
+ 0x7C180A00, // 000F CALL R6 5
+ 0x90020206, // 0010 SETMBR R0 K1 R6
+ 0x90020A05, // 0011 SETMBR R0 K5 R5
+ 0x50180200, // 0012 LDBOOL R6 1 0
+ 0x90020C06, // 0013 SETMBR R0 K6 R6
+ 0x8C180107, // 0014 GETMET R6 R0 K7
+ 0x88200B08, // 0015 GETMBR R8 R5 K8
+ 0x7C180400, // 0016 CALL R6 2
+ 0x8C180109, // 0017 GETMET R6 R0 K9
+ 0x50200000, // 0018 LDBOOL R8 0 0
+ 0x7C180400, // 0019 CALL R6 2
+ 0x80000000, // 001A RET 0
})
)
);
@@ -1407,31 +1623,32 @@ be_local_closure(class_Matter_IM_SubscribedHeartbeat_init, /* name */
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
+ ( &(const binstruction[25]) { /* code */
0x60100003, // 0000 GETGBL R4 G3
0x5C140000, // 0001 MOVE R5 R0
0x7C100200, // 0002 CALL R4 1
0x8C100900, // 0003 GETMET R4 R4 K0
0x4C180000, // 0004 LDNIL R6
0x4C1C0000, // 0005 LDNIL R7
- 0x7C100600, // 0006 CALL R4 3
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x88100903, // 0008 GETMBR R4 R4 K3
- 0x8C100904, // 0009 GETMET R4 R4 K4
- 0x5C180200, // 000A MOVE R6 R1
- 0x5C1C0400, // 000B MOVE R7 R2
- 0x54220004, // 000C LDINT R8 5
- 0x50240200, // 000D LDBOOL R9 1 0
- 0x7C100A00, // 000E CALL R4 5
- 0x90020204, // 000F SETMBR R0 K1 R4
- 0x90020A03, // 0010 SETMBR R0 K5 R3
- 0x8C100106, // 0011 GETMET R4 R0 K6
- 0x88180707, // 0012 GETMBR R6 R3 K7
- 0x7C100400, // 0013 CALL R4 2
- 0x8C100108, // 0014 GETMET R4 R0 K8
- 0x50180200, // 0015 LDBOOL R6 1 0
- 0x7C100400, // 0016 CALL R4 2
- 0x80000000, // 0017 RET 0
+ 0x4C200000, // 0006 LDNIL R8
+ 0x7C100800, // 0007 CALL R4 4
+ 0xB8120400, // 0008 GETNGBL R4 K2
+ 0x88100903, // 0009 GETMBR R4 R4 K3
+ 0x8C100904, // 000A GETMET R4 R4 K4
+ 0x5C180200, // 000B MOVE R6 R1
+ 0x5C1C0400, // 000C MOVE R7 R2
+ 0x54220004, // 000D LDINT R8 5
+ 0x50240200, // 000E LDBOOL R9 1 0
+ 0x7C100A00, // 000F CALL R4 5
+ 0x90020204, // 0010 SETMBR R0 K1 R4
+ 0x90020A03, // 0011 SETMBR R0 K5 R3
+ 0x8C100106, // 0012 GETMET R4 R0 K6
+ 0x88180707, // 0013 GETMBR R6 R3 K7
+ 0x7C100400, // 0014 CALL R4 2
+ 0x8C100108, // 0015 GETMET R4 R0 K8
+ 0x50180200, // 0016 LDBOOL R6 1 0
+ 0x7C100400, // 0017 CALL R4 2
+ 0x80000000, // 0018 RET 0
})
)
);
@@ -1466,8 +1683,8 @@ extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
extern const bclass be_class_Matter_IM_SubscribeResponse_Pull;
be_local_closure(class_Matter_IM_SubscribeResponse_Pull_init, /* name */
be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
+ 10, /* nstack */
+ 5, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -1483,21 +1700,22 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_init, /* name */
}),
be_str_weak(init),
&be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x5C1C0400, // 0005 MOVE R7 R2
- 0x7C100600, // 0006 CALL R4 3
- 0x90020203, // 0007 SETMBR R0 K1 R3
- 0x50100200, // 0008 LDBOOL R4 1 0
- 0x90020404, // 0009 SETMBR R0 K2 R4
- 0x8C100103, // 000A GETMET R4 R0 K3
- 0x88180704, // 000B GETMBR R6 R3 K4
- 0x7C100400, // 000C CALL R4 2
- 0x80000000, // 000D RET 0
+ ( &(const binstruction[15]) { /* code */
+ 0x60140003, // 0000 GETGBL R5 G3
+ 0x5C180000, // 0001 MOVE R6 R0
+ 0x7C140200, // 0002 CALL R5 1
+ 0x8C140B00, // 0003 GETMET R5 R5 K0
+ 0x5C1C0200, // 0004 MOVE R7 R1
+ 0x5C200400, // 0005 MOVE R8 R2
+ 0x5C240600, // 0006 MOVE R9 R3
+ 0x7C140800, // 0007 CALL R5 4
+ 0x90020204, // 0008 SETMBR R0 K1 R4
+ 0x50140200, // 0009 LDBOOL R5 1 0
+ 0x90020405, // 000A SETMBR R0 K2 R5
+ 0x8C140103, // 000B GETMET R5 R0 K3
+ 0x881C0904, // 000C GETMBR R7 R4 K4
+ 0x7C140400, // 000D CALL R5 2
+ 0x80000000, // 000E RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
index e10ec8aee..f453f78d0 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Subscription.h
@@ -7,118 +7,10 @@
extern const bclass be_class_Matter_IM_Subscription;
/********************************************************************
-** Solidified function: init
+** Solidified function: event_published
********************************************************************/
extern const bclass be_class_Matter_IM_Subscription;
-be_local_closure(class_Matter_IM_Subscription_init, /* name */
- be_nested_proto(
- 13, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Subscription,
- 1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
- /* K0 */ be_nested_str_weak(subs_shop),
- /* K1 */ be_nested_str_weak(subscription_id),
- /* K2 */ be_nested_str_weak(session),
- /* K3 */ be_nested_str_weak(min_interval_floor),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(min_interval),
- /* K6 */ be_nested_str_weak(max_interval_ceiling),
- /* K7 */ be_nested_str_weak(max_interval),
- /* K8 */ be_nested_str_weak(wait_status),
- /* K9 */ be_nested_str_weak(fabric_filtered),
- /* K10 */ be_nested_str_weak(path_list),
- /* K11 */ be_nested_str_weak(attributes_requests),
- /* K12 */ be_nested_str_weak(matter),
- /* K13 */ be_nested_str_weak(Path),
- /* K14 */ be_nested_str_weak(endpoint),
- /* K15 */ be_nested_str_weak(cluster),
- /* K16 */ be_nested_str_weak(attribute),
- /* K17 */ be_nested_str_weak(push),
- /* K18 */ be_nested_str_weak(stop_iteration),
- /* K19 */ be_nested_str_weak(updates),
- /* K20 */ be_nested_str_weak(clear_before_arm),
- /* K21 */ be_nested_str_weak(is_keep_alive),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[61]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x90020202, // 0001 SETMBR R0 K1 R2
- 0x90020403, // 0002 SETMBR R0 K2 R3
- 0x88140903, // 0003 GETMBR R5 R4 K3
- 0x14180B04, // 0004 LT R6 R5 K4
- 0x781A0000, // 0005 JMPF R6 #0007
- 0x58140004, // 0006 LDCONST R5 K4
- 0x541A003B, // 0007 LDINT R6 60
- 0x24180A06, // 0008 GT R6 R5 R6
- 0x781A0000, // 0009 JMPF R6 #000B
- 0x5416003B, // 000A LDINT R5 60
- 0x90020A05, // 000B SETMBR R0 K5 R5
- 0x88180906, // 000C GETMBR R6 R4 K6
- 0x541E003B, // 000D LDINT R7 60
- 0x141C0C07, // 000E LT R7 R6 R7
- 0x781E0000, // 000F JMPF R7 #0011
- 0x541A003B, // 0010 LDINT R6 60
- 0x541E0E0F, // 0011 LDINT R7 3600
- 0x241C0C07, // 0012 GT R7 R6 R7
- 0x781E0000, // 0013 JMPF R7 #0015
- 0x541A0E0F, // 0014 LDINT R6 3600
- 0x541A003B, // 0015 LDINT R6 60
- 0x90020E06, // 0016 SETMBR R0 K7 R6
- 0x501C0000, // 0017 LDBOOL R7 0 0
- 0x90021007, // 0018 SETMBR R0 K8 R7
- 0x881C0909, // 0019 GETMBR R7 R4 K9
- 0x90021207, // 001A SETMBR R0 K9 R7
- 0x601C0012, // 001B GETGBL R7 G18
- 0x7C1C0000, // 001C CALL R7 0
- 0x90021407, // 001D SETMBR R0 K10 R7
- 0x601C0010, // 001E GETGBL R7 G16
- 0x8820090B, // 001F GETMBR R8 R4 K11
- 0x7C1C0200, // 0020 CALL R7 1
- 0xA802000F, // 0021 EXBLK 0 #0032
- 0x5C200E00, // 0022 MOVE R8 R7
- 0x7C200000, // 0023 CALL R8 0
- 0xB8261800, // 0024 GETNGBL R9 K12
- 0x8C24130D, // 0025 GETMET R9 R9 K13
- 0x7C240200, // 0026 CALL R9 1
- 0x8828110E, // 0027 GETMBR R10 R8 K14
- 0x90261C0A, // 0028 SETMBR R9 K14 R10
- 0x8828110F, // 0029 GETMBR R10 R8 K15
- 0x90261E0A, // 002A SETMBR R9 K15 R10
- 0x88281110, // 002B GETMBR R10 R8 K16
- 0x9026200A, // 002C SETMBR R9 K16 R10
- 0x8828010A, // 002D GETMBR R10 R0 K10
- 0x8C281511, // 002E GETMET R10 R10 K17
- 0x5C301200, // 002F MOVE R12 R9
- 0x7C280400, // 0030 CALL R10 2
- 0x7001FFEF, // 0031 JMP #0022
- 0x581C0012, // 0032 LDCONST R7 K18
- 0xAC1C0200, // 0033 CATCH R7 1 0
- 0xB0080000, // 0034 RAISE 2 R0 R0
- 0x601C0012, // 0035 GETGBL R7 G18
- 0x7C1C0000, // 0036 CALL R7 0
- 0x90022607, // 0037 SETMBR R0 K19 R7
- 0x8C1C0114, // 0038 GETMET R7 R0 K20
- 0x7C1C0200, // 0039 CALL R7 1
- 0x501C0000, // 003A LDBOOL R7 0 0
- 0x90022A07, // 003B SETMBR R0 K21 R7
- 0x80000000, // 003C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _add_attribute_unique_path
-********************************************************************/
-extern const bclass be_class_Matter_IM_Subscription;
-be_local_closure(class_Matter_IM_Subscription__add_attribute_unique_path, /* name */
+be_local_closure(class_Matter_IM_Subscription_event_published, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
@@ -129,122 +21,41 @@ be_local_closure(class_Matter_IM_Subscription__add_attribute_unique_path, /* n
&be_class_Matter_IM_Subscription,
1, /* has constants */
( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(updates),
- /* K2 */ be_nested_str_weak(endpoint),
- /* K3 */ be_nested_str_weak(cluster),
- /* K4 */ be_nested_str_weak(attribute),
- /* K5 */ be_const_int(1),
- /* K6 */ be_nested_str_weak(push),
+ /* K0 */ be_nested_str_weak(update_event_no),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(event_generators),
+ /* K3 */ be_nested_str_weak(event_is_match),
+ /* K4 */ be_nested_str_weak(event_no),
+ /* K5 */ be_nested_str_weak(add),
+ /* K6 */ be_const_int(1),
}),
- be_str_weak(_add_attribute_unique_path),
+ be_str_weak(event_published),
&be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0010, // 0005 JMPF R3 #0017
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x88100702, // 0008 GETMBR R4 R3 K2
- 0x88140302, // 0009 GETMBR R5 R1 K2
- 0x1C100805, // 000A EQ R4 R4 R5
- 0x78120008, // 000B JMPF R4 #0015
- 0x88100703, // 000C GETMBR R4 R3 K3
- 0x88140303, // 000D GETMBR R5 R1 K3
- 0x1C100805, // 000E EQ R4 R4 R5
- 0x78120004, // 000F JMPF R4 #0015
- 0x88100704, // 0010 GETMBR R4 R3 K4
- 0x88140304, // 0011 GETMBR R5 R1 K4
- 0x1C100805, // 0012 EQ R4 R4 R5
- 0x78120000, // 0013 JMPF R4 #0015
- 0x80000800, // 0014 RET 0
- 0x00080505, // 0015 ADD R2 R2 K5
- 0x7001FFE9, // 0016 JMP #0001
- 0x880C0101, // 0017 GETMBR R3 R0 K1
- 0x8C0C0706, // 0018 GETMET R3 R3 K6
- 0x5C140200, // 0019 MOVE R5 R1
- 0x7C0C0400, // 001A CALL R3 2
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_self
-********************************************************************/
-extern const bclass be_class_Matter_IM_Subscription;
-be_local_closure(class_Matter_IM_Subscription_remove_self, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Subscription,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSub_Del_X20_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D),
- /* K2 */ be_nested_str_weak(subscription_id),
- /* K3 */ be_const_int(3),
- /* K4 */ be_nested_str_weak(subs_shop),
- /* K5 */ be_nested_str_weak(remove_sub),
- }),
- be_str_weak(remove_self),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x60080008, // 0001 GETGBL R2 G8
- 0x880C0102, // 0002 GETMBR R3 R0 K2
- 0x7C080200, // 0003 CALL R2 1
- 0x000A0202, // 0004 ADD R2 K1 R2
- 0x580C0003, // 0005 LDCONST R3 K3
- 0x7C040400, // 0006 CALL R1 2
- 0x88040104, // 0007 GETMBR R1 R0 K4
- 0x8C040305, // 0008 GETMET R1 R1 K5
- 0x5C0C0000, // 0009 MOVE R3 R0
- 0x7C040400, // 000A CALL R1 2
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: clear_before_arm
-********************************************************************/
-extern const bclass be_class_Matter_IM_Subscription;
-be_local_closure(class_Matter_IM_Subscription_clear_before_arm, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Subscription,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(updates),
- /* K1 */ be_nested_str_weak(clear),
- /* K2 */ be_nested_str_weak(wait_status),
- }),
- be_str_weak(clear_before_arm),
- &be_const_str_solidified,
- ( &(const binstruction[ 6]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x50040200, // 0003 LDBOOL R1 1 0
- 0x90020401, // 0004 SETMBR R0 K2 R1
- 0x80000000, // 0005 RET 0
+ ( &(const binstruction[24]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x1C080403, // 0002 EQ R2 R2 R3
+ 0x780A0012, // 0003 JMPF R2 #0017
+ 0x58080001, // 0004 LDCONST R2 K1
+ 0x600C000C, // 0005 GETGBL R3 G12
+ 0x88100102, // 0006 GETMBR R4 R0 K2
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x140C0403, // 0008 LT R3 R2 R3
+ 0x780E000C, // 0009 JMPF R3 #0017
+ 0x880C0102, // 000A GETMBR R3 R0 K2
+ 0x940C0602, // 000B GETIDX R3 R3 R2
+ 0x8C0C0703, // 000C GETMET R3 R3 K3
+ 0x5C140200, // 000D MOVE R5 R1
+ 0x7C0C0400, // 000E CALL R3 2
+ 0x780E0004, // 000F JMPF R3 #0015
+ 0x880C0304, // 0010 GETMBR R3 R1 K4
+ 0x8C0C0705, // 0011 GETMET R3 R3 K5
+ 0x5415FFFE, // 0012 LDINT R5 -1
+ 0x7C0C0400, // 0013 CALL R3 2
+ 0x90020003, // 0014 SETMBR R0 K0 R3
+ 0x00080506, // 0015 ADD R2 R2 K6
+ 0x7001FFED, // 0016 JMP #0005
+ 0x80000000, // 0017 RET 0
})
)
);
@@ -321,6 +132,301 @@ be_local_closure(class_Matter_IM_Subscription_attribute_updated_ctx, /* name *
/*******************************************************************/
+/********************************************************************
+** Solidified function: clear_before_arm
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription_clear_before_arm, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(updates),
+ /* K1 */ be_nested_str_weak(clear),
+ /* K2 */ be_nested_str_weak(wait_status),
+ /* K3 */ be_nested_str_weak(update_event_no),
+ }),
+ be_str_weak(clear_before_arm),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x50040200, // 0003 LDBOOL R1 1 0
+ 0x90020401, // 0004 SETMBR R0 K2 R1
+ 0x4C040000, // 0005 LDNIL R1
+ 0x90020601, // 0006 SETMBR R0 K3 R1
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription_init, /* name */
+ be_nested_proto(
+ 17, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(subs_shop),
+ /* K1 */ be_nested_str_weak(subscription_id),
+ /* K2 */ be_nested_str_weak(session),
+ /* K3 */ be_nested_str_weak(min_interval_floor),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(min_interval),
+ /* K6 */ be_nested_str_weak(max_interval_ceiling),
+ /* K7 */ be_nested_str_weak(max_interval),
+ /* K8 */ be_nested_str_weak(wait_status),
+ /* K9 */ be_nested_str_weak(fabric_filtered),
+ /* K10 */ be_nested_str_weak(im),
+ /* K11 */ be_nested_str_weak(device),
+ /* K12 */ be_nested_str_weak(path_list),
+ /* K13 */ be_nested_str_weak(attributes_requests),
+ /* K14 */ be_nested_str_weak(push),
+ /* K15 */ be_nested_str_weak(matter),
+ /* K16 */ be_nested_str_weak(Path),
+ /* K17 */ be_nested_str_weak(endpoint),
+ /* K18 */ be_nested_str_weak(cluster),
+ /* K19 */ be_nested_str_weak(attribute),
+ /* K20 */ be_nested_str_weak(stop_iteration),
+ /* K21 */ be_nested_str_weak(IM),
+ /* K22 */ be_nested_str_weak(parse_event_filters_min_no),
+ /* K23 */ be_nested_str_weak(event_filters),
+ /* K24 */ be_nested_str_weak(updates),
+ /* K25 */ be_nested_str_weak(clear_before_arm),
+ /* K26 */ be_nested_str_weak(is_keep_alive),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[69]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x90020403, // 0002 SETMBR R0 K2 R3
+ 0x88140903, // 0003 GETMBR R5 R4 K3
+ 0x14180B04, // 0004 LT R6 R5 K4
+ 0x781A0000, // 0005 JMPF R6 #0007
+ 0x58140004, // 0006 LDCONST R5 K4
+ 0x541A003B, // 0007 LDINT R6 60
+ 0x24180A06, // 0008 GT R6 R5 R6
+ 0x781A0000, // 0009 JMPF R6 #000B
+ 0x5416003B, // 000A LDINT R5 60
+ 0x90020A05, // 000B SETMBR R0 K5 R5
+ 0x88180906, // 000C GETMBR R6 R4 K6
+ 0x541E003B, // 000D LDINT R7 60
+ 0x141C0C07, // 000E LT R7 R6 R7
+ 0x781E0000, // 000F JMPF R7 #0011
+ 0x541A003B, // 0010 LDINT R6 60
+ 0x541E0E0F, // 0011 LDINT R7 3600
+ 0x241C0C07, // 0012 GT R7 R6 R7
+ 0x781E0000, // 0013 JMPF R7 #0015
+ 0x541A0E0F, // 0014 LDINT R6 3600
+ 0x541A003B, // 0015 LDINT R6 60
+ 0x90020E06, // 0016 SETMBR R0 K7 R6
+ 0x501C0000, // 0017 LDBOOL R7 0 0
+ 0x90021007, // 0018 SETMBR R0 K8 R7
+ 0x881C0909, // 0019 GETMBR R7 R4 K9
+ 0x90021207, // 001A SETMBR R0 K9 R7
+ 0x881C030A, // 001B GETMBR R7 R1 K10
+ 0x881C0F0B, // 001C GETMBR R7 R7 K11
+ 0x60200012, // 001D GETGBL R8 G18
+ 0x7C200000, // 001E CALL R8 0
+ 0x90021808, // 001F SETMBR R0 K12 R8
+ 0x8820090D, // 0020 GETMBR R8 R4 K13
+ 0x4C240000, // 0021 LDNIL R9
+ 0x20201009, // 0022 NE R8 R8 R9
+ 0x78220012, // 0023 JMPF R8 #0037
+ 0x60200010, // 0024 GETGBL R8 G16
+ 0x8824090D, // 0025 GETMBR R9 R4 K13
+ 0x7C200200, // 0026 CALL R8 1
+ 0xA802000B, // 0027 EXBLK 0 #0034
+ 0x5C241000, // 0028 MOVE R9 R8
+ 0x7C240000, // 0029 CALL R9 0
+ 0x8828010C, // 002A GETMBR R10 R0 K12
+ 0x8C28150E, // 002B GETMET R10 R10 K14
+ 0xB8321E00, // 002C GETNGBL R12 K15
+ 0x8C301910, // 002D GETMET R12 R12 K16
+ 0x88381311, // 002E GETMBR R14 R9 K17
+ 0x883C1312, // 002F GETMBR R15 R9 K18
+ 0x88401313, // 0030 GETMBR R16 R9 K19
+ 0x7C300800, // 0031 CALL R12 4
+ 0x7C280400, // 0032 CALL R10 2
+ 0x7001FFF3, // 0033 JMP #0028
+ 0x58200014, // 0034 LDCONST R8 K20
+ 0xAC200200, // 0035 CATCH R8 1 0
+ 0xB0080000, // 0036 RAISE 2 R0 R0
+ 0xB8221E00, // 0037 GETNGBL R8 K15
+ 0x88201115, // 0038 GETMBR R8 R8 K21
+ 0x8C201116, // 0039 GETMET R8 R8 K22
+ 0x88280917, // 003A GETMBR R10 R4 K23
+ 0x4C2C0000, // 003B LDNIL R11
+ 0x7C200600, // 003C CALL R8 3
+ 0x60240012, // 003D GETGBL R9 G18
+ 0x7C240000, // 003E CALL R9 0
+ 0x90023009, // 003F SETMBR R0 K24 R9
+ 0x8C240119, // 0040 GETMET R9 R0 K25
+ 0x7C240200, // 0041 CALL R9 1
+ 0x50240000, // 0042 LDBOOL R9 0 0
+ 0x90023409, // 0043 SETMBR R0 K26 R9
+ 0x80000000, // 0044 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _add_attribute_unique_path
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription__add_attribute_unique_path, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(updates),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(attribute),
+ /* K5 */ be_const_int(1),
+ /* K6 */ be_nested_str_weak(push),
+ }),
+ be_str_weak(_add_attribute_unique_path),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0010, // 0005 JMPF R3 #0017
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x88100702, // 0008 GETMBR R4 R3 K2
+ 0x88140302, // 0009 GETMBR R5 R1 K2
+ 0x1C100805, // 000A EQ R4 R4 R5
+ 0x78120008, // 000B JMPF R4 #0015
+ 0x88100703, // 000C GETMBR R4 R3 K3
+ 0x88140303, // 000D GETMBR R5 R1 K3
+ 0x1C100805, // 000E EQ R4 R4 R5
+ 0x78120004, // 000F JMPF R4 #0015
+ 0x88100704, // 0010 GETMBR R4 R3 K4
+ 0x88140304, // 0011 GETMBR R5 R1 K4
+ 0x1C100805, // 0012 EQ R4 R4 R5
+ 0x78120000, // 0013 JMPF R4 #0015
+ 0x80000800, // 0014 RET 0
+ 0x00080505, // 0015 ADD R2 R2 K5
+ 0x7001FFE9, // 0016 JMP #0001
+ 0x880C0101, // 0017 GETMBR R3 R0 K1
+ 0x8C0C0706, // 0018 GETMET R3 R3 K6
+ 0x5C140200, // 0019 MOVE R5 R1
+ 0x7C0C0400, // 001A CALL R3 2
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: update_event_generator_array
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription_update_event_generator_array, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(event_generators),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_const_int(1),
+ /* K3 */ be_nested_str_weak(restart_from),
+ /* K4 */ be_nested_str_weak(update_event_no),
+ /* K5 */ be_nested_str_weak(resize),
+ }),
+ be_str_weak(update_event_generator_array),
+ &be_const_str_solidified,
+ ( &(const binstruction[46]) { /* code */
+ 0x6004000C, // 0000 GETGBL R1 G12
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040301, // 0003 EQ R1 R1 K1
+ 0x78060002, // 0004 JMPF R1 #0008
+ 0x4C040000, // 0005 LDNIL R1
+ 0x80040200, // 0006 RET 1 R1
+ 0x70020024, // 0007 JMP #002D
+ 0x6004000C, // 0008 GETGBL R1 G12
+ 0x88080100, // 0009 GETMBR R2 R0 K0
+ 0x7C040200, // 000A CALL R1 1
+ 0x1C040302, // 000B EQ R1 R1 K2
+ 0x78060008, // 000C JMPF R1 #0016
+ 0x88040100, // 000D GETMBR R1 R0 K0
+ 0x94040301, // 000E GETIDX R1 R1 K1
+ 0x8C040303, // 000F GETMET R1 R1 K3
+ 0x880C0104, // 0010 GETMBR R3 R0 K4
+ 0x7C040400, // 0011 CALL R1 2
+ 0x88040100, // 0012 GETMBR R1 R0 K0
+ 0x94040301, // 0013 GETIDX R1 R1 K1
+ 0x80040200, // 0014 RET 1 R1
+ 0x70020016, // 0015 JMP #002D
+ 0x60040012, // 0016 GETGBL R1 G18
+ 0x7C040000, // 0017 CALL R1 0
+ 0x8C080305, // 0018 GETMET R2 R1 K5
+ 0x6010000C, // 0019 GETGBL R4 G12
+ 0x88140100, // 001A GETMBR R5 R0 K0
+ 0x7C100200, // 001B CALL R4 1
+ 0x7C080400, // 001C CALL R2 2
+ 0x58080001, // 001D LDCONST R2 K1
+ 0x600C000C, // 001E GETGBL R3 G12
+ 0x88100100, // 001F GETMBR R4 R0 K0
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x140C0403, // 0021 LT R3 R2 R3
+ 0x780E0009, // 0022 JMPF R3 #002D
+ 0x880C0100, // 0023 GETMBR R3 R0 K0
+ 0x940C0602, // 0024 GETIDX R3 R3 R2
+ 0x8C0C0703, // 0025 GETMET R3 R3 K3
+ 0x88140104, // 0026 GETMBR R5 R0 K4
+ 0x7C0C0400, // 0027 CALL R3 2
+ 0x880C0100, // 0028 GETMBR R3 R0 K0
+ 0x940C0602, // 0029 GETIDX R3 R3 R2
+ 0x98040403, // 002A SETIDX R1 R2 R3
+ 0x00080502, // 002B ADD R2 R2 K2
+ 0x7001FFF0, // 002C JMP #001E
+ 0x80000000, // 002D RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: re_arm
********************************************************************/
@@ -353,35 +459,126 @@ be_local_closure(class_Matter_IM_Subscription_re_arm, /* name */
}),
be_str_weak(re_arm),
&be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0xB8060200, // 0002 GETNGBL R1 K1
- 0x8C040302, // 0003 GETMET R1 R1 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x88080104, // 0005 GETMBR R2 R0 K4
- 0x880C0105, // 0006 GETMBR R3 R0 K5
- 0x04080403, // 0007 SUB R2 R2 R3
- 0x540E03E7, // 0008 LDINT R3 1000
- 0x08080403, // 0009 MUL R2 R2 R3
- 0x00080202, // 000A ADD R2 R1 R2
- 0x90020602, // 000B SETMBR R0 K3 R2
- 0x88080107, // 000C GETMBR R2 R0 K7
- 0x540E03E7, // 000D LDINT R3 1000
- 0x08080403, // 000E MUL R2 R2 R3
- 0x00080202, // 000F ADD R2 R1 R2
- 0x04080508, // 0010 SUB R2 R2 K8
- 0x90020C02, // 0011 SETMBR R0 K6 R2
- 0x88080109, // 0012 GETMBR R2 R0 K9
- 0x740A0006, // 0013 JMPT R2 #001B
- 0xB80A1400, // 0014 GETNGBL R2 K10
- 0x600C0018, // 0015 GETGBL R3 G24
- 0x5810000B, // 0016 LDCONST R4 K11
- 0x8814010C, // 0017 GETMBR R5 R0 K12
- 0x7C0C0400, // 0018 CALL R3 2
- 0x5810000D, // 0019 LDCONST R4 K13
- 0x7C080400, // 001A CALL R2 2
- 0x80000000, // 001B RET 0
+ ( &(const binstruction[31]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x74060000, // 0001 JMPT R1 #0003
+ 0x80000200, // 0002 RET 0
+ 0x50040000, // 0003 LDBOOL R1 0 0
+ 0x90020001, // 0004 SETMBR R0 K0 R1
+ 0xB8060200, // 0005 GETNGBL R1 K1
+ 0x8C040302, // 0006 GETMET R1 R1 K2
+ 0x7C040200, // 0007 CALL R1 1
+ 0x88080104, // 0008 GETMBR R2 R0 K4
+ 0x880C0105, // 0009 GETMBR R3 R0 K5
+ 0x04080403, // 000A SUB R2 R2 R3
+ 0x540E03E7, // 000B LDINT R3 1000
+ 0x08080403, // 000C MUL R2 R2 R3
+ 0x00080202, // 000D ADD R2 R1 R2
+ 0x90020602, // 000E SETMBR R0 K3 R2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x540E03E7, // 0010 LDINT R3 1000
+ 0x08080403, // 0011 MUL R2 R2 R3
+ 0x00080202, // 0012 ADD R2 R1 R2
+ 0x04080508, // 0013 SUB R2 R2 K8
+ 0x90020C02, // 0014 SETMBR R0 K6 R2
+ 0x88080109, // 0015 GETMBR R2 R0 K9
+ 0x740A0006, // 0016 JMPT R2 #001E
+ 0xB80A1400, // 0017 GETNGBL R2 K10
+ 0x600C0018, // 0018 GETGBL R3 G24
+ 0x5810000B, // 0019 LDCONST R4 K11
+ 0x8814010C, // 001A GETMBR R5 R0 K12
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x5810000D, // 001C LDCONST R4 K13
+ 0x7C080400, // 001D CALL R2 2
+ 0x80000000, // 001E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_event_generator_or_arr
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription_set_event_generator_or_arr, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(event_generators),
+ }),
+ be_str_weak(set_event_generator_or_arr),
+ &be_const_str_solidified,
+ ( &(const binstruction[19]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0003, // 0002 JMPF R2 #0007
+ 0x60080012, // 0003 GETGBL R2 G18
+ 0x7C080000, // 0004 CALL R2 0
+ 0x90020002, // 0005 SETMBR R0 K0 R2
+ 0x7002000A, // 0006 JMP #0012
+ 0x6008000F, // 0007 GETGBL R2 G15
+ 0x5C0C0200, // 0008 MOVE R3 R1
+ 0x60100012, // 0009 GETGBL R4 G18
+ 0x7C080400, // 000A CALL R2 2
+ 0x780A0001, // 000B JMPF R2 #000E
+ 0x90020001, // 000C SETMBR R0 K0 R1
+ 0x70020003, // 000D JMP #0012
+ 0x60080012, // 000E GETGBL R2 G18
+ 0x7C080000, // 000F CALL R2 0
+ 0x400C0401, // 0010 CONNECT R3 R2 R1
+ 0x90020002, // 0011 SETMBR R0 K0 R2
+ 0x80000000, // 0012 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: remove_self
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription;
+be_local_closure(class_Matter_IM_Subscription_remove_self, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20_X2DSub_Del_X20_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D),
+ /* K2 */ be_nested_str_weak(subscription_id),
+ /* K3 */ be_const_int(3),
+ /* K4 */ be_nested_str_weak(subs_shop),
+ /* K5 */ be_nested_str_weak(remove_sub),
+ }),
+ be_str_weak(remove_self),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x60080008, // 0001 GETGBL R2 G8
+ 0x880C0102, // 0002 GETMBR R3 R0 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0x000A0202, // 0004 ADD R2 K1 R2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x7C040400, // 0006 CALL R1 2
+ 0x88040104, // 0007 GETMBR R1 R0 K4
+ 0x8C040305, // 0008 GETMET R1 R1 K5
+ 0x5C0C0000, // 0009 MOVE R3 R0
+ 0x7C040400, // 000A CALL R1 2
+ 0x80000000, // 000B RET 0
})
)
);
@@ -392,29 +589,34 @@ be_local_closure(class_Matter_IM_Subscription_re_arm, /* name */
** Solidified class: Matter_IM_Subscription
********************************************************************/
be_local_class(Matter_IM_Subscription,
- 12,
+ 14,
NULL,
- be_nested_map(19,
+ be_nested_map(24,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(not_before, -1), be_const_var(7) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_Subscription_init_closure) },
+ { be_const_key_weak(expiration, 1), be_const_var(9) },
+ { be_const_key_weak(remove_self, -1), be_const_closure(class_Matter_IM_Subscription_remove_self_closure) },
+ { be_const_key_weak(fabric_filtered, 23), be_const_var(7) },
+ { be_const_key_weak(subs_shop, 16), be_const_var(0) },
{ be_const_key_weak(attribute_updated_ctx, -1), be_const_closure(class_Matter_IM_Subscription_attribute_updated_ctx_closure) },
- { be_const_key_weak(updates, -1), be_const_var(11) },
- { be_const_key_weak(min_interval, -1), be_const_var(4) },
- { be_const_key_weak(expiration, -1), be_const_var(8) },
- { be_const_key_weak(subscription_id, 3), be_const_var(1) },
- { be_const_key_weak(subs_shop, -1), be_const_var(0) },
- { be_const_key_weak(max_interval, -1), be_const_var(5) },
- { be_const_key_weak(remove_self, 1), be_const_closure(class_Matter_IM_Subscription_remove_self_closure) },
+ { be_const_key_weak(update_event_no, -1), be_const_var(13) },
{ be_const_key_weak(MAX_INTERVAL_MARGIN, -1), be_const_int(5) },
- { be_const_key_weak(fabric_filtered, 7), be_const_var(6) },
- { be_const_key_weak(_add_attribute_unique_path, 11), be_const_closure(class_Matter_IM_Subscription__add_attribute_unique_path_closure) },
- { be_const_key_weak(path_list, 9), be_const_var(3) },
- { be_const_key_weak(is_keep_alive, -1), be_const_var(10) },
- { be_const_key_weak(clear_before_arm, -1), be_const_closure(class_Matter_IM_Subscription_clear_before_arm_closure) },
- { be_const_key_weak(session, 2), be_const_var(2) },
+ { be_const_key_weak(session, 14), be_const_var(2) },
+ { be_const_key_weak(not_before, -1), be_const_var(8) },
+ { be_const_key_weak(path_list, 5), be_const_var(3) },
+ { be_const_key_weak(event_generators, -1), be_const_var(4) },
+ { be_const_key_weak(clear_before_arm, 4), be_const_closure(class_Matter_IM_Subscription_clear_before_arm_closure) },
+ { be_const_key_weak(is_keep_alive, 11), be_const_var(11) },
+ { be_const_key_weak(updates, 12), be_const_var(12) },
+ { be_const_key_weak(wait_status, -1), be_const_var(10) },
+ { be_const_key_weak(max_interval, -1), be_const_var(6) },
+ { be_const_key_weak(init, 9), be_const_closure(class_Matter_IM_Subscription_init_closure) },
+ { be_const_key_weak(min_interval, -1), be_const_var(5) },
+ { be_const_key_weak(_add_attribute_unique_path, -1), be_const_closure(class_Matter_IM_Subscription__add_attribute_unique_path_closure) },
+ { be_const_key_weak(update_event_generator_array, -1), be_const_closure(class_Matter_IM_Subscription_update_event_generator_array_closure) },
+ { be_const_key_weak(subscription_id, -1), be_const_var(1) },
{ be_const_key_weak(re_arm, -1), be_const_closure(class_Matter_IM_Subscription_re_arm_closure) },
- { be_const_key_weak(wait_status, 0), be_const_var(9) },
+ { be_const_key_weak(set_event_generator_or_arr, -1), be_const_closure(class_Matter_IM_Subscription_set_event_generator_or_arr_closure) },
+ { be_const_key_weak(event_published, -1), be_const_closure(class_Matter_IM_Subscription_event_published_closure) },
})),
be_str_weak(Matter_IM_Subscription)
);
@@ -422,10 +624,10 @@ be_local_class(Matter_IM_Subscription,
extern const bclass be_class_Matter_IM_Subscription_Shop;
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: every_50ms
********************************************************************/
extern const bclass be_class_Matter_IM_Subscription_Shop;
-be_local_closure(class_Matter_IM_Subscription_Shop_every_250ms, /* name */
+be_local_closure(class_Matter_IM_Subscription_Shop_every_50ms, /* name */
be_nested_proto(
6, /* nstack */
1, /* argc */
@@ -435,79 +637,84 @@ be_local_closure(class_Matter_IM_Subscription_Shop_every_250ms, /* name */
0, /* has sup protos */
&be_class_Matter_IM_Subscription_Shop,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
+ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(subs),
/* K2 */ be_nested_str_weak(wait_status),
- /* K3 */ be_nested_str_weak(updates),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
- /* K6 */ be_nested_str_weak(not_before),
- /* K7 */ be_nested_str_weak(im),
- /* K8 */ be_nested_str_weak(send_subscribe_update),
- /* K9 */ be_nested_str_weak(clear_before_arm),
- /* K10 */ be_const_int(1),
- /* K11 */ be_nested_str_weak(expiration),
- /* K12 */ be_nested_str_weak(send_subscribe_heartbeat),
- /* K13 */ be_nested_str_weak(re_arm),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(time_reached),
+ /* K5 */ be_nested_str_weak(not_before),
+ /* K6 */ be_nested_str_weak(updates),
+ /* K7 */ be_nested_str_weak(update_event_no),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(send_subscribe_update),
+ /* K10 */ be_nested_str_weak(clear_before_arm),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(expiration),
+ /* K13 */ be_nested_str_weak(send_subscribe_heartbeat),
+ /* K14 */ be_nested_str_weak(re_arm),
}),
- be_str_weak(every_250ms),
+ be_str_weak(every_50ms),
&be_const_str_solidified,
- ( &(const binstruction[54]) { /* code */
+ ( &(const binstruction[58]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0x6008000C, // 0001 GETGBL R2 G12
0x880C0101, // 0002 GETMBR R3 R0 K1
0x7C080200, // 0003 CALL R2 1
0x14080202, // 0004 LT R2 R1 R2
- 0x780A0015, // 0005 JMPF R2 #001C
+ 0x780A0019, // 0005 JMPF R2 #0020
0x88080101, // 0006 GETMBR R2 R0 K1
0x94080401, // 0007 GETIDX R2 R2 R1
0x880C0502, // 0008 GETMBR R3 R2 K2
- 0x740E000F, // 0009 JMPT R3 #001A
- 0x600C000C, // 000A GETGBL R3 G12
- 0x88100503, // 000B GETMBR R4 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x240C0700, // 000D GT R3 R3 K0
- 0x780E000A, // 000E JMPF R3 #001A
- 0xB80E0800, // 000F GETNGBL R3 K4
- 0x8C0C0705, // 0010 GETMET R3 R3 K5
- 0x88140506, // 0011 GETMBR R5 R2 K6
- 0x7C0C0400, // 0012 CALL R3 2
- 0x780E0005, // 0013 JMPF R3 #001A
- 0x880C0107, // 0014 GETMBR R3 R0 K7
- 0x8C0C0708, // 0015 GETMET R3 R3 K8
- 0x5C140400, // 0016 MOVE R5 R2
- 0x7C0C0400, // 0017 CALL R3 2
- 0x8C0C0509, // 0018 GETMET R3 R2 K9
- 0x7C0C0200, // 0019 CALL R3 1
- 0x0004030A, // 001A ADD R1 R1 K10
- 0x7001FFE4, // 001B JMP #0001
- 0x58040000, // 001C LDCONST R1 K0
- 0x6008000C, // 001D GETGBL R2 G12
- 0x880C0101, // 001E GETMBR R3 R0 K1
- 0x7C080200, // 001F CALL R2 1
- 0x14080202, // 0020 LT R2 R1 R2
- 0x780A0012, // 0021 JMPF R2 #0035
- 0x88080101, // 0022 GETMBR R2 R0 K1
- 0x94080401, // 0023 GETIDX R2 R2 R1
- 0x880C0502, // 0024 GETMBR R3 R2 K2
- 0x740E000C, // 0025 JMPT R3 #0033
- 0xB80E0800, // 0026 GETNGBL R3 K4
- 0x8C0C0705, // 0027 GETMET R3 R3 K5
- 0x8814050B, // 0028 GETMBR R5 R2 K11
- 0x7C0C0400, // 0029 CALL R3 2
- 0x780E0007, // 002A JMPF R3 #0033
- 0x880C0107, // 002B GETMBR R3 R0 K7
- 0x8C0C070C, // 002C GETMET R3 R3 K12
- 0x5C140400, // 002D MOVE R5 R2
- 0x7C0C0400, // 002E CALL R3 2
- 0x8C0C0509, // 002F GETMET R3 R2 K9
- 0x7C0C0200, // 0030 CALL R3 1
- 0x8C0C050D, // 0031 GETMET R3 R2 K13
- 0x7C0C0200, // 0032 CALL R3 1
- 0x0004030A, // 0033 ADD R1 R1 K10
- 0x7001FFE7, // 0034 JMP #001D
- 0x80000000, // 0035 RET 0
+ 0x740E0013, // 0009 JMPT R3 #001E
+ 0xB80E0600, // 000A GETNGBL R3 K3
+ 0x8C0C0704, // 000B GETMET R3 R3 K4
+ 0x88140505, // 000C GETMBR R5 R2 K5
+ 0x7C0C0400, // 000D CALL R3 2
+ 0x780E000E, // 000E JMPF R3 #001E
+ 0x600C000C, // 000F GETGBL R3 G12
+ 0x88100506, // 0010 GETMBR R4 R2 K6
+ 0x7C0C0200, // 0011 CALL R3 1
+ 0x240C0700, // 0012 GT R3 R3 K0
+ 0x740E0003, // 0013 JMPT R3 #0018
+ 0x880C0507, // 0014 GETMBR R3 R2 K7
+ 0x4C100000, // 0015 LDNIL R4
+ 0x200C0604, // 0016 NE R3 R3 R4
+ 0x780E0005, // 0017 JMPF R3 #001E
+ 0x880C0108, // 0018 GETMBR R3 R0 K8
+ 0x8C0C0709, // 0019 GETMET R3 R3 K9
+ 0x5C140400, // 001A MOVE R5 R2
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x8C0C050A, // 001C GETMET R3 R2 K10
+ 0x7C0C0200, // 001D CALL R3 1
+ 0x0004030B, // 001E ADD R1 R1 K11
+ 0x7001FFE0, // 001F JMP #0001
+ 0x58040000, // 0020 LDCONST R1 K0
+ 0x6008000C, // 0021 GETGBL R2 G12
+ 0x880C0101, // 0022 GETMBR R3 R0 K1
+ 0x7C080200, // 0023 CALL R2 1
+ 0x14080202, // 0024 LT R2 R1 R2
+ 0x780A0012, // 0025 JMPF R2 #0039
+ 0x88080101, // 0026 GETMBR R2 R0 K1
+ 0x94080401, // 0027 GETIDX R2 R2 R1
+ 0x880C0502, // 0028 GETMBR R3 R2 K2
+ 0x740E000C, // 0029 JMPT R3 #0037
+ 0xB80E0600, // 002A GETNGBL R3 K3
+ 0x8C0C0704, // 002B GETMET R3 R3 K4
+ 0x8814050C, // 002C GETMBR R5 R2 K12
+ 0x7C0C0400, // 002D CALL R3 2
+ 0x780E0007, // 002E JMPF R3 #0037
+ 0x880C0108, // 002F GETMBR R3 R0 K8
+ 0x8C0C070D, // 0030 GETMET R3 R3 K13
+ 0x5C140400, // 0031 MOVE R5 R2
+ 0x7C0C0400, // 0032 CALL R3 2
+ 0x8C0C050A, // 0033 GETMET R3 R2 K10
+ 0x7C0C0200, // 0034 CALL R3 1
+ 0x8C0C050E, // 0035 GETMET R3 R2 K14
+ 0x7C0C0200, // 0036 CALL R3 1
+ 0x0004030B, // 0037 ADD R1 R1 K11
+ 0x7001FFE7, // 0038 JMP #0021
+ 0x80000000, // 0039 RET 0
})
)
);
@@ -515,12 +722,12 @@ be_local_closure(class_Matter_IM_Subscription_Shop_every_250ms, /* name */
/********************************************************************
-** Solidified function: get_by_id
+** Solidified function: init
********************************************************************/
extern const bclass be_class_Matter_IM_Subscription_Shop;
-be_local_closure(class_Matter_IM_Subscription_Shop_get_by_id, /* name */
+be_local_closure(class_Matter_IM_Subscription_Shop_init, /* name */
be_nested_proto(
- 5, /* nstack */
+ 3, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -528,100 +735,62 @@ be_local_closure(class_Matter_IM_Subscription_Shop_get_by_id, /* name */
0, /* has sup protos */
&be_class_Matter_IM_Subscription_Shop,
1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(im),
+ /* K1 */ be_nested_str_weak(subs),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: attribute_updated_ctx
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription_Shop;
+be_local_closure(class_Matter_IM_Subscription_Shop_attribute_updated_ctx, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription_Shop,
+ 1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(subs),
- /* K2 */ be_nested_str_weak(subscription_id),
+ /* K2 */ be_nested_str_weak(attribute_updated_ctx),
/* K3 */ be_const_int(1),
}),
- be_str_weak(get_by_id),
+ be_str_weak(attribute_updated_ctx),
&be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0009, // 0005 JMPF R3 #0010
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x880C0702, // 0008 GETMBR R3 R3 K2
- 0x1C0C0601, // 0009 EQ R3 R3 R1
- 0x780E0002, // 000A JMPF R3 #000E
- 0x880C0101, // 000B GETMBR R3 R0 K1
- 0x940C0602, // 000C GETIDX R3 R3 R2
- 0x80040600, // 000D RET 1 R3
- 0x00080503, // 000E ADD R2 R2 K3
- 0x7001FFF0, // 000F JMP #0001
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: new_subscription
-********************************************************************/
-extern const bclass be_class_Matter_IM_Subscription_Shop;
-be_local_closure(class_Matter_IM_Subscription_Shop_new_subscription, /* name */
- be_nested_proto(
- 11, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Subscription_Shop,
- 1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(random),
- /* K2 */ be_const_int(2),
- /* K3 */ be_nested_str_weak(get),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(get_by_id),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(IM_Subscription),
- /* K8 */ be_nested_str_weak(subs),
- /* K9 */ be_nested_str_weak(push),
- }),
- be_str_weak(new_subscription),
- &be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
- 0xA40E0000, // 0000 IMPORT R3 K0
- 0x8C100701, // 0001 GETMET R4 R3 K1
- 0x58180002, // 0002 LDCONST R6 K2
- 0x7C100400, // 0003 CALL R4 2
- 0x8C100903, // 0004 GETMET R4 R4 K3
- 0x58180004, // 0005 LDCONST R6 K4
- 0x581C0002, // 0006 LDCONST R7 K2
- 0x7C100600, // 0007 CALL R4 3
- 0x8C140105, // 0008 GETMET R5 R0 K5
- 0x5C1C0800, // 0009 MOVE R7 R4
- 0x7C140400, // 000A CALL R5 2
- 0x78160008, // 000B JMPF R5 #0015
- 0x8C140701, // 000C GETMET R5 R3 K1
- 0x581C0002, // 000D LDCONST R7 K2
- 0x7C140400, // 000E CALL R5 2
- 0x8C140B03, // 000F GETMET R5 R5 K3
- 0x581C0004, // 0010 LDCONST R7 K4
- 0x58200002, // 0011 LDCONST R8 K2
- 0x7C140600, // 0012 CALL R5 3
- 0x5C100A00, // 0013 MOVE R4 R5
- 0x7001FFF2, // 0014 JMP #0008
- 0xB8160C00, // 0015 GETNGBL R5 K6
- 0x8C140B07, // 0016 GETMET R5 R5 K7
- 0x5C1C0000, // 0017 MOVE R7 R0
- 0x5C200800, // 0018 MOVE R8 R4
- 0x5C240200, // 0019 MOVE R9 R1
- 0x5C280400, // 001A MOVE R10 R2
- 0x7C140A00, // 001B CALL R5 5
- 0x88180108, // 001C GETMBR R6 R0 K8
- 0x8C180D09, // 001D GETMET R6 R6 K9
- 0x5C200A00, // 001E MOVE R8 R5
- 0x7C180400, // 001F CALL R6 2
- 0x80040A00, // 0020 RET 1 R5
+ ( &(const binstruction[15]) { /* code */
+ 0x580C0000, // 0000 LDCONST R3 K0
+ 0x6010000C, // 0001 GETGBL R4 G12
+ 0x88140101, // 0002 GETMBR R5 R0 K1
+ 0x7C100200, // 0003 CALL R4 1
+ 0x14100604, // 0004 LT R4 R3 R4
+ 0x78120007, // 0005 JMPF R4 #000E
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x94100803, // 0007 GETIDX R4 R4 R3
+ 0x8C100902, // 0008 GETMET R4 R4 K2
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x5C1C0400, // 000A MOVE R7 R2
+ 0x7C100600, // 000B CALL R4 3
+ 0x000C0703, // 000C ADD R3 R3 K3
+ 0x7001FFF2, // 000D JMP #0001
+ 0x80000000, // 000E RET 0
})
)
);
@@ -676,13 +845,82 @@ be_local_closure(class_Matter_IM_Subscription_Shop_remove_sub, /* name */
/********************************************************************
-** Solidified function: attribute_updated_ctx
+** Solidified function: new_subscription
********************************************************************/
extern const bclass be_class_Matter_IM_Subscription_Shop;
-be_local_closure(class_Matter_IM_Subscription_Shop_attribute_updated_ctx, /* name */
+be_local_closure(class_Matter_IM_Subscription_Shop_new_subscription, /* name */
be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
+ 13, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription_Shop,
+ 1, /* has constants */
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(random),
+ /* K2 */ be_const_int(2),
+ /* K3 */ be_nested_str_weak(get),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(get_by_id),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(IM_Subscription),
+ /* K8 */ be_nested_str_weak(subs),
+ /* K9 */ be_nested_str_weak(push),
+ }),
+ be_str_weak(new_subscription),
+ &be_const_str_solidified,
+ ( &(const binstruction[34]) { /* code */
+ 0xA4120000, // 0000 IMPORT R4 K0
+ 0x8C140901, // 0001 GETMET R5 R4 K1
+ 0x581C0002, // 0002 LDCONST R7 K2
+ 0x7C140400, // 0003 CALL R5 2
+ 0x8C140B03, // 0004 GETMET R5 R5 K3
+ 0x581C0004, // 0005 LDCONST R7 K4
+ 0x58200002, // 0006 LDCONST R8 K2
+ 0x7C140600, // 0007 CALL R5 3
+ 0x8C180105, // 0008 GETMET R6 R0 K5
+ 0x5C200A00, // 0009 MOVE R8 R5
+ 0x7C180400, // 000A CALL R6 2
+ 0x781A0008, // 000B JMPF R6 #0015
+ 0x8C180901, // 000C GETMET R6 R4 K1
+ 0x58200002, // 000D LDCONST R8 K2
+ 0x7C180400, // 000E CALL R6 2
+ 0x8C180D03, // 000F GETMET R6 R6 K3
+ 0x58200004, // 0010 LDCONST R8 K4
+ 0x58240002, // 0011 LDCONST R9 K2
+ 0x7C180600, // 0012 CALL R6 3
+ 0x5C140C00, // 0013 MOVE R5 R6
+ 0x7001FFF2, // 0014 JMP #0008
+ 0xB81A0C00, // 0015 GETNGBL R6 K6
+ 0x8C180D07, // 0016 GETMET R6 R6 K7
+ 0x5C200000, // 0017 MOVE R8 R0
+ 0x5C240A00, // 0018 MOVE R9 R5
+ 0x5C280200, // 0019 MOVE R10 R1
+ 0x5C2C0400, // 001A MOVE R11 R2
+ 0x5C300600, // 001B MOVE R12 R3
+ 0x7C180C00, // 001C CALL R6 6
+ 0x881C0108, // 001D GETMBR R7 R0 K8
+ 0x8C1C0F09, // 001E GETMET R7 R7 K9
+ 0x5C240C00, // 001F MOVE R9 R6
+ 0x7C1C0400, // 0020 CALL R7 2
+ 0x80040C00, // 0021 RET 1 R6
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: event_published
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription_Shop;
+be_local_closure(class_Matter_IM_Subscription_Shop_event_published, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -692,27 +930,26 @@ be_local_closure(class_Matter_IM_Subscription_Shop_attribute_updated_ctx, /* n
( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(subs),
- /* K2 */ be_nested_str_weak(attribute_updated_ctx),
+ /* K2 */ be_nested_str_weak(event_published),
/* K3 */ be_const_int(1),
}),
- be_str_weak(attribute_updated_ctx),
+ be_str_weak(event_published),
&be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x580C0000, // 0000 LDCONST R3 K0
- 0x6010000C, // 0001 GETGBL R4 G12
- 0x88140101, // 0002 GETMBR R5 R0 K1
- 0x7C100200, // 0003 CALL R4 1
- 0x14100604, // 0004 LT R4 R3 R4
- 0x78120007, // 0005 JMPF R4 #000E
- 0x88100101, // 0006 GETMBR R4 R0 K1
- 0x94100803, // 0007 GETIDX R4 R4 R3
- 0x8C100902, // 0008 GETMET R4 R4 K2
- 0x5C180200, // 0009 MOVE R6 R1
- 0x5C1C0400, // 000A MOVE R7 R2
- 0x7C100600, // 000B CALL R4 3
- 0x000C0703, // 000C ADD R3 R3 K3
- 0x7001FFF2, // 000D JMP #0001
- 0x80000000, // 000E RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0006, // 0005 JMPF R3 #000D
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x8C0C0702, // 0008 GETMET R3 R3 K2
+ 0x5C140200, // 0009 MOVE R5 R1
+ 0x7C0C0400, // 000A CALL R3 2
+ 0x00080503, // 000B ADD R2 R2 K3
+ 0x7001FFF3, // 000C JMP #0001
+ 0x80000000, // 000D RET 0
})
)
);
@@ -768,38 +1005,6 @@ be_local_closure(class_Matter_IM_Subscription_Shop_remove_by_session, /* name
/*******************************************************************/
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_IM_Subscription_Shop;
-be_local_closure(class_Matter_IM_Subscription_Shop_init, /* name */
- be_nested_proto(
- 3, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Subscription_Shop,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(im),
- /* K1 */ be_nested_str_weak(subs),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x90020202, // 0003 SETMBR R0 K1 R2
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: remove_by_fabric
********************************************************************/
@@ -842,24 +1047,71 @@ be_local_closure(class_Matter_IM_Subscription_Shop_remove_by_fabric, /* name *
/*******************************************************************/
+/********************************************************************
+** Solidified function: get_by_id
+********************************************************************/
+extern const bclass be_class_Matter_IM_Subscription_Shop;
+be_local_closure(class_Matter_IM_Subscription_Shop_get_by_id, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Subscription_Shop,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(subs),
+ /* K2 */ be_nested_str_weak(subscription_id),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(get_by_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0009, // 0005 JMPF R3 #0010
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x880C0702, // 0008 GETMBR R3 R3 K2
+ 0x1C0C0601, // 0009 EQ R3 R3 R1
+ 0x780E0002, // 000A JMPF R3 #000E
+ 0x880C0101, // 000B GETMBR R3 R0 K1
+ 0x940C0602, // 000C GETIDX R3 R3 R2
+ 0x80040600, // 000D RET 1 R3
+ 0x00080503, // 000E ADD R2 R2 K3
+ 0x7001FFF0, // 000F JMP #0001
+ 0x80000000, // 0010 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_IM_Subscription_Shop
********************************************************************/
be_local_class(Matter_IM_Subscription_Shop,
2,
NULL,
- be_nested_map(10,
+ be_nested_map(11,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_IM_Subscription_Shop_every_250ms_closure) },
+ { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_IM_Subscription_Shop_every_50ms_closure) },
{ be_const_key_weak(get_by_id, -1), be_const_closure(class_Matter_IM_Subscription_Shop_get_by_id_closure) },
{ be_const_key_weak(attribute_updated_ctx, -1), be_const_closure(class_Matter_IM_Subscription_Shop_attribute_updated_ctx_closure) },
- { be_const_key_weak(init, 2), be_const_closure(class_Matter_IM_Subscription_Shop_init_closure) },
{ be_const_key_weak(remove_sub, -1), be_const_closure(class_Matter_IM_Subscription_Shop_remove_sub_closure) },
- { be_const_key_weak(new_subscription, 3), be_const_closure(class_Matter_IM_Subscription_Shop_new_subscription_closure) },
- { be_const_key_weak(subs, 8), be_const_var(0) },
- { be_const_key_weak(im, -1), be_const_var(1) },
- { be_const_key_weak(remove_by_session, -1), be_const_closure(class_Matter_IM_Subscription_Shop_remove_by_session_closure) },
{ be_const_key_weak(remove_by_fabric, -1), be_const_closure(class_Matter_IM_Subscription_Shop_remove_by_fabric_closure) },
+ { be_const_key_weak(new_subscription, -1), be_const_closure(class_Matter_IM_Subscription_Shop_new_subscription_closure) },
+ { be_const_key_weak(event_published, -1), be_const_closure(class_Matter_IM_Subscription_Shop_event_published_closure) },
+ { be_const_key_weak(subs, -1), be_const_var(0) },
+ { be_const_key_weak(remove_by_session, -1), be_const_closure(class_Matter_IM_Subscription_Shop_remove_by_session_closure) },
+ { be_const_key_weak(init, 4), be_const_closure(class_Matter_IM_Subscription_Shop_init_closure) },
+ { be_const_key_weak(im, 1), be_const_var(1) },
})),
be_str_weak(Matter_IM_Subscription_Shop)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
index be8bf07c2..80fbe0851 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
@@ -695,10 +695,10 @@ be_local_closure(class_Matter_MessageHandler_send_simple_ack, /* name */
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: every_50ms
********************************************************************/
extern const bclass be_class_Matter_MessageHandler;
-be_local_closure(class_Matter_MessageHandler_every_250ms, /* name */
+be_local_closure(class_Matter_MessageHandler_every_50ms, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -710,9 +710,9 @@ be_local_closure(class_Matter_MessageHandler_every_250ms, /* name */
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
/* K0 */ be_nested_str_weak(im),
- /* K1 */ be_nested_str_weak(every_250ms),
+ /* K1 */ be_nested_str_weak(every_50ms),
}),
- be_str_weak(every_250ms),
+ be_str_weak(every_50ms),
&be_const_str_solidified,
( &(const binstruction[ 4]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -775,7 +775,7 @@ be_local_class(Matter_MessageHandler,
{ be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_MessageHandler_msg_received_closure) },
{ be_const_key_weak(im, 11), be_const_var(2) },
{ be_const_key_weak(every_second, -1), be_const_closure(class_Matter_MessageHandler_every_second_closure) },
- { be_const_key_weak(every_250ms, -1), be_const_closure(class_Matter_MessageHandler_every_250ms_closure) },
+ { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_MessageHandler_every_50ms_closure) },
{ be_const_key_weak(send_simple_ack, 1), be_const_closure(class_Matter_MessageHandler_send_simple_ack_closure) },
{ be_const_key_weak(send_response_frame, 6), be_const_closure(class_Matter_MessageHandler_send_response_frame_closure) },
{ be_const_key_weak(control_message, -1), be_const_var(3) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
index 0fb2d42fd..c6b0ab25d 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_0.h
@@ -6,6 +6,81 @@
extern const bclass be_class_Matter_Path;
+/********************************************************************
+** Solidified function: reset
+********************************************************************/
+extern const bclass be_class_Matter_Path;
+be_local_closure(class_Matter_Path_reset, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Path,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(fabric_filtered),
+ /* K4 */ be_nested_str_weak(command),
+ /* K5 */ be_nested_str_weak(status),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(msg),
+ }),
+ be_str_weak(reset),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x90020201, // 0002 SETMBR R0 K1 R1
+ 0x90020401, // 0003 SETMBR R0 K2 R1
+ 0x90020601, // 0004 SETMBR R0 K3 R1
+ 0x90020801, // 0005 SETMBR R0 K4 R1
+ 0x90020A01, // 0006 SETMBR R0 K5 R1
+ 0x90020C01, // 0007 SETMBR R0 K6 R1
+ 0x90020E01, // 0008 SETMBR R0 K7 R1
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Path;
+be_local_closure(class_Matter_Path_init, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Path,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x90020202, // 0001 SETMBR R0 K1 R2
+ 0x90020403, // 0002 SETMBR R0 K2 R3
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: tostring
********************************************************************/
@@ -161,68 +236,26 @@ be_local_closure(class_Matter_Path_copy, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: reset
-********************************************************************/
-extern const bclass be_class_Matter_Path;
-be_local_closure(class_Matter_Path_reset, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Path,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(fabric_filtered),
- /* K4 */ be_nested_str_weak(command),
- /* K5 */ be_nested_str_weak(status),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(msg),
- }),
- be_str_weak(reset),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x90020201, // 0002 SETMBR R0 K1 R1
- 0x90020401, // 0003 SETMBR R0 K2 R1
- 0x90020601, // 0004 SETMBR R0 K3 R1
- 0x90020801, // 0005 SETMBR R0 K4 R1
- 0x90020A01, // 0006 SETMBR R0 K5 R1
- 0x90020C01, // 0007 SETMBR R0 K6 R1
- 0x90020E01, // 0008 SETMBR R0 K7 R1
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_Path
********************************************************************/
be_local_class(Matter_Path,
8,
NULL,
- be_nested_map(11,
+ be_nested_map(12,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(command, -1), be_const_var(4) },
- { be_const_key_weak(cluster, 5), be_const_var(1) },
- { be_const_key_weak(attribute, -1), be_const_var(2) },
- { be_const_key_weak(tostring, 9), be_const_closure(class_Matter_Path_tostring_closure) },
- { be_const_key_weak(log, -1), be_const_var(6) },
- { be_const_key_weak(status, 2), be_const_var(5) },
- { be_const_key_weak(endpoint, -1), be_const_var(0) },
- { be_const_key_weak(msg, 6), be_const_var(7) },
- { be_const_key_weak(fabric_filtered, -1), be_const_var(3) },
- { be_const_key_weak(copy, -1), be_const_closure(class_Matter_Path_copy_closure) },
{ be_const_key_weak(reset, -1), be_const_closure(class_Matter_Path_reset_closure) },
+ { be_const_key_weak(cluster, 5), be_const_var(1) },
+ { be_const_key_weak(fabric_filtered, 6), be_const_var(3) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_Path_init_closure) },
+ { be_const_key_weak(endpoint, -1), be_const_var(0) },
+ { be_const_key_weak(tostring, -1), be_const_closure(class_Matter_Path_tostring_closure) },
+ { be_const_key_weak(command, 10), be_const_var(4) },
+ { be_const_key_weak(status, -1), be_const_var(5) },
+ { be_const_key_weak(copy, -1), be_const_closure(class_Matter_Path_copy_closure) },
+ { be_const_key_weak(log, -1), be_const_var(6) },
+ { be_const_key_weak(msg, -1), be_const_var(7) },
+ { be_const_key_weak(attribute, -1), be_const_var(2) },
})),
be_str_weak(Matter_Path)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_EventGenerator.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_EventGenerator.h
new file mode 100644
index 000000000..678c04f70
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_EventGenerator.h
@@ -0,0 +1,351 @@
+/* Solidification of Matter_Path_1_EventGenerator.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_EventGenerator;
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_init, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_pi
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_get_pi, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(get_pi),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_start, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(reset),
+ /* K1 */ be_nested_str_weak(path_in_endpoint),
+ /* K2 */ be_nested_str_weak(path_in_cluster),
+ /* K3 */ be_nested_str_weak(path_in_event),
+ /* K4 */ be_nested_str_weak(path_in_event_min),
+ /* K5 */ be_nested_str_weak(event_no),
+ /* K6 */ be_nested_str_weak(finished),
+ }),
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x8C140100, // 0000 GETMET R5 R0 K0
+ 0x7C140200, // 0001 CALL R5 1
+ 0x90020201, // 0002 SETMBR R0 K1 R1
+ 0x90020402, // 0003 SETMBR R0 K2 R2
+ 0x90020603, // 0004 SETMBR R0 K3 R3
+ 0x90020804, // 0005 SETMBR R0 K4 R4
+ 0x90020A04, // 0006 SETMBR R0 K5 R4
+ 0x50140000, // 0007 LDBOOL R5 0 0
+ 0x90020C05, // 0008 SETMBR R0 K6 R5
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: reset
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_reset, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(event_no),
+ /* K1 */ be_nested_str_weak(finished),
+ }),
+ be_str_weak(reset),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x80000000, // 0004 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_finished
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_is_finished, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(finished),
+ }),
+ be_str_weak(is_finished),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x80040200, // 0001 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: event_is_match
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_event_is_match, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(path_in_endpoint),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(path_in_cluster),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(path_in_event),
+ /* K5 */ be_nested_str_weak(event_id),
+ }),
+ be_str_weak(event_is_match),
+ &be_const_str_solidified,
+ ( &(const binstruction[38]) { /* code */
+ 0x50080200, // 0000 LDBOOL R2 1 0
+ 0x880C0100, // 0001 GETMBR R3 R0 K0
+ 0x4C100000, // 0002 LDNIL R4
+ 0x200C0604, // 0003 NE R3 R3 R4
+ 0x780E0007, // 0004 JMPF R3 #000D
+ 0x780A0003, // 0005 JMPF R2 #000A
+ 0x880C0100, // 0006 GETMBR R3 R0 K0
+ 0x88100301, // 0007 GETMBR R4 R1 K1
+ 0x1C0C0604, // 0008 EQ R3 R3 R4
+ 0x740E0000, // 0009 JMPT R3 #000B
+ 0x500C0001, // 000A LDBOOL R3 0 1
+ 0x500C0200, // 000B LDBOOL R3 1 0
+ 0x5C080600, // 000C MOVE R2 R3
+ 0x880C0102, // 000D GETMBR R3 R0 K2
+ 0x4C100000, // 000E LDNIL R4
+ 0x200C0604, // 000F NE R3 R3 R4
+ 0x780E0007, // 0010 JMPF R3 #0019
+ 0x780A0003, // 0011 JMPF R2 #0016
+ 0x880C0102, // 0012 GETMBR R3 R0 K2
+ 0x88100303, // 0013 GETMBR R4 R1 K3
+ 0x1C0C0604, // 0014 EQ R3 R3 R4
+ 0x740E0000, // 0015 JMPT R3 #0017
+ 0x500C0001, // 0016 LDBOOL R3 0 1
+ 0x500C0200, // 0017 LDBOOL R3 1 0
+ 0x5C080600, // 0018 MOVE R2 R3
+ 0x880C0104, // 0019 GETMBR R3 R0 K4
+ 0x4C100000, // 001A LDNIL R4
+ 0x200C0604, // 001B NE R3 R3 R4
+ 0x780E0007, // 001C JMPF R3 #0025
+ 0x780A0003, // 001D JMPF R2 #0022
+ 0x880C0104, // 001E GETMBR R3 R0 K4
+ 0x88100305, // 001F GETMBR R4 R1 K5
+ 0x1C0C0604, // 0020 EQ R3 R3 R4
+ 0x740E0000, // 0021 JMPT R3 #0023
+ 0x500C0001, // 0022 LDBOOL R3 0 1
+ 0x500C0200, // 0023 LDBOOL R3 1 0
+ 0x5C080600, // 0024 MOVE R2 R3
+ 0x80040400, // 0025 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: next_event
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_next_event, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(finished),
+ /* K1 */ be_nested_str_weak(device),
+ /* K2 */ be_nested_str_weak(events),
+ /* K3 */ be_nested_str_weak(find_min_no),
+ /* K4 */ be_nested_str_weak(event_no),
+ /* K5 */ be_nested_str_weak(reset),
+ /* K6 */ be_nested_str_weak(event_is_match),
+ }),
+ be_str_weak(next_event),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060001, // 0001 JMPF R1 #0004
+ 0x4C040000, // 0002 LDNIL R1
+ 0x80040200, // 0003 RET 1 R1
+ 0x50040200, // 0004 LDBOOL R1 1 0
+ 0x78060013, // 0005 JMPF R1 #001A
+ 0x88040101, // 0006 GETMBR R1 R0 K1
+ 0x88040302, // 0007 GETMBR R1 R1 K2
+ 0x8C040303, // 0008 GETMET R1 R1 K3
+ 0x880C0104, // 0009 GETMBR R3 R0 K4
+ 0x7C040400, // 000A CALL R1 2
+ 0x4C080000, // 000B LDNIL R2
+ 0x1C080202, // 000C EQ R2 R1 R2
+ 0x780A0003, // 000D JMPF R2 #0012
+ 0x8C080105, // 000E GETMET R2 R0 K5
+ 0x7C080200, // 000F CALL R2 1
+ 0x4C080000, // 0010 LDNIL R2
+ 0x80040400, // 0011 RET 1 R2
+ 0x88080304, // 0012 GETMBR R2 R1 K4
+ 0x90020802, // 0013 SETMBR R0 K4 R2
+ 0x8C080106, // 0014 GETMET R2 R0 K6
+ 0x5C100200, // 0015 MOVE R4 R1
+ 0x7C080400, // 0016 CALL R2 2
+ 0x780A0000, // 0017 JMPF R2 #0019
+ 0x80040200, // 0018 RET 1 R1
+ 0x7001FFE9, // 0019 JMP #0004
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: restart_from
+********************************************************************/
+extern const bclass be_class_Matter_EventGenerator;
+be_local_closure(class_Matter_EventGenerator_restart_from, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventGenerator,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(finished),
+ /* K1 */ be_nested_str_weak(event_no),
+ }),
+ be_str_weak(restart_from),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x50080000, // 0000 LDBOOL R2 0 0
+ 0x90020002, // 0001 SETMBR R0 K0 R2
+ 0x90020201, // 0002 SETMBR R0 K1 R1
+ 0x80000000, // 0003 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_EventGenerator
+********************************************************************/
+be_local_class(Matter_EventGenerator,
+ 7,
+ NULL,
+ be_nested_map(15,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_EventGenerator_init_closure) },
+ { be_const_key_weak(path_in_endpoint, -1), be_const_var(1) },
+ { be_const_key_weak(get_pi, -1), be_const_closure(class_Matter_EventGenerator_get_pi_closure) },
+ { be_const_key_weak(path_in_event, -1), be_const_var(3) },
+ { be_const_key_weak(finished, -1), be_const_var(6) },
+ { be_const_key_weak(path_in_event_min, -1), be_const_var(4) },
+ { be_const_key_weak(device, -1), be_const_var(0) },
+ { be_const_key_weak(event_no, 9), be_const_var(5) },
+ { be_const_key_weak(is_finished, -1), be_const_closure(class_Matter_EventGenerator_is_finished_closure) },
+ { be_const_key_weak(restart_from, 5), be_const_closure(class_Matter_EventGenerator_restart_from_closure) },
+ { be_const_key_weak(event_is_match, -1), be_const_closure(class_Matter_EventGenerator_event_is_match_closure) },
+ { be_const_key_weak(start, 13), be_const_closure(class_Matter_EventGenerator_start_closure) },
+ { be_const_key_weak(reset, 7), be_const_closure(class_Matter_EventGenerator_reset_closure) },
+ { be_const_key_weak(next_event, -1), be_const_closure(class_Matter_EventGenerator_next_event_closure) },
+ { be_const_key_weak(path_in_cluster, -1), be_const_var(2) },
+ })),
+ be_str_weak(Matter_EventGenerator)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_PathGenerator.h
similarity index 96%
rename from lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h
rename to lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_PathGenerator.h
index 5457a5159..7ac8fdb3e 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_Generator.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Path_1_PathGenerator.h
@@ -1,4 +1,4 @@
-/* Solidification of Matter_Path_1_Generator.h */
+/* Solidification of Matter_Path_1_PathGenerator.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
@@ -119,10 +119,10 @@ be_local_closure(class_Matter_PathGenerator_is_direct, /* name */
/********************************************************************
-** Solidified function: default_status_error
+** Solidified function: is_finished
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_default_status_error, /* name */
+be_local_closure(class_Matter_PathGenerator_is_finished, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -132,43 +132,16 @@ be_local_closure(class_Matter_PathGenerator_default_status_error, /* name */
0, /* has sup protos */
&be_class_Matter_PathGenerator,
1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(is_direct),
- /* K1 */ be_nested_str_weak(endpoint_found),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K4 */ be_nested_str_weak(cluster_found),
- /* K5 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K6 */ be_nested_str_weak(attribute_found),
- /* K7 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- /* K8 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(pi),
}),
- be_str_weak(default_status_error),
+ be_str_weak(is_finished),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x78060011, // 0002 JMPF R1 #0015
- 0x88040101, // 0003 GETMBR R1 R0 K1
- 0x74060002, // 0004 JMPT R1 #0008
- 0xB8060400, // 0005 GETNGBL R1 K2
- 0x88040303, // 0006 GETMBR R1 R1 K3
- 0x80040200, // 0007 RET 1 R1
- 0x88040104, // 0008 GETMBR R1 R0 K4
- 0x74060002, // 0009 JMPT R1 #000D
- 0xB8060400, // 000A GETNGBL R1 K2
- 0x88040305, // 000B GETMBR R1 R1 K5
- 0x80040200, // 000C RET 1 R1
- 0x88040106, // 000D GETMBR R1 R0 K6
- 0x74060002, // 000E JMPT R1 #0012
- 0xB8060400, // 000F GETNGBL R1 K2
- 0x88040307, // 0010 GETMBR R1 R1 K7
- 0x80040200, // 0011 RET 1 R1
- 0xB8060400, // 0012 GETNGBL R1 K2
- 0x88040308, // 0013 GETMBR R1 R1 K8
- 0x80040200, // 0014 RET 1 R1
- 0x4C040000, // 0015 LDNIL R1
- 0x80040200, // 0016 RET 1 R1
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
})
)
);
@@ -176,10 +149,10 @@ be_local_closure(class_Matter_PathGenerator_default_status_error, /* name */
/********************************************************************
-** Solidified function: next
+** Solidified function: next_attribute
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_next, /* name */
+be_local_closure(class_Matter_PathGenerator_next_attribute, /* name */
be_nested_proto(
4, /* nstack */
1, /* argc */
@@ -210,9 +183,9 @@ be_local_closure(class_Matter_PathGenerator_next, /* name */
/* K17 */ be_nested_str_weak(path_in_endpoint),
/* K18 */ be_nested_str_weak(path_in_cluster),
/* K19 */ be_nested_str_weak(path_in_attribute),
- /* K20 */ be_nested_str_weak(default_status_error),
+ /* K20 */ be_nested_str_weak(_default_status_error),
}),
- be_str_weak(next),
+ be_str_weak(next_attribute),
&be_const_str_solidified,
( &(const binstruction[95]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
@@ -392,10 +365,10 @@ be_local_closure(class_Matter_PathGenerator__next_cluster, /* name */
/********************************************************************
-** Solidified function: finished
+** Solidified function: _default_status_error
********************************************************************/
extern const bclass be_class_Matter_PathGenerator;
-be_local_closure(class_Matter_PathGenerator_finished, /* name */
+be_local_closure(class_Matter_PathGenerator__default_status_error, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -405,16 +378,43 @@ be_local_closure(class_Matter_PathGenerator_finished, /* name */
0, /* has sup protos */
&be_class_Matter_PathGenerator,
1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(pi),
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(is_direct),
+ /* K1 */ be_nested_str_weak(endpoint_found),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K4 */ be_nested_str_weak(cluster_found),
+ /* K5 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K6 */ be_nested_str_weak(attribute_found),
+ /* K7 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ /* K8 */ be_nested_str_weak(UNREPORTABLE_ATTRIBUTE),
}),
- be_str_weak(finished),
+ be_str_weak(_default_status_error),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x50080000, // 0001 LDBOOL R2 0 0
- 0x20040202, // 0002 NE R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
+ ( &(const binstruction[23]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x78060011, // 0002 JMPF R1 #0015
+ 0x88040101, // 0003 GETMBR R1 R0 K1
+ 0x74060002, // 0004 JMPT R1 #0008
+ 0xB8060400, // 0005 GETNGBL R1 K2
+ 0x88040303, // 0006 GETMBR R1 R1 K3
+ 0x80040200, // 0007 RET 1 R1
+ 0x88040104, // 0008 GETMBR R1 R0 K4
+ 0x74060002, // 0009 JMPT R1 #000D
+ 0xB8060400, // 000A GETNGBL R1 K2
+ 0x88040305, // 000B GETMBR R1 R1 K5
+ 0x80040200, // 000C RET 1 R1
+ 0x88040106, // 000D GETMBR R1 R0 K6
+ 0x74060002, // 000E JMPT R1 #0012
+ 0xB8060400, // 000F GETNGBL R1 K2
+ 0x88040307, // 0010 GETMBR R1 R1 K7
+ 0x80040200, // 0011 RET 1 R1
+ 0xB8060400, // 0012 GETNGBL R1 K2
+ 0x88040308, // 0013 GETMBR R1 R1 K8
+ 0x80040200, // 0014 RET 1 R1
+ 0x4C040000, // 0015 LDNIL R1
+ 0x80040200, // 0016 RET 1 R1
})
)
);
@@ -699,9 +699,9 @@ be_local_class(Matter_PathGenerator,
{ be_const_key_weak(path_in_endpoint, -1), be_const_var(1) },
{ be_const_key_weak(path_in_cluster, -1), be_const_var(2) },
{ be_const_key_weak(get_pi, -1), be_const_closure(class_Matter_PathGenerator_get_pi_closure) },
- { be_const_key_weak(is_direct, 22), be_const_closure(class_Matter_PathGenerator_is_direct_closure) },
- { be_const_key_weak(default_status_error, 9), be_const_closure(class_Matter_PathGenerator_default_status_error_closure) },
- { be_const_key_weak(next, -1), be_const_closure(class_Matter_PathGenerator_next_closure) },
+ { be_const_key_weak(is_direct, 9), be_const_closure(class_Matter_PathGenerator_is_direct_closure) },
+ { be_const_key_weak(is_finished, -1), be_const_closure(class_Matter_PathGenerator_is_finished_closure) },
+ { be_const_key_weak(next_attribute, 22), be_const_closure(class_Matter_PathGenerator_next_attribute_closure) },
{ be_const_key_weak(cluster_found, 17), be_const_var(10) },
{ be_const_key_weak(endpoint_found, 6), be_const_var(9) },
{ be_const_key_weak(_next_attribute, -1), be_const_closure(class_Matter_PathGenerator__next_attribute_closure) },
@@ -711,7 +711,7 @@ be_local_class(Matter_PathGenerator,
{ be_const_key_weak(path_concrete, -1), be_const_var(12) },
{ be_const_key_weak(clusters, -1), be_const_var(8) },
{ be_const_key_weak(path_in_fabric_filtered, -1), be_const_var(4) },
- { be_const_key_weak(finished, -1), be_const_closure(class_Matter_PathGenerator_finished_closure) },
+ { be_const_key_weak(_default_status_error, -1), be_const_closure(class_Matter_PathGenerator__default_status_error_closure) },
{ be_const_key_weak(attribute_found, 12), be_const_var(11) },
{ be_const_key_weak(_next_endpoint, -1), be_const_closure(class_Matter_PathGenerator__next_endpoint_closure) },
{ be_const_key_weak(path_in_attribute, -1), be_const_var(3) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
index 966d14ab0..335528db8 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_0.h
@@ -286,169 +286,36 @@ be_local_closure(class_Matter_Plugin_every_250ms, /* name */
extern const bclass be_class_Matter_Plugin;
be_local_closure(class_Matter_Plugin_publish_event, /* name */
be_nested_proto(
- 20, /* nstack */
- 5, /* argc */
+ 17, /* nstack */
+ 7, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Plugin,
1, /* has constants */
- ( &(const bvalue[36]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(EventDataIB),
- /* K2 */ be_nested_str_weak(EventPathIB),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(events),
+ /* K2 */ be_nested_str_weak(publish_event),
/* K3 */ be_nested_str_weak(endpoint),
- /* K4 */ be_nested_str_weak(cluster),
- /* K5 */ be_nested_str_weak(event),
- /* K6 */ be_nested_str_weak(path),
- /* K7 */ be_nested_str_weak(priority),
- /* K8 */ be_nested_str_weak(event_number),
- /* K9 */ be_nested_str_weak(device),
- /* K10 */ be_nested_str_weak(events),
- /* K11 */ be_nested_str_weak(get_next_event_no),
- /* K12 */ be_nested_str_weak(epoch_timestamp),
- /* K13 */ be_nested_str_weak(tasmota),
- /* K14 */ be_nested_str_weak(rtc),
- /* K15 */ be_nested_str_weak(utc),
- /* K16 */ be_const_int(1700000000),
- /* K17 */ be_nested_str_weak(data),
- /* K18 */ be_nested_str_weak(loglevel),
- /* K19 */ be_const_int(3),
- /* K20 */ be_const_int(0),
- /* K21 */ be_nested_str_weak(val),
- /* K22 */ be_nested_str_weak(_X25i_X2E_X25i_X2E_X25i_X2E_X25i),
- /* K23 */ be_const_int(2),
- /* K24 */ be_nested_str_weak(CRIT_X20_X20),
- /* K25 */ be_const_int(1),
- /* K26 */ be_nested_str_weak(INFO_X20_X20),
- /* K27 */ be_nested_str_weak(DEBUG_X20),
- /* K28 */ be_nested_str_weak(get_event_name),
- /* K29 */ be_nested_str_weak(_X28),
- /* K30 */ be_nested_str_weak(_X29_X20),
- /* K31 */ be_nested_str_weak(),
- /* K32 */ be_nested_str_weak(log),
- /* K33 */ be_nested_str_weak(MTR_X3A_X20_X2BAdd_Event_X20_X28_X25s_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X20_X25s_X2D_X20_X25s),
- /* K34 */ be_nested_str_weak(MTR_X3A_X20Publishing_X20event_X20_X25s),
- /* K35 */ be_nested_str_weak(queue_event),
}),
be_str_weak(publish_event),
&be_const_str_solidified,
- ( &(const binstruction[114]) { /* code */
- 0xB8160000, // 0000 GETNGBL R5 K0
- 0x8C140B01, // 0001 GETMET R5 R5 K1
- 0x7C140200, // 0002 CALL R5 1
- 0xB81A0000, // 0003 GETNGBL R6 K0
- 0x8C180D02, // 0004 GETMET R6 R6 K2
- 0x7C180200, // 0005 CALL R6 1
- 0x881C0103, // 0006 GETMBR R7 R0 K3
- 0x901A0607, // 0007 SETMBR R6 K3 R7
- 0x901A0801, // 0008 SETMBR R6 K4 R1
- 0x901A0A02, // 0009 SETMBR R6 K5 R2
- 0x90160C06, // 000A SETMBR R5 K6 R6
- 0x90160E03, // 000B SETMBR R5 K7 R3
- 0x881C0109, // 000C GETMBR R7 R0 K9
- 0x881C0F0A, // 000D GETMBR R7 R7 K10
- 0x8C1C0F0B, // 000E GETMET R7 R7 K11
- 0x7C1C0200, // 000F CALL R7 1
- 0x90161007, // 0010 SETMBR R5 K8 R7
- 0xB81E1A00, // 0011 GETNGBL R7 K13
- 0x8C1C0F0E, // 0012 GETMET R7 R7 K14
- 0x5824000F, // 0013 LDCONST R9 K15
- 0x7C1C0400, // 0014 CALL R7 2
- 0x90161807, // 0015 SETMBR R5 K12 R7
- 0x881C0B0C, // 0016 GETMBR R7 R5 K12
- 0x141C0F10, // 0017 LT R7 R7 K16
- 0x781E0001, // 0018 JMPF R7 #001B
- 0x4C1C0000, // 0019 LDNIL R7
- 0x90161807, // 001A SETMBR R5 K12 R7
- 0x90162204, // 001B SETMBR R5 K17 R4
- 0xB81E1A00, // 001C GETNGBL R7 K13
- 0x8C1C0F12, // 001D GETMET R7 R7 K18
- 0x58240013, // 001E LDCONST R9 K19
- 0x7C1C0400, // 001F CALL R7 2
- 0x781E003E, // 0020 JMPF R7 #0060
- 0x601C0008, // 0021 GETGBL R7 G8
- 0x88200B11, // 0022 GETMBR R8 R5 K17
- 0x7C1C0200, // 0023 CALL R7 1
- 0x54220027, // 0024 LDINT R8 40
- 0x1C200208, // 0025 EQ R8 R1 R8
- 0x78220015, // 0026 JMPF R8 #003D
- 0x1C200514, // 0027 EQ R8 R2 K20
- 0x78220013, // 0028 JMPF R8 #003D
- 0x88200B11, // 0029 GETMBR R8 R5 K17
- 0x88201115, // 002A GETMBR R8 R8 K21
- 0x60240018, // 002B GETGBL R9 G24
- 0x58280016, // 002C LDCONST R10 K22
- 0x542E0017, // 002D LDINT R11 24
- 0x3C2C100B, // 002E SHR R11 R8 R11
- 0x543200FE, // 002F LDINT R12 255
- 0x2C2C160C, // 0030 AND R11 R11 R12
- 0x5432000F, // 0031 LDINT R12 16
- 0x3C30100C, // 0032 SHR R12 R8 R12
- 0x543600FE, // 0033 LDINT R13 255
- 0x2C30180D, // 0034 AND R12 R12 R13
- 0x54360007, // 0035 LDINT R13 8
- 0x3C34100D, // 0036 SHR R13 R8 R13
- 0x543A00FE, // 0037 LDINT R14 255
- 0x2C341A0E, // 0038 AND R13 R13 R14
- 0x543A00FE, // 0039 LDINT R14 255
- 0x2C38100E, // 003A AND R14 R8 R14
- 0x7C240A00, // 003B CALL R9 5
- 0x5C1C1200, // 003C MOVE R7 R9
- 0x1C200717, // 003D EQ R8 R3 K23
- 0x78220001, // 003E JMPF R8 #0041
- 0x58200018, // 003F LDCONST R8 K24
- 0x70020004, // 0040 JMP #0046
- 0x1C200719, // 0041 EQ R8 R3 K25
- 0x78220001, // 0042 JMPF R8 #0045
- 0x5820001A, // 0043 LDCONST R8 K26
- 0x70020000, // 0044 JMP #0046
- 0x5820001B, // 0045 LDCONST R8 K27
- 0xB8260000, // 0046 GETNGBL R9 K0
- 0x8C24131C, // 0047 GETMET R9 R9 K28
- 0x5C2C0200, // 0048 MOVE R11 R1
- 0x5C300400, // 0049 MOVE R12 R2
- 0x7C240600, // 004A CALL R9 3
- 0x4C280000, // 004B LDNIL R10
- 0x2028120A, // 004C NE R10 R9 R10
- 0x782A0002, // 004D JMPF R10 #0051
- 0x002A3A09, // 004E ADD R10 K29 R9
- 0x0028151E, // 004F ADD R10 R10 K30
- 0x70020000, // 0050 JMP #0052
- 0x5828001F, // 0051 LDCONST R10 K31
- 0x5C241400, // 0052 MOVE R9 R10
- 0xB82A4000, // 0053 GETNGBL R10 K32
- 0x602C0018, // 0054 GETGBL R11 G24
- 0x58300021, // 0055 LDCONST R12 K33
- 0x5C341000, // 0056 MOVE R13 R8
- 0x88380B08, // 0057 GETMBR R14 R5 K8
- 0x883C0D03, // 0058 GETMBR R15 R6 K3
- 0x88400D04, // 0059 GETMBR R16 R6 K4
- 0x88440D05, // 005A GETMBR R17 R6 K5
- 0x5C481200, // 005B MOVE R18 R9
- 0x5C4C0E00, // 005C MOVE R19 R7
- 0x7C2C1000, // 005D CALL R11 8
- 0x58300017, // 005E LDCONST R12 K23
- 0x7C280400, // 005F CALL R10 2
- 0xB81E1A00, // 0060 GETNGBL R7 K13
- 0x8C1C0F12, // 0061 GETMET R7 R7 K18
- 0x54260003, // 0062 LDINT R9 4
- 0x7C1C0400, // 0063 CALL R7 2
- 0x781E0006, // 0064 JMPF R7 #006C
- 0xB81E4000, // 0065 GETNGBL R7 K32
- 0x60200018, // 0066 GETGBL R8 G24
- 0x58240022, // 0067 LDCONST R9 K34
- 0x5C280A00, // 0068 MOVE R10 R5
- 0x7C200400, // 0069 CALL R8 2
- 0x54260003, // 006A LDINT R9 4
- 0x7C1C0400, // 006B CALL R7 2
- 0x881C0109, // 006C GETMBR R7 R0 K9
- 0x881C0F0A, // 006D GETMBR R7 R7 K10
- 0x8C1C0F23, // 006E GETMET R7 R7 K35
- 0x5C240A00, // 006F MOVE R9 R5
- 0x7C1C0400, // 0070 CALL R7 2
- 0x80000000, // 0071 RET 0
+ ( &(const binstruction[13]) { /* code */
+ 0x881C0100, // 0000 GETMBR R7 R0 K0
+ 0x881C0F01, // 0001 GETMBR R7 R7 K1
+ 0x8C1C0F02, // 0002 GETMET R7 R7 K2
+ 0x88240103, // 0003 GETMBR R9 R0 K3
+ 0x5C280200, // 0004 MOVE R10 R1
+ 0x5C2C0400, // 0005 MOVE R11 R2
+ 0x50300200, // 0006 LDBOOL R12 1 0
+ 0x5C340600, // 0007 MOVE R13 R3
+ 0x5C380800, // 0008 MOVE R14 R4
+ 0x5C3C0A00, // 0009 MOVE R15 R5
+ 0x5C400C00, // 000A MOVE R16 R6
+ 0x7C1C1200, // 000B CALL R7 9
+ 0x80000000, // 000C RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index 8fc07b9df..3ffed0e22 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -853,7 +853,7 @@ be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
/* K4 */ be_nested_str_weak(PathGenerator),
/* K5 */ be_nested_str_weak(start),
/* K6 */ be_nested_str_weak(is_direct),
- /* K7 */ be_nested_str_weak(next),
+ /* K7 */ be_nested_str_weak(next_attribute),
/* K8 */ be_nested_str_weak(get_pi),
}),
be_str_weak(process_attribute_expansion),
@@ -907,35 +907,31 @@ be_local_closure(class_Matter_Device_every_250ms, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(every_250ms),
- /* K2 */ be_nested_str_weak(read_sensors_scheduler),
- /* K3 */ be_const_int(0),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_const_int(1),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(every_250ms),
+ /* K4 */ be_const_int(1),
}),
be_str_weak(every_250ms),
&be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040102, // 0003 GETMET R1 R0 K2
- 0x7C040200, // 0004 CALL R1 1
- 0x58040003, // 0005 LDCONST R1 K3
- 0x6008000C, // 0006 GETGBL R2 G12
- 0x880C0104, // 0007 GETMBR R3 R0 K4
- 0x7C080200, // 0008 CALL R2 1
- 0x14080202, // 0009 LT R2 R1 R2
- 0x780A0005, // 000A JMPF R2 #0011
- 0x88080104, // 000B GETMBR R2 R0 K4
- 0x94080401, // 000C GETIDX R2 R2 R1
- 0x8C080501, // 000D GETMET R2 R2 K1
- 0x7C080200, // 000E CALL R2 1
- 0x00040305, // 000F ADD R1 R1 K5
- 0x7001FFF4, // 0010 JMP #0006
- 0x80000000, // 0011 RET 0
+ ( &(const binstruction[15]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x58040001, // 0002 LDCONST R1 K1
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x880C0102, // 0004 GETMBR R3 R0 K2
+ 0x7C080200, // 0005 CALL R2 1
+ 0x14080202, // 0006 LT R2 R1 R2
+ 0x780A0005, // 0007 JMPF R2 #000E
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x94080401, // 0009 GETIDX R2 R2 R1
+ 0x8C080503, // 000A GETMET R2 R2 K3
+ 0x7C080200, // 000B CALL R2 1
+ 0x00040304, // 000C ADD R1 R1 K4
+ 0x7001FFF4, // 000D JMP #0003
+ 0x80000000, // 000E RET 0
})
)
);
@@ -2288,7 +2284,7 @@ be_local_closure(class_Matter_Device_start, /* name */
extern const bclass be_class_Matter_Device;
be_local_closure(class_Matter_Device_every_50ms, /* name */
be_nested_proto(
- 2, /* nstack */
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2296,17 +2292,22 @@ be_local_closure(class_Matter_Device_every_50ms, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
+ ( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_str_weak(tick),
/* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(every_50ms),
}),
be_str_weak(every_50ms),
&be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
+ ( &(const binstruction[ 7]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x00040301, // 0001 ADD R1 R1 K1
0x90020001, // 0002 SETMBR R0 K0 R1
- 0x80000000, // 0003 RET 0
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040303, // 0004 GETMET R1 R1 K3
+ 0x7C040200, // 0005 CALL R1 1
+ 0x80000000, // 0006 RET 0
})
)
);
@@ -5093,17 +5094,18 @@ be_local_closure(class_Matter_Device_every_second, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
+ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(sessions),
/* K1 */ be_nested_str_weak(every_second),
/* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(commissioning_open),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(time_reached),
+ /* K3 */ be_nested_str_weak(events),
+ /* K4 */ be_nested_str_weak(commissioning_open),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(time_reached),
}),
be_str_weak(every_second),
&be_const_str_solidified,
- ( &(const binstruction[18]) { /* code */
+ ( &(const binstruction[21]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x8C040301, // 0001 GETMET R1 R1 K1
0x7C040200, // 0002 CALL R1 1
@@ -5111,17 +5113,20 @@ be_local_closure(class_Matter_Device_every_second, /* name */
0x8C040301, // 0004 GETMET R1 R1 K1
0x7C040200, // 0005 CALL R1 1
0x88040103, // 0006 GETMBR R1 R0 K3
- 0x4C080000, // 0007 LDNIL R2
- 0x20040202, // 0008 NE R1 R1 R2
- 0x78060006, // 0009 JMPF R1 #0011
- 0xB8060800, // 000A GETNGBL R1 K4
- 0x8C040305, // 000B GETMET R1 R1 K5
- 0x880C0103, // 000C GETMBR R3 R0 K3
- 0x7C040400, // 000D CALL R1 2
- 0x78060001, // 000E JMPF R1 #0011
- 0x4C040000, // 000F LDNIL R1
- 0x90020601, // 0010 SETMBR R0 K3 R1
- 0x80000000, // 0011 RET 0
+ 0x8C040301, // 0007 GETMET R1 R1 K1
+ 0x7C040200, // 0008 CALL R1 1
+ 0x88040104, // 0009 GETMBR R1 R0 K4
+ 0x4C080000, // 000A LDNIL R2
+ 0x20040202, // 000B NE R1 R1 R2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0xB8060A00, // 000D GETNGBL R1 K5
+ 0x8C040306, // 000E GETMET R1 R1 K6
+ 0x880C0104, // 000F GETMBR R3 R0 K4
+ 0x7C040400, // 0010 CALL R1 2
+ 0x78060001, // 0011 JMPF R1 #0014
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90020801, // 0013 SETMBR R0 K4 R1
+ 0x80000000, // 0014 RET 0
})
)
);
@@ -6115,23 +6120,23 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
{ be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
{ be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
- { be_const_key_weak(v_illuminance, 15), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(contact, 1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
- { be_const_key_weak(temperature, 27), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(v_illuminance, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(temperature, 29), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
{ be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
{ be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
{ be_const_key_weak(http_occupancy, 6), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
{ be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
{ be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
{ be_const_key_weak(root, -1), be_const_class(be_class_Matter_Plugin_Root) },
{ be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(v_temp, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(v_temp, 20), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
{ be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
- { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
- { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
{ be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
- { be_const_key_weak(light2, 29), be_const_class(be_class_Matter_Plugin_Light2) },
+ { be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
+ { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(light2, 27), be_const_class(be_class_Matter_Plugin_Light2) },
{ be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
{ be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
{ be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
@@ -6142,12 +6147,12 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_rain, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
{ be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
{ be_const_key_weak(http_waterleak, 45), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(contact, 1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
{ be_const_key_weak(airquality, 35), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
{ be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
{ be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_temperature, 20), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(http_temperature, 15), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
{ be_const_key_weak(v_humidity, 12), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
{ be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_tasmota.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_tasmota.ino
index eb87fede7..9a642cea9 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_tasmota.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_tasmota.ino
@@ -183,6 +183,7 @@ extern "C" {
be_map_insert_int(vm, "local", Rtc.local_time);
be_map_insert_int(vm, "restart", Rtc.restart_time);
be_map_insert_int(vm, "timezone", Rtc.time_timezone);
+ be_map_insert_int(vm, "config_time", Settings->cfg_timestamp);
be_pop(vm, 1);
be_return(vm);
}
From 20d02078905a2191e379e669a42e138834ef2738 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 27 Jun 2024 13:30:15 +0200
Subject: [PATCH 095/252] Update changelogs
---
CHANGELOG.md | 6 +++---
RELEASENOTES.md | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f65758c2..048bb2a84 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,10 +9,10 @@ All notable changes to this project will be documented in this file.
- Berry `classof` extended to class methods (#21615)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages (#21574)
- Matter support for Rain sensor (#21633)
-- Matter add internal debug option (#21634)
-- Matter add Fan support (virtual only) (#21637)
+- Matter internal debug option (#21634)
+- Matter Fan support (virtual only) (#21637)
- Matter show event name in logs (#21649)
-- Matter full support of events
+- Matter full support of events (#21698)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index a40a8e135..e2c86e624 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -131,9 +131,10 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
-- Matter add internal debug option [#21634](https://github.com/arendst/Tasmota/issues/21634)
-- Matter add Fan support (virtual only) [#21637](https://github.com/arendst/Tasmota/issues/21637)
+- Matter internal debug option [#21634](https://github.com/arendst/Tasmota/issues/21634)
+- Matter Fan support (virtual only) [#21637](https://github.com/arendst/Tasmota/issues/21637)
- Matter show event name in logs [#21649](https://github.com/arendst/Tasmota/issues/21649)
+- Matter full support of events [#21698](https://github.com/arendst/Tasmota/issues/21698)
### Changed
- ESP8266 platform update from 2024.01.01 to 2024.06.00 [#21668](https://github.com/arendst/Tasmota/issues/21668)
From 178d42c286f9a4f714bd80f58a65145a28502e7a Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 27 Jun 2024 16:50:45 +0200
Subject: [PATCH 096/252] Change ESP32 support for energy margin checks, like
``MaxPower2`` per phase (#21695)
- Add ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
- Bump version v14.1.0.3
---
CHANGELOG.md | 19 +-
RELEASENOTES.md | 5 +-
tasmota/include/tasmota_version.h | 2 +-
tasmota/tasmota_support/support_tasmota.ino | 9 +-
.../xdrv_03_esp32_energy.ino | 422 ++++++++++++------
5 files changed, 310 insertions(+), 147 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 048bb2a84..5b6367ac7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,20 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
-## [14.1.0.2]
+## [14.1.0.3]
+### Added
+- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
+
+### Breaking Changed
+
+### Changed
+- ESP32 support for energy margin checks, like ``MaxPower2`` per phase (#21695)
+
+### Fixed
+
+### Removed
+
+## [14.1.0.2] 20240627
### Added
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Berry `classof` extended to class methods (#21615)
@@ -14,8 +27,6 @@ All notable changes to this project will be documented in this file.
- Matter show event name in logs (#21649)
- Matter full support of events (#21698)
-### Breaking Changed
-
### Changed
- SerialBridge command ``SSerialSend9`` replaced by ``SSerialMode``
- SML replace vars in descriptor and line (#21622)
@@ -37,8 +48,6 @@ All notable changes to this project will be documented in this file.
- Matter resumption final ack (#21673)
- ESP32 allow use of UART0 with enabled USB_CDC_CONSOLE (#21496)
-### Removed
-
## [14.1.0.1] 20240611
### Added
- Berry solidification of `bytes` instances (#21558)
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index e2c86e624..00645d4d8 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -119,11 +119,12 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
[Complete list](BUILDS.md) of available feature and sensors.
-## Changelog v14.1.0.2
+## Changelog v14.1.0.3
### Added
- Support for QMP6988 temperature and pressure sensor
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages [#21574](https://github.com/arendst/Tasmota/issues/21574)
+- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase [#21695](https://github.com/arendst/Tasmota/issues/21695)
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
@@ -148,7 +149,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- SML replace vars in descriptor and line [#21622](https://github.com/arendst/Tasmota/issues/21622)
- NeoPool using temperature as only frequently changing value for NPTeleperiod [#21628](https://github.com/arendst/Tasmota/issues/21628)
- NeoPool make compiler setting available by `user_config_override.h` [#21645](https://github.com/arendst/Tasmota/issues/21645)
-- ESP32 Core3 platform update from 2024.05.13 to 2024.06.10 [#21569](https://github.com/arendst/Tasmota/issues/21569)
+- ESP32 support for energy margin checks, like ``MaxPower2`` per phase [#21695](https://github.com/arendst/Tasmota/issues/21695)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- ESP32 MI32 improve parser [#21648](https://github.com/arendst/Tasmota/issues/21648)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
diff --git a/tasmota/include/tasmota_version.h b/tasmota/include/tasmota_version.h
index ecd3f1dfe..ecf9d54dd 100644
--- a/tasmota/include/tasmota_version.h
+++ b/tasmota/include/tasmota_version.h
@@ -22,6 +22,6 @@
#define TASMOTA_SHA_SHORT // Filled by Github sed
-const uint32_t TASMOTA_VERSION = 0x0E010002; // 14.1.0.2
+const uint32_t TASMOTA_VERSION = 0x0E010003; // 14.1.0.3
#endif // _TASMOTA_VERSION_H_
diff --git a/tasmota/tasmota_support/support_tasmota.ino b/tasmota/tasmota_support/support_tasmota.ino
index 71421ea9c..b614532df 100644
--- a/tasmota/tasmota_support/support_tasmota.ino
+++ b/tasmota/tasmota_support/support_tasmota.ino
@@ -690,6 +690,7 @@ void ExecuteCommandPower(uint32_t device, uint32_t state, uint32_t source)
// state 2 = POWER_TOGGLE = Toggle relay
// state 3 = POWER_BLINK = Blink relay
// state 4 = POWER_BLINK_STOP = Stop blinking relay
+// state 5 = POWER_OFF_FORCE = Relay off even if locked
// state 8 = POWER_OFF_NO_STATE = Relay Off and no publishPowerState
// state 9 = POWER_ON_NO_STATE = Relay On and no publishPowerState
// state 10 = POWER_TOGGLE_NO_STATE = Toggle relay and no publishPowerState
@@ -709,6 +710,12 @@ void ExecuteCommandPower(uint32_t device, uint32_t state, uint32_t source)
}
#endif // USE_SONOFF_IFAN
+ bool force_power_off = false;
+ if (POWER_OFF_FORCE == state) {
+ force_power_off = true;
+ state = POWER_OFF;
+ }
+
bool publish_power = true;
if ((state >= POWER_OFF_NO_STATE) && (state <= POWER_TOGGLE_NO_STATE)) {
state &= 3; // POWER_OFF, POWER_ON or POWER_TOGGLE
@@ -720,7 +727,7 @@ void ExecuteCommandPower(uint32_t device, uint32_t state, uint32_t source)
}
TasmotaGlobal.active_device = device;
- if (bitRead(Settings->power_lock, device -1)) {
+ if (!force_power_off && bitRead(Settings->power_lock, device -1)) {
AddLog(LOG_LEVEL_INFO, PSTR("CMD: Power%d is LOCKED"), device);
state = POWER_SHOW_STATE; // Only show state. Make no change
}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 790fc79a6..3e925642f 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -107,6 +107,23 @@ typedef union {
};
} tEnergyBitfield;
+typedef struct {
+ uint16_t min_voltage; // VoltageLow
+ uint16_t max_voltage; // VoltageHigh
+ uint16_t min_current; // CurrentLow
+ uint16_t max_current; // CurrentHigh
+ uint16_t min_power; // PowerLow
+ uint16_t max_power; // PowerHigh
+ uint16_t max_power_limit; // MaxPowerLimit
+ uint16_t max_power_limit_hold; // MaxPowerLimitHold
+ uint16_t max_power_limit_window; // MaxPowerLimitWindow
+ uint16_t max_power_safe_limit; // MaxSafePowerLimit
+ uint16_t max_power_safe_limit_hold; // MaxSafePowerLimitHold
+ uint16_t max_power_safe_limit_window; // MaxSafePowerLimitWindow
+ uint16_t max_energy; // MaxEnergy
+ uint16_t max_energy_start; // MaxEnergyStart
+} tPhase;
+
typedef struct {
uint32_t crc32; // To detect file changes
uint16_t version; // To detect driver function changes
@@ -134,6 +151,7 @@ typedef struct {
uint16_t tariff[4][2];
tEnergyUsage energy_usage;
+ tPhase phase[ENERGY_MAX_PHASES];
} tEnergySettings;
typedef struct {
@@ -168,8 +186,8 @@ typedef struct {
float daily_sum_export_balanced; // 123.123 kWh
uint16_t power_history[ENERGY_MAX_PHASES][3];
- uint16_t mplh_counter;
- uint16_t mplw_counter;
+ uint16_t mplh_counter[ENERGY_MAX_PHASES];
+ uint16_t mplw_counter[ENERGY_MAX_PHASES];
uint8_t data_valid[ENERGY_MAX_PHASES];
uint8_t phase_count; // Number of phases active
@@ -177,8 +195,9 @@ typedef struct {
uint8_t command_code;
uint8_t power_steady_counter; // Allow for power on stabilization
uint8_t margin_stable;
- uint8_t mplr_counter;
- uint8_t max_energy_state;
+ uint8_t mplr_counter[ENERGY_MAX_PHASES];
+ uint8_t max_energy_state[ENERGY_MAX_PHASES];
+ uint8_t hour;
uint8_t gui_indirect[ENERGY_MAX_PHASES];
uint8_t gui_rotate;
@@ -195,12 +214,12 @@ typedef struct {
bool type_dc;
bool power_on;
- bool min_power_flag;
- bool max_power_flag;
- bool min_voltage_flag;
- bool max_voltage_flag;
- bool min_current_flag;
- bool max_current_flag;
+ bool min_power_flag[ENERGY_MAX_PHASES];
+ bool max_power_flag[ENERGY_MAX_PHASES];
+ bool min_voltage_flag[ENERGY_MAX_PHASES];
+ bool max_voltage_flag[ENERGY_MAX_PHASES];
+ bool min_current_flag[ENERGY_MAX_PHASES];
+ bool max_current_flag[ENERGY_MAX_PHASES];
} tEnergy;
tEnergy *Energy = nullptr;
@@ -286,10 +305,26 @@ void EnergySettingsLoad(bool erase) {
Energy->Settings.voltage_calibration[i] = Settings->energy_voltage_calibration;;
Energy->Settings.current_calibration[i] = Settings->energy_current_calibration;;
Energy->Settings.frequency_calibration[i] = Settings->energy_frequency_calibration;
+ Energy->Settings.phase[i].min_voltage = Settings->energy_min_voltage;
+ Energy->Settings.phase[i].max_voltage = Settings->energy_max_voltage;
+ Energy->Settings.phase[i].min_current = Settings->energy_min_current;
+ Energy->Settings.phase[i].max_current = Settings->energy_max_current;
+ Energy->Settings.phase[i].min_power = Settings->energy_min_power;
+ Energy->Settings.phase[i].max_power = Settings->energy_max_power;
}
Energy->Settings.power_calibration[1] = Settings->energy_power_calibration2;
Energy->Settings.voltage_calibration[1] = Settings->energy_voltage_calibration2;
Energy->Settings.current_calibration[1] = Settings->energy_current_calibration2;
+
+ // Only restore phase 1 for backward compatibility (all power off)
+ Energy->Settings.phase[0].max_power_limit = Settings->energy_max_power_limit;
+ Energy->Settings.phase[0].max_power_limit_hold = Settings->energy_max_power_limit_hold;
+ Energy->Settings.phase[0].max_power_limit_window = Settings->energy_max_power_limit_window;
+ Energy->Settings.phase[0].max_power_safe_limit = Settings->energy_max_power_safe_limit;
+ Energy->Settings.phase[0].max_power_safe_limit_hold = Settings->energy_max_power_safe_limit_hold;
+ Energy->Settings.phase[0].max_power_safe_limit_window = Settings->energy_max_power_safe_limit_window;
+ Energy->Settings.phase[0].max_energy = Settings->energy_max_energy;
+ Energy->Settings.phase[0].max_energy_start = Settings->energy_max_energy_start;
/*
RtcEnergySettings.energy_total_kWh[0] = 0;
RtcEnergySettings.energy_total_kWh[1] = 0;
@@ -654,11 +689,19 @@ void Energy200ms(void) {
}
EnergyUpdateToday();
}
+
if (midnight) {
- Energy->max_energy_state = 3;
+ for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
+ Energy->max_energy_state[phase] = 3;
+ }
}
- if ((RtcTime.hour == Settings->energy_max_energy_start) && (3 == Energy->max_energy_state )) {
- Energy->max_energy_state = 0;
+ if (RtcTime.hour != Energy->hour) {
+ Energy->hour = RtcTime.hour;
+ for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
+ if ((RtcTime.hour == Energy->Settings.phase[phase].max_energy_start) && (3 == Energy->max_energy_state[phase] )) {
+ Energy->max_energy_state[phase] = 0;
+ }
+ }
}
}
@@ -747,86 +790,124 @@ void EnergyMarginCheck(void) {
ResponseAppend_P(PSTR("\"" D_CMND_POWERDELTA "\":%s"), EnergyFmt(power_diff_f, 0));
}
- uint16_t energy_power_u = (uint16_t)(Energy->active_power[0]);
-
- if (Energy->power_on && (Settings->energy_min_power || Settings->energy_max_power || Settings->energy_min_voltage || Settings->energy_max_voltage || Settings->energy_min_current || Settings->energy_max_current)) {
- uint16_t energy_voltage_u = (uint16_t)(Energy->voltage[0]);
- uint16_t energy_current_u = (uint16_t)(Energy->current[0] * 1000);
-
- DEBUG_DRIVER_LOG(PSTR("NRG: W %d, U %d, I %d"), energy_power_u, energy_voltage_u, energy_current_u);
-
+ uint16_t energy_power_u;
+ if (Energy->power_on) {
bool flag;
- if (EnergyMargin(false, Settings->energy_min_power, energy_power_u, flag, Energy->min_power_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_POWERLOW "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- if (EnergyMargin(true, Settings->energy_max_power, energy_power_u, flag, Energy->max_power_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_POWERHIGH "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- if (EnergyMargin(false, Settings->energy_min_voltage, energy_voltage_u, flag, Energy->min_voltage_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGELOW "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- if (EnergyMargin(true, Settings->energy_max_voltage, energy_voltage_u, flag, Energy->max_voltage_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGEHIGH "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- if (EnergyMargin(false, Settings->energy_min_current, energy_current_u, flag, Energy->min_current_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTLOW "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- if (EnergyMargin(true, Settings->energy_max_current, energy_current_u, flag, Energy->max_current_flag)) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTHIGH "\":\"%s\""), (jsonflg)?",":"", GetStateText(flag));
- jsonflg = true;
- }
- }
- if (jsonflg) {
- ResponseJsonEndEnd();
- MqttPublishTele(PSTR(D_RSLT_MARGINS));
- EnergyMqttShow();
- Energy->margin_stable = 3; // Allow 2 seconds to stabilize before reporting
- }
+ for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
+ energy_power_u = (uint16_t)(Energy->active_power[phase]);
+ uint16_t energy_voltage_u = (uint16_t)(Energy->voltage[phase]);
+ uint16_t energy_current_u = (uint16_t)(Energy->current[phase] * 1000);
- // Max Power
- if (Settings->energy_max_power_limit) {
- if (Energy->active_power[0] > Settings->energy_max_power_limit) {
- if (!Energy->mplh_counter) {
- Energy->mplh_counter = Settings->energy_max_power_limit_hold;
- } else {
- Energy->mplh_counter--;
- if (!Energy->mplh_counter) {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- if (!Energy->mplr_counter) {
- Energy->mplr_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
- }
- Energy->mplw_counter = Settings->energy_max_power_limit_window;
+ DEBUG_DRIVER_LOG(PSTR("NRG: W %d, U %d, I %d"), energy_power_u, energy_voltage_u, energy_current_u);
+
+ if (Energy->Settings.phase[phase].min_power) {
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_power, energy_power_u, flag, Energy->min_power_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_POWERLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
+ }
+ }
+ if (Energy->Settings.phase[phase].max_power) {
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_power, energy_power_u, flag, Energy->max_power_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_POWERHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
+ }
+ }
+ if (Energy->Settings.phase[phase].min_voltage) {
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_voltage, energy_voltage_u, flag, Energy->min_voltage_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGELOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
+ }
+ }
+ if (Energy->Settings.phase[phase].max_voltage) {
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_voltage, energy_voltage_u, flag, Energy->max_voltage_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGEHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
+ }
+ }
+ if (Energy->Settings.phase[phase].min_current) {
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_current, energy_current_u, flag, Energy->min_current_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
+ }
+ }
+ if (Energy->Settings.phase[phase].max_current) {
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_current, energy_current_u, flag, Energy->max_current_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
}
}
- else if (TasmotaGlobal.power && (energy_power_u <= Settings->energy_max_power_limit)) {
- Energy->mplh_counter = 0;
- Energy->mplr_counter = 0;
- Energy->mplw_counter = 0;
+ if (jsonflg) {
+ ResponseJsonEndEnd();
+ MqttPublishTele(PSTR(D_RSLT_MARGINS));
+ EnergyMqttShow();
+ Energy->margin_stable = 3; // Allow 2 seconds to stabilize before reporting
}
- if (!TasmotaGlobal.power) {
- if (Energy->mplw_counter) {
- Energy->mplw_counter--;
- } else {
- if (Energy->mplr_counter) {
- Energy->mplr_counter--;
- if (Energy->mplr_counter) {
- ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "\":\"%s\"}"), GetStateText(1));
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
- RestorePower(true, SRC_MAXPOWER);
- } else {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "\":\"%s\"}"), GetStateText(0));
+ }
+
+ // Max Power
+ bool set_all_power = true; // Use all power control for backward compatibility
+ for (uint32_t phase = 1; phase < Energy->phase_count; phase++) {
+ if (Energy->Settings.phase[phase].max_power_limit) {
+ set_all_power = false; // If any other power limit is set use new selected power control
+ break;
+ }
+ }
+ for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
+ if (Energy->Settings.phase[phase].max_power_limit) {
+ energy_power_u = (uint16_t)(Energy->active_power[phase]);
+ bool power_on = (TasmotaGlobal.power & (1 << phase));
+ if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
+ if (!Energy->mplh_counter[phase]) {
+ Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold;
+ } else {
+ Energy->mplh_counter[phase]--;
+ if (!Energy->mplh_counter[phase]) {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
+ if (set_all_power) {
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
+ }
+ if (!Energy->mplr_counter[phase]) {
+ Energy->mplr_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
+ }
+ Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
+ }
+ }
+ }
+ else if (power_on && (energy_power_u <= Energy->Settings.phase[phase].max_power_limit)) {
+ Energy->mplh_counter[phase] = 0;
+ Energy->mplr_counter[phase] = 0;
+ Energy->mplw_counter[phase] = 0;
+ }
+
+ if (!power_on) {
+ if (Energy->mplw_counter[phase]) {
+ Energy->mplw_counter[phase]--;
+ } else {
+ if (Energy->mplr_counter[phase]) {
+ Energy->mplr_counter[phase]--;
+ if (Energy->mplr_counter[phase]) {
+ ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "%d\":\"%s\"}"), phase +1, GetStateText(1));
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
+ if (set_all_power) {
+ RestorePower(true, SRC_MAXPOWER);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_ON, SRC_MAXPOWER);
+ }
+ } else {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "%d\":\"%s\"}"), phase +1, GetStateText(0));
+ MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
+ EnergyMqttShow();
+ if (set_all_power) {
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
+ }
+ }
}
}
}
@@ -834,22 +915,44 @@ void EnergyMarginCheck(void) {
}
// Max Energy
- if (Settings->energy_max_energy) {
- uint16_t energy_daily_u = (uint16_t)(Energy->daily_sum * 1000);
- if (!Energy->max_energy_state && (RtcTime.hour == Settings->energy_max_energy_start)) {
- Energy->max_energy_state = 1;
- ResponseTime_P(PSTR(",\"" D_JSON_ENERGYMONITOR "\":\"%s\"}"), GetStateText(1));
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_ENERGYMONITOR));
- RestorePower(true, SRC_MAXENERGY);
- }
- else if ((1 == Energy->max_energy_state ) && (energy_daily_u >= Settings->energy_max_energy)) {
- Energy->max_energy_state = 2;
- ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%3_f}"), &Energy->daily_sum);
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXENERGY);
+ set_all_power = true; // Use all power control for backward compatibility
+ for (uint32_t phase = 1; phase < Energy->phase_count; phase++) {
+ if (Energy->Settings.phase[phase].max_energy) {
+ set_all_power = false; // If any other max energy is set use new selected power control
+ break;
}
}
+ float daily_sum = Energy->daily_sum;
+ for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
+ if (Energy->Settings.phase[phase].max_energy) {
+ if (!set_all_power) {
+ daily_sum = Energy->daily_kWh[phase];
+ }
+ uint16_t energy_daily_u = (uint16_t)(daily_sum * 1000);
+ if (!Energy->max_energy_state[phase] && (RtcTime.hour == Energy->Settings.phase[phase].max_energy_start)) {
+ Energy->max_energy_state[phase] = 1;
+ ResponseTime_P(PSTR(",\"" D_JSON_ENERGYMONITOR "\":\"%s\"}"), GetStateText(1));
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_ENERGYMONITOR));
+ if (set_all_power) {
+ RestorePower(true, SRC_MAXENERGY);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_ON, SRC_MAXENERGY);
+ }
+ }
+ else if ((1 == Energy->max_energy_state[phase]) && (energy_daily_u >= Energy->Settings.phase[phase].max_energy)) {
+ Energy->max_energy_state[phase] = 2;
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXENERGYREACHED "\":%3_f}"), &daily_sum);
+ MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
+ EnergyMqttShow();
+ if (set_all_power) {
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXENERGY);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXENERGY);
+ }
+ }
+ }
+ }
+
EnergyFmtFree();
}
@@ -1251,13 +1354,34 @@ void CmndEnergyConfig(void) {
void EnergyMarginStatus(void) {
Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":["));
- for (uint32_t i = 0; i < ENERGY_MAX_PHASES; i++) {
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.power_delta[i]);
}
- ResponseAppend_P(PSTR("],\"" D_CMND_POWERLOW "\":%d,\"" D_CMND_POWERHIGH "\":%d,\""
- D_CMND_VOLTAGELOW "\":%d,\"" D_CMND_VOLTAGEHIGH "\":%d,\"" D_CMND_CURRENTLOW "\":%d,\"" D_CMND_CURRENTHIGH "\":%d}}"),
- Settings->energy_min_power, Settings->energy_max_power,
- Settings->energy_min_voltage, Settings->energy_max_voltage, Settings->energy_min_current, Settings->energy_max_current);
+ ResponseAppend_P(PSTR("],\"" D_CMND_POWERLOW "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_power);
+ }
+ ResponseAppend_P(PSTR("],\"" D_CMND_POWERHIGH "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_power);
+ }
+ ResponseAppend_P(PSTR("],\"" D_CMND_VOLTAGELOW "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_voltage);
+ }
+ ResponseAppend_P(PSTR("],\"" D_CMND_VOLTAGEHIGH "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_voltage);
+ }
+ ResponseAppend_P(PSTR("],\"" D_CMND_CURRENTLOW "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_current);
+ }
+ ResponseAppend_P(PSTR("],\"" D_CMND_CURRENTHIGH "\":["));
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_current);
+ }
+ ResponseAppend_P(PSTR("]}}"));
}
void CmndPowerDelta(void) {
@@ -1270,66 +1394,84 @@ void CmndPowerDelta(void) {
}
void CmndPowerLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_min_power = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].min_power = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_power);
}
- ResponseCmndNumber(Settings->energy_min_power);
}
void CmndPowerHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_power = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power);
}
- ResponseCmndNumber(Settings->energy_max_power);
}
void CmndVoltageLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Settings->energy_min_voltage = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].min_voltage = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_voltage);
}
- ResponseCmndNumber(Settings->energy_min_voltage);
}
void CmndVoltageHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Settings->energy_max_voltage = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_voltage = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_voltage);
}
- ResponseCmndNumber(Settings->energy_max_voltage);
}
void CmndCurrentLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Settings->energy_min_current = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].min_current = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_current);
}
- ResponseCmndNumber(Settings->energy_min_current);
}
void CmndCurrentHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Settings->energy_max_current = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_current = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_current);
}
- ResponseCmndNumber(Settings->energy_max_current);
}
void CmndMaxPower(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit);
}
- ResponseCmndNumber(Settings->energy_max_power_limit);
}
void CmndMaxPowerHold(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit_hold = (1 == XdrvMailbox.payload) ? MAX_POWER_HOLD : XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_hold = (1 == XdrvMailbox.payload) ? MAX_POWER_HOLD : XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_hold);
}
- ResponseCmndNumber(Settings->energy_max_power_limit_hold);
}
void CmndMaxPowerWindow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit_window = (1 == XdrvMailbox.payload) ? MAX_POWER_WINDOW : XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_window = (1 == XdrvMailbox.payload) ? MAX_POWER_WINDOW : XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_window);
}
- ResponseCmndNumber(Settings->energy_max_power_limit_window);
}
void CmndSafePower(void) {
@@ -1354,18 +1496,22 @@ void CmndSafePowerWindow(void) {
}
void CmndMaxEnergy(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_energy = XdrvMailbox.payload;
- Energy->max_energy_state = 3;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_energy = XdrvMailbox.payload;
+ Energy->max_energy_state[XdrvMailbox.index -1] = 3;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_energy);
}
- ResponseCmndNumber(Settings->energy_max_energy);
}
void CmndMaxEnergyStart(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 24)) {
- Settings->energy_max_energy_start = XdrvMailbox.payload;
+ if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 24)) {
+ Energy->Settings.phase[XdrvMailbox.index -1].max_energy_start = XdrvMailbox.payload;
+ }
+ ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_energy_start);
}
- ResponseCmndNumber(Settings->energy_max_energy_start);
}
/********************************************************************************************/
From 621f6f59e10ddcfca73da153a3ebd67584c7ce93 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 27 Jun 2024 17:07:08 +0200
Subject: [PATCH 097/252] Fix default power windows
---
tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 3e925642f..2b98d83ca 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -311,6 +311,10 @@ void EnergySettingsLoad(bool erase) {
Energy->Settings.phase[i].max_current = Settings->energy_max_current;
Energy->Settings.phase[i].min_power = Settings->energy_min_power;
Energy->Settings.phase[i].max_power = Settings->energy_max_power;
+ Energy->Settings.phase[i].max_power_limit_hold = MAX_POWER_HOLD;
+ Energy->Settings.phase[i].max_power_limit_window = MAX_POWER_WINDOW;
+ Energy->Settings.phase[i].max_power_safe_limit_hold = SAFE_POWER_HOLD;
+ Energy->Settings.phase[i].max_power_safe_limit_window = SAFE_POWER_WINDOW;
}
Energy->Settings.power_calibration[1] = Settings->energy_power_calibration2;
Energy->Settings.voltage_calibration[1] = Settings->energy_voltage_calibration2;
From 2c03980365f38e326c15c75c96fba0b6f8f81b81 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 27 Jun 2024 23:13:39 +0200
Subject: [PATCH 098/252] Berry `tasmota.rtc("config_time")` (#21703)
---
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5b6367ac7..7fd4a77f4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file.
## [14.1.0.3]
### Added
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
+- Berry `tasmota.rtc("config_time")`
### Breaking Changed
From 3371fde11e1f816c9e7c94f4aa63a210a3ce37f0 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 28 Jun 2024 09:56:55 +0200
Subject: [PATCH 099/252] Update changelogs
---
CHANGELOG.md | 2 +-
RELEASENOTES.md | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7fd4a77f4..c77af5405 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,7 +6,7 @@ All notable changes to this project will be documented in this file.
## [14.1.0.3]
### Added
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
-- Berry `tasmota.rtc("config_time")`
+- Berry `tasmota.rtc("config_time")` (#21698)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 00645d4d8..b668533d7 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -129,6 +129,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
- Berry `classof` extended to class methods [#21615](https://github.com/arendst/Tasmota/issues/21615)
+- Berry `tasmota.rtc("config_time")` [#21698](https://github.com/arendst/Tasmota/issues/21698)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
From 96a45a6dde7b75256562fc6485b47abf240c4ea8 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 28 Jun 2024 11:12:28 +0200
Subject: [PATCH 100/252] Refactor ESP32 energy
---
.../xdrv_03_esp32_energy.ino | 83 +++++++------------
1 file changed, 32 insertions(+), 51 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 2b98d83ca..f00513285 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -114,12 +114,12 @@ typedef struct {
uint16_t max_current; // CurrentHigh
uint16_t min_power; // PowerLow
uint16_t max_power; // PowerHigh
- uint16_t max_power_limit; // MaxPowerLimit
- uint16_t max_power_limit_hold; // MaxPowerLimitHold
- uint16_t max_power_limit_window; // MaxPowerLimitWindow
- uint16_t max_power_safe_limit; // MaxSafePowerLimit
- uint16_t max_power_safe_limit_hold; // MaxSafePowerLimitHold
- uint16_t max_power_safe_limit_window; // MaxSafePowerLimitWindow
+ uint16_t max_power_limit; // MaxPower
+ uint16_t max_power_limit_hold; // MaxPowerHold
+ uint16_t max_power_limit_window; // MaxPowerWindow
+ uint16_t max_power_safe_limit; // SafePower
+ uint16_t max_power_safe_limit_hold; // SafePowerHold
+ uint16_t max_power_safe_limit_window; // SafePowerWindow
uint16_t max_energy; // MaxEnergy
uint16_t max_energy_start; // MaxEnergyStart
} tPhase;
@@ -311,10 +311,10 @@ void EnergySettingsLoad(bool erase) {
Energy->Settings.phase[i].max_current = Settings->energy_max_current;
Energy->Settings.phase[i].min_power = Settings->energy_min_power;
Energy->Settings.phase[i].max_power = Settings->energy_max_power;
- Energy->Settings.phase[i].max_power_limit_hold = MAX_POWER_HOLD;
- Energy->Settings.phase[i].max_power_limit_window = MAX_POWER_WINDOW;
- Energy->Settings.phase[i].max_power_safe_limit_hold = SAFE_POWER_HOLD;
- Energy->Settings.phase[i].max_power_safe_limit_window = SAFE_POWER_WINDOW;
+ Energy->Settings.phase[i].max_power_limit_hold = Settings->energy_max_power_limit_hold;
+ Energy->Settings.phase[i].max_power_limit_window = Settings->energy_max_power_limit_window;
+ Energy->Settings.phase[i].max_power_safe_limit_hold = Settings->energy_max_power_safe_limit_hold;
+ Energy->Settings.phase[i].max_power_safe_limit_window = Settings->energy_max_power_safe_limit_window;
}
Energy->Settings.power_calibration[1] = Settings->energy_power_calibration2;
Energy->Settings.voltage_calibration[1] = Settings->energy_voltage_calibration2;
@@ -322,11 +322,7 @@ void EnergySettingsLoad(bool erase) {
// Only restore phase 1 for backward compatibility (all power off)
Energy->Settings.phase[0].max_power_limit = Settings->energy_max_power_limit;
- Energy->Settings.phase[0].max_power_limit_hold = Settings->energy_max_power_limit_hold;
- Energy->Settings.phase[0].max_power_limit_window = Settings->energy_max_power_limit_window;
Energy->Settings.phase[0].max_power_safe_limit = Settings->energy_max_power_safe_limit;
- Energy->Settings.phase[0].max_power_safe_limit_hold = Settings->energy_max_power_safe_limit_hold;
- Energy->Settings.phase[0].max_power_safe_limit_window = Settings->energy_max_power_safe_limit_window;
Energy->Settings.phase[0].max_energy = Settings->energy_max_energy;
Energy->Settings.phase[0].max_energy_start = Settings->energy_max_energy_start;
/*
@@ -727,10 +723,8 @@ void EnergySaveState(void) {
}
bool EnergyMargin(bool type, uint16_t margin, uint16_t value, bool &flag, bool &save_flag) {
- bool change;
-
- if (!margin) return false;
- change = save_flag;
+ if (!margin) { return false; }
+ bool change = save_flag;
if (type) {
flag = (value > margin);
} else {
@@ -750,6 +744,7 @@ void EnergyMarginCheck(void) {
bool jsonflg = false;
Response_P(PSTR("{\"" D_RSLT_MARGINS "\":{"));
+ // PowerDelta
int16_t power_diff[ENERGY_MAX_PHASES] = { 0 };
for (uint32_t phase = 0; phase < Energy->phase_count; phase++) {
uint16_t active_power = (uint16_t)(Energy->active_power[phase]);
@@ -794,6 +789,7 @@ void EnergyMarginCheck(void) {
ResponseAppend_P(PSTR("\"" D_CMND_POWERDELTA "\":%s"), EnergyFmt(power_diff_f, 0));
}
+ // PowerMargins
uint16_t energy_power_u;
if (Energy->power_on) {
bool flag;
@@ -802,43 +798,29 @@ void EnergyMarginCheck(void) {
uint16_t energy_voltage_u = (uint16_t)(Energy->voltage[phase]);
uint16_t energy_current_u = (uint16_t)(Energy->current[phase] * 1000);
- DEBUG_DRIVER_LOG(PSTR("NRG: W %d, U %d, I %d"), energy_power_u, energy_voltage_u, energy_current_u);
-
- if (Energy->Settings.phase[phase].min_power) {
- if (EnergyMargin(false, Energy->Settings.phase[phase].min_power, energy_power_u, flag, Energy->min_power_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_POWERLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_power, energy_power_u, flag, Energy->min_power_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_POWERLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
- if (Energy->Settings.phase[phase].max_power) {
- if (EnergyMargin(true, Energy->Settings.phase[phase].max_power, energy_power_u, flag, Energy->max_power_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_POWERHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_power, energy_power_u, flag, Energy->max_power_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_POWERHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
- if (Energy->Settings.phase[phase].min_voltage) {
- if (EnergyMargin(false, Energy->Settings.phase[phase].min_voltage, energy_voltage_u, flag, Energy->min_voltage_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGELOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_voltage, energy_voltage_u, flag, Energy->min_voltage_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGELOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
- if (Energy->Settings.phase[phase].max_voltage) {
- if (EnergyMargin(true, Energy->Settings.phase[phase].max_voltage, energy_voltage_u, flag, Energy->max_voltage_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGEHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_voltage, energy_voltage_u, flag, Energy->max_voltage_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_VOLTAGEHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
- if (Energy->Settings.phase[phase].min_current) {
- if (EnergyMargin(false, Energy->Settings.phase[phase].min_current, energy_current_u, flag, Energy->min_current_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(false, Energy->Settings.phase[phase].min_current, energy_current_u, flag, Energy->min_current_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTLOW "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
- if (Energy->Settings.phase[phase].max_current) {
- if (EnergyMargin(true, Energy->Settings.phase[phase].max_current, energy_current_u, flag, Energy->max_current_flag[phase])) {
- ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
- jsonflg = true;
- }
+ if (EnergyMargin(true, Energy->Settings.phase[phase].max_current, energy_current_u, flag, Energy->max_current_flag[phase])) {
+ ResponseAppend_P(PSTR("%s\"" D_CMND_CURRENTHIGH "%d\":\"%s\""), (jsonflg)?",":"", phase +1, GetStateText(flag));
+ jsonflg = true;
}
}
if (jsonflg) {
@@ -887,7 +869,6 @@ void EnergyMarginCheck(void) {
Energy->mplr_counter[phase] = 0;
Energy->mplw_counter[phase] = 0;
}
-
if (!power_on) {
if (Energy->mplw_counter[phase]) {
Energy->mplw_counter[phase]--;
From 271446fd661d4930bf8797f4b229a40a96aa194c Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 28 Jun 2024 14:38:08 +0200
Subject: [PATCH 101/252] Remove obsolete SafePower commands
---
.../xdrv_03_esp32_energy.ino | 31 +------------------
1 file changed, 1 insertion(+), 30 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index f00513285..bf385b6c3 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -62,7 +62,6 @@ const char kEnergyCommands[] PROGMEM = "|" // No prefix
D_CMND_POWERDELTA "|" D_CMND_POWERLOW "|" D_CMND_POWERHIGH "|" D_CMND_VOLTAGELOW "|" D_CMND_VOLTAGEHIGH "|" D_CMND_CURRENTLOW "|" D_CMND_CURRENTHIGH "|"
D_CMND_MAXENERGY "|" D_CMND_MAXENERGYSTART "|"
D_CMND_MAXPOWER "|" D_CMND_MAXPOWERHOLD "|" D_CMND_MAXPOWERWINDOW "|"
- D_CMND_SAFEPOWER "|" D_CMND_SAFEPOWERHOLD "|" D_CMND_SAFEPOWERWINDOW "|"
D_CMND_ENERGYTODAY "|" D_CMND_ENERGYYESTERDAY "|" D_CMND_ENERGYTOTAL "|" D_CMND_ENERGYEXPORTACTIVE "|" D_CMND_ENERGYUSAGE "|" D_CMND_ENERGYEXPORT "|"
D_CMND_TARIFF "|" D_CMND_ENERGYDISPLAY "|" D_CMND_ENERGYCOLS ;
@@ -72,7 +71,6 @@ void (* const EnergyCommand[])(void) PROGMEM = {
&CmndPowerDelta, &CmndPowerLow, &CmndPowerHigh, &CmndVoltageLow, &CmndVoltageHigh, &CmndCurrentLow, &CmndCurrentHigh,
&CmndMaxEnergy, &CmndMaxEnergyStart,
&CmndMaxPower, &CmndMaxPowerHold, &CmndMaxPowerWindow,
- &CmndSafePower, &CmndSafePowerHold, &CmndSafePowerWindow,
&CmndEnergyToday, &CmndEnergyYesterday, &CmndEnergyTotal, &CmndEnergyExportActive, &CmndEnergyUsage, &CmndEnergyExport,
&CmndTariff, &CmndEnergyDisplay, &CmndEnergyCols };
@@ -117,9 +115,6 @@ typedef struct {
uint16_t max_power_limit; // MaxPower
uint16_t max_power_limit_hold; // MaxPowerHold
uint16_t max_power_limit_window; // MaxPowerWindow
- uint16_t max_power_safe_limit; // SafePower
- uint16_t max_power_safe_limit_hold; // SafePowerHold
- uint16_t max_power_safe_limit_window; // SafePowerWindow
uint16_t max_energy; // MaxEnergy
uint16_t max_energy_start; // MaxEnergyStart
} tPhase;
@@ -313,8 +308,7 @@ void EnergySettingsLoad(bool erase) {
Energy->Settings.phase[i].max_power = Settings->energy_max_power;
Energy->Settings.phase[i].max_power_limit_hold = Settings->energy_max_power_limit_hold;
Energy->Settings.phase[i].max_power_limit_window = Settings->energy_max_power_limit_window;
- Energy->Settings.phase[i].max_power_safe_limit_hold = Settings->energy_max_power_safe_limit_hold;
- Energy->Settings.phase[i].max_power_safe_limit_window = Settings->energy_max_power_safe_limit_window;
+ Energy->Settings.phase[i].max_energy_start = Settings->energy_max_energy_start;
}
Energy->Settings.power_calibration[1] = Settings->energy_power_calibration2;
Energy->Settings.voltage_calibration[1] = Settings->energy_voltage_calibration2;
@@ -322,9 +316,7 @@ void EnergySettingsLoad(bool erase) {
// Only restore phase 1 for backward compatibility (all power off)
Energy->Settings.phase[0].max_power_limit = Settings->energy_max_power_limit;
- Energy->Settings.phase[0].max_power_safe_limit = Settings->energy_max_power_safe_limit;
Energy->Settings.phase[0].max_energy = Settings->energy_max_energy;
- Energy->Settings.phase[0].max_energy_start = Settings->energy_max_energy_start;
/*
RtcEnergySettings.energy_total_kWh[0] = 0;
RtcEnergySettings.energy_total_kWh[1] = 0;
@@ -1459,27 +1451,6 @@ void CmndMaxPowerWindow(void) {
}
}
-void CmndSafePower(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_safe_limit = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit);
-}
-
-void CmndSafePowerHold(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_safe_limit_hold = (1 == XdrvMailbox.payload) ? SAFE_POWER_HOLD : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit_hold);
-}
-
-void CmndSafePowerWindow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 1440)) {
- Settings->energy_max_power_safe_limit_window = (1 == XdrvMailbox.payload) ? SAFE_POWER_WINDOW : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit_window);
-}
-
void CmndMaxEnergy(void) {
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
From 8364eca708d9465a95f1ef6612816c35d073a8ce Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 28 Jun 2024 17:51:05 +0200
Subject: [PATCH 102/252] Refactor esp32 energy margins entry
---
.../xdrv_03_esp32_energy.ino | 180 +++++++++---------
1 file changed, 90 insertions(+), 90 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index bf385b6c3..9be180240 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -1329,145 +1329,145 @@ void CmndEnergyConfig(void) {
* USE_ENERGY_MARGIN_DETECTION and USE_ENERGY_POWER_LIMIT
\*********************************************************************************************/
+void ResponseAppendMargin(uint16_t* start, uint32_t step_size = 0);
+void ResponseAppendMargin(uint16_t* start, uint32_t step_size) {
+ if (Energy->phase_count > 1) {
+ if (0 == step_size) {
+ step_size = sizeof(tPhase) / sizeof(uint16_t);
+ }
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%c%d"), (i)?',':'[', start[i * step_size]);
+ }
+ ResponseAppend_P(PSTR("]"));
+ } else {
+ ResponseAppend_P(PSTR("%d"), start[0]);
+ }
+}
+
void EnergyMarginStatus(void) {
+/*
Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":["));
for (uint32_t i = 0; i < Energy->phase_count; i++) {
ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.power_delta[i]);
}
- ResponseAppend_P(PSTR("],\"" D_CMND_POWERLOW "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_power);
+ ResponseAppend_P(PSTR("],\"" D_CMND_POWERLOW "\":"));
+*/
+ Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":"));
+ ResponseAppendMargin(&Energy->Settings.power_delta[0], 1);
+ ResponseAppend_P(PSTR(",\"" D_CMND_POWERLOW "\":"));
+
+ ResponseAppendMargin(&Energy->Settings.phase[0].min_power);
+ ResponseAppend_P(PSTR(",\"" D_CMND_POWERHIGH "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_power);
+ ResponseAppend_P(PSTR(",\"" D_CMND_VOLTAGELOW "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].min_voltage);
+ ResponseAppend_P(PSTR(",\"" D_CMND_VOLTAGEHIGH "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_voltage);
+ ResponseAppend_P(PSTR(",\"" D_CMND_CURRENTLOW "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].min_current);
+ ResponseAppend_P(PSTR(",\"" D_CMND_CURRENTHIGH "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_current);
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXPOWER "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_power_limit);
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXPOWERHOLD "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_power_limit_hold);
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXPOWERWINDOW "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_power_limit_window);
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXENERGY "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_energy);
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXENERGYSTART "\":"));
+ ResponseAppendMargin(&Energy->Settings.phase[0].max_energy_start);
+ ResponseJsonEndEnd();
+}
+
+bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t default_value = 1, uint32_t step_size = 0);
+bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t default_value, uint32_t step_size) {
+ bool value_changed = false;
+ if ((XdrvMailbox.index >= 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
+ if (0 == step_size) {
+ step_size = sizeof(tPhase) / sizeof(uint16_t);
+ }
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= max_value)) {
+ if (0 == XdrvMailbox.index) {
+ // PowerLow0 10
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ start[i * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
+ }
+ } else {
+ // PowerLow 10 = PowerLow1 10 .. PowerLow8 10
+ start[(XdrvMailbox.index -1) * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
+ }
+ value_changed = true;
+ }
+ if (0 == XdrvMailbox.index) {
+ // PowerLow0, PowerLow0 10
+ ResponseCmnd();
+ ResponseAppendMargin(start, step_size);
+ ResponseJsonEnd();
+ } else {
+ // PowerLow = PowerLow1 .. PowerLow8
+ ResponseCmndIdxNumber(start[(XdrvMailbox.index -1) * step_size]);
+ }
}
- ResponseAppend_P(PSTR("],\"" D_CMND_POWERHIGH "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_power);
- }
- ResponseAppend_P(PSTR("],\"" D_CMND_VOLTAGELOW "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_voltage);
- }
- ResponseAppend_P(PSTR("],\"" D_CMND_VOLTAGEHIGH "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_voltage);
- }
- ResponseAppend_P(PSTR("],\"" D_CMND_CURRENTLOW "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].min_current);
- }
- ResponseAppend_P(PSTR("],\"" D_CMND_CURRENTHIGH "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.phase[i].max_current);
- }
- ResponseAppend_P(PSTR("]}}"));
+ return value_changed;
}
void CmndPowerDelta(void) {
+/*
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 32000)) {
Energy->Settings.power_delta[XdrvMailbox.index -1] = XdrvMailbox.payload;
}
ResponseCmndIdxNumber(Energy->Settings.power_delta[XdrvMailbox.index -1]);
}
+*/
+ ResponseCmndEnergyMargin(&Energy->Settings.power_delta[0], 32000, 1, 1);
}
void CmndPowerLow(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].min_power = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_power);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_power, 6000);
}
void CmndPowerHigh(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_power = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power, 6000);
}
void CmndVoltageLow(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Energy->Settings.phase[XdrvMailbox.index -1].min_voltage = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_voltage);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_voltage, 500);
}
void CmndVoltageHigh(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_voltage = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_voltage);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_voltage, 500);
}
void CmndCurrentLow(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].min_current = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].min_current);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_current, 25000);
}
void CmndCurrentHigh(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_current = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_current);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_current, 25000);
}
void CmndMaxPower(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit, 6000);
}
void CmndMaxPowerHold(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_hold = (1 == XdrvMailbox.payload) ? MAX_POWER_HOLD : XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_hold);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit_hold, 6000, MAX_POWER_HOLD);
}
void CmndMaxPowerWindow(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_window = (1 == XdrvMailbox.payload) ? MAX_POWER_WINDOW : XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_power_limit_window);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit_window, 6000, MAX_POWER_WINDOW);
}
void CmndMaxEnergy(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_energy = XdrvMailbox.payload;
- Energy->max_energy_state[XdrvMailbox.index -1] = 3;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_energy);
+ if (ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_energy, 6000)) {
+ Energy->max_energy_state[XdrvMailbox.index -1] = 3;
}
}
void CmndMaxEnergyStart(void) {
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 24)) {
- Energy->Settings.phase[XdrvMailbox.index -1].max_energy_start = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.phase[XdrvMailbox.index -1].max_energy_start);
- }
+ ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_energy_start, 23);
}
/********************************************************************************************/
From 8a0493b659620dbccc72518d8fc1123acd117aac Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 28 Jun 2024 18:04:50 +0200
Subject: [PATCH 103/252] Cleanup esp32 energy
---
.../tasmota_xdrv_driver/xdrv_03_esp32_energy.ino | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 9be180240..32d2e1dc3 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -1345,17 +1345,9 @@ void ResponseAppendMargin(uint16_t* start, uint32_t step_size) {
}
void EnergyMarginStatus(void) {
-/*
- Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":["));
- for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Energy->Settings.power_delta[i]);
- }
- ResponseAppend_P(PSTR("],\"" D_CMND_POWERLOW "\":"));
-*/
Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":"));
ResponseAppendMargin(&Energy->Settings.power_delta[0], 1);
ResponseAppend_P(PSTR(",\"" D_CMND_POWERLOW "\":"));
-
ResponseAppendMargin(&Energy->Settings.phase[0].min_power);
ResponseAppend_P(PSTR(",\"" D_CMND_POWERHIGH "\":"));
ResponseAppendMargin(&Energy->Settings.phase[0].max_power);
@@ -1413,14 +1405,6 @@ bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t defa
}
void CmndPowerDelta(void) {
-/*
- if ((XdrvMailbox.index > 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 32000)) {
- Energy->Settings.power_delta[XdrvMailbox.index -1] = XdrvMailbox.payload;
- }
- ResponseCmndIdxNumber(Energy->Settings.power_delta[XdrvMailbox.index -1]);
- }
-*/
ResponseCmndEnergyMargin(&Energy->Settings.power_delta[0], 32000, 1, 1);
}
From c58607a5b538e3c5ff6d3c4db844a7caa24d4835 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 29 Jun 2024 10:42:21 +0200
Subject: [PATCH 104/252] Berry `math.min()` and `math.max()` (#21705)
---
CHANGELOG.md | 1 +
lib/libesp32/berry/src/be_mathlib.c | 59 +++++++++++++++++++++++++++++
lib/libesp32/berry/tests/math.be | 25 ++++++++++++
3 files changed, 85 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c77af5405..2fb703c71 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
### Added
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
- Berry `tasmota.rtc("config_time")` (#21698)
+- Berry `math.min()` and `math.max()`
### Breaking Changed
diff --git a/lib/libesp32/berry/src/be_mathlib.c b/lib/libesp32/berry/src/be_mathlib.c
index 17fbfe159..0cef918e0 100644
--- a/lib/libesp32/berry/src/be_mathlib.c
+++ b/lib/libesp32/berry/src/be_mathlib.c
@@ -303,6 +303,61 @@ static int m_rand(bvm *vm)
be_return(vm);
}
+/* check that all arguments are either int or real, and return true if at least one is real */
+static int m_check_int_or_has_real(bvm *vm)
+{
+ int argc = be_top(vm);
+ int has_real = 0;
+ for (int i = 1; i <= argc; ++i) {
+ if (be_isreal(vm, i)) {
+ has_real = 1;
+ } else if (!be_isint(vm, i)) {
+ be_raise(vm, "type_error", "arguments must be numbers");
+ }
+ }
+ return has_real;
+}
+
+static int m_min_max(bvm *vm, int is_min) {
+ int argc = be_top(vm);
+ if (argc > 0) {
+ /* see if at least one argument is float, else they are all ints */
+ int has_real = m_check_int_or_has_real(vm);
+ if (has_real) {
+ breal bound = be_toreal(vm, 1);
+ for (int i = 2; i <= argc; ++i) {
+ breal x = be_toreal(vm, i);
+ if (is_min ? (x < bound) : (x > bound)) {
+ bound = x;
+ }
+ }
+ be_pushreal(vm, bound);
+ } else {
+ bint bound = be_toint(vm, 1);
+ for (int i = 2; i <= argc; ++i) {
+ bint x = be_toint(vm, i);
+ if (is_min ? (x < bound) : (x > bound)) {
+ bound = x;
+ }
+ }
+ be_pushint(vm, bound);
+ }
+ be_return(vm);
+ }
+ be_return_nil(vm);
+
+}
+
+int m_min(bvm *vm)
+{
+ return m_min_max(vm, 1);
+}
+
+int m_max(bvm *vm)
+{
+ return m_min_max(vm, 0);
+}
+
#if !BE_USE_PRECOMPILED_OBJECT
be_native_module_attr_table(math) {
be_native_module_function("isnan", m_isnan),
@@ -330,6 +385,8 @@ be_native_module_attr_table(math) {
be_native_module_function("pow", m_pow),
be_native_module_function("srand", m_srand),
be_native_module_function("rand", m_rand),
+ be_native_module_function("min", m_min),
+ be_native_module_function("max", m_max),
be_native_module_real("pi", M_PI),
be_native_module_real("nan", NAN),
be_native_module_real("inf", INFINITY),
@@ -366,6 +423,8 @@ module math (scope: global, depend: BE_USE_MATH_MODULE) {
pow, func(m_pow)
srand, func(m_srand)
rand, func(m_rand)
+ min, func(m_min)
+ max, func(m_max)
pi, real(M_PI)
nan, real(NAN)
inf, real(INFINITY)
diff --git a/lib/libesp32/berry/tests/math.be b/lib/libesp32/berry/tests/math.be
index 6ad8b01c1..9cc39a226 100644
--- a/lib/libesp32/berry/tests/math.be
+++ b/lib/libesp32/berry/tests/math.be
@@ -58,3 +58,28 @@ assert(math.round(-3.6) == -4)
assert(math.round() == 0)
+#- min and max -#
+def assert_error(f, error_type)
+ try
+ f()
+ assert(false, 'unexpected execution flow')
+ except .. as e, m
+ assert(e == error_type)
+ end
+end
+
+assert(math.min() == nil)
+assert(math.min(0) == 0)
+assert(math.min(0,2,10,56) == 0)
+assert(math.min(4, 2, -10, 3) == -10)
+assert(math.min(4, 2) == 2)
+
+# result is int unless one of the parameters is real
+assert(type(math.min(4, 2, -10, 3)) == 'int')
+assert(type(math.min(4, 2, -10.0, 3)) == 'real')
+
+assert(math.min(-3.4, 5) == -3.4)
+
+# test invalid parameters
+assert_error(def () return math.min(4, nil) end, 'type_error')
+assert_error(def () return math.min(4, "", 4.5) end, 'type_error')
From 117eb7995349c3463209bb76c642b775bb534a1e Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 29 Jun 2024 12:27:27 +0200
Subject: [PATCH 105/252] Berry refactor IM to detect failed subscription
heartbeats (#21706)
---
.../berry_matter/src/embedded/Matter_IM.be | 22 +-
.../src/embedded/Matter_IM_Message.be | 169 +-
.../src/solidify/solidified_Matter_IM.h | 65 +-
.../solidify/solidified_Matter_IM_Message.h | 1386 ++++++++---------
4 files changed, 852 insertions(+), 790 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 21de50682..ddb7baeab 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -111,9 +111,13 @@ class Matter_IM
def process_incoming_ack(msg)
# check if there is an exchange_id interested in receiving this
var message = self.find_sendqueue_by_exchangeid(msg.exchange_id)
- # log(format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 4)
+ # log(format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 3)
if message
- return message.ack_received(msg) # dispatch to IM_Message
+ var ret = message.ack_received(msg) # dispatch to IM_Message
+ if message.finished
+ self.remove_sendqueue_by_exchangeid(msg.exchange_id)
+ end
+ return ret
end
return false
end
@@ -137,13 +141,12 @@ class Matter_IM
while idx < size(self.send_queue)
var message = self.send_queue[idx]
- if !message.finish && message.ready
+ if !message.finished && message.ready
message.send_im(responder) # send message
end
- if message.finish
- log("MTR: remove IM message exch="+str(message.resp.exchange_id), 4)
- self.send_queue.remove(idx)
+ if message.finished
+ self.remove_sendqueue_by_exchangeid(message.resp.exchange_id)
else
idx += 1
end
@@ -169,11 +172,12 @@ class Matter_IM
#############################################################
# find in send_queue by exchangeid
#
- def remove_sendqueue_by_exchangeid(exchangeid)
- if exchangeid == nil return end
+ def remove_sendqueue_by_exchangeid(exchange_id)
+ if exchange_id == nil return end
var idx = 0
while idx < size(self.send_queue)
- if self.send_queue[idx].get_exchangeid() == exchangeid
+ if self.send_queue[idx].get_exchangeid() == exchange_id
+ # log(f"MTR: remove IM message exch={exchange_id}", 3)
self.send_queue.remove(idx)
else
idx += 1
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
index 252eeefcf..02305139b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
@@ -38,40 +38,57 @@ class Matter_IM_Message
var expiration # expiration time for the reporting
var resp # response Frame object
var ready # bool: ready to send (true) or wait (false)
- var finish # if true, the message is removed from the queue
+ var finishing # we have sent all packet, just wait for a final Ack
+ var finished # if true, the message is removed from the queue
var data # TLV data of the response (if any)
var last_counter # counter value of last sent packet (to match ack)
+ #################################################################################
# build a response message stub
+ #
+ # Args:
+ # - msg: the message object
+ # - opcode: (int) the Matter opcode of the response
+ # - reliable: (bool) if true, then we send the response as reliable, i.e. we expect a Ack to confirm it was received
def init(msg, opcode, reliable)
self.reset(msg, opcode, reliable)
end
+ #################################################################################
def reset(msg, opcode, reliable)
self.resp = (msg != nil) ? msg.build_response(opcode, reliable) : nil # is nil for spontaneous reports
self.ready = true # by default send immediately
self.expiration = tasmota.millis() + self.MSG_TIMEOUT
self.last_counter = 0 # avoid `nil` value
- self.finish = false
+ self.finishing = false
+ self.finished = false
self.data = nil
end
+ #################################################################################
# the message is being removed due to expiration
def reached_timeout()
+ # log(f"MTR: IM_Message reached_timeout exch={self.resp.exchange_id}", 3)
end
+ #################################################################################
# ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def ack_received(msg)
- # log("MTR: IM_Message ack_received exch="+str(self.resp.exchange_id), 3)
- self.expiration = tasmota.millis() + self.MSG_TIMEOUT # give more time
- return false
+ # log(f"MTR: IM_Message ack_received exch={self.resp.exchange_id} {self.finishing=} {self.finished=}", 3)
+ if self.finishing # if finishing, we are waiting for final Ack before removing from queue
+ self.finished = true # remove exchange
+ else
+ self.expiration = tasmota.millis() + self.MSG_TIMEOUT # else give more time to the timer
+ end
+ return false # return false to indicate that we didn't answer ourselves
end
+ #################################################################################
# Status Report OK received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg)
- # log(format("MTR: IM_Message status_ok_received exch=%i", self.resp.exchange_id), 3)
+ # log(f"MTR: IM_Message status_ok_received exch={self.resp.exchange_id}", 3)
self.expiration = tasmota.millis() + self.MSG_TIMEOUT # give more time
if msg
self.resp = msg.build_response(self.resp.opcode, self.resp.x_flag_r, self.resp) # update packet
@@ -80,34 +97,45 @@ class Matter_IM_Message
return true
end
+ #################################################################################
# we received an ACK error, do any necessary cleaning
+ #
+ # Arg:
+ # - msg: the message received
+ #
+ # No return value
def status_error_received(msg)
end
+ #################################################################################
# get the exchange-id for this message
+ #
+ # No return value
def get_exchangeid()
return self.resp.exchange_id
end
+ #################################################################################
# default responder for data
+ #
+ # This is the main entry point for seding the next response.
+ # This is called only when `ready` is `true`
+ #
+ # Arg:
+ # - responder: instance of MessageHandler to create the response object
def send_im(responder)
- # log(format("MTR: IM_Message send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
- if !self.ready return false end
- # import debug
+ # log(f"MTR: IM_Message send_im exch={self.resp.exchange_id}", 3)
+ # if !self.ready return false end # we're not supposed to be called if ready is false - dead code
var resp = self.resp
- var data_tlv = self.data.to_TLV()
- # matter.profiler.log(str(data_tlv))
- var data_raw = data_tlv.tlv2raw() # payload in cleartext
- # matter.profiler.log(data_raw.tohex())
+ var data_raw = self.data.to_TLV().tlv2raw() # payload in cleartext
resp.encode_frame(data_raw) # payload in cleartext
resp.encrypt()
if tasmota.loglevel(4)
- log(format("MTR: >>: Matter_IM_ReportData_Pull send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
- if !self.ready return false end
var resp = self.resp # response frame object
var data = (self.data != nil) ? self.data : bytes() # bytes() object of the TLV encoded response
self.data = nil # we remove the data that was saved for next packet
var not_full = true # marker used to exit imbricated loops
- var debug = responder.device.debug
+ var debug = responder.device.debug # set debug flag in local variable to ease access below
var data_ev = (self.data_ev != nil) ? self.data_ev : ((self.event_generator_or_arr != nil) ? bytes() : nil) # bytes for events or nil if no event generators
# if event_generator_or_arr != nil then data_ev contains a bytes() object
@@ -305,8 +354,7 @@ class Matter_IM_ReportData_Pull : Matter_IM_Message
ret.more_chunked_messages = (self.data != nil) || (self.data_ev != nil) # we got more data to send
# print(">>>>> send elements before encode")
- var raw_tlv = ret.to_TLV()
- var encoded_tlv = raw_tlv.tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
+ var encoded_tlv = ret.to_TLV().tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
resp.encode_frame(encoded_tlv) # payload in cleartext, pre-allocate max buffer
resp.encrypt()
# log(format("MTR: >>: ReportData_Pull finished",3)
- self.finish = true # finished, remove
+ self.finishing = true # finishing, remove after final Ack
end
end
@@ -337,7 +385,7 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
# var expiration # expiration time for the reporting
# var resp # response Frame object
# var ready # bool: ready to send (true) or wait (false)
- # var finish # if true, the message is removed from the queue
+ # var finished # if true, the message is removed from the queue
# var data # TLV data of the response (if any)
# var last_counter # counter value of last sent packet (to match ack)
# inherited from Matter_IM_ReportData_Pull
@@ -348,6 +396,7 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
var sub # subscription object
var report_data_phase # true during reportdata
+ #################################################################################
def init(message_handler, session, ctx_generator_or_arr, event_generator_or_arr, sub)
super(self).init(nil, ctx_generator_or_arr, event_generator_or_arr) # send msg=nil to avoid creating a reponse
# we need to initiate a new virtual response, because it's a spontaneous message
@@ -359,35 +408,40 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
self.set_suppress_response(false)
end
+ #################################################################################
def reached_timeout()
+ # log(f"MTR: IM_ReportDataSubscribed_Pull reached_timeout()", 3)
self.sub.remove_self()
end
+ #################################################################################
# ack received, confirm the heartbeat
def ack_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed_Pull ack_received sub=%i", self.sub.subscription_id), 3)
+ # log(f"MTR: IM_ReportDataSubscribed_Pull ack_received sub={self.sub.subscription_id}", 3)
super(self).ack_received(msg)
if !self.report_data_phase
# if ack is received while all data is sent, means that it finished without error
if self.sub.is_keep_alive # only if keep-alive, for normal reports, re_arm is called at last StatusReport
self.sub.re_arm() # signal that we can proceed to next sub report
end
- return true # proceed to calling send() which removes the message
+ return false # proceed to calling send() which removes the message
else
return false # do nothing
end
end
+ #################################################################################
# we received an ACK error, remove subscription
def status_error_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed_Pull status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(f"MTR: IM_ReportDataSubscribed_Pull status_error_received sub={self.sub.subscription_id} exch={self.resp.exchange_id}", 3)
self.sub.remove_self()
end
+ #################################################################################
# ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg)
- # log(format("MTR: IM_ReportDataSubscribed_Pull status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(f"MTR: IM_ReportDataSubscribed_Pull status_ok_received sub={self.sub.subscription_id} exch={self.resp.exchange_id}", 3)
if self.report_data_phase
return super(self).status_ok_received(msg)
else
@@ -397,22 +451,22 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
end
end
+ #################################################################################
# returns true if transaction is complete (remove object from queue)
# default responder for data
def send_im(responder)
# log(format("MTR: IM_ReportDataSubscribed_Pull send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
- # log(format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
if !self.ready return false end
if (self.generator_or_arr != nil) || (self.event_generator_or_arr != nil) # do we have still attributes or events to send
if self.report_data_phase
super(self).send_im(responder)
- # log(format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3)
- if !self.finish return end # ReportData needs to continue
+ # log(format("MTR: ReportDataSubscribed::send_im called super finished=%i", self.finished), 3)
+ if !self.finishing return end # ReportData needs to continue
# ReportData is finished
self.report_data_phase = false
self.ready = false
- self.finish = false # while a ReadReport would stop here, we continue for subscription
+ self.finished = false # while a ReadReport would stop here, we continue for subscription
else
# send a simple ACK
var resp = self.resp.build_standalone_ack(false)
@@ -423,7 +477,7 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
end
responder.send_response_frame(resp)
self.last_counter = resp.message_counter
- self.finish = true
+ # self.finished = true
self.sub.re_arm() # signal that we can proceed to next sub report
end
@@ -433,7 +487,7 @@ class Matter_IM_ReportDataSubscribed_Pull : Matter_IM_ReportData_Pull
super(self).send_im(responder)
self.report_data_phase = false
else
- self.finish = true
+ # self.finished = true
self.sub.re_arm() # signal that we can proceed to next sub report
end
end
@@ -451,6 +505,7 @@ matter.IM_ReportDataSubscribed_Pull = Matter_IM_ReportDataSubscribed_Pull
class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData_Pull
var sub # subscription object
+ #################################################################################
def init(message_handler, session, sub)
super(self).init(nil, nil #-no ctx_generator_or_arr-#, nil #-no event_generator_or_arr-#) # send msg=nil to avoid creating a reponse
# we need to initiate a new virtual response, because it's a spontaneous message
@@ -458,40 +513,48 @@ class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData_Pull
#
self.sub = sub
self.set_subscription_id(sub.subscription_id)
- self.set_suppress_response(true)
+ self.set_suppress_response(true) # as per Matter definition, heartbeat requires no StatusReport, only a simple Ack
end
+ #################################################################################
+ # reached_timeout
+ #
+ # The heartbeat was not acked within 5 seconds, and after all retries,
+ # then the controller is not expecting any more answers,
+ # remove the subscription
def reached_timeout()
+ # log(f"MTR: IM_SubscribedHeartbeat reached_timeout()", 3)
self.sub.remove_self()
end
- # ack received, confirm the heartbeat
+ #################################################################################
+ # ack received, confirm the heartbeat and remove the packet from the queue
def ack_received(msg)
- # log(format("MTR: Matter_IM_SubscribedHeartbeat ack_received sub=%i", self.sub.subscription_id), 3)
+ # log(format("MTR: IM_SubscribedHeartbeat ack_received sub=%i", self.sub.subscription_id), 3)
super(self).ack_received(msg)
- self.finish = true
- return true # proceed to calling send() which removes the message
+ return false # no further response
end
+ #################################################################################
# we received an ACK error, remove subscription
def status_error_received(msg)
- # log(format("MTR: Matter_IM_SubscribedHeartbeat status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_SubscribedHeartbeat status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
self.sub.remove_self()
return false # let the caller to the ack
end
+ #################################################################################
# ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg)
- # log(format("MTR: Matter_IM_SubscribedHeartbeat status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
+ # log(format("MTR: IM_SubscribedHeartbeat status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
return false # let the caller to the ack
end
+ #################################################################################
# default responder for data
def send_im(responder)
- # log(format("MTR: Matter_IM_SubscribedHeartbeat send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
- if !self.ready return false end
-
+ # log(format("MTR: IM_SubscribedHeartbeat send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
super(self).send_im(responder)
self.ready = false
end
@@ -510,6 +573,7 @@ class Matter_IM_SubscribeResponse_Pull : Matter_IM_ReportData_Pull
var sub # subscription object
var report_data_phase # true during reportdata
+ #################################################################################
def init(msg, ctx_generator_or_arr, event_generator_or_arr, sub)
super(self).init(msg, ctx_generator_or_arr, event_generator_or_arr)
self.sub = sub
@@ -517,16 +581,16 @@ class Matter_IM_SubscribeResponse_Pull : Matter_IM_ReportData_Pull
self.set_subscription_id(sub.subscription_id)
end
+ #################################################################################
# default responder for data
def send_im(responder)
- # log(format("MTR: Matter_IM_SubscribeResponse send sub=%i ready=%i", self.sub.subscription_id, self.ready ? 1 : 0), 3)
- if !self.ready return false end
+ # log(format("MTR: Matter_IM_SubscribeResponse send sub=%i ready=%i report_data_phase=%s", self.sub.subscription_id, self.ready ? 1 : 0, self.report_data_phase), 3)
if self.report_data_phase
super(self).send_im(responder)
- if self.finish
+ if self.finishing
# finished reporting of data, we still need to send SubscribeResponseMessage after next StatusReport
self.report_data_phase = false
- self.finish = false # we continue to subscribe response
+ self.finishing = false # we continue to subscribe response
end
self.ready = false # wait for Status Report before continuing sending
@@ -543,20 +607,23 @@ class Matter_IM_SubscribeResponse_Pull : Matter_IM_ReportData_Pull
resp.encrypt()
responder.send_response_frame(resp)
self.last_counter = resp.message_counter
- # log(format("MTR: Send SubscribeResponseMessage sub=%i id=%i", self.sub.subscription_id, resp.message_counter), 3)
+ # log(f"MTR: Send SubscribeResponseMessage sub={self.sub.subscription_id} id={resp.message_counter}", 3)
self.sub.re_arm()
- self.finish = true # remove exchange
+ self.finishing = true # remove exchange
end
end
# Status ok received
def status_ok_received(msg)
- # log(format("MTR: IM_SubscribeResponse status_ok_received sub=%i exch=%i ack=%i last_counter=%i", self.sub.subscription_id, self.resp.exchange_id, msg.ack_message_counter ? msg.ack_message_counter : 0 , self.last_counter), 3)
+ # log(format("MTR: IM_SubscribeResponse status_ok_received sub=%i exch=%i ack=%i last_counter=%i finished=%s", self.sub.subscription_id, self.resp.exchange_id, msg.ack_message_counter ? msg.ack_message_counter : 0 , self.last_counter, self.finished), 3)
# once we receive ack, open flow for subscriptions
if tasmota.loglevel(3)
log(format("MTR: >Sub_OK (%6i) sub=%i", msg.session.local_session_id, self.sub.subscription_id), 3)
end
return super(self).status_ok_received(msg)
+ if !self.report_data_phase
+ self.finishing = true
+ end
end
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 4b4dfe583..382d0e1e9 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -78,7 +78,7 @@ be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
extern const bclass be_class_Matter_IM;
be_local_closure(class_Matter_IM_process_incoming_ack, /* name */
be_nested_proto(
- 6, /* nstack */
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -86,24 +86,31 @@ be_local_closure(class_Matter_IM_process_incoming_ack, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(find_sendqueue_by_exchangeid),
/* K1 */ be_nested_str_weak(exchange_id),
/* K2 */ be_nested_str_weak(ack_received),
+ /* K3 */ be_nested_str_weak(finished),
+ /* K4 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
}),
be_str_weak(process_incoming_ack),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
+ ( &(const binstruction[15]) { /* code */
0x8C080100, // 0000 GETMET R2 R0 K0
0x88100301, // 0001 GETMBR R4 R1 K1
0x7C080400, // 0002 CALL R2 2
- 0x780A0003, // 0003 JMPF R2 #0008
+ 0x780A0008, // 0003 JMPF R2 #000D
0x8C0C0502, // 0004 GETMET R3 R2 K2
0x5C140200, // 0005 MOVE R5 R1
0x7C0C0400, // 0006 CALL R3 2
- 0x80040600, // 0007 RET 1 R3
- 0x500C0000, // 0008 LDBOOL R3 0 0
- 0x80040600, // 0009 RET 1 R3
+ 0x88100503, // 0007 GETMBR R4 R2 K3
+ 0x78120002, // 0008 JMPF R4 #000C
+ 0x8C100104, // 0009 GETMET R4 R0 K4
+ 0x88180301, // 000A GETMBR R6 R1 K1
+ 0x7C100400, // 000B CALL R4 2
+ 0x80040600, // 000C RET 1 R3
+ 0x500C0000, // 000D LDBOOL R3 0 0
+ 0x80040600, // 000E RET 1 R3
})
)
);
@@ -1564,28 +1571,26 @@ be_local_closure(class_Matter_IM_send_enqueued, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
+ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(send_queue),
- /* K2 */ be_nested_str_weak(finish),
+ /* K2 */ be_nested_str_weak(finished),
/* K3 */ be_nested_str_weak(ready),
/* K4 */ be_nested_str_weak(send_im),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20remove_X20IM_X20message_X20exch_X3D),
- /* K7 */ be_nested_str_weak(resp),
- /* K8 */ be_nested_str_weak(exchange_id),
- /* K9 */ be_nested_str_weak(remove),
- /* K10 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
+ /* K6 */ be_nested_str_weak(resp),
+ /* K7 */ be_nested_str_weak(exchange_id),
+ /* K8 */ be_const_int(1),
}),
be_str_weak(send_enqueued),
&be_const_str_solidified,
- ( &(const binstruction[33]) { /* code */
+ ( &(const binstruction[25]) { /* code */
0x58080000, // 0000 LDCONST R2 K0
0x600C000C, // 0001 GETGBL R3 G12
0x88100101, // 0002 GETMBR R4 R0 K1
0x7C0C0200, // 0003 CALL R3 1
0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0019, // 0005 JMPF R3 #0020
+ 0x780E0011, // 0005 JMPF R3 #0018
0x880C0101, // 0006 GETMBR R3 R0 K1
0x940C0602, // 0007 GETIDX R3 R3 R2
0x88100702, // 0008 GETMBR R4 R3 K2
@@ -1596,23 +1601,15 @@ be_local_closure(class_Matter_IM_send_enqueued, /* name */
0x5C180200, // 000D MOVE R6 R1
0x7C100400, // 000E CALL R4 2
0x88100702, // 000F GETMBR R4 R3 K2
- 0x7812000C, // 0010 JMPF R4 #001E
- 0xB8120A00, // 0011 GETNGBL R4 K5
- 0x60140008, // 0012 GETGBL R5 G8
- 0x88180707, // 0013 GETMBR R6 R3 K7
- 0x88180D08, // 0014 GETMBR R6 R6 K8
- 0x7C140200, // 0015 CALL R5 1
- 0x00160C05, // 0016 ADD R5 K6 R5
- 0x541A0003, // 0017 LDINT R6 4
- 0x7C100400, // 0018 CALL R4 2
- 0x88100101, // 0019 GETMBR R4 R0 K1
- 0x8C100909, // 001A GETMET R4 R4 K9
- 0x5C180400, // 001B MOVE R6 R2
- 0x7C100400, // 001C CALL R4 2
- 0x70020000, // 001D JMP #001F
- 0x0008050A, // 001E ADD R2 R2 K10
- 0x7001FFE0, // 001F JMP #0001
- 0x80000000, // 0020 RET 0
+ 0x78120004, // 0010 JMPF R4 #0016
+ 0x8C100105, // 0011 GETMET R4 R0 K5
+ 0x88180706, // 0012 GETMBR R6 R3 K6
+ 0x88180D07, // 0013 GETMBR R6 R6 K7
+ 0x7C100400, // 0014 CALL R4 2
+ 0x70020000, // 0015 JMP #0017
+ 0x00080508, // 0016 ADD R2 R2 K8
+ 0x7001FFE8, // 0017 JMP #0001
+ 0x80000000, // 0018 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 1ccdc6e0c..d75db24aa 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -6,6 +6,69 @@
extern const bclass be_class_Matter_IM_Message;
+/********************************************************************
+** Solidified function: reset
+********************************************************************/
+extern const bclass be_class_Matter_IM_Message;
+be_local_closure(class_Matter_IM_Message_reset, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Message,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(resp),
+ /* K1 */ be_nested_str_weak(build_response),
+ /* K2 */ be_nested_str_weak(ready),
+ /* K3 */ be_nested_str_weak(expiration),
+ /* K4 */ be_nested_str_weak(tasmota),
+ /* K5 */ be_nested_str_weak(millis),
+ /* K6 */ be_nested_str_weak(MSG_TIMEOUT),
+ /* K7 */ be_nested_str_weak(last_counter),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(finishing),
+ /* K10 */ be_nested_str_weak(finished),
+ /* K11 */ be_nested_str_weak(data),
+ }),
+ be_str_weak(reset),
+ &be_const_str_solidified,
+ ( &(const binstruction[26]) { /* code */
+ 0x4C100000, // 0000 LDNIL R4
+ 0x20100204, // 0001 NE R4 R1 R4
+ 0x78120004, // 0002 JMPF R4 #0008
+ 0x8C100301, // 0003 GETMET R4 R1 K1
+ 0x5C180400, // 0004 MOVE R6 R2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x7C100600, // 0006 CALL R4 3
+ 0x70020000, // 0007 JMP #0009
+ 0x4C100000, // 0008 LDNIL R4
+ 0x90020004, // 0009 SETMBR R0 K0 R4
+ 0x50100200, // 000A LDBOOL R4 1 0
+ 0x90020404, // 000B SETMBR R0 K2 R4
+ 0xB8120800, // 000C GETNGBL R4 K4
+ 0x8C100905, // 000D GETMET R4 R4 K5
+ 0x7C100200, // 000E CALL R4 1
+ 0x88140106, // 000F GETMBR R5 R0 K6
+ 0x00100805, // 0010 ADD R4 R4 R5
+ 0x90020604, // 0011 SETMBR R0 K3 R4
+ 0x90020F08, // 0012 SETMBR R0 K7 K8
+ 0x50100000, // 0013 LDBOOL R4 0 0
+ 0x90021204, // 0014 SETMBR R0 K9 R4
+ 0x50100000, // 0015 LDBOOL R4 0 0
+ 0x90021404, // 0016 SETMBR R0 K10 R4
+ 0x4C100000, // 0017 LDNIL R4
+ 0x90021604, // 0018 SETMBR R0 K11 R4
+ 0x80000000, // 0019 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: init
********************************************************************/
@@ -38,6 +101,109 @@ be_local_closure(class_Matter_IM_Message_init, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: send_im
+********************************************************************/
+extern const bclass be_class_Matter_IM_Message;
+be_local_closure(class_Matter_IM_Message_send_im, /* name */
+ be_nested_proto(
+ 11, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Message,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(resp),
+ /* K1 */ be_nested_str_weak(data),
+ /* K2 */ be_nested_str_weak(to_TLV),
+ /* K3 */ be_nested_str_weak(tlv2raw),
+ /* K4 */ be_nested_str_weak(encode_frame),
+ /* K5 */ be_nested_str_weak(encrypt),
+ /* K6 */ be_nested_str_weak(tasmota),
+ /* K7 */ be_nested_str_weak(loglevel),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25s_X20exch_X3D_X25s_X20rack_X3D_X25s),
+ /* K10 */ be_nested_str_weak(session),
+ /* K11 */ be_nested_str_weak(local_session_id),
+ /* K12 */ be_nested_str_weak(message_counter),
+ /* K13 */ be_nested_str_weak(exchange_id),
+ /* K14 */ be_nested_str_weak(ack_message_counter),
+ /* K15 */ be_nested_str_weak(send_response_frame),
+ /* K16 */ be_nested_str_weak(last_counter),
+ /* K17 */ be_nested_str_weak(finishing),
+ }),
+ be_str_weak(send_im),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x8C0C0702, // 0002 GETMET R3 R3 K2
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0703, // 0004 GETMET R3 R3 K3
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C100504, // 0006 GETMET R4 R2 K4
+ 0x5C180600, // 0007 MOVE R6 R3
+ 0x7C100400, // 0008 CALL R4 2
+ 0x8C100505, // 0009 GETMET R4 R2 K5
+ 0x7C100200, // 000A CALL R4 1
+ 0xB8120C00, // 000B GETNGBL R4 K6
+ 0x8C100907, // 000C GETMET R4 R4 K7
+ 0x541A0003, // 000D LDINT R6 4
+ 0x7C100400, // 000E CALL R4 2
+ 0x7812000A, // 000F JMPF R4 #001B
+ 0xB8121000, // 0010 GETNGBL R4 K8
+ 0x60140018, // 0011 GETGBL R5 G24
+ 0x58180009, // 0012 LDCONST R6 K9
+ 0x881C050A, // 0013 GETMBR R7 R2 K10
+ 0x881C0F0B, // 0014 GETMBR R7 R7 K11
+ 0x8820050C, // 0015 GETMBR R8 R2 K12
+ 0x8824050D, // 0016 GETMBR R9 R2 K13
+ 0x8828050E, // 0017 GETMBR R10 R2 K14
+ 0x7C140A00, // 0018 CALL R5 5
+ 0x541A0003, // 0019 LDINT R6 4
+ 0x7C100400, // 001A CALL R4 2
+ 0x8C10030F, // 001B GETMET R4 R1 K15
+ 0x5C180400, // 001C MOVE R6 R2
+ 0x7C100400, // 001D CALL R4 2
+ 0x8810050C, // 001E GETMBR R4 R2 K12
+ 0x90022004, // 001F SETMBR R0 K16 R4
+ 0x50100200, // 0020 LDBOOL R4 1 0
+ 0x90022204, // 0021 SETMBR R0 K17 R4
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: status_error_received
+********************************************************************/
+extern const bclass be_class_Matter_IM_Message;
+be_local_closure(class_Matter_IM_Message_status_error_received, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_Message,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(status_error_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 1]) { /* code */
+ 0x80000000, // 0000 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: get_exchangeid
********************************************************************/
@@ -69,12 +235,12 @@ be_local_closure(class_Matter_IM_Message_get_exchangeid, /* name */
/********************************************************************
-** Solidified function: send_im
+** Solidified function: ack_received
********************************************************************/
extern const bclass be_class_Matter_IM_Message;
-be_local_closure(class_Matter_IM_Message_send_im, /* name */
+be_local_closure(class_Matter_IM_Message_ack_received, /* name */
be_nested_proto(
- 12, /* nstack */
+ 4, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -82,154 +248,30 @@ be_local_closure(class_Matter_IM_Message_send_im, /* name */
0, /* has sup protos */
&be_class_Matter_IM_Message,
1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(ready),
- /* K1 */ be_nested_str_weak(resp),
- /* K2 */ be_nested_str_weak(data),
- /* K3 */ be_nested_str_weak(to_TLV),
- /* K4 */ be_nested_str_weak(tlv2raw),
- /* K5 */ be_nested_str_weak(encode_frame),
- /* K6 */ be_nested_str_weak(encrypt),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(loglevel),
- /* K9 */ be_nested_str_weak(log),
- /* K10 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s),
- /* K11 */ be_nested_str_weak(session),
- /* K12 */ be_nested_str_weak(local_session_id),
- /* K13 */ be_nested_str_weak(message_counter),
- /* K14 */ be_nested_str_weak(exchange_id),
- /* K15 */ be_nested_str_weak(ack_message_counter),
- /* K16 */ be_nested_str_weak(send_response_frame),
- /* K17 */ be_nested_str_weak(last_counter),
- /* K18 */ be_nested_str_weak(finish),
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(finishing),
+ /* K1 */ be_nested_str_weak(finished),
+ /* K2 */ be_nested_str_weak(expiration),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(millis),
+ /* K5 */ be_nested_str_weak(MSG_TIMEOUT),
}),
- be_str_weak(send_im),
+ be_str_weak(ack_received),
&be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
+ ( &(const binstruction[13]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0001, // 0001 JMPT R2 #0004
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x80040400, // 0003 RET 1 R2
- 0x88080101, // 0004 GETMBR R2 R0 K1
- 0x880C0102, // 0005 GETMBR R3 R0 K2
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100704, // 0008 GETMET R4 R3 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140505, // 000A GETMET R5 R2 K5
- 0x5C1C0800, // 000B MOVE R7 R4
- 0x7C140400, // 000C CALL R5 2
- 0x8C140506, // 000D GETMET R5 R2 K6
- 0x7C140200, // 000E CALL R5 1
- 0xB8160E00, // 000F GETNGBL R5 K7
- 0x8C140B08, // 0010 GETMET R5 R5 K8
- 0x541E0003, // 0011 LDINT R7 4
- 0x7C140400, // 0012 CALL R5 2
- 0x7816000A, // 0013 JMPF R5 #001F
- 0xB8161200, // 0014 GETNGBL R5 K9
- 0x60180018, // 0015 GETGBL R6 G24
- 0x581C000A, // 0016 LDCONST R7 K10
- 0x8820050B, // 0017 GETMBR R8 R2 K11
- 0x8820110C, // 0018 GETMBR R8 R8 K12
- 0x8824050D, // 0019 GETMBR R9 R2 K13
- 0x8828050E, // 001A GETMBR R10 R2 K14
- 0x882C050F, // 001B GETMBR R11 R2 K15
- 0x7C180A00, // 001C CALL R6 5
- 0x541E0003, // 001D LDINT R7 4
- 0x7C140400, // 001E CALL R5 2
- 0x8C140310, // 001F GETMET R5 R1 K16
- 0x5C1C0400, // 0020 MOVE R7 R2
- 0x7C140400, // 0021 CALL R5 2
- 0x8814050D, // 0022 GETMBR R5 R2 K13
- 0x90022205, // 0023 SETMBR R0 K17 R5
- 0x50140200, // 0024 LDBOOL R5 1 0
- 0x90022405, // 0025 SETMBR R0 K18 R5
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: status_error_received
-********************************************************************/
-extern const bclass be_class_Matter_IM_Message;
-be_local_closure(class_Matter_IM_Message_status_error_received, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Message,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(status_error_received),
- &be_const_str_solidified,
- ( &(const binstruction[ 1]) { /* code */
- 0x80000000, // 0000 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: reset
-********************************************************************/
-extern const bclass be_class_Matter_IM_Message;
-be_local_closure(class_Matter_IM_Message_reset, /* name */
- be_nested_proto(
- 8, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Message,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(resp),
- /* K1 */ be_nested_str_weak(build_response),
- /* K2 */ be_nested_str_weak(ready),
- /* K3 */ be_nested_str_weak(expiration),
- /* K4 */ be_nested_str_weak(tasmota),
- /* K5 */ be_nested_str_weak(millis),
- /* K6 */ be_nested_str_weak(MSG_TIMEOUT),
- /* K7 */ be_nested_str_weak(last_counter),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(finish),
- /* K10 */ be_nested_str_weak(data),
- }),
- be_str_weak(reset),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x4C100000, // 0000 LDNIL R4
- 0x20100204, // 0001 NE R4 R1 R4
- 0x78120004, // 0002 JMPF R4 #0008
- 0x8C100301, // 0003 GETMET R4 R1 K1
- 0x5C180400, // 0004 MOVE R6 R2
- 0x5C1C0600, // 0005 MOVE R7 R3
- 0x7C100600, // 0006 CALL R4 3
- 0x70020000, // 0007 JMP #0009
- 0x4C100000, // 0008 LDNIL R4
- 0x90020004, // 0009 SETMBR R0 K0 R4
- 0x50100200, // 000A LDBOOL R4 1 0
- 0x90020404, // 000B SETMBR R0 K2 R4
- 0xB8120800, // 000C GETNGBL R4 K4
- 0x8C100905, // 000D GETMET R4 R4 K5
- 0x7C100200, // 000E CALL R4 1
- 0x88140106, // 000F GETMBR R5 R0 K6
- 0x00100805, // 0010 ADD R4 R4 R5
- 0x90020604, // 0011 SETMBR R0 K3 R4
- 0x90020F08, // 0012 SETMBR R0 K7 K8
- 0x50100000, // 0013 LDBOOL R4 0 0
- 0x90021204, // 0014 SETMBR R0 K9 R4
- 0x4C100000, // 0015 LDNIL R4
- 0x90021404, // 0016 SETMBR R0 K10 R4
- 0x80000000, // 0017 RET 0
+ 0x780A0002, // 0001 JMPF R2 #0005
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x90020202, // 0003 SETMBR R0 K1 R2
+ 0x70020005, // 0004 JMP #000B
+ 0xB80A0600, // 0005 GETNGBL R2 K3
+ 0x8C080504, // 0006 GETMET R2 R2 K4
+ 0x7C080200, // 0007 CALL R2 1
+ 0x880C0105, // 0008 GETMBR R3 R0 K5
+ 0x00080403, // 0009 ADD R2 R2 R3
+ 0x90020402, // 000A SETMBR R0 K2 R2
+ 0x50080000, // 000B LDBOOL R2 0 0
+ 0x80040400, // 000C RET 1 R2
})
)
);
@@ -314,66 +356,30 @@ be_local_closure(class_Matter_IM_Message_status_ok_received, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: ack_received
-********************************************************************/
-extern const bclass be_class_Matter_IM_Message;
-be_local_closure(class_Matter_IM_Message_ack_received, /* name */
- be_nested_proto(
- 4, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_Message,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(expiration),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(millis),
- /* K3 */ be_nested_str_weak(MSG_TIMEOUT),
- }),
- be_str_weak(ack_received),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xB80A0200, // 0000 GETNGBL R2 K1
- 0x8C080502, // 0001 GETMET R2 R2 K2
- 0x7C080200, // 0002 CALL R2 1
- 0x880C0103, // 0003 GETMBR R3 R0 K3
- 0x00080403, // 0004 ADD R2 R2 R3
- 0x90020002, // 0005 SETMBR R0 K0 R2
- 0x50080000, // 0006 LDBOOL R2 0 0
- 0x80040400, // 0007 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified class: Matter_IM_Message
********************************************************************/
be_local_class(Matter_IM_Message,
- 6,
+ 7,
NULL,
- be_nested_map(15,
+ be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(init, 11), be_const_closure(class_Matter_IM_Message_init_closure) },
- { be_const_key_weak(get_exchangeid, 10), be_const_closure(class_Matter_IM_Message_get_exchangeid_closure) },
- { be_const_key_weak(reset, -1), be_const_closure(class_Matter_IM_Message_reset_closure) },
- { be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_Message_send_im_closure) },
- { be_const_key_weak(status_error_received, -1), be_const_closure(class_Matter_IM_Message_status_error_received_closure) },
- { be_const_key_weak(finish, -1), be_const_var(3) },
- { be_const_key_weak(status_ok_received, 2), be_const_closure(class_Matter_IM_Message_status_ok_received_closure) },
- { be_const_key_weak(last_counter, -1), be_const_var(5) },
+ { be_const_key_weak(reset, 6), be_const_closure(class_Matter_IM_Message_reset_closure) },
+ { be_const_key_weak(last_counter, -1), be_const_var(6) },
+ { be_const_key_weak(send_im, 1), be_const_closure(class_Matter_IM_Message_send_im_closure) },
+ { be_const_key_weak(init, 15), be_const_closure(class_Matter_IM_Message_init_closure) },
+ { be_const_key_weak(status_error_received, 13), be_const_closure(class_Matter_IM_Message_status_error_received_closure) },
+ { be_const_key_weak(data, 9), be_const_var(5) },
+ { be_const_key_weak(get_exchangeid, -1), be_const_closure(class_Matter_IM_Message_get_exchangeid_closure) },
+ { be_const_key_weak(status_ok_received, 12), be_const_closure(class_Matter_IM_Message_status_ok_received_closure) },
+ { be_const_key_weak(ack_received, 7), be_const_closure(class_Matter_IM_Message_ack_received_closure) },
{ be_const_key_weak(reached_timeout, -1), be_const_closure(class_Matter_IM_Message_reached_timeout_closure) },
+ { be_const_key_weak(MSG_TIMEOUT, -1), be_const_int(5000) },
{ be_const_key_weak(resp, -1), be_const_var(1) },
- { be_const_key_weak(data, -1), be_const_var(4) },
{ be_const_key_weak(expiration, -1), be_const_var(0) },
- { be_const_key_weak(ready, 6), be_const_var(2) },
- { be_const_key_weak(MSG_TIMEOUT, 5), be_const_int(5000) },
- { be_const_key_weak(ack_received, -1), be_const_closure(class_Matter_IM_Message_ack_received_closure) },
+ { be_const_key_weak(ready, -1), be_const_var(2) },
+ { be_const_key_weak(finishing, -1), be_const_var(3) },
+ { be_const_key_weak(finished, -1), be_const_var(4) },
})),
be_str_weak(Matter_IM_Message)
);
@@ -629,372 +635,368 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
&be_class_Matter_IM_ReportData_Pull,
1, /* has constants */
( &(const bvalue[51]) { /* constants */
- /* K0 */ be_nested_str_weak(ready),
- /* K1 */ be_nested_str_weak(resp),
- /* K2 */ be_nested_str_weak(data),
- /* K3 */ be_nested_str_weak(device),
- /* K4 */ be_nested_str_weak(debug),
- /* K5 */ be_nested_str_weak(data_ev),
- /* K6 */ be_nested_str_weak(event_generator_or_arr),
- /* K7 */ be_nested_str_weak(generator_or_arr),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(next_attribute),
- /* K10 */ be_nested_str_weak(is_direct),
- /* K11 */ be_nested_str_weak(im),
- /* K12 */ be_nested_str_weak(read_single_attribute_to_bytes),
- /* K13 */ be_nested_str_weak(get_pi),
- /* K14 */ be_nested_str_weak(session),
- /* K15 */ be_nested_str_weak(MAX_MESSAGE),
- /* K16 */ be_nested_str_weak(append),
- /* K17 */ be_nested_str_weak(remove),
- /* K18 */ be_nested_str_weak(next_event),
- /* K19 */ be_nested_str_weak(tasmota),
- /* K20 */ be_nested_str_weak(loglevel),
- /* K21 */ be_const_int(3),
- /* K22 */ be_nested_str_weak(),
- /* K23 */ be_nested_str_weak(data0),
- /* K24 */ be_nested_str_weak(_X20_X2D_X20),
- /* K25 */ be_nested_str_weak(data1),
- /* K26 */ be_nested_str_weak(_X2C_X20),
- /* K27 */ be_nested_str_weak(data2),
- /* K28 */ be_nested_str_weak(log),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X7C_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X25s),
- /* K30 */ be_nested_str_weak(local_session_id),
- /* K31 */ be_nested_str_weak(event_no),
- /* K32 */ be_nested_str_weak(endpoint),
- /* K33 */ be_nested_str_weak(cluster),
- /* K34 */ be_nested_str_weak(event_id),
- /* K35 */ be_nested_str_weak(to_raw_bytes),
- /* K36 */ be_nested_str_weak(matter),
- /* K37 */ be_nested_str_weak(ReportDataMessage),
- /* K38 */ be_nested_str_weak(subscription_id),
- /* K39 */ be_nested_str_weak(suppress_response),
- /* K40 */ be_nested_str_weak(attribute_reports),
- /* K41 */ be_nested_str_weak(event_reports),
- /* K42 */ be_nested_str_weak(more_chunked_messages),
- /* K43 */ be_nested_str_weak(to_TLV),
- /* K44 */ be_nested_str_weak(tlv2raw),
- /* K45 */ be_nested_str_weak(encode_frame),
- /* K46 */ be_nested_str_weak(encrypt),
- /* K47 */ be_nested_str_weak(send_response_frame),
- /* K48 */ be_nested_str_weak(last_counter),
- /* K49 */ be_nested_str_weak(message_counter),
- /* K50 */ be_nested_str_weak(finish),
+ /* K0 */ be_nested_str_weak(resp),
+ /* K1 */ be_nested_str_weak(data),
+ /* K2 */ be_nested_str_weak(device),
+ /* K3 */ be_nested_str_weak(debug),
+ /* K4 */ be_nested_str_weak(data_ev),
+ /* K5 */ be_nested_str_weak(event_generator_or_arr),
+ /* K6 */ be_nested_str_weak(generator_or_arr),
+ /* K7 */ be_const_int(0),
+ /* K8 */ be_nested_str_weak(next_attribute),
+ /* K9 */ be_nested_str_weak(is_direct),
+ /* K10 */ be_nested_str_weak(im),
+ /* K11 */ be_nested_str_weak(read_single_attribute_to_bytes),
+ /* K12 */ be_nested_str_weak(get_pi),
+ /* K13 */ be_nested_str_weak(session),
+ /* K14 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K15 */ be_nested_str_weak(append),
+ /* K16 */ be_nested_str_weak(remove),
+ /* K17 */ be_nested_str_weak(next_event),
+ /* K18 */ be_nested_str_weak(tasmota),
+ /* K19 */ be_nested_str_weak(loglevel),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(),
+ /* K22 */ be_nested_str_weak(data0),
+ /* K23 */ be_nested_str_weak(_X20_X2D_X20),
+ /* K24 */ be_nested_str_weak(data1),
+ /* K25 */ be_nested_str_weak(_X2C_X20),
+ /* K26 */ be_nested_str_weak(data2),
+ /* K27 */ be_nested_str_weak(log),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Event_X28_X256i_X7C_X258s_X29_X20_X5B_X2502X_X5D_X2504X_X2F_X2502X_X25s),
+ /* K29 */ be_nested_str_weak(local_session_id),
+ /* K30 */ be_nested_str_weak(event_no),
+ /* K31 */ be_nested_str_weak(endpoint),
+ /* K32 */ be_nested_str_weak(cluster),
+ /* K33 */ be_nested_str_weak(event_id),
+ /* K34 */ be_nested_str_weak(to_raw_bytes),
+ /* K35 */ be_nested_str_weak(matter),
+ /* K36 */ be_nested_str_weak(ReportDataMessage),
+ /* K37 */ be_nested_str_weak(subscription_id),
+ /* K38 */ be_nested_str_weak(suppress_response),
+ /* K39 */ be_nested_str_weak(attribute_reports),
+ /* K40 */ be_nested_str_weak(event_reports),
+ /* K41 */ be_nested_str_weak(more_chunked_messages),
+ /* K42 */ be_nested_str_weak(to_TLV),
+ /* K43 */ be_nested_str_weak(tlv2raw),
+ /* K44 */ be_nested_str_weak(encode_frame),
+ /* K45 */ be_nested_str_weak(encrypt),
+ /* K46 */ be_nested_str_weak(send_response_frame),
+ /* K47 */ be_nested_str_weak(last_counter),
+ /* K48 */ be_nested_str_weak(message_counter),
+ /* K49 */ be_nested_str_weak(ready),
+ /* K50 */ be_nested_str_weak(finishing),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[311]) { /* code */
+ ( &(const binstruction[307]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0001, // 0001 JMPT R2 #0004
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x80040400, // 0003 RET 1 R2
- 0x88080101, // 0004 GETMBR R2 R0 K1
- 0x880C0102, // 0005 GETMBR R3 R0 K2
- 0x4C100000, // 0006 LDNIL R4
- 0x200C0604, // 0007 NE R3 R3 R4
- 0x780E0001, // 0008 JMPF R3 #000B
- 0x880C0102, // 0009 GETMBR R3 R0 K2
- 0x70020001, // 000A JMP #000D
- 0x600C0015, // 000B GETGBL R3 G21
- 0x7C0C0000, // 000C CALL R3 0
- 0x4C100000, // 000D LDNIL R4
- 0x90020404, // 000E SETMBR R0 K2 R4
- 0x50100200, // 000F LDBOOL R4 1 0
- 0x88140303, // 0010 GETMBR R5 R1 K3
- 0x88140B04, // 0011 GETMBR R5 R5 K4
- 0x88180105, // 0012 GETMBR R6 R0 K5
- 0x4C1C0000, // 0013 LDNIL R7
- 0x20180C07, // 0014 NE R6 R6 R7
- 0x781A0001, // 0015 JMPF R6 #0018
- 0x88180105, // 0016 GETMBR R6 R0 K5
- 0x70020007, // 0017 JMP #0020
- 0x88180106, // 0018 GETMBR R6 R0 K6
- 0x4C1C0000, // 0019 LDNIL R7
- 0x20180C07, // 001A NE R6 R6 R7
- 0x781A0002, // 001B JMPF R6 #001F
- 0x60180015, // 001C GETGBL R6 G21
- 0x7C180000, // 001D CALL R6 0
- 0x70020000, // 001E JMP #0020
- 0x4C180000, // 001F LDNIL R6
- 0x7812004A, // 0020 JMPF R4 #006C
- 0x881C0107, // 0021 GETMBR R7 R0 K7
- 0x4C200000, // 0022 LDNIL R8
- 0x201C0E08, // 0023 NE R7 R7 R8
- 0x781E0046, // 0024 JMPF R7 #006C
- 0x601C000F, // 0025 GETGBL R7 G15
- 0x88200107, // 0026 GETMBR R8 R0 K7
- 0x60240012, // 0027 GETGBL R9 G18
- 0x7C1C0400, // 0028 CALL R7 2
- 0x781E0002, // 0029 JMPF R7 #002D
- 0x881C0107, // 002A GETMBR R7 R0 K7
- 0x941C0F08, // 002B GETIDX R7 R7 K8
- 0x70020000, // 002C JMP #002E
- 0x881C0107, // 002D GETMBR R7 R0 K7
- 0x4C200000, // 002E LDNIL R8
- 0x78120026, // 002F JMPF R4 #0057
+ 0x880C0101, // 0001 GETMBR R3 R0 K1
+ 0x4C100000, // 0002 LDNIL R4
+ 0x200C0604, // 0003 NE R3 R3 R4
+ 0x780E0001, // 0004 JMPF R3 #0007
+ 0x880C0101, // 0005 GETMBR R3 R0 K1
+ 0x70020001, // 0006 JMP #0009
+ 0x600C0015, // 0007 GETGBL R3 G21
+ 0x7C0C0000, // 0008 CALL R3 0
+ 0x4C100000, // 0009 LDNIL R4
+ 0x90020204, // 000A SETMBR R0 K1 R4
+ 0x50100200, // 000B LDBOOL R4 1 0
+ 0x88140302, // 000C GETMBR R5 R1 K2
+ 0x88140B03, // 000D GETMBR R5 R5 K3
+ 0x88180104, // 000E GETMBR R6 R0 K4
+ 0x4C1C0000, // 000F LDNIL R7
+ 0x20180C07, // 0010 NE R6 R6 R7
+ 0x781A0001, // 0011 JMPF R6 #0014
+ 0x88180104, // 0012 GETMBR R6 R0 K4
+ 0x70020007, // 0013 JMP #001C
+ 0x88180105, // 0014 GETMBR R6 R0 K5
+ 0x4C1C0000, // 0015 LDNIL R7
+ 0x20180C07, // 0016 NE R6 R6 R7
+ 0x781A0002, // 0017 JMPF R6 #001B
+ 0x60180015, // 0018 GETGBL R6 G21
+ 0x7C180000, // 0019 CALL R6 0
+ 0x70020000, // 001A JMP #001C
+ 0x4C180000, // 001B LDNIL R6
+ 0x7812004A, // 001C JMPF R4 #0068
+ 0x881C0106, // 001D GETMBR R7 R0 K6
+ 0x4C200000, // 001E LDNIL R8
+ 0x201C0E08, // 001F NE R7 R7 R8
+ 0x781E0046, // 0020 JMPF R7 #0068
+ 0x601C000F, // 0021 GETGBL R7 G15
+ 0x88200106, // 0022 GETMBR R8 R0 K6
+ 0x60240012, // 0023 GETGBL R9 G18
+ 0x7C1C0400, // 0024 CALL R7 2
+ 0x781E0002, // 0025 JMPF R7 #0029
+ 0x881C0106, // 0026 GETMBR R7 R0 K6
+ 0x941C0F07, // 0027 GETIDX R7 R7 K7
+ 0x70020000, // 0028 JMP #002A
+ 0x881C0106, // 0029 GETMBR R7 R0 K6
+ 0x4C200000, // 002A LDNIL R8
+ 0x78120026, // 002B JMPF R4 #0053
+ 0x8C240F08, // 002C GETMET R9 R7 K8
+ 0x7C240200, // 002D CALL R9 1
+ 0x5C201200, // 002E MOVE R8 R9
+ 0x78260022, // 002F JMPF R9 #0053
0x8C240F09, // 0030 GETMET R9 R7 K9
0x7C240200, // 0031 CALL R9 1
- 0x5C201200, // 0032 MOVE R8 R9
- 0x78260022, // 0033 JMPF R9 #0057
- 0x8C240F0A, // 0034 GETMET R9 R7 K10
- 0x7C240200, // 0035 CALL R9 1
- 0x74260001, // 0036 JMPT R9 #0039
- 0x74160000, // 0037 JMPT R5 #0039
- 0x50240001, // 0038 LDBOOL R9 0 1
- 0x50240200, // 0039 LDBOOL R9 1 0
- 0x8828030B, // 003A GETMBR R10 R1 K11
- 0x8C28150C, // 003B GETMET R10 R10 K12
- 0x8C300F0D, // 003C GETMET R12 R7 K13
- 0x7C300200, // 003D CALL R12 1
- 0x5C341000, // 003E MOVE R13 R8
- 0x8838050E, // 003F GETMBR R14 R2 K14
- 0x5C3C1200, // 0040 MOVE R15 R9
- 0x7C280A00, // 0041 CALL R10 5
- 0x4C2C0000, // 0042 LDNIL R11
- 0x1C2C140B, // 0043 EQ R11 R10 R11
- 0x782E0000, // 0044 JMPF R11 #0046
- 0x7001FFE8, // 0045 JMP #002F
- 0x602C000C, // 0046 GETGBL R11 G12
- 0x5C300600, // 0047 MOVE R12 R3
- 0x7C2C0200, // 0048 CALL R11 1
- 0x6030000C, // 0049 GETGBL R12 G12
- 0x5C341400, // 004A MOVE R13 R10
- 0x7C300200, // 004B CALL R12 1
- 0x002C160C, // 004C ADD R11 R11 R12
- 0x8830010F, // 004D GETMBR R12 R0 K15
- 0x242C160C, // 004E GT R11 R11 R12
- 0x782E0002, // 004F JMPF R11 #0053
- 0x9002040A, // 0050 SETMBR R0 K2 R10
- 0x50100000, // 0051 LDBOOL R4 0 0
- 0x70020002, // 0052 JMP #0056
- 0x8C2C0710, // 0053 GETMET R11 R3 K16
- 0x5C341400, // 0054 MOVE R13 R10
- 0x7C2C0400, // 0055 CALL R11 2
- 0x7001FFD7, // 0056 JMP #002F
- 0x78120012, // 0057 JMPF R4 #006B
- 0x6024000F, // 0058 GETGBL R9 G15
- 0x88280107, // 0059 GETMBR R10 R0 K7
- 0x602C0012, // 005A GETGBL R11 G18
- 0x7C240400, // 005B CALL R9 2
- 0x7826000B, // 005C JMPF R9 #0069
- 0x88240107, // 005D GETMBR R9 R0 K7
- 0x8C241311, // 005E GETMET R9 R9 K17
- 0x582C0008, // 005F LDCONST R11 K8
- 0x7C240400, // 0060 CALL R9 2
- 0x6024000C, // 0061 GETGBL R9 G12
- 0x88280107, // 0062 GETMBR R10 R0 K7
- 0x7C240200, // 0063 CALL R9 1
- 0x1C241308, // 0064 EQ R9 R9 K8
- 0x78260001, // 0065 JMPF R9 #0068
- 0x4C240000, // 0066 LDNIL R9
- 0x90020E09, // 0067 SETMBR R0 K7 R9
- 0x70020001, // 0068 JMP #006B
- 0x4C240000, // 0069 LDNIL R9
- 0x90020E09, // 006A SETMBR R0 K7 R9
- 0x7001FFB3, // 006B JMP #0020
- 0x78120017, // 006C JMPF R4 #0085
- 0x881C0105, // 006D GETMBR R7 R0 K5
- 0x4C200000, // 006E LDNIL R8
- 0x201C0E08, // 006F NE R7 R7 R8
- 0x781E0013, // 0070 JMPF R7 #0085
- 0x601C000C, // 0071 GETGBL R7 G12
- 0x88200105, // 0072 GETMBR R8 R0 K5
- 0x7C1C0200, // 0073 CALL R7 1
- 0x241C0F08, // 0074 GT R7 R7 K8
- 0x781E000E, // 0075 JMPF R7 #0085
- 0x601C000C, // 0076 GETGBL R7 G12
- 0x5C200600, // 0077 MOVE R8 R3
- 0x7C1C0200, // 0078 CALL R7 1
- 0x6020000C, // 0079 GETGBL R8 G12
- 0x88240105, // 007A GETMBR R9 R0 K5
- 0x7C200200, // 007B CALL R8 1
- 0x001C0E08, // 007C ADD R7 R7 R8
- 0x8820010F, // 007D GETMBR R8 R0 K15
- 0x241C0E08, // 007E GT R7 R7 R8
- 0x781E0002, // 007F JMPF R7 #0083
- 0x50100000, // 0080 LDBOOL R4 0 0
- 0x4C180000, // 0081 LDNIL R6
- 0x70020001, // 0082 JMP #0085
- 0x4C1C0000, // 0083 LDNIL R7
- 0x90020A07, // 0084 SETMBR R0 K5 R7
- 0x7812006D, // 0085 JMPF R4 #00F4
- 0x881C0106, // 0086 GETMBR R7 R0 K6
- 0x4C200000, // 0087 LDNIL R8
- 0x201C0E08, // 0088 NE R7 R7 R8
- 0x781E0069, // 0089 JMPF R7 #00F4
- 0x601C000F, // 008A GETGBL R7 G15
- 0x88200106, // 008B GETMBR R8 R0 K6
- 0x60240012, // 008C GETGBL R9 G18
- 0x7C1C0400, // 008D CALL R7 2
- 0x781E0002, // 008E JMPF R7 #0092
- 0x881C0106, // 008F GETMBR R7 R0 K6
- 0x941C0F08, // 0090 GETIDX R7 R7 K8
- 0x70020000, // 0091 JMP #0093
- 0x881C0106, // 0092 GETMBR R7 R0 K6
- 0x4C200000, // 0093 LDNIL R8
- 0x78120049, // 0094 JMPF R4 #00DF
- 0x8C240F12, // 0095 GETMET R9 R7 K18
- 0x7C240200, // 0096 CALL R9 1
- 0x5C201200, // 0097 MOVE R8 R9
- 0x78260045, // 0098 JMPF R9 #00DF
- 0x7816002D, // 0099 JMPF R5 #00C8
- 0xB8262600, // 009A GETNGBL R9 K19
- 0x8C241314, // 009B GETMET R9 R9 K20
- 0x582C0015, // 009C LDCONST R11 K21
- 0x7C240400, // 009D CALL R9 2
- 0x78260028, // 009E JMPF R9 #00C8
- 0x58240016, // 009F LDCONST R9 K22
- 0x88281117, // 00A0 GETMBR R10 R8 K23
- 0x4C2C0000, // 00A1 LDNIL R11
- 0x2028140B, // 00A2 NE R10 R10 R11
- 0x782A0004, // 00A3 JMPF R10 #00A9
- 0x60280008, // 00A4 GETGBL R10 G8
- 0x882C1117, // 00A5 GETMBR R11 R8 K23
- 0x7C280200, // 00A6 CALL R10 1
- 0x002A300A, // 00A7 ADD R10 K24 R10
- 0x5C241400, // 00A8 MOVE R9 R10
- 0x88281119, // 00A9 GETMBR R10 R8 K25
- 0x4C2C0000, // 00AA LDNIL R11
- 0x2028140B, // 00AB NE R10 R10 R11
- 0x782A0004, // 00AC JMPF R10 #00B2
- 0x60280008, // 00AD GETGBL R10 G8
- 0x882C1119, // 00AE GETMBR R11 R8 K25
- 0x7C280200, // 00AF CALL R10 1
- 0x002A340A, // 00B0 ADD R10 K26 R10
- 0x0024120A, // 00B1 ADD R9 R9 R10
- 0x8828111B, // 00B2 GETMBR R10 R8 K27
- 0x4C2C0000, // 00B3 LDNIL R11
- 0x2028140B, // 00B4 NE R10 R10 R11
- 0x782A0004, // 00B5 JMPF R10 #00BB
- 0x60280008, // 00B6 GETGBL R10 G8
- 0x882C111B, // 00B7 GETMBR R11 R8 K27
- 0x7C280200, // 00B8 CALL R10 1
- 0x002A340A, // 00B9 ADD R10 K26 R10
- 0x0024120A, // 00BA ADD R9 R9 R10
- 0xB82A3800, // 00BB GETNGBL R10 K28
- 0x602C0018, // 00BC GETGBL R11 G24
- 0x5830001D, // 00BD LDCONST R12 K29
- 0x8834050E, // 00BE GETMBR R13 R2 K14
- 0x88341B1E, // 00BF GETMBR R13 R13 K30
- 0x8838111F, // 00C0 GETMBR R14 R8 K31
- 0x883C1120, // 00C1 GETMBR R15 R8 K32
- 0x88401121, // 00C2 GETMBR R16 R8 K33
- 0x88441122, // 00C3 GETMBR R17 R8 K34
- 0x5C481200, // 00C4 MOVE R18 R9
- 0x7C2C0E00, // 00C5 CALL R11 7
- 0x58300015, // 00C6 LDCONST R12 K21
- 0x7C280400, // 00C7 CALL R10 2
- 0x8C241123, // 00C8 GETMET R9 R8 K35
- 0x7C240200, // 00C9 CALL R9 1
- 0x6028000C, // 00CA GETGBL R10 G12
- 0x5C2C0600, // 00CB MOVE R11 R3
- 0x7C280200, // 00CC CALL R10 1
+ 0x74260001, // 0032 JMPT R9 #0035
+ 0x74160000, // 0033 JMPT R5 #0035
+ 0x50240001, // 0034 LDBOOL R9 0 1
+ 0x50240200, // 0035 LDBOOL R9 1 0
+ 0x8828030A, // 0036 GETMBR R10 R1 K10
+ 0x8C28150B, // 0037 GETMET R10 R10 K11
+ 0x8C300F0C, // 0038 GETMET R12 R7 K12
+ 0x7C300200, // 0039 CALL R12 1
+ 0x5C341000, // 003A MOVE R13 R8
+ 0x8838050D, // 003B GETMBR R14 R2 K13
+ 0x5C3C1200, // 003C MOVE R15 R9
+ 0x7C280A00, // 003D CALL R10 5
+ 0x4C2C0000, // 003E LDNIL R11
+ 0x1C2C140B, // 003F EQ R11 R10 R11
+ 0x782E0000, // 0040 JMPF R11 #0042
+ 0x7001FFE8, // 0041 JMP #002B
+ 0x602C000C, // 0042 GETGBL R11 G12
+ 0x5C300600, // 0043 MOVE R12 R3
+ 0x7C2C0200, // 0044 CALL R11 1
+ 0x6030000C, // 0045 GETGBL R12 G12
+ 0x5C341400, // 0046 MOVE R13 R10
+ 0x7C300200, // 0047 CALL R12 1
+ 0x002C160C, // 0048 ADD R11 R11 R12
+ 0x8830010E, // 0049 GETMBR R12 R0 K14
+ 0x242C160C, // 004A GT R11 R11 R12
+ 0x782E0002, // 004B JMPF R11 #004F
+ 0x9002020A, // 004C SETMBR R0 K1 R10
+ 0x50100000, // 004D LDBOOL R4 0 0
+ 0x70020002, // 004E JMP #0052
+ 0x8C2C070F, // 004F GETMET R11 R3 K15
+ 0x5C341400, // 0050 MOVE R13 R10
+ 0x7C2C0400, // 0051 CALL R11 2
+ 0x7001FFD7, // 0052 JMP #002B
+ 0x78120012, // 0053 JMPF R4 #0067
+ 0x6024000F, // 0054 GETGBL R9 G15
+ 0x88280106, // 0055 GETMBR R10 R0 K6
+ 0x602C0012, // 0056 GETGBL R11 G18
+ 0x7C240400, // 0057 CALL R9 2
+ 0x7826000B, // 0058 JMPF R9 #0065
+ 0x88240106, // 0059 GETMBR R9 R0 K6
+ 0x8C241310, // 005A GETMET R9 R9 K16
+ 0x582C0007, // 005B LDCONST R11 K7
+ 0x7C240400, // 005C CALL R9 2
+ 0x6024000C, // 005D GETGBL R9 G12
+ 0x88280106, // 005E GETMBR R10 R0 K6
+ 0x7C240200, // 005F CALL R9 1
+ 0x1C241307, // 0060 EQ R9 R9 K7
+ 0x78260001, // 0061 JMPF R9 #0064
+ 0x4C240000, // 0062 LDNIL R9
+ 0x90020C09, // 0063 SETMBR R0 K6 R9
+ 0x70020001, // 0064 JMP #0067
+ 0x4C240000, // 0065 LDNIL R9
+ 0x90020C09, // 0066 SETMBR R0 K6 R9
+ 0x7001FFB3, // 0067 JMP #001C
+ 0x78120017, // 0068 JMPF R4 #0081
+ 0x881C0104, // 0069 GETMBR R7 R0 K4
+ 0x4C200000, // 006A LDNIL R8
+ 0x201C0E08, // 006B NE R7 R7 R8
+ 0x781E0013, // 006C JMPF R7 #0081
+ 0x601C000C, // 006D GETGBL R7 G12
+ 0x88200104, // 006E GETMBR R8 R0 K4
+ 0x7C1C0200, // 006F CALL R7 1
+ 0x241C0F07, // 0070 GT R7 R7 K7
+ 0x781E000E, // 0071 JMPF R7 #0081
+ 0x601C000C, // 0072 GETGBL R7 G12
+ 0x5C200600, // 0073 MOVE R8 R3
+ 0x7C1C0200, // 0074 CALL R7 1
+ 0x6020000C, // 0075 GETGBL R8 G12
+ 0x88240104, // 0076 GETMBR R9 R0 K4
+ 0x7C200200, // 0077 CALL R8 1
+ 0x001C0E08, // 0078 ADD R7 R7 R8
+ 0x8820010E, // 0079 GETMBR R8 R0 K14
+ 0x241C0E08, // 007A GT R7 R7 R8
+ 0x781E0002, // 007B JMPF R7 #007F
+ 0x50100000, // 007C LDBOOL R4 0 0
+ 0x4C180000, // 007D LDNIL R6
+ 0x70020001, // 007E JMP #0081
+ 0x4C1C0000, // 007F LDNIL R7
+ 0x90020807, // 0080 SETMBR R0 K4 R7
+ 0x7812006D, // 0081 JMPF R4 #00F0
+ 0x881C0105, // 0082 GETMBR R7 R0 K5
+ 0x4C200000, // 0083 LDNIL R8
+ 0x201C0E08, // 0084 NE R7 R7 R8
+ 0x781E0069, // 0085 JMPF R7 #00F0
+ 0x601C000F, // 0086 GETGBL R7 G15
+ 0x88200105, // 0087 GETMBR R8 R0 K5
+ 0x60240012, // 0088 GETGBL R9 G18
+ 0x7C1C0400, // 0089 CALL R7 2
+ 0x781E0002, // 008A JMPF R7 #008E
+ 0x881C0105, // 008B GETMBR R7 R0 K5
+ 0x941C0F07, // 008C GETIDX R7 R7 K7
+ 0x70020000, // 008D JMP #008F
+ 0x881C0105, // 008E GETMBR R7 R0 K5
+ 0x4C200000, // 008F LDNIL R8
+ 0x78120049, // 0090 JMPF R4 #00DB
+ 0x8C240F11, // 0091 GETMET R9 R7 K17
+ 0x7C240200, // 0092 CALL R9 1
+ 0x5C201200, // 0093 MOVE R8 R9
+ 0x78260045, // 0094 JMPF R9 #00DB
+ 0x7816002D, // 0095 JMPF R5 #00C4
+ 0xB8262400, // 0096 GETNGBL R9 K18
+ 0x8C241313, // 0097 GETMET R9 R9 K19
+ 0x582C0014, // 0098 LDCONST R11 K20
+ 0x7C240400, // 0099 CALL R9 2
+ 0x78260028, // 009A JMPF R9 #00C4
+ 0x58240015, // 009B LDCONST R9 K21
+ 0x88281116, // 009C GETMBR R10 R8 K22
+ 0x4C2C0000, // 009D LDNIL R11
+ 0x2028140B, // 009E NE R10 R10 R11
+ 0x782A0004, // 009F JMPF R10 #00A5
+ 0x60280008, // 00A0 GETGBL R10 G8
+ 0x882C1116, // 00A1 GETMBR R11 R8 K22
+ 0x7C280200, // 00A2 CALL R10 1
+ 0x002A2E0A, // 00A3 ADD R10 K23 R10
+ 0x5C241400, // 00A4 MOVE R9 R10
+ 0x88281118, // 00A5 GETMBR R10 R8 K24
+ 0x4C2C0000, // 00A6 LDNIL R11
+ 0x2028140B, // 00A7 NE R10 R10 R11
+ 0x782A0004, // 00A8 JMPF R10 #00AE
+ 0x60280008, // 00A9 GETGBL R10 G8
+ 0x882C1118, // 00AA GETMBR R11 R8 K24
+ 0x7C280200, // 00AB CALL R10 1
+ 0x002A320A, // 00AC ADD R10 K25 R10
+ 0x0024120A, // 00AD ADD R9 R9 R10
+ 0x8828111A, // 00AE GETMBR R10 R8 K26
+ 0x4C2C0000, // 00AF LDNIL R11
+ 0x2028140B, // 00B0 NE R10 R10 R11
+ 0x782A0004, // 00B1 JMPF R10 #00B7
+ 0x60280008, // 00B2 GETGBL R10 G8
+ 0x882C111A, // 00B3 GETMBR R11 R8 K26
+ 0x7C280200, // 00B4 CALL R10 1
+ 0x002A320A, // 00B5 ADD R10 K25 R10
+ 0x0024120A, // 00B6 ADD R9 R9 R10
+ 0xB82A3600, // 00B7 GETNGBL R10 K27
+ 0x602C0018, // 00B8 GETGBL R11 G24
+ 0x5830001C, // 00B9 LDCONST R12 K28
+ 0x8834050D, // 00BA GETMBR R13 R2 K13
+ 0x88341B1D, // 00BB GETMBR R13 R13 K29
+ 0x8838111E, // 00BC GETMBR R14 R8 K30
+ 0x883C111F, // 00BD GETMBR R15 R8 K31
+ 0x88401120, // 00BE GETMBR R16 R8 K32
+ 0x88441121, // 00BF GETMBR R17 R8 K33
+ 0x5C481200, // 00C0 MOVE R18 R9
+ 0x7C2C0E00, // 00C1 CALL R11 7
+ 0x58300014, // 00C2 LDCONST R12 K20
+ 0x7C280400, // 00C3 CALL R10 2
+ 0x8C241122, // 00C4 GETMET R9 R8 K34
+ 0x7C240200, // 00C5 CALL R9 1
+ 0x6028000C, // 00C6 GETGBL R10 G12
+ 0x5C2C0600, // 00C7 MOVE R11 R3
+ 0x7C280200, // 00C8 CALL R10 1
+ 0x602C000C, // 00C9 GETGBL R11 G12
+ 0x5C300C00, // 00CA MOVE R12 R6
+ 0x7C2C0200, // 00CB CALL R11 1
+ 0x0028140B, // 00CC ADD R10 R10 R11
0x602C000C, // 00CD GETGBL R11 G12
- 0x5C300C00, // 00CE MOVE R12 R6
+ 0x5C301200, // 00CE MOVE R12 R9
0x7C2C0200, // 00CF CALL R11 1
0x0028140B, // 00D0 ADD R10 R10 R11
- 0x602C000C, // 00D1 GETGBL R11 G12
- 0x5C301200, // 00D2 MOVE R12 R9
- 0x7C2C0200, // 00D3 CALL R11 1
- 0x0028140B, // 00D4 ADD R10 R10 R11
- 0x882C010F, // 00D5 GETMBR R11 R0 K15
- 0x2428140B, // 00D6 GT R10 R10 R11
- 0x782A0002, // 00D7 JMPF R10 #00DB
- 0x90020A09, // 00D8 SETMBR R0 K5 R9
- 0x50100000, // 00D9 LDBOOL R4 0 0
- 0x70020002, // 00DA JMP #00DE
- 0x8C280D10, // 00DB GETMET R10 R6 K16
- 0x5C301200, // 00DC MOVE R12 R9
- 0x7C280400, // 00DD CALL R10 2
- 0x7001FFB4, // 00DE JMP #0094
- 0x78120012, // 00DF JMPF R4 #00F3
- 0x6024000F, // 00E0 GETGBL R9 G15
- 0x88280106, // 00E1 GETMBR R10 R0 K6
- 0x602C0012, // 00E2 GETGBL R11 G18
- 0x7C240400, // 00E3 CALL R9 2
- 0x7826000B, // 00E4 JMPF R9 #00F1
- 0x88240106, // 00E5 GETMBR R9 R0 K6
- 0x8C241311, // 00E6 GETMET R9 R9 K17
- 0x582C0008, // 00E7 LDCONST R11 K8
- 0x7C240400, // 00E8 CALL R9 2
- 0x6024000C, // 00E9 GETGBL R9 G12
- 0x88280106, // 00EA GETMBR R10 R0 K6
- 0x7C240200, // 00EB CALL R9 1
- 0x1C241308, // 00EC EQ R9 R9 K8
- 0x78260001, // 00ED JMPF R9 #00F0
- 0x4C240000, // 00EE LDNIL R9
- 0x90020C09, // 00EF SETMBR R0 K6 R9
- 0x70020001, // 00F0 JMP #00F3
- 0x4C240000, // 00F1 LDNIL R9
- 0x90020C09, // 00F2 SETMBR R0 K6 R9
- 0x7001FF90, // 00F3 JMP #0085
- 0xB81E4800, // 00F4 GETNGBL R7 K36
- 0x8C1C0F25, // 00F5 GETMET R7 R7 K37
- 0x7C1C0200, // 00F6 CALL R7 1
- 0x88200126, // 00F7 GETMBR R8 R0 K38
- 0x901E4C08, // 00F8 SETMBR R7 K38 R8
- 0x88200127, // 00F9 GETMBR R8 R0 K39
- 0x901E4E08, // 00FA SETMBR R7 K39 R8
- 0x4C200000, // 00FB LDNIL R8
- 0x20200608, // 00FC NE R8 R3 R8
- 0x78220008, // 00FD JMPF R8 #0107
- 0x6020000C, // 00FE GETGBL R8 G12
- 0x5C240600, // 00FF MOVE R9 R3
- 0x7C200200, // 0100 CALL R8 1
- 0x24201108, // 0101 GT R8 R8 K8
- 0x78220003, // 0102 JMPF R8 #0107
- 0x60200012, // 0103 GETGBL R8 G18
- 0x7C200000, // 0104 CALL R8 0
- 0x40241003, // 0105 CONNECT R9 R8 R3
- 0x901E5008, // 0106 SETMBR R7 K40 R8
- 0x4C200000, // 0107 LDNIL R8
- 0x20200C08, // 0108 NE R8 R6 R8
- 0x78220008, // 0109 JMPF R8 #0113
- 0x6020000C, // 010A GETGBL R8 G12
- 0x5C240C00, // 010B MOVE R9 R6
- 0x7C200200, // 010C CALL R8 1
- 0x24201108, // 010D GT R8 R8 K8
- 0x78220003, // 010E JMPF R8 #0113
- 0x60200012, // 010F GETGBL R8 G18
- 0x7C200000, // 0110 CALL R8 0
- 0x40241006, // 0111 CONNECT R9 R8 R6
- 0x901E5208, // 0112 SETMBR R7 K41 R8
- 0x88200102, // 0113 GETMBR R8 R0 K2
+ 0x882C010E, // 00D1 GETMBR R11 R0 K14
+ 0x2428140B, // 00D2 GT R10 R10 R11
+ 0x782A0002, // 00D3 JMPF R10 #00D7
+ 0x90020809, // 00D4 SETMBR R0 K4 R9
+ 0x50100000, // 00D5 LDBOOL R4 0 0
+ 0x70020002, // 00D6 JMP #00DA
+ 0x8C280D0F, // 00D7 GETMET R10 R6 K15
+ 0x5C301200, // 00D8 MOVE R12 R9
+ 0x7C280400, // 00D9 CALL R10 2
+ 0x7001FFB4, // 00DA JMP #0090
+ 0x78120012, // 00DB JMPF R4 #00EF
+ 0x6024000F, // 00DC GETGBL R9 G15
+ 0x88280105, // 00DD GETMBR R10 R0 K5
+ 0x602C0012, // 00DE GETGBL R11 G18
+ 0x7C240400, // 00DF CALL R9 2
+ 0x7826000B, // 00E0 JMPF R9 #00ED
+ 0x88240105, // 00E1 GETMBR R9 R0 K5
+ 0x8C241310, // 00E2 GETMET R9 R9 K16
+ 0x582C0007, // 00E3 LDCONST R11 K7
+ 0x7C240400, // 00E4 CALL R9 2
+ 0x6024000C, // 00E5 GETGBL R9 G12
+ 0x88280105, // 00E6 GETMBR R10 R0 K5
+ 0x7C240200, // 00E7 CALL R9 1
+ 0x1C241307, // 00E8 EQ R9 R9 K7
+ 0x78260001, // 00E9 JMPF R9 #00EC
+ 0x4C240000, // 00EA LDNIL R9
+ 0x90020A09, // 00EB SETMBR R0 K5 R9
+ 0x70020001, // 00EC JMP #00EF
+ 0x4C240000, // 00ED LDNIL R9
+ 0x90020A09, // 00EE SETMBR R0 K5 R9
+ 0x7001FF90, // 00EF JMP #0081
+ 0xB81E4600, // 00F0 GETNGBL R7 K35
+ 0x8C1C0F24, // 00F1 GETMET R7 R7 K36
+ 0x7C1C0200, // 00F2 CALL R7 1
+ 0x88200125, // 00F3 GETMBR R8 R0 K37
+ 0x901E4A08, // 00F4 SETMBR R7 K37 R8
+ 0x88200126, // 00F5 GETMBR R8 R0 K38
+ 0x901E4C08, // 00F6 SETMBR R7 K38 R8
+ 0x4C200000, // 00F7 LDNIL R8
+ 0x20200608, // 00F8 NE R8 R3 R8
+ 0x78220008, // 00F9 JMPF R8 #0103
+ 0x6020000C, // 00FA GETGBL R8 G12
+ 0x5C240600, // 00FB MOVE R9 R3
+ 0x7C200200, // 00FC CALL R8 1
+ 0x24201107, // 00FD GT R8 R8 K7
+ 0x78220003, // 00FE JMPF R8 #0103
+ 0x60200012, // 00FF GETGBL R8 G18
+ 0x7C200000, // 0100 CALL R8 0
+ 0x40241003, // 0101 CONNECT R9 R8 R3
+ 0x901E4E08, // 0102 SETMBR R7 K39 R8
+ 0x4C200000, // 0103 LDNIL R8
+ 0x20200C08, // 0104 NE R8 R6 R8
+ 0x78220008, // 0105 JMPF R8 #010F
+ 0x6020000C, // 0106 GETGBL R8 G12
+ 0x5C240C00, // 0107 MOVE R9 R6
+ 0x7C200200, // 0108 CALL R8 1
+ 0x24201107, // 0109 GT R8 R8 K7
+ 0x78220003, // 010A JMPF R8 #010F
+ 0x60200012, // 010B GETGBL R8 G18
+ 0x7C200000, // 010C CALL R8 0
+ 0x40241006, // 010D CONNECT R9 R8 R6
+ 0x901E5008, // 010E SETMBR R7 K40 R8
+ 0x88200101, // 010F GETMBR R8 R0 K1
+ 0x4C240000, // 0110 LDNIL R9
+ 0x20201009, // 0111 NE R8 R8 R9
+ 0x74220004, // 0112 JMPT R8 #0118
+ 0x88200104, // 0113 GETMBR R8 R0 K4
0x4C240000, // 0114 LDNIL R9
0x20201009, // 0115 NE R8 R8 R9
- 0x74220004, // 0116 JMPT R8 #011C
- 0x88200105, // 0117 GETMBR R8 R0 K5
- 0x4C240000, // 0118 LDNIL R9
- 0x20201009, // 0119 NE R8 R8 R9
- 0x74220000, // 011A JMPT R8 #011C
- 0x50200001, // 011B LDBOOL R8 0 1
- 0x50200200, // 011C LDBOOL R8 1 0
- 0x901E5408, // 011D SETMBR R7 K42 R8
- 0x8C200F2B, // 011E GETMET R8 R7 K43
- 0x7C200200, // 011F CALL R8 1
- 0x8C24112C, // 0120 GETMET R9 R8 K44
- 0x602C0015, // 0121 GETGBL R11 G21
- 0x8830010F, // 0122 GETMBR R12 R0 K15
- 0x7C2C0200, // 0123 CALL R11 1
- 0x7C240400, // 0124 CALL R9 2
- 0x8C28052D, // 0125 GETMET R10 R2 K45
- 0x5C301200, // 0126 MOVE R12 R9
- 0x7C280400, // 0127 CALL R10 2
- 0x8C28052E, // 0128 GETMET R10 R2 K46
- 0x7C280200, // 0129 CALL R10 1
- 0x8C28032F, // 012A GETMET R10 R1 K47
- 0x5C300400, // 012B MOVE R12 R2
- 0x7C280400, // 012C CALL R10 2
- 0x88280531, // 012D GETMBR R10 R2 K49
- 0x9002600A, // 012E SETMBR R0 K48 R10
- 0x88280F2A, // 012F GETMBR R10 R7 K42
- 0x782A0002, // 0130 JMPF R10 #0134
- 0x50280000, // 0131 LDBOOL R10 0 0
- 0x9002000A, // 0132 SETMBR R0 K0 R10
- 0x70020001, // 0133 JMP #0136
- 0x50280200, // 0134 LDBOOL R10 1 0
- 0x9002640A, // 0135 SETMBR R0 K50 R10
- 0x80000000, // 0136 RET 0
+ 0x74220000, // 0116 JMPT R8 #0118
+ 0x50200001, // 0117 LDBOOL R8 0 1
+ 0x50200200, // 0118 LDBOOL R8 1 0
+ 0x901E5208, // 0119 SETMBR R7 K41 R8
+ 0x8C200F2A, // 011A GETMET R8 R7 K42
+ 0x7C200200, // 011B CALL R8 1
+ 0x8C20112B, // 011C GETMET R8 R8 K43
+ 0x60280015, // 011D GETGBL R10 G21
+ 0x882C010E, // 011E GETMBR R11 R0 K14
+ 0x7C280200, // 011F CALL R10 1
+ 0x7C200400, // 0120 CALL R8 2
+ 0x8C24052C, // 0121 GETMET R9 R2 K44
+ 0x5C2C1000, // 0122 MOVE R11 R8
+ 0x7C240400, // 0123 CALL R9 2
+ 0x8C24052D, // 0124 GETMET R9 R2 K45
+ 0x7C240200, // 0125 CALL R9 1
+ 0x8C24032E, // 0126 GETMET R9 R1 K46
+ 0x5C2C0400, // 0127 MOVE R11 R2
+ 0x7C240400, // 0128 CALL R9 2
+ 0x88240530, // 0129 GETMBR R9 R2 K48
+ 0x90025E09, // 012A SETMBR R0 K47 R9
+ 0x88240F29, // 012B GETMBR R9 R7 K41
+ 0x78260002, // 012C JMPF R9 #0130
+ 0x50240000, // 012D LDBOOL R9 0 0
+ 0x90026209, // 012E SETMBR R0 K49 R9
+ 0x70020001, // 012F JMP #0132
+ 0x50240200, // 0130 LDBOOL R9 1 0
+ 0x90026409, // 0131 SETMBR R0 K50 R9
+ 0x80000000, // 0132 RET 0
})
)
);
@@ -1092,7 +1094,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_ack_received, /* na
0x88080102, // 000B GETMBR R2 R0 K2
0x8C080504, // 000C GETMET R2 R2 K4
0x7C080200, // 000D CALL R2 1
- 0x50080200, // 000E LDBOOL R2 1 0
+ 0x50080000, // 000E LDBOOL R2 0 0
0x80040400, // 000F RET 1 R2
0x70020001, // 0010 JMP #0013
0x50080000, // 0011 LDBOOL R2 0 0
@@ -1118,33 +1120,34 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
0, /* has sup protos */
&be_class_Matter_IM_ReportDataSubscribed_Pull,
1, /* has constants */
- ( &(const bvalue[22]) { /* constants */
+ ( &(const bvalue[23]) { /* constants */
/* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(generator_or_arr),
/* K2 */ be_nested_str_weak(event_generator_or_arr),
/* K3 */ be_nested_str_weak(report_data_phase),
/* K4 */ be_nested_str_weak(send_im),
- /* K5 */ be_nested_str_weak(finish),
- /* K6 */ be_nested_str_weak(resp),
- /* K7 */ be_nested_str_weak(build_standalone_ack),
- /* K8 */ be_nested_str_weak(encode_frame),
- /* K9 */ be_nested_str_weak(encrypt),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(loglevel),
- /* K12 */ be_nested_str_weak(log),
- /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
- /* K14 */ be_nested_str_weak(session),
- /* K15 */ be_nested_str_weak(local_session_id),
- /* K16 */ be_nested_str_weak(ack_message_counter),
- /* K17 */ be_nested_str_weak(message_counter),
- /* K18 */ be_nested_str_weak(send_response_frame),
- /* K19 */ be_nested_str_weak(last_counter),
- /* K20 */ be_nested_str_weak(sub),
- /* K21 */ be_nested_str_weak(re_arm),
+ /* K5 */ be_nested_str_weak(finishing),
+ /* K6 */ be_nested_str_weak(finished),
+ /* K7 */ be_nested_str_weak(resp),
+ /* K8 */ be_nested_str_weak(build_standalone_ack),
+ /* K9 */ be_nested_str_weak(encode_frame),
+ /* K10 */ be_nested_str_weak(encrypt),
+ /* K11 */ be_nested_str_weak(tasmota),
+ /* K12 */ be_nested_str_weak(loglevel),
+ /* K13 */ be_nested_str_weak(log),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
+ /* K15 */ be_nested_str_weak(session),
+ /* K16 */ be_nested_str_weak(local_session_id),
+ /* K17 */ be_nested_str_weak(ack_message_counter),
+ /* K18 */ be_nested_str_weak(message_counter),
+ /* K19 */ be_nested_str_weak(send_response_frame),
+ /* K20 */ be_nested_str_weak(last_counter),
+ /* K21 */ be_nested_str_weak(sub),
+ /* K22 */ be_nested_str_weak(re_arm),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[81]) { /* code */
+ ( &(const binstruction[77]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x740A0001, // 0001 JMPT R2 #0004
0x50080000, // 0002 LDBOOL R2 0 0
@@ -1156,7 +1159,7 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
0x88080102, // 0008 GETMBR R2 R0 K2
0x4C0C0000, // 0009 LDNIL R3
0x20080403, // 000A NE R2 R2 R3
- 0x780A0033, // 000B JMPF R2 #0040
+ 0x780A0031, // 000B JMPF R2 #003E
0x88080103, // 000C GETMBR R2 R0 K3
0x780A000F, // 000D JMPF R2 #001E
0x60080003, // 000E GETGBL R2 G3
@@ -1173,59 +1176,55 @@ be_local_closure(class_Matter_IM_ReportDataSubscribed_Pull_send_im, /* name */
0x50080000, // 0019 LDBOOL R2 0 0
0x90020002, // 001A SETMBR R0 K0 R2
0x50080000, // 001B LDBOOL R2 0 0
- 0x90020A02, // 001C SETMBR R0 K5 R2
- 0x70020020, // 001D JMP #003F
- 0x88080106, // 001E GETMBR R2 R0 K6
- 0x8C080507, // 001F GETMET R2 R2 K7
+ 0x90020C02, // 001C SETMBR R0 K6 R2
+ 0x7002001E, // 001D JMP #003D
+ 0x88080107, // 001E GETMBR R2 R0 K7
+ 0x8C080508, // 001F GETMET R2 R2 K8
0x50100000, // 0020 LDBOOL R4 0 0
0x7C080400, // 0021 CALL R2 2
- 0x8C0C0508, // 0022 GETMET R3 R2 K8
+ 0x8C0C0509, // 0022 GETMET R3 R2 K9
0x7C0C0200, // 0023 CALL R3 1
- 0x8C0C0509, // 0024 GETMET R3 R2 K9
+ 0x8C0C050A, // 0024 GETMET R3 R2 K10
0x7C0C0200, // 0025 CALL R3 1
- 0xB80E1400, // 0026 GETNGBL R3 K10
- 0x8C0C070B, // 0027 GETMET R3 R3 K11
+ 0xB80E1600, // 0026 GETNGBL R3 K11
+ 0x8C0C070C, // 0027 GETMET R3 R3 K12
0x54160003, // 0028 LDINT R5 4
0x7C0C0400, // 0029 CALL R3 2
0x780E0009, // 002A JMPF R3 #0035
- 0xB80E1800, // 002B GETNGBL R3 K12
+ 0xB80E1A00, // 002B GETNGBL R3 K13
0x60100018, // 002C GETGBL R4 G24
- 0x5814000D, // 002D LDCONST R5 K13
- 0x8818050E, // 002E GETMBR R6 R2 K14
- 0x88180D0F, // 002F GETMBR R6 R6 K15
- 0x881C0510, // 0030 GETMBR R7 R2 K16
- 0x88200511, // 0031 GETMBR R8 R2 K17
+ 0x5814000E, // 002D LDCONST R5 K14
+ 0x8818050F, // 002E GETMBR R6 R2 K15
+ 0x88180D10, // 002F GETMBR R6 R6 K16
+ 0x881C0511, // 0030 GETMBR R7 R2 K17
+ 0x88200512, // 0031 GETMBR R8 R2 K18
0x7C100800, // 0032 CALL R4 4
0x54160003, // 0033 LDINT R5 4
0x7C0C0400, // 0034 CALL R3 2
- 0x8C0C0312, // 0035 GETMET R3 R1 K18
+ 0x8C0C0313, // 0035 GETMET R3 R1 K19
0x5C140400, // 0036 MOVE R5 R2
0x7C0C0400, // 0037 CALL R3 2
- 0x880C0511, // 0038 GETMBR R3 R2 K17
- 0x90022603, // 0039 SETMBR R0 K19 R3
- 0x500C0200, // 003A LDBOOL R3 1 0
- 0x90020A03, // 003B SETMBR R0 K5 R3
- 0x880C0114, // 003C GETMBR R3 R0 K20
- 0x8C0C0715, // 003D GETMET R3 R3 K21
- 0x7C0C0200, // 003E CALL R3 1
- 0x7002000F, // 003F JMP #0050
- 0x88080103, // 0040 GETMBR R2 R0 K3
- 0x780A0008, // 0041 JMPF R2 #004B
- 0x60080003, // 0042 GETGBL R2 G3
- 0x5C0C0000, // 0043 MOVE R3 R0
- 0x7C080200, // 0044 CALL R2 1
- 0x8C080504, // 0045 GETMET R2 R2 K4
- 0x5C100200, // 0046 MOVE R4 R1
- 0x7C080400, // 0047 CALL R2 2
- 0x50080000, // 0048 LDBOOL R2 0 0
- 0x90020602, // 0049 SETMBR R0 K3 R2
- 0x70020004, // 004A JMP #0050
- 0x50080200, // 004B LDBOOL R2 1 0
- 0x90020A02, // 004C SETMBR R0 K5 R2
- 0x88080114, // 004D GETMBR R2 R0 K20
- 0x8C080515, // 004E GETMET R2 R2 K21
- 0x7C080200, // 004F CALL R2 1
- 0x80000000, // 0050 RET 0
+ 0x880C0512, // 0038 GETMBR R3 R2 K18
+ 0x90022803, // 0039 SETMBR R0 K20 R3
+ 0x880C0115, // 003A GETMBR R3 R0 K21
+ 0x8C0C0716, // 003B GETMET R3 R3 K22
+ 0x7C0C0200, // 003C CALL R3 1
+ 0x7002000D, // 003D JMP #004C
+ 0x88080103, // 003E GETMBR R2 R0 K3
+ 0x780A0008, // 003F JMPF R2 #0049
+ 0x60080003, // 0040 GETGBL R2 G3
+ 0x5C0C0000, // 0041 MOVE R3 R0
+ 0x7C080200, // 0042 CALL R2 1
+ 0x8C080504, // 0043 GETMET R2 R2 K4
+ 0x5C100200, // 0044 MOVE R4 R1
+ 0x7C080400, // 0045 CALL R2 2
+ 0x50080000, // 0046 LDBOOL R2 0 0
+ 0x90020602, // 0047 SETMBR R0 K3 R2
+ 0x70020002, // 0048 JMP #004C
+ 0x88080115, // 0049 GETMBR R2 R0 K21
+ 0x8C080516, // 004A GETMET R2 R2 K22
+ 0x7C080200, // 004B CALL R2 1
+ 0x80000000, // 004C RET 0
})
)
);
@@ -1477,25 +1476,21 @@ be_local_closure(class_Matter_IM_SubscribedHeartbeat_send_im, /* name */
&be_class_Matter_IM_SubscribedHeartbeat,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(ready),
- /* K1 */ be_nested_str_weak(send_im),
+ /* K0 */ be_nested_str_weak(send_im),
+ /* K1 */ be_nested_str_weak(ready),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0001, // 0001 JMPT R2 #0004
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x80040400, // 0003 RET 1 R2
- 0x60080003, // 0004 GETGBL R2 G3
- 0x5C0C0000, // 0005 MOVE R3 R0
- 0x7C080200, // 0006 CALL R2 1
- 0x8C080501, // 0007 GETMET R2 R2 K1
- 0x5C100200, // 0008 MOVE R4 R1
- 0x7C080400, // 0009 CALL R2 2
- 0x50080000, // 000A LDBOOL R2 0 0
- 0x90020002, // 000B SETMBR R0 K0 R2
- 0x80000000, // 000C RET 0
+ ( &(const binstruction[ 9]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080500, // 0003 GETMET R2 R2 K0
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x50080000, // 0006 LDBOOL R2 0 0
+ 0x90020202, // 0007 SETMBR R0 K1 R2
+ 0x80000000, // 0008 RET 0
})
)
);
@@ -1516,23 +1511,20 @@ be_local_closure(class_Matter_IM_SubscribedHeartbeat_ack_received, /* name */
0, /* has sup protos */
&be_class_Matter_IM_SubscribedHeartbeat,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
+ ( &(const bvalue[ 1]) { /* constants */
/* K0 */ be_nested_str_weak(ack_received),
- /* K1 */ be_nested_str_weak(finish),
}),
be_str_weak(ack_received),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
+ ( &(const binstruction[ 8]) { /* code */
0x60080003, // 0000 GETGBL R2 G3
0x5C0C0000, // 0001 MOVE R3 R0
0x7C080200, // 0002 CALL R2 1
0x8C080500, // 0003 GETMET R2 R2 K0
0x5C100200, // 0004 MOVE R4 R1
0x7C080400, // 0005 CALL R2 2
- 0x50080200, // 0006 LDBOOL R2 1 0
- 0x90020202, // 0007 SETMBR R0 K1 R2
- 0x50080200, // 0008 LDBOOL R2 1 0
- 0x80040400, // 0009 RET 1 R2
+ 0x50080000, // 0006 LDBOOL R2 0 0
+ 0x80040400, // 0007 RET 1 R2
})
)
);
@@ -1736,7 +1728,7 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_status_ok_received, /*
0, /* has sup protos */
&be_class_Matter_IM_SubscribeResponse_Pull,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(loglevel),
/* K2 */ be_const_int(3),
@@ -1747,10 +1739,12 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_status_ok_received, /*
/* K7 */ be_nested_str_weak(sub),
/* K8 */ be_nested_str_weak(subscription_id),
/* K9 */ be_nested_str_weak(status_ok_received),
+ /* K10 */ be_nested_str_weak(report_data_phase),
+ /* K11 */ be_nested_str_weak(finishing),
}),
be_str_weak(status_ok_received),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
+ ( &(const binstruction[26]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x58100002, // 0002 LDCONST R4 K2
@@ -1773,6 +1767,10 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_status_ok_received, /*
0x5C100200, // 0013 MOVE R4 R1
0x7C080400, // 0014 CALL R2 2
0x80040400, // 0015 RET 1 R2
+ 0x8808010A, // 0016 GETMBR R2 R0 K10
+ 0x740A0001, // 0017 JMPT R2 #001A
+ 0x50080200, // 0018 LDBOOL R2 1 0
+ 0x90021602, // 0019 SETMBR R0 K11 R2
})
)
);
@@ -1794,10 +1792,10 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_send_im, /* name */
&be_class_Matter_IM_SubscribeResponse_Pull,
1, /* has constants */
( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(ready),
- /* K1 */ be_nested_str_weak(report_data_phase),
- /* K2 */ be_nested_str_weak(send_im),
- /* K3 */ be_nested_str_weak(finish),
+ /* K0 */ be_nested_str_weak(report_data_phase),
+ /* K1 */ be_nested_str_weak(send_im),
+ /* K2 */ be_nested_str_weak(finishing),
+ /* K3 */ be_nested_str_weak(ready),
/* K4 */ be_nested_str_weak(resp),
/* K5 */ be_nested_str_weak(matter),
/* K6 */ be_nested_str_weak(SubscribeResponseMessage),
@@ -1816,60 +1814,56 @@ be_local_closure(class_Matter_IM_SubscribeResponse_Pull_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
+ ( &(const binstruction[49]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
- 0x740A0001, // 0001 JMPT R2 #0004
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x80040400, // 0003 RET 1 R2
- 0x88080101, // 0004 GETMBR R2 R0 K1
- 0x780A000E, // 0005 JMPF R2 #0015
- 0x60080003, // 0006 GETGBL R2 G3
- 0x5C0C0000, // 0007 MOVE R3 R0
- 0x7C080200, // 0008 CALL R2 1
- 0x8C080502, // 0009 GETMET R2 R2 K2
- 0x5C100200, // 000A MOVE R4 R1
- 0x7C080400, // 000B CALL R2 2
- 0x88080103, // 000C GETMBR R2 R0 K3
- 0x780A0003, // 000D JMPF R2 #0012
+ 0x780A000E, // 0001 JMPF R2 #0011
+ 0x60080003, // 0002 GETGBL R2 G3
+ 0x5C0C0000, // 0003 MOVE R3 R0
+ 0x7C080200, // 0004 CALL R2 1
+ 0x8C080501, // 0005 GETMET R2 R2 K1
+ 0x5C100200, // 0006 MOVE R4 R1
+ 0x7C080400, // 0007 CALL R2 2
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x780A0003, // 0009 JMPF R2 #000E
+ 0x50080000, // 000A LDBOOL R2 0 0
+ 0x90020002, // 000B SETMBR R0 K0 R2
+ 0x50080000, // 000C LDBOOL R2 0 0
+ 0x90020402, // 000D SETMBR R0 K2 R2
0x50080000, // 000E LDBOOL R2 0 0
- 0x90020202, // 000F SETMBR R0 K1 R2
- 0x50080000, // 0010 LDBOOL R2 0 0
- 0x90020602, // 0011 SETMBR R0 K3 R2
- 0x50080000, // 0012 LDBOOL R2 0 0
- 0x90020002, // 0013 SETMBR R0 K0 R2
- 0x7002001E, // 0014 JMP #0034
- 0x88080104, // 0015 GETMBR R2 R0 K4
- 0xB80E0A00, // 0016 GETNGBL R3 K5
- 0x8C0C0706, // 0017 GETMET R3 R3 K6
- 0x7C0C0200, // 0018 CALL R3 1
- 0x88100108, // 0019 GETMBR R4 R0 K8
- 0x88100907, // 001A GETMBR R4 R4 K7
- 0x900E0E04, // 001B SETMBR R3 K7 R4
- 0x88100108, // 001C GETMBR R4 R0 K8
- 0x88100909, // 001D GETMBR R4 R4 K9
- 0x900E1204, // 001E SETMBR R3 K9 R4
- 0x88100104, // 001F GETMBR R4 R0 K4
- 0x54160003, // 0020 LDINT R5 4
- 0x90121405, // 0021 SETMBR R4 K10 R5
- 0x8C10050B, // 0022 GETMET R4 R2 K11
- 0x8C18070C, // 0023 GETMET R6 R3 K12
- 0x7C180200, // 0024 CALL R6 1
- 0x8C180D0D, // 0025 GETMET R6 R6 K13
- 0x7C180200, // 0026 CALL R6 1
- 0x7C100400, // 0027 CALL R4 2
- 0x8C10050E, // 0028 GETMET R4 R2 K14
- 0x7C100200, // 0029 CALL R4 1
- 0x8C10030F, // 002A GETMET R4 R1 K15
- 0x5C180400, // 002B MOVE R6 R2
- 0x7C100400, // 002C CALL R4 2
- 0x88100511, // 002D GETMBR R4 R2 K17
- 0x90022004, // 002E SETMBR R0 K16 R4
- 0x88100108, // 002F GETMBR R4 R0 K8
- 0x8C100912, // 0030 GETMET R4 R4 K18
- 0x7C100200, // 0031 CALL R4 1
- 0x50100200, // 0032 LDBOOL R4 1 0
- 0x90020604, // 0033 SETMBR R0 K3 R4
- 0x80000000, // 0034 RET 0
+ 0x90020602, // 000F SETMBR R0 K3 R2
+ 0x7002001E, // 0010 JMP #0030
+ 0x88080104, // 0011 GETMBR R2 R0 K4
+ 0xB80E0A00, // 0012 GETNGBL R3 K5
+ 0x8C0C0706, // 0013 GETMET R3 R3 K6
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x88100108, // 0015 GETMBR R4 R0 K8
+ 0x88100907, // 0016 GETMBR R4 R4 K7
+ 0x900E0E04, // 0017 SETMBR R3 K7 R4
+ 0x88100108, // 0018 GETMBR R4 R0 K8
+ 0x88100909, // 0019 GETMBR R4 R4 K9
+ 0x900E1204, // 001A SETMBR R3 K9 R4
+ 0x88100104, // 001B GETMBR R4 R0 K4
+ 0x54160003, // 001C LDINT R5 4
+ 0x90121405, // 001D SETMBR R4 K10 R5
+ 0x8C10050B, // 001E GETMET R4 R2 K11
+ 0x8C18070C, // 001F GETMET R6 R3 K12
+ 0x7C180200, // 0020 CALL R6 1
+ 0x8C180D0D, // 0021 GETMET R6 R6 K13
+ 0x7C180200, // 0022 CALL R6 1
+ 0x7C100400, // 0023 CALL R4 2
+ 0x8C10050E, // 0024 GETMET R4 R2 K14
+ 0x7C100200, // 0025 CALL R4 1
+ 0x8C10030F, // 0026 GETMET R4 R1 K15
+ 0x5C180400, // 0027 MOVE R6 R2
+ 0x7C100400, // 0028 CALL R4 2
+ 0x88100511, // 0029 GETMBR R4 R2 K17
+ 0x90022004, // 002A SETMBR R0 K16 R4
+ 0x88100108, // 002B GETMBR R4 R0 K8
+ 0x8C100912, // 002C GETMET R4 R4 K18
+ 0x7C100200, // 002D CALL R4 1
+ 0x50100200, // 002E LDBOOL R4 1 0
+ 0x90020404, // 002F SETMBR R0 K2 R4
+ 0x80000000, // 0030 RET 0
})
)
);
From 8d2d121b6d341536d13b49594fe57c8449653722 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sat, 29 Jun 2024 22:12:34 +0200
Subject: [PATCH 106/252] Berry `FUNC_ANY_KEY` event calling `any_key()`
(#21708)
---
CHANGELOG.md | 1 +
.../tasmota_xdrv_driver/xdrv_52_9_berry.ino | 22 +++++++++++++++++++
2 files changed, 23 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2fb703c71..ed1b71b6c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
- Berry `tasmota.rtc("config_time")` (#21698)
- Berry `math.min()` and `math.max()`
+- Berry `FUNC_ANY_KEY` event calling `any_key()`
### Breaking Changed
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
index 3ea6508ad..7384f1ebb 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
@@ -946,6 +946,28 @@ bool Xdrv52(uint32_t function)
case FUNC_SET_DEVICE_POWER:
result = callBerryEventDispatcher(PSTR("set_power_handler"), nullptr, XdrvMailbox.index, nullptr);
break;
+ case FUNC_ANY_KEY:
+ // XdrvMailbox.payload = device_save << 24 | key << 16 | state << 8 | device;
+ // key 0 = KEY_BUTTON = button_topic
+ // key 1 = KEY_SWITCH = switch_topic
+ // state 0 = POWER_OFF = off
+ // state 1 = POWER_ON = on
+ // state 2 = POWER_TOGGLE = toggle
+ // state 3 = POWER_HOLD = hold
+ // state 4 = POWER_INCREMENT = button still pressed
+ // state 5 = POWER_INV = button released
+ // state 6 = POWER_CLEAR = button released
+ // state 7 = POWER_RELEASE = button released
+ // state 9 = CLEAR_RETAIN = clear retain flag
+ // state 10 = POWER_DELAYED = button released delayed
+ // Button Multipress
+ // state 10 = SINGLE
+ // state 11 = DOUBLE
+ // state 12 = TRIPLE
+ // state 13 = QUAD
+ // state 14 = PENTA
+ result = callBerryEventDispatcher("any_key", nullptr, XdrvMailbox.payload, nullptr);
+ break;
#ifdef USE_WEBSERVER
case FUNC_WEB_ADD_CONSOLE_BUTTON:
if (XdrvMailbox.index) {
From 171d64109283fcf553c2fb9c1ccf5d2dad179e3d Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 30 Jun 2024 15:38:40 +0200
Subject: [PATCH 107/252] Update changelogs
---
CHANGELOG.md | 4 ++--
RELEASENOTES.md | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ed1b71b6c..4021fc26b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,8 +7,8 @@ All notable changes to this project will be documented in this file.
### Added
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase (#21695)
- Berry `tasmota.rtc("config_time")` (#21698)
-- Berry `math.min()` and `math.max()`
-- Berry `FUNC_ANY_KEY` event calling `any_key()`
+- Berry `math.min()` and `math.max()` (#21705)
+- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index b668533d7..79f96d12a 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -130,6 +130,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Berry add `math.round` [#21602](https://github.com/arendst/Tasmota/issues/21602)
- Berry `classof` extended to class methods [#21615](https://github.com/arendst/Tasmota/issues/21615)
- Berry `tasmota.rtc("config_time")` [#21698](https://github.com/arendst/Tasmota/issues/21698)
+- Berry `math.min()` and `math.max()` [#21705](https://github.com/arendst/Tasmota/issues/21705)
+- Berry `FUNC_ANY_KEY` event calling `any_key()` [#21708](https://github.com/arendst/Tasmota/issues/21708)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
From 33062dc839131dfbad6318a3d85bf7c38f288f35 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 30 Jun 2024 16:58:37 +0200
Subject: [PATCH 108/252] Refactor energy drivers
---
tasmota/include/tasmota_types.h | 6 +-
tasmota/tasmota_support/settings.ino | 6 +-
.../tasmota_xdrv_driver/xdrv_03_energy.ino | 116 +++++++-----------
.../xdrv_03_esp32_energy.ino | 44 +++----
4 files changed, 74 insertions(+), 98 deletions(-)
diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h
index cd5325aff..ddd0566a6 100755
--- a/tasmota/include/tasmota_types.h
+++ b/tasmota/include/tasmota_types.h
@@ -562,9 +562,9 @@ typedef struct {
uint16_t energy_max_power_limit; // 386 MaxPowerLimit
uint16_t energy_max_power_limit_hold; // 388 MaxPowerLimitHold
uint16_t energy_max_power_limit_window; // 38A MaxPowerLimitWindow
- uint16_t energy_max_power_safe_limit; // 38C MaxSafePowerLimit
- uint16_t energy_max_power_safe_limit_hold; // 38E MaxSafePowerLimitHold
- uint16_t energy_max_power_safe_limit_window; // 390 MaxSafePowerLimitWindow
+ uint16_t ex_energy_max_power_safe_limit; // 38C MaxSafePowerLimit - Free since 14.1.0.3
+ uint16_t ex_energy_max_power_safe_limit_hold; // 38E MaxSafePowerLimitHold - Free since 14.1.0.3
+ uint16_t ex_energy_max_power_safe_limit_window; // 390 MaxSafePowerLimitWindow - Free since 14.1.0.3
uint16_t energy_max_energy; // 392 MaxEnergy
uint16_t energy_max_energy_start; // 394 MaxEnergyStart
uint16_t mqtt_retry; // 396
diff --git a/tasmota/tasmota_support/settings.ino b/tasmota/tasmota_support/settings.ino
index 3a77bfda0..9b002f26c 100644
--- a/tasmota/tasmota_support/settings.ino
+++ b/tasmota/tasmota_support/settings.ino
@@ -1208,9 +1208,9 @@ void SettingsDefaultSet2(void) {
// Settings->energy_max_power_limit = 0; // MaxPowerLimit
Settings->energy_max_power_limit_hold = MAX_POWER_HOLD;
Settings->energy_max_power_limit_window = MAX_POWER_WINDOW;
-// Settings->energy_max_power_safe_limit = 0; // MaxSafePowerLimit
- Settings->energy_max_power_safe_limit_hold = SAFE_POWER_HOLD;
- Settings->energy_max_power_safe_limit_window = SAFE_POWER_WINDOW;
+// Settings->ex_energy_max_power_safe_limit = 0; // MaxSafePowerLimit
+// Settings->ex_energy_max_power_safe_limit_hold = SAFE_POWER_HOLD;
+// Settings->ex_energy_max_power_safe_limit_window = SAFE_POWER_WINDOW;
// Settings->energy_max_energy = 0; // MaxEnergy
// Settings->energy_max_energy_start = 0; // MaxEnergyStart
// Settings->energy_kWhtotal_ph[0] = 0;
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
index 7f1498278..cc364876f 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
@@ -59,7 +59,6 @@ const char kEnergyCommands[] PROGMEM = "|" // No prefix
#ifdef USE_ENERGY_POWER_LIMIT
D_CMND_MAXENERGY "|" D_CMND_MAXENERGYSTART "|"
D_CMND_MAXPOWER "|" D_CMND_MAXPOWERHOLD "|" D_CMND_MAXPOWERWINDOW "|"
- D_CMND_SAFEPOWER "|" D_CMND_SAFEPOWERHOLD "|" D_CMND_SAFEPOWERWINDOW "|"
#endif // USE_ENERGY_POWER_LIMIT
#endif // USE_ENERGY_MARGIN_DETECTION
D_CMND_ENERGYTODAY "|" D_CMND_ENERGYYESTERDAY "|" D_CMND_ENERGYTOTAL "|" D_CMND_ENERGYEXPORTACTIVE "|" D_CMND_ENERGYUSAGE "|" D_CMND_ENERGYEXPORT "|" D_CMND_TARIFF;
@@ -72,7 +71,6 @@ void (* const EnergyCommand[])(void) PROGMEM = {
#ifdef USE_ENERGY_POWER_LIMIT
&CmndMaxEnergy, &CmndMaxEnergyStart,
&CmndMaxPower, &CmndMaxPowerHold, &CmndMaxPowerWindow,
- &CmndSafePower, &CmndSafePowerHold, &CmndSafePowerWindow,
#endif // USE_ENERGY_POWER_LIMIT
#endif // USE_ENERGY_MARGIN_DETECTION
&CmndEnergyToday, &CmndEnergyYesterday, &CmndEnergyTotal, &CmndEnergyExportActive, &CmndEnergyUsage, &CmndEnergyExport, &CmndTariff};
@@ -1018,10 +1016,30 @@ void CmndEnergyConfig(void) {
\*********************************************************************************************/
void EnergyMarginStatus(void) {
- Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":[%d,%d,%d],\"" D_CMND_POWERLOW "\":%d,\"" D_CMND_POWERHIGH "\":%d,\""
- D_CMND_VOLTAGELOW "\":%d,\"" D_CMND_VOLTAGEHIGH "\":%d,\"" D_CMND_CURRENTLOW "\":%d,\"" D_CMND_CURRENTHIGH "\":%d}}"),
- Settings->energy_power_delta[0], Settings->energy_power_delta[1], Settings->energy_power_delta[2], Settings->energy_min_power, Settings->energy_max_power,
- Settings->energy_min_voltage, Settings->energy_max_voltage, Settings->energy_min_current, Settings->energy_max_current);
+ Response_P(PSTR("{\"" D_CMND_STATUS D_STATUS9_MARGIN "\":{\"" D_CMND_POWERDELTA "\":"));
+ if (Energy->phase_count > 1) {
+ for (uint32_t i = 0; i < Energy->phase_count; i++) {
+ ResponseAppend_P(PSTR("%c%d"), (i)?',':'[', Settings->energy_power_delta[i]);
+ }
+ ResponseAppend_P(PSTR("]"));
+ } else {
+ ResponseAppend_P(PSTR("%d"), Settings->energy_power_delta[0]);
+ }
+ ResponseAppend_P(PSTR(",\"" D_CMND_POWERLOW "\":%d,\"" D_CMND_POWERHIGH "\":%d,\""
+ D_CMND_VOLTAGELOW "\":%d,\"" D_CMND_VOLTAGEHIGH "\":%d,\""
+ D_CMND_CURRENTLOW "\":%d,\"" D_CMND_CURRENTHIGH "\":%d"),
+ Settings->energy_min_power, Settings->energy_max_power,
+ Settings->energy_min_voltage, Settings->energy_max_voltage,
+ Settings->energy_min_current, Settings->energy_max_current);
+#ifdef USE_ENERGY_POWER_LIMIT
+ ResponseAppend_P(PSTR(",\"" D_CMND_MAXPOWER "\":%d,\""
+ D_CMND_MAXPOWERHOLD "\":%d,\"" D_CMND_MAXPOWERWINDOW "\":%d,\""
+ D_CMND_MAXENERGY "\":%d,\"" D_CMND_MAXENERGYSTART "\":%d"),
+ Settings->energy_max_power_limit,
+ Settings->energy_max_power_limit_hold, Settings->energy_max_power_limit_window,
+ Settings->energy_max_energy, Settings->energy_max_energy_start);
+#endif // USE_ENERGY_POWER_LIMIT
+ ResponseJsonEndEnd();
}
void CmndPowerDelta(void) {
@@ -1033,104 +1051,62 @@ void CmndPowerDelta(void) {
}
}
-void CmndPowerLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_min_power = XdrvMailbox.payload;
+bool ResponseCmndEnergyMargin(uint16_t* value, uint32_t max_value, uint32_t default_value = 1);
+bool ResponseCmndEnergyMargin(uint16_t* value, uint32_t max_value, uint32_t default_value) {
+ bool value_changed = false;
+ if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= max_value)) {
+ *value = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
+ value_changed = true;
}
- ResponseCmndNumber(Settings->energy_min_power);
+ ResponseCmndNumber(*value);
+ return value_changed;
+}
+
+void CmndPowerLow(void) {
+ ResponseCmndEnergyMargin(&Settings->energy_min_power, 6000);
}
void CmndPowerHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power);
+ ResponseCmndEnergyMargin(&Settings->energy_max_power, 6000);
}
void CmndVoltageLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Settings->energy_min_voltage = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_min_voltage);
+ ResponseCmndEnergyMargin(&Settings->energy_min_voltage, 500);
}
void CmndVoltageHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 500)) {
- Settings->energy_max_voltage = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_voltage);
+ ResponseCmndEnergyMargin(&Settings->energy_max_voltage, 500);
}
void CmndCurrentLow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Settings->energy_min_current = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_min_current);
+ ResponseCmndEnergyMargin(&Settings->energy_min_current, 25000);
}
void CmndCurrentHigh(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 25000)) {
- Settings->energy_max_current = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_current);
+ ResponseCmndEnergyMargin(&Settings->energy_max_current, 25000);
}
#ifdef USE_ENERGY_POWER_LIMIT
void CmndMaxPower(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_limit);
+ ResponseCmndEnergyMargin(&Settings->energy_max_power_limit, 6000);
}
void CmndMaxPowerHold(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit_hold = (1 == XdrvMailbox.payload) ? MAX_POWER_HOLD : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_limit_hold);
+ ResponseCmndEnergyMargin(&Settings->energy_max_power_limit_hold, 6000, MAX_POWER_HOLD);
}
void CmndMaxPowerWindow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_limit_window = (1 == XdrvMailbox.payload) ? MAX_POWER_WINDOW : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_limit_window);
-}
-
-void CmndSafePower(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_safe_limit = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit);
-}
-
-void CmndSafePowerHold(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_power_safe_limit_hold = (1 == XdrvMailbox.payload) ? SAFE_POWER_HOLD : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit_hold);
-}
-
-void CmndSafePowerWindow(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 1440)) {
- Settings->energy_max_power_safe_limit_window = (1 == XdrvMailbox.payload) ? SAFE_POWER_WINDOW : XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_power_safe_limit_window);
+ ResponseCmndEnergyMargin(&Settings->energy_max_power_limit_window, 6000, MAX_POWER_WINDOW);
}
void CmndMaxEnergy(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 6000)) {
- Settings->energy_max_energy = XdrvMailbox.payload;
+ if (ResponseCmndEnergyMargin(&Settings->energy_max_energy, 6000)) {
Energy->max_energy_state = 3;
}
- ResponseCmndNumber(Settings->energy_max_energy);
}
void CmndMaxEnergyStart(void) {
- if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload < 24)) {
- Settings->energy_max_energy_start = XdrvMailbox.payload;
- }
- ResponseCmndNumber(Settings->energy_max_energy_start);
+ ResponseCmndEnergyMargin(&Settings->energy_max_energy_start, 23);
}
#endif // USE_ENERGY_POWER_LIMIT
#endif // USE_ENERGY_MARGIN_DETECTION
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 32d2e1dc3..453f73f39 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -1329,18 +1329,18 @@ void CmndEnergyConfig(void) {
* USE_ENERGY_MARGIN_DETECTION and USE_ENERGY_POWER_LIMIT
\*********************************************************************************************/
-void ResponseAppendMargin(uint16_t* start, uint32_t step_size = 0);
-void ResponseAppendMargin(uint16_t* start, uint32_t step_size) {
+void ResponseAppendMargin(uint16_t* value, uint32_t step_size = 0);
+void ResponseAppendMargin(uint16_t* value, uint32_t step_size) {
if (Energy->phase_count > 1) {
if (0 == step_size) {
step_size = sizeof(tPhase) / sizeof(uint16_t);
}
for (uint32_t i = 0; i < Energy->phase_count; i++) {
- ResponseAppend_P(PSTR("%c%d"), (i)?',':'[', start[i * step_size]);
+ ResponseAppend_P(PSTR("%c%d"), (i)?',':'[', value[i * step_size]);
}
ResponseAppend_P(PSTR("]"));
} else {
- ResponseAppend_P(PSTR("%d"), start[0]);
+ ResponseAppend_P(PSTR("%d"), value[0]);
}
}
@@ -1372,8 +1372,8 @@ void EnergyMarginStatus(void) {
ResponseJsonEndEnd();
}
-bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t default_value = 1, uint32_t step_size = 0);
-bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t default_value, uint32_t step_size) {
+bool ResponseCmndIdxEnergyMargin(uint16_t* value, uint32_t max_value, uint32_t default_value = 1, uint32_t step_size = 0);
+bool ResponseCmndIdxEnergyMargin(uint16_t* value, uint32_t max_value, uint32_t default_value, uint32_t step_size) {
bool value_changed = false;
if ((XdrvMailbox.index >= 0) && (XdrvMailbox.index <= ENERGY_MAX_PHASES)) {
if (0 == step_size) {
@@ -1383,75 +1383,75 @@ bool ResponseCmndEnergyMargin(uint16_t* start, uint32_t max_value, uint32_t defa
if (0 == XdrvMailbox.index) {
// PowerLow0 10
for (uint32_t i = 0; i < Energy->phase_count; i++) {
- start[i * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
+ value[i * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
}
} else {
// PowerLow 10 = PowerLow1 10 .. PowerLow8 10
- start[(XdrvMailbox.index -1) * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
+ value[(XdrvMailbox.index -1) * step_size] = (1 == XdrvMailbox.payload) ? default_value : XdrvMailbox.payload;
}
value_changed = true;
}
if (0 == XdrvMailbox.index) {
// PowerLow0, PowerLow0 10
ResponseCmnd();
- ResponseAppendMargin(start, step_size);
+ ResponseAppendMargin(value, step_size);
ResponseJsonEnd();
} else {
// PowerLow = PowerLow1 .. PowerLow8
- ResponseCmndIdxNumber(start[(XdrvMailbox.index -1) * step_size]);
+ ResponseCmndIdxNumber(value[(XdrvMailbox.index -1) * step_size]);
}
}
return value_changed;
}
void CmndPowerDelta(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.power_delta[0], 32000, 1, 1);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.power_delta[0], 32000, 1, 1);
}
void CmndPowerLow(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_power, 6000);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].min_power, 6000);
}
void CmndPowerHigh(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power, 6000);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_power, 6000);
}
void CmndVoltageLow(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_voltage, 500);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].min_voltage, 500);
}
void CmndVoltageHigh(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_voltage, 500);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_voltage, 500);
}
void CmndCurrentLow(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].min_current, 25000);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].min_current, 25000);
}
void CmndCurrentHigh(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_current, 25000);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_current, 25000);
}
void CmndMaxPower(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit, 6000);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_power_limit, 6000);
}
void CmndMaxPowerHold(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit_hold, 6000, MAX_POWER_HOLD);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_power_limit_hold, 6000, MAX_POWER_HOLD);
}
void CmndMaxPowerWindow(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_power_limit_window, 6000, MAX_POWER_WINDOW);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_power_limit_window, 6000, MAX_POWER_WINDOW);
}
void CmndMaxEnergy(void) {
- if (ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_energy, 6000)) {
+ if (ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_energy, 6000)) {
Energy->max_energy_state[XdrvMailbox.index -1] = 3;
}
}
void CmndMaxEnergyStart(void) {
- ResponseCmndEnergyMargin(&Energy->Settings.phase[0].max_energy_start, 23);
+ ResponseCmndIdxEnergyMargin(&Energy->Settings.phase[0].max_energy_start, 23);
}
/********************************************************************************************/
From 65588b8126ca0b87333b66f1114a579ae6bf2efd Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Sun, 30 Jun 2024 17:26:39 +0200
Subject: [PATCH 109/252] Increase upper limits user entry for energy drivers
(#16059)
---
tasmota/tasmota_xnrg_energy/xnrg_04_mcp39f501.ino | 6 +++---
tasmota/tasmota_xnrg_energy/xnrg_07_ade7953.ino | 6 +++---
tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino | 6 +++---
tasmota/tasmota_xnrg_energy/xnrg_22_bl6523.ino | 6 +++---
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_04_mcp39f501.ino b/tasmota/tasmota_xnrg_energy/xnrg_04_mcp39f501.ino
index 1c4695b4d..f3b6a580b 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_04_mcp39f501.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_04_mcp39f501.ino
@@ -604,7 +604,7 @@ bool McpCommand(void)
if (CMND_POWERSET == Energy->command_code) {
if (XdrvMailbox.data_len && mcp_active_power) {
value = (unsigned long)(CharToFloat(XdrvMailbox.data) * 100);
- if ((value > 100) && (value < 200000)) { // Between 1W and 2000W
+ if ((value > 100) && (value < 2000000)) { // Between 1W and 20000W
XdrvMailbox.payload = value;
mcp_calibrate |= MCP_CALIBRATE_POWER;
McpGetCalibration();
@@ -614,7 +614,7 @@ bool McpCommand(void)
else if (CMND_VOLTAGESET == Energy->command_code) {
if (XdrvMailbox.data_len && mcp_voltage_rms) {
value = (unsigned long)(CharToFloat(XdrvMailbox.data) * 10);
- if ((value > 1000) && (value < 2600)) { // Between 100V and 260V
+ if ((value > 1000) && (value < 4000)) { // Between 100V and 400V
XdrvMailbox.payload = value;
mcp_calibrate |= MCP_CALIBRATE_VOLTAGE;
McpGetCalibration();
@@ -624,7 +624,7 @@ bool McpCommand(void)
else if (CMND_CURRENTSET == Energy->command_code) {
if (XdrvMailbox.data_len && mcp_current_rms) {
value = (unsigned long)(CharToFloat(XdrvMailbox.data) * 10);
- if ((value > 100) && (value < 80000)) { // Between 10mA and 8A
+ if ((value > 100) && (value < 800000)) { // Between 10mA and 80A
XdrvMailbox.payload = value;
mcp_calibrate |= MCP_CALIBRATE_CURRENT;
McpGetCalibration();
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_07_ade7953.ino b/tasmota/tasmota_xnrg_energy/xnrg_07_ade7953.ino
index 526950d1d..30330d1fe 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_07_ade7953.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_07_ade7953.ino
@@ -829,7 +829,7 @@ bool Ade7953Command(void) {
}
else if (CMND_POWERSET == Energy->command_code) {
if (XdrvMailbox.data_len && Ade7953.active_power[channel]) {
- if ((value > 100) && (value < 200000)) { // Between 1W and 2000W
+ if ((value > 100) && (value < 2000000)) { // Between 1W and 20000W
#ifdef ADE7953_ACCU_ENERGY
float power_calibration = (float)(Ade7953.active_power[channel] * 1000) / value; // 0.00 W
power_calibration *= ADE7953_POWER_CORRECTION;
@@ -842,14 +842,14 @@ bool Ade7953Command(void) {
}
else if (CMND_VOLTAGESET == Energy->command_code) {
if (XdrvMailbox.data_len && Ade7953.voltage_rms[channel]) {
- if ((value > 10000) && (value < 26000)) { // Between 100V and 260V
+ if ((value > 10000) && (value < 40000)) { // Between 100V and 400V
XdrvMailbox.payload = (Ade7953.voltage_rms[channel] * 100) / value; // 0.00 V
}
}
}
else if (CMND_CURRENTSET == Energy->command_code) {
if (XdrvMailbox.data_len && Ade7953.current_rms[channel]) {
- if ((value > 2000) && (value < 1000000)) { // Between 20mA and 10A
+ if ((value > 2000) && (value < 10000000)) { // Between 20mA and 100A
XdrvMailbox.payload = ((Ade7953.current_rms[channel] * 100) / value) * 100; // 0.00 mA
}
}
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
index 09a454201..2fc4ea1fb 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
@@ -624,7 +624,7 @@ bool Cse7761Command(void) {
}
else if (CMND_POWERSET == Energy->command_code) {
if (XdrvMailbox.data_len && CSE7761Data.active_power[channel]) {
- if ((value > 100) && (value < 200000)) { // Between 1W and 2000W
+ if ((value > 100) && (value < 2000000)) { // Between 1W and 20000W
XdrvMailbox.payload = ((CSE7761Data.active_power[channel]) / value) * 100;
}
}
@@ -635,7 +635,7 @@ bool Cse7761Command(void) {
}
else if (CMND_VOLTAGESET == Energy->command_code) {
if (XdrvMailbox.data_len && CSE7761Data.voltage_rms) {
- if ((value > 10000) && (value < 26000)) { // Between 100V and 260V
+ if ((value > 10000) && (value < 40000)) { // Between 100V and 400V
XdrvMailbox.payload = (CSE7761Data.voltage_rms * 100) / value;
}
}
@@ -646,7 +646,7 @@ bool Cse7761Command(void) {
}
else if (CMND_CURRENTSET == Energy->command_code) {
if (XdrvMailbox.data_len && CSE7761Data.current_rms[channel]) {
- if ((value > 1000) && (value < 1000000)) { // Between 10mA and 10A
+ if ((value > 1000) && (value < 10000000)) { // Between 10mA and 100A
XdrvMailbox.payload = ((CSE7761Data.current_rms[channel] * 100) / value) * 1000;
}
}
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_22_bl6523.ino b/tasmota/tasmota_xnrg_energy/xnrg_22_bl6523.ino
index b0b5d442a..1e95abf6f 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_22_bl6523.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_22_bl6523.ino
@@ -264,21 +264,21 @@ bool Bl6523Command(void) {
}
else if (CMND_POWERSET == Energy->command_code) {
if (XdrvMailbox.data_len) {
- if ((abs_value > 100) && (abs_value < 200000)) { // Between 1.00 and 2000.00 W
+ if ((abs_value > 100) && (abs_value < 2000000)) { // Between 1.00 and 20000.00 W
XdrvMailbox.payload = abs_value;
}
}
}
else if (CMND_VOLTAGESET == Energy->command_code) {
if (XdrvMailbox.data_len) {
- if ((abs_value > 10000) && (abs_value < 26000)) { // Between 100.00 and 260.00 V
+ if ((abs_value > 10000) && (abs_value < 40000)) { // Between 100.00 and 400.00 V
XdrvMailbox.payload = abs_value;
}
}
}
else if (CMND_CURRENTSET == Energy->command_code) {
if (XdrvMailbox.data_len) {
- if ((abs_value > 1000) && (abs_value < 1000000)) { // Between 10.00 mA and 10.00000 A
+ if ((abs_value > 1000) && (abs_value < 10000000)) { // Between 10.00 mA and 100.00000 A
XdrvMailbox.payload = abs_value;
}
}
From 6842b534255dc004ab1103f831dd87e1856ea127 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 30 Jun 2024 19:14:32 +0200
Subject: [PATCH 110/252] Berry `FUNC_BUTTON_MULTI_PRESSED` event and make
`FUNC_BUTTON_PRESSED` called only on state changes (#21709)
---
CHANGELOG.md | 1 +
.../tasmota_xdrv_driver/xdrv_52_9_berry.ino | 21 +++++++++++++++----
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4021fc26b..633172b6b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Berry `tasmota.rtc("config_time")` (#21698)
- Berry `math.min()` and `math.max()` (#21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
+- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes
### Breaking Changed
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
index 7384f1ebb..dc6281b39 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
@@ -946,6 +946,23 @@ bool Xdrv52(uint32_t function)
case FUNC_SET_DEVICE_POWER:
result = callBerryEventDispatcher(PSTR("set_power_handler"), nullptr, XdrvMailbox.index, nullptr);
break;
+ case FUNC_BUTTON_PRESSED:
+ // XdrvMailbox.index = button_index;
+ // XdrvMailbox.payload = button;
+ // XdrvMailbox.command_code = Button.last_state[button_index];
+ if (XdrvMailbox.payload != XdrvMailbox.command_code) { // fire event only when state changes
+ result = callBerryEventDispatcher(PSTR("button_pressed"), nullptr,
+ (XdrvMailbox.payload & 0xFF) << 16 | (XdrvMailbox.command_code & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
+ nullptr);
+ }
+ break;
+ case FUNC_BUTTON_MULTI_PRESSED:
+ // XdrvMailbox.index = button_index;
+ // XdrvMailbox.payload = Button.press_counter[button_index];
+ result = callBerryEventDispatcher(PSTR("button_multi_pressed"), nullptr,
+ (XdrvMailbox.payload & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
+ nullptr);
+ break;
case FUNC_ANY_KEY:
// XdrvMailbox.payload = device_save << 24 | key << 16 | state << 8 | device;
// key 0 = KEY_BUTTON = button_topic
@@ -1014,10 +1031,6 @@ bool Xdrv52(uint32_t function)
callBerryEventDispatcher(PSTR("after_teleperiod"), nullptr, 0, nullptr);
break;
- case FUNC_BUTTON_PRESSED:
- callBerryEventDispatcher(PSTR("button_pressed"), nullptr, 0, nullptr);
- break;
-
case FUNC_ACTIVE:
result = true;
break;
From 2cc785bf20e29fe501f63efd4b9f85a020c08380 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 30 Jun 2024 21:00:14 +0200
Subject: [PATCH 111/252] Berry `FUNC_BUTTON_MULTI_PRESSED` event and make
`FUNC_BUTTON_PRESSED` called only on state changes and once per second
(#21711)
---
CHANGELOG.md | 2 +-
.../tasmota_xdrv_driver/xdrv_52_9_berry.ino | 18 +++++++++++-------
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 633172b6b..6aacc2a7f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@ All notable changes to this project will be documented in this file.
- Berry `tasmota.rtc("config_time")` (#21698)
- Berry `math.min()` and `math.max()` (#21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
-- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes
+- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second
### Breaking Changed
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
index dc6281b39..5e90a1130 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
@@ -947,13 +947,17 @@ bool Xdrv52(uint32_t function)
result = callBerryEventDispatcher(PSTR("set_power_handler"), nullptr, XdrvMailbox.index, nullptr);
break;
case FUNC_BUTTON_PRESSED:
- // XdrvMailbox.index = button_index;
- // XdrvMailbox.payload = button;
- // XdrvMailbox.command_code = Button.last_state[button_index];
- if (XdrvMailbox.payload != XdrvMailbox.command_code) { // fire event only when state changes
- result = callBerryEventDispatcher(PSTR("button_pressed"), nullptr,
- (XdrvMailbox.payload & 0xFF) << 16 | (XdrvMailbox.command_code & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
- nullptr);
+ {
+ static uint32_t timer_last_button_sent = 0;
+ // XdrvMailbox.index = button_index;
+ // XdrvMailbox.payload = button;
+ // XdrvMailbox.command_code = Button.last_state[button_index];
+ if ((XdrvMailbox.payload != XdrvMailbox.command_code) || TimeReached(timer_last_button_sent)) { // fire event only when state changes
+ timer_last_button_sent = millis() + 1000; // wait for 1 second
+ result = callBerryEventDispatcher(PSTR("button_pressed"), nullptr,
+ (XdrvMailbox.payload & 0xFF) << 16 | (XdrvMailbox.command_code & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
+ nullptr);
+ }
}
break;
case FUNC_BUTTON_MULTI_PRESSED:
From c8e29dafc638ac04fd0eacffc54b669d3ad12637 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Mon, 1 Jul 2024 12:31:02 +0200
Subject: [PATCH 112/252] Changed ESP32 TM1621 number overflow from "9999" to
"12E3" (#21131)
---
CHANGELOG.md | 3 ++-
RELEASENOTES.md | 2 ++
.../xdrv_87_esp32_sonoff_tm1621.ino | 21 +++++++++++--------
3 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6aacc2a7f..1f3a04621 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,12 +9,13 @@ All notable changes to this project will be documented in this file.
- Berry `tasmota.rtc("config_time")` (#21698)
- Berry `math.min()` and `math.max()` (#21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
-- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second
+- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second (#21711)
### Breaking Changed
### Changed
- ESP32 support for energy margin checks, like ``MaxPower2`` per phase (#21695)
+- ESP32 TM1621 number overflow from "9999" to "12E3" (#21131)
### Fixed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 79f96d12a..a76fb90bd 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -132,6 +132,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Berry `tasmota.rtc("config_time")` [#21698](https://github.com/arendst/Tasmota/issues/21698)
- Berry `math.min()` and `math.max()` [#21705](https://github.com/arendst/Tasmota/issues/21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` [#21708](https://github.com/arendst/Tasmota/issues/21708)
+- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second [#21711](https://github.com/arendst/Tasmota/issues/21711)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
@@ -155,6 +156,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- ESP32 support for energy margin checks, like ``MaxPower2`` per phase [#21695](https://github.com/arendst/Tasmota/issues/21695)
- ESP32 MI32 refactoring, bugfixes, generic device scanning [#21603](https://github.com/arendst/Tasmota/issues/21603)
- ESP32 MI32 improve parser [#21648](https://github.com/arendst/Tasmota/issues/21648)
+- ESP32 TM1621 number overflow from "9999" to "12E3" [#21131](https://github.com/arendst/Tasmota/issues/21131)
- Matter refactoring of bridged devices [#21575](https://github.com/arendst/Tasmota/issues/21575)
- Matter filter suffix automatically added for sensors [#21589](https://github.com/arendst/Tasmota/issues/21589)
- Matter support for Rain sensor [#21633](https://github.com/arendst/Tasmota/issues/21633)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
index 368ed1c75..ae31b78ff 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
@@ -56,10 +56,10 @@ enum Tm1621Units { TM1621_NONE, TM1621_TEMPERATURE, TM1621_HUMIDITY, TM1621_VOL
const uint8_t tm1621_commands[] = { TM1621_SYS_EN, TM1621_LCD_ON, TM1621_BIAS, TM1621_TIMER_DIS, TM1621_WDT_DIS, TM1621_TONE_OFF, TM1621_IRQ_DIS };
-const char tm1621_kchar[] PROGMEM = { "0|1|2|3|4|5|6|7|8|9|-| " };
-// 0 1 2 3 4 5 6 7 8 9 - off
-const uint8_t tm1621_digit_row[2][12] = {{ 0x5F, 0x50, 0x3D, 0x79, 0x72, 0x6B, 0x6F, 0x51, 0x7F, 0x7B, 0x20, 0x00 },
- { 0xF5, 0x05, 0xB6, 0x97, 0x47, 0xD3, 0xF3, 0x85, 0xF7, 0xD7, 0x02, 0x00 }};
+const char tm1621_kchar[] PROGMEM = { "0|1|2|3|4|5|6|7|8|9|-|E| " };
+// 0 1 2 3 4 5 6 7 8 9 - E off
+const uint8_t tm1621_digit_row[2][13] = {{ 0x5F, 0x50, 0x3D, 0x79, 0x72, 0x6B, 0x6F, 0x51, 0x7F, 0x7B, 0x20, 0x2F, 0x00 },
+ { 0xF5, 0x05, 0xB6, 0x97, 0x47, 0xD3, 0xF3, 0x85, 0xF7, 0xD7, 0x02, 0xF2, 0x00 }};
struct Tm1621 {
uint8_t buffer[8];
@@ -230,23 +230,26 @@ void TM1621SendCommon(uint8_t common) {
void TM1621SendRows(void) {
// Tm1621.row[x] = "text", "----", " " or a number with one decimal like "0.4", "237.5", "123456.7"
- // "123456.7" will be shown as "9999" being a four digit overflow
+ // "123456.7" will be shown as "12E4" being a four digit overflow
// AddLog(LOG_LEVEL_DEBUG, PSTR("TM1: Row1 '%s', Row2 '%s'"), Tm1621.row[0], Tm1621.row[1]);
uint8_t buffer[8] = { 0 }; // TM1621 16-segment 4-bit common buffer
char row[4];
for (uint32_t j = 0; j < 2; j++) {
- // 0.4V => " 04", 0.0A => " ", 1234.5V => "1234"
+ // 0.4V => " 04", 0.0A => " ", 1234.5V => "1234", 12345.6V => "12E3"
uint32_t len = strlen(Tm1621.row[j]);
char *dp = nullptr; // Expect number larger than "123"
int row_idx = len -3; // "1234.5"
if (len <= 5) { // "----", " ", "0.4", "237.5"
dp = strchr(Tm1621.row[j], '.');
row_idx = len -1;
- }
- else if (len > 6) { // "12345.6"
- snprintf_P(Tm1621.row[j], sizeof(Tm1621.row[j]), PSTR("9999"));
+ } else { // "12345.6" = "12E3"
+ if (len > 13) { // "123456789012.3" = "12E9"
+ len = 13;
+ }
+ Tm1621.row[j][2] = 'E';
+ Tm1621.row[j][3] = '0' + len -4;
row_idx = 3;
}
row[3] = (row_idx >= 0) ? Tm1621.row[j][row_idx--] : ' ';
From b6c488a8839ce261773724a16a1ef3131af88423 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Mon, 1 Jul 2024 22:53:49 +0200
Subject: [PATCH 113/252] Berry `bytes.resize()` for large sizes (#21716)
---
CHANGELOG.md | 1 +
lib/libesp32/berry/src/be_byteslib.c | 2 +-
lib/libesp32/berry/src/be_filelib.c | 18 ++++++++++--------
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1f3a04621..0c897b183 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,6 +18,7 @@ All notable changes to this project will be documented in this file.
- ESP32 TM1621 number overflow from "9999" to "12E3" (#21131)
### Fixed
+- Berry `bytes.resize()` for large sizes
### Removed
diff --git a/lib/libesp32/berry/src/be_byteslib.c b/lib/libesp32/berry/src/be_byteslib.c
index 5c50a36ba..f40bc7f43 100644
--- a/lib/libesp32/berry/src/be_byteslib.c
+++ b/lib/libesp32/berry/src/be_byteslib.c
@@ -223,7 +223,7 @@ static unsigned int decode_base64(unsigned char input[], unsigned char output[])
// shrink or increase. If increase, fill with zeores. Cannot go beyond `size`
static void buf_set_len(buf_impl* attr, const size_t len)
{
- uint16_t old_len = attr->len;
+ int32_t old_len = attr->len;
attr->len = ((int32_t)len <= attr->size) ? (int32_t)len : attr->size;
if (old_len < attr->len) {
memset((void*) &attr->bufptr[old_len], 0, attr->len - old_len);
diff --git a/lib/libesp32/berry/src/be_filelib.c b/lib/libesp32/berry/src/be_filelib.c
index 87691809b..f4f760b1e 100644
--- a/lib/libesp32/berry/src/be_filelib.c
+++ b/lib/libesp32/berry/src/be_filelib.c
@@ -79,15 +79,17 @@ static int i_readbytes(bvm *vm)
be_call(vm, 2); /* call b.resize(size) */
be_pop(vm, 3); /* bytes() instance is at top */
- char *buffer = (char*) be_tobytes(vm, -1, NULL); /* we get the address of the internam buffer of size 'size' */
- size = be_fread(fh, buffer, size);
+ char *buffer = (char*) be_tobytes(vm, -1, NULL); /* we get the address of the internal buffer of size 'size' */
+ size_t read_size = be_fread(fh, buffer, size);
- /* resize if something went wrong */
- be_getmember(vm, -1, "resize");
- be_pushvalue(vm, -2);
- be_pushint(vm, size);
- be_call(vm, 2); /* call b.resize(size) */
- be_pop(vm, 3); /* bytes() instance is at top */
+ if (size != read_size) {
+ /* resize if something went wrong */
+ be_getmember(vm, -1, "resize");
+ be_pushvalue(vm, -2);
+ be_pushint(vm, read_size);
+ be_call(vm, 2); /* call b.resize(size) */
+ be_pop(vm, 3); /* bytes() instance is at top */
+ }
} else {
be_pushbytes(vm, NULL, 0);
}
From 344fdf94f778e51ae7b4ff05bb7b05f3d5b5b758 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 2 Jul 2024 10:19:59 +0200
Subject: [PATCH 114/252] Update changelogs
---
CHANGELOG.md | 2 +-
RELEASENOTES.md | 1 +
tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino | 4 ++--
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0c897b183..c68129c06 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -18,7 +18,7 @@ All notable changes to this project will be documented in this file.
- ESP32 TM1621 number overflow from "9999" to "12E3" (#21131)
### Fixed
-- Berry `bytes.resize()` for large sizes
+- Berry `bytes.resize()` for large sizes (#21716)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index a76fb90bd..b6380efb2 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -167,6 +167,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Scripter TCP server [#21660](https://github.com/arendst/Tasmota/issues/21660)
- ESP32 allow use of UART0 with enabled USB_CDC_CONSOLE [#21496](https://github.com/arendst/Tasmota/issues/21496)
- Berry `input()` returns empty string and does not crash [#21565](https://github.com/arendst/Tasmota/issues/21565)
+- Berry `bytes.resize()` for large sizes [#21716](https://github.com/arendst/Tasmota/issues/21716)
- Matter interverted attributes 0xFFF9 and 0xFFFB [#21636](https://github.com/arendst/Tasmota/issues/21636)
- Matter CASE Sigma1 resumption mode for faster reconnection [#21644](https://github.com/arendst/Tasmota/issues/21644)
- Matter TLV.U8 unsigned encoding [#21672](https://github.com/arendst/Tasmota/issues/21672)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
index ae31b78ff..fb326cbe6 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
@@ -9,7 +9,7 @@
#ifdef ESP32
#ifdef USE_DISPLAY_TM1621_SONOFF
/*********************************************************************************************\
- * Sonoff POWR3xxD and THR3xxD LCD support
+ * Sonoff POWR3xxD, POWCT and THR3xxD LCD support
*
* {"NAME":"Sonoff POWR316D","GPIO":[32,0,0,0,0,576,0,0,0,224,9280,0,3104,0,320,0,0,0,0,0,0,9184,9248,9216,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
* {"NAME":"Sonoff POWR320D","GPIO":[32,0,9313,0,9312,576,0,0,0,0,9280,0,3104,0,320,0,0,0,0,0,0,9184,9248,9216,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
@@ -265,7 +265,7 @@ void TM1621SendRows(void) {
for (uint32_t i = 0; i < 4; i++) {
needle[0] = row[i];
int index = GetCommandCode(command, sizeof(command), (const char*)needle, tm1621_kchar);
- if (-1 == index) { index = 11; }
+ if (-1 == index) { index = 12; } // Off
uint32_t bidx = (0 == j) ? i : 7 -i;
buffer[bidx] = tm1621_digit_row[j][index];
}
From 0e6e4e8949e2ddcc89973f54189466333b4c409a Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 2 Jul 2024 11:38:55 +0200
Subject: [PATCH 115/252] Prep support Sonoff Pow CT
---
tasmota/include/tasmota_template.h | 3 +-
.../tasmota_xnrg_energy/xnrg_19_cse7761.ino | 59 ++++++++++++-------
2 files changed, 40 insertions(+), 22 deletions(-)
diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h
index b1a9ee913..0494b340b 100644
--- a/tasmota/include/tasmota_template.h
+++ b/tasmota/include/tasmota_template.h
@@ -509,6 +509,7 @@ const char kSensorNamesFixed[] PROGMEM =
#define MAX_DINGTIAN_SHIFT 4
#define MAX_MAGIC_SWITCH_MODES 2
#define MAX_BL0942_RX 8 // Baudrates 1/5 (4800), 2/6 (9600), 3/7 (19200), 4/8 (38400), Support Positive values only 1..4, Support also negative values 5..8
+#define MAX_CSE7761 2 // Model 1/2 (DUALR3), 2/2 (POWCT)
const uint16_t kGpioNiceList[] PROGMEM = {
GPIO_NONE, // Not used
@@ -886,7 +887,7 @@ const uint16_t kGpioNiceList[] PROGMEM = {
#endif // USE_ADE7953
#ifdef USE_CSE7761
AGPIO(GPIO_CSE7761_TX), // CSE7761 Serial interface (Dual R3)
- AGPIO(GPIO_CSE7761_RX), // CSE7761 Serial interface (Dual R3)
+ AGPIO(GPIO_CSE7761_RX) + MAX_CSE7761, // CSE7761 Serial interface (1 = Dual R3, 2 = POWCT)
#endif
#ifdef USE_CSE7766
AGPIO(GPIO_CSE7766_TX), // CSE7766 Serial interface (S31 and Pow R2)
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
index 2fc4ea1fb..1ae32783d 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
@@ -20,7 +20,7 @@
#ifdef USE_ENERGY_SENSOR
#ifdef USE_CSE7761
/*********************************************************************************************\
- * CSE7761 - Energy (Sonoff Dual R3 Pow)
+ * CSE7761 - Energy (Sonoff Dual R3 Pow and Pox CT)
*
* Without zero-cross detection
* {"NAME":"Sonoff Dual R3","GPIO":[32,0,0,0,0,0,0,0,0,576,225,0,0,0,0,0,0,0,0,0,0,7296,7328,224,0,0,0,0,160,161,0,0,0,0,0,0],"FLAG":0,"BASE":1}
@@ -88,6 +88,8 @@ enum CSE7761 { RmsIAC, RmsIBC, RmsUC, PowerPAC, PowerPBC, PowerSC, EnergyAC, Ene
TasmotaSerial *Cse7761Serial = nullptr;
+enum CSE7761Model { CSE7761_MODEL_DUALR3, CSE7761_MODEL_POWCT }; // Model index number starting from 0
+
struct {
uint32_t frequency = 0;
uint32_t voltage_rms = 0;
@@ -98,6 +100,7 @@ struct {
uint8_t energy_update[2] = { 0 };
uint8_t init = 4;
uint8_t ready = 0;
+ uint8_t model;
} CSE7761Data;
/********************************************************************************************/
@@ -442,16 +445,18 @@ void Cse7761GetData(void) {
#endif
CSE7761Data.active_power[0] = (0 == CSE7761Data.current_rms[0]) ? 0 : (value & 0x80000000) ? (~value) + 1 : value;
- value = Cse7761ReadFallback(CSE7761_REG_RMSIB, CSE7761Data.current_rms[1], 3);
+ if (2 == Energy->phase_count) {
+ value = Cse7761ReadFallback(CSE7761_REG_RMSIB, CSE7761Data.current_rms[1], 3);
#ifdef CSE7761_SIMULATE
- value = 29760; // 0.185A
+ value = 29760; // 0.185A
#endif
- CSE7761Data.current_rms[1] = ((value >= 0x800000) || (value < 1600)) ? 0 : value; // No load threshold of 10mA
- value = Cse7761ReadFallback(CSE7761_REG_POWERPB, CSE7761Data.active_power[1], 4);
+ CSE7761Data.current_rms[1] = ((value >= 0x800000) || (value < 1600)) ? 0 : value; // No load threshold of 10mA
+ value = Cse7761ReadFallback(CSE7761_REG_POWERPB, CSE7761Data.active_power[1], 4);
#ifdef CSE7761_SIMULATE
- value = 2126641; // 44.05W
+ value = 2126641; // 44.05W
#endif
- CSE7761Data.active_power[1] = (0 == CSE7761Data.current_rms[1]) ? 0 : (value & 0x80000000) ? (~value) + 1 : value;
+ CSE7761Data.active_power[1] = (0 == CSE7761Data.current_rms[1]) ? 0 : (value & 0x80000000) ? (~value) + 1 : value;
+ }
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("C61: F%d, U%d, I%d/%d, P%d/%d"),
CSE7761Data.frequency, CSE7761Data.voltage_rms,
@@ -459,16 +464,20 @@ void Cse7761GetData(void) {
CSE7761Data.active_power[0], CSE7761Data.active_power[1]);
if (Energy->power_on) { // Powered on
- // Voltage = RmsU * RmsUC * 10 / 0x400000
- // Energy->voltage[0] = (float)(((uint64_t)CSE7761Data.voltage_rms * CSE7761Data.coefficient[RmsUC] * 10) >> 22) / 1000; // V
- Energy->voltage[0] = ((float)CSE7761Data.voltage_rms / EnergyGetCalibration(ENERGY_VOLTAGE_CALIBRATION)); // V
- Energy->voltage[1] = Energy->voltage[0];
+ for (uint32_t channel = 0; channel < Energy->phase_count; channel++) {
+ if (0 == channel) {
+ // Voltage = RmsU * RmsUC * 10 / 0x400000
+ // Energy->voltage[0] = (float)(((uint64_t)CSE7761Data.voltage_rms * CSE7761Data.coefficient[RmsUC] * 10) >> 22) / 1000; // V
+ Energy->voltage[0] = ((float)CSE7761Data.voltage_rms / EnergyGetCalibration(ENERGY_VOLTAGE_CALIBRATION)); // V
#ifdef CSE7761_FREQUENCY
- Energy->frequency[0] = (CSE7761Data.frequency) ? ((float)EnergyGetCalibration(ENERGY_FREQUENCY_CALIBRATION) / 8 / CSE7761Data.frequency) : 0; // Hz
- Energy->frequency[1] = Energy->frequency[0];
+ Energy->frequency[0] = (CSE7761Data.frequency) ? ((float)EnergyGetCalibration(ENERGY_FREQUENCY_CALIBRATION) / 8 / CSE7761Data.frequency) : 0; // Hz
#endif
-
- for (uint32_t channel = 0; channel < 2; channel++) {
+ } else {
+ Energy->voltage[1] = Energy->voltage[0];
+#ifdef CSE7761_FREQUENCY
+ Energy->frequency[1] = Energy->frequency[0];
+#endif
+ }
Energy->data_valid[channel] = 0;
uint32_t power_calibration = EnergyGetCalibration(ENERGY_POWER_CALIBRATION, channel);
// Active power = PowerPA * PowerPAC * 1000 / 0x80000000
@@ -563,7 +572,7 @@ void Cse7761EverySecond(void) {
}
else {
if (2 == CSE7761Data.ready) {
- for (uint32_t channel = 0; channel < 2; channel++) {
+ for (uint32_t channel = 0; channel < Energy->phase_count; channel++) {
if (CSE7761Data.energy_update[channel]) {
Energy->kWhtoday_delta[channel] += ((CSE7761Data.energy[channel] * 1000) / CSE7761Data.energy_update[channel]) / 36;
CSE7761Data.energy[channel] = 0;
@@ -577,7 +586,7 @@ void Cse7761EverySecond(void) {
void Cse7761SnsInit(void) {
// Software serial init needs to be done here as earlier (serial) interrupts may lead to Exceptions
- Cse7761Serial = new TasmotaSerial(Pin(GPIO_CSE7761_RX), Pin(GPIO_CSE7761_TX), 1);
+ Cse7761Serial = new TasmotaSerial(Pin(GPIO_CSE7761_RX, GPIO_ANY), Pin(GPIO_CSE7761_TX), 1);
if (Cse7761Serial->begin(38400, SERIAL_8E1)) {
if (Cse7761Serial->hardwareSerial()) {
SetSerial(38400, TS_SERIAL_8E1);
@@ -599,10 +608,15 @@ void Cse7761SnsInit(void) {
}
void Cse7761DrvInit(void) {
- if (PinUsed(GPIO_CSE7761_RX) && PinUsed(GPIO_CSE7761_TX)) {
+ if (PinUsed(GPIO_CSE7761_RX, GPIO_ANY) && PinUsed(GPIO_CSE7761_TX)) {
+ CSE7761Data.model = GetPin(Pin(GPIO_CSE7761_RX, GPIO_ANY)) - AGPIO(GPIO_CSE7761_RX);
CSE7761Data.ready = 0;
- CSE7761Data.init = 4; // Init setup steps
- Energy->phase_count = 2; // Handle two channels as two phases
+ CSE7761Data.init = 4; // Init setup steps
+
+// Energy->phase_count = 1; // Handle one channel (default set by xdrv_03_energy.ino)
+ if (CSE7761_MODEL_DUALR3 == CSE7761Data.model) {
+ Energy->phase_count = 2; // Handle two channels as two phases
+ }
Energy->voltage_common = true; // Use common voltage
#ifdef CSE7761_FREQUENCY
Energy->frequency_common = true; // Use common frequency
@@ -615,7 +629,10 @@ void Cse7761DrvInit(void) {
bool Cse7761Command(void) {
bool serviced = true;
- uint32_t channel = (2 == XdrvMailbox.index) ? 1 : 0;
+ uint32_t channel = 0;
+ if (Energy->phase_count > 1) {
+ channel = (2 == XdrvMailbox.index) ? 1 : 0;
+ }
uint32_t value = (uint32_t)(CharToFloat(XdrvMailbox.data) * 100); // 1.23 = 123
if (CMND_POWERCAL == Energy->command_code) {
From 0b54d49181fe87d64401ac462b4dfe52dda4afdb Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 2 Jul 2024 17:21:48 +0200
Subject: [PATCH 116/252] Refactor TM1621 driver
---
.../xdrv_87_esp32_sonoff_tm1621.ino | 39 ++++++++++++-------
1 file changed, 25 insertions(+), 14 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
index fb326cbe6..c1d544349 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
@@ -56,10 +56,13 @@ enum Tm1621Units { TM1621_NONE, TM1621_TEMPERATURE, TM1621_HUMIDITY, TM1621_VOL
const uint8_t tm1621_commands[] = { TM1621_SYS_EN, TM1621_LCD_ON, TM1621_BIAS, TM1621_TIMER_DIS, TM1621_WDT_DIS, TM1621_TONE_OFF, TM1621_IRQ_DIS };
-const char tm1621_kchar[] PROGMEM = { "0|1|2|3|4|5|6|7|8|9|-|E| " };
-// 0 1 2 3 4 5 6 7 8 9 - E off
-const uint8_t tm1621_digit_row[2][13] = {{ 0x5F, 0x50, 0x3D, 0x79, 0x72, 0x6B, 0x6F, 0x51, 0x7F, 0x7B, 0x20, 0x2F, 0x00 },
- { 0xF5, 0x05, 0xB6, 0x97, 0x47, 0xD3, 0xF3, 0x85, 0xF7, 0xD7, 0x02, 0xF2, 0x00 }};
+const char tm1621_kchar[] PROGMEM = { " |0|1|2|3|4|5|6|7|8|9|-|E" };
+// b0 ---
+// b1 / / b4
+// --- b5
+// b2 / / b6
+// b3 --- off 0 1 2 3 4 5 6 7 8 9 - E
+const uint8_t tm1621_digit[] = { 0x00, 0x5F, 0x50, 0x3D, 0x79, 0x72, 0x6B, 0x6F, 0x51, 0x7F, 0x7B, 0x20, 0x2F };
struct Tm1621 {
uint8_t buffer[8];
@@ -228,6 +231,19 @@ void TM1621SendCommon(uint8_t common) {
}
}
+uint32_t TM1621Row2(uint32_t row1) {
+ uint32_t row2 = 0;
+ bitWrite(row2, 0, bitRead(row1, 6));
+ bitWrite(row2, 1, bitRead(row1, 5));
+ bitWrite(row2, 2, bitRead(row1, 4));
+ bitWrite(row2, 3, bitRead(row1, 7));
+ bitWrite(row2, 4, bitRead(row1, 3));
+ bitWrite(row2, 5, bitRead(row1, 2));
+ bitWrite(row2, 6, bitRead(row1, 1));
+ bitWrite(row2, 7, bitRead(row1, 0));
+ return row2;
+}
+
void TM1621SendRows(void) {
// Tm1621.row[x] = "text", "----", " " or a number with one decimal like "0.4", "237.5", "123456.7"
// "123456.7" will be shown as "12E4" being a four digit overflow
@@ -265,16 +281,11 @@ void TM1621SendRows(void) {
for (uint32_t i = 0; i < 4; i++) {
needle[0] = row[i];
int index = GetCommandCode(command, sizeof(command), (const char*)needle, tm1621_kchar);
- if (-1 == index) { index = 12; } // Off
- uint32_t bidx = (0 == j) ? i : 7 -i;
- buffer[bidx] = tm1621_digit_row[j][index];
- }
- if (dp) {
- if (0 == j) {
- buffer[2] |= 0x80; // Row 1 decimal point
- } else {
- buffer[5] |= 0x08; // Row 2 decimal point
- }
+ if (-1 == index) { index = 0; } // Off
+ uint32_t digit = tm1621_digit[index];
+ if ((2 == i) && dp) { digit |= 0x80; } // Decimal point
+ uint32_t bidx = (!j) ? i : 7 -i;
+ buffer[bidx] = (j) ? TM1621Row2(digit) : digit;
}
}
From 640aabe1b3c18c5bf7dcedb13a5d4394e967a07c Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 2 Jul 2024 18:07:53 +0200
Subject: [PATCH 117/252] Fix ESP32 MaxPowerHold edge case (#21695)
---
.../xdrv_03_esp32_energy.ino | 34 +++++++++----------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 453f73f39..4c51b043c 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -835,25 +835,25 @@ void EnergyMarginCheck(void) {
if (Energy->Settings.phase[phase].max_power_limit) {
energy_power_u = (uint16_t)(Energy->active_power[phase]);
bool power_on = (TasmotaGlobal.power & (1 << phase));
- if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
+// if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
+ if (energy_power_u > Energy->Settings.phase[phase].max_power_limit) {
if (!Energy->mplh_counter[phase]) {
- Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold;
- } else {
- Energy->mplh_counter[phase]--;
- if (!Energy->mplh_counter[phase]) {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- if (set_all_power) {
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- } else {
- ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
- }
- if (!Energy->mplr_counter[phase]) {
- Energy->mplr_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
- }
- Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
+ Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold +1;
+ }
+ Energy->mplh_counter[phase]--;
+ if (!Energy->mplh_counter[phase]) {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
+ MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
+ EnergyMqttShow();
+ if (set_all_power) {
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
+ } else {
+ ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
}
+ if (!Energy->mplr_counter[phase]) {
+ Energy->mplr_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
+ }
+ Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
}
}
else if (power_on && (energy_power_u <= Energy->Settings.phase[phase].max_power_limit)) {
From 1fd8de676259729a413e9bce4d4b766fe23a13df Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Tue, 2 Jul 2024 18:47:55 +0200
Subject: [PATCH 118/252] Update energy structure
---
.../tasmota_xdrv_driver/xdrv_03_energy.ino | 36 +++++++++----------
.../xdrv_03_esp32_energy.ino | 36 +++++++++----------
.../xdrv_52_3_berry_energy.ino | 20 +++++------
3 files changed, 46 insertions(+), 46 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
index cc364876f..d5fe43c4f 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
@@ -131,9 +131,9 @@ typedef struct {
bool max_current_flag;
#ifdef USE_ENERGY_POWER_LIMIT
- uint16_t mplh_counter;
- uint16_t mplw_counter;
- uint8_t mplr_counter;
+ uint16_t mpl_hold_counter;
+ uint16_t mpl_window_counter;
+ uint8_t mpl_retry_counter;
uint8_t max_energy_state;
#endif // USE_ENERGY_POWER_LIMIT
#endif // USE_ENERGY_MARGIN_DETECTION
@@ -567,34 +567,34 @@ void EnergyMarginCheck(void) {
// Max Power
if (Settings->energy_max_power_limit) {
if (Energy->active_power[0] > Settings->energy_max_power_limit) {
- if (!Energy->mplh_counter) {
- Energy->mplh_counter = Settings->energy_max_power_limit_hold;
+ if (!Energy->mpl_hold_counter) {
+ Energy->mpl_hold_counter = Settings->energy_max_power_limit_hold;
} else {
- Energy->mplh_counter--;
- if (!Energy->mplh_counter) {
+ Energy->mpl_hold_counter--;
+ if (!Energy->mpl_hold_counter) {
ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
EnergyMqttShow();
SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- if (!Energy->mplr_counter) {
- Energy->mplr_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
+ if (!Energy->mpl_retry_counter) {
+ Energy->mpl_retry_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
}
- Energy->mplw_counter = Settings->energy_max_power_limit_window;
+ Energy->mpl_window_counter = Settings->energy_max_power_limit_window;
}
}
}
else if (TasmotaGlobal.power && (energy_power_u <= Settings->energy_max_power_limit)) {
- Energy->mplh_counter = 0;
- Energy->mplr_counter = 0;
- Energy->mplw_counter = 0;
+ Energy->mpl_hold_counter = 0;
+ Energy->mpl_retry_counter = 0;
+ Energy->mpl_window_counter = 0;
}
if (!TasmotaGlobal.power) {
- if (Energy->mplw_counter) {
- Energy->mplw_counter--;
+ if (Energy->mpl_window_counter) {
+ Energy->mpl_window_counter--;
} else {
- if (Energy->mplr_counter) {
- Energy->mplr_counter--;
- if (Energy->mplr_counter) {
+ if (Energy->mpl_retry_counter) {
+ Energy->mpl_retry_counter--;
+ if (Energy->mpl_retry_counter) {
ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "\":\"%s\"}"), GetStateText(1));
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
RestorePower(true, SRC_MAXPOWER);
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 4c51b043c..1782ac2af 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -181,8 +181,8 @@ typedef struct {
float daily_sum_export_balanced; // 123.123 kWh
uint16_t power_history[ENERGY_MAX_PHASES][3];
- uint16_t mplh_counter[ENERGY_MAX_PHASES];
- uint16_t mplw_counter[ENERGY_MAX_PHASES];
+ uint16_t mpl_hold_counter[ENERGY_MAX_PHASES];
+ uint16_t mpl_window_counter[ENERGY_MAX_PHASES];
uint8_t data_valid[ENERGY_MAX_PHASES];
uint8_t phase_count; // Number of phases active
@@ -190,7 +190,7 @@ typedef struct {
uint8_t command_code;
uint8_t power_steady_counter; // Allow for power on stabilization
uint8_t margin_stable;
- uint8_t mplr_counter[ENERGY_MAX_PHASES];
+ uint8_t mpl_retry_counter[ENERGY_MAX_PHASES];
uint8_t max_energy_state[ENERGY_MAX_PHASES];
uint8_t hour;
@@ -837,11 +837,11 @@ void EnergyMarginCheck(void) {
bool power_on = (TasmotaGlobal.power & (1 << phase));
// if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
if (energy_power_u > Energy->Settings.phase[phase].max_power_limit) {
- if (!Energy->mplh_counter[phase]) {
- Energy->mplh_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold +1;
+ if (!Energy->mpl_hold_counter[phase]) {
+ Energy->mpl_hold_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold +1;
}
- Energy->mplh_counter[phase]--;
- if (!Energy->mplh_counter[phase]) {
+ Energy->mpl_hold_counter[phase]--;
+ if (!Energy->mpl_hold_counter[phase]) {
ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
EnergyMqttShow();
@@ -850,24 +850,24 @@ void EnergyMarginCheck(void) {
} else {
ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
}
- if (!Energy->mplr_counter[phase]) {
- Energy->mplr_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
+ if (!Energy->mpl_retry_counter[phase]) {
+ Energy->mpl_retry_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
}
- Energy->mplw_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
+ Energy->mpl_window_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
}
}
else if (power_on && (energy_power_u <= Energy->Settings.phase[phase].max_power_limit)) {
- Energy->mplh_counter[phase] = 0;
- Energy->mplr_counter[phase] = 0;
- Energy->mplw_counter[phase] = 0;
+ Energy->mpl_hold_counter[phase] = 0;
+ Energy->mpl_retry_counter[phase] = 0;
+ Energy->mpl_window_counter[phase] = 0;
}
if (!power_on) {
- if (Energy->mplw_counter[phase]) {
- Energy->mplw_counter[phase]--;
+ if (Energy->mpl_window_counter[phase]) {
+ Energy->mpl_window_counter[phase]--;
} else {
- if (Energy->mplr_counter[phase]) {
- Energy->mplr_counter[phase]--;
- if (Energy->mplr_counter[phase]) {
+ if (Energy->mpl_retry_counter[phase]) {
+ Energy->mpl_retry_counter[phase]--;
+ if (Energy->mpl_retry_counter[phase]) {
ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "%d\":\"%s\"}"), phase +1, GetStateText(1));
MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
if (set_all_power) {
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_energy.ino
index 6622f76f1..874de687d 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_energy.ino
@@ -83,16 +83,16 @@ extern "C" {
{ "import_active", offsetof(tEnergy, import_active[0]), 0, 0, ctypes_float, 0 },
{ "import_active_2", offsetof(tEnergy, import_active[1]), 0, 0, ctypes_float, 0 },
{ "import_active_3", offsetof(tEnergy, import_active[2]), 0, 0, ctypes_float, 0 },
- { "max_current_flag", offsetof(tEnergy, max_current_flag), 0, 0, ctypes_u8, 0 },
- { "max_energy_state", offsetof(tEnergy, max_energy_state), 0, 0, ctypes_u8, 0 },
- { "max_power_flag", offsetof(tEnergy, max_power_flag), 0, 0, ctypes_u8, 0 },
- { "max_voltage_flag", offsetof(tEnergy, max_voltage_flag), 0, 0, ctypes_u8, 0 },
- { "min_current_flag", offsetof(tEnergy, min_current_flag), 0, 0, ctypes_u8, 0 },
- { "min_power_flag", offsetof(tEnergy, min_power_flag), 0, 0, ctypes_u8, 0 },
- { "min_voltage_flag", offsetof(tEnergy, min_voltage_flag), 0, 0, ctypes_u8, 0 },
- { "mplh_counter", offsetof(tEnergy, mplh_counter), 0, 0, ctypes_u16, 0 },
- { "mplr_counter", offsetof(tEnergy, mplr_counter), 0, 0, ctypes_u8, 0 },
- { "mplw_counter", offsetof(tEnergy, mplw_counter), 0, 0, ctypes_u16, 0 },
+ { "max_current_flag", offsetof(tEnergy, max_current_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "max_energy_state", offsetof(tEnergy, max_energy_state[0]), 0, 0, ctypes_u8, 0 },
+ { "max_power_flag", offsetof(tEnergy, max_power_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "max_voltage_flag", offsetof(tEnergy, max_voltage_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "min_current_flag", offsetof(tEnergy, min_current_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "min_power_flag", offsetof(tEnergy, min_power_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "min_voltage_flag", offsetof(tEnergy, min_voltage_flag[0]), 0, 0, ctypes_u8, 0 },
+ { "mpl_hold_counter", offsetof(tEnergy, mpl_hold_counter[0]), 0, 0, ctypes_u16, 0 },
+ { "mpl_retry_counter", offsetof(tEnergy, mpl_retry_counter[0]), 0, 0, ctypes_u8, 0 },
+ { "mpl_window_counter", offsetof(tEnergy, mpl_window_counter[0]), 0, 0, ctypes_u16, 0 },
{ "period", offsetof(tEnergy, period_kWh[0]), 0, 0, ctypes_float, 0 },
{ "period_2", offsetof(tEnergy, period_kWh[1]), 0, 0, ctypes_float, 0 },
{ "period_3", offsetof(tEnergy, period_kWh[2]), 0, 0, ctypes_float, 0 },
From ac011132ee4284a5af8b4a5561a12b3b2a288eec Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Wed, 3 Jul 2024 11:07:59 +0200
Subject: [PATCH 119/252] Fix ESP8266 MaxPower edge case
---
.../tasmota_xdrv_driver/xdrv_03_energy.ino | 25 +++++++++----------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
index d5fe43c4f..ce6341398 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
@@ -566,21 +566,20 @@ void EnergyMarginCheck(void) {
#ifdef USE_ENERGY_POWER_LIMIT
// Max Power
if (Settings->energy_max_power_limit) {
- if (Energy->active_power[0] > Settings->energy_max_power_limit) {
+ if (energy_power_u > Settings->energy_max_power_limit) {
if (!Energy->mpl_hold_counter) {
- Energy->mpl_hold_counter = Settings->energy_max_power_limit_hold;
- } else {
- Energy->mpl_hold_counter--;
- if (!Energy->mpl_hold_counter) {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- if (!Energy->mpl_retry_counter) {
- Energy->mpl_retry_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
- }
- Energy->mpl_window_counter = Settings->energy_max_power_limit_window;
+ Energy->mpl_hold_counter = Settings->energy_max_power_limit_hold +1;
+ }
+ Energy->mpl_hold_counter--;
+ if (!Energy->mpl_hold_counter) {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
+ MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
+ EnergyMqttShow();
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
+ if (!Energy->mpl_retry_counter) {
+ Energy->mpl_retry_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
}
+ Energy->mpl_window_counter = Settings->energy_max_power_limit_window;
}
}
else if (TasmotaGlobal.power && (energy_power_u <= Settings->energy_max_power_limit)) {
From 9b537d81e0f09a40967bef732103127a79c82f7e Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Wed, 3 Jul 2024 13:52:01 +0200
Subject: [PATCH 120/252] Fix energy maxpower retry count (#21695)
---
.../tasmota_xdrv_driver/xdrv_03_energy.ino | 27 +++++++-------
.../xdrv_03_esp32_energy.ino | 36 ++++++++-----------
2 files changed, 26 insertions(+), 37 deletions(-)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
index ce6341398..6c73cdbe2 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_energy.ino
@@ -572,13 +572,18 @@ void EnergyMarginCheck(void) {
}
Energy->mpl_hold_counter--;
if (!Energy->mpl_hold_counter) {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
if (!Energy->mpl_retry_counter) {
Energy->mpl_retry_counter = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
}
+ Energy->mpl_retry_counter--;
+ if (Energy->mpl_retry_counter) {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "\":%d}"), energy_power_u);
+ } else {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "\":\"%s\"}"), GetStateText(0));
+ }
+ MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
+ EnergyMqttShow();
+ SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
Energy->mpl_window_counter = Settings->energy_max_power_limit_window;
}
}
@@ -592,17 +597,9 @@ void EnergyMarginCheck(void) {
Energy->mpl_window_counter--;
} else {
if (Energy->mpl_retry_counter) {
- Energy->mpl_retry_counter--;
- if (Energy->mpl_retry_counter) {
- ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "\":\"%s\"}"), GetStateText(1));
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
- RestorePower(true, SRC_MAXPOWER);
- } else {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "\":\"%s\"}"), GetStateText(0));
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- }
+ ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "\":\"%s\"}"), GetStateText(1));
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
+ RestorePower(true, SRC_MAXPOWER);
}
}
}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
index 1782ac2af..54bad4a41 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_03_esp32_energy.ino
@@ -835,14 +835,21 @@ void EnergyMarginCheck(void) {
if (Energy->Settings.phase[phase].max_power_limit) {
energy_power_u = (uint16_t)(Energy->active_power[phase]);
bool power_on = (TasmotaGlobal.power & (1 << phase));
-// if (Energy->active_power[phase] > Energy->Settings.phase[phase].max_power_limit) {
if (energy_power_u > Energy->Settings.phase[phase].max_power_limit) {
if (!Energy->mpl_hold_counter[phase]) {
Energy->mpl_hold_counter[phase] = Energy->Settings.phase[phase].max_power_limit_hold +1;
}
Energy->mpl_hold_counter[phase]--;
if (!Energy->mpl_hold_counter[phase]) {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
+ if (!Energy->mpl_retry_counter[phase]) {
+ Energy->mpl_retry_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
+ }
+ Energy->mpl_retry_counter[phase]--;
+ if (Energy->mpl_retry_counter[phase]) {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHED "%d\":%d}"), phase +1, energy_power_u);
+ } else {
+ ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "%d\":\"%s\"}"), phase +1, GetStateText(0));
+ }
MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
EnergyMqttShow();
if (set_all_power) {
@@ -850,9 +857,6 @@ void EnergyMarginCheck(void) {
} else {
ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
}
- if (!Energy->mpl_retry_counter[phase]) {
- Energy->mpl_retry_counter[phase] = Settings->param[P_MAX_POWER_RETRY] +1; // SetOption33 - Max Power Retry count
- }
Energy->mpl_window_counter[phase] = Energy->Settings.phase[phase].max_power_limit_window;
}
}
@@ -866,24 +870,12 @@ void EnergyMarginCheck(void) {
Energy->mpl_window_counter[phase]--;
} else {
if (Energy->mpl_retry_counter[phase]) {
- Energy->mpl_retry_counter[phase]--;
- if (Energy->mpl_retry_counter[phase]) {
- ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "%d\":\"%s\"}"), phase +1, GetStateText(1));
- MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
- if (set_all_power) {
- RestorePower(true, SRC_MAXPOWER);
- } else {
- ExecuteCommandPower(phase +1, POWER_ON, SRC_MAXPOWER);
- }
+ ResponseTime_P(PSTR(",\"" D_JSON_POWERMONITOR "%d\":\"%s\"}"), phase +1, GetStateText(1));
+ MqttPublishPrefixTopicRulesProcess_P(RESULT_OR_STAT, PSTR(D_JSON_POWERMONITOR));
+ if (set_all_power) {
+ RestorePower(true, SRC_MAXPOWER);
} else {
- ResponseTime_P(PSTR(",\"" D_JSON_MAXPOWERREACHEDRETRY "%d\":\"%s\"}"), phase +1, GetStateText(0));
- MqttPublishPrefixTopicRulesProcess_P(STAT, S_RSLT_WARNING);
- EnergyMqttShow();
- if (set_all_power) {
- SetAllPower(POWER_OFF_FORCE, SRC_MAXPOWER);
- } else {
- ExecuteCommandPower(phase +1, POWER_OFF_FORCE, SRC_MAXPOWER);
- }
+ ExecuteCommandPower(phase +1, POWER_ON, SRC_MAXPOWER);
}
}
}
From 59fc68026bfdbcc7ba85eabbb27e64dc042d9fbf Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Wed, 3 Jul 2024 16:31:43 +0200
Subject: [PATCH 121/252] Add Support for Sonoff POWCT Ring (#21131)
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
.../xdrv_87_esp32_sonoff_tm1621.ino | 27 +++++++++++++++----
.../tasmota_xnrg_energy/xnrg_19_cse7761.ino | 4 ++-
4 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c68129c06..158ea7f58 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file.
- Berry `math.min()` and `math.max()` (#21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second (#21711)
+- Support for Sonoff POWCT Ring (#21131)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index b6380efb2..00b2eb0b4 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -123,6 +123,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
### Added
- Support for QMP6988 temperature and pressure sensor
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
+- Support for Sonoff POWCT Ring [#21131](https://github.com/arendst/Tasmota/issues/21131)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages [#21574](https://github.com/arendst/Tasmota/issues/21574)
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase [#21695](https://github.com/arendst/Tasmota/issues/21695)
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
index c1d544349..cce1f7c82 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_87_esp32_sonoff_tm1621.ino
@@ -17,6 +17,7 @@
* {"NAME":"Sonoff THR316D GPIO26","GPIO":[32,0,0,0,225,9280,0,0,0,321,0,576,320,9184,9216,0,0,224,0,9248,0,1,1,3840,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
* {"NAME":"Sonoff THR320D","GPIO":[32,0,0,0,226,9280,0,0,0,321,0,576,320,9184,9216,9312,0,0,9313,9248,0,1,0,3840,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
* {"NAME":"Sonoff THR320D GPIO26","GPIO":[32,0,0,0,226,9280,0,0,0,321,0,576,320,9184,9216,9312,0,0,9313,9248,0,1,1,3840,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
+ * {"NAME":"Sonoff POWCT","GPIO":[32,0,0,0,0,9280,0,0,0,320,0,576,0,9184,9216,0,0,224,0,9248,0,7329,7296,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
*
* DspSpeed 2..127 = Display rotation speed in seconds if more than one value is requested
* DspLine<1|2> ,,,,... = Display specific JSON value and rotate between them
@@ -51,12 +52,14 @@
#define TM1621_BIAS 0x29 // 0b00101001 = LCD 1/3 bias 4 commons option
#define TM1621_IRQ_DIS 0x80 // 0b100x0xxx
-enum Tm1621Device { TM1621_USER, TM1621_POWR316D, TM1621_THR316D };
+enum Tm1621Device { TM1621_USER, TM1621_POWR316D, TM1621_THR316D, TM1621_POWCT };
+const char tm1621_device PROGMEM[] = "User|PowR3|THR3|PowCT";
+
enum Tm1621Units { TM1621_NONE, TM1621_TEMPERATURE, TM1621_HUMIDITY, TM1621_VOLTAGE_CURRENT, TM1621_ENERGY_POWER };
const uint8_t tm1621_commands[] = { TM1621_SYS_EN, TM1621_LCD_ON, TM1621_BIAS, TM1621_TIMER_DIS, TM1621_WDT_DIS, TM1621_TONE_OFF, TM1621_IRQ_DIS };
-const char tm1621_kchar[] PROGMEM = { " |0|1|2|3|4|5|6|7|8|9|-|E" };
+const char tm1621_kchar[] PROGMEM = " |0|1|2|3|4|5|6|7|8|9|-|E";
// b0 ---
// b1 / / b4
// --- b5
@@ -307,7 +310,18 @@ void TM1621SendRows(void) {
void TM1621PreInit(void) {
if (!PinUsed(GPIO_TM1621_CS) || !PinUsed(GPIO_TM1621_WR) || !PinUsed(GPIO_TM1621_RD) || !PinUsed(GPIO_TM1621_DAT)) { return; }
- Tm1621.device = (14 == Pin(GPIO_TM1621_DAT)) ? TM1621_POWR316D : (5 == Pin(GPIO_TM1621_DAT)) ? TM1621_THR316D : TM1621_USER;
+ Tm1621.device = TM1621_USER;
+ uint32_t pin_tm1621_dat = Pin(GPIO_TM1621_DAT);
+ if (5 == Pin(GPIO_TM1621_DAT)) {
+ if (25 == Pin(GPIO_CSE7761_RX, 1)) {
+ Tm1621.device = TM1621_POWCT;
+ } else {
+ Tm1621.device = TM1621_THR316D;
+ }
+ }
+ else if (14 == Pin(GPIO_TM1621_DAT)) {
+ Tm1621.device = TM1621_POWR316D;
+ }
Tm1621.present = true;
Tm1621.pin_da = Pin(GPIO_TM1621_DAT);
Tm1621.pin_cs = Pin(GPIO_TM1621_CS);
@@ -326,7 +340,9 @@ void TM1621PreInit(void) {
Tm1621.state = 200;
- AddLog(LOG_LEVEL_INFO, PSTR("DSP: TM1621"));
+ char stemp[8];
+ AddLog(LOG_LEVEL_INFO, PSTR("DSP: TM1621 for %s"),
+ GetTextIndexed(stemp, sizeof(stemp), Tm1621.device, tm1621_device));
}
void TM1621Init(void) {
@@ -452,7 +468,8 @@ void TM1621Show(void) {
}
#ifdef USE_ENERGY_SENSOR
- if (TM1621_POWR316D == Tm1621.device) {
+ if ((TM1621_POWR316D == Tm1621.device) ||
+ (TM1621_POWCT == Tm1621.device)) {
if (0 == Tm1621.display_rotate) {
ext_snprintf_P(Tm1621.row[0], sizeof(Tm1621.row[0]), PSTR("%1_f"), &Energy->voltage[0]);
ext_snprintf_P(Tm1621.row[1], sizeof(Tm1621.row[1]), PSTR("%1_f"), &Energy->current[0]);
diff --git a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
index 1ae32783d..ac44de9a6 100644
--- a/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
+++ b/tasmota/tasmota_xnrg_energy/xnrg_19_cse7761.ino
@@ -20,7 +20,7 @@
#ifdef USE_ENERGY_SENSOR
#ifdef USE_CSE7761
/*********************************************************************************************\
- * CSE7761 - Energy (Sonoff Dual R3 Pow and Pox CT)
+ * CSE7761 - Energy (Sonoff Dual R3 and Pow CT)
*
* Without zero-cross detection
* {"NAME":"Sonoff Dual R3","GPIO":[32,0,0,0,0,0,0,0,0,576,225,0,0,0,0,0,0,0,0,0,0,7296,7328,224,0,0,0,0,160,161,0,0,0,0,0,0],"FLAG":0,"BASE":1}
@@ -28,6 +28,8 @@
* With zero-cross detection
* {"NAME":"Sonoff Dual R3 (ZCD)","GPIO":[32,0,0,0,7552,0,0,0,0,576,225,0,0,0,0,0,0,0,0,0,0,7296,7328,224,0,0,0,0,160,161,0,0,0,0,0,0],"FLAG":0,"BASE":1}
*
+ * {"NAME":"Sonoff POWCT","GPIO":[32,0,0,0,0,9280,0,0,0,320,0,576,0,9184,9216,0,0,224,0,9248,0,7329,7296,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
+ *
* Based on datasheet from ChipSea and analysing serial data
* See https://github.com/arendst/Tasmota/discussions/10793
* https://goldenrelay.en.alibaba.com/product/62119012875-811845870/GOLDEN_GI_1A_5LH_SPST_5V_5A_10A_250VAC_NO_18_5_10_5_15_3mm_sealed_type_all_certificate_compliances_class_F_SPDT_Form_available.html
From b1422ff6b5456298e915b5799cd49aa2c7deca7d Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Wed, 3 Jul 2024 20:27:18 +0200
Subject: [PATCH 122/252] make Tasmota compatible for Arduino espressif32 based
on IDF 5.2.2 (#21723)
Co-authored-by: Christian Baars
---
.../TasmotaSerial-3.6.0/src/TasmotaSerial.cpp | 2 +-
.../TasmotaSerial-3.6.0/src/TasmotaSerial.h | 2 +-
lib/lib_div/ArduinoNTPd/NTPServer.cpp | 21 ++++++++++---------
.../src/SSLClient/client/BSSL_SSL_Client.h | 4 ++++
.../src/esp8266toEsp32.h | 14 +++++++++++++
platformio_override_sample.ini | 3 ++-
.../support_crash_recorder.ino | 4 ++++
7 files changed, 37 insertions(+), 13 deletions(-)
diff --git a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
index 3871fc33b..5f9b10561 100644
--- a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
+++ b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
@@ -152,7 +152,7 @@ void TasmotaSerial::setTransmitEnablePin(int tx_enable_pin) {
bool TasmotaSerial::freeUart(void) {
for (uint32_t i = SOC_UART_NUM -1; i >= 0; i--) {
if (0 == bitRead(tasmota_serial_uart_bitmap, i)) {
- m_uart = i;
+ m_uart = uart_port_t(i);
bitSet(tasmota_serial_uart_bitmap, m_uart);
return true;
}
diff --git a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
index 230dd36ff..da946d8eb 100644
--- a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
+++ b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
@@ -109,7 +109,7 @@ class TasmotaSerial : public Stream {
uint32_t m_speed;
uint32_t m_config;
HardwareSerial *TSerial;
- int m_uart = 0;
+ uart_port_t m_uart = uart_port_t(0);
#endif
};
diff --git a/lib/lib_div/ArduinoNTPd/NTPServer.cpp b/lib/lib_div/ArduinoNTPd/NTPServer.cpp
index 860ccc79d..689923271 100644
--- a/lib/lib_div/ArduinoNTPd/NTPServer.cpp
+++ b/lib/lib_div/ArduinoNTPd/NTPServer.cpp
@@ -23,7 +23,7 @@ bool NtpServer::beginListening()
return false;
}
-bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
+bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
{
// millisecs is millis() at the time of the last iTOW reception, where iTOW%1000 == 0
uint32_t refMillis = millis()-millisecs;
@@ -33,7 +33,7 @@ bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
}
bool processed = false;
-
+
int packetDataSize = timeServerPort_.parsePacket();
if (packetDataSize && packetDataSize >= NtpPacket::PACKET_SIZE)
{
@@ -54,7 +54,7 @@ bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
// TODO: verify packet.
// Populate response.
- packet.swapEndian();
+ packet.swapEndian();
packet.leapIndicator(0);
packet.versionNumber(4);
packet.mode(4);
@@ -73,16 +73,17 @@ bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
packet.originTimestampFraction = packet.transmitTimestampFraction;
packet.receiveTimestampSeconds = recvSecs;
packet.receiveTimestampFraction = recvFract;
-
+
// ...and the transmit time.
- // the latency has been between 135 and 175 microseconds in internal testing, so we harcode 150
- uint32_t transFract = recvFract+(150*(10^3)/(2^32)); // microsec/((10^3)/(2^32))
+ // the latency has been between 135 and 175 microseconds in internal testing, so we hardcode 150
+ constexpr uint32_t latency = (150*1000) / (1LL << 32);
+ uint32_t transFract = recvFract + latency;
if (recvFract>transFract){
recvSecs++; //overflow
}
packet.transmitTimestampSeconds = recvSecs;
- packet.transmitTimestampFraction = transFract;
-
+ packet.transmitTimestampFraction = transFract;
+
// Now transmit the response to the client.
packet.swapEndian();
@@ -91,7 +92,7 @@ bool NtpServer::processOneRequest(uint32_t utc, uint32_t millisecs)
timeServerPort_.endPacket();
processed = true;
- }
-
+ }
+
return processed;
}
\ No newline at end of file
diff --git a/lib/libesp32/ESP-Mail-Client/src/SSLClient/client/BSSL_SSL_Client.h b/lib/libesp32/ESP-Mail-Client/src/SSLClient/client/BSSL_SSL_Client.h
index 98a42685d..b1ecaf693 100644
--- a/lib/libesp32/ESP-Mail-Client/src/SSLClient/client/BSSL_SSL_Client.h
+++ b/lib/libesp32/ESP-Mail-Client/src/SSLClient/client/BSSL_SSL_Client.h
@@ -96,6 +96,10 @@ public:
int connect(const char *host, uint16_t port) override;
+ int connect(IPAddress ip, uint16_t port, int32_t timeout) { return connect(ip, port, 0);}
+
+ int connect(const char *host, uint16_t port, int32_t timeout) { return connect(host, port, 0);}
+
uint8_t connected() override;
void validate(const char *host, uint16_t port);
diff --git a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
index 0a5f99a3b..5ff821a16 100644
--- a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
+++ b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
@@ -183,5 +183,19 @@ typedef int SerConfu8;
#define STATION_IF 0
+
+// ESP32 needed define to support IDF 5.2 based Arduino builds
+
+// Name has changed
+#ifdef LCD_CAM_LCD_UPDATE_M
+#define LCD_CAM_LCD_UPDATE_REG LCD_CAM_LCD_UPDATE_M
+#endif // LCD_CAM_LCD_UPDATE_M
+
+// IDF 5.2 has changed counting UART channels, SOC_UART_NUM includes now LP UARTS too
+#ifdef SOC_UART_HP_NUM
+#undef SOC_UART_NUM
+#define SOC_UART_NUM SOC_UART_HP_NUM
+#endif
+
#endif // ESP32
#endif // __ESP8266TOESP32_H__
diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini
index 83e69e23b..dd45bcfe8 100644
--- a/platformio_override_sample.ini
+++ b/platformio_override_sample.ini
@@ -77,7 +77,8 @@ lib_extra_dirs = ${library.lib_extra_dirs}
[env:tasmota32_base]
; *** Uncomment next lines ";" to enable development Tasmota Arduino version ESP32
-;platform = https://github.com/tasmota/platform-espressif32.git
+;platform = https://github.com/Jason2866/platform-espressif32/releases/download/2024.07.20/platform-espressif32.zip
+
;platform_packages = framework-arduinoespressif32 @
; framework-arduino-solo1 @
; framework-arduino-ITEAD @
diff --git a/tasmota/tasmota_support/support_crash_recorder.ino b/tasmota/tasmota_support/support_crash_recorder.ino
index 853b5baab..ab894e1ee 100644
--- a/tasmota/tasmota_support/support_crash_recorder.ino
+++ b/tasmota/tasmota_support/support_crash_recorder.ino
@@ -166,7 +166,11 @@ void CrashDumpClear(void)
// extern "C" void custom_crash_callback(struct rst_info * rst_info, uint32_t stack, uint32_t stack_end )
// esp_err_t IRAM_ATTR esp_backtrace_print(int depth)
+#if defined __has_include && __has_include("xtensa_api.h")
+#include "xtensa_api.h"
+#else
#include "freertos/xtensa_api.h"
+#endif
#include "esp_debug_helpers.h"
#include "esp_cpu_utils.h"
extern "C" {
From a260d334d0a030729b5e56f25dd36d31d4db9461 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Wed, 3 Jul 2024 21:07:28 +0200
Subject: [PATCH 123/252] Matter add ack in attribute response (#21722)
---
.../berry_matter/src/embedded/Matter_IM.be | 2 +-
.../src/embedded/Matter_IM_Message.be | 11 +
.../src/solidify/solidified_Matter_IM.h | 157 +++++++-------
.../solidify/solidified_Matter_IM_Message.h | 201 +++++++++++-------
4 files changed, 216 insertions(+), 155 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index ddb7baeab..520a117eb 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -74,7 +74,7 @@ class Matter_IM
if opcode == 0x01 # Status Response
return self.process_status_response(msg, val)
elif opcode == 0x02 # Read Request
- # self.send_ack_now(msg) # to improve latency, we don't automatically Ack on invoke request
+ self.send_ack_now(msg)
return self.process_read_request_pull(msg, val)
elif opcode == 0x03 # Subscribe Request
self.send_ack_now(msg)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
index 02305139b..d0b596091 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
@@ -219,6 +219,17 @@ class Matter_IM_ReportData_Pull : Matter_IM_Message
self.event_generator_or_arr = event_generator_or_arr
end
+ #################################################################################
+ # Status Report OK received for previous message, proceed to next (if any)
+ # return true if we manage the ack ourselves, false if it needs to be done upper
+ def status_ok_received(msg)
+ super(self).status_ok_received(msg)
+ if !self.finishing
+ msg.session._message_handler.send_encrypted_ack(msg, false #-not reliable-#)
+ end
+ return true
+ end
+
#################################################################################
# set_subscription_id
#
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 382d0e1e9..3cdb3e7ed 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -904,9 +904,9 @@ be_local_closure(class_Matter_IM_process_incoming, /* name */
/* K11 */ be_nested_str_weak(parse),
/* K12 */ be_const_int(1),
/* K13 */ be_nested_str_weak(process_status_response),
- /* K14 */ be_nested_str_weak(process_read_request_pull),
- /* K15 */ be_const_int(3),
- /* K16 */ be_nested_str_weak(send_ack_now),
+ /* K14 */ be_nested_str_weak(send_ack_now),
+ /* K15 */ be_nested_str_weak(process_read_request_pull),
+ /* K16 */ be_const_int(3),
/* K17 */ be_nested_str_weak(subscribe_request),
/* K18 */ be_nested_str_weak(process_write_request),
/* K19 */ be_nested_str_weak(process_write_response),
@@ -915,7 +915,7 @@ be_local_closure(class_Matter_IM_process_incoming, /* name */
}),
be_str_weak(process_incoming),
&be_const_str_solidified,
- ( &(const binstruction[124]) { /* code */
+ ( &(const binstruction[127]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0x1C0C0501, // 0001 EQ R3 R2 K1
0x780E000D, // 0002 JMPF R3 #0011
@@ -962,84 +962,87 @@ be_local_closure(class_Matter_IM_process_incoming, /* name */
0x5C1C0600, // 002B MOVE R7 R3
0x7C100600, // 002C CALL R4 3
0x80040800, // 002D RET 1 R4
- 0x7002004A, // 002E JMP #007A
+ 0x7002004D, // 002E JMP #007D
0x1C100501, // 002F EQ R4 R2 K1
- 0x78120005, // 0030 JMPF R4 #0037
+ 0x78120008, // 0030 JMPF R4 #003A
0x8C10010E, // 0031 GETMET R4 R0 K14
0x5C180200, // 0032 MOVE R6 R1
- 0x5C1C0600, // 0033 MOVE R7 R3
- 0x7C100600, // 0034 CALL R4 3
- 0x80040800, // 0035 RET 1 R4
- 0x70020042, // 0036 JMP #007A
- 0x1C10050F, // 0037 EQ R4 R2 K15
- 0x78120008, // 0038 JMPF R4 #0042
- 0x8C100110, // 0039 GETMET R4 R0 K16
- 0x5C180200, // 003A MOVE R6 R1
- 0x7C100400, // 003B CALL R4 2
- 0x8C100111, // 003C GETMET R4 R0 K17
+ 0x7C100400, // 0033 CALL R4 2
+ 0x8C10010F, // 0034 GETMET R4 R0 K15
+ 0x5C180200, // 0035 MOVE R6 R1
+ 0x5C1C0600, // 0036 MOVE R7 R3
+ 0x7C100600, // 0037 CALL R4 3
+ 0x80040800, // 0038 RET 1 R4
+ 0x70020042, // 0039 JMP #007D
+ 0x1C100510, // 003A EQ R4 R2 K16
+ 0x78120008, // 003B JMPF R4 #0045
+ 0x8C10010E, // 003C GETMET R4 R0 K14
0x5C180200, // 003D MOVE R6 R1
- 0x5C1C0600, // 003E MOVE R7 R3
- 0x7C100600, // 003F CALL R4 3
- 0x80040800, // 0040 RET 1 R4
- 0x70020037, // 0041 JMP #007A
- 0x54120003, // 0042 LDINT R4 4
- 0x1C100404, // 0043 EQ R4 R2 R4
- 0x78120002, // 0044 JMPF R4 #0048
- 0x50100000, // 0045 LDBOOL R4 0 0
- 0x80040800, // 0046 RET 1 R4
- 0x70020031, // 0047 JMP #007A
- 0x54120004, // 0048 LDINT R4 5
- 0x1C100404, // 0049 EQ R4 R2 R4
- 0x78120002, // 004A JMPF R4 #004E
- 0x50100000, // 004B LDBOOL R4 0 0
- 0x80040800, // 004C RET 1 R4
- 0x7002002B, // 004D JMP #007A
- 0x54120005, // 004E LDINT R4 6
- 0x1C100404, // 004F EQ R4 R2 R4
- 0x78120008, // 0050 JMPF R4 #005A
- 0x8C100110, // 0051 GETMET R4 R0 K16
- 0x5C180200, // 0052 MOVE R6 R1
- 0x7C100400, // 0053 CALL R4 2
- 0x8C100112, // 0054 GETMET R4 R0 K18
+ 0x7C100400, // 003E CALL R4 2
+ 0x8C100111, // 003F GETMET R4 R0 K17
+ 0x5C180200, // 0040 MOVE R6 R1
+ 0x5C1C0600, // 0041 MOVE R7 R3
+ 0x7C100600, // 0042 CALL R4 3
+ 0x80040800, // 0043 RET 1 R4
+ 0x70020037, // 0044 JMP #007D
+ 0x54120003, // 0045 LDINT R4 4
+ 0x1C100404, // 0046 EQ R4 R2 R4
+ 0x78120002, // 0047 JMPF R4 #004B
+ 0x50100000, // 0048 LDBOOL R4 0 0
+ 0x80040800, // 0049 RET 1 R4
+ 0x70020031, // 004A JMP #007D
+ 0x54120004, // 004B LDINT R4 5
+ 0x1C100404, // 004C EQ R4 R2 R4
+ 0x78120002, // 004D JMPF R4 #0051
+ 0x50100000, // 004E LDBOOL R4 0 0
+ 0x80040800, // 004F RET 1 R4
+ 0x7002002B, // 0050 JMP #007D
+ 0x54120005, // 0051 LDINT R4 6
+ 0x1C100404, // 0052 EQ R4 R2 R4
+ 0x78120008, // 0053 JMPF R4 #005D
+ 0x8C10010E, // 0054 GETMET R4 R0 K14
0x5C180200, // 0055 MOVE R6 R1
- 0x5C1C0600, // 0056 MOVE R7 R3
- 0x7C100600, // 0057 CALL R4 3
- 0x80040800, // 0058 RET 1 R4
- 0x7002001F, // 0059 JMP #007A
- 0x54120006, // 005A LDINT R4 7
- 0x1C100404, // 005B EQ R4 R2 R4
- 0x78120005, // 005C JMPF R4 #0063
- 0x8C100113, // 005D GETMET R4 R0 K19
- 0x5C180200, // 005E MOVE R6 R1
- 0x5C1C0600, // 005F MOVE R7 R3
- 0x7C100600, // 0060 CALL R4 3
- 0x80040800, // 0061 RET 1 R4
- 0x70020016, // 0062 JMP #007A
- 0x54120007, // 0063 LDINT R4 8
- 0x1C100404, // 0064 EQ R4 R2 R4
- 0x78120005, // 0065 JMPF R4 #006C
- 0x8C100114, // 0066 GETMET R4 R0 K20
- 0x5C180200, // 0067 MOVE R6 R1
- 0x5C1C0600, // 0068 MOVE R7 R3
- 0x7C100600, // 0069 CALL R4 3
- 0x80040800, // 006A RET 1 R4
- 0x7002000D, // 006B JMP #007A
- 0x54120008, // 006C LDINT R4 9
- 0x1C100404, // 006D EQ R4 R2 R4
- 0x78120002, // 006E JMPF R4 #0072
- 0x50100000, // 006F LDBOOL R4 0 0
- 0x80040800, // 0070 RET 1 R4
- 0x70020007, // 0071 JMP #007A
- 0x54120009, // 0072 LDINT R4 10
- 0x1C100404, // 0073 EQ R4 R2 R4
- 0x78120004, // 0074 JMPF R4 #007A
- 0x8C100115, // 0075 GETMET R4 R0 K21
- 0x5C180200, // 0076 MOVE R6 R1
- 0x5C1C0600, // 0077 MOVE R7 R3
- 0x7C100600, // 0078 CALL R4 3
- 0x80040800, // 0079 RET 1 R4
- 0x50100000, // 007A LDBOOL R4 0 0
- 0x80040800, // 007B RET 1 R4
+ 0x7C100400, // 0056 CALL R4 2
+ 0x8C100112, // 0057 GETMET R4 R0 K18
+ 0x5C180200, // 0058 MOVE R6 R1
+ 0x5C1C0600, // 0059 MOVE R7 R3
+ 0x7C100600, // 005A CALL R4 3
+ 0x80040800, // 005B RET 1 R4
+ 0x7002001F, // 005C JMP #007D
+ 0x54120006, // 005D LDINT R4 7
+ 0x1C100404, // 005E EQ R4 R2 R4
+ 0x78120005, // 005F JMPF R4 #0066
+ 0x8C100113, // 0060 GETMET R4 R0 K19
+ 0x5C180200, // 0061 MOVE R6 R1
+ 0x5C1C0600, // 0062 MOVE R7 R3
+ 0x7C100600, // 0063 CALL R4 3
+ 0x80040800, // 0064 RET 1 R4
+ 0x70020016, // 0065 JMP #007D
+ 0x54120007, // 0066 LDINT R4 8
+ 0x1C100404, // 0067 EQ R4 R2 R4
+ 0x78120005, // 0068 JMPF R4 #006F
+ 0x8C100114, // 0069 GETMET R4 R0 K20
+ 0x5C180200, // 006A MOVE R6 R1
+ 0x5C1C0600, // 006B MOVE R7 R3
+ 0x7C100600, // 006C CALL R4 3
+ 0x80040800, // 006D RET 1 R4
+ 0x7002000D, // 006E JMP #007D
+ 0x54120008, // 006F LDINT R4 9
+ 0x1C100404, // 0070 EQ R4 R2 R4
+ 0x78120002, // 0071 JMPF R4 #0075
+ 0x50100000, // 0072 LDBOOL R4 0 0
+ 0x80040800, // 0073 RET 1 R4
+ 0x70020007, // 0074 JMP #007D
+ 0x54120009, // 0075 LDINT R4 10
+ 0x1C100404, // 0076 EQ R4 R2 R4
+ 0x78120004, // 0077 JMPF R4 #007D
+ 0x8C100115, // 0078 GETMET R4 R0 K21
+ 0x5C180200, // 0079 MOVE R6 R1
+ 0x5C1C0600, // 007A MOVE R7 R3
+ 0x7C100600, // 007B CALL R4 3
+ 0x80040800, // 007C RET 1 R4
+ 0x50100000, // 007D LDBOOL R4 0 0
+ 0x80040800, // 007E RET 1 R4
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index d75db24aa..17b3fe498 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -553,73 +553,6 @@ be_local_class(Matter_IM_WriteResponse,
extern const bclass be_class_Matter_IM_ReportData_Pull;
-/********************************************************************
-** Solidified function: set_subscription_id
-********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData_Pull;
-be_local_closure(class_Matter_IM_ReportData_Pull_set_subscription_id, /* name */
- be_nested_proto(
- 2, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_ReportData_Pull,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(subscription_id),
- }),
- be_str_weak(set_subscription_id),
- &be_const_str_solidified,
- ( &(const binstruction[ 2]) { /* code */
- 0x90020001, // 0000 SETMBR R0 K0 R1
- 0x80000000, // 0001 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_IM_ReportData_Pull;
-be_local_closure(class_Matter_IM_ReportData_Pull_init, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_IM_ReportData_Pull,
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(init),
- /* K1 */ be_nested_str_weak(generator_or_arr),
- /* K2 */ be_nested_str_weak(event_generator_or_arr),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x60100003, // 0000 GETGBL R4 G3
- 0x5C140000, // 0001 MOVE R5 R0
- 0x7C100200, // 0002 CALL R4 1
- 0x8C100900, // 0003 GETMET R4 R4 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x541E0004, // 0005 LDINT R7 5
- 0x50200200, // 0006 LDBOOL R8 1 0
- 0x7C100800, // 0007 CALL R4 4
- 0x90020202, // 0008 SETMBR R0 K1 R2
- 0x90020403, // 0009 SETMBR R0 K2 R3
- 0x80000000, // 000A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: send_im
********************************************************************/
@@ -1003,6 +936,80 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: status_ok_received
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_status_ok_received, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(status_ok_received),
+ /* K1 */ be_nested_str_weak(finishing),
+ /* K2 */ be_nested_str_weak(session),
+ /* K3 */ be_nested_str_weak(_message_handler),
+ /* K4 */ be_nested_str_weak(send_encrypted_ack),
+ }),
+ be_str_weak(status_ok_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[16]) { /* code */
+ 0x60080003, // 0000 GETGBL R2 G3
+ 0x5C0C0000, // 0001 MOVE R3 R0
+ 0x7C080200, // 0002 CALL R2 1
+ 0x8C080500, // 0003 GETMET R2 R2 K0
+ 0x5C100200, // 0004 MOVE R4 R1
+ 0x7C080400, // 0005 CALL R2 2
+ 0x88080101, // 0006 GETMBR R2 R0 K1
+ 0x740A0005, // 0007 JMPT R2 #000E
+ 0x88080302, // 0008 GETMBR R2 R1 K2
+ 0x88080503, // 0009 GETMBR R2 R2 K3
+ 0x8C080504, // 000A GETMET R2 R2 K4
+ 0x5C100200, // 000B MOVE R4 R1
+ 0x50140000, // 000C LDBOOL R5 0 0
+ 0x7C080600, // 000D CALL R2 3
+ 0x50080200, // 000E LDBOOL R2 1 0
+ 0x80040400, // 000F RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_subscription_id
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_set_subscription_id, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(subscription_id),
+ }),
+ be_str_weak(set_subscription_id),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 2]) { /* code */
+ 0x90020001, // 0000 SETMBR R0 K0 R1
+ 0x80000000, // 0001 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: set_suppress_response
********************************************************************/
@@ -1031,6 +1038,45 @@ be_local_closure(class_Matter_IM_ReportData_Pull_set_suppress_response, /* nam
/*******************************************************************/
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_IM_ReportData_Pull;
+be_local_closure(class_Matter_IM_ReportData_Pull_init, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_IM_ReportData_Pull,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(init),
+ /* K1 */ be_nested_str_weak(generator_or_arr),
+ /* K2 */ be_nested_str_weak(event_generator_or_arr),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x60100003, // 0000 GETGBL R4 G3
+ 0x5C140000, // 0001 MOVE R5 R0
+ 0x7C100200, // 0002 CALL R4 1
+ 0x8C100900, // 0003 GETMET R4 R4 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x541E0004, // 0005 LDINT R7 5
+ 0x50200200, // 0006 LDBOOL R8 1 0
+ 0x7C100800, // 0007 CALL R4 4
+ 0x90020202, // 0008 SETMBR R0 K1 R2
+ 0x90020403, // 0009 SETMBR R0 K2 R3
+ 0x80000000, // 000A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_IM_ReportData_Pull
********************************************************************/
@@ -1038,18 +1084,19 @@ extern const bclass be_class_Matter_IM_Message;
be_local_class(Matter_IM_ReportData_Pull,
5,
&be_class_Matter_IM_Message,
- be_nested_map(10,
+ be_nested_map(11,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(set_suppress_response, 2), be_const_closure(class_Matter_IM_ReportData_Pull_set_suppress_response_closure) },
- { be_const_key_weak(data_ev, -1), be_const_var(4) },
- { be_const_key_weak(event_generator_or_arr, -1), be_const_var(1) },
- { be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1200) },
- { be_const_key_weak(subscription_id, -1), be_const_var(2) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportData_Pull_init_closure) },
- { be_const_key_weak(generator_or_arr, 9), be_const_var(0) },
- { be_const_key_weak(set_subscription_id, 0), be_const_closure(class_Matter_IM_ReportData_Pull_set_subscription_id_closure) },
{ be_const_key_weak(send_im, -1), be_const_closure(class_Matter_IM_ReportData_Pull_send_im_closure) },
- { be_const_key_weak(suppress_response, -1), be_const_var(3) },
+ { be_const_key_weak(status_ok_received, -1), be_const_closure(class_Matter_IM_ReportData_Pull_status_ok_received_closure) },
+ { be_const_key_weak(data_ev, -1), be_const_var(4) },
+ { be_const_key_weak(suppress_response, 8), be_const_var(3) },
+ { be_const_key_weak(MAX_MESSAGE, -1), be_const_int(1200) },
+ { be_const_key_weak(set_suppress_response, -1), be_const_closure(class_Matter_IM_ReportData_Pull_set_suppress_response_closure) },
+ { be_const_key_weak(set_subscription_id, -1), be_const_closure(class_Matter_IM_ReportData_Pull_set_subscription_id_closure) },
+ { be_const_key_weak(generator_or_arr, 5), be_const_var(0) },
+ { be_const_key_weak(event_generator_or_arr, 4), be_const_var(1) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_IM_ReportData_Pull_init_closure) },
+ { be_const_key_weak(subscription_id, -1), be_const_var(2) },
})),
be_str_weak(Matter_IM_ReportData_Pull)
);
From 243df3f2cf6825e13d55e9be564392e6cd2f61eb Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Wed, 3 Jul 2024 22:13:50 +0200
Subject: [PATCH 124/252] `FUNC_BUTTON_PRESSED` now contains `press_counter`
encoded in `XdrvMailbox.command_code` (#21724)
---
CHANGELOG.md | 1 +
tasmota/tasmota_support/support_button_v4.ino | 2 +-
tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino | 6 ++++--
tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro.ino | 2 +-
tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro_v2.ino | 2 +-
5 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 158ea7f58..f61cd41e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second (#21711)
- Support for Sonoff POWCT Ring (#21131)
+- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code`
### Breaking Changed
diff --git a/tasmota/tasmota_support/support_button_v4.ino b/tasmota/tasmota_support/support_button_v4.ino
index 7766eadd7..191718975 100644
--- a/tasmota/tasmota_support/support_button_v4.ino
+++ b/tasmota/tasmota_support/support_button_v4.ino
@@ -419,7 +419,7 @@ void ButtonHandler(void) {
XdrvMailbox.index = button_index;
XdrvMailbox.payload = button;
- XdrvMailbox.command_code = Button.last_state[button_index];
+ XdrvMailbox.command_code = (Button.last_state[button_index] & 0xFF) | ((Button.press_counter[button_index] & 0xFF) << 8);
if (XdrvCall(FUNC_BUTTON_PRESSED)) {
// Serviced
}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
index 5e90a1130..c5bad3c9e 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_52_9_berry.ino
@@ -952,10 +952,12 @@ bool Xdrv52(uint32_t function)
// XdrvMailbox.index = button_index;
// XdrvMailbox.payload = button;
// XdrvMailbox.command_code = Button.last_state[button_index];
- if ((XdrvMailbox.payload != XdrvMailbox.command_code) || TimeReached(timer_last_button_sent)) { // fire event only when state changes
+ uint8_t state = (XdrvMailbox.command_code & 0xFF);
+ uint8_t multipress_state = (XdrvMailbox.command_code >> 8) & 0xFF;
+ if ((XdrvMailbox.payload != state) || TimeReached(timer_last_button_sent)) { // fire event only when state changes
timer_last_button_sent = millis() + 1000; // wait for 1 second
result = callBerryEventDispatcher(PSTR("button_pressed"), nullptr,
- (XdrvMailbox.payload & 0xFF) << 16 | (XdrvMailbox.command_code & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
+ (multipress_state & 0xFF) << 24 | (XdrvMailbox.payload & 0xFF) << 16 | (XdrvMailbox.command_code & 0xFF) << 8 | (XdrvMailbox.index & 0xFF) ,
nullptr);
}
}
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro.ino b/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro.ino
index 20d0d01c7..00da8d88f 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro.ino
@@ -91,7 +91,7 @@ bool ShellyProButton(void) {
if (button_index > 2) { return false; } // Only support Up, Down, Ok
uint32_t button = XdrvMailbox.payload;
- uint32_t last_state = XdrvMailbox.command_code;
+ uint32_t last_state = (XdrvMailbox.command_code & 0xFF);
if ((PRESSED == button) && (NOT_PRESSED == last_state)) { // Button pressed
AddLog(LOG_LEVEL_DEBUG, PSTR("SHP: Button %d pressed"), button_index +1);
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro_v2.ino b/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro_v2.ino
index 06456b990..175ed8b8b 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro_v2.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_88_esp32_shelly_pro_v2.ino
@@ -307,7 +307,7 @@ bool ShellyProButton(void) {
if (button_index > 2) { return false; } // Only support Up, Down, Ok
uint32_t button = XdrvMailbox.payload;
- uint32_t last_state = XdrvMailbox.command_code;
+ uint32_t last_state = (XdrvMailbox.command_code & 0xFF);
if ((PRESSED == button) && (NOT_PRESSED == last_state)) { // Button pressed
AddLog(LOG_LEVEL_DEBUG, PSTR("SHP: Button %d pressed"), button_index +1);
From 843dd17aecf37d417f302daf45512ba6aa1e9e38 Mon Sep 17 00:00:00 2001
From: Norbert Richter
Date: Thu, 4 Jul 2024 09:28:01 +0200
Subject: [PATCH 125/252] NeoPool add data validation and statistics (#21721)
Co-authored-by: Theo Arends <11044339+arendst@users.noreply.github.com>
---
CHANGELOG.md | 1 +
.../tasmota_xsns_sensor/xsns_83_neopool.ino | 191 +++++++++++++++++-
2 files changed, 186 insertions(+), 6 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f61cd41e5..e6ea4bdf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second (#21711)
- Support for Sonoff POWCT Ring (#21131)
+- NeoPool add data validation and communication statistics (default enabled for ESP32 only)
- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code`
### Breaking Changed
diff --git a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
index c13bc82d7..75dd67e26 100644
--- a/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_83_neopool.ino
@@ -91,6 +91,16 @@
#define NEOPOOL_LIGHT_PRG_DELAY_MAX 100 // next light prg delay max (in ms)
#endif
+#ifdef ESP32 // Defaults for ESP32 only
+ #ifndef NEOPOOL_RANGE_CHECKS
+ #define NEOPOOL_RANGE_CHECKS // Compile with value range checks
+ #endif
+#endif
+#ifdef NEOPOOL_RANGE_CHECKS
+ #ifndef NEOPOOL_CONNSTAT
+ #define NEOPOOL_CONNSTAT // Compile with connection statistics
+ #endif
+#endif
/*********************************************************************************************\
* Sugar Valley Modbus Register (addresses marked with * are queried with each polling cycle)
@@ -707,7 +717,36 @@ enum NeoPoolModbusCode {
NEOPOOL_MODBUS_ERROR_DEADLOCK
};
+#ifdef NEOPOOL_RANGE_CHECKS
+#define NEOPOOL_UNDEF_UINT16 0xFFFF
+ typedef struct {
+ uint16_t addr; // Modbus register addr
+ uint16_t min; // min valid value (or UNDEFined)
+ uint16_t max; // max valid value (or UNDEFined)
+ uint16_t prev; // previous read value
+ } TNeoPoolRangeCheck;
+ TNeoPoolRangeCheck NeoPoolRangeCheck[] = {
+ {MBF_ION_CURRENT, 0, 100, NEOPOOL_UNDEF_UINT16}, // Ionization level measured
+ {MBF_HIDRO_CURRENT, 0, NEOPOOL_UNDEF_UINT16, NEOPOOL_UNDEF_UINT16}, // Hydrolysis intensity level
+ {MBF_MEASURE_PH, 0, 1400, NEOPOOL_UNDEF_UINT16}, // pH level measured
+ {MBF_MEASURE_RX, 0, 1000, NEOPOOL_UNDEF_UINT16}, // Redox level measured
+ {MBF_MEASURE_CL, 0, 1000, NEOPOOL_UNDEF_UINT16}, // Chlorine level measured
+ {MBF_MEASURE_CONDUCTIVITY, 0, 100, NEOPOOL_UNDEF_UINT16}, // Conductivity level measured
+ {MBF_MEASURE_TEMPERATURE, 0, 6500, NEOPOOL_UNDEF_UINT16} // Temperature sensor measured
+ };
+#endif
+#ifdef NEOPOOL_CONNSTAT
+ #define NEOPOOL_TASMOTAMODBUS_ERROR_NUM_MAX 15 // 0-14 - see TasmotaModbus.h class TasmotaModbus highest error #
+ // counting modbus and data error
+ struct {
+ uint32_t time; // time where counting started
+ uint32_t mb_requests; // request count
+ // result count:
+ uint32_t mb_results[NEOPOOL_TASMOTAMODBUS_ERROR_NUM_MAX + 1];
+ uint32_t value_out_of_range; // value out of range count
+ } NeoPoolStats;
+#endif
// NPResult possible values
enum NeoPoolResult {
@@ -796,6 +835,48 @@ struct {
#define D_NEOPOOL_JSON_BIT "Bit"
#define D_NEOPOOL_JSON_NODE_ID "NodeID"
+#ifdef NEOPOOL_CONNSTAT
+#define D_NEOPOOL_JSON_CONNSTAT "Connection"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_REQUESTS "MBRequests"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_0 "MBNoError"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_1 "MBIllegalFunc"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_2 "MBIllegalDataAddr"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_3 "MBIllegalDataValue"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_4 "MBSlaveError"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_5 "MBAck"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_6 "MBSlaveBusy"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_7 "MBNotEnoughData"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_8 "MBMemParityErr"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_9 "MBCRCErr"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_10 "MBGWPath"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_11 "MBGWTarget"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_12 "MBRegErr"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_13 "MBRegData"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_14 "MBTooManyReg"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_15 "MBUnknownErr"
+#define D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS "MBNoResponse"
+#define D_NEOPOOL_JSON_CONNSTAT_DATA_OOR "DataOutOfRange"
+
+const char kNeoPoolMBResults[] PROGMEM =
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_0 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_1 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_2 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_3 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_4 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_5 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_6 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_7 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_8 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_9 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_10 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_11 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_12 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_13 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_14 "|"
+ D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS_15
+ ;
+#endif
+
const char kNeoPoolMachineNames[] PROGMEM =
D_NEOPOOL_MACH_NONE "|"
D_NEOPOOL_MACH_HIDROLIFE "|"
@@ -1212,7 +1293,9 @@ void NeoPoolPoll(void) // Poll modbus register
if (nullptr != buffer) {
uint8_t error = NeoPoolModbus->ReceiveBuffer(buffer, NeoPoolReg[neopool_read_state].cnt); // cnt x 16bit register
-
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolModbusErrorCount(error);
+#endif
if (0 == error) {
neopool_failed_count = 0;
neopool_error = false;
@@ -1243,6 +1326,9 @@ void NeoPoolPoll(void) // Poll modbus register
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("NEO: modbus send(%d, %d, 0x%04X, %d)"), NEOPOOL_MODBUS_ADDRESS, NEOPOOL_READ_REGISTER, NeoPoolReg[neopool_read_state].addr, NeoPoolReg[neopool_read_state].cnt);
#endif // DEBUG_TASMOTA_SENSOR
NeoPoolModbus->Send(NEOPOOL_MODBUS_ADDRESS, NEOPOOL_READ_REGISTER, NeoPoolReg[neopool_read_state].addr, NeoPoolReg[neopool_read_state].cnt);
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolStats.mb_requests++;
+#endif
} else {
if (1 == neopool_send_retry) {
neopool_failed_count++;
@@ -1296,6 +1382,9 @@ bool NeoPoolInitData(void)
neopool_error = true;
neopool_power_module_version = 0;
+#ifdef NEOPOOL_CONNSTAT
+ memset(&NeoPoolStats, 0, sizeof(NeoPoolStats));
+#endif
memset(neopool_power_module_nodeid, 0, sizeof(neopool_power_module_nodeid));
for (uint32_t i = 0; i < nitems(NeoPoolReg); i++) {
@@ -1362,6 +1451,19 @@ void NeoPool250msSetStatus(bool status)
}
}
+#ifdef NEOPOOL_CONNSTAT
+void NeoPoolModbusErrorCount(uint8_t error)
+{
+ if (NeoPoolStats.time < 86400L) {
+ NeoPoolStats.time = Rtc.local_time;
+ }
+ if (error < nitems(NeoPoolStats.mb_results) - 1) {
+ NeoPoolStats.mb_results[error]++;
+ } else {
+ NeoPoolStats.mb_results[nitems(NeoPoolStats.mb_results) - 1]++;
+ }
+}
+#endif
uint8_t NeoPoolReadRegisterData(uint16_t addr, uint16_t *data, uint16_t cnt)
{
@@ -1373,12 +1475,18 @@ uint8_t NeoPoolReadRegisterData(uint16_t addr, uint16_t *data, uint16_t cnt)
*data = 0;
NeoPoolModbus->Send(NEOPOOL_MODBUS_ADDRESS, NEOPOOL_READ_REGISTER, addr, cnt);
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolStats.mb_requests++;
+#endif
timeoutMS = millis() + cnt * NEOPOOL_READ_TIMEOUT; // Max delay before we timeout
while (!(data_ready = NeoPoolModbus->ReceiveReady()) && millis() < timeoutMS) { delay(1); }
if (data_ready) {
uint8_t *buffer = (uint8_t*)malloc(5+cnt*2);
if (buffer != nullptr) {
uint8_t error = NeoPoolModbus->ReceiveBuffer(buffer, cnt);
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolModbusErrorCount(error);
+#endif
if (error) {
#ifdef DEBUG_TASMOTA_SENSOR
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("NEO: addr 0x%04X read data error %d"), addr, error);
@@ -1455,6 +1563,9 @@ uint8_t NeoPoolWriteRegisterData(uint16_t addr, uint16_t *data, uint16_t cnt)
NeoPoolModbus->flush();
NeoPoolModbus->write(frame, numbytes+2);
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolStats.mb_requests++;
+#endif
timeoutMS = millis() + 1 * NEOPOOL_READ_TIMEOUT; // Max delay before we timeout
while (!(data_ready = NeoPoolModbus->ReceiveReady()) && millis() < timeoutMS) { delay(1); }
@@ -1462,6 +1573,9 @@ uint8_t NeoPoolWriteRegisterData(uint16_t addr, uint16_t *data, uint16_t cnt)
if (data_ready) {
uint8_t buffer[9];
uint8_t error = NeoPoolModbus->ReceiveBuffer(buffer, 1);
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolModbusErrorCount(error);
+#endif
if (0 != error && 9 != error) { // ReceiveBuffer can't handle 0x10 code result
#ifdef DEBUG_TASMOTA_SENSOR
AddLog(LOG_LEVEL_DEBUG_MORE, PSTR("NEO: addr 0x%04X write data response error %d"), addr, error);
@@ -1539,7 +1653,7 @@ uint8_t NeoPoolWriteRegisterWord(uint16_t addr, uint16_t data)
uint16_t NeoPoolGetCacheData(uint16_t addr, int32_t timeout)
{
- uint16_t data;
+ uint16_t data = 0;
bool datavalid = false;
uint16_t i;
@@ -1599,7 +1713,55 @@ uint16_t NeoPoolGetCacheData(uint16_t addr, int32_t timeout)
uint16_t NeoPoolGetData(uint16_t addr)
{
- return NeoPoolGetCacheData(addr, -1);
+ uint16_t data = NeoPoolGetCacheData(addr, -1);
+
+#ifdef NEOPOOL_RANGE_CHECKS
+ for (uint16_t i = 0; i < nitems(NeoPoolRangeCheck); i++) {
+ if (MBF_HIDRO_CURRENT == NeoPoolRangeCheck[i].addr && NEOPOOL_UNDEF_UINT16 == NeoPoolRangeCheck[i].max) {
+ // get hydrolsysis max value
+ uint16_t max = NeoPoolGetCacheData(MBF_PAR_HIDRO_NOM, -1);
+ if (0 != max) {
+ NeoPoolRangeCheck[i].max = max;
+#ifdef DEBUG_TASMOTA_SENSOR
+ AddLog(LOG_LEVEL_DEBUG, PSTR("NEO: ConnStat - use hydrolysis max = %d"), NeoPoolRangeCheck[i].max);
+#endif
+ }
+ }
+ if (NeoPoolRangeCheck[i].addr == addr) {
+ uint16_t prev_data = data;
+ // check out of range
+ if (data < NeoPoolRangeCheck[i].min || data > NeoPoolRangeCheck[i].max) {
+#ifdef NEOPOOL_CONNSTAT
+ NeoPoolStats.value_out_of_range++;
+#endif
+ // use previous value if defined
+ if (NEOPOOL_UNDEF_UINT16 != NeoPoolRangeCheck[i].prev) {
+ data = NeoPoolRangeCheck[i].prev;
+ } else {
+ // limit to min/max as long as no valid previous value is present
+ if (data < NeoPoolRangeCheck[i].min) {
+ data = NeoPoolRangeCheck[i].min;
+ } else {
+ data = NeoPoolRangeCheck[i].max;
+ }
+ }
+#ifdef DEBUG_TASMOTA_SENSOR
+ AddLog(LOG_LEVEL_DEBUG, PSTR("NEO: ConnStat - Addr 0x%04X data out of range [%d-%d]: received %d, corrected using %d"),
+ NeoPoolRangeCheck[i].addr,
+ NeoPoolRangeCheck[i].min,
+ NeoPoolRangeCheck[i].max,
+ prev_data,
+ data);
+#endif
+ }
+ else {
+ // remeber origin value
+ NeoPoolRangeCheck[i].prev = data;
+ }
+ }
+ }
+#endif // NEOPOOL_RANGE_CHECKS
+ return data;
}
@@ -1986,8 +2148,25 @@ void NeoPoolShow(bool json)
if (0 != NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO)) {
ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_RELAY_FILTVALVE " \":%d"), (NeoPoolGetData(MBF_RELAY_STATE) >> NeoPoolGetData(MBF_PAR_FILTVALVE_GPIO)) & 1);
}
+ ResponseJsonEnd();
- ResponseJsonEndEnd();
+#ifdef NEOPOOL_CONNSTAT
+ ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_CONNSTAT "\":{"));
+ ResponseAppend_P(PSTR( "\"" D_JSON_TIME "\":\"%s\""), GetDT(NeoPoolStats.time).c_str());
+ ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_CONNSTAT_MB_REQUESTS "\":%d"), NeoPoolStats.mb_requests);
+ uint32_t mb_sum = 0;
+ for(uint16_t i = 0; i < nitems(NeoPoolStats.mb_results); i++) {
+ char mbresult[32];
+ GetTextIndexed(mbresult, sizeof(mbresult), i, kNeoPoolMBResults);
+ ResponseAppend_P(PSTR(",\"%s\":%d"), mbresult,NeoPoolStats.mb_results[i]);
+ mb_sum += NeoPoolStats.mb_results[i];
+ }
+ ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_CONNSTAT_MB_RESULTS "\":%d"), NeoPoolStats.mb_requests - mb_sum);
+ ResponseAppend_P(PSTR(",\"" D_NEOPOOL_JSON_CONNSTAT_DATA_OOR "\":%d"), NeoPoolStats.value_out_of_range);
+ ResponseJsonEnd();
+#endif
+
+ ResponseJsonEnd();
#ifdef USE_WEBSERVER
} else {
@@ -2623,7 +2802,7 @@ void CmndNeopoolLight(void)
if (POWER_TOGGLE == timer_val[XdrvMailbox.payload]) {
XdrvMailbox.payload = ((data >>= (neopool_light_relay - 1)) & 1) ? POWER_OFF : POWER_ON;
}
- NeoPoolWriteRegisterWord(MBF_PAR_TIMER_BLOCK_LIGHT_INT + MBV_TIMER_OFFMB_TIMER_ENABLE, timer_val[XdrvMailbox.payload]);
+ NeoPoolWriteRegisterWord((uint16_t)MBF_PAR_TIMER_BLOCK_LIGHT_INT + (uint16_t)MBV_TIMER_OFFMB_TIMER_ENABLE, timer_val[XdrvMailbox.payload]);
NeoPoolWriteRegisterWord(MBF_EXEC, 1);
// data >>= (neopool_light_relay - 1);
ResponseCmndStateText(XdrvMailbox.payload);
@@ -2693,7 +2872,7 @@ void CmndNeopoolLightPrgEnd(void)
// exit manual ctrl
NeoPoolWriteRegisterWord(MBF_SET_MANUAL_CTRL, 0);
// switch light on to finish prg sequence
- NeoPoolWriteRegisterWord(MBF_PAR_TIMER_BLOCK_LIGHT_INT + MBV_TIMER_OFFMB_TIMER_ENABLE, MBV_PAR_CTIMER_ALWAYS_ON);
+ NeoPoolWriteRegisterWord((uint16_t)MBF_PAR_TIMER_BLOCK_LIGHT_INT + (uint16_t)MBV_TIMER_OFFMB_TIMER_ENABLE, MBV_PAR_CTIMER_ALWAYS_ON);
NeoPoolWriteRegisterWord(MBF_EXEC, 1);
}
From 04a6d5513ba9e1790e27b080fbc8d3f286f99ea5 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 4 Jul 2024 16:04:59 +0200
Subject: [PATCH 126/252] Prep serial IDF 5.2 support
---
lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp | 2 +-
lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h | 6 ++++++
lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h | 6 ------
tasmota/tasmota_xsns_sensor/xsns_53_sml.ino | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
index 5f9b10561..2200e06ba 100644
--- a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
+++ b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.cpp
@@ -150,7 +150,7 @@ void TasmotaSerial::setTransmitEnablePin(int tx_enable_pin) {
#ifdef ESP32
bool TasmotaSerial::freeUart(void) {
- for (uint32_t i = SOC_UART_NUM -1; i >= 0; i--) {
+ for (uint32_t i = SOC_UART_HP_NUM -1; i >= 0; i--) {
if (0 == bitRead(tasmota_serial_uart_bitmap, i)) {
m_uart = uart_port_t(i);
bitSet(tasmota_serial_uart_bitmap, m_uart);
diff --git a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
index da946d8eb..b380bec69 100644
--- a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
+++ b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h
@@ -33,6 +33,12 @@
#ifdef ESP32
#include
+
+// IDF 5.2 has changed counting UART channels, SOC_UART_NUM includes now LP UARTS too for ESP32-C6 and -P4
+#ifndef SOC_UART_HP_NUM
+#define SOC_UART_HP_NUM SOC_UART_NUM // Set new define SOC_UART_HP_NUM in pre IDF 5.2 to SOC_UART_NUM
+#endif
+
#endif
class TasmotaSerial : public Stream {
diff --git a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
index 5ff821a16..99a4b1b30 100644
--- a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
+++ b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.h
@@ -191,11 +191,5 @@ typedef int SerConfu8;
#define LCD_CAM_LCD_UPDATE_REG LCD_CAM_LCD_UPDATE_M
#endif // LCD_CAM_LCD_UPDATE_M
-// IDF 5.2 has changed counting UART channels, SOC_UART_NUM includes now LP UARTS too
-#ifdef SOC_UART_HP_NUM
-#undef SOC_UART_NUM
-#define SOC_UART_NUM SOC_UART_HP_NUM
-#endif
-
#endif // ESP32
#endif // __ESP8266TOESP32_H__
diff --git a/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino b/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
index ec73da332..433af4462 100755
--- a/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
+++ b/tasmota/tasmota_xsns_sensor/xsns_53_sml.ino
@@ -3125,7 +3125,7 @@ void SML_Init(void) {
uint16_t memory = 0;
#ifdef ESP32
- uint32_t uart_index = SOC_UART_NUM - 1;
+ uint32_t uart_index = SOC_UART_HP_NUM - 1;
#endif
sml_globs.sml_send_blocks = 0;
From dfa5b46494abfb27894bb8a3a3c8e6129ec615d4 Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Thu, 4 Jul 2024 16:18:53 +0200
Subject: [PATCH 127/252] Update changelogs
---
CHANGELOG.md | 4 ++--
RELEASENOTES.md | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e6ea4bdf1..f2c44a4f2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,8 +11,8 @@ All notable changes to this project will be documented in this file.
- Berry `FUNC_ANY_KEY` event calling `any_key()` (#21708)
- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second (#21711)
- Support for Sonoff POWCT Ring (#21131)
-- NeoPool add data validation and communication statistics (default enabled for ESP32 only)
-- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code`
+- NeoPool data validation and communication statistics default enabled for ESP32 only (#21721)
+- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code` (#21724)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 00b2eb0b4..0ff1d4566 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -125,6 +125,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Support for Sonoff WTS01 temperature sensor using SerialBridge in ``SSerialMode 3``
- Support for Sonoff POWCT Ring [#21131](https://github.com/arendst/Tasmota/issues/21131)
- Extend command ``SetOption147 1`` to disable publish of IRReceived MQTT messages [#21574](https://github.com/arendst/Tasmota/issues/21574)
+- NeoPool data validation and communication statistics default enabled for ESP32 only [#21721](https://github.com/arendst/Tasmota/issues/21721)
- ESP32 support for power and energy limit checks, like ``MaxEnergy2`` per phase [#21695](https://github.com/arendst/Tasmota/issues/21695)
- Berry solidification of `bytes` instances [#21558](https://github.com/arendst/Tasmota/issues/21558)
- Berry automatic rounding of float to int when calling C mapped functions [#21601](https://github.com/arendst/Tasmota/issues/21601)
From 522d7f6ee4c10a71640863a91d3397c587e6e836 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 4 Jul 2024 19:19:21 +0200
Subject: [PATCH 128/252] Berry `int64` added `low32()` and `high32()` methods,
used in Matter (#21728)
---
CHANGELOG.md | 1 +
lib/libesp32/berry_int64/src/be_int64_class.c | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f2c44a4f2..8e68ae57a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file.
- Support for Sonoff POWCT Ring (#21131)
- NeoPool data validation and communication statistics default enabled for ESP32 only (#21721)
- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code` (#21724)
+- Berry `int64` added `low32()` and `high32()` methods, used in Matter
### Breaking Changed
diff --git a/lib/libesp32/berry_int64/src/be_int64_class.c b/lib/libesp32/berry_int64/src/be_int64_class.c
index 48dfc923a..16f8dbbba 100644
--- a/lib/libesp32/berry_int64/src/be_int64_class.c
+++ b/lib/libesp32/berry_int64/src/be_int64_class.c
@@ -212,6 +212,16 @@ int64_t* int64_frombytes(bvm *vm, uint8_t* ptr, size_t len, int32_t idx) {
}
BE_FUNC_CTYPE_DECLARE(int64_frombytes, "int64", "@(bytes)~[i]")
+int32_t int64_low32(int64_t *i64) {
+ return (int32_t) *i64;
+}
+BE_FUNC_CTYPE_DECLARE(int64_low32, "i", "(int64)")
+
+int32_t int64_high32(int64_t *i64) {
+ return (int32_t) (*i64 >> 32);
+}
+BE_FUNC_CTYPE_DECLARE(int64_high32, "i", "(int64)")
+
/*
def toint64(i)
@@ -305,5 +315,8 @@ class be_class_int64 (scope: global, name: int64) {
tobytes, ctype_func(int64_tobytes)
frombytes, static_ctype_func(int64_frombytes)
+
+ low32, ctype_func(int64_low32) // return low 32 bits as int
+ high32, ctype_func(int64_high32) // return high 32 bits as int
}
@const_object_info_end */
From 152239c3ace40bbe94a902c6816de0be8fd958a3 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 4 Jul 2024 19:41:53 +0200
Subject: [PATCH 129/252] Matter simplify code (#21729)
---
.../berry_matter/src/embedded/Matter_IM.be | 12 +-
.../src/embedded/Matter_MessageHandler.be | 6 +-
.../src/embedded/Matter_Plugin_1_Root.be | 2 +-
.../src/embedded/Matter_UDPServer.be | 2 +-
.../src/embedded/Matter_zz_Device.be | 69 +-
.../src/solidify/solidified_Matter_IM.h | 1619 ++--
.../solidified_Matter_MessageHandler.h | 846 +-
.../solidified_Matter_Plugin_1_Root.h | 2 +-
.../solidify/solidified_Matter_UDPServer.h | 62 +-
.../solidify/solidified_Matter_zz_Device.h | 8457 ++++++++---------
10 files changed, 5439 insertions(+), 5638 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
index 520a117eb..cb309654e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM.be
@@ -318,7 +318,7 @@ class Matter_IM
# 0 = EnableTagCompression bool opt
# 1 = Node
# 2 = Endpoint
- # 3 = Cluste
+ # 3 = Cluster
# 4 = Attribute
# 5 = ListIndex (opt)
#
@@ -602,7 +602,6 @@ class Matter_IM
# returns `true` if processed, `false` if silently ignored,
# or raises an exception
def process_read_request_pull(msg, val)
- matter.profiler.log("read_request_start_pull")
var query = matter.ReadRequestMessage().from_TLV(val)
var generator_or_arr = self.process_read_or_subscribe_request_pull(query, msg)
var event_generator_or_arr = self.process_read_or_subscribe_request_event_pull(query, msg)
@@ -767,7 +766,6 @@ class Matter_IM
ctx.status = matter.UNSUPPORTED_ATTRIBUTE # new fallback error
res = pi.read_attribute(msg.session, ctx, self.tlv_solo)
end
- matter.profiler.log("read_request_solo read done")
if res != nil
@@ -826,8 +824,6 @@ class Matter_IM
responder.send_response_frame(resp)
# postpone lengthy operations after sending back response
- matter.profiler.log("RESPONSE SENT")
-
var attr_name
if tasmota.loglevel(3)
attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
@@ -909,7 +905,6 @@ class Matter_IM
# import debug
# structure is `ReadRequestMessage` 10.6.2 p.558
# log("MTR: IM:invoke_request processing start", 4)
- matter.profiler.log("invoke_request_start")
var ctx = matter.Path()
ctx.msg = msg
@@ -929,7 +924,6 @@ class Matter_IM
var cmd_name = matter.get_command_name(ctx.cluster, ctx.command)
var ctx_str = str(ctx) # keep string before invoking, it is modified by response
var res = self.device.invoke_request(msg.session, q.command_fields, ctx)
- matter.profiler.log("COMMAND DONE")
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
# log("MTR: Perf/Command = " + str(debug.counters()), 4)
@@ -983,14 +977,12 @@ class Matter_IM
# or raises an exception
def process_invoke_request_solo(msg, ctx)
# import debug
- matter.profiler.log("invoke_request_solo_start")
ctx.msg = msg
ctx.status = matter.UNSUPPORTED_COMMAND #default error if returned `nil`
var cmd_name = matter.get_command_name(ctx.cluster, ctx.command)
var ctx_str = str(ctx) # keep string before invoking, it is modified by response
var res = self.device.invoke_request(msg.session, ctx.command_fields, ctx)
- matter.profiler.log("COMMAND DONE")
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
if tasmota.loglevel(3)
log(format("MTR: >Command1 (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), 3)
@@ -1041,7 +1033,6 @@ class Matter_IM
resp.encode_frame(raw, msg_raw) # payload in cleartext
resp.encrypt()
responder.send_response_frame(resp)
- matter.profiler.log("RESPONSE SENT")
return true
end
@@ -1225,6 +1216,7 @@ class Matter_IM
var event_generator_or_arr = sub.update_event_generator_array()
var report_data_msg = matter.IM_ReportDataSubscribed_Pull(session._message_handler, session, generator_or_arr, event_generator_or_arr, sub)
+
self.send_queue.push(report_data_msg) # push message to queue
self.send_enqueued(session._message_handler) # and send queued messages now
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
index 25eefe028..e437d2d5e 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_MessageHandler.be
@@ -86,7 +86,6 @@ class Matter_MessageHandler
def msg_received(raw, addr, port)
var ret = false
- matter.profiler.log("msg_received")
try
# log("MTR: MessageHandler::msg_received raw="+raw.tohex(), 4)
var frame = matter.Frame(self, raw, addr, port)
@@ -170,7 +169,7 @@ class Matter_MessageHandler
end
var decrypt_ok = frame.decrypt()
- matter.profiler.log("msg_received_header_frame_decrypted")
+ # matter.profiler.log("msg_received_header_frame_decrypted")
if !decrypt_ok return false end
# matter.profiler.log("msg_received_payload_undecoded")
@@ -201,9 +200,7 @@ class Matter_MessageHandler
ret = true
elif protocol_id == 0x0001 # PROTOCOL_ID_INTERACTION_MODEL
# dispatch to IM Protocol Messages
- matter.profiler.log("process_IM_start")
ret = self.im.process_incoming(frame)
- matter.profiler.log("process_IM_end")
# if `ret` is true, we have something to send
if ret
self.im.send_enqueued(self)
@@ -250,7 +247,6 @@ class Matter_MessageHandler
# msg.exchange_id: exchange id (int)
# msg.local_session_id: local session (for logging)
def send_response_frame(msg)
- matter.profiler.log("send_response_frame")
self.device.msg_send(msg)
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
index 1dc5b0a6a..6a9f8e58f 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_1_Root.be
@@ -221,7 +221,7 @@ class Matter_Plugin_Root : Matter_Plugin
elif attribute == 0x0001 # ---------- VendorName / string ----------
return tlv_solo.set(TLV.UTF1, "Tasmota")
elif attribute == 0x0002 # ---------- VendorID / vendor-id ----------
- return tlv_solo.set(TLV.U2, self.device.vendorid) # Vendor ID reserved for development
+ return tlv_solo.set(TLV.U2, self.device.VENDOR_ID) # Vendor ID reserved for development
elif attribute == 0x0003 # ---------- ProductName / string ----------
return tlv_solo.set(TLV.UTF1, tasmota.cmd("DeviceName", true)['DeviceName'])
elif attribute == 0x0004 # ---------- ProductID / u16 (opt) ----------
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
index 63d95004c..8f67e4ab8 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UDPServer.be
@@ -139,7 +139,7 @@ class Matter_UDPServer
end
# log("MTR: Perf/UDP_received = " + str(debug.counters()), 4)
if self.dispatch_cb
- profiler.log("udp_loop_dispatch")
+ # profiler.log("udp_loop_dispatch")
self.dispatch_cb(packet, from_addr, from_port)
end
profiler.dump(2)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index 56c53fe18..da92a33ef 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -55,8 +55,6 @@ class Matter_Device
var commissioning_instance_eth # random instance name for commissioning (mDNS)
var hostname_wifi # MAC-derived hostname for commissioning
var hostname_eth # MAC-derived hostname for commissioning
- var vendorid
- var productid
# mDNS active announces
var mdns_pase_eth # do we have an active PASE mDNS announce for eth
var mdns_pase_wifi # do we have an active PASE mDNS announce for wifi
@@ -69,12 +67,6 @@ class Matter_Device
var disable_bridge_mode # default is bridge mode, this flag disables this mode for some non-compliant controllers
var next_ep # next endpoint to be allocated for bridge, start at 1
var debug # debug mode, output all values when responding to read request with wildcard
- # context for PBKDF
- var root_iterations # PBKDF number of iterations
- # PBKDF information used only during PASE (freed afterwards)
- var root_salt
- var root_w0
- var root_L
# cron equivalent to call `read_sensors()` regularly and dispatch to all entpoints
var probe_sensor_time # number of milliseconds to wait between each `read_sensors()` or `nil` if none active
var probe_sensor_timestamp # timestamp for `read_sensors()` probe (in millis())
@@ -95,11 +87,7 @@ class Matter_Device
self.plugins = []
self.plugins_persist = false # plugins need to saved only when the first fabric is associated
self.plugins_config_remotes = {}
- self.vendorid = self.VENDOR_ID
- self.productid = self.PRODUCT_ID
- self.root_iterations = self.PBKDF_ITERATIONS
- self.next_ep = 1 # start at endpoint 1 for dynamically allocated endpoints
- self.root_salt = crypto.random(16)
+ self.next_ep = 2 # start at endpoint 2 for dynamically allocated endpoints (1 reserved for aggregator)
self.ipv4only = false
self.disable_bridge_mode = false
self.load_param()
@@ -173,8 +161,21 @@ class Matter_Device
tasmota.publish_result(format('{"Matter":{"Commissioning":1,"PairingCode":"%s","QRCode":"%s"}}', pairing_code, qr_code), 'Matter')
# compute PBKDF
- self._compute_pbkdf(self.root_passcode, self.root_iterations, self.root_salt)
- self.start_basic_commissioning(timeout_s, self.root_iterations, self.root_discriminator, self.root_salt, self.root_w0, #-self.root_w1,-# self.root_L, nil)
+ import crypto
+ var root_salt = crypto.random(16)
+
+ # Compute the PBKDF parameters for SPAKE2+ from root parameters
+ var passcode = bytes().add(self.root_passcode, 4)
+
+ var tv = crypto.PBKDF2_HMAC_SHA256().derive(passcode, root_salt, self.PBKDF_ITERATIONS, 80)
+ var w0s = tv[0..39]
+ var w1s = tv[40..79]
+
+ var root_w0 = crypto.EC_P256().mod(w0s)
+ var w1 = crypto.EC_P256().mod(w1s) # w1 is temporarily computed then discarded
+ # self.root_w1 = crypto.EC_P256().mod(w1s)
+ var root_L = crypto.EC_P256().public_key(w1)
+ self.start_basic_commissioning(timeout_s, self.PBKDF_ITERATIONS, self.root_discriminator, root_salt, root_w0, #-self.root_w1,-# root_L, nil)
end
#####################################################################
@@ -254,37 +255,13 @@ class Matter_Device
return self.commissioning_open != nil
end
- #############################################################
- # (internal) Compute the PBKDF parameters for SPAKE2+ from root parameters
- #
- def _compute_pbkdf(passcode_int, iterations, salt)
- import crypto
- var passcode = bytes().add(passcode_int, 4)
-
- var tv = crypto.PBKDF2_HMAC_SHA256().derive(passcode, salt, iterations, 80)
- var w0s = tv[0..39]
- var w1s = tv[40..79]
-
- self.root_w0 = crypto.EC_P256().mod(w0s)
- var w1 = crypto.EC_P256().mod(w1s) # w1 is temporarily computed then discarded
- # self.root_w1 = crypto.EC_P256().mod(w1s)
- self.root_L = crypto.EC_P256().public_key(w1)
-
- # log("MTR: ******************************", 4)
- # log("MTR: salt = " + self.root_salt.tohex(), 4)
- # log("MTR: passcode_hex = " + passcode.tohex(), 4)
- # log("MTR: w0 = " + self.root_w0.tohex(), 4)
- # log("MTR: L = " + self.root_L.tohex(), 4)
- # log("MTR: ******************************", 4)
- end
-
#############################################################
# Compute QR Code content - can be done only for root PASE
def compute_qrcode_content()
var raw = bytes().resize(11) # we don't use TLV Data so it's only 88 bits or 11 bytes
# version is `000` dont touch
- raw.setbits(3, 16, self.vendorid)
- raw.setbits(19, 16, self.productid)
+ raw.setbits(3, 16, self.VENDOR_ID)
+ raw.setbits(19, 16, self.PRODUCT_ID)
# custom flow = 0 (offset=35, len=2)
raw.setbits(37, 8, 0x04) # already on IP network
raw.setbits(45, 12, self.root_discriminator & 0xFFF)
@@ -452,10 +429,6 @@ class Matter_Device
import mdns
self.stop_basic_commissioning() # close all PASE commissioning information
- # clear any PBKDF information to free memory
- self.root_w0 = nil
- # self.root_w1 = nil
- self.root_L = nil
self.mdns_announce_op_discovery(fabric)
end
@@ -878,7 +851,7 @@ class Matter_Device
import crypto
var services = {
- "VP":str(self.vendorid) + "+" + str(self.productid),
+ "VP": f"{self.VENDOR_ID}+{self.PRODUCT_ID}",
"D": self.commissioning_discriminator,
"CM":1, # requires passcode
"T":0, # no support for TCP
@@ -904,7 +877,7 @@ class Matter_Device
subtype = "_S" + str((self.commissioning_discriminator & 0xF00) >> 8)
log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
- subtype = "_V" + str(self.vendorid)
+ subtype = "_V" + str(self.VENDOR_ID)
log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth, subtype)
subtype = "_CM1"
@@ -926,7 +899,7 @@ class Matter_Device
subtype = "_S" + str((self.commissioning_discriminator & 0xF00) >> 8)
log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
- subtype = "_V" + str(self.vendorid)
+ subtype = "_V" + str(self.VENDOR_ID)
log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi, subtype)
subtype = "_CM1"
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
index 3cdb3e7ed..b38919383 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM.h
@@ -20,52 +20,44 @@ be_local_closure(class_Matter_IM_process_read_request_pull, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
+ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(read_request_start_pull),
- /* K4 */ be_nested_str_weak(ReadRequestMessage),
- /* K5 */ be_nested_str_weak(from_TLV),
- /* K6 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
- /* K7 */ be_nested_str_weak(process_read_or_subscribe_request_event_pull),
- /* K8 */ be_nested_str_weak(send_queue),
- /* K9 */ be_nested_str_weak(push),
- /* K10 */ be_nested_str_weak(IM_ReportData_Pull),
+ /* K1 */ be_nested_str_weak(ReadRequestMessage),
+ /* K2 */ be_nested_str_weak(from_TLV),
+ /* K3 */ be_nested_str_weak(process_read_or_subscribe_request_pull),
+ /* K4 */ be_nested_str_weak(process_read_or_subscribe_request_event_pull),
+ /* K5 */ be_nested_str_weak(send_queue),
+ /* K6 */ be_nested_str_weak(push),
+ /* K7 */ be_nested_str_weak(IM_ReportData_Pull),
}),
be_str_weak(process_read_request_pull),
&be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
+ ( &(const binstruction[25]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0xB80E0000, // 0005 GETNGBL R3 K0
- 0x8C0C0704, // 0006 GETMET R3 R3 K4
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0705, // 0008 GETMET R3 R3 K5
- 0x5C140400, // 0009 MOVE R5 R2
- 0x7C0C0400, // 000A CALL R3 2
- 0x8C100106, // 000B GETMET R4 R0 K6
- 0x5C180600, // 000C MOVE R6 R3
- 0x5C1C0200, // 000D MOVE R7 R1
- 0x7C100600, // 000E CALL R4 3
- 0x8C140107, // 000F GETMET R5 R0 K7
- 0x5C1C0600, // 0010 MOVE R7 R3
- 0x5C200200, // 0011 MOVE R8 R1
- 0x7C140600, // 0012 CALL R5 3
- 0x88180108, // 0013 GETMBR R6 R0 K8
- 0x8C180D09, // 0014 GETMET R6 R6 K9
- 0xB8220000, // 0015 GETNGBL R8 K0
- 0x8C20110A, // 0016 GETMET R8 R8 K10
- 0x5C280200, // 0017 MOVE R10 R1
- 0x5C2C0800, // 0018 MOVE R11 R4
- 0x5C300A00, // 0019 MOVE R12 R5
- 0x7C200800, // 001A CALL R8 4
- 0x7C180400, // 001B CALL R6 2
- 0x50180200, // 001C LDBOOL R6 1 0
- 0x80040C00, // 001D RET 1 R6
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x8C0C0702, // 0003 GETMET R3 R3 K2
+ 0x5C140400, // 0004 MOVE R5 R2
+ 0x7C0C0400, // 0005 CALL R3 2
+ 0x8C100103, // 0006 GETMET R4 R0 K3
+ 0x5C180600, // 0007 MOVE R6 R3
+ 0x5C1C0200, // 0008 MOVE R7 R1
+ 0x7C100600, // 0009 CALL R4 3
+ 0x8C140104, // 000A GETMET R5 R0 K4
+ 0x5C1C0600, // 000B MOVE R7 R3
+ 0x5C200200, // 000C MOVE R8 R1
+ 0x7C140600, // 000D CALL R5 3
+ 0x88180105, // 000E GETMBR R6 R0 K5
+ 0x8C180D06, // 000F GETMET R6 R6 K6
+ 0xB8220000, // 0010 GETNGBL R8 K0
+ 0x8C201107, // 0011 GETMET R8 R8 K7
+ 0x5C280200, // 0012 MOVE R10 R1
+ 0x5C2C0800, // 0013 MOVE R11 R4
+ 0x5C300A00, // 0014 MOVE R12 R5
+ 0x7C200800, // 0015 CALL R8 4
+ 0x7C180400, // 0016 CALL R6 2
+ 0x50180200, // 0017 LDBOOL R6 1 0
+ 0x80040C00, // 0018 RET 1 R6
})
)
);
@@ -131,287 +123,274 @@ be_local_closure(class_Matter_IM_process_invoke_request, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[44]) { /* constants */
+ ( &(const bvalue[41]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(invoke_request_start),
- /* K4 */ be_nested_str_weak(Path),
- /* K5 */ be_nested_str_weak(msg),
- /* K6 */ be_nested_str_weak(InvokeRequestMessage),
- /* K7 */ be_nested_str_weak(from_TLV),
- /* K8 */ be_nested_str_weak(invoke_requests),
- /* K9 */ be_nested_str_weak(InvokeResponseMessage),
- /* K10 */ be_nested_str_weak(suppress_response),
- /* K11 */ be_nested_str_weak(invoke_responses),
- /* K12 */ be_nested_str_weak(endpoint),
- /* K13 */ be_nested_str_weak(command_path),
- /* K14 */ be_nested_str_weak(cluster),
- /* K15 */ be_nested_str_weak(command),
- /* K16 */ be_nested_str_weak(status),
- /* K17 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
- /* K18 */ be_nested_str_weak(get_command_name),
- /* K19 */ be_nested_str_weak(device),
- /* K20 */ be_nested_str_weak(invoke_request),
- /* K21 */ be_nested_str_weak(session),
- /* K22 */ be_nested_str_weak(command_fields),
- /* K23 */ be_nested_str_weak(COMMAND_X20DONE),
- /* K24 */ be_nested_str_weak(_X28),
- /* K25 */ be_nested_str_weak(_X29_X20),
- /* K26 */ be_nested_str_weak(),
- /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
- /* K28 */ be_nested_str_weak(local_session_id),
- /* K29 */ be_const_int(3),
- /* K30 */ be_nested_str_weak(SUCCESS),
- /* K31 */ be_nested_str_weak(invokeresponse2raw),
- /* K32 */ be_nested_str_weak(push),
- /* K33 */ be_nested_str_weak(tasmota),
- /* K34 */ be_nested_str_weak(loglevel),
- /* K35 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
- /* K36 */ be_nested_str_weak(exchange_id),
- /* K37 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
- /* K38 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
- /* K39 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
- /* K40 */ be_nested_str_weak(stop_iteration),
- /* K41 */ be_const_int(0),
- /* K42 */ be_nested_str_weak(send_queue),
- /* K43 */ be_nested_str_weak(IM_InvokeResponse),
+ /* K1 */ be_nested_str_weak(Path),
+ /* K2 */ be_nested_str_weak(msg),
+ /* K3 */ be_nested_str_weak(InvokeRequestMessage),
+ /* K4 */ be_nested_str_weak(from_TLV),
+ /* K5 */ be_nested_str_weak(invoke_requests),
+ /* K6 */ be_nested_str_weak(InvokeResponseMessage),
+ /* K7 */ be_nested_str_weak(suppress_response),
+ /* K8 */ be_nested_str_weak(invoke_responses),
+ /* K9 */ be_nested_str_weak(endpoint),
+ /* K10 */ be_nested_str_weak(command_path),
+ /* K11 */ be_nested_str_weak(cluster),
+ /* K12 */ be_nested_str_weak(command),
+ /* K13 */ be_nested_str_weak(status),
+ /* K14 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
+ /* K15 */ be_nested_str_weak(get_command_name),
+ /* K16 */ be_nested_str_weak(device),
+ /* K17 */ be_nested_str_weak(invoke_request),
+ /* K18 */ be_nested_str_weak(session),
+ /* K19 */ be_nested_str_weak(command_fields),
+ /* K20 */ be_nested_str_weak(log),
+ /* K21 */ be_nested_str_weak(_X28),
+ /* K22 */ be_nested_str_weak(_X29_X20),
+ /* K23 */ be_nested_str_weak(),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
+ /* K25 */ be_nested_str_weak(local_session_id),
+ /* K26 */ be_const_int(3),
+ /* K27 */ be_nested_str_weak(SUCCESS),
+ /* K28 */ be_nested_str_weak(invokeresponse2raw),
+ /* K29 */ be_nested_str_weak(push),
+ /* K30 */ be_nested_str_weak(tasmota),
+ /* K31 */ be_nested_str_weak(loglevel),
+ /* K32 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
+ /* K33 */ be_nested_str_weak(exchange_id),
+ /* K34 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
+ /* K35 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
+ /* K36 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ /* K38 */ be_const_int(0),
+ /* K39 */ be_nested_str_weak(send_queue),
+ /* K40 */ be_nested_str_weak(IM_InvokeResponse),
}),
be_str_weak(process_invoke_request),
&be_const_str_solidified,
- ( &(const binstruction[232]) { /* code */
+ ( &(const binstruction[222]) { /* code */
0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0xB80E0000, // 0005 GETNGBL R3 K0
- 0x8C0C0704, // 0006 GETMET R3 R3 K4
- 0x7C0C0200, // 0007 CALL R3 1
- 0x900E0A01, // 0008 SETMBR R3 K5 R1
- 0xB8120000, // 0009 GETNGBL R4 K0
- 0x8C100906, // 000A GETMET R4 R4 K6
- 0x7C100200, // 000B CALL R4 1
- 0x8C100907, // 000C GETMET R4 R4 K7
- 0x5C180400, // 000D MOVE R6 R2
- 0x7C100400, // 000E CALL R4 2
- 0x88140908, // 000F GETMBR R5 R4 K8
- 0x4C180000, // 0010 LDNIL R6
- 0x20140A06, // 0011 NE R5 R5 R6
- 0x781600D3, // 0012 JMPF R5 #00E7
- 0xB8160000, // 0013 GETNGBL R5 K0
- 0x8C140B09, // 0014 GETMET R5 R5 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x50180000, // 0016 LDBOOL R6 0 0
- 0x90161406, // 0017 SETMBR R5 K10 R6
- 0x60180012, // 0018 GETGBL R6 G18
- 0x7C180000, // 0019 CALL R6 0
- 0x90161606, // 001A SETMBR R5 K11 R6
- 0x60180010, // 001B GETGBL R6 G16
- 0x881C0908, // 001C GETMBR R7 R4 K8
- 0x7C180200, // 001D CALL R6 1
- 0xA80200B2, // 001E EXBLK 0 #00D2
- 0x5C1C0C00, // 001F MOVE R7 R6
- 0x7C1C0000, // 0020 CALL R7 0
- 0x88200F0D, // 0021 GETMBR R8 R7 K13
- 0x8820110C, // 0022 GETMBR R8 R8 K12
- 0x900E1808, // 0023 SETMBR R3 K12 R8
- 0x88200F0D, // 0024 GETMBR R8 R7 K13
- 0x8820110E, // 0025 GETMBR R8 R8 K14
- 0x900E1C08, // 0026 SETMBR R3 K14 R8
- 0x88200F0D, // 0027 GETMBR R8 R7 K13
- 0x8820110F, // 0028 GETMBR R8 R8 K15
- 0x900E1E08, // 0029 SETMBR R3 K15 R8
- 0xB8220000, // 002A GETNGBL R8 K0
- 0x88201111, // 002B GETMBR R8 R8 K17
- 0x900E2008, // 002C SETMBR R3 K16 R8
- 0xB8220000, // 002D GETNGBL R8 K0
- 0x8C201112, // 002E GETMET R8 R8 K18
- 0x8828070E, // 002F GETMBR R10 R3 K14
- 0x882C070F, // 0030 GETMBR R11 R3 K15
- 0x7C200600, // 0031 CALL R8 3
- 0x60240008, // 0032 GETGBL R9 G8
- 0x5C280600, // 0033 MOVE R10 R3
- 0x7C240200, // 0034 CALL R9 1
- 0x88280113, // 0035 GETMBR R10 R0 K19
- 0x8C281514, // 0036 GETMET R10 R10 K20
- 0x88300315, // 0037 GETMBR R12 R1 K21
- 0x88340F16, // 0038 GETMBR R13 R7 K22
- 0x5C380600, // 0039 MOVE R14 R3
- 0x7C280800, // 003A CALL R10 4
- 0xB82E0000, // 003B GETNGBL R11 K0
- 0x882C1701, // 003C GETMBR R11 R11 K1
- 0x8C2C1702, // 003D GETMET R11 R11 K2
- 0x58340017, // 003E LDCONST R13 K23
- 0x7C2C0400, // 003F CALL R11 2
- 0x882C0702, // 0040 GETMBR R11 R3 K2
- 0x4C300000, // 0041 LDNIL R12
- 0x202C160C, // 0042 NE R11 R11 R12
- 0x782E0005, // 0043 JMPF R11 #004A
- 0x602C0008, // 0044 GETGBL R11 G8
- 0x88300702, // 0045 GETMBR R12 R3 K2
- 0x7C2C0200, // 0046 CALL R11 1
- 0x002E300B, // 0047 ADD R11 K24 R11
- 0x002C1719, // 0048 ADD R11 R11 K25
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x7C0C0200, // 0002 CALL R3 1
+ 0x900E0401, // 0003 SETMBR R3 K2 R1
+ 0xB8120000, // 0004 GETNGBL R4 K0
+ 0x8C100903, // 0005 GETMET R4 R4 K3
+ 0x7C100200, // 0006 CALL R4 1
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x5C180400, // 0008 MOVE R6 R2
+ 0x7C100400, // 0009 CALL R4 2
+ 0x88140905, // 000A GETMBR R5 R4 K5
+ 0x4C180000, // 000B LDNIL R6
+ 0x20140A06, // 000C NE R5 R5 R6
+ 0x781600CE, // 000D JMPF R5 #00DD
+ 0xB8160000, // 000E GETNGBL R5 K0
+ 0x8C140B06, // 000F GETMET R5 R5 K6
+ 0x7C140200, // 0010 CALL R5 1
+ 0x50180000, // 0011 LDBOOL R6 0 0
+ 0x90160E06, // 0012 SETMBR R5 K7 R6
+ 0x60180012, // 0013 GETGBL R6 G18
+ 0x7C180000, // 0014 CALL R6 0
+ 0x90161006, // 0015 SETMBR R5 K8 R6
+ 0x60180010, // 0016 GETGBL R6 G16
+ 0x881C0905, // 0017 GETMBR R7 R4 K5
+ 0x7C180200, // 0018 CALL R6 1
+ 0xA80200AD, // 0019 EXBLK 0 #00C8
+ 0x5C1C0C00, // 001A MOVE R7 R6
+ 0x7C1C0000, // 001B CALL R7 0
+ 0x88200F0A, // 001C GETMBR R8 R7 K10
+ 0x88201109, // 001D GETMBR R8 R8 K9
+ 0x900E1208, // 001E SETMBR R3 K9 R8
+ 0x88200F0A, // 001F GETMBR R8 R7 K10
+ 0x8820110B, // 0020 GETMBR R8 R8 K11
+ 0x900E1608, // 0021 SETMBR R3 K11 R8
+ 0x88200F0A, // 0022 GETMBR R8 R7 K10
+ 0x8820110C, // 0023 GETMBR R8 R8 K12
+ 0x900E1808, // 0024 SETMBR R3 K12 R8
+ 0xB8220000, // 0025 GETNGBL R8 K0
+ 0x8820110E, // 0026 GETMBR R8 R8 K14
+ 0x900E1A08, // 0027 SETMBR R3 K13 R8
+ 0xB8220000, // 0028 GETNGBL R8 K0
+ 0x8C20110F, // 0029 GETMET R8 R8 K15
+ 0x8828070B, // 002A GETMBR R10 R3 K11
+ 0x882C070C, // 002B GETMBR R11 R3 K12
+ 0x7C200600, // 002C CALL R8 3
+ 0x60240008, // 002D GETGBL R9 G8
+ 0x5C280600, // 002E MOVE R10 R3
+ 0x7C240200, // 002F CALL R9 1
+ 0x88280110, // 0030 GETMBR R10 R0 K16
+ 0x8C281511, // 0031 GETMET R10 R10 K17
+ 0x88300312, // 0032 GETMBR R12 R1 K18
+ 0x88340F13, // 0033 GETMBR R13 R7 K19
+ 0x5C380600, // 0034 MOVE R14 R3
+ 0x7C280800, // 0035 CALL R10 4
+ 0x882C0714, // 0036 GETMBR R11 R3 K20
+ 0x4C300000, // 0037 LDNIL R12
+ 0x202C160C, // 0038 NE R11 R11 R12
+ 0x782E0005, // 0039 JMPF R11 #0040
+ 0x602C0008, // 003A GETGBL R11 G8
+ 0x88300714, // 003B GETMBR R12 R3 K20
+ 0x7C2C0200, // 003C CALL R11 1
+ 0x002E2A0B, // 003D ADD R11 K21 R11
+ 0x002C1716, // 003E ADD R11 R11 K22
+ 0x70020000, // 003F JMP #0041
+ 0x582C0017, // 0040 LDCONST R11 K23
+ 0xB8322800, // 0041 GETNGBL R12 K20
+ 0x60340018, // 0042 GETGBL R13 G24
+ 0x58380018, // 0043 LDCONST R14 K24
+ 0x883C0312, // 0044 GETMBR R15 R1 K18
+ 0x883C1F19, // 0045 GETMBR R15 R15 K25
+ 0x5C401200, // 0046 MOVE R16 R9
+ 0x78220001, // 0047 JMPF R8 #004A
+ 0x5C441000, // 0048 MOVE R17 R8
0x70020000, // 0049 JMP #004B
- 0x582C001A, // 004A LDCONST R11 K26
- 0xB8320400, // 004B GETNGBL R12 K2
- 0x60340018, // 004C GETGBL R13 G24
- 0x5838001B, // 004D LDCONST R14 K27
- 0x883C0315, // 004E GETMBR R15 R1 K21
- 0x883C1F1C, // 004F GETMBR R15 R15 K28
- 0x5C401200, // 0050 MOVE R16 R9
- 0x78220001, // 0051 JMPF R8 #0054
- 0x5C441000, // 0052 MOVE R17 R8
- 0x70020000, // 0053 JMP #0055
- 0x5844001A, // 0054 LDCONST R17 K26
- 0x5C481600, // 0055 MOVE R18 R11
- 0x7C340A00, // 0056 CALL R13 5
- 0x5838001D, // 0057 LDCONST R14 K29
- 0x7C300400, // 0058 CALL R12 2
- 0x4C300000, // 0059 LDNIL R12
- 0x900E040C, // 005A SETMBR R3 K2 R12
- 0x60300015, // 005B GETGBL R12 G21
- 0x5436001F, // 005C LDINT R13 32
- 0x7C300200, // 005D CALL R12 1
- 0x50340200, // 005E LDBOOL R13 1 0
- 0x1C34140D, // 005F EQ R13 R10 R13
- 0x74360004, // 0060 JMPT R13 #0066
- 0x88340710, // 0061 GETMBR R13 R3 K16
- 0xB83A0000, // 0062 GETNGBL R14 K0
- 0x88381D1E, // 0063 GETMBR R14 R14 K30
- 0x1C341A0E, // 0064 EQ R13 R13 R14
- 0x7836001A, // 0065 JMPF R13 #0081
- 0xB8360000, // 0066 GETNGBL R13 K0
- 0x88341B1E, // 0067 GETMBR R13 R13 K30
- 0x900E200D, // 0068 SETMBR R3 K16 R13
- 0x8C34011F, // 0069 GETMET R13 R0 K31
- 0x5C3C1800, // 006A MOVE R15 R12
- 0x5C400600, // 006B MOVE R16 R3
- 0x4C440000, // 006C LDNIL R17
- 0x7C340800, // 006D CALL R13 4
- 0x88340B0B, // 006E GETMBR R13 R5 K11
- 0x8C341B20, // 006F GETMET R13 R13 K32
- 0x5C3C1800, // 0070 MOVE R15 R12
- 0x7C340400, // 0071 CALL R13 2
- 0xB8364200, // 0072 GETNGBL R13 K33
- 0x8C341B22, // 0073 GETMET R13 R13 K34
- 0x583C001D, // 0074 LDCONST R15 K29
+ 0x58440017, // 004A LDCONST R17 K23
+ 0x5C481600, // 004B MOVE R18 R11
+ 0x7C340A00, // 004C CALL R13 5
+ 0x5838001A, // 004D LDCONST R14 K26
+ 0x7C300400, // 004E CALL R12 2
+ 0x4C300000, // 004F LDNIL R12
+ 0x900E280C, // 0050 SETMBR R3 K20 R12
+ 0x60300015, // 0051 GETGBL R12 G21
+ 0x5436001F, // 0052 LDINT R13 32
+ 0x7C300200, // 0053 CALL R12 1
+ 0x50340200, // 0054 LDBOOL R13 1 0
+ 0x1C34140D, // 0055 EQ R13 R10 R13
+ 0x74360004, // 0056 JMPT R13 #005C
+ 0x8834070D, // 0057 GETMBR R13 R3 K13
+ 0xB83A0000, // 0058 GETNGBL R14 K0
+ 0x88381D1B, // 0059 GETMBR R14 R14 K27
+ 0x1C341A0E, // 005A EQ R13 R13 R14
+ 0x7836001A, // 005B JMPF R13 #0077
+ 0xB8360000, // 005C GETNGBL R13 K0
+ 0x88341B1B, // 005D GETMBR R13 R13 K27
+ 0x900E1A0D, // 005E SETMBR R3 K13 R13
+ 0x8C34011C, // 005F GETMET R13 R0 K28
+ 0x5C3C1800, // 0060 MOVE R15 R12
+ 0x5C400600, // 0061 MOVE R16 R3
+ 0x4C440000, // 0062 LDNIL R17
+ 0x7C340800, // 0063 CALL R13 4
+ 0x88340B08, // 0064 GETMBR R13 R5 K8
+ 0x8C341B1D, // 0065 GETMET R13 R13 K29
+ 0x5C3C1800, // 0066 MOVE R15 R12
+ 0x7C340400, // 0067 CALL R13 2
+ 0xB8363C00, // 0068 GETNGBL R13 K30
+ 0x8C341B1F, // 0069 GETMET R13 R13 K31
+ 0x583C001A, // 006A LDCONST R15 K26
+ 0x7C340400, // 006B CALL R13 2
+ 0x78360008, // 006C JMPF R13 #0076
+ 0xB8362800, // 006D GETNGBL R13 K20
+ 0x60380018, // 006E GETGBL R14 G24
+ 0x583C0020, // 006F LDCONST R15 K32
+ 0x88400312, // 0070 GETMBR R16 R1 K18
+ 0x88402119, // 0071 GETMBR R16 R16 K25
+ 0x88440321, // 0072 GETMBR R17 R1 K33
+ 0x7C380600, // 0073 CALL R14 3
+ 0x583C001A, // 0074 LDCONST R15 K26
0x7C340400, // 0075 CALL R13 2
- 0x78360008, // 0076 JMPF R13 #0080
- 0xB8360400, // 0077 GETNGBL R13 K2
- 0x60380018, // 0078 GETGBL R14 G24
- 0x583C0023, // 0079 LDCONST R15 K35
- 0x88400315, // 007A GETMBR R16 R1 K21
- 0x8840211C, // 007B GETMBR R16 R16 K28
- 0x88440324, // 007C GETMBR R17 R1 K36
- 0x7C380600, // 007D CALL R14 3
- 0x583C001D, // 007E LDCONST R15 K29
- 0x7C340400, // 007F CALL R13 2
- 0x7002004F, // 0080 JMP #00D1
- 0x4C340000, // 0081 LDNIL R13
- 0x2034140D, // 0082 NE R13 R10 R13
- 0x78360021, // 0083 JMPF R13 #00A6
- 0x8C34011F, // 0084 GETMET R13 R0 K31
- 0x5C3C1800, // 0085 MOVE R15 R12
- 0x5C400600, // 0086 MOVE R16 R3
- 0x5C441400, // 0087 MOVE R17 R10
- 0x7C340800, // 0088 CALL R13 4
- 0x88340B0B, // 0089 GETMBR R13 R5 K11
- 0x8C341B20, // 008A GETMET R13 R13 K32
- 0x5C3C1800, // 008B MOVE R15 R12
- 0x7C340400, // 008C CALL R13 2
- 0xB8360000, // 008D GETNGBL R13 K0
- 0x8C341B12, // 008E GETMET R13 R13 K18
- 0x883C070E, // 008F GETMBR R15 R3 K14
- 0x8840070F, // 0090 GETMBR R16 R3 K15
- 0x7C340600, // 0091 CALL R13 3
- 0x5C201A00, // 0092 MOVE R8 R13
- 0x5C341000, // 0093 MOVE R13 R8
- 0x74360000, // 0094 JMPT R13 #0096
- 0x5820001A, // 0095 LDCONST R8 K26
- 0xB8364200, // 0096 GETNGBL R13 K33
- 0x8C341B22, // 0097 GETMET R13 R13 K34
- 0x583C001D, // 0098 LDCONST R15 K29
- 0x7C340400, // 0099 CALL R13 2
- 0x78360009, // 009A JMPF R13 #00A5
- 0xB8360400, // 009B GETNGBL R13 K2
- 0x60380018, // 009C GETGBL R14 G24
- 0x583C0025, // 009D LDCONST R15 K37
- 0x88400315, // 009E GETMBR R16 R1 K21
- 0x8840211C, // 009F GETMBR R16 R16 K28
- 0x5C440600, // 00A0 MOVE R17 R3
- 0x5C481000, // 00A1 MOVE R18 R8
- 0x7C380800, // 00A2 CALL R14 4
- 0x583C001D, // 00A3 LDCONST R15 K29
- 0x7C340400, // 00A4 CALL R13 2
- 0x7002002A, // 00A5 JMP #00D1
- 0x88340710, // 00A6 GETMBR R13 R3 K16
- 0x4C380000, // 00A7 LDNIL R14
- 0x20341A0E, // 00A8 NE R13 R13 R14
- 0x78360018, // 00A9 JMPF R13 #00C3
- 0x8C34011F, // 00AA GETMET R13 R0 K31
- 0x5C3C1800, // 00AB MOVE R15 R12
- 0x5C400600, // 00AC MOVE R16 R3
- 0x4C440000, // 00AD LDNIL R17
- 0x7C340800, // 00AE CALL R13 4
- 0x88340B0B, // 00AF GETMBR R13 R5 K11
- 0x8C341B20, // 00B0 GETMET R13 R13 K32
- 0x5C3C1800, // 00B1 MOVE R15 R12
- 0x7C340400, // 00B2 CALL R13 2
- 0xB8364200, // 00B3 GETNGBL R13 K33
- 0x8C341B22, // 00B4 GETMET R13 R13 K34
- 0x583C001D, // 00B5 LDCONST R15 K29
- 0x7C340400, // 00B6 CALL R13 2
- 0x78360009, // 00B7 JMPF R13 #00C2
- 0xB8360400, // 00B8 GETNGBL R13 K2
- 0x60380018, // 00B9 GETGBL R14 G24
- 0x583C0026, // 00BA LDCONST R15 K38
- 0x88400315, // 00BB GETMBR R16 R1 K21
- 0x8840211C, // 00BC GETMBR R16 R16 K28
- 0x88440710, // 00BD GETMBR R17 R3 K16
- 0x88480324, // 00BE GETMBR R18 R1 K36
- 0x7C380800, // 00BF CALL R14 4
- 0x583C001D, // 00C0 LDCONST R15 K29
- 0x7C340400, // 00C1 CALL R13 2
- 0x7002000D, // 00C2 JMP #00D1
- 0xB8364200, // 00C3 GETNGBL R13 K33
- 0x8C341B22, // 00C4 GETMET R13 R13 K34
- 0x583C001D, // 00C5 LDCONST R15 K29
+ 0x7002004F, // 0076 JMP #00C7
+ 0x4C340000, // 0077 LDNIL R13
+ 0x2034140D, // 0078 NE R13 R10 R13
+ 0x78360021, // 0079 JMPF R13 #009C
+ 0x8C34011C, // 007A GETMET R13 R0 K28
+ 0x5C3C1800, // 007B MOVE R15 R12
+ 0x5C400600, // 007C MOVE R16 R3
+ 0x5C441400, // 007D MOVE R17 R10
+ 0x7C340800, // 007E CALL R13 4
+ 0x88340B08, // 007F GETMBR R13 R5 K8
+ 0x8C341B1D, // 0080 GETMET R13 R13 K29
+ 0x5C3C1800, // 0081 MOVE R15 R12
+ 0x7C340400, // 0082 CALL R13 2
+ 0xB8360000, // 0083 GETNGBL R13 K0
+ 0x8C341B0F, // 0084 GETMET R13 R13 K15
+ 0x883C070B, // 0085 GETMBR R15 R3 K11
+ 0x8840070C, // 0086 GETMBR R16 R3 K12
+ 0x7C340600, // 0087 CALL R13 3
+ 0x5C201A00, // 0088 MOVE R8 R13
+ 0x5C341000, // 0089 MOVE R13 R8
+ 0x74360000, // 008A JMPT R13 #008C
+ 0x58200017, // 008B LDCONST R8 K23
+ 0xB8363C00, // 008C GETNGBL R13 K30
+ 0x8C341B1F, // 008D GETMET R13 R13 K31
+ 0x583C001A, // 008E LDCONST R15 K26
+ 0x7C340400, // 008F CALL R13 2
+ 0x78360009, // 0090 JMPF R13 #009B
+ 0xB8362800, // 0091 GETNGBL R13 K20
+ 0x60380018, // 0092 GETGBL R14 G24
+ 0x583C0022, // 0093 LDCONST R15 K34
+ 0x88400312, // 0094 GETMBR R16 R1 K18
+ 0x88402119, // 0095 GETMBR R16 R16 K25
+ 0x5C440600, // 0096 MOVE R17 R3
+ 0x5C481000, // 0097 MOVE R18 R8
+ 0x7C380800, // 0098 CALL R14 4
+ 0x583C001A, // 0099 LDCONST R15 K26
+ 0x7C340400, // 009A CALL R13 2
+ 0x7002002A, // 009B JMP #00C7
+ 0x8834070D, // 009C GETMBR R13 R3 K13
+ 0x4C380000, // 009D LDNIL R14
+ 0x20341A0E, // 009E NE R13 R13 R14
+ 0x78360018, // 009F JMPF R13 #00B9
+ 0x8C34011C, // 00A0 GETMET R13 R0 K28
+ 0x5C3C1800, // 00A1 MOVE R15 R12
+ 0x5C400600, // 00A2 MOVE R16 R3
+ 0x4C440000, // 00A3 LDNIL R17
+ 0x7C340800, // 00A4 CALL R13 4
+ 0x88340B08, // 00A5 GETMBR R13 R5 K8
+ 0x8C341B1D, // 00A6 GETMET R13 R13 K29
+ 0x5C3C1800, // 00A7 MOVE R15 R12
+ 0x7C340400, // 00A8 CALL R13 2
+ 0xB8363C00, // 00A9 GETNGBL R13 K30
+ 0x8C341B1F, // 00AA GETMET R13 R13 K31
+ 0x583C001A, // 00AB LDCONST R15 K26
+ 0x7C340400, // 00AC CALL R13 2
+ 0x78360009, // 00AD JMPF R13 #00B8
+ 0xB8362800, // 00AE GETNGBL R13 K20
+ 0x60380018, // 00AF GETGBL R14 G24
+ 0x583C0023, // 00B0 LDCONST R15 K35
+ 0x88400312, // 00B1 GETMBR R16 R1 K18
+ 0x88402119, // 00B2 GETMBR R16 R16 K25
+ 0x8844070D, // 00B3 GETMBR R17 R3 K13
+ 0x88480321, // 00B4 GETMBR R18 R1 K33
+ 0x7C380800, // 00B5 CALL R14 4
+ 0x583C001A, // 00B6 LDCONST R15 K26
+ 0x7C340400, // 00B7 CALL R13 2
+ 0x7002000D, // 00B8 JMP #00C7
+ 0xB8363C00, // 00B9 GETNGBL R13 K30
+ 0x8C341B1F, // 00BA GETMET R13 R13 K31
+ 0x583C001A, // 00BB LDCONST R15 K26
+ 0x7C340400, // 00BC CALL R13 2
+ 0x78360008, // 00BD JMPF R13 #00C7
+ 0xB8362800, // 00BE GETNGBL R13 K20
+ 0x60380018, // 00BF GETGBL R14 G24
+ 0x583C0024, // 00C0 LDCONST R15 K36
+ 0x88400312, // 00C1 GETMBR R16 R1 K18
+ 0x88402119, // 00C2 GETMBR R16 R16 K25
+ 0x88440321, // 00C3 GETMBR R17 R1 K33
+ 0x7C380600, // 00C4 CALL R14 3
+ 0x583C001A, // 00C5 LDCONST R15 K26
0x7C340400, // 00C6 CALL R13 2
- 0x78360008, // 00C7 JMPF R13 #00D1
- 0xB8360400, // 00C8 GETNGBL R13 K2
- 0x60380018, // 00C9 GETGBL R14 G24
- 0x583C0027, // 00CA LDCONST R15 K39
- 0x88400315, // 00CB GETMBR R16 R1 K21
- 0x8840211C, // 00CC GETMBR R16 R16 K28
- 0x88440324, // 00CD GETMBR R17 R1 K36
- 0x7C380600, // 00CE CALL R14 3
- 0x583C001D, // 00CF LDCONST R15 K29
- 0x7C340400, // 00D0 CALL R13 2
- 0x7001FF4C, // 00D1 JMP #001F
- 0x58180028, // 00D2 LDCONST R6 K40
- 0xAC180200, // 00D3 CATCH R6 1 0
- 0xB0080000, // 00D4 RAISE 2 R0 R0
- 0x6018000C, // 00D5 GETGBL R6 G12
- 0x881C0B0B, // 00D6 GETMBR R7 R5 K11
- 0x7C180200, // 00D7 CALL R6 1
- 0x24180D29, // 00D8 GT R6 R6 K41
- 0x781A0008, // 00D9 JMPF R6 #00E3
- 0x8818012A, // 00DA GETMBR R6 R0 K42
- 0x8C180D20, // 00DB GETMET R6 R6 K32
- 0xB8220000, // 00DC GETNGBL R8 K0
- 0x8C20112B, // 00DD GETMET R8 R8 K43
- 0x5C280200, // 00DE MOVE R10 R1
- 0x5C2C0A00, // 00DF MOVE R11 R5
- 0x7C200600, // 00E0 CALL R8 3
- 0x7C180400, // 00E1 CALL R6 2
- 0x70020001, // 00E2 JMP #00E5
- 0x50180000, // 00E3 LDBOOL R6 0 0
- 0x80040C00, // 00E4 RET 1 R6
- 0x50180200, // 00E5 LDBOOL R6 1 0
- 0x80040C00, // 00E6 RET 1 R6
- 0x80000000, // 00E7 RET 0
+ 0x7001FF51, // 00C7 JMP #001A
+ 0x58180025, // 00C8 LDCONST R6 K37
+ 0xAC180200, // 00C9 CATCH R6 1 0
+ 0xB0080000, // 00CA RAISE 2 R0 R0
+ 0x6018000C, // 00CB GETGBL R6 G12
+ 0x881C0B08, // 00CC GETMBR R7 R5 K8
+ 0x7C180200, // 00CD CALL R6 1
+ 0x24180D26, // 00CE GT R6 R6 K38
+ 0x781A0008, // 00CF JMPF R6 #00D9
+ 0x88180127, // 00D0 GETMBR R6 R0 K39
+ 0x8C180D1D, // 00D1 GETMET R6 R6 K29
+ 0xB8220000, // 00D2 GETNGBL R8 K0
+ 0x8C201128, // 00D3 GETMET R8 R8 K40
+ 0x5C280200, // 00D4 MOVE R10 R1
+ 0x5C2C0A00, // 00D5 MOVE R11 R5
+ 0x7C200600, // 00D6 CALL R8 3
+ 0x7C180400, // 00D7 CALL R6 2
+ 0x70020001, // 00D8 JMP #00DB
+ 0x50180000, // 00D9 LDBOOL R6 0 0
+ 0x80040C00, // 00DA RET 1 R6
+ 0x50180200, // 00DB LDBOOL R6 1 0
+ 0x80040C00, // 00DC RET 1 R6
+ 0x80000000, // 00DD RET 0
})
)
);
@@ -1063,256 +1042,237 @@ be_local_closure(class_Matter_IM_process_invoke_request_solo, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[42]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(invoke_request_solo_start),
- /* K4 */ be_nested_str_weak(msg),
- /* K5 */ be_nested_str_weak(status),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
- /* K7 */ be_nested_str_weak(get_command_name),
- /* K8 */ be_nested_str_weak(cluster),
- /* K9 */ be_nested_str_weak(command),
- /* K10 */ be_nested_str_weak(device),
- /* K11 */ be_nested_str_weak(invoke_request),
- /* K12 */ be_nested_str_weak(session),
- /* K13 */ be_nested_str_weak(command_fields),
- /* K14 */ be_nested_str_weak(COMMAND_X20DONE),
- /* K15 */ be_nested_str_weak(_X28),
- /* K16 */ be_nested_str_weak(_X29_X20),
- /* K17 */ be_nested_str_weak(),
- /* K18 */ be_nested_str_weak(tasmota),
- /* K19 */ be_nested_str_weak(loglevel),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
- /* K22 */ be_nested_str_weak(local_session_id),
- /* K23 */ be_nested_str_weak(add),
- /* K24 */ be_const_int(354943030),
- /* K25 */ be_const_int(1),
- /* K26 */ be_nested_str_weak(SUCCESS),
- /* K27 */ be_nested_str_weak(invokeresponse2raw),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
- /* K29 */ be_nested_str_weak(exchange_id),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
- /* K31 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
- /* K32 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
- /* K33 */ be_const_int(405077761),
- /* K34 */ be_nested_str_weak(build_response),
- /* K35 */ be_nested_str_weak(message_handler),
- /* K36 */ be_nested_str_weak(raw),
- /* K37 */ be_nested_str_weak(clear),
- /* K38 */ be_nested_str_weak(encode_frame),
- /* K39 */ be_nested_str_weak(encrypt),
- /* K40 */ be_nested_str_weak(send_response_frame),
- /* K41 */ be_nested_str_weak(RESPONSE_X20SENT),
+ ( &(const bvalue[38]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg),
+ /* K1 */ be_nested_str_weak(status),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(UNSUPPORTED_COMMAND),
+ /* K4 */ be_nested_str_weak(get_command_name),
+ /* K5 */ be_nested_str_weak(cluster),
+ /* K6 */ be_nested_str_weak(command),
+ /* K7 */ be_nested_str_weak(device),
+ /* K8 */ be_nested_str_weak(invoke_request),
+ /* K9 */ be_nested_str_weak(session),
+ /* K10 */ be_nested_str_weak(command_fields),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(_X28),
+ /* K13 */ be_nested_str_weak(_X29_X20),
+ /* K14 */ be_nested_str_weak(),
+ /* K15 */ be_nested_str_weak(tasmota),
+ /* K16 */ be_nested_str_weak(loglevel),
+ /* K17 */ be_const_int(3),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20_X3ECommand1_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s_X20_X25s),
+ /* K19 */ be_nested_str_weak(local_session_id),
+ /* K20 */ be_nested_str_weak(add),
+ /* K21 */ be_const_int(354943030),
+ /* K22 */ be_const_int(1),
+ /* K23 */ be_nested_str_weak(SUCCESS),
+ /* K24 */ be_nested_str_weak(invokeresponse2raw),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20OK_X20exch_X3D_X25i),
+ /* K26 */ be_nested_str_weak(exchange_id),
+ /* K27 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s_X20_X25s),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20Status_X3D0x_X2502X_X20exch_X3D_X25i),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20_Ignore_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i),
+ /* K30 */ be_const_int(405077761),
+ /* K31 */ be_nested_str_weak(build_response),
+ /* K32 */ be_nested_str_weak(message_handler),
+ /* K33 */ be_nested_str_weak(raw),
+ /* K34 */ be_nested_str_weak(clear),
+ /* K35 */ be_nested_str_weak(encode_frame),
+ /* K36 */ be_nested_str_weak(encrypt),
+ /* K37 */ be_nested_str_weak(send_response_frame),
}),
be_str_weak(process_invoke_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[203]) { /* code */
- 0xB80E0000, // 0000 GETNGBL R3 K0
- 0x880C0701, // 0001 GETMBR R3 R3 K1
- 0x8C0C0702, // 0002 GETMET R3 R3 K2
- 0x58140003, // 0003 LDCONST R5 K3
- 0x7C0C0400, // 0004 CALL R3 2
- 0x900A0801, // 0005 SETMBR R2 K4 R1
- 0xB80E0000, // 0006 GETNGBL R3 K0
- 0x880C0706, // 0007 GETMBR R3 R3 K6
- 0x900A0A03, // 0008 SETMBR R2 K5 R3
- 0xB80E0000, // 0009 GETNGBL R3 K0
- 0x8C0C0707, // 000A GETMET R3 R3 K7
- 0x88140508, // 000B GETMBR R5 R2 K8
- 0x88180509, // 000C GETMBR R6 R2 K9
- 0x7C0C0600, // 000D CALL R3 3
- 0x60100008, // 000E GETGBL R4 G8
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C100200, // 0010 CALL R4 1
- 0x8814010A, // 0011 GETMBR R5 R0 K10
- 0x8C140B0B, // 0012 GETMET R5 R5 K11
- 0x881C030C, // 0013 GETMBR R7 R1 K12
- 0x8820050D, // 0014 GETMBR R8 R2 K13
- 0x5C240400, // 0015 MOVE R9 R2
- 0x7C140800, // 0016 CALL R5 4
- 0xB81A0000, // 0017 GETNGBL R6 K0
- 0x88180D01, // 0018 GETMBR R6 R6 K1
- 0x8C180D02, // 0019 GETMET R6 R6 K2
- 0x5820000E, // 001A LDCONST R8 K14
- 0x7C180400, // 001B CALL R6 2
- 0x88180502, // 001C GETMBR R6 R2 K2
- 0x4C1C0000, // 001D LDNIL R7
- 0x20180C07, // 001E NE R6 R6 R7
- 0x781A0005, // 001F JMPF R6 #0026
- 0x60180008, // 0020 GETGBL R6 G8
- 0x881C0502, // 0021 GETMBR R7 R2 K2
- 0x7C180200, // 0022 CALL R6 1
- 0x001A1E06, // 0023 ADD R6 K15 R6
- 0x00180D10, // 0024 ADD R6 R6 K16
- 0x70020000, // 0025 JMP #0027
- 0x58180011, // 0026 LDCONST R6 K17
- 0xB81E2400, // 0027 GETNGBL R7 K18
- 0x8C1C0F13, // 0028 GETMET R7 R7 K19
- 0x58240014, // 0029 LDCONST R9 K20
- 0x7C1C0400, // 002A CALL R7 2
- 0x781E000D, // 002B JMPF R7 #003A
- 0xB81E0400, // 002C GETNGBL R7 K2
- 0x60200018, // 002D GETGBL R8 G24
- 0x58240015, // 002E LDCONST R9 K21
- 0x8828030C, // 002F GETMBR R10 R1 K12
- 0x88281516, // 0030 GETMBR R10 R10 K22
- 0x5C2C0800, // 0031 MOVE R11 R4
- 0x780E0001, // 0032 JMPF R3 #0035
- 0x5C300600, // 0033 MOVE R12 R3
- 0x70020000, // 0034 JMP #0036
- 0x58300011, // 0035 LDCONST R12 K17
- 0x5C340C00, // 0036 MOVE R13 R6
- 0x7C200A00, // 0037 CALL R8 5
- 0x58240014, // 0038 LDCONST R9 K20
- 0x7C1C0400, // 0039 CALL R7 2
- 0x4C1C0000, // 003A LDNIL R7
- 0x900A0407, // 003B SETMBR R2 K2 R7
- 0x601C0015, // 003C GETGBL R7 G21
- 0x5422002F, // 003D LDINT R8 48
- 0x7C1C0200, // 003E CALL R7 1
- 0x8C200F17, // 003F GETMET R8 R7 K23
- 0x58280018, // 0040 LDCONST R10 K24
- 0x542DFFFB, // 0041 LDINT R11 -4
- 0x7C200600, // 0042 CALL R8 3
- 0x8C200F17, // 0043 GETMET R8 R7 K23
- 0x58280019, // 0044 LDCONST R10 K25
- 0x582C0019, // 0045 LDCONST R11 K25
- 0x7C200600, // 0046 CALL R8 3
- 0x50200200, // 0047 LDBOOL R8 1 0
- 0x1C200A08, // 0048 EQ R8 R5 R8
- 0x74220004, // 0049 JMPT R8 #004F
- 0x88200505, // 004A GETMBR R8 R2 K5
- 0xB8260000, // 004B GETNGBL R9 K0
- 0x8824131A, // 004C GETMBR R9 R9 K26
- 0x1C201009, // 004D EQ R8 R8 R9
- 0x78220016, // 004E JMPF R8 #0066
- 0xB8220000, // 004F GETNGBL R8 K0
- 0x8820111A, // 0050 GETMBR R8 R8 K26
- 0x900A0A08, // 0051 SETMBR R2 K5 R8
- 0x8C20011B, // 0052 GETMET R8 R0 K27
- 0x5C280E00, // 0053 MOVE R10 R7
- 0x5C2C0400, // 0054 MOVE R11 R2
- 0x4C300000, // 0055 LDNIL R12
- 0x7C200800, // 0056 CALL R8 4
- 0xB8222400, // 0057 GETNGBL R8 K18
- 0x8C201113, // 0058 GETMET R8 R8 K19
- 0x58280014, // 0059 LDCONST R10 K20
+ ( &(const binstruction[188]) { /* code */
+ 0x900A0001, // 0000 SETMBR R2 K0 R1
+ 0xB80E0400, // 0001 GETNGBL R3 K2
+ 0x880C0703, // 0002 GETMBR R3 R3 K3
+ 0x900A0203, // 0003 SETMBR R2 K1 R3
+ 0xB80E0400, // 0004 GETNGBL R3 K2
+ 0x8C0C0704, // 0005 GETMET R3 R3 K4
+ 0x88140505, // 0006 GETMBR R5 R2 K5
+ 0x88180506, // 0007 GETMBR R6 R2 K6
+ 0x7C0C0600, // 0008 CALL R3 3
+ 0x60100008, // 0009 GETGBL R4 G8
+ 0x5C140400, // 000A MOVE R5 R2
+ 0x7C100200, // 000B CALL R4 1
+ 0x88140107, // 000C GETMBR R5 R0 K7
+ 0x8C140B08, // 000D GETMET R5 R5 K8
+ 0x881C0309, // 000E GETMBR R7 R1 K9
+ 0x8820050A, // 000F GETMBR R8 R2 K10
+ 0x5C240400, // 0010 MOVE R9 R2
+ 0x7C140800, // 0011 CALL R5 4
+ 0x8818050B, // 0012 GETMBR R6 R2 K11
+ 0x4C1C0000, // 0013 LDNIL R7
+ 0x20180C07, // 0014 NE R6 R6 R7
+ 0x781A0005, // 0015 JMPF R6 #001C
+ 0x60180008, // 0016 GETGBL R6 G8
+ 0x881C050B, // 0017 GETMBR R7 R2 K11
+ 0x7C180200, // 0018 CALL R6 1
+ 0x001A1806, // 0019 ADD R6 K12 R6
+ 0x00180D0D, // 001A ADD R6 R6 K13
+ 0x70020000, // 001B JMP #001D
+ 0x5818000E, // 001C LDCONST R6 K14
+ 0xB81E1E00, // 001D GETNGBL R7 K15
+ 0x8C1C0F10, // 001E GETMET R7 R7 K16
+ 0x58240011, // 001F LDCONST R9 K17
+ 0x7C1C0400, // 0020 CALL R7 2
+ 0x781E000D, // 0021 JMPF R7 #0030
+ 0xB81E1600, // 0022 GETNGBL R7 K11
+ 0x60200018, // 0023 GETGBL R8 G24
+ 0x58240012, // 0024 LDCONST R9 K18
+ 0x88280309, // 0025 GETMBR R10 R1 K9
+ 0x88281513, // 0026 GETMBR R10 R10 K19
+ 0x5C2C0800, // 0027 MOVE R11 R4
+ 0x780E0001, // 0028 JMPF R3 #002B
+ 0x5C300600, // 0029 MOVE R12 R3
+ 0x70020000, // 002A JMP #002C
+ 0x5830000E, // 002B LDCONST R12 K14
+ 0x5C340C00, // 002C MOVE R13 R6
+ 0x7C200A00, // 002D CALL R8 5
+ 0x58240011, // 002E LDCONST R9 K17
+ 0x7C1C0400, // 002F CALL R7 2
+ 0x4C1C0000, // 0030 LDNIL R7
+ 0x900A1607, // 0031 SETMBR R2 K11 R7
+ 0x601C0015, // 0032 GETGBL R7 G21
+ 0x5422002F, // 0033 LDINT R8 48
+ 0x7C1C0200, // 0034 CALL R7 1
+ 0x8C200F14, // 0035 GETMET R8 R7 K20
+ 0x58280015, // 0036 LDCONST R10 K21
+ 0x542DFFFB, // 0037 LDINT R11 -4
+ 0x7C200600, // 0038 CALL R8 3
+ 0x8C200F14, // 0039 GETMET R8 R7 K20
+ 0x58280016, // 003A LDCONST R10 K22
+ 0x582C0016, // 003B LDCONST R11 K22
+ 0x7C200600, // 003C CALL R8 3
+ 0x50200200, // 003D LDBOOL R8 1 0
+ 0x1C200A08, // 003E EQ R8 R5 R8
+ 0x74220004, // 003F JMPT R8 #0045
+ 0x88200501, // 0040 GETMBR R8 R2 K1
+ 0xB8260400, // 0041 GETNGBL R9 K2
+ 0x88241317, // 0042 GETMBR R9 R9 K23
+ 0x1C201009, // 0043 EQ R8 R8 R9
+ 0x78220016, // 0044 JMPF R8 #005C
+ 0xB8220400, // 0045 GETNGBL R8 K2
+ 0x88201117, // 0046 GETMBR R8 R8 K23
+ 0x900A0208, // 0047 SETMBR R2 K1 R8
+ 0x8C200118, // 0048 GETMET R8 R0 K24
+ 0x5C280E00, // 0049 MOVE R10 R7
+ 0x5C2C0400, // 004A MOVE R11 R2
+ 0x4C300000, // 004B LDNIL R12
+ 0x7C200800, // 004C CALL R8 4
+ 0xB8221E00, // 004D GETNGBL R8 K15
+ 0x8C201110, // 004E GETMET R8 R8 K16
+ 0x58280011, // 004F LDCONST R10 K17
+ 0x7C200400, // 0050 CALL R8 2
+ 0x78220008, // 0051 JMPF R8 #005B
+ 0xB8221600, // 0052 GETNGBL R8 K11
+ 0x60240018, // 0053 GETGBL R9 G24
+ 0x58280019, // 0054 LDCONST R10 K25
+ 0x882C0309, // 0055 GETMBR R11 R1 K9
+ 0x882C1713, // 0056 GETMBR R11 R11 K19
+ 0x8830031A, // 0057 GETMBR R12 R1 K26
+ 0x7C240600, // 0058 CALL R9 3
+ 0x58280011, // 0059 LDCONST R10 K17
0x7C200400, // 005A CALL R8 2
- 0x78220008, // 005B JMPF R8 #0065
- 0xB8220400, // 005C GETNGBL R8 K2
- 0x60240018, // 005D GETGBL R9 G24
- 0x5828001C, // 005E LDCONST R10 K28
- 0x882C030C, // 005F GETMBR R11 R1 K12
- 0x882C1716, // 0060 GETMBR R11 R11 K22
- 0x8830031D, // 0061 GETMBR R12 R1 K29
- 0x7C240600, // 0062 CALL R9 3
- 0x58280014, // 0063 LDCONST R10 K20
- 0x7C200400, // 0064 CALL R8 2
- 0x70020043, // 0065 JMP #00AA
- 0x4C200000, // 0066 LDNIL R8
- 0x20200A08, // 0067 NE R8 R5 R8
- 0x78220017, // 0068 JMPF R8 #0081
- 0x8C20011B, // 0069 GETMET R8 R0 K27
- 0x5C280E00, // 006A MOVE R10 R7
- 0x5C2C0400, // 006B MOVE R11 R2
- 0x5C300A00, // 006C MOVE R12 R5
- 0x7C200800, // 006D CALL R8 4
- 0x5C200600, // 006E MOVE R8 R3
- 0x74220000, // 006F JMPT R8 #0071
- 0x580C0011, // 0070 LDCONST R3 K17
- 0xB8222400, // 0071 GETNGBL R8 K18
- 0x8C201113, // 0072 GETMET R8 R8 K19
- 0x58280014, // 0073 LDCONST R10 K20
- 0x7C200400, // 0074 CALL R8 2
- 0x78220009, // 0075 JMPF R8 #0080
- 0xB8220400, // 0076 GETNGBL R8 K2
- 0x60240018, // 0077 GETGBL R9 G24
- 0x5828001E, // 0078 LDCONST R10 K30
- 0x882C030C, // 0079 GETMBR R11 R1 K12
- 0x882C1716, // 007A GETMBR R11 R11 K22
- 0x5C300400, // 007B MOVE R12 R2
- 0x5C340600, // 007C MOVE R13 R3
- 0x7C240800, // 007D CALL R9 4
- 0x58280014, // 007E LDCONST R10 K20
- 0x7C200400, // 007F CALL R8 2
- 0x70020028, // 0080 JMP #00AA
- 0x88200505, // 0081 GETMBR R8 R2 K5
- 0x4C240000, // 0082 LDNIL R9
- 0x20201009, // 0083 NE R8 R8 R9
- 0x78220014, // 0084 JMPF R8 #009A
- 0x8C20011B, // 0085 GETMET R8 R0 K27
- 0x5C280E00, // 0086 MOVE R10 R7
- 0x5C2C0400, // 0087 MOVE R11 R2
- 0x4C300000, // 0088 LDNIL R12
- 0x7C200800, // 0089 CALL R8 4
- 0xB8222400, // 008A GETNGBL R8 K18
- 0x8C201113, // 008B GETMET R8 R8 K19
- 0x58280014, // 008C LDCONST R10 K20
- 0x7C200400, // 008D CALL R8 2
- 0x78220009, // 008E JMPF R8 #0099
- 0xB8220400, // 008F GETNGBL R8 K2
- 0x60240018, // 0090 GETGBL R9 G24
- 0x5828001F, // 0091 LDCONST R10 K31
- 0x882C030C, // 0092 GETMBR R11 R1 K12
- 0x882C1716, // 0093 GETMBR R11 R11 K22
- 0x88300505, // 0094 GETMBR R12 R2 K5
- 0x8834031D, // 0095 GETMBR R13 R1 K29
- 0x7C240800, // 0096 CALL R9 4
- 0x58280014, // 0097 LDCONST R10 K20
- 0x7C200400, // 0098 CALL R8 2
- 0x7002000F, // 0099 JMP #00AA
- 0xB8222400, // 009A GETNGBL R8 K18
- 0x8C201113, // 009B GETMET R8 R8 K19
- 0x58280014, // 009C LDCONST R10 K20
+ 0x70020043, // 005B JMP #00A0
+ 0x4C200000, // 005C LDNIL R8
+ 0x20200A08, // 005D NE R8 R5 R8
+ 0x78220017, // 005E JMPF R8 #0077
+ 0x8C200118, // 005F GETMET R8 R0 K24
+ 0x5C280E00, // 0060 MOVE R10 R7
+ 0x5C2C0400, // 0061 MOVE R11 R2
+ 0x5C300A00, // 0062 MOVE R12 R5
+ 0x7C200800, // 0063 CALL R8 4
+ 0x5C200600, // 0064 MOVE R8 R3
+ 0x74220000, // 0065 JMPT R8 #0067
+ 0x580C000E, // 0066 LDCONST R3 K14
+ 0xB8221E00, // 0067 GETNGBL R8 K15
+ 0x8C201110, // 0068 GETMET R8 R8 K16
+ 0x58280011, // 0069 LDCONST R10 K17
+ 0x7C200400, // 006A CALL R8 2
+ 0x78220009, // 006B JMPF R8 #0076
+ 0xB8221600, // 006C GETNGBL R8 K11
+ 0x60240018, // 006D GETGBL R9 G24
+ 0x5828001B, // 006E LDCONST R10 K27
+ 0x882C0309, // 006F GETMBR R11 R1 K9
+ 0x882C1713, // 0070 GETMBR R11 R11 K19
+ 0x5C300400, // 0071 MOVE R12 R2
+ 0x5C340600, // 0072 MOVE R13 R3
+ 0x7C240800, // 0073 CALL R9 4
+ 0x58280011, // 0074 LDCONST R10 K17
+ 0x7C200400, // 0075 CALL R8 2
+ 0x70020028, // 0076 JMP #00A0
+ 0x88200501, // 0077 GETMBR R8 R2 K1
+ 0x4C240000, // 0078 LDNIL R9
+ 0x20201009, // 0079 NE R8 R8 R9
+ 0x78220014, // 007A JMPF R8 #0090
+ 0x8C200118, // 007B GETMET R8 R0 K24
+ 0x5C280E00, // 007C MOVE R10 R7
+ 0x5C2C0400, // 007D MOVE R11 R2
+ 0x4C300000, // 007E LDNIL R12
+ 0x7C200800, // 007F CALL R8 4
+ 0xB8221E00, // 0080 GETNGBL R8 K15
+ 0x8C201110, // 0081 GETMET R8 R8 K16
+ 0x58280011, // 0082 LDCONST R10 K17
+ 0x7C200400, // 0083 CALL R8 2
+ 0x78220009, // 0084 JMPF R8 #008F
+ 0xB8221600, // 0085 GETNGBL R8 K11
+ 0x60240018, // 0086 GETGBL R9 G24
+ 0x5828001C, // 0087 LDCONST R10 K28
+ 0x882C0309, // 0088 GETMBR R11 R1 K9
+ 0x882C1713, // 0089 GETMBR R11 R11 K19
+ 0x88300501, // 008A GETMBR R12 R2 K1
+ 0x8834031A, // 008B GETMBR R13 R1 K26
+ 0x7C240800, // 008C CALL R9 4
+ 0x58280011, // 008D LDCONST R10 K17
+ 0x7C200400, // 008E CALL R8 2
+ 0x7002000F, // 008F JMP #00A0
+ 0xB8221E00, // 0090 GETNGBL R8 K15
+ 0x8C201110, // 0091 GETMET R8 R8 K16
+ 0x58280011, // 0092 LDCONST R10 K17
+ 0x7C200400, // 0093 CALL R8 2
+ 0x78220008, // 0094 JMPF R8 #009E
+ 0xB8221600, // 0095 GETNGBL R8 K11
+ 0x60240018, // 0096 GETGBL R9 G24
+ 0x5828001D, // 0097 LDCONST R10 K29
+ 0x882C0309, // 0098 GETMBR R11 R1 K9
+ 0x882C1713, // 0099 GETMBR R11 R11 K19
+ 0x8830031A, // 009A GETMBR R12 R1 K26
+ 0x7C240600, // 009B CALL R9 3
+ 0x58280011, // 009C LDCONST R10 K17
0x7C200400, // 009D CALL R8 2
- 0x78220008, // 009E JMPF R8 #00A8
- 0xB8220400, // 009F GETNGBL R8 K2
- 0x60240018, // 00A0 GETGBL R9 G24
- 0x58280020, // 00A1 LDCONST R10 K32
- 0x882C030C, // 00A2 GETMBR R11 R1 K12
- 0x882C1716, // 00A3 GETMBR R11 R11 K22
- 0x8830031D, // 00A4 GETMBR R12 R1 K29
- 0x7C240600, // 00A5 CALL R9 3
- 0x58280014, // 00A6 LDCONST R10 K20
- 0x7C200400, // 00A7 CALL R8 2
- 0x50200000, // 00A8 LDBOOL R8 0 0
- 0x80041000, // 00A9 RET 1 R8
- 0x8C200F17, // 00AA GETMET R8 R7 K23
- 0x58280021, // 00AB LDCONST R10 K33
- 0x542DFFFB, // 00AC LDINT R11 -4
- 0x7C200600, // 00AD CALL R8 3
- 0x8C200F17, // 00AE GETMET R8 R7 K23
- 0x542A0017, // 00AF LDINT R10 24
- 0x582C0019, // 00B0 LDCONST R11 K25
- 0x7C200600, // 00B1 CALL R8 3
- 0x8C200322, // 00B2 GETMET R8 R1 K34
- 0x542A0008, // 00B3 LDINT R10 9
- 0x502C0200, // 00B4 LDBOOL R11 1 0
- 0x7C200600, // 00B5 CALL R8 3
- 0x8824010A, // 00B6 GETMBR R9 R0 K10
- 0x88241323, // 00B7 GETMBR R9 R9 K35
- 0x88280324, // 00B8 GETMBR R10 R1 K36
- 0x8C2C1525, // 00B9 GETMET R11 R10 K37
- 0x7C2C0200, // 00BA CALL R11 1
- 0x8C2C1126, // 00BB GETMET R11 R8 K38
- 0x5C340E00, // 00BC MOVE R13 R7
- 0x5C381400, // 00BD MOVE R14 R10
- 0x7C2C0600, // 00BE CALL R11 3
- 0x8C2C1127, // 00BF GETMET R11 R8 K39
- 0x7C2C0200, // 00C0 CALL R11 1
- 0x8C2C1328, // 00C1 GETMET R11 R9 K40
- 0x5C341000, // 00C2 MOVE R13 R8
- 0x7C2C0400, // 00C3 CALL R11 2
- 0xB82E0000, // 00C4 GETNGBL R11 K0
- 0x882C1701, // 00C5 GETMBR R11 R11 K1
- 0x8C2C1702, // 00C6 GETMET R11 R11 K2
- 0x58340029, // 00C7 LDCONST R13 K41
- 0x7C2C0400, // 00C8 CALL R11 2
- 0x502C0200, // 00C9 LDBOOL R11 1 0
- 0x80041600, // 00CA RET 1 R11
+ 0x50200000, // 009E LDBOOL R8 0 0
+ 0x80041000, // 009F RET 1 R8
+ 0x8C200F14, // 00A0 GETMET R8 R7 K20
+ 0x5828001E, // 00A1 LDCONST R10 K30
+ 0x542DFFFB, // 00A2 LDINT R11 -4
+ 0x7C200600, // 00A3 CALL R8 3
+ 0x8C200F14, // 00A4 GETMET R8 R7 K20
+ 0x542A0017, // 00A5 LDINT R10 24
+ 0x582C0016, // 00A6 LDCONST R11 K22
+ 0x7C200600, // 00A7 CALL R8 3
+ 0x8C20031F, // 00A8 GETMET R8 R1 K31
+ 0x542A0008, // 00A9 LDINT R10 9
+ 0x502C0200, // 00AA LDBOOL R11 1 0
+ 0x7C200600, // 00AB CALL R8 3
+ 0x88240107, // 00AC GETMBR R9 R0 K7
+ 0x88241320, // 00AD GETMBR R9 R9 K32
+ 0x88280321, // 00AE GETMBR R10 R1 K33
+ 0x8C2C1522, // 00AF GETMET R11 R10 K34
+ 0x7C2C0200, // 00B0 CALL R11 1
+ 0x8C2C1123, // 00B1 GETMET R11 R8 K35
+ 0x5C340E00, // 00B2 MOVE R13 R7
+ 0x5C381400, // 00B3 MOVE R14 R10
+ 0x7C2C0600, // 00B4 CALL R11 3
+ 0x8C2C1124, // 00B5 GETMET R11 R8 K36
+ 0x7C2C0200, // 00B6 CALL R11 1
+ 0x8C2C1325, // 00B7 GETMET R11 R9 K37
+ 0x5C341000, // 00B8 MOVE R13 R8
+ 0x7C2C0400, // 00B9 CALL R11 2
+ 0x502C0200, // 00BA LDBOOL R11 1 0
+ 0x80041600, // 00BB RET 1 R11
})
)
);
@@ -1844,7 +1804,7 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
0, /* has sup protos */
&be_class_Matter_IM,
1, /* has constants */
- ( &(const bvalue[55]) { /* constants */
+ ( &(const bvalue[52]) { /* constants */
/* K0 */ be_nested_str_weak(status),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(INVALID_ACTION),
@@ -1855,55 +1815,52 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
/* K7 */ be_nested_str_weak(read_attribute),
/* K8 */ be_nested_str_weak(session),
/* K9 */ be_nested_str_weak(tlv_solo),
- /* K10 */ be_nested_str_weak(profiler),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(read_request_solo_X20read_X20done),
- /* K13 */ be_nested_str_weak(is_list),
- /* K14 */ be_nested_str_weak(is_array),
- /* K15 */ be_nested_str_weak(encode_len),
- /* K16 */ be_nested_str_weak(IM_ReportData_Pull),
- /* K17 */ be_nested_str_weak(MAX_MESSAGE),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Response_X20to_X20big_X2C_X20revert_X20to_X20non_X2Dsolo),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(TLV),
- /* K21 */ be_nested_str_weak(parse),
- /* K22 */ be_nested_str_weak(raw),
- /* K23 */ be_nested_str_weak(app_payload_idx),
- /* K24 */ be_nested_str_weak(process_read_request_pull),
- /* K25 */ be_nested_str_weak(add),
- /* K26 */ be_const_int(1),
- /* K27 */ be_nested_str_weak(attributedata2raw),
- /* K28 */ be_const_int(405077761),
- /* K29 */ be_nested_str_weak(attributestatus2raw),
- /* K30 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X20_X2D_X20IGNORED),
- /* K31 */ be_nested_str_weak(local_session_id),
- /* K32 */ be_nested_str_weak(build_response),
- /* K33 */ be_nested_str_weak(message_handler),
- /* K34 */ be_nested_str_weak(clear),
- /* K35 */ be_nested_str_weak(encode_frame),
- /* K36 */ be_nested_str_weak(encrypt),
- /* K37 */ be_nested_str_weak(tasmota),
- /* K38 */ be_nested_str_weak(loglevel),
- /* K39 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s),
- /* K40 */ be_nested_str_weak(message_counter),
- /* K41 */ be_nested_str_weak(exchange_id),
- /* K42 */ be_nested_str_weak(ack_message_counter),
- /* K43 */ be_nested_str_weak(send_response_frame),
- /* K44 */ be_nested_str_weak(RESPONSE_X20SENT),
- /* K45 */ be_nested_str_weak(get_attribute_name),
- /* K46 */ be_nested_str_weak(cluster),
- /* K47 */ be_nested_str_weak(attribute),
- /* K48 */ be_nested_str_weak(_X20_X28),
- /* K49 */ be_nested_str_weak(_X29),
- /* K50 */ be_nested_str_weak(),
- /* K51 */ be_nested_str_weak(to_str_val),
- /* K52 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
- /* K53 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
- /* K54 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20IGNORED),
+ /* K10 */ be_nested_str_weak(is_list),
+ /* K11 */ be_nested_str_weak(is_array),
+ /* K12 */ be_nested_str_weak(encode_len),
+ /* K13 */ be_nested_str_weak(IM_ReportData_Pull),
+ /* K14 */ be_nested_str_weak(MAX_MESSAGE),
+ /* K15 */ be_nested_str_weak(log),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Response_X20to_X20big_X2C_X20revert_X20to_X20non_X2Dsolo),
+ /* K17 */ be_const_int(3),
+ /* K18 */ be_nested_str_weak(TLV),
+ /* K19 */ be_nested_str_weak(parse),
+ /* K20 */ be_nested_str_weak(raw),
+ /* K21 */ be_nested_str_weak(app_payload_idx),
+ /* K22 */ be_nested_str_weak(process_read_request_pull),
+ /* K23 */ be_nested_str_weak(add),
+ /* K24 */ be_const_int(1),
+ /* K25 */ be_nested_str_weak(attributedata2raw),
+ /* K26 */ be_const_int(405077761),
+ /* K27 */ be_nested_str_weak(attributestatus2raw),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr_X20_X28_X256i_X29_X20_X25s_X20_X2D_X20IGNORED),
+ /* K29 */ be_nested_str_weak(local_session_id),
+ /* K30 */ be_nested_str_weak(build_response),
+ /* K31 */ be_nested_str_weak(message_handler),
+ /* K32 */ be_nested_str_weak(clear),
+ /* K33 */ be_nested_str_weak(encode_frame),
+ /* K34 */ be_nested_str_weak(encrypt),
+ /* K35 */ be_nested_str_weak(tasmota),
+ /* K36 */ be_nested_str_weak(loglevel),
+ /* K37 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s),
+ /* K38 */ be_nested_str_weak(message_counter),
+ /* K39 */ be_nested_str_weak(exchange_id),
+ /* K40 */ be_nested_str_weak(ack_message_counter),
+ /* K41 */ be_nested_str_weak(send_response_frame),
+ /* K42 */ be_nested_str_weak(get_attribute_name),
+ /* K43 */ be_nested_str_weak(cluster),
+ /* K44 */ be_nested_str_weak(attribute),
+ /* K45 */ be_nested_str_weak(_X20_X28),
+ /* K46 */ be_nested_str_weak(_X29),
+ /* K47 */ be_nested_str_weak(),
+ /* K48 */ be_nested_str_weak(to_str_val),
+ /* K49 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20_X25s),
+ /* K50 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20STATUS_X3A_X200x_X2502X_X20_X25s),
+ /* K51 */ be_nested_str_weak(MTR_X3A_X20_X3ERead_Attr1_X28_X256i_X29_X20_X25s_X25s_X20_X2D_X20IGNORED),
}),
be_str_weak(process_read_request_solo),
&be_const_str_solidified,
- ( &(const binstruction[252]) { /* code */
+ ( &(const binstruction[242]) { /* code */
0xB80E0200, // 0000 GETNGBL R3 K1
0x880C0702, // 0001 GETMBR R3 R3 K2
0x900A0003, // 0002 SETMBR R2 K0 R3
@@ -1926,236 +1883,226 @@ be_local_closure(class_Matter_IM_process_read_request_solo, /* name */
0x88280109, // 0013 GETMBR R10 R0 K9
0x7C180800, // 0014 CALL R6 4
0x5C100C00, // 0015 MOVE R4 R6
- 0xB81A0200, // 0016 GETNGBL R6 K1
- 0x88180D0A, // 0017 GETMBR R6 R6 K10
- 0x8C180D0B, // 0018 GETMET R6 R6 K11
- 0x5820000C, // 0019 LDCONST R8 K12
- 0x7C180400, // 001A CALL R6 2
- 0x4C180000, // 001B LDNIL R6
- 0x20180806, // 001C NE R6 R4 R6
- 0x781A0036, // 001D JMPF R6 #0055
- 0x8818090D, // 001E GETMBR R6 R4 K13
- 0x741A0001, // 001F JMPT R6 #0022
- 0x8818090E, // 0020 GETMBR R6 R4 K14
- 0x781A0018, // 0021 JMPF R6 #003B
- 0x8C18090F, // 0022 GETMET R6 R4 K15
- 0x7C180200, // 0023 CALL R6 1
- 0xB81E0200, // 0024 GETNGBL R7 K1
- 0x881C0F10, // 0025 GETMBR R7 R7 K16
- 0x881C0F11, // 0026 GETMBR R7 R7 K17
- 0x24180C07, // 0027 GT R6 R6 R7
- 0x781A0011, // 0028 JMPF R6 #003B
- 0x4C100000, // 0029 LDNIL R4
- 0xB81A1600, // 002A GETNGBL R6 K11
- 0x601C0018, // 002B GETGBL R7 G24
- 0x58200012, // 002C LDCONST R8 K18
- 0x7C1C0200, // 002D CALL R7 1
- 0x58200013, // 002E LDCONST R8 K19
- 0x7C180400, // 002F CALL R6 2
- 0xB81A0200, // 0030 GETNGBL R6 K1
- 0x88180D14, // 0031 GETMBR R6 R6 K20
- 0x8C180D15, // 0032 GETMET R6 R6 K21
- 0x88200316, // 0033 GETMBR R8 R1 K22
- 0x88240317, // 0034 GETMBR R9 R1 K23
- 0x7C180600, // 0035 CALL R6 3
- 0x8C1C0118, // 0036 GETMET R7 R0 K24
- 0x5C240200, // 0037 MOVE R9 R1
- 0x5C280C00, // 0038 MOVE R10 R6
- 0x7C1C0600, // 0039 CALL R7 3
- 0x80040E00, // 003A RET 1 R7
- 0x60180015, // 003B GETGBL R6 G21
- 0x541E002F, // 003C LDINT R7 48
- 0x7C180200, // 003D CALL R6 1
- 0x5C140C00, // 003E MOVE R5 R6
- 0x8C180B19, // 003F GETMET R6 R5 K25
- 0x54220014, // 0040 LDINT R8 21
- 0x5824001A, // 0041 LDCONST R9 K26
- 0x7C180600, // 0042 CALL R6 3
- 0x8C180B19, // 0043 GETMET R6 R5 K25
- 0x54223600, // 0044 LDINT R8 13825
- 0x5425FFFD, // 0045 LDINT R9 -2
- 0x7C180600, // 0046 CALL R6 3
- 0x8C18011B, // 0047 GETMET R6 R0 K27
- 0x5C200A00, // 0048 MOVE R8 R5
- 0x5C240400, // 0049 MOVE R9 R2
- 0x5C280800, // 004A MOVE R10 R4
- 0x7C180800, // 004B CALL R6 4
- 0x8C180B19, // 004C GETMET R6 R5 K25
- 0x5820001C, // 004D LDCONST R8 K28
- 0x5425FFFB, // 004E LDINT R9 -4
- 0x7C180600, // 004F CALL R6 3
- 0x8C180B19, // 0050 GETMET R6 R5 K25
- 0x54220017, // 0051 LDINT R8 24
- 0x5824001A, // 0052 LDCONST R9 K26
- 0x7C180600, // 0053 CALL R6 3
- 0x70020028, // 0054 JMP #007E
- 0x88180500, // 0055 GETMBR R6 R2 K0
- 0x4C1C0000, // 0056 LDNIL R7
- 0x20180C07, // 0057 NE R6 R6 R7
- 0x781A0019, // 0058 JMPF R6 #0073
- 0x60180015, // 0059 GETGBL R6 G21
- 0x541E002F, // 005A LDINT R7 48
- 0x7C180200, // 005B CALL R6 1
- 0x5C140C00, // 005C MOVE R5 R6
- 0x8C180B19, // 005D GETMET R6 R5 K25
- 0x54220014, // 005E LDINT R8 21
- 0x5824001A, // 005F LDCONST R9 K26
- 0x7C180600, // 0060 CALL R6 3
- 0x8C180B19, // 0061 GETMET R6 R5 K25
- 0x54223600, // 0062 LDINT R8 13825
- 0x5425FFFD, // 0063 LDINT R9 -2
- 0x7C180600, // 0064 CALL R6 3
- 0x8C18011D, // 0065 GETMET R6 R0 K29
- 0x5C200A00, // 0066 MOVE R8 R5
- 0x5C240400, // 0067 MOVE R9 R2
- 0x88280500, // 0068 GETMBR R10 R2 K0
- 0x7C180800, // 0069 CALL R6 4
- 0x8C180B19, // 006A GETMET R6 R5 K25
- 0x5820001C, // 006B LDCONST R8 K28
- 0x5425FFFB, // 006C LDINT R9 -4
- 0x7C180600, // 006D CALL R6 3
- 0x8C180B19, // 006E GETMET R6 R5 K25
- 0x54220017, // 006F LDINT R8 24
- 0x5824001A, // 0070 LDCONST R9 K26
- 0x7C180600, // 0071 CALL R6 3
- 0x7002000A, // 0072 JMP #007E
- 0xB81A1600, // 0073 GETNGBL R6 K11
- 0x601C0018, // 0074 GETGBL R7 G24
- 0x5820001E, // 0075 LDCONST R8 K30
- 0x88240308, // 0076 GETMBR R9 R1 K8
- 0x8824131F, // 0077 GETMBR R9 R9 K31
- 0x5C280400, // 0078 MOVE R10 R2
- 0x7C1C0600, // 0079 CALL R7 3
- 0x58200013, // 007A LDCONST R8 K19
- 0x7C180400, // 007B CALL R6 2
- 0x50180000, // 007C LDBOOL R6 0 0
- 0x80040C00, // 007D RET 1 R6
- 0x8C180320, // 007E GETMET R6 R1 K32
- 0x54220004, // 007F LDINT R8 5
- 0x50240200, // 0080 LDBOOL R9 1 0
- 0x7C180600, // 0081 CALL R6 3
- 0x881C0104, // 0082 GETMBR R7 R0 K4
- 0x881C0F21, // 0083 GETMBR R7 R7 K33
- 0x88200316, // 0084 GETMBR R8 R1 K22
- 0x8C241122, // 0085 GETMET R9 R8 K34
- 0x7C240200, // 0086 CALL R9 1
- 0x8C240D23, // 0087 GETMET R9 R6 K35
- 0x5C2C0A00, // 0088 MOVE R11 R5
- 0x5C301000, // 0089 MOVE R12 R8
- 0x7C240600, // 008A CALL R9 3
- 0x8C240D24, // 008B GETMET R9 R6 K36
- 0x7C240200, // 008C CALL R9 1
- 0xB8264A00, // 008D GETNGBL R9 K37
- 0x8C241326, // 008E GETMET R9 R9 K38
- 0x542E0003, // 008F LDINT R11 4
- 0x7C240400, // 0090 CALL R9 2
- 0x7826000A, // 0091 JMPF R9 #009D
- 0xB8261600, // 0092 GETNGBL R9 K11
- 0x60280018, // 0093 GETGBL R10 G24
- 0x582C0027, // 0094 LDCONST R11 K39
- 0x88300D08, // 0095 GETMBR R12 R6 K8
- 0x8830191F, // 0096 GETMBR R12 R12 K31
- 0x88340D28, // 0097 GETMBR R13 R6 K40
- 0x88380D29, // 0098 GETMBR R14 R6 K41
- 0x883C0D2A, // 0099 GETMBR R15 R6 K42
- 0x7C280A00, // 009A CALL R10 5
- 0x542E0003, // 009B LDINT R11 4
- 0x7C240400, // 009C CALL R9 2
- 0x8C240F2B, // 009D GETMET R9 R7 K43
- 0x5C2C0C00, // 009E MOVE R11 R6
- 0x7C240400, // 009F CALL R9 2
- 0xB8260200, // 00A0 GETNGBL R9 K1
- 0x8824130A, // 00A1 GETMBR R9 R9 K10
- 0x8C24130B, // 00A2 GETMET R9 R9 K11
- 0x582C002C, // 00A3 LDCONST R11 K44
- 0x7C240400, // 00A4 CALL R9 2
- 0x4C240000, // 00A5 LDNIL R9
- 0xB82A4A00, // 00A6 GETNGBL R10 K37
- 0x8C281526, // 00A7 GETMET R10 R10 K38
- 0x58300013, // 00A8 LDCONST R12 K19
- 0x7C280400, // 00A9 CALL R10 2
- 0x782A000B, // 00AA JMPF R10 #00B7
- 0xB82A0200, // 00AB GETNGBL R10 K1
- 0x8C28152D, // 00AC GETMET R10 R10 K45
- 0x8830052E, // 00AD GETMBR R12 R2 K46
- 0x8834052F, // 00AE GETMBR R13 R2 K47
- 0x7C280600, // 00AF CALL R10 3
- 0x5C241400, // 00B0 MOVE R9 R10
- 0x78260002, // 00B1 JMPF R9 #00B5
- 0x002A6009, // 00B2 ADD R10 K48 R9
- 0x00281531, // 00B3 ADD R10 R10 K49
- 0x70020000, // 00B4 JMP #00B6
- 0x58280032, // 00B5 LDCONST R10 K50
- 0x5C241400, // 00B6 MOVE R9 R10
- 0x4C280000, // 00B7 LDNIL R10
- 0x2028080A, // 00B8 NE R10 R4 R10
- 0x782A0012, // 00B9 JMPF R10 #00CD
- 0xB82A4A00, // 00BA GETNGBL R10 K37
- 0x8C281526, // 00BB GETMET R10 R10 K38
- 0x58300013, // 00BC LDCONST R12 K19
- 0x7C280400, // 00BD CALL R10 2
- 0x782A000C, // 00BE JMPF R10 #00CC
- 0x8C280933, // 00BF GETMET R10 R4 K51
- 0x7C280200, // 00C0 CALL R10 1
- 0xB82E1600, // 00C1 GETNGBL R11 K11
- 0x60300018, // 00C2 GETGBL R12 G24
- 0x58340034, // 00C3 LDCONST R13 K52
- 0x88380308, // 00C4 GETMBR R14 R1 K8
- 0x88381D1F, // 00C5 GETMBR R14 R14 K31
- 0x5C3C0400, // 00C6 MOVE R15 R2
- 0x5C401200, // 00C7 MOVE R16 R9
- 0x5C441400, // 00C8 MOVE R17 R10
- 0x7C300A00, // 00C9 CALL R12 5
- 0x58340013, // 00CA LDCONST R13 K19
- 0x7C2C0400, // 00CB CALL R11 2
- 0x7002002C, // 00CC JMP #00FA
- 0x88280500, // 00CD GETMBR R10 R2 K0
- 0x4C2C0000, // 00CE LDNIL R11
- 0x2028140B, // 00CF NE R10 R10 R11
- 0x782A0019, // 00D0 JMPF R10 #00EB
- 0x88280500, // 00D1 GETMBR R10 R2 K0
- 0xB82E0200, // 00D2 GETNGBL R11 K1
- 0x882C1706, // 00D3 GETMBR R11 R11 K6
- 0x1C28140B, // 00D4 EQ R10 R10 R11
- 0x782A0001, // 00D5 JMPF R10 #00D8
- 0x58280006, // 00D6 LDCONST R10 K6
- 0x70020000, // 00D7 JMP #00D9
- 0x58280032, // 00D8 LDCONST R10 K50
- 0xB82E4A00, // 00D9 GETNGBL R11 K37
- 0x8C2C1726, // 00DA GETMET R11 R11 K38
- 0x58340013, // 00DB LDCONST R13 K19
- 0x7C2C0400, // 00DC CALL R11 2
- 0x782E000B, // 00DD JMPF R11 #00EA
- 0xB82E1600, // 00DE GETNGBL R11 K11
- 0x60300018, // 00DF GETGBL R12 G24
- 0x58340035, // 00E0 LDCONST R13 K53
- 0x88380308, // 00E1 GETMBR R14 R1 K8
- 0x88381D1F, // 00E2 GETMBR R14 R14 K31
- 0x5C3C0400, // 00E3 MOVE R15 R2
- 0x5C401200, // 00E4 MOVE R16 R9
- 0x88440500, // 00E5 GETMBR R17 R2 K0
- 0x5C481400, // 00E6 MOVE R18 R10
- 0x7C300C00, // 00E7 CALL R12 6
- 0x58340013, // 00E8 LDCONST R13 K19
- 0x7C2C0400, // 00E9 CALL R11 2
- 0x7002000E, // 00EA JMP #00FA
- 0xB82A4A00, // 00EB GETNGBL R10 K37
- 0x8C281526, // 00EC GETMET R10 R10 K38
- 0x58300013, // 00ED LDCONST R12 K19
- 0x7C280400, // 00EE CALL R10 2
- 0x782A0009, // 00EF JMPF R10 #00FA
- 0xB82A1600, // 00F0 GETNGBL R10 K11
- 0x602C0018, // 00F1 GETGBL R11 G24
- 0x58300036, // 00F2 LDCONST R12 K54
- 0x88340308, // 00F3 GETMBR R13 R1 K8
- 0x88341B1F, // 00F4 GETMBR R13 R13 K31
- 0x5C380400, // 00F5 MOVE R14 R2
- 0x5C3C1200, // 00F6 MOVE R15 R9
- 0x7C2C0800, // 00F7 CALL R11 4
- 0x58300013, // 00F8 LDCONST R12 K19
- 0x7C280400, // 00F9 CALL R10 2
- 0x50280200, // 00FA LDBOOL R10 1 0
- 0x80041400, // 00FB RET 1 R10
+ 0x4C180000, // 0016 LDNIL R6
+ 0x20180806, // 0017 NE R6 R4 R6
+ 0x781A0036, // 0018 JMPF R6 #0050
+ 0x8818090A, // 0019 GETMBR R6 R4 K10
+ 0x741A0001, // 001A JMPT R6 #001D
+ 0x8818090B, // 001B GETMBR R6 R4 K11
+ 0x781A0018, // 001C JMPF R6 #0036
+ 0x8C18090C, // 001D GETMET R6 R4 K12
+ 0x7C180200, // 001E CALL R6 1
+ 0xB81E0200, // 001F GETNGBL R7 K1
+ 0x881C0F0D, // 0020 GETMBR R7 R7 K13
+ 0x881C0F0E, // 0021 GETMBR R7 R7 K14
+ 0x24180C07, // 0022 GT R6 R6 R7
+ 0x781A0011, // 0023 JMPF R6 #0036
+ 0x4C100000, // 0024 LDNIL R4
+ 0xB81A1E00, // 0025 GETNGBL R6 K15
+ 0x601C0018, // 0026 GETGBL R7 G24
+ 0x58200010, // 0027 LDCONST R8 K16
+ 0x7C1C0200, // 0028 CALL R7 1
+ 0x58200011, // 0029 LDCONST R8 K17
+ 0x7C180400, // 002A CALL R6 2
+ 0xB81A0200, // 002B GETNGBL R6 K1
+ 0x88180D12, // 002C GETMBR R6 R6 K18
+ 0x8C180D13, // 002D GETMET R6 R6 K19
+ 0x88200314, // 002E GETMBR R8 R1 K20
+ 0x88240315, // 002F GETMBR R9 R1 K21
+ 0x7C180600, // 0030 CALL R6 3
+ 0x8C1C0116, // 0031 GETMET R7 R0 K22
+ 0x5C240200, // 0032 MOVE R9 R1
+ 0x5C280C00, // 0033 MOVE R10 R6
+ 0x7C1C0600, // 0034 CALL R7 3
+ 0x80040E00, // 0035 RET 1 R7
+ 0x60180015, // 0036 GETGBL R6 G21
+ 0x541E002F, // 0037 LDINT R7 48
+ 0x7C180200, // 0038 CALL R6 1
+ 0x5C140C00, // 0039 MOVE R5 R6
+ 0x8C180B17, // 003A GETMET R6 R5 K23
+ 0x54220014, // 003B LDINT R8 21
+ 0x58240018, // 003C LDCONST R9 K24
+ 0x7C180600, // 003D CALL R6 3
+ 0x8C180B17, // 003E GETMET R6 R5 K23
+ 0x54223600, // 003F LDINT R8 13825
+ 0x5425FFFD, // 0040 LDINT R9 -2
+ 0x7C180600, // 0041 CALL R6 3
+ 0x8C180119, // 0042 GETMET R6 R0 K25
+ 0x5C200A00, // 0043 MOVE R8 R5
+ 0x5C240400, // 0044 MOVE R9 R2
+ 0x5C280800, // 0045 MOVE R10 R4
+ 0x7C180800, // 0046 CALL R6 4
+ 0x8C180B17, // 0047 GETMET R6 R5 K23
+ 0x5820001A, // 0048 LDCONST R8 K26
+ 0x5425FFFB, // 0049 LDINT R9 -4
+ 0x7C180600, // 004A CALL R6 3
+ 0x8C180B17, // 004B GETMET R6 R5 K23
+ 0x54220017, // 004C LDINT R8 24
+ 0x58240018, // 004D LDCONST R9 K24
+ 0x7C180600, // 004E CALL R6 3
+ 0x70020028, // 004F JMP #0079
+ 0x88180500, // 0050 GETMBR R6 R2 K0
+ 0x4C1C0000, // 0051 LDNIL R7
+ 0x20180C07, // 0052 NE R6 R6 R7
+ 0x781A0019, // 0053 JMPF R6 #006E
+ 0x60180015, // 0054 GETGBL R6 G21
+ 0x541E002F, // 0055 LDINT R7 48
+ 0x7C180200, // 0056 CALL R6 1
+ 0x5C140C00, // 0057 MOVE R5 R6
+ 0x8C180B17, // 0058 GETMET R6 R5 K23
+ 0x54220014, // 0059 LDINT R8 21
+ 0x58240018, // 005A LDCONST R9 K24
+ 0x7C180600, // 005B CALL R6 3
+ 0x8C180B17, // 005C GETMET R6 R5 K23
+ 0x54223600, // 005D LDINT R8 13825
+ 0x5425FFFD, // 005E LDINT R9 -2
+ 0x7C180600, // 005F CALL R6 3
+ 0x8C18011B, // 0060 GETMET R6 R0 K27
+ 0x5C200A00, // 0061 MOVE R8 R5
+ 0x5C240400, // 0062 MOVE R9 R2
+ 0x88280500, // 0063 GETMBR R10 R2 K0
+ 0x7C180800, // 0064 CALL R6 4
+ 0x8C180B17, // 0065 GETMET R6 R5 K23
+ 0x5820001A, // 0066 LDCONST R8 K26
+ 0x5425FFFB, // 0067 LDINT R9 -4
+ 0x7C180600, // 0068 CALL R6 3
+ 0x8C180B17, // 0069 GETMET R6 R5 K23
+ 0x54220017, // 006A LDINT R8 24
+ 0x58240018, // 006B LDCONST R9 K24
+ 0x7C180600, // 006C CALL R6 3
+ 0x7002000A, // 006D JMP #0079
+ 0xB81A1E00, // 006E GETNGBL R6 K15
+ 0x601C0018, // 006F GETGBL R7 G24
+ 0x5820001C, // 0070 LDCONST R8 K28
+ 0x88240308, // 0071 GETMBR R9 R1 K8
+ 0x8824131D, // 0072 GETMBR R9 R9 K29
+ 0x5C280400, // 0073 MOVE R10 R2
+ 0x7C1C0600, // 0074 CALL R7 3
+ 0x58200011, // 0075 LDCONST R8 K17
+ 0x7C180400, // 0076 CALL R6 2
+ 0x50180000, // 0077 LDBOOL R6 0 0
+ 0x80040C00, // 0078 RET 1 R6
+ 0x8C18031E, // 0079 GETMET R6 R1 K30
+ 0x54220004, // 007A LDINT R8 5
+ 0x50240200, // 007B LDBOOL R9 1 0
+ 0x7C180600, // 007C CALL R6 3
+ 0x881C0104, // 007D GETMBR R7 R0 K4
+ 0x881C0F1F, // 007E GETMBR R7 R7 K31
+ 0x88200314, // 007F GETMBR R8 R1 K20
+ 0x8C241120, // 0080 GETMET R9 R8 K32
+ 0x7C240200, // 0081 CALL R9 1
+ 0x8C240D21, // 0082 GETMET R9 R6 K33
+ 0x5C2C0A00, // 0083 MOVE R11 R5
+ 0x5C301000, // 0084 MOVE R12 R8
+ 0x7C240600, // 0085 CALL R9 3
+ 0x8C240D22, // 0086 GETMET R9 R6 K34
+ 0x7C240200, // 0087 CALL R9 1
+ 0xB8264600, // 0088 GETNGBL R9 K35
+ 0x8C241324, // 0089 GETMET R9 R9 K36
+ 0x542E0003, // 008A LDINT R11 4
+ 0x7C240400, // 008B CALL R9 2
+ 0x7826000A, // 008C JMPF R9 #0098
+ 0xB8261E00, // 008D GETNGBL R9 K15
+ 0x60280018, // 008E GETGBL R10 G24
+ 0x582C0025, // 008F LDCONST R11 K37
+ 0x88300D08, // 0090 GETMBR R12 R6 K8
+ 0x8830191D, // 0091 GETMBR R12 R12 K29
+ 0x88340D26, // 0092 GETMBR R13 R6 K38
+ 0x88380D27, // 0093 GETMBR R14 R6 K39
+ 0x883C0D28, // 0094 GETMBR R15 R6 K40
+ 0x7C280A00, // 0095 CALL R10 5
+ 0x542E0003, // 0096 LDINT R11 4
+ 0x7C240400, // 0097 CALL R9 2
+ 0x8C240F29, // 0098 GETMET R9 R7 K41
+ 0x5C2C0C00, // 0099 MOVE R11 R6
+ 0x7C240400, // 009A CALL R9 2
+ 0x4C240000, // 009B LDNIL R9
+ 0xB82A4600, // 009C GETNGBL R10 K35
+ 0x8C281524, // 009D GETMET R10 R10 K36
+ 0x58300011, // 009E LDCONST R12 K17
+ 0x7C280400, // 009F CALL R10 2
+ 0x782A000B, // 00A0 JMPF R10 #00AD
+ 0xB82A0200, // 00A1 GETNGBL R10 K1
+ 0x8C28152A, // 00A2 GETMET R10 R10 K42
+ 0x8830052B, // 00A3 GETMBR R12 R2 K43
+ 0x8834052C, // 00A4 GETMBR R13 R2 K44
+ 0x7C280600, // 00A5 CALL R10 3
+ 0x5C241400, // 00A6 MOVE R9 R10
+ 0x78260002, // 00A7 JMPF R9 #00AB
+ 0x002A5A09, // 00A8 ADD R10 K45 R9
+ 0x0028152E, // 00A9 ADD R10 R10 K46
+ 0x70020000, // 00AA JMP #00AC
+ 0x5828002F, // 00AB LDCONST R10 K47
+ 0x5C241400, // 00AC MOVE R9 R10
+ 0x4C280000, // 00AD LDNIL R10
+ 0x2028080A, // 00AE NE R10 R4 R10
+ 0x782A0012, // 00AF JMPF R10 #00C3
+ 0xB82A4600, // 00B0 GETNGBL R10 K35
+ 0x8C281524, // 00B1 GETMET R10 R10 K36
+ 0x58300011, // 00B2 LDCONST R12 K17
+ 0x7C280400, // 00B3 CALL R10 2
+ 0x782A000C, // 00B4 JMPF R10 #00C2
+ 0x8C280930, // 00B5 GETMET R10 R4 K48
+ 0x7C280200, // 00B6 CALL R10 1
+ 0xB82E1E00, // 00B7 GETNGBL R11 K15
+ 0x60300018, // 00B8 GETGBL R12 G24
+ 0x58340031, // 00B9 LDCONST R13 K49
+ 0x88380308, // 00BA GETMBR R14 R1 K8
+ 0x88381D1D, // 00BB GETMBR R14 R14 K29
+ 0x5C3C0400, // 00BC MOVE R15 R2
+ 0x5C401200, // 00BD MOVE R16 R9
+ 0x5C441400, // 00BE MOVE R17 R10
+ 0x7C300A00, // 00BF CALL R12 5
+ 0x58340011, // 00C0 LDCONST R13 K17
+ 0x7C2C0400, // 00C1 CALL R11 2
+ 0x7002002C, // 00C2 JMP #00F0
+ 0x88280500, // 00C3 GETMBR R10 R2 K0
+ 0x4C2C0000, // 00C4 LDNIL R11
+ 0x2028140B, // 00C5 NE R10 R10 R11
+ 0x782A0019, // 00C6 JMPF R10 #00E1
+ 0x88280500, // 00C7 GETMBR R10 R2 K0
+ 0xB82E0200, // 00C8 GETNGBL R11 K1
+ 0x882C1706, // 00C9 GETMBR R11 R11 K6
+ 0x1C28140B, // 00CA EQ R10 R10 R11
+ 0x782A0001, // 00CB JMPF R10 #00CE
+ 0x58280006, // 00CC LDCONST R10 K6
+ 0x70020000, // 00CD JMP #00CF
+ 0x5828002F, // 00CE LDCONST R10 K47
+ 0xB82E4600, // 00CF GETNGBL R11 K35
+ 0x8C2C1724, // 00D0 GETMET R11 R11 K36
+ 0x58340011, // 00D1 LDCONST R13 K17
+ 0x7C2C0400, // 00D2 CALL R11 2
+ 0x782E000B, // 00D3 JMPF R11 #00E0
+ 0xB82E1E00, // 00D4 GETNGBL R11 K15
+ 0x60300018, // 00D5 GETGBL R12 G24
+ 0x58340032, // 00D6 LDCONST R13 K50
+ 0x88380308, // 00D7 GETMBR R14 R1 K8
+ 0x88381D1D, // 00D8 GETMBR R14 R14 K29
+ 0x5C3C0400, // 00D9 MOVE R15 R2
+ 0x5C401200, // 00DA MOVE R16 R9
+ 0x88440500, // 00DB GETMBR R17 R2 K0
+ 0x5C481400, // 00DC MOVE R18 R10
+ 0x7C300C00, // 00DD CALL R12 6
+ 0x58340011, // 00DE LDCONST R13 K17
+ 0x7C2C0400, // 00DF CALL R11 2
+ 0x7002000E, // 00E0 JMP #00F0
+ 0xB82A4600, // 00E1 GETNGBL R10 K35
+ 0x8C281524, // 00E2 GETMET R10 R10 K36
+ 0x58300011, // 00E3 LDCONST R12 K17
+ 0x7C280400, // 00E4 CALL R10 2
+ 0x782A0009, // 00E5 JMPF R10 #00F0
+ 0xB82A1E00, // 00E6 GETNGBL R10 K15
+ 0x602C0018, // 00E7 GETGBL R11 G24
+ 0x58300033, // 00E8 LDCONST R12 K51
+ 0x88340308, // 00E9 GETMBR R13 R1 K8
+ 0x88341B1D, // 00EA GETMBR R13 R13 K29
+ 0x5C380400, // 00EB MOVE R14 R2
+ 0x5C3C1200, // 00EC MOVE R15 R9
+ 0x7C2C0800, // 00ED CALL R11 4
+ 0x58300011, // 00EE LDCONST R12 K17
+ 0x7C280400, // 00EF CALL R10 2
+ 0x50280200, // 00F0 LDBOOL R10 1 0
+ 0x80041400, // 00F1 RET 1 R10
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
index 80fbe0851..1d809134a 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_MessageHandler.h
@@ -147,435 +147,410 @@ be_local_closure(class_Matter_MessageHandler_msg_received, /* name */
0, /* has sup protos */
&be_class_Matter_MessageHandler,
1, /* has constants */
- ( &(const bvalue[70]) { /* constants */
+ ( &(const bvalue[65]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(msg_received),
- /* K4 */ be_nested_str_weak(Frame),
- /* K5 */ be_nested_str_weak(decode_header),
- /* K6 */ be_nested_str_weak(sec_p),
- /* K7 */ be_nested_str_weak(device),
- /* K8 */ be_nested_str_weak(sessions),
- /* K9 */ be_nested_str_weak(find_session_source_id_unsecure),
- /* K10 */ be_nested_str_weak(source_node_id),
- /* K11 */ be_nested_str_weak(control_message),
- /* K12 */ be_nested_str_weak(process_incoming_control_message),
- /* K13 */ be_nested_str_weak(local_session_id),
- /* K14 */ be_const_int(0),
- /* K15 */ be_nested_str_weak(sec_sesstype),
- /* K16 */ be_nested_str_weak(_ip),
- /* K17 */ be_nested_str_weak(_port),
- /* K18 */ be_nested_str_weak(_message_handler),
- /* K19 */ be_nested_str_weak(session),
- /* K20 */ be_nested_str_weak(_counter_insecure_rcv),
- /* K21 */ be_nested_str_weak(validate),
- /* K22 */ be_nested_str_weak(message_counter),
- /* K23 */ be_nested_str_weak(tasmota),
- /* K24 */ be_nested_str_weak(loglevel),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20unencrypted_X20message_X20_X3D_X20_X25i_X20ref_X20_X3D_X20_X25i),
- /* K26 */ be_nested_str_weak(val),
- /* K27 */ be_nested_str_weak(send_simple_ack),
- /* K28 */ be_nested_str_weak(decode_payload),
- /* K29 */ be_nested_str_weak(received_ack),
- /* K30 */ be_nested_str_weak(opcode),
- /* K31 */ be_nested_str_weak(get_opcode_name),
- /* K32 */ be_nested_str_weak(0x_X2502X),
- /* K33 */ be_const_int(3),
- /* K34 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20from_X20_X5B_X25s_X5D_X3A_X25i),
- /* K35 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
- /* K36 */ be_nested_str_weak(x_flag_r),
- /* K37 */ be_nested_str_weak(_X7Breliable_X7D_X20),
- /* K38 */ be_nested_str_weak(),
- /* K39 */ be_nested_str_weak(exchange_id),
- /* K40 */ be_nested_str_weak(ack_message_counter),
- /* K41 */ be_nested_str_weak(commissioning),
- /* K42 */ be_nested_str_weak(process_incoming),
- /* K43 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
- /* K44 */ be_nested_str_weak(get_session_by_local_session_id),
- /* K45 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X3D),
- /* K46 */ be_nested_str_weak(counter_rcv_validate),
- /* K47 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20encrypted_X20message_X20_X3D_X20),
- /* K48 */ be_nested_str_weak(_X20counter_X3D),
- /* K49 */ be_nested_str_weak(counter_rcv),
- /* K50 */ be_nested_str_weak(send_encrypted_ack),
- /* K51 */ be_nested_str_weak(decrypt),
- /* K52 */ be_nested_str_weak(msg_received_header_frame_decrypted),
- /* K53 */ be_nested_str_weak(MTR_X3A_X20_X3E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Decrypted_X20message_X3A_X20protocol_id_X3A),
- /* K54 */ be_nested_str_weak(protocol_id),
- /* K55 */ be_nested_str_weak(_X20opcode_X3D),
- /* K56 */ be_nested_str_weak(_X20exchange_id_X3D),
- /* K57 */ be_nested_str_weak(im),
- /* K58 */ be_nested_str_weak(process_incoming_ack),
- /* K59 */ be_nested_str_weak(send_enqueued),
- /* K60 */ be_const_int(1),
- /* K61 */ be_nested_str_weak(process_IM_start),
- /* K62 */ be_nested_str_weak(process_IM_end),
- /* K63 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
- /* K64 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
- /* K65 */ be_nested_str_weak(_X3B),
- /* K66 */ be_const_int(2),
- /* K67 */ be_nested_str_weak(_debug_present),
- /* K68 */ be_nested_str_weak(debug),
- /* K69 */ be_nested_str_weak(traceback),
+ /* K1 */ be_nested_str_weak(Frame),
+ /* K2 */ be_nested_str_weak(decode_header),
+ /* K3 */ be_nested_str_weak(sec_p),
+ /* K4 */ be_nested_str_weak(device),
+ /* K5 */ be_nested_str_weak(sessions),
+ /* K6 */ be_nested_str_weak(find_session_source_id_unsecure),
+ /* K7 */ be_nested_str_weak(source_node_id),
+ /* K8 */ be_nested_str_weak(control_message),
+ /* K9 */ be_nested_str_weak(process_incoming_control_message),
+ /* K10 */ be_nested_str_weak(local_session_id),
+ /* K11 */ be_const_int(0),
+ /* K12 */ be_nested_str_weak(sec_sesstype),
+ /* K13 */ be_nested_str_weak(_ip),
+ /* K14 */ be_nested_str_weak(_port),
+ /* K15 */ be_nested_str_weak(_message_handler),
+ /* K16 */ be_nested_str_weak(session),
+ /* K17 */ be_nested_str_weak(_counter_insecure_rcv),
+ /* K18 */ be_nested_str_weak(validate),
+ /* K19 */ be_nested_str_weak(message_counter),
+ /* K20 */ be_nested_str_weak(tasmota),
+ /* K21 */ be_nested_str_weak(loglevel),
+ /* K22 */ be_nested_str_weak(log),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20unencrypted_X20message_X20_X3D_X20_X25i_X20ref_X20_X3D_X20_X25i),
+ /* K24 */ be_nested_str_weak(val),
+ /* K25 */ be_nested_str_weak(send_simple_ack),
+ /* K26 */ be_nested_str_weak(decode_payload),
+ /* K27 */ be_nested_str_weak(received_ack),
+ /* K28 */ be_nested_str_weak(opcode),
+ /* K29 */ be_nested_str_weak(get_opcode_name),
+ /* K30 */ be_nested_str_weak(0x_X2502X),
+ /* K31 */ be_const_int(3),
+ /* K32 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20from_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K33 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
+ /* K34 */ be_nested_str_weak(x_flag_r),
+ /* K35 */ be_nested_str_weak(_X7Breliable_X7D_X20),
+ /* K36 */ be_nested_str_weak(),
+ /* K37 */ be_nested_str_weak(exchange_id),
+ /* K38 */ be_nested_str_weak(ack_message_counter),
+ /* K39 */ be_nested_str_weak(commissioning),
+ /* K40 */ be_nested_str_weak(process_incoming),
+ /* K41 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
+ /* K42 */ be_nested_str_weak(get_session_by_local_session_id),
+ /* K43 */ be_nested_str_weak(MTR_X3A_X20unknown_X20local_session_id_X3D),
+ /* K44 */ be_nested_str_weak(counter_rcv_validate),
+ /* K45 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Duplicate_X20encrypted_X20message_X20_X3D_X20),
+ /* K46 */ be_nested_str_weak(_X20counter_X3D),
+ /* K47 */ be_nested_str_weak(counter_rcv),
+ /* K48 */ be_nested_str_weak(send_encrypted_ack),
+ /* K49 */ be_nested_str_weak(decrypt),
+ /* K50 */ be_nested_str_weak(MTR_X3A_X20_X3E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Decrypted_X20message_X3A_X20protocol_id_X3A),
+ /* K51 */ be_nested_str_weak(protocol_id),
+ /* K52 */ be_nested_str_weak(_X20opcode_X3D),
+ /* K53 */ be_nested_str_weak(_X20exchange_id_X3D),
+ /* K54 */ be_nested_str_weak(im),
+ /* K55 */ be_nested_str_weak(process_incoming_ack),
+ /* K56 */ be_nested_str_weak(send_enqueued),
+ /* K57 */ be_const_int(1),
+ /* K58 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
+ /* K59 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
+ /* K60 */ be_nested_str_weak(_X3B),
+ /* K61 */ be_const_int(2),
+ /* K62 */ be_nested_str_weak(_debug_present),
+ /* K63 */ be_nested_str_weak(debug),
+ /* K64 */ be_nested_str_weak(traceback),
}),
be_str_weak(msg_received),
&be_const_str_solidified,
- ( &(const binstruction[354]) { /* code */
+ ( &(const binstruction[334]) { /* code */
0x50100000, // 0000 LDBOOL R4 0 0
- 0xB8160000, // 0001 GETNGBL R5 K0
- 0x88140B01, // 0002 GETMBR R5 R5 K1
- 0x8C140B02, // 0003 GETMET R5 R5 K2
- 0x581C0003, // 0004 LDCONST R7 K3
- 0x7C140400, // 0005 CALL R5 2
- 0xA8020141, // 0006 EXBLK 0 #0149
- 0xB8160000, // 0007 GETNGBL R5 K0
- 0x8C140B04, // 0008 GETMET R5 R5 K4
- 0x5C1C0000, // 0009 MOVE R7 R0
- 0x5C200200, // 000A MOVE R8 R1
- 0x5C240400, // 000B MOVE R9 R2
- 0x5C280600, // 000C MOVE R10 R3
- 0x7C140A00, // 000D CALL R5 5
- 0x8C180B05, // 000E GETMET R6 R5 K5
- 0x7C180200, // 000F CALL R6 1
- 0x5C1C0C00, // 0010 MOVE R7 R6
- 0x741E0002, // 0011 JMPT R7 #0015
- 0x501C0000, // 0012 LDBOOL R7 0 0
- 0xA8040001, // 0013 EXBLK 1 1
- 0x80040E00, // 0014 RET 1 R7
- 0x881C0B06, // 0015 GETMBR R7 R5 K6
- 0x781E000C, // 0016 JMPF R7 #0024
- 0x881C0107, // 0017 GETMBR R7 R0 K7
- 0x881C0F08, // 0018 GETMBR R7 R7 K8
- 0x8C1C0F09, // 0019 GETMET R7 R7 K9
- 0x88240B0A, // 001A GETMBR R9 R5 K10
- 0x542A0059, // 001B LDINT R10 90
- 0x7C1C0600, // 001C CALL R7 3
- 0x8820010B, // 001D GETMBR R8 R0 K11
- 0x8C20110C, // 001E GETMET R8 R8 K12
- 0x5C280A00, // 001F MOVE R10 R5
- 0x7C200400, // 0020 CALL R8 2
- 0xA8040001, // 0021 EXBLK 1 1
- 0x80041000, // 0022 RET 1 R8
- 0x70020120, // 0023 JMP #0145
- 0x881C0B0D, // 0024 GETMBR R7 R5 K13
- 0x1C1C0F0E, // 0025 EQ R7 R7 K14
- 0x781E007A, // 0026 JMPF R7 #00A2
- 0x881C0B0F, // 0027 GETMBR R7 R5 K15
- 0x1C1C0F0E, // 0028 EQ R7 R7 K14
- 0x781E0077, // 0029 JMPF R7 #00A2
- 0x881C0107, // 002A GETMBR R7 R0 K7
- 0x881C0F08, // 002B GETMBR R7 R7 K8
- 0x8C1C0F09, // 002C GETMET R7 R7 K9
- 0x88240B0A, // 002D GETMBR R9 R5 K10
- 0x542A0059, // 002E LDINT R10 90
- 0x7C1C0600, // 002F CALL R7 3
- 0x780A0000, // 0030 JMPF R2 #0032
- 0x901E2002, // 0031 SETMBR R7 K16 R2
- 0x780E0000, // 0032 JMPF R3 #0034
- 0x901E2203, // 0033 SETMBR R7 K17 R3
- 0x901E2400, // 0034 SETMBR R7 K18 R0
- 0x90162607, // 0035 SETMBR R5 K19 R7
- 0x88200F14, // 0036 GETMBR R8 R7 K20
- 0x8C201115, // 0037 GETMET R8 R8 K21
- 0x88280B16, // 0038 GETMBR R10 R5 K22
- 0x502C0000, // 0039 LDBOOL R11 0 0
- 0x7C200600, // 003A CALL R8 3
- 0x74220015, // 003B JMPT R8 #0052
- 0xB8222E00, // 003C GETNGBL R8 K23
- 0x8C201118, // 003D GETMET R8 R8 K24
- 0x542A0003, // 003E LDINT R10 4
- 0x7C200400, // 003F CALL R8 2
- 0x78220009, // 0040 JMPF R8 #004B
- 0xB8220400, // 0041 GETNGBL R8 K2
- 0x60240018, // 0042 GETGBL R9 G24
- 0x58280019, // 0043 LDCONST R10 K25
- 0x882C0B16, // 0044 GETMBR R11 R5 K22
- 0x88300F14, // 0045 GETMBR R12 R7 K20
- 0x8C30191A, // 0046 GETMET R12 R12 K26
- 0x7C300200, // 0047 CALL R12 1
- 0x7C240600, // 0048 CALL R9 3
- 0x542A0003, // 0049 LDINT R10 4
- 0x7C200400, // 004A CALL R8 2
- 0x8C20011B, // 004B GETMET R8 R0 K27
- 0x5C280A00, // 004C MOVE R10 R5
- 0x502C0000, // 004D LDBOOL R11 0 0
- 0x7C200600, // 004E CALL R8 3
- 0x50200000, // 004F LDBOOL R8 0 0
- 0xA8040001, // 0050 EXBLK 1 1
- 0x80041000, // 0051 RET 1 R8
- 0x8C200B1C, // 0052 GETMET R8 R5 K28
- 0x7C200200, // 0053 CALL R8 1
- 0x74220002, // 0054 JMPT R8 #0058
- 0x50200000, // 0055 LDBOOL R8 0 0
- 0xA8040001, // 0056 EXBLK 1 1
- 0x80041000, // 0057 RET 1 R8
- 0x88200107, // 0058 GETMBR R8 R0 K7
- 0x8C20111D, // 0059 GETMET R8 R8 K29
- 0x5C280A00, // 005A MOVE R10 R5
- 0x7C200400, // 005B CALL R8 2
- 0x88200B1E, // 005C GETMBR R8 R5 K30
- 0x5426000F, // 005D LDINT R9 16
- 0x20201009, // 005E NE R8 R8 R9
- 0x7822001A, // 005F JMPF R8 #007B
- 0xB8220000, // 0060 GETNGBL R8 K0
- 0x8C20111F, // 0061 GETMET R8 R8 K31
- 0x88280B1E, // 0062 GETMBR R10 R5 K30
- 0x7C200400, // 0063 CALL R8 2
- 0x5C241000, // 0064 MOVE R9 R8
- 0x74260004, // 0065 JMPT R9 #006B
- 0x60240018, // 0066 GETGBL R9 G24
- 0x58280020, // 0067 LDCONST R10 K32
- 0x882C0B1E, // 0068 GETMBR R11 R5 K30
+ 0xA8020132, // 0001 EXBLK 0 #0135
+ 0xB8160000, // 0002 GETNGBL R5 K0
+ 0x8C140B01, // 0003 GETMET R5 R5 K1
+ 0x5C1C0000, // 0004 MOVE R7 R0
+ 0x5C200200, // 0005 MOVE R8 R1
+ 0x5C240400, // 0006 MOVE R9 R2
+ 0x5C280600, // 0007 MOVE R10 R3
+ 0x7C140A00, // 0008 CALL R5 5
+ 0x8C180B02, // 0009 GETMET R6 R5 K2
+ 0x7C180200, // 000A CALL R6 1
+ 0x5C1C0C00, // 000B MOVE R7 R6
+ 0x741E0002, // 000C JMPT R7 #0010
+ 0x501C0000, // 000D LDBOOL R7 0 0
+ 0xA8040001, // 000E EXBLK 1 1
+ 0x80040E00, // 000F RET 1 R7
+ 0x881C0B03, // 0010 GETMBR R7 R5 K3
+ 0x781E000C, // 0011 JMPF R7 #001F
+ 0x881C0104, // 0012 GETMBR R7 R0 K4
+ 0x881C0F05, // 0013 GETMBR R7 R7 K5
+ 0x8C1C0F06, // 0014 GETMET R7 R7 K6
+ 0x88240B07, // 0015 GETMBR R9 R5 K7
+ 0x542A0059, // 0016 LDINT R10 90
+ 0x7C1C0600, // 0017 CALL R7 3
+ 0x88200108, // 0018 GETMBR R8 R0 K8
+ 0x8C201109, // 0019 GETMET R8 R8 K9
+ 0x5C280A00, // 001A MOVE R10 R5
+ 0x7C200400, // 001B CALL R8 2
+ 0xA8040001, // 001C EXBLK 1 1
+ 0x80041000, // 001D RET 1 R8
+ 0x70020111, // 001E JMP #0131
+ 0x881C0B0A, // 001F GETMBR R7 R5 K10
+ 0x1C1C0F0B, // 0020 EQ R7 R7 K11
+ 0x781E007A, // 0021 JMPF R7 #009D
+ 0x881C0B0C, // 0022 GETMBR R7 R5 K12
+ 0x1C1C0F0B, // 0023 EQ R7 R7 K11
+ 0x781E0077, // 0024 JMPF R7 #009D
+ 0x881C0104, // 0025 GETMBR R7 R0 K4
+ 0x881C0F05, // 0026 GETMBR R7 R7 K5
+ 0x8C1C0F06, // 0027 GETMET R7 R7 K6
+ 0x88240B07, // 0028 GETMBR R9 R5 K7
+ 0x542A0059, // 0029 LDINT R10 90
+ 0x7C1C0600, // 002A CALL R7 3
+ 0x780A0000, // 002B JMPF R2 #002D
+ 0x901E1A02, // 002C SETMBR R7 K13 R2
+ 0x780E0000, // 002D JMPF R3 #002F
+ 0x901E1C03, // 002E SETMBR R7 K14 R3
+ 0x901E1E00, // 002F SETMBR R7 K15 R0
+ 0x90162007, // 0030 SETMBR R5 K16 R7
+ 0x88200F11, // 0031 GETMBR R8 R7 K17
+ 0x8C201112, // 0032 GETMET R8 R8 K18
+ 0x88280B13, // 0033 GETMBR R10 R5 K19
+ 0x502C0000, // 0034 LDBOOL R11 0 0
+ 0x7C200600, // 0035 CALL R8 3
+ 0x74220015, // 0036 JMPT R8 #004D
+ 0xB8222800, // 0037 GETNGBL R8 K20
+ 0x8C201115, // 0038 GETMET R8 R8 K21
+ 0x542A0003, // 0039 LDINT R10 4
+ 0x7C200400, // 003A CALL R8 2
+ 0x78220009, // 003B JMPF R8 #0046
+ 0xB8222C00, // 003C GETNGBL R8 K22
+ 0x60240018, // 003D GETGBL R9 G24
+ 0x58280017, // 003E LDCONST R10 K23
+ 0x882C0B13, // 003F GETMBR R11 R5 K19
+ 0x88300F11, // 0040 GETMBR R12 R7 K17
+ 0x8C301918, // 0041 GETMET R12 R12 K24
+ 0x7C300200, // 0042 CALL R12 1
+ 0x7C240600, // 0043 CALL R9 3
+ 0x542A0003, // 0044 LDINT R10 4
+ 0x7C200400, // 0045 CALL R8 2
+ 0x8C200119, // 0046 GETMET R8 R0 K25
+ 0x5C280A00, // 0047 MOVE R10 R5
+ 0x502C0000, // 0048 LDBOOL R11 0 0
+ 0x7C200600, // 0049 CALL R8 3
+ 0x50200000, // 004A LDBOOL R8 0 0
+ 0xA8040001, // 004B EXBLK 1 1
+ 0x80041000, // 004C RET 1 R8
+ 0x8C200B1A, // 004D GETMET R8 R5 K26
+ 0x7C200200, // 004E CALL R8 1
+ 0x74220002, // 004F JMPT R8 #0053
+ 0x50200000, // 0050 LDBOOL R8 0 0
+ 0xA8040001, // 0051 EXBLK 1 1
+ 0x80041000, // 0052 RET 1 R8
+ 0x88200104, // 0053 GETMBR R8 R0 K4
+ 0x8C20111B, // 0054 GETMET R8 R8 K27
+ 0x5C280A00, // 0055 MOVE R10 R5
+ 0x7C200400, // 0056 CALL R8 2
+ 0x88200B1C, // 0057 GETMBR R8 R5 K28
+ 0x5426000F, // 0058 LDINT R9 16
+ 0x20201009, // 0059 NE R8 R8 R9
+ 0x7822001A, // 005A JMPF R8 #0076
+ 0xB8220000, // 005B GETNGBL R8 K0
+ 0x8C20111D, // 005C GETMET R8 R8 K29
+ 0x88280B1C, // 005D GETMBR R10 R5 K28
+ 0x7C200400, // 005E CALL R8 2
+ 0x5C241000, // 005F MOVE R9 R8
+ 0x74260004, // 0060 JMPT R9 #0066
+ 0x60240018, // 0061 GETGBL R9 G24
+ 0x5828001E, // 0062 LDCONST R10 K30
+ 0x882C0B1C, // 0063 GETMBR R11 R5 K28
+ 0x7C240400, // 0064 CALL R9 2
+ 0x5C201200, // 0065 MOVE R8 R9
+ 0xB8262800, // 0066 GETNGBL R9 K20
+ 0x8C241315, // 0067 GETMET R9 R9 K21
+ 0x582C001F, // 0068 LDCONST R11 K31
0x7C240400, // 0069 CALL R9 2
- 0x5C201200, // 006A MOVE R8 R9
- 0xB8262E00, // 006B GETNGBL R9 K23
- 0x8C241318, // 006C GETMET R9 R9 K24
- 0x582C0021, // 006D LDCONST R11 K33
- 0x7C240400, // 006E CALL R9 2
- 0x78260009, // 006F JMPF R9 #007A
- 0xB8260400, // 0070 GETNGBL R9 K2
- 0x60280018, // 0071 GETGBL R10 G24
- 0x582C0022, // 0072 LDCONST R11 K34
- 0x88300F0D, // 0073 GETMBR R12 R7 K13
- 0x5C341000, // 0074 MOVE R13 R8
- 0x5C380400, // 0075 MOVE R14 R2
- 0x5C3C0600, // 0076 MOVE R15 R3
- 0x7C280A00, // 0077 CALL R10 5
- 0x582C0021, // 0078 LDCONST R11 K33
- 0x7C240400, // 0079 CALL R9 2
- 0x70020017, // 007A JMP #0093
- 0xB8222E00, // 007B GETNGBL R8 K23
- 0x8C201118, // 007C GETMET R8 R8 K24
- 0x542A0003, // 007D LDINT R10 4
- 0x7C200400, // 007E CALL R8 2
- 0x78220012, // 007F JMPF R8 #0093
- 0xB8220400, // 0080 GETNGBL R8 K2
- 0x60240018, // 0081 GETGBL R9 G24
- 0x58280023, // 0082 LDCONST R10 K35
- 0x882C0F0D, // 0083 GETMBR R11 R7 K13
- 0x88300B16, // 0084 GETMBR R12 R5 K22
- 0x88340B24, // 0085 GETMBR R13 R5 K36
- 0x78360001, // 0086 JMPF R13 #0089
- 0x58340025, // 0087 LDCONST R13 K37
- 0x70020000, // 0088 JMP #008A
- 0x58340026, // 0089 LDCONST R13 K38
- 0x88380B27, // 008A GETMBR R14 R5 K39
- 0x603C0008, // 008B GETGBL R15 G8
- 0x88400B28, // 008C GETMBR R16 R5 K40
- 0x7C3C0200, // 008D CALL R15 1
- 0x5C400400, // 008E MOVE R16 R2
- 0x5C440600, // 008F MOVE R17 R3
- 0x7C241000, // 0090 CALL R9 8
- 0x542A0003, // 0091 LDINT R10 4
- 0x7C200400, // 0092 CALL R8 2
- 0x88200129, // 0093 GETMBR R8 R0 K41
- 0x8C20112A, // 0094 GETMET R8 R8 K42
- 0x5C280A00, // 0095 MOVE R10 R5
- 0x7C200400, // 0096 CALL R8 2
- 0x5C101000, // 0097 MOVE R4 R8
- 0x5C200800, // 0098 MOVE R8 R4
- 0x74220003, // 0099 JMPT R8 #009E
- 0x8C20011B, // 009A GETMET R8 R0 K27
- 0x5C280A00, // 009B MOVE R10 R5
- 0x502C0000, // 009C LDBOOL R11 0 0
- 0x7C200600, // 009D CALL R8 3
- 0x50200200, // 009E LDBOOL R8 1 0
- 0xA8040001, // 009F EXBLK 1 1
- 0x80041000, // 00A0 RET 1 R8
- 0x700200A2, // 00A1 JMP #0145
- 0xB81E2E00, // 00A2 GETNGBL R7 K23
- 0x8C1C0F18, // 00A3 GETMET R7 R7 K24
- 0x54260003, // 00A4 LDINT R9 4
- 0x7C1C0400, // 00A5 CALL R7 2
- 0x781E0007, // 00A6 JMPF R7 #00AF
- 0xB81E0400, // 00A7 GETNGBL R7 K2
- 0x60200018, // 00A8 GETGBL R8 G24
- 0x5824002B, // 00A9 LDCONST R9 K43
- 0x88280B0D, // 00AA GETMBR R10 R5 K13
- 0x882C0B16, // 00AB GETMBR R11 R5 K22
- 0x7C200600, // 00AC CALL R8 3
- 0x54260003, // 00AD LDINT R9 4
+ 0x78260009, // 006A JMPF R9 #0075
+ 0xB8262C00, // 006B GETNGBL R9 K22
+ 0x60280018, // 006C GETGBL R10 G24
+ 0x582C0020, // 006D LDCONST R11 K32
+ 0x88300F0A, // 006E GETMBR R12 R7 K10
+ 0x5C341000, // 006F MOVE R13 R8
+ 0x5C380400, // 0070 MOVE R14 R2
+ 0x5C3C0600, // 0071 MOVE R15 R3
+ 0x7C280A00, // 0072 CALL R10 5
+ 0x582C001F, // 0073 LDCONST R11 K31
+ 0x7C240400, // 0074 CALL R9 2
+ 0x70020017, // 0075 JMP #008E
+ 0xB8222800, // 0076 GETNGBL R8 K20
+ 0x8C201115, // 0077 GETMET R8 R8 K21
+ 0x542A0003, // 0078 LDINT R10 4
+ 0x7C200400, // 0079 CALL R8 2
+ 0x78220012, // 007A JMPF R8 #008E
+ 0xB8222C00, // 007B GETNGBL R8 K22
+ 0x60240018, // 007C GETGBL R9 G24
+ 0x58280021, // 007D LDCONST R10 K33
+ 0x882C0F0A, // 007E GETMBR R11 R7 K10
+ 0x88300B13, // 007F GETMBR R12 R5 K19
+ 0x88340B22, // 0080 GETMBR R13 R5 K34
+ 0x78360001, // 0081 JMPF R13 #0084
+ 0x58340023, // 0082 LDCONST R13 K35
+ 0x70020000, // 0083 JMP #0085
+ 0x58340024, // 0084 LDCONST R13 K36
+ 0x88380B25, // 0085 GETMBR R14 R5 K37
+ 0x603C0008, // 0086 GETGBL R15 G8
+ 0x88400B26, // 0087 GETMBR R16 R5 K38
+ 0x7C3C0200, // 0088 CALL R15 1
+ 0x5C400400, // 0089 MOVE R16 R2
+ 0x5C440600, // 008A MOVE R17 R3
+ 0x7C241000, // 008B CALL R9 8
+ 0x542A0003, // 008C LDINT R10 4
+ 0x7C200400, // 008D CALL R8 2
+ 0x88200127, // 008E GETMBR R8 R0 K39
+ 0x8C201128, // 008F GETMET R8 R8 K40
+ 0x5C280A00, // 0090 MOVE R10 R5
+ 0x7C200400, // 0091 CALL R8 2
+ 0x5C101000, // 0092 MOVE R4 R8
+ 0x5C200800, // 0093 MOVE R8 R4
+ 0x74220003, // 0094 JMPT R8 #0099
+ 0x8C200119, // 0095 GETMET R8 R0 K25
+ 0x5C280A00, // 0096 MOVE R10 R5
+ 0x502C0000, // 0097 LDBOOL R11 0 0
+ 0x7C200600, // 0098 CALL R8 3
+ 0x50200200, // 0099 LDBOOL R8 1 0
+ 0xA8040001, // 009A EXBLK 1 1
+ 0x80041000, // 009B RET 1 R8
+ 0x70020093, // 009C JMP #0131
+ 0xB81E2800, // 009D GETNGBL R7 K20
+ 0x8C1C0F15, // 009E GETMET R7 R7 K21
+ 0x54260003, // 009F LDINT R9 4
+ 0x7C1C0400, // 00A0 CALL R7 2
+ 0x781E0007, // 00A1 JMPF R7 #00AA
+ 0xB81E2C00, // 00A2 GETNGBL R7 K22
+ 0x60200018, // 00A3 GETGBL R8 G24
+ 0x58240029, // 00A4 LDCONST R9 K41
+ 0x88280B0A, // 00A5 GETMBR R10 R5 K10
+ 0x882C0B13, // 00A6 GETMBR R11 R5 K19
+ 0x7C200600, // 00A7 CALL R8 3
+ 0x54260003, // 00A8 LDINT R9 4
+ 0x7C1C0400, // 00A9 CALL R7 2
+ 0x881C0104, // 00AA GETMBR R7 R0 K4
+ 0x881C0F05, // 00AB GETMBR R7 R7 K5
+ 0x8C1C0F2A, // 00AC GETMET R7 R7 K42
+ 0x88240B0A, // 00AD GETMBR R9 R5 K10
0x7C1C0400, // 00AE CALL R7 2
- 0x881C0107, // 00AF GETMBR R7 R0 K7
- 0x881C0F08, // 00B0 GETMBR R7 R7 K8
- 0x8C1C0F2C, // 00B1 GETMET R7 R7 K44
- 0x88240B0D, // 00B2 GETMBR R9 R5 K13
- 0x7C1C0400, // 00B3 CALL R7 2
- 0x4C200000, // 00B4 LDNIL R8
- 0x1C200E08, // 00B5 EQ R8 R7 R8
- 0x78220009, // 00B6 JMPF R8 #00C1
- 0xB8220400, // 00B7 GETNGBL R8 K2
- 0x60240008, // 00B8 GETGBL R9 G8
- 0x88280B0D, // 00B9 GETMBR R10 R5 K13
- 0x7C240200, // 00BA CALL R9 1
- 0x00265A09, // 00BB ADD R9 K45 R9
- 0x58280021, // 00BC LDCONST R10 K33
- 0x7C200400, // 00BD CALL R8 2
- 0x50200000, // 00BE LDBOOL R8 0 0
- 0xA8040001, // 00BF EXBLK 1 1
- 0x80041000, // 00C0 RET 1 R8
- 0x780A0000, // 00C1 JMPF R2 #00C3
- 0x901E2002, // 00C2 SETMBR R7 K16 R2
- 0x780E0000, // 00C3 JMPF R3 #00C5
- 0x901E2203, // 00C4 SETMBR R7 K17 R3
- 0x901E2400, // 00C5 SETMBR R7 K18 R0
- 0x90162607, // 00C6 SETMBR R5 K19 R7
- 0x8C200F2E, // 00C7 GETMET R8 R7 K46
- 0x88280B16, // 00C8 GETMBR R10 R5 K22
- 0x502C0200, // 00C9 LDBOOL R11 1 0
- 0x7C200600, // 00CA CALL R8 3
- 0x74220017, // 00CB JMPT R8 #00E4
- 0xB8222E00, // 00CC GETNGBL R8 K23
- 0x8C201118, // 00CD GETMET R8 R8 K24
- 0x58280021, // 00CE LDCONST R10 K33
- 0x7C200400, // 00CF CALL R8 2
- 0x7822000B, // 00D0 JMPF R8 #00DD
- 0xB8220400, // 00D1 GETNGBL R8 K2
- 0x60240008, // 00D2 GETGBL R9 G8
- 0x88280B16, // 00D3 GETMBR R10 R5 K22
- 0x7C240200, // 00D4 CALL R9 1
- 0x00265E09, // 00D5 ADD R9 K47 R9
- 0x00241330, // 00D6 ADD R9 R9 K48
- 0x60280008, // 00D7 GETGBL R10 G8
- 0x882C0F31, // 00D8 GETMBR R11 R7 K49
- 0x7C280200, // 00D9 CALL R10 1
- 0x0024120A, // 00DA ADD R9 R9 R10
- 0x58280021, // 00DB LDCONST R10 K33
- 0x7C200400, // 00DC CALL R8 2
- 0x8C200132, // 00DD GETMET R8 R0 K50
- 0x5C280A00, // 00DE MOVE R10 R5
- 0x502C0000, // 00DF LDBOOL R11 0 0
- 0x7C200600, // 00E0 CALL R8 3
- 0x50200000, // 00E1 LDBOOL R8 0 0
- 0xA8040001, // 00E2 EXBLK 1 1
- 0x80041000, // 00E3 RET 1 R8
- 0x8C200B33, // 00E4 GETMET R8 R5 K51
- 0x7C200200, // 00E5 CALL R8 1
- 0xB8260000, // 00E6 GETNGBL R9 K0
- 0x88241301, // 00E7 GETMBR R9 R9 K1
- 0x8C241302, // 00E8 GETMET R9 R9 K2
- 0x582C0034, // 00E9 LDCONST R11 K52
- 0x7C240400, // 00EA CALL R9 2
- 0x5C241000, // 00EB MOVE R9 R8
- 0x74260002, // 00EC JMPT R9 #00F0
- 0x50240000, // 00ED LDBOOL R9 0 0
- 0xA8040001, // 00EE EXBLK 1 1
- 0x80041200, // 00EF RET 1 R9
- 0x8C240B1C, // 00F0 GETMET R9 R5 K28
- 0x7C240200, // 00F1 CALL R9 1
- 0xB8262E00, // 00F2 GETNGBL R9 K23
- 0x8C241318, // 00F3 GETMET R9 R9 K24
- 0x542E0003, // 00F4 LDINT R11 4
- 0x7C240400, // 00F5 CALL R9 2
- 0x78260012, // 00F6 JMPF R9 #010A
- 0xB8260400, // 00F7 GETNGBL R9 K2
- 0x60280008, // 00F8 GETGBL R10 G8
- 0x882C0B36, // 00F9 GETMBR R11 R5 K54
- 0x7C280200, // 00FA CALL R10 1
- 0x002A6A0A, // 00FB ADD R10 K53 R10
- 0x00281537, // 00FC ADD R10 R10 K55
- 0x602C0008, // 00FD GETGBL R11 G8
- 0x88300B1E, // 00FE GETMBR R12 R5 K30
- 0x7C2C0200, // 00FF CALL R11 1
- 0x0028140B, // 0100 ADD R10 R10 R11
- 0x00281538, // 0101 ADD R10 R10 K56
- 0x602C0008, // 0102 GETGBL R11 G8
- 0x88300B27, // 0103 GETMBR R12 R5 K39
- 0x5436FFFE, // 0104 LDINT R13 65535
- 0x2C30180D, // 0105 AND R12 R12 R13
- 0x7C2C0200, // 0106 CALL R11 1
- 0x0028140B, // 0107 ADD R10 R10 R11
- 0x542E0003, // 0108 LDINT R11 4
- 0x7C240400, // 0109 CALL R9 2
- 0x88240107, // 010A GETMBR R9 R0 K7
- 0x8C24131D, // 010B GETMET R9 R9 K29
- 0x5C2C0A00, // 010C MOVE R11 R5
- 0x7C240400, // 010D CALL R9 2
- 0x88240B36, // 010E GETMBR R9 R5 K54
- 0x1C28130E, // 010F EQ R10 R9 K14
- 0x782A000F, // 0110 JMPF R10 #0121
- 0x88280B1E, // 0111 GETMBR R10 R5 K30
- 0x542E000F, // 0112 LDINT R11 16
- 0x1C28140B, // 0113 EQ R10 R10 R11
- 0x782A0009, // 0114 JMPF R10 #011F
- 0x88280139, // 0115 GETMBR R10 R0 K57
- 0x8C28153A, // 0116 GETMET R10 R10 K58
- 0x5C300A00, // 0117 MOVE R12 R5
- 0x7C280400, // 0118 CALL R10 2
- 0x5C101400, // 0119 MOVE R4 R10
- 0x78120003, // 011A JMPF R4 #011F
- 0x88280139, // 011B GETMBR R10 R0 K57
- 0x8C28153B, // 011C GETMET R10 R10 K59
- 0x5C300000, // 011D MOVE R12 R0
- 0x7C280400, // 011E CALL R10 2
- 0x50100200, // 011F LDBOOL R4 1 0
- 0x70020023, // 0120 JMP #0145
- 0x1C28133C, // 0121 EQ R10 R9 K60
- 0x782A001A, // 0122 JMPF R10 #013E
- 0xB82A0000, // 0123 GETNGBL R10 K0
- 0x88281501, // 0124 GETMBR R10 R10 K1
- 0x8C281502, // 0125 GETMET R10 R10 K2
- 0x5830003D, // 0126 LDCONST R12 K61
- 0x7C280400, // 0127 CALL R10 2
- 0x88280139, // 0128 GETMBR R10 R0 K57
- 0x8C28152A, // 0129 GETMET R10 R10 K42
- 0x5C300A00, // 012A MOVE R12 R5
- 0x7C280400, // 012B CALL R10 2
- 0x5C101400, // 012C MOVE R4 R10
- 0xB82A0000, // 012D GETNGBL R10 K0
- 0x88281501, // 012E GETMBR R10 R10 K1
- 0x8C281502, // 012F GETMET R10 R10 K2
- 0x5830003E, // 0130 LDCONST R12 K62
- 0x7C280400, // 0131 CALL R10 2
- 0x78120004, // 0132 JMPF R4 #0138
- 0x88280139, // 0133 GETMBR R10 R0 K57
- 0x8C28153B, // 0134 GETMET R10 R10 K59
- 0x5C300000, // 0135 MOVE R12 R0
- 0x7C280400, // 0136 CALL R10 2
- 0x70020003, // 0137 JMP #013C
- 0x8C280132, // 0138 GETMET R10 R0 K50
- 0x5C300A00, // 0139 MOVE R12 R5
- 0x50340200, // 013A LDBOOL R13 1 0
- 0x7C280600, // 013B CALL R10 3
- 0x50100200, // 013C LDBOOL R4 1 0
- 0x70020006, // 013D JMP #0145
- 0xB82A0400, // 013E GETNGBL R10 K2
- 0x602C0008, // 013F GETGBL R11 G8
- 0x5C301200, // 0140 MOVE R12 R9
- 0x7C2C0200, // 0141 CALL R11 1
- 0x002E7E0B, // 0142 ADD R11 K63 R11
- 0x58300021, // 0143 LDCONST R12 K33
- 0x7C280400, // 0144 CALL R10 2
- 0xA8040001, // 0145 EXBLK 1 1
- 0x80040800, // 0146 RET 1 R4
- 0xA8040001, // 0147 EXBLK 1 1
- 0x70020017, // 0148 JMP #0161
- 0xAC140002, // 0149 CATCH R5 0 2
- 0x70020014, // 014A JMP #0160
- 0xB81E0400, // 014B GETNGBL R7 K2
- 0x60200008, // 014C GETGBL R8 G8
- 0x5C240A00, // 014D MOVE R9 R5
- 0x7C200200, // 014E CALL R8 1
- 0x00228008, // 014F ADD R8 K64 R8
- 0x00201141, // 0150 ADD R8 R8 K65
- 0x60240008, // 0151 GETGBL R9 G8
- 0x5C280C00, // 0152 MOVE R10 R6
- 0x7C240200, // 0153 CALL R9 1
- 0x00201009, // 0154 ADD R8 R8 R9
- 0x58240042, // 0155 LDCONST R9 K66
- 0x7C1C0400, // 0156 CALL R7 2
- 0xB81E2E00, // 0157 GETNGBL R7 K23
- 0x881C0F43, // 0158 GETMBR R7 R7 K67
- 0x781E0002, // 0159 JMPF R7 #015D
- 0xA41E8800, // 015A IMPORT R7 K68
- 0x8C200F45, // 015B GETMET R8 R7 K69
- 0x7C200200, // 015C CALL R8 1
- 0x501C0000, // 015D LDBOOL R7 0 0
- 0x80040E00, // 015E RET 1 R7
- 0x70020000, // 015F JMP #0161
- 0xB0080000, // 0160 RAISE 2 R0 R0
- 0x80000000, // 0161 RET 0
+ 0x4C200000, // 00AF LDNIL R8
+ 0x1C200E08, // 00B0 EQ R8 R7 R8
+ 0x78220009, // 00B1 JMPF R8 #00BC
+ 0xB8222C00, // 00B2 GETNGBL R8 K22
+ 0x60240008, // 00B3 GETGBL R9 G8
+ 0x88280B0A, // 00B4 GETMBR R10 R5 K10
+ 0x7C240200, // 00B5 CALL R9 1
+ 0x00265609, // 00B6 ADD R9 K43 R9
+ 0x5828001F, // 00B7 LDCONST R10 K31
+ 0x7C200400, // 00B8 CALL R8 2
+ 0x50200000, // 00B9 LDBOOL R8 0 0
+ 0xA8040001, // 00BA EXBLK 1 1
+ 0x80041000, // 00BB RET 1 R8
+ 0x780A0000, // 00BC JMPF R2 #00BE
+ 0x901E1A02, // 00BD SETMBR R7 K13 R2
+ 0x780E0000, // 00BE JMPF R3 #00C0
+ 0x901E1C03, // 00BF SETMBR R7 K14 R3
+ 0x901E1E00, // 00C0 SETMBR R7 K15 R0
+ 0x90162007, // 00C1 SETMBR R5 K16 R7
+ 0x8C200F2C, // 00C2 GETMET R8 R7 K44
+ 0x88280B13, // 00C3 GETMBR R10 R5 K19
+ 0x502C0200, // 00C4 LDBOOL R11 1 0
+ 0x7C200600, // 00C5 CALL R8 3
+ 0x74220017, // 00C6 JMPT R8 #00DF
+ 0xB8222800, // 00C7 GETNGBL R8 K20
+ 0x8C201115, // 00C8 GETMET R8 R8 K21
+ 0x5828001F, // 00C9 LDCONST R10 K31
+ 0x7C200400, // 00CA CALL R8 2
+ 0x7822000B, // 00CB JMPF R8 #00D8
+ 0xB8222C00, // 00CC GETNGBL R8 K22
+ 0x60240008, // 00CD GETGBL R9 G8
+ 0x88280B13, // 00CE GETMBR R10 R5 K19
+ 0x7C240200, // 00CF CALL R9 1
+ 0x00265A09, // 00D0 ADD R9 K45 R9
+ 0x0024132E, // 00D1 ADD R9 R9 K46
+ 0x60280008, // 00D2 GETGBL R10 G8
+ 0x882C0F2F, // 00D3 GETMBR R11 R7 K47
+ 0x7C280200, // 00D4 CALL R10 1
+ 0x0024120A, // 00D5 ADD R9 R9 R10
+ 0x5828001F, // 00D6 LDCONST R10 K31
+ 0x7C200400, // 00D7 CALL R8 2
+ 0x8C200130, // 00D8 GETMET R8 R0 K48
+ 0x5C280A00, // 00D9 MOVE R10 R5
+ 0x502C0000, // 00DA LDBOOL R11 0 0
+ 0x7C200600, // 00DB CALL R8 3
+ 0x50200000, // 00DC LDBOOL R8 0 0
+ 0xA8040001, // 00DD EXBLK 1 1
+ 0x80041000, // 00DE RET 1 R8
+ 0x8C200B31, // 00DF GETMET R8 R5 K49
+ 0x7C200200, // 00E0 CALL R8 1
+ 0x5C241000, // 00E1 MOVE R9 R8
+ 0x74260002, // 00E2 JMPT R9 #00E6
+ 0x50240000, // 00E3 LDBOOL R9 0 0
+ 0xA8040001, // 00E4 EXBLK 1 1
+ 0x80041200, // 00E5 RET 1 R9
+ 0x8C240B1A, // 00E6 GETMET R9 R5 K26
+ 0x7C240200, // 00E7 CALL R9 1
+ 0xB8262800, // 00E8 GETNGBL R9 K20
+ 0x8C241315, // 00E9 GETMET R9 R9 K21
+ 0x542E0003, // 00EA LDINT R11 4
+ 0x7C240400, // 00EB CALL R9 2
+ 0x78260012, // 00EC JMPF R9 #0100
+ 0xB8262C00, // 00ED GETNGBL R9 K22
+ 0x60280008, // 00EE GETGBL R10 G8
+ 0x882C0B33, // 00EF GETMBR R11 R5 K51
+ 0x7C280200, // 00F0 CALL R10 1
+ 0x002A640A, // 00F1 ADD R10 K50 R10
+ 0x00281534, // 00F2 ADD R10 R10 K52
+ 0x602C0008, // 00F3 GETGBL R11 G8
+ 0x88300B1C, // 00F4 GETMBR R12 R5 K28
+ 0x7C2C0200, // 00F5 CALL R11 1
+ 0x0028140B, // 00F6 ADD R10 R10 R11
+ 0x00281535, // 00F7 ADD R10 R10 K53
+ 0x602C0008, // 00F8 GETGBL R11 G8
+ 0x88300B25, // 00F9 GETMBR R12 R5 K37
+ 0x5436FFFE, // 00FA LDINT R13 65535
+ 0x2C30180D, // 00FB AND R12 R12 R13
+ 0x7C2C0200, // 00FC CALL R11 1
+ 0x0028140B, // 00FD ADD R10 R10 R11
+ 0x542E0003, // 00FE LDINT R11 4
+ 0x7C240400, // 00FF CALL R9 2
+ 0x88240104, // 0100 GETMBR R9 R0 K4
+ 0x8C24131B, // 0101 GETMET R9 R9 K27
+ 0x5C2C0A00, // 0102 MOVE R11 R5
+ 0x7C240400, // 0103 CALL R9 2
+ 0x88240B33, // 0104 GETMBR R9 R5 K51
+ 0x1C28130B, // 0105 EQ R10 R9 K11
+ 0x782A000F, // 0106 JMPF R10 #0117
+ 0x88280B1C, // 0107 GETMBR R10 R5 K28
+ 0x542E000F, // 0108 LDINT R11 16
+ 0x1C28140B, // 0109 EQ R10 R10 R11
+ 0x782A0009, // 010A JMPF R10 #0115
+ 0x88280136, // 010B GETMBR R10 R0 K54
+ 0x8C281537, // 010C GETMET R10 R10 K55
+ 0x5C300A00, // 010D MOVE R12 R5
+ 0x7C280400, // 010E CALL R10 2
+ 0x5C101400, // 010F MOVE R4 R10
+ 0x78120003, // 0110 JMPF R4 #0115
+ 0x88280136, // 0111 GETMBR R10 R0 K54
+ 0x8C281538, // 0112 GETMET R10 R10 K56
+ 0x5C300000, // 0113 MOVE R12 R0
+ 0x7C280400, // 0114 CALL R10 2
+ 0x50100200, // 0115 LDBOOL R4 1 0
+ 0x70020019, // 0116 JMP #0131
+ 0x1C281339, // 0117 EQ R10 R9 K57
+ 0x782A0010, // 0118 JMPF R10 #012A
+ 0x88280136, // 0119 GETMBR R10 R0 K54
+ 0x8C281528, // 011A GETMET R10 R10 K40
+ 0x5C300A00, // 011B MOVE R12 R5
+ 0x7C280400, // 011C CALL R10 2
+ 0x5C101400, // 011D MOVE R4 R10
+ 0x78120004, // 011E JMPF R4 #0124
+ 0x88280136, // 011F GETMBR R10 R0 K54
+ 0x8C281538, // 0120 GETMET R10 R10 K56
+ 0x5C300000, // 0121 MOVE R12 R0
+ 0x7C280400, // 0122 CALL R10 2
+ 0x70020003, // 0123 JMP #0128
+ 0x8C280130, // 0124 GETMET R10 R0 K48
+ 0x5C300A00, // 0125 MOVE R12 R5
+ 0x50340200, // 0126 LDBOOL R13 1 0
+ 0x7C280600, // 0127 CALL R10 3
+ 0x50100200, // 0128 LDBOOL R4 1 0
+ 0x70020006, // 0129 JMP #0131
+ 0xB82A2C00, // 012A GETNGBL R10 K22
+ 0x602C0008, // 012B GETGBL R11 G8
+ 0x5C301200, // 012C MOVE R12 R9
+ 0x7C2C0200, // 012D CALL R11 1
+ 0x002E740B, // 012E ADD R11 K58 R11
+ 0x5830001F, // 012F LDCONST R12 K31
+ 0x7C280400, // 0130 CALL R10 2
+ 0xA8040001, // 0131 EXBLK 1 1
+ 0x80040800, // 0132 RET 1 R4
+ 0xA8040001, // 0133 EXBLK 1 1
+ 0x70020017, // 0134 JMP #014D
+ 0xAC140002, // 0135 CATCH R5 0 2
+ 0x70020014, // 0136 JMP #014C
+ 0xB81E2C00, // 0137 GETNGBL R7 K22
+ 0x60200008, // 0138 GETGBL R8 G8
+ 0x5C240A00, // 0139 MOVE R9 R5
+ 0x7C200200, // 013A CALL R8 1
+ 0x00227608, // 013B ADD R8 K59 R8
+ 0x0020113C, // 013C ADD R8 R8 K60
+ 0x60240008, // 013D GETGBL R9 G8
+ 0x5C280C00, // 013E MOVE R10 R6
+ 0x7C240200, // 013F CALL R9 1
+ 0x00201009, // 0140 ADD R8 R8 R9
+ 0x5824003D, // 0141 LDCONST R9 K61
+ 0x7C1C0400, // 0142 CALL R7 2
+ 0xB81E2800, // 0143 GETNGBL R7 K20
+ 0x881C0F3E, // 0144 GETMBR R7 R7 K62
+ 0x781E0002, // 0145 JMPF R7 #0149
+ 0xA41E7E00, // 0146 IMPORT R7 K63
+ 0x8C200F40, // 0147 GETMET R8 R7 K64
+ 0x7C200200, // 0148 CALL R8 1
+ 0x501C0000, // 0149 LDBOOL R7 0 0
+ 0x80040E00, // 014A RET 1 R7
+ 0x70020000, // 014B JMP #014D
+ 0xB0080000, // 014C RAISE 2 R0 R0
+ 0x80000000, // 014D RET 0
})
)
);
@@ -596,27 +571,18 @@ be_local_closure(class_Matter_MessageHandler_send_response_frame, /* name */
0, /* has sup protos */
&be_class_Matter_MessageHandler,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(profiler),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(send_response_frame),
- /* K4 */ be_nested_str_weak(device),
- /* K5 */ be_nested_str_weak(msg_send),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(device),
+ /* K1 */ be_nested_str_weak(msg_send),
}),
be_str_weak(send_response_frame),
&be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x88080501, // 0001 GETMBR R2 R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x58100003, // 0003 LDCONST R4 K3
- 0x7C080400, // 0004 CALL R2 2
- 0x88080104, // 0005 GETMBR R2 R0 K4
- 0x8C080505, // 0006 GETMET R2 R2 K5
- 0x5C100200, // 0007 MOVE R4 R1
- 0x7C080400, // 0008 CALL R2 2
- 0x80000000, // 0009 RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80000000, // 0004 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
index 4d0d8cb27..a4fd6f6cc 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_1_Root.h
@@ -100,7 +100,7 @@ be_local_closure(class_Matter_Plugin_Root_read_attribute, /* name */
/* K76 */ be_nested_str_weak(commissioning_admin_fabric),
/* K77 */ be_nested_str_weak(set_or_nil),
/* K78 */ be_nested_str_weak(Tasmota),
- /* K79 */ be_nested_str_weak(vendorid),
+ /* K79 */ be_nested_str_weak(VENDOR_ID),
/* K80 */ be_nested_str_weak(DeviceName),
/* K81 */ be_nested_str_weak(FriendlyName),
/* K82 */ be_nested_str_weak(FriendlyName1),
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
index 1a1d559c0..5c5fe6e53 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UDPServer.h
@@ -730,7 +730,7 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
0, /* has sup protos */
&be_class_Matter_UDPServer,
1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
+ ( &(const bvalue[19]) { /* constants */
/* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(profiler),
/* K2 */ be_const_int(0),
@@ -746,15 +746,14 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
/* K12 */ be_nested_str_weak(log),
/* K13 */ be_nested_str_weak(MTR_X3A_X20UDP_X20received_X20from_X20_X5B_X25s_X5D_X3A_X25i),
/* K14 */ be_nested_str_weak(dispatch_cb),
- /* K15 */ be_nested_str_weak(udp_loop_dispatch),
- /* K16 */ be_nested_str_weak(dump),
- /* K17 */ be_const_int(2),
- /* K18 */ be_nested_str_weak(MAX_PACKETS_READ),
- /* K19 */ be_nested_str_weak(_resend_packets),
+ /* K15 */ be_nested_str_weak(dump),
+ /* K16 */ be_const_int(2),
+ /* K17 */ be_nested_str_weak(MAX_PACKETS_READ),
+ /* K18 */ be_nested_str_weak(_resend_packets),
}),
be_str_weak(loop),
&be_const_str_solidified,
- ( &(const binstruction[62]) { /* code */
+ ( &(const binstruction[59]) { /* code */
0xB8060000, // 0000 GETNGBL R1 K0
0x88040301, // 0001 GETMBR R1 R1 K1
0x58080002, // 0002 LDCONST R2 K2
@@ -769,7 +768,7 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
0x7C0C0400, // 000B CALL R3 2
0x4C100000, // 000C LDNIL R4
0x20100604, // 000D NE R4 R3 R4
- 0x7812002B, // 000E JMPF R4 #003B
+ 0x78120028, // 000E JMPF R4 #0038
0x8C100306, // 000F GETMET R4 R1 K6
0x7C100200, // 0010 CALL R4 1
0x90020A03, // 0011 SETMBR R0 K5 R3
@@ -792,31 +791,28 @@ be_local_closure(class_Matter_UDPServer_loop, /* name */
0x54220003, // 0022 LDINT R8 4
0x7C180400, // 0023 CALL R6 2
0x8818010E, // 0024 GETMBR R6 R0 K14
- 0x781A0007, // 0025 JMPF R6 #002E
- 0x8C18030C, // 0026 GETMET R6 R1 K12
- 0x5820000F, // 0027 LDCONST R8 K15
- 0x7C180400, // 0028 CALL R6 2
- 0x8C18010E, // 0029 GETMET R6 R0 K14
- 0x5C200600, // 002A MOVE R8 R3
- 0x5C240800, // 002B MOVE R9 R4
- 0x5C280A00, // 002C MOVE R10 R5
- 0x7C180800, // 002D CALL R6 4
- 0x8C180310, // 002E GETMET R6 R1 K16
- 0x58200011, // 002F LDCONST R8 K17
- 0x7C180400, // 0030 CALL R6 2
- 0x88180112, // 0031 GETMBR R6 R0 K18
- 0x14180406, // 0032 LT R6 R2 R6
- 0x781A0004, // 0033 JMPF R6 #0039
- 0x88180103, // 0034 GETMBR R6 R0 K3
- 0x8C180D04, // 0035 GETMET R6 R6 K4
- 0x7C180200, // 0036 CALL R6 1
- 0x5C0C0C00, // 0037 MOVE R3 R6
- 0x70020000, // 0038 JMP #003A
- 0x4C0C0000, // 0039 LDNIL R3
- 0x7001FFD0, // 003A JMP #000C
- 0x8C100113, // 003B GETMET R4 R0 K19
- 0x7C100200, // 003C CALL R4 1
- 0x80000000, // 003D RET 0
+ 0x781A0004, // 0025 JMPF R6 #002B
+ 0x8C18010E, // 0026 GETMET R6 R0 K14
+ 0x5C200600, // 0027 MOVE R8 R3
+ 0x5C240800, // 0028 MOVE R9 R4
+ 0x5C280A00, // 0029 MOVE R10 R5
+ 0x7C180800, // 002A CALL R6 4
+ 0x8C18030F, // 002B GETMET R6 R1 K15
+ 0x58200010, // 002C LDCONST R8 K16
+ 0x7C180400, // 002D CALL R6 2
+ 0x88180111, // 002E GETMBR R6 R0 K17
+ 0x14180406, // 002F LT R6 R2 R6
+ 0x781A0004, // 0030 JMPF R6 #0036
+ 0x88180103, // 0031 GETMBR R6 R0 K3
+ 0x8C180D04, // 0032 GETMET R6 R6 K4
+ 0x7C180200, // 0033 CALL R6 1
+ 0x5C0C0C00, // 0034 MOVE R3 R6
+ 0x70020000, // 0035 JMP #0037
+ 0x4C0C0000, // 0036 LDNIL R3
+ 0x7001FFD3, // 0037 JMP #000C
+ 0x8C100112, // 0038 GETMET R4 R0 K18
+ 0x7C100200, // 0039 CALL R4 1
+ 0x80000000, // 003A RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index 3ffed0e22..da9af4b11 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -39,12 +39,12 @@ be_local_closure(class_Matter_Device_save_before_restart, /* name */
/********************************************************************
-** Solidified function: start_operational_discovery
+** Solidified function: msg_send
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
+be_local_closure(class_Matter_Device_msg_send, /* name */
be_nested_proto(
- 7, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -52,29 +52,18 @@ be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(mdns),
- /* K2 */ be_nested_str_weak(stop_basic_commissioning),
- /* K3 */ be_nested_str_weak(root_w0),
- /* K4 */ be_nested_str_weak(root_L),
- /* K5 */ be_nested_str_weak(mdns_announce_op_discovery),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(send_UDP),
}),
- be_str_weak(start_operational_discovery),
+ be_str_weak(msg_send),
&be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100102, // 0002 GETMET R4 R0 K2
- 0x7C100200, // 0003 CALL R4 1
- 0x4C100000, // 0004 LDNIL R4
- 0x90020604, // 0005 SETMBR R0 K3 R4
- 0x4C100000, // 0006 LDNIL R4
- 0x90020804, // 0007 SETMBR R0 K4 R4
- 0x8C100105, // 0008 GETMET R4 R0 K5
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C100400, // 000A CALL R4 2
- 0x80000000, // 000B RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -82,13 +71,211 @@ be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
/********************************************************************
-** Solidified function: find_plugin_by_endpoint
+** Solidified function: mdns_remove_PASE
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
+be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[19]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(mdns_pase_eth),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
+ /* K4 */ be_nested_str_weak(_matterc),
+ /* K5 */ be_nested_str_weak(_udp),
+ /* K6 */ be_nested_str_weak(commissioning_instance_eth),
+ /* K7 */ be_nested_str_weak(hostname_eth),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K10 */ be_nested_str_weak(eth),
+ /* K11 */ be_nested_str_weak(remove_service),
+ /* K12 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
+ /* K14 */ be_nested_str_weak(hostname_wifi),
+ /* K15 */ be_nested_str_weak(wifi),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K17 */ be_nested_str_weak(_X7C),
+ /* K18 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_remove_PASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x88080101, // 0002 GETMBR R2 R0 K1
+ 0x780A0019, // 0003 JMPF R2 #001E
+ 0xB80A0400, // 0004 GETNGBL R2 K2
+ 0x600C0018, // 0005 GETGBL R3 G24
+ 0x58100003, // 0006 LDCONST R4 K3
+ 0x58140004, // 0007 LDCONST R5 K4
+ 0x58180005, // 0008 LDCONST R6 K5
+ 0x881C0106, // 0009 GETMBR R7 R0 K6
+ 0x88200107, // 000A GETMBR R8 R0 K7
+ 0x7C0C0A00, // 000B CALL R3 5
+ 0x58100008, // 000C LDCONST R4 K8
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0400, // 000E GETNGBL R2 K2
+ 0x600C0018, // 000F GETGBL R3 G24
+ 0x58100009, // 0010 LDCONST R4 K9
+ 0x5814000A, // 0011 LDCONST R5 K10
+ 0x88180106, // 0012 GETMBR R6 R0 K6
+ 0x7C0C0600, // 0013 CALL R3 3
+ 0x58100008, // 0014 LDCONST R4 K8
+ 0x7C080400, // 0015 CALL R2 2
+ 0x50080000, // 0016 LDBOOL R2 0 0
+ 0x90020202, // 0017 SETMBR R0 K1 R2
+ 0x8C08030B, // 0018 GETMET R2 R1 K11
+ 0x58100004, // 0019 LDCONST R4 K4
+ 0x58140005, // 001A LDCONST R5 K5
+ 0x88180106, // 001B GETMBR R6 R0 K6
+ 0x881C0107, // 001C GETMBR R7 R0 K7
+ 0x7C080A00, // 001D CALL R2 5
+ 0x8808010C, // 001E GETMBR R2 R0 K12
+ 0x780A0019, // 001F JMPF R2 #003A
+ 0xB80A0400, // 0020 GETNGBL R2 K2
+ 0x600C0018, // 0021 GETGBL R3 G24
+ 0x58100003, // 0022 LDCONST R4 K3
+ 0x58140004, // 0023 LDCONST R5 K4
+ 0x58180005, // 0024 LDCONST R6 K5
+ 0x881C010D, // 0025 GETMBR R7 R0 K13
+ 0x8820010E, // 0026 GETMBR R8 R0 K14
+ 0x7C0C0A00, // 0027 CALL R3 5
+ 0x58100008, // 0028 LDCONST R4 K8
+ 0x7C080400, // 0029 CALL R2 2
+ 0xB80A0400, // 002A GETNGBL R2 K2
+ 0x600C0018, // 002B GETGBL R3 G24
+ 0x58100009, // 002C LDCONST R4 K9
+ 0x5814000F, // 002D LDCONST R5 K15
+ 0x8818010D, // 002E GETMBR R6 R0 K13
+ 0x7C0C0600, // 002F CALL R3 3
+ 0x58100008, // 0030 LDCONST R4 K8
+ 0x7C080400, // 0031 CALL R2 2
+ 0x50080000, // 0032 LDBOOL R2 0 0
+ 0x90021802, // 0033 SETMBR R0 K12 R2
+ 0x8C08030B, // 0034 GETMET R2 R1 K11
+ 0x58100004, // 0035 LDCONST R4 K4
+ 0x58140005, // 0036 LDCONST R5 K5
+ 0x8818010D, // 0037 GETMBR R6 R0 K13
+ 0x881C010E, // 0038 GETMBR R7 R0 K14
+ 0x7C080A00, // 0039 CALL R2 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC080002, // 003C CATCH R2 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8120400, // 003E GETNGBL R4 K2
+ 0x60140008, // 003F GETGBL R5 G8
+ 0x5C180400, // 0040 MOVE R6 R2
+ 0x7C140200, // 0041 CALL R5 1
+ 0x00162005, // 0042 ADD R5 K16 R5
+ 0x00140B11, // 0043 ADD R5 R5 K17
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x00140A06, // 0047 ADD R5 R5 R6
+ 0x58180012, // 0048 LDCONST R6 K18
+ 0x7C100400, // 0049 CALL R4 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_qrcode_content
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(resize),
+ /* K1 */ be_nested_str_weak(setbits),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(VENDOR_ID),
+ /* K4 */ be_nested_str_weak(PRODUCT_ID),
+ /* K5 */ be_nested_str_weak(root_discriminator),
+ /* K6 */ be_nested_str_weak(root_passcode),
+ /* K7 */ be_const_int(134217727),
+ /* K8 */ be_nested_str_weak(MT_X3A),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(Base38),
+ /* K11 */ be_nested_str_weak(encode),
+ }),
+ be_str_weak(compute_qrcode_content),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0x60040015, // 0000 GETGBL R1 G21
+ 0x7C040000, // 0001 CALL R1 0
+ 0x8C040300, // 0002 GETMET R1 R1 K0
+ 0x540E000A, // 0003 LDINT R3 11
+ 0x7C040400, // 0004 CALL R1 2
+ 0x8C080301, // 0005 GETMET R2 R1 K1
+ 0x58100002, // 0006 LDCONST R4 K2
+ 0x5416000F, // 0007 LDINT R5 16
+ 0x88180103, // 0008 GETMBR R6 R0 K3
+ 0x7C080800, // 0009 CALL R2 4
+ 0x8C080301, // 000A GETMET R2 R1 K1
+ 0x54120012, // 000B LDINT R4 19
+ 0x5416000F, // 000C LDINT R5 16
+ 0x88180104, // 000D GETMBR R6 R0 K4
+ 0x7C080800, // 000E CALL R2 4
+ 0x8C080301, // 000F GETMET R2 R1 K1
+ 0x54120024, // 0010 LDINT R4 37
+ 0x54160007, // 0011 LDINT R5 8
+ 0x541A0003, // 0012 LDINT R6 4
+ 0x7C080800, // 0013 CALL R2 4
+ 0x8C080301, // 0014 GETMET R2 R1 K1
+ 0x5412002C, // 0015 LDINT R4 45
+ 0x5416000B, // 0016 LDINT R5 12
+ 0x88180105, // 0017 GETMBR R6 R0 K5
+ 0x541E0FFE, // 0018 LDINT R7 4095
+ 0x2C180C07, // 0019 AND R6 R6 R7
+ 0x7C080800, // 001A CALL R2 4
+ 0x8C080301, // 001B GETMET R2 R1 K1
+ 0x54120038, // 001C LDINT R4 57
+ 0x5416001A, // 001D LDINT R5 27
+ 0x88180106, // 001E GETMBR R6 R0 K6
+ 0x2C180D07, // 001F AND R6 R6 K7
+ 0x7C080800, // 0020 CALL R2 4
+ 0xB80A1200, // 0021 GETNGBL R2 K9
+ 0x8808050A, // 0022 GETMBR R2 R2 K10
+ 0x8C08050B, // 0023 GETMET R2 R2 K11
+ 0x5C100200, // 0024 MOVE R4 R1
+ 0x7C080400, // 0025 CALL R2 2
+ 0x000A1002, // 0026 ADD R2 K8 R2
+ 0x80040400, // 0027 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -96,31 +283,22 @@ be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_endpoint),
- /* K3 */ be_const_int(1),
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
}),
- be_str_weak(find_plugin_by_endpoint),
+ be_str_weak(_init_basic_commissioning),
&be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0008, // 0005 JMPF R3 #000F
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x8C100702, // 0008 GETMET R4 R3 K2
- 0x7C100200, // 0009 CALL R4 1
- 0x1C100801, // 000A EQ R4 R4 R1
- 0x78120000, // 000B JMPF R4 #000D
- 0x80040600, // 000C RET 1 R3
- 0x00080503, // 000D ADD R2 R2 K3
- 0x7001FFF1, // 000E JMP #0001
- 0x4C0C0000, // 000F LDNIL R3
- 0x80040600, // 0010 RET 1 R3
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040302, // 0003 EQ R1 R1 K2
+ 0x78060001, // 0004 JMPF R1 #0007
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x7C040200, // 0006 CALL R1 1
+ 0x80000000, // 0007 RET 0
})
)
);
@@ -181,12 +359,12 @@ be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
/********************************************************************
-** Solidified function: _mdns_announce_hostname
+** Solidified function: add_read_sensors_schedule
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
+be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
be_nested_proto(
- 14, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -194,182 +372,29 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(string),
- /* K2 */ be_nested_str_weak(start),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(eth),
- /* K5 */ be_nested_str_weak(hostname_eth),
- /* K6 */ be_nested_str_weak(replace),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(mac),
- /* K9 */ be_nested_str_weak(_X3A),
- /* K10 */ be_nested_str_weak(),
- /* K11 */ be_nested_str_weak(ipv4only),
- /* K12 */ be_nested_str_weak(contains),
- /* K13 */ be_nested_str_weak(ip6local),
- /* K14 */ be_nested_str_weak(add_hostname),
- /* K15 */ be_nested_str_weak(ip),
- /* K16 */ be_nested_str_weak(ip6),
- /* K17 */ be_nested_str_weak(log),
- /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
- /* K19 */ be_const_int(3),
- /* K20 */ be_nested_str_weak(wifi),
- /* K21 */ be_nested_str_weak(hostname_wifi),
- /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
- /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K24 */ be_nested_str_weak(_X7C),
- /* K25 */ be_const_int(2),
- /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(jitter),
}),
- be_str_weak(_mdns_announce_hostname),
+ be_str_weak(add_read_sensors_schedule),
&be_const_str_solidified,
- ( &(const binstruction[144]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100502, // 0002 GETMET R4 R2 K2
- 0x7C100200, // 0003 CALL R4 1
- 0xA8020077, // 0004 EXBLK 0 #007D
- 0x78060033, // 0005 JMPF R1 #003A
- 0xB8120600, // 0006 GETNGBL R4 K3
- 0x8C100904, // 0007 GETMET R4 R4 K4
- 0x7C100200, // 0008 CALL R4 1
- 0x8C140706, // 0009 GETMET R5 R3 K6
- 0x8C1C0907, // 000A GETMET R7 R4 K7
- 0x58240008, // 000B LDCONST R9 K8
- 0x7C1C0400, // 000C CALL R7 2
- 0x58200009, // 000D LDCONST R8 K9
- 0x5824000A, // 000E LDCONST R9 K10
- 0x7C140800, // 000F CALL R5 4
- 0x90020A05, // 0010 SETMBR R0 K5 R5
- 0x8814010B, // 0011 GETMBR R5 R0 K11
- 0x78160003, // 0012 JMPF R5 #0017
- 0x8C14090C, // 0013 GETMET R5 R4 K12
- 0x581C000D, // 0014 LDCONST R7 K13
- 0x7C140400, // 0015 CALL R5 2
- 0x7416000F, // 0016 JMPT R5 #0027
- 0x8C14050E, // 0017 GETMET R5 R2 K14
- 0x881C0105, // 0018 GETMBR R7 R0 K5
- 0x8C200907, // 0019 GETMET R8 R4 K7
- 0x5828000D, // 001A LDCONST R10 K13
- 0x582C000A, // 001B LDCONST R11 K10
- 0x7C200600, // 001C CALL R8 3
- 0x8C240907, // 001D GETMET R9 R4 K7
- 0x582C000F, // 001E LDCONST R11 K15
- 0x5830000A, // 001F LDCONST R12 K10
- 0x7C240600, // 0020 CALL R9 3
- 0x8C280907, // 0021 GETMET R10 R4 K7
- 0x58300010, // 0022 LDCONST R12 K16
- 0x5834000A, // 0023 LDCONST R13 K10
- 0x7C280600, // 0024 CALL R10 3
- 0x7C140A00, // 0025 CALL R5 5
- 0x70020011, // 0026 JMP #0039
- 0xB8162200, // 0027 GETNGBL R5 K17
- 0x60180018, // 0028 GETGBL R6 G24
- 0x581C0012, // 0029 LDCONST R7 K18
- 0x88200105, // 002A GETMBR R8 R0 K5
- 0x8C240907, // 002B GETMET R9 R4 K7
- 0x582C000F, // 002C LDCONST R11 K15
- 0x5830000A, // 002D LDCONST R12 K10
- 0x7C240600, // 002E CALL R9 3
- 0x7C180600, // 002F CALL R6 3
- 0x581C0013, // 0030 LDCONST R7 K19
- 0x7C140400, // 0031 CALL R5 2
- 0x8C14050E, // 0032 GETMET R5 R2 K14
- 0x881C0105, // 0033 GETMBR R7 R0 K5
- 0x8C200907, // 0034 GETMET R8 R4 K7
- 0x5828000F, // 0035 LDCONST R10 K15
- 0x582C000A, // 0036 LDCONST R11 K10
- 0x7C200600, // 0037 CALL R8 3
- 0x7C140600, // 0038 CALL R5 3
- 0x70020032, // 0039 JMP #006D
- 0xB8120600, // 003A GETNGBL R4 K3
- 0x8C100914, // 003B GETMET R4 R4 K20
- 0x7C100200, // 003C CALL R4 1
- 0x8C140706, // 003D GETMET R5 R3 K6
- 0x8C1C0907, // 003E GETMET R7 R4 K7
- 0x58240008, // 003F LDCONST R9 K8
- 0x7C1C0400, // 0040 CALL R7 2
- 0x58200009, // 0041 LDCONST R8 K9
- 0x5824000A, // 0042 LDCONST R9 K10
- 0x7C140800, // 0043 CALL R5 4
- 0x90022A05, // 0044 SETMBR R0 K21 R5
- 0x8814010B, // 0045 GETMBR R5 R0 K11
- 0x78160003, // 0046 JMPF R5 #004B
- 0x8C14090C, // 0047 GETMET R5 R4 K12
- 0x581C000D, // 0048 LDCONST R7 K13
- 0x7C140400, // 0049 CALL R5 2
- 0x7416000F, // 004A JMPT R5 #005B
- 0x8C14050E, // 004B GETMET R5 R2 K14
- 0x881C0115, // 004C GETMBR R7 R0 K21
- 0x8C200907, // 004D GETMET R8 R4 K7
- 0x5828000D, // 004E LDCONST R10 K13
- 0x582C000A, // 004F LDCONST R11 K10
- 0x7C200600, // 0050 CALL R8 3
- 0x8C240907, // 0051 GETMET R9 R4 K7
- 0x582C000F, // 0052 LDCONST R11 K15
- 0x5830000A, // 0053 LDCONST R12 K10
- 0x7C240600, // 0054 CALL R9 3
- 0x8C280907, // 0055 GETMET R10 R4 K7
- 0x58300010, // 0056 LDCONST R12 K16
- 0x5834000A, // 0057 LDCONST R13 K10
- 0x7C280600, // 0058 CALL R10 3
- 0x7C140A00, // 0059 CALL R5 5
- 0x70020011, // 005A JMP #006D
- 0xB8162200, // 005B GETNGBL R5 K17
- 0x60180018, // 005C GETGBL R6 G24
- 0x581C0012, // 005D LDCONST R7 K18
- 0x88200115, // 005E GETMBR R8 R0 K21
- 0x8C240907, // 005F GETMET R9 R4 K7
- 0x582C000F, // 0060 LDCONST R11 K15
- 0x5830000A, // 0061 LDCONST R12 K10
- 0x7C240600, // 0062 CALL R9 3
- 0x7C180600, // 0063 CALL R6 3
- 0x581C0013, // 0064 LDCONST R7 K19
- 0x7C140400, // 0065 CALL R5 2
- 0x8C14050E, // 0066 GETMET R5 R2 K14
- 0x881C0115, // 0067 GETMBR R7 R0 K21
- 0x8C200907, // 0068 GETMET R8 R4 K7
- 0x5828000F, // 0069 LDCONST R10 K15
- 0x582C000A, // 006A LDCONST R11 K10
- 0x7C200600, // 006B CALL R8 3
- 0x7C140600, // 006C CALL R5 3
- 0xB8122200, // 006D GETNGBL R4 K17
- 0x60140018, // 006E GETGBL R5 G24
- 0x58180016, // 006F LDCONST R6 K22
- 0x78060001, // 0070 JMPF R1 #0073
- 0x581C0004, // 0071 LDCONST R7 K4
- 0x70020000, // 0072 JMP #0074
- 0x581C0014, // 0073 LDCONST R7 K20
- 0x78060001, // 0074 JMPF R1 #0077
- 0x88200105, // 0075 GETMBR R8 R0 K5
- 0x70020000, // 0076 JMP #0078
- 0x88200115, // 0077 GETMBR R8 R0 K21
- 0x7C140600, // 0078 CALL R5 3
- 0x58180013, // 0079 LDCONST R6 K19
- 0x7C100400, // 007A CALL R4 2
- 0xA8040001, // 007B EXBLK 1 1
- 0x7002000F, // 007C JMP #008D
- 0xAC100002, // 007D CATCH R4 0 2
- 0x7002000C, // 007E JMP #008C
- 0xB81A2200, // 007F GETNGBL R6 K17
- 0x601C0008, // 0080 GETGBL R7 G8
- 0x5C200800, // 0081 MOVE R8 R4
- 0x7C1C0200, // 0082 CALL R7 1
- 0x001E2E07, // 0083 ADD R7 K23 R7
- 0x001C0F18, // 0084 ADD R7 R7 K24
- 0x60200008, // 0085 GETGBL R8 G8
- 0x5C240A00, // 0086 MOVE R9 R5
- 0x7C200200, // 0087 CALL R8 1
- 0x001C0E08, // 0088 ADD R7 R7 R8
- 0x58200019, // 0089 LDCONST R8 K25
- 0x7C180400, // 008A CALL R6 2
- 0x70020000, // 008B JMP #008D
- 0xB0080000, // 008C RAISE 2 R0 R0
- 0x8C10011A, // 008D GETMET R4 R0 K26
- 0x7C100200, // 008E CALL R4 1
- 0x80000000, // 008F RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x1C080403, // 0002 EQ R2 R2 R3
+ 0x740A0002, // 0003 JMPT R2 #0007
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x24080401, // 0005 GT R2 R2 R1
+ 0x780A0005, // 0006 JMPF R2 #000D
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0xB80A0400, // 0008 GETNGBL R2 K2
+ 0x8C080503, // 0009 GETMET R2 R2 K3
+ 0x5C100200, // 000A MOVE R4 R1
+ 0x7C080400, // 000B CALL R2 2
+ 0x90020202, // 000C SETMBR R0 K1 R2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -377,289 +402,61 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
/********************************************************************
-** Solidified function: mdns_announce_PASE
+** Solidified function: start_operational_discovery_deferred
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
+be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
be_nested_proto(
- 12, /* nstack */
- 1, /* argc */
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 0, /* has sup protos */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_operational_discovery),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
&be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[40]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(crypto),
- /* K2 */ be_nested_str_weak(VP),
- /* K3 */ be_nested_str_weak(vendorid),
- /* K4 */ be_nested_str_weak(_X2B),
- /* K5 */ be_nested_str_weak(productid),
- /* K6 */ be_nested_str_weak(D),
- /* K7 */ be_nested_str_weak(commissioning_discriminator),
- /* K8 */ be_nested_str_weak(CM),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(T),
- /* K11 */ be_const_int(0),
- /* K12 */ be_nested_str_weak(SII),
- /* K13 */ be_nested_str_weak(SAI),
- /* K14 */ be_nested_str_weak(commissioning_instance_wifi),
- /* K15 */ be_nested_str_weak(random),
- /* K16 */ be_nested_str_weak(tohex),
- /* K17 */ be_nested_str_weak(commissioning_instance_eth),
- /* K18 */ be_nested_str_weak(hostname_eth),
- /* K19 */ be_nested_str_weak(add_service),
- /* K20 */ be_nested_str_weak(_matterc),
- /* K21 */ be_nested_str_weak(_udp),
- /* K22 */ be_nested_str_weak(mdns_pase_eth),
- /* K23 */ be_nested_str_weak(log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20announce_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K25 */ be_nested_str_weak(eth),
- /* K26 */ be_const_int(2),
- /* K27 */ be_nested_str_weak(_L),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K29 */ be_const_int(3),
- /* K30 */ be_nested_str_weak(add_subtype),
- /* K31 */ be_nested_str_weak(_S),
- /* K32 */ be_nested_str_weak(_V),
- /* K33 */ be_nested_str_weak(_CM1),
- /* K34 */ be_nested_str_weak(hostname_wifi),
- /* K35 */ be_nested_str_weak(mdns_pase_wifi),
- /* K36 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K37 */ be_nested_str_weak(wifi),
- /* K38 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K39 */ be_nested_str_weak(_X7C),
}),
- be_str_weak(mdns_announce_PASE),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_operational_discovery_deferred),
&be_const_str_solidified,
- ( &(const binstruction[225]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA40A0200, // 0001 IMPORT R2 K1
- 0x600C0013, // 0002 GETGBL R3 G19
- 0x7C0C0000, // 0003 CALL R3 0
- 0x60100008, // 0004 GETGBL R4 G8
- 0x88140103, // 0005 GETMBR R5 R0 K3
- 0x7C100200, // 0006 CALL R4 1
- 0x00100904, // 0007 ADD R4 R4 K4
- 0x60140008, // 0008 GETGBL R5 G8
- 0x88180105, // 0009 GETMBR R6 R0 K5
- 0x7C140200, // 000A CALL R5 1
- 0x00100805, // 000B ADD R4 R4 R5
- 0x980E0404, // 000C SETIDX R3 K2 R4
- 0x88100107, // 000D GETMBR R4 R0 K7
- 0x980E0C04, // 000E SETIDX R3 K6 R4
- 0x980E1109, // 000F SETIDX R3 K8 K9
- 0x980E150B, // 0010 SETIDX R3 K10 K11
- 0x54121387, // 0011 LDINT R4 5000
- 0x980E1804, // 0012 SETIDX R3 K12 R4
- 0x5412012B, // 0013 LDINT R4 300
- 0x980E1A04, // 0014 SETIDX R3 K13 R4
- 0x8C10050F, // 0015 GETMET R4 R2 K15
- 0x541A0007, // 0016 LDINT R6 8
- 0x7C100400, // 0017 CALL R4 2
- 0x8C100910, // 0018 GETMET R4 R4 K16
- 0x7C100200, // 0019 CALL R4 1
- 0x90021C04, // 001A SETMBR R0 K14 R4
- 0x8C10050F, // 001B GETMET R4 R2 K15
- 0x541A0007, // 001C LDINT R6 8
- 0x7C100400, // 001D CALL R4 2
- 0x8C100910, // 001E GETMET R4 R4 K16
- 0x7C100200, // 001F CALL R4 1
- 0x90022204, // 0020 SETMBR R0 K17 R4
- 0xA80200AD, // 0021 EXBLK 0 #00D0
- 0x88100112, // 0022 GETMBR R4 R0 K18
- 0x78120053, // 0023 JMPF R4 #0078
- 0x8C100313, // 0024 GETMET R4 R1 K19
- 0x58180014, // 0025 LDCONST R6 K20
- 0x581C0015, // 0026 LDCONST R7 K21
- 0x542215A3, // 0027 LDINT R8 5540
- 0x5C240600, // 0028 MOVE R9 R3
- 0x88280111, // 0029 GETMBR R10 R0 K17
- 0x882C0112, // 002A GETMBR R11 R0 K18
- 0x7C100E00, // 002B CALL R4 7
- 0x50100200, // 002C LDBOOL R4 1 0
- 0x90022C04, // 002D SETMBR R0 K22 R4
- 0xB8122E00, // 002E GETNGBL R4 K23
- 0x60140018, // 002F GETGBL R5 G24
- 0x58180018, // 0030 LDCONST R6 K24
- 0x581C0019, // 0031 LDCONST R7 K25
- 0x88200111, // 0032 GETMBR R8 R0 K17
- 0x88240112, // 0033 GETMBR R9 R0 K18
- 0x7C140800, // 0034 CALL R5 4
- 0x5818001A, // 0035 LDCONST R6 K26
- 0x7C100400, // 0036 CALL R4 2
- 0x60100008, // 0037 GETGBL R4 G8
- 0x88140107, // 0038 GETMBR R5 R0 K7
- 0x541A0FFE, // 0039 LDINT R6 4095
- 0x2C140A06, // 003A AND R5 R5 R6
- 0x7C100200, // 003B CALL R4 1
- 0x00123604, // 003C ADD R4 K27 R4
- 0xB8162E00, // 003D GETNGBL R5 K23
- 0x001A3804, // 003E ADD R6 K28 R4
- 0x581C001D, // 003F LDCONST R7 K29
- 0x7C140400, // 0040 CALL R5 2
- 0x8C14031E, // 0041 GETMET R5 R1 K30
- 0x581C0014, // 0042 LDCONST R7 K20
- 0x58200015, // 0043 LDCONST R8 K21
- 0x88240111, // 0044 GETMBR R9 R0 K17
- 0x88280112, // 0045 GETMBR R10 R0 K18
- 0x5C2C0800, // 0046 MOVE R11 R4
- 0x7C140C00, // 0047 CALL R5 6
- 0x60140008, // 0048 GETGBL R5 G8
- 0x88180107, // 0049 GETMBR R6 R0 K7
- 0x541E0EFF, // 004A LDINT R7 3840
- 0x2C180C07, // 004B AND R6 R6 R7
- 0x541E0007, // 004C LDINT R7 8
- 0x3C180C07, // 004D SHR R6 R6 R7
- 0x7C140200, // 004E CALL R5 1
- 0x00163E05, // 004F ADD R5 K31 R5
- 0x5C100A00, // 0050 MOVE R4 R5
- 0xB8162E00, // 0051 GETNGBL R5 K23
- 0x001A3804, // 0052 ADD R6 K28 R4
- 0x581C001D, // 0053 LDCONST R7 K29
- 0x7C140400, // 0054 CALL R5 2
- 0x8C14031E, // 0055 GETMET R5 R1 K30
- 0x581C0014, // 0056 LDCONST R7 K20
- 0x58200015, // 0057 LDCONST R8 K21
- 0x88240111, // 0058 GETMBR R9 R0 K17
- 0x88280112, // 0059 GETMBR R10 R0 K18
- 0x5C2C0800, // 005A MOVE R11 R4
- 0x7C140C00, // 005B CALL R5 6
- 0x60140008, // 005C GETGBL R5 G8
- 0x88180103, // 005D GETMBR R6 R0 K3
- 0x7C140200, // 005E CALL R5 1
- 0x00164005, // 005F ADD R5 K32 R5
- 0x5C100A00, // 0060 MOVE R4 R5
- 0xB8162E00, // 0061 GETNGBL R5 K23
- 0x001A3804, // 0062 ADD R6 K28 R4
- 0x581C001D, // 0063 LDCONST R7 K29
- 0x7C140400, // 0064 CALL R5 2
- 0x8C14031E, // 0065 GETMET R5 R1 K30
- 0x581C0014, // 0066 LDCONST R7 K20
- 0x58200015, // 0067 LDCONST R8 K21
- 0x88240111, // 0068 GETMBR R9 R0 K17
- 0x88280112, // 0069 GETMBR R10 R0 K18
- 0x5C2C0800, // 006A MOVE R11 R4
- 0x7C140C00, // 006B CALL R5 6
- 0x58100021, // 006C LDCONST R4 K33
- 0xB8162E00, // 006D GETNGBL R5 K23
- 0x001A3804, // 006E ADD R6 K28 R4
- 0x581C001D, // 006F LDCONST R7 K29
- 0x7C140400, // 0070 CALL R5 2
- 0x8C14031E, // 0071 GETMET R5 R1 K30
- 0x581C0014, // 0072 LDCONST R7 K20
- 0x58200015, // 0073 LDCONST R8 K21
- 0x88240111, // 0074 GETMBR R9 R0 K17
- 0x88280112, // 0075 GETMBR R10 R0 K18
- 0x5C2C0800, // 0076 MOVE R11 R4
- 0x7C140C00, // 0077 CALL R5 6
- 0x88100122, // 0078 GETMBR R4 R0 K34
- 0x78120053, // 0079 JMPF R4 #00CE
- 0x8C100313, // 007A GETMET R4 R1 K19
- 0x58180014, // 007B LDCONST R6 K20
- 0x581C0015, // 007C LDCONST R7 K21
- 0x542215A3, // 007D LDINT R8 5540
- 0x5C240600, // 007E MOVE R9 R3
- 0x8828010E, // 007F GETMBR R10 R0 K14
- 0x882C0122, // 0080 GETMBR R11 R0 K34
- 0x7C100E00, // 0081 CALL R4 7
- 0x50100200, // 0082 LDBOOL R4 1 0
- 0x90024604, // 0083 SETMBR R0 K35 R4
- 0xB8122E00, // 0084 GETNGBL R4 K23
- 0x60140018, // 0085 GETGBL R5 G24
- 0x58180024, // 0086 LDCONST R6 K36
- 0x581C0025, // 0087 LDCONST R7 K37
- 0x8820010E, // 0088 GETMBR R8 R0 K14
- 0x88240122, // 0089 GETMBR R9 R0 K34
- 0x7C140800, // 008A CALL R5 4
- 0x5818001D, // 008B LDCONST R6 K29
- 0x7C100400, // 008C CALL R4 2
- 0x60100008, // 008D GETGBL R4 G8
- 0x88140107, // 008E GETMBR R5 R0 K7
- 0x541A0FFE, // 008F LDINT R6 4095
- 0x2C140A06, // 0090 AND R5 R5 R6
- 0x7C100200, // 0091 CALL R4 1
- 0x00123604, // 0092 ADD R4 K27 R4
- 0xB8162E00, // 0093 GETNGBL R5 K23
- 0x001A3804, // 0094 ADD R6 K28 R4
- 0x581C001D, // 0095 LDCONST R7 K29
- 0x7C140400, // 0096 CALL R5 2
- 0x8C14031E, // 0097 GETMET R5 R1 K30
- 0x581C0014, // 0098 LDCONST R7 K20
- 0x58200015, // 0099 LDCONST R8 K21
- 0x8824010E, // 009A GETMBR R9 R0 K14
- 0x88280122, // 009B GETMBR R10 R0 K34
- 0x5C2C0800, // 009C MOVE R11 R4
- 0x7C140C00, // 009D CALL R5 6
- 0x60140008, // 009E GETGBL R5 G8
- 0x88180107, // 009F GETMBR R6 R0 K7
- 0x541E0EFF, // 00A0 LDINT R7 3840
- 0x2C180C07, // 00A1 AND R6 R6 R7
- 0x541E0007, // 00A2 LDINT R7 8
- 0x3C180C07, // 00A3 SHR R6 R6 R7
- 0x7C140200, // 00A4 CALL R5 1
- 0x00163E05, // 00A5 ADD R5 K31 R5
- 0x5C100A00, // 00A6 MOVE R4 R5
- 0xB8162E00, // 00A7 GETNGBL R5 K23
- 0x001A3804, // 00A8 ADD R6 K28 R4
- 0x581C001D, // 00A9 LDCONST R7 K29
- 0x7C140400, // 00AA CALL R5 2
- 0x8C14031E, // 00AB GETMET R5 R1 K30
- 0x581C0014, // 00AC LDCONST R7 K20
- 0x58200015, // 00AD LDCONST R8 K21
- 0x8824010E, // 00AE GETMBR R9 R0 K14
- 0x88280122, // 00AF GETMBR R10 R0 K34
- 0x5C2C0800, // 00B0 MOVE R11 R4
- 0x7C140C00, // 00B1 CALL R5 6
- 0x60140008, // 00B2 GETGBL R5 G8
- 0x88180103, // 00B3 GETMBR R6 R0 K3
- 0x7C140200, // 00B4 CALL R5 1
- 0x00164005, // 00B5 ADD R5 K32 R5
- 0x5C100A00, // 00B6 MOVE R4 R5
- 0xB8162E00, // 00B7 GETNGBL R5 K23
- 0x001A3804, // 00B8 ADD R6 K28 R4
- 0x581C001D, // 00B9 LDCONST R7 K29
- 0x7C140400, // 00BA CALL R5 2
- 0x8C14031E, // 00BB GETMET R5 R1 K30
- 0x581C0014, // 00BC LDCONST R7 K20
- 0x58200015, // 00BD LDCONST R8 K21
- 0x8824010E, // 00BE GETMBR R9 R0 K14
- 0x88280122, // 00BF GETMBR R10 R0 K34
- 0x5C2C0800, // 00C0 MOVE R11 R4
- 0x7C140C00, // 00C1 CALL R5 6
- 0x58100021, // 00C2 LDCONST R4 K33
- 0xB8162E00, // 00C3 GETNGBL R5 K23
- 0x001A3804, // 00C4 ADD R6 K28 R4
- 0x581C001D, // 00C5 LDCONST R7 K29
- 0x7C140400, // 00C6 CALL R5 2
- 0x8C14031E, // 00C7 GETMET R5 R1 K30
- 0x581C0014, // 00C8 LDCONST R7 K20
- 0x58200015, // 00C9 LDCONST R8 K21
- 0x8824010E, // 00CA GETMBR R9 R0 K14
- 0x88280122, // 00CB GETMBR R10 R0 K34
- 0x5C2C0800, // 00CC MOVE R11 R4
- 0x7C140C00, // 00CD CALL R5 6
- 0xA8040001, // 00CE EXBLK 1 1
- 0x7002000F, // 00CF JMP #00E0
- 0xAC100002, // 00D0 CATCH R4 0 2
- 0x7002000C, // 00D1 JMP #00DF
- 0xB81A2E00, // 00D2 GETNGBL R6 K23
- 0x601C0008, // 00D3 GETGBL R7 G8
- 0x5C200800, // 00D4 MOVE R8 R4
- 0x7C1C0200, // 00D5 CALL R7 1
- 0x001E4C07, // 00D6 ADD R7 K38 R7
- 0x001C0F27, // 00D7 ADD R7 R7 K39
- 0x60200008, // 00D8 GETGBL R8 G8
- 0x5C240A00, // 00D9 MOVE R9 R5
- 0x7C200200, // 00DA CALL R8 1
- 0x001C0E08, // 00DB ADD R7 R7 R8
- 0x5820001A, // 00DC LDCONST R8 K26
- 0x7C180400, // 00DD CALL R6 2
- 0x70020000, // 00DE JMP #00E0
- 0xB0080000, // 00DF RAISE 2 R0 R0
- 0x80000000, // 00E0 RET 0
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
})
)
);
@@ -667,271 +464,58 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
/********************************************************************
-** Solidified function: conf_to_log
+** Solidified function: get_active_endpoints
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_conf_to_log, /* name */
+be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
be_nested_proto(
9, /* nstack */
- 1, /* argc */
- 4, /* varg */
+ 2, /* argc */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(),
- /* K2 */ be_nested_str_weak(k2l),
- /* K3 */ be_nested_str_weak(type),
- /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
+ /* K0 */ be_nested_str_weak(plugins),
+ /* K1 */ be_nested_str_weak(get_endpoint),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(push),
/* K5 */ be_nested_str_weak(stop_iteration),
}),
- be_str_weak(conf_to_log),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x58080001, // 0001 LDCONST R2 K1
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100302, // 0003 GETMET R4 R1 K2
- 0x5C180000, // 0004 MOVE R6 R0
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA802000B, // 0007 EXBLK 0 #0014
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x1C140903, // 000A EQ R5 R4 K3
- 0x78160000, // 000B JMPF R5 #000D
- 0x7001FFFA, // 000C JMP #0008
- 0x60140018, // 000D GETGBL R5 G24
- 0x58180004, // 000E LDCONST R6 K4
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x94200004, // 0010 GETIDX R8 R0 R4
- 0x7C140600, // 0011 CALL R5 3
- 0x00080405, // 0012 ADD R2 R2 R5
- 0x7001FFF3, // 0013 JMP #0008
- 0x580C0005, // 0014 LDCONST R3 K5
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x80040400, // 0017 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: generate_random_passcode
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(random),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(134217727),
- /* K5 */ be_const_int(99999998),
- /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
- /* K7 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(generate_random_passcode),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x780E001D, // 0003 JMPF R3 #0022
- 0x8C0C0301, // 0004 GETMET R3 R1 K1
- 0x54160003, // 0005 LDINT R5 4
- 0x7C0C0400, // 0006 CALL R3 2
- 0x8C0C0702, // 0007 GETMET R3 R3 K2
- 0x58140003, // 0008 LDCONST R5 K3
- 0x541A0003, // 0009 LDINT R6 4
- 0x7C0C0600, // 000A CALL R3 3
- 0x2C0C0704, // 000B AND R3 R3 K4
- 0x5C080600, // 000C MOVE R2 R3
- 0x240C0505, // 000D GT R3 R2 K5
- 0x780E0000, // 000E JMPF R3 #0010
- 0x7001FFF1, // 000F JMP #0002
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100106, // 0011 GETMBR R4 R0 K6
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA8020005, // 0013 EXBLK 0 #001A
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x1C140404, // 0016 EQ R5 R2 R4
- 0x78160000, // 0017 JMPF R5 #0019
- 0x4C080000, // 0018 LDNIL R2
- 0x7001FFF9, // 0019 JMP #0014
- 0x580C0007, // 001A LDCONST R3 K7
- 0xAC0C0200, // 001B CATCH R3 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x4C0C0000, // 001D LDNIL R3
- 0x200C0403, // 001E NE R3 R2 R3
- 0x780E0000, // 001F JMPF R3 #0021
- 0x80040400, // 0020 RET 1 R2
- 0x7001FFDF, // 0021 JMP #0002
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: event_fabrics_saved
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(event_fabrics_saved),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x24040302, // 0003 GT R1 R1 K2
- 0x78060005, // 0004 JMPF R1 #000B
- 0x88040103, // 0005 GETMBR R1 R0 K3
- 0x74060003, // 0006 JMPT R1 #000B
- 0x50040200, // 0007 LDBOOL R1 1 0
- 0x90020601, // 0008 SETMBR R0 K3 R1
- 0x8C040104, // 0009 GETMET R1 R0 K4
- 0x7C040200, // 000A CALL R1 1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_expansion
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
- be_nested_proto(
- 12, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(PathGenerator),
- /* K5 */ be_nested_str_weak(start),
- /* K6 */ be_nested_str_weak(is_direct),
- /* K7 */ be_nested_str_weak(next_attribute),
- /* K8 */ be_nested_str_weak(get_pi),
- }),
- be_str_weak(process_attribute_expansion),
+ be_str_weak(get_active_endpoints),
&be_const_str_solidified,
( &(const binstruction[28]) { /* code */
- 0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x88100301, // 0001 GETMBR R4 R1 K1
- 0x88140302, // 0002 GETMBR R5 R1 K2
- 0xB81A0600, // 0003 GETNGBL R6 K3
- 0x8C180D04, // 0004 GETMET R6 R6 K4
- 0x5C200000, // 0005 MOVE R8 R0
- 0x7C180400, // 0006 CALL R6 2
- 0x8C1C0D05, // 0007 GETMET R7 R6 K5
- 0x5C240600, // 0008 MOVE R9 R3
- 0x5C280800, // 0009 MOVE R10 R4
- 0x5C2C0A00, // 000A MOVE R11 R5
- 0x7C1C0800, // 000B CALL R7 4
- 0x8C1C0D06, // 000C GETMET R7 R6 K6
- 0x7C1C0200, // 000D CALL R7 1
- 0x4C200000, // 000E LDNIL R8
- 0x8C240D07, // 000F GETMET R9 R6 K7
- 0x7C240200, // 0010 CALL R9 1
- 0x5C201200, // 0011 MOVE R8 R9
- 0x4C280000, // 0012 LDNIL R10
- 0x2024120A, // 0013 NE R9 R9 R10
- 0x78260005, // 0014 JMPF R9 #001B
- 0x5C240400, // 0015 MOVE R9 R2
- 0x8C280D08, // 0016 GETMET R10 R6 K8
- 0x7C280200, // 0017 CALL R10 1
- 0x5C2C1000, // 0018 MOVE R11 R8
- 0x7C240400, // 0019 CALL R9 2
- 0x7001FFF3, // 001A JMP #000F
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_250ms
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_250ms, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(read_sensors_scheduler),
- /* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(plugins),
- /* K3 */ be_nested_str_weak(every_250ms),
- /* K4 */ be_const_int(1),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x58040001, // 0002 LDCONST R1 K1
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x880C0102, // 0004 GETMBR R3 R0 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x14080202, // 0006 LT R2 R1 R2
- 0x780A0005, // 0007 JMPF R2 #000E
- 0x88080102, // 0008 GETMBR R2 R0 K2
- 0x94080401, // 0009 GETIDX R2 R2 R1
- 0x8C080503, // 000A GETMET R2 R2 K3
- 0x7C080200, // 000B CALL R2 1
- 0x00040304, // 000C ADD R1 R1 K4
- 0x7001FFF4, // 000D JMP #0003
- 0x80000000, // 000E RET 0
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x88100100, // 0003 GETMBR R4 R0 K0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0xA8020011, // 0005 EXBLK 0 #0018
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x7C100000, // 0007 CALL R4 0
+ 0x8C140901, // 0008 GETMET R5 R4 K1
+ 0x7C140200, // 0009 CALL R5 1
+ 0x78060002, // 000A JMPF R1 #000E
+ 0x1C180B02, // 000B EQ R6 R5 K2
+ 0x781A0000, // 000C JMPF R6 #000E
+ 0x7001FFF7, // 000D JMP #0006
+ 0x8C180503, // 000E GETMET R6 R2 K3
+ 0x5C200A00, // 000F MOVE R8 R5
+ 0x7C180400, // 0010 CALL R6 2
+ 0x4C1C0000, // 0011 LDNIL R7
+ 0x1C180C07, // 0012 EQ R6 R6 R7
+ 0x781A0002, // 0013 JMPF R6 #0017
+ 0x8C180504, // 0014 GETMET R6 R2 K4
+ 0x5C200A00, // 0015 MOVE R8 R5
+ 0x7C180400, // 0016 CALL R6 2
+ 0x7001FFED, // 0017 JMP #0006
+ 0x580C0005, // 0018 LDCONST R3 K5
+ 0xAC0C0200, // 0019 CATCH R3 1 0
+ 0xB0080000, // 001A RAISE 2 R0 R0
+ 0x80040400, // 001B RET 1 R2
})
)
);
@@ -995,87 +579,6 @@ be_local_closure(class_Matter_Device_invoke_request, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: k2l
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(k2l),
- &be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020005, // 000B EXBLK 0 #0012
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x7C140400, // 0010 CALL R5 2
- 0x7001FFF9, // 0011 JMP #000C
- 0x580C0003, // 0012 LDCONST R3 K3
- 0xAC0C0200, // 0013 CATCH R3 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x600C0010, // 0015 GETGBL R3 G16
- 0x6010000C, // 0016 GETGBL R4 G12
- 0x5C140400, // 0017 MOVE R5 R2
- 0x7C100200, // 0018 CALL R4 1
- 0x04100904, // 0019 SUB R4 R4 K4
- 0x40120804, // 001A CONNECT R4 K4 R4
- 0x7C0C0200, // 001B CALL R3 1
- 0xA8020010, // 001C EXBLK 0 #002E
- 0x5C100600, // 001D MOVE R4 R3
- 0x7C100000, // 001E CALL R4 0
- 0x94140404, // 001F GETIDX R5 R2 R4
- 0x5C180800, // 0020 MOVE R6 R4
- 0x241C0D05, // 0021 GT R7 R6 K5
- 0x781E0008, // 0022 JMPF R7 #002C
- 0x041C0D04, // 0023 SUB R7 R6 K4
- 0x941C0407, // 0024 GETIDX R7 R2 R7
- 0x241C0E05, // 0025 GT R7 R7 R5
- 0x781E0004, // 0026 JMPF R7 #002C
- 0x041C0D04, // 0027 SUB R7 R6 K4
- 0x941C0407, // 0028 GETIDX R7 R2 R7
- 0x98080C07, // 0029 SETIDX R2 R6 R7
- 0x04180D04, // 002A SUB R6 R6 K4
- 0x7001FFF4, // 002B JMP #0021
- 0x98080C05, // 002C SETIDX R2 R6 R5
- 0x7001FFEE, // 002D JMP #001D
- 0x580C0003, // 002E LDCONST R3 K3
- 0xAC0C0200, // 002F CATCH R3 1 0
- 0xB0080000, // 0030 RAISE 2 R0 R0
- 0x80040400, // 0031 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: _instantiate_plugins_from_config
********************************************************************/
@@ -1279,12 +782,12 @@ be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name
/********************************************************************
-** Solidified function: add_read_sensors_schedule
+** Solidified function: start_operational_discovery
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
+be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
be_nested_proto(
- 5, /* nstack */
+ 7, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1293,27 +796,581 @@ be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(jitter),
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(mdns),
+ /* K2 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K3 */ be_nested_str_weak(mdns_announce_op_discovery),
}),
- be_str_weak(add_read_sensors_schedule),
+ be_str_weak(start_operational_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0x8C100102, // 0002 GETMET R4 R0 K2
+ 0x7C100200, // 0003 CALL R4 1
+ 0x8C100103, // 0004 GETMET R4 R0 K3
+ 0x5C180200, // 0005 MOVE R6 R1
+ 0x7C100400, // 0006 CALL R4 2
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _mdns_announce_hostname
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(string),
+ /* K2 */ be_nested_str_weak(start),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(eth),
+ /* K5 */ be_nested_str_weak(hostname_eth),
+ /* K6 */ be_nested_str_weak(replace),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(mac),
+ /* K9 */ be_nested_str_weak(_X3A),
+ /* K10 */ be_nested_str_weak(),
+ /* K11 */ be_nested_str_weak(ipv4only),
+ /* K12 */ be_nested_str_weak(contains),
+ /* K13 */ be_nested_str_weak(ip6local),
+ /* K14 */ be_nested_str_weak(add_hostname),
+ /* K15 */ be_nested_str_weak(ip),
+ /* K16 */ be_nested_str_weak(ip6),
+ /* K17 */ be_nested_str_weak(log),
+ /* K18 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eadd_hostname_X28_X25s_X2C_X20_X25s_X29),
+ /* K19 */ be_const_int(3),
+ /* K20 */ be_nested_str_weak(wifi),
+ /* K21 */ be_nested_str_weak(hostname_wifi),
+ /* K22 */ be_nested_str_weak(MTR_X3A_X20start_X20mDNS_X20on_X20_X25s_X20host_X20_X27_X25s_X2Elocal_X27),
+ /* K23 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K24 */ be_nested_str_weak(_X7C),
+ /* K25 */ be_const_int(2),
+ /* K26 */ be_nested_str_weak(mdns_announce_op_discovery_all_fabrics),
+ }),
+ be_str_weak(_mdns_announce_hostname),
+ &be_const_str_solidified,
+ ( &(const binstruction[144]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0x8C100502, // 0002 GETMET R4 R2 K2
+ 0x7C100200, // 0003 CALL R4 1
+ 0xA8020077, // 0004 EXBLK 0 #007D
+ 0x78060033, // 0005 JMPF R1 #003A
+ 0xB8120600, // 0006 GETNGBL R4 K3
+ 0x8C100904, // 0007 GETMET R4 R4 K4
+ 0x7C100200, // 0008 CALL R4 1
+ 0x8C140706, // 0009 GETMET R5 R3 K6
+ 0x8C1C0907, // 000A GETMET R7 R4 K7
+ 0x58240008, // 000B LDCONST R9 K8
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x58200009, // 000D LDCONST R8 K9
+ 0x5824000A, // 000E LDCONST R9 K10
+ 0x7C140800, // 000F CALL R5 4
+ 0x90020A05, // 0010 SETMBR R0 K5 R5
+ 0x8814010B, // 0011 GETMBR R5 R0 K11
+ 0x78160003, // 0012 JMPF R5 #0017
+ 0x8C14090C, // 0013 GETMET R5 R4 K12
+ 0x581C000D, // 0014 LDCONST R7 K13
+ 0x7C140400, // 0015 CALL R5 2
+ 0x7416000F, // 0016 JMPT R5 #0027
+ 0x8C14050E, // 0017 GETMET R5 R2 K14
+ 0x881C0105, // 0018 GETMBR R7 R0 K5
+ 0x8C200907, // 0019 GETMET R8 R4 K7
+ 0x5828000D, // 001A LDCONST R10 K13
+ 0x582C000A, // 001B LDCONST R11 K10
+ 0x7C200600, // 001C CALL R8 3
+ 0x8C240907, // 001D GETMET R9 R4 K7
+ 0x582C000F, // 001E LDCONST R11 K15
+ 0x5830000A, // 001F LDCONST R12 K10
+ 0x7C240600, // 0020 CALL R9 3
+ 0x8C280907, // 0021 GETMET R10 R4 K7
+ 0x58300010, // 0022 LDCONST R12 K16
+ 0x5834000A, // 0023 LDCONST R13 K10
+ 0x7C280600, // 0024 CALL R10 3
+ 0x7C140A00, // 0025 CALL R5 5
+ 0x70020011, // 0026 JMP #0039
+ 0xB8162200, // 0027 GETNGBL R5 K17
+ 0x60180018, // 0028 GETGBL R6 G24
+ 0x581C0012, // 0029 LDCONST R7 K18
+ 0x88200105, // 002A GETMBR R8 R0 K5
+ 0x8C240907, // 002B GETMET R9 R4 K7
+ 0x582C000F, // 002C LDCONST R11 K15
+ 0x5830000A, // 002D LDCONST R12 K10
+ 0x7C240600, // 002E CALL R9 3
+ 0x7C180600, // 002F CALL R6 3
+ 0x581C0013, // 0030 LDCONST R7 K19
+ 0x7C140400, // 0031 CALL R5 2
+ 0x8C14050E, // 0032 GETMET R5 R2 K14
+ 0x881C0105, // 0033 GETMBR R7 R0 K5
+ 0x8C200907, // 0034 GETMET R8 R4 K7
+ 0x5828000F, // 0035 LDCONST R10 K15
+ 0x582C000A, // 0036 LDCONST R11 K10
+ 0x7C200600, // 0037 CALL R8 3
+ 0x7C140600, // 0038 CALL R5 3
+ 0x70020032, // 0039 JMP #006D
+ 0xB8120600, // 003A GETNGBL R4 K3
+ 0x8C100914, // 003B GETMET R4 R4 K20
+ 0x7C100200, // 003C CALL R4 1
+ 0x8C140706, // 003D GETMET R5 R3 K6
+ 0x8C1C0907, // 003E GETMET R7 R4 K7
+ 0x58240008, // 003F LDCONST R9 K8
+ 0x7C1C0400, // 0040 CALL R7 2
+ 0x58200009, // 0041 LDCONST R8 K9
+ 0x5824000A, // 0042 LDCONST R9 K10
+ 0x7C140800, // 0043 CALL R5 4
+ 0x90022A05, // 0044 SETMBR R0 K21 R5
+ 0x8814010B, // 0045 GETMBR R5 R0 K11
+ 0x78160003, // 0046 JMPF R5 #004B
+ 0x8C14090C, // 0047 GETMET R5 R4 K12
+ 0x581C000D, // 0048 LDCONST R7 K13
+ 0x7C140400, // 0049 CALL R5 2
+ 0x7416000F, // 004A JMPT R5 #005B
+ 0x8C14050E, // 004B GETMET R5 R2 K14
+ 0x881C0115, // 004C GETMBR R7 R0 K21
+ 0x8C200907, // 004D GETMET R8 R4 K7
+ 0x5828000D, // 004E LDCONST R10 K13
+ 0x582C000A, // 004F LDCONST R11 K10
+ 0x7C200600, // 0050 CALL R8 3
+ 0x8C240907, // 0051 GETMET R9 R4 K7
+ 0x582C000F, // 0052 LDCONST R11 K15
+ 0x5830000A, // 0053 LDCONST R12 K10
+ 0x7C240600, // 0054 CALL R9 3
+ 0x8C280907, // 0055 GETMET R10 R4 K7
+ 0x58300010, // 0056 LDCONST R12 K16
+ 0x5834000A, // 0057 LDCONST R13 K10
+ 0x7C280600, // 0058 CALL R10 3
+ 0x7C140A00, // 0059 CALL R5 5
+ 0x70020011, // 005A JMP #006D
+ 0xB8162200, // 005B GETNGBL R5 K17
+ 0x60180018, // 005C GETGBL R6 G24
+ 0x581C0012, // 005D LDCONST R7 K18
+ 0x88200115, // 005E GETMBR R8 R0 K21
+ 0x8C240907, // 005F GETMET R9 R4 K7
+ 0x582C000F, // 0060 LDCONST R11 K15
+ 0x5830000A, // 0061 LDCONST R12 K10
+ 0x7C240600, // 0062 CALL R9 3
+ 0x7C180600, // 0063 CALL R6 3
+ 0x581C0013, // 0064 LDCONST R7 K19
+ 0x7C140400, // 0065 CALL R5 2
+ 0x8C14050E, // 0066 GETMET R5 R2 K14
+ 0x881C0115, // 0067 GETMBR R7 R0 K21
+ 0x8C200907, // 0068 GETMET R8 R4 K7
+ 0x5828000F, // 0069 LDCONST R10 K15
+ 0x582C000A, // 006A LDCONST R11 K10
+ 0x7C200600, // 006B CALL R8 3
+ 0x7C140600, // 006C CALL R5 3
+ 0xB8122200, // 006D GETNGBL R4 K17
+ 0x60140018, // 006E GETGBL R5 G24
+ 0x58180016, // 006F LDCONST R6 K22
+ 0x78060001, // 0070 JMPF R1 #0073
+ 0x581C0004, // 0071 LDCONST R7 K4
+ 0x70020000, // 0072 JMP #0074
+ 0x581C0014, // 0073 LDCONST R7 K20
+ 0x78060001, // 0074 JMPF R1 #0077
+ 0x88200105, // 0075 GETMBR R8 R0 K5
+ 0x70020000, // 0076 JMP #0078
+ 0x88200115, // 0077 GETMBR R8 R0 K21
+ 0x7C140600, // 0078 CALL R5 3
+ 0x58180013, // 0079 LDCONST R6 K19
+ 0x7C100400, // 007A CALL R4 2
+ 0xA8040001, // 007B EXBLK 1 1
+ 0x7002000F, // 007C JMP #008D
+ 0xAC100002, // 007D CATCH R4 0 2
+ 0x7002000C, // 007E JMP #008C
+ 0xB81A2200, // 007F GETNGBL R6 K17
+ 0x601C0008, // 0080 GETGBL R7 G8
+ 0x5C200800, // 0081 MOVE R8 R4
+ 0x7C1C0200, // 0082 CALL R7 1
+ 0x001E2E07, // 0083 ADD R7 K23 R7
+ 0x001C0F18, // 0084 ADD R7 R7 K24
+ 0x60200008, // 0085 GETGBL R8 G8
+ 0x5C240A00, // 0086 MOVE R9 R5
+ 0x7C200200, // 0087 CALL R8 1
+ 0x001C0E08, // 0088 ADD R7 R7 R8
+ 0x58200019, // 0089 LDCONST R8 K25
+ 0x7C180400, // 008A CALL R6 2
+ 0x70020000, // 008B JMP #008D
+ 0xB0080000, // 008C RAISE 2 R0 R0
+ 0x8C10011A, // 008D GETMET R4 R0 K26
+ 0x7C100200, // 008E CALL R4 1
+ 0x80000000, // 008F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_remove_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins_config),
+ /* K2 */ be_nested_str_weak(contains),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(plugins_persist),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(get_endpoint),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(clean_remotes),
+ /* K15 */ be_nested_str_weak(save_param),
+ /* K16 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_remove_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[56]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x600C0008, // 0001 GETGBL R3 G8
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x4C100000, // 0004 LDNIL R4
+ 0x4C140000, // 0005 LDNIL R5
+ 0x88180101, // 0006 GETMBR R6 R0 K1
+ 0x8C180D02, // 0007 GETMET R6 R6 K2
+ 0x5C200600, // 0008 MOVE R8 R3
+ 0x7C180400, // 0009 CALL R6 2
+ 0x741A0004, // 000A JMPT R6 #0010
+ 0xB81A0600, // 000B GETNGBL R6 K3
+ 0x001E0803, // 000C ADD R7 K4 R3
+ 0x58200005, // 000D LDCONST R8 K5
+ 0x7C180400, // 000E CALL R6 2
+ 0x80000C00, // 000F RET 0
+ 0xB81A0600, // 0010 GETNGBL R6 K3
+ 0x601C0018, // 0011 GETGBL R7 G24
+ 0x58200006, // 0012 LDCONST R8 K6
+ 0x5C240200, // 0013 MOVE R9 R1
+ 0x7C1C0400, // 0014 CALL R7 2
+ 0x58200007, // 0015 LDCONST R8 K7
+ 0x7C180400, // 0016 CALL R6 2
+ 0x88180101, // 0017 GETMBR R6 R0 K1
+ 0x8C180D08, // 0018 GETMET R6 R6 K8
+ 0x5C200600, // 0019 MOVE R8 R3
+ 0x7C180400, // 001A CALL R6 2
+ 0x50180200, // 001B LDBOOL R6 1 0
+ 0x90021206, // 001C SETMBR R0 K9 R6
+ 0x5818000A, // 001D LDCONST R6 K10
+ 0x601C000C, // 001E GETGBL R7 G12
+ 0x8820010B, // 001F GETMBR R8 R0 K11
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x141C0C07, // 0021 LT R7 R6 R7
+ 0x781E000D, // 0022 JMPF R7 #0031
+ 0x881C010B, // 0023 GETMBR R7 R0 K11
+ 0x941C0E06, // 0024 GETIDX R7 R7 R6
+ 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x1C1C0207, // 0027 EQ R7 R1 R7
+ 0x781E0005, // 0028 JMPF R7 #002F
+ 0x881C010B, // 0029 GETMBR R7 R0 K11
+ 0x8C1C0F08, // 002A GETMET R7 R7 K8
+ 0x5C240C00, // 002B MOVE R9 R6
+ 0x7C1C0400, // 002C CALL R7 2
+ 0x70020002, // 002D JMP #0031
+ 0x70020000, // 002E JMP #0030
+ 0x00180D0D, // 002F ADD R6 R6 K13
+ 0x7001FFEC, // 0030 JMP #001E
+ 0x8C1C010E, // 0031 GETMET R7 R0 K14
+ 0x7C1C0200, // 0032 CALL R7 1
+ 0x8C1C010F, // 0033 GETMET R7 R0 K15
+ 0x7C1C0200, // 0034 CALL R7 1
+ 0x8C1C0110, // 0035 GETMET R7 R0 K16
+ 0x7C1C0200, // 0036 CALL R7 1
+ 0x80000000, // 0037 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_mdns_announce_hostnames
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080000, // 0002 LDBOOL R2 0 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(wifi),
+ /* K2 */ be_nested_str_weak(up),
+ /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K4 */ be_nested_str_weak(add_rule),
+ /* K5 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K6 */ be_nested_str_weak(matter_mdns_host),
+ /* K7 */ be_nested_str_weak(eth),
+ /* K8 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_mdns_announce_hostnames),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x94040302, // 0003 GETIDX R1 R1 K2
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x500C0000, // 0006 LDBOOL R3 0 0
+ 0x7C040400, // 0007 CALL R1 2
+ 0x70020005, // 0008 JMP #000F
+ 0xB8060000, // 0009 GETNGBL R1 K0
+ 0x8C040304, // 000A GETMET R1 R1 K4
+ 0x580C0005, // 000B LDCONST R3 K5
+ 0x84100000, // 000C CLOSURE R4 P0
+ 0x58140006, // 000D LDCONST R5 K6
+ 0x7C040800, // 000E CALL R1 4
+ 0xB8060000, // 000F GETNGBL R1 K0
+ 0x8C040307, // 0010 GETMET R1 R1 K7
+ 0x7C040200, // 0011 CALL R1 1
+ 0x94040302, // 0012 GETIDX R1 R1 K2
+ 0x78060003, // 0013 JMPF R1 #0018
+ 0x8C040103, // 0014 GETMET R1 R0 K3
+ 0x500C0200, // 0015 LDBOOL R3 1 0
+ 0x7C040400, // 0016 CALL R1 2
+ 0x70020005, // 0017 JMP #001E
+ 0xB8060000, // 0018 GETNGBL R1 K0
+ 0x8C040304, // 0019 GETMET R1 R1 K4
+ 0x580C0008, // 001A LDCONST R3 K8
+ 0x84100001, // 001B CLOSURE R4 P1
+ 0x58140006, // 001C LDCONST R5 K6
+ 0x7C040800, // 001D CALL R1 4
+ 0xA0000000, // 001E CLOSE R0
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _start_udp
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__start_udp, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x7C0C0800, // 0005 CALL R3 4
+ 0x80040600, // 0006 RET 1 R3
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(UDPServer),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(start),
+ }),
+ be_str_weak(_start_udp),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80000400, // 0002 RET 0
+ 0x4C080000, // 0003 LDNIL R2
+ 0x1C080202, // 0004 EQ R2 R1 R2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x540615A3, // 0006 LDINT R1 5540
+ 0xB80A0200, // 0007 GETNGBL R2 K1
+ 0x600C0008, // 0008 GETGBL R3 G8
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x000E0403, // 000B ADD R3 K2 R3
+ 0x58100003, // 000C LDCONST R4 K3
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0800, // 000E GETNGBL R2 K4
+ 0x8C080505, // 000F GETMET R2 R2 K5
+ 0x5C100000, // 0010 MOVE R4 R0
+ 0x58140006, // 0011 LDCONST R5 K6
+ 0x5C180200, // 0012 MOVE R6 R1
+ 0x7C080800, // 0013 CALL R2 4
+ 0x90020002, // 0014 SETMBR R0 K0 R2
+ 0x88080100, // 0015 GETMBR R2 R0 K0
+ 0x8C080507, // 0016 GETMET R2 R2 K7
+ 0x84100000, // 0017 CLOSURE R4 P0
+ 0x7C080400, // 0018 CALL R2 2
+ 0xA0000000, // 0019 CLOSE R0
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: signal_endpoints_changed
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(attribute_updated),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ }),
+ be_str_weak(signal_endpoints_changed),
&be_const_str_solidified,
( &(const binstruction[14]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x1C080403, // 0002 EQ R2 R2 R3
- 0x740A0002, // 0003 JMPT R2 #0007
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x24080401, // 0005 GT R2 R2 R1
- 0x780A0005, // 0006 JMPF R2 #000D
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0xB80A0400, // 0008 GETNGBL R2 K2
- 0x8C080503, // 0009 GETMET R2 R2 K3
- 0x5C100200, // 000A MOVE R4 R1
- 0x7C080400, // 000B CALL R2 2
- 0x90020202, // 000C SETMBR R0 K1 R2
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x580C0001, // 0001 LDCONST R3 K1
+ 0x5412001C, // 0002 LDINT R4 29
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x50180000, // 0004 LDBOOL R6 0 0
+ 0x7C040A00, // 0005 CALL R1 5
+ 0x8C040100, // 0006 GETMET R1 R0 K0
+ 0xB80E0600, // 0007 GETNGBL R3 K3
+ 0x880C0704, // 0008 GETMBR R3 R3 K4
+ 0x5412001C, // 0009 LDINT R4 29
+ 0x58140002, // 000A LDCONST R5 K2
+ 0x50180000, // 000B LDBOOL R6 0 0
+ 0x7C040A00, // 000C CALL R1 5
0x80000000, // 000D RET 0
})
)
@@ -1322,10 +1379,146 @@ be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
/********************************************************************
-** Solidified function: remove_fabric
+** Solidified function: sort_distinct
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_remove_fabric, /* name */
+be_local_closure(class_Matter_Device_sort_distinct, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(sort_distinct),
+ &be_const_str_solidified,
+ ( &(const binstruction[53]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080010, // 0001 GETGBL R2 G16
+ 0x600C000C, // 0002 GETGBL R3 G12
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x040C0701, // 0005 SUB R3 R3 K1
+ 0x400E0203, // 0006 CONNECT R3 K1 R3
+ 0x7C080200, // 0007 CALL R2 1
+ 0xA8020010, // 0008 EXBLK 0 #001A
+ 0x5C0C0400, // 0009 MOVE R3 R2
+ 0x7C0C0000, // 000A CALL R3 0
+ 0x94100003, // 000B GETIDX R4 R0 R3
+ 0x5C140600, // 000C MOVE R5 R3
+ 0x24180B02, // 000D GT R6 R5 K2
+ 0x781A0008, // 000E JMPF R6 #0018
+ 0x04180B01, // 000F SUB R6 R5 K1
+ 0x94180006, // 0010 GETIDX R6 R0 R6
+ 0x24180C04, // 0011 GT R6 R6 R4
+ 0x781A0004, // 0012 JMPF R6 #0018
+ 0x04180B01, // 0013 SUB R6 R5 K1
+ 0x94180006, // 0014 GETIDX R6 R0 R6
+ 0x98000A06, // 0015 SETIDX R0 R5 R6
+ 0x04140B01, // 0016 SUB R5 R5 K1
+ 0x7001FFF4, // 0017 JMP #000D
+ 0x98000A04, // 0018 SETIDX R0 R5 R4
+ 0x7001FFEE, // 0019 JMP #0009
+ 0x58080003, // 001A LDCONST R2 K3
+ 0xAC080200, // 001B CATCH R2 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x58080001, // 001D LDCONST R2 K1
+ 0x600C000C, // 001E GETGBL R3 G12
+ 0x5C100000, // 001F MOVE R4 R0
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x180C0701, // 0021 LE R3 R3 K1
+ 0x780E0000, // 0022 JMPF R3 #0024
+ 0x80040000, // 0023 RET 1 R0
+ 0x940C0102, // 0024 GETIDX R3 R0 K2
+ 0x6010000C, // 0025 GETGBL R4 G12
+ 0x5C140000, // 0026 MOVE R5 R0
+ 0x7C100200, // 0027 CALL R4 1
+ 0x14100404, // 0028 LT R4 R2 R4
+ 0x78120009, // 0029 JMPF R4 #0034
+ 0x94100002, // 002A GETIDX R4 R0 R2
+ 0x1C100803, // 002B EQ R4 R4 R3
+ 0x78120003, // 002C JMPF R4 #0031
+ 0x8C100104, // 002D GETMET R4 R0 K4
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x70020001, // 0030 JMP #0033
+ 0x940C0002, // 0031 GETIDX R3 R0 R2
+ 0x00080501, // 0032 ADD R2 R2 K1
+ 0x7001FFF0, // 0033 JMP #0025
+ 0x80040000, // 0034 RET 1 R0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: received_ack
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_received_ack, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -1335,58 +1528,327 @@ be_local_closure(class_Matter_Device_remove_fabric, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
- /* K2 */ be_nested_str_weak(get_fabric_id),
- /* K3 */ be_nested_str_weak(copy),
- /* K4 */ be_nested_str_weak(reverse),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(message_handler),
- /* K8 */ be_nested_str_weak(im),
- /* K9 */ be_nested_str_weak(subs_shop),
- /* K10 */ be_nested_str_weak(remove_by_fabric),
- /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(remove_fabric),
- /* K14 */ be_nested_str_weak(save_fabrics),
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(received_ack),
}),
- be_str_weak(remove_fabric),
+ be_str_weak(received_ack),
&be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0018, // 0002 JMPF R2 #001C
- 0xB80A0000, // 0003 GETNGBL R2 K0
- 0x8C0C0302, // 0004 GETMET R3 R1 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C0C0705, // 000A GETMET R3 R3 K5
- 0x7C0C0200, // 000B CALL R3 1
- 0x000E0203, // 000C ADD R3 K1 R3
- 0x58100006, // 000D LDCONST R4 K6
- 0x7C080400, // 000E CALL R2 2
- 0x88080107, // 000F GETMBR R2 R0 K7
- 0x88080508, // 0010 GETMBR R2 R2 K8
- 0x88080509, // 0011 GETMBR R2 R2 K9
- 0x8C08050A, // 0012 GETMET R2 R2 K10
- 0x5C100200, // 0013 MOVE R4 R1
- 0x7C080400, // 0014 CALL R2 2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x5C100200, // 0016 MOVE R4 R1
- 0x7C080400, // 0017 CALL R2 2
- 0x8808010C, // 0018 GETMBR R2 R0 K12
- 0x8C08050D, // 0019 GETMET R2 R2 K13
- 0x5C100200, // 001A MOVE R4 R1
- 0x7C080400, // 001B CALL R2 2
- 0x8808010C, // 001C GETMBR R2 R0 K12
- 0x8C08050E, // 001D GETMET R2 R2 K14
- 0x7C080200, // 001E CALL R2 1
- 0x80000000, // 001F RET 0
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: resolve_attribute_read_solo
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K4 */ be_nested_str_weak(status),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K7 */ be_nested_str_weak(contains_cluster),
+ /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K9 */ be_nested_str_weak(contains_attribute),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
+ }),
+ be_str_weak(resolve_attribute_read_solo),
+ &be_const_str_solidified,
+ ( &(const binstruction[47]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0x88100302, // 0002 GETMBR R4 R1 K2
+ 0x4C140000, // 0003 LDNIL R5
+ 0x1C140405, // 0004 EQ R5 R2 R5
+ 0x74160005, // 0005 JMPT R5 #000C
+ 0x4C140000, // 0006 LDNIL R5
+ 0x1C140605, // 0007 EQ R5 R3 R5
+ 0x74160002, // 0008 JMPT R5 #000C
+ 0x4C140000, // 0009 LDNIL R5
+ 0x1C140805, // 000A EQ R5 R4 R5
+ 0x78160001, // 000B JMPF R5 #000E
+ 0x4C140000, // 000C LDNIL R5
+ 0x80040A00, // 000D RET 1 R5
+ 0x8C140103, // 000E GETMET R5 R0 K3
+ 0x5C1C0400, // 000F MOVE R7 R2
+ 0x7C140400, // 0010 CALL R5 2
+ 0x4C180000, // 0011 LDNIL R6
+ 0x1C180A06, // 0012 EQ R6 R5 R6
+ 0x781A0005, // 0013 JMPF R6 #001A
+ 0xB81A0A00, // 0014 GETNGBL R6 K5
+ 0x88180D06, // 0015 GETMBR R6 R6 K6
+ 0x90060806, // 0016 SETMBR R1 K4 R6
+ 0x4C180000, // 0017 LDNIL R6
+ 0x80040C00, // 0018 RET 1 R6
+ 0x70020013, // 0019 JMP #002E
+ 0x8C180B07, // 001A GETMET R6 R5 K7
+ 0x5C200600, // 001B MOVE R8 R3
+ 0x7C180400, // 001C CALL R6 2
+ 0x741A0005, // 001D JMPT R6 #0024
+ 0xB81A0A00, // 001E GETNGBL R6 K5
+ 0x88180D08, // 001F GETMBR R6 R6 K8
+ 0x90060806, // 0020 SETMBR R1 K4 R6
+ 0x4C180000, // 0021 LDNIL R6
+ 0x80040C00, // 0022 RET 1 R6
+ 0x70020009, // 0023 JMP #002E
+ 0x8C180B09, // 0024 GETMET R6 R5 K9
+ 0x5C200600, // 0025 MOVE R8 R3
+ 0x5C240800, // 0026 MOVE R9 R4
+ 0x7C180600, // 0027 CALL R6 3
+ 0x741A0004, // 0028 JMPT R6 #002E
+ 0xB81A0A00, // 0029 GETNGBL R6 K5
+ 0x88180D0A, // 002A GETMBR R6 R6 K10
+ 0x90060806, // 002B SETMBR R1 K4 R6
+ 0x4C180000, // 002C LDNIL R6
+ 0x80040C00, // 002D RET 1 R6
+ 0x80040A00, // 002E RET 1 R5
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_http_remote
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_http_remote, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(get_timeout),
+ /* K3 */ be_nested_str_weak(set_timeout),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(HTTP_remote),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(set_info),
+ }),
+ be_str_weak(register_http_remote),
+ &be_const_str_solidified,
+ ( &(const binstruction[42]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x1C0C0604, // 0002 EQ R3 R3 R4
+ 0x780E0002, // 0003 JMPF R3 #0007
+ 0x600C0013, // 0004 GETGBL R3 G19
+ 0x7C0C0000, // 0005 CALL R3 0
+ 0x90020003, // 0006 SETMBR R0 K0 R3
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x88100100, // 0008 GETMBR R4 R0 K0
+ 0x8C100901, // 0009 GETMET R4 R4 K1
+ 0x5C180200, // 000A MOVE R6 R1
+ 0x7C100400, // 000B CALL R4 2
+ 0x78120009, // 000C JMPF R4 #0017
+ 0x88100100, // 000D GETMBR R4 R0 K0
+ 0x940C0801, // 000E GETIDX R3 R4 R1
+ 0x8C140702, // 000F GETMET R5 R3 K2
+ 0x7C140200, // 0010 CALL R5 1
+ 0x14140405, // 0011 LT R5 R2 R5
+ 0x78160002, // 0012 JMPF R5 #0016
+ 0x8C140703, // 0013 GETMET R5 R3 K3
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x7C140400, // 0015 CALL R5 2
+ 0x70020011, // 0016 JMP #0029
+ 0xB8120800, // 0017 GETNGBL R4 K4
+ 0x8C100905, // 0018 GETMET R4 R4 K5
+ 0x5C180000, // 0019 MOVE R6 R0
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x5C200400, // 001B MOVE R8 R2
+ 0x7C100800, // 001C CALL R4 4
+ 0x5C0C0800, // 001D MOVE R3 R4
+ 0x88100106, // 001E GETMBR R4 R0 K6
+ 0x8C100901, // 001F GETMET R4 R4 K1
+ 0x5C180200, // 0020 MOVE R6 R1
+ 0x7C100400, // 0021 CALL R4 2
+ 0x78120003, // 0022 JMPF R4 #0027
+ 0x8C100707, // 0023 GETMET R4 R3 K7
+ 0x88180106, // 0024 GETMBR R6 R0 K6
+ 0x94180C01, // 0025 GETIDX R6 R6 R1
+ 0x7C100400, // 0026 CALL R4 2
+ 0x88100100, // 0027 GETMBR R4 R0 K0
+ 0x98100203, // 0028 SETIDX R4 R1 R3
+ 0x80040600, // 0029 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_add_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K4 */ be_nested_str_weak(_X27_X20skipping),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(next_ep),
+ /* K7 */ be_nested_str_weak(plugins),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(type),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
+ /* K13 */ be_nested_str_weak(conf_to_log),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_persist),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_add_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[68]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120008, // 0006 JMPF R4 #0010
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x60140008, // 0008 GETGBL R5 G8
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C140200, // 000A CALL R5 1
+ 0x00160605, // 000B ADD R5 K3 R5
+ 0x00140B04, // 000C ADD R5 R5 K4
+ 0x58180005, // 000D LDCONST R6 K5
+ 0x7C100400, // 000E CALL R4 2
+ 0x80000800, // 000F RET 0
+ 0x88100106, // 0010 GETMBR R4 R0 K6
+ 0x60140008, // 0011 GETGBL R5 G8
+ 0x5C180800, // 0012 MOVE R6 R4
+ 0x7C140200, // 0013 CALL R5 1
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x5C1C0000, // 0015 MOVE R7 R0
+ 0x5C200800, // 0016 MOVE R8 R4
+ 0x5C240400, // 0017 MOVE R9 R2
+ 0x7C180600, // 0018 CALL R6 3
+ 0x881C0107, // 0019 GETMBR R7 R0 K7
+ 0x8C1C0F08, // 001A GETMET R7 R7 K8
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x7C1C0400, // 001C CALL R7 2
+ 0x601C0013, // 001D GETGBL R7 G19
+ 0x7C1C0000, // 001E CALL R7 0
+ 0x981E1201, // 001F SETIDX R7 K9 R1
+ 0x60200010, // 0020 GETGBL R8 G16
+ 0x8C24050A, // 0021 GETMET R9 R2 K10
+ 0x7C240200, // 0022 CALL R9 1
+ 0x7C200200, // 0023 CALL R8 1
+ 0xA8020004, // 0024 EXBLK 0 #002A
+ 0x5C241000, // 0025 MOVE R9 R8
+ 0x7C240000, // 0026 CALL R9 0
+ 0x94280409, // 0027 GETIDX R10 R2 R9
+ 0x981C120A, // 0028 SETIDX R7 R9 R10
+ 0x7001FFFA, // 0029 JMP #0025
+ 0x5820000B, // 002A LDCONST R8 K11
+ 0xAC200200, // 002B CATCH R8 1 0
+ 0xB0080000, // 002C RAISE 2 R0 R0
+ 0xB8220400, // 002D GETNGBL R8 K2
+ 0x60240018, // 002E GETGBL R9 G24
+ 0x5828000C, // 002F LDCONST R10 K12
+ 0x5C2C0800, // 0030 MOVE R11 R4
+ 0x5C300200, // 0031 MOVE R12 R1
+ 0x8C34010D, // 0032 GETMET R13 R0 K13
+ 0x5C3C0400, // 0033 MOVE R15 R2
+ 0x7C340400, // 0034 CALL R13 2
+ 0x7C240800, // 0035 CALL R9 4
+ 0x5828000E, // 0036 LDCONST R10 K14
+ 0x7C200400, // 0037 CALL R8 2
+ 0x8820010F, // 0038 GETMBR R8 R0 K15
+ 0x98200A07, // 0039 SETIDX R8 R5 R7
+ 0x50200200, // 003A LDBOOL R8 1 0
+ 0x90022008, // 003B SETMBR R0 K16 R8
+ 0x88200106, // 003C GETMBR R8 R0 K6
+ 0x00201111, // 003D ADD R8 R8 K17
+ 0x90020C08, // 003E SETMBR R0 K6 R8
+ 0x8C200112, // 003F GETMET R8 R0 K18
+ 0x7C200200, // 0040 CALL R8 1
+ 0x8C200113, // 0041 GETMET R8 R0 K19
+ 0x7C200200, // 0042 CALL R8 1
+ 0x80040800, // 0043 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_root_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(is_root_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060003, // 0003 JMPF R1 #0008
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x74060000, // 0007 JMPT R1 #0009
+ 0x50040001, // 0008 LDBOOL R1 0 1
+ 0x50040200, // 0009 LDBOOL R1 1 0
+ 0x80040200, // 000A RET 1 R1
})
)
);
@@ -1588,76 +2050,57 @@ be_local_closure(class_Matter_Device_load_param, /* name */
/********************************************************************
-** Solidified function: compute_qrcode_content
+** Solidified function: start_commissioning_complete
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
+be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
+ 10, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(resize),
- /* K1 */ be_nested_str_weak(setbits),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(vendorid),
- /* K4 */ be_nested_str_weak(productid),
- /* K5 */ be_nested_str_weak(root_discriminator),
- /* K6 */ be_nested_str_weak(root_passcode),
- /* K7 */ be_const_int(134217727),
- /* K8 */ be_nested_str_weak(MT_X3A),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(Base38),
- /* K11 */ be_nested_str_weak(encode),
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_fabric),
+ /* K1 */ be_nested_str_weak(get_fabric_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(get_admin_vendor_name),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(stop_basic_commissioning),
}),
- be_str_weak(compute_qrcode_content),
+ be_str_weak(start_commissioning_complete),
&be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x60040015, // 0000 GETGBL R1 G21
- 0x7C040000, // 0001 CALL R1 0
- 0x8C040300, // 0002 GETMET R1 R1 K0
- 0x540E000A, // 0003 LDINT R3 11
- 0x7C040400, // 0004 CALL R1 2
- 0x8C080301, // 0005 GETMET R2 R1 K1
- 0x58100002, // 0006 LDCONST R4 K2
- 0x5416000F, // 0007 LDINT R5 16
- 0x88180103, // 0008 GETMBR R6 R0 K3
- 0x7C080800, // 0009 CALL R2 4
- 0x8C080301, // 000A GETMET R2 R1 K1
- 0x54120012, // 000B LDINT R4 19
- 0x5416000F, // 000C LDINT R5 16
- 0x88180104, // 000D GETMBR R6 R0 K4
- 0x7C080800, // 000E CALL R2 4
- 0x8C080301, // 000F GETMET R2 R1 K1
- 0x54120024, // 0010 LDINT R4 37
- 0x54160007, // 0011 LDINT R5 8
- 0x541A0003, // 0012 LDINT R6 4
- 0x7C080800, // 0013 CALL R2 4
- 0x8C080301, // 0014 GETMET R2 R1 K1
- 0x5412002C, // 0015 LDINT R4 45
- 0x5416000B, // 0016 LDINT R5 12
- 0x88180105, // 0017 GETMBR R6 R0 K5
- 0x541E0FFE, // 0018 LDINT R7 4095
- 0x2C180C07, // 0019 AND R6 R6 R7
- 0x7C080800, // 001A CALL R2 4
- 0x8C080301, // 001B GETMET R2 R1 K1
- 0x54120038, // 001C LDINT R4 57
- 0x5416001A, // 001D LDINT R5 27
- 0x88180106, // 001E GETMBR R6 R0 K6
- 0x2C180D07, // 001F AND R6 R6 K7
- 0x7C080800, // 0020 CALL R2 4
- 0xB80A1200, // 0021 GETNGBL R2 K9
- 0x8808050A, // 0022 GETMBR R2 R2 K10
- 0x8C08050B, // 0023 GETMET R2 R2 K11
- 0x5C100200, // 0024 MOVE R4 R1
- 0x7C080400, // 0025 CALL R2 2
- 0x000A1002, // 0026 ADD R2 K8 R2
- 0x80040400, // 0027 RET 1 R2
+ ( &(const binstruction[23]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x8C0C0501, // 0002 GETMET R3 R2 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C100505, // 000A GETMET R4 R2 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xB8160C00, // 000C GETNGBL R5 K6
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0007, // 000E LDCONST R7 K7
+ 0x5C200600, // 000F MOVE R8 R3
+ 0x5C240800, // 0010 MOVE R9 R4
+ 0x7C180600, // 0011 CALL R6 3
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x7C140400, // 0013 CALL R5 2
+ 0x8C140109, // 0014 GETMET R5 R0 K9
+ 0x7C140200, // 0015 CALL R5 1
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -1717,374 +2160,80 @@ be_local_closure(class_Matter_Device_attribute_updated, /* name */
/********************************************************************
-** Solidified function: register_http_remote
+** Solidified function: k2l
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_http_remote, /* name */
+be_local_closure(class_Matter_Device_k2l, /* name */
be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(get_timeout),
- /* K3 */ be_nested_str_weak(set_timeout),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(HTTP_remote),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(set_info),
- }),
- be_str_weak(register_http_remote),
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x1C0C0604, // 0002 EQ R3 R3 R4
- 0x780E0002, // 0003 JMPF R3 #0007
- 0x600C0013, // 0004 GETGBL R3 G19
- 0x7C0C0000, // 0005 CALL R3 0
- 0x90020003, // 0006 SETMBR R0 K0 R3
- 0x4C0C0000, // 0007 LDNIL R3
- 0x88100100, // 0008 GETMBR R4 R0 K0
- 0x8C100901, // 0009 GETMET R4 R4 K1
- 0x5C180200, // 000A MOVE R6 R1
- 0x7C100400, // 000B CALL R4 2
- 0x78120009, // 000C JMPF R4 #0017
- 0x88100100, // 000D GETMBR R4 R0 K0
- 0x940C0801, // 000E GETIDX R3 R4 R1
- 0x8C140702, // 000F GETMET R5 R3 K2
- 0x7C140200, // 0010 CALL R5 1
- 0x14140405, // 0011 LT R5 R2 R5
- 0x78160002, // 0012 JMPF R5 #0016
- 0x8C140703, // 0013 GETMET R5 R3 K3
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x7C140400, // 0015 CALL R5 2
- 0x70020011, // 0016 JMP #0029
- 0xB8120800, // 0017 GETNGBL R4 K4
- 0x8C100905, // 0018 GETMET R4 R4 K5
- 0x5C180000, // 0019 MOVE R6 R0
- 0x5C1C0200, // 001A MOVE R7 R1
- 0x5C200400, // 001B MOVE R8 R2
- 0x7C100800, // 001C CALL R4 4
- 0x5C0C0800, // 001D MOVE R3 R4
- 0x88100106, // 001E GETMBR R4 R0 K6
- 0x8C100901, // 001F GETMET R4 R4 K1
- 0x5C180200, // 0020 MOVE R6 R1
- 0x7C100400, // 0021 CALL R4 2
- 0x78120003, // 0022 JMPF R4 #0027
- 0x8C100707, // 0023 GETMET R4 R3 K7
- 0x88180106, // 0024 GETMBR R6 R0 K6
- 0x94180C01, // 0025 GETIDX R6 R6 R1
- 0x7C100400, // 0026 CALL R4 2
- 0x88100100, // 0027 GETMBR R4 R0 K0
- 0x98100203, // 0028 SETIDX R4 R1 R3
- 0x80040600, // 0029 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
- be_nested_proto(
- 3, /* nstack */
+ 8, /* nstack */
1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- }),
- be_str_weak(is_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_class_arg
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_arg),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrInfo_one
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
+ 4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K1 */ be_nested_str_weak(state_json),
- /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(publish_result),
- /* K5 */ be_nested_str_weak(),
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(0),
}),
- be_str_weak(MtrInfo_one),
+ be_str_weak(k2l),
&be_const_str_solidified,
- ( &(const binstruction[20]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
+ ( &(const binstruction[50]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0403, // 0004 EQ R3 R2 R3
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
0x780E0000, // 0005 JMPF R3 #0007
- 0x80000600, // 0006 RET 0
- 0x8C0C0501, // 0007 GETMET R3 R2 K1
- 0x7C0C0200, // 0008 CALL R3 1
- 0x780E0008, // 0009 JMPF R3 #0013
- 0x60100018, // 000A GETGBL R4 G24
- 0x58140002, // 000B LDCONST R5 K2
- 0x5C180600, // 000C MOVE R6 R3
- 0x7C100400, // 000D CALL R4 2
- 0xB8160600, // 000E GETNGBL R5 K3
- 0x8C140B04, // 000F GETMET R5 R5 K4
- 0x5C1C0800, // 0010 MOVE R7 R4
- 0x58200005, // 0011 LDCONST R8 K5
- 0x7C140600, // 0012 CALL R5 3
- 0x80000000, // 0013 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_remove_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins_config),
- /* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(plugins_persist),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(get_endpoint),
- /* K13 */ be_const_int(1),
- /* K14 */ be_nested_str_weak(clean_remotes),
- /* K15 */ be_nested_str_weak(save_param),
- /* K16 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_remove_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[56]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x600C0008, // 0001 GETGBL R3 G8
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x4C100000, // 0004 LDNIL R4
- 0x4C140000, // 0005 LDNIL R5
- 0x88180101, // 0006 GETMBR R6 R0 K1
- 0x8C180D02, // 0007 GETMET R6 R6 K2
- 0x5C200600, // 0008 MOVE R8 R3
- 0x7C180400, // 0009 CALL R6 2
- 0x741A0004, // 000A JMPT R6 #0010
- 0xB81A0600, // 000B GETNGBL R6 K3
- 0x001E0803, // 000C ADD R7 K4 R3
- 0x58200005, // 000D LDCONST R8 K5
- 0x7C180400, // 000E CALL R6 2
- 0x80000C00, // 000F RET 0
- 0xB81A0600, // 0010 GETNGBL R6 K3
- 0x601C0018, // 0011 GETGBL R7 G24
- 0x58200006, // 0012 LDCONST R8 K6
- 0x5C240200, // 0013 MOVE R9 R1
- 0x7C1C0400, // 0014 CALL R7 2
- 0x58200007, // 0015 LDCONST R8 K7
- 0x7C180400, // 0016 CALL R6 2
- 0x88180101, // 0017 GETMBR R6 R0 K1
- 0x8C180D08, // 0018 GETMET R6 R6 K8
- 0x5C200600, // 0019 MOVE R8 R3
- 0x7C180400, // 001A CALL R6 2
- 0x50180200, // 001B LDBOOL R6 1 0
- 0x90021206, // 001C SETMBR R0 K9 R6
- 0x5818000A, // 001D LDCONST R6 K10
- 0x601C000C, // 001E GETGBL R7 G12
- 0x8820010B, // 001F GETMBR R8 R0 K11
- 0x7C1C0200, // 0020 CALL R7 1
- 0x141C0C07, // 0021 LT R7 R6 R7
- 0x781E000D, // 0022 JMPF R7 #0031
- 0x881C010B, // 0023 GETMBR R7 R0 K11
- 0x941C0E06, // 0024 GETIDX R7 R7 R6
- 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
- 0x7C1C0200, // 0026 CALL R7 1
- 0x1C1C0207, // 0027 EQ R7 R1 R7
- 0x781E0005, // 0028 JMPF R7 #002F
- 0x881C010B, // 0029 GETMBR R7 R0 K11
- 0x8C1C0F08, // 002A GETMET R7 R7 K8
- 0x5C240C00, // 002B MOVE R9 R6
- 0x7C1C0400, // 002C CALL R7 2
- 0x70020002, // 002D JMP #0031
- 0x70020000, // 002E JMP #0030
- 0x00180D0D, // 002F ADD R6 R6 K13
- 0x7001FFEC, // 0030 JMP #001E
- 0x8C1C010E, // 0031 GETMET R7 R0 K14
- 0x7C1C0200, // 0032 CALL R7 1
- 0x8C1C010F, // 0033 GETMET R7 R0 K15
- 0x7C1C0200, // 0034 CALL R7 1
- 0x8C1C0110, // 0035 GETMET R7 R0 K16
- 0x7C1C0200, // 0036 CALL R7 1
- 0x80000000, // 0037 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: resolve_attribute_read_solo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K4 */ be_nested_str_weak(status),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K7 */ be_nested_str_weak(contains_cluster),
- /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K9 */ be_nested_str_weak(contains_attribute),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- }),
- be_str_weak(resolve_attribute_read_solo),
- &be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0x88100302, // 0002 GETMBR R4 R1 K2
- 0x4C140000, // 0003 LDNIL R5
- 0x1C140405, // 0004 EQ R5 R2 R5
- 0x74160005, // 0005 JMPT R5 #000C
- 0x4C140000, // 0006 LDNIL R5
- 0x1C140605, // 0007 EQ R5 R3 R5
- 0x74160002, // 0008 JMPT R5 #000C
- 0x4C140000, // 0009 LDNIL R5
- 0x1C140805, // 000A EQ R5 R4 R5
- 0x78160001, // 000B JMPF R5 #000E
- 0x4C140000, // 000C LDNIL R5
- 0x80040A00, // 000D RET 1 R5
- 0x8C140103, // 000E GETMET R5 R0 K3
- 0x5C1C0400, // 000F MOVE R7 R2
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020005, // 000B EXBLK 0 #0012
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x5C1C0800, // 000F MOVE R7 R4
0x7C140400, // 0010 CALL R5 2
- 0x4C180000, // 0011 LDNIL R6
- 0x1C180A06, // 0012 EQ R6 R5 R6
- 0x781A0005, // 0013 JMPF R6 #001A
- 0xB81A0A00, // 0014 GETNGBL R6 K5
- 0x88180D06, // 0015 GETMBR R6 R6 K6
- 0x90060806, // 0016 SETMBR R1 K4 R6
- 0x4C180000, // 0017 LDNIL R6
- 0x80040C00, // 0018 RET 1 R6
- 0x70020013, // 0019 JMP #002E
- 0x8C180B07, // 001A GETMET R6 R5 K7
- 0x5C200600, // 001B MOVE R8 R3
- 0x7C180400, // 001C CALL R6 2
- 0x741A0005, // 001D JMPT R6 #0024
- 0xB81A0A00, // 001E GETNGBL R6 K5
- 0x88180D08, // 001F GETMBR R6 R6 K8
- 0x90060806, // 0020 SETMBR R1 K4 R6
- 0x4C180000, // 0021 LDNIL R6
- 0x80040C00, // 0022 RET 1 R6
- 0x70020009, // 0023 JMP #002E
- 0x8C180B09, // 0024 GETMET R6 R5 K9
- 0x5C200600, // 0025 MOVE R8 R3
- 0x5C240800, // 0026 MOVE R9 R4
- 0x7C180600, // 0027 CALL R6 3
- 0x741A0004, // 0028 JMPT R6 #002E
- 0xB81A0A00, // 0029 GETNGBL R6 K5
- 0x88180D0A, // 002A GETMBR R6 R6 K10
- 0x90060806, // 002B SETMBR R1 K4 R6
- 0x4C180000, // 002C LDNIL R6
- 0x80040C00, // 002D RET 1 R6
- 0x80040A00, // 002E RET 1 R5
+ 0x7001FFF9, // 0011 JMP #000C
+ 0x580C0003, // 0012 LDCONST R3 K3
+ 0xAC0C0200, // 0013 CATCH R3 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x600C0010, // 0015 GETGBL R3 G16
+ 0x6010000C, // 0016 GETGBL R4 G12
+ 0x5C140400, // 0017 MOVE R5 R2
+ 0x7C100200, // 0018 CALL R4 1
+ 0x04100904, // 0019 SUB R4 R4 K4
+ 0x40120804, // 001A CONNECT R4 K4 R4
+ 0x7C0C0200, // 001B CALL R3 1
+ 0xA8020010, // 001C EXBLK 0 #002E
+ 0x5C100600, // 001D MOVE R4 R3
+ 0x7C100000, // 001E CALL R4 0
+ 0x94140404, // 001F GETIDX R5 R2 R4
+ 0x5C180800, // 0020 MOVE R6 R4
+ 0x241C0D05, // 0021 GT R7 R6 K5
+ 0x781E0008, // 0022 JMPF R7 #002C
+ 0x041C0D04, // 0023 SUB R7 R6 K4
+ 0x941C0407, // 0024 GETIDX R7 R2 R7
+ 0x241C0E05, // 0025 GT R7 R7 R5
+ 0x781E0004, // 0026 JMPF R7 #002C
+ 0x041C0D04, // 0027 SUB R7 R6 K4
+ 0x941C0407, // 0028 GETIDX R7 R2 R7
+ 0x98080C07, // 0029 SETIDX R2 R6 R7
+ 0x04180D04, // 002A SUB R6 R6 K4
+ 0x7001FFF4, // 002B JMP #0021
+ 0x98080C05, // 002C SETIDX R2 R6 R5
+ 0x7001FFEE, // 002D JMP #001D
+ 0x580C0003, // 002E LDCONST R3 K3
+ 0xAC0C0200, // 002F CATCH R3 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0x80040400, // 0031 RET 1 R2
})
)
);
@@ -2092,143 +2241,129 @@ be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
/********************************************************************
-** Solidified function: start_root_basic_commissioning
+** Solidified function: register_commands
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
+be_local_closure(class_Matter_Device_register_commands, /* name */
be_nested_proto(
- 13, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
- /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
- /* K4 */ be_const_int(2),
- /* K5 */ be_nested_str_weak(compute_qrcode_content),
- /* K6 */ be_nested_str_weak(tasmota),
- /* K7 */ be_nested_str_weak(publish_result),
- /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
- /* K9 */ be_nested_str_weak(Matter),
- /* K10 */ be_nested_str_weak(_compute_pbkdf),
- /* K11 */ be_nested_str_weak(root_passcode),
- /* K12 */ be_nested_str_weak(root_iterations),
- /* K13 */ be_nested_str_weak(root_salt),
- /* K14 */ be_nested_str_weak(start_basic_commissioning),
- /* K15 */ be_nested_str_weak(root_discriminator),
- /* K16 */ be_nested_str_weak(root_w0),
- /* K17 */ be_nested_str_weak(root_L),
- }),
- be_str_weak(start_root_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x780A0000, // 0002 JMPF R2 #0004
- 0x88040100, // 0003 GETMBR R1 R0 K0
- 0x8C080101, // 0004 GETMET R2 R0 K1
- 0x7C080200, // 0005 CALL R2 1
- 0xB80E0400, // 0006 GETNGBL R3 K2
- 0x60100018, // 0007 GETGBL R4 G24
- 0x58140003, // 0008 LDCONST R5 K3
- 0x5C180400, // 0009 MOVE R6 R2
- 0x7C100400, // 000A CALL R4 2
- 0x58140004, // 000B LDCONST R5 K4
- 0x7C0C0400, // 000C CALL R3 2
- 0x8C0C0105, // 000D GETMET R3 R0 K5
- 0x7C0C0200, // 000E CALL R3 1
- 0xB8120C00, // 000F GETNGBL R4 K6
- 0x8C100907, // 0010 GETMET R4 R4 K7
- 0x60180018, // 0011 GETGBL R6 G24
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x5C200400, // 0013 MOVE R8 R2
- 0x5C240600, // 0014 MOVE R9 R3
- 0x7C180600, // 0015 CALL R6 3
- 0x581C0009, // 0016 LDCONST R7 K9
- 0x7C100600, // 0017 CALL R4 3
- 0x8C10010A, // 0018 GETMET R4 R0 K10
- 0x8818010B, // 0019 GETMBR R6 R0 K11
- 0x881C010C, // 001A GETMBR R7 R0 K12
- 0x8820010D, // 001B GETMBR R8 R0 K13
- 0x7C100800, // 001C CALL R4 4
- 0x8C10010E, // 001D GETMET R4 R0 K14
- 0x5C180200, // 001E MOVE R6 R1
- 0x881C010C, // 001F GETMBR R7 R0 K12
- 0x8820010F, // 0020 GETMBR R8 R0 K15
- 0x8824010D, // 0021 GETMBR R9 R0 K13
- 0x88280110, // 0022 GETMBR R10 R0 K16
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x4C300000, // 0024 LDNIL R12
- 0x7C101000, // 0025 CALL R4 8
- 0x80000000, // 0026 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
+ 5, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
+ ( &(const struct bproto*[ 4]) {
be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
+ 10, /* nstack */
+ 4, /* argc */
0, /* varg */
1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
}),
0, /* has sup protos */
NULL,
1, /* has constants */
( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_commissioning_complete),
+ /* K0 */ be_nested_str_weak(MtrJoin),
}),
be_str_weak(_X3Clambda_X3E),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrUpdate),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
+ })
+ ),
+ be_nested_proto(
+ 10, /* nstack */
+ 4, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(MtrInfo),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x68100000, // 0000 GETUPV R4 U0
+ 0x8C100900, // 0001 GETMET R4 R4 K0
+ 0x5C180000, // 0002 MOVE R6 R0
+ 0x5C1C0200, // 0003 MOVE R7 R1
+ 0x5C200400, // 0004 MOVE R8 R2
+ 0x5C240600, // 0005 MOVE R9 R3
+ 0x7C100A00, // 0006 CALL R4 5
+ 0x80040800, // 0007 RET 1 R4
})
),
&be_class_Matter_Device,
}),
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(add_cmd),
+ /* K2 */ be_nested_str_weak(MtrJoin),
+ /* K3 */ be_nested_str_weak(MtrUpdate),
+ /* K4 */ be_nested_str_weak(MtrInfo),
}),
- be_str_weak(start_commissioning_complete_deferred),
+ be_str_weak(register_commands),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
+ ( &(const binstruction[17]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x580C0002, // 0002 LDCONST R3 K2
+ 0x84100000, // 0003 CLOSURE R4 P0
+ 0x7C040600, // 0004 CALL R1 3
+ 0xB8060000, // 0005 GETNGBL R1 K0
+ 0x8C040301, // 0006 GETMET R1 R1 K1
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x84100001, // 0008 CLOSURE R4 P1
+ 0x7C040600, // 0009 CALL R1 3
+ 0xB8060000, // 000A GETNGBL R1 K0
+ 0x8C040301, // 000B GETMET R1 R1 K1
+ 0x580C0004, // 000C LDCONST R3 K4
+ 0x84100002, // 000D CLOSURE R4 P2
+ 0x7C040600, // 000E CALL R1 3
+ 0xA0000000, // 000F CLOSE R0
+ 0x80000000, // 0010 RET 0
})
)
);
@@ -2236,12 +2371,12 @@ be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /*
/********************************************************************
-** Solidified function: start
+** Solidified function: check_config_ep
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start, /* name */
+be_local_closure(class_Matter_Device_check_config_ep, /* name */
be_nested_proto(
- 4, /* nstack */
+ 10, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2249,29 +2384,102 @@ be_local_closure(class_Matter_Device_start, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(started),
- /* K1 */ be_nested_str_weak(autoconf_device),
- /* K2 */ be_nested_str_weak(_start_udp),
- /* K3 */ be_nested_str_weak(UDP_PORT),
- /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
+ /* K12 */ be_nested_str_weak(next_ep),
+ /* K13 */ be_const_int(1),
}),
- be_str_weak(start),
+ be_str_weak(check_config_ep),
&be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x80000200, // 0002 RET 0
- 0x8C040101, // 0003 GETMET R1 R0 K1
- 0x7C040200, // 0004 CALL R1 1
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x8C040104, // 0008 GETMET R1 R0 K4
- 0x7C040200, // 0009 CALL R1 1
- 0x50040200, // 000A LDBOOL R1 1 0
- 0x90020001, // 000B SETMBR R0 K0 R1
- 0x80000000, // 000C RET 0
+ ( &(const binstruction[77]) { /* code */
+ 0x50040000, // 0000 LDBOOL R1 0 0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x600C0010, // 0003 GETGBL R3 G16
+ 0x88100100, // 0004 GETMBR R4 R0 K0
+ 0x8C100901, // 0005 GETMET R4 R4 K1
+ 0x7C100200, // 0006 CALL R4 1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020007, // 0008 EXBLK 0 #0011
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x8C140502, // 000B GETMET R5 R2 K2
+ 0x601C0009, // 000C GETGBL R7 G9
+ 0x5C200800, // 000D MOVE R8 R4
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x7C140400, // 000F CALL R5 2
+ 0x7001FFF7, // 0010 JMP #0009
+ 0x580C0003, // 0011 LDCONST R3 K3
+ 0xAC0C0200, // 0012 CATCH R3 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x600C0010, // 0014 GETGBL R3 G16
+ 0x5C100400, // 0015 MOVE R4 R2
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0xA8020030, // 0017 EXBLK 0 #0049
+ 0x5C100600, // 0018 MOVE R4 R3
+ 0x7C100000, // 0019 CALL R4 0
+ 0x1C140904, // 001A EQ R5 R4 K4
+ 0x7816000B, // 001B JMPF R5 #0028
+ 0xB8160A00, // 001C GETNGBL R5 K5
+ 0x58180006, // 001D LDCONST R6 K6
+ 0x581C0007, // 001E LDCONST R7 K7
+ 0x7C140400, // 001F CALL R5 2
+ 0x88140100, // 0020 GETMBR R5 R0 K0
+ 0x8C140B08, // 0021 GETMET R5 R5 K8
+ 0x601C0008, // 0022 GETGBL R7 G8
+ 0x5C200800, // 0023 MOVE R8 R4
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x50040200, // 0026 LDBOOL R1 1 0
+ 0x7002001F, // 0027 JMP #0048
+ 0xB8161200, // 0028 GETNGBL R5 K9
+ 0x88140B0A, // 0029 GETMBR R5 R5 K10
+ 0x1C140805, // 002A EQ R5 R4 R5
+ 0x7816001B, // 002B JMPF R5 #0048
+ 0x50040200, // 002C LDBOOL R1 1 0
+ 0xB8160A00, // 002D GETNGBL R5 K5
+ 0x60180018, // 002E GETGBL R6 G24
+ 0x581C000B, // 002F LDCONST R7 K11
+ 0x5C200800, // 0030 MOVE R8 R4
+ 0x8824010C, // 0031 GETMBR R9 R0 K12
+ 0x7C180600, // 0032 CALL R6 3
+ 0x581C0007, // 0033 LDCONST R7 K7
+ 0x7C140400, // 0034 CALL R5 2
+ 0x60140008, // 0035 GETGBL R5 G8
+ 0x8818010C, // 0036 GETMBR R6 R0 K12
+ 0x7C140200, // 0037 CALL R5 1
+ 0x88180100, // 0038 GETMBR R6 R0 K0
+ 0x601C0008, // 0039 GETGBL R7 G8
+ 0x5C200800, // 003A MOVE R8 R4
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x88200100, // 003C GETMBR R8 R0 K0
+ 0x941C1007, // 003D GETIDX R7 R8 R7
+ 0x98180A07, // 003E SETIDX R6 R5 R7
+ 0x88140100, // 003F GETMBR R5 R0 K0
+ 0x8C140B08, // 0040 GETMET R5 R5 K8
+ 0x601C0008, // 0041 GETGBL R7 G8
+ 0x5C200800, // 0042 MOVE R8 R4
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x7C140400, // 0044 CALL R5 2
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x00140B0D, // 0046 ADD R5 R5 K13
+ 0x90021805, // 0047 SETMBR R0 K12 R5
+ 0x7001FFCE, // 0048 JMP #0018
+ 0x580C0003, // 0049 LDCONST R3 K3
+ 0xAC0C0200, // 004A CATCH R3 1 0
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80040200, // 004C RET 1 R1
})
)
);
@@ -2315,463 +2523,54 @@ be_local_closure(class_Matter_Device_every_50ms, /* name */
/********************************************************************
-** Solidified function: _trigger_read_sensors
+** Solidified function: conf_to_log
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(read_sensors),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
- /* K7 */ be_nested_str_weak(load),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(plugins),
- /* K10 */ be_nested_str_weak(parse_sensors),
- /* K11 */ be_const_int(1),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
- }),
- be_str_weak(_trigger_read_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x8C0C0703, // 0005 GETMET R3 R3 K3
- 0x58140004, // 0006 LDCONST R5 K4
- 0x7C0C0400, // 0007 CALL R3 2
- 0x780E0006, // 0008 JMPF R3 #0010
- 0xB80E0A00, // 0009 GETNGBL R3 K5
- 0x60100008, // 000A GETGBL R4 G8
- 0x5C140400, // 000B MOVE R5 R2
- 0x7C100200, // 000C CALL R4 1
- 0x00120C04, // 000D ADD R4 K6 R4
- 0x58140004, // 000E LDCONST R5 K4
- 0x7C0C0400, // 000F CALL R3 2
- 0x4C0C0000, // 0010 LDNIL R3
- 0x1C0C0403, // 0011 EQ R3 R2 R3
- 0x780E0000, // 0012 JMPF R3 #0014
- 0x80000600, // 0013 RET 0
- 0x8C0C0307, // 0014 GETMET R3 R1 K7
- 0x5C140400, // 0015 MOVE R5 R2
- 0x7C0C0400, // 0016 CALL R3 2
- 0x4C100000, // 0017 LDNIL R4
- 0x20100604, // 0018 NE R4 R3 R4
- 0x7812000D, // 0019 JMPF R4 #0028
- 0x58100008, // 001A LDCONST R4 K8
- 0x6014000C, // 001B GETGBL R5 G12
- 0x88180109, // 001C GETMBR R6 R0 K9
- 0x7C140200, // 001D CALL R5 1
- 0x14140805, // 001E LT R5 R4 R5
- 0x78160006, // 001F JMPF R5 #0027
- 0x88140109, // 0020 GETMBR R5 R0 K9
- 0x94140A04, // 0021 GETIDX R5 R5 R4
- 0x8C140B0A, // 0022 GETMET R5 R5 K10
- 0x5C1C0600, // 0023 MOVE R7 R3
- 0x7C140400, // 0024 CALL R5 2
- 0x0010090B, // 0025 ADD R4 R4 K11
- 0x7001FFF3, // 0026 JMP #001B
- 0x70020006, // 0027 JMP #002F
- 0xB8120A00, // 0028 GETNGBL R4 K5
- 0x60140008, // 0029 GETGBL R5 G8
- 0x5C180400, // 002A MOVE R6 R2
- 0x7C140200, // 002B CALL R5 1
- 0x00161805, // 002C ADD R5 K12 R5
- 0x58180004, // 002D LDCONST R6 K4
- 0x7C100400, // 002E CALL R4 2
- 0x80000000, // 002F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_PASE
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
+be_local_closure(class_Matter_Device_conf_to_log, /* name */
be_nested_proto(
9, /* nstack */
1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(mdns_pase_eth),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
- /* K4 */ be_nested_str_weak(_matterc),
- /* K5 */ be_nested_str_weak(_udp),
- /* K6 */ be_nested_str_weak(commissioning_instance_eth),
- /* K7 */ be_nested_str_weak(hostname_eth),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K10 */ be_nested_str_weak(eth),
- /* K11 */ be_nested_str_weak(remove_service),
- /* K12 */ be_nested_str_weak(mdns_pase_wifi),
- /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
- /* K14 */ be_nested_str_weak(hostname_wifi),
- /* K15 */ be_nested_str_weak(wifi),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K17 */ be_nested_str_weak(_X7C),
- /* K18 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_PASE),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A0019, // 0003 JMPF R2 #001E
- 0xB80A0400, // 0004 GETNGBL R2 K2
- 0x600C0018, // 0005 GETGBL R3 G24
- 0x58100003, // 0006 LDCONST R4 K3
- 0x58140004, // 0007 LDCONST R5 K4
- 0x58180005, // 0008 LDCONST R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x88200107, // 000A GETMBR R8 R0 K7
- 0x7C0C0A00, // 000B CALL R3 5
- 0x58100008, // 000C LDCONST R4 K8
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0400, // 000E GETNGBL R2 K2
- 0x600C0018, // 000F GETGBL R3 G24
- 0x58100009, // 0010 LDCONST R4 K9
- 0x5814000A, // 0011 LDCONST R5 K10
- 0x88180106, // 0012 GETMBR R6 R0 K6
- 0x7C0C0600, // 0013 CALL R3 3
- 0x58100008, // 0014 LDCONST R4 K8
- 0x7C080400, // 0015 CALL R2 2
- 0x50080000, // 0016 LDBOOL R2 0 0
- 0x90020202, // 0017 SETMBR R0 K1 R2
- 0x8C08030B, // 0018 GETMET R2 R1 K11
- 0x58100004, // 0019 LDCONST R4 K4
- 0x58140005, // 001A LDCONST R5 K5
- 0x88180106, // 001B GETMBR R6 R0 K6
- 0x881C0107, // 001C GETMBR R7 R0 K7
- 0x7C080A00, // 001D CALL R2 5
- 0x8808010C, // 001E GETMBR R2 R0 K12
- 0x780A0019, // 001F JMPF R2 #003A
- 0xB80A0400, // 0020 GETNGBL R2 K2
- 0x600C0018, // 0021 GETGBL R3 G24
- 0x58100003, // 0022 LDCONST R4 K3
- 0x58140004, // 0023 LDCONST R5 K4
- 0x58180005, // 0024 LDCONST R6 K5
- 0x881C010D, // 0025 GETMBR R7 R0 K13
- 0x8820010E, // 0026 GETMBR R8 R0 K14
- 0x7C0C0A00, // 0027 CALL R3 5
- 0x58100008, // 0028 LDCONST R4 K8
- 0x7C080400, // 0029 CALL R2 2
- 0xB80A0400, // 002A GETNGBL R2 K2
- 0x600C0018, // 002B GETGBL R3 G24
- 0x58100009, // 002C LDCONST R4 K9
- 0x5814000F, // 002D LDCONST R5 K15
- 0x8818010D, // 002E GETMBR R6 R0 K13
- 0x7C0C0600, // 002F CALL R3 3
- 0x58100008, // 0030 LDCONST R4 K8
- 0x7C080400, // 0031 CALL R2 2
- 0x50080000, // 0032 LDBOOL R2 0 0
- 0x90021802, // 0033 SETMBR R0 K12 R2
- 0x8C08030B, // 0034 GETMET R2 R1 K11
- 0x58100004, // 0035 LDCONST R4 K4
- 0x58140005, // 0036 LDCONST R5 K5
- 0x8818010D, // 0037 GETMBR R6 R0 K13
- 0x881C010E, // 0038 GETMBR R7 R0 K14
- 0x7C080A00, // 0039 CALL R2 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC080002, // 003C CATCH R2 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8120400, // 003E GETNGBL R4 K2
- 0x60140008, // 003F GETGBL R5 G8
- 0x5C180400, // 0040 MOVE R6 R2
- 0x7C140200, // 0041 CALL R5 1
- 0x00162005, // 0042 ADD R5 K16 R5
- 0x00140B11, // 0043 ADD R5 R5 K17
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x00140A06, // 0047 ADD R5 R5 R6
- 0x58180012, // 0048 LDCONST R6 K18
- 0x7C100400, // 0049 CALL R4 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_active_endpoints
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins),
- /* K1 */ be_nested_str_weak(get_endpoint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(get_active_endpoints),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x88100100, // 0003 GETMBR R4 R0 K0
- 0x7C0C0200, // 0004 CALL R3 1
- 0xA8020011, // 0005 EXBLK 0 #0018
- 0x5C100600, // 0006 MOVE R4 R3
- 0x7C100000, // 0007 CALL R4 0
- 0x8C140901, // 0008 GETMET R5 R4 K1
- 0x7C140200, // 0009 CALL R5 1
- 0x78060002, // 000A JMPF R1 #000E
- 0x1C180B02, // 000B EQ R6 R5 K2
- 0x781A0000, // 000C JMPF R6 #000E
- 0x7001FFF7, // 000D JMP #0006
- 0x8C180503, // 000E GETMET R6 R2 K3
- 0x5C200A00, // 000F MOVE R8 R5
- 0x7C180400, // 0010 CALL R6 2
- 0x4C1C0000, // 0011 LDNIL R7
- 0x1C180C07, // 0012 EQ R6 R6 R7
- 0x781A0002, // 0013 JMPF R6 #0017
- 0x8C180504, // 0014 GETMET R6 R2 K4
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x7C180400, // 0016 CALL R6 2
- 0x7001FFED, // 0017 JMP #0006
- 0x580C0005, // 0018 LDCONST R3 K5
- 0xAC0C0200, // 0019 CATCH R3 1 0
- 0xB0080000, // 001A RAISE 2 R0 R0
- 0x80040400, // 001B RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_friendly_name
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_name),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_plugin_by_friendly_name),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x740A0004, // 0002 JMPT R2 #0008
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x1C080500, // 0006 EQ R2 R2 K0
- 0x780A0001, // 0007 JMPF R2 #000A
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- 0x58080000, // 000A LDCONST R2 K0
- 0x600C000C, // 000B GETGBL R3 G12
- 0x88100101, // 000C GETMBR R4 R0 K1
- 0x7C0C0200, // 000D CALL R3 1
- 0x140C0403, // 000E LT R3 R2 R3
- 0x780E0010, // 000F JMPF R3 #0021
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x940C0602, // 0011 GETIDX R3 R3 R2
- 0x8C100702, // 0012 GETMET R4 R3 K2
- 0x7C100200, // 0013 CALL R4 1
- 0x4C140000, // 0014 LDNIL R5
- 0x20140805, // 0015 NE R5 R4 R5
- 0x78160007, // 0016 JMPF R5 #001F
- 0x6014000C, // 0017 GETGBL R5 G12
- 0x5C180800, // 0018 MOVE R6 R4
- 0x7C140200, // 0019 CALL R5 1
- 0x24140B00, // 001A GT R5 R5 K0
- 0x78160002, // 001B JMPF R5 #001F
- 0x1C140801, // 001C EQ R5 R4 R1
- 0x78160000, // 001D JMPF R5 #001F
- 0x80040600, // 001E RET 1 R3
- 0x00080503, // 001F ADD R2 R2 K3
- 0x7001FFE9, // 0020 JMP #000B
- 0x4C0C0000, // 0021 LDNIL R3
- 0x80040600, // 0022 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: adjust_next_ep
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(next_ep),
- /* K3 */ be_const_int(1),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(adjust_next_ep),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000A, // 0005 EXBLK 0 #0011
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x600C0009, // 0008 GETGBL R3 G9
- 0x5C100400, // 0009 MOVE R4 R2
- 0x7C0C0200, // 000A CALL R3 1
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0x28100604, // 000C GE R4 R3 R4
- 0x78120001, // 000D JMPF R4 #0010
- 0x00100703, // 000E ADD R4 R3 K3
- 0x90020404, // 000F SETMBR R0 K2 R4
- 0x7001FFF4, // 0010 JMP #0006
- 0x58040004, // 0011 LDCONST R1 K4
- 0xAC040200, // 0012 CATCH R1 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: sort_distinct
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_sort_distinct, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
+ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(remove),
+ /* K1 */ be_nested_str_weak(),
+ /* K2 */ be_nested_str_weak(k2l),
+ /* K3 */ be_nested_str_weak(type),
+ /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
+ /* K5 */ be_nested_str_weak(stop_iteration),
}),
- be_str_weak(sort_distinct),
+ be_str_weak(conf_to_log),
&be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
+ ( &(const binstruction[24]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
- 0x60080010, // 0001 GETGBL R2 G16
- 0x600C000C, // 0002 GETGBL R3 G12
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x040C0701, // 0005 SUB R3 R3 K1
- 0x400E0203, // 0006 CONNECT R3 K1 R3
- 0x7C080200, // 0007 CALL R2 1
- 0xA8020010, // 0008 EXBLK 0 #001A
- 0x5C0C0400, // 0009 MOVE R3 R2
- 0x7C0C0000, // 000A CALL R3 0
- 0x94100003, // 000B GETIDX R4 R0 R3
- 0x5C140600, // 000C MOVE R5 R3
- 0x24180B02, // 000D GT R6 R5 K2
- 0x781A0008, // 000E JMPF R6 #0018
- 0x04180B01, // 000F SUB R6 R5 K1
- 0x94180006, // 0010 GETIDX R6 R0 R6
- 0x24180C04, // 0011 GT R6 R6 R4
- 0x781A0004, // 0012 JMPF R6 #0018
- 0x04180B01, // 0013 SUB R6 R5 K1
- 0x94180006, // 0014 GETIDX R6 R0 R6
- 0x98000A06, // 0015 SETIDX R0 R5 R6
- 0x04140B01, // 0016 SUB R5 R5 K1
- 0x7001FFF4, // 0017 JMP #000D
- 0x98000A04, // 0018 SETIDX R0 R5 R4
- 0x7001FFEE, // 0019 JMP #0009
- 0x58080003, // 001A LDCONST R2 K3
- 0xAC080200, // 001B CATCH R2 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x58080001, // 001D LDCONST R2 K1
- 0x600C000C, // 001E GETGBL R3 G12
- 0x5C100000, // 001F MOVE R4 R0
- 0x7C0C0200, // 0020 CALL R3 1
- 0x180C0701, // 0021 LE R3 R3 K1
- 0x780E0000, // 0022 JMPF R3 #0024
- 0x80040000, // 0023 RET 1 R0
- 0x940C0102, // 0024 GETIDX R3 R0 K2
- 0x6010000C, // 0025 GETGBL R4 G12
- 0x5C140000, // 0026 MOVE R5 R0
- 0x7C100200, // 0027 CALL R4 1
- 0x14100404, // 0028 LT R4 R2 R4
- 0x78120009, // 0029 JMPF R4 #0034
- 0x94100002, // 002A GETIDX R4 R0 R2
- 0x1C100803, // 002B EQ R4 R4 R3
- 0x78120003, // 002C JMPF R4 #0031
- 0x8C100104, // 002D GETMET R4 R0 K4
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x70020001, // 0030 JMP #0033
- 0x940C0002, // 0031 GETIDX R3 R0 R2
- 0x00080501, // 0032 ADD R2 R2 K1
- 0x7001FFF0, // 0033 JMP #0025
- 0x80040000, // 0034 RET 1 R0
+ 0x58080001, // 0001 LDCONST R2 K1
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100302, // 0003 GETMET R4 R1 K2
+ 0x5C180000, // 0004 MOVE R6 R0
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA802000B, // 0007 EXBLK 0 #0014
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x1C140903, // 000A EQ R5 R4 K3
+ 0x78160000, // 000B JMPF R5 #000D
+ 0x7001FFFA, // 000C JMP #0008
+ 0x60140018, // 000D GETGBL R5 G24
+ 0x58180004, // 000E LDCONST R6 K4
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x94200004, // 0010 GETIDX R8 R0 R4
+ 0x7C140600, // 0011 CALL R5 3
+ 0x00080405, // 0012 ADD R2 R2 R5
+ 0x7001FFF3, // 0013 JMP #0008
+ 0x580C0005, // 0014 LDCONST R3 K5
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x80040400, // 0017 RET 1 R2
})
)
);
@@ -2861,151 +2660,6 @@ be_local_closure(class_Matter_Device_k2l_num, /* name */
/*******************************************************************/
-/********************************************************************
-** Solidified function: start_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
- be_nested_proto(
- 13, /* nstack */
- 8, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(millis),
- /* K3 */ be_nested_str_weak(commissioning_iterations),
- /* K4 */ be_nested_str_weak(commissioning_discriminator),
- /* K5 */ be_nested_str_weak(commissioning_salt),
- /* K6 */ be_nested_str_weak(commissioning_w0),
- /* K7 */ be_nested_str_weak(commissioning_L),
- /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
- /* K9 */ be_nested_str_weak(wifi),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(mdns_announce_PASE),
- /* K13 */ be_nested_str_weak(add_rule),
- /* K14 */ be_nested_str_weak(Wifi_X23Connected),
- /* K15 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0xB8220200, // 0000 GETNGBL R8 K1
- 0x8C201102, // 0001 GETMET R8 R8 K2
- 0x7C200200, // 0002 CALL R8 1
- 0x542603E7, // 0003 LDINT R9 1000
- 0x08240209, // 0004 MUL R9 R1 R9
- 0x00201009, // 0005 ADD R8 R8 R9
- 0x90020008, // 0006 SETMBR R0 K0 R8
- 0x90020602, // 0007 SETMBR R0 K3 R2
- 0x90020803, // 0008 SETMBR R0 K4 R3
- 0x90020A04, // 0009 SETMBR R0 K5 R4
- 0x90020C05, // 000A SETMBR R0 K6 R5
- 0x90020E06, // 000B SETMBR R0 K7 R6
- 0x90021007, // 000C SETMBR R0 K8 R7
- 0xB8220200, // 000D GETNGBL R8 K1
- 0x8C201109, // 000E GETMET R8 R8 K9
- 0x7C200200, // 000F CALL R8 1
- 0x9420110A, // 0010 GETIDX R8 R8 K10
- 0x74220004, // 0011 JMPT R8 #0017
- 0xB8220200, // 0012 GETNGBL R8 K1
- 0x8C20110B, // 0013 GETMET R8 R8 K11
- 0x7C200200, // 0014 CALL R8 1
- 0x9420110A, // 0015 GETIDX R8 R8 K10
- 0x78220002, // 0016 JMPF R8 #001A
- 0x8C20010C, // 0017 GETMET R8 R0 K12
- 0x7C200200, // 0018 CALL R8 1
- 0x7002000B, // 0019 JMP #0026
- 0xB8220200, // 001A GETNGBL R8 K1
- 0x8C20110D, // 001B GETMET R8 R8 K13
- 0x5828000E, // 001C LDCONST R10 K14
- 0x842C0000, // 001D CLOSURE R11 P0
- 0x5830000C, // 001E LDCONST R12 K12
- 0x7C200800, // 001F CALL R8 4
- 0xB8220200, // 0020 GETNGBL R8 K1
- 0x8C20110D, // 0021 GETMET R8 R8 K13
- 0x5828000F, // 0022 LDCONST R10 K15
- 0x842C0001, // 0023 CLOSURE R11 P1
- 0x5830000C, // 0024 LDCONST R12 K12
- 0x7C200800, // 0025 CALL R8 4
- 0xA0000000, // 0026 CLOSE R0
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: stop
********************************************************************/
@@ -3046,10 +2700,10 @@ be_local_closure(class_Matter_Device_stop, /* name */
/********************************************************************
-** Solidified function: msg_send
+** Solidified function: get_plugin_class_arg
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_send, /* name */
+be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
be_nested_proto(
5, /* nstack */
2, /* argc */
@@ -3059,97 +2713,24 @@ be_local_closure(class_Matter_Device_msg_send, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(send_UDP),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_nested_str_weak(),
}),
- be_str_weak(msg_send),
+ be_str_weak(get_plugin_class_arg),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
+ ( &(const binstruction[ 9]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100200, // 0002 MOVE R4 R1
0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_device
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_device, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(plugins_config),
- /* K5 */ be_nested_str_weak(autoconf_device_map),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(adjust_next_ep),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(count_active_fabrics),
- /* K14 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(autoconf_device),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0101, // 0002 GETMBR R3 R0 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x24080502, // 0004 GT R2 R2 K2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x80000400, // 0006 RET 0
- 0x88080103, // 0007 GETMBR R2 R0 K3
- 0x740A000E, // 0008 JMPT R2 #0018
- 0x8C080105, // 0009 GETMET R2 R0 K5
- 0x7C080200, // 000A CALL R2 1
- 0x90020802, // 000B SETMBR R0 K4 R2
- 0x60080013, // 000C GETGBL R2 G19
- 0x7C080000, // 000D CALL R2 0
- 0x90020C02, // 000E SETMBR R0 K6 R2
- 0x8C080107, // 000F GETMET R2 R0 K7
- 0x7C080200, // 0010 CALL R2 1
- 0xB80A1000, // 0011 GETNGBL R2 K8
- 0x600C0008, // 0012 GETGBL R3 G8
- 0x88100104, // 0013 GETMBR R4 R0 K4
- 0x7C0C0200, // 0014 CALL R3 1
- 0x000E1203, // 0015 ADD R3 K9 R3
- 0x5810000A, // 0016 LDCONST R4 K10
- 0x7C080400, // 0017 CALL R2 2
- 0x8C08010B, // 0018 GETMET R2 R0 K11
- 0x88100104, // 0019 GETMBR R4 R0 K4
- 0x7C080400, // 001A CALL R2 2
- 0x88080103, // 001B GETMBR R2 R0 K3
- 0x740A0008, // 001C JMPT R2 #0026
- 0x8808010C, // 001D GETMBR R2 R0 K12
- 0x8C08050D, // 001E GETMET R2 R2 K13
- 0x7C080200, // 001F CALL R2 1
- 0x24080502, // 0020 GT R2 R2 K2
- 0x780A0003, // 0021 JMPF R2 #0026
- 0x50080200, // 0022 LDBOOL R2 1 0
- 0x90020602, // 0023 SETMBR R0 K3 R2
- 0x8C08010E, // 0024 GETMET R2 R0 K14
- 0x7C080200, // 0025 CALL R2 1
- 0x80000000, // 0026 RET 0
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
})
)
);
@@ -3415,6 +2996,615 @@ be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: remove_fabric
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_remove_fabric, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(message_handler),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(subs_shop),
+ /* K10 */ be_nested_str_weak(remove_by_fabric),
+ /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(remove_fabric),
+ /* K14 */ be_nested_str_weak(save_fabrics),
+ }),
+ be_str_weak(remove_fabric),
+ &be_const_str_solidified,
+ ( &(const binstruction[32]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0018, // 0002 JMPF R2 #001C
+ 0xB80A0000, // 0003 GETNGBL R2 K0
+ 0x8C0C0302, // 0004 GETMET R3 R1 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C0C0705, // 000A GETMET R3 R3 K5
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x000E0203, // 000C ADD R3 K1 R3
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x88080508, // 0010 GETMBR R2 R2 K8
+ 0x88080509, // 0011 GETMBR R2 R2 K9
+ 0x8C08050A, // 0012 GETMET R2 R2 K10
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x8C08010B, // 0015 GETMET R2 R0 K11
+ 0x5C100200, // 0016 MOVE R4 R1
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8808010C, // 0018 GETMBR R2 R0 K12
+ 0x8C08050D, // 0019 GETMET R2 R2 K13
+ 0x5C100200, // 001A MOVE R4 R1
+ 0x7C080400, // 001B CALL R2 2
+ 0x8808010C, // 001C GETMBR R2 R0 K12
+ 0x8C08050E, // 001D GETMET R2 R2 K14
+ 0x7C080200, // 001E CALL R2 1
+ 0x80000000, // 001F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_init, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[38]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(get_option),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(MATTER_OPTION),
+ /* K5 */ be_nested_str_weak(UI),
+ /* K6 */ be_nested_str_weak(profiler),
+ /* K7 */ be_nested_str_weak(Profiler),
+ /* K8 */ be_nested_str_weak(started),
+ /* K9 */ be_nested_str_weak(tick),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(plugins_config_remotes),
+ /* K14 */ be_nested_str_weak(next_ep),
+ /* K15 */ be_const_int(2),
+ /* K16 */ be_nested_str_weak(ipv4only),
+ /* K17 */ be_nested_str_weak(disable_bridge_mode),
+ /* K18 */ be_nested_str_weak(load_param),
+ /* K19 */ be_nested_str_weak(sessions),
+ /* K20 */ be_nested_str_weak(Session_Store),
+ /* K21 */ be_nested_str_weak(load_fabrics),
+ /* K22 */ be_nested_str_weak(message_handler),
+ /* K23 */ be_nested_str_weak(MessageHandler),
+ /* K24 */ be_nested_str_weak(events),
+ /* K25 */ be_nested_str_weak(EventHandler),
+ /* K26 */ be_nested_str_weak(ui),
+ /* K27 */ be_nested_str_weak(wifi),
+ /* K28 */ be_nested_str_weak(up),
+ /* K29 */ be_nested_str_weak(eth),
+ /* K30 */ be_nested_str_weak(start),
+ /* K31 */ be_nested_str_weak(add_rule),
+ /* K32 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K33 */ be_nested_str_weak(matter_start),
+ /* K34 */ be_nested_str_weak(Eth_X23Connected),
+ /* K35 */ be_nested_str_weak(_init_basic_commissioning),
+ /* K36 */ be_nested_str_weak(add_driver),
+ /* K37 */ be_nested_str_weak(register_commands),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[102]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0xB8120600, // 0003 GETNGBL R4 K3
+ 0x88100904, // 0004 GETMBR R4 R4 K4
+ 0x7C080400, // 0005 CALL R2 2
+ 0x740A0004, // 0006 JMPT R2 #000C
+ 0xB80A0600, // 0007 GETNGBL R2 K3
+ 0x8C080505, // 0008 GETMET R2 R2 K5
+ 0x5C100000, // 0009 MOVE R4 R0
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000400, // 000B RET 0
+ 0xB80A0600, // 000C GETNGBL R2 K3
+ 0xB80E0600, // 000D GETNGBL R3 K3
+ 0x8C0C0707, // 000E GETMET R3 R3 K7
+ 0x7C0C0200, // 000F CALL R3 1
+ 0x900A0C03, // 0010 SETMBR R2 K6 R3
+ 0x50080000, // 0011 LDBOOL R2 0 0
+ 0x90021002, // 0012 SETMBR R0 K8 R2
+ 0x9002130A, // 0013 SETMBR R0 K9 K10
+ 0x60080012, // 0014 GETGBL R2 G18
+ 0x7C080000, // 0015 CALL R2 0
+ 0x90021602, // 0016 SETMBR R0 K11 R2
+ 0x50080000, // 0017 LDBOOL R2 0 0
+ 0x90021802, // 0018 SETMBR R0 K12 R2
+ 0x60080013, // 0019 GETGBL R2 G19
+ 0x7C080000, // 001A CALL R2 0
+ 0x90021A02, // 001B SETMBR R0 K13 R2
+ 0x90021D0F, // 001C SETMBR R0 K14 K15
+ 0x50080000, // 001D LDBOOL R2 0 0
+ 0x90022002, // 001E SETMBR R0 K16 R2
+ 0x50080000, // 001F LDBOOL R2 0 0
+ 0x90022202, // 0020 SETMBR R0 K17 R2
+ 0x8C080112, // 0021 GETMET R2 R0 K18
+ 0x7C080200, // 0022 CALL R2 1
+ 0xB80A0600, // 0023 GETNGBL R2 K3
+ 0x8C080514, // 0024 GETMET R2 R2 K20
+ 0x5C100000, // 0025 MOVE R4 R0
+ 0x7C080400, // 0026 CALL R2 2
+ 0x90022602, // 0027 SETMBR R0 K19 R2
+ 0x88080113, // 0028 GETMBR R2 R0 K19
+ 0x8C080515, // 0029 GETMET R2 R2 K21
+ 0x7C080200, // 002A CALL R2 1
+ 0xB80A0600, // 002B GETNGBL R2 K3
+ 0x8C080517, // 002C GETMET R2 R2 K23
+ 0x5C100000, // 002D MOVE R4 R0
+ 0x7C080400, // 002E CALL R2 2
+ 0x90022C02, // 002F SETMBR R0 K22 R2
+ 0xB80A0600, // 0030 GETNGBL R2 K3
+ 0x8C080519, // 0031 GETMET R2 R2 K25
+ 0x5C100000, // 0032 MOVE R4 R0
+ 0x7C080400, // 0033 CALL R2 2
+ 0x90023002, // 0034 SETMBR R0 K24 R2
+ 0xB80A0600, // 0035 GETNGBL R2 K3
+ 0x8C080505, // 0036 GETMET R2 R2 K5
+ 0x5C100000, // 0037 MOVE R4 R0
+ 0x7C080400, // 0038 CALL R2 2
+ 0x90023402, // 0039 SETMBR R0 K26 R2
+ 0xB80A0200, // 003A GETNGBL R2 K1
+ 0x8C08051B, // 003B GETMET R2 R2 K27
+ 0x7C080200, // 003C CALL R2 1
+ 0x9408051C, // 003D GETIDX R2 R2 K28
+ 0x740A0004, // 003E JMPT R2 #0044
+ 0xB80A0200, // 003F GETNGBL R2 K1
+ 0x8C08051D, // 0040 GETMET R2 R2 K29
+ 0x7C080200, // 0041 CALL R2 1
+ 0x9408051C, // 0042 GETIDX R2 R2 K28
+ 0x780A0001, // 0043 JMPF R2 #0046
+ 0x8C08011E, // 0044 GETMET R2 R0 K30
+ 0x7C080200, // 0045 CALL R2 1
+ 0xB80A0200, // 0046 GETNGBL R2 K1
+ 0x8C08051B, // 0047 GETMET R2 R2 K27
+ 0x7C080200, // 0048 CALL R2 1
+ 0x9408051C, // 0049 GETIDX R2 R2 K28
+ 0x740A0005, // 004A JMPT R2 #0051
+ 0xB80A0200, // 004B GETNGBL R2 K1
+ 0x8C08051F, // 004C GETMET R2 R2 K31
+ 0x58100020, // 004D LDCONST R4 K32
+ 0x84140000, // 004E CLOSURE R5 P0
+ 0x58180021, // 004F LDCONST R6 K33
+ 0x7C080800, // 0050 CALL R2 4
+ 0xB80A0200, // 0051 GETNGBL R2 K1
+ 0x8C08051D, // 0052 GETMET R2 R2 K29
+ 0x7C080200, // 0053 CALL R2 1
+ 0x9408051C, // 0054 GETIDX R2 R2 K28
+ 0x740A0005, // 0055 JMPT R2 #005C
+ 0xB80A0200, // 0056 GETNGBL R2 K1
+ 0x8C08051F, // 0057 GETMET R2 R2 K31
+ 0x58100022, // 0058 LDCONST R4 K34
+ 0x84140001, // 0059 CLOSURE R5 P1
+ 0x58180021, // 005A LDCONST R6 K33
+ 0x7C080800, // 005B CALL R2 4
+ 0x8C080123, // 005C GETMET R2 R0 K35
+ 0x7C080200, // 005D CALL R2 1
+ 0xB80A0200, // 005E GETNGBL R2 K1
+ 0x8C080524, // 005F GETMET R2 R2 K36
+ 0x5C100000, // 0060 MOVE R4 R0
+ 0x7C080400, // 0061 CALL R2 2
+ 0x8C080125, // 0062 GETMET R2 R0 K37
+ 0x7C080200, // 0063 CALL R2 1
+ 0xA0000000, // 0064 CLOSE R0
+ 0x80000000, // 0065 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ }),
+ be_str_weak(is_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: adjust_next_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(next_ep),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(adjust_next_ep),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000A, // 0005 EXBLK 0 #0011
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x600C0009, // 0008 GETGBL R3 G9
+ 0x5C100400, // 0009 MOVE R4 R2
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0x28100604, // 000C GE R4 R3 R4
+ 0x78120001, // 000D JMPF R4 #0010
+ 0x00100703, // 000E ADD R4 R3 K3
+ 0x90020404, // 000F SETMBR R0 K2 R4
+ 0x7001FFF4, // 0010 JMP #0006
+ 0x58040004, // 0011 LDCONST R1 K4
+ 0xAC040200, // 0012 CATCH R1 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(is_root_commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(publish_result),
+ /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
+ /* K4 */ be_nested_str_weak(Matter),
+ /* K5 */ be_nested_str_weak(commissioning_open),
+ /* K6 */ be_nested_str_weak(mdns_remove_PASE),
+ /* K7 */ be_nested_str_weak(commissioning_iterations),
+ /* K8 */ be_nested_str_weak(commissioning_discriminator),
+ /* K9 */ be_nested_str_weak(commissioning_salt),
+ /* K10 */ be_nested_str_weak(commissioning_w0),
+ /* K11 */ be_nested_str_weak(commissioning_L),
+ /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(stop_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x78060004, // 0002 JMPF R1 #0008
+ 0xB8060200, // 0003 GETNGBL R1 K1
+ 0x8C040302, // 0004 GETMET R1 R1 K2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x58100004, // 0006 LDCONST R4 K4
+ 0x7C040600, // 0007 CALL R1 3
+ 0x4C040000, // 0008 LDNIL R1
+ 0x90020A01, // 0009 SETMBR R0 K5 R1
+ 0x8C040106, // 000A GETMET R1 R0 K6
+ 0x7C040200, // 000B CALL R1 1
+ 0x4C040000, // 000C LDNIL R1
+ 0x90020E01, // 000D SETMBR R0 K7 R1
+ 0x4C040000, // 000E LDNIL R1
+ 0x90021001, // 000F SETMBR R0 K8 R1
+ 0x4C040000, // 0010 LDNIL R1
+ 0x90021201, // 0011 SETMBR R0 K9 R1
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90021401, // 0013 SETMBR R0 K10 R1
+ 0x4C040000, // 0014 LDNIL R1
+ 0x90021601, // 0015 SETMBR R0 K11 R1
+ 0x4C040000, // 0016 LDNIL R1
+ 0x90021801, // 0017 SETMBR R0 K12 R1
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_sensors_list
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(k2l),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(Temperature),
+ /* K3 */ be_nested_str_weak(_X23Temperature),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(type),
+ /* K6 */ be_nested_str_weak(temperature),
+ /* K7 */ be_nested_str_weak(filter),
+ /* K8 */ be_nested_str_weak(stop_iteration),
+ /* K9 */ be_nested_str_weak(Pressure),
+ /* K10 */ be_nested_str_weak(_X23Pressure),
+ /* K11 */ be_nested_str_weak(pressure),
+ /* K12 */ be_nested_str_weak(Illuminance),
+ /* K13 */ be_nested_str_weak(_X23Illuminance),
+ /* K14 */ be_nested_str_weak(illuminance),
+ /* K15 */ be_nested_str_weak(Humidity),
+ /* K16 */ be_nested_str_weak(_X23Humidity),
+ /* K17 */ be_nested_str_weak(humidity),
+ }),
+ be_str_weak(autoconf_sensors_list),
+ &be_const_str_solidified,
+ ( &(const binstruction[119]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100100, // 0003 GETMET R4 R0 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA8020013, // 0007 EXBLK 0 #001C
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x94140204, // 000A GETIDX R5 R1 R4
+ 0x6018000F, // 000B GETGBL R6 G15
+ 0x5C1C0A00, // 000C MOVE R7 R5
+ 0x60200013, // 000D GETGBL R8 G19
+ 0x7C180400, // 000E CALL R6 2
+ 0x781A000A, // 000F JMPF R6 #001B
+ 0x8C180B01, // 0010 GETMET R6 R5 K1
+ 0x58200002, // 0011 LDCONST R8 K2
+ 0x7C180400, // 0012 CALL R6 2
+ 0x781A0006, // 0013 JMPF R6 #001B
+ 0x00180903, // 0014 ADD R6 R4 K3
+ 0x8C1C0504, // 0015 GETMET R7 R2 K4
+ 0x60240013, // 0016 GETGBL R9 G19
+ 0x7C240000, // 0017 CALL R9 0
+ 0x98260B06, // 0018 SETIDX R9 K5 K6
+ 0x98260E06, // 0019 SETIDX R9 K7 R6
+ 0x7C1C0400, // 001A CALL R7 2
+ 0x7001FFEB, // 001B JMP #0008
+ 0x580C0008, // 001C LDCONST R3 K8
+ 0xAC0C0200, // 001D CATCH R3 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x600C0010, // 001F GETGBL R3 G16
+ 0x8C100100, // 0020 GETMET R4 R0 K0
+ 0x5C180200, // 0021 MOVE R6 R1
+ 0x7C100400, // 0022 CALL R4 2
+ 0x7C0C0200, // 0023 CALL R3 1
+ 0xA8020013, // 0024 EXBLK 0 #0039
+ 0x5C100600, // 0025 MOVE R4 R3
+ 0x7C100000, // 0026 CALL R4 0
+ 0x94140204, // 0027 GETIDX R5 R1 R4
+ 0x6018000F, // 0028 GETGBL R6 G15
+ 0x5C1C0A00, // 0029 MOVE R7 R5
+ 0x60200013, // 002A GETGBL R8 G19
+ 0x7C180400, // 002B CALL R6 2
+ 0x781A000A, // 002C JMPF R6 #0038
+ 0x8C180B01, // 002D GETMET R6 R5 K1
+ 0x58200009, // 002E LDCONST R8 K9
+ 0x7C180400, // 002F CALL R6 2
+ 0x781A0006, // 0030 JMPF R6 #0038
+ 0x0018090A, // 0031 ADD R6 R4 K10
+ 0x8C1C0504, // 0032 GETMET R7 R2 K4
+ 0x60240013, // 0033 GETGBL R9 G19
+ 0x7C240000, // 0034 CALL R9 0
+ 0x98260B0B, // 0035 SETIDX R9 K5 K11
+ 0x98260E06, // 0036 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0037 CALL R7 2
+ 0x7001FFEB, // 0038 JMP #0025
+ 0x580C0008, // 0039 LDCONST R3 K8
+ 0xAC0C0200, // 003A CATCH R3 1 0
+ 0xB0080000, // 003B RAISE 2 R0 R0
+ 0x600C0010, // 003C GETGBL R3 G16
+ 0x8C100100, // 003D GETMET R4 R0 K0
+ 0x5C180200, // 003E MOVE R6 R1
+ 0x7C100400, // 003F CALL R4 2
+ 0x7C0C0200, // 0040 CALL R3 1
+ 0xA8020013, // 0041 EXBLK 0 #0056
+ 0x5C100600, // 0042 MOVE R4 R3
+ 0x7C100000, // 0043 CALL R4 0
+ 0x94140204, // 0044 GETIDX R5 R1 R4
+ 0x6018000F, // 0045 GETGBL R6 G15
+ 0x5C1C0A00, // 0046 MOVE R7 R5
+ 0x60200013, // 0047 GETGBL R8 G19
+ 0x7C180400, // 0048 CALL R6 2
+ 0x781A000A, // 0049 JMPF R6 #0055
+ 0x8C180B01, // 004A GETMET R6 R5 K1
+ 0x5820000C, // 004B LDCONST R8 K12
+ 0x7C180400, // 004C CALL R6 2
+ 0x781A0006, // 004D JMPF R6 #0055
+ 0x0018090D, // 004E ADD R6 R4 K13
+ 0x8C1C0504, // 004F GETMET R7 R2 K4
+ 0x60240013, // 0050 GETGBL R9 G19
+ 0x7C240000, // 0051 CALL R9 0
+ 0x98260B0E, // 0052 SETIDX R9 K5 K14
+ 0x98260E06, // 0053 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x7001FFEB, // 0055 JMP #0042
+ 0x580C0008, // 0056 LDCONST R3 K8
+ 0xAC0C0200, // 0057 CATCH R3 1 0
+ 0xB0080000, // 0058 RAISE 2 R0 R0
+ 0x600C0010, // 0059 GETGBL R3 G16
+ 0x8C100100, // 005A GETMET R4 R0 K0
+ 0x5C180200, // 005B MOVE R6 R1
+ 0x7C100400, // 005C CALL R4 2
+ 0x7C0C0200, // 005D CALL R3 1
+ 0xA8020013, // 005E EXBLK 0 #0073
+ 0x5C100600, // 005F MOVE R4 R3
+ 0x7C100000, // 0060 CALL R4 0
+ 0x94140204, // 0061 GETIDX R5 R1 R4
+ 0x6018000F, // 0062 GETGBL R6 G15
+ 0x5C1C0A00, // 0063 MOVE R7 R5
+ 0x60200013, // 0064 GETGBL R8 G19
+ 0x7C180400, // 0065 CALL R6 2
+ 0x781A000A, // 0066 JMPF R6 #0072
+ 0x8C180B01, // 0067 GETMET R6 R5 K1
+ 0x5820000F, // 0068 LDCONST R8 K15
+ 0x7C180400, // 0069 CALL R6 2
+ 0x781A0006, // 006A JMPF R6 #0072
+ 0x00180910, // 006B ADD R6 R4 K16
+ 0x8C1C0504, // 006C GETMET R7 R2 K4
+ 0x60240013, // 006D GETGBL R9 G19
+ 0x7C240000, // 006E CALL R9 0
+ 0x98260B11, // 006F SETIDX R9 K5 K17
+ 0x98260E06, // 0070 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0071 CALL R7 2
+ 0x7001FFEB, // 0072 JMP #005F
+ 0x580C0008, // 0073 LDCONST R3 K8
+ 0xAC0C0200, // 0074 CATCH R3 1 0
+ 0xB0080000, // 0075 RAISE 2 R0 R0
+ 0x80040400, // 0076 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: update_remotes_info
********************************************************************/
@@ -3480,128 +3670,12 @@ be_local_closure(class_Matter_Device_update_remotes_info, /* name */
/********************************************************************
-** Solidified function: check_config_ep
+** Solidified function: get_plugin_class_displayname
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_check_config_ep, /* name */
+be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
be_nested_proto(
- 10, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
- /* K12 */ be_nested_str_weak(next_ep),
- /* K13 */ be_const_int(1),
- }),
- be_str_weak(check_config_ep),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x600C0010, // 0003 GETGBL R3 G16
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x8C100901, // 0005 GETMET R4 R4 K1
- 0x7C100200, // 0006 CALL R4 1
- 0x7C0C0200, // 0007 CALL R3 1
- 0xA8020007, // 0008 EXBLK 0 #0011
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x8C140502, // 000B GETMET R5 R2 K2
- 0x601C0009, // 000C GETGBL R7 G9
- 0x5C200800, // 000D MOVE R8 R4
- 0x7C1C0200, // 000E CALL R7 1
- 0x7C140400, // 000F CALL R5 2
- 0x7001FFF7, // 0010 JMP #0009
- 0x580C0003, // 0011 LDCONST R3 K3
- 0xAC0C0200, // 0012 CATCH R3 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x600C0010, // 0014 GETGBL R3 G16
- 0x5C100400, // 0015 MOVE R4 R2
- 0x7C0C0200, // 0016 CALL R3 1
- 0xA8020030, // 0017 EXBLK 0 #0049
- 0x5C100600, // 0018 MOVE R4 R3
- 0x7C100000, // 0019 CALL R4 0
- 0x1C140904, // 001A EQ R5 R4 K4
- 0x7816000B, // 001B JMPF R5 #0028
- 0xB8160A00, // 001C GETNGBL R5 K5
- 0x58180006, // 001D LDCONST R6 K6
- 0x581C0007, // 001E LDCONST R7 K7
- 0x7C140400, // 001F CALL R5 2
- 0x88140100, // 0020 GETMBR R5 R0 K0
- 0x8C140B08, // 0021 GETMET R5 R5 K8
- 0x601C0008, // 0022 GETGBL R7 G8
- 0x5C200800, // 0023 MOVE R8 R4
- 0x7C1C0200, // 0024 CALL R7 1
- 0x7C140400, // 0025 CALL R5 2
- 0x50040200, // 0026 LDBOOL R1 1 0
- 0x7002001F, // 0027 JMP #0048
- 0xB8161200, // 0028 GETNGBL R5 K9
- 0x88140B0A, // 0029 GETMBR R5 R5 K10
- 0x1C140805, // 002A EQ R5 R4 R5
- 0x7816001B, // 002B JMPF R5 #0048
- 0x50040200, // 002C LDBOOL R1 1 0
- 0xB8160A00, // 002D GETNGBL R5 K5
- 0x60180018, // 002E GETGBL R6 G24
- 0x581C000B, // 002F LDCONST R7 K11
- 0x5C200800, // 0030 MOVE R8 R4
- 0x8824010C, // 0031 GETMBR R9 R0 K12
- 0x7C180600, // 0032 CALL R6 3
- 0x581C0007, // 0033 LDCONST R7 K7
- 0x7C140400, // 0034 CALL R5 2
- 0x60140008, // 0035 GETGBL R5 G8
- 0x8818010C, // 0036 GETMBR R6 R0 K12
- 0x7C140200, // 0037 CALL R5 1
- 0x88180100, // 0038 GETMBR R6 R0 K0
- 0x601C0008, // 0039 GETGBL R7 G8
- 0x5C200800, // 003A MOVE R8 R4
- 0x7C1C0200, // 003B CALL R7 1
- 0x88200100, // 003C GETMBR R8 R0 K0
- 0x941C1007, // 003D GETIDX R7 R8 R7
- 0x98180A07, // 003E SETIDX R6 R5 R7
- 0x88140100, // 003F GETMBR R5 R0 K0
- 0x8C140B08, // 0040 GETMET R5 R5 K8
- 0x601C0008, // 0041 GETGBL R7 G8
- 0x5C200800, // 0042 MOVE R8 R4
- 0x7C1C0200, // 0043 CALL R7 1
- 0x7C140400, // 0044 CALL R5 2
- 0x8814010C, // 0045 GETMBR R5 R0 K12
- 0x00140B0D, // 0046 ADD R5 R5 K13
- 0x90021805, // 0047 SETMBR R0 K12 R5
- 0x7001FFCE, // 0048 JMP #0018
- 0x580C0003, // 0049 LDCONST R3 K3
- 0xAC0C0200, // 004A CATCH R3 1 0
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80040200, // 004C RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_commissioning_complete
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
- be_nested_proto(
- 10, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -3609,44 +3683,894 @@ be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(get_fabric),
- /* K1 */ be_nested_str_weak(get_fabric_id),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(DISPLAY_NAME),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_displayname),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete_deferred
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_commissioning_complete),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_commissioning_complete_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _trigger_read_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(read_sensors),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
+ /* K7 */ be_nested_str_weak(load),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(plugins),
+ /* K10 */ be_nested_str_weak(parse_sensors),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
+ }),
+ be_str_weak(_trigger_read_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0200, // 0004 GETNGBL R3 K1
+ 0x8C0C0703, // 0005 GETMET R3 R3 K3
+ 0x58140004, // 0006 LDCONST R5 K4
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x780E0006, // 0008 JMPF R3 #0010
+ 0xB80E0A00, // 0009 GETNGBL R3 K5
+ 0x60100008, // 000A GETGBL R4 G8
+ 0x5C140400, // 000B MOVE R5 R2
+ 0x7C100200, // 000C CALL R4 1
+ 0x00120C04, // 000D ADD R4 K6 R4
+ 0x58140004, // 000E LDCONST R5 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x1C0C0403, // 0011 EQ R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x80000600, // 0013 RET 0
+ 0x8C0C0307, // 0014 GETMET R3 R1 K7
+ 0x5C140400, // 0015 MOVE R5 R2
+ 0x7C0C0400, // 0016 CALL R3 2
+ 0x4C100000, // 0017 LDNIL R4
+ 0x20100604, // 0018 NE R4 R3 R4
+ 0x7812000D, // 0019 JMPF R4 #0028
+ 0x58100008, // 001A LDCONST R4 K8
+ 0x6014000C, // 001B GETGBL R5 G12
+ 0x88180109, // 001C GETMBR R6 R0 K9
+ 0x7C140200, // 001D CALL R5 1
+ 0x14140805, // 001E LT R5 R4 R5
+ 0x78160006, // 001F JMPF R5 #0027
+ 0x88140109, // 0020 GETMBR R5 R0 K9
+ 0x94140A04, // 0021 GETIDX R5 R5 R4
+ 0x8C140B0A, // 0022 GETMET R5 R5 K10
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C140400, // 0024 CALL R5 2
+ 0x0010090B, // 0025 ADD R4 R4 K11
+ 0x7001FFF3, // 0026 JMP #001B
+ 0x70020006, // 0027 JMP #002F
+ 0xB8120A00, // 0028 GETNGBL R4 K5
+ 0x60140008, // 0029 GETGBL R5 G8
+ 0x5C180400, // 002A MOVE R6 R2
+ 0x7C140200, // 002B CALL R5 1
+ 0x00161805, // 002C ADD R5 K12 R5
+ 0x58180004, // 002D LDCONST R6 K4
+ 0x7C100400, // 002E CALL R4 2
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_second
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_second, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(every_second),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(events),
+ /* K4 */ be_nested_str_weak(commissioning_open),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(time_reached),
+ }),
+ be_str_weak(every_second),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040301, // 0004 GETMET R1 R1 K1
+ 0x7C040200, // 0005 CALL R1 1
+ 0x88040103, // 0006 GETMBR R1 R0 K3
+ 0x8C040301, // 0007 GETMET R1 R1 K1
+ 0x7C040200, // 0008 CALL R1 1
+ 0x88040104, // 0009 GETMBR R1 R0 K4
+ 0x4C080000, // 000A LDNIL R2
+ 0x20040202, // 000B NE R1 R1 R2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0xB8060A00, // 000D GETNGBL R1 K5
+ 0x8C040306, // 000E GETMET R1 R1 K6
+ 0x880C0104, // 000F GETMBR R3 R0 K4
+ 0x7C040400, // 0010 CALL R1 2
+ 0x78060001, // 0011 JMPF R1 #0014
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90020801, // 0013 SETMBR R0 K4 R1
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 8, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(millis),
+ /* K3 */ be_nested_str_weak(commissioning_iterations),
+ /* K4 */ be_nested_str_weak(commissioning_discriminator),
+ /* K5 */ be_nested_str_weak(commissioning_salt),
+ /* K6 */ be_nested_str_weak(commissioning_w0),
+ /* K7 */ be_nested_str_weak(commissioning_L),
+ /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
+ /* K9 */ be_nested_str_weak(wifi),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K13 */ be_nested_str_weak(add_rule),
+ /* K14 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K15 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0xB8220200, // 0000 GETNGBL R8 K1
+ 0x8C201102, // 0001 GETMET R8 R8 K2
+ 0x7C200200, // 0002 CALL R8 1
+ 0x542603E7, // 0003 LDINT R9 1000
+ 0x08240209, // 0004 MUL R9 R1 R9
+ 0x00201009, // 0005 ADD R8 R8 R9
+ 0x90020008, // 0006 SETMBR R0 K0 R8
+ 0x90020602, // 0007 SETMBR R0 K3 R2
+ 0x90020803, // 0008 SETMBR R0 K4 R3
+ 0x90020A04, // 0009 SETMBR R0 K5 R4
+ 0x90020C05, // 000A SETMBR R0 K6 R5
+ 0x90020E06, // 000B SETMBR R0 K7 R6
+ 0x90021007, // 000C SETMBR R0 K8 R7
+ 0xB8220200, // 000D GETNGBL R8 K1
+ 0x8C201109, // 000E GETMET R8 R8 K9
+ 0x7C200200, // 000F CALL R8 1
+ 0x9420110A, // 0010 GETIDX R8 R8 K10
+ 0x74220004, // 0011 JMPT R8 #0017
+ 0xB8220200, // 0012 GETNGBL R8 K1
+ 0x8C20110B, // 0013 GETMET R8 R8 K11
+ 0x7C200200, // 0014 CALL R8 1
+ 0x9420110A, // 0015 GETIDX R8 R8 K10
+ 0x78220002, // 0016 JMPF R8 #001A
+ 0x8C20010C, // 0017 GETMET R8 R0 K12
+ 0x7C200200, // 0018 CALL R8 1
+ 0x7002000B, // 0019 JMP #0026
+ 0xB8220200, // 001A GETNGBL R8 K1
+ 0x8C20110D, // 001B GETMET R8 R8 K13
+ 0x5828000E, // 001C LDCONST R10 K14
+ 0x842C0000, // 001D CLOSURE R11 P0
+ 0x5830000C, // 001E LDCONST R12 K12
+ 0x7C200800, // 001F CALL R8 4
+ 0xB8220200, // 0020 GETNGBL R8 K1
+ 0x8C20110D, // 0021 GETMET R8 R8 K13
+ 0x5828000F, // 0022 LDCONST R10 K15
+ 0x842C0001, // 0023 CLOSURE R11 P1
+ 0x5830000C, // 0024 LDCONST R12 K12
+ 0x7C200800, // 0025 CALL R8 4
+ 0xA0000000, // 0026 CLOSE R0
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
/* K2 */ be_nested_str_weak(copy),
/* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_nested_str_weak(get_admin_vendor_name),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
+ /* K9 */ be_const_int(3),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(find),
+ /* K13 */ be_nested_str_weak(up),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K15 */ be_nested_str_weak(hostname_eth),
+ /* K16 */ be_nested_str_weak(add_service),
+ /* K17 */ be_nested_str_weak(_matter),
+ /* K18 */ be_nested_str_weak(_tcp),
+ /* K19 */ be_nested_str_weak(_I),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K21 */ be_nested_str_weak(add_subtype),
+ /* K22 */ be_nested_str_weak(wifi),
+ /* K23 */ be_nested_str_weak(hostname_wifi),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_const_int(2),
}),
- be_str_weak(start_commissioning_complete),
+ be_str_weak(mdns_announce_op_discovery),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x7C080200, // 0001 CALL R2 1
- 0x8C0C0501, // 0002 GETMET R3 R2 K1
+ ( &(const binstruction[115]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA802005F, // 0001 EXBLK 0 #0062
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
0x7C0C0200, // 0003 CALL R3 1
0x8C0C0702, // 0004 GETMET R3 R3 K2
0x7C0C0200, // 0005 CALL R3 1
0x8C0C0703, // 0006 GETMET R3 R3 K3
0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C100505, // 000A GETMET R4 R2 K5
- 0x7C100200, // 000B CALL R4 1
- 0xB8160C00, // 000C GETNGBL R5 K6
- 0x60180018, // 000D GETGBL R6 G24
- 0x581C0007, // 000E LDCONST R7 K7
- 0x5C200600, // 000F MOVE R8 R3
- 0x5C240800, // 0010 MOVE R9 R4
- 0x7C180600, // 0011 CALL R6 3
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x001E1005, // 0011 ADD R7 K8 R5
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0xB81A1400, // 0014 GETNGBL R6 K10
+ 0x8C180D0B, // 0015 GETMET R6 R6 K11
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180D0C, // 0017 GETMET R6 R6 K12
+ 0x5820000D, // 0018 LDCONST R8 K13
+ 0x7C180400, // 0019 CALL R6 2
+ 0x781A001E, // 001A JMPF R6 #003A
+ 0xB81A0E00, // 001B GETNGBL R6 K7
+ 0x601C0018, // 001C GETGBL R7 G24
+ 0x5820000E, // 001D LDCONST R8 K14
+ 0x5824000B, // 001E LDCONST R9 K11
+ 0x5C280A00, // 001F MOVE R10 R5
+ 0x882C010F, // 0020 GETMBR R11 R0 K15
+ 0x7C1C0800, // 0021 CALL R7 4
+ 0x58200009, // 0022 LDCONST R8 K9
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8C180510, // 0024 GETMET R6 R2 K16
+ 0x58200011, // 0025 LDCONST R8 K17
+ 0x58240012, // 0026 LDCONST R9 K18
+ 0x542A15A3, // 0027 LDINT R10 5540
+ 0x4C2C0000, // 0028 LDNIL R11
+ 0x5C300A00, // 0029 MOVE R12 R5
+ 0x8834010F, // 002A GETMBR R13 R0 K15
+ 0x7C180E00, // 002B CALL R6 7
+ 0x8C180905, // 002C GETMET R6 R4 K5
+ 0x7C180200, // 002D CALL R6 1
+ 0x001A2606, // 002E ADD R6 K19 R6
+ 0xB81E0E00, // 002F GETNGBL R7 K7
+ 0x00222806, // 0030 ADD R8 K20 R6
+ 0x58240009, // 0031 LDCONST R9 K9
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x8C1C0515, // 0033 GETMET R7 R2 K21
+ 0x58240011, // 0034 LDCONST R9 K17
+ 0x58280012, // 0035 LDCONST R10 K18
+ 0x5C2C0A00, // 0036 MOVE R11 R5
+ 0x8830010F, // 0037 GETMBR R12 R0 K15
+ 0x5C340C00, // 0038 MOVE R13 R6
+ 0x7C1C0C00, // 0039 CALL R7 6
+ 0xB81A1400, // 003A GETNGBL R6 K10
+ 0x8C180D16, // 003B GETMET R6 R6 K22
+ 0x7C180200, // 003C CALL R6 1
+ 0x8C180D0C, // 003D GETMET R6 R6 K12
+ 0x5820000D, // 003E LDCONST R8 K13
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A001E, // 0040 JMPF R6 #0060
+ 0xB81A0E00, // 0041 GETNGBL R6 K7
+ 0x601C0018, // 0042 GETGBL R7 G24
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x58240016, // 0044 LDCONST R9 K22
+ 0x5C280A00, // 0045 MOVE R10 R5
+ 0x882C0117, // 0046 GETMBR R11 R0 K23
+ 0x7C1C0800, // 0047 CALL R7 4
+ 0x58200009, // 0048 LDCONST R8 K9
+ 0x7C180400, // 0049 CALL R6 2
+ 0x8C180510, // 004A GETMET R6 R2 K16
+ 0x58200011, // 004B LDCONST R8 K17
+ 0x58240012, // 004C LDCONST R9 K18
+ 0x542A15A3, // 004D LDINT R10 5540
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x5C300A00, // 004F MOVE R12 R5
+ 0x88340117, // 0050 GETMBR R13 R0 K23
+ 0x7C180E00, // 0051 CALL R6 7
+ 0x8C180905, // 0052 GETMET R6 R4 K5
+ 0x7C180200, // 0053 CALL R6 1
+ 0x001A2606, // 0054 ADD R6 K19 R6
+ 0xB81E0E00, // 0055 GETNGBL R7 K7
+ 0x00222806, // 0056 ADD R8 K20 R6
+ 0x58240009, // 0057 LDCONST R9 K9
+ 0x7C1C0400, // 0058 CALL R7 2
+ 0x8C1C0515, // 0059 GETMET R7 R2 K21
+ 0x58240011, // 005A LDCONST R9 K17
+ 0x58280012, // 005B LDCONST R10 K18
+ 0x5C2C0A00, // 005C MOVE R11 R5
+ 0x88300117, // 005D GETMBR R12 R0 K23
+ 0x5C340C00, // 005E MOVE R13 R6
+ 0x7C1C0C00, // 005F CALL R7 6
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7002000F, // 0061 JMP #0072
+ 0xAC0C0002, // 0062 CATCH R3 0 2
+ 0x7002000C, // 0063 JMP #0071
+ 0xB8160E00, // 0064 GETNGBL R5 K7
+ 0x60180008, // 0065 GETGBL R6 G8
+ 0x5C1C0600, // 0066 MOVE R7 R3
+ 0x7C180200, // 0067 CALL R6 1
+ 0x001A3006, // 0068 ADD R6 K24 R6
+ 0x00180D19, // 0069 ADD R6 R6 K25
+ 0x601C0008, // 006A GETGBL R7 G8
+ 0x5C200800, // 006B MOVE R8 R4
+ 0x7C1C0200, // 006C CALL R7 1
+ 0x00180C07, // 006D ADD R6 R6 R7
+ 0x581C001A, // 006E LDCONST R7 K26
+ 0x7C140400, // 006F CALL R5 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_manual_pairing_code
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(root_discriminator),
+ /* K1 */ be_nested_str_weak(root_passcode),
+ /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Verhoeff),
+ /* K5 */ be_nested_str_weak(checksum),
+ }),
+ be_str_weak(compute_manual_pairing_code),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x540A0FFE, // 0001 LDINT R2 4095
+ 0x2C040202, // 0002 AND R1 R1 R2
+ 0x540A0009, // 0003 LDINT R2 10
+ 0x3C040202, // 0004 SHR R1 R1 R2
+ 0x88080100, // 0005 GETMBR R2 R0 K0
+ 0x540E02FF, // 0006 LDINT R3 768
+ 0x2C080403, // 0007 AND R2 R2 R3
+ 0x540E0005, // 0008 LDINT R3 6
+ 0x38080403, // 0009 SHL R2 R2 R3
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x54123FFE, // 000B LDINT R4 16383
+ 0x2C0C0604, // 000C AND R3 R3 R4
+ 0x30080403, // 000D OR R2 R2 R3
+ 0x880C0101, // 000E GETMBR R3 R0 K1
+ 0x5412000D, // 000F LDINT R4 14
+ 0x3C0C0604, // 0010 SHR R3 R3 R4
+ 0x60100018, // 0011 GETGBL R4 G24
+ 0x58140002, // 0012 LDCONST R5 K2
+ 0x5C180200, // 0013 MOVE R6 R1
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x5C200600, // 0015 MOVE R8 R3
+ 0x7C100800, // 0016 CALL R4 4
+ 0xB8160600, // 0017 GETNGBL R5 K3
+ 0x88140B04, // 0018 GETMBR R5 R5 K4
+ 0x8C140B05, // 0019 GETMET R5 R5 K5
+ 0x5C1C0800, // 001A MOVE R7 R4
+ 0x7C140400, // 001B CALL R5 2
+ 0x00100805, // 001C ADD R4 R4 R5
+ 0x80040800, // 001D RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: event_fabrics_saved
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(event_fabrics_saved),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x24040302, // 0003 GT R1 R1 K2
+ 0x78060005, // 0004 JMPF R1 #000B
+ 0x88040103, // 0005 GETMBR R1 R0 K3
+ 0x74060003, // 0006 JMPT R1 #000B
+ 0x50040200, // 0007 LDBOOL R1 1 0
+ 0x90020601, // 0008 SETMBR R0 K3 R1
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_device
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_device, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(plugins_config),
+ /* K5 */ be_nested_str_weak(autoconf_device_map),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(adjust_next_ep),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(count_active_fabrics),
+ /* K14 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(autoconf_device),
+ &be_const_str_solidified,
+ ( &(const binstruction[39]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0101, // 0002 GETMBR R3 R0 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x24080502, // 0004 GT R2 R2 K2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x80000400, // 0006 RET 0
+ 0x88080103, // 0007 GETMBR R2 R0 K3
+ 0x740A000E, // 0008 JMPT R2 #0018
+ 0x8C080105, // 0009 GETMET R2 R0 K5
+ 0x7C080200, // 000A CALL R2 1
+ 0x90020802, // 000B SETMBR R0 K4 R2
+ 0x60080013, // 000C GETGBL R2 G19
+ 0x7C080000, // 000D CALL R2 0
+ 0x90020C02, // 000E SETMBR R0 K6 R2
+ 0x8C080107, // 000F GETMET R2 R0 K7
+ 0x7C080200, // 0010 CALL R2 1
+ 0xB80A1000, // 0011 GETNGBL R2 K8
+ 0x600C0008, // 0012 GETGBL R3 G8
+ 0x88100104, // 0013 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x000E1203, // 0015 ADD R3 K9 R3
+ 0x5810000A, // 0016 LDCONST R4 K10
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8C08010B, // 0018 GETMET R2 R0 K11
+ 0x88100104, // 0019 GETMBR R4 R0 K4
+ 0x7C080400, // 001A CALL R2 2
+ 0x88080103, // 001B GETMBR R2 R0 K3
+ 0x740A0008, // 001C JMPT R2 #0026
+ 0x8808010C, // 001D GETMBR R2 R0 K12
+ 0x8C08050D, // 001E GETMET R2 R2 K13
+ 0x7C080200, // 001F CALL R2 1
+ 0x24080502, // 0020 GT R2 R2 K2
+ 0x780A0003, // 0021 JMPF R2 #0026
+ 0x50080200, // 0022 LDBOOL R2 1 0
+ 0x90020602, // 0023 SETMBR R0 K3 R2
+ 0x8C08010E, // 0024 GETMET R2 R0 K14
+ 0x7C080200, // 0025 CALL R2 1
+ 0x80000000, // 0026 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_root_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name */
+ be_nested_proto(
+ 22, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(PASE_TIMEOUT),
+ /* K1 */ be_nested_str_weak(compute_manual_pairing_code),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20Manual_X20pairing_X20code_X3A_X20_X25s),
+ /* K4 */ be_const_int(2),
+ /* K5 */ be_nested_str_weak(compute_qrcode_content),
+ /* K6 */ be_nested_str_weak(tasmota),
+ /* K7 */ be_nested_str_weak(publish_result),
+ /* K8 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A1_X2C_X22PairingCode_X22_X3A_X22_X25s_X22_X2C_X22QRCode_X22_X3A_X22_X25s_X22_X7D_X7D),
+ /* K9 */ be_nested_str_weak(Matter),
+ /* K10 */ be_nested_str_weak(crypto),
+ /* K11 */ be_nested_str_weak(random),
+ /* K12 */ be_nested_str_weak(add),
+ /* K13 */ be_nested_str_weak(root_passcode),
+ /* K14 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
+ /* K15 */ be_nested_str_weak(derive),
+ /* K16 */ be_nested_str_weak(PBKDF_ITERATIONS),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(EC_P256),
+ /* K19 */ be_nested_str_weak(mod),
+ /* K20 */ be_nested_str_weak(public_key),
+ /* K21 */ be_nested_str_weak(start_basic_commissioning),
+ /* K22 */ be_nested_str_weak(root_discriminator),
+ }),
+ be_str_weak(start_root_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[74]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x780A0000, // 0002 JMPF R2 #0004
+ 0x88040100, // 0003 GETMBR R1 R0 K0
+ 0x8C080101, // 0004 GETMET R2 R0 K1
+ 0x7C080200, // 0005 CALL R2 1
+ 0xB80E0400, // 0006 GETNGBL R3 K2
+ 0x60100018, // 0007 GETGBL R4 G24
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x5C180400, // 0009 MOVE R6 R2
+ 0x7C100400, // 000A CALL R4 2
+ 0x58140004, // 000B LDCONST R5 K4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0x8C0C0105, // 000D GETMET R3 R0 K5
+ 0x7C0C0200, // 000E CALL R3 1
+ 0xB8120C00, // 000F GETNGBL R4 K6
+ 0x8C100907, // 0010 GETMET R4 R4 K7
+ 0x60180018, // 0011 GETGBL R6 G24
0x581C0008, // 0012 LDCONST R7 K8
- 0x7C140400, // 0013 CALL R5 2
- 0x8C140109, // 0014 GETMET R5 R0 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x80000000, // 0016 RET 0
+ 0x5C200400, // 0013 MOVE R8 R2
+ 0x5C240600, // 0014 MOVE R9 R3
+ 0x7C180600, // 0015 CALL R6 3
+ 0x581C0009, // 0016 LDCONST R7 K9
+ 0x7C100600, // 0017 CALL R4 3
+ 0xA4121400, // 0018 IMPORT R4 K10
+ 0x8C14090B, // 0019 GETMET R5 R4 K11
+ 0x541E000F, // 001A LDINT R7 16
+ 0x7C140400, // 001B CALL R5 2
+ 0x60180015, // 001C GETGBL R6 G21
+ 0x7C180000, // 001D CALL R6 0
+ 0x8C180D0C, // 001E GETMET R6 R6 K12
+ 0x8820010D, // 001F GETMBR R8 R0 K13
+ 0x54260003, // 0020 LDINT R9 4
+ 0x7C180600, // 0021 CALL R6 3
+ 0x8C1C090E, // 0022 GETMET R7 R4 K14
+ 0x7C1C0200, // 0023 CALL R7 1
+ 0x8C1C0F0F, // 0024 GETMET R7 R7 K15
+ 0x5C240C00, // 0025 MOVE R9 R6
+ 0x5C280A00, // 0026 MOVE R10 R5
+ 0x882C0110, // 0027 GETMBR R11 R0 K16
+ 0x5432004F, // 0028 LDINT R12 80
+ 0x7C1C0A00, // 0029 CALL R7 5
+ 0x54220026, // 002A LDINT R8 39
+ 0x40222208, // 002B CONNECT R8 K17 R8
+ 0x94200E08, // 002C GETIDX R8 R7 R8
+ 0x54260027, // 002D LDINT R9 40
+ 0x542A004E, // 002E LDINT R10 79
+ 0x4024120A, // 002F CONNECT R9 R9 R10
+ 0x94240E09, // 0030 GETIDX R9 R7 R9
+ 0x8C280912, // 0031 GETMET R10 R4 K18
+ 0x7C280200, // 0032 CALL R10 1
+ 0x8C281513, // 0033 GETMET R10 R10 K19
+ 0x5C301000, // 0034 MOVE R12 R8
+ 0x7C280400, // 0035 CALL R10 2
+ 0x8C2C0912, // 0036 GETMET R11 R4 K18
+ 0x7C2C0200, // 0037 CALL R11 1
+ 0x8C2C1713, // 0038 GETMET R11 R11 K19
+ 0x5C341200, // 0039 MOVE R13 R9
+ 0x7C2C0400, // 003A CALL R11 2
+ 0x8C300912, // 003B GETMET R12 R4 K18
+ 0x7C300200, // 003C CALL R12 1
+ 0x8C301914, // 003D GETMET R12 R12 K20
+ 0x5C381600, // 003E MOVE R14 R11
+ 0x7C300400, // 003F CALL R12 2
+ 0x8C340115, // 0040 GETMET R13 R0 K21
+ 0x5C3C0200, // 0041 MOVE R15 R1
+ 0x88400110, // 0042 GETMBR R16 R0 K16
+ 0x88440116, // 0043 GETMBR R17 R0 K22
+ 0x5C480A00, // 0044 MOVE R18 R5
+ 0x5C4C1400, // 0045 MOVE R19 R10
+ 0x5C501800, // 0046 MOVE R20 R12
+ 0x4C540000, // 0047 LDNIL R21
+ 0x7C341000, // 0048 CALL R13 8
+ 0x80000000, // 0049 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_announce_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
})
)
);
@@ -3779,62 +4703,45 @@ be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
/********************************************************************
-** Solidified function: stop_basic_commissioning
+** Solidified function: find_plugin_by_endpoint
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
+be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
+ 6, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(is_root_commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(publish_result),
- /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
- /* K4 */ be_nested_str_weak(Matter),
- /* K5 */ be_nested_str_weak(commissioning_open),
- /* K6 */ be_nested_str_weak(mdns_remove_PASE),
- /* K7 */ be_nested_str_weak(commissioning_iterations),
- /* K8 */ be_nested_str_weak(commissioning_discriminator),
- /* K9 */ be_nested_str_weak(commissioning_salt),
- /* K10 */ be_nested_str_weak(commissioning_w0),
- /* K11 */ be_nested_str_weak(commissioning_L),
- /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_endpoint),
+ /* K3 */ be_const_int(1),
}),
- be_str_weak(stop_basic_commissioning),
+ be_str_weak(find_plugin_by_endpoint),
&be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x78060004, // 0002 JMPF R1 #0008
- 0xB8060200, // 0003 GETNGBL R1 K1
- 0x8C040302, // 0004 GETMET R1 R1 K2
- 0x580C0003, // 0005 LDCONST R3 K3
- 0x58100004, // 0006 LDCONST R4 K4
- 0x7C040600, // 0007 CALL R1 3
- 0x4C040000, // 0008 LDNIL R1
- 0x90020A01, // 0009 SETMBR R0 K5 R1
- 0x8C040106, // 000A GETMET R1 R0 K6
- 0x7C040200, // 000B CALL R1 1
- 0x4C040000, // 000C LDNIL R1
- 0x90020E01, // 000D SETMBR R0 K7 R1
- 0x4C040000, // 000E LDNIL R1
- 0x90021001, // 000F SETMBR R0 K8 R1
- 0x4C040000, // 0010 LDNIL R1
- 0x90021201, // 0011 SETMBR R0 K9 R1
- 0x4C040000, // 0012 LDNIL R1
- 0x90021401, // 0013 SETMBR R0 K10 R1
- 0x4C040000, // 0014 LDNIL R1
- 0x90021601, // 0015 SETMBR R0 K11 R1
- 0x4C040000, // 0016 LDNIL R1
- 0x90021801, // 0017 SETMBR R0 K12 R1
- 0x80000000, // 0018 RET 0
+ ( &(const binstruction[17]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0008, // 0005 JMPF R3 #000F
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x8C100702, // 0008 GETMET R4 R3 K2
+ 0x7C100200, // 0009 CALL R4 1
+ 0x1C100801, // 000A EQ R4 R4 R1
+ 0x78120000, // 000B JMPF R4 #000D
+ 0x80040600, // 000C RET 1 R3
+ 0x00080503, // 000D ADD R2 R2 K3
+ 0x7001FFF1, // 000E JMP #0001
+ 0x4C0C0000, // 000F LDNIL R3
+ 0x80040600, // 0010 RET 1 R3
})
)
);
@@ -3842,73 +4749,359 @@ be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
/********************************************************************
-** Solidified function: _compute_pbkdf
+** Solidified function: mdns_announce_PASE
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
+be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
be_nested_proto(
- 13, /* nstack */
- 4, /* argc */
+ 12, /* nstack */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(add),
- /* K2 */ be_nested_str_weak(PBKDF2_HMAC_SHA256),
- /* K3 */ be_nested_str_weak(derive),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(root_w0),
- /* K6 */ be_nested_str_weak(EC_P256),
- /* K7 */ be_nested_str_weak(mod),
- /* K8 */ be_nested_str_weak(root_L),
- /* K9 */ be_nested_str_weak(public_key),
+ ( &(const bvalue[40]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(crypto),
+ /* K2 */ be_nested_str_weak(VP),
+ /* K3 */ be_nested_str_weak(_X25s_X2B_X25s),
+ /* K4 */ be_nested_str_weak(VENDOR_ID),
+ /* K5 */ be_nested_str_weak(PRODUCT_ID),
+ /* K6 */ be_nested_str_weak(D),
+ /* K7 */ be_nested_str_weak(commissioning_discriminator),
+ /* K8 */ be_nested_str_weak(CM),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(T),
+ /* K11 */ be_const_int(0),
+ /* K12 */ be_nested_str_weak(SII),
+ /* K13 */ be_nested_str_weak(SAI),
+ /* K14 */ be_nested_str_weak(commissioning_instance_wifi),
+ /* K15 */ be_nested_str_weak(random),
+ /* K16 */ be_nested_str_weak(tohex),
+ /* K17 */ be_nested_str_weak(commissioning_instance_eth),
+ /* K18 */ be_nested_str_weak(hostname_eth),
+ /* K19 */ be_nested_str_weak(add_service),
+ /* K20 */ be_nested_str_weak(_matterc),
+ /* K21 */ be_nested_str_weak(_udp),
+ /* K22 */ be_nested_str_weak(mdns_pase_eth),
+ /* K23 */ be_nested_str_weak(log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20announce_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K25 */ be_nested_str_weak(eth),
+ /* K26 */ be_const_int(2),
+ /* K27 */ be_nested_str_weak(_L),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K29 */ be_const_int(3),
+ /* K30 */ be_nested_str_weak(add_subtype),
+ /* K31 */ be_nested_str_weak(_S),
+ /* K32 */ be_nested_str_weak(_V),
+ /* K33 */ be_nested_str_weak(_CM1),
+ /* K34 */ be_nested_str_weak(hostname_wifi),
+ /* K35 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K36 */ be_nested_str_weak(MTR_X3A_X20starting_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K37 */ be_nested_str_weak(wifi),
+ /* K38 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K39 */ be_nested_str_weak(_X7C),
}),
- be_str_weak(_compute_pbkdf),
+ be_str_weak(mdns_announce_PASE),
+ &be_const_str_solidified,
+ ( &(const binstruction[222]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xA40A0200, // 0001 IMPORT R2 K1
+ 0x600C0013, // 0002 GETGBL R3 G19
+ 0x7C0C0000, // 0003 CALL R3 0
+ 0x60100018, // 0004 GETGBL R4 G24
+ 0x58140003, // 0005 LDCONST R5 K3
+ 0x88180104, // 0006 GETMBR R6 R0 K4
+ 0x881C0105, // 0007 GETMBR R7 R0 K5
+ 0x7C100600, // 0008 CALL R4 3
+ 0x980E0404, // 0009 SETIDX R3 K2 R4
+ 0x88100107, // 000A GETMBR R4 R0 K7
+ 0x980E0C04, // 000B SETIDX R3 K6 R4
+ 0x980E1109, // 000C SETIDX R3 K8 K9
+ 0x980E150B, // 000D SETIDX R3 K10 K11
+ 0x54121387, // 000E LDINT R4 5000
+ 0x980E1804, // 000F SETIDX R3 K12 R4
+ 0x5412012B, // 0010 LDINT R4 300
+ 0x980E1A04, // 0011 SETIDX R3 K13 R4
+ 0x8C10050F, // 0012 GETMET R4 R2 K15
+ 0x541A0007, // 0013 LDINT R6 8
+ 0x7C100400, // 0014 CALL R4 2
+ 0x8C100910, // 0015 GETMET R4 R4 K16
+ 0x7C100200, // 0016 CALL R4 1
+ 0x90021C04, // 0017 SETMBR R0 K14 R4
+ 0x8C10050F, // 0018 GETMET R4 R2 K15
+ 0x541A0007, // 0019 LDINT R6 8
+ 0x7C100400, // 001A CALL R4 2
+ 0x8C100910, // 001B GETMET R4 R4 K16
+ 0x7C100200, // 001C CALL R4 1
+ 0x90022204, // 001D SETMBR R0 K17 R4
+ 0xA80200AD, // 001E EXBLK 0 #00CD
+ 0x88100112, // 001F GETMBR R4 R0 K18
+ 0x78120053, // 0020 JMPF R4 #0075
+ 0x8C100313, // 0021 GETMET R4 R1 K19
+ 0x58180014, // 0022 LDCONST R6 K20
+ 0x581C0015, // 0023 LDCONST R7 K21
+ 0x542215A3, // 0024 LDINT R8 5540
+ 0x5C240600, // 0025 MOVE R9 R3
+ 0x88280111, // 0026 GETMBR R10 R0 K17
+ 0x882C0112, // 0027 GETMBR R11 R0 K18
+ 0x7C100E00, // 0028 CALL R4 7
+ 0x50100200, // 0029 LDBOOL R4 1 0
+ 0x90022C04, // 002A SETMBR R0 K22 R4
+ 0xB8122E00, // 002B GETNGBL R4 K23
+ 0x60140018, // 002C GETGBL R5 G24
+ 0x58180018, // 002D LDCONST R6 K24
+ 0x581C0019, // 002E LDCONST R7 K25
+ 0x88200111, // 002F GETMBR R8 R0 K17
+ 0x88240112, // 0030 GETMBR R9 R0 K18
+ 0x7C140800, // 0031 CALL R5 4
+ 0x5818001A, // 0032 LDCONST R6 K26
+ 0x7C100400, // 0033 CALL R4 2
+ 0x60100008, // 0034 GETGBL R4 G8
+ 0x88140107, // 0035 GETMBR R5 R0 K7
+ 0x541A0FFE, // 0036 LDINT R6 4095
+ 0x2C140A06, // 0037 AND R5 R5 R6
+ 0x7C100200, // 0038 CALL R4 1
+ 0x00123604, // 0039 ADD R4 K27 R4
+ 0xB8162E00, // 003A GETNGBL R5 K23
+ 0x001A3804, // 003B ADD R6 K28 R4
+ 0x581C001D, // 003C LDCONST R7 K29
+ 0x7C140400, // 003D CALL R5 2
+ 0x8C14031E, // 003E GETMET R5 R1 K30
+ 0x581C0014, // 003F LDCONST R7 K20
+ 0x58200015, // 0040 LDCONST R8 K21
+ 0x88240111, // 0041 GETMBR R9 R0 K17
+ 0x88280112, // 0042 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0043 MOVE R11 R4
+ 0x7C140C00, // 0044 CALL R5 6
+ 0x60140008, // 0045 GETGBL R5 G8
+ 0x88180107, // 0046 GETMBR R6 R0 K7
+ 0x541E0EFF, // 0047 LDINT R7 3840
+ 0x2C180C07, // 0048 AND R6 R6 R7
+ 0x541E0007, // 0049 LDINT R7 8
+ 0x3C180C07, // 004A SHR R6 R6 R7
+ 0x7C140200, // 004B CALL R5 1
+ 0x00163E05, // 004C ADD R5 K31 R5
+ 0x5C100A00, // 004D MOVE R4 R5
+ 0xB8162E00, // 004E GETNGBL R5 K23
+ 0x001A3804, // 004F ADD R6 K28 R4
+ 0x581C001D, // 0050 LDCONST R7 K29
+ 0x7C140400, // 0051 CALL R5 2
+ 0x8C14031E, // 0052 GETMET R5 R1 K30
+ 0x581C0014, // 0053 LDCONST R7 K20
+ 0x58200015, // 0054 LDCONST R8 K21
+ 0x88240111, // 0055 GETMBR R9 R0 K17
+ 0x88280112, // 0056 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0057 MOVE R11 R4
+ 0x7C140C00, // 0058 CALL R5 6
+ 0x60140008, // 0059 GETGBL R5 G8
+ 0x88180104, // 005A GETMBR R6 R0 K4
+ 0x7C140200, // 005B CALL R5 1
+ 0x00164005, // 005C ADD R5 K32 R5
+ 0x5C100A00, // 005D MOVE R4 R5
+ 0xB8162E00, // 005E GETNGBL R5 K23
+ 0x001A3804, // 005F ADD R6 K28 R4
+ 0x581C001D, // 0060 LDCONST R7 K29
+ 0x7C140400, // 0061 CALL R5 2
+ 0x8C14031E, // 0062 GETMET R5 R1 K30
+ 0x581C0014, // 0063 LDCONST R7 K20
+ 0x58200015, // 0064 LDCONST R8 K21
+ 0x88240111, // 0065 GETMBR R9 R0 K17
+ 0x88280112, // 0066 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0067 MOVE R11 R4
+ 0x7C140C00, // 0068 CALL R5 6
+ 0x58100021, // 0069 LDCONST R4 K33
+ 0xB8162E00, // 006A GETNGBL R5 K23
+ 0x001A3804, // 006B ADD R6 K28 R4
+ 0x581C001D, // 006C LDCONST R7 K29
+ 0x7C140400, // 006D CALL R5 2
+ 0x8C14031E, // 006E GETMET R5 R1 K30
+ 0x581C0014, // 006F LDCONST R7 K20
+ 0x58200015, // 0070 LDCONST R8 K21
+ 0x88240111, // 0071 GETMBR R9 R0 K17
+ 0x88280112, // 0072 GETMBR R10 R0 K18
+ 0x5C2C0800, // 0073 MOVE R11 R4
+ 0x7C140C00, // 0074 CALL R5 6
+ 0x88100122, // 0075 GETMBR R4 R0 K34
+ 0x78120053, // 0076 JMPF R4 #00CB
+ 0x8C100313, // 0077 GETMET R4 R1 K19
+ 0x58180014, // 0078 LDCONST R6 K20
+ 0x581C0015, // 0079 LDCONST R7 K21
+ 0x542215A3, // 007A LDINT R8 5540
+ 0x5C240600, // 007B MOVE R9 R3
+ 0x8828010E, // 007C GETMBR R10 R0 K14
+ 0x882C0122, // 007D GETMBR R11 R0 K34
+ 0x7C100E00, // 007E CALL R4 7
+ 0x50100200, // 007F LDBOOL R4 1 0
+ 0x90024604, // 0080 SETMBR R0 K35 R4
+ 0xB8122E00, // 0081 GETNGBL R4 K23
+ 0x60140018, // 0082 GETGBL R5 G24
+ 0x58180024, // 0083 LDCONST R6 K36
+ 0x581C0025, // 0084 LDCONST R7 K37
+ 0x8820010E, // 0085 GETMBR R8 R0 K14
+ 0x88240122, // 0086 GETMBR R9 R0 K34
+ 0x7C140800, // 0087 CALL R5 4
+ 0x5818001D, // 0088 LDCONST R6 K29
+ 0x7C100400, // 0089 CALL R4 2
+ 0x60100008, // 008A GETGBL R4 G8
+ 0x88140107, // 008B GETMBR R5 R0 K7
+ 0x541A0FFE, // 008C LDINT R6 4095
+ 0x2C140A06, // 008D AND R5 R5 R6
+ 0x7C100200, // 008E CALL R4 1
+ 0x00123604, // 008F ADD R4 K27 R4
+ 0xB8162E00, // 0090 GETNGBL R5 K23
+ 0x001A3804, // 0091 ADD R6 K28 R4
+ 0x581C001D, // 0092 LDCONST R7 K29
+ 0x7C140400, // 0093 CALL R5 2
+ 0x8C14031E, // 0094 GETMET R5 R1 K30
+ 0x581C0014, // 0095 LDCONST R7 K20
+ 0x58200015, // 0096 LDCONST R8 K21
+ 0x8824010E, // 0097 GETMBR R9 R0 K14
+ 0x88280122, // 0098 GETMBR R10 R0 K34
+ 0x5C2C0800, // 0099 MOVE R11 R4
+ 0x7C140C00, // 009A CALL R5 6
+ 0x60140008, // 009B GETGBL R5 G8
+ 0x88180107, // 009C GETMBR R6 R0 K7
+ 0x541E0EFF, // 009D LDINT R7 3840
+ 0x2C180C07, // 009E AND R6 R6 R7
+ 0x541E0007, // 009F LDINT R7 8
+ 0x3C180C07, // 00A0 SHR R6 R6 R7
+ 0x7C140200, // 00A1 CALL R5 1
+ 0x00163E05, // 00A2 ADD R5 K31 R5
+ 0x5C100A00, // 00A3 MOVE R4 R5
+ 0xB8162E00, // 00A4 GETNGBL R5 K23
+ 0x001A3804, // 00A5 ADD R6 K28 R4
+ 0x581C001D, // 00A6 LDCONST R7 K29
+ 0x7C140400, // 00A7 CALL R5 2
+ 0x8C14031E, // 00A8 GETMET R5 R1 K30
+ 0x581C0014, // 00A9 LDCONST R7 K20
+ 0x58200015, // 00AA LDCONST R8 K21
+ 0x8824010E, // 00AB GETMBR R9 R0 K14
+ 0x88280122, // 00AC GETMBR R10 R0 K34
+ 0x5C2C0800, // 00AD MOVE R11 R4
+ 0x7C140C00, // 00AE CALL R5 6
+ 0x60140008, // 00AF GETGBL R5 G8
+ 0x88180104, // 00B0 GETMBR R6 R0 K4
+ 0x7C140200, // 00B1 CALL R5 1
+ 0x00164005, // 00B2 ADD R5 K32 R5
+ 0x5C100A00, // 00B3 MOVE R4 R5
+ 0xB8162E00, // 00B4 GETNGBL R5 K23
+ 0x001A3804, // 00B5 ADD R6 K28 R4
+ 0x581C001D, // 00B6 LDCONST R7 K29
+ 0x7C140400, // 00B7 CALL R5 2
+ 0x8C14031E, // 00B8 GETMET R5 R1 K30
+ 0x581C0014, // 00B9 LDCONST R7 K20
+ 0x58200015, // 00BA LDCONST R8 K21
+ 0x8824010E, // 00BB GETMBR R9 R0 K14
+ 0x88280122, // 00BC GETMBR R10 R0 K34
+ 0x5C2C0800, // 00BD MOVE R11 R4
+ 0x7C140C00, // 00BE CALL R5 6
+ 0x58100021, // 00BF LDCONST R4 K33
+ 0xB8162E00, // 00C0 GETNGBL R5 K23
+ 0x001A3804, // 00C1 ADD R6 K28 R4
+ 0x581C001D, // 00C2 LDCONST R7 K29
+ 0x7C140400, // 00C3 CALL R5 2
+ 0x8C14031E, // 00C4 GETMET R5 R1 K30
+ 0x581C0014, // 00C5 LDCONST R7 K20
+ 0x58200015, // 00C6 LDCONST R8 K21
+ 0x8824010E, // 00C7 GETMBR R9 R0 K14
+ 0x88280122, // 00C8 GETMBR R10 R0 K34
+ 0x5C2C0800, // 00C9 MOVE R11 R4
+ 0x7C140C00, // 00CA CALL R5 6
+ 0xA8040001, // 00CB EXBLK 1 1
+ 0x7002000F, // 00CC JMP #00DD
+ 0xAC100002, // 00CD CATCH R4 0 2
+ 0x7002000C, // 00CE JMP #00DC
+ 0xB81A2E00, // 00CF GETNGBL R6 K23
+ 0x601C0008, // 00D0 GETGBL R7 G8
+ 0x5C200800, // 00D1 MOVE R8 R4
+ 0x7C1C0200, // 00D2 CALL R7 1
+ 0x001E4C07, // 00D3 ADD R7 K38 R7
+ 0x001C0F27, // 00D4 ADD R7 R7 K39
+ 0x60200008, // 00D5 GETGBL R8 G8
+ 0x5C240A00, // 00D6 MOVE R9 R5
+ 0x7C200200, // 00D7 CALL R8 1
+ 0x001C0E08, // 00D8 ADD R7 R7 R8
+ 0x5820001A, // 00D9 LDCONST R8 K26
+ 0x7C180400, // 00DA CALL R6 2
+ 0x70020000, // 00DB JMP #00DD
+ 0xB0080000, // 00DC RAISE 2 R0 R0
+ 0x80000000, // 00DD RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrInfo
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrInfo, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(MtrInfo_one),
+ /* K3 */ be_nested_str_weak(endpoint),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ /* K5 */ be_nested_str_weak(int),
+ /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrInfo),
&be_const_str_solidified,
( &(const binstruction[40]) { /* code */
- 0xA4120000, // 0000 IMPORT R4 K0
- 0x60140015, // 0001 GETGBL R5 G21
- 0x7C140000, // 0002 CALL R5 0
- 0x8C140B01, // 0003 GETMET R5 R5 K1
- 0x5C1C0200, // 0004 MOVE R7 R1
- 0x54220003, // 0005 LDINT R8 4
- 0x7C140600, // 0006 CALL R5 3
- 0x8C180902, // 0007 GETMET R6 R4 K2
- 0x7C180200, // 0008 CALL R6 1
- 0x8C180D03, // 0009 GETMET R6 R6 K3
- 0x5C200A00, // 000A MOVE R8 R5
- 0x5C240600, // 000B MOVE R9 R3
- 0x5C280400, // 000C MOVE R10 R2
- 0x542E004F, // 000D LDINT R11 80
- 0x7C180A00, // 000E CALL R6 5
- 0x541E0026, // 000F LDINT R7 39
- 0x401E0807, // 0010 CONNECT R7 K4 R7
- 0x941C0C07, // 0011 GETIDX R7 R6 R7
- 0x54220027, // 0012 LDINT R8 40
- 0x5426004E, // 0013 LDINT R9 79
- 0x40201009, // 0014 CONNECT R8 R8 R9
- 0x94200C08, // 0015 GETIDX R8 R6 R8
- 0x8C240906, // 0016 GETMET R9 R4 K6
- 0x7C240200, // 0017 CALL R9 1
- 0x8C241307, // 0018 GETMET R9 R9 K7
- 0x5C2C0E00, // 0019 MOVE R11 R7
- 0x7C240400, // 001A CALL R9 2
- 0x90020A09, // 001B SETMBR R0 K5 R9
- 0x8C240906, // 001C GETMET R9 R4 K6
- 0x7C240200, // 001D CALL R9 1
- 0x8C241307, // 001E GETMET R9 R9 K7
- 0x5C2C1000, // 001F MOVE R11 R8
- 0x7C240400, // 0020 CALL R9 2
- 0x8C280906, // 0021 GETMET R10 R4 K6
- 0x7C280200, // 0022 CALL R10 1
- 0x8C281509, // 0023 GETMET R10 R10 K9
- 0x5C301200, // 0024 MOVE R12 R9
- 0x7C280400, // 0025 CALL R10 2
- 0x9002100A, // 0026 SETMBR R0 K8 R10
+ 0x1C140700, // 0000 EQ R5 R3 K0
+ 0x7815FFFF, // 0001 JMPF R5 #0002
+ 0x1C140700, // 0002 EQ R5 R3 K0
+ 0x7816000D, // 0003 JMPF R5 #0012
+ 0x60140010, // 0004 GETGBL R5 G16
+ 0x88180101, // 0005 GETMBR R6 R0 K1
+ 0x7C140200, // 0006 CALL R5 1
+ 0xA8020005, // 0007 EXBLK 0 #000E
+ 0x5C180A00, // 0008 MOVE R6 R5
+ 0x7C180000, // 0009 CALL R6 0
+ 0x8C1C0102, // 000A GETMET R7 R0 K2
+ 0x88240D03, // 000B GETMBR R9 R6 K3
+ 0x7C1C0400, // 000C CALL R7 2
+ 0x7001FFF9, // 000D JMP #0008
+ 0x58140004, // 000E LDCONST R5 K4
+ 0xAC140200, // 000F CATCH R5 1 0
+ 0xB0080000, // 0010 RAISE 2 R0 R0
+ 0x70020011, // 0011 JMP #0024
+ 0x60140004, // 0012 GETGBL R5 G4
+ 0x5C180800, // 0013 MOVE R6 R4
+ 0x7C140200, // 0014 CALL R5 1
+ 0x1C140B05, // 0015 EQ R5 R5 K5
+ 0x78160003, // 0016 JMPF R5 #001B
+ 0x8C140102, // 0017 GETMET R5 R0 K2
+ 0x5C1C0800, // 0018 MOVE R7 R4
+ 0x7C140400, // 0019 CALL R5 2
+ 0x70020008, // 001A JMP #0024
+ 0x8C140106, // 001B GETMET R5 R0 K6
+ 0x5C1C0600, // 001C MOVE R7 R3
+ 0x7C140400, // 001D CALL R5 2
+ 0x4C180000, // 001E LDNIL R6
+ 0x20180A06, // 001F NE R6 R5 R6
+ 0x781A0002, // 0020 JMPF R6 #0024
+ 0x8C180102, // 0021 GETMET R6 R0 K2
+ 0x88200B03, // 0022 GETMBR R8 R5 K3
+ 0x7C180400, // 0023 CALL R6 2
+ 0xB8160E00, // 0024 GETNGBL R5 K7
+ 0x8C140B08, // 0025 GETMET R5 R5 K8
+ 0x7C140200, // 0026 CALL R5 1
0x80000000, // 0027 RET 0
})
)
@@ -3916,6 +5109,426 @@ be_local_closure(class_Matter_Device__compute_pbkdf, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_250ms, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(every_250ms),
+ /* K4 */ be_const_int(1),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x58040001, // 0002 LDCONST R1 K1
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x880C0102, // 0004 GETMBR R3 R0 K2
+ 0x7C080200, // 0005 CALL R2 1
+ 0x14080202, // 0006 LT R2 R1 R2
+ 0x780A0005, // 0007 JMPF R2 #000E
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x94080401, // 0009 GETIDX R2 R2 R1
+ 0x8C080503, // 000A GETMET R2 R2 K3
+ 0x7C080200, // 000B CALL R2 1
+ 0x00040304, // 000C ADD R1 R1 K4
+ 0x7001FFF4, // 000D JMP #0003
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: generate_random_passcode
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(random),
+ /* K2 */ be_nested_str_weak(get),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_const_int(134217727),
+ /* K5 */ be_const_int(99999998),
+ /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
+ /* K7 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(generate_random_passcode),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x500C0200, // 0002 LDBOOL R3 1 0
+ 0x780E001D, // 0003 JMPF R3 #0022
+ 0x8C0C0301, // 0004 GETMET R3 R1 K1
+ 0x54160003, // 0005 LDINT R5 4
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x8C0C0702, // 0007 GETMET R3 R3 K2
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x541A0003, // 0009 LDINT R6 4
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x2C0C0704, // 000B AND R3 R3 K4
+ 0x5C080600, // 000C MOVE R2 R3
+ 0x240C0505, // 000D GT R3 R2 K5
+ 0x780E0000, // 000E JMPF R3 #0010
+ 0x7001FFF1, // 000F JMP #0002
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100106, // 0011 GETMBR R4 R0 K6
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA8020005, // 0013 EXBLK 0 #001A
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x1C140404, // 0016 EQ R5 R2 R4
+ 0x78160000, // 0017 JMPF R5 #0019
+ 0x4C080000, // 0018 LDNIL R2
+ 0x7001FFF9, // 0019 JMP #0014
+ 0x580C0007, // 001A LDCONST R3 K7
+ 0xAC0C0200, // 001B CATCH R3 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x4C0C0000, // 001D LDNIL R3
+ 0x200C0403, // 001E NE R3 R2 R3
+ 0x780E0000, // 001F JMPF R3 #0021
+ 0x80040400, // 0020 RET 1 R2
+ 0x7001FFDF, // 0021 JMP #0002
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrJoin
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrJoin, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
+ /* K1 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrJoin),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x60140009, // 0000 GETGBL R5 G9
+ 0x5C180600, // 0001 MOVE R6 R3
+ 0x7C140200, // 0002 CALL R5 1
+ 0x78160002, // 0003 JMPF R5 #0007
+ 0x8C180100, // 0004 GETMET R6 R0 K0
+ 0x7C180200, // 0005 CALL R6 1
+ 0x70020001, // 0006 JMP #0009
+ 0x8C180101, // 0007 GETMET R6 R0 K1
+ 0x7C180200, // 0008 CALL R6 1
+ 0xB81A0400, // 0009 GETNGBL R6 K2
+ 0x8C180D03, // 000A GETMET R6 R6 K3
+ 0x7C180200, // 000B CALL R6 1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_attribute_expansion
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(start),
+ /* K6 */ be_nested_str_weak(is_direct),
+ /* K7 */ be_nested_str_weak(next_attribute),
+ /* K8 */ be_nested_str_weak(get_pi),
+ }),
+ be_str_weak(process_attribute_expansion),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x88140302, // 0002 GETMBR R5 R1 K2
+ 0xB81A0600, // 0003 GETNGBL R6 K3
+ 0x8C180D04, // 0004 GETMET R6 R6 K4
+ 0x5C200000, // 0005 MOVE R8 R0
+ 0x7C180400, // 0006 CALL R6 2
+ 0x8C1C0D05, // 0007 GETMET R7 R6 K5
+ 0x5C240600, // 0008 MOVE R9 R3
+ 0x5C280800, // 0009 MOVE R10 R4
+ 0x5C2C0A00, // 000A MOVE R11 R5
+ 0x7C1C0800, // 000B CALL R7 4
+ 0x8C1C0D06, // 000C GETMET R7 R6 K6
+ 0x7C1C0200, // 000D CALL R7 1
+ 0x4C200000, // 000E LDNIL R8
+ 0x8C240D07, // 000F GETMET R9 R6 K7
+ 0x7C240200, // 0010 CALL R9 1
+ 0x5C201200, // 0011 MOVE R8 R9
+ 0x4C280000, // 0012 LDNIL R10
+ 0x2024120A, // 0013 NE R9 R9 R10
+ 0x78260005, // 0014 JMPF R9 #001B
+ 0x5C240400, // 0015 MOVE R9 R2
+ 0x8C280D08, // 0016 GETMET R10 R6 K8
+ 0x7C280200, // 0017 CALL R10 1
+ 0x5C2C1000, // 0018 MOVE R11 R8
+ 0x7C240400, // 0019 CALL R9 2
+ 0x7001FFF3, // 001A JMP #000F
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_plugin_by_friendly_name
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_name),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_plugin_by_friendly_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x740A0004, // 0002 JMPT R2 #0008
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x5C0C0200, // 0004 MOVE R3 R1
+ 0x7C080200, // 0005 CALL R2 1
+ 0x1C080500, // 0006 EQ R2 R2 K0
+ 0x780A0001, // 0007 JMPF R2 #000A
+ 0x4C080000, // 0008 LDNIL R2
+ 0x80040400, // 0009 RET 1 R2
+ 0x58080000, // 000A LDCONST R2 K0
+ 0x600C000C, // 000B GETGBL R3 G12
+ 0x88100101, // 000C GETMBR R4 R0 K1
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x140C0403, // 000E LT R3 R2 R3
+ 0x780E0010, // 000F JMPF R3 #0021
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x940C0602, // 0011 GETIDX R3 R3 R2
+ 0x8C100702, // 0012 GETMET R4 R3 K2
+ 0x7C100200, // 0013 CALL R4 1
+ 0x4C140000, // 0014 LDNIL R5
+ 0x20140805, // 0015 NE R5 R4 R5
+ 0x78160007, // 0016 JMPF R5 #001F
+ 0x6014000C, // 0017 GETGBL R5 G12
+ 0x5C180800, // 0018 MOVE R6 R4
+ 0x7C140200, // 0019 CALL R5 1
+ 0x24140B00, // 001A GT R5 R5 K0
+ 0x78160002, // 001B JMPF R5 #001F
+ 0x1C140801, // 001C EQ R5 R4 R1
+ 0x78160000, // 001D JMPF R5 #001F
+ 0x80040600, // 001E RET 1 R3
+ 0x00080503, // 001F ADD R2 R2 K3
+ 0x7001FFE9, // 0020 JMP #000B
+ 0x4C0C0000, // 0021 LDNIL R3
+ 0x80040600, // 0022 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: save_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_save_param, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(update_remotes_info),
+ /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
+ /* K3 */ be_nested_str_weak(root_discriminator),
+ /* K4 */ be_nested_str_weak(root_passcode),
+ /* K5 */ be_nested_str_weak(ipv4only),
+ /* K6 */ be_nested_str_weak(true),
+ /* K7 */ be_nested_str_weak(false),
+ /* K8 */ be_nested_str_weak(disable_bridge_mode),
+ /* K9 */ be_nested_str_weak(next_ep),
+ /* K10 */ be_nested_str_weak(debug),
+ /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
+ /* K14 */ be_nested_str_weak(dump),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_config_remotes),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
+ /* K19 */ be_nested_str_weak(_X7D),
+ /* K20 */ be_nested_str_weak(FILENAME),
+ /* K21 */ be_nested_str_weak(w),
+ /* K22 */ be_nested_str_weak(write),
+ /* K23 */ be_nested_str_weak(close),
+ /* K24 */ be_nested_str_weak(log),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
+ /* K26 */ be_nested_str_weak(_X20and_X20configuration),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_const_int(2),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K30 */ be_nested_str_weak(_X7C),
+ }),
+ be_str_weak(save_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080018, // 0003 GETGBL R2 G24
+ 0x580C0002, // 0004 LDCONST R3 K2
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x88140104, // 0006 GETMBR R5 R0 K4
+ 0x88180105, // 0007 GETMBR R6 R0 K5
+ 0x781A0001, // 0008 JMPF R6 #000B
+ 0x58180006, // 0009 LDCONST R6 K6
+ 0x70020000, // 000A JMP #000C
+ 0x58180007, // 000B LDCONST R6 K7
+ 0x881C0108, // 000C GETMBR R7 R0 K8
+ 0x781E0001, // 000D JMPF R7 #0010
+ 0x581C0006, // 000E LDCONST R7 K6
+ 0x70020000, // 000F JMP #0011
+ 0x581C0007, // 0010 LDCONST R7 K7
+ 0x88200109, // 0011 GETMBR R8 R0 K9
+ 0x7C080C00, // 0012 CALL R2 6
+ 0x880C010A, // 0013 GETMBR R3 R0 K10
+ 0x780E0000, // 0014 JMPF R3 #0016
+ 0x0008050B, // 0015 ADD R2 R2 K11
+ 0x880C010C, // 0016 GETMBR R3 R0 K12
+ 0x780E000E, // 0017 JMPF R3 #0027
+ 0x0008050D, // 0018 ADD R2 R2 K13
+ 0x8C0C030E, // 0019 GETMET R3 R1 K14
+ 0x8814010F, // 001A GETMBR R5 R0 K15
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x00080403, // 001C ADD R2 R2 R3
+ 0x600C000C, // 001D GETGBL R3 G12
+ 0x88100110, // 001E GETMBR R4 R0 K16
+ 0x7C0C0200, // 001F CALL R3 1
+ 0x240C0711, // 0020 GT R3 R3 K17
+ 0x780E0004, // 0021 JMPF R3 #0027
+ 0x00080512, // 0022 ADD R2 R2 K18
+ 0x8C0C030E, // 0023 GETMET R3 R1 K14
+ 0x88140110, // 0024 GETMBR R5 R0 K16
+ 0x7C0C0400, // 0025 CALL R3 2
+ 0x00080403, // 0026 ADD R2 R2 R3
+ 0x00080513, // 0027 ADD R2 R2 K19
+ 0xA8020017, // 0028 EXBLK 0 #0041
+ 0x600C0011, // 0029 GETGBL R3 G17
+ 0x88100114, // 002A GETMBR R4 R0 K20
+ 0x58140015, // 002B LDCONST R5 K21
+ 0x7C0C0400, // 002C CALL R3 2
+ 0x8C100716, // 002D GETMET R4 R3 K22
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x8C100717, // 0030 GETMET R4 R3 K23
+ 0x7C100200, // 0031 CALL R4 1
+ 0xB8123000, // 0032 GETNGBL R4 K24
+ 0x60140018, // 0033 GETGBL R5 G24
+ 0x58180019, // 0034 LDCONST R6 K25
+ 0x881C010C, // 0035 GETMBR R7 R0 K12
+ 0x781E0001, // 0036 JMPF R7 #0039
+ 0x581C001A, // 0037 LDCONST R7 K26
+ 0x70020000, // 0038 JMP #003A
+ 0x581C001B, // 0039 LDCONST R7 K27
+ 0x7C140400, // 003A CALL R5 2
+ 0x5818001C, // 003B LDCONST R6 K28
+ 0x7C100400, // 003C CALL R4 2
+ 0xA8040001, // 003D EXBLK 1 1
+ 0x80040400, // 003E RET 1 R2
+ 0xA8040001, // 003F EXBLK 1 1
+ 0x70020010, // 0040 JMP #0052
+ 0xAC0C0002, // 0041 CATCH R3 0 2
+ 0x7002000D, // 0042 JMP #0051
+ 0xB8163000, // 0043 GETNGBL R5 K24
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x001A3A06, // 0047 ADD R6 K29 R6
+ 0x00180D1E, // 0048 ADD R6 R6 K30
+ 0x601C0008, // 0049 GETGBL R7 G8
+ 0x5C200800, // 004A MOVE R8 R4
+ 0x7C1C0200, // 004B CALL R7 1
+ 0x00180C07, // 004C ADD R6 R6 R7
+ 0x581C001C, // 004D LDCONST R7 K28
+ 0x7C140400, // 004E CALL R5 2
+ 0x80040400, // 004F RET 1 R2
+ 0x70020000, // 0050 JMP #0052
+ 0xB0080000, // 0051 RAISE 2 R0 R0
+ 0x80000000, // 0052 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: MtrUpdate
********************************************************************/
@@ -4093,1072 +5706,33 @@ be_local_closure(class_Matter_Device_MtrUpdate, /* name */
/********************************************************************
-** Solidified function: mdns_announce_op_discovery
+** Solidified function: get_plugin_remote_info
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
- be_nested_proto(
- 14, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(find),
- /* K13 */ be_nested_str_weak(up),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K15 */ be_nested_str_weak(hostname_eth),
- /* K16 */ be_nested_str_weak(add_service),
- /* K17 */ be_nested_str_weak(_matter),
- /* K18 */ be_nested_str_weak(_tcp),
- /* K19 */ be_nested_str_weak(_I),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K21 */ be_nested_str_weak(add_subtype),
- /* K22 */ be_nested_str_weak(wifi),
- /* K23 */ be_nested_str_weak(hostname_wifi),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_const_int(2),
- }),
- be_str_weak(mdns_announce_op_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[115]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA802005F, // 0001 EXBLK 0 #0062
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x001E1005, // 0011 ADD R7 K8 R5
- 0x58200009, // 0012 LDCONST R8 K9
- 0x7C180400, // 0013 CALL R6 2
- 0xB81A1400, // 0014 GETNGBL R6 K10
- 0x8C180D0B, // 0015 GETMET R6 R6 K11
- 0x7C180200, // 0016 CALL R6 1
- 0x8C180D0C, // 0017 GETMET R6 R6 K12
- 0x5820000D, // 0018 LDCONST R8 K13
- 0x7C180400, // 0019 CALL R6 2
- 0x781A001E, // 001A JMPF R6 #003A
- 0xB81A0E00, // 001B GETNGBL R6 K7
- 0x601C0018, // 001C GETGBL R7 G24
- 0x5820000E, // 001D LDCONST R8 K14
- 0x5824000B, // 001E LDCONST R9 K11
- 0x5C280A00, // 001F MOVE R10 R5
- 0x882C010F, // 0020 GETMBR R11 R0 K15
- 0x7C1C0800, // 0021 CALL R7 4
- 0x58200009, // 0022 LDCONST R8 K9
- 0x7C180400, // 0023 CALL R6 2
- 0x8C180510, // 0024 GETMET R6 R2 K16
- 0x58200011, // 0025 LDCONST R8 K17
- 0x58240012, // 0026 LDCONST R9 K18
- 0x542A15A3, // 0027 LDINT R10 5540
- 0x4C2C0000, // 0028 LDNIL R11
- 0x5C300A00, // 0029 MOVE R12 R5
- 0x8834010F, // 002A GETMBR R13 R0 K15
- 0x7C180E00, // 002B CALL R6 7
- 0x8C180905, // 002C GETMET R6 R4 K5
- 0x7C180200, // 002D CALL R6 1
- 0x001A2606, // 002E ADD R6 K19 R6
- 0xB81E0E00, // 002F GETNGBL R7 K7
- 0x00222806, // 0030 ADD R8 K20 R6
- 0x58240009, // 0031 LDCONST R9 K9
- 0x7C1C0400, // 0032 CALL R7 2
- 0x8C1C0515, // 0033 GETMET R7 R2 K21
- 0x58240011, // 0034 LDCONST R9 K17
- 0x58280012, // 0035 LDCONST R10 K18
- 0x5C2C0A00, // 0036 MOVE R11 R5
- 0x8830010F, // 0037 GETMBR R12 R0 K15
- 0x5C340C00, // 0038 MOVE R13 R6
- 0x7C1C0C00, // 0039 CALL R7 6
- 0xB81A1400, // 003A GETNGBL R6 K10
- 0x8C180D16, // 003B GETMET R6 R6 K22
- 0x7C180200, // 003C CALL R6 1
- 0x8C180D0C, // 003D GETMET R6 R6 K12
- 0x5820000D, // 003E LDCONST R8 K13
- 0x7C180400, // 003F CALL R6 2
- 0x781A001E, // 0040 JMPF R6 #0060
- 0xB81A0E00, // 0041 GETNGBL R6 K7
- 0x601C0018, // 0042 GETGBL R7 G24
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x58240016, // 0044 LDCONST R9 K22
- 0x5C280A00, // 0045 MOVE R10 R5
- 0x882C0117, // 0046 GETMBR R11 R0 K23
- 0x7C1C0800, // 0047 CALL R7 4
- 0x58200009, // 0048 LDCONST R8 K9
- 0x7C180400, // 0049 CALL R6 2
- 0x8C180510, // 004A GETMET R6 R2 K16
- 0x58200011, // 004B LDCONST R8 K17
- 0x58240012, // 004C LDCONST R9 K18
- 0x542A15A3, // 004D LDINT R10 5540
- 0x4C2C0000, // 004E LDNIL R11
- 0x5C300A00, // 004F MOVE R12 R5
- 0x88340117, // 0050 GETMBR R13 R0 K23
- 0x7C180E00, // 0051 CALL R6 7
- 0x8C180905, // 0052 GETMET R6 R4 K5
- 0x7C180200, // 0053 CALL R6 1
- 0x001A2606, // 0054 ADD R6 K19 R6
- 0xB81E0E00, // 0055 GETNGBL R7 K7
- 0x00222806, // 0056 ADD R8 K20 R6
- 0x58240009, // 0057 LDCONST R9 K9
- 0x7C1C0400, // 0058 CALL R7 2
- 0x8C1C0515, // 0059 GETMET R7 R2 K21
- 0x58240011, // 005A LDCONST R9 K17
- 0x58280012, // 005B LDCONST R10 K18
- 0x5C2C0A00, // 005C MOVE R11 R5
- 0x88300117, // 005D GETMBR R12 R0 K23
- 0x5C340C00, // 005E MOVE R13 R6
- 0x7C1C0C00, // 005F CALL R7 6
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7002000F, // 0061 JMP #0072
- 0xAC0C0002, // 0062 CATCH R3 0 2
- 0x7002000C, // 0063 JMP #0071
- 0xB8160E00, // 0064 GETNGBL R5 K7
- 0x60180008, // 0065 GETGBL R6 G8
- 0x5C1C0600, // 0066 MOVE R7 R3
- 0x7C180200, // 0067 CALL R6 1
- 0x001A3006, // 0068 ADD R6 K24 R6
- 0x00180D19, // 0069 ADD R6 R6 K25
- 0x601C0008, // 006A GETGBL R7 G8
- 0x5C200800, // 006B MOVE R8 R4
- 0x7C1C0200, // 006C CALL R7 1
- 0x00180C07, // 006D ADD R6 R6 R7
- 0x581C001A, // 006E LDCONST R7 K26
- 0x7C140400, // 006F CALL R5 2
- 0x70020000, // 0070 JMP #0072
- 0xB0080000, // 0071 RAISE 2 R0 R0
- 0x80000000, // 0072 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(mdns_remove_op_discovery_all_fabrics),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_param
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_param, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(update_remotes_info),
- /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
- /* K3 */ be_nested_str_weak(root_discriminator),
- /* K4 */ be_nested_str_weak(root_passcode),
- /* K5 */ be_nested_str_weak(ipv4only),
- /* K6 */ be_nested_str_weak(true),
- /* K7 */ be_nested_str_weak(false),
- /* K8 */ be_nested_str_weak(disable_bridge_mode),
- /* K9 */ be_nested_str_weak(next_ep),
- /* K10 */ be_nested_str_weak(debug),
- /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
- /* K14 */ be_nested_str_weak(dump),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_config_remotes),
- /* K17 */ be_const_int(0),
- /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
- /* K19 */ be_nested_str_weak(_X7D),
- /* K20 */ be_nested_str_weak(FILENAME),
- /* K21 */ be_nested_str_weak(w),
- /* K22 */ be_nested_str_weak(write),
- /* K23 */ be_nested_str_weak(close),
- /* K24 */ be_nested_str_weak(log),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
- /* K26 */ be_nested_str_weak(_X20and_X20configuration),
- /* K27 */ be_nested_str_weak(),
- /* K28 */ be_const_int(2),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K30 */ be_nested_str_weak(_X7C),
- }),
- be_str_weak(save_param),
- &be_const_str_solidified,
- ( &(const binstruction[83]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x60080018, // 0003 GETGBL R2 G24
- 0x580C0002, // 0004 LDCONST R3 K2
- 0x88100103, // 0005 GETMBR R4 R0 K3
- 0x88140104, // 0006 GETMBR R5 R0 K4
- 0x88180105, // 0007 GETMBR R6 R0 K5
- 0x781A0001, // 0008 JMPF R6 #000B
- 0x58180006, // 0009 LDCONST R6 K6
- 0x70020000, // 000A JMP #000C
- 0x58180007, // 000B LDCONST R6 K7
- 0x881C0108, // 000C GETMBR R7 R0 K8
- 0x781E0001, // 000D JMPF R7 #0010
- 0x581C0006, // 000E LDCONST R7 K6
- 0x70020000, // 000F JMP #0011
- 0x581C0007, // 0010 LDCONST R7 K7
- 0x88200109, // 0011 GETMBR R8 R0 K9
- 0x7C080C00, // 0012 CALL R2 6
- 0x880C010A, // 0013 GETMBR R3 R0 K10
- 0x780E0000, // 0014 JMPF R3 #0016
- 0x0008050B, // 0015 ADD R2 R2 K11
- 0x880C010C, // 0016 GETMBR R3 R0 K12
- 0x780E000E, // 0017 JMPF R3 #0027
- 0x0008050D, // 0018 ADD R2 R2 K13
- 0x8C0C030E, // 0019 GETMET R3 R1 K14
- 0x8814010F, // 001A GETMBR R5 R0 K15
- 0x7C0C0400, // 001B CALL R3 2
- 0x00080403, // 001C ADD R2 R2 R3
- 0x600C000C, // 001D GETGBL R3 G12
- 0x88100110, // 001E GETMBR R4 R0 K16
- 0x7C0C0200, // 001F CALL R3 1
- 0x240C0711, // 0020 GT R3 R3 K17
- 0x780E0004, // 0021 JMPF R3 #0027
- 0x00080512, // 0022 ADD R2 R2 K18
- 0x8C0C030E, // 0023 GETMET R3 R1 K14
- 0x88140110, // 0024 GETMBR R5 R0 K16
- 0x7C0C0400, // 0025 CALL R3 2
- 0x00080403, // 0026 ADD R2 R2 R3
- 0x00080513, // 0027 ADD R2 R2 K19
- 0xA8020017, // 0028 EXBLK 0 #0041
- 0x600C0011, // 0029 GETGBL R3 G17
- 0x88100114, // 002A GETMBR R4 R0 K20
- 0x58140015, // 002B LDCONST R5 K21
- 0x7C0C0400, // 002C CALL R3 2
- 0x8C100716, // 002D GETMET R4 R3 K22
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x8C100717, // 0030 GETMET R4 R3 K23
- 0x7C100200, // 0031 CALL R4 1
- 0xB8123000, // 0032 GETNGBL R4 K24
- 0x60140018, // 0033 GETGBL R5 G24
- 0x58180019, // 0034 LDCONST R6 K25
- 0x881C010C, // 0035 GETMBR R7 R0 K12
- 0x781E0001, // 0036 JMPF R7 #0039
- 0x581C001A, // 0037 LDCONST R7 K26
- 0x70020000, // 0038 JMP #003A
- 0x581C001B, // 0039 LDCONST R7 K27
- 0x7C140400, // 003A CALL R5 2
- 0x5818001C, // 003B LDCONST R6 K28
- 0x7C100400, // 003C CALL R4 2
- 0xA8040001, // 003D EXBLK 1 1
- 0x80040400, // 003E RET 1 R2
- 0xA8040001, // 003F EXBLK 1 1
- 0x70020010, // 0040 JMP #0052
- 0xAC0C0002, // 0041 CATCH R3 0 2
- 0x7002000D, // 0042 JMP #0051
- 0xB8163000, // 0043 GETNGBL R5 K24
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x001A3A06, // 0047 ADD R6 K29 R6
- 0x00180D1E, // 0048 ADD R6 R6 K30
- 0x601C0008, // 0049 GETGBL R7 G8
- 0x5C200800, // 004A MOVE R8 R4
- 0x7C1C0200, // 004B CALL R7 1
- 0x00180C07, // 004C ADD R6 R6 R7
- 0x581C001C, // 004D LDCONST R7 K28
- 0x7C140400, // 004E CALL R5 2
- 0x80040400, // 004F RET 1 R2
- 0x70020000, // 0050 JMP #0052
- 0xB0080000, // 0051 RAISE 2 R0 R0
- 0x80000000, // 0052 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_operational_discovery_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
+be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_operational_discovery),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_operational_discovery_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _init_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
- }),
- be_str_weak(_init_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x1C040302, // 0003 EQ R1 R1 K2
- 0x78060001, // 0004 JMPF R1 #0007
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x7C040200, // 0006 CALL R1 1
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_received
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_received, /* name */
- be_nested_proto(
- 9, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(msg_received),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x5C180200, // 0002 MOVE R6 R1
- 0x5C1C0400, // 0003 MOVE R7 R2
- 0x5C200600, // 0004 MOVE R8 R3
- 0x7C100800, // 0005 CALL R4 4
- 0x80040800, // 0006 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_sensors_list
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(k2l),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(Temperature),
- /* K3 */ be_nested_str_weak(_X23Temperature),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(type),
- /* K6 */ be_nested_str_weak(temperature),
- /* K7 */ be_nested_str_weak(filter),
- /* K8 */ be_nested_str_weak(stop_iteration),
- /* K9 */ be_nested_str_weak(Pressure),
- /* K10 */ be_nested_str_weak(_X23Pressure),
- /* K11 */ be_nested_str_weak(pressure),
- /* K12 */ be_nested_str_weak(Illuminance),
- /* K13 */ be_nested_str_weak(_X23Illuminance),
- /* K14 */ be_nested_str_weak(illuminance),
- /* K15 */ be_nested_str_weak(Humidity),
- /* K16 */ be_nested_str_weak(_X23Humidity),
- /* K17 */ be_nested_str_weak(humidity),
- }),
- be_str_weak(autoconf_sensors_list),
- &be_const_str_solidified,
- ( &(const binstruction[119]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100100, // 0003 GETMET R4 R0 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA8020013, // 0007 EXBLK 0 #001C
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x94140204, // 000A GETIDX R5 R1 R4
- 0x6018000F, // 000B GETGBL R6 G15
- 0x5C1C0A00, // 000C MOVE R7 R5
- 0x60200013, // 000D GETGBL R8 G19
- 0x7C180400, // 000E CALL R6 2
- 0x781A000A, // 000F JMPF R6 #001B
- 0x8C180B01, // 0010 GETMET R6 R5 K1
- 0x58200002, // 0011 LDCONST R8 K2
- 0x7C180400, // 0012 CALL R6 2
- 0x781A0006, // 0013 JMPF R6 #001B
- 0x00180903, // 0014 ADD R6 R4 K3
- 0x8C1C0504, // 0015 GETMET R7 R2 K4
- 0x60240013, // 0016 GETGBL R9 G19
- 0x7C240000, // 0017 CALL R9 0
- 0x98260B06, // 0018 SETIDX R9 K5 K6
- 0x98260E06, // 0019 SETIDX R9 K7 R6
- 0x7C1C0400, // 001A CALL R7 2
- 0x7001FFEB, // 001B JMP #0008
- 0x580C0008, // 001C LDCONST R3 K8
- 0xAC0C0200, // 001D CATCH R3 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x600C0010, // 001F GETGBL R3 G16
- 0x8C100100, // 0020 GETMET R4 R0 K0
- 0x5C180200, // 0021 MOVE R6 R1
- 0x7C100400, // 0022 CALL R4 2
- 0x7C0C0200, // 0023 CALL R3 1
- 0xA8020013, // 0024 EXBLK 0 #0039
- 0x5C100600, // 0025 MOVE R4 R3
- 0x7C100000, // 0026 CALL R4 0
- 0x94140204, // 0027 GETIDX R5 R1 R4
- 0x6018000F, // 0028 GETGBL R6 G15
- 0x5C1C0A00, // 0029 MOVE R7 R5
- 0x60200013, // 002A GETGBL R8 G19
- 0x7C180400, // 002B CALL R6 2
- 0x781A000A, // 002C JMPF R6 #0038
- 0x8C180B01, // 002D GETMET R6 R5 K1
- 0x58200009, // 002E LDCONST R8 K9
- 0x7C180400, // 002F CALL R6 2
- 0x781A0006, // 0030 JMPF R6 #0038
- 0x0018090A, // 0031 ADD R6 R4 K10
- 0x8C1C0504, // 0032 GETMET R7 R2 K4
- 0x60240013, // 0033 GETGBL R9 G19
- 0x7C240000, // 0034 CALL R9 0
- 0x98260B0B, // 0035 SETIDX R9 K5 K11
- 0x98260E06, // 0036 SETIDX R9 K7 R6
- 0x7C1C0400, // 0037 CALL R7 2
- 0x7001FFEB, // 0038 JMP #0025
- 0x580C0008, // 0039 LDCONST R3 K8
- 0xAC0C0200, // 003A CATCH R3 1 0
- 0xB0080000, // 003B RAISE 2 R0 R0
- 0x600C0010, // 003C GETGBL R3 G16
- 0x8C100100, // 003D GETMET R4 R0 K0
- 0x5C180200, // 003E MOVE R6 R1
- 0x7C100400, // 003F CALL R4 2
- 0x7C0C0200, // 0040 CALL R3 1
- 0xA8020013, // 0041 EXBLK 0 #0056
- 0x5C100600, // 0042 MOVE R4 R3
- 0x7C100000, // 0043 CALL R4 0
- 0x94140204, // 0044 GETIDX R5 R1 R4
- 0x6018000F, // 0045 GETGBL R6 G15
- 0x5C1C0A00, // 0046 MOVE R7 R5
- 0x60200013, // 0047 GETGBL R8 G19
- 0x7C180400, // 0048 CALL R6 2
- 0x781A000A, // 0049 JMPF R6 #0055
- 0x8C180B01, // 004A GETMET R6 R5 K1
- 0x5820000C, // 004B LDCONST R8 K12
- 0x7C180400, // 004C CALL R6 2
- 0x781A0006, // 004D JMPF R6 #0055
- 0x0018090D, // 004E ADD R6 R4 K13
- 0x8C1C0504, // 004F GETMET R7 R2 K4
- 0x60240013, // 0050 GETGBL R9 G19
- 0x7C240000, // 0051 CALL R9 0
- 0x98260B0E, // 0052 SETIDX R9 K5 K14
- 0x98260E06, // 0053 SETIDX R9 K7 R6
- 0x7C1C0400, // 0054 CALL R7 2
- 0x7001FFEB, // 0055 JMP #0042
- 0x580C0008, // 0056 LDCONST R3 K8
- 0xAC0C0200, // 0057 CATCH R3 1 0
- 0xB0080000, // 0058 RAISE 2 R0 R0
- 0x600C0010, // 0059 GETGBL R3 G16
- 0x8C100100, // 005A GETMET R4 R0 K0
- 0x5C180200, // 005B MOVE R6 R1
- 0x7C100400, // 005C CALL R4 2
- 0x7C0C0200, // 005D CALL R3 1
- 0xA8020013, // 005E EXBLK 0 #0073
- 0x5C100600, // 005F MOVE R4 R3
- 0x7C100000, // 0060 CALL R4 0
- 0x94140204, // 0061 GETIDX R5 R1 R4
- 0x6018000F, // 0062 GETGBL R6 G15
- 0x5C1C0A00, // 0063 MOVE R7 R5
- 0x60200013, // 0064 GETGBL R8 G19
- 0x7C180400, // 0065 CALL R6 2
- 0x781A000A, // 0066 JMPF R6 #0072
- 0x8C180B01, // 0067 GETMET R6 R5 K1
- 0x5820000F, // 0068 LDCONST R8 K15
- 0x7C180400, // 0069 CALL R6 2
- 0x781A0006, // 006A JMPF R6 #0072
- 0x00180910, // 006B ADD R6 R4 K16
- 0x8C1C0504, // 006C GETMET R7 R2 K4
- 0x60240013, // 006D GETGBL R9 G19
- 0x7C240000, // 006E CALL R9 0
- 0x98260B11, // 006F SETIDX R9 K5 K17
- 0x98260E06, // 0070 SETIDX R9 K7 R6
- 0x7C1C0400, // 0071 CALL R7 2
- 0x7001FFEB, // 0072 JMP #005F
- 0x580C0008, // 0073 LDCONST R3 K8
- 0xAC0C0200, // 0074 CATCH R3 1 0
- 0xB0080000, // 0075 RAISE 2 R0 R0
- 0x80040400, // 0076 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrInfo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrInfo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(MtrInfo_one),
- /* K3 */ be_nested_str_weak(endpoint),
- /* K4 */ be_nested_str_weak(stop_iteration),
- /* K5 */ be_nested_str_weak(int),
- /* K6 */ be_nested_str_weak(find_plugin_by_friendly_name),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrInfo),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x1C140700, // 0000 EQ R5 R3 K0
- 0x7815FFFF, // 0001 JMPF R5 #0002
- 0x1C140700, // 0002 EQ R5 R3 K0
- 0x7816000D, // 0003 JMPF R5 #0012
- 0x60140010, // 0004 GETGBL R5 G16
- 0x88180101, // 0005 GETMBR R6 R0 K1
- 0x7C140200, // 0006 CALL R5 1
- 0xA8020005, // 0007 EXBLK 0 #000E
- 0x5C180A00, // 0008 MOVE R6 R5
- 0x7C180000, // 0009 CALL R6 0
- 0x8C1C0102, // 000A GETMET R7 R0 K2
- 0x88240D03, // 000B GETMBR R9 R6 K3
- 0x7C1C0400, // 000C CALL R7 2
- 0x7001FFF9, // 000D JMP #0008
- 0x58140004, // 000E LDCONST R5 K4
- 0xAC140200, // 000F CATCH R5 1 0
- 0xB0080000, // 0010 RAISE 2 R0 R0
- 0x70020011, // 0011 JMP #0024
- 0x60140004, // 0012 GETGBL R5 G4
- 0x5C180800, // 0013 MOVE R6 R4
- 0x7C140200, // 0014 CALL R5 1
- 0x1C140B05, // 0015 EQ R5 R5 K5
- 0x78160003, // 0016 JMPF R5 #001B
- 0x8C140102, // 0017 GETMET R5 R0 K2
- 0x5C1C0800, // 0018 MOVE R7 R4
- 0x7C140400, // 0019 CALL R5 2
- 0x70020008, // 001A JMP #0024
- 0x8C140106, // 001B GETMET R5 R0 K6
- 0x5C1C0600, // 001C MOVE R7 R3
- 0x7C140400, // 001D CALL R5 2
- 0x4C180000, // 001E LDNIL R6
- 0x20180A06, // 001F NE R6 R5 R6
- 0x781A0002, // 0020 JMPF R6 #0024
- 0x8C180102, // 0021 GETMET R6 R0 K2
- 0x88200B03, // 0022 GETMBR R8 R5 K3
- 0x7C180400, // 0023 CALL R6 2
- 0xB8160E00, // 0024 GETNGBL R5 K7
- 0x8C140B08, // 0025 GETMET R5 R5 K8
- 0x7C140200, // 0026 CALL R5 1
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_manual_pairing_code
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(root_discriminator),
- /* K1 */ be_nested_str_weak(root_passcode),
- /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Verhoeff),
- /* K5 */ be_nested_str_weak(checksum),
- }),
- be_str_weak(compute_manual_pairing_code),
- &be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x540A0FFE, // 0001 LDINT R2 4095
- 0x2C040202, // 0002 AND R1 R1 R2
- 0x540A0009, // 0003 LDINT R2 10
- 0x3C040202, // 0004 SHR R1 R1 R2
- 0x88080100, // 0005 GETMBR R2 R0 K0
- 0x540E02FF, // 0006 LDINT R3 768
- 0x2C080403, // 0007 AND R2 R2 R3
- 0x540E0005, // 0008 LDINT R3 6
- 0x38080403, // 0009 SHL R2 R2 R3
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x54123FFE, // 000B LDINT R4 16383
- 0x2C0C0604, // 000C AND R3 R3 R4
- 0x30080403, // 000D OR R2 R2 R3
- 0x880C0101, // 000E GETMBR R3 R0 K1
- 0x5412000D, // 000F LDINT R4 14
- 0x3C0C0604, // 0010 SHR R3 R3 R4
- 0x60100018, // 0011 GETGBL R4 G24
- 0x58140002, // 0012 LDCONST R5 K2
- 0x5C180200, // 0013 MOVE R6 R1
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x5C200600, // 0015 MOVE R8 R3
- 0x7C100800, // 0016 CALL R4 4
- 0xB8160600, // 0017 GETNGBL R5 K3
- 0x88140B04, // 0018 GETMBR R5 R5 K4
- 0x8C140B05, // 0019 GETMET R5 R5 K5
- 0x5C1C0800, // 001A MOVE R7 R4
- 0x7C140400, // 001B CALL R5 2
- 0x00100805, // 001C ADD R4 R4 R5
- 0x80040800, // 001D RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: signal_endpoints_changed
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- }),
- be_str_weak(signal_endpoints_changed),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x5412001C, // 0002 LDINT R4 29
- 0x58140002, // 0003 LDCONST R5 K2
- 0x50180000, // 0004 LDBOOL R6 0 0
- 0x7C040A00, // 0005 CALL R1 5
- 0x8C040100, // 0006 GETMET R1 R0 K0
- 0xB80E0600, // 0007 GETNGBL R3 K3
- 0x880C0704, // 0008 GETMBR R3 R3 K4
- 0x5412001C, // 0009 LDINT R4 29
- 0x58140002, // 000A LDCONST R5 K2
- 0x50180000, // 000B LDBOOL R6 0 0
- 0x7C040A00, // 000C CALL R1 5
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrJoin
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrJoin, /* name */
- be_nested_proto(
- 8, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
- /* K1 */ be_nested_str_weak(stop_basic_commissioning),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrJoin),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x60140009, // 0000 GETGBL R5 G9
- 0x5C180600, // 0001 MOVE R6 R3
- 0x7C140200, // 0002 CALL R5 1
- 0x78160002, // 0003 JMPF R5 #0007
- 0x8C180100, // 0004 GETMET R6 R0 K0
- 0x7C180200, // 0005 CALL R6 1
- 0x70020001, // 0006 JMP #0009
- 0x8C180101, // 0007 GETMET R6 R0 K1
- 0x7C180200, // 0008 CALL R6 1
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x8C180D03, // 000A GETMET R6 R6 K3
- 0x7C180200, // 000B CALL R6 1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_add_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K0 */ be_nested_str_weak(plugins_config_remotes),
/* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K4 */ be_nested_str_weak(_X27_X20skipping),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(next_ep),
- /* K7 */ be_nested_str_weak(plugins),
- /* K8 */ be_nested_str_weak(push),
- /* K9 */ be_nested_str_weak(type),
- /* K10 */ be_nested_str_weak(keys),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
- /* K13 */ be_nested_str_weak(conf_to_log),
- /* K14 */ be_const_int(2),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_persist),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(save_param),
- /* K19 */ be_nested_str_weak(signal_endpoints_changed),
}),
- be_str_weak(bridge_add_endpoint),
+ be_str_weak(get_plugin_remote_info),
&be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120008, // 0006 JMPF R4 #0010
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x60140008, // 0008 GETGBL R5 G8
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C140200, // 000A CALL R5 1
- 0x00160605, // 000B ADD R5 K3 R5
- 0x00140B04, // 000C ADD R5 R5 K4
- 0x58180005, // 000D LDCONST R6 K5
- 0x7C100400, // 000E CALL R4 2
- 0x80000800, // 000F RET 0
- 0x88100106, // 0010 GETMBR R4 R0 K6
- 0x60140008, // 0011 GETGBL R5 G8
- 0x5C180800, // 0012 MOVE R6 R4
- 0x7C140200, // 0013 CALL R5 1
- 0x5C180600, // 0014 MOVE R6 R3
- 0x5C1C0000, // 0015 MOVE R7 R0
- 0x5C200800, // 0016 MOVE R8 R4
- 0x5C240400, // 0017 MOVE R9 R2
- 0x7C180600, // 0018 CALL R6 3
- 0x881C0107, // 0019 GETMBR R7 R0 K7
- 0x8C1C0F08, // 001A GETMET R7 R7 K8
- 0x5C240C00, // 001B MOVE R9 R6
- 0x7C1C0400, // 001C CALL R7 2
- 0x601C0013, // 001D GETGBL R7 G19
- 0x7C1C0000, // 001E CALL R7 0
- 0x981E1201, // 001F SETIDX R7 K9 R1
- 0x60200010, // 0020 GETGBL R8 G16
- 0x8C24050A, // 0021 GETMET R9 R2 K10
- 0x7C240200, // 0022 CALL R9 1
- 0x7C200200, // 0023 CALL R8 1
- 0xA8020004, // 0024 EXBLK 0 #002A
- 0x5C241000, // 0025 MOVE R9 R8
- 0x7C240000, // 0026 CALL R9 0
- 0x94280409, // 0027 GETIDX R10 R2 R9
- 0x981C120A, // 0028 SETIDX R7 R9 R10
- 0x7001FFFA, // 0029 JMP #0025
- 0x5820000B, // 002A LDCONST R8 K11
- 0xAC200200, // 002B CATCH R8 1 0
- 0xB0080000, // 002C RAISE 2 R0 R0
- 0xB8220400, // 002D GETNGBL R8 K2
- 0x60240018, // 002E GETGBL R9 G24
- 0x5828000C, // 002F LDCONST R10 K12
- 0x5C2C0800, // 0030 MOVE R11 R4
- 0x5C300200, // 0031 MOVE R12 R1
- 0x8C34010D, // 0032 GETMET R13 R0 K13
- 0x5C3C0400, // 0033 MOVE R15 R2
- 0x7C340400, // 0034 CALL R13 2
- 0x7C240800, // 0035 CALL R9 4
- 0x5828000E, // 0036 LDCONST R10 K14
- 0x7C200400, // 0037 CALL R8 2
- 0x8820010F, // 0038 GETMBR R8 R0 K15
- 0x98200A07, // 0039 SETIDX R8 R5 R7
- 0x50200200, // 003A LDBOOL R8 1 0
- 0x90022008, // 003B SETMBR R0 K16 R8
- 0x88200106, // 003C GETMBR R8 R0 K6
- 0x00201111, // 003D ADD R8 R8 K17
- 0x90020C08, // 003E SETMBR R0 K6 R8
- 0x8C200112, // 003F GETMET R8 R0 K18
- 0x7C200200, // 0040 CALL R8 1
- 0x8C200113, // 0041 GETMET R8 R0 K19
- 0x7C200200, // 0042 CALL R8 1
- 0x80040800, // 0043 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_second, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(every_second),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(events),
- /* K4 */ be_nested_str_weak(commissioning_open),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(time_reached),
- }),
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C040301, // 0004 GETMET R1 R1 K1
- 0x7C040200, // 0005 CALL R1 1
- 0x88040103, // 0006 GETMBR R1 R0 K3
- 0x8C040301, // 0007 GETMET R1 R1 K1
- 0x7C040200, // 0008 CALL R1 1
- 0x88040104, // 0009 GETMBR R1 R0 K4
- 0x4C080000, // 000A LDNIL R2
- 0x20040202, // 000B NE R1 R1 R2
- 0x78060006, // 000C JMPF R1 #0014
- 0xB8060A00, // 000D GETNGBL R1 K5
- 0x8C040306, // 000E GETMET R1 R1 K6
- 0x880C0104, // 000F GETMBR R3 R0 K4
- 0x7C040400, // 0010 CALL R1 2
- 0x78060001, // 0011 JMPF R1 #0014
- 0x4C040000, // 0012 LDNIL R1
- 0x90020801, // 0013 SETMBR R0 K4 R1
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: received_ack
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_received_ack, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(received_ack),
- }),
- be_str_weak(received_ack),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
+ ( &(const binstruction[ 7]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
+ 0x60140013, // 0003 GETGBL R5 G19
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
})
)
);
@@ -5288,51 +5862,13 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
/********************************************************************
-** Solidified function: get_plugin_class_displayname
+** Solidified function: msg_received
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
+be_local_closure(class_Matter_Device_msg_received, /* name */
be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(DISPLAY_NAME),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_displayname),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_root_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
+ 9, /* nstack */
+ 4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -5340,57 +5876,19 @@ be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(msg_received),
}),
- be_str_weak(is_root_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060003, // 0003 JMPF R1 #0008
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x1C040202, // 0006 EQ R1 R1 R2
- 0x74060000, // 0007 JMPT R1 #0009
- 0x50040001, // 0008 LDBOOL R1 0 1
- 0x50040200, // 0009 LDBOOL R1 1 0
- 0x80040200, // 000A RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_remote_info
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config_remotes),
- /* K1 */ be_nested_str_weak(find),
- }),
- be_str_weak(get_plugin_remote_info),
+ be_str_weak(msg_received),
&be_const_str_solidified,
( &(const binstruction[ 7]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x60140013, // 0003 GETGBL R5 G19
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x5C1C0400, // 0003 MOVE R7 R2
+ 0x5C200600, // 0004 MOVE R8 R3
+ 0x7C100800, // 0005 CALL R4 4
+ 0x80040800, // 0006 RET 1 R4
})
)
);
@@ -5398,653 +5896,93 @@ be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
/********************************************************************
-** Solidified function: _start_udp
+** Solidified function: MtrInfo_one
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__start_udp, /* name */
+be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
be_nested_proto(
- 7, /* nstack */
+ 9, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(UDPServer),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(start),
- }),
- be_str_weak(_start_udp),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80000400, // 0002 RET 0
- 0x4C080000, // 0003 LDNIL R2
- 0x1C080202, // 0004 EQ R2 R1 R2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x540615A3, // 0006 LDINT R1 5540
- 0xB80A0200, // 0007 GETNGBL R2 K1
- 0x600C0008, // 0008 GETGBL R3 G8
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C0C0200, // 000A CALL R3 1
- 0x000E0403, // 000B ADD R3 K2 R3
- 0x58100003, // 000C LDCONST R4 K3
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0800, // 000E GETNGBL R2 K4
- 0x8C080505, // 000F GETMET R2 R2 K5
- 0x5C100000, // 0010 MOVE R4 R0
- 0x58140006, // 0011 LDCONST R5 K6
- 0x5C180200, // 0012 MOVE R6 R1
- 0x7C080800, // 0013 CALL R2 4
- 0x90020002, // 0014 SETMBR R0 K0 R2
- 0x88080100, // 0015 GETMBR R2 R0 K0
- 0x8C080507, // 0016 GETMET R2 R2 K7
- 0x84100000, // 0017 CLOSURE R4 P0
- 0x7C080400, // 0018 CALL R2 2
- 0xA0000000, // 0019 CLOSE R0
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_commands
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_commands, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 4]) {
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrJoin),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrUpdate),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- be_nested_proto(
- 10, /* nstack */
- 4, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x68100000, // 0000 GETUPV R4 U0
- 0x8C100900, // 0001 GETMET R4 R4 K0
- 0x5C180000, // 0002 MOVE R6 R0
- 0x5C1C0200, // 0003 MOVE R7 R1
- 0x5C200400, // 0004 MOVE R8 R2
- 0x5C240600, // 0005 MOVE R9 R3
- 0x7C100A00, // 0006 CALL R4 5
- 0x80040800, // 0007 RET 1 R4
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(add_cmd),
- /* K2 */ be_nested_str_weak(MtrJoin),
- /* K3 */ be_nested_str_weak(MtrUpdate),
- /* K4 */ be_nested_str_weak(MtrInfo),
- }),
- be_str_weak(register_commands),
- &be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x580C0002, // 0002 LDCONST R3 K2
- 0x84100000, // 0003 CLOSURE R4 P0
- 0x7C040600, // 0004 CALL R1 3
- 0xB8060000, // 0005 GETNGBL R1 K0
- 0x8C040301, // 0006 GETMET R1 R1 K1
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x84100001, // 0008 CLOSURE R4 P1
- 0x7C040600, // 0009 CALL R1 3
- 0xB8060000, // 000A GETNGBL R1 K0
- 0x8C040301, // 000B GETMET R1 R1 K1
- 0x580C0004, // 000C LDCONST R3 K4
- 0x84100002, // 000D CLOSURE R4 P2
- 0x7C040600, // 000E CALL R1 3
- 0xA0000000, // 000F CLOSE R0
- 0x80000000, // 0010 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_mdns_announce_hostnames
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080200, // 0002 LDBOOL R2 1 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(wifi),
- /* K2 */ be_nested_str_weak(up),
- /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K4 */ be_nested_str_weak(add_rule),
- /* K5 */ be_nested_str_weak(Wifi_X23Connected),
- /* K6 */ be_nested_str_weak(matter_mdns_host),
- /* K7 */ be_nested_str_weak(eth),
- /* K8 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_mdns_announce_hostnames),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x94040302, // 0003 GETIDX R1 R1 K2
- 0x78060003, // 0004 JMPF R1 #0009
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x500C0000, // 0006 LDBOOL R3 0 0
- 0x7C040400, // 0007 CALL R1 2
- 0x70020005, // 0008 JMP #000F
- 0xB8060000, // 0009 GETNGBL R1 K0
- 0x8C040304, // 000A GETMET R1 R1 K4
- 0x580C0005, // 000B LDCONST R3 K5
- 0x84100000, // 000C CLOSURE R4 P0
- 0x58140006, // 000D LDCONST R5 K6
- 0x7C040800, // 000E CALL R1 4
- 0xB8060000, // 000F GETNGBL R1 K0
- 0x8C040307, // 0010 GETMET R1 R1 K7
- 0x7C040200, // 0011 CALL R1 1
- 0x94040302, // 0012 GETIDX R1 R1 K2
- 0x78060003, // 0013 JMPF R1 #0018
- 0x8C040103, // 0014 GETMET R1 R0 K3
- 0x500C0200, // 0015 LDBOOL R3 1 0
- 0x7C040400, // 0016 CALL R1 2
- 0x70020005, // 0017 JMP #001E
- 0xB8060000, // 0018 GETNGBL R1 K0
- 0x8C040304, // 0019 GETMET R1 R1 K4
- 0x580C0008, // 001A LDCONST R3 K8
- 0x84100001, // 001B CLOSURE R4 P1
- 0x58140006, // 001C LDCONST R5 K6
- 0x7C040800, // 001D CALL R1 4
- 0xA0000000, // 001E CLOSE R0
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_init, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[46]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(get_option),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(MATTER_OPTION),
- /* K5 */ be_nested_str_weak(UI),
- /* K6 */ be_nested_str_weak(profiler),
- /* K7 */ be_nested_str_weak(Profiler),
- /* K8 */ be_nested_str_weak(started),
- /* K9 */ be_nested_str_weak(tick),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(plugins_config_remotes),
- /* K14 */ be_nested_str_weak(vendorid),
- /* K15 */ be_nested_str_weak(VENDOR_ID),
- /* K16 */ be_nested_str_weak(productid),
- /* K17 */ be_nested_str_weak(PRODUCT_ID),
- /* K18 */ be_nested_str_weak(root_iterations),
- /* K19 */ be_nested_str_weak(PBKDF_ITERATIONS),
- /* K20 */ be_nested_str_weak(next_ep),
- /* K21 */ be_const_int(1),
- /* K22 */ be_nested_str_weak(root_salt),
- /* K23 */ be_nested_str_weak(random),
- /* K24 */ be_nested_str_weak(ipv4only),
- /* K25 */ be_nested_str_weak(disable_bridge_mode),
- /* K26 */ be_nested_str_weak(load_param),
- /* K27 */ be_nested_str_weak(sessions),
- /* K28 */ be_nested_str_weak(Session_Store),
- /* K29 */ be_nested_str_weak(load_fabrics),
- /* K30 */ be_nested_str_weak(message_handler),
- /* K31 */ be_nested_str_weak(MessageHandler),
- /* K32 */ be_nested_str_weak(events),
- /* K33 */ be_nested_str_weak(EventHandler),
- /* K34 */ be_nested_str_weak(ui),
- /* K35 */ be_nested_str_weak(wifi),
- /* K36 */ be_nested_str_weak(up),
- /* K37 */ be_nested_str_weak(eth),
- /* K38 */ be_nested_str_weak(start),
- /* K39 */ be_nested_str_weak(add_rule),
- /* K40 */ be_nested_str_weak(Wifi_X23Connected),
- /* K41 */ be_nested_str_weak(matter_start),
- /* K42 */ be_nested_str_weak(Eth_X23Connected),
- /* K43 */ be_nested_str_weak(_init_basic_commissioning),
- /* K44 */ be_nested_str_weak(add_driver),
- /* K45 */ be_nested_str_weak(register_commands),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[112]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0xB8120600, // 0003 GETNGBL R4 K3
- 0x88100904, // 0004 GETMBR R4 R4 K4
- 0x7C080400, // 0005 CALL R2 2
- 0x740A0004, // 0006 JMPT R2 #000C
- 0xB80A0600, // 0007 GETNGBL R2 K3
- 0x8C080505, // 0008 GETMET R2 R2 K5
- 0x5C100000, // 0009 MOVE R4 R0
- 0x7C080400, // 000A CALL R2 2
- 0x80000400, // 000B RET 0
- 0xB80A0600, // 000C GETNGBL R2 K3
- 0xB80E0600, // 000D GETNGBL R3 K3
- 0x8C0C0707, // 000E GETMET R3 R3 K7
- 0x7C0C0200, // 000F CALL R3 1
- 0x900A0C03, // 0010 SETMBR R2 K6 R3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x90021002, // 0012 SETMBR R0 K8 R2
- 0x9002130A, // 0013 SETMBR R0 K9 K10
- 0x60080012, // 0014 GETGBL R2 G18
- 0x7C080000, // 0015 CALL R2 0
- 0x90021602, // 0016 SETMBR R0 K11 R2
- 0x50080000, // 0017 LDBOOL R2 0 0
- 0x90021802, // 0018 SETMBR R0 K12 R2
- 0x60080013, // 0019 GETGBL R2 G19
- 0x7C080000, // 001A CALL R2 0
- 0x90021A02, // 001B SETMBR R0 K13 R2
- 0x8808010F, // 001C GETMBR R2 R0 K15
- 0x90021C02, // 001D SETMBR R0 K14 R2
- 0x88080111, // 001E GETMBR R2 R0 K17
- 0x90022002, // 001F SETMBR R0 K16 R2
- 0x88080113, // 0020 GETMBR R2 R0 K19
- 0x90022402, // 0021 SETMBR R0 K18 R2
- 0x90022915, // 0022 SETMBR R0 K20 K21
- 0x8C080317, // 0023 GETMET R2 R1 K23
- 0x5412000F, // 0024 LDINT R4 16
- 0x7C080400, // 0025 CALL R2 2
- 0x90022C02, // 0026 SETMBR R0 K22 R2
- 0x50080000, // 0027 LDBOOL R2 0 0
- 0x90023002, // 0028 SETMBR R0 K24 R2
- 0x50080000, // 0029 LDBOOL R2 0 0
- 0x90023202, // 002A SETMBR R0 K25 R2
- 0x8C08011A, // 002B GETMET R2 R0 K26
- 0x7C080200, // 002C CALL R2 1
- 0xB80A0600, // 002D GETNGBL R2 K3
- 0x8C08051C, // 002E GETMET R2 R2 K28
- 0x5C100000, // 002F MOVE R4 R0
- 0x7C080400, // 0030 CALL R2 2
- 0x90023602, // 0031 SETMBR R0 K27 R2
- 0x8808011B, // 0032 GETMBR R2 R0 K27
- 0x8C08051D, // 0033 GETMET R2 R2 K29
- 0x7C080200, // 0034 CALL R2 1
- 0xB80A0600, // 0035 GETNGBL R2 K3
- 0x8C08051F, // 0036 GETMET R2 R2 K31
- 0x5C100000, // 0037 MOVE R4 R0
- 0x7C080400, // 0038 CALL R2 2
- 0x90023C02, // 0039 SETMBR R0 K30 R2
- 0xB80A0600, // 003A GETNGBL R2 K3
- 0x8C080521, // 003B GETMET R2 R2 K33
- 0x5C100000, // 003C MOVE R4 R0
- 0x7C080400, // 003D CALL R2 2
- 0x90024002, // 003E SETMBR R0 K32 R2
- 0xB80A0600, // 003F GETNGBL R2 K3
- 0x8C080505, // 0040 GETMET R2 R2 K5
- 0x5C100000, // 0041 MOVE R4 R0
- 0x7C080400, // 0042 CALL R2 2
- 0x90024402, // 0043 SETMBR R0 K34 R2
- 0xB80A0200, // 0044 GETNGBL R2 K1
- 0x8C080523, // 0045 GETMET R2 R2 K35
- 0x7C080200, // 0046 CALL R2 1
- 0x94080524, // 0047 GETIDX R2 R2 K36
- 0x740A0004, // 0048 JMPT R2 #004E
- 0xB80A0200, // 0049 GETNGBL R2 K1
- 0x8C080525, // 004A GETMET R2 R2 K37
- 0x7C080200, // 004B CALL R2 1
- 0x94080524, // 004C GETIDX R2 R2 K36
- 0x780A0001, // 004D JMPF R2 #0050
- 0x8C080126, // 004E GETMET R2 R0 K38
- 0x7C080200, // 004F CALL R2 1
- 0xB80A0200, // 0050 GETNGBL R2 K1
- 0x8C080523, // 0051 GETMET R2 R2 K35
- 0x7C080200, // 0052 CALL R2 1
- 0x94080524, // 0053 GETIDX R2 R2 K36
- 0x740A0005, // 0054 JMPT R2 #005B
- 0xB80A0200, // 0055 GETNGBL R2 K1
- 0x8C080527, // 0056 GETMET R2 R2 K39
- 0x58100028, // 0057 LDCONST R4 K40
- 0x84140000, // 0058 CLOSURE R5 P0
- 0x58180029, // 0059 LDCONST R6 K41
- 0x7C080800, // 005A CALL R2 4
- 0xB80A0200, // 005B GETNGBL R2 K1
- 0x8C080525, // 005C GETMET R2 R2 K37
- 0x7C080200, // 005D CALL R2 1
- 0x94080524, // 005E GETIDX R2 R2 K36
- 0x740A0005, // 005F JMPT R2 #0066
- 0xB80A0200, // 0060 GETNGBL R2 K1
- 0x8C080527, // 0061 GETMET R2 R2 K39
- 0x5810002A, // 0062 LDCONST R4 K42
- 0x84140001, // 0063 CLOSURE R5 P1
- 0x58180029, // 0064 LDCONST R6 K41
- 0x7C080800, // 0065 CALL R2 4
- 0x8C08012B, // 0066 GETMET R2 R0 K43
- 0x7C080200, // 0067 CALL R2 1
- 0xB80A0200, // 0068 GETNGBL R2 K1
- 0x8C08052C, // 0069 GETMET R2 R2 K44
- 0x5C100000, // 006A MOVE R4 R0
- 0x7C080400, // 006B CALL R2 2
- 0x8C08012D, // 006C GETMET R2 R0 K45
- 0x7C080200, // 006D CALL R2 1
- 0xA0000000, // 006E CLOSE R0
- 0x80000000, // 006F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_announce_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
+ /* K0 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K1 */ be_nested_str_weak(state_json),
+ /* K2 */ be_nested_str_weak(_X7B_X22MtrInfo_X22_X3A_X25s_X7D),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(publish_result),
+ /* K5 */ be_nested_str_weak(),
}),
- be_str_weak(mdns_announce_op_discovery_all_fabrics),
+ be_str_weak(MtrInfo_one),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
+ ( &(const binstruction[20]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0403, // 0004 EQ R3 R2 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80000600, // 0006 RET 0
+ 0x8C0C0501, // 0007 GETMET R3 R2 K1
+ 0x7C0C0200, // 0008 CALL R3 1
+ 0x780E0008, // 0009 JMPF R3 #0013
+ 0x60100018, // 000A GETGBL R4 G24
+ 0x58140002, // 000B LDCONST R5 K2
+ 0x5C180600, // 000C MOVE R6 R3
+ 0x7C100400, // 000D CALL R4 2
+ 0xB8160600, // 000E GETNGBL R5 K3
+ 0x8C140B04, // 000F GETMET R5 R5 K4
+ 0x5C1C0800, // 0010 MOVE R7 R4
+ 0x58200005, // 0011 LDCONST R8 K5
+ 0x7C140600, // 0012 CALL R5 3
+ 0x80000000, // 0013 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(started),
+ /* K1 */ be_nested_str_weak(autoconf_device),
+ /* K2 */ be_nested_str_weak(_start_udp),
+ /* K3 */ be_nested_str_weak(UDP_PORT),
+ /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ }),
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x80000200, // 0002 RET 0
+ 0x8C040101, // 0003 GETMET R1 R0 K1
0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x8C040104, // 0008 GETMET R1 R0 K4
+ 0x7C040200, // 0009 CALL R1 1
+ 0x50040200, // 000A LDBOOL R1 1 0
+ 0x90020001, // 000B SETMBR R0 K0 R1
+ 0x80000000, // 000C RET 0
})
)
);
@@ -6055,21 +5993,42 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /
** Solidified class: Matter_Device
********************************************************************/
be_local_class(Matter_Device,
- 40,
+ 34,
NULL,
- be_nested_map(119,
+ be_nested_map(112,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(commissioning_L, -1), be_const_var(17) },
- { be_const_key_weak(save_before_restart, -1), be_const_closure(class_Matter_Device_save_before_restart_closure) },
- { be_const_key_weak(mdns_pase_eth, -1), be_const_var(25) },
- { be_const_key_weak(start_operational_discovery, 30), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
- { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(productid, -1), be_const_var(24) },
- { be_const_key_weak(find_plugin_by_endpoint, -1), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
- { be_const_key_weak(read_sensors_scheduler, 22), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
- { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
- { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
- { be_const_key_weak(PASSCODE_INVALID, 51), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ { be_const_key_weak(commissioning_salt, -1), be_const_var(15) },
+ { be_const_key_weak(msg_send, 0), be_const_closure(class_Matter_Device_msg_send_closure) },
+ { be_const_key_weak(bridge_remove_endpoint, -1), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
+ { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
+ { be_const_key_weak(plugins_persist, -1), be_const_var(2) },
+ { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
+ { be_const_key_weak(root_discriminator, -1), be_const_var(26) },
+ { be_const_key_weak(read_sensors_scheduler, -1), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
+ { be_const_key_weak(hostname_wifi, -1), be_const_var(21) },
+ { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
+ { be_const_key_weak(plugins_config, -1), be_const_var(3) },
+ { be_const_key_weak(get_active_endpoints, -1), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
+ { be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_Device_msg_received_closure) },
+ { be_const_key_weak(http_remotes, 41), be_const_var(25) },
+ { be_const_key_weak(commissioning_instance_eth, 40), be_const_var(20) },
+ { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
+ { be_const_key_weak(hostname_eth, -1), be_const_var(22) },
+ { be_const_key_weak(start_operational_discovery, 47), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
+ { be_const_key_weak(_mdns_announce_hostname, -1), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
+ { be_const_key_weak(add_read_sensors_schedule, 38), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
+ { be_const_key_weak(events, 62), be_const_var(11) },
+ { be_const_key_weak(start_mdns_announce_hostnames, -1), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
+ { be_const_key_weak(_start_udp, 75), be_const_closure(class_Matter_Device__start_udp_closure) },
+ { be_const_key_weak(compute_qrcode_content, 70), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
+ { be_const_key_weak(get_plugin_remote_info, 93), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
+ { be_const_key_weak(_instantiate_plugins_from_config, 107), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
+ { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(udp_server, -1), be_const_var(5) },
+ { be_const_key_weak(sessions, -1), be_const_var(8) },
+ { be_const_key_weak(resolve_attribute_read_solo, -1), be_const_closure(class_Matter_Device_resolve_attribute_read_solo_closure) },
+ { be_const_key_weak(started, 15), be_const_var(0) },
+ { be_const_key_weak(PASSCODE_INVALID, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(12,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
@@ -6085,25 +6044,39 @@ be_local_class(Matter_Device,
be_const_int(12345678),
be_const_int(87654321),
})) ) } )) },
- { be_const_key_weak(FILENAME, -1), be_nested_str_weak(_matter_device_X2Ejson) },
- { be_const_key_weak(invoke_request, -1), be_const_closure(class_Matter_Device_invoke_request_closure) },
- { be_const_key_weak(generate_random_passcode, -1), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
- { be_const_key_weak(UDP_PORT, 74), be_const_int(5540) },
- { be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
- { be_const_key_weak(debug, -1), be_const_var(33) },
- { be_const_key_weak(plugins, -1), be_const_var(1) },
- { be_const_key_weak(process_attribute_expansion, 59), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
- { be_const_key_weak(commissioning_open, -1), be_const_var(12) },
- { be_const_key_weak(plugins_config, -1), be_const_var(3) },
- { be_const_key_weak(vendorid, -1), be_const_var(23) },
- { be_const_key_weak(start_mdns_announce_hostnames, 12), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
- { be_const_key_weak(register_commands, 61), be_const_closure(class_Matter_Device_register_commands_closure) },
- { be_const_key_weak(k2l, 32), be_const_static_closure(class_Matter_Device_k2l_closure) },
- { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
- { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
- { be_const_key_weak(remove_fabric, -1), be_const_closure(class_Matter_Device_remove_fabric_closure) },
+ { be_const_key_weak(bridge_add_endpoint, 85), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
+ { be_const_key_weak(profiler, -1), be_const_var(6) },
+ { be_const_key_weak(MtrUpdate, -1), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
{ be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
- { be_const_key_weak(plugins_classes, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(save_param, 77), be_const_closure(class_Matter_Device_save_param_closure) },
+ { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
+ { be_const_key_weak(init, 2), be_const_closure(class_Matter_Device_init_closure) },
+ { be_const_key_weak(process_attribute_expansion, 105), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
+ { be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
+ { be_const_key_weak(generate_random_passcode, -1), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
+ { be_const_key_weak(commissioning_instance_wifi, -1), be_const_var(19) },
+ { be_const_key_weak(register_commands, 34), be_const_closure(class_Matter_Device_register_commands_closure) },
+ { be_const_key_weak(every_250ms, 50), be_const_closure(class_Matter_Device_every_250ms_closure) },
+ { be_const_key_weak(commissioning_L, -1), be_const_var(17) },
+ { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
+ { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
+ { be_const_key_weak(conf_to_log, -1), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
+ { be_const_key_weak(probe_sensor_time, -1), be_const_var(32) },
+ { be_const_key_weak(next_ep, 49), be_const_var(30) },
+ { be_const_key_weak(mdns_pase_eth, 57), be_const_var(23) },
+ { be_const_key_weak(tick, -1), be_const_var(10) },
+ { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(24) },
+ { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
+ { be_const_key_weak(remove_fabric, 65), be_const_closure(class_Matter_Device_remove_fabric_closure) },
+ { be_const_key_weak(probe_sensor_timestamp, 76), be_const_var(33) },
+ { be_const_key_weak(mdns_announce_PASE, 37), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
+ { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
+ { be_const_key_weak(ui, 24), be_const_var(9) },
+ { be_const_key_weak(PRODUCT_ID, 92), be_const_int(32768) },
+ { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
+ { be_const_key_weak(find_plugin_by_endpoint, -1), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
+ { be_const_key_weak(PBKDF_ITERATIONS, -1), be_const_int(1000) },
+ { be_const_key_weak(plugins_classes, 44), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(53,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
@@ -6160,95 +6133,53 @@ be_local_class(Matter_Device,
{ be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
{ be_const_key_weak(gensw, -1), be_const_class(be_class_Matter_Plugin_Sensor_GenericSwitch) },
})) ) } )) },
- { be_const_key_weak(get_plugin_remote_info, 35), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
- { be_const_key_weak(message_handler, -1), be_const_var(7) },
- { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
- { be_const_key_weak(root_salt, 87), be_const_var(35) },
- { be_const_key_weak(start_basic_commissioning, 8), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
- { be_const_key_weak(hostname_wifi, -1), be_const_var(21) },
- { be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
- { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
- { be_const_key_weak(commissioning_discriminator, -1), be_const_var(14) },
- { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
- { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
- { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
- { be_const_key_weak(PBKDF_ITERATIONS, -1), be_const_int(1000) },
- { be_const_key_weak(resolve_attribute_read_solo, -1), be_const_closure(class_Matter_Device_resolve_attribute_read_solo_closure) },
- { be_const_key_weak(http_remotes, -1), be_const_var(27) },
- { be_const_key_weak(mdns_pase_wifi, 71), be_const_var(26) },
- { be_const_key_weak(_instantiate_plugins_from_config, 107), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
- { be_const_key_weak(commissioning_w0, 114), be_const_var(16) },
- { be_const_key_weak(start, -1), be_const_closure(class_Matter_Device_start_closure) },
- { be_const_key_weak(plugins_persist, 63), be_const_var(2) },
- { be_const_key_weak(_trigger_read_sensors, -1), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
- { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
- { be_const_key_weak(mdns_remove_PASE, -1), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
- { be_const_key_weak(get_active_endpoints, 40), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
- { be_const_key_weak(bridge_remove_endpoint, 103), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
- { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
- { be_const_key_weak(commissioning_instance_wifi, -1), be_const_var(19) },
- { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
- { be_const_key_weak(adjust_next_ep, 110), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
- { be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
- { be_const_key_weak(attribute_updated, 34), be_const_closure(class_Matter_Device_attribute_updated_closure) },
- { be_const_key_weak(next_ep, -1), be_const_var(32) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
- { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(18) },
- { be_const_key_weak(msg_send, -1), be_const_closure(class_Matter_Device_msg_send_closure) },
- { be_const_key_weak(register_http_remote, 41), be_const_closure(class_Matter_Device_register_http_remote_closure) },
- { be_const_key_weak(tick, -1), be_const_var(10) },
- { be_const_key_weak(udp_server, 45), be_const_var(5) },
- { be_const_key_weak(bridge_add_endpoint, 97), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
- { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
- { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
- { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
- { be_const_key_weak(root_iterations, 112), be_const_var(34) },
- { be_const_key_weak(start_commissioning_complete, 62), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
- { be_const_key_weak(compute_manual_pairing_code, -1), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
- { be_const_key_weak(MtrInfo, 98), be_const_closure(class_Matter_Device_MtrInfo_closure) },
- { be_const_key_weak(ipv4only, 96), be_const_var(30) },
- { be_const_key_weak(commissioning_instance_eth, -1), be_const_var(20) },
- { be_const_key_weak(MtrUpdate, 25), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
- { be_const_key_weak(profiler, -1), be_const_var(6) },
- { be_const_key_weak(root_L, -1), be_const_var(37) },
- { be_const_key_weak(start_operational_discovery_deferred, 72), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
- { be_const_key_weak(add_read_sensors_schedule, 92), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
- { be_const_key_weak(hostname_eth, 91), be_const_var(22) },
- { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
- { be_const_key_weak(every_250ms, 77), be_const_closure(class_Matter_Device_every_250ms_closure) },
- { be_const_key_weak(compute_qrcode_content, 81), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
- { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
- { be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_Device_msg_received_closure) },
- { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
- { be_const_key_weak(root_discriminator, 75), be_const_var(28) },
- { be_const_key_weak(events, -1), be_const_var(11) },
- { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
- { be_const_key_weak(ui, 69), be_const_var(9) },
- { be_const_key_weak(_mdns_announce_hostname, 68), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
- { be_const_key_weak(_compute_pbkdf, -1), be_const_closure(class_Matter_Device__compute_pbkdf_closure) },
- { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
{ be_const_key_weak(mdns_remove_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
- { be_const_key_weak(root_w0, -1), be_const_var(36) },
- { be_const_key_weak(received_ack, 55), be_const_closure(class_Matter_Device_received_ack_closure) },
- { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
- { be_const_key_weak(PRODUCT_ID, 49), be_const_int(32768) },
- { be_const_key_weak(autoconf_device_map, 26), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
- { be_const_key_weak(conf_to_log, 44), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
- { be_const_key_weak(sessions, -1), be_const_var(8) },
- { be_const_key_weak(probe_sensor_time, -1), be_const_var(38) },
- { be_const_key_weak(plugins_config_remotes, -1), be_const_var(4) },
- { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(39) },
- { be_const_key_weak(is_root_commissioning_open, -1), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
- { be_const_key_weak(started, -1), be_const_var(0) },
- { be_const_key_weak(disable_bridge_mode, -1), be_const_var(31) },
+ { be_const_key_weak(mdns_remove_PASE, 86), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
+ { be_const_key_weak(debug, 84), be_const_var(31) },
+ { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
+ { be_const_key_weak(_trigger_read_sensors, -1), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
+ { be_const_key_weak(received_ack, 69), be_const_closure(class_Matter_Device_received_ack_closure) },
+ { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
+ { be_const_key_weak(plugins_config_remotes, 80), be_const_var(4) },
+ { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
+ { be_const_key_weak(message_handler, 99), be_const_var(7) },
+ { be_const_key_weak(compute_manual_pairing_code, 68), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
+ { be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
+ { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
+ { be_const_key_weak(start_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
+ { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
+ { be_const_key_weak(commissioning_w0, -1), be_const_var(16) },
+ { be_const_key_weak(start_commissioning_complete_deferred, 67), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
{ be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
- { be_const_key_weak(commissioning_salt, 23), be_const_var(15) },
- { be_const_key_weak(root_passcode, -1), be_const_var(29) },
- { be_const_key_weak(stop, 20), be_const_closure(class_Matter_Device_stop_closure) },
- { be_const_key_weak(commissioning_iterations, -1), be_const_var(13) },
- { be_const_key_weak(init, -1), be_const_closure(class_Matter_Device_init_closure) },
- { be_const_key_weak(start_commissioning_complete_deferred, 4), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
+ { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(18) },
+ { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
+ { be_const_key_weak(start_commissioning_complete, 56), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
+ { be_const_key_weak(FILENAME, 12), be_nested_str_weak(_matter_device_X2Ejson) },
+ { be_const_key_weak(commissioning_open, -1), be_const_var(12) },
+ { be_const_key_weak(MtrInfo, -1), be_const_closure(class_Matter_Device_MtrInfo_closure) },
+ { be_const_key_weak(invoke_request, 45), be_const_closure(class_Matter_Device_invoke_request_closure) },
+ { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
+ { be_const_key_weak(commissioning_discriminator, 103), be_const_var(14) },
+ { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
+ { be_const_key_weak(is_root_commissioning_open, 39), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
+ { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
+ { be_const_key_weak(disable_bridge_mode, -1), be_const_var(29) },
+ { be_const_key_weak(UDP_PORT, 36), be_const_int(5540) },
+ { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
+ { be_const_key_weak(register_http_remote, 33), be_const_closure(class_Matter_Device_register_http_remote_closure) },
+ { be_const_key_weak(stop, 31), be_const_closure(class_Matter_Device_stop_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery, 27), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
+ { be_const_key_weak(plugins, -1), be_const_var(1) },
+ { be_const_key_weak(ipv4only, 16), be_const_var(28) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Device_attribute_updated_closure) },
+ { be_const_key_weak(save_before_restart, 14), be_const_closure(class_Matter_Device_save_before_restart_closure) },
+ { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
+ { be_const_key_weak(k2l, 8), be_const_static_closure(class_Matter_Device_k2l_closure) },
+ { be_const_key_weak(commissioning_iterations, 3), be_const_var(13) },
+ { be_const_key_weak(root_passcode, -1), be_const_var(27) },
+ { be_const_key_weak(start, -1), be_const_closure(class_Matter_Device_start_closure) },
})),
be_str_weak(Matter_Device)
);
From be40830bc07aad777abacb2355b4596227c89be9 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Thu, 4 Jul 2024 20:47:32 +0200
Subject: [PATCH 130/252] Matter support for 'Generic Switch' based on Tasmota
Buttons (#21731)
---
CHANGELOG.md | 1 +
.../berry_matter/src/be_matter_module.c | 2 +-
.../src/embedded/Matter_EventHandler.be | 147 +-
.../src/embedded/Matter_IM_Message.be | 76 +-
...tter_Plugin_2_Sensor_GenericSwitch_Btn.be} | 78 +-
.../berry_matter/src/embedded/Matter_UI.be | 1 +
.../src/embedded/Matter_zz_Device.be | 38 +
.../solidify/solidified_Matter_EventHandler.h | 451 +-
.../solidify/solidified_Matter_IM_Message.h | 214 +-
...ied_Matter_Plugin_2_Sensor_GenericSwitch.h | 350 -
...Matter_Plugin_2_Sensor_GenericSwitch_Btn.h | 498 +
.../src/solidify/solidified_Matter_UI.h | 2 +-
.../solidify/solidified_Matter_zz_Device.h | 9293 +++++++++--------
13 files changed, 5962 insertions(+), 5189 deletions(-)
rename lib/libesp32/berry_matter/src/embedded/{Matter_Plugin_2_Sensor_GenericSwitch.be => Matter_Plugin_2_Sensor_GenericSwitch_Btn.be} (50%)
delete mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
create mode 100644 lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8e68ae57a..42406f0ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file.
- NeoPool data validation and communication statistics default enabled for ESP32 only (#21721)
- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code` (#21724)
- Berry `int64` added `low32()` and `high32()` methods, used in Matter
+- Matter support for 'Generic Switch' based on Tasmota Buttons
### Breaking Changed
diff --git a/lib/libesp32/berry_matter/src/be_matter_module.c b/lib/libesp32/berry_matter/src/be_matter_module.c
index 34d480df3..c6cce0315 100644
--- a/lib/libesp32/berry_matter/src/be_matter_module.c
+++ b/lib/libesp32/berry_matter/src/be_matter_module.c
@@ -272,7 +272,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_3_Sensor_Rain.h"
#include "solidify/solidified_Matter_Plugin_3_Sensor_Waterleak.h"
#include "solidify/solidified_Matter_Plugin_2_Fan.h"
-#include "solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h"
+#include "solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Fan.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Contact.h"
#include "solidify/solidified_Matter_Plugin_9_Virt_Sensor_Occupancy.h"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
index 5c1f17434..c910077c6 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_EventHandler.be
@@ -72,28 +72,139 @@ class Matter_EventQueued
# free up some space
def to_raw_bytes()
if (self.raw_tlv == nil)
- var event_report = matter.EventReportIB()
- var event_ib = matter.EventDataIB()
- event_report.event_data = event_ib
- var event_path = matter.EventPathIB()
- event_path.endpoint = self.endpoint
- event_path.cluster = self.cluster
- event_path.event = self.event_id
- event_path.is_urgent = self.is_urgent
- event_ib.path = event_path
- event_ib.priority = self.priority
- event_ib.event_number = self.event_no
- event_ib.epoch_timestamp = self.epoch_timestamp
- event_ib.data = matter.TLV.Matter_TLV_struct()
- if (self.data0 != nil) event_ib.data.add_obj(0, self.data0) end
- if (self.data1 != nil) event_ib.data.add_obj(1, self.data1) end
- if (self.data2 != nil) event_ib.data.add_obj(2, self.data2) end
+ self.raw_tlv = bytes(64)
+ self.eventreport2raw(self.raw_tlv, self.endpoint, self.cluster, self.event_id, self.is_urgent, self.priority, self.event_no, self.epoch_timestamp, self.data0, self.data1, self.data2)
+ # var event_report = matter.EventReportIB()
+ # var event_ib = matter.EventDataIB()
+ # event_report.event_data = event_ib
+ # var event_path = matter.EventPathIB()
+ # event_path.endpoint = self.endpoint
+ # event_path.cluster = self.cluster
+ # event_path.event = self.event_id
+ # event_path.is_urgent = self.is_urgent
+ # event_ib.path = event_path
+ # event_ib.priority = self.priority
+ # event_ib.event_number = self.event_no
+ # event_ib.epoch_timestamp = self.epoch_timestamp
+ # event_ib.data = matter.TLV.Matter_TLV_struct()
+ # if (self.data0 != nil) event_ib.data.add_obj(0, self.data0) end
+ # if (self.data1 != nil) event_ib.data.add_obj(1, self.data1) end
+ # if (self.data2 != nil) event_ib.data.add_obj(2, self.data2) end
- self.raw_tlv = event_report.to_TLV().tlv2raw() # bytes()
+ # self.raw_tlv = event_report.to_TLV().tlv2raw() # bytes()
end
return self.raw_tlv
end
+ #############################################################
+ # eventreport2raw
+ #
+ # 15 = EventReportIB
+ # 3501 = EventDataIB
+ #
+ def eventreport2raw(raw, endpoint, cluster, event, is_urgent, priority, event_no, epoch_timestamp, data0, data1, data2)
+ # open struct EventReportIB
+ raw.add(0x15, 1) # add 15
+ # open sturct EventDataIB
+ raw.add(0x3501, -2) # add 3501
+ # add path
+ self.eventpath2raw(raw, endpoint, cluster, event, is_urgent)
+ # add EventNumber
+ raw.add(0x2701, -2) # 2701 FFFFFFFFFFFFFFFF
+ raw.add(event_no.low32(), 4) # int64 low part
+ raw.add(event_no.high32(), 4) # int64 high part
+ # priority
+ raw.add(0x2402, -2) # add 2402
+ raw.add(priority, 1) # add priority as one byte
+ # EpochTimestamp
+ raw.add(0x2603, -2) # add 2603
+ raw.add(epoch_timestamp, 4) # add epoch as 32 bits
+ # Data struct
+ raw.add(0x3507, -2) # add 3507
+
+ # data0
+ if (data0 != nil)
+ data0.tag_sub = 0
+ data0.tlv2raw(raw)
+ end
+ # data1
+ if (data1 != nil)
+ data1.tag_sub = 1
+ data1.tlv2raw(raw)
+ end
+ # data2
+ if (data2 != nil)
+ data2.tag_sub = 2
+ data2.tlv2raw(raw)
+ end
+
+ # close struct Data
+ raw.add(0x18, 1) # add 18
+ # close struct EventDataIB
+ raw.add(0x18, 1) # add 18
+ # close struct EventReportIB
+ raw.add(0x18, 1) # add 18
+ end
+
+ #############################################################
+ # eventpath2raw
+ #
+ # Encodes endpoint/cluster/attribute as `EventPathIB` elements
+ # Takes sub-tag
+ #
+ # 1 = EventPathIB
+ # 0 = Node
+ # 1 = Endpoint
+ # 2 = Cluster
+ # 3 = Event
+ # 4 = IsUrgent
+ #
+ # 3700 0 = LIST
+ # 2401 01 1 = 1U (U1)
+ # 2402 39 2 = 0x39U (U1)
+ # 2403 11 3 = 0x11U (U1)
+ # 2904 4 = true
+ # 18
+ def eventpath2raw(raw, endpoint, cluster, event, is_urgent)
+ # open struct
+ raw.add(0x3700, -2) # add 3700
+ # add endpoint
+ if endpoint <= 0xFF # endpoint is 16 bits max
+ raw.add(0x2401, -2) # add 2401
+ raw.add(endpoint, 1)
+ else
+ raw.add(0x2501, -2) # add 2501
+ raw.add(endpoint, 2)
+ end
+ # add cluster
+ if cluster <= 0xFF # cluster is 32 bits max
+ raw.add(0x2402, -2) # add 2402
+ raw.add(cluster, 1)
+ elif cluster <= 0xFFFF
+ raw.add(0x2502, -2) # add 2502
+ raw.add(cluster, 2)
+ else
+ raw.add(0x2602, -2) # add 2602
+ raw.add(cluster, 4)
+ end
+ # add event
+ if event <= 0xFF # cluster is 32 bits max
+ raw.add(0x2403, -2) # add 2403
+ raw.add(event, 1)
+ else
+ raw.add(0x2503, -2) # add 2503
+ raw.add(event, 2)
+ end
+ # IsUrgent
+ if is_urgent
+ raw.add(0x2904, -2) # add 2904
+ else
+ raw.add(0x2804, -2) # add 2804
+ end
+ # close
+ raw.add(0x18, 1) # add 18
+ end
+
#################################################################################
# compact
#
@@ -372,7 +483,7 @@ class Matter_EventHandler
log(f"MTR: +Add_Event ({priority_str}{new_event.event_no:8s}) [{new_event.endpoint:02X}]{new_event.cluster:04X}/{new_event.event_id:02X} {event_name}- {data_str}", 2)
end
self.queue_event(new_event)
- # check if we have an subscription interested in this new event
+ # check if we have a subscription interested in this new event
self.device.message_handler.im.subs_shop.event_published(new_event)
end
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
index d0b596091..7559236e1 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_IM_Message.be
@@ -352,27 +352,73 @@ class Matter_IM_ReportData_Pull : Matter_IM_Message
########## Response
# prepare the response
- var ret = matter.ReportDataMessage()
- ret.subscription_id = self.subscription_id
- ret.suppress_response = self.suppress_response
- # ret.suppress_response = true
- if (data != nil && size(data) > 0)
- ret.attribute_reports = [data]
- end
- if (data_ev != nil && size(data_ev) > 0)
- ret.event_reports = [data_ev]
- end
- ret.more_chunked_messages = (self.data != nil) || (self.data_ev != nil) # we got more data to send
+ # Manually craft payload
+ var more_chunked_messages = (self.data != nil) || (self.data_ev != nil)
+ var raw = bytes(self.MAX_MESSAGE)
- # print(">>>>> send elements before encode")
- var encoded_tlv = ret.to_TLV().tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
- resp.encode_frame(encoded_tlv) # payload in cleartext, pre-allocate max buffer
+ # open struct ReportDataMessage
+ raw.add(0x15, 1) # add 15
+ # open sturct EventDataIB
+ if (self.subscription_id != nil)
+ raw.add(0x2500, -2) # add 2500
+ raw.add(self.subscription_id, 2) # add subscription_id as 16 bits
+ end
+ # do we have attributes?
+ if (data != nil && size(data) > 0)
+ raw.add(0x3601, -2) # add 3601
+ raw.append(data)
+ raw.add(0x18, 1) # add 18
+ end
+ # do we have events?
+ if (data_ev != nil && size(data_ev) > 0)
+ raw.add(0x3602, -2) # add 3601
+ raw.append(data_ev)
+ raw.add(0x18, 1) # add 18
+ end
+ # MoreChunkedMessages
+ if more_chunked_messages # we got more data to send
+ raw.add(0x2903, -2) # add 2903
+ else
+ raw.add(0x2803, -2) # add 2803
+ end
+ # SuppressResponse
+ if (self.suppress_response != nil)
+ if self.suppress_response
+ raw.add(0x2904, -2) # add 2904
+ else
+ raw.add(0x2804, -2) # add 2804
+ end
+ end
+ # InteractionModelRevision
+ raw.add(0x24FF, -2) # add 24FF
+ raw.add(0x01, 1) # add 01
+ # close struct ReportDataMessage
+ raw.add(0x18, 1) # add 18
+ # log(f">>>: {raw.tohex()}", 3)
+
+ # ##### Previous code
+ # var ret = matter.ReportDataMessage()
+ # ret.subscription_id = self.subscription_id
+ # ret.suppress_response = self.suppress_response
+ # if (data != nil && size(data) > 0)
+ # ret.attribute_reports = [data]
+ # end
+ # if (data_ev != nil && size(data_ev) > 0)
+ # ret.event_reports = [data_ev]
+ # end
+ # ret.more_chunked_messages = (self.data != nil) || (self.data_ev != nil) # we got more data to send
+ # var encoded_tlv = ret.to_TLV().tlv2raw(bytes(self.MAX_MESSAGE)) # takes time
+ # resp.encode_frame(encoded_tlv) # payload in cleartext, pre-allocate max buffer
+ # log(f">>>: {encoded_tlv.tohex()}", 3)
+ # ##### Previous code
+
+ resp.encode_frame(raw) # payload in cleartext, pre-allocate max buffer
resp.encrypt()
# log(format("MTR: int(x) # function to convert argument to the right type
- static var UPDATE_TIME = 750 # update every 750ms - TODO still necessary?
+ # static var UPDATE_TIME = 750 # update every 750ms - TODO still necessary?
static var CLUSTERS = matter.consolidate_clusters(_class, {
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
# 0x0039: [3,5,0x0A,0x0F,0x11,0x12], # Bridged Device Basic Information 9.13 p.485
@@ -39,7 +39,7 @@ class Matter_Plugin_Sensor_GenericSwitch : Matter_Plugin_Device
static var TYPES = { 0x000F: 2 } # Generic Switch, rev 2
var tasmota_switch_index # Switch number in Tasmota (one based)
- var shadow_value
+ var shadow_position
#############################################################
# parse_configuration
@@ -53,10 +53,20 @@ class Matter_Plugin_Sensor_GenericSwitch : Matter_Plugin_Device
#############################################################
# Update shadow
#
- def update_shadow()
- super(self).update_shadow()
- self.shadow_value = false
- # TODO
+ # def update_shadow()
+ # super(self).update_shadow()
+ # self.shadow_position = false
+ # # TODO
+ # end
+
+ #############################################################
+ # Model
+ #
+ def set_position(position)
+ if position != self.shadow_position
+ self.attribute_updated(0x003B, 0x0001)
+ self.shadow_position = position
+ end
end
#############################################################
@@ -73,12 +83,12 @@ class Matter_Plugin_Sensor_GenericSwitch : Matter_Plugin_Device
if attribute == 0x0000 # ---------- NumberOfPositions / uint8 ----------
return tlv_solo.set(TLV.U1, 2) # default to 2 positions
elif attribute == 0x0001 # ---------- CurrentPosition / uint8 ----------
- return tlv_solo.set(TLV.U1, 0) # TODO read value
+ return tlv_solo.set_or_nil(TLV.U1, self.shadow_position)
elif attribute == 0x0002 # ---------- MultiPressMax / uint8 ----------
- return tlv_solo.set(TLV.U1, 2) # up to double press
+ return tlv_solo.set(TLV.U1, 5) # up to penta press
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
- return tlv_solo.set(TLV.U4, 0x02 + 0x04 + 0x08) # MomentarySwitch + MomentarySwitchRelease + MomentarySwitchLongPress
+ return tlv_solo.set(TLV.U4, 0x02 | 0x04 | 0x08 | 0x10) # MomentarySwitch + MomentarySwitchRelease + MomentarySwitchLongPress + MomentarySwitchMultiPress
end
end
@@ -96,5 +106,39 @@ class Matter_Plugin_Sensor_GenericSwitch : Matter_Plugin_Device
return f',"Switch":{int(self.shadow_onoff)}'
end
+ #####################################################################
+ # button_handler - a button event happened
+ #
+ # Args:
+ # - button: (int) button number (base 1)
+ # - mode: (int) 0=static report every second, 1=button state changed (immediate), 2=multi-press status (delayed)
+ # - state: 1=button pressed, 0=button released, 2..5+=multi-press complete
+ def button_handler(button, mode, state, press_counter)
+ # if tasmota.loglevel(3) && (mode != 0) # only if actual action
+ # log(f"MTR: button_event {button}/{mode}:{state}", 3)
+ # end
+ # adjust value of position first, either regular secondly updates (mode==0) or change in state (mode==1)
+ if (mode == 0) || (mode == 1)
+ self.set_position(state)
+ end
+ # publish event for (mode==1), InitialPress and ShortRelease
+ if (mode == 1)
+ if state # InitialPress
+ self.publish_event(0x003B, 0x01, matter.EVENT_INFO, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1)) # InitialPress, position hardcoded to 1
+ else
+ self.publish_event(0x003B, 0x03, matter.EVENT_INFO, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1)) # ShortRelease, previous position hardcoded to 1
+ end
+ # check if there is an ungoing multi-press
+ if (state == 1) && (press_counter > 0)
+ # MultiPressOngoing
+ self.publish_event(0x003B, 0x05, matter.EVENT_INFO, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1),
+ matter.TLV.Matter_TLV_item().set(matter.TLV.U1, press_counter + 1)) # MultiPressCom plete
+ end
+ elif (mode == 2) && (press_counter > 0) # Multipress
+ self.publish_event(0x003B, 0x06, matter.EVENT_INFO, matter.TLV.Matter_TLV_item().set(matter.TLV.U1, 1),
+ matter.TLV.Matter_TLV_item().set(matter.TLV.U1, press_counter)) # MultiPressCom plete
+ end
+ end
+
end
-matter.Plugin_Sensor_GenericSwitch = Matter_Plugin_Sensor_GenericSwitch
+matter.Plugin_Sensor_GenericSwitch_Btn = Matter_Plugin_Sensor_GenericSwitch_Btn
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
index 6f917ed6b..6917a9d7b 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_UI.be
@@ -33,6 +33,7 @@ import matter
#################################################################################
class Matter_UI
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt"
+ "|gensw_btn"
"|temperature|pressure|illuminance|humidity|occupancy|onoff|contact|flow|rain|waterleak"
"|airquality"
"|-virtual|v_relay|v_light0|v_light1|v_light2|v_light3"
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
index da92a33ef..94dfc3fff 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_zz_Device.be
@@ -285,6 +285,44 @@ class Matter_Device
return ret
end
+ #####################################################################
+ # Driver handling of buttons
+ #####################################################################
+ # Attach driver `button_pressed`
+ def button_pressed(cmd, idx)
+ var state = (idx >> 16) & 0xFF
+ var last_state = (idx >> 8) & 0xFF
+ var index = (idx & 0xFF)
+ var press_counter = (idx >> 24) & 0xFF
+ self.button_handler(index + 1, (state != last_state) ? 1 : 0, state ? 0 : 1, press_counter) # invert state, originally '0' means press, turn it into '1'
+ end
+ # Attach driver `button_multi_pressed`
+ def button_multi_pressed(cmd, idx)
+ var press_counter = (idx >> 8) & 0xFF
+ var index = (idx & 0xFF)
+ self.button_handler(index + 1, 2, 0, press_counter)
+ end
+ #####################################################################
+ # Centralize to a single call
+ #
+ # Args:
+ # - button: (int) button number (base 1)
+ # - mode: (int) 0=static report every second, 1=button state changed (immediate), 2=multi-press status (delayed)
+ # - state: 1=button pressed, 0=button released, 2..5+=multi-press complete
+ def button_handler(button, mode, state, press_counter)
+ # log(f"MTR: button_handler({button=}, {mode=}, {state=})", 3)
+ # call all plugins, use a manual loop to avoid creating a new object
+ var idx = 0
+ import introspect
+ while idx < size(self.plugins)
+ var pi = self.plugins[idx]
+ if introspect.contains(pi, "button_handler")
+ self.plugins[idx].button_handler(button, mode, state, press_counter)
+ end
+ idx += 1
+ end
+ end
+
#############################################################
# dispatch every second click to sub-objects that need it
def every_second()
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
index 84a9fb13a..235660506 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_EventHandler.h
@@ -791,42 +791,13 @@ be_local_class(Matter_EventHandler,
extern const bclass be_class_Matter_EventQueued;
-/********************************************************************
-** Solidified function: compact
-********************************************************************/
-extern const bclass be_class_Matter_EventQueued;
-be_local_closure(class_Matter_EventQueued_compact, /* name */
- be_nested_proto(
- 2, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_EventQueued,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(raw_tlv),
- }),
- be_str_weak(compact),
- &be_const_str_solidified,
- ( &(const binstruction[ 3]) { /* code */
- 0x4C040000, // 0000 LDNIL R1
- 0x90020001, // 0001 SETMBR R0 K0 R1
- 0x80000000, // 0002 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
/********************************************************************
** Solidified function: to_raw_bytes
********************************************************************/
extern const bclass be_class_Matter_EventQueued;
be_local_closure(class_Matter_EventQueued_to_raw_bytes, /* name */
be_nested_proto(
- 8, /* nstack */
+ 14, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -834,107 +805,46 @@ be_local_closure(class_Matter_EventQueued_to_raw_bytes, /* name */
0, /* has sup protos */
&be_class_Matter_EventQueued,
1, /* has constants */
- ( &(const bvalue[28]) { /* constants */
+ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(raw_tlv),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(EventReportIB),
- /* K3 */ be_nested_str_weak(EventDataIB),
- /* K4 */ be_nested_str_weak(event_data),
- /* K5 */ be_nested_str_weak(EventPathIB),
- /* K6 */ be_nested_str_weak(endpoint),
- /* K7 */ be_nested_str_weak(cluster),
- /* K8 */ be_nested_str_weak(event),
- /* K9 */ be_nested_str_weak(event_id),
- /* K10 */ be_nested_str_weak(is_urgent),
- /* K11 */ be_nested_str_weak(path),
- /* K12 */ be_nested_str_weak(priority),
- /* K13 */ be_nested_str_weak(event_number),
- /* K14 */ be_nested_str_weak(event_no),
- /* K15 */ be_nested_str_weak(epoch_timestamp),
- /* K16 */ be_nested_str_weak(data),
- /* K17 */ be_nested_str_weak(TLV),
- /* K18 */ be_nested_str_weak(Matter_TLV_struct),
- /* K19 */ be_nested_str_weak(data0),
- /* K20 */ be_nested_str_weak(add_obj),
- /* K21 */ be_const_int(0),
- /* K22 */ be_nested_str_weak(data1),
- /* K23 */ be_const_int(1),
- /* K24 */ be_nested_str_weak(data2),
- /* K25 */ be_const_int(2),
- /* K26 */ be_nested_str_weak(to_TLV),
- /* K27 */ be_nested_str_weak(tlv2raw),
+ /* K1 */ be_nested_str_weak(eventreport2raw),
+ /* K2 */ be_nested_str_weak(endpoint),
+ /* K3 */ be_nested_str_weak(cluster),
+ /* K4 */ be_nested_str_weak(event_id),
+ /* K5 */ be_nested_str_weak(is_urgent),
+ /* K6 */ be_nested_str_weak(priority),
+ /* K7 */ be_nested_str_weak(event_no),
+ /* K8 */ be_nested_str_weak(epoch_timestamp),
+ /* K9 */ be_nested_str_weak(data0),
+ /* K10 */ be_nested_str_weak(data1),
+ /* K11 */ be_nested_str_weak(data2),
}),
be_str_weak(to_raw_bytes),
&be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
+ ( &(const binstruction[23]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2
- 0x7806003D, // 0003 JMPF R1 #0042
- 0xB8060200, // 0004 GETNGBL R1 K1
- 0x8C040302, // 0005 GETMET R1 R1 K2
+ 0x78060010, // 0003 JMPF R1 #0015
+ 0x60040015, // 0004 GETGBL R1 G21
+ 0x540A003F, // 0005 LDINT R2 64
0x7C040200, // 0006 CALL R1 1
- 0xB80A0200, // 0007 GETNGBL R2 K1
- 0x8C080503, // 0008 GETMET R2 R2 K3
- 0x7C080200, // 0009 CALL R2 1
- 0x90060802, // 000A SETMBR R1 K4 R2
- 0xB80E0200, // 000B GETNGBL R3 K1
- 0x8C0C0705, // 000C GETMET R3 R3 K5
- 0x7C0C0200, // 000D CALL R3 1
- 0x88100106, // 000E GETMBR R4 R0 K6
- 0x900E0C04, // 000F SETMBR R3 K6 R4
- 0x88100107, // 0010 GETMBR R4 R0 K7
- 0x900E0E04, // 0011 SETMBR R3 K7 R4
- 0x88100109, // 0012 GETMBR R4 R0 K9
- 0x900E1004, // 0013 SETMBR R3 K8 R4
- 0x8810010A, // 0014 GETMBR R4 R0 K10
- 0x900E1404, // 0015 SETMBR R3 K10 R4
- 0x900A1603, // 0016 SETMBR R2 K11 R3
- 0x8810010C, // 0017 GETMBR R4 R0 K12
- 0x900A1804, // 0018 SETMBR R2 K12 R4
- 0x8810010E, // 0019 GETMBR R4 R0 K14
- 0x900A1A04, // 001A SETMBR R2 K13 R4
- 0x8810010F, // 001B GETMBR R4 R0 K15
- 0x900A1E04, // 001C SETMBR R2 K15 R4
- 0xB8120200, // 001D GETNGBL R4 K1
- 0x88100911, // 001E GETMBR R4 R4 K17
- 0x8C100912, // 001F GETMET R4 R4 K18
- 0x7C100200, // 0020 CALL R4 1
- 0x900A2004, // 0021 SETMBR R2 K16 R4
- 0x88100113, // 0022 GETMBR R4 R0 K19
- 0x4C140000, // 0023 LDNIL R5
- 0x20100805, // 0024 NE R4 R4 R5
- 0x78120004, // 0025 JMPF R4 #002B
- 0x88100510, // 0026 GETMBR R4 R2 K16
- 0x8C100914, // 0027 GETMET R4 R4 K20
- 0x58180015, // 0028 LDCONST R6 K21
- 0x881C0113, // 0029 GETMBR R7 R0 K19
- 0x7C100600, // 002A CALL R4 3
- 0x88100116, // 002B GETMBR R4 R0 K22
- 0x4C140000, // 002C LDNIL R5
- 0x20100805, // 002D NE R4 R4 R5
- 0x78120004, // 002E JMPF R4 #0034
- 0x88100510, // 002F GETMBR R4 R2 K16
- 0x8C100914, // 0030 GETMET R4 R4 K20
- 0x58180017, // 0031 LDCONST R6 K23
- 0x881C0116, // 0032 GETMBR R7 R0 K22
- 0x7C100600, // 0033 CALL R4 3
- 0x88100118, // 0034 GETMBR R4 R0 K24
- 0x4C140000, // 0035 LDNIL R5
- 0x20100805, // 0036 NE R4 R4 R5
- 0x78120004, // 0037 JMPF R4 #003D
- 0x88100510, // 0038 GETMBR R4 R2 K16
- 0x8C100914, // 0039 GETMET R4 R4 K20
- 0x58180019, // 003A LDCONST R6 K25
- 0x881C0118, // 003B GETMBR R7 R0 K24
- 0x7C100600, // 003C CALL R4 3
- 0x8C10031A, // 003D GETMET R4 R1 K26
- 0x7C100200, // 003E CALL R4 1
- 0x8C10091B, // 003F GETMET R4 R4 K27
- 0x7C100200, // 0040 CALL R4 1
- 0x90020004, // 0041 SETMBR R0 K0 R4
- 0x88040100, // 0042 GETMBR R1 R0 K0
- 0x80040200, // 0043 RET 1 R1
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x8C040101, // 0008 GETMET R1 R0 K1
+ 0x880C0100, // 0009 GETMBR R3 R0 K0
+ 0x88100102, // 000A GETMBR R4 R0 K2
+ 0x88140103, // 000B GETMBR R5 R0 K3
+ 0x88180104, // 000C GETMBR R6 R0 K4
+ 0x881C0105, // 000D GETMBR R7 R0 K5
+ 0x88200106, // 000E GETMBR R8 R0 K6
+ 0x88240107, // 000F GETMBR R9 R0 K7
+ 0x88280108, // 0010 GETMBR R10 R0 K8
+ 0x882C0109, // 0011 GETMBR R11 R0 K9
+ 0x8830010A, // 0012 GETMBR R12 R0 K10
+ 0x8834010B, // 0013 GETMBR R13 R0 K11
+ 0x7C041800, // 0014 CALL R1 12
+ 0x88040100, // 0015 GETMBR R1 R0 K0
+ 0x80040200, // 0016 RET 1 R1
})
)
);
@@ -1019,28 +929,295 @@ be_local_closure(class_Matter_EventQueued_init, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: compact
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_compact, /* name */
+ be_nested_proto(
+ 2, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(raw_tlv),
+ }),
+ be_str_weak(compact),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 3]) { /* code */
+ 0x4C040000, // 0000 LDNIL R1
+ 0x90020001, // 0001 SETMBR R0 K0 R1
+ 0x80000000, // 0002 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: eventpath2raw
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_eventpath2raw, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 6, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(2),
+ }),
+ be_str_weak(eventpath2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[91]) { /* code */
+ 0x8C180300, // 0000 GETMET R6 R1 K0
+ 0x542236FF, // 0001 LDINT R8 14080
+ 0x5425FFFD, // 0002 LDINT R9 -2
+ 0x7C180600, // 0003 CALL R6 3
+ 0x541A00FE, // 0004 LDINT R6 255
+ 0x18180406, // 0005 LE R6 R2 R6
+ 0x781A0008, // 0006 JMPF R6 #0010
+ 0x8C180300, // 0007 GETMET R6 R1 K0
+ 0x54222400, // 0008 LDINT R8 9217
+ 0x5425FFFD, // 0009 LDINT R9 -2
+ 0x7C180600, // 000A CALL R6 3
+ 0x8C180300, // 000B GETMET R6 R1 K0
+ 0x5C200400, // 000C MOVE R8 R2
+ 0x58240001, // 000D LDCONST R9 K1
+ 0x7C180600, // 000E CALL R6 3
+ 0x70020007, // 000F JMP #0018
+ 0x8C180300, // 0010 GETMET R6 R1 K0
+ 0x54222500, // 0011 LDINT R8 9473
+ 0x5425FFFD, // 0012 LDINT R9 -2
+ 0x7C180600, // 0013 CALL R6 3
+ 0x8C180300, // 0014 GETMET R6 R1 K0
+ 0x5C200400, // 0015 MOVE R8 R2
+ 0x58240002, // 0016 LDCONST R9 K2
+ 0x7C180600, // 0017 CALL R6 3
+ 0x541A00FE, // 0018 LDINT R6 255
+ 0x18180606, // 0019 LE R6 R3 R6
+ 0x781A0008, // 001A JMPF R6 #0024
+ 0x8C180300, // 001B GETMET R6 R1 K0
+ 0x54222401, // 001C LDINT R8 9218
+ 0x5425FFFD, // 001D LDINT R9 -2
+ 0x7C180600, // 001E CALL R6 3
+ 0x8C180300, // 001F GETMET R6 R1 K0
+ 0x5C200600, // 0020 MOVE R8 R3
+ 0x58240001, // 0021 LDCONST R9 K1
+ 0x7C180600, // 0022 CALL R6 3
+ 0x70020013, // 0023 JMP #0038
+ 0x541AFFFE, // 0024 LDINT R6 65535
+ 0x18180606, // 0025 LE R6 R3 R6
+ 0x781A0008, // 0026 JMPF R6 #0030
+ 0x8C180300, // 0027 GETMET R6 R1 K0
+ 0x54222501, // 0028 LDINT R8 9474
+ 0x5425FFFD, // 0029 LDINT R9 -2
+ 0x7C180600, // 002A CALL R6 3
+ 0x8C180300, // 002B GETMET R6 R1 K0
+ 0x5C200600, // 002C MOVE R8 R3
+ 0x58240002, // 002D LDCONST R9 K2
+ 0x7C180600, // 002E CALL R6 3
+ 0x70020007, // 002F JMP #0038
+ 0x8C180300, // 0030 GETMET R6 R1 K0
+ 0x54222601, // 0031 LDINT R8 9730
+ 0x5425FFFD, // 0032 LDINT R9 -2
+ 0x7C180600, // 0033 CALL R6 3
+ 0x8C180300, // 0034 GETMET R6 R1 K0
+ 0x5C200600, // 0035 MOVE R8 R3
+ 0x54260003, // 0036 LDINT R9 4
+ 0x7C180600, // 0037 CALL R6 3
+ 0x541A00FE, // 0038 LDINT R6 255
+ 0x18180806, // 0039 LE R6 R4 R6
+ 0x781A0008, // 003A JMPF R6 #0044
+ 0x8C180300, // 003B GETMET R6 R1 K0
+ 0x54222402, // 003C LDINT R8 9219
+ 0x5425FFFD, // 003D LDINT R9 -2
+ 0x7C180600, // 003E CALL R6 3
+ 0x8C180300, // 003F GETMET R6 R1 K0
+ 0x5C200800, // 0040 MOVE R8 R4
+ 0x58240001, // 0041 LDCONST R9 K1
+ 0x7C180600, // 0042 CALL R6 3
+ 0x70020007, // 0043 JMP #004C
+ 0x8C180300, // 0044 GETMET R6 R1 K0
+ 0x54222502, // 0045 LDINT R8 9475
+ 0x5425FFFD, // 0046 LDINT R9 -2
+ 0x7C180600, // 0047 CALL R6 3
+ 0x8C180300, // 0048 GETMET R6 R1 K0
+ 0x5C200800, // 0049 MOVE R8 R4
+ 0x58240002, // 004A LDCONST R9 K2
+ 0x7C180600, // 004B CALL R6 3
+ 0x78160004, // 004C JMPF R5 #0052
+ 0x8C180300, // 004D GETMET R6 R1 K0
+ 0x54222903, // 004E LDINT R8 10500
+ 0x5425FFFD, // 004F LDINT R9 -2
+ 0x7C180600, // 0050 CALL R6 3
+ 0x70020003, // 0051 JMP #0056
+ 0x8C180300, // 0052 GETMET R6 R1 K0
+ 0x54222803, // 0053 LDINT R8 10244
+ 0x5425FFFD, // 0054 LDINT R9 -2
+ 0x7C180600, // 0055 CALL R6 3
+ 0x8C180300, // 0056 GETMET R6 R1 K0
+ 0x54220017, // 0057 LDINT R8 24
+ 0x58240001, // 0058 LDCONST R9 K1
+ 0x7C180600, // 0059 CALL R6 3
+ 0x80000000, // 005A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: eventreport2raw
+********************************************************************/
+extern const bclass be_class_Matter_EventQueued;
+be_local_closure(class_Matter_EventQueued_eventreport2raw, /* name */
+ be_nested_proto(
+ 19, /* nstack */
+ 12, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_EventQueued,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(add),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(eventpath2raw),
+ /* K3 */ be_nested_str_weak(low32),
+ /* K4 */ be_nested_str_weak(high32),
+ /* K5 */ be_nested_str_weak(tag_sub),
+ /* K6 */ be_const_int(0),
+ /* K7 */ be_nested_str_weak(tlv2raw),
+ /* K8 */ be_const_int(2),
+ }),
+ be_str_weak(eventreport2raw),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0x8C300300, // 0000 GETMET R12 R1 K0
+ 0x543A0014, // 0001 LDINT R14 21
+ 0x583C0001, // 0002 LDCONST R15 K1
+ 0x7C300600, // 0003 CALL R12 3
+ 0x8C300300, // 0004 GETMET R12 R1 K0
+ 0x543A3500, // 0005 LDINT R14 13569
+ 0x543DFFFD, // 0006 LDINT R15 -2
+ 0x7C300600, // 0007 CALL R12 3
+ 0x8C300102, // 0008 GETMET R12 R0 K2
+ 0x5C380200, // 0009 MOVE R14 R1
+ 0x5C3C0400, // 000A MOVE R15 R2
+ 0x5C400600, // 000B MOVE R16 R3
+ 0x5C440800, // 000C MOVE R17 R4
+ 0x5C480A00, // 000D MOVE R18 R5
+ 0x7C300C00, // 000E CALL R12 6
+ 0x8C300300, // 000F GETMET R12 R1 K0
+ 0x543A2700, // 0010 LDINT R14 9985
+ 0x543DFFFD, // 0011 LDINT R15 -2
+ 0x7C300600, // 0012 CALL R12 3
+ 0x8C300300, // 0013 GETMET R12 R1 K0
+ 0x8C380F03, // 0014 GETMET R14 R7 K3
+ 0x7C380200, // 0015 CALL R14 1
+ 0x543E0003, // 0016 LDINT R15 4
+ 0x7C300600, // 0017 CALL R12 3
+ 0x8C300300, // 0018 GETMET R12 R1 K0
+ 0x8C380F04, // 0019 GETMET R14 R7 K4
+ 0x7C380200, // 001A CALL R14 1
+ 0x543E0003, // 001B LDINT R15 4
+ 0x7C300600, // 001C CALL R12 3
+ 0x8C300300, // 001D GETMET R12 R1 K0
+ 0x543A2401, // 001E LDINT R14 9218
+ 0x543DFFFD, // 001F LDINT R15 -2
+ 0x7C300600, // 0020 CALL R12 3
+ 0x8C300300, // 0021 GETMET R12 R1 K0
+ 0x5C380C00, // 0022 MOVE R14 R6
+ 0x583C0001, // 0023 LDCONST R15 K1
+ 0x7C300600, // 0024 CALL R12 3
+ 0x8C300300, // 0025 GETMET R12 R1 K0
+ 0x543A2602, // 0026 LDINT R14 9731
+ 0x543DFFFD, // 0027 LDINT R15 -2
+ 0x7C300600, // 0028 CALL R12 3
+ 0x8C300300, // 0029 GETMET R12 R1 K0
+ 0x5C381000, // 002A MOVE R14 R8
+ 0x543E0003, // 002B LDINT R15 4
+ 0x7C300600, // 002C CALL R12 3
+ 0x8C300300, // 002D GETMET R12 R1 K0
+ 0x543A3506, // 002E LDINT R14 13575
+ 0x543DFFFD, // 002F LDINT R15 -2
+ 0x7C300600, // 0030 CALL R12 3
+ 0x4C300000, // 0031 LDNIL R12
+ 0x2030120C, // 0032 NE R12 R9 R12
+ 0x78320003, // 0033 JMPF R12 #0038
+ 0x90260B06, // 0034 SETMBR R9 K5 K6
+ 0x8C301307, // 0035 GETMET R12 R9 K7
+ 0x5C380200, // 0036 MOVE R14 R1
+ 0x7C300400, // 0037 CALL R12 2
+ 0x4C300000, // 0038 LDNIL R12
+ 0x2030140C, // 0039 NE R12 R10 R12
+ 0x78320003, // 003A JMPF R12 #003F
+ 0x902A0B01, // 003B SETMBR R10 K5 K1
+ 0x8C301507, // 003C GETMET R12 R10 K7
+ 0x5C380200, // 003D MOVE R14 R1
+ 0x7C300400, // 003E CALL R12 2
+ 0x4C300000, // 003F LDNIL R12
+ 0x2030160C, // 0040 NE R12 R11 R12
+ 0x78320003, // 0041 JMPF R12 #0046
+ 0x902E0B08, // 0042 SETMBR R11 K5 K8
+ 0x8C301707, // 0043 GETMET R12 R11 K7
+ 0x5C380200, // 0044 MOVE R14 R1
+ 0x7C300400, // 0045 CALL R12 2
+ 0x8C300300, // 0046 GETMET R12 R1 K0
+ 0x543A0017, // 0047 LDINT R14 24
+ 0x583C0001, // 0048 LDCONST R15 K1
+ 0x7C300600, // 0049 CALL R12 3
+ 0x8C300300, // 004A GETMET R12 R1 K0
+ 0x543A0017, // 004B LDINT R14 24
+ 0x583C0001, // 004C LDCONST R15 K1
+ 0x7C300600, // 004D CALL R12 3
+ 0x8C300300, // 004E GETMET R12 R1 K0
+ 0x543A0017, // 004F LDINT R14 24
+ 0x583C0001, // 0050 LDCONST R15 K1
+ 0x7C300600, // 0051 CALL R12 3
+ 0x80000000, // 0052 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified class: Matter_EventQueued
********************************************************************/
be_local_class(Matter_EventQueued,
11,
NULL,
- be_nested_map(14,
+ be_nested_map(16,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(endpoint, -1), be_const_var(0) },
- { be_const_key_weak(epoch_timestamp, -1), be_const_var(9) },
- { be_const_key_weak(compact, -1), be_const_closure(class_Matter_EventQueued_compact_closure) },
- { be_const_key_weak(init, 10), be_const_closure(class_Matter_EventQueued_init_closure) },
- { be_const_key_weak(data2, 11), be_const_var(7) },
- { be_const_key_weak(event_no, 3), be_const_var(8) },
- { be_const_key_weak(raw_tlv, -1), be_const_var(10) },
- { be_const_key_weak(is_urgent, 12), be_const_var(3) },
- { be_const_key_weak(data1, -1), be_const_var(6) },
- { be_const_key_weak(priority, 4), be_const_var(4) },
- { be_const_key_weak(event_id, -1), be_const_var(2) },
- { be_const_key_weak(to_raw_bytes, 1), be_const_closure(class_Matter_EventQueued_to_raw_bytes_closure) },
- { be_const_key_weak(cluster, -1), be_const_var(1) },
{ be_const_key_weak(data0, -1), be_const_var(5) },
+ { be_const_key_weak(eventreport2raw, -1), be_const_closure(class_Matter_EventQueued_eventreport2raw_closure) },
+ { be_const_key_weak(event_id, 11), be_const_var(2) },
+ { be_const_key_weak(init, -1), be_const_closure(class_Matter_EventQueued_init_closure) },
+ { be_const_key_weak(data1, 14), be_const_var(6) },
+ { be_const_key_weak(data2, 1), be_const_var(7) },
+ { be_const_key_weak(compact, -1), be_const_closure(class_Matter_EventQueued_compact_closure) },
+ { be_const_key_weak(is_urgent, -1), be_const_var(3) },
+ { be_const_key_weak(eventpath2raw, -1), be_const_closure(class_Matter_EventQueued_eventpath2raw_closure) },
+ { be_const_key_weak(epoch_timestamp, 10), be_const_var(9) },
+ { be_const_key_weak(priority, -1), be_const_var(4) },
+ { be_const_key_weak(cluster, -1), be_const_var(1) },
+ { be_const_key_weak(raw_tlv, 4), be_const_var(10) },
+ { be_const_key_weak(to_raw_bytes, 2), be_const_closure(class_Matter_EventQueued_to_raw_bytes_closure) },
+ { be_const_key_weak(endpoint, -1), be_const_var(0) },
+ { be_const_key_weak(event_no, 0), be_const_var(8) },
})),
be_str_weak(Matter_EventQueued)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
index 17b3fe498..38d74e2f5 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_IM_Message.h
@@ -567,7 +567,7 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
0, /* has sup protos */
&be_class_Matter_IM_ReportData_Pull,
1, /* has constants */
- ( &(const bvalue[51]) { /* constants */
+ ( &(const bvalue[47]) { /* constants */
/* K0 */ be_nested_str_weak(resp),
/* K1 */ be_nested_str_weak(data),
/* K2 */ be_nested_str_weak(device),
@@ -603,26 +603,22 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
/* K32 */ be_nested_str_weak(cluster),
/* K33 */ be_nested_str_weak(event_id),
/* K34 */ be_nested_str_weak(to_raw_bytes),
- /* K35 */ be_nested_str_weak(matter),
- /* K36 */ be_nested_str_weak(ReportDataMessage),
+ /* K35 */ be_nested_str_weak(add),
+ /* K36 */ be_const_int(1),
/* K37 */ be_nested_str_weak(subscription_id),
- /* K38 */ be_nested_str_weak(suppress_response),
- /* K39 */ be_nested_str_weak(attribute_reports),
- /* K40 */ be_nested_str_weak(event_reports),
- /* K41 */ be_nested_str_weak(more_chunked_messages),
- /* K42 */ be_nested_str_weak(to_TLV),
- /* K43 */ be_nested_str_weak(tlv2raw),
- /* K44 */ be_nested_str_weak(encode_frame),
- /* K45 */ be_nested_str_weak(encrypt),
- /* K46 */ be_nested_str_weak(send_response_frame),
- /* K47 */ be_nested_str_weak(last_counter),
- /* K48 */ be_nested_str_weak(message_counter),
- /* K49 */ be_nested_str_weak(ready),
- /* K50 */ be_nested_str_weak(finishing),
+ /* K38 */ be_const_int(2),
+ /* K39 */ be_nested_str_weak(suppress_response),
+ /* K40 */ be_nested_str_weak(encode_frame),
+ /* K41 */ be_nested_str_weak(encrypt),
+ /* K42 */ be_nested_str_weak(send_response_frame),
+ /* K43 */ be_nested_str_weak(last_counter),
+ /* K44 */ be_nested_str_weak(message_counter),
+ /* K45 */ be_nested_str_weak(ready),
+ /* K46 */ be_nested_str_weak(finishing),
}),
be_str_weak(send_im),
&be_const_str_solidified,
- ( &(const binstruction[307]) { /* code */
+ ( &(const binstruction[361]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x880C0101, // 0001 GETMBR R3 R0 K1
0x4C100000, // 0002 LDNIL R4
@@ -863,73 +859,127 @@ be_local_closure(class_Matter_IM_ReportData_Pull_send_im, /* name */
0x4C240000, // 00ED LDNIL R9
0x90020A09, // 00EE SETMBR R0 K5 R9
0x7001FF90, // 00EF JMP #0081
- 0xB81E4600, // 00F0 GETNGBL R7 K35
- 0x8C1C0F24, // 00F1 GETMET R7 R7 K36
- 0x7C1C0200, // 00F2 CALL R7 1
- 0x88200125, // 00F3 GETMBR R8 R0 K37
- 0x901E4A08, // 00F4 SETMBR R7 K37 R8
- 0x88200126, // 00F5 GETMBR R8 R0 K38
- 0x901E4C08, // 00F6 SETMBR R7 K38 R8
- 0x4C200000, // 00F7 LDNIL R8
- 0x20200608, // 00F8 NE R8 R3 R8
- 0x78220008, // 00F9 JMPF R8 #0103
- 0x6020000C, // 00FA GETGBL R8 G12
- 0x5C240600, // 00FB MOVE R9 R3
+ 0x881C0101, // 00F0 GETMBR R7 R0 K1
+ 0x4C200000, // 00F1 LDNIL R8
+ 0x201C0E08, // 00F2 NE R7 R7 R8
+ 0x741E0004, // 00F3 JMPT R7 #00F9
+ 0x881C0104, // 00F4 GETMBR R7 R0 K4
+ 0x4C200000, // 00F5 LDNIL R8
+ 0x201C0E08, // 00F6 NE R7 R7 R8
+ 0x741E0000, // 00F7 JMPT R7 #00F9
+ 0x501C0001, // 00F8 LDBOOL R7 0 1
+ 0x501C0200, // 00F9 LDBOOL R7 1 0
+ 0x60200015, // 00FA GETGBL R8 G21
+ 0x8824010E, // 00FB GETMBR R9 R0 K14
0x7C200200, // 00FC CALL R8 1
- 0x24201107, // 00FD GT R8 R8 K7
- 0x78220003, // 00FE JMPF R8 #0103
- 0x60200012, // 00FF GETGBL R8 G18
- 0x7C200000, // 0100 CALL R8 0
- 0x40241003, // 0101 CONNECT R9 R8 R3
- 0x901E4E08, // 0102 SETMBR R7 K39 R8
- 0x4C200000, // 0103 LDNIL R8
- 0x20200C08, // 0104 NE R8 R6 R8
- 0x78220008, // 0105 JMPF R8 #010F
- 0x6020000C, // 0106 GETGBL R8 G12
- 0x5C240C00, // 0107 MOVE R9 R6
- 0x7C200200, // 0108 CALL R8 1
- 0x24201107, // 0109 GT R8 R8 K7
- 0x78220003, // 010A JMPF R8 #010F
- 0x60200012, // 010B GETGBL R8 G18
- 0x7C200000, // 010C CALL R8 0
- 0x40241006, // 010D CONNECT R9 R8 R6
- 0x901E5008, // 010E SETMBR R7 K40 R8
- 0x88200101, // 010F GETMBR R8 R0 K1
- 0x4C240000, // 0110 LDNIL R9
- 0x20201009, // 0111 NE R8 R8 R9
- 0x74220004, // 0112 JMPT R8 #0118
- 0x88200104, // 0113 GETMBR R8 R0 K4
- 0x4C240000, // 0114 LDNIL R9
- 0x20201009, // 0115 NE R8 R8 R9
- 0x74220000, // 0116 JMPT R8 #0118
- 0x50200001, // 0117 LDBOOL R8 0 1
- 0x50200200, // 0118 LDBOOL R8 1 0
- 0x901E5208, // 0119 SETMBR R7 K41 R8
- 0x8C200F2A, // 011A GETMET R8 R7 K42
- 0x7C200200, // 011B CALL R8 1
- 0x8C20112B, // 011C GETMET R8 R8 K43
- 0x60280015, // 011D GETGBL R10 G21
- 0x882C010E, // 011E GETMBR R11 R0 K14
- 0x7C280200, // 011F CALL R10 1
- 0x7C200400, // 0120 CALL R8 2
- 0x8C24052C, // 0121 GETMET R9 R2 K44
- 0x5C2C1000, // 0122 MOVE R11 R8
- 0x7C240400, // 0123 CALL R9 2
- 0x8C24052D, // 0124 GETMET R9 R2 K45
+ 0x8C241123, // 00FD GETMET R9 R8 K35
+ 0x542E0014, // 00FE LDINT R11 21
+ 0x58300024, // 00FF LDCONST R12 K36
+ 0x7C240600, // 0100 CALL R9 3
+ 0x88240125, // 0101 GETMBR R9 R0 K37
+ 0x4C280000, // 0102 LDNIL R10
+ 0x2024120A, // 0103 NE R9 R9 R10
+ 0x78260007, // 0104 JMPF R9 #010D
+ 0x8C241123, // 0105 GETMET R9 R8 K35
+ 0x542E24FF, // 0106 LDINT R11 9472
+ 0x5431FFFD, // 0107 LDINT R12 -2
+ 0x7C240600, // 0108 CALL R9 3
+ 0x8C241123, // 0109 GETMET R9 R8 K35
+ 0x882C0125, // 010A GETMBR R11 R0 K37
+ 0x58300026, // 010B LDCONST R12 K38
+ 0x7C240600, // 010C CALL R9 3
+ 0x4C240000, // 010D LDNIL R9
+ 0x20240609, // 010E NE R9 R3 R9
+ 0x7826000F, // 010F JMPF R9 #0120
+ 0x6024000C, // 0110 GETGBL R9 G12
+ 0x5C280600, // 0111 MOVE R10 R3
+ 0x7C240200, // 0112 CALL R9 1
+ 0x24241307, // 0113 GT R9 R9 K7
+ 0x7826000A, // 0114 JMPF R9 #0120
+ 0x8C241123, // 0115 GETMET R9 R8 K35
+ 0x542E3600, // 0116 LDINT R11 13825
+ 0x5431FFFD, // 0117 LDINT R12 -2
+ 0x7C240600, // 0118 CALL R9 3
+ 0x8C24110F, // 0119 GETMET R9 R8 K15
+ 0x5C2C0600, // 011A MOVE R11 R3
+ 0x7C240400, // 011B CALL R9 2
+ 0x8C241123, // 011C GETMET R9 R8 K35
+ 0x542E0017, // 011D LDINT R11 24
+ 0x58300024, // 011E LDCONST R12 K36
+ 0x7C240600, // 011F CALL R9 3
+ 0x4C240000, // 0120 LDNIL R9
+ 0x20240C09, // 0121 NE R9 R6 R9
+ 0x7826000F, // 0122 JMPF R9 #0133
+ 0x6024000C, // 0123 GETGBL R9 G12
+ 0x5C280C00, // 0124 MOVE R10 R6
0x7C240200, // 0125 CALL R9 1
- 0x8C24032E, // 0126 GETMET R9 R1 K46
- 0x5C2C0400, // 0127 MOVE R11 R2
- 0x7C240400, // 0128 CALL R9 2
- 0x88240530, // 0129 GETMBR R9 R2 K48
- 0x90025E09, // 012A SETMBR R0 K47 R9
- 0x88240F29, // 012B GETMBR R9 R7 K41
- 0x78260002, // 012C JMPF R9 #0130
- 0x50240000, // 012D LDBOOL R9 0 0
- 0x90026209, // 012E SETMBR R0 K49 R9
- 0x70020001, // 012F JMP #0132
- 0x50240200, // 0130 LDBOOL R9 1 0
- 0x90026409, // 0131 SETMBR R0 K50 R9
- 0x80000000, // 0132 RET 0
+ 0x24241307, // 0126 GT R9 R9 K7
+ 0x7826000A, // 0127 JMPF R9 #0133
+ 0x8C241123, // 0128 GETMET R9 R8 K35
+ 0x542E3601, // 0129 LDINT R11 13826
+ 0x5431FFFD, // 012A LDINT R12 -2
+ 0x7C240600, // 012B CALL R9 3
+ 0x8C24110F, // 012C GETMET R9 R8 K15
+ 0x5C2C0C00, // 012D MOVE R11 R6
+ 0x7C240400, // 012E CALL R9 2
+ 0x8C241123, // 012F GETMET R9 R8 K35
+ 0x542E0017, // 0130 LDINT R11 24
+ 0x58300024, // 0131 LDCONST R12 K36
+ 0x7C240600, // 0132 CALL R9 3
+ 0x781E0004, // 0133 JMPF R7 #0139
+ 0x8C241123, // 0134 GETMET R9 R8 K35
+ 0x542E2902, // 0135 LDINT R11 10499
+ 0x5431FFFD, // 0136 LDINT R12 -2
+ 0x7C240600, // 0137 CALL R9 3
+ 0x70020003, // 0138 JMP #013D
+ 0x8C241123, // 0139 GETMET R9 R8 K35
+ 0x542E2802, // 013A LDINT R11 10243
+ 0x5431FFFD, // 013B LDINT R12 -2
+ 0x7C240600, // 013C CALL R9 3
+ 0x88240127, // 013D GETMBR R9 R0 K39
+ 0x4C280000, // 013E LDNIL R10
+ 0x2024120A, // 013F NE R9 R9 R10
+ 0x7826000A, // 0140 JMPF R9 #014C
+ 0x88240127, // 0141 GETMBR R9 R0 K39
+ 0x78260004, // 0142 JMPF R9 #0148
+ 0x8C241123, // 0143 GETMET R9 R8 K35
+ 0x542E2903, // 0144 LDINT R11 10500
+ 0x5431FFFD, // 0145 LDINT R12 -2
+ 0x7C240600, // 0146 CALL R9 3
+ 0x70020003, // 0147 JMP #014C
+ 0x8C241123, // 0148 GETMET R9 R8 K35
+ 0x542E2803, // 0149 LDINT R11 10244
+ 0x5431FFFD, // 014A LDINT R12 -2
+ 0x7C240600, // 014B CALL R9 3
+ 0x8C241123, // 014C GETMET R9 R8 K35
+ 0x542E24FE, // 014D LDINT R11 9471
+ 0x5431FFFD, // 014E LDINT R12 -2
+ 0x7C240600, // 014F CALL R9 3
+ 0x8C241123, // 0150 GETMET R9 R8 K35
+ 0x582C0024, // 0151 LDCONST R11 K36
+ 0x58300024, // 0152 LDCONST R12 K36
+ 0x7C240600, // 0153 CALL R9 3
+ 0x8C241123, // 0154 GETMET R9 R8 K35
+ 0x542E0017, // 0155 LDINT R11 24
+ 0x58300024, // 0156 LDCONST R12 K36
+ 0x7C240600, // 0157 CALL R9 3
+ 0x8C240528, // 0158 GETMET R9 R2 K40
+ 0x5C2C1000, // 0159 MOVE R11 R8
+ 0x7C240400, // 015A CALL R9 2
+ 0x8C240529, // 015B GETMET R9 R2 K41
+ 0x7C240200, // 015C CALL R9 1
+ 0x8C24032A, // 015D GETMET R9 R1 K42
+ 0x5C2C0400, // 015E MOVE R11 R2
+ 0x7C240400, // 015F CALL R9 2
+ 0x8824052C, // 0160 GETMBR R9 R2 K44
+ 0x90025609, // 0161 SETMBR R0 K43 R9
+ 0x781E0002, // 0162 JMPF R7 #0166
+ 0x50240000, // 0163 LDBOOL R9 0 0
+ 0x90025A09, // 0164 SETMBR R0 K45 R9
+ 0x70020001, // 0165 JMP #0168
+ 0x50240200, // 0166 LDBOOL R9 1 0
+ 0x90025C09, // 0167 SETMBR R0 K46 R9
+ 0x80000000, // 0168 RET 0
})
)
);
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
deleted file mode 100644
index 6f6e9d11c..000000000
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch.h
+++ /dev/null
@@ -1,350 +0,0 @@
-/* Solidification of Matter_Plugin_2_Sensor_GenericSwitch.h */
-/********************************************************************\
-* Generated code, don't edit *
-\********************************************************************/
-#include "be_constobj.h"
-
-extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
-
-/********************************************************************
-** Solidified function:
-********************************************************************/
-be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch__X3Clambda_X3E, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 0, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- NULL,
- 0, /* has constants */
- NULL, /* no const */
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x60040009, // 0000 GETGBL R1 G9
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: parse_configuration
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
-be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_parse_configuration, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_GenericSwitch,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota_switch_index),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_const_int(1),
- /* K4 */ be_const_int(0),
- }),
- be_str_weak(parse_configuration),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x60080009, // 0000 GETGBL R2 G9
- 0x8C0C0301, // 0001 GETMET R3 R1 K1
- 0x88140102, // 0002 GETMBR R5 R0 K2
- 0x58180003, // 0003 LDCONST R6 K3
- 0x7C0C0600, // 0004 CALL R3 3
- 0x7C080200, // 0005 CALL R2 1
- 0x90020002, // 0006 SETMBR R0 K0 R2
- 0x88080100, // 0007 GETMBR R2 R0 K0
- 0x18080504, // 0008 LE R2 R2 K4
- 0x780A0000, // 0009 JMPF R2 #000B
- 0x90020103, // 000A SETMBR R0 K0 K3
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: update_shadow
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
-be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_update_shadow, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_GenericSwitch,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(update_shadow),
- /* K1 */ be_nested_str_weak(shadow_value),
- }),
- be_str_weak(update_shadow),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x60040003, // 0000 GETGBL R1 G3
- 0x5C080000, // 0001 MOVE R2 R0
- 0x7C040200, // 0002 CALL R1 1
- 0x8C040300, // 0003 GETMET R1 R1 K0
- 0x7C040200, // 0004 CALL R1 1
- 0x50040000, // 0005 LDBOOL R1 0 0
- 0x90020201, // 0006 SETMBR R0 K1 R1
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_attribute
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
-be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_read_attribute, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_GenericSwitch,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(matter),
- /* K1 */ be_nested_str_weak(TLV),
- /* K2 */ be_nested_str_weak(cluster),
- /* K3 */ be_nested_str_weak(attribute),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(set),
- /* K6 */ be_nested_str_weak(U1),
- /* K7 */ be_const_int(2),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(U4),
- /* K10 */ be_nested_str_weak(read_attribute),
- }),
- be_str_weak(read_attribute),
- &be_const_str_solidified,
- ( &(const binstruction[51]) { /* code */
- 0xB8120000, // 0000 GETNGBL R4 K0
- 0x88100901, // 0001 GETMBR R4 R4 K1
- 0x88140502, // 0002 GETMBR R5 R2 K2
- 0x88180503, // 0003 GETMBR R6 R2 K3
- 0x541E003A, // 0004 LDINT R7 59
- 0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0022, // 0006 JMPF R7 #002A
- 0x1C1C0D04, // 0007 EQ R7 R6 K4
- 0x781E0005, // 0008 JMPF R7 #000F
- 0x8C1C0705, // 0009 GETMET R7 R3 K5
- 0x88240906, // 000A GETMBR R9 R4 K6
- 0x58280007, // 000B LDCONST R10 K7
- 0x7C1C0600, // 000C CALL R7 3
- 0x80040E00, // 000D RET 1 R7
- 0x7002001A, // 000E JMP #002A
- 0x1C1C0D08, // 000F EQ R7 R6 K8
- 0x781E0005, // 0010 JMPF R7 #0017
- 0x8C1C0705, // 0011 GETMET R7 R3 K5
- 0x88240906, // 0012 GETMBR R9 R4 K6
- 0x58280004, // 0013 LDCONST R10 K4
- 0x7C1C0600, // 0014 CALL R7 3
- 0x80040E00, // 0015 RET 1 R7
- 0x70020012, // 0016 JMP #002A
- 0x1C1C0D07, // 0017 EQ R7 R6 K7
- 0x781E0005, // 0018 JMPF R7 #001F
- 0x8C1C0705, // 0019 GETMET R7 R3 K5
- 0x88240906, // 001A GETMBR R9 R4 K6
- 0x58280007, // 001B LDCONST R10 K7
- 0x7C1C0600, // 001C CALL R7 3
- 0x80040E00, // 001D RET 1 R7
- 0x7002000A, // 001E JMP #002A
- 0x541EFFFB, // 001F LDINT R7 65532
- 0x1C1C0C07, // 0020 EQ R7 R6 R7
- 0x781E0007, // 0021 JMPF R7 #002A
- 0x8C1C0705, // 0022 GETMET R7 R3 K5
- 0x88240909, // 0023 GETMBR R9 R4 K9
- 0x542A0003, // 0024 LDINT R10 4
- 0x002A0E0A, // 0025 ADD R10 K7 R10
- 0x542E0007, // 0026 LDINT R11 8
- 0x0028140B, // 0027 ADD R10 R10 R11
- 0x7C1C0600, // 0028 CALL R7 3
- 0x80040E00, // 0029 RET 1 R7
- 0x601C0003, // 002A GETGBL R7 G3
- 0x5C200000, // 002B MOVE R8 R0
- 0x7C1C0200, // 002C CALL R7 1
- 0x8C1C0F0A, // 002D GETMET R7 R7 K10
- 0x5C240200, // 002E MOVE R9 R1
- 0x5C280400, // 002F MOVE R10 R2
- 0x5C2C0600, // 0030 MOVE R11 R3
- 0x7C1C0800, // 0031 CALL R7 4
- 0x80040E00, // 0032 RET 1 R7
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: append_state_json
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch;
-be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_append_state_json, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Plugin_Sensor_GenericSwitch,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(_X2C_X22Switch_X22_X3A_X25s),
- /* K1 */ be_nested_str_weak(shadow_onoff),
- }),
- be_str_weak(append_state_json),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x60040018, // 0000 GETGBL R1 G24
- 0x58080000, // 0001 LDCONST R2 K0
- 0x600C0009, // 0002 GETGBL R3 G9
- 0x88100101, // 0003 GETMBR R4 R0 K1
- 0x7C0C0200, // 0004 CALL R3 1
- 0x7C040400, // 0005 CALL R1 2
- 0x80040200, // 0006 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified class: Matter_Plugin_Sensor_GenericSwitch
-********************************************************************/
-extern const bclass be_class_Matter_Plugin_Device;
-be_local_class(Matter_Plugin_Sensor_GenericSwitch,
- 2,
- &be_class_Matter_Plugin_Device,
- be_nested_map(14,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(CLUSTERS, 6), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(6,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(5, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(4),
- be_const_int(5),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(10,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(3),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(12,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(3),
- be_const_int(5),
- be_const_int(10),
- be_const_int(15),
- be_const_int(17),
- be_const_int(18),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(8,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(7,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- { be_const_key_int(59, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
- be_const_list( * be_nested_list(9,
- ( (struct bvalue*) &(const bvalue[]) {
- be_const_int(0),
- be_const_int(1),
- be_const_int(2),
- be_const_int(65528),
- be_const_int(65529),
- be_const_int(65530),
- be_const_int(65531),
- be_const_int(65532),
- be_const_int(65533),
- })) ) } )) },
- })) ) } )) },
- { be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
- { be_const_key_weak(UPDATE_TIME, 4), be_const_int(750) },
- { be_const_key_weak(TYPE, -1), be_nested_str_weak(gensw) },
- { be_const_key_weak(append_state_json, 9), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_append_state_json_closure) },
- { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Generic_X20Switch) },
- { be_const_key_weak(read_attribute, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_read_attribute_closure) },
- { be_const_key_weak(update_shadow, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_update_shadow_closure) },
- { be_const_key_weak(ARG_HINT, 12), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
- { be_const_key_weak(tasmota_switch_index, 13), be_const_var(0) },
- { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
- be_const_map( * be_nested_map(1,
- ( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_int(15, -1), be_const_int(2) },
- })) ) } )) },
- { be_const_key_weak(parse_configuration, 8), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_parse_configuration_closure) },
- { be_const_key_weak(shadow_value, -1), be_const_var(1) },
- { be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(class_Matter_Plugin_Sensor_GenericSwitch__X3Clambda_X3E_closure) },
- })),
- be_str_weak(Matter_Plugin_Sensor_GenericSwitch)
-);
-/********************************************************************/
-/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
new file mode 100644
index 000000000..18f3a86ce
--- /dev/null
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
@@ -0,0 +1,498 @@
+/* Solidification of Matter_Plugin_2_Sensor_GenericSwitch_Btn.h */
+/********************************************************************\
+* Generated code, don't edit *
+\********************************************************************/
+#include "be_constobj.h"
+
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+
+/********************************************************************
+** Solidified function: read_attribute
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(matter),
+ /* K1 */ be_nested_str_weak(TLV),
+ /* K2 */ be_nested_str_weak(cluster),
+ /* K3 */ be_nested_str_weak(attribute),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(set),
+ /* K6 */ be_nested_str_weak(U1),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(set_or_nil),
+ /* K10 */ be_nested_str_weak(shadow_position),
+ /* K11 */ be_nested_str_weak(U4),
+ /* K12 */ be_nested_str_weak(read_attribute),
+ }),
+ be_str_weak(read_attribute),
+ &be_const_str_solidified,
+ ( &(const binstruction[53]) { /* code */
+ 0xB8120000, // 0000 GETNGBL R4 K0
+ 0x88100901, // 0001 GETMBR R4 R4 K1
+ 0x88140502, // 0002 GETMBR R5 R2 K2
+ 0x88180503, // 0003 GETMBR R6 R2 K3
+ 0x541E003A, // 0004 LDINT R7 59
+ 0x1C1C0A07, // 0005 EQ R7 R5 R7
+ 0x781E0024, // 0006 JMPF R7 #002C
+ 0x1C1C0D04, // 0007 EQ R7 R6 K4
+ 0x781E0005, // 0008 JMPF R7 #000F
+ 0x8C1C0705, // 0009 GETMET R7 R3 K5
+ 0x88240906, // 000A GETMBR R9 R4 K6
+ 0x58280007, // 000B LDCONST R10 K7
+ 0x7C1C0600, // 000C CALL R7 3
+ 0x80040E00, // 000D RET 1 R7
+ 0x7002001C, // 000E JMP #002C
+ 0x1C1C0D08, // 000F EQ R7 R6 K8
+ 0x781E0005, // 0010 JMPF R7 #0017
+ 0x8C1C0709, // 0011 GETMET R7 R3 K9
+ 0x88240906, // 0012 GETMBR R9 R4 K6
+ 0x8828010A, // 0013 GETMBR R10 R0 K10
+ 0x7C1C0600, // 0014 CALL R7 3
+ 0x80040E00, // 0015 RET 1 R7
+ 0x70020014, // 0016 JMP #002C
+ 0x1C1C0D07, // 0017 EQ R7 R6 K7
+ 0x781E0005, // 0018 JMPF R7 #001F
+ 0x8C1C0705, // 0019 GETMET R7 R3 K5
+ 0x88240906, // 001A GETMBR R9 R4 K6
+ 0x542A0004, // 001B LDINT R10 5
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x80040E00, // 001D RET 1 R7
+ 0x7002000C, // 001E JMP #002C
+ 0x541EFFFB, // 001F LDINT R7 65532
+ 0x1C1C0C07, // 0020 EQ R7 R6 R7
+ 0x781E0009, // 0021 JMPF R7 #002C
+ 0x8C1C0705, // 0022 GETMET R7 R3 K5
+ 0x8824090B, // 0023 GETMBR R9 R4 K11
+ 0x542A0003, // 0024 LDINT R10 4
+ 0x302A0E0A, // 0025 OR R10 K7 R10
+ 0x542E0007, // 0026 LDINT R11 8
+ 0x3028140B, // 0027 OR R10 R10 R11
+ 0x542E000F, // 0028 LDINT R11 16
+ 0x3028140B, // 0029 OR R10 R10 R11
+ 0x7C1C0600, // 002A CALL R7 3
+ 0x80040E00, // 002B RET 1 R7
+ 0x601C0003, // 002C GETGBL R7 G3
+ 0x5C200000, // 002D MOVE R8 R0
+ 0x7C1C0200, // 002E CALL R7 1
+ 0x8C1C0F0C, // 002F GETMET R7 R7 K12
+ 0x5C240200, // 0030 MOVE R9 R1
+ 0x5C280400, // 0031 MOVE R10 R2
+ 0x5C2C0600, // 0032 MOVE R11 R3
+ 0x7C1C0800, // 0033 CALL R7 4
+ 0x80040E00, // 0034 RET 1 R7
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function:
+********************************************************************/
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn__X3Clambda_X3E, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 0, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ NULL,
+ 0, /* has constants */
+ NULL, /* no const */
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x60040009, // 0000 GETGBL R1 G9
+ 0x5C080000, // 0001 MOVE R2 R0
+ 0x7C040200, // 0002 CALL R1 1
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: set_position
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_set_position, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(shadow_position),
+ /* K1 */ be_nested_str_weak(attribute_updated),
+ /* K2 */ be_const_int(1),
+ }),
+ be_str_weak(set_position),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0004, // 0002 JMPF R2 #0008
+ 0x8C080101, // 0003 GETMET R2 R0 K1
+ 0x5412003A, // 0004 LDINT R4 59
+ 0x58140002, // 0005 LDCONST R5 K2
+ 0x7C080600, // 0006 CALL R2 3
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0x80000000, // 0008 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: parse_configuration
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_parse_configuration, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota_switch_index),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_const_int(0),
+ }),
+ be_str_weak(parse_configuration),
+ &be_const_str_solidified,
+ ( &(const binstruction[12]) { /* code */
+ 0x60080009, // 0000 GETGBL R2 G9
+ 0x8C0C0301, // 0001 GETMET R3 R1 K1
+ 0x88140102, // 0002 GETMBR R5 R0 K2
+ 0x58180003, // 0003 LDCONST R6 K3
+ 0x7C0C0600, // 0004 CALL R3 3
+ 0x7C080200, // 0005 CALL R2 1
+ 0x90020002, // 0006 SETMBR R0 K0 R2
+ 0x88080100, // 0007 GETMBR R2 R0 K0
+ 0x18080504, // 0008 LE R2 R2 K4
+ 0x780A0000, // 0009 JMPF R2 #000B
+ 0x90020103, // 000A SETMBR R0 K0 K3
+ 0x80000000, // 000B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: append_state_json
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_append_state_json, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(_X2C_X22Switch_X22_X3A_X25s),
+ /* K1 */ be_nested_str_weak(shadow_onoff),
+ }),
+ be_str_weak(append_state_json),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x60040018, // 0000 GETGBL R1 G24
+ 0x58080000, // 0001 LDCONST R2 K0
+ 0x600C0009, // 0002 GETGBL R3 G9
+ 0x88100101, // 0003 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x7C040400, // 0005 CALL R1 2
+ 0x80040200, // 0006 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: button_handler
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Sensor_GenericSwitch_Btn;
+be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_button_handler, /* name */
+ be_nested_proto(
+ 15, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 1, /* has constants */
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(set_position),
+ /* K3 */ be_nested_str_weak(publish_event),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(EVENT_INFO),
+ /* K6 */ be_nested_str_weak(TLV),
+ /* K7 */ be_nested_str_weak(Matter_TLV_item),
+ /* K8 */ be_nested_str_weak(set),
+ /* K9 */ be_nested_str_weak(U1),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_const_int(2),
+ }),
+ be_str_weak(button_handler),
+ &be_const_str_solidified,
+ ( &(const binstruction[105]) { /* code */
+ 0x1C140500, // 0000 EQ R5 R2 K0
+ 0x74160001, // 0001 JMPT R5 #0004
+ 0x1C140501, // 0002 EQ R5 R2 K1
+ 0x78160002, // 0003 JMPF R5 #0007
+ 0x8C140102, // 0004 GETMET R5 R0 K2
+ 0x5C1C0600, // 0005 MOVE R7 R3
+ 0x7C140400, // 0006 CALL R5 2
+ 0x1C140501, // 0007 EQ R5 R2 K1
+ 0x78160040, // 0008 JMPF R5 #004A
+ 0x780E0010, // 0009 JMPF R3 #001B
+ 0x8C140103, // 000A GETMET R5 R0 K3
+ 0x541E003A, // 000B LDINT R7 59
+ 0x58200001, // 000C LDCONST R8 K1
+ 0xB8260800, // 000D GETNGBL R9 K4
+ 0x88241305, // 000E GETMBR R9 R9 K5
+ 0xB82A0800, // 000F GETNGBL R10 K4
+ 0x88281506, // 0010 GETMBR R10 R10 K6
+ 0x8C281507, // 0011 GETMET R10 R10 K7
+ 0x7C280200, // 0012 CALL R10 1
+ 0x8C281508, // 0013 GETMET R10 R10 K8
+ 0xB8320800, // 0014 GETNGBL R12 K4
+ 0x88301906, // 0015 GETMBR R12 R12 K6
+ 0x88301909, // 0016 GETMBR R12 R12 K9
+ 0x58340001, // 0017 LDCONST R13 K1
+ 0x7C280600, // 0018 CALL R10 3
+ 0x7C140A00, // 0019 CALL R5 5
+ 0x7002000F, // 001A JMP #002B
+ 0x8C140103, // 001B GETMET R5 R0 K3
+ 0x541E003A, // 001C LDINT R7 59
+ 0x5820000A, // 001D LDCONST R8 K10
+ 0xB8260800, // 001E GETNGBL R9 K4
+ 0x88241305, // 001F GETMBR R9 R9 K5
+ 0xB82A0800, // 0020 GETNGBL R10 K4
+ 0x88281506, // 0021 GETMBR R10 R10 K6
+ 0x8C281507, // 0022 GETMET R10 R10 K7
+ 0x7C280200, // 0023 CALL R10 1
+ 0x8C281508, // 0024 GETMET R10 R10 K8
+ 0xB8320800, // 0025 GETNGBL R12 K4
+ 0x88301906, // 0026 GETMBR R12 R12 K6
+ 0x88301909, // 0027 GETMBR R12 R12 K9
+ 0x58340001, // 0028 LDCONST R13 K1
+ 0x7C280600, // 0029 CALL R10 3
+ 0x7C140A00, // 002A CALL R5 5
+ 0x1C140701, // 002B EQ R5 R3 K1
+ 0x7816001B, // 002C JMPF R5 #0049
+ 0x24140900, // 002D GT R5 R4 K0
+ 0x78160019, // 002E JMPF R5 #0049
+ 0x8C140103, // 002F GETMET R5 R0 K3
+ 0x541E003A, // 0030 LDINT R7 59
+ 0x54220004, // 0031 LDINT R8 5
+ 0xB8260800, // 0032 GETNGBL R9 K4
+ 0x88241305, // 0033 GETMBR R9 R9 K5
+ 0xB82A0800, // 0034 GETNGBL R10 K4
+ 0x88281506, // 0035 GETMBR R10 R10 K6
+ 0x8C281507, // 0036 GETMET R10 R10 K7
+ 0x7C280200, // 0037 CALL R10 1
+ 0x8C281508, // 0038 GETMET R10 R10 K8
+ 0xB8320800, // 0039 GETNGBL R12 K4
+ 0x88301906, // 003A GETMBR R12 R12 K6
+ 0x88301909, // 003B GETMBR R12 R12 K9
+ 0x58340001, // 003C LDCONST R13 K1
+ 0x7C280600, // 003D CALL R10 3
+ 0xB82E0800, // 003E GETNGBL R11 K4
+ 0x882C1706, // 003F GETMBR R11 R11 K6
+ 0x8C2C1707, // 0040 GETMET R11 R11 K7
+ 0x7C2C0200, // 0041 CALL R11 1
+ 0x8C2C1708, // 0042 GETMET R11 R11 K8
+ 0xB8360800, // 0043 GETNGBL R13 K4
+ 0x88341B06, // 0044 GETMBR R13 R13 K6
+ 0x88341B09, // 0045 GETMBR R13 R13 K9
+ 0x00380901, // 0046 ADD R14 R4 K1
+ 0x7C2C0600, // 0047 CALL R11 3
+ 0x7C140C00, // 0048 CALL R5 6
+ 0x7002001D, // 0049 JMP #0068
+ 0x1C14050B, // 004A EQ R5 R2 K11
+ 0x7816001B, // 004B JMPF R5 #0068
+ 0x24140900, // 004C GT R5 R4 K0
+ 0x78160019, // 004D JMPF R5 #0068
+ 0x8C140103, // 004E GETMET R5 R0 K3
+ 0x541E003A, // 004F LDINT R7 59
+ 0x54220005, // 0050 LDINT R8 6
+ 0xB8260800, // 0051 GETNGBL R9 K4
+ 0x88241305, // 0052 GETMBR R9 R9 K5
+ 0xB82A0800, // 0053 GETNGBL R10 K4
+ 0x88281506, // 0054 GETMBR R10 R10 K6
+ 0x8C281507, // 0055 GETMET R10 R10 K7
+ 0x7C280200, // 0056 CALL R10 1
+ 0x8C281508, // 0057 GETMET R10 R10 K8
+ 0xB8320800, // 0058 GETNGBL R12 K4
+ 0x88301906, // 0059 GETMBR R12 R12 K6
+ 0x88301909, // 005A GETMBR R12 R12 K9
+ 0x58340001, // 005B LDCONST R13 K1
+ 0x7C280600, // 005C CALL R10 3
+ 0xB82E0800, // 005D GETNGBL R11 K4
+ 0x882C1706, // 005E GETMBR R11 R11 K6
+ 0x8C2C1707, // 005F GETMET R11 R11 K7
+ 0x7C2C0200, // 0060 CALL R11 1
+ 0x8C2C1708, // 0061 GETMET R11 R11 K8
+ 0xB8360800, // 0062 GETNGBL R13 K4
+ 0x88341B06, // 0063 GETMBR R13 R13 K6
+ 0x88341B09, // 0064 GETMBR R13 R13 K9
+ 0x5C380800, // 0065 MOVE R14 R4
+ 0x7C2C0600, // 0066 CALL R11 3
+ 0x7C140C00, // 0067 CALL R5 6
+ 0x80000000, // 0068 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified class: Matter_Plugin_Sensor_GenericSwitch_Btn
+********************************************************************/
+extern const bclass be_class_Matter_Plugin_Device;
+be_local_class(Matter_Plugin_Sensor_GenericSwitch_Btn,
+ 2,
+ &be_class_Matter_Plugin_Device,
+ be_nested_map(14,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_weak(read_attribute, 4), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute_closure) },
+ { be_const_key_weak(ARG, -1), be_nested_str_weak(button) },
+ { be_const_key_weak(ARG_TYPE, 6), be_const_static_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn__X3Clambda_X3E_closure) },
+ { be_const_key_weak(TYPE, 9), be_nested_str_weak(gensw_btn) },
+ { be_const_key_weak(button_handler, 13), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_button_handler_closure) },
+ { be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Generic_X20Switch_X2FButton) },
+ { be_const_key_weak(append_state_json, 12), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_append_state_json_closure) },
+ { be_const_key_weak(set_position, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_set_position_closure) },
+ { be_const_key_weak(parse_configuration, -1), be_const_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_parse_configuration_closure) },
+ { be_const_key_weak(shadow_position, -1), be_const_var(1) },
+ { be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(1,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(15, -1), be_const_int(2) },
+ })) ) } )) },
+ { be_const_key_weak(ARG_HINT, 8), be_nested_str_weak(Button_X3Cx_X3E_X20number) },
+ { be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
+ { be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ be_const_map( * be_nested_map(6,
+ ( (struct bmapnode*) &(const bmapnode[]) {
+ { be_const_key_int(5, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(4),
+ be_const_int(5),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(10,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(3),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(57, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(12,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(3),
+ be_const_int(5),
+ be_const_int(10),
+ be_const_int(15),
+ be_const_int(17),
+ be_const_int(18),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(3, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(8,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(4, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(7,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ { be_const_key_int(59, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
+ be_const_list( * be_nested_list(9,
+ ( (struct bvalue*) &(const bvalue[]) {
+ be_const_int(0),
+ be_const_int(1),
+ be_const_int(2),
+ be_const_int(65528),
+ be_const_int(65529),
+ be_const_int(65530),
+ be_const_int(65531),
+ be_const_int(65532),
+ be_const_int(65533),
+ })) ) } )) },
+ })) ) } )) },
+ })),
+ be_str_weak(Matter_Plugin_Sensor_GenericSwitch_Btn)
+);
+/********************************************************************/
+/* End of solidification */
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
index b2d5e1d38..81415b3f9 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_UI.h
@@ -3397,7 +3397,7 @@ be_local_class(Matter_UI,
{ be_const_key_weak(show_commissioning_info, -1), be_const_closure(class_Matter_UI_show_commissioning_info_closure) },
{ be_const_key_weak(page_part_ctl, 18), be_const_closure(class_Matter_UI_page_part_ctl_closure) },
{ be_const_key_weak(show_fabric_info, -1), be_const_closure(class_Matter_UI_show_fabric_info_closure) },
- { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Crain_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_fan_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_rain_X7Cv_waterleak_X7Cv_airquality) },
+ { be_const_key_weak(_CLASSES_TYPES, 4), be_nested_str_long(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Cgensw_btn_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity_X7Coccupancy_X7Conoff_X7Ccontact_X7Cflow_X7Crain_X7Cwaterleak_X7Cairquality_X7C_X2Dvirtual_X7Cv_relay_X7Cv_light0_X7Cv_light1_X7Cv_light2_X7Cv_light3_X7Cv_fan_X7Cv_temp_X7Cv_pressure_X7Cv_illuminance_X7Cv_humidity_X7Cv_occupancy_X7Cv_contact_X7Cv_flow_X7Cv_rain_X7Cv_waterleak_X7Cv_airquality) },
{ be_const_key_weak(web_get_arg, -1), be_const_closure(class_Matter_UI_web_get_arg_closure) },
{ be_const_key_weak(plugin_option, 5), be_const_closure(class_Matter_UI_plugin_option_closure) },
{ be_const_key_weak(web_add_config_button, -1), be_const_closure(class_Matter_UI_web_add_config_button_closure) },
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
index da9af4b11..da547af87 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_zz_Device.h
@@ -7,44 +7,12 @@
extern const bclass be_class_Matter_Device;
/********************************************************************
-** Solidified function: save_before_restart
+** Solidified function: start_commissioning_complete
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_before_restart, /* name */
+be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(stop_basic_commissioning),
- /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
- }),
- be_str_weak(save_before_restart),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x8C040101, // 0002 GETMET R1 R0 K1
- 0x7C040200, // 0003 CALL R1 1
- 0x80000000, // 0004 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: msg_send
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_send, /* name */
- be_nested_proto(
- 5, /* nstack */
+ 10, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -52,18 +20,44 @@ be_local_closure(class_Matter_Device_msg_send, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(send_UDP),
+ ( &(const bvalue[10]) { /* constants */
+ /* K0 */ be_nested_str_weak(get_fabric),
+ /* K1 */ be_nested_str_weak(get_fabric_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(tohex),
+ /* K5 */ be_nested_str_weak(get_admin_vendor_name),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(stop_basic_commissioning),
}),
- be_str_weak(msg_send),
+ be_str_weak(start_commissioning_complete),
&be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
+ ( &(const binstruction[23]) { /* code */
+ 0x8C080300, // 0000 GETMET R2 R1 K0
+ 0x7C080200, // 0001 CALL R2 1
+ 0x8C0C0501, // 0002 GETMET R3 R2 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C100505, // 000A GETMET R4 R2 K5
+ 0x7C100200, // 000B CALL R4 1
+ 0xB8160C00, // 000C GETNGBL R5 K6
+ 0x60180018, // 000D GETGBL R6 G24
+ 0x581C0007, // 000E LDCONST R7 K7
+ 0x5C200600, // 000F MOVE R8 R3
+ 0x5C240800, // 0010 MOVE R9 R4
+ 0x7C180600, // 0011 CALL R6 3
+ 0x581C0008, // 0012 LDCONST R7 K8
+ 0x7C140400, // 0013 CALL R5 2
+ 0x8C140109, // 0014 GETMET R5 R0 K9
+ 0x7C140200, // 0015 CALL R5 1
+ 0x80000000, // 0016 RET 0
})
)
);
@@ -71,710 +65,82 @@ be_local_closure(class_Matter_Device_msg_send, /* name */
/********************************************************************
-** Solidified function: mdns_remove_PASE
+** Solidified function: k2l_num
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
+be_local_closure(class_Matter_Device_k2l_num, /* name */
be_nested_proto(
9, /* nstack */
1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[19]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(mdns_pase_eth),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
- /* K4 */ be_nested_str_weak(_matterc),
- /* K5 */ be_nested_str_weak(_udp),
- /* K6 */ be_nested_str_weak(commissioning_instance_eth),
- /* K7 */ be_nested_str_weak(hostname_eth),
- /* K8 */ be_const_int(3),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K10 */ be_nested_str_weak(eth),
- /* K11 */ be_nested_str_weak(remove_service),
- /* K12 */ be_nested_str_weak(mdns_pase_wifi),
- /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
- /* K14 */ be_nested_str_weak(hostname_wifi),
- /* K15 */ be_nested_str_weak(wifi),
- /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K17 */ be_nested_str_weak(_X7C),
- /* K18 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_PASE),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x88080101, // 0002 GETMBR R2 R0 K1
- 0x780A0019, // 0003 JMPF R2 #001E
- 0xB80A0400, // 0004 GETNGBL R2 K2
- 0x600C0018, // 0005 GETGBL R3 G24
- 0x58100003, // 0006 LDCONST R4 K3
- 0x58140004, // 0007 LDCONST R5 K4
- 0x58180005, // 0008 LDCONST R6 K5
- 0x881C0106, // 0009 GETMBR R7 R0 K6
- 0x88200107, // 000A GETMBR R8 R0 K7
- 0x7C0C0A00, // 000B CALL R3 5
- 0x58100008, // 000C LDCONST R4 K8
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0400, // 000E GETNGBL R2 K2
- 0x600C0018, // 000F GETGBL R3 G24
- 0x58100009, // 0010 LDCONST R4 K9
- 0x5814000A, // 0011 LDCONST R5 K10
- 0x88180106, // 0012 GETMBR R6 R0 K6
- 0x7C0C0600, // 0013 CALL R3 3
- 0x58100008, // 0014 LDCONST R4 K8
- 0x7C080400, // 0015 CALL R2 2
- 0x50080000, // 0016 LDBOOL R2 0 0
- 0x90020202, // 0017 SETMBR R0 K1 R2
- 0x8C08030B, // 0018 GETMET R2 R1 K11
- 0x58100004, // 0019 LDCONST R4 K4
- 0x58140005, // 001A LDCONST R5 K5
- 0x88180106, // 001B GETMBR R6 R0 K6
- 0x881C0107, // 001C GETMBR R7 R0 K7
- 0x7C080A00, // 001D CALL R2 5
- 0x8808010C, // 001E GETMBR R2 R0 K12
- 0x780A0019, // 001F JMPF R2 #003A
- 0xB80A0400, // 0020 GETNGBL R2 K2
- 0x600C0018, // 0021 GETGBL R3 G24
- 0x58100003, // 0022 LDCONST R4 K3
- 0x58140004, // 0023 LDCONST R5 K4
- 0x58180005, // 0024 LDCONST R6 K5
- 0x881C010D, // 0025 GETMBR R7 R0 K13
- 0x8820010E, // 0026 GETMBR R8 R0 K14
- 0x7C0C0A00, // 0027 CALL R3 5
- 0x58100008, // 0028 LDCONST R4 K8
- 0x7C080400, // 0029 CALL R2 2
- 0xB80A0400, // 002A GETNGBL R2 K2
- 0x600C0018, // 002B GETGBL R3 G24
- 0x58100009, // 002C LDCONST R4 K9
- 0x5814000F, // 002D LDCONST R5 K15
- 0x8818010D, // 002E GETMBR R6 R0 K13
- 0x7C0C0600, // 002F CALL R3 3
- 0x58100008, // 0030 LDCONST R4 K8
- 0x7C080400, // 0031 CALL R2 2
- 0x50080000, // 0032 LDBOOL R2 0 0
- 0x90021802, // 0033 SETMBR R0 K12 R2
- 0x8C08030B, // 0034 GETMET R2 R1 K11
- 0x58100004, // 0035 LDCONST R4 K4
- 0x58140005, // 0036 LDCONST R5 K5
- 0x8818010D, // 0037 GETMBR R6 R0 K13
- 0x881C010E, // 0038 GETMBR R7 R0 K14
- 0x7C080A00, // 0039 CALL R2 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC080002, // 003C CATCH R2 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8120400, // 003E GETNGBL R4 K2
- 0x60140008, // 003F GETGBL R5 G8
- 0x5C180400, // 0040 MOVE R6 R2
- 0x7C140200, // 0041 CALL R5 1
- 0x00162005, // 0042 ADD R5 K16 R5
- 0x00140B11, // 0043 ADD R5 R5 K17
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x00140A06, // 0047 ADD R5 R5 R6
- 0x58180012, // 0048 LDCONST R6 K18
- 0x7C100400, // 0049 CALL R4 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_qrcode_content
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[12]) { /* constants */
- /* K0 */ be_nested_str_weak(resize),
- /* K1 */ be_nested_str_weak(setbits),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(VENDOR_ID),
- /* K4 */ be_nested_str_weak(PRODUCT_ID),
- /* K5 */ be_nested_str_weak(root_discriminator),
- /* K6 */ be_nested_str_weak(root_passcode),
- /* K7 */ be_const_int(134217727),
- /* K8 */ be_nested_str_weak(MT_X3A),
- /* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(Base38),
- /* K11 */ be_nested_str_weak(encode),
- }),
- be_str_weak(compute_qrcode_content),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0x60040015, // 0000 GETGBL R1 G21
- 0x7C040000, // 0001 CALL R1 0
- 0x8C040300, // 0002 GETMET R1 R1 K0
- 0x540E000A, // 0003 LDINT R3 11
- 0x7C040400, // 0004 CALL R1 2
- 0x8C080301, // 0005 GETMET R2 R1 K1
- 0x58100002, // 0006 LDCONST R4 K2
- 0x5416000F, // 0007 LDINT R5 16
- 0x88180103, // 0008 GETMBR R6 R0 K3
- 0x7C080800, // 0009 CALL R2 4
- 0x8C080301, // 000A GETMET R2 R1 K1
- 0x54120012, // 000B LDINT R4 19
- 0x5416000F, // 000C LDINT R5 16
- 0x88180104, // 000D GETMBR R6 R0 K4
- 0x7C080800, // 000E CALL R2 4
- 0x8C080301, // 000F GETMET R2 R1 K1
- 0x54120024, // 0010 LDINT R4 37
- 0x54160007, // 0011 LDINT R5 8
- 0x541A0003, // 0012 LDINT R6 4
- 0x7C080800, // 0013 CALL R2 4
- 0x8C080301, // 0014 GETMET R2 R1 K1
- 0x5412002C, // 0015 LDINT R4 45
- 0x5416000B, // 0016 LDINT R5 12
- 0x88180105, // 0017 GETMBR R6 R0 K5
- 0x541E0FFE, // 0018 LDINT R7 4095
- 0x2C180C07, // 0019 AND R6 R6 R7
- 0x7C080800, // 001A CALL R2 4
- 0x8C080301, // 001B GETMET R2 R1 K1
- 0x54120038, // 001C LDINT R4 57
- 0x5416001A, // 001D LDINT R5 27
- 0x88180106, // 001E GETMBR R6 R0 K6
- 0x2C180D07, // 001F AND R6 R6 K7
- 0x7C080800, // 0020 CALL R2 4
- 0xB80A1200, // 0021 GETNGBL R2 K9
- 0x8808050A, // 0022 GETMBR R2 R2 K10
- 0x8C08050B, // 0023 GETMET R2 R2 K11
- 0x5C100200, // 0024 MOVE R4 R1
- 0x7C080400, // 0025 CALL R2 2
- 0x000A1002, // 0026 ADD R2 K8 R2
- 0x80040400, // 0027 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _init_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
- }),
- be_str_weak(_init_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x1C040302, // 0003 EQ R1 R1 K2
- 0x78060001, // 0004 JMPF R1 #0007
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x7C040200, // 0006 CALL R1 1
- 0x80000000, // 0007 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: read_sensors_scheduler
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(tasmota),
- /* K4 */ be_nested_str_weak(time_reached),
- /* K5 */ be_nested_str_weak(_trigger_read_sensors),
- /* K6 */ be_nested_str_weak(millis),
- }),
- be_str_weak(read_sensors_scheduler),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x1C040202, // 0002 EQ R1 R1 R2
- 0x78060000, // 0003 JMPF R1 #0005
- 0x80000200, // 0004 RET 0
- 0x88040101, // 0005 GETMBR R1 R0 K1
- 0x1C040302, // 0006 EQ R1 R1 K2
- 0x74060004, // 0007 JMPT R1 #000D
- 0xB8060600, // 0008 GETNGBL R1 K3
- 0x8C040304, // 0009 GETMET R1 R1 K4
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x7C040400, // 000B CALL R1 2
- 0x78060006, // 000C JMPF R1 #0014
- 0x8C040105, // 000D GETMET R1 R0 K5
- 0x7C040200, // 000E CALL R1 1
- 0xB8060600, // 000F GETNGBL R1 K3
- 0x8C040306, // 0010 GETMET R1 R1 K6
- 0x880C0100, // 0011 GETMBR R3 R0 K0
- 0x7C040400, // 0012 CALL R1 2
- 0x90020201, // 0013 SETMBR R0 K1 R1
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: add_read_sensors_schedule
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(probe_sensor_time),
- /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
- /* K2 */ be_nested_str_weak(matter),
- /* K3 */ be_nested_str_weak(jitter),
- }),
- be_str_weak(add_read_sensors_schedule),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x4C0C0000, // 0001 LDNIL R3
- 0x1C080403, // 0002 EQ R2 R2 R3
- 0x740A0002, // 0003 JMPT R2 #0007
- 0x88080100, // 0004 GETMBR R2 R0 K0
- 0x24080401, // 0005 GT R2 R2 R1
- 0x780A0005, // 0006 JMPF R2 #000D
- 0x90020001, // 0007 SETMBR R0 K0 R1
- 0xB80A0400, // 0008 GETNGBL R2 K2
- 0x8C080503, // 0009 GETMET R2 R2 K3
- 0x5C100200, // 000A MOVE R4 R1
- 0x7C080400, // 000B CALL R2 2
- 0x90020202, // 000C SETMBR R0 K1 R2
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_operational_discovery_deferred
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
- be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_operational_discovery),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
- /* K2 */ be_const_int(0),
- }),
- be_str_weak(start_operational_discovery_deferred),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_active_endpoints
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
- be_nested_proto(
- 9, /* nstack */
- 2, /* argc */
- 2, /* varg */
+ 4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins),
- /* K1 */ be_nested_str_weak(get_endpoint),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(find),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(get_active_endpoints),
- &be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x88100100, // 0003 GETMBR R4 R0 K0
- 0x7C0C0200, // 0004 CALL R3 1
- 0xA8020011, // 0005 EXBLK 0 #0018
- 0x5C100600, // 0006 MOVE R4 R3
- 0x7C100000, // 0007 CALL R4 0
- 0x8C140901, // 0008 GETMET R5 R4 K1
- 0x7C140200, // 0009 CALL R5 1
- 0x78060002, // 000A JMPF R1 #000E
- 0x1C180B02, // 000B EQ R6 R5 K2
- 0x781A0000, // 000C JMPF R6 #000E
- 0x7001FFF7, // 000D JMP #0006
- 0x8C180503, // 000E GETMET R6 R2 K3
- 0x5C200A00, // 000F MOVE R8 R5
- 0x7C180400, // 0010 CALL R6 2
- 0x4C1C0000, // 0011 LDNIL R7
- 0x1C180C07, // 0012 EQ R6 R6 R7
- 0x781A0002, // 0013 JMPF R6 #0017
- 0x8C180504, // 0014 GETMET R6 R2 K4
- 0x5C200A00, // 0015 MOVE R8 R5
- 0x7C180400, // 0016 CALL R6 2
- 0x7001FFED, // 0017 JMP #0006
- 0x580C0005, // 0018 LDCONST R3 K5
- 0xAC0C0200, // 0019 CATCH R3 1 0
- 0xB0080000, // 001A RAISE 2 R0 R0
- 0x80040400, // 001B RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: invoke_request
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_invoke_request, /* name */
- be_nested_proto(
- 12, /* nstack */
- 4, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(endpoint),
- /* K2 */ be_nested_str_weak(plugins),
- /* K3 */ be_nested_str_weak(invoke_request),
- /* K4 */ be_const_int(1),
- /* K5 */ be_nested_str_weak(status),
- /* K6 */ be_nested_str_weak(matter),
- /* K7 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- }),
- be_str_weak(invoke_request),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58100000, // 0000 LDCONST R4 K0
- 0x88140701, // 0001 GETMBR R5 R3 K1
- 0x6018000C, // 0002 GETGBL R6 G12
- 0x881C0102, // 0003 GETMBR R7 R0 K2
- 0x7C180200, // 0004 CALL R6 1
- 0x14180806, // 0005 LT R6 R4 R6
- 0x781A000C, // 0006 JMPF R6 #0014
- 0x88180102, // 0007 GETMBR R6 R0 K2
- 0x94180C04, // 0008 GETIDX R6 R6 R4
- 0x881C0D01, // 0009 GETMBR R7 R6 K1
- 0x1C1C0E05, // 000A EQ R7 R7 R5
- 0x781E0005, // 000B JMPF R7 #0012
- 0x8C1C0D03, // 000C GETMET R7 R6 K3
- 0x5C240200, // 000D MOVE R9 R1
- 0x5C280400, // 000E MOVE R10 R2
- 0x5C2C0600, // 000F MOVE R11 R3
- 0x7C1C0800, // 0010 CALL R7 4
- 0x80040E00, // 0011 RET 1 R7
- 0x00100904, // 0012 ADD R4 R4 K4
- 0x7001FFED, // 0013 JMP #0002
- 0xB81A0C00, // 0014 GETNGBL R6 K6
- 0x88180D07, // 0015 GETMBR R6 R6 K7
- 0x900E0A06, // 0016 SETMBR R3 K5 R6
- 0x80000000, // 0017 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _instantiate_plugins_from_config
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name */
- be_nested_proto(
- 17, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(k2l_num),
- /* K1 */ be_nested_str_weak(plugins),
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
/* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Plugin_Root),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
/* K5 */ be_const_int(0),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
- /* K10 */ be_nested_str_weak(root),
- /* K11 */ be_nested_str_weak(),
- /* K12 */ be_nested_str_weak(Plugin_Aggregator),
- /* K13 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K14 */ be_nested_str_weak(aggregator),
- /* K15 */ be_nested_str_weak(find),
- /* K16 */ be_nested_str_weak(type),
- /* K17 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
- /* K18 */ be_const_int(3),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
- /* K20 */ be_nested_str_weak(plugins_classes),
- /* K21 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K22 */ be_nested_str_weak(_X27_X20skipping),
- /* K23 */ be_nested_str_weak(conf_to_log),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_nested_str_weak(stop_iteration),
- /* K27 */ be_nested_str_weak(tasmota),
- /* K28 */ be_nested_str_weak(publish_result),
- /* K29 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Initialized_X22_X3A1_X7D_X7D),
- /* K30 */ be_nested_str_weak(Matter),
}),
- be_str_weak(_instantiate_plugins_from_config),
+ be_str_weak(k2l_num),
&be_const_str_solidified,
- ( &(const binstruction[146]) { /* code */
- 0x8C080100, // 0000 GETMET R2 R0 K0
- 0x5C100200, // 0001 MOVE R4 R1
- 0x7C080400, // 0002 CALL R2 2
- 0x880C0101, // 0003 GETMBR R3 R0 K1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0xB8160600, // 0005 GETNGBL R5 K3
- 0x8C140B04, // 0006 GETMET R5 R5 K4
- 0x5C1C0000, // 0007 MOVE R7 R0
- 0x58200005, // 0008 LDCONST R8 K5
- 0x60240013, // 0009 GETGBL R9 G19
- 0x7C240000, // 000A CALL R9 0
- 0x7C140800, // 000B CALL R5 4
- 0x7C0C0400, // 000C CALL R3 2
- 0xB80E0C00, // 000D GETNGBL R3 K6
- 0x58100007, // 000E LDCONST R4 K7
- 0x58140008, // 000F LDCONST R5 K8
- 0x7C0C0400, // 0010 CALL R3 2
- 0xB80E0C00, // 0011 GETNGBL R3 K6
- 0x60100018, // 0012 GETGBL R4 G24
- 0x58140009, // 0013 LDCONST R5 K9
- 0x58180005, // 0014 LDCONST R6 K5
- 0x581C000A, // 0015 LDCONST R7 K10
- 0x5820000B, // 0016 LDCONST R8 K11
- 0x7C100800, // 0017 CALL R4 4
- 0x58140008, // 0018 LDCONST R5 K8
- 0x7C0C0400, // 0019 CALL R3 2
- 0x880C0101, // 001A GETMBR R3 R0 K1
- 0x8C0C0702, // 001B GETMET R3 R3 K2
- 0xB8160600, // 001C GETNGBL R5 K3
- 0x8C140B0C, // 001D GETMET R5 R5 K12
- 0x5C1C0000, // 001E MOVE R7 R0
- 0xB8220600, // 001F GETNGBL R8 K3
- 0x8820110D, // 0020 GETMBR R8 R8 K13
- 0x60240013, // 0021 GETGBL R9 G19
- 0x7C240000, // 0022 CALL R9 0
- 0x7C140800, // 0023 CALL R5 4
- 0x7C0C0400, // 0024 CALL R3 2
- 0xB80E0C00, // 0025 GETNGBL R3 K6
- 0x60100018, // 0026 GETGBL R4 G24
- 0x58140009, // 0027 LDCONST R5 K9
- 0xB81A0600, // 0028 GETNGBL R6 K3
- 0x88180D0D, // 0029 GETMBR R6 R6 K13
- 0x581C000E, // 002A LDCONST R7 K14
- 0x5820000B, // 002B LDCONST R8 K11
- 0x7C100800, // 002C CALL R4 4
- 0x58140008, // 002D LDCONST R5 K8
- 0x7C0C0400, // 002E CALL R3 2
- 0x600C0010, // 002F GETGBL R3 G16
- 0x5C100400, // 0030 MOVE R4 R2
- 0x7C0C0200, // 0031 CALL R3 1
- 0xA8020055, // 0032 EXBLK 0 #0089
- 0x5C100600, // 0033 MOVE R4 R3
- 0x7C100000, // 0034 CALL R4 0
- 0x1C140905, // 0035 EQ R5 R4 K5
- 0x78160000, // 0036 JMPF R5 #0038
- 0x7001FFFA, // 0037 JMP #0033
- 0xA802003E, // 0038 EXBLK 0 #0078
- 0x60140008, // 0039 GETGBL R5 G8
- 0x5C180800, // 003A MOVE R6 R4
- 0x7C140200, // 003B CALL R5 1
- 0x94140205, // 003C GETIDX R5 R1 R5
- 0x8C180B0F, // 003D GETMET R6 R5 K15
- 0x58200010, // 003E LDCONST R8 K16
- 0x7C180400, // 003F CALL R6 2
- 0x4C1C0000, // 0040 LDNIL R7
- 0x1C1C0C07, // 0041 EQ R7 R6 R7
- 0x781E0005, // 0042 JMPF R7 #0049
- 0xB81E0C00, // 0043 GETNGBL R7 K6
- 0x58200011, // 0044 LDCONST R8 K17
- 0x58240012, // 0045 LDCONST R9 K18
- 0x7C1C0400, // 0046 CALL R7 2
- 0xA8040001, // 0047 EXBLK 1 1
- 0x7001FFE9, // 0048 JMP #0033
- 0x1C1C0D0A, // 0049 EQ R7 R6 K10
- 0x781E0005, // 004A JMPF R7 #0051
- 0xB81E0C00, // 004B GETNGBL R7 K6
- 0x58200013, // 004C LDCONST R8 K19
- 0x58240012, // 004D LDCONST R9 K18
- 0x7C1C0400, // 004E CALL R7 2
- 0xA8040001, // 004F EXBLK 1 1
- 0x7001FFE1, // 0050 JMP #0033
- 0x881C0114, // 0051 GETMBR R7 R0 K20
- 0x8C1C0F0F, // 0052 GETMET R7 R7 K15
- 0x5C240C00, // 0053 MOVE R9 R6
- 0x7C1C0400, // 0054 CALL R7 2
- 0x4C200000, // 0055 LDNIL R8
- 0x1C200E08, // 0056 EQ R8 R7 R8
- 0x78220009, // 0057 JMPF R8 #0062
- 0xB8220C00, // 0058 GETNGBL R8 K6
- 0x60240008, // 0059 GETGBL R9 G8
- 0x5C280C00, // 005A MOVE R10 R6
- 0x7C240200, // 005B CALL R9 1
- 0x00262A09, // 005C ADD R9 K21 R9
- 0x00241316, // 005D ADD R9 R9 K22
- 0x58280008, // 005E LDCONST R10 K8
- 0x7C200400, // 005F CALL R8 2
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7001FFD0, // 0061 JMP #0033
- 0x5C200E00, // 0062 MOVE R8 R7
- 0x5C240000, // 0063 MOVE R9 R0
- 0x5C280800, // 0064 MOVE R10 R4
- 0x5C2C0A00, // 0065 MOVE R11 R5
- 0x7C200600, // 0066 CALL R8 3
- 0x88240101, // 0067 GETMBR R9 R0 K1
- 0x8C241302, // 0068 GETMET R9 R9 K2
- 0x5C2C1000, // 0069 MOVE R11 R8
- 0x7C240400, // 006A CALL R9 2
- 0xB8260C00, // 006B GETNGBL R9 K6
- 0x60280018, // 006C GETGBL R10 G24
- 0x582C0009, // 006D LDCONST R11 K9
- 0x5C300800, // 006E MOVE R12 R4
- 0x5C340C00, // 006F MOVE R13 R6
- 0x8C380117, // 0070 GETMET R14 R0 K23
- 0x5C400A00, // 0071 MOVE R16 R5
- 0x7C380400, // 0072 CALL R14 2
- 0x7C280800, // 0073 CALL R10 4
- 0x582C0008, // 0074 LDCONST R11 K8
- 0x7C240400, // 0075 CALL R9 2
- 0xA8040001, // 0076 EXBLK 1 1
- 0x7002000F, // 0077 JMP #0088
- 0xAC140002, // 0078 CATCH R5 0 2
- 0x7002000C, // 0079 JMP #0087
- 0xB81E0C00, // 007A GETNGBL R7 K6
- 0x60200008, // 007B GETGBL R8 G8
- 0x5C240A00, // 007C MOVE R9 R5
- 0x7C200200, // 007D CALL R8 1
- 0x00223008, // 007E ADD R8 K24 R8
- 0x00201119, // 007F ADD R8 R8 K25
- 0x60240008, // 0080 GETGBL R9 G8
- 0x5C280C00, // 0081 MOVE R10 R6
- 0x7C240200, // 0082 CALL R9 1
- 0x00201009, // 0083 ADD R8 R8 R9
- 0x58240008, // 0084 LDCONST R9 K8
- 0x7C1C0400, // 0085 CALL R7 2
- 0x70020000, // 0086 JMP #0088
- 0xB0080000, // 0087 RAISE 2 R0 R0
- 0x7001FFA9, // 0088 JMP #0033
- 0x580C001A, // 0089 LDCONST R3 K26
- 0xAC0C0200, // 008A CATCH R3 1 0
- 0xB0080000, // 008B RAISE 2 R0 R0
- 0xB80E3600, // 008C GETNGBL R3 K27
- 0x8C0C071C, // 008D GETMET R3 R3 K28
- 0x5814001D, // 008E LDCONST R5 K29
- 0x5818001E, // 008F LDCONST R6 K30
- 0x7C0C0600, // 0090 CALL R3 3
- 0x80000000, // 0091 RET 0
+ ( &(const binstruction[52]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020007, // 000B EXBLK 0 #0014
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x601C0009, // 000F GETGBL R7 G9
+ 0x5C200800, // 0010 MOVE R8 R4
+ 0x7C1C0200, // 0011 CALL R7 1
+ 0x7C140400, // 0012 CALL R5 2
+ 0x7001FFF7, // 0013 JMP #000C
+ 0x580C0003, // 0014 LDCONST R3 K3
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x600C0010, // 0017 GETGBL R3 G16
+ 0x6010000C, // 0018 GETGBL R4 G12
+ 0x5C140400, // 0019 MOVE R5 R2
+ 0x7C100200, // 001A CALL R4 1
+ 0x04100904, // 001B SUB R4 R4 K4
+ 0x40120804, // 001C CONNECT R4 K4 R4
+ 0x7C0C0200, // 001D CALL R3 1
+ 0xA8020010, // 001E EXBLK 0 #0030
+ 0x5C100600, // 001F MOVE R4 R3
+ 0x7C100000, // 0020 CALL R4 0
+ 0x94140404, // 0021 GETIDX R5 R2 R4
+ 0x5C180800, // 0022 MOVE R6 R4
+ 0x241C0D05, // 0023 GT R7 R6 K5
+ 0x781E0008, // 0024 JMPF R7 #002E
+ 0x041C0D04, // 0025 SUB R7 R6 K4
+ 0x941C0407, // 0026 GETIDX R7 R2 R7
+ 0x241C0E05, // 0027 GT R7 R7 R5
+ 0x781E0004, // 0028 JMPF R7 #002E
+ 0x041C0D04, // 0029 SUB R7 R6 K4
+ 0x941C0407, // 002A GETIDX R7 R2 R7
+ 0x98080C07, // 002B SETIDX R2 R6 R7
+ 0x04180D04, // 002C SUB R6 R6 K4
+ 0x7001FFF4, // 002D JMP #0023
+ 0x98080C05, // 002E SETIDX R2 R6 R5
+ 0x7001FFEE, // 002F JMP #001F
+ 0x580C0003, // 0030 LDCONST R3 K3
+ 0xAC0C0200, // 0031 CATCH R3 1 0
+ 0xB0080000, // 0032 RAISE 2 R0 R0
+ 0x80040400, // 0033 RET 1 R2
})
)
);
@@ -782,12 +148,12 @@ be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name
/********************************************************************
-** Solidified function: start_operational_discovery
+** Solidified function: remove_fabric
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
+be_local_closure(class_Matter_Device_remove_fabric, /* name */
be_nested_proto(
- 7, /* nstack */
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -795,23 +161,58 @@ be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(mdns),
- /* K2 */ be_nested_str_weak(stop_basic_commissioning),
- /* K3 */ be_nested_str_weak(mdns_announce_op_discovery),
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(log),
+ /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
+ /* K2 */ be_nested_str_weak(get_fabric_id),
+ /* K3 */ be_nested_str_weak(copy),
+ /* K4 */ be_nested_str_weak(reverse),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_const_int(2),
+ /* K7 */ be_nested_str_weak(message_handler),
+ /* K8 */ be_nested_str_weak(im),
+ /* K9 */ be_nested_str_weak(subs_shop),
+ /* K10 */ be_nested_str_weak(remove_by_fabric),
+ /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(remove_fabric),
+ /* K14 */ be_nested_str_weak(save_fabrics),
}),
- be_str_weak(start_operational_discovery),
+ be_str_weak(remove_fabric),
&be_const_str_solidified,
- ( &(const binstruction[ 8]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA40E0200, // 0001 IMPORT R3 K1
- 0x8C100102, // 0002 GETMET R4 R0 K2
- 0x7C100200, // 0003 CALL R4 1
- 0x8C100103, // 0004 GETMET R4 R0 K3
- 0x5C180200, // 0005 MOVE R6 R1
- 0x7C100400, // 0006 CALL R4 2
- 0x80000000, // 0007 RET 0
+ ( &(const binstruction[32]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x20080202, // 0001 NE R2 R1 R2
+ 0x780A0018, // 0002 JMPF R2 #001C
+ 0xB80A0000, // 0003 GETNGBL R2 K0
+ 0x8C0C0302, // 0004 GETMET R3 R1 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C0C0704, // 0008 GETMET R3 R3 K4
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x8C0C0705, // 000A GETMET R3 R3 K5
+ 0x7C0C0200, // 000B CALL R3 1
+ 0x000E0203, // 000C ADD R3 K1 R3
+ 0x58100006, // 000D LDCONST R4 K6
+ 0x7C080400, // 000E CALL R2 2
+ 0x88080107, // 000F GETMBR R2 R0 K7
+ 0x88080508, // 0010 GETMBR R2 R2 K8
+ 0x88080509, // 0011 GETMBR R2 R2 K9
+ 0x8C08050A, // 0012 GETMET R2 R2 K10
+ 0x5C100200, // 0013 MOVE R4 R1
+ 0x7C080400, // 0014 CALL R2 2
+ 0x8C08010B, // 0015 GETMET R2 R0 K11
+ 0x5C100200, // 0016 MOVE R4 R1
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8808010C, // 0018 GETMBR R2 R0 K12
+ 0x8C08050D, // 0019 GETMET R2 R2 K13
+ 0x5C100200, // 001A MOVE R4 R1
+ 0x7C080400, // 001B CALL R2 2
+ 0x8808010C, // 001C GETMBR R2 R0 K12
+ 0x8C08050E, // 001D GETMET R2 R2 K14
+ 0x7C080200, // 001E CALL R2 1
+ 0x80000000, // 001F RET 0
})
)
);
@@ -1015,813 +416,10 @@ be_local_closure(class_Matter_Device__mdns_announce_hostname, /* name */
/********************************************************************
-** Solidified function: bridge_remove_endpoint
+** Solidified function: save_before_restart
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins_config),
- /* K2 */ be_nested_str_weak(contains),
- /* K3 */ be_nested_str_weak(log),
- /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
- /* K9 */ be_nested_str_weak(plugins_persist),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(get_endpoint),
- /* K13 */ be_const_int(1),
- /* K14 */ be_nested_str_weak(clean_remotes),
- /* K15 */ be_nested_str_weak(save_param),
- /* K16 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_remove_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[56]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0x600C0008, // 0001 GETGBL R3 G8
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x4C100000, // 0004 LDNIL R4
- 0x4C140000, // 0005 LDNIL R5
- 0x88180101, // 0006 GETMBR R6 R0 K1
- 0x8C180D02, // 0007 GETMET R6 R6 K2
- 0x5C200600, // 0008 MOVE R8 R3
- 0x7C180400, // 0009 CALL R6 2
- 0x741A0004, // 000A JMPT R6 #0010
- 0xB81A0600, // 000B GETNGBL R6 K3
- 0x001E0803, // 000C ADD R7 K4 R3
- 0x58200005, // 000D LDCONST R8 K5
- 0x7C180400, // 000E CALL R6 2
- 0x80000C00, // 000F RET 0
- 0xB81A0600, // 0010 GETNGBL R6 K3
- 0x601C0018, // 0011 GETGBL R7 G24
- 0x58200006, // 0012 LDCONST R8 K6
- 0x5C240200, // 0013 MOVE R9 R1
- 0x7C1C0400, // 0014 CALL R7 2
- 0x58200007, // 0015 LDCONST R8 K7
- 0x7C180400, // 0016 CALL R6 2
- 0x88180101, // 0017 GETMBR R6 R0 K1
- 0x8C180D08, // 0018 GETMET R6 R6 K8
- 0x5C200600, // 0019 MOVE R8 R3
- 0x7C180400, // 001A CALL R6 2
- 0x50180200, // 001B LDBOOL R6 1 0
- 0x90021206, // 001C SETMBR R0 K9 R6
- 0x5818000A, // 001D LDCONST R6 K10
- 0x601C000C, // 001E GETGBL R7 G12
- 0x8820010B, // 001F GETMBR R8 R0 K11
- 0x7C1C0200, // 0020 CALL R7 1
- 0x141C0C07, // 0021 LT R7 R6 R7
- 0x781E000D, // 0022 JMPF R7 #0031
- 0x881C010B, // 0023 GETMBR R7 R0 K11
- 0x941C0E06, // 0024 GETIDX R7 R7 R6
- 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
- 0x7C1C0200, // 0026 CALL R7 1
- 0x1C1C0207, // 0027 EQ R7 R1 R7
- 0x781E0005, // 0028 JMPF R7 #002F
- 0x881C010B, // 0029 GETMBR R7 R0 K11
- 0x8C1C0F08, // 002A GETMET R7 R7 K8
- 0x5C240C00, // 002B MOVE R9 R6
- 0x7C1C0400, // 002C CALL R7 2
- 0x70020002, // 002D JMP #0031
- 0x70020000, // 002E JMP #0030
- 0x00180D0D, // 002F ADD R6 R6 K13
- 0x7001FFEC, // 0030 JMP #001E
- 0x8C1C010E, // 0031 GETMET R7 R0 K14
- 0x7C1C0200, // 0032 CALL R7 1
- 0x8C1C010F, // 0033 GETMET R7 R0 K15
- 0x7C1C0200, // 0034 CALL R7 1
- 0x8C1C0110, // 0035 GETMET R7 R0 K16
- 0x7C1C0200, // 0036 CALL R7 1
- 0x80000000, // 0037 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_mdns_announce_hostnames
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080000, // 0002 LDBOOL R2 0 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_mdns_host),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x50080200, // 0002 LDBOOL R2 1 0
- 0x7C000400, // 0003 CALL R0 2
- 0xB8020200, // 0004 GETNGBL R0 K1
- 0x8C000102, // 0005 GETMET R0 R0 K2
- 0x58080003, // 0006 LDCONST R2 K3
- 0x580C0004, // 0007 LDCONST R3 K4
- 0x7C000600, // 0008 CALL R0 3
- 0x80000000, // 0009 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(wifi),
- /* K2 */ be_nested_str_weak(up),
- /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
- /* K4 */ be_nested_str_weak(add_rule),
- /* K5 */ be_nested_str_weak(Wifi_X23Connected),
- /* K6 */ be_nested_str_weak(matter_mdns_host),
- /* K7 */ be_nested_str_weak(eth),
- /* K8 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_mdns_announce_hostnames),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x94040302, // 0003 GETIDX R1 R1 K2
- 0x78060003, // 0004 JMPF R1 #0009
- 0x8C040103, // 0005 GETMET R1 R0 K3
- 0x500C0000, // 0006 LDBOOL R3 0 0
- 0x7C040400, // 0007 CALL R1 2
- 0x70020005, // 0008 JMP #000F
- 0xB8060000, // 0009 GETNGBL R1 K0
- 0x8C040304, // 000A GETMET R1 R1 K4
- 0x580C0005, // 000B LDCONST R3 K5
- 0x84100000, // 000C CLOSURE R4 P0
- 0x58140006, // 000D LDCONST R5 K6
- 0x7C040800, // 000E CALL R1 4
- 0xB8060000, // 000F GETNGBL R1 K0
- 0x8C040307, // 0010 GETMET R1 R1 K7
- 0x7C040200, // 0011 CALL R1 1
- 0x94040302, // 0012 GETIDX R1 R1 K2
- 0x78060003, // 0013 JMPF R1 #0018
- 0x8C040103, // 0014 GETMET R1 R0 K3
- 0x500C0200, // 0015 LDBOOL R3 1 0
- 0x7C040400, // 0016 CALL R1 2
- 0x70020005, // 0017 JMP #001E
- 0xB8060000, // 0018 GETNGBL R1 K0
- 0x8C040304, // 0019 GETMET R1 R1 K4
- 0x580C0008, // 001A LDCONST R3 K8
- 0x84100001, // 001B CLOSURE R4 P1
- 0x58140006, // 001C LDCONST R5 K6
- 0x7C040800, // 001D CALL R1 4
- 0xA0000000, // 001E CLOSE R0
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: _start_udp
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__start_udp, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 8, /* nstack */
- 3, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(msg_received),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x680C0000, // 0000 GETUPV R3 U0
- 0x8C0C0700, // 0001 GETMET R3 R3 K0
- 0x5C140000, // 0002 MOVE R5 R0
- 0x5C180200, // 0003 MOVE R6 R1
- 0x5C1C0400, // 0004 MOVE R7 R2
- 0x7C0C0800, // 0005 CALL R3 4
- 0x80040600, // 0006 RET 1 R3
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(log),
- /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
- /* K3 */ be_const_int(2),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(UDPServer),
- /* K6 */ be_nested_str_weak(),
- /* K7 */ be_nested_str_weak(start),
- }),
- be_str_weak(_start_udp),
- &be_const_str_solidified,
- ( &(const binstruction[27]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x780A0000, // 0001 JMPF R2 #0003
- 0x80000400, // 0002 RET 0
- 0x4C080000, // 0003 LDNIL R2
- 0x1C080202, // 0004 EQ R2 R1 R2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x540615A3, // 0006 LDINT R1 5540
- 0xB80A0200, // 0007 GETNGBL R2 K1
- 0x600C0008, // 0008 GETGBL R3 G8
- 0x5C100200, // 0009 MOVE R4 R1
- 0x7C0C0200, // 000A CALL R3 1
- 0x000E0403, // 000B ADD R3 K2 R3
- 0x58100003, // 000C LDCONST R4 K3
- 0x7C080400, // 000D CALL R2 2
- 0xB80A0800, // 000E GETNGBL R2 K4
- 0x8C080505, // 000F GETMET R2 R2 K5
- 0x5C100000, // 0010 MOVE R4 R0
- 0x58140006, // 0011 LDCONST R5 K6
- 0x5C180200, // 0012 MOVE R6 R1
- 0x7C080800, // 0013 CALL R2 4
- 0x90020002, // 0014 SETMBR R0 K0 R2
- 0x88080100, // 0015 GETMBR R2 R0 K0
- 0x8C080507, // 0016 GETMET R2 R2 K7
- 0x84100000, // 0017 CLOSURE R4 P0
- 0x7C080400, // 0018 CALL R2 2
- 0xA0000000, // 0019 CLOSE R0
- 0x80000000, // 001A RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: signal_endpoints_changed
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(attribute_updated),
- /* K1 */ be_const_int(0),
- /* K2 */ be_const_int(3),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- }),
- be_str_weak(signal_endpoints_changed),
- &be_const_str_solidified,
- ( &(const binstruction[14]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x580C0001, // 0001 LDCONST R3 K1
- 0x5412001C, // 0002 LDINT R4 29
- 0x58140002, // 0003 LDCONST R5 K2
- 0x50180000, // 0004 LDBOOL R6 0 0
- 0x7C040A00, // 0005 CALL R1 5
- 0x8C040100, // 0006 GETMET R1 R0 K0
- 0xB80E0600, // 0007 GETNGBL R3 K3
- 0x880C0704, // 0008 GETMBR R3 R3 K4
- 0x5412001C, // 0009 LDINT R4 29
- 0x58140002, // 000A LDCONST R5 K2
- 0x50180000, // 000B LDBOOL R6 0 0
- 0x7C040A00, // 000C CALL R1 5
- 0x80000000, // 000D RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: sort_distinct
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_sort_distinct, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_const_int(1),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(remove),
- }),
- be_str_weak(sort_distinct),
- &be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080010, // 0001 GETGBL R2 G16
- 0x600C000C, // 0002 GETGBL R3 G12
- 0x5C100000, // 0003 MOVE R4 R0
- 0x7C0C0200, // 0004 CALL R3 1
- 0x040C0701, // 0005 SUB R3 R3 K1
- 0x400E0203, // 0006 CONNECT R3 K1 R3
- 0x7C080200, // 0007 CALL R2 1
- 0xA8020010, // 0008 EXBLK 0 #001A
- 0x5C0C0400, // 0009 MOVE R3 R2
- 0x7C0C0000, // 000A CALL R3 0
- 0x94100003, // 000B GETIDX R4 R0 R3
- 0x5C140600, // 000C MOVE R5 R3
- 0x24180B02, // 000D GT R6 R5 K2
- 0x781A0008, // 000E JMPF R6 #0018
- 0x04180B01, // 000F SUB R6 R5 K1
- 0x94180006, // 0010 GETIDX R6 R0 R6
- 0x24180C04, // 0011 GT R6 R6 R4
- 0x781A0004, // 0012 JMPF R6 #0018
- 0x04180B01, // 0013 SUB R6 R5 K1
- 0x94180006, // 0014 GETIDX R6 R0 R6
- 0x98000A06, // 0015 SETIDX R0 R5 R6
- 0x04140B01, // 0016 SUB R5 R5 K1
- 0x7001FFF4, // 0017 JMP #000D
- 0x98000A04, // 0018 SETIDX R0 R5 R4
- 0x7001FFEE, // 0019 JMP #0009
- 0x58080003, // 001A LDCONST R2 K3
- 0xAC080200, // 001B CATCH R2 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x58080001, // 001D LDCONST R2 K1
- 0x600C000C, // 001E GETGBL R3 G12
- 0x5C100000, // 001F MOVE R4 R0
- 0x7C0C0200, // 0020 CALL R3 1
- 0x180C0701, // 0021 LE R3 R3 K1
- 0x780E0000, // 0022 JMPF R3 #0024
- 0x80040000, // 0023 RET 1 R0
- 0x940C0102, // 0024 GETIDX R3 R0 K2
- 0x6010000C, // 0025 GETGBL R4 G12
- 0x5C140000, // 0026 MOVE R5 R0
- 0x7C100200, // 0027 CALL R4 1
- 0x14100404, // 0028 LT R4 R2 R4
- 0x78120009, // 0029 JMPF R4 #0034
- 0x94100002, // 002A GETIDX R4 R0 R2
- 0x1C100803, // 002B EQ R4 R4 R3
- 0x78120003, // 002C JMPF R4 #0031
- 0x8C100104, // 002D GETMET R4 R0 K4
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x70020001, // 0030 JMP #0033
- 0x940C0002, // 0031 GETIDX R3 R0 R2
- 0x00080501, // 0032 ADD R2 R2 K1
- 0x7001FFF0, // 0033 JMP #0025
- 0x80040000, // 0034 RET 1 R0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_remove_op_discovery_all_fabrics
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
- be_nested_proto(
- 6, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(mdns_remove_op_discovery_all_fabrics),
- &be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: received_ack
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_received_ack, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(udp_server),
- /* K1 */ be_nested_str_weak(received_ack),
- }),
- be_str_weak(received_ack),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x80040400, // 0004 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: resolve_attribute_read_solo
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
- be_nested_proto(
- 10, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[11]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
- /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
- /* K4 */ be_nested_str_weak(status),
- /* K5 */ be_nested_str_weak(matter),
- /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
- /* K7 */ be_nested_str_weak(contains_cluster),
- /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
- /* K9 */ be_nested_str_weak(contains_attribute),
- /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
- }),
- be_str_weak(resolve_attribute_read_solo),
- &be_const_str_solidified,
- ( &(const binstruction[47]) { /* code */
- 0x88080300, // 0000 GETMBR R2 R1 K0
- 0x880C0301, // 0001 GETMBR R3 R1 K1
- 0x88100302, // 0002 GETMBR R4 R1 K2
- 0x4C140000, // 0003 LDNIL R5
- 0x1C140405, // 0004 EQ R5 R2 R5
- 0x74160005, // 0005 JMPT R5 #000C
- 0x4C140000, // 0006 LDNIL R5
- 0x1C140605, // 0007 EQ R5 R3 R5
- 0x74160002, // 0008 JMPT R5 #000C
- 0x4C140000, // 0009 LDNIL R5
- 0x1C140805, // 000A EQ R5 R4 R5
- 0x78160001, // 000B JMPF R5 #000E
- 0x4C140000, // 000C LDNIL R5
- 0x80040A00, // 000D RET 1 R5
- 0x8C140103, // 000E GETMET R5 R0 K3
- 0x5C1C0400, // 000F MOVE R7 R2
- 0x7C140400, // 0010 CALL R5 2
- 0x4C180000, // 0011 LDNIL R6
- 0x1C180A06, // 0012 EQ R6 R5 R6
- 0x781A0005, // 0013 JMPF R6 #001A
- 0xB81A0A00, // 0014 GETNGBL R6 K5
- 0x88180D06, // 0015 GETMBR R6 R6 K6
- 0x90060806, // 0016 SETMBR R1 K4 R6
- 0x4C180000, // 0017 LDNIL R6
- 0x80040C00, // 0018 RET 1 R6
- 0x70020013, // 0019 JMP #002E
- 0x8C180B07, // 001A GETMET R6 R5 K7
- 0x5C200600, // 001B MOVE R8 R3
- 0x7C180400, // 001C CALL R6 2
- 0x741A0005, // 001D JMPT R6 #0024
- 0xB81A0A00, // 001E GETNGBL R6 K5
- 0x88180D08, // 001F GETMBR R6 R6 K8
- 0x90060806, // 0020 SETMBR R1 K4 R6
- 0x4C180000, // 0021 LDNIL R6
- 0x80040C00, // 0022 RET 1 R6
- 0x70020009, // 0023 JMP #002E
- 0x8C180B09, // 0024 GETMET R6 R5 K9
- 0x5C200600, // 0025 MOVE R8 R3
- 0x5C240800, // 0026 MOVE R9 R4
- 0x7C180600, // 0027 CALL R6 3
- 0x741A0004, // 0028 JMPT R6 #002E
- 0xB81A0A00, // 0029 GETNGBL R6 K5
- 0x88180D0A, // 002A GETMBR R6 R6 K10
- 0x90060806, // 002B SETMBR R1 K4 R6
- 0x4C180000, // 002C LDNIL R6
- 0x80040C00, // 002D RET 1 R6
- 0x80040A00, // 002E RET 1 R5
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: register_http_remote
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_register_http_remote, /* name */
- be_nested_proto(
- 9, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(http_remotes),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(get_timeout),
- /* K3 */ be_nested_str_weak(set_timeout),
- /* K4 */ be_nested_str_weak(matter),
- /* K5 */ be_nested_str_weak(HTTP_remote),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(set_info),
- }),
- be_str_weak(register_http_remote),
- &be_const_str_solidified,
- ( &(const binstruction[42]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x4C100000, // 0001 LDNIL R4
- 0x1C0C0604, // 0002 EQ R3 R3 R4
- 0x780E0002, // 0003 JMPF R3 #0007
- 0x600C0013, // 0004 GETGBL R3 G19
- 0x7C0C0000, // 0005 CALL R3 0
- 0x90020003, // 0006 SETMBR R0 K0 R3
- 0x4C0C0000, // 0007 LDNIL R3
- 0x88100100, // 0008 GETMBR R4 R0 K0
- 0x8C100901, // 0009 GETMET R4 R4 K1
- 0x5C180200, // 000A MOVE R6 R1
- 0x7C100400, // 000B CALL R4 2
- 0x78120009, // 000C JMPF R4 #0017
- 0x88100100, // 000D GETMBR R4 R0 K0
- 0x940C0801, // 000E GETIDX R3 R4 R1
- 0x8C140702, // 000F GETMET R5 R3 K2
- 0x7C140200, // 0010 CALL R5 1
- 0x14140405, // 0011 LT R5 R2 R5
- 0x78160002, // 0012 JMPF R5 #0016
- 0x8C140703, // 0013 GETMET R5 R3 K3
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x7C140400, // 0015 CALL R5 2
- 0x70020011, // 0016 JMP #0029
- 0xB8120800, // 0017 GETNGBL R4 K4
- 0x8C100905, // 0018 GETMET R4 R4 K5
- 0x5C180000, // 0019 MOVE R6 R0
- 0x5C1C0200, // 001A MOVE R7 R1
- 0x5C200400, // 001B MOVE R8 R2
- 0x7C100800, // 001C CALL R4 4
- 0x5C0C0800, // 001D MOVE R3 R4
- 0x88100106, // 001E GETMBR R4 R0 K6
- 0x8C100901, // 001F GETMET R4 R4 K1
- 0x5C180200, // 0020 MOVE R6 R1
- 0x7C100400, // 0021 CALL R4 2
- 0x78120003, // 0022 JMPF R4 #0027
- 0x8C100707, // 0023 GETMET R4 R3 K7
- 0x88180106, // 0024 GETMBR R6 R0 K6
- 0x94180C01, // 0025 GETIDX R6 R6 R1
- 0x7C100400, // 0026 CALL R4 2
- 0x88100100, // 0027 GETMBR R4 R0 K0
- 0x98100203, // 0028 SETIDX R4 R1 R3
- 0x80040600, // 0029 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: bridge_add_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
- be_nested_proto(
- 16, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[20]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(log),
- /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
- /* K4 */ be_nested_str_weak(_X27_X20skipping),
- /* K5 */ be_const_int(3),
- /* K6 */ be_nested_str_weak(next_ep),
- /* K7 */ be_nested_str_weak(plugins),
- /* K8 */ be_nested_str_weak(push),
- /* K9 */ be_nested_str_weak(type),
- /* K10 */ be_nested_str_weak(keys),
- /* K11 */ be_nested_str_weak(stop_iteration),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
- /* K13 */ be_nested_str_weak(conf_to_log),
- /* K14 */ be_const_int(2),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_persist),
- /* K17 */ be_const_int(1),
- /* K18 */ be_nested_str_weak(save_param),
- /* K19 */ be_nested_str_weak(signal_endpoints_changed),
- }),
- be_str_weak(bridge_add_endpoint),
- &be_const_str_solidified,
- ( &(const binstruction[68]) { /* code */
- 0x880C0100, // 0000 GETMBR R3 R0 K0
- 0x8C0C0701, // 0001 GETMET R3 R3 K1
- 0x5C140200, // 0002 MOVE R5 R1
- 0x7C0C0400, // 0003 CALL R3 2
- 0x4C100000, // 0004 LDNIL R4
- 0x1C100604, // 0005 EQ R4 R3 R4
- 0x78120008, // 0006 JMPF R4 #0010
- 0xB8120400, // 0007 GETNGBL R4 K2
- 0x60140008, // 0008 GETGBL R5 G8
- 0x5C180200, // 0009 MOVE R6 R1
- 0x7C140200, // 000A CALL R5 1
- 0x00160605, // 000B ADD R5 K3 R5
- 0x00140B04, // 000C ADD R5 R5 K4
- 0x58180005, // 000D LDCONST R6 K5
- 0x7C100400, // 000E CALL R4 2
- 0x80000800, // 000F RET 0
- 0x88100106, // 0010 GETMBR R4 R0 K6
- 0x60140008, // 0011 GETGBL R5 G8
- 0x5C180800, // 0012 MOVE R6 R4
- 0x7C140200, // 0013 CALL R5 1
- 0x5C180600, // 0014 MOVE R6 R3
- 0x5C1C0000, // 0015 MOVE R7 R0
- 0x5C200800, // 0016 MOVE R8 R4
- 0x5C240400, // 0017 MOVE R9 R2
- 0x7C180600, // 0018 CALL R6 3
- 0x881C0107, // 0019 GETMBR R7 R0 K7
- 0x8C1C0F08, // 001A GETMET R7 R7 K8
- 0x5C240C00, // 001B MOVE R9 R6
- 0x7C1C0400, // 001C CALL R7 2
- 0x601C0013, // 001D GETGBL R7 G19
- 0x7C1C0000, // 001E CALL R7 0
- 0x981E1201, // 001F SETIDX R7 K9 R1
- 0x60200010, // 0020 GETGBL R8 G16
- 0x8C24050A, // 0021 GETMET R9 R2 K10
- 0x7C240200, // 0022 CALL R9 1
- 0x7C200200, // 0023 CALL R8 1
- 0xA8020004, // 0024 EXBLK 0 #002A
- 0x5C241000, // 0025 MOVE R9 R8
- 0x7C240000, // 0026 CALL R9 0
- 0x94280409, // 0027 GETIDX R10 R2 R9
- 0x981C120A, // 0028 SETIDX R7 R9 R10
- 0x7001FFFA, // 0029 JMP #0025
- 0x5820000B, // 002A LDCONST R8 K11
- 0xAC200200, // 002B CATCH R8 1 0
- 0xB0080000, // 002C RAISE 2 R0 R0
- 0xB8220400, // 002D GETNGBL R8 K2
- 0x60240018, // 002E GETGBL R9 G24
- 0x5828000C, // 002F LDCONST R10 K12
- 0x5C2C0800, // 0030 MOVE R11 R4
- 0x5C300200, // 0031 MOVE R12 R1
- 0x8C34010D, // 0032 GETMET R13 R0 K13
- 0x5C3C0400, // 0033 MOVE R15 R2
- 0x7C340400, // 0034 CALL R13 2
- 0x7C240800, // 0035 CALL R9 4
- 0x5828000E, // 0036 LDCONST R10 K14
- 0x7C200400, // 0037 CALL R8 2
- 0x8820010F, // 0038 GETMBR R8 R0 K15
- 0x98200A07, // 0039 SETIDX R8 R5 R7
- 0x50200200, // 003A LDBOOL R8 1 0
- 0x90022008, // 003B SETMBR R0 K16 R8
- 0x88200106, // 003C GETMBR R8 R0 K6
- 0x00201111, // 003D ADD R8 R8 K17
- 0x90020C08, // 003E SETMBR R0 K6 R8
- 0x8C200112, // 003F GETMET R8 R0 K18
- 0x7C200200, // 0040 CALL R8 1
- 0x8C200113, // 0041 GETMET R8 R0 K19
- 0x7C200200, // 0042 CALL R8 1
- 0x80040800, // 0043 RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_root_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
+be_local_closure(class_Matter_Device_save_before_restart, /* name */
be_nested_proto(
3, /* nstack */
1, /* argc */
@@ -1832,23 +430,17 @@ be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
+ /* K0 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K1 */ be_nested_str_weak(mdns_remove_op_discovery_all_fabrics),
}),
- be_str_weak(is_root_commissioning_open),
+ be_str_weak(save_before_restart),
&be_const_str_solidified,
- ( &(const binstruction[11]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x78060003, // 0003 JMPF R1 #0008
- 0x88040101, // 0004 GETMBR R1 R0 K1
- 0x4C080000, // 0005 LDNIL R2
- 0x1C040202, // 0006 EQ R1 R1 R2
- 0x74060000, // 0007 JMPT R1 #0009
- 0x50040001, // 0008 LDBOOL R1 0 1
- 0x50040200, // 0009 LDBOOL R1 1 0
- 0x80040200, // 000A RET 1 R1
+ ( &(const binstruction[ 5]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x8C040101, // 0002 GETMET R1 R0 K1
+ 0x7C040200, // 0003 CALL R1 1
+ 0x80000000, // 0004 RET 0
})
)
);
@@ -1856,12 +448,12 @@ be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
/********************************************************************
-** Solidified function: load_param
+** Solidified function: every_second
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_load_param, /* name */
+be_local_closure(class_Matter_Device_every_second, /* name */
be_nested_proto(
- 12, /* nstack */
+ 4, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -1869,180 +461,39 @@ be_local_closure(class_Matter_Device_load_param, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[36]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(FILENAME),
- /* K2 */ be_nested_str_weak(read),
- /* K3 */ be_nested_str_weak(close),
- /* K4 */ be_nested_str_weak(json),
- /* K5 */ be_nested_str_weak(load),
- /* K6 */ be_nested_str_weak(root_discriminator),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_nested_str_weak(distinguish),
- /* K9 */ be_nested_str_weak(root_passcode),
- /* K10 */ be_nested_str_weak(passcode),
- /* K11 */ be_nested_str_weak(ipv4only),
- /* K12 */ be_nested_str_weak(disable_bridge_mode),
- /* K13 */ be_nested_str_weak(next_ep),
- /* K14 */ be_nested_str_weak(nextep),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(config),
- /* K17 */ be_nested_str_weak(debug),
- /* K18 */ be_nested_str_weak(log),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(adjust_next_ep),
- /* K22 */ be_nested_str_weak(check_config_ep),
- /* K23 */ be_nested_str_weak(plugins_persist),
- /* K24 */ be_nested_str_weak(plugins_config_remotes),
- /* K25 */ be_nested_str_weak(remotes),
- /* K26 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
- /* K27 */ be_nested_str_weak(io_error),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
- /* K29 */ be_nested_str_weak(_X7C),
- /* K30 */ be_const_int(2),
- /* K31 */ be_nested_str_weak(random),
- /* K32 */ be_nested_str_weak(get),
- /* K33 */ be_const_int(0),
- /* K34 */ be_nested_str_weak(generate_random_passcode),
- /* K35 */ be_nested_str_weak(save_param),
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(every_second),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(events),
+ /* K4 */ be_nested_str_weak(commissioning_open),
+ /* K5 */ be_nested_str_weak(tasmota),
+ /* K6 */ be_nested_str_weak(time_reached),
}),
- be_str_weak(load_param),
+ be_str_weak(every_second),
&be_const_str_solidified,
- ( &(const binstruction[133]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x50080000, // 0001 LDBOOL R2 0 0
- 0xA8020054, // 0002 EXBLK 0 #0058
- 0x600C0011, // 0003 GETGBL R3 G17
- 0x88100101, // 0004 GETMBR R4 R0 K1
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C100702, // 0006 GETMET R4 R3 K2
- 0x7C100200, // 0007 CALL R4 1
- 0x8C140703, // 0008 GETMET R5 R3 K3
- 0x7C140200, // 0009 CALL R5 1
- 0xA4160800, // 000A IMPORT R5 K4
- 0x8C180B05, // 000B GETMET R6 R5 K5
- 0x5C200800, // 000C MOVE R8 R4
- 0x7C180400, // 000D CALL R6 2
- 0x8C1C0D07, // 000E GETMET R7 R6 K7
- 0x58240008, // 000F LDCONST R9 K8
- 0x88280106, // 0010 GETMBR R10 R0 K6
- 0x7C1C0600, // 0011 CALL R7 3
- 0x90020C07, // 0012 SETMBR R0 K6 R7
- 0x8C1C0D07, // 0013 GETMET R7 R6 K7
- 0x5824000A, // 0014 LDCONST R9 K10
- 0x88280109, // 0015 GETMBR R10 R0 K9
- 0x7C1C0600, // 0016 CALL R7 3
- 0x90021207, // 0017 SETMBR R0 K9 R7
- 0x601C0017, // 0018 GETGBL R7 G23
- 0x8C200D07, // 0019 GETMET R8 R6 K7
- 0x5828000B, // 001A LDCONST R10 K11
- 0x502C0000, // 001B LDBOOL R11 0 0
- 0x7C200600, // 001C CALL R8 3
- 0x7C1C0200, // 001D CALL R7 1
- 0x90021607, // 001E SETMBR R0 K11 R7
- 0x601C0017, // 001F GETGBL R7 G23
- 0x8C200D07, // 0020 GETMET R8 R6 K7
- 0x5828000C, // 0021 LDCONST R10 K12
- 0x502C0000, // 0022 LDBOOL R11 0 0
- 0x7C200600, // 0023 CALL R8 3
- 0x7C1C0200, // 0024 CALL R7 1
- 0x90021807, // 0025 SETMBR R0 K12 R7
- 0x8C1C0D07, // 0026 GETMET R7 R6 K7
- 0x5824000E, // 0027 LDCONST R9 K14
- 0x8828010D, // 0028 GETMBR R10 R0 K13
- 0x7C1C0600, // 0029 CALL R7 3
- 0x90021A07, // 002A SETMBR R0 K13 R7
- 0x8C1C0D07, // 002B GETMET R7 R6 K7
- 0x58240010, // 002C LDCONST R9 K16
- 0x7C1C0400, // 002D CALL R7 2
- 0x90021E07, // 002E SETMBR R0 K15 R7
- 0x601C0017, // 002F GETGBL R7 G23
- 0x8C200D07, // 0030 GETMET R8 R6 K7
- 0x58280011, // 0031 LDCONST R10 K17
- 0x7C200400, // 0032 CALL R8 2
- 0x7C1C0200, // 0033 CALL R7 1
- 0x90022207, // 0034 SETMBR R0 K17 R7
- 0x881C010F, // 0035 GETMBR R7 R0 K15
- 0x4C200000, // 0036 LDNIL R8
- 0x201C0E08, // 0037 NE R7 R7 R8
- 0x781E000D, // 0038 JMPF R7 #0047
- 0xB81E2400, // 0039 GETNGBL R7 K18
- 0x60200018, // 003A GETGBL R8 G24
- 0x58240013, // 003B LDCONST R9 K19
- 0x8828010F, // 003C GETMBR R10 R0 K15
- 0x7C200400, // 003D CALL R8 2
- 0x58240014, // 003E LDCONST R9 K20
- 0x7C1C0400, // 003F CALL R7 2
- 0x8C1C0115, // 0040 GETMET R7 R0 K21
- 0x7C1C0200, // 0041 CALL R7 1
- 0x8C1C0116, // 0042 GETMET R7 R0 K22
- 0x7C1C0200, // 0043 CALL R7 1
- 0x5C080E00, // 0044 MOVE R2 R7
- 0x501C0200, // 0045 LDBOOL R7 1 0
- 0x90022E07, // 0046 SETMBR R0 K23 R7
- 0x8C1C0D07, // 0047 GETMET R7 R6 K7
- 0x58240019, // 0048 LDCONST R9 K25
- 0x60280013, // 0049 GETGBL R10 G19
- 0x7C280000, // 004A CALL R10 0
- 0x7C1C0600, // 004B CALL R7 3
- 0x90023007, // 004C SETMBR R0 K24 R7
- 0x881C0118, // 004D GETMBR R7 R0 K24
- 0x781E0006, // 004E JMPF R7 #0056
- 0xB81E2400, // 004F GETNGBL R7 K18
- 0x60200008, // 0050 GETGBL R8 G8
- 0x88240118, // 0051 GETMBR R9 R0 K24
- 0x7C200200, // 0052 CALL R8 1
- 0x00223408, // 0053 ADD R8 K26 R8
- 0x58240014, // 0054 LDCONST R9 K20
- 0x7C1C0400, // 0055 CALL R7 2
- 0xA8040001, // 0056 EXBLK 1 1
- 0x70020011, // 0057 JMP #006A
- 0xAC0C0002, // 0058 CATCH R3 0 2
- 0x7002000E, // 0059 JMP #0069
- 0x2014071B, // 005A NE R5 R3 K27
- 0x7816000B, // 005B JMPF R5 #0068
- 0xB8162400, // 005C GETNGBL R5 K18
- 0x60180008, // 005D GETGBL R6 G8
- 0x5C1C0600, // 005E MOVE R7 R3
- 0x7C180200, // 005F CALL R6 1
- 0x001A3806, // 0060 ADD R6 K28 R6
- 0x00180D1D, // 0061 ADD R6 R6 K29
- 0x601C0008, // 0062 GETGBL R7 G8
- 0x5C200800, // 0063 MOVE R8 R4
- 0x7C1C0200, // 0064 CALL R7 1
- 0x00180C07, // 0065 ADD R6 R6 R7
- 0x581C001E, // 0066 LDCONST R7 K30
- 0x7C140400, // 0067 CALL R5 2
- 0x70020000, // 0068 JMP #006A
- 0xB0080000, // 0069 RAISE 2 R0 R0
- 0x880C0106, // 006A GETMBR R3 R0 K6
- 0x4C100000, // 006B LDNIL R4
- 0x1C0C0604, // 006C EQ R3 R3 R4
- 0x780E000A, // 006D JMPF R3 #0079
- 0x8C0C031F, // 006E GETMET R3 R1 K31
- 0x5814001E, // 006F LDCONST R5 K30
- 0x7C0C0400, // 0070 CALL R3 2
- 0x8C0C0720, // 0071 GETMET R3 R3 K32
- 0x58140021, // 0072 LDCONST R5 K33
- 0x5818001E, // 0073 LDCONST R6 K30
- 0x7C0C0600, // 0074 CALL R3 3
- 0x54120FFE, // 0075 LDINT R4 4095
- 0x2C0C0604, // 0076 AND R3 R3 R4
- 0x90020C03, // 0077 SETMBR R0 K6 R3
- 0x50080200, // 0078 LDBOOL R2 1 0
- 0x880C0109, // 0079 GETMBR R3 R0 K9
- 0x4C100000, // 007A LDNIL R4
- 0x1C0C0604, // 007B EQ R3 R3 R4
- 0x780E0003, // 007C JMPF R3 #0081
- 0x8C0C0122, // 007D GETMET R3 R0 K34
- 0x7C0C0200, // 007E CALL R3 1
- 0x90021203, // 007F SETMBR R0 K9 R3
- 0x50080200, // 0080 LDBOOL R2 1 0
- 0x780A0001, // 0081 JMPF R2 #0084
- 0x8C0C0123, // 0082 GETMET R3 R0 K35
- 0x7C0C0200, // 0083 CALL R3 1
- 0x80000000, // 0084 RET 0
+ ( &(const binstruction[21]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040301, // 0004 GETMET R1 R1 K1
+ 0x7C040200, // 0005 CALL R1 1
+ 0x88040103, // 0006 GETMBR R1 R0 K3
+ 0x8C040301, // 0007 GETMET R1 R1 K1
+ 0x7C040200, // 0008 CALL R1 1
+ 0x88040104, // 0009 GETMBR R1 R0 K4
+ 0x4C080000, // 000A LDNIL R2
+ 0x20040202, // 000B NE R1 R1 R2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0xB8060A00, // 000D GETNGBL R1 K5
+ 0x8C040306, // 000E GETMET R1 R1 K6
+ 0x880C0104, // 000F GETMBR R3 R0 K4
+ 0x7C040400, // 0010 CALL R1 2
+ 0x78060001, // 0011 JMPF R1 #0014
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90020801, // 0013 SETMBR R0 K4 R1
+ 0x80000000, // 0014 RET 0
})
)
);
@@ -2050,12 +501,130 @@ be_local_closure(class_Matter_Device_load_param, /* name */
/********************************************************************
-** Solidified function: start_commissioning_complete
+** Solidified function: stop
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
+be_local_closure(class_Matter_Device_stop, /* name */
be_nested_proto(
- 10, /* nstack */
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(remove_driver),
+ /* K2 */ be_nested_str_weak(udp_server),
+ /* K3 */ be_nested_str_weak(stop),
+ }),
+ be_str_weak(stop),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x5C0C0000, // 0002 MOVE R3 R0
+ 0x7C040400, // 0003 CALL R1 2
+ 0x88040102, // 0004 GETMBR R1 R0 K2
+ 0x78060002, // 0005 JMPF R1 #0009
+ 0x88040102, // 0006 GETMBR R1 R0 K2
+ 0x8C040303, // 0007 GETMET R1 R1 K3
+ 0x7C040200, // 0008 CALL R1 1
+ 0x80000000, // 0009 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_250ms
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_250ms, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K1 */ be_const_int(0),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(every_250ms),
+ /* K4 */ be_const_int(1),
+ }),
+ be_str_weak(every_250ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[15]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x58040001, // 0002 LDCONST R1 K1
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x880C0102, // 0004 GETMBR R3 R0 K2
+ 0x7C080200, // 0005 CALL R2 1
+ 0x14080202, // 0006 LT R2 R1 R2
+ 0x780A0005, // 0007 JMPF R2 #000E
+ 0x88080102, // 0008 GETMBR R2 R0 K2
+ 0x94080401, // 0009 GETIDX R2 R2 R1
+ 0x8C080503, // 000A GETMET R2 R2 K3
+ 0x7C080200, // 000B CALL R2 1
+ 0x00040304, // 000C ADD R1 R1 K4
+ 0x7001FFF4, // 000D JMP #0003
+ 0x80000000, // 000E RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_received
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_received, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(message_handler),
+ /* K1 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(msg_received),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88100100, // 0000 GETMBR R4 R0 K0
+ 0x8C100901, // 0001 GETMET R4 R4 K1
+ 0x5C180200, // 0002 MOVE R6 R1
+ 0x5C1C0400, // 0003 MOVE R7 R2
+ 0x5C200600, // 0004 MOVE R8 R3
+ 0x7C100800, // 0005 CALL R4 4
+ 0x80040800, // 0006 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: add_read_sensors_schedule
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_add_read_sensors_schedule, /* name */
+ be_nested_proto(
+ 5, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2063,44 +632,29 @@ be_local_closure(class_Matter_Device_start_commissioning_complete, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[10]) { /* constants */
- /* K0 */ be_nested_str_weak(get_fabric),
- /* K1 */ be_nested_str_weak(get_fabric_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(tohex),
- /* K5 */ be_nested_str_weak(get_admin_vendor_name),
- /* K6 */ be_nested_str_weak(log),
- /* K7 */ be_nested_str_weak(MTR_X3A_X20_X2D_X2D_X2D_X20Commissioning_X20complete_X20for_X20Fabric_X20_X27_X25s_X27_X20_X28Vendor_X20_X25s_X29_X20_X2D_X2D_X2D),
- /* K8 */ be_const_int(2),
- /* K9 */ be_nested_str_weak(stop_basic_commissioning),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_nested_str_weak(matter),
+ /* K3 */ be_nested_str_weak(jitter),
}),
- be_str_weak(start_commissioning_complete),
+ be_str_weak(add_read_sensors_schedule),
&be_const_str_solidified,
- ( &(const binstruction[23]) { /* code */
- 0x8C080300, // 0000 GETMET R2 R1 K0
- 0x7C080200, // 0001 CALL R2 1
- 0x8C0C0501, // 0002 GETMET R3 R2 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C100505, // 000A GETMET R4 R2 K5
- 0x7C100200, // 000B CALL R4 1
- 0xB8160C00, // 000C GETNGBL R5 K6
- 0x60180018, // 000D GETGBL R6 G24
- 0x581C0007, // 000E LDCONST R7 K7
- 0x5C200600, // 000F MOVE R8 R3
- 0x5C240800, // 0010 MOVE R9 R4
- 0x7C180600, // 0011 CALL R6 3
- 0x581C0008, // 0012 LDCONST R7 K8
- 0x7C140400, // 0013 CALL R5 2
- 0x8C140109, // 0014 GETMET R5 R0 K9
- 0x7C140200, // 0015 CALL R5 1
- 0x80000000, // 0016 RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x4C0C0000, // 0001 LDNIL R3
+ 0x1C080403, // 0002 EQ R2 R2 R3
+ 0x740A0002, // 0003 JMPT R2 #0007
+ 0x88080100, // 0004 GETMBR R2 R0 K0
+ 0x24080401, // 0005 GT R2 R2 R1
+ 0x780A0005, // 0006 JMPF R2 #000D
+ 0x90020001, // 0007 SETMBR R0 K0 R1
+ 0xB80A0400, // 0008 GETNGBL R2 K2
+ 0x8C080503, // 0009 GETMET R2 R2 K3
+ 0x5C100200, // 000A MOVE R4 R1
+ 0x7C080400, // 000B CALL R2 2
+ 0x90020202, // 000C SETMBR R0 K1 R2
+ 0x80000000, // 000D RET 0
})
)
);
@@ -2160,80 +714,265 @@ be_local_closure(class_Matter_Device_attribute_updated, /* name */
/********************************************************************
-** Solidified function: k2l
+** Solidified function: invoke_request
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l, /* name */
+be_local_closure(class_Matter_Device_invoke_request, /* name */
be_nested_proto(
- 8, /* nstack */
+ 12, /* nstack */
+ 4, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(endpoint),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(invoke_request),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_nested_str_weak(status),
+ /* K6 */ be_nested_str_weak(matter),
+ /* K7 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ }),
+ be_str_weak(invoke_request),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x58100000, // 0000 LDCONST R4 K0
+ 0x88140701, // 0001 GETMBR R5 R3 K1
+ 0x6018000C, // 0002 GETGBL R6 G12
+ 0x881C0102, // 0003 GETMBR R7 R0 K2
+ 0x7C180200, // 0004 CALL R6 1
+ 0x14180806, // 0005 LT R6 R4 R6
+ 0x781A000C, // 0006 JMPF R6 #0014
+ 0x88180102, // 0007 GETMBR R6 R0 K2
+ 0x94180C04, // 0008 GETIDX R6 R6 R4
+ 0x881C0D01, // 0009 GETMBR R7 R6 K1
+ 0x1C1C0E05, // 000A EQ R7 R7 R5
+ 0x781E0005, // 000B JMPF R7 #0012
+ 0x8C1C0D03, // 000C GETMET R7 R6 K3
+ 0x5C240200, // 000D MOVE R9 R1
+ 0x5C280400, // 000E MOVE R10 R2
+ 0x5C2C0600, // 000F MOVE R11 R3
+ 0x7C1C0800, // 0010 CALL R7 4
+ 0x80040E00, // 0011 RET 1 R7
+ 0x00100904, // 0012 ADD R4 R4 K4
+ 0x7001FFED, // 0013 JMP #0002
+ 0xB81A0C00, // 0014 GETNGBL R6 K6
+ 0x88180D07, // 0015 GETMBR R6 R6 K7
+ 0x900E0A06, // 0016 SETMBR R3 K5 R6
+ 0x80000000, // 0017 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_device
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_device, /* name */
+ be_nested_proto(
+ 5, /* nstack */
1, /* argc */
- 4, /* varg */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[15]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(plugins_config),
+ /* K5 */ be_nested_str_weak(autoconf_device_map),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(adjust_next_ep),
+ /* K8 */ be_nested_str_weak(log),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
+ /* K10 */ be_const_int(3),
+ /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
+ /* K12 */ be_nested_str_weak(sessions),
+ /* K13 */ be_nested_str_weak(count_active_fabrics),
+ /* K14 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(autoconf_device),
+ &be_const_str_solidified,
+ ( &(const binstruction[39]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x6008000C, // 0001 GETGBL R2 G12
+ 0x880C0101, // 0002 GETMBR R3 R0 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x24080502, // 0004 GT R2 R2 K2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x80000400, // 0006 RET 0
+ 0x88080103, // 0007 GETMBR R2 R0 K3
+ 0x740A000E, // 0008 JMPT R2 #0018
+ 0x8C080105, // 0009 GETMET R2 R0 K5
+ 0x7C080200, // 000A CALL R2 1
+ 0x90020802, // 000B SETMBR R0 K4 R2
+ 0x60080013, // 000C GETGBL R2 G19
+ 0x7C080000, // 000D CALL R2 0
+ 0x90020C02, // 000E SETMBR R0 K6 R2
+ 0x8C080107, // 000F GETMET R2 R0 K7
+ 0x7C080200, // 0010 CALL R2 1
+ 0xB80A1000, // 0011 GETNGBL R2 K8
+ 0x600C0008, // 0012 GETGBL R3 G8
+ 0x88100104, // 0013 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0014 CALL R3 1
+ 0x000E1203, // 0015 ADD R3 K9 R3
+ 0x5810000A, // 0016 LDCONST R4 K10
+ 0x7C080400, // 0017 CALL R2 2
+ 0x8C08010B, // 0018 GETMET R2 R0 K11
+ 0x88100104, // 0019 GETMBR R4 R0 K4
+ 0x7C080400, // 001A CALL R2 2
+ 0x88080103, // 001B GETMBR R2 R0 K3
+ 0x740A0008, // 001C JMPT R2 #0026
+ 0x8808010C, // 001D GETMBR R2 R0 K12
+ 0x8C08050D, // 001E GETMET R2 R2 K13
+ 0x7C080200, // 001F CALL R2 1
+ 0x24080502, // 0020 GT R2 R2 K2
+ 0x780A0003, // 0021 JMPF R2 #0026
+ 0x50080200, // 0022 LDBOOL R2 1 0
+ 0x90020602, // 0023 SETMBR R0 K3 R2
+ 0x8C08010E, // 0024 GETMET R2 R0 K14
+ 0x7C080200, // 0025 CALL R2 1
+ 0x80000000, // 0026 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_class_displayname
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(DISPLAY_NAME),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_displayname),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: every_50ms
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_every_50ms, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(tick),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_nested_str_weak(message_handler),
+ /* K3 */ be_nested_str_weak(every_50ms),
+ }),
+ be_str_weak(every_50ms),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x00040301, // 0001 ADD R1 R1 K1
+ 0x90020001, // 0002 SETMBR R0 K0 R1
+ 0x88040102, // 0003 GETMBR R1 R0 K2
+ 0x8C040303, // 0004 GETMET R1 R1 K3
+ 0x7C040200, // 0005 CALL R1 1
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: button_handler
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_button_handler, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(introspect),
+ /* K2 */ be_nested_str_weak(plugins),
+ /* K3 */ be_nested_str_weak(contains),
+ /* K4 */ be_nested_str_weak(button_handler),
+ /* K5 */ be_const_int(1),
}),
- be_str_weak(k2l),
+ be_str_weak(button_handler),
&be_const_str_solidified,
- ( &(const binstruction[50]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020005, // 000B EXBLK 0 #0012
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x7C140400, // 0010 CALL R5 2
- 0x7001FFF9, // 0011 JMP #000C
- 0x580C0003, // 0012 LDCONST R3 K3
- 0xAC0C0200, // 0013 CATCH R3 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x600C0010, // 0015 GETGBL R3 G16
- 0x6010000C, // 0016 GETGBL R4 G12
- 0x5C140400, // 0017 MOVE R5 R2
- 0x7C100200, // 0018 CALL R4 1
- 0x04100904, // 0019 SUB R4 R4 K4
- 0x40120804, // 001A CONNECT R4 K4 R4
- 0x7C0C0200, // 001B CALL R3 1
- 0xA8020010, // 001C EXBLK 0 #002E
- 0x5C100600, // 001D MOVE R4 R3
- 0x7C100000, // 001E CALL R4 0
- 0x94140404, // 001F GETIDX R5 R2 R4
- 0x5C180800, // 0020 MOVE R6 R4
- 0x241C0D05, // 0021 GT R7 R6 K5
- 0x781E0008, // 0022 JMPF R7 #002C
- 0x041C0D04, // 0023 SUB R7 R6 K4
- 0x941C0407, // 0024 GETIDX R7 R2 R7
- 0x241C0E05, // 0025 GT R7 R7 R5
- 0x781E0004, // 0026 JMPF R7 #002C
- 0x041C0D04, // 0027 SUB R7 R6 K4
- 0x941C0407, // 0028 GETIDX R7 R2 R7
- 0x98080C07, // 0029 SETIDX R2 R6 R7
- 0x04180D04, // 002A SUB R6 R6 K4
- 0x7001FFF4, // 002B JMP #0021
- 0x98080C05, // 002C SETIDX R2 R6 R5
- 0x7001FFEE, // 002D JMP #001D
- 0x580C0003, // 002E LDCONST R3 K3
- 0xAC0C0200, // 002F CATCH R3 1 0
- 0xB0080000, // 0030 RAISE 2 R0 R0
- 0x80040400, // 0031 RET 1 R2
+ ( &(const binstruction[25]) { /* code */
+ 0x58140000, // 0000 LDCONST R5 K0
+ 0xA41A0200, // 0001 IMPORT R6 K1
+ 0x601C000C, // 0002 GETGBL R7 G12
+ 0x88200102, // 0003 GETMBR R8 R0 K2
+ 0x7C1C0200, // 0004 CALL R7 1
+ 0x141C0A07, // 0005 LT R7 R5 R7
+ 0x781E0010, // 0006 JMPF R7 #0018
+ 0x881C0102, // 0007 GETMBR R7 R0 K2
+ 0x941C0E05, // 0008 GETIDX R7 R7 R5
+ 0x8C200D03, // 0009 GETMET R8 R6 K3
+ 0x5C280E00, // 000A MOVE R10 R7
+ 0x582C0004, // 000B LDCONST R11 K4
+ 0x7C200600, // 000C CALL R8 3
+ 0x78220007, // 000D JMPF R8 #0016
+ 0x88200102, // 000E GETMBR R8 R0 K2
+ 0x94201005, // 000F GETIDX R8 R8 R5
+ 0x8C201104, // 0010 GETMET R8 R8 K4
+ 0x5C280200, // 0011 MOVE R10 R1
+ 0x5C2C0400, // 0012 MOVE R11 R2
+ 0x5C300600, // 0013 MOVE R12 R3
+ 0x5C340800, // 0014 MOVE R13 R4
+ 0x7C200A00, // 0015 CALL R8 5
+ 0x00140B05, // 0016 ADD R5 R5 K5
+ 0x7001FFE9, // 0017 JMP #0002
+ 0x80000000, // 0018 RET 0
})
)
);
@@ -2371,12 +1110,12 @@ be_local_closure(class_Matter_Device_register_commands, /* name */
/********************************************************************
-** Solidified function: check_config_ep
+** Solidified function: compute_qrcode_content
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_check_config_ep, /* name */
+be_local_closure(class_Matter_Device_compute_qrcode_content, /* name */
be_nested_proto(
- 10, /* nstack */
+ 8, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -2384,102 +1123,63 @@ be_local_closure(class_Matter_Device_check_config_ep, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[14]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(0),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
- /* K7 */ be_const_int(2),
- /* K8 */ be_nested_str_weak(remove),
+ ( &(const bvalue[12]) { /* constants */
+ /* K0 */ be_nested_str_weak(resize),
+ /* K1 */ be_nested_str_weak(setbits),
+ /* K2 */ be_const_int(3),
+ /* K3 */ be_nested_str_weak(VENDOR_ID),
+ /* K4 */ be_nested_str_weak(PRODUCT_ID),
+ /* K5 */ be_nested_str_weak(root_discriminator),
+ /* K6 */ be_nested_str_weak(root_passcode),
+ /* K7 */ be_const_int(134217727),
+ /* K8 */ be_nested_str_weak(MT_X3A),
/* K9 */ be_nested_str_weak(matter),
- /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
- /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
- /* K12 */ be_nested_str_weak(next_ep),
- /* K13 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(Base38),
+ /* K11 */ be_nested_str_weak(encode),
}),
- be_str_weak(check_config_ep),
+ be_str_weak(compute_qrcode_content),
&be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0x50040000, // 0000 LDBOOL R1 0 0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x600C0010, // 0003 GETGBL R3 G16
- 0x88100100, // 0004 GETMBR R4 R0 K0
- 0x8C100901, // 0005 GETMET R4 R4 K1
- 0x7C100200, // 0006 CALL R4 1
- 0x7C0C0200, // 0007 CALL R3 1
- 0xA8020007, // 0008 EXBLK 0 #0011
- 0x5C100600, // 0009 MOVE R4 R3
- 0x7C100000, // 000A CALL R4 0
- 0x8C140502, // 000B GETMET R5 R2 K2
- 0x601C0009, // 000C GETGBL R7 G9
- 0x5C200800, // 000D MOVE R8 R4
- 0x7C1C0200, // 000E CALL R7 1
- 0x7C140400, // 000F CALL R5 2
- 0x7001FFF7, // 0010 JMP #0009
- 0x580C0003, // 0011 LDCONST R3 K3
- 0xAC0C0200, // 0012 CATCH R3 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x600C0010, // 0014 GETGBL R3 G16
- 0x5C100400, // 0015 MOVE R4 R2
- 0x7C0C0200, // 0016 CALL R3 1
- 0xA8020030, // 0017 EXBLK 0 #0049
- 0x5C100600, // 0018 MOVE R4 R3
- 0x7C100000, // 0019 CALL R4 0
- 0x1C140904, // 001A EQ R5 R4 K4
- 0x7816000B, // 001B JMPF R5 #0028
- 0xB8160A00, // 001C GETNGBL R5 K5
- 0x58180006, // 001D LDCONST R6 K6
- 0x581C0007, // 001E LDCONST R7 K7
- 0x7C140400, // 001F CALL R5 2
- 0x88140100, // 0020 GETMBR R5 R0 K0
- 0x8C140B08, // 0021 GETMET R5 R5 K8
- 0x601C0008, // 0022 GETGBL R7 G8
- 0x5C200800, // 0023 MOVE R8 R4
- 0x7C1C0200, // 0024 CALL R7 1
- 0x7C140400, // 0025 CALL R5 2
- 0x50040200, // 0026 LDBOOL R1 1 0
- 0x7002001F, // 0027 JMP #0048
- 0xB8161200, // 0028 GETNGBL R5 K9
- 0x88140B0A, // 0029 GETMBR R5 R5 K10
- 0x1C140805, // 002A EQ R5 R4 R5
- 0x7816001B, // 002B JMPF R5 #0048
- 0x50040200, // 002C LDBOOL R1 1 0
- 0xB8160A00, // 002D GETNGBL R5 K5
- 0x60180018, // 002E GETGBL R6 G24
- 0x581C000B, // 002F LDCONST R7 K11
- 0x5C200800, // 0030 MOVE R8 R4
- 0x8824010C, // 0031 GETMBR R9 R0 K12
- 0x7C180600, // 0032 CALL R6 3
- 0x581C0007, // 0033 LDCONST R7 K7
- 0x7C140400, // 0034 CALL R5 2
- 0x60140008, // 0035 GETGBL R5 G8
- 0x8818010C, // 0036 GETMBR R6 R0 K12
- 0x7C140200, // 0037 CALL R5 1
- 0x88180100, // 0038 GETMBR R6 R0 K0
- 0x601C0008, // 0039 GETGBL R7 G8
- 0x5C200800, // 003A MOVE R8 R4
- 0x7C1C0200, // 003B CALL R7 1
- 0x88200100, // 003C GETMBR R8 R0 K0
- 0x941C1007, // 003D GETIDX R7 R8 R7
- 0x98180A07, // 003E SETIDX R6 R5 R7
- 0x88140100, // 003F GETMBR R5 R0 K0
- 0x8C140B08, // 0040 GETMET R5 R5 K8
- 0x601C0008, // 0041 GETGBL R7 G8
- 0x5C200800, // 0042 MOVE R8 R4
- 0x7C1C0200, // 0043 CALL R7 1
- 0x7C140400, // 0044 CALL R5 2
- 0x8814010C, // 0045 GETMBR R5 R0 K12
- 0x00140B0D, // 0046 ADD R5 R5 K13
- 0x90021805, // 0047 SETMBR R0 K12 R5
- 0x7001FFCE, // 0048 JMP #0018
- 0x580C0003, // 0049 LDCONST R3 K3
- 0xAC0C0200, // 004A CATCH R3 1 0
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80040200, // 004C RET 1 R1
+ ( &(const binstruction[40]) { /* code */
+ 0x60040015, // 0000 GETGBL R1 G21
+ 0x7C040000, // 0001 CALL R1 0
+ 0x8C040300, // 0002 GETMET R1 R1 K0
+ 0x540E000A, // 0003 LDINT R3 11
+ 0x7C040400, // 0004 CALL R1 2
+ 0x8C080301, // 0005 GETMET R2 R1 K1
+ 0x58100002, // 0006 LDCONST R4 K2
+ 0x5416000F, // 0007 LDINT R5 16
+ 0x88180103, // 0008 GETMBR R6 R0 K3
+ 0x7C080800, // 0009 CALL R2 4
+ 0x8C080301, // 000A GETMET R2 R1 K1
+ 0x54120012, // 000B LDINT R4 19
+ 0x5416000F, // 000C LDINT R5 16
+ 0x88180104, // 000D GETMBR R6 R0 K4
+ 0x7C080800, // 000E CALL R2 4
+ 0x8C080301, // 000F GETMET R2 R1 K1
+ 0x54120024, // 0010 LDINT R4 37
+ 0x54160007, // 0011 LDINT R5 8
+ 0x541A0003, // 0012 LDINT R6 4
+ 0x7C080800, // 0013 CALL R2 4
+ 0x8C080301, // 0014 GETMET R2 R1 K1
+ 0x5412002C, // 0015 LDINT R4 45
+ 0x5416000B, // 0016 LDINT R5 12
+ 0x88180105, // 0017 GETMBR R6 R0 K5
+ 0x541E0FFE, // 0018 LDINT R7 4095
+ 0x2C180C07, // 0019 AND R6 R6 R7
+ 0x7C080800, // 001A CALL R2 4
+ 0x8C080301, // 001B GETMET R2 R1 K1
+ 0x54120038, // 001C LDINT R4 57
+ 0x5416001A, // 001D LDINT R5 27
+ 0x88180106, // 001E GETMBR R6 R0 K6
+ 0x2C180D07, // 001F AND R6 R6 K7
+ 0x7C080800, // 0020 CALL R2 4
+ 0xB80A1200, // 0021 GETNGBL R2 K9
+ 0x8808050A, // 0022 GETMBR R2 R2 K10
+ 0x8C08050B, // 0023 GETMET R2 R2 K11
+ 0x5C100200, // 0024 MOVE R4 R1
+ 0x7C080400, // 0025 CALL R2 2
+ 0x000A1002, // 0026 ADD R2 K8 R2
+ 0x80040400, // 0027 RET 1 R2
})
)
);
@@ -2487,967 +1187,10 @@ be_local_closure(class_Matter_Device_check_config_ep, /* name */
/********************************************************************
-** Solidified function: every_50ms
+** Solidified function: resolve_attribute_read_solo
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_50ms, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tick),
- /* K1 */ be_const_int(1),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(every_50ms),
- }),
- be_str_weak(every_50ms),
- &be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x00040301, // 0001 ADD R1 R1 K1
- 0x90020001, // 0002 SETMBR R0 K0 R1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C040303, // 0004 GETMET R1 R1 K3
- 0x7C040200, // 0005 CALL R1 1
- 0x80000000, // 0006 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: conf_to_log
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_conf_to_log, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(),
- /* K2 */ be_nested_str_weak(k2l),
- /* K3 */ be_nested_str_weak(type),
- /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
- /* K5 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(conf_to_log),
- &be_const_str_solidified,
- ( &(const binstruction[24]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x58080001, // 0001 LDCONST R2 K1
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100302, // 0003 GETMET R4 R1 K2
- 0x5C180000, // 0004 MOVE R6 R0
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA802000B, // 0007 EXBLK 0 #0014
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x1C140903, // 000A EQ R5 R4 K3
- 0x78160000, // 000B JMPF R5 #000D
- 0x7001FFFA, // 000C JMP #0008
- 0x60140018, // 000D GETGBL R5 G24
- 0x58180004, // 000E LDCONST R6 K4
- 0x5C1C0800, // 000F MOVE R7 R4
- 0x94200004, // 0010 GETIDX R8 R0 R4
- 0x7C140600, // 0011 CALL R5 3
- 0x00080405, // 0012 ADD R2 R2 R5
- 0x7001FFF3, // 0013 JMP #0008
- 0x580C0005, // 0014 LDCONST R3 K5
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x80040400, // 0017 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: k2l_num
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_k2l_num, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 4, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_const_class(be_class_Matter_Device),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(push),
- /* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_const_int(1),
- /* K5 */ be_const_int(0),
- }),
- be_str_weak(k2l_num),
- &be_const_str_solidified,
- ( &(const binstruction[52]) { /* code */
- 0x58040000, // 0000 LDCONST R1 K0
- 0x60080012, // 0001 GETGBL R2 G18
- 0x7C080000, // 0002 CALL R2 0
- 0x4C0C0000, // 0003 LDNIL R3
- 0x1C0C0003, // 0004 EQ R3 R0 R3
- 0x780E0000, // 0005 JMPF R3 #0007
- 0x80040400, // 0006 RET 1 R2
- 0x600C0010, // 0007 GETGBL R3 G16
- 0x8C100101, // 0008 GETMET R4 R0 K1
- 0x7C100200, // 0009 CALL R4 1
- 0x7C0C0200, // 000A CALL R3 1
- 0xA8020007, // 000B EXBLK 0 #0014
- 0x5C100600, // 000C MOVE R4 R3
- 0x7C100000, // 000D CALL R4 0
- 0x8C140502, // 000E GETMET R5 R2 K2
- 0x601C0009, // 000F GETGBL R7 G9
- 0x5C200800, // 0010 MOVE R8 R4
- 0x7C1C0200, // 0011 CALL R7 1
- 0x7C140400, // 0012 CALL R5 2
- 0x7001FFF7, // 0013 JMP #000C
- 0x580C0003, // 0014 LDCONST R3 K3
- 0xAC0C0200, // 0015 CATCH R3 1 0
- 0xB0080000, // 0016 RAISE 2 R0 R0
- 0x600C0010, // 0017 GETGBL R3 G16
- 0x6010000C, // 0018 GETGBL R4 G12
- 0x5C140400, // 0019 MOVE R5 R2
- 0x7C100200, // 001A CALL R4 1
- 0x04100904, // 001B SUB R4 R4 K4
- 0x40120804, // 001C CONNECT R4 K4 R4
- 0x7C0C0200, // 001D CALL R3 1
- 0xA8020010, // 001E EXBLK 0 #0030
- 0x5C100600, // 001F MOVE R4 R3
- 0x7C100000, // 0020 CALL R4 0
- 0x94140404, // 0021 GETIDX R5 R2 R4
- 0x5C180800, // 0022 MOVE R6 R4
- 0x241C0D05, // 0023 GT R7 R6 K5
- 0x781E0008, // 0024 JMPF R7 #002E
- 0x041C0D04, // 0025 SUB R7 R6 K4
- 0x941C0407, // 0026 GETIDX R7 R2 R7
- 0x241C0E05, // 0027 GT R7 R7 R5
- 0x781E0004, // 0028 JMPF R7 #002E
- 0x041C0D04, // 0029 SUB R7 R6 K4
- 0x941C0407, // 002A GETIDX R7 R2 R7
- 0x98080C07, // 002B SETIDX R2 R6 R7
- 0x04180D04, // 002C SUB R6 R6 K4
- 0x7001FFF4, // 002D JMP #0023
- 0x98080C05, // 002E SETIDX R2 R6 R5
- 0x7001FFEE, // 002F JMP #001F
- 0x580C0003, // 0030 LDCONST R3 K3
- 0xAC0C0200, // 0031 CATCH R3 1 0
- 0xB0080000, // 0032 RAISE 2 R0 R0
- 0x80040400, // 0033 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(remove_driver),
- /* K2 */ be_nested_str_weak(udp_server),
- /* K3 */ be_nested_str_weak(stop),
- }),
- be_str_weak(stop),
- &be_const_str_solidified,
- ( &(const binstruction[10]) { /* code */
- 0xB8060000, // 0000 GETNGBL R1 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x5C0C0000, // 0002 MOVE R3 R0
- 0x7C040400, // 0003 CALL R1 2
- 0x88040102, // 0004 GETMBR R1 R0 K2
- 0x78060002, // 0005 JMPF R1 #0009
- 0x88040102, // 0006 GETMBR R1 R0 K2
- 0x8C040303, // 0007 GETMET R1 R1 K3
- 0x7C040200, // 0008 CALL R1 1
- 0x80000000, // 0009 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: get_plugin_class_arg
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(ARG),
- /* K3 */ be_nested_str_weak(),
- }),
- be_str_weak(get_plugin_class_arg),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_device_map
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
- be_nested_proto(
- 19, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[38]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(matter),
- /* K2 */ be_nested_str_weak(START_ENDPOINT),
- /* K3 */ be_nested_str_weak(light),
- /* K4 */ be_nested_str_weak(get),
- /* K5 */ be_nested_str_weak(find),
- /* K6 */ be_nested_str_weak(channels),
- /* K7 */ be_nested_str_weak(),
- /* K8 */ be_const_int(0),
- /* K9 */ be_const_int(1),
- /* K10 */ be_nested_str_weak(type),
- /* K11 */ be_nested_str_weak(light1),
- /* K12 */ be_const_int(2),
- /* K13 */ be_nested_str_weak(light2),
- /* K14 */ be_nested_str_weak(light3),
- /* K15 */ be_nested_str_weak(tasmota),
- /* K16 */ be_nested_str_weak(cmd),
- /* K17 */ be_nested_str_weak(Status_X2013),
- /* K18 */ be_nested_str_weak(log),
- /* K19 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
- /* K20 */ be_const_int(3),
- /* K21 */ be_nested_str_weak(contains),
- /* K22 */ be_nested_str_weak(StatusSHT),
- /* K23 */ be_nested_str_weak(SHT),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20_X27_X25s_X27_X20_X3D_X20_X25s),
- /* K25 */ be_nested_str_weak(Relay1),
- /* K26 */ be_nested_str_weak(Relay2),
- /* K27 */ be_nested_str_weak(push),
- /* K28 */ be_nested_str_weak(MTR_X3A_X20relay1_X3D_X25s_X20relay2_X3D_X25s),
- /* K29 */ be_nested_str_weak(TiltConfig),
- /* K30 */ be_nested_str_weak(shutter_X2Btilt),
- /* K31 */ be_nested_str_weak(shutter),
- /* K32 */ be_nested_str_weak(get_power),
- /* K33 */ be_nested_str_weak(relay),
- /* K34 */ be_nested_str_weak(load),
- /* K35 */ be_nested_str_weak(read_sensors),
- /* K36 */ be_nested_str_weak(autoconf_sensors_list),
- /* K37 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(autoconf_device_map),
- &be_const_str_solidified,
- ( &(const binstruction[196]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x60080013, // 0001 GETGBL R2 G19
- 0x7C080000, // 0002 CALL R2 0
- 0xB80E0200, // 0003 GETNGBL R3 K1
- 0x880C0702, // 0004 GETMBR R3 R3 K2
- 0x50100000, // 0005 LDBOOL R4 0 0
- 0xA4160600, // 0006 IMPORT R5 K3
- 0x8C180B04, // 0007 GETMET R6 R5 K4
- 0x7C180200, // 0008 CALL R6 1
- 0x4C1C0000, // 0009 LDNIL R7
- 0x201C0C07, // 000A NE R7 R6 R7
- 0x781E0024, // 000B JMPF R7 #0031
- 0x601C000C, // 000C GETGBL R7 G12
- 0x8C200D05, // 000D GETMET R8 R6 K5
- 0x58280006, // 000E LDCONST R10 K6
- 0x582C0007, // 000F LDCONST R11 K7
- 0x7C200600, // 0010 CALL R8 3
- 0x7C1C0200, // 0011 CALL R7 1
- 0x24200F08, // 0012 GT R8 R7 K8
- 0x7822001C, // 0013 JMPF R8 #0031
- 0x1C200F09, // 0014 EQ R8 R7 K9
- 0x78220007, // 0015 JMPF R8 #001E
- 0x60200008, // 0016 GETGBL R8 G8
- 0x5C240600, // 0017 MOVE R9 R3
- 0x7C200200, // 0018 CALL R8 1
- 0x60240013, // 0019 GETGBL R9 G19
- 0x7C240000, // 001A CALL R9 0
- 0x9826150B, // 001B SETIDX R9 K10 K11
- 0x98081009, // 001C SETIDX R2 R8 R9
- 0x70020010, // 001D JMP #002F
- 0x1C200F0C, // 001E EQ R8 R7 K12
- 0x78220007, // 001F JMPF R8 #0028
- 0x60200008, // 0020 GETGBL R8 G8
- 0x5C240600, // 0021 MOVE R9 R3
- 0x7C200200, // 0022 CALL R8 1
- 0x60240013, // 0023 GETGBL R9 G19
- 0x7C240000, // 0024 CALL R9 0
- 0x9826150D, // 0025 SETIDX R9 K10 K13
- 0x98081009, // 0026 SETIDX R2 R8 R9
- 0x70020006, // 0027 JMP #002F
- 0x60200008, // 0028 GETGBL R8 G8
- 0x5C240600, // 0029 MOVE R9 R3
- 0x7C200200, // 002A CALL R8 1
- 0x60240013, // 002B GETGBL R9 G19
- 0x7C240000, // 002C CALL R9 0
- 0x9826150E, // 002D SETIDX R9 K10 K14
- 0x98081009, // 002E SETIDX R2 R8 R9
- 0x50100200, // 002F LDBOOL R4 1 0
- 0x000C0709, // 0030 ADD R3 R3 K9
- 0xB81E1E00, // 0031 GETNGBL R7 K15
- 0x8C1C0F10, // 0032 GETMET R7 R7 K16
- 0x58240011, // 0033 LDCONST R9 K17
- 0x50280200, // 0034 LDBOOL R10 1 0
- 0x7C1C0600, // 0035 CALL R7 3
- 0x60200012, // 0036 GETGBL R8 G18
- 0x7C200000, // 0037 CALL R8 0
- 0xB8262400, // 0038 GETNGBL R9 K18
- 0x60280008, // 0039 GETGBL R10 G8
- 0x5C2C0E00, // 003A MOVE R11 R7
- 0x7C280200, // 003B CALL R10 1
- 0x002A260A, // 003C ADD R10 K19 R10
- 0x582C0014, // 003D LDCONST R11 K20
- 0x7C240400, // 003E CALL R9 2
- 0x4C240000, // 003F LDNIL R9
- 0x20240E09, // 0040 NE R9 R7 R9
- 0x7826004D, // 0041 JMPF R9 #0090
- 0x8C240F15, // 0042 GETMET R9 R7 K21
- 0x582C0016, // 0043 LDCONST R11 K22
- 0x7C240400, // 0044 CALL R9 2
- 0x78260049, // 0045 JMPF R9 #0090
- 0x941C0F16, // 0046 GETIDX R7 R7 K22
- 0x58240008, // 0047 LDCONST R9 K8
- 0x50280200, // 0048 LDBOOL R10 1 0
- 0x782A0045, // 0049 JMPF R10 #0090
- 0x60280008, // 004A GETGBL R10 G8
- 0x5C2C1200, // 004B MOVE R11 R9
- 0x7C280200, // 004C CALL R10 1
- 0x002A2E0A, // 004D ADD R10 K23 R10
- 0x8C2C0F15, // 004E GETMET R11 R7 K21
- 0x5C341400, // 004F MOVE R13 R10
- 0x7C2C0400, // 0050 CALL R11 2
- 0x742E0000, // 0051 JMPT R11 #0053
- 0x7002003C, // 0052 JMP #0090
- 0x942C0E0A, // 0053 GETIDX R11 R7 R10
- 0xB8322400, // 0054 GETNGBL R12 K18
- 0x60340018, // 0055 GETGBL R13 G24
- 0x58380018, // 0056 LDCONST R14 K24
- 0x5C3C1400, // 0057 MOVE R15 R10
- 0x60400008, // 0058 GETGBL R16 G8
- 0x5C441600, // 0059 MOVE R17 R11
- 0x7C400200, // 005A CALL R16 1
- 0x7C340600, // 005B CALL R13 3
- 0x58380014, // 005C LDCONST R14 K20
- 0x7C300400, // 005D CALL R12 2
- 0x8C301705, // 005E GETMET R12 R11 K5
- 0x58380019, // 005F LDCONST R14 K25
- 0x543DFFFE, // 0060 LDINT R15 -1
- 0x7C300600, // 0061 CALL R12 3
- 0x8C341705, // 0062 GETMET R13 R11 K5
- 0x583C001A, // 0063 LDCONST R15 K26
- 0x5441FFFE, // 0064 LDINT R16 -1
- 0x7C340600, // 0065 CALL R13 3
- 0x24381908, // 0066 GT R14 R12 K8
- 0x783A0002, // 0067 JMPF R14 #006B
- 0x8C38111B, // 0068 GETMET R14 R8 K27
- 0x04401909, // 0069 SUB R16 R12 K9
- 0x7C380400, // 006A CALL R14 2
- 0x24381B08, // 006B GT R14 R13 K8
- 0x783A0002, // 006C JMPF R14 #0070
- 0x8C38111B, // 006D GETMET R14 R8 K27
- 0x04401B09, // 006E SUB R16 R13 K9
- 0x7C380400, // 006F CALL R14 2
- 0xB83A2400, // 0070 GETNGBL R14 K18
- 0x603C0018, // 0071 GETGBL R15 G24
- 0x5840001C, // 0072 LDCONST R16 K28
- 0x5C441800, // 0073 MOVE R17 R12
- 0x5C481A00, // 0074 MOVE R18 R13
- 0x7C3C0600, // 0075 CALL R15 3
- 0x58400014, // 0076 LDCONST R16 K20
- 0x7C380400, // 0077 CALL R14 2
- 0x8C381705, // 0078 GETMET R14 R11 K5
- 0x5840001D, // 0079 LDCONST R16 K29
- 0x7C380400, // 007A CALL R14 2
- 0x783A0002, // 007B JMPF R14 #007F
- 0x943C1D0C, // 007C GETIDX R15 R14 K12
- 0x243C1F08, // 007D GT R15 R15 K8
- 0x743E0000, // 007E JMPT R15 #0080
- 0x503C0001, // 007F LDBOOL R15 0 1
- 0x503C0200, // 0080 LDBOOL R15 1 0
- 0x60400008, // 0081 GETGBL R16 G8
- 0x5C440600, // 0082 MOVE R17 R3
- 0x7C400200, // 0083 CALL R16 1
- 0x60440013, // 0084 GETGBL R17 G19
- 0x7C440000, // 0085 CALL R17 0
- 0x783E0001, // 0086 JMPF R15 #0089
- 0x5848001E, // 0087 LDCONST R18 K30
- 0x70020000, // 0088 JMP #008A
- 0x5848001F, // 0089 LDCONST R18 K31
- 0x98461412, // 008A SETIDX R17 K10 R18
- 0x98463E09, // 008B SETIDX R17 K31 R9
- 0x98082011, // 008C SETIDX R2 R16 R17
- 0x000C0709, // 008D ADD R3 R3 K9
- 0x00241309, // 008E ADD R9 R9 K9
- 0x7001FFB7, // 008F JMP #0048
- 0x6024000C, // 0090 GETGBL R9 G12
- 0xB82A1E00, // 0091 GETNGBL R10 K15
- 0x8C281520, // 0092 GETMET R10 R10 K32
- 0x7C280200, // 0093 CALL R10 1
- 0x7C240200, // 0094 CALL R9 1
- 0x58280008, // 0095 LDCONST R10 K8
- 0x78120000, // 0096 JMPF R4 #0098
- 0x04241309, // 0097 SUB R9 R9 K9
- 0x142C1409, // 0098 LT R11 R10 R9
- 0x782E0011, // 0099 JMPF R11 #00AC
- 0x8C2C1105, // 009A GETMET R11 R8 K5
- 0x5C341400, // 009B MOVE R13 R10
- 0x7C2C0400, // 009C CALL R11 2
- 0x4C300000, // 009D LDNIL R12
- 0x1C2C160C, // 009E EQ R11 R11 R12
- 0x782E0009, // 009F JMPF R11 #00AA
- 0x602C0008, // 00A0 GETGBL R11 G8
- 0x5C300600, // 00A1 MOVE R12 R3
- 0x7C2C0200, // 00A2 CALL R11 1
- 0x60300013, // 00A3 GETGBL R12 G19
- 0x7C300000, // 00A4 CALL R12 0
- 0x98321521, // 00A5 SETIDX R12 K10 K33
- 0x00341509, // 00A6 ADD R13 R10 K9
- 0x9832420D, // 00A7 SETIDX R12 K33 R13
- 0x9808160C, // 00A8 SETIDX R2 R11 R12
- 0x000C0709, // 00A9 ADD R3 R3 K9
- 0x00281509, // 00AA ADD R10 R10 K9
- 0x7001FFEB, // 00AB JMP #0098
- 0x8C2C0322, // 00AC GETMET R11 R1 K34
- 0xB8361E00, // 00AD GETNGBL R13 K15
- 0x8C341B23, // 00AE GETMET R13 R13 K35
- 0x7C340200, // 00AF CALL R13 1
- 0x7C2C0400, // 00B0 CALL R11 2
- 0x8C300124, // 00B1 GETMET R12 R0 K36
- 0x5C381600, // 00B2 MOVE R14 R11
- 0x7C300400, // 00B3 CALL R12 2
- 0x60340010, // 00B4 GETGBL R13 G16
- 0x5C381800, // 00B5 MOVE R14 R12
- 0x7C340200, // 00B6 CALL R13 1
- 0xA8020007, // 00B7 EXBLK 0 #00C0
- 0x5C381A00, // 00B8 MOVE R14 R13
- 0x7C380000, // 00B9 CALL R14 0
- 0x603C0008, // 00BA GETGBL R15 G8
- 0x5C400600, // 00BB MOVE R16 R3
- 0x7C3C0200, // 00BC CALL R15 1
- 0x98081E0E, // 00BD SETIDX R2 R15 R14
- 0x000C0709, // 00BE ADD R3 R3 K9
- 0x7001FFF7, // 00BF JMP #00B8
- 0x58340025, // 00C0 LDCONST R13 K37
- 0xAC340200, // 00C1 CATCH R13 1 0
- 0xB0080000, // 00C2 RAISE 2 R0 R0
- 0x80040400, // 00C3 RET 1 R2
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: remove_fabric
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_remove_fabric, /* name */
- be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(log),
- /* K1 */ be_nested_str_weak(MTR_X3A_X20removing_X20fabric_X20),
- /* K2 */ be_nested_str_weak(get_fabric_id),
- /* K3 */ be_nested_str_weak(copy),
- /* K4 */ be_nested_str_weak(reverse),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_const_int(2),
- /* K7 */ be_nested_str_weak(message_handler),
- /* K8 */ be_nested_str_weak(im),
- /* K9 */ be_nested_str_weak(subs_shop),
- /* K10 */ be_nested_str_weak(remove_by_fabric),
- /* K11 */ be_nested_str_weak(mdns_remove_op_discovery),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(remove_fabric),
- /* K14 */ be_nested_str_weak(save_fabrics),
- }),
- be_str_weak(remove_fabric),
- &be_const_str_solidified,
- ( &(const binstruction[32]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x20080202, // 0001 NE R2 R1 R2
- 0x780A0018, // 0002 JMPF R2 #001C
- 0xB80A0000, // 0003 GETNGBL R2 K0
- 0x8C0C0302, // 0004 GETMET R3 R1 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C0C0704, // 0008 GETMET R3 R3 K4
- 0x7C0C0200, // 0009 CALL R3 1
- 0x8C0C0705, // 000A GETMET R3 R3 K5
- 0x7C0C0200, // 000B CALL R3 1
- 0x000E0203, // 000C ADD R3 K1 R3
- 0x58100006, // 000D LDCONST R4 K6
- 0x7C080400, // 000E CALL R2 2
- 0x88080107, // 000F GETMBR R2 R0 K7
- 0x88080508, // 0010 GETMBR R2 R2 K8
- 0x88080509, // 0011 GETMBR R2 R2 K9
- 0x8C08050A, // 0012 GETMET R2 R2 K10
- 0x5C100200, // 0013 MOVE R4 R1
- 0x7C080400, // 0014 CALL R2 2
- 0x8C08010B, // 0015 GETMET R2 R0 K11
- 0x5C100200, // 0016 MOVE R4 R1
- 0x7C080400, // 0017 CALL R2 2
- 0x8808010C, // 0018 GETMBR R2 R0 K12
- 0x8C08050D, // 0019 GETMET R2 R2 K13
- 0x5C100200, // 001A MOVE R4 R1
- 0x7C080400, // 001B CALL R2 2
- 0x8808010C, // 001C GETMBR R2 R0 K12
- 0x8C08050E, // 001D GETMET R2 R2 K14
- 0x7C080200, // 001E CALL R2 1
- 0x80000000, // 001F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: init
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_init, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(start),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- /* K4 */ be_nested_str_weak(matter_start),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0004, // 0006 LDCONST R3 K4
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[38]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(get_option),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(MATTER_OPTION),
- /* K5 */ be_nested_str_weak(UI),
- /* K6 */ be_nested_str_weak(profiler),
- /* K7 */ be_nested_str_weak(Profiler),
- /* K8 */ be_nested_str_weak(started),
- /* K9 */ be_nested_str_weak(tick),
- /* K10 */ be_const_int(0),
- /* K11 */ be_nested_str_weak(plugins),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(plugins_config_remotes),
- /* K14 */ be_nested_str_weak(next_ep),
- /* K15 */ be_const_int(2),
- /* K16 */ be_nested_str_weak(ipv4only),
- /* K17 */ be_nested_str_weak(disable_bridge_mode),
- /* K18 */ be_nested_str_weak(load_param),
- /* K19 */ be_nested_str_weak(sessions),
- /* K20 */ be_nested_str_weak(Session_Store),
- /* K21 */ be_nested_str_weak(load_fabrics),
- /* K22 */ be_nested_str_weak(message_handler),
- /* K23 */ be_nested_str_weak(MessageHandler),
- /* K24 */ be_nested_str_weak(events),
- /* K25 */ be_nested_str_weak(EventHandler),
- /* K26 */ be_nested_str_weak(ui),
- /* K27 */ be_nested_str_weak(wifi),
- /* K28 */ be_nested_str_weak(up),
- /* K29 */ be_nested_str_weak(eth),
- /* K30 */ be_nested_str_weak(start),
- /* K31 */ be_nested_str_weak(add_rule),
- /* K32 */ be_nested_str_weak(Wifi_X23Connected),
- /* K33 */ be_nested_str_weak(matter_start),
- /* K34 */ be_nested_str_weak(Eth_X23Connected),
- /* K35 */ be_nested_str_weak(_init_basic_commissioning),
- /* K36 */ be_nested_str_weak(add_driver),
- /* K37 */ be_nested_str_weak(register_commands),
- }),
- be_str_weak(init),
- &be_const_str_solidified,
- ( &(const binstruction[102]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0xB8120600, // 0003 GETNGBL R4 K3
- 0x88100904, // 0004 GETMBR R4 R4 K4
- 0x7C080400, // 0005 CALL R2 2
- 0x740A0004, // 0006 JMPT R2 #000C
- 0xB80A0600, // 0007 GETNGBL R2 K3
- 0x8C080505, // 0008 GETMET R2 R2 K5
- 0x5C100000, // 0009 MOVE R4 R0
- 0x7C080400, // 000A CALL R2 2
- 0x80000400, // 000B RET 0
- 0xB80A0600, // 000C GETNGBL R2 K3
- 0xB80E0600, // 000D GETNGBL R3 K3
- 0x8C0C0707, // 000E GETMET R3 R3 K7
- 0x7C0C0200, // 000F CALL R3 1
- 0x900A0C03, // 0010 SETMBR R2 K6 R3
- 0x50080000, // 0011 LDBOOL R2 0 0
- 0x90021002, // 0012 SETMBR R0 K8 R2
- 0x9002130A, // 0013 SETMBR R0 K9 K10
- 0x60080012, // 0014 GETGBL R2 G18
- 0x7C080000, // 0015 CALL R2 0
- 0x90021602, // 0016 SETMBR R0 K11 R2
- 0x50080000, // 0017 LDBOOL R2 0 0
- 0x90021802, // 0018 SETMBR R0 K12 R2
- 0x60080013, // 0019 GETGBL R2 G19
- 0x7C080000, // 001A CALL R2 0
- 0x90021A02, // 001B SETMBR R0 K13 R2
- 0x90021D0F, // 001C SETMBR R0 K14 K15
- 0x50080000, // 001D LDBOOL R2 0 0
- 0x90022002, // 001E SETMBR R0 K16 R2
- 0x50080000, // 001F LDBOOL R2 0 0
- 0x90022202, // 0020 SETMBR R0 K17 R2
- 0x8C080112, // 0021 GETMET R2 R0 K18
- 0x7C080200, // 0022 CALL R2 1
- 0xB80A0600, // 0023 GETNGBL R2 K3
- 0x8C080514, // 0024 GETMET R2 R2 K20
- 0x5C100000, // 0025 MOVE R4 R0
- 0x7C080400, // 0026 CALL R2 2
- 0x90022602, // 0027 SETMBR R0 K19 R2
- 0x88080113, // 0028 GETMBR R2 R0 K19
- 0x8C080515, // 0029 GETMET R2 R2 K21
- 0x7C080200, // 002A CALL R2 1
- 0xB80A0600, // 002B GETNGBL R2 K3
- 0x8C080517, // 002C GETMET R2 R2 K23
- 0x5C100000, // 002D MOVE R4 R0
- 0x7C080400, // 002E CALL R2 2
- 0x90022C02, // 002F SETMBR R0 K22 R2
- 0xB80A0600, // 0030 GETNGBL R2 K3
- 0x8C080519, // 0031 GETMET R2 R2 K25
- 0x5C100000, // 0032 MOVE R4 R0
- 0x7C080400, // 0033 CALL R2 2
- 0x90023002, // 0034 SETMBR R0 K24 R2
- 0xB80A0600, // 0035 GETNGBL R2 K3
- 0x8C080505, // 0036 GETMET R2 R2 K5
- 0x5C100000, // 0037 MOVE R4 R0
- 0x7C080400, // 0038 CALL R2 2
- 0x90023402, // 0039 SETMBR R0 K26 R2
- 0xB80A0200, // 003A GETNGBL R2 K1
- 0x8C08051B, // 003B GETMET R2 R2 K27
- 0x7C080200, // 003C CALL R2 1
- 0x9408051C, // 003D GETIDX R2 R2 K28
- 0x740A0004, // 003E JMPT R2 #0044
- 0xB80A0200, // 003F GETNGBL R2 K1
- 0x8C08051D, // 0040 GETMET R2 R2 K29
- 0x7C080200, // 0041 CALL R2 1
- 0x9408051C, // 0042 GETIDX R2 R2 K28
- 0x780A0001, // 0043 JMPF R2 #0046
- 0x8C08011E, // 0044 GETMET R2 R0 K30
- 0x7C080200, // 0045 CALL R2 1
- 0xB80A0200, // 0046 GETNGBL R2 K1
- 0x8C08051B, // 0047 GETMET R2 R2 K27
- 0x7C080200, // 0048 CALL R2 1
- 0x9408051C, // 0049 GETIDX R2 R2 K28
- 0x740A0005, // 004A JMPT R2 #0051
- 0xB80A0200, // 004B GETNGBL R2 K1
- 0x8C08051F, // 004C GETMET R2 R2 K31
- 0x58100020, // 004D LDCONST R4 K32
- 0x84140000, // 004E CLOSURE R5 P0
- 0x58180021, // 004F LDCONST R6 K33
- 0x7C080800, // 0050 CALL R2 4
- 0xB80A0200, // 0051 GETNGBL R2 K1
- 0x8C08051D, // 0052 GETMET R2 R2 K29
- 0x7C080200, // 0053 CALL R2 1
- 0x9408051C, // 0054 GETIDX R2 R2 K28
- 0x740A0005, // 0055 JMPT R2 #005C
- 0xB80A0200, // 0056 GETNGBL R2 K1
- 0x8C08051F, // 0057 GETMET R2 R2 K31
- 0x58100022, // 0058 LDCONST R4 K34
- 0x84140001, // 0059 CLOSURE R5 P1
- 0x58180021, // 005A LDCONST R6 K33
- 0x7C080800, // 005B CALL R2 4
- 0x8C080123, // 005C GETMET R2 R0 K35
- 0x7C080200, // 005D CALL R2 1
- 0xB80A0200, // 005E GETNGBL R2 K1
- 0x8C080524, // 005F GETMET R2 R2 K36
- 0x5C100000, // 0060 MOVE R4 R0
- 0x7C080400, // 0061 CALL R2 2
- 0x8C080125, // 0062 GETMET R2 R0 K37
- 0x7C080200, // 0063 CALL R2 1
- 0xA0000000, // 0064 CLOSE R0
- 0x80000000, // 0065 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: is_commissioning_open
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- }),
- be_str_weak(is_commissioning_open),
- &be_const_str_solidified,
- ( &(const binstruction[ 4]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x20040202, // 0002 NE R1 R1 R2
- 0x80040200, // 0003 RET 1 R1
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: adjust_next_ep
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config),
- /* K1 */ be_nested_str_weak(keys),
- /* K2 */ be_nested_str_weak(next_ep),
- /* K3 */ be_const_int(1),
- /* K4 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(adjust_next_ep),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000A, // 0005 EXBLK 0 #0011
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x600C0009, // 0008 GETGBL R3 G9
- 0x5C100400, // 0009 MOVE R4 R2
- 0x7C0C0200, // 000A CALL R3 1
- 0x88100102, // 000B GETMBR R4 R0 K2
- 0x28100604, // 000C GE R4 R3 R4
- 0x78120001, // 000D JMPF R4 #0010
- 0x00100703, // 000E ADD R4 R3 K3
- 0x90020404, // 000F SETMBR R0 K2 R4
- 0x7001FFF4, // 0010 JMP #0006
- 0x58040004, // 0011 LDCONST R1 K4
- 0xAC040200, // 0012 CATCH R1 1 0
- 0xB0080000, // 0013 RAISE 2 R0 R0
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: stop_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(is_root_commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(publish_result),
- /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
- /* K4 */ be_nested_str_weak(Matter),
- /* K5 */ be_nested_str_weak(commissioning_open),
- /* K6 */ be_nested_str_weak(mdns_remove_PASE),
- /* K7 */ be_nested_str_weak(commissioning_iterations),
- /* K8 */ be_nested_str_weak(commissioning_discriminator),
- /* K9 */ be_nested_str_weak(commissioning_salt),
- /* K10 */ be_nested_str_weak(commissioning_w0),
- /* K11 */ be_nested_str_weak(commissioning_L),
- /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
- }),
- be_str_weak(stop_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[25]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x78060004, // 0002 JMPF R1 #0008
- 0xB8060200, // 0003 GETNGBL R1 K1
- 0x8C040302, // 0004 GETMET R1 R1 K2
- 0x580C0003, // 0005 LDCONST R3 K3
- 0x58100004, // 0006 LDCONST R4 K4
- 0x7C040600, // 0007 CALL R1 3
- 0x4C040000, // 0008 LDNIL R1
- 0x90020A01, // 0009 SETMBR R0 K5 R1
- 0x8C040106, // 000A GETMET R1 R0 K6
- 0x7C040200, // 000B CALL R1 1
- 0x4C040000, // 000C LDNIL R1
- 0x90020E01, // 000D SETMBR R0 K7 R1
- 0x4C040000, // 000E LDNIL R1
- 0x90021001, // 000F SETMBR R0 K8 R1
- 0x4C040000, // 0010 LDNIL R1
- 0x90021201, // 0011 SETMBR R0 K9 R1
- 0x4C040000, // 0012 LDNIL R1
- 0x90021401, // 0013 SETMBR R0 K10 R1
- 0x4C040000, // 0014 LDNIL R1
- 0x90021601, // 0015 SETMBR R0 K11 R1
- 0x4C040000, // 0016 LDNIL R1
- 0x90021801, // 0017 SETMBR R0 K12 R1
- 0x80000000, // 0018 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_sensors_list
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
+be_local_closure(class_Matter_Device_resolve_attribute_read_solo, /* name */
be_nested_proto(
10, /* nstack */
2, /* argc */
@@ -3457,148 +1200,69 @@ be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[18]) { /* constants */
- /* K0 */ be_nested_str_weak(k2l),
- /* K1 */ be_nested_str_weak(contains),
- /* K2 */ be_nested_str_weak(Temperature),
- /* K3 */ be_nested_str_weak(_X23Temperature),
- /* K4 */ be_nested_str_weak(push),
- /* K5 */ be_nested_str_weak(type),
- /* K6 */ be_nested_str_weak(temperature),
- /* K7 */ be_nested_str_weak(filter),
- /* K8 */ be_nested_str_weak(stop_iteration),
- /* K9 */ be_nested_str_weak(Pressure),
- /* K10 */ be_nested_str_weak(_X23Pressure),
- /* K11 */ be_nested_str_weak(pressure),
- /* K12 */ be_nested_str_weak(Illuminance),
- /* K13 */ be_nested_str_weak(_X23Illuminance),
- /* K14 */ be_nested_str_weak(illuminance),
- /* K15 */ be_nested_str_weak(Humidity),
- /* K16 */ be_nested_str_weak(_X23Humidity),
- /* K17 */ be_nested_str_weak(humidity),
+ ( &(const bvalue[11]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(find_plugin_by_endpoint),
+ /* K4 */ be_nested_str_weak(status),
+ /* K5 */ be_nested_str_weak(matter),
+ /* K6 */ be_nested_str_weak(UNSUPPORTED_ENDPOINT),
+ /* K7 */ be_nested_str_weak(contains_cluster),
+ /* K8 */ be_nested_str_weak(UNSUPPORTED_CLUSTER),
+ /* K9 */ be_nested_str_weak(contains_attribute),
+ /* K10 */ be_nested_str_weak(UNSUPPORTED_ATTRIBUTE),
}),
- be_str_weak(autoconf_sensors_list),
+ be_str_weak(resolve_attribute_read_solo),
&be_const_str_solidified,
- ( &(const binstruction[119]) { /* code */
- 0x60080012, // 0000 GETGBL R2 G18
- 0x7C080000, // 0001 CALL R2 0
- 0x600C0010, // 0002 GETGBL R3 G16
- 0x8C100100, // 0003 GETMET R4 R0 K0
- 0x5C180200, // 0004 MOVE R6 R1
- 0x7C100400, // 0005 CALL R4 2
- 0x7C0C0200, // 0006 CALL R3 1
- 0xA8020013, // 0007 EXBLK 0 #001C
- 0x5C100600, // 0008 MOVE R4 R3
- 0x7C100000, // 0009 CALL R4 0
- 0x94140204, // 000A GETIDX R5 R1 R4
- 0x6018000F, // 000B GETGBL R6 G15
- 0x5C1C0A00, // 000C MOVE R7 R5
- 0x60200013, // 000D GETGBL R8 G19
- 0x7C180400, // 000E CALL R6 2
- 0x781A000A, // 000F JMPF R6 #001B
- 0x8C180B01, // 0010 GETMET R6 R5 K1
- 0x58200002, // 0011 LDCONST R8 K2
- 0x7C180400, // 0012 CALL R6 2
- 0x781A0006, // 0013 JMPF R6 #001B
- 0x00180903, // 0014 ADD R6 R4 K3
- 0x8C1C0504, // 0015 GETMET R7 R2 K4
- 0x60240013, // 0016 GETGBL R9 G19
- 0x7C240000, // 0017 CALL R9 0
- 0x98260B06, // 0018 SETIDX R9 K5 K6
- 0x98260E06, // 0019 SETIDX R9 K7 R6
- 0x7C1C0400, // 001A CALL R7 2
- 0x7001FFEB, // 001B JMP #0008
- 0x580C0008, // 001C LDCONST R3 K8
- 0xAC0C0200, // 001D CATCH R3 1 0
- 0xB0080000, // 001E RAISE 2 R0 R0
- 0x600C0010, // 001F GETGBL R3 G16
- 0x8C100100, // 0020 GETMET R4 R0 K0
- 0x5C180200, // 0021 MOVE R6 R1
- 0x7C100400, // 0022 CALL R4 2
- 0x7C0C0200, // 0023 CALL R3 1
- 0xA8020013, // 0024 EXBLK 0 #0039
- 0x5C100600, // 0025 MOVE R4 R3
- 0x7C100000, // 0026 CALL R4 0
- 0x94140204, // 0027 GETIDX R5 R1 R4
- 0x6018000F, // 0028 GETGBL R6 G15
- 0x5C1C0A00, // 0029 MOVE R7 R5
- 0x60200013, // 002A GETGBL R8 G19
- 0x7C180400, // 002B CALL R6 2
- 0x781A000A, // 002C JMPF R6 #0038
- 0x8C180B01, // 002D GETMET R6 R5 K1
- 0x58200009, // 002E LDCONST R8 K9
- 0x7C180400, // 002F CALL R6 2
- 0x781A0006, // 0030 JMPF R6 #0038
- 0x0018090A, // 0031 ADD R6 R4 K10
- 0x8C1C0504, // 0032 GETMET R7 R2 K4
- 0x60240013, // 0033 GETGBL R9 G19
- 0x7C240000, // 0034 CALL R9 0
- 0x98260B0B, // 0035 SETIDX R9 K5 K11
- 0x98260E06, // 0036 SETIDX R9 K7 R6
- 0x7C1C0400, // 0037 CALL R7 2
- 0x7001FFEB, // 0038 JMP #0025
- 0x580C0008, // 0039 LDCONST R3 K8
- 0xAC0C0200, // 003A CATCH R3 1 0
- 0xB0080000, // 003B RAISE 2 R0 R0
- 0x600C0010, // 003C GETGBL R3 G16
- 0x8C100100, // 003D GETMET R4 R0 K0
- 0x5C180200, // 003E MOVE R6 R1
- 0x7C100400, // 003F CALL R4 2
- 0x7C0C0200, // 0040 CALL R3 1
- 0xA8020013, // 0041 EXBLK 0 #0056
- 0x5C100600, // 0042 MOVE R4 R3
- 0x7C100000, // 0043 CALL R4 0
- 0x94140204, // 0044 GETIDX R5 R1 R4
- 0x6018000F, // 0045 GETGBL R6 G15
- 0x5C1C0A00, // 0046 MOVE R7 R5
- 0x60200013, // 0047 GETGBL R8 G19
- 0x7C180400, // 0048 CALL R6 2
- 0x781A000A, // 0049 JMPF R6 #0055
- 0x8C180B01, // 004A GETMET R6 R5 K1
- 0x5820000C, // 004B LDCONST R8 K12
- 0x7C180400, // 004C CALL R6 2
- 0x781A0006, // 004D JMPF R6 #0055
- 0x0018090D, // 004E ADD R6 R4 K13
- 0x8C1C0504, // 004F GETMET R7 R2 K4
- 0x60240013, // 0050 GETGBL R9 G19
- 0x7C240000, // 0051 CALL R9 0
- 0x98260B0E, // 0052 SETIDX R9 K5 K14
- 0x98260E06, // 0053 SETIDX R9 K7 R6
- 0x7C1C0400, // 0054 CALL R7 2
- 0x7001FFEB, // 0055 JMP #0042
- 0x580C0008, // 0056 LDCONST R3 K8
- 0xAC0C0200, // 0057 CATCH R3 1 0
- 0xB0080000, // 0058 RAISE 2 R0 R0
- 0x600C0010, // 0059 GETGBL R3 G16
- 0x8C100100, // 005A GETMET R4 R0 K0
- 0x5C180200, // 005B MOVE R6 R1
- 0x7C100400, // 005C CALL R4 2
- 0x7C0C0200, // 005D CALL R3 1
- 0xA8020013, // 005E EXBLK 0 #0073
- 0x5C100600, // 005F MOVE R4 R3
- 0x7C100000, // 0060 CALL R4 0
- 0x94140204, // 0061 GETIDX R5 R1 R4
- 0x6018000F, // 0062 GETGBL R6 G15
- 0x5C1C0A00, // 0063 MOVE R7 R5
- 0x60200013, // 0064 GETGBL R8 G19
- 0x7C180400, // 0065 CALL R6 2
- 0x781A000A, // 0066 JMPF R6 #0072
- 0x8C180B01, // 0067 GETMET R6 R5 K1
- 0x5820000F, // 0068 LDCONST R8 K15
- 0x7C180400, // 0069 CALL R6 2
- 0x781A0006, // 006A JMPF R6 #0072
- 0x00180910, // 006B ADD R6 R4 K16
- 0x8C1C0504, // 006C GETMET R7 R2 K4
- 0x60240013, // 006D GETGBL R9 G19
- 0x7C240000, // 006E CALL R9 0
- 0x98260B11, // 006F SETIDX R9 K5 K17
- 0x98260E06, // 0070 SETIDX R9 K7 R6
- 0x7C1C0400, // 0071 CALL R7 2
- 0x7001FFEB, // 0072 JMP #005F
- 0x580C0008, // 0073 LDCONST R3 K8
- 0xAC0C0200, // 0074 CATCH R3 1 0
- 0xB0080000, // 0075 RAISE 2 R0 R0
- 0x80040400, // 0076 RET 1 R2
+ ( &(const binstruction[47]) { /* code */
+ 0x88080300, // 0000 GETMBR R2 R1 K0
+ 0x880C0301, // 0001 GETMBR R3 R1 K1
+ 0x88100302, // 0002 GETMBR R4 R1 K2
+ 0x4C140000, // 0003 LDNIL R5
+ 0x1C140405, // 0004 EQ R5 R2 R5
+ 0x74160005, // 0005 JMPT R5 #000C
+ 0x4C140000, // 0006 LDNIL R5
+ 0x1C140605, // 0007 EQ R5 R3 R5
+ 0x74160002, // 0008 JMPT R5 #000C
+ 0x4C140000, // 0009 LDNIL R5
+ 0x1C140805, // 000A EQ R5 R4 R5
+ 0x78160001, // 000B JMPF R5 #000E
+ 0x4C140000, // 000C LDNIL R5
+ 0x80040A00, // 000D RET 1 R5
+ 0x8C140103, // 000E GETMET R5 R0 K3
+ 0x5C1C0400, // 000F MOVE R7 R2
+ 0x7C140400, // 0010 CALL R5 2
+ 0x4C180000, // 0011 LDNIL R6
+ 0x1C180A06, // 0012 EQ R6 R5 R6
+ 0x781A0005, // 0013 JMPF R6 #001A
+ 0xB81A0A00, // 0014 GETNGBL R6 K5
+ 0x88180D06, // 0015 GETMBR R6 R6 K6
+ 0x90060806, // 0016 SETMBR R1 K4 R6
+ 0x4C180000, // 0017 LDNIL R6
+ 0x80040C00, // 0018 RET 1 R6
+ 0x70020013, // 0019 JMP #002E
+ 0x8C180B07, // 001A GETMET R6 R5 K7
+ 0x5C200600, // 001B MOVE R8 R3
+ 0x7C180400, // 001C CALL R6 2
+ 0x741A0005, // 001D JMPT R6 #0024
+ 0xB81A0A00, // 001E GETNGBL R6 K5
+ 0x88180D08, // 001F GETMBR R6 R6 K8
+ 0x90060806, // 0020 SETMBR R1 K4 R6
+ 0x4C180000, // 0021 LDNIL R6
+ 0x80040C00, // 0022 RET 1 R6
+ 0x70020009, // 0023 JMP #002E
+ 0x8C180B09, // 0024 GETMET R6 R5 K9
+ 0x5C200600, // 0025 MOVE R8 R3
+ 0x5C240800, // 0026 MOVE R9 R4
+ 0x7C180600, // 0027 CALL R6 3
+ 0x741A0004, // 0028 JMPT R6 #002E
+ 0xB81A0A00, // 0029 GETNGBL R6 K5
+ 0x88180D0A, // 002A GETMBR R6 R6 K10
+ 0x90060806, // 002B SETMBR R1 K4 R6
+ 0x4C180000, // 002C LDNIL R6
+ 0x80040C00, // 002D RET 1 R6
+ 0x80040A00, // 002E RET 1 R5
})
)
);
@@ -3670,13 +1334,13 @@ be_local_closure(class_Matter_Device_update_remotes_info, /* name */
/********************************************************************
-** Solidified function: get_plugin_class_displayname
+** Solidified function: button_multi_pressed
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
+be_local_closure(class_Matter_Device_button_multi_pressed, /* name */
be_nested_proto(
- 5, /* nstack */
- 2, /* argc */
+ 11, /* nstack */
+ 3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -3684,23 +1348,27 @@ be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_classes),
- /* K1 */ be_nested_str_weak(find),
- /* K2 */ be_nested_str_weak(DISPLAY_NAME),
- /* K3 */ be_nested_str_weak(),
+ /* K0 */ be_nested_str_weak(button_handler),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(2),
+ /* K3 */ be_const_int(0),
}),
- be_str_weak(get_plugin_class_displayname),
+ be_str_weak(button_multi_pressed),
&be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x88080100, // 0000 GETMBR R2 R0 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x5C100200, // 0002 MOVE R4 R1
- 0x7C080400, // 0003 CALL R2 2
- 0x780A0001, // 0004 JMPF R2 #0007
- 0x880C0502, // 0005 GETMBR R3 R2 K2
- 0x70020000, // 0006 JMP #0008
- 0x580C0003, // 0007 LDCONST R3 K3
- 0x80040600, // 0008 RET 1 R3
+ ( &(const binstruction[13]) { /* code */
+ 0x540E0007, // 0000 LDINT R3 8
+ 0x3C0C0403, // 0001 SHR R3 R2 R3
+ 0x541200FE, // 0002 LDINT R4 255
+ 0x2C0C0604, // 0003 AND R3 R3 R4
+ 0x541200FE, // 0004 LDINT R4 255
+ 0x2C100404, // 0005 AND R4 R2 R4
+ 0x8C140100, // 0006 GETMET R5 R0 K0
+ 0x001C0901, // 0007 ADD R7 R4 K1
+ 0x58200002, // 0008 LDCONST R8 K2
+ 0x58240003, // 0009 LDCONST R9 K3
+ 0x5C280600, // 000A MOVE R10 R3
+ 0x7C140A00, // 000B CALL R5 5
+ 0x80000000, // 000C RET 0
})
)
);
@@ -3708,61 +1376,82 @@ be_local_closure(class_Matter_Device_get_plugin_class_displayname, /* name */
/********************************************************************
-** Solidified function: start_commissioning_complete_deferred
+** Solidified function: sort_distinct
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
+be_local_closure(class_Matter_Device_sort_distinct, /* name */
be_nested_proto(
- 6, /* nstack */
- 2, /* argc */
- 2, /* varg */
+ 7, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 2]) {
- be_nested_proto(
- 3, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 2]) { /* upvals */
- be_local_const_upval(1, 0),
- be_local_const_upval(1, 1),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 1]) { /* constants */
- /* K0 */ be_nested_str_weak(start_commissioning_complete),
- }),
- be_str_weak(_X3Clambda_X3E),
- &be_const_str_solidified,
- ( &(const binstruction[ 5]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x68080001, // 0002 GETUPV R2 U1
- 0x7C000400, // 0003 CALL R0 2
- 0x80040000, // 0004 RET 1 R0
- })
- ),
+ 0, /* has sup protos */
&be_class_Matter_Device,
- }),
1, /* has constants */
- ( &(const bvalue[ 3]) { /* constants */
- /* K0 */ be_nested_str_weak(tasmota),
- /* K1 */ be_nested_str_weak(set_timer),
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_const_int(1),
/* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(remove),
}),
- be_str_weak(start_commissioning_complete_deferred),
+ be_str_weak(sort_distinct),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0xB80A0000, // 0000 GETNGBL R2 K0
- 0x8C080501, // 0001 GETMET R2 R2 K1
- 0x58100002, // 0002 LDCONST R4 K2
- 0x84140000, // 0003 CLOSURE R5 P0
- 0x7C080600, // 0004 CALL R2 3
- 0xA0000000, // 0005 CLOSE R0
- 0x80000000, // 0006 RET 0
+ ( &(const binstruction[53]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080010, // 0001 GETGBL R2 G16
+ 0x600C000C, // 0002 GETGBL R3 G12
+ 0x5C100000, // 0003 MOVE R4 R0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0x040C0701, // 0005 SUB R3 R3 K1
+ 0x400E0203, // 0006 CONNECT R3 K1 R3
+ 0x7C080200, // 0007 CALL R2 1
+ 0xA8020010, // 0008 EXBLK 0 #001A
+ 0x5C0C0400, // 0009 MOVE R3 R2
+ 0x7C0C0000, // 000A CALL R3 0
+ 0x94100003, // 000B GETIDX R4 R0 R3
+ 0x5C140600, // 000C MOVE R5 R3
+ 0x24180B02, // 000D GT R6 R5 K2
+ 0x781A0008, // 000E JMPF R6 #0018
+ 0x04180B01, // 000F SUB R6 R5 K1
+ 0x94180006, // 0010 GETIDX R6 R0 R6
+ 0x24180C04, // 0011 GT R6 R6 R4
+ 0x781A0004, // 0012 JMPF R6 #0018
+ 0x04180B01, // 0013 SUB R6 R5 K1
+ 0x94180006, // 0014 GETIDX R6 R0 R6
+ 0x98000A06, // 0015 SETIDX R0 R5 R6
+ 0x04140B01, // 0016 SUB R5 R5 K1
+ 0x7001FFF4, // 0017 JMP #000D
+ 0x98000A04, // 0018 SETIDX R0 R5 R4
+ 0x7001FFEE, // 0019 JMP #0009
+ 0x58080003, // 001A LDCONST R2 K3
+ 0xAC080200, // 001B CATCH R2 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x58080001, // 001D LDCONST R2 K1
+ 0x600C000C, // 001E GETGBL R3 G12
+ 0x5C100000, // 001F MOVE R4 R0
+ 0x7C0C0200, // 0020 CALL R3 1
+ 0x180C0701, // 0021 LE R3 R3 K1
+ 0x780E0000, // 0022 JMPF R3 #0024
+ 0x80040000, // 0023 RET 1 R0
+ 0x940C0102, // 0024 GETIDX R3 R0 K2
+ 0x6010000C, // 0025 GETGBL R4 G12
+ 0x5C140000, // 0026 MOVE R5 R0
+ 0x7C100200, // 0027 CALL R4 1
+ 0x14100404, // 0028 LT R4 R2 R4
+ 0x78120009, // 0029 JMPF R4 #0034
+ 0x94100002, // 002A GETIDX R4 R0 R2
+ 0x1C100803, // 002B EQ R4 R4 R3
+ 0x78120003, // 002C JMPF R4 #0031
+ 0x8C100104, // 002D GETMET R4 R0 K4
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x70020001, // 0030 JMP #0033
+ 0x940C0002, // 0031 GETIDX R3 R0 R2
+ 0x00080501, // 0032 ADD R2 R2 K1
+ 0x7001FFF0, // 0033 JMP #0025
+ 0x80040000, // 0034 RET 1 R0
})
)
);
@@ -3770,461 +1459,10 @@ be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /*
/********************************************************************
-** Solidified function: _trigger_read_sensors
+** Solidified function: mdns_remove_PASE
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
- be_nested_proto(
- 8, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[13]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(read_sensors),
- /* K3 */ be_nested_str_weak(loglevel),
- /* K4 */ be_const_int(3),
- /* K5 */ be_nested_str_weak(log),
- /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
- /* K7 */ be_nested_str_weak(load),
- /* K8 */ be_const_int(0),
- /* K9 */ be_nested_str_weak(plugins),
- /* K10 */ be_nested_str_weak(parse_sensors),
- /* K11 */ be_const_int(1),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
- }),
- be_str_weak(_trigger_read_sensors),
- &be_const_str_solidified,
- ( &(const binstruction[48]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0xB80A0200, // 0001 GETNGBL R2 K1
- 0x8C080502, // 0002 GETMET R2 R2 K2
- 0x7C080200, // 0003 CALL R2 1
- 0xB80E0200, // 0004 GETNGBL R3 K1
- 0x8C0C0703, // 0005 GETMET R3 R3 K3
- 0x58140004, // 0006 LDCONST R5 K4
- 0x7C0C0400, // 0007 CALL R3 2
- 0x780E0006, // 0008 JMPF R3 #0010
- 0xB80E0A00, // 0009 GETNGBL R3 K5
- 0x60100008, // 000A GETGBL R4 G8
- 0x5C140400, // 000B MOVE R5 R2
- 0x7C100200, // 000C CALL R4 1
- 0x00120C04, // 000D ADD R4 K6 R4
- 0x58140004, // 000E LDCONST R5 K4
- 0x7C0C0400, // 000F CALL R3 2
- 0x4C0C0000, // 0010 LDNIL R3
- 0x1C0C0403, // 0011 EQ R3 R2 R3
- 0x780E0000, // 0012 JMPF R3 #0014
- 0x80000600, // 0013 RET 0
- 0x8C0C0307, // 0014 GETMET R3 R1 K7
- 0x5C140400, // 0015 MOVE R5 R2
- 0x7C0C0400, // 0016 CALL R3 2
- 0x4C100000, // 0017 LDNIL R4
- 0x20100604, // 0018 NE R4 R3 R4
- 0x7812000D, // 0019 JMPF R4 #0028
- 0x58100008, // 001A LDCONST R4 K8
- 0x6014000C, // 001B GETGBL R5 G12
- 0x88180109, // 001C GETMBR R6 R0 K9
- 0x7C140200, // 001D CALL R5 1
- 0x14140805, // 001E LT R5 R4 R5
- 0x78160006, // 001F JMPF R5 #0027
- 0x88140109, // 0020 GETMBR R5 R0 K9
- 0x94140A04, // 0021 GETIDX R5 R5 R4
- 0x8C140B0A, // 0022 GETMET R5 R5 K10
- 0x5C1C0600, // 0023 MOVE R7 R3
- 0x7C140400, // 0024 CALL R5 2
- 0x0010090B, // 0025 ADD R4 R4 K11
- 0x7001FFF3, // 0026 JMP #001B
- 0x70020006, // 0027 JMP #002F
- 0xB8120A00, // 0028 GETNGBL R4 K5
- 0x60140008, // 0029 GETGBL R5 G8
- 0x5C180400, // 002A MOVE R6 R2
- 0x7C140200, // 002B CALL R5 1
- 0x00161805, // 002C ADD R5 K12 R5
- 0x58180004, // 002D LDCONST R6 K4
- 0x7C100400, // 002E CALL R4 2
- 0x80000000, // 002F RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: every_second
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_second, /* name */
- be_nested_proto(
- 4, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 7]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(every_second),
- /* K2 */ be_nested_str_weak(message_handler),
- /* K3 */ be_nested_str_weak(events),
- /* K4 */ be_nested_str_weak(commissioning_open),
- /* K5 */ be_nested_str_weak(tasmota),
- /* K6 */ be_nested_str_weak(time_reached),
- }),
- be_str_weak(every_second),
- &be_const_str_solidified,
- ( &(const binstruction[21]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x88040102, // 0003 GETMBR R1 R0 K2
- 0x8C040301, // 0004 GETMET R1 R1 K1
- 0x7C040200, // 0005 CALL R1 1
- 0x88040103, // 0006 GETMBR R1 R0 K3
- 0x8C040301, // 0007 GETMET R1 R1 K1
- 0x7C040200, // 0008 CALL R1 1
- 0x88040104, // 0009 GETMBR R1 R0 K4
- 0x4C080000, // 000A LDNIL R2
- 0x20040202, // 000B NE R1 R1 R2
- 0x78060006, // 000C JMPF R1 #0014
- 0xB8060A00, // 000D GETNGBL R1 K5
- 0x8C040306, // 000E GETMET R1 R1 K6
- 0x880C0104, // 000F GETMBR R3 R0 K4
- 0x7C040400, // 0010 CALL R1 2
- 0x78060001, // 0011 JMPF R1 #0014
- 0x4C040000, // 0012 LDNIL R1
- 0x90020801, // 0013 SETMBR R0 K4 R1
- 0x80000000, // 0014 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: start_basic_commissioning
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
- be_nested_proto(
- 13, /* nstack */
- 8, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 1, /* has sup protos */
- ( &(const struct bproto*[ 3]) {
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Wifi_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- be_nested_proto(
- 4, /* nstack */
- 0, /* argc */
- 0, /* varg */
- 1, /* has upvals */
- ( &(const bupvaldesc[ 1]) { /* upvals */
- be_local_const_upval(1, 0),
- }),
- 0, /* has sup protos */
- NULL,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns_announce_PASE),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(remove_rule),
- /* K3 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(_anonymous_),
- &be_const_str_solidified,
- ( &(const binstruction[ 9]) { /* code */
- 0x68000000, // 0000 GETUPV R0 U0
- 0x8C000100, // 0001 GETMET R0 R0 K0
- 0x7C000200, // 0002 CALL R0 1
- 0xB8020200, // 0003 GETNGBL R0 K1
- 0x8C000102, // 0004 GETMET R0 R0 K2
- 0x58080003, // 0005 LDCONST R2 K3
- 0x580C0000, // 0006 LDCONST R3 K0
- 0x7C000600, // 0007 CALL R0 3
- 0x80000000, // 0008 RET 0
- })
- ),
- &be_class_Matter_Device,
- }),
- 1, /* has constants */
- ( &(const bvalue[16]) { /* constants */
- /* K0 */ be_nested_str_weak(commissioning_open),
- /* K1 */ be_nested_str_weak(tasmota),
- /* K2 */ be_nested_str_weak(millis),
- /* K3 */ be_nested_str_weak(commissioning_iterations),
- /* K4 */ be_nested_str_weak(commissioning_discriminator),
- /* K5 */ be_nested_str_weak(commissioning_salt),
- /* K6 */ be_nested_str_weak(commissioning_w0),
- /* K7 */ be_nested_str_weak(commissioning_L),
- /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
- /* K9 */ be_nested_str_weak(wifi),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(mdns_announce_PASE),
- /* K13 */ be_nested_str_weak(add_rule),
- /* K14 */ be_nested_str_weak(Wifi_X23Connected),
- /* K15 */ be_nested_str_weak(Eth_X23Connected),
- }),
- be_str_weak(start_basic_commissioning),
- &be_const_str_solidified,
- ( &(const binstruction[40]) { /* code */
- 0xB8220200, // 0000 GETNGBL R8 K1
- 0x8C201102, // 0001 GETMET R8 R8 K2
- 0x7C200200, // 0002 CALL R8 1
- 0x542603E7, // 0003 LDINT R9 1000
- 0x08240209, // 0004 MUL R9 R1 R9
- 0x00201009, // 0005 ADD R8 R8 R9
- 0x90020008, // 0006 SETMBR R0 K0 R8
- 0x90020602, // 0007 SETMBR R0 K3 R2
- 0x90020803, // 0008 SETMBR R0 K4 R3
- 0x90020A04, // 0009 SETMBR R0 K5 R4
- 0x90020C05, // 000A SETMBR R0 K6 R5
- 0x90020E06, // 000B SETMBR R0 K7 R6
- 0x90021007, // 000C SETMBR R0 K8 R7
- 0xB8220200, // 000D GETNGBL R8 K1
- 0x8C201109, // 000E GETMET R8 R8 K9
- 0x7C200200, // 000F CALL R8 1
- 0x9420110A, // 0010 GETIDX R8 R8 K10
- 0x74220004, // 0011 JMPT R8 #0017
- 0xB8220200, // 0012 GETNGBL R8 K1
- 0x8C20110B, // 0013 GETMET R8 R8 K11
- 0x7C200200, // 0014 CALL R8 1
- 0x9420110A, // 0015 GETIDX R8 R8 K10
- 0x78220002, // 0016 JMPF R8 #001A
- 0x8C20010C, // 0017 GETMET R8 R0 K12
- 0x7C200200, // 0018 CALL R8 1
- 0x7002000B, // 0019 JMP #0026
- 0xB8220200, // 001A GETNGBL R8 K1
- 0x8C20110D, // 001B GETMET R8 R8 K13
- 0x5828000E, // 001C LDCONST R10 K14
- 0x842C0000, // 001D CLOSURE R11 P0
- 0x5830000C, // 001E LDCONST R12 K12
- 0x7C200800, // 001F CALL R8 4
- 0xB8220200, // 0020 GETNGBL R8 K1
- 0x8C20110D, // 0021 GETMET R8 R8 K13
- 0x5828000F, // 0022 LDCONST R10 K15
- 0x842C0001, // 0023 CLOSURE R11 P1
- 0x5830000C, // 0024 LDCONST R12 K12
- 0x7C200800, // 0025 CALL R8 4
- 0xA0000000, // 0026 CLOSE R0
- 0x80000000, // 0027 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: mdns_announce_op_discovery
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
- be_nested_proto(
- 14, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[27]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(log),
- /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
- /* K9 */ be_const_int(3),
- /* K10 */ be_nested_str_weak(tasmota),
- /* K11 */ be_nested_str_weak(eth),
- /* K12 */ be_nested_str_weak(find),
- /* K13 */ be_nested_str_weak(up),
- /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
- /* K15 */ be_nested_str_weak(hostname_eth),
- /* K16 */ be_nested_str_weak(add_service),
- /* K17 */ be_nested_str_weak(_matter),
- /* K18 */ be_nested_str_weak(_tcp),
- /* K19 */ be_nested_str_weak(_I),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
- /* K21 */ be_nested_str_weak(add_subtype),
- /* K22 */ be_nested_str_weak(wifi),
- /* K23 */ be_nested_str_weak(hostname_wifi),
- /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K25 */ be_nested_str_weak(_X7C),
- /* K26 */ be_const_int(2),
- }),
- be_str_weak(mdns_announce_op_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[115]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA802005F, // 0001 EXBLK 0 #0062
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x001E1005, // 0011 ADD R7 K8 R5
- 0x58200009, // 0012 LDCONST R8 K9
- 0x7C180400, // 0013 CALL R6 2
- 0xB81A1400, // 0014 GETNGBL R6 K10
- 0x8C180D0B, // 0015 GETMET R6 R6 K11
- 0x7C180200, // 0016 CALL R6 1
- 0x8C180D0C, // 0017 GETMET R6 R6 K12
- 0x5820000D, // 0018 LDCONST R8 K13
- 0x7C180400, // 0019 CALL R6 2
- 0x781A001E, // 001A JMPF R6 #003A
- 0xB81A0E00, // 001B GETNGBL R6 K7
- 0x601C0018, // 001C GETGBL R7 G24
- 0x5820000E, // 001D LDCONST R8 K14
- 0x5824000B, // 001E LDCONST R9 K11
- 0x5C280A00, // 001F MOVE R10 R5
- 0x882C010F, // 0020 GETMBR R11 R0 K15
- 0x7C1C0800, // 0021 CALL R7 4
- 0x58200009, // 0022 LDCONST R8 K9
- 0x7C180400, // 0023 CALL R6 2
- 0x8C180510, // 0024 GETMET R6 R2 K16
- 0x58200011, // 0025 LDCONST R8 K17
- 0x58240012, // 0026 LDCONST R9 K18
- 0x542A15A3, // 0027 LDINT R10 5540
- 0x4C2C0000, // 0028 LDNIL R11
- 0x5C300A00, // 0029 MOVE R12 R5
- 0x8834010F, // 002A GETMBR R13 R0 K15
- 0x7C180E00, // 002B CALL R6 7
- 0x8C180905, // 002C GETMET R6 R4 K5
- 0x7C180200, // 002D CALL R6 1
- 0x001A2606, // 002E ADD R6 K19 R6
- 0xB81E0E00, // 002F GETNGBL R7 K7
- 0x00222806, // 0030 ADD R8 K20 R6
- 0x58240009, // 0031 LDCONST R9 K9
- 0x7C1C0400, // 0032 CALL R7 2
- 0x8C1C0515, // 0033 GETMET R7 R2 K21
- 0x58240011, // 0034 LDCONST R9 K17
- 0x58280012, // 0035 LDCONST R10 K18
- 0x5C2C0A00, // 0036 MOVE R11 R5
- 0x8830010F, // 0037 GETMBR R12 R0 K15
- 0x5C340C00, // 0038 MOVE R13 R6
- 0x7C1C0C00, // 0039 CALL R7 6
- 0xB81A1400, // 003A GETNGBL R6 K10
- 0x8C180D16, // 003B GETMET R6 R6 K22
- 0x7C180200, // 003C CALL R6 1
- 0x8C180D0C, // 003D GETMET R6 R6 K12
- 0x5820000D, // 003E LDCONST R8 K13
- 0x7C180400, // 003F CALL R6 2
- 0x781A001E, // 0040 JMPF R6 #0060
- 0xB81A0E00, // 0041 GETNGBL R6 K7
- 0x601C0018, // 0042 GETGBL R7 G24
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x58240016, // 0044 LDCONST R9 K22
- 0x5C280A00, // 0045 MOVE R10 R5
- 0x882C0117, // 0046 GETMBR R11 R0 K23
- 0x7C1C0800, // 0047 CALL R7 4
- 0x58200009, // 0048 LDCONST R8 K9
- 0x7C180400, // 0049 CALL R6 2
- 0x8C180510, // 004A GETMET R6 R2 K16
- 0x58200011, // 004B LDCONST R8 K17
- 0x58240012, // 004C LDCONST R9 K18
- 0x542A15A3, // 004D LDINT R10 5540
- 0x4C2C0000, // 004E LDNIL R11
- 0x5C300A00, // 004F MOVE R12 R5
- 0x88340117, // 0050 GETMBR R13 R0 K23
- 0x7C180E00, // 0051 CALL R6 7
- 0x8C180905, // 0052 GETMET R6 R4 K5
- 0x7C180200, // 0053 CALL R6 1
- 0x001A2606, // 0054 ADD R6 K19 R6
- 0xB81E0E00, // 0055 GETNGBL R7 K7
- 0x00222806, // 0056 ADD R8 K20 R6
- 0x58240009, // 0057 LDCONST R9 K9
- 0x7C1C0400, // 0058 CALL R7 2
- 0x8C1C0515, // 0059 GETMET R7 R2 K21
- 0x58240011, // 005A LDCONST R9 K17
- 0x58280012, // 005B LDCONST R10 K18
- 0x5C2C0A00, // 005C MOVE R11 R5
- 0x88300117, // 005D GETMBR R12 R0 K23
- 0x5C340C00, // 005E MOVE R13 R6
- 0x7C1C0C00, // 005F CALL R7 6
- 0xA8040001, // 0060 EXBLK 1 1
- 0x7002000F, // 0061 JMP #0072
- 0xAC0C0002, // 0062 CATCH R3 0 2
- 0x7002000C, // 0063 JMP #0071
- 0xB8160E00, // 0064 GETNGBL R5 K7
- 0x60180008, // 0065 GETGBL R6 G8
- 0x5C1C0600, // 0066 MOVE R7 R3
- 0x7C180200, // 0067 CALL R6 1
- 0x001A3006, // 0068 ADD R6 K24 R6
- 0x00180D19, // 0069 ADD R6 R6 K25
- 0x601C0008, // 006A GETGBL R7 G8
- 0x5C200800, // 006B MOVE R8 R4
- 0x7C1C0200, // 006C CALL R7 1
- 0x00180C07, // 006D ADD R6 R6 R7
- 0x581C001A, // 006E LDCONST R7 K26
- 0x7C140400, // 006F CALL R5 2
- 0x70020000, // 0070 JMP #0072
- 0xB0080000, // 0071 RAISE 2 R0 R0
- 0x80000000, // 0072 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: compute_manual_pairing_code
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+be_local_closure(class_Matter_Device_mdns_remove_PASE, /* name */
be_nested_proto(
9, /* nstack */
1, /* argc */
@@ -4234,168 +1472,141 @@ be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
- /* K0 */ be_nested_str_weak(root_discriminator),
- /* K1 */ be_nested_str_weak(root_passcode),
- /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
- /* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(Verhoeff),
- /* K5 */ be_nested_str_weak(checksum),
+ ( &(const bvalue[19]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(mdns_pase_eth),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20calling_X20mdns_X2Eremove_service_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X2C_X20_X25s_X29),
+ /* K4 */ be_nested_str_weak(_matterc),
+ /* K5 */ be_nested_str_weak(_udp),
+ /* K6 */ be_nested_str_weak(commissioning_instance_eth),
+ /* K7 */ be_nested_str_weak(hostname_eth),
+ /* K8 */ be_const_int(3),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K10 */ be_nested_str_weak(eth),
+ /* K11 */ be_nested_str_weak(remove_service),
+ /* K12 */ be_nested_str_weak(mdns_pase_wifi),
+ /* K13 */ be_nested_str_weak(commissioning_instance_wifi),
+ /* K14 */ be_nested_str_weak(hostname_wifi),
+ /* K15 */ be_nested_str_weak(wifi),
+ /* K16 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K17 */ be_nested_str_weak(_X7C),
+ /* K18 */ be_const_int(2),
}),
- be_str_weak(compute_manual_pairing_code),
+ be_str_weak(mdns_remove_PASE),
&be_const_str_solidified,
- ( &(const binstruction[30]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x540A0FFE, // 0001 LDINT R2 4095
- 0x2C040202, // 0002 AND R1 R1 R2
- 0x540A0009, // 0003 LDINT R2 10
- 0x3C040202, // 0004 SHR R1 R1 R2
- 0x88080100, // 0005 GETMBR R2 R0 K0
- 0x540E02FF, // 0006 LDINT R3 768
- 0x2C080403, // 0007 AND R2 R2 R3
- 0x540E0005, // 0008 LDINT R3 6
- 0x38080403, // 0009 SHL R2 R2 R3
- 0x880C0101, // 000A GETMBR R3 R0 K1
- 0x54123FFE, // 000B LDINT R4 16383
- 0x2C0C0604, // 000C AND R3 R3 R4
- 0x30080403, // 000D OR R2 R2 R3
- 0x880C0101, // 000E GETMBR R3 R0 K1
- 0x5412000D, // 000F LDINT R4 14
- 0x3C0C0604, // 0010 SHR R3 R3 R4
- 0x60100018, // 0011 GETGBL R4 G24
- 0x58140002, // 0012 LDCONST R5 K2
- 0x5C180200, // 0013 MOVE R6 R1
- 0x5C1C0400, // 0014 MOVE R7 R2
- 0x5C200600, // 0015 MOVE R8 R3
- 0x7C100800, // 0016 CALL R4 4
- 0xB8160600, // 0017 GETNGBL R5 K3
- 0x88140B04, // 0018 GETMBR R5 R5 K4
- 0x8C140B05, // 0019 GETMET R5 R5 K5
- 0x5C1C0800, // 001A MOVE R7 R4
- 0x7C140400, // 001B CALL R5 2
- 0x00100805, // 001C ADD R4 R4 R5
- 0x80040800, // 001D RET 1 R4
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: event_fabrics_saved
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
- be_nested_proto(
- 3, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(count_active_fabrics),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(event_fabrics_saved),
- &be_const_str_solidified,
- ( &(const binstruction[12]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x8C040301, // 0001 GETMET R1 R1 K1
- 0x7C040200, // 0002 CALL R1 1
- 0x24040302, // 0003 GT R1 R1 K2
- 0x78060005, // 0004 JMPF R1 #000B
- 0x88040103, // 0005 GETMBR R1 R0 K3
- 0x74060003, // 0006 JMPT R1 #000B
- 0x50040200, // 0007 LDBOOL R1 1 0
- 0x90020601, // 0008 SETMBR R0 K3 R1
- 0x8C040104, // 0009 GETMET R1 R0 K4
- 0x7C040200, // 000A CALL R1 1
- 0x80000000, // 000B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: autoconf_device
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_autoconf_device, /* name */
- be_nested_proto(
- 5, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[15]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_const_int(0),
- /* K3 */ be_nested_str_weak(plugins_persist),
- /* K4 */ be_nested_str_weak(plugins_config),
- /* K5 */ be_nested_str_weak(autoconf_device_map),
- /* K6 */ be_nested_str_weak(plugins_config_remotes),
- /* K7 */ be_nested_str_weak(adjust_next_ep),
- /* K8 */ be_nested_str_weak(log),
- /* K9 */ be_nested_str_weak(MTR_X3A_X20autoconfig_X20_X3D_X20),
- /* K10 */ be_const_int(3),
- /* K11 */ be_nested_str_weak(_instantiate_plugins_from_config),
- /* K12 */ be_nested_str_weak(sessions),
- /* K13 */ be_nested_str_weak(count_active_fabrics),
- /* K14 */ be_nested_str_weak(save_param),
- }),
- be_str_weak(autoconf_device),
- &be_const_str_solidified,
- ( &(const binstruction[39]) { /* code */
+ ( &(const binstruction[77]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
- 0x6008000C, // 0001 GETGBL R2 G12
- 0x880C0101, // 0002 GETMBR R3 R0 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x24080502, // 0004 GT R2 R2 K2
- 0x780A0000, // 0005 JMPF R2 #0007
- 0x80000400, // 0006 RET 0
- 0x88080103, // 0007 GETMBR R2 R0 K3
- 0x740A000E, // 0008 JMPT R2 #0018
- 0x8C080105, // 0009 GETMET R2 R0 K5
- 0x7C080200, // 000A CALL R2 1
- 0x90020802, // 000B SETMBR R0 K4 R2
- 0x60080013, // 000C GETGBL R2 G19
- 0x7C080000, // 000D CALL R2 0
- 0x90020C02, // 000E SETMBR R0 K6 R2
- 0x8C080107, // 000F GETMET R2 R0 K7
- 0x7C080200, // 0010 CALL R2 1
- 0xB80A1000, // 0011 GETNGBL R2 K8
- 0x600C0008, // 0012 GETGBL R3 G8
- 0x88100104, // 0013 GETMBR R4 R0 K4
- 0x7C0C0200, // 0014 CALL R3 1
- 0x000E1203, // 0015 ADD R3 K9 R3
- 0x5810000A, // 0016 LDCONST R4 K10
- 0x7C080400, // 0017 CALL R2 2
- 0x8C08010B, // 0018 GETMET R2 R0 K11
- 0x88100104, // 0019 GETMBR R4 R0 K4
- 0x7C080400, // 001A CALL R2 2
- 0x88080103, // 001B GETMBR R2 R0 K3
- 0x740A0008, // 001C JMPT R2 #0026
- 0x8808010C, // 001D GETMBR R2 R0 K12
- 0x8C08050D, // 001E GETMET R2 R2 K13
- 0x7C080200, // 001F CALL R2 1
- 0x24080502, // 0020 GT R2 R2 K2
- 0x780A0003, // 0021 JMPF R2 #0026
- 0x50080200, // 0022 LDBOOL R2 1 0
- 0x90020602, // 0023 SETMBR R0 K3 R2
- 0x8C08010E, // 0024 GETMET R2 R0 K14
- 0x7C080200, // 0025 CALL R2 1
- 0x80000000, // 0026 RET 0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x88080101, // 0002 GETMBR R2 R0 K1
+ 0x780A0019, // 0003 JMPF R2 #001E
+ 0xB80A0400, // 0004 GETNGBL R2 K2
+ 0x600C0018, // 0005 GETGBL R3 G24
+ 0x58100003, // 0006 LDCONST R4 K3
+ 0x58140004, // 0007 LDCONST R5 K4
+ 0x58180005, // 0008 LDCONST R6 K5
+ 0x881C0106, // 0009 GETMBR R7 R0 K6
+ 0x88200107, // 000A GETMBR R8 R0 K7
+ 0x7C0C0A00, // 000B CALL R3 5
+ 0x58100008, // 000C LDCONST R4 K8
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0400, // 000E GETNGBL R2 K2
+ 0x600C0018, // 000F GETGBL R3 G24
+ 0x58100009, // 0010 LDCONST R4 K9
+ 0x5814000A, // 0011 LDCONST R5 K10
+ 0x88180106, // 0012 GETMBR R6 R0 K6
+ 0x7C0C0600, // 0013 CALL R3 3
+ 0x58100008, // 0014 LDCONST R4 K8
+ 0x7C080400, // 0015 CALL R2 2
+ 0x50080000, // 0016 LDBOOL R2 0 0
+ 0x90020202, // 0017 SETMBR R0 K1 R2
+ 0x8C08030B, // 0018 GETMET R2 R1 K11
+ 0x58100004, // 0019 LDCONST R4 K4
+ 0x58140005, // 001A LDCONST R5 K5
+ 0x88180106, // 001B GETMBR R6 R0 K6
+ 0x881C0107, // 001C GETMBR R7 R0 K7
+ 0x7C080A00, // 001D CALL R2 5
+ 0x8808010C, // 001E GETMBR R2 R0 K12
+ 0x780A0019, // 001F JMPF R2 #003A
+ 0xB80A0400, // 0020 GETNGBL R2 K2
+ 0x600C0018, // 0021 GETGBL R3 G24
+ 0x58100003, // 0022 LDCONST R4 K3
+ 0x58140004, // 0023 LDCONST R5 K4
+ 0x58180005, // 0024 LDCONST R6 K5
+ 0x881C010D, // 0025 GETMBR R7 R0 K13
+ 0x8820010E, // 0026 GETMBR R8 R0 K14
+ 0x7C0C0A00, // 0027 CALL R3 5
+ 0x58100008, // 0028 LDCONST R4 K8
+ 0x7C080400, // 0029 CALL R2 2
+ 0xB80A0400, // 002A GETNGBL R2 K2
+ 0x600C0018, // 002B GETGBL R3 G24
+ 0x58100009, // 002C LDCONST R4 K9
+ 0x5814000F, // 002D LDCONST R5 K15
+ 0x8818010D, // 002E GETMBR R6 R0 K13
+ 0x7C0C0600, // 002F CALL R3 3
+ 0x58100008, // 0030 LDCONST R4 K8
+ 0x7C080400, // 0031 CALL R2 2
+ 0x50080000, // 0032 LDBOOL R2 0 0
+ 0x90021802, // 0033 SETMBR R0 K12 R2
+ 0x8C08030B, // 0034 GETMET R2 R1 K11
+ 0x58100004, // 0035 LDCONST R4 K4
+ 0x58140005, // 0036 LDCONST R5 K5
+ 0x8818010D, // 0037 GETMBR R6 R0 K13
+ 0x881C010E, // 0038 GETMBR R7 R0 K14
+ 0x7C080A00, // 0039 CALL R2 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC080002, // 003C CATCH R2 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8120400, // 003E GETNGBL R4 K2
+ 0x60140008, // 003F GETGBL R5 G8
+ 0x5C180400, // 0040 MOVE R6 R2
+ 0x7C140200, // 0041 CALL R5 1
+ 0x00162005, // 0042 ADD R5 K16 R5
+ 0x00140B11, // 0043 ADD R5 R5 K17
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x00140A06, // 0047 ADD R5 R5 R6
+ 0x58180012, // 0048 LDCONST R6 K18
+ 0x7C100400, // 0049 CALL R4 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_plugin_remote_info
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config_remotes),
+ /* K1 */ be_nested_str_weak(find),
+ }),
+ be_str_weak(get_plugin_remote_info),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x60140013, // 0003 GETGBL R5 G19
+ 0x7C140000, // 0004 CALL R5 0
+ 0x7C080600, // 0005 CALL R2 3
+ 0x80040400, // 0006 RET 1 R2
})
)
);
@@ -4525,12 +1736,12 @@ be_local_closure(class_Matter_Device_start_root_basic_commissioning, /* name *
/********************************************************************
-** Solidified function: mdns_announce_op_discovery_all_fabrics
+** Solidified function: event_fabrics_saved
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
+be_local_closure(class_Matter_Device_event_fabrics_saved, /* name */
be_nested_proto(
- 6, /* nstack */
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -4538,39 +1749,28 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 6]) { /* constants */
+ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(sessions),
- /* K1 */ be_nested_str_weak(active_fabrics),
- /* K2 */ be_nested_str_weak(get_device_id),
- /* K3 */ be_nested_str_weak(get_fabric_id),
- /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
- /* K5 */ be_nested_str_weak(stop_iteration),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(plugins_persist),
+ /* K4 */ be_nested_str_weak(save_param),
}),
- be_str_weak(mdns_announce_op_discovery_all_fabrics),
+ be_str_weak(event_fabrics_saved),
&be_const_str_solidified,
- ( &(const binstruction[22]) { /* code */
- 0x60040010, // 0000 GETGBL R1 G16
- 0x88080100, // 0001 GETMBR R2 R0 K0
- 0x8C080501, // 0002 GETMET R2 R2 K1
- 0x7C080200, // 0003 CALL R2 1
- 0x7C040200, // 0004 CALL R1 1
- 0xA802000B, // 0005 EXBLK 0 #0012
- 0x5C080200, // 0006 MOVE R2 R1
- 0x7C080000, // 0007 CALL R2 0
- 0x8C0C0502, // 0008 GETMET R3 R2 K2
- 0x7C0C0200, // 0009 CALL R3 1
- 0x780E0005, // 000A JMPF R3 #0011
- 0x8C0C0503, // 000B GETMET R3 R2 K3
- 0x7C0C0200, // 000C CALL R3 1
- 0x780E0002, // 000D JMPF R3 #0011
- 0x8C0C0104, // 000E GETMET R3 R0 K4
- 0x5C140400, // 000F MOVE R5 R2
- 0x7C0C0400, // 0010 CALL R3 2
- 0x7001FFF3, // 0011 JMP #0006
- 0x58040005, // 0012 LDCONST R1 K5
- 0xAC040200, // 0013 CATCH R1 1 0
- 0xB0080000, // 0014 RAISE 2 R0 R0
- 0x80000000, // 0015 RET 0
+ ( &(const binstruction[12]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x24040302, // 0003 GT R1 R1 K2
+ 0x78060005, // 0004 JMPF R1 #000B
+ 0x88040103, // 0005 GETMBR R1 R0 K3
+ 0x74060003, // 0006 JMPT R1 #000B
+ 0x50040200, // 0007 LDBOOL R1 1 0
+ 0x90020601, // 0008 SETMBR R0 K3 R1
+ 0x8C040104, // 0009 GETMET R1 R0 K4
+ 0x7C040200, // 000A CALL R1 1
+ 0x80000000, // 000B RET 0
})
)
);
@@ -4578,170 +1778,133 @@ be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /
/********************************************************************
-** Solidified function: mdns_remove_op_discovery
+** Solidified function: start_mdns_announce_hostnames
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
- be_nested_proto(
- 12, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[23]) { /* constants */
- /* K0 */ be_nested_str_weak(mdns),
- /* K1 */ be_nested_str_weak(get_device_id),
- /* K2 */ be_nested_str_weak(copy),
- /* K3 */ be_nested_str_weak(reverse),
- /* K4 */ be_nested_str_weak(get_fabric_compressed),
- /* K5 */ be_nested_str_weak(tohex),
- /* K6 */ be_nested_str_weak(_X2D),
- /* K7 */ be_nested_str_weak(tasmota),
- /* K8 */ be_nested_str_weak(eth),
- /* K9 */ be_nested_str_weak(find),
- /* K10 */ be_nested_str_weak(up),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
- /* K13 */ be_const_int(3),
- /* K14 */ be_nested_str_weak(remove_service),
- /* K15 */ be_nested_str_weak(_matter),
- /* K16 */ be_nested_str_weak(_tcp),
- /* K17 */ be_nested_str_weak(hostname_eth),
- /* K18 */ be_nested_str_weak(wifi),
- /* K19 */ be_nested_str_weak(hostname_wifi),
- /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
- /* K21 */ be_nested_str_weak(_X7C),
- /* K22 */ be_const_int(2),
- }),
- be_str_weak(mdns_remove_op_discovery),
- &be_const_str_solidified,
- ( &(const binstruction[77]) { /* code */
- 0xA40A0000, // 0000 IMPORT R2 K0
- 0xA8020039, // 0001 EXBLK 0 #003C
- 0x8C0C0301, // 0002 GETMET R3 R1 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x8C0C0702, // 0004 GETMET R3 R3 K2
- 0x7C0C0200, // 0005 CALL R3 1
- 0x8C0C0703, // 0006 GETMET R3 R3 K3
- 0x7C0C0200, // 0007 CALL R3 1
- 0x8C100304, // 0008 GETMET R4 R1 K4
- 0x7C100200, // 0009 CALL R4 1
- 0x8C140905, // 000A GETMET R5 R4 K5
- 0x7C140200, // 000B CALL R5 1
- 0x00140B06, // 000C ADD R5 R5 K6
- 0x8C180705, // 000D GETMET R6 R3 K5
- 0x7C180200, // 000E CALL R6 1
- 0x00140A06, // 000F ADD R5 R5 R6
- 0xB81A0E00, // 0010 GETNGBL R6 K7
- 0x8C180D08, // 0011 GETMET R6 R6 K8
- 0x7C180200, // 0012 CALL R6 1
- 0x8C180D09, // 0013 GETMET R6 R6 K9
- 0x5820000A, // 0014 LDCONST R8 K10
- 0x7C180400, // 0015 CALL R6 2
- 0x781A000D, // 0016 JMPF R6 #0025
- 0xB81A1600, // 0017 GETNGBL R6 K11
- 0x601C0018, // 0018 GETGBL R7 G24
- 0x5820000C, // 0019 LDCONST R8 K12
- 0x58240008, // 001A LDCONST R9 K8
- 0x5C280A00, // 001B MOVE R10 R5
- 0x7C1C0600, // 001C CALL R7 3
- 0x5820000D, // 001D LDCONST R8 K13
- 0x7C180400, // 001E CALL R6 2
- 0x8C18050E, // 001F GETMET R6 R2 K14
- 0x5820000F, // 0020 LDCONST R8 K15
- 0x58240010, // 0021 LDCONST R9 K16
- 0x5C280A00, // 0022 MOVE R10 R5
- 0x882C0111, // 0023 GETMBR R11 R0 K17
- 0x7C180A00, // 0024 CALL R6 5
- 0xB81A0E00, // 0025 GETNGBL R6 K7
- 0x8C180D12, // 0026 GETMET R6 R6 K18
- 0x7C180200, // 0027 CALL R6 1
- 0x8C180D09, // 0028 GETMET R6 R6 K9
- 0x5820000A, // 0029 LDCONST R8 K10
- 0x7C180400, // 002A CALL R6 2
- 0x781A000D, // 002B JMPF R6 #003A
- 0xB81A1600, // 002C GETNGBL R6 K11
- 0x601C0018, // 002D GETGBL R7 G24
- 0x5820000C, // 002E LDCONST R8 K12
- 0x58240012, // 002F LDCONST R9 K18
- 0x5C280A00, // 0030 MOVE R10 R5
- 0x7C1C0600, // 0031 CALL R7 3
- 0x5820000D, // 0032 LDCONST R8 K13
- 0x7C180400, // 0033 CALL R6 2
- 0x8C18050E, // 0034 GETMET R6 R2 K14
- 0x5820000F, // 0035 LDCONST R8 K15
- 0x58240010, // 0036 LDCONST R9 K16
- 0x5C280A00, // 0037 MOVE R10 R5
- 0x882C0113, // 0038 GETMBR R11 R0 K19
- 0x7C180A00, // 0039 CALL R6 5
- 0xA8040001, // 003A EXBLK 1 1
- 0x7002000F, // 003B JMP #004C
- 0xAC0C0002, // 003C CATCH R3 0 2
- 0x7002000C, // 003D JMP #004B
- 0xB8161600, // 003E GETNGBL R5 K11
- 0x60180008, // 003F GETGBL R6 G8
- 0x5C1C0600, // 0040 MOVE R7 R3
- 0x7C180200, // 0041 CALL R6 1
- 0x001A2806, // 0042 ADD R6 K20 R6
- 0x00180D15, // 0043 ADD R6 R6 K21
- 0x601C0008, // 0044 GETGBL R7 G8
- 0x5C200800, // 0045 MOVE R8 R4
- 0x7C1C0200, // 0046 CALL R7 1
- 0x00180C07, // 0047 ADD R6 R6 R7
- 0x581C0016, // 0048 LDCONST R7 K22
- 0x7C140400, // 0049 CALL R5 2
- 0x70020000, // 004A JMP #004C
- 0xB0080000, // 004B RAISE 2 R0 R0
- 0x80000000, // 004C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_endpoint
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
+be_local_closure(class_Matter_Device_start_mdns_announce_hostnames, /* name */
be_nested_proto(
6, /* nstack */
- 2, /* argc */
+ 1, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
- 0, /* has sup protos */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080000, // 0002 LDBOOL R2 0 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_mdns_host),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[10]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x50080200, // 0002 LDBOOL R2 1 0
+ 0x7C000400, // 0003 CALL R0 2
+ 0xB8020200, // 0004 GETNGBL R0 K1
+ 0x8C000102, // 0005 GETMET R0 R0 K2
+ 0x58080003, // 0006 LDCONST R2 K3
+ 0x580C0004, // 0007 LDCONST R3 K4
+ 0x7C000600, // 0008 CALL R0 3
+ 0x80000000, // 0009 RET 0
+ })
+ ),
&be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_endpoint),
- /* K3 */ be_const_int(1),
}),
- be_str_weak(find_plugin_by_endpoint),
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(wifi),
+ /* K2 */ be_nested_str_weak(up),
+ /* K3 */ be_nested_str_weak(_mdns_announce_hostname),
+ /* K4 */ be_nested_str_weak(add_rule),
+ /* K5 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K6 */ be_nested_str_weak(matter_mdns_host),
+ /* K7 */ be_nested_str_weak(eth),
+ /* K8 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_mdns_announce_hostnames),
&be_const_str_solidified,
- ( &(const binstruction[17]) { /* code */
- 0x58080000, // 0000 LDCONST R2 K0
- 0x600C000C, // 0001 GETGBL R3 G12
- 0x88100101, // 0002 GETMBR R4 R0 K1
- 0x7C0C0200, // 0003 CALL R3 1
- 0x140C0403, // 0004 LT R3 R2 R3
- 0x780E0008, // 0005 JMPF R3 #000F
- 0x880C0101, // 0006 GETMBR R3 R0 K1
- 0x940C0602, // 0007 GETIDX R3 R3 R2
- 0x8C100702, // 0008 GETMET R4 R3 K2
- 0x7C100200, // 0009 CALL R4 1
- 0x1C100801, // 000A EQ R4 R4 R1
- 0x78120000, // 000B JMPF R4 #000D
- 0x80040600, // 000C RET 1 R3
- 0x00080503, // 000D ADD R2 R2 K3
- 0x7001FFF1, // 000E JMP #0001
- 0x4C0C0000, // 000F LDNIL R3
- 0x80040600, // 0010 RET 1 R3
+ ( &(const binstruction[32]) { /* code */
+ 0xB8060000, // 0000 GETNGBL R1 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x94040302, // 0003 GETIDX R1 R1 K2
+ 0x78060003, // 0004 JMPF R1 #0009
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x500C0000, // 0006 LDBOOL R3 0 0
+ 0x7C040400, // 0007 CALL R1 2
+ 0x70020005, // 0008 JMP #000F
+ 0xB8060000, // 0009 GETNGBL R1 K0
+ 0x8C040304, // 000A GETMET R1 R1 K4
+ 0x580C0005, // 000B LDCONST R3 K5
+ 0x84100000, // 000C CLOSURE R4 P0
+ 0x58140006, // 000D LDCONST R5 K6
+ 0x7C040800, // 000E CALL R1 4
+ 0xB8060000, // 000F GETNGBL R1 K0
+ 0x8C040307, // 0010 GETMET R1 R1 K7
+ 0x7C040200, // 0011 CALL R1 1
+ 0x94040302, // 0012 GETIDX R1 R1 K2
+ 0x78060003, // 0013 JMPF R1 #0018
+ 0x8C040103, // 0014 GETMET R1 R0 K3
+ 0x500C0200, // 0015 LDBOOL R3 1 0
+ 0x7C040400, // 0016 CALL R1 2
+ 0x70020005, // 0017 JMP #001E
+ 0xB8060000, // 0018 GETNGBL R1 K0
+ 0x8C040304, // 0019 GETMET R1 R1 K4
+ 0x580C0008, // 001A LDCONST R3 K8
+ 0x84100001, // 001B CLOSURE R4 P1
+ 0x58140006, // 001C LDCONST R5 K6
+ 0x7C040800, // 001D CALL R1 4
+ 0xA0000000, // 001E CLOSE R0
+ 0x80000000, // 001F RET 0
})
)
);
@@ -5035,6 +2198,1766 @@ be_local_closure(class_Matter_Device_mdns_announce_PASE, /* name */
/*******************************************************************/
+/********************************************************************
+** Solidified function: autoconf_sensors_list
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_sensors_list, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[18]) { /* constants */
+ /* K0 */ be_nested_str_weak(k2l),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(Temperature),
+ /* K3 */ be_nested_str_weak(_X23Temperature),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(type),
+ /* K6 */ be_nested_str_weak(temperature),
+ /* K7 */ be_nested_str_weak(filter),
+ /* K8 */ be_nested_str_weak(stop_iteration),
+ /* K9 */ be_nested_str_weak(Pressure),
+ /* K10 */ be_nested_str_weak(_X23Pressure),
+ /* K11 */ be_nested_str_weak(pressure),
+ /* K12 */ be_nested_str_weak(Illuminance),
+ /* K13 */ be_nested_str_weak(_X23Illuminance),
+ /* K14 */ be_nested_str_weak(illuminance),
+ /* K15 */ be_nested_str_weak(Humidity),
+ /* K16 */ be_nested_str_weak(_X23Humidity),
+ /* K17 */ be_nested_str_weak(humidity),
+ }),
+ be_str_weak(autoconf_sensors_list),
+ &be_const_str_solidified,
+ ( &(const binstruction[119]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100100, // 0003 GETMET R4 R0 K0
+ 0x5C180200, // 0004 MOVE R6 R1
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA8020013, // 0007 EXBLK 0 #001C
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x94140204, // 000A GETIDX R5 R1 R4
+ 0x6018000F, // 000B GETGBL R6 G15
+ 0x5C1C0A00, // 000C MOVE R7 R5
+ 0x60200013, // 000D GETGBL R8 G19
+ 0x7C180400, // 000E CALL R6 2
+ 0x781A000A, // 000F JMPF R6 #001B
+ 0x8C180B01, // 0010 GETMET R6 R5 K1
+ 0x58200002, // 0011 LDCONST R8 K2
+ 0x7C180400, // 0012 CALL R6 2
+ 0x781A0006, // 0013 JMPF R6 #001B
+ 0x00180903, // 0014 ADD R6 R4 K3
+ 0x8C1C0504, // 0015 GETMET R7 R2 K4
+ 0x60240013, // 0016 GETGBL R9 G19
+ 0x7C240000, // 0017 CALL R9 0
+ 0x98260B06, // 0018 SETIDX R9 K5 K6
+ 0x98260E06, // 0019 SETIDX R9 K7 R6
+ 0x7C1C0400, // 001A CALL R7 2
+ 0x7001FFEB, // 001B JMP #0008
+ 0x580C0008, // 001C LDCONST R3 K8
+ 0xAC0C0200, // 001D CATCH R3 1 0
+ 0xB0080000, // 001E RAISE 2 R0 R0
+ 0x600C0010, // 001F GETGBL R3 G16
+ 0x8C100100, // 0020 GETMET R4 R0 K0
+ 0x5C180200, // 0021 MOVE R6 R1
+ 0x7C100400, // 0022 CALL R4 2
+ 0x7C0C0200, // 0023 CALL R3 1
+ 0xA8020013, // 0024 EXBLK 0 #0039
+ 0x5C100600, // 0025 MOVE R4 R3
+ 0x7C100000, // 0026 CALL R4 0
+ 0x94140204, // 0027 GETIDX R5 R1 R4
+ 0x6018000F, // 0028 GETGBL R6 G15
+ 0x5C1C0A00, // 0029 MOVE R7 R5
+ 0x60200013, // 002A GETGBL R8 G19
+ 0x7C180400, // 002B CALL R6 2
+ 0x781A000A, // 002C JMPF R6 #0038
+ 0x8C180B01, // 002D GETMET R6 R5 K1
+ 0x58200009, // 002E LDCONST R8 K9
+ 0x7C180400, // 002F CALL R6 2
+ 0x781A0006, // 0030 JMPF R6 #0038
+ 0x0018090A, // 0031 ADD R6 R4 K10
+ 0x8C1C0504, // 0032 GETMET R7 R2 K4
+ 0x60240013, // 0033 GETGBL R9 G19
+ 0x7C240000, // 0034 CALL R9 0
+ 0x98260B0B, // 0035 SETIDX R9 K5 K11
+ 0x98260E06, // 0036 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0037 CALL R7 2
+ 0x7001FFEB, // 0038 JMP #0025
+ 0x580C0008, // 0039 LDCONST R3 K8
+ 0xAC0C0200, // 003A CATCH R3 1 0
+ 0xB0080000, // 003B RAISE 2 R0 R0
+ 0x600C0010, // 003C GETGBL R3 G16
+ 0x8C100100, // 003D GETMET R4 R0 K0
+ 0x5C180200, // 003E MOVE R6 R1
+ 0x7C100400, // 003F CALL R4 2
+ 0x7C0C0200, // 0040 CALL R3 1
+ 0xA8020013, // 0041 EXBLK 0 #0056
+ 0x5C100600, // 0042 MOVE R4 R3
+ 0x7C100000, // 0043 CALL R4 0
+ 0x94140204, // 0044 GETIDX R5 R1 R4
+ 0x6018000F, // 0045 GETGBL R6 G15
+ 0x5C1C0A00, // 0046 MOVE R7 R5
+ 0x60200013, // 0047 GETGBL R8 G19
+ 0x7C180400, // 0048 CALL R6 2
+ 0x781A000A, // 0049 JMPF R6 #0055
+ 0x8C180B01, // 004A GETMET R6 R5 K1
+ 0x5820000C, // 004B LDCONST R8 K12
+ 0x7C180400, // 004C CALL R6 2
+ 0x781A0006, // 004D JMPF R6 #0055
+ 0x0018090D, // 004E ADD R6 R4 K13
+ 0x8C1C0504, // 004F GETMET R7 R2 K4
+ 0x60240013, // 0050 GETGBL R9 G19
+ 0x7C240000, // 0051 CALL R9 0
+ 0x98260B0E, // 0052 SETIDX R9 K5 K14
+ 0x98260E06, // 0053 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x7001FFEB, // 0055 JMP #0042
+ 0x580C0008, // 0056 LDCONST R3 K8
+ 0xAC0C0200, // 0057 CATCH R3 1 0
+ 0xB0080000, // 0058 RAISE 2 R0 R0
+ 0x600C0010, // 0059 GETGBL R3 G16
+ 0x8C100100, // 005A GETMET R4 R0 K0
+ 0x5C180200, // 005B MOVE R6 R1
+ 0x7C100400, // 005C CALL R4 2
+ 0x7C0C0200, // 005D CALL R3 1
+ 0xA8020013, // 005E EXBLK 0 #0073
+ 0x5C100600, // 005F MOVE R4 R3
+ 0x7C100000, // 0060 CALL R4 0
+ 0x94140204, // 0061 GETIDX R5 R1 R4
+ 0x6018000F, // 0062 GETGBL R6 G15
+ 0x5C1C0A00, // 0063 MOVE R7 R5
+ 0x60200013, // 0064 GETGBL R8 G19
+ 0x7C180400, // 0065 CALL R6 2
+ 0x781A000A, // 0066 JMPF R6 #0072
+ 0x8C180B01, // 0067 GETMET R6 R5 K1
+ 0x5820000F, // 0068 LDCONST R8 K15
+ 0x7C180400, // 0069 CALL R6 2
+ 0x781A0006, // 006A JMPF R6 #0072
+ 0x00180910, // 006B ADD R6 R4 K16
+ 0x8C1C0504, // 006C GETMET R7 R2 K4
+ 0x60240013, // 006D GETGBL R9 G19
+ 0x7C240000, // 006E CALL R9 0
+ 0x98260B11, // 006F SETIDX R9 K5 K17
+ 0x98260E06, // 0070 SETIDX R9 K7 R6
+ 0x7C1C0400, // 0071 CALL R7 2
+ 0x7001FFEB, // 0072 JMP #005F
+ 0x580C0008, // 0073 LDCONST R3 K8
+ 0xAC0C0200, // 0074 CATCH R3 1 0
+ 0xB0080000, // 0075 RAISE 2 R0 R0
+ 0x80040400, // 0076 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: process_attribute_expansion
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 9]) { /* constants */
+ /* K0 */ be_nested_str_weak(endpoint),
+ /* K1 */ be_nested_str_weak(cluster),
+ /* K2 */ be_nested_str_weak(attribute),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(PathGenerator),
+ /* K5 */ be_nested_str_weak(start),
+ /* K6 */ be_nested_str_weak(is_direct),
+ /* K7 */ be_nested_str_weak(next_attribute),
+ /* K8 */ be_nested_str_weak(get_pi),
+ }),
+ be_str_weak(process_attribute_expansion),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x880C0300, // 0000 GETMBR R3 R1 K0
+ 0x88100301, // 0001 GETMBR R4 R1 K1
+ 0x88140302, // 0002 GETMBR R5 R1 K2
+ 0xB81A0600, // 0003 GETNGBL R6 K3
+ 0x8C180D04, // 0004 GETMET R6 R6 K4
+ 0x5C200000, // 0005 MOVE R8 R0
+ 0x7C180400, // 0006 CALL R6 2
+ 0x8C1C0D05, // 0007 GETMET R7 R6 K5
+ 0x5C240600, // 0008 MOVE R9 R3
+ 0x5C280800, // 0009 MOVE R10 R4
+ 0x5C2C0A00, // 000A MOVE R11 R5
+ 0x7C1C0800, // 000B CALL R7 4
+ 0x8C1C0D06, // 000C GETMET R7 R6 K6
+ 0x7C1C0200, // 000D CALL R7 1
+ 0x4C200000, // 000E LDNIL R8
+ 0x8C240D07, // 000F GETMET R9 R6 K7
+ 0x7C240200, // 0010 CALL R9 1
+ 0x5C201200, // 0011 MOVE R8 R9
+ 0x4C280000, // 0012 LDNIL R10
+ 0x2024120A, // 0013 NE R9 R9 R10
+ 0x78260005, // 0014 JMPF R9 #001B
+ 0x5C240400, // 0015 MOVE R9 R2
+ 0x8C280D08, // 0016 GETMET R10 R6 K8
+ 0x7C280200, // 0017 CALL R10 1
+ 0x5C2C1000, // 0018 MOVE R11 R8
+ 0x7C240400, // 0019 CALL R9 2
+ 0x7001FFF3, // 001A JMP #000F
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: stop_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_stop_basic_commissioning, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(is_root_commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(publish_result),
+ /* K3 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Commissioning_X22_X3A0_X7D_X7D),
+ /* K4 */ be_nested_str_weak(Matter),
+ /* K5 */ be_nested_str_weak(commissioning_open),
+ /* K6 */ be_nested_str_weak(mdns_remove_PASE),
+ /* K7 */ be_nested_str_weak(commissioning_iterations),
+ /* K8 */ be_nested_str_weak(commissioning_discriminator),
+ /* K9 */ be_nested_str_weak(commissioning_salt),
+ /* K10 */ be_nested_str_weak(commissioning_w0),
+ /* K11 */ be_nested_str_weak(commissioning_L),
+ /* K12 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(stop_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[25]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x7C040200, // 0001 CALL R1 1
+ 0x78060004, // 0002 JMPF R1 #0008
+ 0xB8060200, // 0003 GETNGBL R1 K1
+ 0x8C040302, // 0004 GETMET R1 R1 K2
+ 0x580C0003, // 0005 LDCONST R3 K3
+ 0x58100004, // 0006 LDCONST R4 K4
+ 0x7C040600, // 0007 CALL R1 3
+ 0x4C040000, // 0008 LDNIL R1
+ 0x90020A01, // 0009 SETMBR R0 K5 R1
+ 0x8C040106, // 000A GETMET R1 R0 K6
+ 0x7C040200, // 000B CALL R1 1
+ 0x4C040000, // 000C LDNIL R1
+ 0x90020E01, // 000D SETMBR R0 K7 R1
+ 0x4C040000, // 000E LDNIL R1
+ 0x90021001, // 000F SETMBR R0 K8 R1
+ 0x4C040000, // 0010 LDNIL R1
+ 0x90021201, // 0011 SETMBR R0 K9 R1
+ 0x4C040000, // 0012 LDNIL R1
+ 0x90021401, // 0013 SETMBR R0 K10 R1
+ 0x4C040000, // 0014 LDNIL R1
+ 0x90021601, // 0015 SETMBR R0 K11 R1
+ 0x4C040000, // 0016 LDNIL R1
+ 0x90021801, // 0017 SETMBR R0 K12 R1
+ 0x80000000, // 0018 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: clean_remotes
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_clean_remotes, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(introspect),
+ /* K1 */ be_nested_str_weak(http_remotes),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_nested_str_weak(plugins),
+ /* K5 */ be_nested_str_weak(get),
+ /* K6 */ be_nested_str_weak(http_remote),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_const_int(1),
+ /* K9 */ be_nested_str_weak(keys),
+ /* K10 */ be_nested_str_weak(push),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
+ /* K13 */ be_nested_str_weak(addr),
+ /* K14 */ be_const_int(3),
+ /* K15 */ be_nested_str_weak(close),
+ /* K16 */ be_nested_str_weak(remove),
+ }),
+ be_str_weak(clean_remotes),
+ &be_const_str_solidified,
+ ( &(const binstruction[80]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x88080101, // 0001 GETMBR R2 R0 K1
+ 0x780A004B, // 0002 JMPF R2 #004F
+ 0x60080013, // 0003 GETGBL R2 G19
+ 0x7C080000, // 0004 CALL R2 0
+ 0x600C0010, // 0005 GETGBL R3 G16
+ 0x88100101, // 0006 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0xA8020003, // 0008 EXBLK 0 #000D
+ 0x5C100600, // 0009 MOVE R4 R3
+ 0x7C100000, // 000A CALL R4 0
+ 0x98080902, // 000B SETIDX R2 R4 K2
+ 0x7001FFFB, // 000C JMP #0009
+ 0x580C0003, // 000D LDCONST R3 K3
+ 0xAC0C0200, // 000E CATCH R3 1 0
+ 0xB0080000, // 000F RAISE 2 R0 R0
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100104, // 0011 GETMBR R4 R0 K4
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA802000F, // 0013 EXBLK 0 #0024
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x8C140305, // 0016 GETMET R5 R1 K5
+ 0x5C1C0800, // 0017 MOVE R7 R4
+ 0x58200006, // 0018 LDCONST R8 K6
+ 0x7C140600, // 0019 CALL R5 3
+ 0x4C180000, // 001A LDNIL R6
+ 0x20180A06, // 001B NE R6 R5 R6
+ 0x781A0005, // 001C JMPF R6 #0023
+ 0x8C180507, // 001D GETMET R6 R2 K7
+ 0x5C200A00, // 001E MOVE R8 R5
+ 0x58240002, // 001F LDCONST R9 K2
+ 0x7C180600, // 0020 CALL R6 3
+ 0x00180D08, // 0021 ADD R6 R6 K8
+ 0x98080A06, // 0022 SETIDX R2 R5 R6
+ 0x7001FFEF, // 0023 JMP #0014
+ 0x580C0003, // 0024 LDCONST R3 K3
+ 0xAC0C0200, // 0025 CATCH R3 1 0
+ 0xB0080000, // 0026 RAISE 2 R0 R0
+ 0x600C0012, // 0027 GETGBL R3 G18
+ 0x7C0C0000, // 0028 CALL R3 0
+ 0x60100010, // 0029 GETGBL R4 G16
+ 0x8C140509, // 002A GETMET R5 R2 K9
+ 0x7C140200, // 002B CALL R5 1
+ 0x7C100200, // 002C CALL R4 1
+ 0xA8020008, // 002D EXBLK 0 #0037
+ 0x5C140800, // 002E MOVE R5 R4
+ 0x7C140000, // 002F CALL R5 0
+ 0x94180405, // 0030 GETIDX R6 R2 R5
+ 0x1C180D02, // 0031 EQ R6 R6 K2
+ 0x781A0002, // 0032 JMPF R6 #0036
+ 0x8C18070A, // 0033 GETMET R6 R3 K10
+ 0x5C200A00, // 0034 MOVE R8 R5
+ 0x7C180400, // 0035 CALL R6 2
+ 0x7001FFF6, // 0036 JMP #002E
+ 0x58100003, // 0037 LDCONST R4 K3
+ 0xAC100200, // 0038 CATCH R4 1 0
+ 0xB0080000, // 0039 RAISE 2 R0 R0
+ 0x60100010, // 003A GETGBL R4 G16
+ 0x5C140600, // 003B MOVE R5 R3
+ 0x7C100200, // 003C CALL R4 1
+ 0xA802000D, // 003D EXBLK 0 #004C
+ 0x5C140800, // 003E MOVE R5 R4
+ 0x7C140000, // 003F CALL R5 0
+ 0xB81A1600, // 0040 GETNGBL R6 K11
+ 0x881C0B0D, // 0041 GETMBR R7 R5 K13
+ 0x001E1807, // 0042 ADD R7 K12 R7
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x7C180400, // 0044 CALL R6 2
+ 0x8C180B0F, // 0045 GETMET R6 R5 K15
+ 0x7C180200, // 0046 CALL R6 1
+ 0x88180101, // 0047 GETMBR R6 R0 K1
+ 0x8C180D10, // 0048 GETMET R6 R6 K16
+ 0x88200B0D, // 0049 GETMBR R8 R5 K13
+ 0x7C180400, // 004A CALL R6 2
+ 0x7001FFF1, // 004B JMP #003E
+ 0x58100003, // 004C LDCONST R4 K3
+ 0xAC100200, // 004D CATCH R4 1 0
+ 0xB0080000, // 004E RAISE 2 R0 R0
+ 0x80000000, // 004F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: init
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_init, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(start),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ /* K4 */ be_nested_str_weak(matter_start),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0004, // 0006 LDCONST R3 K4
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[38]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(get_option),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(MATTER_OPTION),
+ /* K5 */ be_nested_str_weak(UI),
+ /* K6 */ be_nested_str_weak(profiler),
+ /* K7 */ be_nested_str_weak(Profiler),
+ /* K8 */ be_nested_str_weak(started),
+ /* K9 */ be_nested_str_weak(tick),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(plugins_config_remotes),
+ /* K14 */ be_nested_str_weak(next_ep),
+ /* K15 */ be_const_int(2),
+ /* K16 */ be_nested_str_weak(ipv4only),
+ /* K17 */ be_nested_str_weak(disable_bridge_mode),
+ /* K18 */ be_nested_str_weak(load_param),
+ /* K19 */ be_nested_str_weak(sessions),
+ /* K20 */ be_nested_str_weak(Session_Store),
+ /* K21 */ be_nested_str_weak(load_fabrics),
+ /* K22 */ be_nested_str_weak(message_handler),
+ /* K23 */ be_nested_str_weak(MessageHandler),
+ /* K24 */ be_nested_str_weak(events),
+ /* K25 */ be_nested_str_weak(EventHandler),
+ /* K26 */ be_nested_str_weak(ui),
+ /* K27 */ be_nested_str_weak(wifi),
+ /* K28 */ be_nested_str_weak(up),
+ /* K29 */ be_nested_str_weak(eth),
+ /* K30 */ be_nested_str_weak(start),
+ /* K31 */ be_nested_str_weak(add_rule),
+ /* K32 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K33 */ be_nested_str_weak(matter_start),
+ /* K34 */ be_nested_str_weak(Eth_X23Connected),
+ /* K35 */ be_nested_str_weak(_init_basic_commissioning),
+ /* K36 */ be_nested_str_weak(add_driver),
+ /* K37 */ be_nested_str_weak(register_commands),
+ }),
+ be_str_weak(init),
+ &be_const_str_solidified,
+ ( &(const binstruction[102]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0xB8120600, // 0003 GETNGBL R4 K3
+ 0x88100904, // 0004 GETMBR R4 R4 K4
+ 0x7C080400, // 0005 CALL R2 2
+ 0x740A0004, // 0006 JMPT R2 #000C
+ 0xB80A0600, // 0007 GETNGBL R2 K3
+ 0x8C080505, // 0008 GETMET R2 R2 K5
+ 0x5C100000, // 0009 MOVE R4 R0
+ 0x7C080400, // 000A CALL R2 2
+ 0x80000400, // 000B RET 0
+ 0xB80A0600, // 000C GETNGBL R2 K3
+ 0xB80E0600, // 000D GETNGBL R3 K3
+ 0x8C0C0707, // 000E GETMET R3 R3 K7
+ 0x7C0C0200, // 000F CALL R3 1
+ 0x900A0C03, // 0010 SETMBR R2 K6 R3
+ 0x50080000, // 0011 LDBOOL R2 0 0
+ 0x90021002, // 0012 SETMBR R0 K8 R2
+ 0x9002130A, // 0013 SETMBR R0 K9 K10
+ 0x60080012, // 0014 GETGBL R2 G18
+ 0x7C080000, // 0015 CALL R2 0
+ 0x90021602, // 0016 SETMBR R0 K11 R2
+ 0x50080000, // 0017 LDBOOL R2 0 0
+ 0x90021802, // 0018 SETMBR R0 K12 R2
+ 0x60080013, // 0019 GETGBL R2 G19
+ 0x7C080000, // 001A CALL R2 0
+ 0x90021A02, // 001B SETMBR R0 K13 R2
+ 0x90021D0F, // 001C SETMBR R0 K14 K15
+ 0x50080000, // 001D LDBOOL R2 0 0
+ 0x90022002, // 001E SETMBR R0 K16 R2
+ 0x50080000, // 001F LDBOOL R2 0 0
+ 0x90022202, // 0020 SETMBR R0 K17 R2
+ 0x8C080112, // 0021 GETMET R2 R0 K18
+ 0x7C080200, // 0022 CALL R2 1
+ 0xB80A0600, // 0023 GETNGBL R2 K3
+ 0x8C080514, // 0024 GETMET R2 R2 K20
+ 0x5C100000, // 0025 MOVE R4 R0
+ 0x7C080400, // 0026 CALL R2 2
+ 0x90022602, // 0027 SETMBR R0 K19 R2
+ 0x88080113, // 0028 GETMBR R2 R0 K19
+ 0x8C080515, // 0029 GETMET R2 R2 K21
+ 0x7C080200, // 002A CALL R2 1
+ 0xB80A0600, // 002B GETNGBL R2 K3
+ 0x8C080517, // 002C GETMET R2 R2 K23
+ 0x5C100000, // 002D MOVE R4 R0
+ 0x7C080400, // 002E CALL R2 2
+ 0x90022C02, // 002F SETMBR R0 K22 R2
+ 0xB80A0600, // 0030 GETNGBL R2 K3
+ 0x8C080519, // 0031 GETMET R2 R2 K25
+ 0x5C100000, // 0032 MOVE R4 R0
+ 0x7C080400, // 0033 CALL R2 2
+ 0x90023002, // 0034 SETMBR R0 K24 R2
+ 0xB80A0600, // 0035 GETNGBL R2 K3
+ 0x8C080505, // 0036 GETMET R2 R2 K5
+ 0x5C100000, // 0037 MOVE R4 R0
+ 0x7C080400, // 0038 CALL R2 2
+ 0x90023402, // 0039 SETMBR R0 K26 R2
+ 0xB80A0200, // 003A GETNGBL R2 K1
+ 0x8C08051B, // 003B GETMET R2 R2 K27
+ 0x7C080200, // 003C CALL R2 1
+ 0x9408051C, // 003D GETIDX R2 R2 K28
+ 0x740A0004, // 003E JMPT R2 #0044
+ 0xB80A0200, // 003F GETNGBL R2 K1
+ 0x8C08051D, // 0040 GETMET R2 R2 K29
+ 0x7C080200, // 0041 CALL R2 1
+ 0x9408051C, // 0042 GETIDX R2 R2 K28
+ 0x780A0001, // 0043 JMPF R2 #0046
+ 0x8C08011E, // 0044 GETMET R2 R0 K30
+ 0x7C080200, // 0045 CALL R2 1
+ 0xB80A0200, // 0046 GETNGBL R2 K1
+ 0x8C08051B, // 0047 GETMET R2 R2 K27
+ 0x7C080200, // 0048 CALL R2 1
+ 0x9408051C, // 0049 GETIDX R2 R2 K28
+ 0x740A0005, // 004A JMPT R2 #0051
+ 0xB80A0200, // 004B GETNGBL R2 K1
+ 0x8C08051F, // 004C GETMET R2 R2 K31
+ 0x58100020, // 004D LDCONST R4 K32
+ 0x84140000, // 004E CLOSURE R5 P0
+ 0x58180021, // 004F LDCONST R6 K33
+ 0x7C080800, // 0050 CALL R2 4
+ 0xB80A0200, // 0051 GETNGBL R2 K1
+ 0x8C08051D, // 0052 GETMET R2 R2 K29
+ 0x7C080200, // 0053 CALL R2 1
+ 0x9408051C, // 0054 GETIDX R2 R2 K28
+ 0x740A0005, // 0055 JMPT R2 #005C
+ 0xB80A0200, // 0056 GETNGBL R2 K1
+ 0x8C08051F, // 0057 GETMET R2 R2 K31
+ 0x58100022, // 0058 LDCONST R4 K34
+ 0x84140001, // 0059 CLOSURE R5 P1
+ 0x58180021, // 005A LDCONST R6 K33
+ 0x7C080800, // 005B CALL R2 4
+ 0x8C080123, // 005C GETMET R2 R0 K35
+ 0x7C080200, // 005D CALL R2 1
+ 0xB80A0200, // 005E GETNGBL R2 K1
+ 0x8C080524, // 005F GETMET R2 R2 K36
+ 0x5C100000, // 0060 MOVE R4 R0
+ 0x7C080400, // 0061 CALL R2 2
+ 0x8C080125, // 0062 GETMET R2 R0 K37
+ 0x7C080200, // 0063 CALL R2 1
+ 0xA0000000, // 0064 CLOSE R0
+ 0x80000000, // 0065 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_remove_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[23]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(tasmota),
+ /* K8 */ be_nested_str_weak(eth),
+ /* K9 */ be_nested_str_weak(find),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(log),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27),
+ /* K13 */ be_const_int(3),
+ /* K14 */ be_nested_str_weak(remove_service),
+ /* K15 */ be_nested_str_weak(_matter),
+ /* K16 */ be_nested_str_weak(_tcp),
+ /* K17 */ be_nested_str_weak(hostname_eth),
+ /* K18 */ be_nested_str_weak(wifi),
+ /* K19 */ be_nested_str_weak(hostname_wifi),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K21 */ be_nested_str_weak(_X7C),
+ /* K22 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_remove_op_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[77]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA8020039, // 0001 EXBLK 0 #003C
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x8C180D08, // 0011 GETMET R6 R6 K8
+ 0x7C180200, // 0012 CALL R6 1
+ 0x8C180D09, // 0013 GETMET R6 R6 K9
+ 0x5820000A, // 0014 LDCONST R8 K10
+ 0x7C180400, // 0015 CALL R6 2
+ 0x781A000D, // 0016 JMPF R6 #0025
+ 0xB81A1600, // 0017 GETNGBL R6 K11
+ 0x601C0018, // 0018 GETGBL R7 G24
+ 0x5820000C, // 0019 LDCONST R8 K12
+ 0x58240008, // 001A LDCONST R9 K8
+ 0x5C280A00, // 001B MOVE R10 R5
+ 0x7C1C0600, // 001C CALL R7 3
+ 0x5820000D, // 001D LDCONST R8 K13
+ 0x7C180400, // 001E CALL R6 2
+ 0x8C18050E, // 001F GETMET R6 R2 K14
+ 0x5820000F, // 0020 LDCONST R8 K15
+ 0x58240010, // 0021 LDCONST R9 K16
+ 0x5C280A00, // 0022 MOVE R10 R5
+ 0x882C0111, // 0023 GETMBR R11 R0 K17
+ 0x7C180A00, // 0024 CALL R6 5
+ 0xB81A0E00, // 0025 GETNGBL R6 K7
+ 0x8C180D12, // 0026 GETMET R6 R6 K18
+ 0x7C180200, // 0027 CALL R6 1
+ 0x8C180D09, // 0028 GETMET R6 R6 K9
+ 0x5820000A, // 0029 LDCONST R8 K10
+ 0x7C180400, // 002A CALL R6 2
+ 0x781A000D, // 002B JMPF R6 #003A
+ 0xB81A1600, // 002C GETNGBL R6 K11
+ 0x601C0018, // 002D GETGBL R7 G24
+ 0x5820000C, // 002E LDCONST R8 K12
+ 0x58240012, // 002F LDCONST R9 K18
+ 0x5C280A00, // 0030 MOVE R10 R5
+ 0x7C1C0600, // 0031 CALL R7 3
+ 0x5820000D, // 0032 LDCONST R8 K13
+ 0x7C180400, // 0033 CALL R6 2
+ 0x8C18050E, // 0034 GETMET R6 R2 K14
+ 0x5820000F, // 0035 LDCONST R8 K15
+ 0x58240010, // 0036 LDCONST R9 K16
+ 0x5C280A00, // 0037 MOVE R10 R5
+ 0x882C0113, // 0038 GETMBR R11 R0 K19
+ 0x7C180A00, // 0039 CALL R6 5
+ 0xA8040001, // 003A EXBLK 1 1
+ 0x7002000F, // 003B JMP #004C
+ 0xAC0C0002, // 003C CATCH R3 0 2
+ 0x7002000C, // 003D JMP #004B
+ 0xB8161600, // 003E GETNGBL R5 K11
+ 0x60180008, // 003F GETGBL R6 G8
+ 0x5C1C0600, // 0040 MOVE R7 R3
+ 0x7C180200, // 0041 CALL R6 1
+ 0x001A2806, // 0042 ADD R6 K20 R6
+ 0x00180D15, // 0043 ADD R6 R6 K21
+ 0x601C0008, // 0044 GETGBL R7 G8
+ 0x5C200800, // 0045 MOVE R8 R4
+ 0x7C1C0200, // 0046 CALL R7 1
+ 0x00180C07, // 0047 ADD R6 R6 R7
+ 0x581C0016, // 0048 LDCONST R7 K22
+ 0x7C140400, // 0049 CALL R5 2
+ 0x70020000, // 004A JMP #004C
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80000000, // 004C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _start_udp
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__start_udp, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 8, /* nstack */
+ 3, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(msg_received),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0x680C0000, // 0000 GETUPV R3 U0
+ 0x8C0C0700, // 0001 GETMET R3 R3 K0
+ 0x5C140000, // 0002 MOVE R5 R0
+ 0x5C180200, // 0003 MOVE R6 R1
+ 0x5C1C0400, // 0004 MOVE R7 R2
+ 0x7C0C0800, // 0005 CALL R3 4
+ 0x80040600, // 0006 RET 1 R3
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(log),
+ /* K2 */ be_nested_str_weak(MTR_X3A_X20Starting_X20UDP_X20server_X20on_X20port_X3A_X20),
+ /* K3 */ be_const_int(2),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(UDPServer),
+ /* K6 */ be_nested_str_weak(),
+ /* K7 */ be_nested_str_weak(start),
+ }),
+ be_str_weak(_start_udp),
+ &be_const_str_solidified,
+ ( &(const binstruction[27]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x780A0000, // 0001 JMPF R2 #0003
+ 0x80000400, // 0002 RET 0
+ 0x4C080000, // 0003 LDNIL R2
+ 0x1C080202, // 0004 EQ R2 R1 R2
+ 0x780A0000, // 0005 JMPF R2 #0007
+ 0x540615A3, // 0006 LDINT R1 5540
+ 0xB80A0200, // 0007 GETNGBL R2 K1
+ 0x600C0008, // 0008 GETGBL R3 G8
+ 0x5C100200, // 0009 MOVE R4 R1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x000E0403, // 000B ADD R3 K2 R3
+ 0x58100003, // 000C LDCONST R4 K3
+ 0x7C080400, // 000D CALL R2 2
+ 0xB80A0800, // 000E GETNGBL R2 K4
+ 0x8C080505, // 000F GETMET R2 R2 K5
+ 0x5C100000, // 0010 MOVE R4 R0
+ 0x58140006, // 0011 LDCONST R5 K6
+ 0x5C180200, // 0012 MOVE R6 R1
+ 0x7C080800, // 0013 CALL R2 4
+ 0x90020002, // 0014 SETMBR R0 K0 R2
+ 0x88080100, // 0015 GETMBR R2 R0 K0
+ 0x8C080507, // 0016 GETMET R2 R2 K7
+ 0x84100000, // 0017 CLOSURE R4 P0
+ 0x7C080400, // 0018 CALL R2 2
+ 0xA0000000, // 0019 CLOSE R0
+ 0x80000000, // 001A RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: adjust_next_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_adjust_next_ep, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(next_ep),
+ /* K3 */ be_const_int(1),
+ /* K4 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(adjust_next_ep),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000A, // 0005 EXBLK 0 #0011
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x600C0009, // 0008 GETGBL R3 G9
+ 0x5C100400, // 0009 MOVE R4 R2
+ 0x7C0C0200, // 000A CALL R3 1
+ 0x88100102, // 000B GETMBR R4 R0 K2
+ 0x28100604, // 000C GE R4 R3 R4
+ 0x78120001, // 000D JMPF R4 #0010
+ 0x00100703, // 000E ADD R4 R3 K3
+ 0x90020404, // 000F SETMBR R0 K2 R4
+ 0x7001FFF4, // 0010 JMP #0006
+ 0x58040004, // 0011 LDCONST R1 K4
+ 0xAC040200, // 0012 CATCH R1 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _trigger_read_sensors
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__trigger_read_sensors, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[13]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(read_sensors),
+ /* K3 */ be_nested_str_weak(loglevel),
+ /* K4 */ be_const_int(3),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20read_sensors_X3A_X20),
+ /* K7 */ be_nested_str_weak(load),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_nested_str_weak(plugins),
+ /* K10 */ be_nested_str_weak(parse_sensors),
+ /* K11 */ be_const_int(1),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20unable_X20to_X20parse_X20read_sensors_X3A_X20),
+ }),
+ be_str_weak(_trigger_read_sensors),
+ &be_const_str_solidified,
+ ( &(const binstruction[48]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0xB80A0200, // 0001 GETNGBL R2 K1
+ 0x8C080502, // 0002 GETMET R2 R2 K2
+ 0x7C080200, // 0003 CALL R2 1
+ 0xB80E0200, // 0004 GETNGBL R3 K1
+ 0x8C0C0703, // 0005 GETMET R3 R3 K3
+ 0x58140004, // 0006 LDCONST R5 K4
+ 0x7C0C0400, // 0007 CALL R3 2
+ 0x780E0006, // 0008 JMPF R3 #0010
+ 0xB80E0A00, // 0009 GETNGBL R3 K5
+ 0x60100008, // 000A GETGBL R4 G8
+ 0x5C140400, // 000B MOVE R5 R2
+ 0x7C100200, // 000C CALL R4 1
+ 0x00120C04, // 000D ADD R4 K6 R4
+ 0x58140004, // 000E LDCONST R5 K4
+ 0x7C0C0400, // 000F CALL R3 2
+ 0x4C0C0000, // 0010 LDNIL R3
+ 0x1C0C0403, // 0011 EQ R3 R2 R3
+ 0x780E0000, // 0012 JMPF R3 #0014
+ 0x80000600, // 0013 RET 0
+ 0x8C0C0307, // 0014 GETMET R3 R1 K7
+ 0x5C140400, // 0015 MOVE R5 R2
+ 0x7C0C0400, // 0016 CALL R3 2
+ 0x4C100000, // 0017 LDNIL R4
+ 0x20100604, // 0018 NE R4 R3 R4
+ 0x7812000D, // 0019 JMPF R4 #0028
+ 0x58100008, // 001A LDCONST R4 K8
+ 0x6014000C, // 001B GETGBL R5 G12
+ 0x88180109, // 001C GETMBR R6 R0 K9
+ 0x7C140200, // 001D CALL R5 1
+ 0x14140805, // 001E LT R5 R4 R5
+ 0x78160006, // 001F JMPF R5 #0027
+ 0x88140109, // 0020 GETMBR R5 R0 K9
+ 0x94140A04, // 0021 GETIDX R5 R5 R4
+ 0x8C140B0A, // 0022 GETMET R5 R5 K10
+ 0x5C1C0600, // 0023 MOVE R7 R3
+ 0x7C140400, // 0024 CALL R5 2
+ 0x0010090B, // 0025 ADD R4 R4 K11
+ 0x7001FFF3, // 0026 JMP #001B
+ 0x70020006, // 0027 JMP #002F
+ 0xB8120A00, // 0028 GETNGBL R4 K5
+ 0x60140008, // 0029 GETGBL R5 G8
+ 0x5C180400, // 002A MOVE R6 R2
+ 0x7C140200, // 002B CALL R5 1
+ 0x00161805, // 002C ADD R5 K12 R5
+ 0x58180004, // 002D LDCONST R6 K4
+ 0x7C100400, // 002E CALL R4 2
+ 0x80000000, // 002F RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _instantiate_plugins_from_config
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__instantiate_plugins_from_config, /* name */
+ be_nested_proto(
+ 17, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(k2l_num),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Plugin_Root),
+ /* K5 */ be_const_int(0),
+ /* K6 */ be_nested_str_weak(log),
+ /* K7 */ be_nested_str_weak(MTR_X3A_X20Configuring_X20endpoints),
+ /* K8 */ be_const_int(2),
+ /* K9 */ be_nested_str_weak(MTR_X3A_X20_X20_X20endpoint_X20_X3D_X20_X255i_X20type_X3A_X25s_X25s),
+ /* K10 */ be_nested_str_weak(root),
+ /* K11 */ be_nested_str_weak(),
+ /* K12 */ be_nested_str_weak(Plugin_Aggregator),
+ /* K13 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K14 */ be_nested_str_weak(aggregator),
+ /* K15 */ be_nested_str_weak(find),
+ /* K16 */ be_nested_str_weak(type),
+ /* K17 */ be_nested_str_weak(MTR_X3A_X20no_X20class_X20name_X2C_X20skipping),
+ /* K18 */ be_const_int(3),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20only_X20one_X20root_X20node_X20allowed),
+ /* K20 */ be_nested_str_weak(plugins_classes),
+ /* K21 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K22 */ be_nested_str_weak(_X27_X20skipping),
+ /* K23 */ be_nested_str_weak(conf_to_log),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_nested_str_weak(stop_iteration),
+ /* K27 */ be_nested_str_weak(tasmota),
+ /* K28 */ be_nested_str_weak(publish_result),
+ /* K29 */ be_nested_str_weak(_X7B_X22Matter_X22_X3A_X7B_X22Initialized_X22_X3A1_X7D_X7D),
+ /* K30 */ be_nested_str_weak(Matter),
+ }),
+ be_str_weak(_instantiate_plugins_from_config),
+ &be_const_str_solidified,
+ ( &(const binstruction[146]) { /* code */
+ 0x8C080100, // 0000 GETMET R2 R0 K0
+ 0x5C100200, // 0001 MOVE R4 R1
+ 0x7C080400, // 0002 CALL R2 2
+ 0x880C0101, // 0003 GETMBR R3 R0 K1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0xB8160600, // 0005 GETNGBL R5 K3
+ 0x8C140B04, // 0006 GETMET R5 R5 K4
+ 0x5C1C0000, // 0007 MOVE R7 R0
+ 0x58200005, // 0008 LDCONST R8 K5
+ 0x60240013, // 0009 GETGBL R9 G19
+ 0x7C240000, // 000A CALL R9 0
+ 0x7C140800, // 000B CALL R5 4
+ 0x7C0C0400, // 000C CALL R3 2
+ 0xB80E0C00, // 000D GETNGBL R3 K6
+ 0x58100007, // 000E LDCONST R4 K7
+ 0x58140008, // 000F LDCONST R5 K8
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0xB80E0C00, // 0011 GETNGBL R3 K6
+ 0x60100018, // 0012 GETGBL R4 G24
+ 0x58140009, // 0013 LDCONST R5 K9
+ 0x58180005, // 0014 LDCONST R6 K5
+ 0x581C000A, // 0015 LDCONST R7 K10
+ 0x5820000B, // 0016 LDCONST R8 K11
+ 0x7C100800, // 0017 CALL R4 4
+ 0x58140008, // 0018 LDCONST R5 K8
+ 0x7C0C0400, // 0019 CALL R3 2
+ 0x880C0101, // 001A GETMBR R3 R0 K1
+ 0x8C0C0702, // 001B GETMET R3 R3 K2
+ 0xB8160600, // 001C GETNGBL R5 K3
+ 0x8C140B0C, // 001D GETMET R5 R5 K12
+ 0x5C1C0000, // 001E MOVE R7 R0
+ 0xB8220600, // 001F GETNGBL R8 K3
+ 0x8820110D, // 0020 GETMBR R8 R8 K13
+ 0x60240013, // 0021 GETGBL R9 G19
+ 0x7C240000, // 0022 CALL R9 0
+ 0x7C140800, // 0023 CALL R5 4
+ 0x7C0C0400, // 0024 CALL R3 2
+ 0xB80E0C00, // 0025 GETNGBL R3 K6
+ 0x60100018, // 0026 GETGBL R4 G24
+ 0x58140009, // 0027 LDCONST R5 K9
+ 0xB81A0600, // 0028 GETNGBL R6 K3
+ 0x88180D0D, // 0029 GETMBR R6 R6 K13
+ 0x581C000E, // 002A LDCONST R7 K14
+ 0x5820000B, // 002B LDCONST R8 K11
+ 0x7C100800, // 002C CALL R4 4
+ 0x58140008, // 002D LDCONST R5 K8
+ 0x7C0C0400, // 002E CALL R3 2
+ 0x600C0010, // 002F GETGBL R3 G16
+ 0x5C100400, // 0030 MOVE R4 R2
+ 0x7C0C0200, // 0031 CALL R3 1
+ 0xA8020055, // 0032 EXBLK 0 #0089
+ 0x5C100600, // 0033 MOVE R4 R3
+ 0x7C100000, // 0034 CALL R4 0
+ 0x1C140905, // 0035 EQ R5 R4 K5
+ 0x78160000, // 0036 JMPF R5 #0038
+ 0x7001FFFA, // 0037 JMP #0033
+ 0xA802003E, // 0038 EXBLK 0 #0078
+ 0x60140008, // 0039 GETGBL R5 G8
+ 0x5C180800, // 003A MOVE R6 R4
+ 0x7C140200, // 003B CALL R5 1
+ 0x94140205, // 003C GETIDX R5 R1 R5
+ 0x8C180B0F, // 003D GETMET R6 R5 K15
+ 0x58200010, // 003E LDCONST R8 K16
+ 0x7C180400, // 003F CALL R6 2
+ 0x4C1C0000, // 0040 LDNIL R7
+ 0x1C1C0C07, // 0041 EQ R7 R6 R7
+ 0x781E0005, // 0042 JMPF R7 #0049
+ 0xB81E0C00, // 0043 GETNGBL R7 K6
+ 0x58200011, // 0044 LDCONST R8 K17
+ 0x58240012, // 0045 LDCONST R9 K18
+ 0x7C1C0400, // 0046 CALL R7 2
+ 0xA8040001, // 0047 EXBLK 1 1
+ 0x7001FFE9, // 0048 JMP #0033
+ 0x1C1C0D0A, // 0049 EQ R7 R6 K10
+ 0x781E0005, // 004A JMPF R7 #0051
+ 0xB81E0C00, // 004B GETNGBL R7 K6
+ 0x58200013, // 004C LDCONST R8 K19
+ 0x58240012, // 004D LDCONST R9 K18
+ 0x7C1C0400, // 004E CALL R7 2
+ 0xA8040001, // 004F EXBLK 1 1
+ 0x7001FFE1, // 0050 JMP #0033
+ 0x881C0114, // 0051 GETMBR R7 R0 K20
+ 0x8C1C0F0F, // 0052 GETMET R7 R7 K15
+ 0x5C240C00, // 0053 MOVE R9 R6
+ 0x7C1C0400, // 0054 CALL R7 2
+ 0x4C200000, // 0055 LDNIL R8
+ 0x1C200E08, // 0056 EQ R8 R7 R8
+ 0x78220009, // 0057 JMPF R8 #0062
+ 0xB8220C00, // 0058 GETNGBL R8 K6
+ 0x60240008, // 0059 GETGBL R9 G8
+ 0x5C280C00, // 005A MOVE R10 R6
+ 0x7C240200, // 005B CALL R9 1
+ 0x00262A09, // 005C ADD R9 K21 R9
+ 0x00241316, // 005D ADD R9 R9 K22
+ 0x58280008, // 005E LDCONST R10 K8
+ 0x7C200400, // 005F CALL R8 2
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7001FFD0, // 0061 JMP #0033
+ 0x5C200E00, // 0062 MOVE R8 R7
+ 0x5C240000, // 0063 MOVE R9 R0
+ 0x5C280800, // 0064 MOVE R10 R4
+ 0x5C2C0A00, // 0065 MOVE R11 R5
+ 0x7C200600, // 0066 CALL R8 3
+ 0x88240101, // 0067 GETMBR R9 R0 K1
+ 0x8C241302, // 0068 GETMET R9 R9 K2
+ 0x5C2C1000, // 0069 MOVE R11 R8
+ 0x7C240400, // 006A CALL R9 2
+ 0xB8260C00, // 006B GETNGBL R9 K6
+ 0x60280018, // 006C GETGBL R10 G24
+ 0x582C0009, // 006D LDCONST R11 K9
+ 0x5C300800, // 006E MOVE R12 R4
+ 0x5C340C00, // 006F MOVE R13 R6
+ 0x8C380117, // 0070 GETMET R14 R0 K23
+ 0x5C400A00, // 0071 MOVE R16 R5
+ 0x7C380400, // 0072 CALL R14 2
+ 0x7C280800, // 0073 CALL R10 4
+ 0x582C0008, // 0074 LDCONST R11 K8
+ 0x7C240400, // 0075 CALL R9 2
+ 0xA8040001, // 0076 EXBLK 1 1
+ 0x7002000F, // 0077 JMP #0088
+ 0xAC140002, // 0078 CATCH R5 0 2
+ 0x7002000C, // 0079 JMP #0087
+ 0xB81E0C00, // 007A GETNGBL R7 K6
+ 0x60200008, // 007B GETGBL R8 G8
+ 0x5C240A00, // 007C MOVE R9 R5
+ 0x7C200200, // 007D CALL R8 1
+ 0x00223008, // 007E ADD R8 K24 R8
+ 0x00201119, // 007F ADD R8 R8 K25
+ 0x60240008, // 0080 GETGBL R9 G8
+ 0x5C280C00, // 0081 MOVE R10 R6
+ 0x7C240200, // 0082 CALL R9 1
+ 0x00201009, // 0083 ADD R8 R8 R9
+ 0x58240008, // 0084 LDCONST R9 K8
+ 0x7C1C0400, // 0085 CALL R7 2
+ 0x70020000, // 0086 JMP #0088
+ 0xB0080000, // 0087 RAISE 2 R0 R0
+ 0x7001FFA9, // 0088 JMP #0033
+ 0x580C001A, // 0089 LDCONST R3 K26
+ 0xAC0C0200, // 008A CATCH R3 1 0
+ 0xB0080000, // 008B RAISE 2 R0 R0
+ 0xB80E3600, // 008C GETNGBL R3 K27
+ 0x8C0C071C, // 008D GETMET R3 R3 K28
+ 0x5814001D, // 008E LDCONST R5 K29
+ 0x5818001E, // 008F LDCONST R6 K30
+ 0x7C0C0600, // 0090 CALL R3 3
+ 0x80000000, // 0091 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery, /* name */
+ be_nested_proto(
+ 14, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[27]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns),
+ /* K1 */ be_nested_str_weak(get_device_id),
+ /* K2 */ be_nested_str_weak(copy),
+ /* K3 */ be_nested_str_weak(reverse),
+ /* K4 */ be_nested_str_weak(get_fabric_compressed),
+ /* K5 */ be_nested_str_weak(tohex),
+ /* K6 */ be_nested_str_weak(_X2D),
+ /* K7 */ be_nested_str_weak(log),
+ /* K8 */ be_nested_str_weak(MTR_X3A_X20Operational_X20Discovery_X20node_X20_X3D_X20),
+ /* K9 */ be_const_int(3),
+ /* K10 */ be_nested_str_weak(tasmota),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(find),
+ /* K13 */ be_nested_str_weak(up),
+ /* K14 */ be_nested_str_weak(MTR_X3A_X20adding_X20mDNS_X20on_X20_X25s_X20_X27_X25s_X27_X20ptr_X20to_X20_X60_X25s_X2Elocal_X60),
+ /* K15 */ be_nested_str_weak(hostname_eth),
+ /* K16 */ be_nested_str_weak(add_service),
+ /* K17 */ be_nested_str_weak(_matter),
+ /* K18 */ be_nested_str_weak(_tcp),
+ /* K19 */ be_nested_str_weak(_I),
+ /* K20 */ be_nested_str_weak(MTR_X3A_X20adding_X20subtype_X3A_X20),
+ /* K21 */ be_nested_str_weak(add_subtype),
+ /* K22 */ be_nested_str_weak(wifi),
+ /* K23 */ be_nested_str_weak(hostname_wifi),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20Exception),
+ /* K25 */ be_nested_str_weak(_X7C),
+ /* K26 */ be_const_int(2),
+ }),
+ be_str_weak(mdns_announce_op_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[115]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA802005F, // 0001 EXBLK 0 #0062
+ 0x8C0C0301, // 0002 GETMET R3 R1 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x8C0C0702, // 0004 GETMET R3 R3 K2
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C0C0703, // 0006 GETMET R3 R3 K3
+ 0x7C0C0200, // 0007 CALL R3 1
+ 0x8C100304, // 0008 GETMET R4 R1 K4
+ 0x7C100200, // 0009 CALL R4 1
+ 0x8C140905, // 000A GETMET R5 R4 K5
+ 0x7C140200, // 000B CALL R5 1
+ 0x00140B06, // 000C ADD R5 R5 K6
+ 0x8C180705, // 000D GETMET R6 R3 K5
+ 0x7C180200, // 000E CALL R6 1
+ 0x00140A06, // 000F ADD R5 R5 R6
+ 0xB81A0E00, // 0010 GETNGBL R6 K7
+ 0x001E1005, // 0011 ADD R7 K8 R5
+ 0x58200009, // 0012 LDCONST R8 K9
+ 0x7C180400, // 0013 CALL R6 2
+ 0xB81A1400, // 0014 GETNGBL R6 K10
+ 0x8C180D0B, // 0015 GETMET R6 R6 K11
+ 0x7C180200, // 0016 CALL R6 1
+ 0x8C180D0C, // 0017 GETMET R6 R6 K12
+ 0x5820000D, // 0018 LDCONST R8 K13
+ 0x7C180400, // 0019 CALL R6 2
+ 0x781A001E, // 001A JMPF R6 #003A
+ 0xB81A0E00, // 001B GETNGBL R6 K7
+ 0x601C0018, // 001C GETGBL R7 G24
+ 0x5820000E, // 001D LDCONST R8 K14
+ 0x5824000B, // 001E LDCONST R9 K11
+ 0x5C280A00, // 001F MOVE R10 R5
+ 0x882C010F, // 0020 GETMBR R11 R0 K15
+ 0x7C1C0800, // 0021 CALL R7 4
+ 0x58200009, // 0022 LDCONST R8 K9
+ 0x7C180400, // 0023 CALL R6 2
+ 0x8C180510, // 0024 GETMET R6 R2 K16
+ 0x58200011, // 0025 LDCONST R8 K17
+ 0x58240012, // 0026 LDCONST R9 K18
+ 0x542A15A3, // 0027 LDINT R10 5540
+ 0x4C2C0000, // 0028 LDNIL R11
+ 0x5C300A00, // 0029 MOVE R12 R5
+ 0x8834010F, // 002A GETMBR R13 R0 K15
+ 0x7C180E00, // 002B CALL R6 7
+ 0x8C180905, // 002C GETMET R6 R4 K5
+ 0x7C180200, // 002D CALL R6 1
+ 0x001A2606, // 002E ADD R6 K19 R6
+ 0xB81E0E00, // 002F GETNGBL R7 K7
+ 0x00222806, // 0030 ADD R8 K20 R6
+ 0x58240009, // 0031 LDCONST R9 K9
+ 0x7C1C0400, // 0032 CALL R7 2
+ 0x8C1C0515, // 0033 GETMET R7 R2 K21
+ 0x58240011, // 0034 LDCONST R9 K17
+ 0x58280012, // 0035 LDCONST R10 K18
+ 0x5C2C0A00, // 0036 MOVE R11 R5
+ 0x8830010F, // 0037 GETMBR R12 R0 K15
+ 0x5C340C00, // 0038 MOVE R13 R6
+ 0x7C1C0C00, // 0039 CALL R7 6
+ 0xB81A1400, // 003A GETNGBL R6 K10
+ 0x8C180D16, // 003B GETMET R6 R6 K22
+ 0x7C180200, // 003C CALL R6 1
+ 0x8C180D0C, // 003D GETMET R6 R6 K12
+ 0x5820000D, // 003E LDCONST R8 K13
+ 0x7C180400, // 003F CALL R6 2
+ 0x781A001E, // 0040 JMPF R6 #0060
+ 0xB81A0E00, // 0041 GETNGBL R6 K7
+ 0x601C0018, // 0042 GETGBL R7 G24
+ 0x5820000E, // 0043 LDCONST R8 K14
+ 0x58240016, // 0044 LDCONST R9 K22
+ 0x5C280A00, // 0045 MOVE R10 R5
+ 0x882C0117, // 0046 GETMBR R11 R0 K23
+ 0x7C1C0800, // 0047 CALL R7 4
+ 0x58200009, // 0048 LDCONST R8 K9
+ 0x7C180400, // 0049 CALL R6 2
+ 0x8C180510, // 004A GETMET R6 R2 K16
+ 0x58200011, // 004B LDCONST R8 K17
+ 0x58240012, // 004C LDCONST R9 K18
+ 0x542A15A3, // 004D LDINT R10 5540
+ 0x4C2C0000, // 004E LDNIL R11
+ 0x5C300A00, // 004F MOVE R12 R5
+ 0x88340117, // 0050 GETMBR R13 R0 K23
+ 0x7C180E00, // 0051 CALL R6 7
+ 0x8C180905, // 0052 GETMET R6 R4 K5
+ 0x7C180200, // 0053 CALL R6 1
+ 0x001A2606, // 0054 ADD R6 K19 R6
+ 0xB81E0E00, // 0055 GETNGBL R7 K7
+ 0x00222806, // 0056 ADD R8 K20 R6
+ 0x58240009, // 0057 LDCONST R9 K9
+ 0x7C1C0400, // 0058 CALL R7 2
+ 0x8C1C0515, // 0059 GETMET R7 R2 K21
+ 0x58240011, // 005A LDCONST R9 K17
+ 0x58280012, // 005B LDCONST R10 K18
+ 0x5C2C0A00, // 005C MOVE R11 R5
+ 0x88300117, // 005D GETMBR R12 R0 K23
+ 0x5C340C00, // 005E MOVE R13 R6
+ 0x7C1C0C00, // 005F CALL R7 6
+ 0xA8040001, // 0060 EXBLK 1 1
+ 0x7002000F, // 0061 JMP #0072
+ 0xAC0C0002, // 0062 CATCH R3 0 2
+ 0x7002000C, // 0063 JMP #0071
+ 0xB8160E00, // 0064 GETNGBL R5 K7
+ 0x60180008, // 0065 GETGBL R6 G8
+ 0x5C1C0600, // 0066 MOVE R7 R3
+ 0x7C180200, // 0067 CALL R6 1
+ 0x001A3006, // 0068 ADD R6 K24 R6
+ 0x00180D19, // 0069 ADD R6 R6 K25
+ 0x601C0008, // 006A GETGBL R7 G8
+ 0x5C200800, // 006B MOVE R8 R4
+ 0x7C1C0200, // 006C CALL R7 1
+ 0x00180C07, // 006D ADD R6 R6 R7
+ 0x581C001A, // 006E LDCONST R7 K26
+ 0x7C140400, // 006F CALL R5 2
+ 0x70020000, // 0070 JMP #0072
+ 0xB0080000, // 0071 RAISE 2 R0 R0
+ 0x80000000, // 0072 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_commissioning_complete_deferred
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_commissioning_complete_deferred, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_commissioning_complete),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_commissioning_complete_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: read_sensors_scheduler
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_read_sensors_scheduler, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 7]) { /* constants */
+ /* K0 */ be_nested_str_weak(probe_sensor_time),
+ /* K1 */ be_nested_str_weak(probe_sensor_timestamp),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(tasmota),
+ /* K4 */ be_nested_str_weak(time_reached),
+ /* K5 */ be_nested_str_weak(_trigger_read_sensors),
+ /* K6 */ be_nested_str_weak(millis),
+ }),
+ be_str_weak(read_sensors_scheduler),
+ &be_const_str_solidified,
+ ( &(const binstruction[21]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x1C040202, // 0002 EQ R1 R1 R2
+ 0x78060000, // 0003 JMPF R1 #0005
+ 0x80000200, // 0004 RET 0
+ 0x88040101, // 0005 GETMBR R1 R0 K1
+ 0x1C040302, // 0006 EQ R1 R1 K2
+ 0x74060004, // 0007 JMPT R1 #000D
+ 0xB8060600, // 0008 GETNGBL R1 K3
+ 0x8C040304, // 0009 GETMET R1 R1 K4
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x7C040400, // 000B CALL R1 2
+ 0x78060006, // 000C JMPF R1 #0014
+ 0x8C040105, // 000D GETMET R1 R0 K5
+ 0x7C040200, // 000E CALL R1 1
+ 0xB8060600, // 000F GETNGBL R1 K3
+ 0x8C040306, // 0010 GETMET R1 R1 K6
+ 0x880C0100, // 0011 GETMBR R3 R0 K0
+ 0x7C040400, // 0012 CALL R1 2
+ 0x90020201, // 0013 SETMBR R0 K1 R1
+ 0x80000000, // 0014 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_remove_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_remove_endpoint, /* name */
+ be_nested_proto(
+ 10, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[17]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(plugins_config),
+ /* K2 */ be_nested_str_weak(contains),
+ /* K3 */ be_nested_str_weak(log),
+ /* K4 */ be_nested_str_weak(MTR_X3A_X20Cannot_X20remove_X20an_X20enpoint_X20not_X20configured_X3A_X20),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20deleting_X20endpoint_X20_X3D_X20_X25i),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(plugins_persist),
+ /* K10 */ be_const_int(0),
+ /* K11 */ be_nested_str_weak(plugins),
+ /* K12 */ be_nested_str_weak(get_endpoint),
+ /* K13 */ be_const_int(1),
+ /* K14 */ be_nested_str_weak(clean_remotes),
+ /* K15 */ be_nested_str_weak(save_param),
+ /* K16 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_remove_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[56]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0x600C0008, // 0001 GETGBL R3 G8
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x4C100000, // 0004 LDNIL R4
+ 0x4C140000, // 0005 LDNIL R5
+ 0x88180101, // 0006 GETMBR R6 R0 K1
+ 0x8C180D02, // 0007 GETMET R6 R6 K2
+ 0x5C200600, // 0008 MOVE R8 R3
+ 0x7C180400, // 0009 CALL R6 2
+ 0x741A0004, // 000A JMPT R6 #0010
+ 0xB81A0600, // 000B GETNGBL R6 K3
+ 0x001E0803, // 000C ADD R7 K4 R3
+ 0x58200005, // 000D LDCONST R8 K5
+ 0x7C180400, // 000E CALL R6 2
+ 0x80000C00, // 000F RET 0
+ 0xB81A0600, // 0010 GETNGBL R6 K3
+ 0x601C0018, // 0011 GETGBL R7 G24
+ 0x58200006, // 0012 LDCONST R8 K6
+ 0x5C240200, // 0013 MOVE R9 R1
+ 0x7C1C0400, // 0014 CALL R7 2
+ 0x58200007, // 0015 LDCONST R8 K7
+ 0x7C180400, // 0016 CALL R6 2
+ 0x88180101, // 0017 GETMBR R6 R0 K1
+ 0x8C180D08, // 0018 GETMET R6 R6 K8
+ 0x5C200600, // 0019 MOVE R8 R3
+ 0x7C180400, // 001A CALL R6 2
+ 0x50180200, // 001B LDBOOL R6 1 0
+ 0x90021206, // 001C SETMBR R0 K9 R6
+ 0x5818000A, // 001D LDCONST R6 K10
+ 0x601C000C, // 001E GETGBL R7 G12
+ 0x8820010B, // 001F GETMBR R8 R0 K11
+ 0x7C1C0200, // 0020 CALL R7 1
+ 0x141C0C07, // 0021 LT R7 R6 R7
+ 0x781E000D, // 0022 JMPF R7 #0031
+ 0x881C010B, // 0023 GETMBR R7 R0 K11
+ 0x941C0E06, // 0024 GETIDX R7 R7 R6
+ 0x8C1C0F0C, // 0025 GETMET R7 R7 K12
+ 0x7C1C0200, // 0026 CALL R7 1
+ 0x1C1C0207, // 0027 EQ R7 R1 R7
+ 0x781E0005, // 0028 JMPF R7 #002F
+ 0x881C010B, // 0029 GETMBR R7 R0 K11
+ 0x8C1C0F08, // 002A GETMET R7 R7 K8
+ 0x5C240C00, // 002B MOVE R9 R6
+ 0x7C1C0400, // 002C CALL R7 2
+ 0x70020002, // 002D JMP #0031
+ 0x70020000, // 002E JMP #0030
+ 0x00180D0D, // 002F ADD R6 R6 K13
+ 0x7001FFEC, // 0030 JMP #001E
+ 0x8C1C010E, // 0031 GETMET R7 R0 K14
+ 0x7C1C0200, // 0032 CALL R7 1
+ 0x8C1C010F, // 0033 GETMET R7 R0 K15
+ 0x7C1C0200, // 0034 CALL R7 1
+ 0x8C1C0110, // 0035 GETMET R7 R0 K16
+ 0x7C1C0200, // 0036 CALL R7 1
+ 0x80000000, // 0037 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: bridge_add_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_bridge_add_endpoint, /* name */
+ be_nested_proto(
+ 16, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[20]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(log),
+ /* K3 */ be_nested_str_weak(MTR_X3A_X20unknown_X20class_X20name_X20_X27),
+ /* K4 */ be_nested_str_weak(_X27_X20skipping),
+ /* K5 */ be_const_int(3),
+ /* K6 */ be_nested_str_weak(next_ep),
+ /* K7 */ be_nested_str_weak(plugins),
+ /* K8 */ be_nested_str_weak(push),
+ /* K9 */ be_nested_str_weak(type),
+ /* K10 */ be_nested_str_weak(keys),
+ /* K11 */ be_nested_str_weak(stop_iteration),
+ /* K12 */ be_nested_str_weak(MTR_X3A_X20adding_X20endpoint_X20_X3D_X20_X25i_X20type_X3A_X25s_X25s),
+ /* K13 */ be_nested_str_weak(conf_to_log),
+ /* K14 */ be_const_int(2),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_persist),
+ /* K17 */ be_const_int(1),
+ /* K18 */ be_nested_str_weak(save_param),
+ /* K19 */ be_nested_str_weak(signal_endpoints_changed),
+ }),
+ be_str_weak(bridge_add_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[68]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x8C0C0701, // 0001 GETMET R3 R3 K1
+ 0x5C140200, // 0002 MOVE R5 R1
+ 0x7C0C0400, // 0003 CALL R3 2
+ 0x4C100000, // 0004 LDNIL R4
+ 0x1C100604, // 0005 EQ R4 R3 R4
+ 0x78120008, // 0006 JMPF R4 #0010
+ 0xB8120400, // 0007 GETNGBL R4 K2
+ 0x60140008, // 0008 GETGBL R5 G8
+ 0x5C180200, // 0009 MOVE R6 R1
+ 0x7C140200, // 000A CALL R5 1
+ 0x00160605, // 000B ADD R5 K3 R5
+ 0x00140B04, // 000C ADD R5 R5 K4
+ 0x58180005, // 000D LDCONST R6 K5
+ 0x7C100400, // 000E CALL R4 2
+ 0x80000800, // 000F RET 0
+ 0x88100106, // 0010 GETMBR R4 R0 K6
+ 0x60140008, // 0011 GETGBL R5 G8
+ 0x5C180800, // 0012 MOVE R6 R4
+ 0x7C140200, // 0013 CALL R5 1
+ 0x5C180600, // 0014 MOVE R6 R3
+ 0x5C1C0000, // 0015 MOVE R7 R0
+ 0x5C200800, // 0016 MOVE R8 R4
+ 0x5C240400, // 0017 MOVE R9 R2
+ 0x7C180600, // 0018 CALL R6 3
+ 0x881C0107, // 0019 GETMBR R7 R0 K7
+ 0x8C1C0F08, // 001A GETMET R7 R7 K8
+ 0x5C240C00, // 001B MOVE R9 R6
+ 0x7C1C0400, // 001C CALL R7 2
+ 0x601C0013, // 001D GETGBL R7 G19
+ 0x7C1C0000, // 001E CALL R7 0
+ 0x981E1201, // 001F SETIDX R7 K9 R1
+ 0x60200010, // 0020 GETGBL R8 G16
+ 0x8C24050A, // 0021 GETMET R9 R2 K10
+ 0x7C240200, // 0022 CALL R9 1
+ 0x7C200200, // 0023 CALL R8 1
+ 0xA8020004, // 0024 EXBLK 0 #002A
+ 0x5C241000, // 0025 MOVE R9 R8
+ 0x7C240000, // 0026 CALL R9 0
+ 0x94280409, // 0027 GETIDX R10 R2 R9
+ 0x981C120A, // 0028 SETIDX R7 R9 R10
+ 0x7001FFFA, // 0029 JMP #0025
+ 0x5820000B, // 002A LDCONST R8 K11
+ 0xAC200200, // 002B CATCH R8 1 0
+ 0xB0080000, // 002C RAISE 2 R0 R0
+ 0xB8220400, // 002D GETNGBL R8 K2
+ 0x60240018, // 002E GETGBL R9 G24
+ 0x5828000C, // 002F LDCONST R10 K12
+ 0x5C2C0800, // 0030 MOVE R11 R4
+ 0x5C300200, // 0031 MOVE R12 R1
+ 0x8C34010D, // 0032 GETMET R13 R0 K13
+ 0x5C3C0400, // 0033 MOVE R15 R2
+ 0x7C340400, // 0034 CALL R13 2
+ 0x7C240800, // 0035 CALL R9 4
+ 0x5828000E, // 0036 LDCONST R10 K14
+ 0x7C200400, // 0037 CALL R8 2
+ 0x8820010F, // 0038 GETMBR R8 R0 K15
+ 0x98200A07, // 0039 SETIDX R8 R5 R7
+ 0x50200200, // 003A LDBOOL R8 1 0
+ 0x90022008, // 003B SETMBR R0 K16 R8
+ 0x88200106, // 003C GETMBR R8 R0 K6
+ 0x00201111, // 003D ADD R8 R8 K17
+ 0x90020C08, // 003E SETMBR R0 K6 R8
+ 0x8C200112, // 003F GETMET R8 R0 K18
+ 0x7C200200, // 0040 CALL R8 1
+ 0x8C200113, // 0041 GETMET R8 R0 K19
+ 0x7C200200, // 0042 CALL R8 1
+ 0x80040800, // 0043 RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_root_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_root_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 2]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(commissioning_admin_fabric),
+ }),
+ be_str_weak(is_root_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[11]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x78060003, // 0003 JMPF R1 #0008
+ 0x88040101, // 0004 GETMBR R1 R0 K1
+ 0x4C080000, // 0005 LDNIL R2
+ 0x1C040202, // 0006 EQ R1 R1 R2
+ 0x74060000, // 0007 JMPT R1 #0009
+ 0x50040001, // 0008 LDBOOL R1 0 1
+ 0x50040200, // 0009 LDBOOL R1 1 0
+ 0x80040200, // 000A RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_operational_discovery
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_operational_discovery, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(mdns),
+ /* K2 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K3 */ be_nested_str_weak(mdns_announce_op_discovery),
+ }),
+ be_str_weak(start_operational_discovery),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0xA40A0000, // 0000 IMPORT R2 K0
+ 0xA40E0200, // 0001 IMPORT R3 K1
+ 0x8C100102, // 0002 GETMET R4 R0 K2
+ 0x7C100200, // 0003 CALL R4 1
+ 0x8C100103, // 0004 GETMET R4 R0 K3
+ 0x5C180200, // 0005 MOVE R6 R1
+ 0x7C100400, // 0006 CALL R4 2
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
/********************************************************************
** Solidified function: MtrInfo
********************************************************************/
@@ -5110,12 +4033,12 @@ be_local_closure(class_Matter_Device_MtrInfo, /* name */
/********************************************************************
-** Solidified function: every_250ms
+** Solidified function: signal_endpoints_changed
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_every_250ms, /* name */
+be_local_closure(class_Matter_Device_signal_endpoints_changed, /* name */
be_nested_proto(
- 4, /* nstack */
+ 7, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -5124,405 +4047,29 @@ be_local_closure(class_Matter_Device_every_250ms, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(read_sensors_scheduler),
+ /* K0 */ be_nested_str_weak(attribute_updated),
/* K1 */ be_const_int(0),
- /* K2 */ be_nested_str_weak(plugins),
- /* K3 */ be_nested_str_weak(every_250ms),
- /* K4 */ be_const_int(1),
- }),
- be_str_weak(every_250ms),
- &be_const_str_solidified,
- ( &(const binstruction[15]) { /* code */
- 0x8C040100, // 0000 GETMET R1 R0 K0
- 0x7C040200, // 0001 CALL R1 1
- 0x58040001, // 0002 LDCONST R1 K1
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x880C0102, // 0004 GETMBR R3 R0 K2
- 0x7C080200, // 0005 CALL R2 1
- 0x14080202, // 0006 LT R2 R1 R2
- 0x780A0005, // 0007 JMPF R2 #000E
- 0x88080102, // 0008 GETMBR R2 R0 K2
- 0x94080401, // 0009 GETIDX R2 R2 R1
- 0x8C080503, // 000A GETMET R2 R2 K3
- 0x7C080200, // 000B CALL R2 1
- 0x00040304, // 000C ADD R1 R1 K4
- 0x7001FFF4, // 000D JMP #0003
- 0x80000000, // 000E RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: generate_random_passcode
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
- be_nested_proto(
- 7, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 8]) { /* constants */
- /* K0 */ be_nested_str_weak(crypto),
- /* K1 */ be_nested_str_weak(random),
- /* K2 */ be_nested_str_weak(get),
- /* K3 */ be_const_int(0),
- /* K4 */ be_const_int(134217727),
- /* K5 */ be_const_int(99999998),
- /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
- /* K7 */ be_nested_str_weak(stop_iteration),
- }),
- be_str_weak(generate_random_passcode),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x4C080000, // 0001 LDNIL R2
- 0x500C0200, // 0002 LDBOOL R3 1 0
- 0x780E001D, // 0003 JMPF R3 #0022
- 0x8C0C0301, // 0004 GETMET R3 R1 K1
- 0x54160003, // 0005 LDINT R5 4
- 0x7C0C0400, // 0006 CALL R3 2
- 0x8C0C0702, // 0007 GETMET R3 R3 K2
- 0x58140003, // 0008 LDCONST R5 K3
- 0x541A0003, // 0009 LDINT R6 4
- 0x7C0C0600, // 000A CALL R3 3
- 0x2C0C0704, // 000B AND R3 R3 K4
- 0x5C080600, // 000C MOVE R2 R3
- 0x240C0505, // 000D GT R3 R2 K5
- 0x780E0000, // 000E JMPF R3 #0010
- 0x7001FFF1, // 000F JMP #0002
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100106, // 0011 GETMBR R4 R0 K6
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA8020005, // 0013 EXBLK 0 #001A
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x1C140404, // 0016 EQ R5 R2 R4
- 0x78160000, // 0017 JMPF R5 #0019
- 0x4C080000, // 0018 LDNIL R2
- 0x7001FFF9, // 0019 JMP #0014
- 0x580C0007, // 001A LDCONST R3 K7
- 0xAC0C0200, // 001B CATCH R3 1 0
- 0xB0080000, // 001C RAISE 2 R0 R0
- 0x4C0C0000, // 001D LDNIL R3
- 0x200C0403, // 001E NE R3 R2 R3
- 0x780E0000, // 001F JMPF R3 #0021
- 0x80040400, // 0020 RET 1 R2
- 0x7001FFDF, // 0021 JMP #0002
- 0x80000000, // 0022 RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: MtrJoin
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_MtrJoin, /* name */
- be_nested_proto(
- 8, /* nstack */
- 5, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
- /* K1 */ be_nested_str_weak(stop_basic_commissioning),
- /* K2 */ be_nested_str_weak(tasmota),
- /* K3 */ be_nested_str_weak(resp_cmnd_done),
- }),
- be_str_weak(MtrJoin),
- &be_const_str_solidified,
- ( &(const binstruction[13]) { /* code */
- 0x60140009, // 0000 GETGBL R5 G9
- 0x5C180600, // 0001 MOVE R6 R3
- 0x7C140200, // 0002 CALL R5 1
- 0x78160002, // 0003 JMPF R5 #0007
- 0x8C180100, // 0004 GETMET R6 R0 K0
- 0x7C180200, // 0005 CALL R6 1
- 0x70020001, // 0006 JMP #0009
- 0x8C180101, // 0007 GETMET R6 R0 K1
- 0x7C180200, // 0008 CALL R6 1
- 0xB81A0400, // 0009 GETNGBL R6 K2
- 0x8C180D03, // 000A GETMET R6 R6 K3
- 0x7C180200, // 000B CALL R6 1
- 0x80000000, // 000C RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: process_attribute_expansion
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_process_attribute_expansion, /* name */
- be_nested_proto(
- 12, /* nstack */
- 3, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 9]) { /* constants */
- /* K0 */ be_nested_str_weak(endpoint),
- /* K1 */ be_nested_str_weak(cluster),
- /* K2 */ be_nested_str_weak(attribute),
+ /* K2 */ be_const_int(3),
/* K3 */ be_nested_str_weak(matter),
- /* K4 */ be_nested_str_weak(PathGenerator),
- /* K5 */ be_nested_str_weak(start),
- /* K6 */ be_nested_str_weak(is_direct),
- /* K7 */ be_nested_str_weak(next_attribute),
- /* K8 */ be_nested_str_weak(get_pi),
+ /* K4 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
}),
- be_str_weak(process_attribute_expansion),
+ be_str_weak(signal_endpoints_changed),
&be_const_str_solidified,
- ( &(const binstruction[28]) { /* code */
- 0x880C0300, // 0000 GETMBR R3 R1 K0
- 0x88100301, // 0001 GETMBR R4 R1 K1
- 0x88140302, // 0002 GETMBR R5 R1 K2
- 0xB81A0600, // 0003 GETNGBL R6 K3
- 0x8C180D04, // 0004 GETMET R6 R6 K4
- 0x5C200000, // 0005 MOVE R8 R0
- 0x7C180400, // 0006 CALL R6 2
- 0x8C1C0D05, // 0007 GETMET R7 R6 K5
- 0x5C240600, // 0008 MOVE R9 R3
- 0x5C280800, // 0009 MOVE R10 R4
- 0x5C2C0A00, // 000A MOVE R11 R5
- 0x7C1C0800, // 000B CALL R7 4
- 0x8C1C0D06, // 000C GETMET R7 R6 K6
- 0x7C1C0200, // 000D CALL R7 1
- 0x4C200000, // 000E LDNIL R8
- 0x8C240D07, // 000F GETMET R9 R6 K7
- 0x7C240200, // 0010 CALL R9 1
- 0x5C201200, // 0011 MOVE R8 R9
- 0x4C280000, // 0012 LDNIL R10
- 0x2024120A, // 0013 NE R9 R9 R10
- 0x78260005, // 0014 JMPF R9 #001B
- 0x5C240400, // 0015 MOVE R9 R2
- 0x8C280D08, // 0016 GETMET R10 R6 K8
- 0x7C280200, // 0017 CALL R10 1
- 0x5C2C1000, // 0018 MOVE R11 R8
- 0x7C240400, // 0019 CALL R9 2
- 0x7001FFF3, // 001A JMP #000F
- 0x80000000, // 001B RET 0
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: find_plugin_by_friendly_name
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
- be_nested_proto(
- 7, /* nstack */
- 2, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[ 4]) { /* constants */
- /* K0 */ be_const_int(0),
- /* K1 */ be_nested_str_weak(plugins),
- /* K2 */ be_nested_str_weak(get_name),
- /* K3 */ be_const_int(1),
- }),
- be_str_weak(find_plugin_by_friendly_name),
- &be_const_str_solidified,
- ( &(const binstruction[35]) { /* code */
- 0x4C080000, // 0000 LDNIL R2
- 0x1C080202, // 0001 EQ R2 R1 R2
- 0x740A0004, // 0002 JMPT R2 #0008
- 0x6008000C, // 0003 GETGBL R2 G12
- 0x5C0C0200, // 0004 MOVE R3 R1
- 0x7C080200, // 0005 CALL R2 1
- 0x1C080500, // 0006 EQ R2 R2 K0
- 0x780A0001, // 0007 JMPF R2 #000A
- 0x4C080000, // 0008 LDNIL R2
- 0x80040400, // 0009 RET 1 R2
- 0x58080000, // 000A LDCONST R2 K0
- 0x600C000C, // 000B GETGBL R3 G12
- 0x88100101, // 000C GETMBR R4 R0 K1
- 0x7C0C0200, // 000D CALL R3 1
- 0x140C0403, // 000E LT R3 R2 R3
- 0x780E0010, // 000F JMPF R3 #0021
- 0x880C0101, // 0010 GETMBR R3 R0 K1
- 0x940C0602, // 0011 GETIDX R3 R3 R2
- 0x8C100702, // 0012 GETMET R4 R3 K2
- 0x7C100200, // 0013 CALL R4 1
- 0x4C140000, // 0014 LDNIL R5
- 0x20140805, // 0015 NE R5 R4 R5
- 0x78160007, // 0016 JMPF R5 #001F
- 0x6014000C, // 0017 GETGBL R5 G12
- 0x5C180800, // 0018 MOVE R6 R4
- 0x7C140200, // 0019 CALL R5 1
- 0x24140B00, // 001A GT R5 R5 K0
- 0x78160002, // 001B JMPF R5 #001F
- 0x1C140801, // 001C EQ R5 R4 R1
- 0x78160000, // 001D JMPF R5 #001F
- 0x80040600, // 001E RET 1 R3
- 0x00080503, // 001F ADD R2 R2 K3
- 0x7001FFE9, // 0020 JMP #000B
- 0x4C0C0000, // 0021 LDNIL R3
- 0x80040600, // 0022 RET 1 R3
- })
- )
-);
-/*******************************************************************/
-
-
-/********************************************************************
-** Solidified function: save_param
-********************************************************************/
-extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_save_param, /* name */
- be_nested_proto(
- 9, /* nstack */
- 1, /* argc */
- 2, /* varg */
- 0, /* has upvals */
- NULL, /* no upvals */
- 0, /* has sup protos */
- &be_class_Matter_Device,
- 1, /* has constants */
- ( &(const bvalue[31]) { /* constants */
- /* K0 */ be_nested_str_weak(json),
- /* K1 */ be_nested_str_weak(update_remotes_info),
- /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
- /* K3 */ be_nested_str_weak(root_discriminator),
- /* K4 */ be_nested_str_weak(root_passcode),
- /* K5 */ be_nested_str_weak(ipv4only),
- /* K6 */ be_nested_str_weak(true),
- /* K7 */ be_nested_str_weak(false),
- /* K8 */ be_nested_str_weak(disable_bridge_mode),
- /* K9 */ be_nested_str_weak(next_ep),
- /* K10 */ be_nested_str_weak(debug),
- /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
- /* K12 */ be_nested_str_weak(plugins_persist),
- /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
- /* K14 */ be_nested_str_weak(dump),
- /* K15 */ be_nested_str_weak(plugins_config),
- /* K16 */ be_nested_str_weak(plugins_config_remotes),
- /* K17 */ be_const_int(0),
- /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
- /* K19 */ be_nested_str_weak(_X7D),
- /* K20 */ be_nested_str_weak(FILENAME),
- /* K21 */ be_nested_str_weak(w),
- /* K22 */ be_nested_str_weak(write),
- /* K23 */ be_nested_str_weak(close),
- /* K24 */ be_nested_str_weak(log),
- /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
- /* K26 */ be_nested_str_weak(_X20and_X20configuration),
- /* K27 */ be_nested_str_weak(),
- /* K28 */ be_const_int(2),
- /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
- /* K30 */ be_nested_str_weak(_X7C),
- }),
- be_str_weak(save_param),
- &be_const_str_solidified,
- ( &(const binstruction[83]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x8C080101, // 0001 GETMET R2 R0 K1
- 0x7C080200, // 0002 CALL R2 1
- 0x60080018, // 0003 GETGBL R2 G24
- 0x580C0002, // 0004 LDCONST R3 K2
- 0x88100103, // 0005 GETMBR R4 R0 K3
- 0x88140104, // 0006 GETMBR R5 R0 K4
- 0x88180105, // 0007 GETMBR R6 R0 K5
- 0x781A0001, // 0008 JMPF R6 #000B
- 0x58180006, // 0009 LDCONST R6 K6
- 0x70020000, // 000A JMP #000C
- 0x58180007, // 000B LDCONST R6 K7
- 0x881C0108, // 000C GETMBR R7 R0 K8
- 0x781E0001, // 000D JMPF R7 #0010
- 0x581C0006, // 000E LDCONST R7 K6
- 0x70020000, // 000F JMP #0011
- 0x581C0007, // 0010 LDCONST R7 K7
- 0x88200109, // 0011 GETMBR R8 R0 K9
- 0x7C080C00, // 0012 CALL R2 6
- 0x880C010A, // 0013 GETMBR R3 R0 K10
- 0x780E0000, // 0014 JMPF R3 #0016
- 0x0008050B, // 0015 ADD R2 R2 K11
- 0x880C010C, // 0016 GETMBR R3 R0 K12
- 0x780E000E, // 0017 JMPF R3 #0027
- 0x0008050D, // 0018 ADD R2 R2 K13
- 0x8C0C030E, // 0019 GETMET R3 R1 K14
- 0x8814010F, // 001A GETMBR R5 R0 K15
- 0x7C0C0400, // 001B CALL R3 2
- 0x00080403, // 001C ADD R2 R2 R3
- 0x600C000C, // 001D GETGBL R3 G12
- 0x88100110, // 001E GETMBR R4 R0 K16
- 0x7C0C0200, // 001F CALL R3 1
- 0x240C0711, // 0020 GT R3 R3 K17
- 0x780E0004, // 0021 JMPF R3 #0027
- 0x00080512, // 0022 ADD R2 R2 K18
- 0x8C0C030E, // 0023 GETMET R3 R1 K14
- 0x88140110, // 0024 GETMBR R5 R0 K16
- 0x7C0C0400, // 0025 CALL R3 2
- 0x00080403, // 0026 ADD R2 R2 R3
- 0x00080513, // 0027 ADD R2 R2 K19
- 0xA8020017, // 0028 EXBLK 0 #0041
- 0x600C0011, // 0029 GETGBL R3 G17
- 0x88100114, // 002A GETMBR R4 R0 K20
- 0x58140015, // 002B LDCONST R5 K21
- 0x7C0C0400, // 002C CALL R3 2
- 0x8C100716, // 002D GETMET R4 R3 K22
- 0x5C180400, // 002E MOVE R6 R2
- 0x7C100400, // 002F CALL R4 2
- 0x8C100717, // 0030 GETMET R4 R3 K23
- 0x7C100200, // 0031 CALL R4 1
- 0xB8123000, // 0032 GETNGBL R4 K24
- 0x60140018, // 0033 GETGBL R5 G24
- 0x58180019, // 0034 LDCONST R6 K25
- 0x881C010C, // 0035 GETMBR R7 R0 K12
- 0x781E0001, // 0036 JMPF R7 #0039
- 0x581C001A, // 0037 LDCONST R7 K26
- 0x70020000, // 0038 JMP #003A
- 0x581C001B, // 0039 LDCONST R7 K27
- 0x7C140400, // 003A CALL R5 2
- 0x5818001C, // 003B LDCONST R6 K28
- 0x7C100400, // 003C CALL R4 2
- 0xA8040001, // 003D EXBLK 1 1
- 0x80040400, // 003E RET 1 R2
- 0xA8040001, // 003F EXBLK 1 1
- 0x70020010, // 0040 JMP #0052
- 0xAC0C0002, // 0041 CATCH R3 0 2
- 0x7002000D, // 0042 JMP #0051
- 0xB8163000, // 0043 GETNGBL R5 K24
- 0x60180008, // 0044 GETGBL R6 G8
- 0x5C1C0600, // 0045 MOVE R7 R3
- 0x7C180200, // 0046 CALL R6 1
- 0x001A3A06, // 0047 ADD R6 K29 R6
- 0x00180D1E, // 0048 ADD R6 R6 K30
- 0x601C0008, // 0049 GETGBL R7 G8
- 0x5C200800, // 004A MOVE R8 R4
- 0x7C1C0200, // 004B CALL R7 1
- 0x00180C07, // 004C ADD R6 R6 R7
- 0x581C001C, // 004D LDCONST R7 K28
- 0x7C140400, // 004E CALL R5 2
- 0x80040400, // 004F RET 1 R2
- 0x70020000, // 0050 JMP #0052
- 0xB0080000, // 0051 RAISE 2 R0 R0
- 0x80000000, // 0052 RET 0
+ ( &(const binstruction[14]) { /* code */
+ 0x8C040100, // 0000 GETMET R1 R0 K0
+ 0x580C0001, // 0001 LDCONST R3 K1
+ 0x5412001C, // 0002 LDINT R4 29
+ 0x58140002, // 0003 LDCONST R5 K2
+ 0x50180000, // 0004 LDBOOL R6 0 0
+ 0x7C040A00, // 0005 CALL R1 5
+ 0x8C040100, // 0006 GETMET R1 R0 K0
+ 0xB80E0600, // 0007 GETNGBL R3 K3
+ 0x880C0704, // 0008 GETMBR R3 R3 K4
+ 0x5412001C, // 0009 LDINT R4 29
+ 0x58140002, // 000A LDCONST R5 K2
+ 0x50180000, // 000B LDBOOL R6 0 0
+ 0x7C040A00, // 000C CALL R1 5
+ 0x80000000, // 000D RET 0
})
)
);
@@ -5706,33 +4253,487 @@ be_local_closure(class_Matter_Device_MtrUpdate, /* name */
/********************************************************************
-** Solidified function: get_plugin_remote_info
+** Solidified function: start_operational_discovery_deferred
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
+be_local_closure(class_Matter_Device_start_operational_discovery_deferred, /* name */
be_nested_proto(
6, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 2]) {
+ be_nested_proto(
+ 3, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 2]) { /* upvals */
+ be_local_const_upval(1, 0),
+ be_local_const_upval(1, 1),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_operational_discovery),
+ }),
+ be_str_weak(_X3Clambda_X3E),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 5]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x68080001, // 0002 GETUPV R2 U1
+ 0x7C000400, // 0003 CALL R0 2
+ 0x80040000, // 0004 RET 1 R0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(tasmota),
+ /* K1 */ be_nested_str_weak(set_timer),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(start_operational_discovery_deferred),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 7]) { /* code */
+ 0xB80A0000, // 0000 GETNGBL R2 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x58100002, // 0002 LDCONST R4 K2
+ 0x84140000, // 0003 CLOSURE R5 P0
+ 0x7C080600, // 0004 CALL R2 3
+ 0xA0000000, // 0005 CLOSE R0
+ 0x80000000, // 0006 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: save_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_save_param, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[31]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(update_remotes_info),
+ /* K2 */ be_nested_str_weak(_X7B_X22distinguish_X22_X3A_X25i_X2C_X22passcode_X22_X3A_X25i_X2C_X22ipv4only_X22_X3A_X25s_X2C_X22disable_bridge_mode_X22_X3A_X25s_X2C_X22nextep_X22_X3A_X25i),
+ /* K3 */ be_nested_str_weak(root_discriminator),
+ /* K4 */ be_nested_str_weak(root_passcode),
+ /* K5 */ be_nested_str_weak(ipv4only),
+ /* K6 */ be_nested_str_weak(true),
+ /* K7 */ be_nested_str_weak(false),
+ /* K8 */ be_nested_str_weak(disable_bridge_mode),
+ /* K9 */ be_nested_str_weak(next_ep),
+ /* K10 */ be_nested_str_weak(debug),
+ /* K11 */ be_nested_str_weak(_X2C_X22debug_X22_X3Atrue),
+ /* K12 */ be_nested_str_weak(plugins_persist),
+ /* K13 */ be_nested_str_weak(_X2C_X0A_X22config_X22_X3A),
+ /* K14 */ be_nested_str_weak(dump),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(plugins_config_remotes),
+ /* K17 */ be_const_int(0),
+ /* K18 */ be_nested_str_weak(_X2C_X0A_X22remotes_X22_X3A),
+ /* K19 */ be_nested_str_weak(_X7D),
+ /* K20 */ be_nested_str_weak(FILENAME),
+ /* K21 */ be_nested_str_weak(w),
+ /* K22 */ be_nested_str_weak(write),
+ /* K23 */ be_nested_str_weak(close),
+ /* K24 */ be_nested_str_weak(log),
+ /* K25 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20parameters_X25s),
+ /* K26 */ be_nested_str_weak(_X20and_X20configuration),
+ /* K27 */ be_nested_str_weak(),
+ /* K28 */ be_const_int(2),
+ /* K29 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
+ /* K30 */ be_nested_str_weak(_X7C),
+ }),
+ be_str_weak(save_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[83]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x8C080101, // 0001 GETMET R2 R0 K1
+ 0x7C080200, // 0002 CALL R2 1
+ 0x60080018, // 0003 GETGBL R2 G24
+ 0x580C0002, // 0004 LDCONST R3 K2
+ 0x88100103, // 0005 GETMBR R4 R0 K3
+ 0x88140104, // 0006 GETMBR R5 R0 K4
+ 0x88180105, // 0007 GETMBR R6 R0 K5
+ 0x781A0001, // 0008 JMPF R6 #000B
+ 0x58180006, // 0009 LDCONST R6 K6
+ 0x70020000, // 000A JMP #000C
+ 0x58180007, // 000B LDCONST R6 K7
+ 0x881C0108, // 000C GETMBR R7 R0 K8
+ 0x781E0001, // 000D JMPF R7 #0010
+ 0x581C0006, // 000E LDCONST R7 K6
+ 0x70020000, // 000F JMP #0011
+ 0x581C0007, // 0010 LDCONST R7 K7
+ 0x88200109, // 0011 GETMBR R8 R0 K9
+ 0x7C080C00, // 0012 CALL R2 6
+ 0x880C010A, // 0013 GETMBR R3 R0 K10
+ 0x780E0000, // 0014 JMPF R3 #0016
+ 0x0008050B, // 0015 ADD R2 R2 K11
+ 0x880C010C, // 0016 GETMBR R3 R0 K12
+ 0x780E000E, // 0017 JMPF R3 #0027
+ 0x0008050D, // 0018 ADD R2 R2 K13
+ 0x8C0C030E, // 0019 GETMET R3 R1 K14
+ 0x8814010F, // 001A GETMBR R5 R0 K15
+ 0x7C0C0400, // 001B CALL R3 2
+ 0x00080403, // 001C ADD R2 R2 R3
+ 0x600C000C, // 001D GETGBL R3 G12
+ 0x88100110, // 001E GETMBR R4 R0 K16
+ 0x7C0C0200, // 001F CALL R3 1
+ 0x240C0711, // 0020 GT R3 R3 K17
+ 0x780E0004, // 0021 JMPF R3 #0027
+ 0x00080512, // 0022 ADD R2 R2 K18
+ 0x8C0C030E, // 0023 GETMET R3 R1 K14
+ 0x88140110, // 0024 GETMBR R5 R0 K16
+ 0x7C0C0400, // 0025 CALL R3 2
+ 0x00080403, // 0026 ADD R2 R2 R3
+ 0x00080513, // 0027 ADD R2 R2 K19
+ 0xA8020017, // 0028 EXBLK 0 #0041
+ 0x600C0011, // 0029 GETGBL R3 G17
+ 0x88100114, // 002A GETMBR R4 R0 K20
+ 0x58140015, // 002B LDCONST R5 K21
+ 0x7C0C0400, // 002C CALL R3 2
+ 0x8C100716, // 002D GETMET R4 R3 K22
+ 0x5C180400, // 002E MOVE R6 R2
+ 0x7C100400, // 002F CALL R4 2
+ 0x8C100717, // 0030 GETMET R4 R3 K23
+ 0x7C100200, // 0031 CALL R4 1
+ 0xB8123000, // 0032 GETNGBL R4 K24
+ 0x60140018, // 0033 GETGBL R5 G24
+ 0x58180019, // 0034 LDCONST R6 K25
+ 0x881C010C, // 0035 GETMBR R7 R0 K12
+ 0x781E0001, // 0036 JMPF R7 #0039
+ 0x581C001A, // 0037 LDCONST R7 K26
+ 0x70020000, // 0038 JMP #003A
+ 0x581C001B, // 0039 LDCONST R7 K27
+ 0x7C140400, // 003A CALL R5 2
+ 0x5818001C, // 003B LDCONST R6 K28
+ 0x7C100400, // 003C CALL R4 2
+ 0xA8040001, // 003D EXBLK 1 1
+ 0x80040400, // 003E RET 1 R2
+ 0xA8040001, // 003F EXBLK 1 1
+ 0x70020010, // 0040 JMP #0052
+ 0xAC0C0002, // 0041 CATCH R3 0 2
+ 0x7002000D, // 0042 JMP #0051
+ 0xB8163000, // 0043 GETNGBL R5 K24
+ 0x60180008, // 0044 GETGBL R6 G8
+ 0x5C1C0600, // 0045 MOVE R7 R3
+ 0x7C180200, // 0046 CALL R6 1
+ 0x001A3A06, // 0047 ADD R6 K29 R6
+ 0x00180D1E, // 0048 ADD R6 R6 K30
+ 0x601C0008, // 0049 GETGBL R7 G8
+ 0x5C200800, // 004A MOVE R8 R4
+ 0x7C1C0200, // 004B CALL R7 1
+ 0x00180C07, // 004C ADD R6 R6 R7
+ 0x581C001C, // 004D LDCONST R7 K28
+ 0x7C140400, // 004E CALL R5 2
+ 0x80040400, // 004F RET 1 R2
+ 0x70020000, // 0050 JMP #0052
+ 0xB0080000, // 0051 RAISE 2 R0 R0
+ 0x80000000, // 0052 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: load_param
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_load_param, /* name */
+ be_nested_proto(
+ 12, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[36]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(FILENAME),
+ /* K2 */ be_nested_str_weak(read),
+ /* K3 */ be_nested_str_weak(close),
+ /* K4 */ be_nested_str_weak(json),
+ /* K5 */ be_nested_str_weak(load),
+ /* K6 */ be_nested_str_weak(root_discriminator),
+ /* K7 */ be_nested_str_weak(find),
+ /* K8 */ be_nested_str_weak(distinguish),
+ /* K9 */ be_nested_str_weak(root_passcode),
+ /* K10 */ be_nested_str_weak(passcode),
+ /* K11 */ be_nested_str_weak(ipv4only),
+ /* K12 */ be_nested_str_weak(disable_bridge_mode),
+ /* K13 */ be_nested_str_weak(next_ep),
+ /* K14 */ be_nested_str_weak(nextep),
+ /* K15 */ be_nested_str_weak(plugins_config),
+ /* K16 */ be_nested_str_weak(config),
+ /* K17 */ be_nested_str_weak(debug),
+ /* K18 */ be_nested_str_weak(log),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20Load_config_X20_X3D_X20_X25s),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(adjust_next_ep),
+ /* K22 */ be_nested_str_weak(check_config_ep),
+ /* K23 */ be_nested_str_weak(plugins_persist),
+ /* K24 */ be_nested_str_weak(plugins_config_remotes),
+ /* K25 */ be_nested_str_weak(remotes),
+ /* K26 */ be_nested_str_weak(MTR_X3A_X20load_remotes_X20_X3D_X20),
+ /* K27 */ be_nested_str_weak(io_error),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20load_param_X20Exception_X3A),
+ /* K29 */ be_nested_str_weak(_X7C),
+ /* K30 */ be_const_int(2),
+ /* K31 */ be_nested_str_weak(random),
+ /* K32 */ be_nested_str_weak(get),
+ /* K33 */ be_const_int(0),
+ /* K34 */ be_nested_str_weak(generate_random_passcode),
+ /* K35 */ be_nested_str_weak(save_param),
+ }),
+ be_str_weak(load_param),
+ &be_const_str_solidified,
+ ( &(const binstruction[133]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x50080000, // 0001 LDBOOL R2 0 0
+ 0xA8020054, // 0002 EXBLK 0 #0058
+ 0x600C0011, // 0003 GETGBL R3 G17
+ 0x88100101, // 0004 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0005 CALL R3 1
+ 0x8C100702, // 0006 GETMET R4 R3 K2
+ 0x7C100200, // 0007 CALL R4 1
+ 0x8C140703, // 0008 GETMET R5 R3 K3
+ 0x7C140200, // 0009 CALL R5 1
+ 0xA4160800, // 000A IMPORT R5 K4
+ 0x8C180B05, // 000B GETMET R6 R5 K5
+ 0x5C200800, // 000C MOVE R8 R4
+ 0x7C180400, // 000D CALL R6 2
+ 0x8C1C0D07, // 000E GETMET R7 R6 K7
+ 0x58240008, // 000F LDCONST R9 K8
+ 0x88280106, // 0010 GETMBR R10 R0 K6
+ 0x7C1C0600, // 0011 CALL R7 3
+ 0x90020C07, // 0012 SETMBR R0 K6 R7
+ 0x8C1C0D07, // 0013 GETMET R7 R6 K7
+ 0x5824000A, // 0014 LDCONST R9 K10
+ 0x88280109, // 0015 GETMBR R10 R0 K9
+ 0x7C1C0600, // 0016 CALL R7 3
+ 0x90021207, // 0017 SETMBR R0 K9 R7
+ 0x601C0017, // 0018 GETGBL R7 G23
+ 0x8C200D07, // 0019 GETMET R8 R6 K7
+ 0x5828000B, // 001A LDCONST R10 K11
+ 0x502C0000, // 001B LDBOOL R11 0 0
+ 0x7C200600, // 001C CALL R8 3
+ 0x7C1C0200, // 001D CALL R7 1
+ 0x90021607, // 001E SETMBR R0 K11 R7
+ 0x601C0017, // 001F GETGBL R7 G23
+ 0x8C200D07, // 0020 GETMET R8 R6 K7
+ 0x5828000C, // 0021 LDCONST R10 K12
+ 0x502C0000, // 0022 LDBOOL R11 0 0
+ 0x7C200600, // 0023 CALL R8 3
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x90021807, // 0025 SETMBR R0 K12 R7
+ 0x8C1C0D07, // 0026 GETMET R7 R6 K7
+ 0x5824000E, // 0027 LDCONST R9 K14
+ 0x8828010D, // 0028 GETMBR R10 R0 K13
+ 0x7C1C0600, // 0029 CALL R7 3
+ 0x90021A07, // 002A SETMBR R0 K13 R7
+ 0x8C1C0D07, // 002B GETMET R7 R6 K7
+ 0x58240010, // 002C LDCONST R9 K16
+ 0x7C1C0400, // 002D CALL R7 2
+ 0x90021E07, // 002E SETMBR R0 K15 R7
+ 0x601C0017, // 002F GETGBL R7 G23
+ 0x8C200D07, // 0030 GETMET R8 R6 K7
+ 0x58280011, // 0031 LDCONST R10 K17
+ 0x7C200400, // 0032 CALL R8 2
+ 0x7C1C0200, // 0033 CALL R7 1
+ 0x90022207, // 0034 SETMBR R0 K17 R7
+ 0x881C010F, // 0035 GETMBR R7 R0 K15
+ 0x4C200000, // 0036 LDNIL R8
+ 0x201C0E08, // 0037 NE R7 R7 R8
+ 0x781E000D, // 0038 JMPF R7 #0047
+ 0xB81E2400, // 0039 GETNGBL R7 K18
+ 0x60200018, // 003A GETGBL R8 G24
+ 0x58240013, // 003B LDCONST R9 K19
+ 0x8828010F, // 003C GETMBR R10 R0 K15
+ 0x7C200400, // 003D CALL R8 2
+ 0x58240014, // 003E LDCONST R9 K20
+ 0x7C1C0400, // 003F CALL R7 2
+ 0x8C1C0115, // 0040 GETMET R7 R0 K21
+ 0x7C1C0200, // 0041 CALL R7 1
+ 0x8C1C0116, // 0042 GETMET R7 R0 K22
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x5C080E00, // 0044 MOVE R2 R7
+ 0x501C0200, // 0045 LDBOOL R7 1 0
+ 0x90022E07, // 0046 SETMBR R0 K23 R7
+ 0x8C1C0D07, // 0047 GETMET R7 R6 K7
+ 0x58240019, // 0048 LDCONST R9 K25
+ 0x60280013, // 0049 GETGBL R10 G19
+ 0x7C280000, // 004A CALL R10 0
+ 0x7C1C0600, // 004B CALL R7 3
+ 0x90023007, // 004C SETMBR R0 K24 R7
+ 0x881C0118, // 004D GETMBR R7 R0 K24
+ 0x781E0006, // 004E JMPF R7 #0056
+ 0xB81E2400, // 004F GETNGBL R7 K18
+ 0x60200008, // 0050 GETGBL R8 G8
+ 0x88240118, // 0051 GETMBR R9 R0 K24
+ 0x7C200200, // 0052 CALL R8 1
+ 0x00223408, // 0053 ADD R8 K26 R8
+ 0x58240014, // 0054 LDCONST R9 K20
+ 0x7C1C0400, // 0055 CALL R7 2
+ 0xA8040001, // 0056 EXBLK 1 1
+ 0x70020011, // 0057 JMP #006A
+ 0xAC0C0002, // 0058 CATCH R3 0 2
+ 0x7002000E, // 0059 JMP #0069
+ 0x2014071B, // 005A NE R5 R3 K27
+ 0x7816000B, // 005B JMPF R5 #0068
+ 0xB8162400, // 005C GETNGBL R5 K18
+ 0x60180008, // 005D GETGBL R6 G8
+ 0x5C1C0600, // 005E MOVE R7 R3
+ 0x7C180200, // 005F CALL R6 1
+ 0x001A3806, // 0060 ADD R6 K28 R6
+ 0x00180D1D, // 0061 ADD R6 R6 K29
+ 0x601C0008, // 0062 GETGBL R7 G8
+ 0x5C200800, // 0063 MOVE R8 R4
+ 0x7C1C0200, // 0064 CALL R7 1
+ 0x00180C07, // 0065 ADD R6 R6 R7
+ 0x581C001E, // 0066 LDCONST R7 K30
+ 0x7C140400, // 0067 CALL R5 2
+ 0x70020000, // 0068 JMP #006A
+ 0xB0080000, // 0069 RAISE 2 R0 R0
+ 0x880C0106, // 006A GETMBR R3 R0 K6
+ 0x4C100000, // 006B LDNIL R4
+ 0x1C0C0604, // 006C EQ R3 R3 R4
+ 0x780E000A, // 006D JMPF R3 #0079
+ 0x8C0C031F, // 006E GETMET R3 R1 K31
+ 0x5814001E, // 006F LDCONST R5 K30
+ 0x7C0C0400, // 0070 CALL R3 2
+ 0x8C0C0720, // 0071 GETMET R3 R3 K32
+ 0x58140021, // 0072 LDCONST R5 K33
+ 0x5818001E, // 0073 LDCONST R6 K30
+ 0x7C0C0600, // 0074 CALL R3 3
+ 0x54120FFE, // 0075 LDINT R4 4095
+ 0x2C0C0604, // 0076 AND R3 R3 R4
+ 0x90020C03, // 0077 SETMBR R0 K6 R3
+ 0x50080200, // 0078 LDBOOL R2 1 0
+ 0x880C0109, // 0079 GETMBR R3 R0 K9
+ 0x4C100000, // 007A LDNIL R4
+ 0x1C0C0604, // 007B EQ R3 R3 R4
+ 0x780E0003, // 007C JMPF R3 #0081
+ 0x8C0C0122, // 007D GETMET R3 R0 K34
+ 0x7C0C0200, // 007E CALL R3 1
+ 0x90021203, // 007F SETMBR R0 K9 R3
+ 0x50080200, // 0080 LDBOOL R2 1 0
+ 0x780A0001, // 0081 JMPF R2 #0084
+ 0x8C0C0123, // 0082 GETMET R3 R0 K35
+ 0x7C0C0200, // 0083 CALL R3 1
+ 0x80000000, // 0084 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: compute_manual_pairing_code
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_compute_manual_pairing_code, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(root_discriminator),
+ /* K1 */ be_nested_str_weak(root_passcode),
+ /* K2 */ be_nested_str_weak(_X251i_X2505i_X2504i),
+ /* K3 */ be_nested_str_weak(matter),
+ /* K4 */ be_nested_str_weak(Verhoeff),
+ /* K5 */ be_nested_str_weak(checksum),
+ }),
+ be_str_weak(compute_manual_pairing_code),
+ &be_const_str_solidified,
+ ( &(const binstruction[30]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x540A0FFE, // 0001 LDINT R2 4095
+ 0x2C040202, // 0002 AND R1 R1 R2
+ 0x540A0009, // 0003 LDINT R2 10
+ 0x3C040202, // 0004 SHR R1 R1 R2
+ 0x88080100, // 0005 GETMBR R2 R0 K0
+ 0x540E02FF, // 0006 LDINT R3 768
+ 0x2C080403, // 0007 AND R2 R2 R3
+ 0x540E0005, // 0008 LDINT R3 6
+ 0x38080403, // 0009 SHL R2 R2 R3
+ 0x880C0101, // 000A GETMBR R3 R0 K1
+ 0x54123FFE, // 000B LDINT R4 16383
+ 0x2C0C0604, // 000C AND R3 R3 R4
+ 0x30080403, // 000D OR R2 R2 R3
+ 0x880C0101, // 000E GETMBR R3 R0 K1
+ 0x5412000D, // 000F LDINT R4 14
+ 0x3C0C0604, // 0010 SHR R3 R3 R4
+ 0x60100018, // 0011 GETGBL R4 G24
+ 0x58140002, // 0012 LDCONST R5 K2
+ 0x5C180200, // 0013 MOVE R6 R1
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x5C200600, // 0015 MOVE R8 R3
+ 0x7C100800, // 0016 CALL R4 4
+ 0xB8160600, // 0017 GETNGBL R5 K3
+ 0x88140B04, // 0018 GETMBR R5 R5 K4
+ 0x8C140B05, // 0019 GETMET R5 R5 K5
+ 0x5C1C0800, // 001A MOVE R7 R4
+ 0x7C140400, // 001B CALL R5 2
+ 0x00100805, // 001C ADD R4 R4 R5
+ 0x80040800, // 001D RET 1 R4
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: msg_send
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_msg_send, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(plugins_config_remotes),
- /* K1 */ be_nested_str_weak(find),
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(send_UDP),
}),
- be_str_weak(get_plugin_remote_info),
+ be_str_weak(msg_send),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
+ ( &(const binstruction[ 5]) { /* code */
0x88080100, // 0000 GETMBR R2 R0 K0
0x8C080501, // 0001 GETMET R2 R2 K1
0x5C100200, // 0002 MOVE R4 R1
- 0x60140013, // 0003 GETGBL R5 G19
- 0x7C140000, // 0004 CALL R5 0
- 0x7C080600, // 0005 CALL R2 3
- 0x80040400, // 0006 RET 1 R2
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -5740,10 +4741,184 @@ be_local_closure(class_Matter_Device_get_plugin_remote_info, /* name */
/********************************************************************
-** Solidified function: clean_remotes
+** Solidified function: button_pressed
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_clean_remotes, /* name */
+be_local_closure(class_Matter_Device_button_pressed, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 3]) { /* constants */
+ /* K0 */ be_nested_str_weak(button_handler),
+ /* K1 */ be_const_int(1),
+ /* K2 */ be_const_int(0),
+ }),
+ be_str_weak(button_pressed),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x540E000F, // 0000 LDINT R3 16
+ 0x3C0C0403, // 0001 SHR R3 R2 R3
+ 0x541200FE, // 0002 LDINT R4 255
+ 0x2C0C0604, // 0003 AND R3 R3 R4
+ 0x54120007, // 0004 LDINT R4 8
+ 0x3C100404, // 0005 SHR R4 R2 R4
+ 0x541600FE, // 0006 LDINT R5 255
+ 0x2C100805, // 0007 AND R4 R4 R5
+ 0x541600FE, // 0008 LDINT R5 255
+ 0x2C140405, // 0009 AND R5 R2 R5
+ 0x541A0017, // 000A LDINT R6 24
+ 0x3C180406, // 000B SHR R6 R2 R6
+ 0x541E00FE, // 000C LDINT R7 255
+ 0x2C180C07, // 000D AND R6 R6 R7
+ 0x8C1C0100, // 000E GETMET R7 R0 K0
+ 0x00240B01, // 000F ADD R9 R5 K1
+ 0x20280604, // 0010 NE R10 R3 R4
+ 0x782A0001, // 0011 JMPF R10 #0014
+ 0x58280001, // 0012 LDCONST R10 K1
+ 0x70020000, // 0013 JMP #0015
+ 0x58280002, // 0014 LDCONST R10 K2
+ 0x780E0001, // 0015 JMPF R3 #0018
+ 0x582C0002, // 0016 LDCONST R11 K2
+ 0x70020000, // 0017 JMP #0019
+ 0x582C0001, // 0018 LDCONST R11 K1
+ 0x5C300C00, // 0019 MOVE R12 R6
+ 0x7C1C0A00, // 001A CALL R7 5
+ 0x80000000, // 001B RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start, /* name */
+ be_nested_proto(
+ 4, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 5]) { /* constants */
+ /* K0 */ be_nested_str_weak(started),
+ /* K1 */ be_nested_str_weak(autoconf_device),
+ /* K2 */ be_nested_str_weak(_start_udp),
+ /* K3 */ be_nested_str_weak(UDP_PORT),
+ /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ }),
+ be_str_weak(start),
+ &be_const_str_solidified,
+ ( &(const binstruction[13]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x78060000, // 0001 JMPF R1 #0003
+ 0x80000200, // 0002 RET 0
+ 0x8C040101, // 0003 GETMET R1 R0 K1
+ 0x7C040200, // 0004 CALL R1 1
+ 0x8C040102, // 0005 GETMET R1 R0 K2
+ 0x880C0103, // 0006 GETMBR R3 R0 K3
+ 0x7C040400, // 0007 CALL R1 2
+ 0x8C040104, // 0008 GETMET R1 R0 K4
+ 0x7C040200, // 0009 CALL R1 1
+ 0x50040200, // 000A LDBOOL R1 1 0
+ 0x90020001, // 000B SETMBR R0 K0 R1
+ 0x80000000, // 000C RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: register_http_remote
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_register_http_remote, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 3, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(http_remotes),
+ /* K1 */ be_nested_str_weak(contains),
+ /* K2 */ be_nested_str_weak(get_timeout),
+ /* K3 */ be_nested_str_weak(set_timeout),
+ /* K4 */ be_nested_str_weak(matter),
+ /* K5 */ be_nested_str_weak(HTTP_remote),
+ /* K6 */ be_nested_str_weak(plugins_config_remotes),
+ /* K7 */ be_nested_str_weak(set_info),
+ }),
+ be_str_weak(register_http_remote),
+ &be_const_str_solidified,
+ ( &(const binstruction[42]) { /* code */
+ 0x880C0100, // 0000 GETMBR R3 R0 K0
+ 0x4C100000, // 0001 LDNIL R4
+ 0x1C0C0604, // 0002 EQ R3 R3 R4
+ 0x780E0002, // 0003 JMPF R3 #0007
+ 0x600C0013, // 0004 GETGBL R3 G19
+ 0x7C0C0000, // 0005 CALL R3 0
+ 0x90020003, // 0006 SETMBR R0 K0 R3
+ 0x4C0C0000, // 0007 LDNIL R3
+ 0x88100100, // 0008 GETMBR R4 R0 K0
+ 0x8C100901, // 0009 GETMET R4 R4 K1
+ 0x5C180200, // 000A MOVE R6 R1
+ 0x7C100400, // 000B CALL R4 2
+ 0x78120009, // 000C JMPF R4 #0017
+ 0x88100100, // 000D GETMBR R4 R0 K0
+ 0x940C0801, // 000E GETIDX R3 R4 R1
+ 0x8C140702, // 000F GETMET R5 R3 K2
+ 0x7C140200, // 0010 CALL R5 1
+ 0x14140405, // 0011 LT R5 R2 R5
+ 0x78160002, // 0012 JMPF R5 #0016
+ 0x8C140703, // 0013 GETMET R5 R3 K3
+ 0x5C1C0400, // 0014 MOVE R7 R2
+ 0x7C140400, // 0015 CALL R5 2
+ 0x70020011, // 0016 JMP #0029
+ 0xB8120800, // 0017 GETNGBL R4 K4
+ 0x8C100905, // 0018 GETMET R4 R4 K5
+ 0x5C180000, // 0019 MOVE R6 R0
+ 0x5C1C0200, // 001A MOVE R7 R1
+ 0x5C200400, // 001B MOVE R8 R2
+ 0x7C100800, // 001C CALL R4 4
+ 0x5C0C0800, // 001D MOVE R3 R4
+ 0x88100106, // 001E GETMBR R4 R0 K6
+ 0x8C100901, // 001F GETMET R4 R4 K1
+ 0x5C180200, // 0020 MOVE R6 R1
+ 0x7C100400, // 0021 CALL R4 2
+ 0x78120003, // 0022 JMPF R4 #0027
+ 0x8C100707, // 0023 GETMET R4 R3 K7
+ 0x88180106, // 0024 GETMBR R6 R0 K6
+ 0x94180C01, // 0025 GETIDX R6 R6 R1
+ 0x7C100400, // 0026 CALL R4 2
+ 0x88100100, // 0027 GETMBR R4 R0 K0
+ 0x98100203, // 0028 SETIDX R4 R1 R3
+ 0x80040600, // 0029 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: check_config_ep
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_check_config_ep, /* name */
be_nested_proto(
10, /* nstack */
1, /* argc */
@@ -5753,108 +4928,102 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[17]) { /* constants */
- /* K0 */ be_nested_str_weak(introspect),
- /* K1 */ be_nested_str_weak(http_remotes),
- /* K2 */ be_const_int(0),
+ ( &(const bvalue[14]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_config),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
/* K3 */ be_nested_str_weak(stop_iteration),
- /* K4 */ be_nested_str_weak(plugins),
- /* K5 */ be_nested_str_weak(get),
- /* K6 */ be_nested_str_weak(http_remote),
- /* K7 */ be_nested_str_weak(find),
- /* K8 */ be_const_int(1),
- /* K9 */ be_nested_str_weak(keys),
- /* K10 */ be_nested_str_weak(push),
- /* K11 */ be_nested_str_weak(log),
- /* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
- /* K13 */ be_nested_str_weak(addr),
- /* K14 */ be_const_int(3),
- /* K15 */ be_nested_str_weak(close),
- /* K16 */ be_nested_str_weak(remove),
+ /* K4 */ be_const_int(0),
+ /* K5 */ be_nested_str_weak(log),
+ /* K6 */ be_nested_str_weak(MTR_X3A_X20invalid_X20entry_X20with_X20ep_X20_X270_X27),
+ /* K7 */ be_const_int(2),
+ /* K8 */ be_nested_str_weak(remove),
+ /* K9 */ be_nested_str_weak(matter),
+ /* K10 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
+ /* K11 */ be_nested_str_weak(MTR_X3A_X20endpoint_X20_X25s_X20collides_X20wit_X20aggregator_X2C_X20relocating_X20to_X20_X25s),
+ /* K12 */ be_nested_str_weak(next_ep),
+ /* K13 */ be_const_int(1),
}),
- be_str_weak(clean_remotes),
+ be_str_weak(check_config_ep),
&be_const_str_solidified,
- ( &(const binstruction[80]) { /* code */
- 0xA4060000, // 0000 IMPORT R1 K0
- 0x88080101, // 0001 GETMBR R2 R0 K1
- 0x780A004B, // 0002 JMPF R2 #004F
- 0x60080013, // 0003 GETGBL R2 G19
- 0x7C080000, // 0004 CALL R2 0
- 0x600C0010, // 0005 GETGBL R3 G16
- 0x88100101, // 0006 GETMBR R4 R0 K1
+ ( &(const binstruction[77]) { /* code */
+ 0x50040000, // 0000 LDBOOL R1 0 0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x600C0010, // 0003 GETGBL R3 G16
+ 0x88100100, // 0004 GETMBR R4 R0 K0
+ 0x8C100901, // 0005 GETMET R4 R4 K1
+ 0x7C100200, // 0006 CALL R4 1
0x7C0C0200, // 0007 CALL R3 1
- 0xA8020003, // 0008 EXBLK 0 #000D
+ 0xA8020007, // 0008 EXBLK 0 #0011
0x5C100600, // 0009 MOVE R4 R3
0x7C100000, // 000A CALL R4 0
- 0x98080902, // 000B SETIDX R2 R4 K2
- 0x7001FFFB, // 000C JMP #0009
- 0x580C0003, // 000D LDCONST R3 K3
- 0xAC0C0200, // 000E CATCH R3 1 0
- 0xB0080000, // 000F RAISE 2 R0 R0
- 0x600C0010, // 0010 GETGBL R3 G16
- 0x88100104, // 0011 GETMBR R4 R0 K4
- 0x7C0C0200, // 0012 CALL R3 1
- 0xA802000F, // 0013 EXBLK 0 #0024
- 0x5C100600, // 0014 MOVE R4 R3
- 0x7C100000, // 0015 CALL R4 0
- 0x8C140305, // 0016 GETMET R5 R1 K5
- 0x5C1C0800, // 0017 MOVE R7 R4
- 0x58200006, // 0018 LDCONST R8 K6
- 0x7C140600, // 0019 CALL R5 3
- 0x4C180000, // 001A LDNIL R6
- 0x20180A06, // 001B NE R6 R5 R6
- 0x781A0005, // 001C JMPF R6 #0023
- 0x8C180507, // 001D GETMET R6 R2 K7
- 0x5C200A00, // 001E MOVE R8 R5
- 0x58240002, // 001F LDCONST R9 K2
- 0x7C180600, // 0020 CALL R6 3
- 0x00180D08, // 0021 ADD R6 R6 K8
- 0x98080A06, // 0022 SETIDX R2 R5 R6
- 0x7001FFEF, // 0023 JMP #0014
- 0x580C0003, // 0024 LDCONST R3 K3
- 0xAC0C0200, // 0025 CATCH R3 1 0
- 0xB0080000, // 0026 RAISE 2 R0 R0
- 0x600C0012, // 0027 GETGBL R3 G18
- 0x7C0C0000, // 0028 CALL R3 0
- 0x60100010, // 0029 GETGBL R4 G16
- 0x8C140509, // 002A GETMET R5 R2 K9
- 0x7C140200, // 002B CALL R5 1
- 0x7C100200, // 002C CALL R4 1
- 0xA8020008, // 002D EXBLK 0 #0037
- 0x5C140800, // 002E MOVE R5 R4
- 0x7C140000, // 002F CALL R5 0
- 0x94180405, // 0030 GETIDX R6 R2 R5
- 0x1C180D02, // 0031 EQ R6 R6 K2
- 0x781A0002, // 0032 JMPF R6 #0036
- 0x8C18070A, // 0033 GETMET R6 R3 K10
- 0x5C200A00, // 0034 MOVE R8 R5
- 0x7C180400, // 0035 CALL R6 2
- 0x7001FFF6, // 0036 JMP #002E
- 0x58100003, // 0037 LDCONST R4 K3
- 0xAC100200, // 0038 CATCH R4 1 0
- 0xB0080000, // 0039 RAISE 2 R0 R0
- 0x60100010, // 003A GETGBL R4 G16
- 0x5C140600, // 003B MOVE R5 R3
- 0x7C100200, // 003C CALL R4 1
- 0xA802000D, // 003D EXBLK 0 #004C
- 0x5C140800, // 003E MOVE R5 R4
- 0x7C140000, // 003F CALL R5 0
- 0xB81A1600, // 0040 GETNGBL R6 K11
- 0x881C0B0D, // 0041 GETMBR R7 R5 K13
- 0x001E1807, // 0042 ADD R7 K12 R7
- 0x5820000E, // 0043 LDCONST R8 K14
- 0x7C180400, // 0044 CALL R6 2
- 0x8C180B0F, // 0045 GETMET R6 R5 K15
- 0x7C180200, // 0046 CALL R6 1
- 0x88180101, // 0047 GETMBR R6 R0 K1
- 0x8C180D10, // 0048 GETMET R6 R6 K16
- 0x88200B0D, // 0049 GETMBR R8 R5 K13
- 0x7C180400, // 004A CALL R6 2
- 0x7001FFF1, // 004B JMP #003E
- 0x58100003, // 004C LDCONST R4 K3
- 0xAC100200, // 004D CATCH R4 1 0
- 0xB0080000, // 004E RAISE 2 R0 R0
- 0x80000000, // 004F RET 0
+ 0x8C140502, // 000B GETMET R5 R2 K2
+ 0x601C0009, // 000C GETGBL R7 G9
+ 0x5C200800, // 000D MOVE R8 R4
+ 0x7C1C0200, // 000E CALL R7 1
+ 0x7C140400, // 000F CALL R5 2
+ 0x7001FFF7, // 0010 JMP #0009
+ 0x580C0003, // 0011 LDCONST R3 K3
+ 0xAC0C0200, // 0012 CATCH R3 1 0
+ 0xB0080000, // 0013 RAISE 2 R0 R0
+ 0x600C0010, // 0014 GETGBL R3 G16
+ 0x5C100400, // 0015 MOVE R4 R2
+ 0x7C0C0200, // 0016 CALL R3 1
+ 0xA8020030, // 0017 EXBLK 0 #0049
+ 0x5C100600, // 0018 MOVE R4 R3
+ 0x7C100000, // 0019 CALL R4 0
+ 0x1C140904, // 001A EQ R5 R4 K4
+ 0x7816000B, // 001B JMPF R5 #0028
+ 0xB8160A00, // 001C GETNGBL R5 K5
+ 0x58180006, // 001D LDCONST R6 K6
+ 0x581C0007, // 001E LDCONST R7 K7
+ 0x7C140400, // 001F CALL R5 2
+ 0x88140100, // 0020 GETMBR R5 R0 K0
+ 0x8C140B08, // 0021 GETMET R5 R5 K8
+ 0x601C0008, // 0022 GETGBL R7 G8
+ 0x5C200800, // 0023 MOVE R8 R4
+ 0x7C1C0200, // 0024 CALL R7 1
+ 0x7C140400, // 0025 CALL R5 2
+ 0x50040200, // 0026 LDBOOL R1 1 0
+ 0x7002001F, // 0027 JMP #0048
+ 0xB8161200, // 0028 GETNGBL R5 K9
+ 0x88140B0A, // 0029 GETMBR R5 R5 K10
+ 0x1C140805, // 002A EQ R5 R4 R5
+ 0x7816001B, // 002B JMPF R5 #0048
+ 0x50040200, // 002C LDBOOL R1 1 0
+ 0xB8160A00, // 002D GETNGBL R5 K5
+ 0x60180018, // 002E GETGBL R6 G24
+ 0x581C000B, // 002F LDCONST R7 K11
+ 0x5C200800, // 0030 MOVE R8 R4
+ 0x8824010C, // 0031 GETMBR R9 R0 K12
+ 0x7C180600, // 0032 CALL R6 3
+ 0x581C0007, // 0033 LDCONST R7 K7
+ 0x7C140400, // 0034 CALL R5 2
+ 0x60140008, // 0035 GETGBL R5 G8
+ 0x8818010C, // 0036 GETMBR R6 R0 K12
+ 0x7C140200, // 0037 CALL R5 1
+ 0x88180100, // 0038 GETMBR R6 R0 K0
+ 0x601C0008, // 0039 GETGBL R7 G8
+ 0x5C200800, // 003A MOVE R8 R4
+ 0x7C1C0200, // 003B CALL R7 1
+ 0x88200100, // 003C GETMBR R8 R0 K0
+ 0x941C1007, // 003D GETIDX R7 R8 R7
+ 0x98180A07, // 003E SETIDX R6 R5 R7
+ 0x88140100, // 003F GETMBR R5 R0 K0
+ 0x8C140B08, // 0040 GETMET R5 R5 K8
+ 0x601C0008, // 0041 GETGBL R7 G8
+ 0x5C200800, // 0042 MOVE R8 R4
+ 0x7C1C0200, // 0043 CALL R7 1
+ 0x7C140400, // 0044 CALL R5 2
+ 0x8814010C, // 0045 GETMBR R5 R0 K12
+ 0x00140B0D, // 0046 ADD R5 R5 K13
+ 0x90021805, // 0047 SETMBR R0 K12 R5
+ 0x7001FFCE, // 0048 JMP #0018
+ 0x580C0003, // 0049 LDCONST R3 K3
+ 0xAC0C0200, // 004A CATCH R3 1 0
+ 0xB0080000, // 004B RAISE 2 R0 R0
+ 0x80040200, // 004C RET 1 R1
})
)
);
@@ -5862,13 +5031,318 @@ be_local_closure(class_Matter_Device_clean_remotes, /* name */
/********************************************************************
-** Solidified function: msg_received
+** Solidified function: mdns_remove_op_discovery_all_fabrics
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_msg_received, /* name */
+be_local_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_remove_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_remove_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: mdns_announce_op_discovery_all_fabrics
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(active_fabrics),
+ /* K2 */ be_nested_str_weak(get_device_id),
+ /* K3 */ be_nested_str_weak(get_fabric_id),
+ /* K4 */ be_nested_str_weak(mdns_announce_op_discovery),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(mdns_announce_op_discovery_all_fabrics),
+ &be_const_str_solidified,
+ ( &(const binstruction[22]) { /* code */
+ 0x60040010, // 0000 GETGBL R1 G16
+ 0x88080100, // 0001 GETMBR R2 R0 K0
+ 0x8C080501, // 0002 GETMET R2 R2 K1
+ 0x7C080200, // 0003 CALL R2 1
+ 0x7C040200, // 0004 CALL R1 1
+ 0xA802000B, // 0005 EXBLK 0 #0012
+ 0x5C080200, // 0006 MOVE R2 R1
+ 0x7C080000, // 0007 CALL R2 0
+ 0x8C0C0502, // 0008 GETMET R3 R2 K2
+ 0x7C0C0200, // 0009 CALL R3 1
+ 0x780E0005, // 000A JMPF R3 #0011
+ 0x8C0C0503, // 000B GETMET R3 R2 K3
+ 0x7C0C0200, // 000C CALL R3 1
+ 0x780E0002, // 000D JMPF R3 #0011
+ 0x8C0C0104, // 000E GETMET R3 R0 K4
+ 0x5C140400, // 000F MOVE R5 R2
+ 0x7C0C0400, // 0010 CALL R3 2
+ 0x7001FFF3, // 0011 JMP #0006
+ 0x58040005, // 0012 LDCONST R1 K5
+ 0xAC040200, // 0013 CATCH R1 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x80000000, // 0015 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: generate_random_passcode
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_generate_random_passcode, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 8]) { /* constants */
+ /* K0 */ be_nested_str_weak(crypto),
+ /* K1 */ be_nested_str_weak(random),
+ /* K2 */ be_nested_str_weak(get),
+ /* K3 */ be_const_int(0),
+ /* K4 */ be_const_int(134217727),
+ /* K5 */ be_const_int(99999998),
+ /* K6 */ be_nested_str_weak(PASSCODE_INVALID),
+ /* K7 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(generate_random_passcode),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x500C0200, // 0002 LDBOOL R3 1 0
+ 0x780E001D, // 0003 JMPF R3 #0022
+ 0x8C0C0301, // 0004 GETMET R3 R1 K1
+ 0x54160003, // 0005 LDINT R5 4
+ 0x7C0C0400, // 0006 CALL R3 2
+ 0x8C0C0702, // 0007 GETMET R3 R3 K2
+ 0x58140003, // 0008 LDCONST R5 K3
+ 0x541A0003, // 0009 LDINT R6 4
+ 0x7C0C0600, // 000A CALL R3 3
+ 0x2C0C0704, // 000B AND R3 R3 K4
+ 0x5C080600, // 000C MOVE R2 R3
+ 0x240C0505, // 000D GT R3 R2 K5
+ 0x780E0000, // 000E JMPF R3 #0010
+ 0x7001FFF1, // 000F JMP #0002
+ 0x600C0010, // 0010 GETGBL R3 G16
+ 0x88100106, // 0011 GETMBR R4 R0 K6
+ 0x7C0C0200, // 0012 CALL R3 1
+ 0xA8020005, // 0013 EXBLK 0 #001A
+ 0x5C100600, // 0014 MOVE R4 R3
+ 0x7C100000, // 0015 CALL R4 0
+ 0x1C140404, // 0016 EQ R5 R2 R4
+ 0x78160000, // 0017 JMPF R5 #0019
+ 0x4C080000, // 0018 LDNIL R2
+ 0x7001FFF9, // 0019 JMP #0014
+ 0x580C0007, // 001A LDCONST R3 K7
+ 0xAC0C0200, // 001B CATCH R3 1 0
+ 0xB0080000, // 001C RAISE 2 R0 R0
+ 0x4C0C0000, // 001D LDNIL R3
+ 0x200C0403, // 001E NE R3 R2 R3
+ 0x780E0000, // 001F JMPF R3 #0021
+ 0x80040400, // 0020 RET 1 R2
+ 0x7001FFDF, // 0021 JMP #0002
+ 0x80000000, // 0022 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: is_commissioning_open
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_is_commissioning_open, /* name */
+ be_nested_proto(
+ 3, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 1]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ }),
+ be_str_weak(is_commissioning_open),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 4]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x4C080000, // 0001 LDNIL R2
+ 0x20040202, // 0002 NE R1 R1 R2
+ 0x80040200, // 0003 RET 1 R1
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_plugin_by_endpoint
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_find_plugin_by_endpoint, /* name */
+ be_nested_proto(
+ 6, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_endpoint),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_plugin_by_endpoint),
+ &be_const_str_solidified,
+ ( &(const binstruction[17]) { /* code */
+ 0x58080000, // 0000 LDCONST R2 K0
+ 0x600C000C, // 0001 GETGBL R3 G12
+ 0x88100101, // 0002 GETMBR R4 R0 K1
+ 0x7C0C0200, // 0003 CALL R3 1
+ 0x140C0403, // 0004 LT R3 R2 R3
+ 0x780E0008, // 0005 JMPF R3 #000F
+ 0x880C0101, // 0006 GETMBR R3 R0 K1
+ 0x940C0602, // 0007 GETIDX R3 R3 R2
+ 0x8C100702, // 0008 GETMET R4 R3 K2
+ 0x7C100200, // 0009 CALL R4 1
+ 0x1C100801, // 000A EQ R4 R4 R1
+ 0x78120000, // 000B JMPF R4 #000D
+ 0x80040600, // 000C RET 1 R3
+ 0x00080503, // 000D ADD R2 R2 K3
+ 0x7001FFF1, // 000E JMP #0001
+ 0x4C0C0000, // 000F LDNIL R3
+ 0x80040600, // 0010 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: conf_to_log
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_conf_to_log, /* name */
be_nested_proto(
9, /* nstack */
- 4, /* argc */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(),
+ /* K2 */ be_nested_str_weak(k2l),
+ /* K3 */ be_nested_str_weak(type),
+ /* K4 */ be_nested_str_weak(_X20_X25s_X3A_X25s),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(conf_to_log),
+ &be_const_str_solidified,
+ ( &(const binstruction[24]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x58080001, // 0001 LDCONST R2 K1
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x8C100302, // 0003 GETMET R4 R1 K2
+ 0x5C180000, // 0004 MOVE R6 R0
+ 0x7C100400, // 0005 CALL R4 2
+ 0x7C0C0200, // 0006 CALL R3 1
+ 0xA802000B, // 0007 EXBLK 0 #0014
+ 0x5C100600, // 0008 MOVE R4 R3
+ 0x7C100000, // 0009 CALL R4 0
+ 0x1C140903, // 000A EQ R5 R4 K3
+ 0x78160000, // 000B JMPF R5 #000D
+ 0x7001FFFA, // 000C JMP #0008
+ 0x60140018, // 000D GETGBL R5 G24
+ 0x58180004, // 000E LDCONST R6 K4
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x94200004, // 0010 GETIDX R8 R0 R4
+ 0x7C140600, // 0011 CALL R5 3
+ 0x00080405, // 0012 ADD R2 R2 R5
+ 0x7001FFF3, // 0013 JMP #0008
+ 0x580C0005, // 0014 LDCONST R3 K5
+ 0xAC0C0200, // 0015 CATCH R3 1 0
+ 0xB0080000, // 0016 RAISE 2 R0 R0
+ 0x80040400, // 0017 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: received_ack
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_received_ack, /* name */
+ be_nested_proto(
+ 5, /* nstack */
+ 2, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@@ -5876,19 +5350,17 @@ be_local_closure(class_Matter_Device_msg_received, /* name */
&be_class_Matter_Device,
1, /* has constants */
( &(const bvalue[ 2]) { /* constants */
- /* K0 */ be_nested_str_weak(message_handler),
- /* K1 */ be_nested_str_weak(msg_received),
+ /* K0 */ be_nested_str_weak(udp_server),
+ /* K1 */ be_nested_str_weak(received_ack),
}),
- be_str_weak(msg_received),
+ be_str_weak(received_ack),
&be_const_str_solidified,
- ( &(const binstruction[ 7]) { /* code */
- 0x88100100, // 0000 GETMBR R4 R0 K0
- 0x8C100901, // 0001 GETMET R4 R4 K1
- 0x5C180200, // 0002 MOVE R6 R1
- 0x5C1C0400, // 0003 MOVE R7 R2
- 0x5C200600, // 0004 MOVE R8 R3
- 0x7C100800, // 0005 CALL R4 4
- 0x80040800, // 0006 RET 1 R4
+ ( &(const binstruction[ 5]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x80040400, // 0004 RET 1 R2
})
)
);
@@ -5947,12 +5419,276 @@ be_local_closure(class_Matter_Device_MtrInfo_one, /* name */
/********************************************************************
-** Solidified function: start
+** Solidified function: get_plugin_class_arg
********************************************************************/
extern const bclass be_class_Matter_Device;
-be_local_closure(class_Matter_Device_start, /* name */
+be_local_closure(class_Matter_Device_get_plugin_class_arg, /* name */
be_nested_proto(
- 4, /* nstack */
+ 5, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins_classes),
+ /* K1 */ be_nested_str_weak(find),
+ /* K2 */ be_nested_str_weak(ARG),
+ /* K3 */ be_nested_str_weak(),
+ }),
+ be_str_weak(get_plugin_class_arg),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x88080100, // 0000 GETMBR R2 R0 K0
+ 0x8C080501, // 0001 GETMET R2 R2 K1
+ 0x5C100200, // 0002 MOVE R4 R1
+ 0x7C080400, // 0003 CALL R2 2
+ 0x780A0001, // 0004 JMPF R2 #0007
+ 0x880C0502, // 0005 GETMBR R3 R2 K2
+ 0x70020000, // 0006 JMP #0008
+ 0x580C0003, // 0007 LDCONST R3 K3
+ 0x80040600, // 0008 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: k2l
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_k2l, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 1, /* argc */
+ 4, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_const_class(be_class_Matter_Device),
+ /* K1 */ be_nested_str_weak(keys),
+ /* K2 */ be_nested_str_weak(push),
+ /* K3 */ be_nested_str_weak(stop_iteration),
+ /* K4 */ be_const_int(1),
+ /* K5 */ be_const_int(0),
+ }),
+ be_str_weak(k2l),
+ &be_const_str_solidified,
+ ( &(const binstruction[50]) { /* code */
+ 0x58040000, // 0000 LDCONST R1 K0
+ 0x60080012, // 0001 GETGBL R2 G18
+ 0x7C080000, // 0002 CALL R2 0
+ 0x4C0C0000, // 0003 LDNIL R3
+ 0x1C0C0003, // 0004 EQ R3 R0 R3
+ 0x780E0000, // 0005 JMPF R3 #0007
+ 0x80040400, // 0006 RET 1 R2
+ 0x600C0010, // 0007 GETGBL R3 G16
+ 0x8C100101, // 0008 GETMET R4 R0 K1
+ 0x7C100200, // 0009 CALL R4 1
+ 0x7C0C0200, // 000A CALL R3 1
+ 0xA8020005, // 000B EXBLK 0 #0012
+ 0x5C100600, // 000C MOVE R4 R3
+ 0x7C100000, // 000D CALL R4 0
+ 0x8C140502, // 000E GETMET R5 R2 K2
+ 0x5C1C0800, // 000F MOVE R7 R4
+ 0x7C140400, // 0010 CALL R5 2
+ 0x7001FFF9, // 0011 JMP #000C
+ 0x580C0003, // 0012 LDCONST R3 K3
+ 0xAC0C0200, // 0013 CATCH R3 1 0
+ 0xB0080000, // 0014 RAISE 2 R0 R0
+ 0x600C0010, // 0015 GETGBL R3 G16
+ 0x6010000C, // 0016 GETGBL R4 G12
+ 0x5C140400, // 0017 MOVE R5 R2
+ 0x7C100200, // 0018 CALL R4 1
+ 0x04100904, // 0019 SUB R4 R4 K4
+ 0x40120804, // 001A CONNECT R4 K4 R4
+ 0x7C0C0200, // 001B CALL R3 1
+ 0xA8020010, // 001C EXBLK 0 #002E
+ 0x5C100600, // 001D MOVE R4 R3
+ 0x7C100000, // 001E CALL R4 0
+ 0x94140404, // 001F GETIDX R5 R2 R4
+ 0x5C180800, // 0020 MOVE R6 R4
+ 0x241C0D05, // 0021 GT R7 R6 K5
+ 0x781E0008, // 0022 JMPF R7 #002C
+ 0x041C0D04, // 0023 SUB R7 R6 K4
+ 0x941C0407, // 0024 GETIDX R7 R2 R7
+ 0x241C0E05, // 0025 GT R7 R7 R5
+ 0x781E0004, // 0026 JMPF R7 #002C
+ 0x041C0D04, // 0027 SUB R7 R6 K4
+ 0x941C0407, // 0028 GETIDX R7 R2 R7
+ 0x98080C07, // 0029 SETIDX R2 R6 R7
+ 0x04180D04, // 002A SUB R6 R6 K4
+ 0x7001FFF4, // 002B JMP #0021
+ 0x98080C05, // 002C SETIDX R2 R6 R5
+ 0x7001FFEE, // 002D JMP #001D
+ 0x580C0003, // 002E LDCONST R3 K3
+ 0xAC0C0200, // 002F CATCH R3 1 0
+ 0xB0080000, // 0030 RAISE 2 R0 R0
+ 0x80040400, // 0031 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: start_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_start_basic_commissioning, /* name */
+ be_nested_proto(
+ 13, /* nstack */
+ 8, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 1, /* has sup protos */
+ ( &(const struct bproto*[ 3]) {
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Wifi_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ be_nested_proto(
+ 4, /* nstack */
+ 0, /* argc */
+ 0, /* varg */
+ 1, /* has upvals */
+ ( &(const bupvaldesc[ 1]) { /* upvals */
+ be_local_const_upval(1, 0),
+ }),
+ 0, /* has sup protos */
+ NULL,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(remove_rule),
+ /* K3 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(_anonymous_),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 9]) { /* code */
+ 0x68000000, // 0000 GETUPV R0 U0
+ 0x8C000100, // 0001 GETMET R0 R0 K0
+ 0x7C000200, // 0002 CALL R0 1
+ 0xB8020200, // 0003 GETNGBL R0 K1
+ 0x8C000102, // 0004 GETMET R0 R0 K2
+ 0x58080003, // 0005 LDCONST R2 K3
+ 0x580C0000, // 0006 LDCONST R3 K0
+ 0x7C000600, // 0007 CALL R0 3
+ 0x80000000, // 0008 RET 0
+ })
+ ),
+ &be_class_Matter_Device,
+ }),
+ 1, /* has constants */
+ ( &(const bvalue[16]) { /* constants */
+ /* K0 */ be_nested_str_weak(commissioning_open),
+ /* K1 */ be_nested_str_weak(tasmota),
+ /* K2 */ be_nested_str_weak(millis),
+ /* K3 */ be_nested_str_weak(commissioning_iterations),
+ /* K4 */ be_nested_str_weak(commissioning_discriminator),
+ /* K5 */ be_nested_str_weak(commissioning_salt),
+ /* K6 */ be_nested_str_weak(commissioning_w0),
+ /* K7 */ be_nested_str_weak(commissioning_L),
+ /* K8 */ be_nested_str_weak(commissioning_admin_fabric),
+ /* K9 */ be_nested_str_weak(wifi),
+ /* K10 */ be_nested_str_weak(up),
+ /* K11 */ be_nested_str_weak(eth),
+ /* K12 */ be_nested_str_weak(mdns_announce_PASE),
+ /* K13 */ be_nested_str_weak(add_rule),
+ /* K14 */ be_nested_str_weak(Wifi_X23Connected),
+ /* K15 */ be_nested_str_weak(Eth_X23Connected),
+ }),
+ be_str_weak(start_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[40]) { /* code */
+ 0xB8220200, // 0000 GETNGBL R8 K1
+ 0x8C201102, // 0001 GETMET R8 R8 K2
+ 0x7C200200, // 0002 CALL R8 1
+ 0x542603E7, // 0003 LDINT R9 1000
+ 0x08240209, // 0004 MUL R9 R1 R9
+ 0x00201009, // 0005 ADD R8 R8 R9
+ 0x90020008, // 0006 SETMBR R0 K0 R8
+ 0x90020602, // 0007 SETMBR R0 K3 R2
+ 0x90020803, // 0008 SETMBR R0 K4 R3
+ 0x90020A04, // 0009 SETMBR R0 K5 R4
+ 0x90020C05, // 000A SETMBR R0 K6 R5
+ 0x90020E06, // 000B SETMBR R0 K7 R6
+ 0x90021007, // 000C SETMBR R0 K8 R7
+ 0xB8220200, // 000D GETNGBL R8 K1
+ 0x8C201109, // 000E GETMET R8 R8 K9
+ 0x7C200200, // 000F CALL R8 1
+ 0x9420110A, // 0010 GETIDX R8 R8 K10
+ 0x74220004, // 0011 JMPT R8 #0017
+ 0xB8220200, // 0012 GETNGBL R8 K1
+ 0x8C20110B, // 0013 GETMET R8 R8 K11
+ 0x7C200200, // 0014 CALL R8 1
+ 0x9420110A, // 0015 GETIDX R8 R8 K10
+ 0x78220002, // 0016 JMPF R8 #001A
+ 0x8C20010C, // 0017 GETMET R8 R0 K12
+ 0x7C200200, // 0018 CALL R8 1
+ 0x7002000B, // 0019 JMP #0026
+ 0xB8220200, // 001A GETNGBL R8 K1
+ 0x8C20110D, // 001B GETMET R8 R8 K13
+ 0x5828000E, // 001C LDCONST R10 K14
+ 0x842C0000, // 001D CLOSURE R11 P0
+ 0x5830000C, // 001E LDCONST R12 K12
+ 0x7C200800, // 001F CALL R8 4
+ 0xB8220200, // 0020 GETNGBL R8 K1
+ 0x8C20110D, // 0021 GETMET R8 R8 K13
+ 0x5828000F, // 0022 LDCONST R10 K15
+ 0x842C0001, // 0023 CLOSURE R11 P1
+ 0x5830000C, // 0024 LDCONST R12 K12
+ 0x7C200800, // 0025 CALL R8 4
+ 0xA0000000, // 0026 CLOSE R0
+ 0x80000000, // 0027 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: _init_basic_commissioning
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device__init_basic_commissioning, /* name */
+ be_nested_proto(
+ 3, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@@ -5960,28 +5696,446 @@ be_local_closure(class_Matter_Device_start, /* name */
0, /* has sup protos */
&be_class_Matter_Device,
1, /* has constants */
- ( &(const bvalue[ 5]) { /* constants */
- /* K0 */ be_nested_str_weak(started),
- /* K1 */ be_nested_str_weak(autoconf_device),
- /* K2 */ be_nested_str_weak(_start_udp),
- /* K3 */ be_nested_str_weak(UDP_PORT),
- /* K4 */ be_nested_str_weak(start_mdns_announce_hostnames),
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(sessions),
+ /* K1 */ be_nested_str_weak(count_active_fabrics),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(start_root_basic_commissioning),
}),
- be_str_weak(start),
+ be_str_weak(_init_basic_commissioning),
+ &be_const_str_solidified,
+ ( &(const binstruction[ 8]) { /* code */
+ 0x88040100, // 0000 GETMBR R1 R0 K0
+ 0x8C040301, // 0001 GETMET R1 R1 K1
+ 0x7C040200, // 0002 CALL R1 1
+ 0x1C040302, // 0003 EQ R1 R1 K2
+ 0x78060001, // 0004 JMPF R1 #0007
+ 0x8C040103, // 0005 GETMET R1 R0 K3
+ 0x7C040200, // 0006 CALL R1 1
+ 0x80000000, // 0007 RET 0
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: find_plugin_by_friendly_name
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_find_plugin_by_friendly_name, /* name */
+ be_nested_proto(
+ 7, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_const_int(0),
+ /* K1 */ be_nested_str_weak(plugins),
+ /* K2 */ be_nested_str_weak(get_name),
+ /* K3 */ be_const_int(1),
+ }),
+ be_str_weak(find_plugin_by_friendly_name),
+ &be_const_str_solidified,
+ ( &(const binstruction[35]) { /* code */
+ 0x4C080000, // 0000 LDNIL R2
+ 0x1C080202, // 0001 EQ R2 R1 R2
+ 0x740A0004, // 0002 JMPT R2 #0008
+ 0x6008000C, // 0003 GETGBL R2 G12
+ 0x5C0C0200, // 0004 MOVE R3 R1
+ 0x7C080200, // 0005 CALL R2 1
+ 0x1C080500, // 0006 EQ R2 R2 K0
+ 0x780A0001, // 0007 JMPF R2 #000A
+ 0x4C080000, // 0008 LDNIL R2
+ 0x80040400, // 0009 RET 1 R2
+ 0x58080000, // 000A LDCONST R2 K0
+ 0x600C000C, // 000B GETGBL R3 G12
+ 0x88100101, // 000C GETMBR R4 R0 K1
+ 0x7C0C0200, // 000D CALL R3 1
+ 0x140C0403, // 000E LT R3 R2 R3
+ 0x780E0010, // 000F JMPF R3 #0021
+ 0x880C0101, // 0010 GETMBR R3 R0 K1
+ 0x940C0602, // 0011 GETIDX R3 R3 R2
+ 0x8C100702, // 0012 GETMET R4 R3 K2
+ 0x7C100200, // 0013 CALL R4 1
+ 0x4C140000, // 0014 LDNIL R5
+ 0x20140805, // 0015 NE R5 R4 R5
+ 0x78160007, // 0016 JMPF R5 #001F
+ 0x6014000C, // 0017 GETGBL R5 G12
+ 0x5C180800, // 0018 MOVE R6 R4
+ 0x7C140200, // 0019 CALL R5 1
+ 0x24140B00, // 001A GT R5 R5 K0
+ 0x78160002, // 001B JMPF R5 #001F
+ 0x1C140801, // 001C EQ R5 R4 R1
+ 0x78160000, // 001D JMPF R5 #001F
+ 0x80040600, // 001E RET 1 R3
+ 0x00080503, // 001F ADD R2 R2 K3
+ 0x7001FFE9, // 0020 JMP #000B
+ 0x4C0C0000, // 0021 LDNIL R3
+ 0x80040600, // 0022 RET 1 R3
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: autoconf_device_map
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_autoconf_device_map, /* name */
+ be_nested_proto(
+ 19, /* nstack */
+ 1, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[38]) { /* constants */
+ /* K0 */ be_nested_str_weak(json),
+ /* K1 */ be_nested_str_weak(matter),
+ /* K2 */ be_nested_str_weak(START_ENDPOINT),
+ /* K3 */ be_nested_str_weak(light),
+ /* K4 */ be_nested_str_weak(get),
+ /* K5 */ be_nested_str_weak(find),
+ /* K6 */ be_nested_str_weak(channels),
+ /* K7 */ be_nested_str_weak(),
+ /* K8 */ be_const_int(0),
+ /* K9 */ be_const_int(1),
+ /* K10 */ be_nested_str_weak(type),
+ /* K11 */ be_nested_str_weak(light1),
+ /* K12 */ be_const_int(2),
+ /* K13 */ be_nested_str_weak(light2),
+ /* K14 */ be_nested_str_weak(light3),
+ /* K15 */ be_nested_str_weak(tasmota),
+ /* K16 */ be_nested_str_weak(cmd),
+ /* K17 */ be_nested_str_weak(Status_X2013),
+ /* K18 */ be_nested_str_weak(log),
+ /* K19 */ be_nested_str_weak(MTR_X3A_X20Status_X2013_X20_X3D_X20),
+ /* K20 */ be_const_int(3),
+ /* K21 */ be_nested_str_weak(contains),
+ /* K22 */ be_nested_str_weak(StatusSHT),
+ /* K23 */ be_nested_str_weak(SHT),
+ /* K24 */ be_nested_str_weak(MTR_X3A_X20_X27_X25s_X27_X20_X3D_X20_X25s),
+ /* K25 */ be_nested_str_weak(Relay1),
+ /* K26 */ be_nested_str_weak(Relay2),
+ /* K27 */ be_nested_str_weak(push),
+ /* K28 */ be_nested_str_weak(MTR_X3A_X20relay1_X3D_X25s_X20relay2_X3D_X25s),
+ /* K29 */ be_nested_str_weak(TiltConfig),
+ /* K30 */ be_nested_str_weak(shutter_X2Btilt),
+ /* K31 */ be_nested_str_weak(shutter),
+ /* K32 */ be_nested_str_weak(get_power),
+ /* K33 */ be_nested_str_weak(relay),
+ /* K34 */ be_nested_str_weak(load),
+ /* K35 */ be_nested_str_weak(read_sensors),
+ /* K36 */ be_nested_str_weak(autoconf_sensors_list),
+ /* K37 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(autoconf_device_map),
+ &be_const_str_solidified,
+ ( &(const binstruction[196]) { /* code */
+ 0xA4060000, // 0000 IMPORT R1 K0
+ 0x60080013, // 0001 GETGBL R2 G19
+ 0x7C080000, // 0002 CALL R2 0
+ 0xB80E0200, // 0003 GETNGBL R3 K1
+ 0x880C0702, // 0004 GETMBR R3 R3 K2
+ 0x50100000, // 0005 LDBOOL R4 0 0
+ 0xA4160600, // 0006 IMPORT R5 K3
+ 0x8C180B04, // 0007 GETMET R6 R5 K4
+ 0x7C180200, // 0008 CALL R6 1
+ 0x4C1C0000, // 0009 LDNIL R7
+ 0x201C0C07, // 000A NE R7 R6 R7
+ 0x781E0024, // 000B JMPF R7 #0031
+ 0x601C000C, // 000C GETGBL R7 G12
+ 0x8C200D05, // 000D GETMET R8 R6 K5
+ 0x58280006, // 000E LDCONST R10 K6
+ 0x582C0007, // 000F LDCONST R11 K7
+ 0x7C200600, // 0010 CALL R8 3
+ 0x7C1C0200, // 0011 CALL R7 1
+ 0x24200F08, // 0012 GT R8 R7 K8
+ 0x7822001C, // 0013 JMPF R8 #0031
+ 0x1C200F09, // 0014 EQ R8 R7 K9
+ 0x78220007, // 0015 JMPF R8 #001E
+ 0x60200008, // 0016 GETGBL R8 G8
+ 0x5C240600, // 0017 MOVE R9 R3
+ 0x7C200200, // 0018 CALL R8 1
+ 0x60240013, // 0019 GETGBL R9 G19
+ 0x7C240000, // 001A CALL R9 0
+ 0x9826150B, // 001B SETIDX R9 K10 K11
+ 0x98081009, // 001C SETIDX R2 R8 R9
+ 0x70020010, // 001D JMP #002F
+ 0x1C200F0C, // 001E EQ R8 R7 K12
+ 0x78220007, // 001F JMPF R8 #0028
+ 0x60200008, // 0020 GETGBL R8 G8
+ 0x5C240600, // 0021 MOVE R9 R3
+ 0x7C200200, // 0022 CALL R8 1
+ 0x60240013, // 0023 GETGBL R9 G19
+ 0x7C240000, // 0024 CALL R9 0
+ 0x9826150D, // 0025 SETIDX R9 K10 K13
+ 0x98081009, // 0026 SETIDX R2 R8 R9
+ 0x70020006, // 0027 JMP #002F
+ 0x60200008, // 0028 GETGBL R8 G8
+ 0x5C240600, // 0029 MOVE R9 R3
+ 0x7C200200, // 002A CALL R8 1
+ 0x60240013, // 002B GETGBL R9 G19
+ 0x7C240000, // 002C CALL R9 0
+ 0x9826150E, // 002D SETIDX R9 K10 K14
+ 0x98081009, // 002E SETIDX R2 R8 R9
+ 0x50100200, // 002F LDBOOL R4 1 0
+ 0x000C0709, // 0030 ADD R3 R3 K9
+ 0xB81E1E00, // 0031 GETNGBL R7 K15
+ 0x8C1C0F10, // 0032 GETMET R7 R7 K16
+ 0x58240011, // 0033 LDCONST R9 K17
+ 0x50280200, // 0034 LDBOOL R10 1 0
+ 0x7C1C0600, // 0035 CALL R7 3
+ 0x60200012, // 0036 GETGBL R8 G18
+ 0x7C200000, // 0037 CALL R8 0
+ 0xB8262400, // 0038 GETNGBL R9 K18
+ 0x60280008, // 0039 GETGBL R10 G8
+ 0x5C2C0E00, // 003A MOVE R11 R7
+ 0x7C280200, // 003B CALL R10 1
+ 0x002A260A, // 003C ADD R10 K19 R10
+ 0x582C0014, // 003D LDCONST R11 K20
+ 0x7C240400, // 003E CALL R9 2
+ 0x4C240000, // 003F LDNIL R9
+ 0x20240E09, // 0040 NE R9 R7 R9
+ 0x7826004D, // 0041 JMPF R9 #0090
+ 0x8C240F15, // 0042 GETMET R9 R7 K21
+ 0x582C0016, // 0043 LDCONST R11 K22
+ 0x7C240400, // 0044 CALL R9 2
+ 0x78260049, // 0045 JMPF R9 #0090
+ 0x941C0F16, // 0046 GETIDX R7 R7 K22
+ 0x58240008, // 0047 LDCONST R9 K8
+ 0x50280200, // 0048 LDBOOL R10 1 0
+ 0x782A0045, // 0049 JMPF R10 #0090
+ 0x60280008, // 004A GETGBL R10 G8
+ 0x5C2C1200, // 004B MOVE R11 R9
+ 0x7C280200, // 004C CALL R10 1
+ 0x002A2E0A, // 004D ADD R10 K23 R10
+ 0x8C2C0F15, // 004E GETMET R11 R7 K21
+ 0x5C341400, // 004F MOVE R13 R10
+ 0x7C2C0400, // 0050 CALL R11 2
+ 0x742E0000, // 0051 JMPT R11 #0053
+ 0x7002003C, // 0052 JMP #0090
+ 0x942C0E0A, // 0053 GETIDX R11 R7 R10
+ 0xB8322400, // 0054 GETNGBL R12 K18
+ 0x60340018, // 0055 GETGBL R13 G24
+ 0x58380018, // 0056 LDCONST R14 K24
+ 0x5C3C1400, // 0057 MOVE R15 R10
+ 0x60400008, // 0058 GETGBL R16 G8
+ 0x5C441600, // 0059 MOVE R17 R11
+ 0x7C400200, // 005A CALL R16 1
+ 0x7C340600, // 005B CALL R13 3
+ 0x58380014, // 005C LDCONST R14 K20
+ 0x7C300400, // 005D CALL R12 2
+ 0x8C301705, // 005E GETMET R12 R11 K5
+ 0x58380019, // 005F LDCONST R14 K25
+ 0x543DFFFE, // 0060 LDINT R15 -1
+ 0x7C300600, // 0061 CALL R12 3
+ 0x8C341705, // 0062 GETMET R13 R11 K5
+ 0x583C001A, // 0063 LDCONST R15 K26
+ 0x5441FFFE, // 0064 LDINT R16 -1
+ 0x7C340600, // 0065 CALL R13 3
+ 0x24381908, // 0066 GT R14 R12 K8
+ 0x783A0002, // 0067 JMPF R14 #006B
+ 0x8C38111B, // 0068 GETMET R14 R8 K27
+ 0x04401909, // 0069 SUB R16 R12 K9
+ 0x7C380400, // 006A CALL R14 2
+ 0x24381B08, // 006B GT R14 R13 K8
+ 0x783A0002, // 006C JMPF R14 #0070
+ 0x8C38111B, // 006D GETMET R14 R8 K27
+ 0x04401B09, // 006E SUB R16 R13 K9
+ 0x7C380400, // 006F CALL R14 2
+ 0xB83A2400, // 0070 GETNGBL R14 K18
+ 0x603C0018, // 0071 GETGBL R15 G24
+ 0x5840001C, // 0072 LDCONST R16 K28
+ 0x5C441800, // 0073 MOVE R17 R12
+ 0x5C481A00, // 0074 MOVE R18 R13
+ 0x7C3C0600, // 0075 CALL R15 3
+ 0x58400014, // 0076 LDCONST R16 K20
+ 0x7C380400, // 0077 CALL R14 2
+ 0x8C381705, // 0078 GETMET R14 R11 K5
+ 0x5840001D, // 0079 LDCONST R16 K29
+ 0x7C380400, // 007A CALL R14 2
+ 0x783A0002, // 007B JMPF R14 #007F
+ 0x943C1D0C, // 007C GETIDX R15 R14 K12
+ 0x243C1F08, // 007D GT R15 R15 K8
+ 0x743E0000, // 007E JMPT R15 #0080
+ 0x503C0001, // 007F LDBOOL R15 0 1
+ 0x503C0200, // 0080 LDBOOL R15 1 0
+ 0x60400008, // 0081 GETGBL R16 G8
+ 0x5C440600, // 0082 MOVE R17 R3
+ 0x7C400200, // 0083 CALL R16 1
+ 0x60440013, // 0084 GETGBL R17 G19
+ 0x7C440000, // 0085 CALL R17 0
+ 0x783E0001, // 0086 JMPF R15 #0089
+ 0x5848001E, // 0087 LDCONST R18 K30
+ 0x70020000, // 0088 JMP #008A
+ 0x5848001F, // 0089 LDCONST R18 K31
+ 0x98461412, // 008A SETIDX R17 K10 R18
+ 0x98463E09, // 008B SETIDX R17 K31 R9
+ 0x98082011, // 008C SETIDX R2 R16 R17
+ 0x000C0709, // 008D ADD R3 R3 K9
+ 0x00241309, // 008E ADD R9 R9 K9
+ 0x7001FFB7, // 008F JMP #0048
+ 0x6024000C, // 0090 GETGBL R9 G12
+ 0xB82A1E00, // 0091 GETNGBL R10 K15
+ 0x8C281520, // 0092 GETMET R10 R10 K32
+ 0x7C280200, // 0093 CALL R10 1
+ 0x7C240200, // 0094 CALL R9 1
+ 0x58280008, // 0095 LDCONST R10 K8
+ 0x78120000, // 0096 JMPF R4 #0098
+ 0x04241309, // 0097 SUB R9 R9 K9
+ 0x142C1409, // 0098 LT R11 R10 R9
+ 0x782E0011, // 0099 JMPF R11 #00AC
+ 0x8C2C1105, // 009A GETMET R11 R8 K5
+ 0x5C341400, // 009B MOVE R13 R10
+ 0x7C2C0400, // 009C CALL R11 2
+ 0x4C300000, // 009D LDNIL R12
+ 0x1C2C160C, // 009E EQ R11 R11 R12
+ 0x782E0009, // 009F JMPF R11 #00AA
+ 0x602C0008, // 00A0 GETGBL R11 G8
+ 0x5C300600, // 00A1 MOVE R12 R3
+ 0x7C2C0200, // 00A2 CALL R11 1
+ 0x60300013, // 00A3 GETGBL R12 G19
+ 0x7C300000, // 00A4 CALL R12 0
+ 0x98321521, // 00A5 SETIDX R12 K10 K33
+ 0x00341509, // 00A6 ADD R13 R10 K9
+ 0x9832420D, // 00A7 SETIDX R12 K33 R13
+ 0x9808160C, // 00A8 SETIDX R2 R11 R12
+ 0x000C0709, // 00A9 ADD R3 R3 K9
+ 0x00281509, // 00AA ADD R10 R10 K9
+ 0x7001FFEB, // 00AB JMP #0098
+ 0x8C2C0322, // 00AC GETMET R11 R1 K34
+ 0xB8361E00, // 00AD GETNGBL R13 K15
+ 0x8C341B23, // 00AE GETMET R13 R13 K35
+ 0x7C340200, // 00AF CALL R13 1
+ 0x7C2C0400, // 00B0 CALL R11 2
+ 0x8C300124, // 00B1 GETMET R12 R0 K36
+ 0x5C381600, // 00B2 MOVE R14 R11
+ 0x7C300400, // 00B3 CALL R12 2
+ 0x60340010, // 00B4 GETGBL R13 G16
+ 0x5C381800, // 00B5 MOVE R14 R12
+ 0x7C340200, // 00B6 CALL R13 1
+ 0xA8020007, // 00B7 EXBLK 0 #00C0
+ 0x5C381A00, // 00B8 MOVE R14 R13
+ 0x7C380000, // 00B9 CALL R14 0
+ 0x603C0008, // 00BA GETGBL R15 G8
+ 0x5C400600, // 00BB MOVE R16 R3
+ 0x7C3C0200, // 00BC CALL R15 1
+ 0x98081E0E, // 00BD SETIDX R2 R15 R14
+ 0x000C0709, // 00BE ADD R3 R3 K9
+ 0x7001FFF7, // 00BF JMP #00B8
+ 0x58340025, // 00C0 LDCONST R13 K37
+ 0xAC340200, // 00C1 CATCH R13 1 0
+ 0xB0080000, // 00C2 RAISE 2 R0 R0
+ 0x80040400, // 00C3 RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: get_active_endpoints
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_get_active_endpoints, /* name */
+ be_nested_proto(
+ 9, /* nstack */
+ 2, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 6]) { /* constants */
+ /* K0 */ be_nested_str_weak(plugins),
+ /* K1 */ be_nested_str_weak(get_endpoint),
+ /* K2 */ be_const_int(0),
+ /* K3 */ be_nested_str_weak(find),
+ /* K4 */ be_nested_str_weak(push),
+ /* K5 */ be_nested_str_weak(stop_iteration),
+ }),
+ be_str_weak(get_active_endpoints),
+ &be_const_str_solidified,
+ ( &(const binstruction[28]) { /* code */
+ 0x60080012, // 0000 GETGBL R2 G18
+ 0x7C080000, // 0001 CALL R2 0
+ 0x600C0010, // 0002 GETGBL R3 G16
+ 0x88100100, // 0003 GETMBR R4 R0 K0
+ 0x7C0C0200, // 0004 CALL R3 1
+ 0xA8020011, // 0005 EXBLK 0 #0018
+ 0x5C100600, // 0006 MOVE R4 R3
+ 0x7C100000, // 0007 CALL R4 0
+ 0x8C140901, // 0008 GETMET R5 R4 K1
+ 0x7C140200, // 0009 CALL R5 1
+ 0x78060002, // 000A JMPF R1 #000E
+ 0x1C180B02, // 000B EQ R6 R5 K2
+ 0x781A0000, // 000C JMPF R6 #000E
+ 0x7001FFF7, // 000D JMP #0006
+ 0x8C180503, // 000E GETMET R6 R2 K3
+ 0x5C200A00, // 000F MOVE R8 R5
+ 0x7C180400, // 0010 CALL R6 2
+ 0x4C1C0000, // 0011 LDNIL R7
+ 0x1C180C07, // 0012 EQ R6 R6 R7
+ 0x781A0002, // 0013 JMPF R6 #0017
+ 0x8C180504, // 0014 GETMET R6 R2 K4
+ 0x5C200A00, // 0015 MOVE R8 R5
+ 0x7C180400, // 0016 CALL R6 2
+ 0x7001FFED, // 0017 JMP #0006
+ 0x580C0005, // 0018 LDCONST R3 K5
+ 0xAC0C0200, // 0019 CATCH R3 1 0
+ 0xB0080000, // 001A RAISE 2 R0 R0
+ 0x80040400, // 001B RET 1 R2
+ })
+ )
+);
+/*******************************************************************/
+
+
+/********************************************************************
+** Solidified function: MtrJoin
+********************************************************************/
+extern const bclass be_class_Matter_Device;
+be_local_closure(class_Matter_Device_MtrJoin, /* name */
+ be_nested_proto(
+ 8, /* nstack */
+ 5, /* argc */
+ 2, /* varg */
+ 0, /* has upvals */
+ NULL, /* no upvals */
+ 0, /* has sup protos */
+ &be_class_Matter_Device,
+ 1, /* has constants */
+ ( &(const bvalue[ 4]) { /* constants */
+ /* K0 */ be_nested_str_weak(start_root_basic_commissioning),
+ /* K1 */ be_nested_str_weak(stop_basic_commissioning),
+ /* K2 */ be_nested_str_weak(tasmota),
+ /* K3 */ be_nested_str_weak(resp_cmnd_done),
+ }),
+ be_str_weak(MtrJoin),
&be_const_str_solidified,
( &(const binstruction[13]) { /* code */
- 0x88040100, // 0000 GETMBR R1 R0 K0
- 0x78060000, // 0001 JMPF R1 #0003
- 0x80000200, // 0002 RET 0
- 0x8C040101, // 0003 GETMET R1 R0 K1
- 0x7C040200, // 0004 CALL R1 1
- 0x8C040102, // 0005 GETMET R1 R0 K2
- 0x880C0103, // 0006 GETMBR R3 R0 K3
- 0x7C040400, // 0007 CALL R1 2
- 0x8C040104, // 0008 GETMET R1 R0 K4
- 0x7C040200, // 0009 CALL R1 1
- 0x50040200, // 000A LDBOOL R1 1 0
- 0x90020001, // 000B SETMBR R0 K0 R1
+ 0x60140009, // 0000 GETGBL R5 G9
+ 0x5C180600, // 0001 MOVE R6 R3
+ 0x7C140200, // 0002 CALL R5 1
+ 0x78160002, // 0003 JMPF R5 #0007
+ 0x8C180100, // 0004 GETMET R6 R0 K0
+ 0x7C180200, // 0005 CALL R6 1
+ 0x70020001, // 0006 JMP #0009
+ 0x8C180101, // 0007 GETMET R6 R0 K1
+ 0x7C180200, // 0008 CALL R6 1
+ 0xB81A0400, // 0009 GETNGBL R6 K2
+ 0x8C180D03, // 000A GETMET R6 R6 K3
+ 0x7C180200, // 000B CALL R6 1
0x80000000, // 000C RET 0
})
)
@@ -5995,39 +6149,85 @@ be_local_closure(class_Matter_Device_start, /* name */
be_local_class(Matter_Device,
34,
NULL,
- be_nested_map(112,
+ be_nested_map(115,
( (struct bmapnode*) &(const bmapnode[]) {
- { be_const_key_weak(commissioning_salt, -1), be_const_var(15) },
- { be_const_key_weak(msg_send, 0), be_const_closure(class_Matter_Device_msg_send_closure) },
- { be_const_key_weak(bridge_remove_endpoint, -1), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
- { be_const_key_weak(MtrInfo_one, -1), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
- { be_const_key_weak(plugins_persist, -1), be_const_var(2) },
- { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
- { be_const_key_weak(root_discriminator, -1), be_const_var(26) },
- { be_const_key_weak(read_sensors_scheduler, -1), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
- { be_const_key_weak(hostname_wifi, -1), be_const_var(21) },
- { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
- { be_const_key_weak(plugins_config, -1), be_const_var(3) },
- { be_const_key_weak(get_active_endpoints, -1), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
+ { be_const_key_weak(start_commissioning_complete, 110), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
+ { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
+ { be_const_key_weak(remove_fabric, 17), be_const_closure(class_Matter_Device_remove_fabric_closure) },
+ { be_const_key_weak(_mdns_announce_hostname, 36), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
+ { be_const_key_weak(add_read_sensors_schedule, -1), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
+ { be_const_key_weak(every_second, 109), be_const_closure(class_Matter_Device_every_second_closure) },
+ { be_const_key_weak(compute_qrcode_content, -1), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
+ { be_const_key_weak(commissioning_w0, -1), be_const_var(16) },
{ be_const_key_weak(msg_received, -1), be_const_closure(class_Matter_Device_msg_received_closure) },
- { be_const_key_weak(http_remotes, 41), be_const_var(25) },
- { be_const_key_weak(commissioning_instance_eth, 40), be_const_var(20) },
- { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
- { be_const_key_weak(hostname_eth, -1), be_const_var(22) },
- { be_const_key_weak(start_operational_discovery, 47), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
- { be_const_key_weak(_mdns_announce_hostname, -1), be_const_closure(class_Matter_Device__mdns_announce_hostname_closure) },
- { be_const_key_weak(add_read_sensors_schedule, 38), be_const_closure(class_Matter_Device_add_read_sensors_schedule_closure) },
- { be_const_key_weak(events, 62), be_const_var(11) },
- { be_const_key_weak(start_mdns_announce_hostnames, -1), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
- { be_const_key_weak(_start_udp, 75), be_const_closure(class_Matter_Device__start_udp_closure) },
- { be_const_key_weak(compute_qrcode_content, 70), be_const_closure(class_Matter_Device_compute_qrcode_content_closure) },
- { be_const_key_weak(get_plugin_remote_info, 93), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
- { be_const_key_weak(_instantiate_plugins_from_config, 107), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
- { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(udp_server, -1), be_const_var(5) },
- { be_const_key_weak(sessions, -1), be_const_var(8) },
+ { be_const_key_weak(get_plugin_remote_info, -1), be_const_closure(class_Matter_Device_get_plugin_remote_info_closure) },
+ { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Device_attribute_updated_closure) },
+ { be_const_key_weak(probe_sensor_timestamp, -1), be_const_var(33) },
+ { be_const_key_weak(get_active_endpoints, 81), be_const_closure(class_Matter_Device_get_active_endpoints_closure) },
+ { be_const_key_weak(commissioning_salt, -1), be_const_var(15) },
+ { be_const_key_weak(autoconf_device, 84), be_const_closure(class_Matter_Device_autoconf_device_closure) },
+ { be_const_key_weak(ipv4only, -1), be_const_var(28) },
+ { be_const_key_weak(PASE_TIMEOUT, 37), be_const_int(600) },
+ { be_const_key_weak(ui, 6), be_const_var(9) },
+ { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
+ { be_const_key_weak(button_handler, -1), be_const_closure(class_Matter_Device_button_handler_closure) },
+ { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
+ { be_const_key_weak(find_plugin_by_friendly_name, 86), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
+ { be_const_key_weak(debug, 95), be_const_var(31) },
+ { be_const_key_weak(events, 52), be_const_var(11) },
{ be_const_key_weak(resolve_attribute_read_solo, -1), be_const_closure(class_Matter_Device_resolve_attribute_read_solo_closure) },
- { be_const_key_weak(started, 15), be_const_var(0) },
+ { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
+ { be_const_key_weak(plugins_persist, -1), be_const_var(2) },
+ { be_const_key_weak(button_multi_pressed, 98), be_const_closure(class_Matter_Device_button_multi_pressed_closure) },
+ { be_const_key_weak(udp_server, 76), be_const_var(5) },
+ { be_const_key_weak(message_handler, -1), be_const_var(7) },
+ { be_const_key_weak(mdns_remove_PASE, -1), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
+ { be_const_key_weak(plugins, -1), be_const_var(1) },
+ { be_const_key_weak(invoke_request, 9), be_const_closure(class_Matter_Device_invoke_request_closure) },
+ { be_const_key_weak(_init_basic_commissioning, -1), be_const_closure(class_Matter_Device__init_basic_commissioning_closure) },
+ { be_const_key_weak(disable_bridge_mode, 11), be_const_var(29) },
+ { be_const_key_weak(start_basic_commissioning, 77), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
+ { be_const_key_weak(sessions, -1), be_const_var(8) },
+ { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
+ { be_const_key_weak(MtrInfo_one, 79), be_const_closure(class_Matter_Device_MtrInfo_one_closure) },
+ { be_const_key_weak(start_mdns_announce_hostnames, -1), be_const_closure(class_Matter_Device_start_mdns_announce_hostnames_closure) },
+ { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(24) },
+ { be_const_key_weak(commissioning_instance_wifi, -1), be_const_var(19) },
+ { be_const_key_weak(mdns_announce_PASE, -1), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
+ { be_const_key_weak(save_before_restart, 103), be_const_closure(class_Matter_Device_save_before_restart_closure) },
+ { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
+ { be_const_key_weak(start_commissioning_complete_deferred, -1), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
+ { be_const_key_weak(next_ep, -1), be_const_var(30) },
+ { be_const_key_weak(conf_to_log, -1), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
+ { be_const_key_weak(process_attribute_expansion, -1), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
+ { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
+ { be_const_key_weak(clean_remotes, -1), be_const_closure(class_Matter_Device_clean_remotes_closure) },
+ { be_const_key_weak(FILENAME, -1), be_nested_str_weak(_matter_device_X2Ejson) },
+ { be_const_key_weak(UDP_PORT, -1), be_const_int(5540) },
+ { be_const_key_weak(_start_udp, -1), be_const_closure(class_Matter_Device__start_udp_closure) },
+ { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
+ { be_const_key_weak(find_plugin_by_endpoint, 64), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
+ { be_const_key_weak(_instantiate_plugins_from_config, -1), be_const_closure(class_Matter_Device__instantiate_plugins_from_config_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
+ { be_const_key_weak(is_commissioning_open, 74), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
+ { be_const_key_weak(PRODUCT_ID, -1), be_const_int(32768) },
+ { be_const_key_weak(init, 45), be_const_closure(class_Matter_Device_init_closure) },
+ { be_const_key_weak(read_sensors_scheduler, 87), be_const_closure(class_Matter_Device_read_sensors_scheduler_closure) },
+ { be_const_key_weak(bridge_remove_endpoint, 12), be_const_closure(class_Matter_Device_bridge_remove_endpoint_closure) },
+ { be_const_key_weak(http_remotes, -1), be_const_var(25) },
+ { be_const_key_weak(tick, -1), be_const_var(10) },
+ { be_const_key_weak(bridge_add_endpoint, -1), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
+ { be_const_key_weak(is_root_commissioning_open, -1), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
+ { be_const_key_weak(_trigger_read_sensors, 96), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
+ { be_const_key_weak(MtrUpdate, -1), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
+ { be_const_key_weak(commissioning_open, -1), be_const_var(12) },
+ { be_const_key_weak(generate_random_passcode, -1), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
+ { be_const_key_weak(hostname_wifi, 78), be_const_var(21) },
+ { be_const_key_weak(start_operational_discovery_deferred, -1), be_const_closure(class_Matter_Device_start_operational_discovery_deferred_closure) },
+ { be_const_key_weak(save_param, -1), be_const_closure(class_Matter_Device_save_param_closure) },
+ { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
+ { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(18) },
+ { be_const_key_weak(compute_manual_pairing_code, 93), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
{ be_const_key_weak(PASSCODE_INVALID, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(12,
( (struct bvalue*) &(const bvalue[]) {
@@ -6044,43 +6244,33 @@ be_local_class(Matter_Device,
be_const_int(12345678),
be_const_int(87654321),
})) ) } )) },
- { be_const_key_weak(bridge_add_endpoint, 85), be_const_closure(class_Matter_Device_bridge_add_endpoint_closure) },
+ { be_const_key_weak(VENDOR_ID, 68), be_const_int(65521) },
+ { be_const_key_weak(mdns_remove_op_discovery_all_fabrics, 101), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(register_http_remote, -1), be_const_closure(class_Matter_Device_register_http_remote_closure) },
+ { be_const_key_weak(commissioning_iterations, -1), be_const_var(13) },
{ be_const_key_weak(profiler, -1), be_const_var(6) },
- { be_const_key_weak(MtrUpdate, -1), be_const_closure(class_Matter_Device_MtrUpdate_closure) },
- { be_const_key_weak(load_param, -1), be_const_closure(class_Matter_Device_load_param_closure) },
- { be_const_key_weak(save_param, 77), be_const_closure(class_Matter_Device_save_param_closure) },
- { be_const_key_weak(get_plugin_class_arg, -1), be_const_closure(class_Matter_Device_get_plugin_class_arg_closure) },
- { be_const_key_weak(init, 2), be_const_closure(class_Matter_Device_init_closure) },
- { be_const_key_weak(process_attribute_expansion, 105), be_const_closure(class_Matter_Device_process_attribute_expansion_closure) },
- { be_const_key_weak(is_commissioning_open, -1), be_const_closure(class_Matter_Device_is_commissioning_open_closure) },
- { be_const_key_weak(generate_random_passcode, -1), be_const_closure(class_Matter_Device_generate_random_passcode_closure) },
- { be_const_key_weak(commissioning_instance_wifi, -1), be_const_var(19) },
- { be_const_key_weak(register_commands, 34), be_const_closure(class_Matter_Device_register_commands_closure) },
- { be_const_key_weak(every_250ms, 50), be_const_closure(class_Matter_Device_every_250ms_closure) },
- { be_const_key_weak(commissioning_L, -1), be_const_var(17) },
{ be_const_key_weak(check_config_ep, -1), be_const_closure(class_Matter_Device_check_config_ep_closure) },
- { be_const_key_weak(update_remotes_info, -1), be_const_closure(class_Matter_Device_update_remotes_info_closure) },
- { be_const_key_weak(conf_to_log, -1), be_const_static_closure(class_Matter_Device_conf_to_log_closure) },
- { be_const_key_weak(probe_sensor_time, -1), be_const_var(32) },
- { be_const_key_weak(next_ep, 49), be_const_var(30) },
- { be_const_key_weak(mdns_pase_eth, 57), be_const_var(23) },
- { be_const_key_weak(tick, -1), be_const_var(10) },
- { be_const_key_weak(mdns_pase_wifi, -1), be_const_var(24) },
- { be_const_key_weak(autoconf_device_map, -1), be_const_closure(class_Matter_Device_autoconf_device_map_closure) },
- { be_const_key_weak(remove_fabric, 65), be_const_closure(class_Matter_Device_remove_fabric_closure) },
- { be_const_key_weak(probe_sensor_timestamp, 76), be_const_var(33) },
- { be_const_key_weak(mdns_announce_PASE, 37), be_const_closure(class_Matter_Device_mdns_announce_PASE_closure) },
- { be_const_key_weak(adjust_next_ep, -1), be_const_closure(class_Matter_Device_adjust_next_ep_closure) },
- { be_const_key_weak(ui, 24), be_const_var(9) },
- { be_const_key_weak(PRODUCT_ID, 92), be_const_int(32768) },
- { be_const_key_weak(autoconf_sensors_list, -1), be_const_closure(class_Matter_Device_autoconf_sensors_list_closure) },
- { be_const_key_weak(find_plugin_by_endpoint, -1), be_const_closure(class_Matter_Device_find_plugin_by_endpoint_closure) },
- { be_const_key_weak(PBKDF_ITERATIONS, -1), be_const_int(1000) },
- { be_const_key_weak(plugins_classes, 44), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
+ { be_const_key_weak(commissioning_L, -1), be_const_var(17) },
+ { be_const_key_weak(commissioning_discriminator, -1), be_const_var(14) },
+ { be_const_key_weak(start, -1), be_const_closure(class_Matter_Device_start_closure) },
+ { be_const_key_weak(button_pressed, -1), be_const_closure(class_Matter_Device_button_pressed_closure) },
+ { be_const_key_weak(msg_send, 35), be_const_closure(class_Matter_Device_msg_send_closure) },
+ { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, 55), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
+ { be_const_key_weak(probe_sensor_time, 47), be_const_var(32) },
+ { be_const_key_weak(get_plugin_class_displayname, 70), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
+ { be_const_key_weak(root_discriminator, -1), be_const_var(26) },
+ { be_const_key_weak(signal_endpoints_changed, 4), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
+ { be_const_key_weak(PBKDF_ITERATIONS, 58), be_const_int(1000) },
+ { be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
+ { be_const_key_weak(start_operational_discovery, -1), be_const_closure(class_Matter_Device_start_operational_discovery_closure) },
+ { be_const_key_weak(stop, 51), be_const_closure(class_Matter_Device_stop_closure) },
+ { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
+ { be_const_key_weak(received_ack, -1), be_const_closure(class_Matter_Device_received_ack_closure) },
+ { be_const_key_weak(plugins_classes, 38), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
be_const_map( * be_nested_map(53,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(occupancy, -1), be_const_class(be_class_Matter_Plugin_Sensor_Occupancy) },
- { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
+ { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
{ be_const_key_weak(http_light2, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light2) },
{ be_const_key_weak(v_contact, 36), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Contact) },
{ be_const_key_weak(v_occupancy, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Occupancy) },
@@ -6089,29 +6279,29 @@ be_local_class(Matter_Device,
{ be_const_key_weak(shutter, -1), be_const_class(be_class_Matter_Plugin_Shutter) },
{ be_const_key_weak(v_pressure, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Pressure) },
{ be_const_key_weak(http_rain, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Rain) },
- { be_const_key_weak(http_pressure, 32), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
+ { be_const_key_weak(http_pressure, 12), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Pressure) },
{ be_const_key_weak(v_light2, -1), be_const_class(be_class_Matter_Plugin_Virt_Light2) },
- { be_const_key_weak(pressure, -1), be_const_class(be_class_Matter_Plugin_Sensor_Pressure) },
+ { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
{ be_const_key_weak(relay, -1), be_const_class(be_class_Matter_Plugin_OnOff) },
- { be_const_key_weak(v_illuminance, 41), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
- { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
- { be_const_key_weak(temperature, 29), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
+ { be_const_key_weak(v_illuminance, 29), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Illuminance) },
+ { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(temperature, 20), be_const_class(be_class_Matter_Plugin_Sensor_Temp) },
{ be_const_key_weak(waterleak, -1), be_const_class(be_class_Matter_Plugin_Sensor_Waterleak) },
{ be_const_key_weak(v_fan, -1), be_const_class(be_class_Matter_Plugin_Virt_Fan) },
{ be_const_key_weak(http_occupancy, 6), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Occupancy) },
- { be_const_key_weak(v_airquality, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Air_Quality) },
+ { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
{ be_const_key_weak(fan, -1), be_const_class(be_class_Matter_Plugin_Fan) },
{ be_const_key_weak(light1, -1), be_const_class(be_class_Matter_Plugin_Light1) },
{ be_const_key_weak(root, -1), be_const_class(be_class_Matter_Plugin_Root) },
{ be_const_key_weak(illuminance, -1), be_const_class(be_class_Matter_Plugin_Sensor_Illuminance) },
- { be_const_key_weak(v_temp, 20), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
+ { be_const_key_weak(v_temp, 15), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Temp) },
{ be_const_key_weak(v_light1, -1), be_const_class(be_class_Matter_Plugin_Virt_Light1) },
{ be_const_key_weak(v_waterleak, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Waterleak) },
{ be_const_key_weak(v_relay, -1), be_const_class(be_class_Matter_Plugin_Virt_OnOff) },
- { be_const_key_weak(http_relay, -1), be_const_class(be_class_Matter_Plugin_Bridge_OnOff) },
+ { be_const_key_weak(contact, 52), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
{ be_const_key_weak(light2, 27), be_const_class(be_class_Matter_Plugin_Light2) },
{ be_const_key_weak(http_light1, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light1) },
- { be_const_key_weak(v_flow, -1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Flow) },
+ { be_const_key_weak(gensw_btn, -1), be_const_class(be_class_Matter_Plugin_Sensor_GenericSwitch_Btn) },
{ be_const_key_weak(onoff, -1), be_const_class(be_class_Matter_Plugin_Sensor_OnOff) },
{ be_const_key_weak(v_light0, -1), be_const_class(be_class_Matter_Plugin_Virt_Light0) },
{ be_const_key_weak(light3, -1), be_const_class(be_class_Matter_Plugin_Light3) },
@@ -6120,66 +6310,33 @@ be_local_class(Matter_Device,
{ be_const_key_weak(v_rain, 43), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Rain) },
{ be_const_key_weak(http_light0, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light0) },
{ be_const_key_weak(http_waterleak, 45), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Waterleak) },
- { be_const_key_weak(contact, 1), be_const_class(be_class_Matter_Plugin_Sensor_Contact) },
+ { be_const_key_weak(shutter_X2Btilt, -1), be_const_class(be_class_Matter_Plugin_ShutterTilt) },
{ be_const_key_weak(v_light3, -1), be_const_class(be_class_Matter_Plugin_Virt_Light3) },
{ be_const_key_weak(airquality, 35), be_const_class(be_class_Matter_Plugin_Sensor_Air_Quality) },
{ be_const_key_weak(http_flow, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Flow) },
{ be_const_key_weak(humidity, -1), be_const_class(be_class_Matter_Plugin_Sensor_Humidity) },
- { be_const_key_weak(http_temperature, 15), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
+ { be_const_key_weak(http_temperature, 41), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Temp) },
{ be_const_key_weak(http_light3, -1), be_const_class(be_class_Matter_Plugin_Bridge_Light3) },
- { be_const_key_weak(v_humidity, 12), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
+ { be_const_key_weak(v_humidity, 1), be_const_class(be_class_Matter_Plugin_Virt_Sensor_Humidity) },
{ be_const_key_weak(http_airquality, -1), be_const_class(be_class_Matter_Plugin_Bridge_Sensor_Air_Quality) },
{ be_const_key_weak(aggregator, 11), be_const_class(be_class_Matter_Plugin_Aggregator) },
{ be_const_key_weak(rain, -1), be_const_class(be_class_Matter_Plugin_Sensor_Rain) },
- { be_const_key_weak(gensw, -1), be_const_class(be_class_Matter_Plugin_Sensor_GenericSwitch) },
+ { be_const_key_weak(light0, -1), be_const_class(be_class_Matter_Plugin_Light0) },
})) ) } )) },
{ be_const_key_weak(mdns_remove_op_discovery, -1), be_const_closure(class_Matter_Device_mdns_remove_op_discovery_closure) },
- { be_const_key_weak(mdns_remove_PASE, 86), be_const_closure(class_Matter_Device_mdns_remove_PASE_closure) },
- { be_const_key_weak(mdns_announce_op_discovery_all_fabrics, -1), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_all_fabrics_closure) },
- { be_const_key_weak(PASE_TIMEOUT, -1), be_const_int(600) },
- { be_const_key_weak(debug, 84), be_const_var(31) },
- { be_const_key_weak(signal_endpoints_changed, -1), be_const_closure(class_Matter_Device_signal_endpoints_changed_closure) },
- { be_const_key_weak(_trigger_read_sensors, -1), be_const_closure(class_Matter_Device__trigger_read_sensors_closure) },
- { be_const_key_weak(received_ack, 69), be_const_closure(class_Matter_Device_received_ack_closure) },
- { be_const_key_weak(every_second, -1), be_const_closure(class_Matter_Device_every_second_closure) },
- { be_const_key_weak(plugins_config_remotes, 80), be_const_var(4) },
- { be_const_key_weak(sort_distinct, -1), be_const_static_closure(class_Matter_Device_sort_distinct_closure) },
- { be_const_key_weak(message_handler, 99), be_const_var(7) },
- { be_const_key_weak(compute_manual_pairing_code, 68), be_const_closure(class_Matter_Device_compute_manual_pairing_code_closure) },
- { be_const_key_weak(event_fabrics_saved, -1), be_const_closure(class_Matter_Device_event_fabrics_saved_closure) },
- { be_const_key_weak(autoconf_device, -1), be_const_closure(class_Matter_Device_autoconf_device_closure) },
- { be_const_key_weak(start_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_basic_commissioning_closure) },
- { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
- { be_const_key_weak(commissioning_w0, -1), be_const_var(16) },
- { be_const_key_weak(start_commissioning_complete_deferred, 67), be_const_closure(class_Matter_Device_start_commissioning_complete_deferred_closure) },
- { be_const_key_weak(every_50ms, -1), be_const_closure(class_Matter_Device_every_50ms_closure) },
- { be_const_key_weak(commissioning_admin_fabric, -1), be_const_var(18) },
- { be_const_key_weak(get_plugin_class_displayname, -1), be_const_closure(class_Matter_Device_get_plugin_class_displayname_closure) },
- { be_const_key_weak(start_commissioning_complete, 56), be_const_closure(class_Matter_Device_start_commissioning_complete_closure) },
- { be_const_key_weak(FILENAME, 12), be_nested_str_weak(_matter_device_X2Ejson) },
- { be_const_key_weak(commissioning_open, -1), be_const_var(12) },
- { be_const_key_weak(MtrInfo, -1), be_const_closure(class_Matter_Device_MtrInfo_closure) },
- { be_const_key_weak(invoke_request, 45), be_const_closure(class_Matter_Device_invoke_request_closure) },
- { be_const_key_weak(stop_basic_commissioning, -1), be_const_closure(class_Matter_Device_stop_basic_commissioning_closure) },
- { be_const_key_weak(commissioning_discriminator, 103), be_const_var(14) },
- { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
- { be_const_key_weak(is_root_commissioning_open, 39), be_const_closure(class_Matter_Device_is_root_commissioning_open_closure) },
- { be_const_key_weak(find_plugin_by_friendly_name, -1), be_const_closure(class_Matter_Device_find_plugin_by_friendly_name_closure) },
- { be_const_key_weak(disable_bridge_mode, -1), be_const_var(29) },
- { be_const_key_weak(UDP_PORT, 36), be_const_int(5540) },
- { be_const_key_weak(k2l_num, -1), be_const_static_closure(class_Matter_Device_k2l_num_closure) },
- { be_const_key_weak(register_http_remote, 33), be_const_closure(class_Matter_Device_register_http_remote_closure) },
- { be_const_key_weak(stop, 31), be_const_closure(class_Matter_Device_stop_closure) },
- { be_const_key_weak(mdns_announce_op_discovery, 27), be_const_closure(class_Matter_Device_mdns_announce_op_discovery_closure) },
- { be_const_key_weak(plugins, -1), be_const_var(1) },
- { be_const_key_weak(ipv4only, 16), be_const_var(28) },
- { be_const_key_weak(attribute_updated, -1), be_const_closure(class_Matter_Device_attribute_updated_closure) },
- { be_const_key_weak(save_before_restart, 14), be_const_closure(class_Matter_Device_save_before_restart_closure) },
- { be_const_key_weak(VENDOR_ID, -1), be_const_int(65521) },
- { be_const_key_weak(k2l, 8), be_const_static_closure(class_Matter_Device_k2l_closure) },
- { be_const_key_weak(commissioning_iterations, 3), be_const_var(13) },
+ { be_const_key_weak(k2l, -1), be_const_static_closure(class_Matter_Device_k2l_closure) },
+ { be_const_key_weak(plugins_config, -1), be_const_var(3) },
+ { be_const_key_weak(hostname_eth, 33), be_const_var(22) },
+ { be_const_key_weak(every_250ms, 28), be_const_closure(class_Matter_Device_every_250ms_closure) },
+ { be_const_key_weak(register_commands, 21), be_const_closure(class_Matter_Device_register_commands_closure) },
+ { be_const_key_weak(MtrInfo, 20), be_const_closure(class_Matter_Device_MtrInfo_closure) },
{ be_const_key_weak(root_passcode, -1), be_const_var(27) },
- { be_const_key_weak(start, -1), be_const_closure(class_Matter_Device_start_closure) },
+ { be_const_key_weak(start_root_basic_commissioning, -1), be_const_closure(class_Matter_Device_start_root_basic_commissioning_closure) },
+ { be_const_key_weak(mdns_pase_eth, -1), be_const_var(23) },
+ { be_const_key_weak(started, -1), be_const_var(0) },
+ { be_const_key_weak(commissioning_instance_eth, 7), be_const_var(20) },
+ { be_const_key_weak(plugins_config_remotes, -1), be_const_var(4) },
+ { be_const_key_weak(MtrJoin, -1), be_const_closure(class_Matter_Device_MtrJoin_closure) },
})),
be_str_weak(Matter_Device)
);
From 363cd8d79e42324e079b964cfcb34d45beb8c1ff Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 5 Jul 2024 11:59:16 +0200
Subject: [PATCH 131/252] Update changelogs
---
CHANGELOG.md | 4 ++--
RELEASENOTES.md | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 42406f0ae..0717d2f40 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,8 +13,8 @@ All notable changes to this project will be documented in this file.
- Support for Sonoff POWCT Ring (#21131)
- NeoPool data validation and communication statistics default enabled for ESP32 only (#21721)
- `FUNC_BUTTON_PRESSED` now contains `press_counter` encoded in `XdrvMailbox.command_code` (#21724)
-- Berry `int64` added `low32()` and `high32()` methods, used in Matter
-- Matter support for 'Generic Switch' based on Tasmota Buttons
+- Berry `int64` added `low32()` and `high32()` methods, used in Matter (#21728)
+- Matter support for 'Generic Switch' based on Tasmota Buttons (#21731)
### Breaking Changed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 0ff1d4566..737de22c9 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -135,6 +135,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Berry `math.min()` and `math.max()` [#21705](https://github.com/arendst/Tasmota/issues/21705)
- Berry `FUNC_ANY_KEY` event calling `any_key()` [#21708](https://github.com/arendst/Tasmota/issues/21708)
- Berry `FUNC_BUTTON_MULTI_PRESSED` event and make `FUNC_BUTTON_PRESSED` called only on state changes and once per second [#21711](https://github.com/arendst/Tasmota/issues/21711)
+- Berry `int64` added `low32()` and `high32()` methods, used in Matter [#21728](https://github.com/arendst/Tasmota/issues/21728)
- HASPmota rounds to nearest int values passed as 'real' [#21599](https://github.com/arendst/Tasmota/issues/21599)
- Matter support for Air Quality sensors [#21559](https://github.com/arendst/Tasmota/issues/21559)
- Matter support for bridged Air Quality [#21597](https://github.com/arendst/Tasmota/issues/21597)
@@ -142,6 +143,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter Fan support (virtual only) [#21637](https://github.com/arendst/Tasmota/issues/21637)
- Matter show event name in logs [#21649](https://github.com/arendst/Tasmota/issues/21649)
- Matter full support of events [#21698](https://github.com/arendst/Tasmota/issues/21698)
+- Matter support for 'Generic Switch' based on Tasmota Buttons [#21731](https://github.com/arendst/Tasmota/issues/21731)
### Changed
- ESP8266 platform update from 2024.01.01 to 2024.06.00 [#21668](https://github.com/arendst/Tasmota/issues/21668)
From fee5251bd455b72b7a372d2019ee8b98249a6ece Mon Sep 17 00:00:00 2001
From: Theo Arends <11044339+arendst@users.noreply.github.com>
Date: Fri, 5 Jul 2024 15:30:31 +0200
Subject: [PATCH 132/252] Fix universal display power regression (#21726)
---
CHANGELOG.md | 1 +
RELEASENOTES.md | 1 +
tasmota/tasmota_xdrv_driver/xdrv_13_display.ino | 9 ++++-----
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0717d2f40..34683759d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,6 +24,7 @@ All notable changes to this project will be documented in this file.
### Fixed
- Berry `bytes.resize()` for large sizes (#21716)
+- On universal display remove default backlight power if a single PWM channel is used for backlight. Regression from 14.0.0.1 (#21726)
### Removed
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index 737de22c9..b09b5e27b 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -167,6 +167,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- Matter refactor reading of multiple attributes to reduce memory pressure [#21675](https://github.com/arendst/Tasmota/issues/21675)
### Fixed
+- On universal display remove default backlight power if a single PWM channel is used for backlight. Regression from 14.0.0.1 [#21726](https://github.com/arendst/Tasmota/issues/21726)
- Shutter MQTT on inverted shutter [#21663](https://github.com/arendst/Tasmota/issues/21663)
- Scripter TCP server [#21660](https://github.com/arendst/Tasmota/issues/21660)
- ESP32 allow use of UART0 with enabled USB_CDC_CONSOLE [#21496](https://github.com/arendst/Tasmota/issues/21496)
diff --git a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
index b0350afef..8c0151232 100644
--- a/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
+++ b/tasmota/tasmota_xdrv_driver/xdrv_13_display.ino
@@ -1892,12 +1892,11 @@ void DisplayInitDriver(void) {
UpdateDevicesPresent(1);
if (!PinUsed(GPIO_BACKLIGHT)) {
-// if (TasmotaGlobal.light_type && (4 == Settings->display_model)) {
- if (TasmotaGlobal.light_type && // Assume PWM channel
- ((4 == Settings->display_model) || // ILI9341 legacy
- (17 == Settings->display_model)) // Universal
+ if ((LT_PWM1 == TasmotaGlobal.light_type) && // Single PWM light channel
+ ((4 == Settings->display_model) || // ILI9341 legacy
+ (17 == Settings->display_model)) // Universal
) {
- UpdateDevicesPresent(-1); // Assume PWM channel is used for backlight
+ UpdateDevicesPresent(-1); // Assume PWM channel is used for backlight
}
}
disp_device = TasmotaGlobal.devices_present;
From 2f62c156f9ca5b291f5b3318d3b3524b9dc3e351 Mon Sep 17 00:00:00 2001
From: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
Date: Sun, 7 Jul 2024 09:54:53 +0200
Subject: [PATCH 133/252] Matter remove longpress announce (#21742)
---
...atter_Plugin_2_Sensor_GenericSwitch_Btn.be | 2 +-
...Matter_Plugin_2_Sensor_GenericSwitch_Btn.h | 41 ++++++++-----------
2 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch_Btn.be b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch_Btn.be
index 6a13c97e6..377259cca 100644
--- a/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch_Btn.be
+++ b/lib/libesp32/berry_matter/src/embedded/Matter_Plugin_2_Sensor_GenericSwitch_Btn.be
@@ -88,7 +88,7 @@ class Matter_Plugin_Sensor_GenericSwitch_Btn : Matter_Plugin_Device
return tlv_solo.set(TLV.U1, 5) # up to penta press
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
- return tlv_solo.set(TLV.U4, 0x02 | 0x04 | 0x08 | 0x10) # MomentarySwitch + MomentarySwitchRelease + MomentarySwitchLongPress + MomentarySwitchMultiPress
+ return tlv_solo.set(TLV.U4, 0x16 #-0x02 | 0x04 | 0x10-#) # MomentarySwitch + MomentarySwitchRelease + MomentarySwitchMultiPress
end
end
diff --git a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
index 18f3a86ce..5ce9b2ded 100644
--- a/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
+++ b/lib/libesp32/berry_matter/src/solidify/solidified_Matter_Plugin_2_Sensor_GenericSwitch_Btn.h
@@ -37,14 +37,14 @@ be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute,
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
- ( &(const binstruction[53]) { /* code */
+ ( &(const binstruction[48]) { /* code */
0xB8120000, // 0000 GETNGBL R4 K0
0x88100901, // 0001 GETMBR R4 R4 K1
0x88140502, // 0002 GETMBR R5 R2 K2
0x88180503, // 0003 GETMBR R6 R2 K3
0x541E003A, // 0004 LDINT R7 59
0x1C1C0A07, // 0005 EQ R7 R5 R7
- 0x781E0024, // 0006 JMPF R7 #002C
+ 0x781E001F, // 0006 JMPF R7 #0027
0x1C1C0D04, // 0007 EQ R7 R6 K4
0x781E0005, // 0008 JMPF R7 #000F
0x8C1C0705, // 0009 GETMET R7 R3 K5
@@ -52,7 +52,7 @@ be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute,
0x58280007, // 000B LDCONST R10 K7
0x7C1C0600, // 000C CALL R7 3
0x80040E00, // 000D RET 1 R7
- 0x7002001C, // 000E JMP #002C
+ 0x70020017, // 000E JMP #0027
0x1C1C0D08, // 000F EQ R7 R6 K8
0x781E0005, // 0010 JMPF R7 #0017
0x8C1C0709, // 0011 GETMET R7 R3 K9
@@ -60,7 +60,7 @@ be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute,
0x8828010A, // 0013 GETMBR R10 R0 K10
0x7C1C0600, // 0014 CALL R7 3
0x80040E00, // 0015 RET 1 R7
- 0x70020014, // 0016 JMP #002C
+ 0x7002000F, // 0016 JMP #0027
0x1C1C0D07, // 0017 EQ R7 R6 K7
0x781E0005, // 0018 JMPF R7 #001F
0x8C1C0705, // 0019 GETMET R7 R3 K5
@@ -68,29 +68,24 @@ be_local_closure(class_Matter_Plugin_Sensor_GenericSwitch_Btn_read_attribute,
0x542A0004, // 001B LDINT R10 5
0x7C1C0600, // 001C CALL R7 3
0x80040E00, // 001D RET 1 R7
- 0x7002000C, // 001E JMP #002C
+ 0x70020007, // 001E JMP #0027
0x541EFFFB, // 001F LDINT R7 65532
0x1C1C0C07, // 0020 EQ R7 R6 R7
- 0x781E0009, // 0021 JMPF R7 #002C
+ 0x781E0004, // 0021 JMPF R7 #0027
0x8C1C0705, // 0022 GETMET R7 R3 K5
0x8824090B, // 0023 GETMBR R9 R4 K11
- 0x542A0003, // 0024 LDINT R10 4
- 0x302A0E0A, // 0025 OR R10 K7 R10
- 0x542E0007, // 0026 LDINT R11 8
- 0x3028140B, // 0027 OR R10 R10 R11
- 0x542E000F, // 0028 LDINT R11 16
- 0x3028140B, // 0029 OR R10 R10 R11
- 0x7C1C0600, // 002A CALL R7 3
- 0x80040E00, // 002B RET 1 R7
- 0x601C0003, // 002C GETGBL R7 G3
- 0x5C200000, // 002D MOVE R8 R0
- 0x7C1C0200, // 002E CALL R7 1
- 0x8C1C0F0C, // 002F GETMET R7 R7 K12
- 0x5C240200, // 0030 MOVE R9 R1
- 0x5C280400, // 0031 MOVE R10 R2
- 0x5C2C0600, // 0032 MOVE R11 R3
- 0x7C1C0800, // 0033 CALL R7 4
- 0x80040E00, // 0034 RET 1 R7
+ 0x542A0015, // 0024 LDINT R10 22
+ 0x7C1C0600, // 0025 CALL R7 3
+ 0x80040E00, // 0026 RET 1 R7
+ 0x601C0003, // 0027 GETGBL R7 G3
+ 0x5C200000, // 0028 MOVE R8 R0
+ 0x7C1C0200, // 0029 CALL R7 1
+ 0x8C1C0F0C, // 002A GETMET R7 R7 K12
+ 0x5C240200, // 002B MOVE R9 R1
+ 0x5C280400, // 002C MOVE R10 R2
+ 0x5C2C0600, // 002D MOVE R11 R3
+ 0x7C1C0800, // 002E CALL R7 4
+ 0x80040E00, // 002F RET 1 R7
})
)
);
From 99374ae45b39ef1874bd58b727c1d066e6f55ffb Mon Sep 17 00:00:00 2001
From: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Date: Sun, 7 Jul 2024 18:54:29 +0200
Subject: [PATCH 134/252] Tasmota Platform 2024.07.10 (#21745)
* Tasmota Platform 2024.07.10
* Update IDF 5.2.2 based Platform
---
platformio_override_sample.ini | 2 +-
platformio_tasmota32.ini | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini
index dd45bcfe8..8ad34f25b 100644
--- a/platformio_override_sample.ini
+++ b/platformio_override_sample.ini
@@ -77,7 +77,7 @@ lib_extra_dirs = ${library.lib_extra_dirs}
[env:tasmota32_base]
; *** Uncomment next lines ";" to enable development Tasmota Arduino version ESP32
-;platform = https://github.com/Jason2866/platform-espressif32/releases/download/2024.07.20/platform-espressif32.zip
+;platform = https://github.com/Jason2866/platform-espressif32/releases/download/2024.07.21/platform-espressif32.zip
;platform_packages = framework-arduinoespressif32 @
; framework-arduino-solo1 @
diff --git a/platformio_tasmota32.ini b/platformio_tasmota32.ini
index 1cade16c7..2a3f83e25 100644
--- a/platformio_tasmota32.ini
+++ b/platformio_tasmota32.ini
@@ -81,7 +81,7 @@ lib_ignore = ${esp32_defaults.lib_ignore}
ccronexpr
[core32]
-platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.06.11/platform-espressif32.zip
+platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.07.10/platform-espressif32.zip
platform_packages =
build_unflags = ${esp32_defaults.build_unflags}
build_flags = ${esp32_defaults.build_flags}
From 7cb8a3f9680e2f0b36ccbcbfafc3fcc976f4af6b Mon Sep 17 00:00:00 2001
From: Christian Baars
Date: Sun, 7 Jul 2024 19:50:33 +0200
Subject: [PATCH 135/252] Berry: add cam module, img class (#21743)
* cam module, img class
---
.../.github/ISSUE_TEMPLATE/bug_report.md | 30 +
lib/libesp32/JPEGDEC/CMakeLists.txt | 8 +
lib/libesp32/JPEGDEC/LICENSE | 204 +
lib/libesp32/JPEGDEC/Makefile | 17 +
lib/libesp32/JPEGDEC/README.md | 63 +
lib/libesp32/JPEGDEC/demo.jpg | Bin 0 -> 158501 bytes
.../ILI9431_t3_slideshow.ino | 104 +
.../examples/M5Stack/M5Core2/M5Core2.ino | 61 +
.../JPEGDEC/examples/M5Stack/M5Core2/batman.h | 845 +
.../examples/M5Stack/M5Core2/ncc1701.h | 318 +
.../examples/M5Stack/M5Core2/thumb_test.h | 1286 ++
.../examples/M5Stack/M5Fire/M5Fire.ino | 61 +
.../JPEGDEC/examples/M5Stack/M5Fire/batman.h | 845 +
.../JPEGDEC/examples/M5Stack/M5Fire/ncc1701.h | 318 +
.../examples/M5Stack/M5Fire/thumb_test.h | 1286 ++
.../examples/M5Stack/M5Stack/M5Stack.ino | 61 +
.../JPEGDEC/examples/M5Stack/M5Stack/batman.h | 845 +
.../examples/M5Stack/M5Stack/ncc1701.h | 318 +
.../examples/M5Stack/M5Stack/thumb_test.h | 1286 ++
.../examples/M5Stack/M5StickC/M5StickC.ino | 61 +
.../examples/M5Stack/M5StickC/batman.h | 845 +
.../examples/M5Stack/M5StickC/ncc1701.h | 318 +
.../examples/M5Stack/M5StickC/thumb_test.h | 1286 ++
.../M5Stack/M5StickCPlus/M5StickCPlus.ino | 61 +
.../examples/M5Stack/M5StickCPlus/batman.h | 845 +
.../examples/M5Stack/M5StickCPlus/ncc1701.h | 318 +
.../M5Stack/M5StickCPlus/thumb_test.h | 1286 ++
.../JPEGDEC/examples/M5Stack/README.md | 34 +
.../JPEGDEC/examples/M5Stack/batman.jpg | Bin 0 -> 13342 bytes
.../JPEGDEC/examples/M5Stack/ncc1701.jpg | Bin 0 -> 4912 bytes
.../adafruit_gfx_demo/adafruit_gfx_demo.ino | 72 +
.../examples/adafruit_gfx_demo/thumb_test.h | 1286 ++
.../examples/epd_demo/Grayscale_IL0398.cpp | 369 +
.../examples/epd_demo/Grayscale_IL0398.h | 49 +
.../JPEGDEC/examples/epd_demo/epd_demo.ino | 112 +
.../JPEGDEC/examples/epd_demo/lange.h | 13860 ++++++++++++++++
.../examples/esp32_jpeg/esp32_jpeg.ino | 92 +
.../jpeg_perf_test/jpeg_perf_test.ino | 55 +
lib/libesp32/JPEGDEC/library.json | 20 +
lib/libesp32/JPEGDEC/library.properties | 10 +
lib/libesp32/JPEGDEC/linux/main.c | 301 +
lib/libesp32/JPEGDEC/linux/makefile | 13 +
lib/libesp32/JPEGDEC/perf.jpg | Bin 0 -> 196175 bytes
lib/libesp32/JPEGDEC/squirrel_dither.jpg | Bin 0 -> 484456 bytes
lib/libesp32/JPEGDEC/src/JPEGDEC.cpp | 250 +
lib/libesp32/JPEGDEC/src/JPEGDEC.h | 309 +
lib/libesp32/JPEGDEC/src/jpeg.inl | 4967 ++++++
lib/libesp32/JPEGDEC/src/my_cm4_simd.h | 57 +
lib/libesp32/JPEGDEC/src/s3_simd_420.S | 128 +
lib/libesp32/JPEGDEC/src/s3_simd_444.S | 109 +
lib/libesp32/JPEGDEC/src/s3_simd_dequant.S | 64 +
lib/libesp32/JPEGDEC/test_images/sciopero.h | 2292 +++
lib/libesp32/JPEGDEC/test_images/st_peters.h | 1845 ++
lib/libesp32/JPEGDEC/test_images/thumb_test.h | 1286 ++
lib/libesp32/JPEGDEC/test_images/tulips.h | 3504 ++++
lib/libesp32/berry/default/be_modtab.c | 14 +
lib/libesp32/berry_tasmota/src/be_cam_lib.c | 31 +
lib/libesp32/berry_tasmota/src/be_img_lib.c | 39 +
platformio_tasmota32.ini | 1 +
.../xdrv_52_3_berry_img.ino | 499 +
.../xdrv_52_3_berry_webcam.ino | 164 +
.../xdrv_81_esp32_webcam.ino | 27 +-
62 files changed, 44827 insertions(+), 8 deletions(-)
create mode 100644 lib/libesp32/JPEGDEC/.github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 lib/libesp32/JPEGDEC/CMakeLists.txt
create mode 100644 lib/libesp32/JPEGDEC/LICENSE
create mode 100755 lib/libesp32/JPEGDEC/Makefile
create mode 100644 lib/libesp32/JPEGDEC/README.md
create mode 100644 lib/libesp32/JPEGDEC/demo.jpg
create mode 100644 lib/libesp32/JPEGDEC/examples/ILI9431_t3_slideshow/ILI9431_t3_slideshow.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Core2/M5Core2.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Core2/batman.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Core2/ncc1701.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Core2/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Fire/M5Fire.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Fire/batman.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Fire/ncc1701.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Fire/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Stack/M5Stack.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Stack/batman.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Stack/ncc1701.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5Stack/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickC/M5StickC.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickC/batman.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickC/ncc1701.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickC/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickCPlus/M5StickCPlus.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickCPlus/batman.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickCPlus/ncc1701.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/M5StickCPlus/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/README.md
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/batman.jpg
create mode 100644 lib/libesp32/JPEGDEC/examples/M5Stack/ncc1701.jpg
create mode 100644 lib/libesp32/JPEGDEC/examples/adafruit_gfx_demo/adafruit_gfx_demo.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/adafruit_gfx_demo/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/examples/epd_demo/Grayscale_IL0398.cpp
create mode 100644 lib/libesp32/JPEGDEC/examples/epd_demo/Grayscale_IL0398.h
create mode 100644 lib/libesp32/JPEGDEC/examples/epd_demo/epd_demo.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/epd_demo/lange.h
create mode 100644 lib/libesp32/JPEGDEC/examples/esp32_jpeg/esp32_jpeg.ino
create mode 100644 lib/libesp32/JPEGDEC/examples/jpeg_perf_test/jpeg_perf_test.ino
create mode 100644 lib/libesp32/JPEGDEC/library.json
create mode 100644 lib/libesp32/JPEGDEC/library.properties
create mode 100644 lib/libesp32/JPEGDEC/linux/main.c
create mode 100755 lib/libesp32/JPEGDEC/linux/makefile
create mode 100644 lib/libesp32/JPEGDEC/perf.jpg
create mode 100644 lib/libesp32/JPEGDEC/squirrel_dither.jpg
create mode 100644 lib/libesp32/JPEGDEC/src/JPEGDEC.cpp
create mode 100644 lib/libesp32/JPEGDEC/src/JPEGDEC.h
create mode 100644 lib/libesp32/JPEGDEC/src/jpeg.inl
create mode 100644 lib/libesp32/JPEGDEC/src/my_cm4_simd.h
create mode 100644 lib/libesp32/JPEGDEC/src/s3_simd_420.S
create mode 100644 lib/libesp32/JPEGDEC/src/s3_simd_444.S
create mode 100644 lib/libesp32/JPEGDEC/src/s3_simd_dequant.S
create mode 100644 lib/libesp32/JPEGDEC/test_images/sciopero.h
create mode 100644 lib/libesp32/JPEGDEC/test_images/st_peters.h
create mode 100644 lib/libesp32/JPEGDEC/test_images/thumb_test.h
create mode 100644 lib/libesp32/JPEGDEC/test_images/tulips.h
create mode 100644 lib/libesp32/berry_tasmota/src/be_cam_lib.c
create mode 100644 lib/libesp32/berry_tasmota/src/be_img_lib.c
create mode 100644 tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_img.ino
create mode 100644 tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_webcam.ino
diff --git a/lib/libesp32/JPEGDEC/.github/ISSUE_TEMPLATE/bug_report.md b/lib/libesp32/JPEGDEC/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..802914060
--- /dev/null
+++ b/lib/libesp32/JPEGDEC/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,30 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Before you create this issue**
+This library takes compressed JPEG data and outputs pixels to your callback functions. If your problem is related to LCD displays, SD cards, or any other issue that has nothing to do with this library, please stop here. If you need help with your private or commercial project, please email me (bitbank@pobox.com) to ask about paid consulting. Github issues are for submitting actual bugs.
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Image file you're having trouble with**
+If applicable, add images to help explain your problem.
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/lib/libesp32/JPEGDEC/CMakeLists.txt b/lib/libesp32/JPEGDEC/CMakeLists.txt
new file mode 100644
index 000000000..041313837
--- /dev/null
+++ b/lib/libesp32/JPEGDEC/CMakeLists.txt
@@ -0,0 +1,8 @@
+set(srcs
+ "src/JPEGDEC.cpp"
+ "src/jpeg.inl"
+)
+idf_component_register(SRCS ${srcs}
+ REQUIRES "jpegdec"
+ INCLUDE_DIRS "src"
+)
diff --git a/lib/libesp32/JPEGDEC/LICENSE b/lib/libesp32/JPEGDEC/LICENSE
new file mode 100644
index 000000000..326e04a2c
--- /dev/null
+++ b/lib/libesp32/JPEGDEC/LICENSE
@@ -0,0 +1,204 @@
+Copyright 2020 BitBank Software, Inc. All rights reserved.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2020 BitBank Software, Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/lib/libesp32/JPEGDEC/Makefile b/lib/libesp32/JPEGDEC/Makefile
new file mode 100755
index 000000000..7629f12f2
--- /dev/null
+++ b/lib/libesp32/JPEGDEC/Makefile
@@ -0,0 +1,17 @@
+CFLAGS=-D__LINUX__ -c -Wall -O2
+LIBS =
+CXX = g++
+
+all: demo
+
+demo: main.o JPEGDEC.o
+ $(CXX) main.o JPEGDEC.o $(LIBS) -o demo
+
+main.o: main.cpp
+ $(CXX) $(CFLAGS) main.cpp
+
+JPEGDEC.o: JPEGDEC.cpp
+ $(CXX) $(CFLAGS) JPEGDEC.cpp
+
+clean:
+ rm -rf *.o demo
diff --git a/lib/libesp32/JPEGDEC/README.md b/lib/libesp32/JPEGDEC/README.md
new file mode 100644
index 000000000..573d7b1f8
--- /dev/null
+++ b/lib/libesp32/JPEGDEC/README.md
@@ -0,0 +1,63 @@
+JPEGDEC
+-----------------------------------
+Copyright (c) 2020 BitBank Software, Inc.
+Written by Larry Bank
+larry@bitbanksoftware.com
+
+**I optimize other people's code for a living. This library is a good example of the kind of work I do for my commercial clients; it contains many unique and clever optimizations that allows it to perform better than anything else available. I'm happy to contribute optimized libraries to the open source community in addition to working on commercial projects. Whatever platform you're using, I can make significant improvements to your native code. Please contact me so that I can show you how.**
+
+
+
+I started working with image and video files around 1989 and soon turned my interest into a Document Imaging product based on my own imaging library. Over the years I added support for more and more formats until I had supported all of the standard ones, including DICOM. I sold my Document Imaging business in 1997. I started over with a new library design in 2000 and added even more formats. Over the years, I found uses for my imaging code in projects such as retro gaming. I recently went looking to see if there was a good JPEG viewer for Arduino and only found ones which sacrificed speed to work on MCUs with almost no RAM. I thought it would be possible to create an optimized JPEG decoder that could run on any MCU with at least 20K of RAM, so I started modifying my old JPEG code for this purpose. There are a lot of clever optimizations contained in the code that I kept as trade secrets for many years. I decided that it's time to share the code with the community. This code doesn't look like other JPEG libraries because I wrote it from a "blank sheet". It took many hundreds of hours of work to get it working correctly and find all of the optimizations. If you appreciate my work, please consider sponsoring me.
+
+
+
+Features:
+---------
+- Supports any MCU with at least 20K of RAM (Cortex-M0+ is the simplest I've tested)
+- Optimized for speed; the main limitation will be how fast you can copy the pixels to the display. You can use DMA assisted SPI to help.
+- JPEG image data can come from memory (FLASH/RAM), SDCard or any media you provide.
+- Simple class and callback design allows you to easily add JPEG support to any application.
+- The C code doing the heavy lifting is completely portable and has no external dependencies.
+- Includes fast downscaling options (1/2, 1/4, 1/8).
+- Includes option to detect and decode the embedded Exif thumbnail
+- Supports Baseline Huffman images (grayscale or YCbCr)
+- Includes optional Floyd-Steinberg dithering to 1, 2 or 4-bpp grayscale output; useful for e-paper displays
+
+
+
+
+
+
+
+**A note about performance**
+The chart above gives you an idea of how the code performs on various MCUs with the different scaling options. The test image used is both large in dimension and large in terms of the compressed data size. The two factors that have the most influence on performance are the compressed data size and the output scaling options. This is because the time to decode JPEG data scales mostly linearly with the amount of data to decode. To get the fastest decode speed, choose the lowest acceptable quality for your image; this will produce the smallest compressed data size. When you must use an image that is too large, the scaling options allow you to display it at a lower resolution than the original.
+
+
+
+
+
+
+
+**Floyd-Steinberg dithering**
+I added the option to dither the output to 1, 2 or 4-bit per pixel grayscale using the FS error diffusion algorithm. It creates a pleasant output without visible blocking nor repeating patterns. This seemed useful for generating output suitable for high resolution e-paper displays. The image above was decoded from a 800x600 color JPEG and rendered as 2-bits per pixels (4 gray levels) on a 400x300 4.2" e-paper display. See the Wiki for info on how to use this option.
+
+Acquiring JPEG files to play:
+----------------------------
+You'll notice that the images provided in the test_images folder have been turned into C code. Each byte is now in the form 0xAB so that it can be compiled into your program and stored in FLASH memory alongside your other code. You can use a command line tool I wrote called image_to_c (https://github.com/bitbank2/image_to_c) or an older Linux tool called xxd to convert a binary file into this type of text. Make sure to add a const/PROGMEM modifier in front of the JPEG data array to ensure that it gets written to FLASH and not RAM by your build environment.
+
+The Callback functions:
+-----------------------
+One of the ways to allow this code to run on any embedded platform was to define a set of callback functions. These isolate the JPEG decoding logic from the display and file I/O. This allows the core code to run on any system, but you need to help it a little. At a minimum, your code must provide a function to draw (or store) each block of image pixels emitted by the library. If you're displaying a JPEG file from memory (RAM or FLASH), this is the only function you need to provide. In the examples folder there are multiple sketches to show how this is done on various display libraries. For reading from SD cards, 4 other functions must be provided: open, close, read, seek. There is an example for implementing these in the examples folder as well.
+Note:
+If you're using the ESP32 or ESP8266 (or another MCU which uses the Harvard Architecture) and decoding JPEG images stored in RAM or FLASH, you'll need to use the correct open function (openRAM or openFLASH). For MCUs based on the ARM Cortex-M, they are interchangeable.
+
+The API:
+--------
+Please consult the Wiki for detailed info about each method exposed by the JPEGDEC class.
+
+
+If you find this code useful, please consider becoming a sponsor or sending a donation.
+
+[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SR4F44J2UR8S4)
+
diff --git a/lib/libesp32/JPEGDEC/demo.jpg b/lib/libesp32/JPEGDEC/demo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..30506b07c395ac38717871d6c1afe56b863471d2
GIT binary patch
literal 158501
zcmbTdc|4Tg`#*kpJ&!&bhAVx$fiP<7t57hK{}t
z00IGk9_<4h|Do&De(vG~05@*}k^lfO0n8wFfbJg(0FWS#e`prk?=TP-0H$3*v=0C}
z3o!gc13(mr|6lq&NaDZB&}sn5{&O!oty~I7?jM?)Mt^0)RkR
z@_+L|ClZ$WFD?06BUb0aHTGlx#xV(4*r0!wUok)6s(&82+*e3i_*P
z^qdS_!m^r-r%dldL_E3WLSsKOiE5SnmT`B`!!_QMjt8
zq^xr7y0(t4p8gGU3rj0&n_IRHjt`xjAGx@CKlAbRd+v`6e-ZKW)$7PNaq;gHK733}
zO8%0OnU$TBo0nf&R$lSFva0$=)34^=E!ft!_C9?7z~IpE$mpLL!tC5Uaba<3b8CBN
zcaOAxaQIg)n&$mSEZX@$lKmfYanj_Xqo)VcL;lJIqVxMJI43=Wuq-2&rYYpU=P41n
zP$q7z*v}Pve|B-79xCVgf=ve-9
zF#WyIPE0IJe~Y<5KWoDoV0O6*s~~!F1&v7CU6WOhzCQ--QU{=vtRd%4;^jl^}%G9akh`b
zwl3$~Gqx>#i;vzu2A1bPzZm!qZ=gJDM6x`48m`4+$@Ar0)Q4@>@RM<#jbf~`j99z8!~tWKrLbmb>AdF
z77wUbKthWYSI>h0>igfClOOo}e;zH+^}j;o6uIgRC0~C_zvT}`kHe0ER6S(`F^j&`
z=Og!SAl^*Hg&X8(F^Day&^+Lcs8*TOi^i!ZF?vgr9hk2{0W71N+ozK`
z6gf6NH&QQ!oT4gle-mkn;*-Uf`W^%I`TD1s)M6X?H@BiZc}4T!k?_YNgB+a(ibl66
z&pEe)#T5t7|}^;WU%m9IRy?W)fJlz()kxyGsS@ub&!LrgL}!D-DCp`u1+q0rGnnn-s>6oWC3cr<^~lzfEh#7qdPT
z^J&_3hU2~*_U0^pYGug)#~=i2=d&xyT#Ub9me}8^*cR>81
zZ>~N|6&3b5pn4Z!8yYT4EGpW_JqFIkaMNKib!2)TM+UIk>M?*#IR;)L%`-F@jSV;I
zX4R=9xx8@!&O@c_o1$4V!l?$ZhEQ@YVn6>YE-k^k9AmtxymNHZF14zWTwga%-cD=(
zFmAs|B0n2DOCna2GUD!^m`v0O6y|7!P$bx4;-b}nuQQ*IR&UWI0i3KE!Ti+2_Ib7rkY3ARG4Ub7(&Jg!O5
ztS~ZC_h%PSy-XI(sZ%)yOqp18bSYQfZ({cEY41?HlYKvC=hErxw)&$*W1QCbe$Jlv
z|4AO+Sqh>3A(@+Oy0weG^iFoAQ{^>wezMW)qx_Yxw_XE2?tiqgAPrueJ%jo!TPtZI
z;NvEfQJTA0Qw+|s{^7N6VRj}YSA9Ev{1}ikzVV2$?fi-exH27hIEyfvJq9pR)*hAA
zWusrY$~GW@Gv8Ny+`lPt_lh)L%{!^g>jE5z2=pOPR_m*Mc`nJm8;x-ay0XYqVvVoMQ8(4|)&-+#LzH!ceLbRfQ
zu^Xns?h+{WkjsPlAj_R9K2-;3p8FBOb`<9I+TX>-yZV(``r&T=X0xMorw3#*xP#hs
zSh;m1`QV*Y9F|v5-uIox9}DCjUBTp}+h{Jo{nL^b^_{5aP@i+rsD+cjN#S_cFLBk)
zo)UA>q-af?nQ{M+DfF>hmbFXLN3Kp4k@$FS=TdakFNW5g#_TcMxAr>I&JTZ8kz+0&
zZADL!*D*#A!0PGmR?WInR8>yFsoqb+u<+`1#=CYeK%YLSVfoZjHtYUs&-qcDznosM
z-8Q-u_W2AYb~5$p6UXzncvo!`MH;Q2C-VNdB
znY5|Ay5CgXu)yA`;feEv_5(EQYHGp2(|&YLWuorfSe*sFe50}J@?mY7gR1jdQBc~X
zXpyn)Z2@VS?Q>$<@$qpmU)=b${>!99-)S!+0e^YJi3AIKKo%+iuM4U}odv?EtMd1>Xc6IWPk4k(>Ev`}eq1DyYC0HR9k235t
z{G{PTRF>i+cO%!-Cqw!ctc<0~RCzQzzB3NLa=bRFv$Hz%#{L%mS(&htL&X`2V|elM
zT+UNsPVwv>cQQKN=^^@D6IwLN8McBQ`{0Bq)SZFb)DO?xi}8eBTW=kit6uW_AVwzg
zDyaF1oRf$;s|EQaK?GC%u?rdfL4($W8irx$+~_(4YZ%!rhyXt
zBjBMLzkc0iih3X*OT}9j1l$kn48BWwi)pW)C^KaK`~no;ii4F3QpJ#X4Qb>w2_Ea&
z6VR{aSS{QR;5G{yZBoIewiDpk5fJO&(>KoCeLw5K)ud&%*)@TV1N{x|`7L
zN;P6VTq?Q$@~Doo8YZV$;C;Z}s+Gc1{VXqiqF@+km~9wpZ&K+RO`Y=c@IUHj(&4J^V0;&hq$WPc4VeVvS9NihA_xYHs3z#1bvDt7zK0>
zu>!1^w28xH;C6tfTeUswiY%I`(rR_FHo6vx4l5OY0o6w`&=}CZgby^11fn8aK9pVjT7_EXH}(WWN}9;ycBznVxrDq
z8iR8-vKfL5%=L6*q7;i^j;SY(fzpPRA`OVGPgZ)RiSgmDc41-%Zd37IB6%mnhV
zK&WHqjeIv^F@xRwNNTZ5`=O(gQ=Hj#2Z}>D33s$*bbx3^y$FcagDhHUmR-qw-yJk}
z|44||xllJmgu(}dk4gs`Ek=yPF+NIb0TR1MuD_d$RP%*c(t$UOTnd8ClfQP=>s;aH
zCYGkGx1`dNUix*38+i`zn5eM$f=GVCVLzEvL5<+AUyY@S4SC|}`ReEEZ9cY}DH7xm
zpWzyZYy+-K3%4(u5@ilvFLEFn5u?=2HRQ8z4qAO@{iH`OGzxf&p6b=u5ioLb|3XJI
z9a7lIh!OE_NSH51!LhaZ$
zp0U1kuvXB-zS!k~;9Zm3d!nn&8Bd+ohHOf;k-km#fjKn?{pE5~f4V6OdLLS!*>s}2
z_|(8t%&WE3JB0%mx}z+ZW%wO>H>bS;dSz<-UN&Mb<*Ukexqk?{J}oQoK~TYZbmWic
z&Pm8fk^8&bBBINK^$d|!f|^GK1xzIBk9f-`wh_fBT(DH>hT$(ZdCWD39tWP^7Yb=B
ztnqgfT`eZ5CB2y+OW5R-ft|veqP@BY$AEf*n9tp-1uRm(oRQ~Fn&;&=<=lwFi(#uX
zVDm}Zx)R?|$2~JMwxwYOUwt03({A9r`&iY0E=$k#N?ybjrw&ff=M?m)1sX
z^rE>CVJfYNXsDgobs_hGYYG46F)&E81bcyfZJT!uzqWEU@-lFL8-Cw*-oYq}YViv3
zXD7Xa?xIeEv8#svF`!KIjrwl2s&Hu#rz(wG;^e1}_R>$pqSB55OBKB(F$Fc}&}EGi
zDFZRJn>$BKRrhd%IbmTo*>^8c(}+dKfNk8vJRw2i5!uu5L`>{xoaJX&>{MSaa|ZXk
zt!uK!-AABhYoYik6h@w^z=Abm%mb-d)VPY}tYy;|m`V1_zDckRfpxtZ+^|bq^iA8{
z6kO7yRzw*+Hg9r1W7V)bDSS{2P@iYNz@^XLMV&fYdPmyUq56FG?57xS=bxD(i=tGP
zXkswLgBE07@tk&8`d%@^dGc1#ep#)cr%J9i??
zp?2ZF^i(RzqV?(t52!1sf+*-Su^{5!VZgK8OXqAM>w$@NlIsb}S}oh23}eN|(8XfsfGrOwss}fTwnT
z)XjW#=muVS+eyj9JND=nl>w5s>(&oSbC_1^-NewyITroqeq
zxUk1c1QU@J5om9SQ#UEYn*q{l#}(L$HqZ6&1hC
z9(rO}$heZ@@B
zcnqbDoC~j8eBQWRDGtt1-i2>YhNG1lS5!-O)ko%&^_Ag9>YpL|z4oUyyvO_&!jC*n
zI$9gMCy6y_Zu@yMvhk@61!)`91paQ#1w~(h7>BykAiJlHhydOb{X(Q;;PHVOf7<&H
z5BY6`FJc0g9&GV_FNwZH7!_GVvp`6P$)XIe36%bobkwOJ6+GQd_1`?#(O@Wb?Nkq@
z?}loKzvXUA(3jX`olC3KZA>^NfvVxVmpA=WT>9#+-!U*^K6L(b3?Hv#QAc+_)R~e^
z&Fm{?vG~rTE5HLy%zz
zdUCr;gp*|A{A|{j5X&n*?>&@GIG@XaztY&KfBw2g3hU7jvlj9({@%
z-yrP}X0B+r@HbBfe(C*E;^hVN>U}IeF$NA{(Dc3xvR3t`E&H)$i&Twtrc2*+uAaZ)
z9Dih1LQTuQUN-K?4OC6f~)l1y5%n<40fKj@Pc2T$!g+|z(~shGr;zZ(Krw@DA~9s?Vq
z!6pz3u~WRnI^ha35Dsf
zjO7s?z_vI^i9ry7TTk6CwtyJDs-%_mxM_<4>=RjjmjDJAUdRF5o)GqRH}!%%`z6xp
z<~`%Y&t#BeIrvm^v7QL@lvI}p6`=>LDr>W}50L`BNSZQ@QyMdYjMC=Iql#=th=&5&+t4jfZ
zD_pWeHR%&m4)J52cu@i`_99w|+>l`1?{hvO^rxlCb(0;icoIM5i)`EC?)earnjg+;
z_8h=b0
z?wKx3G}HgS#(~Ja97Doxe(BcLOTI)ZgYd4>s`;7r5GBK7pfO9mVGW%ice0jFk>u7J
zt$}nzXNT}}*IQ{3Iz{K>%N@uCQ|g)CmRb=9pQv=HZPe|6AXg2DogHxbH39-uun<2Xr7R=#TStH$%oD*$qwM
z9qK%qV`*_R$TTaeV{(57_5aXbbH
z*aAVkg8c$&J%Ki$KOF-_)+ej3Pg0Bzt8g^+c(RG_v1B@TG0xaMslK7Ho>~riDhw9G
zKqld1ln81C{hCeaRH?6qYVq!GWBF%mQ74%(11^+r>O@2BL#69Q{ESAAl+kK(ZHF)qekz88fG&kJ#>^X>NdTmj*tx#b}a9CRV`)
zltQzE^(;)3sNAM4#-=qr=5z@!F3LMcm<~iwybJIQIpL7LZti;ao5mXW-asn}F1Y5bwKX
z(q%gd%ClWJp!BO}?0-`0mvMQMH{aEsw(Gf_#C}gUbQaVP>fauXHz=X^@7v}j=Oa65
z_EhiVsi7>{6XUI3df*RF0!z{k1W!-p0p=}xW7mxu@87P}qZ#lh_4mG%zq
zYb;9I3xL2KT>4Tcl4_BhFuzsYlw+@CNj;#7qn2)}n%3O*k!{g*60D11Z=*p43(9bp
zafs{3FS2twUdD%Qs?|Go&rEx@o44e@C@i2)u7e;A?29FmHIvv6
zb8*tuw62a~-{g1>S))8oc>}4ASFOTzQ;f+Ol&@x0tvlq?Rld@CQP48yBzBVZVe(Gb
zshdoQ2)%ph?}BO=MT?N#0Y0G`fODqjEGrGV+!g2=@fnFb^A)Wce*|E1Dg_!?%Jn{;
zjZPf4TWJOSyzz*%8<(uzbb_A*VoTZD*^3I*FI;7RZ%;U}$h(G`#1=X`tI_F+NAKbG
zSv1bx>>iwCG*&$$fU{Ch6j&NW(+sUXfiXERROI0_GL*{wkzR7zL43V|+MY4Ct)TbW
z9-=vd^dWltE_VTnzZSM`xQU4c{%l*|gh*z5*WV%Kqqx{VIb3;RUpVNY!^YOq4VN)u
zuW;!&PbtRs1g$AKb^8gLs6cn}Y6HGMx_tF%yY49&0mUcw9xC3IyqSCSfo+5ma%d6+MP!4Zs3~9G9QO-sPH8<
ztWV!!Uz#ufh4BB9|HRugxd%V@OVp3;m3oF+bbDEBey6jjU{TKJqve4Ko4FB8rQpGl
zYg2Md&zgZw=B^NU7b=Jgw_SMrGp_8>Iy&z(hef_5?~8qVS7mxOl2
zaW5fb`EX$26rzW!lpndgTi~I%Z=Kwo-FAPLsvu+=VPctk>Pqjqh?LC*8Of&=cSQ1j
zcF72G%onyNDp&!oc*{b-vVbFPdnZ4?!s$G&&{Vp-fk3$sVp=Jng51lILLJsU&+_ED
zjh#9M3XK^vEoL&_vB@6xFl52zvl!E(`f+1NyPrWS-(41}@;BMw2wdGQ@gu55+XJ_}
zp~^o;i=yZh>$LVfkn*z8Zv|~N7JI#DGsfJw9E)|0(@*_#a4<=x=4)F1O~0_
z?AMk+sd(0nmx;Ox7r23vi+6h(hQ`tkpI6dGSAm7aK#L5v-kBSKR*E(VamVqWbhZdBCnz`*;_Jut>Nm|6D!{wF6aXA4F@8
zA)Zs~6_l)hFVM1!ts~-E4;&2z)0-Z&w-`O~aI+4$;Ug
z=SvonMCdHZVF6xWfoh)S7dsKhMSv`6rBDM0n2U}gOq63o8XJYd?8fVYwl{6GTouEh
zfZ~mDHptpG#r0)s=Gucbq!$h+xDq-MU16N<^KAp4;RdyLzhwBZ#tF!2FLhVn&tJcaIy%Z%
zvL2=V^z80kZOeY{-86ANF%Izx%BMOF?u8(Mx4$sF6XcQ5v9$NI^Tw9I4wlrwGCAOL
zHw4spz!B6hP_?GpU~bs2U>=KCW4QN6a}1pR+vMd`*osHpSdHLXE@>Ca@`zFMiP5b{
zu+qixw6&sxnXhW8O1xAiEMnvQT5xupen)Hzz-uAE?VLw-9Ppo;4e_U*-`Tsjkqxf&
z@^4cs^8r(0&0iNYdZRn=o-~{NCc0mO^%rHBT!OROTVL066pPctZNggF?~kcBg)q8%
zVpd0Vb1GzQP>lg>YpAAVCiNN`f%INAs{P~);@yICX%$S44%awguE(V+}Z0Z&S&S>+oBT_n}(LswYIalR!
zjm7!9OakmvZvMx>!+@DMKZp>`vh^op{K2Dz*wdX{jD&XV5G;!D9WFt~y!yk@d%zsu
z`*+p989>Rm^k61$`C&=cJt!6Ll-YPHnTmL3=@`YuOn(e`$uQdNU0kKDyJIdHkNiQy
z!LxVH(mb3sQE@)v#gz-^6H-g{y454kq8oj8=yH;^jKxkvPgA*JZ^zz531N-jV<3L;
z$h~!q6KEOG7zR;G+$N{@>5T;`9`3zHvIqLDo0mCI)?Uz1REHjxZtohjZ#>P0_g>dv
ze$1p6qlW|6z8e$$CO?{%e@CwPUfqQyU1mCTO`U8b;G+;U)xpbem}!scy<9@WDm`z>
zj!e5f@X%k~zJX$E?4h5TT^+7wF-A-#{BRKXxgw=?f|HSVRUXB%Va19r?B|24MC>Wt
zHufs4LVd-yqh502g`SP;A_GAEvr)709kl1d0z@iz)a!NYtCgkfK*)8a7xrEFF|x-%
zU`rk7kVGg{(y`f&A|O^;>T{+J`~9r#p58rGz0_A(w9kHn1}Z=O)p2u7e)y@$3DnWj&8b6Ro65G;WHvJ6|7pIVR1QLSC_7;Q1r{avs
zxDnMC_pH9S=<@OkaH^*5eHzE;r_&v-6kCE_FEjI!mb%sgFy&(bp5d6JgS2YIxUqYd
zocb&A(yKl4?PYEQSDS)6w{WPnCE3fw8w=IYZ=oPnDvZ_ZU+d5`X$4F8S}qHvDK<
zIgH)e%`7RSKmEX$1_iAV$#3^}ck*Cb*c33$61)zp?+31Arfjg^M{}UAnJ6Ew9(k><
zuiR9M(OgE;Twr%sGrgUO=q6bzg5nB1S&c689)YAE_8X3~8~?ex5>T>!(5EholUkf;
zrJ1(gW|~i$r#aZ_aH;X+@O=0nWu%eqmvqHRvPZPmO)uE0-~Z1oCRt7kT@!?
z68W{0jR(@s-mdb|Z6(P6h~cJ(myz*b|9vfY?GfGkZ)=_1*l+p^9KPDS>Q#&87=S<-
zXhBWiJO+mH?)Zkrz%7-Dy{!n0L~*g4Eb$Sv?Xsikk>~*K{=sHHXzw(CC6~urYU#DH
z`ro_Wc!5`cOdqR!Tg@+cVRGGbkERgy)nf7eeM_T>_9f{e3V%-3z}AR)Vq3-yt~spg
zIp}W`6%^Cns>X?jPBOPjD)*yFIFfE)ka`0Cx}i-hc3rR8lkl46q45bQ#^T8tQwk@`
zwG_C1(4qyTg;$gg9>xZte&pnscgtR{eo}*J@UMxd(6-Oc0$SeNilXA;weN-=tw)<%
zCbcQAABr3zodw^iIEkTU@!-;Eb2LSw@@ybe=5fAuk{?HlyA)i-B6}-c5@>S!5U{o?{l0y1}?T9
z=sx1!@ElfU%gKeZ?ON;MYdbqGsGFrFMgB~BwQ<=iBehdyXE%TE`xx$A^9@vh5T7r+
z7tXwJd*6Gx@A0R-s)si3nff^*qv%Z=onUW*Nx}2kO{e|u&fmTmntKI!PPD9;=pRaMpbgU2Te&yw8ya2Upc
zdUk3`;O1%Gv6@i2($D5JSIlrL1DbybT1Ma0%p9eso4K3%APVh>*dD+>6l`L@TPJH=
z*4G2N5*qk9E^^Wr$L8IpIYh}=wfRw>b*?!PmWmX6yx=+2!&aAD%;J7_-m1;v*XjFB
zxmc|U<)h__jfuFi7B)H0t;=4<*6!Y8O8K@=-(0W8wtMI>vPJ<1i4LmTcPrzS<8(l}
zRtqZ6?kyWNJ;~jxEib(a5lh($Shd>|XwC1rbGl`qDXl6!AgY8AI+a`?UFa>OMCn0@
zIZ$mmo{RU%{zOb3S|!X48|KH{PF+)B-?J9T3lnNc3F`5t%D>1NdRgKzFG
z->gpyNc_@a|0jjLcJd997ExidmMALev1NaH^(<%zULRg~`}>dE&utCeo;;00VpiAm
zvGwvANxHWNtN`Jta48QgxjqM@0S$U=ON$M;C-K!GsqpO$b~6X1@gU{<(GIJ2>o3cT
z4Gb=b@25sQ_E9lZd>J@{$iW(IBMbgCvARhZVRvXsN=p_o`!BjOIEoR
zR*lL_k-vG(%3+a)sxxz@_WHC~t%oqcoTi9=*Na->Yy1Ob~o`%U_aXSLCAHEfEC+0gbS)LWIdY
z&;?hoH&MwS*ZSd=@t75M=sXy525QBwQ*UZKgae@>dTJuwK7br+`E#1D+=t*}{^!C@W
zZy5{6KzsSFaqX1(G4R>y&Y#5{i5BLh<1{_X2&3r0VP4v^Hu{wUgnS
zJ4H7)yS~pGlg{k47Qw53Fd1oFQUUh{QM&Gn^nT9OG5Z$CY(2s{WkcPsf^jbb)r0y@n;;{;a^i{a{=*8%_ua=siL
zdaj|RbXUM$=c;apVEs}24lE?VB6+?#dgAv`0m63|K|_tszxvbj`C*Lnj~wAlLIJ2(
zem|LB{MC`%8B%G8msk3!ABKDCuMzTAyEpCP(Ter}WI}Usv2o>s!aGOe_q9X;QCK*h
zu3&T|;+~u#p%lgaY6^Y^Zj1z;RwRN0DC39Q!aD+cWPH-7)nboF9UW*K{cBe#mvC9$
zmlvGdq?3_Ti66|YuI0S|^LXw|y`W5Cd=B{L)A837Gxj6a^}CHr4_PX67Rg#4{#oPE
zXN`+Y*a;^3kc6;ba!^iQgg2b8VRT1;!A{?3kcd(27)F)Csfp=KZfyE(e18pT*sBVQ
zTYmPSEnS5V5^LaZ21Gf=@Y&f}L-W+{3)GArwuJlE9W5Sx
zn8+j9aLURtAh;j_dQd(L620Va0Y8OkJ_c4{RjZaGSTW2opi0BneOz5`hvUGiv$RR?
zXg>cMr&l^1>PH$`9tj#x2A-LI6a`058{gaegdaMe>V1BkHec?~u4MekqgE))wQ88M
z-KN^!P;n+lE@bRx8hC`rM-kVw(KdU|u%ubA27Bdq&^4LqW1t{9wHsAG8Qudc*CUF@
zVpd!FVc}DY=0-+FdeXX`#4nfaz+?F6MVr2^d5$-1;~S9k*Vd_Bz>U7OX>d6PPFq3M
z&i2~udB`|o#h$(PqlFa)Ol@WVe%<|Bs9m@7SHg>DO?x=Ik|m^tpBTe>nRq-Y%Plns
zo=aDz)MDg&h~j>?m}W@IdphlOKgE&Fn?wV+1D|n^sakmtb0~|iX*Eo$Q$m(p+`j#U
z+4=ts=IJ~Ja1eZPI$c0aumw5kC*rp#k{oSl(E^1E)}hmy!l$MLTpvHGEd_oihNC0y
z3v5z{^57~gMcyIG2nmF|^E?gNrjDC{#Xf}(JyJWYUQvI)|3wr}!+`4@VD+DBEPOZ1
z6ai;G=zWKK>xx^%cte`uU=dgS^M0J8yXF+EA87j~-`G7)Lt``DHwt8KLkaJOXZPL(
z*Vp$itbR|i_fJ&w;k-av+h1PnF~9W9f~`S9ot&v&r{Wx{!G@XB+ECYce)px$nsKi9
zP=#jpNLk4P4eX@*pD3T<>ZPe0H`Ti`ALz3{q>q7LXURScuNS0r9w!KEeG`Q+)!k}a
z>Kcz9$0VgQ6%pwHMsC3br4HCifMAh=fuAXcw)-MMU7%WY=|aB`
zv2851s??fO1NEtrzq?vit9XG2N;LrDb+nmEyauyEo0w-5djg|OMw#GdzPS=D5VZFb
znL1hb{7V3a3GxkG=}U}&jTAJ=o)L30Q@;)ug@mmjYJ=D{*EKi~o=+2emF~*&l1Ny$
zftyay=syCtYrZ4d?E~<=O48U96NhKi-%frQY^sm=G!5k==BCpHUcVZ~`c>KOYIDxM#o^xhx6i{Qd8io*y9~s
zd#bHDhFRdfV0Qt1oC_1ZyQnl)RakSPq=zlUL;vUz=zC9X-&076TbvHLI6GjkZJ}WN
zkj-^4@41XH
zDH}G2C5V{4bS8xpcww6__hJG|T2xxS<2nO~{7KQrfXyg|C-N3&1M*<|p#UQz{iC|8
zG{Q2{_e8C<+*%!y^|x8u4IW_)e}t?ty;Dz>4*^0C==pZAUQ6NWdj
zji8#8UBunTu+iU%z;nKd>Q|FLaWt?*7(W@Ja#LqKPdK_$374(PzTM?Cm1obr(J-;%
zJyAo^eypB;m1BV~aq~i(=$L@)dK7t3O{|PvewM!<=3ULqXRixon{X+0v;E${lzCoG
zhmQ=xyW%gJ^Df4dG6P`#Wnl9So|`Aiin&Jrj1NUG=6|
z?N4N!Ou1(q2kP4=n#1K2gu8FNC138)BYDWaUb&q;_G4OvJ?0ts>${1zHE*NpG^jJ)
z+vgYvDcVhEzVr|*a7||zfrEQB57H`#y4(=7j
z!}QfuFU%6(6|67b#P4`I^%xT6A~}y5*64ov#!tLSQLGQTkS*GF^fY_*!!Bad9s!IT
zwG~A*xD?P?4H}IkG0~70(P#=NB4}t+1UhARfp_v%wDJ4tASH#(SE~XKKV5NKRCA_H)Ja+>u&^XN9@Q1S`b^nV?CF9>@T=&JqMNo`N)H=J(CF>S
zIs>D4$((N*RLkFQ(S29HkaXhC#+(g3X%trbt5DXjw>}G3!MB%Qc8s6nlr2>n>W|zgs`>MJVt=j=qd~U2u3M(KL(y
z2cFKvWvPlbv!l`$O+VyBEG`ZmQ6#F*y~YL~1AnZ9m5(G#a~f>R-1Z5Bp{GP?1s7K&
zf5fLy=>z^o@JIER(+TH=TLjRs>I=%*A;qbZ78FU^J2Tj!-8^mr4d*ueV3=@GtI+B~
z2*^wqpX{0(r;;un(*M>(sK6sPJH!q@qri5Utdf3i%3Rb!M9tgCoVGuWZ^E0U&|VO;
z82mMVZBb137!bLrC7RRXe~(0~vu7}wbEhST^l1qt*;(zDrc1TV%d6}RZuoP{`daKU
z0H#_F^mL_Mj=D6#$KtcqjsZ132_I@um@jq7XPXy?Zum