mirror of https://github.com/arendst/Tasmota.git
Matter aggregator relocated to endpoint 1 for Google compatibility, may break existing associations (#20654)
This commit is contained in:
parent
92b8bb3c9b
commit
110c88e8e1
|
@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file.
|
|||
- Berry `introspect.contains` and `bytes.addfloat` (#20635)
|
||||
|
||||
### Breaking Changed
|
||||
- Matter aggregator relocated to endpoint 1 for Google compatibility, may break existing associations
|
||||
|
||||
### Changed
|
||||
- Library OneWire-Stickbreaker by TasmotaOneWire supporting Shelly Plus Add-On (#20580)
|
||||
|
|
|
@ -285,7 +285,8 @@ module matter (scope: global, strings: weak) {
|
|||
_STYLESHEET, comptr(MATTER_STYLESHEET)
|
||||
_ADD_ENDPOINT_JS, comptr(MATTER_ADD_ENDPOINT_HINTS_JS)
|
||||
MATTER_OPTION, int(151) // SetOption151 enables Matter
|
||||
AGGREGATOR_ENDPOINT, int(0xFE) // for Alexa we need only 8 bits endpoints
|
||||
AGGREGATOR_ENDPOINT, int(0x0001) // some controllers require aggregator to be endpoint 1
|
||||
START_ENDPOINT, int(0x0002) // endpoint where to start devices
|
||||
seconds_to_dhm, ctype_func(matter_seconds_to_dhm)
|
||||
|
||||
Verhoeff, class(be_class_Matter_Verhoeff)
|
||||
|
|
|
@ -43,6 +43,7 @@ class Matter_Fabric : Matter_Expirable
|
|||
var _store # reference back to session store
|
||||
# timestamp
|
||||
var created
|
||||
var deleted # timestamp when the deletion of fabric was requested, and deferred
|
||||
# fabric-index
|
||||
var fabric_index # index number for fabrics, starts with `1`
|
||||
var fabric_parent # index of the parent fabric, i.e. the fabric that triggered the provisioning (if nested)
|
||||
|
@ -76,6 +77,7 @@ class Matter_Fabric : Matter_Expirable
|
|||
self._sessions = matter.Expirable_list()
|
||||
self.fabric_label = ""
|
||||
self.created = tasmota.rtc_utc()
|
||||
# self.deleted = nil # no need to actually set to nil
|
||||
# init group counters
|
||||
self._counter_group_data_snd_impl = matter.Counter()
|
||||
self._counter_group_ctrl_snd_impl = matter.Counter()
|
||||
|
@ -276,6 +278,16 @@ class Matter_Fabric : Matter_Expirable
|
|||
return session
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Mark for deleteion in the near future
|
||||
#
|
||||
def mark_for_deletion()
|
||||
self.deleted = tasmota.rtc_utc()
|
||||
end
|
||||
def is_marked_for_deletion()
|
||||
return self.deleted != nil
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Fabric::tojson()
|
||||
#
|
||||
|
|
|
@ -38,7 +38,6 @@ class Matter_Plugin
|
|||
# Configuration of the plugin: clusters and type
|
||||
static var CLUSTERS = {
|
||||
0x001D: [0,1,2,3,0xFFFC,0xFFFD], # Descriptor Cluster 9.5 p.453
|
||||
0x0039: [0x11], # Bridged Device Basic Information 9.13 p.485
|
||||
}
|
||||
# Accepted Update commands for virtual devices
|
||||
static var UPDATE_COMMANDS = []
|
||||
|
@ -266,14 +265,6 @@ class Matter_Plugin
|
|||
return tlv_solo.set(TLV.U4, 1) # "Initial Release"
|
||||
end
|
||||
|
||||
# ====================================================================================================
|
||||
elif cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
|
||||
|
||||
if attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||
return tlv_solo.set(TLV.BOOL, 1) # by default we are reachable
|
||||
else
|
||||
return super(self).read_attribute(session, ctx, tlv_solo) # rest is handled by 0x0028
|
||||
end
|
||||
else
|
||||
return nil
|
||||
end
|
||||
|
|
|
@ -26,9 +26,10 @@ import matter
|
|||
class Matter_Plugin_Aggregator : Matter_Plugin
|
||||
static var TYPE = "aggregator" # name of the plug-in in json
|
||||
static var DISPLAY_NAME = "Aggregator" # display name of the plug-in
|
||||
# static var CLUSTERS = {
|
||||
# # 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
# }
|
||||
static var CLUSTERS = matter.consolidate_clusters(_class, {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16
|
||||
})
|
||||
static var TYPES = { 0x000E: 1 } # Aggregator
|
||||
|
||||
#############################################################
|
||||
|
@ -39,14 +40,30 @@ class Matter_Plugin_Aggregator : Matter_Plugin
|
|||
var cluster = ctx.cluster
|
||||
var attribute = ctx.attribute
|
||||
|
||||
if cluster == 0x001D # ========== Descriptor Cluster 9.5 p.453 ==========
|
||||
# ====================================================================================================
|
||||
if cluster == 0x0003 # ========== Identify 1.2 p.16 ==========
|
||||
if attribute == 0x0000 # ---------- IdentifyTime / u2 ----------
|
||||
return tlv_solo.set(TLV.U2, 0) # no identification in progress
|
||||
elif attribute == 0x0001 # ---------- IdentifyType / enum8 ----------
|
||||
return tlv_solo.set(TLV.U1, 0) # IdentifyType = 0x00 None
|
||||
elif attribute == 0xFFFC # ---------- FeatureMap / map32 ----------
|
||||
return tlv_solo.set(TLV.U4, 0) # no features
|
||||
elif attribute == 0xFFFD # ---------- ClusterRevision / u2 ----------
|
||||
return tlv_solo.set(TLV.U4, 4) # "new data model format and notation"
|
||||
end
|
||||
|
||||
elif cluster == 0x001D # ========== Descriptor Cluster 9.5 p.453 ==========
|
||||
if attribute == 0x0002 # ---------- ClientList / list[cluster-id] ----------
|
||||
var pl = TLV.Matter_TLV_array()
|
||||
# from connectedhome reference implementation
|
||||
pl.add_TLV(nil, TLV.U2, 0x001E) # Binding
|
||||
return pl
|
||||
# overwrite PartsList
|
||||
if attribute == 0x0003 # ---------- PartsList / list[endpoint-no]----------
|
||||
elif attribute == 0x0003 # ---------- PartsList / list[endpoint-no]----------
|
||||
var pl = TLV.Matter_TLV_array()
|
||||
var eps = self.device.get_active_endpoints(true)
|
||||
for ep: eps
|
||||
if ep < matter.AGGREGATOR_ENDPOINT
|
||||
if ep != matter.AGGREGATOR_ENDPOINT
|
||||
pl.add_TLV(nil, TLV.U2, ep) # add each endpoint
|
||||
end
|
||||
end
|
||||
|
@ -62,6 +79,39 @@ class Matter_Plugin_Aggregator : Matter_Plugin
|
|||
# no match found, return that the attribute is unsupported
|
||||
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 == 0x0003 # ========== Identify 1.2 p.16 ==========
|
||||
|
||||
if command == 0x0000 # ---------- Identify ----------
|
||||
# ignore
|
||||
return true
|
||||
elif command == 0x0001 # ---------- IdentifyQuery ----------
|
||||
# create IdentifyQueryResponse
|
||||
# ID=1
|
||||
# 0=Certificate (octstr)
|
||||
var iqr = TLV.Matter_TLV_struct()
|
||||
iqr.add_TLV(0, TLV.U2, 0) # Timeout
|
||||
ctx.command = 0x00 # IdentifyQueryResponse
|
||||
return iqr
|
||||
elif command == 0x0040 # ---------- TriggerEffect ----------
|
||||
# ignore
|
||||
return true
|
||||
end
|
||||
|
||||
else
|
||||
return super(self).invoke_request(session, val, ctx)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
matter.Plugin_Aggregator = Matter_Plugin_Aggregator
|
||||
|
|
@ -119,8 +119,6 @@ class Matter_Plugin_Device : Matter_Plugin
|
|||
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", ""))
|
||||
else
|
||||
return super(self).read_attribute(session, ctx, tlv_solo)
|
||||
end
|
||||
|
||||
else
|
||||
|
|
|
@ -154,6 +154,7 @@ class Matter_Plugin_Root : Matter_Plugin
|
|||
var nocl = TLV.Matter_TLV_array() # NOCs, p.711
|
||||
var fabs = ctx.fabric_filtered ? [session.get_fabric()] : self.device.sessions.active_fabrics()
|
||||
for loc_fabric: fabs
|
||||
if loc_fabric.is_marked_for_deletion() continue end # fabric is scheduled for deletion
|
||||
if loc_fabric == nil continue end
|
||||
var nocs = nocl.add_struct(nil)
|
||||
nocs.add_TLV(1, TLV.B2, loc_fabric.get_noc()) # NOC
|
||||
|
@ -166,6 +167,7 @@ class Matter_Plugin_Root : Matter_Plugin
|
|||
var fabs = ctx.fabric_filtered ? [session.get_fabric()] : self.device.sessions.active_fabrics()
|
||||
for loc_fabric: fabs
|
||||
if loc_fabric == nil continue end
|
||||
if loc_fabric.is_marked_for_deletion() continue end # fabric is scheduled for deletion
|
||||
var root_ca_tlv = TLV.parse(loc_fabric.get_ca())
|
||||
var fab = fabrics.add_struct(nil) # encoding see p.303
|
||||
fab.add_TLV(1, TLV.B2, root_ca_tlv.findsubval(9)) # RootPublicKey
|
||||
|
@ -305,14 +307,20 @@ class Matter_Plugin_Root : Matter_Plugin
|
|||
|
||||
elif cluster == 0x001D # ========== Descriptor Cluster 9.5 p.453 ==========
|
||||
|
||||
# overwrite ClientList
|
||||
if attribute == 0x0002 # ---------- ClientList / list[cluster-id] ----------
|
||||
var pl = TLV.Matter_TLV_array()
|
||||
# from connectedhome reference implementation
|
||||
pl.add_TLV(nil, TLV.U2, 0x001F) # Access Control Cluster
|
||||
return pl
|
||||
# overwrite PartsList
|
||||
if attribute == 0x0003 # ---------- PartsList / list[endpoint-no]----------
|
||||
elif attribute == 0x0003 # ---------- PartsList / list[endpoint-no]----------
|
||||
var pl = TLV.Matter_TLV_array()
|
||||
var eps = self.device.get_active_endpoints(true)
|
||||
var disable_bridge_mode = self.device.disable_bridge_mode
|
||||
for ep: eps
|
||||
# if bridge mode is disabled, don't announce Aggregatore (above 0xFF00)
|
||||
if !disable_bridge_mode || ep < matter.AGGREGATOR_ENDPOINT
|
||||
if !disable_bridge_mode || ep != matter.AGGREGATOR_ENDPOINT
|
||||
pl.add_TLV(nil, TLV.U2, ep) # add each endpoint
|
||||
end
|
||||
end
|
||||
|
@ -572,6 +580,7 @@ class Matter_Plugin_Root : Matter_Plugin
|
|||
if fab.get_fabric_index() == index
|
||||
# tasmota.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)
|
||||
return true # Ok
|
||||
end
|
||||
|
|
|
@ -786,6 +786,7 @@ class Matter_Device
|
|||
if self.plugins_config != nil
|
||||
tasmota.log("MTR: load_config = " + str(self.plugins_config), 3)
|
||||
self.adjust_next_ep()
|
||||
self.check_config_ep()
|
||||
self.plugins_persist = true
|
||||
end
|
||||
self.plugins_config_remotes = j.find("remotes", {})
|
||||
|
@ -1160,7 +1161,7 @@ class Matter_Device
|
|||
var m = {}
|
||||
|
||||
# check if we have a light
|
||||
var endpoint = 1
|
||||
var endpoint = matter.START_ENDPOINT
|
||||
var light_present = false
|
||||
|
||||
import light
|
||||
|
@ -1399,6 +1400,25 @@ class Matter_Device
|
|||
self.attribute_updated(matter.AGGREGATOR_ENDPOINT, 0x001D, 0x0003, false)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Check that all ep are valid, i.e. don't collied with root or aggregator
|
||||
#
|
||||
def check_config_ep()
|
||||
# copy into list so we can change the map on the fly
|
||||
var keys = []
|
||||
for k: self.plugins_config.keys() k.push(int(k)) end
|
||||
for ep: keys
|
||||
if ep == 0
|
||||
tasmota.log("MTR: invalid entry with ep '0'", 2)
|
||||
self.plugins_config.remove(str(ep))
|
||||
elif ep == matter.AGGREGATOR_ENDPOINT
|
||||
tasmota.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))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Adjust next_ep
|
||||
#
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -273,7 +273,7 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[20]) { /* constants */
|
||||
( &(const bvalue[18]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(TLV),
|
||||
/* K2 */ be_nested_str_weak(cluster),
|
||||
|
@ -292,12 +292,10 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
|||
/* K15 */ be_const_int(2),
|
||||
/* K16 */ be_const_int(3),
|
||||
/* K17 */ be_nested_str_weak(set),
|
||||
/* K18 */ be_nested_str_weak(BOOL),
|
||||
/* K19 */ be_nested_str_weak(read_attribute),
|
||||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[114]) { /* code */
|
||||
( &(const binstruction[92]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140502, // 0002 GETMBR R5 R2 K2
|
||||
|
@ -386,32 +384,10 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
|||
0x5828000B, // 0055 LDCONST R10 K11
|
||||
0x7C1C0600, // 0056 CALL R7 3
|
||||
0x80040E00, // 0057 RET 1 R7
|
||||
0x70020017, // 0058 JMP #0071
|
||||
0x541E0038, // 0059 LDINT R7 57
|
||||
0x1C1C0A07, // 005A EQ R7 R5 R7
|
||||
0x781E0012, // 005B JMPF R7 #006F
|
||||
0x541E0010, // 005C LDINT R7 17
|
||||
0x1C1C0C07, // 005D EQ R7 R6 R7
|
||||
0x781E0005, // 005E JMPF R7 #0065
|
||||
0x8C1C0711, // 005F GETMET R7 R3 K17
|
||||
0x88240912, // 0060 GETMBR R9 R4 K18
|
||||
0x5828000B, // 0061 LDCONST R10 K11
|
||||
0x7C1C0600, // 0062 CALL R7 3
|
||||
0x80040E00, // 0063 RET 1 R7
|
||||
0x70020008, // 0064 JMP #006E
|
||||
0x601C0003, // 0065 GETGBL R7 G3
|
||||
0x5C200000, // 0066 MOVE R8 R0
|
||||
0x7C1C0200, // 0067 CALL R7 1
|
||||
0x8C1C0F13, // 0068 GETMET R7 R7 K19
|
||||
0x5C240200, // 0069 MOVE R9 R1
|
||||
0x5C280400, // 006A MOVE R10 R2
|
||||
0x5C2C0600, // 006B MOVE R11 R3
|
||||
0x7C1C0800, // 006C CALL R7 4
|
||||
0x80040E00, // 006D RET 1 R7
|
||||
0x70020001, // 006E JMP #0071
|
||||
0x4C1C0000, // 006F LDNIL R7
|
||||
0x80040E00, // 0070 RET 1 R7
|
||||
0x80000000, // 0071 RET 0
|
||||
0x70020001, // 0058 JMP #005B
|
||||
0x4C1C0000, // 0059 LDNIL R7
|
||||
0x80040E00, // 005A RET 1 R7
|
||||
0x80000000, // 005B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -1303,7 +1279,7 @@ be_local_class(Matter_Plugin,
|
|||
{ be_const_key_weak(VIRTUAL, 6), be_const_bool(0) },
|
||||
{ be_const_key_weak(node_label, 34), be_const_var(5) },
|
||||
{ be_const_key_weak(CLUSTERS, -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(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(6,
|
||||
|
@ -1314,11 +1290,6 @@ be_local_class(Matter_Plugin,
|
|||
be_const_int(3),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
{ be_const_key_int(57, 0), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(1,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(update_shadow_lazy, -1), be_const_closure(Matter_Plugin_update_shadow_lazy_closure) },
|
||||
|
|
|
@ -19,80 +19,207 @@ be_local_closure(Matter_Plugin_Aggregator_read_attribute, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* 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(attribute),
|
||||
/* K4 */ be_const_int(3),
|
||||
/* K5 */ be_nested_str_weak(Matter_TLV_array),
|
||||
/* K6 */ be_nested_str_weak(device),
|
||||
/* K7 */ be_nested_str_weak(get_active_endpoints),
|
||||
/* K8 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
|
||||
/* K9 */ be_nested_str_weak(add_TLV),
|
||||
/* K10 */ be_nested_str_weak(U2),
|
||||
/* K11 */ be_nested_str_weak(stop_iteration),
|
||||
/* K12 */ be_nested_str_weak(read_attribute),
|
||||
/* K5 */ be_const_int(0),
|
||||
/* K6 */ be_nested_str_weak(set),
|
||||
/* K7 */ be_nested_str_weak(U2),
|
||||
/* K8 */ be_const_int(1),
|
||||
/* K9 */ be_nested_str_weak(U1),
|
||||
/* K10 */ be_nested_str_weak(U4),
|
||||
/* K11 */ be_const_int(2),
|
||||
/* K12 */ be_nested_str_weak(Matter_TLV_array),
|
||||
/* K13 */ be_nested_str_weak(add_TLV),
|
||||
/* K14 */ be_nested_str_weak(device),
|
||||
/* K15 */ be_nested_str_weak(get_active_endpoints),
|
||||
/* K16 */ be_nested_str_weak(AGGREGATOR_ENDPOINT),
|
||||
/* K17 */ be_nested_str_weak(stop_iteration),
|
||||
/* K18 */ be_nested_str_weak(read_attribute),
|
||||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[56]) { /* code */
|
||||
( &(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
|
||||
0x541E001C, // 0004 LDINT R7 29
|
||||
0x1C1C0A07, // 0005 EQ R7 R5 R7
|
||||
0x781E0026, // 0006 JMPF R7 #002E
|
||||
0x1C1C0D04, // 0007 EQ R7 R6 K4
|
||||
0x781E001A, // 0008 JMPF R7 #0024
|
||||
0x8C1C0905, // 0009 GETMET R7 R4 K5
|
||||
0x7C1C0200, // 000A CALL R7 1
|
||||
0x88200106, // 000B GETMBR R8 R0 K6
|
||||
0x8C201107, // 000C GETMET R8 R8 K7
|
||||
0x50280200, // 000D LDBOOL R10 1 0
|
||||
0x7C200400, // 000E CALL R8 2
|
||||
0x60240010, // 000F GETGBL R9 G16
|
||||
0x5C281000, // 0010 MOVE R10 R8
|
||||
0x7C240200, // 0011 CALL R9 1
|
||||
0xA802000B, // 0012 EXBLK 0 #001F
|
||||
0x5C281200, // 0013 MOVE R10 R9
|
||||
0x7C280000, // 0014 CALL R10 0
|
||||
0xB82E0000, // 0015 GETNGBL R11 K0
|
||||
0x882C1708, // 0016 GETMBR R11 R11 K8
|
||||
0x142C140B, // 0017 LT R11 R10 R11
|
||||
0x782E0004, // 0018 JMPF R11 #001E
|
||||
0x8C2C0F09, // 0019 GETMET R11 R7 K9
|
||||
0x4C340000, // 001A LDNIL R13
|
||||
0x8838090A, // 001B GETMBR R14 R4 K10
|
||||
0x5C3C1400, // 001C MOVE R15 R10
|
||||
0x7C2C0800, // 001D CALL R11 4
|
||||
0x7001FFF3, // 001E JMP #0013
|
||||
0x5824000B, // 001F LDCONST R9 K11
|
||||
0xAC240200, // 0020 CATCH R9 1 0
|
||||
0xB0080000, // 0021 RAISE 2 R0 R0
|
||||
0x80040E00, // 0022 RET 1 R7
|
||||
0x70020008, // 0023 JMP #002D
|
||||
0x601C0003, // 0024 GETGBL R7 G3
|
||||
0x5C200000, // 0025 MOVE R8 R0
|
||||
0x7C1C0200, // 0026 CALL R7 1
|
||||
0x8C1C0F0C, // 0027 GETMET R7 R7 K12
|
||||
0x5C240200, // 0028 MOVE R9 R1
|
||||
0x5C280400, // 0029 MOVE R10 R2
|
||||
0x5C2C0600, // 002A MOVE R11 R3
|
||||
0x7C1C0800, // 002B CALL R7 4
|
||||
0x80040E00, // 002C RET 1 R7
|
||||
0x70020008, // 002D JMP #0037
|
||||
0x601C0003, // 002E GETGBL R7 G3
|
||||
0x5C200000, // 002F MOVE R8 R0
|
||||
0x7C1C0200, // 0030 CALL R7 1
|
||||
0x8C1C0F0C, // 0031 GETMET R7 R7 K12
|
||||
0x5C240200, // 0032 MOVE R9 R1
|
||||
0x5C280400, // 0033 MOVE R10 R2
|
||||
0x5C2C0600, // 0034 MOVE R11 R3
|
||||
0x7C1C0800, // 0035 CALL R7 4
|
||||
0x80040E00, // 0036 RET 1 R7
|
||||
0x80000000, // 0037 RET 0
|
||||
0x1C1C0B04, // 0004 EQ R7 R5 K4
|
||||
0x781E0021, // 0005 JMPF R7 #0028
|
||||
0x1C1C0D05, // 0006 EQ R7 R6 K5
|
||||
0x781E0005, // 0007 JMPF R7 #000E
|
||||
0x8C1C0706, // 0008 GETMET R7 R3 K6
|
||||
0x88240907, // 0009 GETMBR R9 R4 K7
|
||||
0x58280005, // 000A LDCONST R10 K5
|
||||
0x7C1C0600, // 000B CALL R7 3
|
||||
0x80040E00, // 000C RET 1 R7
|
||||
0x70020018, // 000D JMP #0027
|
||||
0x1C1C0D08, // 000E EQ R7 R6 K8
|
||||
0x781E0005, // 000F JMPF R7 #0016
|
||||
0x8C1C0706, // 0010 GETMET R7 R3 K6
|
||||
0x88240909, // 0011 GETMBR R9 R4 K9
|
||||
0x58280005, // 0012 LDCONST R10 K5
|
||||
0x7C1C0600, // 0013 CALL R7 3
|
||||
0x80040E00, // 0014 RET 1 R7
|
||||
0x70020010, // 0015 JMP #0027
|
||||
0x541EFFFB, // 0016 LDINT R7 65532
|
||||
0x1C1C0C07, // 0017 EQ R7 R6 R7
|
||||
0x781E0005, // 0018 JMPF R7 #001F
|
||||
0x8C1C0706, // 0019 GETMET R7 R3 K6
|
||||
0x8824090A, // 001A GETMBR R9 R4 K10
|
||||
0x58280005, // 001B LDCONST R10 K5
|
||||
0x7C1C0600, // 001C CALL R7 3
|
||||
0x80040E00, // 001D RET 1 R7
|
||||
0x70020007, // 001E JMP #0027
|
||||
0x541EFFFC, // 001F LDINT R7 65533
|
||||
0x1C1C0C07, // 0020 EQ R7 R6 R7
|
||||
0x781E0004, // 0021 JMPF R7 #0027
|
||||
0x8C1C0706, // 0022 GETMET R7 R3 K6
|
||||
0x8824090A, // 0023 GETMBR R9 R4 K10
|
||||
0x542A0003, // 0024 LDINT R10 4
|
||||
0x7C1C0600, // 0025 CALL R7 3
|
||||
0x80040E00, // 0026 RET 1 R7
|
||||
0x7002003D, // 0027 JMP #0066
|
||||
0x541E001C, // 0028 LDINT R7 29
|
||||
0x1C1C0A07, // 0029 EQ R7 R5 R7
|
||||
0x781E0031, // 002A JMPF R7 #005D
|
||||
0x1C1C0D0B, // 002B EQ R7 R6 K11
|
||||
0x781E0008, // 002C JMPF R7 #0036
|
||||
0x8C1C090C, // 002D GETMET R7 R4 K12
|
||||
0x7C1C0200, // 002E CALL R7 1
|
||||
0x8C200F0D, // 002F GETMET R8 R7 K13
|
||||
0x4C280000, // 0030 LDNIL R10
|
||||
0x882C0907, // 0031 GETMBR R11 R4 K7
|
||||
0x5432001D, // 0032 LDINT R12 30
|
||||
0x7C200800, // 0033 CALL R8 4
|
||||
0x80040E00, // 0034 RET 1 R7
|
||||
0x70020025, // 0035 JMP #005C
|
||||
0x1C1C0D04, // 0036 EQ R7 R6 K4
|
||||
0x781E001A, // 0037 JMPF R7 #0053
|
||||
0x8C1C090C, // 0038 GETMET R7 R4 K12
|
||||
0x7C1C0200, // 0039 CALL R7 1
|
||||
0x8820010E, // 003A GETMBR R8 R0 K14
|
||||
0x8C20110F, // 003B GETMET R8 R8 K15
|
||||
0x50280200, // 003C LDBOOL R10 1 0
|
||||
0x7C200400, // 003D CALL R8 2
|
||||
0x60240010, // 003E GETGBL R9 G16
|
||||
0x5C281000, // 003F MOVE R10 R8
|
||||
0x7C240200, // 0040 CALL R9 1
|
||||
0xA802000B, // 0041 EXBLK 0 #004E
|
||||
0x5C281200, // 0042 MOVE R10 R9
|
||||
0x7C280000, // 0043 CALL R10 0
|
||||
0xB82E0000, // 0044 GETNGBL R11 K0
|
||||
0x882C1710, // 0045 GETMBR R11 R11 K16
|
||||
0x202C140B, // 0046 NE R11 R10 R11
|
||||
0x782E0004, // 0047 JMPF R11 #004D
|
||||
0x8C2C0F0D, // 0048 GETMET R11 R7 K13
|
||||
0x4C340000, // 0049 LDNIL R13
|
||||
0x88380907, // 004A GETMBR R14 R4 K7
|
||||
0x5C3C1400, // 004B MOVE R15 R10
|
||||
0x7C2C0800, // 004C CALL R11 4
|
||||
0x7001FFF3, // 004D JMP #0042
|
||||
0x58240011, // 004E LDCONST R9 K17
|
||||
0xAC240200, // 004F CATCH R9 1 0
|
||||
0xB0080000, // 0050 RAISE 2 R0 R0
|
||||
0x80040E00, // 0051 RET 1 R7
|
||||
0x70020008, // 0052 JMP #005C
|
||||
0x601C0003, // 0053 GETGBL R7 G3
|
||||
0x5C200000, // 0054 MOVE R8 R0
|
||||
0x7C1C0200, // 0055 CALL R7 1
|
||||
0x8C1C0F12, // 0056 GETMET R7 R7 K18
|
||||
0x5C240200, // 0057 MOVE R9 R1
|
||||
0x5C280400, // 0058 MOVE R10 R2
|
||||
0x5C2C0600, // 0059 MOVE R11 R3
|
||||
0x7C1C0800, // 005A CALL R7 4
|
||||
0x80040E00, // 005B RET 1 R7
|
||||
0x70020008, // 005C JMP #0066
|
||||
0x601C0003, // 005D GETGBL R7 G3
|
||||
0x5C200000, // 005E MOVE R8 R0
|
||||
0x7C1C0200, // 005F CALL R7 1
|
||||
0x8C1C0F12, // 0060 GETMET R7 R7 K18
|
||||
0x5C240200, // 0061 MOVE R9 R1
|
||||
0x5C280400, // 0062 MOVE R10 R2
|
||||
0x5C2C0600, // 0063 MOVE R11 R3
|
||||
0x7C1C0800, // 0064 CALL R7 4
|
||||
0x80040E00, // 0065 RET 1 R7
|
||||
0x80000000, // 0066 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: invoke_request
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_Plugin_Aggregator_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(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[39]) { /* 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
|
||||
0x70020008, // 001C JMP #0026
|
||||
0x601C0003, // 001D GETGBL R7 G3
|
||||
0x5C200000, // 001E MOVE R8 R0
|
||||
0x7C1C0200, // 001F CALL R7 1
|
||||
0x8C1C0F0A, // 0020 GETMET R7 R7 K10
|
||||
0x5C240200, // 0021 MOVE R9 R1
|
||||
0x5C280400, // 0022 MOVE R10 R2
|
||||
0x5C2C0600, // 0023 MOVE R11 R3
|
||||
0x7C1C0800, // 0024 CALL R7 4
|
||||
0x80040E00, // 0025 RET 1 R7
|
||||
0x80000000, // 0026 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -106,16 +233,39 @@ extern const bclass be_class_Matter_Plugin;
|
|||
be_local_class(Matter_Plugin_Aggregator,
|
||||
0,
|
||||
&be_class_Matter_Plugin,
|
||||
be_nested_map(4,
|
||||
be_nested_map(6,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_Aggregator_read_attribute_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(aggregator) },
|
||||
{ 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(14, -1), be_const_int(1) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(TYPE, 3), be_nested_str_weak(aggregator) },
|
||||
{ be_const_key_weak(read_attribute, 0), be_const_closure(Matter_Plugin_Aggregator_read_attribute_closure) },
|
||||
{ be_const_key_weak(DISPLAY_NAME, -1), be_nested_str_weak(Aggregator) },
|
||||
{ be_const_key_weak(CLUSTERS, -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(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(1),
|
||||
be_const_int(2),
|
||||
be_const_int(3),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
{ be_const_key_int(3, 0), 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(0),
|
||||
be_const_int(1),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Aggregator_invoke_request_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Aggregator)
|
||||
);
|
||||
|
|
|
@ -60,7 +60,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[264]) { /* code */
|
||||
( &(const binstruction[254]) { /* code */
|
||||
0xB8120000, // 0000 GETNGBL R4 K0
|
||||
0x88100901, // 0001 GETMBR R4 R4 K1
|
||||
0x88140502, // 0002 GETMBR R5 R2 K2
|
||||
|
@ -100,7 +100,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x542A0003, // 0024 LDINT R10 4
|
||||
0x7C1C0600, // 0025 CALL R7 3
|
||||
0x80040E00, // 0026 RET 1 R7
|
||||
0x700200DE, // 0027 JMP #0107
|
||||
0x700200D4, // 0027 JMP #00FD
|
||||
0x541E0003, // 0028 LDINT R7 4
|
||||
0x1C1C0A07, // 0029 EQ R7 R5 R7
|
||||
0x781E0016, // 002A JMPF R7 #0042
|
||||
|
@ -126,7 +126,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x542A0003, // 003E LDINT R10 4
|
||||
0x7C1C0600, // 003F CALL R7 3
|
||||
0x80040E00, // 0040 RET 1 R7
|
||||
0x700200C4, // 0041 JMP #0107
|
||||
0x700200BA, // 0041 JMP #00FD
|
||||
0x541E0004, // 0042 LDINT R7 5
|
||||
0x1C1C0A07, // 0043 EQ R7 R5 R7
|
||||
0x781E0011, // 0044 JMPF R7 #0057
|
||||
|
@ -147,7 +147,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x542A0003, // 0053 LDINT R10 4
|
||||
0x7C1C0600, // 0054 CALL R7 3
|
||||
0x80040E00, // 0055 RET 1 R7
|
||||
0x700200AF, // 0056 JMP #0107
|
||||
0x700200A5, // 0056 JMP #00FD
|
||||
0x541E001C, // 0057 LDINT R7 29
|
||||
0x1C1C0A07, // 0058 EQ R7 R5 R7
|
||||
0x781E003E, // 0059 JMPF R7 #0099
|
||||
|
@ -213,10 +213,10 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x5C2C0600, // 0095 MOVE R11 R3
|
||||
0x7C1C0800, // 0096 CALL R7 4
|
||||
0x80040E00, // 0097 RET 1 R7
|
||||
0x7002006D, // 0098 JMP #0107
|
||||
0x70020063, // 0098 JMP #00FD
|
||||
0x541E0038, // 0099 LDINT R7 57
|
||||
0x1C1C0A07, // 009A EQ R7 R5 R7
|
||||
0x781E0061, // 009B JMPF R7 #00FE
|
||||
0x781E0057, // 009B JMPF R7 #00F4
|
||||
0xA41E2E00, // 009C IMPORT R7 K23
|
||||
0x1C200D04, // 009D EQ R8 R6 K4
|
||||
0x7822000A, // 009E JMPF R8 #00AA
|
||||
|
@ -230,7 +230,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x942C171B, // 00A6 GETIDX R11 R11 K27
|
||||
0x7C200600, // 00A7 CALL R8 3
|
||||
0x80041000, // 00A8 RET 1 R8
|
||||
0x70020052, // 00A9 JMP #00FD
|
||||
0x70020048, // 00A9 JMP #00F3
|
||||
0x54220004, // 00AA LDINT R8 5
|
||||
0x1C200C08, // 00AB EQ R8 R6 R8
|
||||
0x78220006, // 00AC JMPF R8 #00B4
|
||||
|
@ -240,7 +240,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x7C2C0200, // 00B0 CALL R11 1
|
||||
0x7C200600, // 00B1 CALL R8 3
|
||||
0x80041000, // 00B2 RET 1 R8
|
||||
0x70020048, // 00B3 JMP #00FD
|
||||
0x7002003E, // 00B3 JMP #00F3
|
||||
0x54220009, // 00B4 LDINT R8 10
|
||||
0x1C200C08, // 00B5 EQ R8 R6 R8
|
||||
0x78220015, // 00B6 JMPF R8 #00CD
|
||||
|
@ -265,7 +265,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x5C341000, // 00C9 MOVE R13 R8
|
||||
0x7C280600, // 00CA CALL R10 3
|
||||
0x80041400, // 00CB RET 1 R10
|
||||
0x7002002F, // 00CC JMP #00FD
|
||||
0x70020025, // 00CC JMP #00F3
|
||||
0x5422000E, // 00CD LDINT R8 15
|
||||
0x1C200C08, // 00CE EQ R8 R6 R8
|
||||
0x7822000B, // 00CF JMPF R8 #00DC
|
||||
|
@ -280,7 +280,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x7C2C0600, // 00D8 CALL R11 3
|
||||
0x7C200600, // 00D9 CALL R8 3
|
||||
0x80041000, // 00DA RET 1 R8
|
||||
0x70020020, // 00DB JMP #00FD
|
||||
0x70020016, // 00DB JMP #00F3
|
||||
0x54220010, // 00DC LDINT R8 17
|
||||
0x1C200C08, // 00DD EQ R8 R6 R8
|
||||
0x78220005, // 00DE JMPF R8 #00E5
|
||||
|
@ -289,10 +289,10 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x582C0008, // 00E1 LDCONST R11 K8
|
||||
0x7C200600, // 00E2 CALL R8 3
|
||||
0x80041000, // 00E3 RET 1 R8
|
||||
0x70020017, // 00E4 JMP #00FD
|
||||
0x7002000D, // 00E4 JMP #00F3
|
||||
0x54220011, // 00E5 LDINT R8 18
|
||||
0x1C200C08, // 00E6 EQ R8 R6 R8
|
||||
0x7822000B, // 00E7 JMPF R8 #00F4
|
||||
0x7822000A, // 00E7 JMPF R8 #00F3
|
||||
0x8C200706, // 00E8 GETMET R8 R3 K6
|
||||
0x88280918, // 00E9 GETMBR R10 R4 K24
|
||||
0xB82E3200, // 00EA GETNGBL R11 K25
|
||||
|
@ -305,26 +305,16 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
|||
0x7C200600, // 00F1 CALL R8 3
|
||||
0x80041000, // 00F2 RET 1 R8
|
||||
0x70020008, // 00F3 JMP #00FD
|
||||
0x60200003, // 00F4 GETGBL R8 G3
|
||||
0x5C240000, // 00F5 MOVE R9 R0
|
||||
0x7C200200, // 00F6 CALL R8 1
|
||||
0x8C201116, // 00F7 GETMET R8 R8 K22
|
||||
0x5C280200, // 00F8 MOVE R10 R1
|
||||
0x5C2C0400, // 00F9 MOVE R11 R2
|
||||
0x5C300600, // 00FA MOVE R12 R3
|
||||
0x7C200800, // 00FB CALL R8 4
|
||||
0x80041000, // 00FC RET 1 R8
|
||||
0x70020008, // 00FD JMP #0107
|
||||
0x601C0003, // 00FE GETGBL R7 G3
|
||||
0x5C200000, // 00FF MOVE R8 R0
|
||||
0x7C1C0200, // 0100 CALL R7 1
|
||||
0x8C1C0F16, // 0101 GETMET R7 R7 K22
|
||||
0x5C240200, // 0102 MOVE R9 R1
|
||||
0x5C280400, // 0103 MOVE R10 R2
|
||||
0x5C2C0600, // 0104 MOVE R11 R3
|
||||
0x7C1C0800, // 0105 CALL R7 4
|
||||
0x80040E00, // 0106 RET 1 R7
|
||||
0x80000000, // 0107 RET 0
|
||||
0x601C0003, // 00F4 GETGBL R7 G3
|
||||
0x5C200000, // 00F5 MOVE R8 R0
|
||||
0x7C1C0200, // 00F6 CALL R7 1
|
||||
0x8C1C0F16, // 00F7 GETMET R7 R7 K22
|
||||
0x5C240200, // 00F8 MOVE R9 R1
|
||||
0x5C280400, // 00F9 MOVE R10 R2
|
||||
0x5C2C0600, // 00FA MOVE R11 R3
|
||||
0x7C1C0800, // 00FB CALL R7 4
|
||||
0x80040E00, // 00FC RET 1 R7
|
||||
0x80000000, // 00FD RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -597,17 +587,19 @@ be_local_class(Matter_Plugin_Device,
|
|||
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(3,
|
||||
{ be_const_key_int(29, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(1),
|
||||
be_const_int(2),
|
||||
be_const_int(3),
|
||||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
@ -623,13 +615,10 @@ be_local_class(Matter_Plugin_Device,
|
|||
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(6,
|
||||
{ be_const_key_int(4, 1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||
be_const_list( * be_nested_list(3,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(0),
|
||||
be_const_int(1),
|
||||
be_const_int(2),
|
||||
be_const_int(3),
|
||||
be_const_int(65532),
|
||||
be_const_int(65533),
|
||||
})) ) } )) },
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -761,9 +761,8 @@ be_local_class(Matter_Plugin_Light1,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -484,9 +484,8 @@ be_local_class(Matter_Plugin_OnOff,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -415,9 +415,8 @@ be_local_class(Matter_Plugin_Sensor_Contact,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -432,9 +432,8 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -300,9 +300,8 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -696,9 +696,8 @@ be_local_class(Matter_Plugin_Shutter,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -513,9 +513,8 @@ be_local_class(Matter_Plugin_Bridge_Light0,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -372,9 +372,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Contact,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -392,9 +392,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -528,9 +528,8 @@ be_local_class(Matter_Plugin_Light2,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -690,9 +690,8 @@ be_local_class(Matter_Plugin_Light3,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -219,9 +219,8 @@ be_local_class(Matter_Plugin_Sensor_Flow,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -227,9 +227,8 @@ be_local_class(Matter_Plugin_Sensor_Humidity,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -238,9 +238,8 @@ be_local_class(Matter_Plugin_Sensor_Illuminance,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -227,9 +227,8 @@ be_local_class(Matter_Plugin_Sensor_Pressure,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -240,9 +240,8 @@ be_local_class(Matter_Plugin_Sensor_Temp,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -470,9 +470,8 @@ be_local_class(Matter_Plugin_ShutterTilt,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -579,9 +579,8 @@ be_local_class(Matter_Plugin_Bridge_Light1,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -256,9 +256,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Flow,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -272,9 +272,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Humidity,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -275,9 +275,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Illuminance,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -264,9 +264,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Pressure,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -282,9 +282,8 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Temp,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -560,9 +560,8 @@ be_local_class(Matter_Plugin_Bridge_Light2,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
|
@ -736,9 +736,8 @@ be_local_class(Matter_Plugin_Bridge_Light3,
|
|||
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(7,
|
||||
be_const_list( * be_nested_list(6,
|
||||
( (struct bvalue*) &(const bvalue[]) {
|
||||
be_const_int(17),
|
||||
be_const_int(3),
|
||||
be_const_int(5),
|
||||
be_const_int(10),
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue