Matter shutter with tilt (#18525)

This commit is contained in:
s-hadinger 2023-04-26 22:53:26 +02:00 committed by GitHub
parent ee9d086aba
commit 6702321784
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 715 additions and 464 deletions

View File

@ -160,6 +160,7 @@ extern const bclass be_class_Matter_TLV; // need to declare it upfront because
#include "solidify/solidified_Matter_Plugin_Light2.h"
#include "solidify/solidified_Matter_Plugin_Light3.h"
#include "solidify/solidified_Matter_Plugin_Shutter.h"
#include "solidify/solidified_Matter_Plugin_ShutterTilt.h"
#include "solidify/solidified_Matter_Plugin_Sensor.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Pressure.h"
#include "solidify/solidified_Matter_Plugin_Sensor_Temp.h"
@ -339,6 +340,7 @@ module matter (scope: global, strings: weak) {
Plugin_Light2, class(be_class_Matter_Plugin_Light2) // Color Temperature Light
Plugin_Light3, class(be_class_Matter_Plugin_Light3) // Extended Color Light
Plugin_Shutter, class(be_class_Matter_Plugin_Shutter) // Shutter
Plugin_ShutterTilt, class(be_class_Matter_Plugin_ShutterTilt) // Shutter + Tilt
Plugin_Sensor, class(be_class_Matter_Plugin_Sensor) // Generic Sensor
Plugin_Sensor_Pressure, class(be_class_Matter_Plugin_Sensor_Pressure) // Pressure Sensor
Plugin_Sensor_Temp, class(be_class_Matter_Plugin_Sensor_Temp) // Temperature Sensor

View File

@ -1048,8 +1048,11 @@ class Matter_Device
if relay2 >= 0 relays_reserved.push(relay2) end
tasmota.log(string.format("MTR: relay1 = %s, relay2 = %s", relay1, relay2), 3)
# is there tilt support
var tilt_array = d.find('TiltConfig')
var tilt_config = tilt_array && (tilt_array[2] > 0)
# add shutter to definition
m[str(endpoint)] = {'type':'shutter','shutter':idx}
m[str(endpoint)] = {'type': tilt_config ? 'shutter+tilt' : 'shutter', 'shutter':idx}
endpoint += 1
idx += 1
end

View File

@ -34,7 +34,7 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
# 0x0003: inherited # Identify 1.2 p.16
# 0x0004: inherited # Groups 1.3 p.21
# 0x0005: inherited # Scenes 1.4 p.30 - no writable
0x0102: [0,5,6,7,8,9,0xA,0xB,0xC,0xD,0xE,0xF,0x17,0xFFFC,0xFFFD], # Window Covering 5.3 p.289
0x0102: [0,5,7,0xA,0xB,0xD,0xE,0x17,0xFFFC,0xFFFD], # Window Covering 5.3 p.289
}
static var TYPES = { 0x0202: 2 } # New data model format and notation
@ -79,34 +79,24 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
return TLV.create_TLV(TLV.U1, 0xFF) # 0xFF = unknown type of shutter
elif attribute == 0x0005 # ---------- NumberOfActuationsLift / u16 ----------
return TLV.create_TLV(TLV.U2, 0)
elif attribute == 0x0006 # ---------- NumberOfActuationsTilt / u16 ----------
return TLV.create_TLV(TLV.U2, 0)
elif attribute == 0x0007 # ---------- ConfigStatus / u8 ----------
return TLV.create_TLV(TLV.U1, 1 + 8 + 16) # Operational + Lift Position Aware + Tilt Position Aware
return TLV.create_TLV(TLV.U1, 1 + 8) # Operational + Lift Position Aware
elif attribute == 0x000D # ---------- EndProductType / u8 ----------
return TLV.create_TLV(TLV.U1, 0xFF) # 0xFF = unknown type of shutter
elif attribute == 0x0008 # ---------- CurrentPositionLiftPercentage / u8 ----------
return TLV.create_TLV(TLV.U2, 100 - self.shadow_shutter_pos)
elif attribute == 0x000E # ---------- CurrentPositionLiftPercent100ths / u16 ----------
return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_pos) * 100)
elif attribute == 0x0009 # ---------- CurrentPositionTiltPercentage / u8 ----------
return TLV.create_TLV(TLV.U2, 100 - self.shadow_shutter_tilt)
elif attribute == 0x000F # ---------- CurrentPositionTiltPercent100ths / u8 ----------
return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_tilt) * 100)
elif attribute == 0x000A # ---------- OperationalStatus / u8 ----------
var op = self.shadow_shutter_direction == 0 ? 0 : (self.shadow_shutter_direction > 0 ? 1 : 2)
return TLV.create_TLV(TLV.U1, op) # TODO from sensors
return TLV.create_TLV(TLV.U1, op)
elif attribute == 0x000B # ---------- TargetPositionLiftPercent100ths / u16 ----------
return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_target) * 100)
elif attribute == 0x000C # ---------- TargetPositionTiltPercent100ths / u16 ----------
return TLV.create_TLV(TLV.U1, 0) # TODO
elif attribute == 0x0017 # ---------- Mode / u8 ----------
return TLV.create_TLV(TLV.U1, 0) # normal mode
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
return TLV.create_TLV(TLV.U4, 3 + 4 + 16) # Lift + Tilt + PA_LF + PA_TL
return TLV.create_TLV(TLV.U4, 1 + 4) # Lift + PA_LF
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
return TLV.create_TLV(TLV.U4, 5) # New data model format and notation
end
@ -152,13 +142,6 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
self.update_shadow()
end
return true
elif command == 0x0008 # ---------- GoToTiltPercentage ----------
var tilt = val.findsubval(0)
if tilt != nil
tilt = tilt / 10
ctx.log = "tilt%:"+str(tilt)
end
return true
end
else
@ -182,16 +165,14 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
var val_pos = v.find("Position")
if val_pos != nil
if val_pos != self.shadow_shutter_pos
# self.attribute_updated(0x0102, 0x0008) # CurrentPositionLiftPercentage
self.attribute_updated(0x0102, 0x000E) # CurrentPositionLiftPercent100ths
end
self.shadow_shutter_pos = val_pos
end
# Tilt
# Tilt - we can keep it here knowing that it won't change if not implemented
var val_tilt = v.find("Tilt")
if val_tilt != nil
if val_tilt != self.shadow_shutter_tilt
# self.attribute_updated(0x0102, 0x0009) # CurrentPositionTiltPercentage
self.attribute_updated(0x0102, 0x000F) # CurrentPositionTiltPercent100ths
end
self.shadow_shutter_tilt = val_tilt

View File

@ -0,0 +1,114 @@
#
# Matter_Plugin_ShutterTilt.be - implements the behavior for shutters with tilt control
#
# 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 <http://www.gnu.org/licenses/>.
#
# Matter plug-in for core behavior
# dummy declaration for solidification
class Matter_Plugin_Shutter end
#@ solidify:Matter_Plugin_ShutterTilt,weak
class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter
static var TYPE = "shutter+tilt" # name of the plug-in in json
static var NAME = "Shutter + Tilt" # display name of the plug-in
# inherited static var ARG = "shutter" # additional argument name (or empty if none)
# inherited static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
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
0x0102: [7,0xC,0xF,0xFFFC], # Window Covering 5.3 p.289
}
# inherited static var TYPES = { 0x0202: 2 } # New data model format and notation
# below is inherited
# var tasmota_shutter_index # Shutter number in Tasmota (zero based)
# var shadow_shutter_pos
# var shadow_shutter_target
# var shadow_shutter_tilt
# var shadow_shutter_direction # 1=opening -1=closing 0=not moving TODO
#############################################################
# Constructor inherited
#############################################################
# Update shadow inherited
#############################################################
# read an attribute
#
def read_attribute(session, ctx)
import string
var TLV = matter.TLV
var cluster = ctx.cluster
var attribute = ctx.attribute
# ====================================================================================================
if cluster == 0x0102 # ========== Window Covering 5.3 p.289 ==========
self.update_shadow_lazy()
if attribute == 0x0007 # ---------- ConfigStatus / u8 ----------
return TLV.create_TLV(TLV.U1, 1 + 8 + 16) # Operational + Lift Position Aware + Tilt Position Aware
elif attribute == 0x000F # ---------- CurrentPositionTiltPercent100ths / u8 ----------
return TLV.create_TLV(TLV.U2, (100 - self.shadow_shutter_tilt) * 100)
elif attribute == 0x000C # ---------- TargetPositionTiltPercent100ths / u16 ----------
return TLV.create_TLV(TLV.U1, 0) # TODO
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
return TLV.create_TLV(TLV.U4, 3 + 4 + 16) # Lift + Tilt + PA_LF + PA_TL
end
end
# else
return super(self).read_attribute(session, ctx)
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)
import light
var TLV = matter.TLV
var cluster = ctx.cluster
var command = ctx.command
# ====================================================================================================
if cluster == 0x0102 # ========== Window Covering 5.3 p.289 ==========
self.update_shadow_lazy()
if command == 0x0008 # ---------- GoToTiltPercentage ----------
var tilt = val.findsubval(0)
if tilt != nil
tilt = tilt / 10
ctx.log = "tilt%:"+str(tilt)
end
return true
end
end
# else
return super(self).invoke_request(session, val, ctx)
end
#############################################################
# parse sensor inherited
end
matter.Plugin_ShutterTilt = Matter_Plugin_ShutterTilt

View File

@ -33,7 +33,7 @@ import matter
#################################################################################
class Matter_UI
static var _ROOT_TYPES = "root"
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter"
static var _CLASSES_TYPES = "|relay|light0|light1|light2|light3|shutter|shutter+tilt"
"|temperature|pressure|illuminance|humidity"
var device

View File

@ -2018,7 +2018,7 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[51]) { /* constants */
( &(const bvalue[53]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(json),
/* K2 */ be_nested_str_weak(0),
@ -2050,30 +2050,32 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */
/* K28 */ be_nested_str_weak(Relay2),
/* K29 */ be_nested_str_weak(push),
/* K30 */ be_nested_str_weak(MTR_X3A_X20relay1_X20_X3D_X20_X25s_X2C_X20relay2_X20_X3D_X20_X25s),
/* 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(k2l),
/* K37 */ be_nested_str_weak(Temperature),
/* K38 */ be_nested_str_weak(_X23Temperature),
/* K39 */ be_nested_str_weak(temperature),
/* K40 */ be_nested_str_weak(filter),
/* K41 */ be_nested_str_weak(stop_iteration),
/* K42 */ be_nested_str_weak(Pressure),
/* K43 */ be_nested_str_weak(_X23Pressure),
/* K44 */ be_nested_str_weak(pressure),
/* K45 */ be_nested_str_weak(Illuminance),
/* K46 */ be_nested_str_weak(_X23Illuminance),
/* K47 */ be_nested_str_weak(illuminance),
/* K48 */ be_nested_str_weak(Humidity),
/* K49 */ be_nested_str_weak(_X23Humidity),
/* K50 */ be_nested_str_weak(humidity),
/* K31 */ be_nested_str_weak(TiltConfig),
/* K32 */ be_nested_str_weak(shutter_X2Btilt),
/* K33 */ be_nested_str_weak(shutter),
/* K34 */ be_nested_str_weak(get_power),
/* K35 */ be_nested_str_weak(relay),
/* K36 */ be_nested_str_weak(load),
/* K37 */ be_nested_str_weak(read_sensors),
/* K38 */ be_nested_str_weak(k2l),
/* K39 */ be_nested_str_weak(Temperature),
/* K40 */ be_nested_str_weak(_X23Temperature),
/* K41 */ be_nested_str_weak(temperature),
/* K42 */ be_nested_str_weak(filter),
/* K43 */ be_nested_str_weak(stop_iteration),
/* K44 */ be_nested_str_weak(Pressure),
/* K45 */ be_nested_str_weak(_X23Pressure),
/* K46 */ be_nested_str_weak(pressure),
/* K47 */ be_nested_str_weak(Illuminance),
/* K48 */ be_nested_str_weak(_X23Illuminance),
/* K49 */ be_nested_str_weak(illuminance),
/* K50 */ be_nested_str_weak(Humidity),
/* K51 */ be_nested_str_weak(_X23Humidity),
/* K52 */ be_nested_str_weak(humidity),
}),
be_str_weak(autoconf_device_map),
&be_const_str_solidified,
( &(const binstruction[326]) { /* code */
( &(const binstruction[339]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1
0x600C0013, // 0002 GETGBL R3 G19
@ -2145,11 +2147,11 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */
0x8C281116, // 0044 GETMET R10 R8 K22
0x58300017, // 0045 LDCONST R12 K23
0x7C280400, // 0046 CALL R10 2
0x782A0040, // 0047 JMPF R10 #0089
0x782A004D, // 0047 JMPF R10 #0096
0x94201117, // 0048 GETIDX R8 R8 K23
0x5828000B, // 0049 LDCONST R10 K11
0x502C0200, // 004A LDBOOL R11 1 0
0x782E003C, // 004B JMPF R11 #0089
0x782E0049, // 004B JMPF R11 #0096
0x602C0008, // 004C GETGBL R11 G8
0x5C301400, // 004D MOVE R12 R10
0x7C2C0200, // 004E CALL R11 1
@ -2158,7 +2160,7 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */
0x5C381600, // 0051 MOVE R14 R11
0x7C300400, // 0052 CALL R12 2
0x74320000, // 0053 JMPT R12 #0055
0x70020033, // 0054 JMP #0089
0x70020040, // 0054 JMP #0096
0x9430100B, // 0055 GETIDX R12 R8 R11
0xB8362000, // 0056 GETNGBL R13 K16
0x8C341B13, // 0057 GETMET R13 R13 K19
@ -2200,206 +2202,219 @@ be_local_closure(Matter_Device_autoconf_device_map, /* name */
0x7C440800, // 007B CALL R17 4
0x58480015, // 007C LDCONST R18 K21
0x7C3C0600, // 007D CALL R15 3
0x603C0008, // 007E GETGBL R15 G8
0x5C400800, // 007F MOVE R16 R4
0x7C3C0200, // 0080 CALL R15 1
0x60400013, // 0081 GETGBL R16 G19
0x7C400000, // 0082 CALL R16 0
0x9842071F, // 0083 SETIDX R16 K3 K31
0x98423E0A, // 0084 SETIDX R16 K31 R10
0x980C1E10, // 0085 SETIDX R3 R15 R16
0x00100905, // 0086 ADD R4 R4 K5
0x00281505, // 0087 ADD R10 R10 K5
0x7001FFC0, // 0088 JMP #004A
0x6028000C, // 0089 GETGBL R10 G12
0xB82E2000, // 008A GETNGBL R11 K16
0x8C2C1720, // 008B GETMET R11 R11 K32
0x7C2C0200, // 008C CALL R11 1
0x7C280200, // 008D CALL R10 1
0x582C000B, // 008E LDCONST R11 K11
0x78160000, // 008F JMPF R5 #0091
0x04281505, // 0090 SUB R10 R10 K5
0x1430160A, // 0091 LT R12 R11 R10
0x78320010, // 0092 JMPF R12 #00A4
0x8C301308, // 0093 GETMET R12 R9 K8
0x5C381600, // 0094 MOVE R14 R11
0x7C300400, // 0095 CALL R12 2
0x4C340000, // 0096 LDNIL R13
0x1C30180D, // 0097 EQ R12 R12 R13
0x78320008, // 0098 JMPF R12 #00A2
0x60300008, // 0099 GETGBL R12 G8
0x5C340800, // 009A MOVE R13 R4
0x7C300200, // 009B CALL R12 1
0x60340013, // 009C GETGBL R13 G19
0x7C340000, // 009D CALL R13 0
0x98360721, // 009E SETIDX R13 K3 K33
0x9836420B, // 009F SETIDX R13 K33 R11
0x980C180D, // 00A0 SETIDX R3 R12 R13
0x00100905, // 00A1 ADD R4 R4 K5
0x002C1705, // 00A2 ADD R11 R11 K5
0x7001FFEC, // 00A3 JMP #0091
0x8C300522, // 00A4 GETMET R12 R2 K34
0xB83A2000, // 00A5 GETNGBL R14 K16
0x8C381D23, // 00A6 GETMET R14 R14 K35
0x7C380200, // 00A7 CALL R14 1
0x7C300400, // 00A8 CALL R12 2
0x5412001F, // 00A9 LDINT R4 32
0x60340010, // 00AA GETGBL R13 G16
0x8C380124, // 00AB GETMET R14 R0 K36
0x5C401800, // 00AC MOVE R16 R12
0x7C380400, // 00AD CALL R14 2
0x7C340200, // 00AE CALL R13 1
0xA802001C, // 00AF EXBLK 0 #00CD
0x5C381A00, // 00B0 MOVE R14 R13
0x7C380000, // 00B1 CALL R14 0
0x943C180E, // 00B2 GETIDX R15 R12 R14
0x6040000F, // 00B3 GETGBL R16 G15
0x5C441E00, // 00B4 MOVE R17 R15
0x60480013, // 00B5 GETGBL R18 G19
0x7C400400, // 00B6 CALL R16 2
0x7842000D, // 00B7 JMPF R16 #00C6
0x8C401F16, // 00B8 GETMET R16 R15 K22
0x58480025, // 00B9 LDCONST R18 K37
0x7C400400, // 00BA CALL R16 2
0x78420009, // 00BB JMPF R16 #00C6
0x00401D26, // 00BC ADD R16 R14 K38
0x60440008, // 00BD GETGBL R17 G8
0x5C480800, // 00BE MOVE R18 R4
0x7C440200, // 00BF CALL R17 1
0x60480013, // 00C0 GETGBL R18 G19
0x7C480000, // 00C1 CALL R18 0
0x984A0727, // 00C2 SETIDX R18 K3 K39
0x984A5010, // 00C3 SETIDX R18 K40 R16
0x980C2212, // 00C4 SETIDX R3 R17 R18
0x00100905, // 00C5 ADD R4 R4 K5
0x54420027, // 00C6 LDINT R16 40
0x24400810, // 00C7 GT R16 R4 R16
0x78420000, // 00C8 JMPF R16 #00CA
0x70020000, // 00C9 JMP #00CB
0x7001FFE4, // 00CA JMP #00B0
0xA8040001, // 00CB EXBLK 1 1
0x70020002, // 00CC JMP #00D0
0x58340029, // 00CD LDCONST R13 K41
0xAC340200, // 00CE CATCH R13 1 0
0xB0080000, // 00CF RAISE 2 R0 R0
0x54120027, // 00D0 LDINT R4 40
0x60340010, // 00D1 GETGBL R13 G16
0x8C380124, // 00D2 GETMET R14 R0 K36
0x5C401800, // 00D3 MOVE R16 R12
0x7C380400, // 00D4 CALL R14 2
0x7C340200, // 00D5 CALL R13 1
0xA802001C, // 00D6 EXBLK 0 #00F4
0x5C381A00, // 00D7 MOVE R14 R13
0x7C380000, // 00D8 CALL R14 0
0x943C180E, // 00D9 GETIDX R15 R12 R14
0x6040000F, // 00DA GETGBL R16 G15
0x5C441E00, // 00DB MOVE R17 R15
0x60480013, // 00DC GETGBL R18 G19
0x7C400400, // 00DD CALL R16 2
0x7842000D, // 00DE JMPF R16 #00ED
0x8C401F16, // 00DF GETMET R16 R15 K22
0x5848002A, // 00E0 LDCONST R18 K42
0x7C400400, // 00E1 CALL R16 2
0x78420009, // 00E2 JMPF R16 #00ED
0x00401D2B, // 00E3 ADD R16 R14 K43
0x60440008, // 00E4 GETGBL R17 G8
0x5C480800, // 00E5 MOVE R18 R4
0x7C440200, // 00E6 CALL R17 1
0x60480013, // 00E7 GETGBL R18 G19
0x7C480000, // 00E8 CALL R18 0
0x984A072C, // 00E9 SETIDX R18 K3 K44
0x984A5010, // 00EA SETIDX R18 K40 R16
0x980C2212, // 00EB SETIDX R3 R17 R18
0x00100905, // 00EC ADD R4 R4 K5
0x5442002E, // 00ED LDINT R16 47
0x24400810, // 00EE GT R16 R4 R16
0x78420000, // 00EF JMPF R16 #00F1
0x70020000, // 00F0 JMP #00F2
0x7001FFE4, // 00F1 JMP #00D7
0xA8040001, // 00F2 EXBLK 1 1
0x70020002, // 00F3 JMP #00F7
0x58340029, // 00F4 LDCONST R13 K41
0xAC340200, // 00F5 CATCH R13 1 0
0xB0080000, // 00F6 RAISE 2 R0 R0
0x5412002F, // 00F7 LDINT R4 48
0x60340010, // 00F8 GETGBL R13 G16
0x8C380124, // 00F9 GETMET R14 R0 K36
0x5C401800, // 00FA MOVE R16 R12
0x7C380400, // 00FB CALL R14 2
0x7C340200, // 00FC CALL R13 1
0xA802001C, // 00FD EXBLK 0 #011B
0x5C381A00, // 00FE MOVE R14 R13
0x7C380000, // 00FF CALL R14 0
0x943C180E, // 0100 GETIDX R15 R12 R14
0x6040000F, // 0101 GETGBL R16 G15
0x5C441E00, // 0102 MOVE R17 R15
0x60480013, // 0103 GETGBL R18 G19
0x7C400400, // 0104 CALL R16 2
0x7842000D, // 0105 JMPF R16 #0114
0x8C401F16, // 0106 GETMET R16 R15 K22
0x5848002D, // 0107 LDCONST R18 K45
0x7C400400, // 0108 CALL R16 2
0x78420009, // 0109 JMPF R16 #0114
0x00401D2E, // 010A ADD R16 R14 K46
0x60440008, // 010B GETGBL R17 G8
0x5C480800, // 010C MOVE R18 R4
0x7C440200, // 010D CALL R17 1
0x60480013, // 010E GETGBL R18 G19
0x7C480000, // 010F CALL R18 0
0x984A072F, // 0110 SETIDX R18 K3 K47
0x984A5010, // 0111 SETIDX R18 K40 R16
0x980C2212, // 0112 SETIDX R3 R17 R18
0x00100905, // 0113 ADD R4 R4 K5
0x54420037, // 0114 LDINT R16 56
0x24400810, // 0115 GT R16 R4 R16
0x78420000, // 0116 JMPF R16 #0118
0x70020000, // 0117 JMP #0119
0x7001FFE4, // 0118 JMP #00FE
0xA8040001, // 0119 EXBLK 1 1
0x70020002, // 011A JMP #011E
0x58340029, // 011B LDCONST R13 K41
0xAC340200, // 011C CATCH R13 1 0
0xB0080000, // 011D RAISE 2 R0 R0
0x54120037, // 011E LDINT R4 56
0x60340010, // 011F GETGBL R13 G16
0x8C380124, // 0120 GETMET R14 R0 K36
0x5C401800, // 0121 MOVE R16 R12
0x7C380400, // 0122 CALL R14 2
0x7C340200, // 0123 CALL R13 1
0xA802001C, // 0124 EXBLK 0 #0142
0x5C381A00, // 0125 MOVE R14 R13
0x7C380000, // 0126 CALL R14 0
0x943C180E, // 0127 GETIDX R15 R12 R14
0x6040000F, // 0128 GETGBL R16 G15
0x5C441E00, // 0129 MOVE R17 R15
0x60480013, // 012A GETGBL R18 G19
0x7C400400, // 012B CALL R16 2
0x7842000D, // 012C JMPF R16 #013B
0x8C401F16, // 012D GETMET R16 R15 K22
0x58480030, // 012E LDCONST R18 K48
0x7C400400, // 012F CALL R16 2
0x78420009, // 0130 JMPF R16 #013B
0x00401D31, // 0131 ADD R16 R14 K49
0x60440008, // 0132 GETGBL R17 G8
0x5C480800, // 0133 MOVE R18 R4
0x7C440200, // 0134 CALL R17 1
0x60480013, // 0135 GETGBL R18 G19
0x7C480000, // 0136 CALL R18 0
0x984A0732, // 0137 SETIDX R18 K3 K50
0x984A5010, // 0138 SETIDX R18 K40 R16
0x980C2212, // 0139 SETIDX R3 R17 R18
0x00100905, // 013A ADD R4 R4 K5
0x5442003F, // 013B LDINT R16 64
0x24400810, // 013C GT R16 R4 R16
0x78420000, // 013D JMPF R16 #013F
0x70020000, // 013E JMP #0140
0x7001FFE4, // 013F JMP #0125
0xA8040001, // 0140 EXBLK 1 1
0x70020002, // 0141 JMP #0145
0x58340029, // 0142 LDCONST R13 K41
0xAC340200, // 0143 CATCH R13 1 0
0xB0080000, // 0144 RAISE 2 R0 R0
0x80040600, // 0145 RET 1 R3
0x8C3C1908, // 007E GETMET R15 R12 K8
0x5844001F, // 007F LDCONST R17 K31
0x7C3C0400, // 0080 CALL R15 2
0x783E0002, // 0081 JMPF R15 #0085
0x94401F0D, // 0082 GETIDX R16 R15 K13
0x2440210B, // 0083 GT R16 R16 K11
0x74420000, // 0084 JMPT R16 #0086
0x50400001, // 0085 LDBOOL R16 0 1
0x50400200, // 0086 LDBOOL R16 1 0
0x60440008, // 0087 GETGBL R17 G8
0x5C480800, // 0088 MOVE R18 R4
0x7C440200, // 0089 CALL R17 1
0x60480013, // 008A GETGBL R18 G19
0x7C480000, // 008B CALL R18 0
0x78420001, // 008C JMPF R16 #008F
0x584C0020, // 008D LDCONST R19 K32
0x70020000, // 008E JMP #0090
0x584C0021, // 008F LDCONST R19 K33
0x984A0613, // 0090 SETIDX R18 K3 R19
0x984A420A, // 0091 SETIDX R18 K33 R10
0x980C2212, // 0092 SETIDX R3 R17 R18
0x00100905, // 0093 ADD R4 R4 K5
0x00281505, // 0094 ADD R10 R10 K5
0x7001FFB3, // 0095 JMP #004A
0x6028000C, // 0096 GETGBL R10 G12
0xB82E2000, // 0097 GETNGBL R11 K16
0x8C2C1722, // 0098 GETMET R11 R11 K34
0x7C2C0200, // 0099 CALL R11 1
0x7C280200, // 009A CALL R10 1
0x582C000B, // 009B LDCONST R11 K11
0x78160000, // 009C JMPF R5 #009E
0x04281505, // 009D SUB R10 R10 K5
0x1430160A, // 009E LT R12 R11 R10
0x78320010, // 009F JMPF R12 #00B1
0x8C301308, // 00A0 GETMET R12 R9 K8
0x5C381600, // 00A1 MOVE R14 R11
0x7C300400, // 00A2 CALL R12 2
0x4C340000, // 00A3 LDNIL R13
0x1C30180D, // 00A4 EQ R12 R12 R13
0x78320008, // 00A5 JMPF R12 #00AF
0x60300008, // 00A6 GETGBL R12 G8
0x5C340800, // 00A7 MOVE R13 R4
0x7C300200, // 00A8 CALL R12 1
0x60340013, // 00A9 GETGBL R13 G19
0x7C340000, // 00AA CALL R13 0
0x98360723, // 00AB SETIDX R13 K3 K35
0x9836460B, // 00AC SETIDX R13 K35 R11
0x980C180D, // 00AD SETIDX R3 R12 R13
0x00100905, // 00AE ADD R4 R4 K5
0x002C1705, // 00AF ADD R11 R11 K5
0x7001FFEC, // 00B0 JMP #009E
0x8C300524, // 00B1 GETMET R12 R2 K36
0xB83A2000, // 00B2 GETNGBL R14 K16
0x8C381D25, // 00B3 GETMET R14 R14 K37
0x7C380200, // 00B4 CALL R14 1
0x7C300400, // 00B5 CALL R12 2
0x5412001F, // 00B6 LDINT R4 32
0x60340010, // 00B7 GETGBL R13 G16
0x8C380126, // 00B8 GETMET R14 R0 K38
0x5C401800, // 00B9 MOVE R16 R12
0x7C380400, // 00BA CALL R14 2
0x7C340200, // 00BB CALL R13 1
0xA802001C, // 00BC EXBLK 0 #00DA
0x5C381A00, // 00BD MOVE R14 R13
0x7C380000, // 00BE CALL R14 0
0x943C180E, // 00BF GETIDX R15 R12 R14
0x6040000F, // 00C0 GETGBL R16 G15
0x5C441E00, // 00C1 MOVE R17 R15
0x60480013, // 00C2 GETGBL R18 G19
0x7C400400, // 00C3 CALL R16 2
0x7842000D, // 00C4 JMPF R16 #00D3
0x8C401F16, // 00C5 GETMET R16 R15 K22
0x58480027, // 00C6 LDCONST R18 K39
0x7C400400, // 00C7 CALL R16 2
0x78420009, // 00C8 JMPF R16 #00D3
0x00401D28, // 00C9 ADD R16 R14 K40
0x60440008, // 00CA GETGBL R17 G8
0x5C480800, // 00CB MOVE R18 R4
0x7C440200, // 00CC CALL R17 1
0x60480013, // 00CD GETGBL R18 G19
0x7C480000, // 00CE CALL R18 0
0x984A0729, // 00CF SETIDX R18 K3 K41
0x984A5410, // 00D0 SETIDX R18 K42 R16
0x980C2212, // 00D1 SETIDX R3 R17 R18
0x00100905, // 00D2 ADD R4 R4 K5
0x54420027, // 00D3 LDINT R16 40
0x24400810, // 00D4 GT R16 R4 R16
0x78420000, // 00D5 JMPF R16 #00D7
0x70020000, // 00D6 JMP #00D8
0x7001FFE4, // 00D7 JMP #00BD
0xA8040001, // 00D8 EXBLK 1 1
0x70020002, // 00D9 JMP #00DD
0x5834002B, // 00DA LDCONST R13 K43
0xAC340200, // 00DB CATCH R13 1 0
0xB0080000, // 00DC RAISE 2 R0 R0
0x54120027, // 00DD LDINT R4 40
0x60340010, // 00DE GETGBL R13 G16
0x8C380126, // 00DF GETMET R14 R0 K38
0x5C401800, // 00E0 MOVE R16 R12
0x7C380400, // 00E1 CALL R14 2
0x7C340200, // 00E2 CALL R13 1
0xA802001C, // 00E3 EXBLK 0 #0101
0x5C381A00, // 00E4 MOVE R14 R13
0x7C380000, // 00E5 CALL R14 0
0x943C180E, // 00E6 GETIDX R15 R12 R14
0x6040000F, // 00E7 GETGBL R16 G15
0x5C441E00, // 00E8 MOVE R17 R15
0x60480013, // 00E9 GETGBL R18 G19
0x7C400400, // 00EA CALL R16 2
0x7842000D, // 00EB JMPF R16 #00FA
0x8C401F16, // 00EC GETMET R16 R15 K22
0x5848002C, // 00ED LDCONST R18 K44
0x7C400400, // 00EE CALL R16 2
0x78420009, // 00EF JMPF R16 #00FA
0x00401D2D, // 00F0 ADD R16 R14 K45
0x60440008, // 00F1 GETGBL R17 G8
0x5C480800, // 00F2 MOVE R18 R4
0x7C440200, // 00F3 CALL R17 1
0x60480013, // 00F4 GETGBL R18 G19
0x7C480000, // 00F5 CALL R18 0
0x984A072E, // 00F6 SETIDX R18 K3 K46
0x984A5410, // 00F7 SETIDX R18 K42 R16
0x980C2212, // 00F8 SETIDX R3 R17 R18
0x00100905, // 00F9 ADD R4 R4 K5
0x5442002E, // 00FA LDINT R16 47
0x24400810, // 00FB GT R16 R4 R16
0x78420000, // 00FC JMPF R16 #00FE
0x70020000, // 00FD JMP #00FF
0x7001FFE4, // 00FE JMP #00E4
0xA8040001, // 00FF EXBLK 1 1
0x70020002, // 0100 JMP #0104
0x5834002B, // 0101 LDCONST R13 K43
0xAC340200, // 0102 CATCH R13 1 0
0xB0080000, // 0103 RAISE 2 R0 R0
0x5412002F, // 0104 LDINT R4 48
0x60340010, // 0105 GETGBL R13 G16
0x8C380126, // 0106 GETMET R14 R0 K38
0x5C401800, // 0107 MOVE R16 R12
0x7C380400, // 0108 CALL R14 2
0x7C340200, // 0109 CALL R13 1
0xA802001C, // 010A EXBLK 0 #0128
0x5C381A00, // 010B MOVE R14 R13
0x7C380000, // 010C CALL R14 0
0x943C180E, // 010D GETIDX R15 R12 R14
0x6040000F, // 010E GETGBL R16 G15
0x5C441E00, // 010F MOVE R17 R15
0x60480013, // 0110 GETGBL R18 G19
0x7C400400, // 0111 CALL R16 2
0x7842000D, // 0112 JMPF R16 #0121
0x8C401F16, // 0113 GETMET R16 R15 K22
0x5848002F, // 0114 LDCONST R18 K47
0x7C400400, // 0115 CALL R16 2
0x78420009, // 0116 JMPF R16 #0121
0x00401D30, // 0117 ADD R16 R14 K48
0x60440008, // 0118 GETGBL R17 G8
0x5C480800, // 0119 MOVE R18 R4
0x7C440200, // 011A CALL R17 1
0x60480013, // 011B GETGBL R18 G19
0x7C480000, // 011C CALL R18 0
0x984A0731, // 011D SETIDX R18 K3 K49
0x984A5410, // 011E SETIDX R18 K42 R16
0x980C2212, // 011F SETIDX R3 R17 R18
0x00100905, // 0120 ADD R4 R4 K5
0x54420037, // 0121 LDINT R16 56
0x24400810, // 0122 GT R16 R4 R16
0x78420000, // 0123 JMPF R16 #0125
0x70020000, // 0124 JMP #0126
0x7001FFE4, // 0125 JMP #010B
0xA8040001, // 0126 EXBLK 1 1
0x70020002, // 0127 JMP #012B
0x5834002B, // 0128 LDCONST R13 K43
0xAC340200, // 0129 CATCH R13 1 0
0xB0080000, // 012A RAISE 2 R0 R0
0x54120037, // 012B LDINT R4 56
0x60340010, // 012C GETGBL R13 G16
0x8C380126, // 012D GETMET R14 R0 K38
0x5C401800, // 012E MOVE R16 R12
0x7C380400, // 012F CALL R14 2
0x7C340200, // 0130 CALL R13 1
0xA802001C, // 0131 EXBLK 0 #014F
0x5C381A00, // 0132 MOVE R14 R13
0x7C380000, // 0133 CALL R14 0
0x943C180E, // 0134 GETIDX R15 R12 R14
0x6040000F, // 0135 GETGBL R16 G15
0x5C441E00, // 0136 MOVE R17 R15
0x60480013, // 0137 GETGBL R18 G19
0x7C400400, // 0138 CALL R16 2
0x7842000D, // 0139 JMPF R16 #0148
0x8C401F16, // 013A GETMET R16 R15 K22
0x58480032, // 013B LDCONST R18 K50
0x7C400400, // 013C CALL R16 2
0x78420009, // 013D JMPF R16 #0148
0x00401D33, // 013E ADD R16 R14 K51
0x60440008, // 013F GETGBL R17 G8
0x5C480800, // 0140 MOVE R18 R4
0x7C440200, // 0141 CALL R17 1
0x60480013, // 0142 GETGBL R18 G19
0x7C480000, // 0143 CALL R18 0
0x984A0734, // 0144 SETIDX R18 K3 K52
0x984A5410, // 0145 SETIDX R18 K42 R16
0x980C2212, // 0146 SETIDX R3 R17 R18
0x00100905, // 0147 ADD R4 R4 K5
0x5442003F, // 0148 LDINT R16 64
0x24400810, // 0149 GT R16 R4 R16
0x78420000, // 014A JMPF R16 #014C
0x70020000, // 014B JMP #014D
0x7001FFE4, // 014C JMP #0132
0xA8040001, // 014D EXBLK 1 1
0x70020002, // 014E JMP #0152
0x5834002B, // 014F LDCONST R13 K43
0xAC340200, // 0150 CATCH R13 1 0
0xB0080000, // 0151 RAISE 2 R0 R0
0x80040600, // 0152 RET 1 R3
})
)
);

View File

@ -46,7 +46,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[19]) { /* constants */
( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV),
@ -59,17 +59,15 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
/* K9 */ be_nested_str_weak(U2),
/* K10 */ be_const_int(1),
/* K11 */ be_nested_str_weak(shadow_shutter_pos),
/* K12 */ be_nested_str_weak(shadow_shutter_tilt),
/* K13 */ be_nested_str_weak(shadow_shutter_direction),
/* K14 */ be_const_int(2),
/* K15 */ be_nested_str_weak(shadow_shutter_target),
/* K16 */ be_nested_str_weak(U4),
/* K17 */ be_const_int(3),
/* K18 */ be_nested_str_weak(read_attribute),
/* K12 */ be_nested_str_weak(shadow_shutter_direction),
/* K13 */ be_const_int(2),
/* K14 */ be_nested_str_weak(shadow_shutter_target),
/* K15 */ be_nested_str_weak(U4),
/* K16 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
( &(const binstruction[186]) { /* code */
( &(const binstruction[129]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2
@ -77,7 +75,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
0x88180504, // 0004 GETMBR R6 R2 K4
0x541E0101, // 0005 LDINT R7 258
0x1C1C0A07, // 0006 EQ R7 R5 R7
0x781E00A8, // 0007 JMPF R7 #00B1
0x781E006F, // 0007 JMPF R7 #0078
0x8C1C0105, // 0008 GETMET R7 R0 K5
0x7C1C0200, // 0009 CALL R7 1
0x1C1C0D06, // 000A EQ R7 R6 K6
@ -87,7 +85,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
0x542A00FE, // 000E LDINT R10 255
0x7C1C0600, // 000F CALL R7 3
0x80040E00, // 0010 RET 1 R7
0x7002009D, // 0011 JMP #00B0
0x70020064, // 0011 JMP #0077
0x541E0004, // 0012 LDINT R7 5
0x1C1C0C07, // 0013 EQ R7 R6 R7
0x781E0005, // 0014 JMPF R7 #001B
@ -96,166 +94,109 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
0x58280006, // 0017 LDCONST R10 K6
0x7C1C0600, // 0018 CALL R7 3
0x80040E00, // 0019 RET 1 R7
0x70020094, // 001A JMP #00B0
0x541E0005, // 001B LDINT R7 6
0x7002005B, // 001A JMP #0077
0x541E0006, // 001B LDINT R7 7
0x1C1C0C07, // 001C EQ R7 R6 R7
0x781E0005, // 001D JMPF R7 #0024
0x781E0006, // 001D JMPF R7 #0025
0x8C1C0907, // 001E GETMET R7 R4 K7
0x88240909, // 001F GETMBR R9 R4 K9
0x58280006, // 0020 LDCONST R10 K6
0x7C1C0600, // 0021 CALL R7 3
0x80040E00, // 0022 RET 1 R7
0x7002008B, // 0023 JMP #00B0
0x541E0006, // 0024 LDINT R7 7
0x1C1C0C07, // 0025 EQ R7 R6 R7
0x781E0008, // 0026 JMPF R7 #0030
0x8C1C0907, // 0027 GETMET R7 R4 K7
0x88240908, // 0028 GETMBR R9 R4 K8
0x542A0007, // 0029 LDINT R10 8
0x002A140A, // 002A ADD R10 K10 R10
0x542E000F, // 002B LDINT R11 16
0x0028140B, // 002C ADD R10 R10 R11
0x7C1C0600, // 002D CALL R7 3
0x80040E00, // 002E RET 1 R7
0x7002007F, // 002F JMP #00B0
0x541E000C, // 0030 LDINT R7 13
0x1C1C0C07, // 0031 EQ R7 R6 R7
0x781E0005, // 0032 JMPF R7 #0039
0x8C1C0907, // 0033 GETMET R7 R4 K7
0x88240908, // 0034 GETMBR R9 R4 K8
0x542A00FE, // 0035 LDINT R10 255
0x7C1C0600, // 0036 CALL R7 3
0x80040E00, // 0037 RET 1 R7
0x70020076, // 0038 JMP #00B0
0x541E0007, // 0039 LDINT R7 8
0x1C1C0C07, // 003A EQ R7 R6 R7
0x781E0007, // 003B JMPF R7 #0044
0x8C1C0907, // 003C GETMET R7 R4 K7
0x88240909, // 003D GETMBR R9 R4 K9
0x542A0063, // 003E LDINT R10 100
0x882C010B, // 003F GETMBR R11 R0 K11
0x0428140B, // 0040 SUB R10 R10 R11
0x7C1C0600, // 0041 CALL R7 3
0x80040E00, // 0042 RET 1 R7
0x7002006B, // 0043 JMP #00B0
0x541E000D, // 0044 LDINT R7 14
0x1C1C0C07, // 0045 EQ R7 R6 R7
0x781E0009, // 0046 JMPF R7 #0051
0x8C1C0907, // 0047 GETMET R7 R4 K7
0x88240909, // 0048 GETMBR R9 R4 K9
0x542A0063, // 0049 LDINT R10 100
0x882C010B, // 004A GETMBR R11 R0 K11
0x0428140B, // 004B SUB R10 R10 R11
0x542E0063, // 004C LDINT R11 100
0x0828140B, // 004D MUL R10 R10 R11
0x7C1C0600, // 004E CALL R7 3
0x80040E00, // 004F RET 1 R7
0x7002005E, // 0050 JMP #00B0
0x541E0008, // 0051 LDINT R7 9
0x1C1C0C07, // 0052 EQ R7 R6 R7
0x781E0007, // 0053 JMPF R7 #005C
0x8C1C0907, // 0054 GETMET R7 R4 K7
0x88240909, // 0055 GETMBR R9 R4 K9
0x542A0063, // 0056 LDINT R10 100
0x882C010C, // 0057 GETMBR R11 R0 K12
0x0428140B, // 0058 SUB R10 R10 R11
0x88240908, // 001F GETMBR R9 R4 K8
0x542A0007, // 0020 LDINT R10 8
0x002A140A, // 0021 ADD R10 K10 R10
0x7C1C0600, // 0022 CALL R7 3
0x80040E00, // 0023 RET 1 R7
0x70020051, // 0024 JMP #0077
0x541E000C, // 0025 LDINT R7 13
0x1C1C0C07, // 0026 EQ R7 R6 R7
0x781E0005, // 0027 JMPF R7 #002E
0x8C1C0907, // 0028 GETMET R7 R4 K7
0x88240908, // 0029 GETMBR R9 R4 K8
0x542A00FE, // 002A LDINT R10 255
0x7C1C0600, // 002B CALL R7 3
0x80040E00, // 002C RET 1 R7
0x70020048, // 002D JMP #0077
0x541E000D, // 002E LDINT R7 14
0x1C1C0C07, // 002F EQ R7 R6 R7
0x781E0009, // 0030 JMPF R7 #003B
0x8C1C0907, // 0031 GETMET R7 R4 K7
0x88240909, // 0032 GETMBR R9 R4 K9
0x542A0063, // 0033 LDINT R10 100
0x882C010B, // 0034 GETMBR R11 R0 K11
0x0428140B, // 0035 SUB R10 R10 R11
0x542E0063, // 0036 LDINT R11 100
0x0828140B, // 0037 MUL R10 R10 R11
0x7C1C0600, // 0038 CALL R7 3
0x80040E00, // 0039 RET 1 R7
0x7002003B, // 003A JMP #0077
0x541E0009, // 003B LDINT R7 10
0x1C1C0C07, // 003C EQ R7 R6 R7
0x781E0010, // 003D JMPF R7 #004F
0x881C010C, // 003E GETMBR R7 R0 K12
0x1C1C0F06, // 003F EQ R7 R7 K6
0x781E0001, // 0040 JMPF R7 #0043
0x581C0006, // 0041 LDCONST R7 K6
0x70020005, // 0042 JMP #0049
0x881C010C, // 0043 GETMBR R7 R0 K12
0x241C0F06, // 0044 GT R7 R7 K6
0x781E0001, // 0045 JMPF R7 #0048
0x581C000A, // 0046 LDCONST R7 K10
0x70020000, // 0047 JMP #0049
0x581C000D, // 0048 LDCONST R7 K13
0x8C200907, // 0049 GETMET R8 R4 K7
0x88280908, // 004A GETMBR R10 R4 K8
0x5C2C0E00, // 004B MOVE R11 R7
0x7C200600, // 004C CALL R8 3
0x80041000, // 004D RET 1 R8
0x70020027, // 004E JMP #0077
0x541E000A, // 004F LDINT R7 11
0x1C1C0C07, // 0050 EQ R7 R6 R7
0x781E0009, // 0051 JMPF R7 #005C
0x8C1C0907, // 0052 GETMET R7 R4 K7
0x88240909, // 0053 GETMBR R9 R4 K9
0x542A0063, // 0054 LDINT R10 100
0x882C010E, // 0055 GETMBR R11 R0 K14
0x0428140B, // 0056 SUB R10 R10 R11
0x542E0063, // 0057 LDINT R11 100
0x0828140B, // 0058 MUL R10 R10 R11
0x7C1C0600, // 0059 CALL R7 3
0x80040E00, // 005A RET 1 R7
0x70020053, // 005B JMP #00B0
0x541E000E, // 005C LDINT R7 15
0x7002001A, // 005B JMP #0077
0x541E0016, // 005C LDINT R7 23
0x1C1C0C07, // 005D EQ R7 R6 R7
0x781E0009, // 005E JMPF R7 #0069
0x781E0005, // 005E JMPF R7 #0065
0x8C1C0907, // 005F GETMET R7 R4 K7
0x88240909, // 0060 GETMBR R9 R4 K9
0x542A0063, // 0061 LDINT R10 100
0x882C010C, // 0062 GETMBR R11 R0 K12
0x0428140B, // 0063 SUB R10 R10 R11
0x542E0063, // 0064 LDINT R11 100
0x0828140B, // 0065 MUL R10 R10 R11
0x7C1C0600, // 0066 CALL R7 3
0x80040E00, // 0067 RET 1 R7
0x70020046, // 0068 JMP #00B0
0x541E0009, // 0069 LDINT R7 10
0x1C1C0C07, // 006A EQ R7 R6 R7
0x781E0010, // 006B JMPF R7 #007D
0x881C010D, // 006C GETMBR R7 R0 K13
0x1C1C0F06, // 006D EQ R7 R7 K6
0x781E0001, // 006E JMPF R7 #0071
0x581C0006, // 006F LDCONST R7 K6
0x70020005, // 0070 JMP #0077
0x881C010D, // 0071 GETMBR R7 R0 K13
0x241C0F06, // 0072 GT R7 R7 K6
0x781E0001, // 0073 JMPF R7 #0076
0x581C000A, // 0074 LDCONST R7 K10
0x70020000, // 0075 JMP #0077
0x581C000E, // 0076 LDCONST R7 K14
0x8C200907, // 0077 GETMET R8 R4 K7
0x88280908, // 0078 GETMBR R10 R4 K8
0x5C2C0E00, // 0079 MOVE R11 R7
0x7C200600, // 007A CALL R8 3
0x80041000, // 007B RET 1 R8
0x70020032, // 007C JMP #00B0
0x541E000A, // 007D LDINT R7 11
0x1C1C0C07, // 007E EQ R7 R6 R7
0x781E0009, // 007F JMPF R7 #008A
0x8C1C0907, // 0080 GETMET R7 R4 K7
0x88240909, // 0081 GETMBR R9 R4 K9
0x542A0063, // 0082 LDINT R10 100
0x882C010F, // 0083 GETMBR R11 R0 K15
0x0428140B, // 0084 SUB R10 R10 R11
0x542E0063, // 0085 LDINT R11 100
0x0828140B, // 0086 MUL R10 R10 R11
0x7C1C0600, // 0087 CALL R7 3
0x80040E00, // 0088 RET 1 R7
0x70020025, // 0089 JMP #00B0
0x541E000B, // 008A LDINT R7 12
0x1C1C0C07, // 008B EQ R7 R6 R7
0x781E0005, // 008C JMPF R7 #0093
0x8C1C0907, // 008D GETMET R7 R4 K7
0x88240908, // 008E GETMBR R9 R4 K8
0x58280006, // 008F LDCONST R10 K6
0x7C1C0600, // 0090 CALL R7 3
0x80040E00, // 0091 RET 1 R7
0x7002001C, // 0092 JMP #00B0
0x541E0016, // 0093 LDINT R7 23
0x1C1C0C07, // 0094 EQ R7 R6 R7
0x781E0005, // 0095 JMPF R7 #009C
0x8C1C0907, // 0096 GETMET R7 R4 K7
0x88240908, // 0097 GETMBR R9 R4 K8
0x58280006, // 0098 LDCONST R10 K6
0x7C1C0600, // 0099 CALL R7 3
0x80040E00, // 009A RET 1 R7
0x70020013, // 009B JMP #00B0
0x541EFFFB, // 009C LDINT R7 65532
0x1C1C0C07, // 009D EQ R7 R6 R7
0x781E0008, // 009E JMPF R7 #00A8
0x8C1C0907, // 009F GETMET R7 R4 K7
0x88240910, // 00A0 GETMBR R9 R4 K16
0x542A0003, // 00A1 LDINT R10 4
0x002A220A, // 00A2 ADD R10 K17 R10
0x542E000F, // 00A3 LDINT R11 16
0x0028140B, // 00A4 ADD R10 R10 R11
0x7C1C0600, // 00A5 CALL R7 3
0x80040E00, // 00A6 RET 1 R7
0x70020007, // 00A7 JMP #00B0
0x541EFFFC, // 00A8 LDINT R7 65533
0x1C1C0C07, // 00A9 EQ R7 R6 R7
0x781E0004, // 00AA JMPF R7 #00B0
0x8C1C0907, // 00AB GETMET R7 R4 K7
0x88240910, // 00AC GETMBR R9 R4 K16
0x542A0004, // 00AD LDINT R10 5
0x7C1C0600, // 00AE CALL R7 3
0x80040E00, // 00AF RET 1 R7
0x70020007, // 00B0 JMP #00B9
0x601C0003, // 00B1 GETGBL R7 G3
0x5C200000, // 00B2 MOVE R8 R0
0x7C1C0200, // 00B3 CALL R7 1
0x8C1C0F12, // 00B4 GETMET R7 R7 K18
0x5C240200, // 00B5 MOVE R9 R1
0x5C280400, // 00B6 MOVE R10 R2
0x7C1C0600, // 00B7 CALL R7 3
0x80040E00, // 00B8 RET 1 R7
0x80000000, // 00B9 RET 0
0x88240908, // 0060 GETMBR R9 R4 K8
0x58280006, // 0061 LDCONST R10 K6
0x7C1C0600, // 0062 CALL R7 3
0x80040E00, // 0063 RET 1 R7
0x70020011, // 0064 JMP #0077
0x541EFFFB, // 0065 LDINT R7 65532
0x1C1C0C07, // 0066 EQ R7 R6 R7
0x781E0006, // 0067 JMPF R7 #006F
0x8C1C0907, // 0068 GETMET R7 R4 K7
0x8824090F, // 0069 GETMBR R9 R4 K15
0x542A0003, // 006A LDINT R10 4
0x002A140A, // 006B ADD R10 K10 R10
0x7C1C0600, // 006C CALL R7 3
0x80040E00, // 006D RET 1 R7
0x70020007, // 006E JMP #0077
0x541EFFFC, // 006F LDINT R7 65533
0x1C1C0C07, // 0070 EQ R7 R6 R7
0x781E0004, // 0071 JMPF R7 #0077
0x8C1C0907, // 0072 GETMET R7 R4 K7
0x8824090F, // 0073 GETMBR R9 R4 K15
0x542A0004, // 0074 LDINT R10 5
0x7C1C0600, // 0075 CALL R7 3
0x80040E00, // 0076 RET 1 R7
0x70020007, // 0077 JMP #0080
0x601C0003, // 0078 GETGBL R7 G3
0x5C200000, // 0079 MOVE R8 R0
0x7C1C0200, // 007A CALL R7 1
0x8C1C0F10, // 007B GETMET R7 R7 K16
0x5C240200, // 007C MOVE R9 R1
0x5C280400, // 007D MOVE R10 R2
0x7C1C0600, // 007E CALL R7 3
0x80040E00, // 007F RET 1 R7
0x80000000, // 0080 RET 0
})
)
);
@ -372,7 +313,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[24]) { /* constants */
( &(const bvalue[23]) { /* constants */
/* K0 */ be_nested_str_weak(light),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV),
@ -395,12 +336,11 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
/* K19 */ be_nested_str_weak(ShutterStopPosition),
/* K20 */ be_nested_str_weak(_X20),
/* K21 */ be_nested_str_weak(pos_X25_X3A),
/* K22 */ be_nested_str_weak(tilt_X25_X3A),
/* K23 */ be_nested_str_weak(invoke_request),
/* K22 */ be_nested_str_weak(invoke_request),
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
( &(const binstruction[131]) { /* code */
( &(const binstruction[112]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0xB8160200, // 0001 GETNGBL R5 K1
0x88140B02, // 0002 GETMBR R5 R5 K2
@ -408,7 +348,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0x881C0704, // 0004 GETMBR R7 R3 K4
0x54220101, // 0005 LDINT R8 258
0x1C200C08, // 0006 EQ R8 R6 R8
0x78220070, // 0007 JMPF R8 #0079
0x7822005D, // 0007 JMPF R8 #0066
0x8C200105, // 0008 GETMET R8 R0 K5
0x7C200200, // 0009 CALL R8 1
0x1C200F06, // 000A EQ R8 R7 K6
@ -426,7 +366,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0016 CALL R8 1
0x50200200, // 0017 LDBOOL R8 1 0
0x80041000, // 0018 RET 1 R8
0x7002005D, // 0019 JMP #0078
0x7002004A, // 0019 JMP #0065
0x1C200F0B, // 001A EQ R8 R7 K11
0x7822000D, // 001B JMPF R8 #002A
0xB8220E00, // 001C GETNGBL R8 K7
@ -442,7 +382,7 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0026 CALL R8 1
0x50200200, // 0027 LDBOOL R8 1 0
0x80041000, // 0028 RET 1 R8
0x7002004D, // 0029 JMP #0078
0x7002003A, // 0029 JMP #0065
0x1C200F0E, // 002A EQ R8 R7 K14
0x7822000D, // 002B JMPF R8 #003A
0xB8220E00, // 002C GETNGBL R8 K7
@ -458,10 +398,10 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0x7C200200, // 0036 CALL R8 1
0x50200200, // 0037 LDBOOL R8 1 0
0x80041000, // 0038 RET 1 R8
0x7002003D, // 0039 JMP #0078
0x7002002A, // 0039 JMP #0065
0x54220004, // 003A LDINT R8 5
0x1C200E08, // 003B EQ R8 R7 R8
0x78220028, // 003C JMPF R8 #0066
0x78220027, // 003C JMPF R8 #0065
0xB8220E00, // 003D GETNGBL R8 K7
0x8C201110, // 003E GETMET R8 R8 K16
0x60280008, // 003F GETGBL R10 G8
@ -502,36 +442,17 @@ be_local_closure(Matter_Plugin_Shutter_invoke_request, /* name */
0x7C240200, // 0062 CALL R9 1
0x50240200, // 0063 LDBOOL R9 1 0
0x80041200, // 0064 RET 1 R9
0x70020011, // 0065 JMP #0078
0x54220007, // 0066 LDINT R8 8
0x1C200E08, // 0067 EQ R8 R7 R8
0x7822000E, // 0068 JMPF R8 #0078
0x8C200512, // 0069 GETMET R8 R2 K18
0x58280006, // 006A LDCONST R10 K6
0x7C200400, // 006B CALL R8 2
0x4C240000, // 006C LDNIL R9
0x20241009, // 006D NE R9 R8 R9
0x78260006, // 006E JMPF R9 #0076
0x54260009, // 006F LDINT R9 10
0x0C201009, // 0070 DIV R8 R8 R9
0x60240008, // 0071 GETGBL R9 G8
0x5C281000, // 0072 MOVE R10 R8
0x7C240200, // 0073 CALL R9 1
0x00262C09, // 0074 ADD R9 K22 R9
0x900E2009, // 0075 SETMBR R3 K16 R9
0x50240200, // 0076 LDBOOL R9 1 0
0x80041200, // 0077 RET 1 R9
0x70020008, // 0078 JMP #0082
0x60200003, // 0079 GETGBL R8 G3
0x5C240000, // 007A MOVE R9 R0
0x7C200200, // 007B CALL R8 1
0x8C201117, // 007C GETMET R8 R8 K23
0x5C280200, // 007D MOVE R10 R1
0x5C2C0400, // 007E MOVE R11 R2
0x5C300600, // 007F MOVE R12 R3
0x7C200800, // 0080 CALL R8 4
0x80041000, // 0081 RET 1 R8
0x80000000, // 0082 RET 0
0x70020008, // 0065 JMP #006F
0x60200003, // 0066 GETGBL R8 G3
0x5C240000, // 0067 MOVE R9 R0
0x7C200200, // 0068 CALL R8 1
0x8C201116, // 0069 GETMET R8 R8 K22
0x5C280200, // 006A MOVE R10 R1
0x5C2C0400, // 006B MOVE R11 R2
0x5C300600, // 006C MOVE R12 R3
0x7C200800, // 006D CALL R8 4
0x80041000, // 006E RET 1 R8
0x80000000, // 006F RET 0
})
)
);
@ -660,20 +581,15 @@ be_local_class(Matter_Plugin_Shutter,
be_const_map( * be_nested_map(1,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_int(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(15,
be_const_list( * be_nested_list(10,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(0),
be_const_int(5),
be_const_int(6),
be_const_int(7),
be_const_int(8),
be_const_int(9),
be_const_int(10),
be_const_int(11),
be_const_int(12),
be_const_int(13),
be_const_int(14),
be_const_int(15),
be_const_int(23),
be_const_int(65532),
be_const_int(65533),

View File

@ -0,0 +1,219 @@
/* Solidification of Matter_Plugin_ShutterTilt.h */
/********************************************************************\
* Generated code, don't edit *
\********************************************************************/
#include "be_constobj.h"
extern const bclass be_class_Matter_Plugin_ShutterTilt;
/********************************************************************
** Solidified function: invoke_request
********************************************************************/
be_local_closure(Matter_Plugin_ShutterTilt_invoke_request, /* name */
be_nested_proto(
13, /* nstack */
4, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[11]) { /* 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(log),
/* K9 */ be_nested_str_weak(tilt_X25_X3A),
/* K10 */ be_nested_str_weak(invoke_request),
}),
be_str_weak(invoke_request),
&be_const_str_solidified,
( &(const binstruction[37]) { /* 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
0x54220101, // 0005 LDINT R8 258
0x1C200C08, // 0006 EQ R8 R6 R8
0x78220013, // 0007 JMPF R8 #001C
0x8C200105, // 0008 GETMET R8 R0 K5
0x7C200200, // 0009 CALL R8 1
0x54220007, // 000A LDINT R8 8
0x1C200E08, // 000B EQ R8 R7 R8
0x7822000E, // 000C JMPF R8 #001C
0x8C200506, // 000D GETMET R8 R2 K6
0x58280007, // 000E LDCONST R10 K7
0x7C200400, // 000F CALL R8 2
0x4C240000, // 0010 LDNIL R9
0x20241009, // 0011 NE R9 R8 R9
0x78260006, // 0012 JMPF R9 #001A
0x54260009, // 0013 LDINT R9 10
0x0C201009, // 0014 DIV R8 R8 R9
0x60240008, // 0015 GETGBL R9 G8
0x5C281000, // 0016 MOVE R10 R8
0x7C240200, // 0017 CALL R9 1
0x00261209, // 0018 ADD R9 K9 R9
0x900E1009, // 0019 SETMBR R3 K8 R9
0x50240200, // 001A LDBOOL R9 1 0
0x80041200, // 001B RET 1 R9
0x60200003, // 001C GETGBL R8 G3
0x5C240000, // 001D MOVE R9 R0
0x7C200200, // 001E CALL R8 1
0x8C20110A, // 001F GETMET R8 R8 K10
0x5C280200, // 0020 MOVE R10 R1
0x5C2C0400, // 0021 MOVE R11 R2
0x5C300600, // 0022 MOVE R12 R3
0x7C200800, // 0023 CALL R8 4
0x80041000, // 0024 RET 1 R8
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified function: read_attribute
********************************************************************/
be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */
be_nested_proto(
12, /* nstack */
3, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(TLV),
/* K3 */ be_nested_str_weak(cluster),
/* K4 */ be_nested_str_weak(attribute),
/* K5 */ be_nested_str_weak(update_shadow_lazy),
/* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(U1),
/* K8 */ be_const_int(1),
/* K9 */ be_nested_str_weak(U2),
/* K10 */ be_nested_str_weak(shadow_shutter_tilt),
/* K11 */ be_const_int(0),
/* K12 */ be_nested_str_weak(U4),
/* K13 */ be_const_int(3),
/* K14 */ be_nested_str_weak(read_attribute),
}),
be_str_weak(read_attribute),
&be_const_str_solidified,
( &(const binstruction[63]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0
0xB8120200, // 0001 GETNGBL R4 K1
0x88100902, // 0002 GETMBR R4 R4 K2
0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4
0x541E0101, // 0005 LDINT R7 258
0x1C1C0A07, // 0006 EQ R7 R5 R7
0x781E002E, // 0007 JMPF R7 #0037
0x8C1C0105, // 0008 GETMET R7 R0 K5
0x7C1C0200, // 0009 CALL R7 1
0x541E0006, // 000A LDINT R7 7
0x1C1C0C07, // 000B EQ R7 R6 R7
0x781E0008, // 000C JMPF R7 #0016
0x8C1C0906, // 000D GETMET R7 R4 K6
0x88240907, // 000E GETMBR R9 R4 K7
0x542A0007, // 000F LDINT R10 8
0x002A100A, // 0010 ADD R10 K8 R10
0x542E000F, // 0011 LDINT R11 16
0x0028140B, // 0012 ADD R10 R10 R11
0x7C1C0600, // 0013 CALL R7 3
0x80040E00, // 0014 RET 1 R7
0x70020020, // 0015 JMP #0037
0x541E000E, // 0016 LDINT R7 15
0x1C1C0C07, // 0017 EQ R7 R6 R7
0x781E0009, // 0018 JMPF R7 #0023
0x8C1C0906, // 0019 GETMET R7 R4 K6
0x88240909, // 001A GETMBR R9 R4 K9
0x542A0063, // 001B LDINT R10 100
0x882C010A, // 001C GETMBR R11 R0 K10
0x0428140B, // 001D SUB R10 R10 R11
0x542E0063, // 001E LDINT R11 100
0x0828140B, // 001F MUL R10 R10 R11
0x7C1C0600, // 0020 CALL R7 3
0x80040E00, // 0021 RET 1 R7
0x70020013, // 0022 JMP #0037
0x541E000B, // 0023 LDINT R7 12
0x1C1C0C07, // 0024 EQ R7 R6 R7
0x781E0005, // 0025 JMPF R7 #002C
0x8C1C0906, // 0026 GETMET R7 R4 K6
0x88240907, // 0027 GETMBR R9 R4 K7
0x5828000B, // 0028 LDCONST R10 K11
0x7C1C0600, // 0029 CALL R7 3
0x80040E00, // 002A RET 1 R7
0x7002000A, // 002B JMP #0037
0x541EFFFB, // 002C LDINT R7 65532
0x1C1C0C07, // 002D EQ R7 R6 R7
0x781E0007, // 002E JMPF R7 #0037
0x8C1C0906, // 002F GETMET R7 R4 K6
0x8824090C, // 0030 GETMBR R9 R4 K12
0x542A0003, // 0031 LDINT R10 4
0x002A1A0A, // 0032 ADD R10 K13 R10
0x542E000F, // 0033 LDINT R11 16
0x0028140B, // 0034 ADD R10 R10 R11
0x7C1C0600, // 0035 CALL R7 3
0x80040E00, // 0036 RET 1 R7
0x601C0003, // 0037 GETGBL R7 G3
0x5C200000, // 0038 MOVE R8 R0
0x7C1C0200, // 0039 CALL R7 1
0x8C1C0F0E, // 003A GETMET R7 R7 K14
0x5C240200, // 003B MOVE R9 R1
0x5C280400, // 003C MOVE R10 R2
0x7C1C0600, // 003D CALL R7 3
0x80040E00, // 003E RET 1 R7
})
)
);
/*******************************************************************/
/********************************************************************
** Solidified class: Matter_Plugin_ShutterTilt
********************************************************************/
extern const bclass be_class_Matter_Plugin_Shutter;
be_local_class(Matter_Plugin_ShutterTilt,
0,
&be_class_Matter_Plugin_Shutter,
be_nested_map(5,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(TYPE, 1), be_nested_str_weak(shutter_X2Btilt) },
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Shutter_X20_X2B_X20Tilt) },
{ be_const_key_weak(invoke_request, 3), be_const_closure(Matter_Plugin_ShutterTilt_invoke_request_closure) },
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_ShutterTilt_read_attribute_closure) },
{ be_const_key_weak(CLUSTERS, 0), 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(258, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
be_const_list( * be_nested_list(4,
( (struct bvalue*) &(const bvalue[]) {
be_const_int(7),
be_const_int(12),
be_const_int(15),
be_const_int(65532),
})) ) } )) },
})) ) } )) },
})),
be_str_weak(Matter_Plugin_ShutterTilt)
);
/*******************************************************************/
void be_load_Matter_Plugin_ShutterTilt_class(bvm *vm) {
be_pushntvclass(vm, &be_class_Matter_Plugin_ShutterTilt);
be_setglobal(vm, "Matter_Plugin_ShutterTilt");
be_pop(vm, 1);
}
/********************************************************************/
/* End of solidification */

View File

@ -1792,7 +1792,7 @@ be_local_class(Matter_UI,
be_nested_map(17,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(show_plugins_configuration, -1), be_const_closure(Matter_UI_show_plugins_configuration_closure) },
{ be_const_key_weak(_CLASSES_TYPES, 2), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity) },
{ be_const_key_weak(_CLASSES_TYPES, 2), be_nested_str_weak(_X7Crelay_X7Clight0_X7Clight1_X7Clight2_X7Clight3_X7Cshutter_X7Cshutter_X2Btilt_X7Ctemperature_X7Cpressure_X7Cilluminance_X7Chumidity) },
{ be_const_key_weak(show_fabric_info, 7), be_const_closure(Matter_UI_show_fabric_info_closure) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_UI_init_closure) },
{ be_const_key_weak(web_add_handler, -1), be_const_closure(Matter_UI_web_add_handler_closure) },

View File

@ -214,9 +214,9 @@ extern "C" {
extern const be_ctypes_structure_t be_zigbee_zcl_frame_struct = {
sizeof(ZCLFrame), /* size in bytes */
12, /* number of elements */
13, /* number of elements */
nullptr,
(const be_ctypes_structure_item_t[12]) {
(const be_ctypes_structure_item_t[13]) {
{ "cluster", offsetof(ZCLFrame, cluster), 0, 0, ctypes_u16, 0 },
{ "cluster_specific", offsetof(ZCLFrame, clusterSpecific), 0, 0, ctypes_u8, 0 },
{ "cmd", offsetof(ZCLFrame, cmd), 0, 0, ctypes_u8, 0 },
@ -227,6 +227,7 @@ extern "C" {
{ "need_response", offsetof(ZCLFrame, needResponse), 0, 0, ctypes_u8, 0 },
{ "payload_ptr", offsetof(ZCLFrame, payload), 0, 0, ctypes_ptr32, 0 },
{ "shortaddr", offsetof(ZCLFrame, shortaddr), 0, 0, ctypes_u16, 0 },
{ "srcendpoint", offsetof(ZCLFrame, srcendpoint), 0, 0, ctypes_u8, 0 },
{ "transactseq", offsetof(ZCLFrame, transactseq), 0, 0, ctypes_u8, 0 },
{ "transactseq_set", offsetof(ZCLFrame, transacSet), 0, 0, ctypes_u8, 0 },
}};