Matter remove superfluous import.string (#18938)

This commit is contained in:
s-hadinger 2023-06-22 23:49:35 +02:00 committed by GitHub
parent 85f357096a
commit bf36868813
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
105 changed files with 12871 additions and 13378 deletions

View File

@ -467,6 +467,14 @@ static void scan_f_string(blexer *lexer)
if ((i+1 < buf_unparsed_fstr.len) && (buf_unparsed_fstr.s[i+1] == '}')) { i++; } /* if '}}' replace with '}' */ if ((i+1 < buf_unparsed_fstr.len) && (buf_unparsed_fstr.s[i+1] == '}')) { i++; } /* if '}}' replace with '}' */
save_char(lexer, '}'); save_char(lexer, '}');
break; break;
case '\n':
save_char(lexer, '\\');
save_char(lexer, 'n');
break;
case '\r':
save_char(lexer, '\\');
save_char(lexer, 'r');
break;
default: /* copy any other character */ default: /* copy any other character */
save_char(lexer, ch); save_char(lexer, ch);
break; break;

View File

@ -82,7 +82,7 @@ fprint(" const matter_command_t* commands;")
fprint("} matter_cluster_t;") fprint("} matter_cluster_t;")
fprint() fprint()
for cl:cl_ids for cl:cl_ids
fprint(string.format("const matter_attribute_t matter_Attributes_%04X[] = {", cl)) fprint(f"const matter_attribute_t matter_Attributes_{cl:04X}[] = {")
var attributes = c[cl_id_name[cl]]['attributes'] var attributes = c[cl_id_name[cl]]['attributes']
var attr_id_name = {} var attr_id_name = {}
for attr:attributes for attr:attributes
@ -94,13 +94,13 @@ for cl:cl_ids
var reportable = attributes[attr_id].find('reportable', false) var reportable = attributes[attr_id].find('reportable', false)
var writable = attributes[attr_id].find('writable', false) var writable = attributes[attr_id].find('writable', false)
var flags = (writable ? 0x01 : 0x00) | (reportable ? 0x02 : 0x00) var flags = (writable ? 0x01 : 0x00) | (reportable ? 0x02 : 0x00)
fprint(string.format(' { 0x%04X, %i, 0x%02X, "%s" },', attr_id, 0, flags, attributes[attr_id]['attributeName'])) fprint(format(' { 0x%04X, %i, 0x%02X, "%s" },', attr_id, 0, flags, attributes[attr_id]['attributeName']))
end end
fprint(' { 0xFFFF, 0, 0x00, NULL },') fprint(' { 0xFFFF, 0, 0x00, NULL },')
fprint("};") fprint("};")
fprint() fprint()
# commands # commands
fprint(string.format("const matter_command_t matter_Commands_%04X[] = {", cl)) fprint(f"const matter_command_t matter_Commands_{cl:04X}[] = {")
var commands = c[cl_id_name[cl]]['commands'] var commands = c[cl_id_name[cl]]['commands']
var cmd_id_name = {} var cmd_id_name = {}
for cmd:commands for cmd:commands
@ -109,7 +109,7 @@ for cl:cl_ids
var cmd_ids_local = k2l(cmd_id_name) var cmd_ids_local = k2l(cmd_id_name)
for cmd_id:cmd_ids_local for cmd_id:cmd_ids_local
fprint(string.format(' { 0x%04X, "%s" },', cmd_id, commands[cmd_id]['commandName'])) fprint(format(' { 0x%04X, "%s" },', cmd_id, commands[cmd_id]['commandName']))
end end
fprint(' { 0xFFFF, NULL },') fprint(' { 0xFFFF, NULL },')
fprint("};") fprint("};")
@ -118,7 +118,7 @@ end
fprint("const matter_cluster_t matterAllClusters[] = {") fprint("const matter_cluster_t matterAllClusters[] = {")
for cl:cl_ids for cl:cl_ids
fprint(string.format(' { 0x%04X, "%s", matter_Attributes_%04X, matter_Commands_%04X },', cl, cl_id_name[cl], cl, cl)) fprint(format(' { 0x%04X, "%s", matter_Attributes_%04X, matter_Commands_%04X },', cl, cl_id_name[cl], cl, cl))
end end
fprint(' { 0xFFFF, NULL, NULL },') fprint(' { 0xFFFF, NULL, NULL },')
fprint("};") fprint("};")

View File

@ -5,7 +5,7 @@
import os import os
import global import global
import solidify import solidify
import string import string as string2
import re import re
import sys import sys
@ -18,7 +18,7 @@ var globs = "path,ctypes_bytes_dyn,tasmota,ccronexpr,gpio,light,webclient,load,M
"_lvgl," "_lvgl,"
"int64" "int64"
for g:string.split(globs, ",") for g:string2.split(globs, ",")
global.(g) = nil global.(g) = nil
end end
@ -44,9 +44,9 @@ def parse_file(fname, prefix_out)
var compiled = compile(src) var compiled = compile(src)
compiled() # run the compile code to instanciate the classes and modules compiled() # run the compile code to instanciate the classes and modules
# output solidified # output solidified
var fname_h = string.split(fname, '.be')[0] + '.h' # take whatever is before the first '.be' var fname_h = string2.split(fname, '.be')[0] + '.h' # take whatever is before the first '.be'
var fout = open(prefix_out + "solidified_" + fname_h, "w") var fout = open(prefix_out + "solidified_" + fname_h, "w")
fout.write(string.format("/* Solidification of %s */\n", fname_h)) fout.write(f"/* Solidification of {fname_h} */\n")
fout.write("/********************************************************************\\\n") fout.write("/********************************************************************\\\n")
fout.write("* Generated code, don't edit *\n") fout.write("* Generated code, don't edit *\n")
fout.write("\\********************************************************************/\n") fout.write("\\********************************************************************/\n")
@ -56,13 +56,13 @@ def parse_file(fname, prefix_out)
# print(directives) # print(directives)
for directive : directives for directive : directives
var object_list = string.split(directive[1], ',') var object_list = string2.split(directive[1], ',')
var object_name = object_list[0] var object_name = object_list[0]
var weak = (object_list.find('weak') != nil) # do we solidify with weak strings? var weak = (object_list.find('weak') != nil) # do we solidify with weak strings?
var o = global var o = global
var cl_name = nil var cl_name = nil
var obj_name = nil var obj_name = nil
for subname : string.split(object_name, '.') for subname : string2.split(object_name, '.')
o = o.(subname) o = o.(subname)
cl_name = obj_name cl_name = obj_name
obj_name = subname obj_name = subname

View File

@ -26,7 +26,6 @@ class Matter_Base38
static def encode(raw) static def encode(raw)
# encodes b38 (mutates `b`) # encodes b38 (mutates `b`)
def b38_enc(v, l) def b38_enc(v, l)
import string
var ENCODE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-." var ENCODE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-."
var i = 0 var i = 0
var ret = "" var ret = ""

View File

@ -44,9 +44,8 @@ class Matter_Commisioning_Context
############################################################# #############################################################
def add_session(local_session_id, initiator_session_id, i2r, r2i, ac) def add_session(local_session_id, initiator_session_id, i2r, r2i, ac)
import string
# create session object # create session object
tasmota.log(string.format("MTR: add_session local_session_id=%i initiator_session_id=%i", local_session_id, initiator_session_id), 4) tasmota.log(format("MTR: add_session local_session_id=%i initiator_session_id=%i", local_session_id, initiator_session_id), 4)
var session = self.device.sessions.create_session(local_session_id, initiator_session_id) var session = self.device.sessions.create_session(local_session_id, initiator_session_id)
session.set_keys(i2r, r2i, ac) session.set_keys(i2r, r2i, ac)
@ -75,8 +74,7 @@ class Matter_Commisioning_Context
elif msg.opcode == 0x40 elif msg.opcode == 0x40
return self.parse_StatusReport(msg) return self.parse_StatusReport(msg)
else else
import string tasmota.log(format("MTR: >????????? Unknown OpCode (secure channel) %02X", msg.opcode), 2)
tasmota.log(string.format("MTR: >????????? Unknown OpCode (secure channel) %02X", msg.opcode), 2)
return false return false
end end
@ -108,7 +106,6 @@ class Matter_Commisioning_Context
def parse_PBKDFParamRequest(msg) def parse_PBKDFParamRequest(msg)
import crypto import crypto
import string
var session = msg.session var session = msg.session
# sanity checks # sanity checks
if msg.opcode != 0x20 || msg.local_session_id != 0 || msg.protocol_id != 0 if msg.opcode != 0x20 || msg.local_session_id != 0 || msg.protocol_id != 0
@ -133,7 +130,7 @@ class Matter_Commisioning_Context
# record the initiator_session_id # record the initiator_session_id
session.__future_initiator_session_id = pbkdfparamreq.initiator_session_id session.__future_initiator_session_id = pbkdfparamreq.initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id() session.__future_local_session_id = self.device.sessions.gen_local_session_id()
tasmota.log(string.format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3) tasmota.log(format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
# prepare response # prepare response
var pbkdfparamresp = matter.PBKDFParamResponse() var pbkdfparamresp = matter.PBKDFParamResponse()
@ -159,7 +156,6 @@ class Matter_Commisioning_Context
def parse_Pake1(msg) def parse_Pake1(msg)
import crypto import crypto
import string
var session = msg.session var session = msg.session
# sanity checks # sanity checks
@ -239,7 +235,7 @@ class Matter_Commisioning_Context
var raw = resp.encode_frame(pake2_raw) var raw = resp.encode_frame(pake2_raw)
# log the fact that a new commissioning is starting # log the fact that a new commissioning is starting
tasmota.log(string.format("MTR: New Commissioning (PASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port)) tasmota.log(format("MTR: New Commissioning (PASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port))
self.responder.send_response_frame(resp) self.responder.send_response_frame(resp)
return true return true
@ -319,7 +315,6 @@ class Matter_Commisioning_Context
def parse_Sigma1(msg) def parse_Sigma1(msg)
import crypto import crypto
import string
var session = msg.session var session = msg.session
# sanity checks # sanity checks
if msg.opcode != 0x30 || msg.local_session_id != 0 || msg.protocol_id != 0 if msg.opcode != 0x30 || msg.local_session_id != 0 || msg.protocol_id != 0
@ -329,13 +324,13 @@ class Matter_Commisioning_Context
return false return false
end end
var sigma1 = matter.Sigma1().parse(msg.raw, msg.app_payload_idx) var sigma1 = matter.Sigma1().parse(msg.raw, msg.app_payload_idx)
# tasmota.log(string.format("MTR: sigma1=%s", matter.inspect(sigma1)), 4) # tasmota.log(format("MTR: sigma1=%s", matter.inspect(sigma1)), 4)
session.__initiator_pub = sigma1.initiatorEphPubKey session.__initiator_pub = sigma1.initiatorEphPubKey
# find session # find session
var is_resumption = (sigma1.resumptionID != nil && sigma1.initiatorResumeMIC != nil) var is_resumption = (sigma1.resumptionID != nil && sigma1.initiatorResumeMIC != nil)
# tasmota.log(string.format("MTR: is_resumption=%i", is_resumption ? 1 : 0), 4) # tasmota.log(format("MTR: is_resumption=%i", is_resumption ? 1 : 0), 4)
# TODO disable resumption until fixed # TODO disable resumption until fixed
is_resumption = false is_resumption = false
@ -343,7 +338,7 @@ class Matter_Commisioning_Context
var session_resumption var session_resumption
if is_resumption if is_resumption
session_resumption = self.device.sessions.find_session_by_resumption_id(sigma1.resumptionID) session_resumption = self.device.sessions.find_session_by_resumption_id(sigma1.resumptionID)
# tasmota.log(string.format("MTR: session_resumption found session=%s session_resumption=%s", matter.inspect(session), matter.inspect(session_resumption)), 4) # tasmota.log(format("MTR: session_resumption found session=%s session_resumption=%s", matter.inspect(session), matter.inspect(session_resumption)), 4)
if session_resumption == nil || session_resumption._fabric == nil if session_resumption == nil || session_resumption._fabric == nil
is_resumption = false is_resumption = false
end end
@ -375,7 +370,7 @@ class Matter_Commisioning_Context
session.set_mode_CASE() session.set_mode_CASE()
session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id() session.__future_local_session_id = self.device.sessions.gen_local_session_id()
tasmota.log(string.format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3) tasmota.log(format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
# Generate and Send Sigma2_Resume # Generate and Send Sigma2_Resume
session.shared_secret = session_resumption.shared_secret session.shared_secret = session_resumption.shared_secret
@ -463,7 +458,7 @@ class Matter_Commisioning_Context
session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id session.__future_initiator_session_id = sigma1.initiator_session_id # update initiator_session_id
session.__future_local_session_id = self.device.sessions.gen_local_session_id() session.__future_local_session_id = self.device.sessions.gen_local_session_id()
tasmota.log(string.format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3) tasmota.log(format("MTR: New_Session(%6i) from '[%s]:%i'", session.__future_local_session_id, msg.remote_ip, msg.remote_port), 3)
# tasmota.log("MTR: fabric="+matter.inspect(session._fabric), 4) # tasmota.log("MTR: fabric="+matter.inspect(session._fabric), 4)
# tasmota.log("MTR: no_private_key="+session.get_pk().tohex(), 4) # tasmota.log("MTR: no_private_key="+session.get_pk().tohex(), 4)
@ -543,7 +538,7 @@ class Matter_Commisioning_Context
var raw = resp.encode_frame(sigma2_raw) var raw = resp.encode_frame(sigma2_raw)
# log the fact that a new connection is starting # log the fact that a new connection is starting
tasmota.log(string.format("MTR: New Connection (CASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port)) tasmota.log(format("MTR: New Connection (CASE id=%i) from [%s]:%i", session.__future_local_session_id, session._ip, session._port))
self.responder.send_response_frame(resp) self.responder.send_response_frame(resp)
return true return true

View File

@ -45,8 +45,7 @@ class Matter_Control_Message
elif msg.opcode == 0x01 elif msg.opcode == 0x01
return self.parse_MsgCounterSyncRsp(msg) return self.parse_MsgCounterSyncRsp(msg)
else else
import string tasmota.log(format("MTR: >????????? Unknown OpCode (control message) %02X", msg.opcode), 2)
tasmota.log(string.format("MTR: >????????? Unknown OpCode (control message) %02X", msg.opcode), 2)
return false return false
end end
@ -58,9 +57,8 @@ class Matter_Control_Message
# #
# Not yet implemented # Not yet implemented
def parse_MsgCounterSyncReq(msg) def parse_MsgCounterSyncReq(msg)
import string
var session = msg.session var session = msg.session
tasmota.log(string.format("MTR: >MCSyncReq * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2) tasmota.log(format("MTR: >MCSyncReq * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
return false # we don't explicitly ack the message return false # we don't explicitly ack the message
end end
@ -69,9 +67,8 @@ class Matter_Control_Message
# #
# Not yet implemented # Not yet implemented
def parse_MsgCounterSyncRsp(msg) def parse_MsgCounterSyncRsp(msg)
import string
var session = msg.session var session = msg.session
tasmota.log(string.format("MTR: >MCSyncRsp * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2) tasmota.log(format("MTR: >MCSyncRsp * Not implemented %s", msg.raw[msg.app_payload_idx..].tohex()), 2)
return false # we don't explicitly ack the message return false # we don't explicitly ack the message
end end

View File

@ -73,7 +73,6 @@ class Matter_Device
############################################################# #############################################################
def init() def init()
import crypto import crypto
import string
if !tasmota.get_option(matter.MATTER_OPTION) if !tasmota.get_option(matter.MATTER_OPTION)
matter.UI(self) # minimal UI matter.UI(self) # minimal UI
return return
@ -154,16 +153,15 @@ class Matter_Device
# #
# Open window for `timeout_s` (default 10 minutes) # Open window for `timeout_s` (default 10 minutes)
def start_root_basic_commissioning(timeout_s) def start_root_basic_commissioning(timeout_s)
import string
if timeout_s == nil timeout_s = self.PASE_TIMEOUT end if timeout_s == nil timeout_s = self.PASE_TIMEOUT end
# show Manual pairing code in logs # show Manual pairing code in logs
var pairing_code = self.compute_manual_pairing_code() var pairing_code = self.compute_manual_pairing_code()
tasmota.log(string.format("MTR: Manual pairing code: %s", pairing_code), 2) tasmota.log(format("MTR: Manual pairing code: %s", pairing_code), 2)
# output MQTT # output MQTT
var qr_code = self.compute_qrcode_content() var qr_code = self.compute_qrcode_content()
tasmota.publish_result(string.format('{"Matter":{"Commissioning":1,"PairingCode":"%s","QRCode":"%s"}}', pairing_code, qr_code), 'Matter') tasmota.publish_result(format('{"Matter":{"Commissioning":1,"PairingCode":"%s","QRCode":"%s"}}', pairing_code, qr_code), 'Matter')
# compute PBKDF # compute PBKDF
self._compute_pbkdf(self.root_passcode, self.root_iterations, self.root_salt) self._compute_pbkdf(self.root_passcode, self.root_iterations, self.root_salt)
@ -246,7 +244,6 @@ class Matter_Device
# #
def _compute_pbkdf(passcode_int, iterations, salt) def _compute_pbkdf(passcode_int, iterations, salt)
import crypto import crypto
import string
var passcode = bytes().add(passcode_int, 4) var passcode = bytes().add(passcode_int, 4)
var tv = crypto.PBKDF2_HMAC_SHA256().derive(passcode, salt, iterations, 80) var tv = crypto.PBKDF2_HMAC_SHA256().derive(passcode, salt, iterations, 80)
@ -287,12 +284,11 @@ class Matter_Device
# <BR> # <BR>
# can be done only for root PASE (we need the passcode, but we don't get it with OpenCommissioningWindow command) # can be done only for root PASE (we need the passcode, but we don't get it with OpenCommissioningWindow command)
def compute_manual_pairing_code() def compute_manual_pairing_code()
import string
var digit_1 = (self.root_discriminator & 0x0FFF) >> 10 var digit_1 = (self.root_discriminator & 0x0FFF) >> 10
var digit_2_6 = ((self.root_discriminator & 0x0300) << 6) | (self.root_passcode & 0x3FFF) var digit_2_6 = ((self.root_discriminator & 0x0300) << 6) | (self.root_passcode & 0x3FFF)
var digit_7_10 = (self.root_passcode >> 14) var digit_7_10 = (self.root_passcode >> 14)
var ret = string.format("%1i%05i%04i", digit_1, digit_2_6, digit_7_10) var ret = format("%1i%05i%04i", digit_1, digit_2_6, digit_7_10)
ret += matter.Verhoeff.checksum(ret) ret += matter.Verhoeff.checksum(ret)
return ret return ret
end end
@ -411,7 +407,6 @@ class Matter_Device
def start_operational_discovery(fabric) def start_operational_discovery(fabric)
import crypto import crypto
import mdns import mdns
import string
self.stop_basic_commissioning() # close all PASE commissioning information self.stop_basic_commissioning() # close all PASE commissioning information
# clear any PBKDF information to free memory # clear any PBKDF information to free memory
@ -427,11 +422,10 @@ class Matter_Device
# #
# Stop basic commissioning. # Stop basic commissioning.
def start_commissioning_complete(session) def start_commissioning_complete(session)
import string
var fabric = session.get_fabric() var fabric = session.get_fabric()
var fabric_id = fabric.get_fabric_id().copy().reverse().tohex() var fabric_id = fabric.get_fabric_id().copy().reverse().tohex()
var vendor_name = fabric.get_admin_vendor_name() var vendor_name = fabric.get_admin_vendor_name()
tasmota.log(string.format("MTR: --- Commissioning complete for Fabric '%s' (Vendor %s) ---", fabric_id, vendor_name), 2) tasmota.log(format("MTR: --- Commissioning complete for Fabric '%s' (Vendor %s) ---", fabric_id, vendor_name), 2)
self.stop_basic_commissioning() # by default close commissioning when it's complete self.stop_basic_commissioning() # by default close commissioning when it's complete
end end
@ -513,7 +507,6 @@ class Matter_Device
return l return l
end end
import string
var endpoint = ctx.endpoint var endpoint = ctx.endpoint
# var endpoint_mono = [ endpoint ] # var endpoint_mono = [ endpoint ]
var endpoint_found = false # did any endpoint match var endpoint_found = false # did any endpoint match
@ -526,13 +519,13 @@ class Matter_Device
var direct = (ctx.endpoint != nil) && (ctx.cluster != nil) && (ctx.attribute != nil) # true if the target is a precise attribute, false if it results from an expansion and error are ignored var direct = (ctx.endpoint != nil) && (ctx.cluster != nil) && (ctx.attribute != nil) # true if the target is a precise attribute, false if it results from an expansion and error are ignored
# tasmota.log(string.format("MTR: process_attribute_expansion %s", str(ctx)), 4) # tasmota.log(format("MTR: process_attribute_expansion %s", str(ctx)), 4)
# build the list of candidates # build the list of candidates
# list of all endpoints # list of all endpoints
var all = {} # map of {endpoint: {cluster: {attributes:[pi]}} var all = {} # map of {endpoint: {cluster: {attributes:[pi]}}
# tasmota.log(string.format("MTR: endpoint=%s cluster=%s attribute=%s", endpoint, cluster, attribute), 4) # tasmota.log(format("MTR: endpoint=%s cluster=%s attribute=%s", endpoint, cluster, attribute), 4)
for pi: self.plugins for pi: self.plugins
var ep = pi.get_endpoint() # get supported endpoints for this plugin var ep = pi.get_endpoint() # get supported endpoints for this plugin
@ -543,7 +536,7 @@ class Matter_Device
# now explore the cluster list for 'ep' # now explore the cluster list for 'ep'
var cluster_list = pi.get_cluster_list(ep) # cluster_list is the actual list of candidate cluster for this pluging and endpoint var cluster_list = pi.get_cluster_list(ep) # cluster_list is the actual list of candidate cluster for this pluging and endpoint
# tasmota.log(string.format("MTR: pi=%s ep=%s cl_list=%s", str(pi), str(ep), str(cluster_list)), 4) # tasmota.log(format("MTR: pi=%s ep=%s cl_list=%s", str(pi), str(ep), str(cluster_list)), 4)
for cl: cluster_list for cl: cluster_list
if cluster != nil && cl != cluster continue end # skip if specific cluster and no match if cluster != nil && cl != cluster continue end # skip if specific cluster and no match
# from now on, 'cl' is a good candidate # from now on, 'cl' is a good candidate
@ -552,7 +545,7 @@ class Matter_Device
# now filter on attributes # now filter on attributes
var attr_list = pi.get_attribute_list(ep, cl) var attr_list = pi.get_attribute_list(ep, cl)
# tasmota.log(string.format("MTR: pi=%s ep=%s cl=%s at_list=%s", str(pi), str(ep), str(cl), str(attr_list)), 4) # tasmota.log(format("MTR: pi=%s ep=%s cl=%s at_list=%s", str(pi), str(ep), str(cl), str(attr_list)), 4)
for at: attr_list for at: attr_list
if attribute != nil && at != attribute continue end # skip if specific attribute and no match if attribute != nil && at != attribute continue end # skip if specific attribute and no match
# from now on, 'at' is a good candidate # from now on, 'at' is a good candidate
@ -572,7 +565,7 @@ class Matter_Device
for cl: keys_sorted(all[ep]) for cl: keys_sorted(all[ep])
for at: keys_sorted(all[ep][cl]) for at: keys_sorted(all[ep][cl])
for pi: all[ep][cl][at] for pi: all[ep][cl][at]
# tasmota.log(string.format("MTR: expansion [%02X]%04X/%04X", ep, cl, at), 3) # tasmota.log(format("MTR: expansion [%02X]%04X/%04X", ep, cl, at), 3)
ctx.endpoint = ep ctx.endpoint = ep
ctx.cluster = cl ctx.cluster = cl
ctx.attribute = at ctx.attribute = at
@ -630,9 +623,8 @@ class Matter_Device
############################################################# #############################################################
# #
def save_param() def save_param()
import string
import json import json
var j = string.format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.next_ep) var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.next_ep)
if self.plugins_persist if self.plugins_persist
j += ',"config":' j += ',"config":'
j += json.dump(self.plugins_config) j += json.dump(self.plugins_config)
@ -642,7 +634,7 @@ class Matter_Device
var f = open(self.FILENAME, "w") var f = open(self.FILENAME, "w")
f.write(j) f.write(j)
f.close() f.close()
tasmota.log(string.format("MTR: =Saved parameters%s", self.plugins_persist ? " and configuration" : ""), 3) tasmota.log(format("MTR: =Saved parameters%s", self.plugins_persist ? " and configuration" : ""), 3)
return j return j
except .. as e, m except .. as e, m
tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2) tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
@ -653,7 +645,6 @@ class Matter_Device
############################################################# #############################################################
# Load Matter Device parameters # Load Matter Device parameters
def load_param() def load_param()
import string
import crypto import crypto
try try
@ -694,11 +685,10 @@ class Matter_Device
############################################################# #############################################################
# Convert a configuration to a log string # Convert a configuration to a log string
static def conf_to_log(plugin_conf) static def conf_to_log(plugin_conf)
import string
var param_log = '' var param_log = ''
for k:_class.k2l(plugin_conf) for k:_class.k2l(plugin_conf)
if k == 'type' continue end if k == 'type' continue end
param_log += string.format(" %s:%s", k, plugin_conf[k]) param_log += format(" %s:%s", k, plugin_conf[k])
end end
return param_log return param_log
end end
@ -710,15 +700,13 @@ class Matter_Device
# Ex: # Ex:
# {'32': {'filter': 'AXP192#Temperature', 'type': 'temperature'}, '40': {'filter': 'BMP280#Pressure', 'type': 'pressure'}, '34': {'filter': 'SHT3X#Temperature', 'type': 'temperature'}, '33': {'filter': 'BMP280#Temperature', 'type': 'temperature'}, '1': {'relay': 0, 'type': 'relay'}, '56': {'filter': 'SHT3X#Humidity', 'type': 'humidity'}, '0': {'type': 'root'}} # {'32': {'filter': 'AXP192#Temperature', 'type': 'temperature'}, '40': {'filter': 'BMP280#Pressure', 'type': 'pressure'}, '34': {'filter': 'SHT3X#Temperature', 'type': 'temperature'}, '33': {'filter': 'BMP280#Temperature', 'type': 'temperature'}, '1': {'relay': 0, 'type': 'relay'}, '56': {'filter': 'SHT3X#Humidity', 'type': 'humidity'}, '0': {'type': 'root'}}
def _instantiate_plugins_from_config(config) def _instantiate_plugins_from_config(config)
import string
var endpoints = self.k2l_num(config) var endpoints = self.k2l_num(config)
# tasmota.log("MTR: endpoints to be configured "+str(endpoints), 4) # tasmota.log("MTR: endpoints to be configured "+str(endpoints), 4)
tasmota.log("MTR: Configuring endpoints", 2) tasmota.log("MTR: Configuring endpoints", 2)
# start with mandatory endpoint 0 for root node # start with mandatory endpoint 0 for root node
self.plugins.push(matter.Plugin_Root(self, 0, {})) self.plugins.push(matter.Plugin_Root(self, 0, {}))
tasmota.log(string.format("MTR: endpoint = %5i type:%s%s", 0, 'root', ''), 2) tasmota.log(format("MTR: endpoint = %5i type:%s%s", 0, 'root', ''), 2)
# always include an aggregator for dynamic endpoints # always include an aggregator for dynamic endpoints
self.plugins.push(matter.Plugin_Aggregator(self, 0xFF00, {})) self.plugins.push(matter.Plugin_Aggregator(self, 0xFF00, {}))
@ -727,7 +715,7 @@ class Matter_Device
if ep == 0 continue end # skip endpoint 0 if ep == 0 continue end # skip endpoint 0
try try
var plugin_conf = config[str(ep)] var plugin_conf = config[str(ep)]
# tasmota.log(string.format("MTR: endpoint %i config %s", ep, plugin_conf), 3) # tasmota.log(format("MTR: endpoint %i config %s", ep, plugin_conf), 3)
var pi_class_name = plugin_conf.find('type') var pi_class_name = plugin_conf.find('type')
if pi_class_name == nil tasmota.log("MTR: no class name, skipping", 3) continue end if pi_class_name == nil tasmota.log("MTR: no class name, skipping", 3) continue end
@ -738,12 +726,12 @@ class Matter_Device
var pi = pi_class(self, ep, plugin_conf) var pi = pi_class(self, ep, plugin_conf)
self.plugins.push(pi) self.plugins.push(pi)
tasmota.log(string.format("MTR: endpoint = %5i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2) tasmota.log(format("MTR: endpoint = %5i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
except .. as e, m except .. as e, m
tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2) tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
end end
end end
tasmota.log(string.format("MTR: endpoint = %5i type:%s%s", 0xFF00, 'aggregator', ''), 2) tasmota.log(format("MTR: endpoint = %5i type:%s%s", 0xFF00, 'aggregator', ''), 2)
tasmota.publish_result('{"Matter":{"Initialized":1}}', 'Matter') tasmota.publish_result('{"Matter":{"Initialized":1}}', 'Matter')
end end
@ -813,24 +801,24 @@ class Matter_Device
var eth = tasmota.eth() var eth = tasmota.eth()
self.hostname_eth = string.replace(eth.find("mac"), ':', '') self.hostname_eth = string.replace(eth.find("mac"), ':', '')
if !self.ipv4only if !self.ipv4only
# tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')), 4) # tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_eth, eth.find('ip6local',''), eth.find('ip','')), 4)
mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip',''), eth.find('ip6','')) mdns.add_hostname(self.hostname_eth, eth.find('ip6local',''), eth.find('ip',''), eth.find('ip6',''))
else else
tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, eth.find('ip','')), 3) tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, eth.find('ip','')), 3)
mdns.add_hostname(self.hostname_eth, eth.find('ip','')) mdns.add_hostname(self.hostname_eth, eth.find('ip',''))
end end
else else
var wifi = tasmota.wifi() var wifi = tasmota.wifi()
self.hostname_wifi = string.replace(wifi.find("mac"), ':', '') self.hostname_wifi = string.replace(wifi.find("mac"), ':', '')
if !self.ipv4only if !self.ipv4only
# tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')), 4) # tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s, %s)", self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip','')), 4)
mdns.add_hostname(self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip',''), wifi.find('ip6','')) mdns.add_hostname(self.hostname_wifi, wifi.find('ip6local',''), wifi.find('ip',''), wifi.find('ip6',''))
else else
tasmota.log(string.format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, wifi.find('ip','')), 3) tasmota.log(format("MTR: calling mdns.add_hostname(%s, %s)", self.hostname_eth, wifi.find('ip','')), 3)
mdns.add_hostname(self.hostname_wifi, wifi.find('ip','')) mdns.add_hostname(self.hostname_wifi, wifi.find('ip',''))
end end
end end
tasmota.log(string.format("MTR: start mDNS on %s host '%s.local'", is_eth ? "eth" : "wifi", is_eth ? self.hostname_eth : self.hostname_wifi), 3) tasmota.log(format("MTR: start mDNS on %s host '%s.local'", is_eth ? "eth" : "wifi", is_eth ? self.hostname_eth : self.hostname_wifi), 3)
except .. as e, m except .. as e, m
tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2) tasmota.log("MTR: Exception" + str(e) + "|" + str(m), 2)
end end
@ -842,7 +830,6 @@ class Matter_Device
# Announce MDNS for PASE commissioning # Announce MDNS for PASE commissioning
def mdns_announce_PASE() def mdns_announce_PASE()
import mdns import mdns
import string
import crypto import crypto
var services = { var services = {
@ -859,11 +846,11 @@ class Matter_Device
try try
if self.hostname_eth if self.hostname_eth
# Add Matter `_matterc._udp` service # Add Matter `_matterc._udp` service
# tasmota.log(string.format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_eth, self.hostname_eth), 4) # tasmota.log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_eth, self.hostname_eth), 4)
mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_eth, self.hostname_eth) mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_eth, self.hostname_eth)
self.mdns_pase_eth = true self.mdns_pase_eth = true
tasmota.log(string.format("MTR: announce mDNS on %s '%s' ptr to `%s.local`", "eth", self.commissioning_instance_eth, self.hostname_eth), 2) tasmota.log(format("MTR: announce mDNS on %s '%s' ptr to `%s.local`", "eth", self.commissioning_instance_eth, self.hostname_eth), 2)
# `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil` # `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil`
var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF) var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF)
@ -881,11 +868,11 @@ class Matter_Device
end end
if self.hostname_wifi if self.hostname_wifi
# tasmota.log(string.format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_wifi, self.hostname_wifi), 4) # tasmota.log(format("MTR: calling mdns.add_service(%s, %s, %i, %s, %s, %s)", "_matterc", "_udp", 5540, str(services), self.commissioning_instance_wifi, self.hostname_wifi), 4)
mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_wifi, self.hostname_wifi) mdns.add_service("_matterc", "_udp", 5540, services, self.commissioning_instance_wifi, self.hostname_wifi)
self.mdns_pase_wifi = true self.mdns_pase_wifi = true
tasmota.log(string.format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", "wifi", self.commissioning_instance_wifi, self.hostname_wifi), 3) tasmota.log(format("MTR: starting mDNS on %s '%s' ptr to `%s.local`", "wifi", self.commissioning_instance_wifi, self.hostname_wifi), 3)
# `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil` # `mdns.add_subtype(service:string, proto:string, instance:string, hostname:string, subtype:string) -> nil`
var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF) var subtype = "_L" + str(self.commissioning_discriminator & 0xFFF)
@ -911,18 +898,17 @@ class Matter_Device
# MDNS remove any PASE announce # MDNS remove any PASE announce
def mdns_remove_PASE() def mdns_remove_PASE()
import mdns import mdns
import string
try try
if self.mdns_pase_eth if self.mdns_pase_eth
tasmota.log(string.format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth), 3) tasmota.log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth), 3)
tasmota.log(string.format("MTR: remove mDNS on %s '%s'", "eth", self.commissioning_instance_eth), 3) tasmota.log(format("MTR: remove mDNS on %s '%s'", "eth", self.commissioning_instance_eth), 3)
self.mdns_pase_eth = false self.mdns_pase_eth = false
mdns.remove_service("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth) mdns.remove_service("_matterc", "_udp", self.commissioning_instance_eth, self.hostname_eth)
end end
if self.mdns_pase_wifi if self.mdns_pase_wifi
tasmota.log(string.format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi), 3) tasmota.log(format("MTR: calling mdns.remove_service(%s, %s, %s, %s)", "_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi), 3)
tasmota.log(string.format("MTR: remove mDNS on %s '%s'", "wifi", self.commissioning_instance_wifi), 3) tasmota.log(format("MTR: remove mDNS on %s '%s'", "wifi", self.commissioning_instance_wifi), 3)
self.mdns_pase_wifi = false self.mdns_pase_wifi = false
mdns.remove_service("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi) mdns.remove_service("_matterc", "_udp", self.commissioning_instance_wifi, self.hostname_wifi)
end end
@ -945,7 +931,6 @@ class Matter_Device
# Start UDP mDNS announcements for commissioning # Start UDP mDNS announcements for commissioning
def mdns_announce_op_discovery(fabric) def mdns_announce_op_discovery(fabric)
import mdns import mdns
import string
try try
var device_id = fabric.get_device_id().copy().reverse() var device_id = fabric.get_device_id().copy().reverse()
var k_fabric = fabric.get_fabric_compressed() var k_fabric = fabric.get_fabric_compressed()
@ -954,14 +939,14 @@ class Matter_Device
# mdns # mdns
if (tasmota.eth().find("up")) if (tasmota.eth().find("up"))
tasmota.log(string.format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "eth", op_node, self.hostname_eth), 3) tasmota.log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "eth", op_node, self.hostname_eth), 3)
mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_eth) mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_eth)
var subtype = "_I" + k_fabric.tohex() var subtype = "_I" + k_fabric.tohex()
tasmota.log("MTR: adding subtype: "+subtype, 3) tasmota.log("MTR: adding subtype: "+subtype, 3)
mdns.add_subtype("_matter", "_tcp", op_node, self.hostname_eth, subtype) mdns.add_subtype("_matter", "_tcp", op_node, self.hostname_eth, subtype)
end end
if (tasmota.wifi().find("up")) if (tasmota.wifi().find("up"))
tasmota.log(string.format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "wifi", op_node, self.hostname_wifi), 3) tasmota.log(format("MTR: adding mDNS on %s '%s' ptr to `%s.local`", "wifi", op_node, self.hostname_wifi), 3)
mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_wifi) mdns.add_service("_matter","_tcp", 5540, nil, op_node, self.hostname_wifi)
var subtype = "_I" + k_fabric.tohex() var subtype = "_I" + k_fabric.tohex()
tasmota.log("MTR: adding subtype: "+subtype, 3) tasmota.log("MTR: adding subtype: "+subtype, 3)
@ -986,7 +971,6 @@ class Matter_Device
# Remove mDNS announce for fabric # Remove mDNS announce for fabric
def mdns_remove_op_discovery(fabric) def mdns_remove_op_discovery(fabric)
import mdns import mdns
import string
try try
var device_id = fabric.get_device_id().copy().reverse() var device_id = fabric.get_device_id().copy().reverse()
var k_fabric = fabric.get_fabric_compressed() var k_fabric = fabric.get_fabric_compressed()
@ -994,11 +978,11 @@ class Matter_Device
# mdns # mdns
if (tasmota.eth().find("up")) if (tasmota.eth().find("up"))
tasmota.log(string.format("MTR: remove mDNS on %s '%s'", "eth", op_node), 3) tasmota.log(format("MTR: remove mDNS on %s '%s'", "eth", op_node), 3)
mdns.remove_service("_matter", "_tcp", op_node, self.hostname_eth) mdns.remove_service("_matter", "_tcp", op_node, self.hostname_eth)
end end
if (tasmota.wifi().find("up")) if (tasmota.wifi().find("up"))
tasmota.log(string.format("MTR: remove mDNS on %s '%s'", "wifi", op_node), 3) tasmota.log(format("MTR: remove mDNS on %s '%s'", "wifi", op_node), 3)
mdns.remove_service("_matter", "_tcp", op_node, self.hostname_wifi) mdns.remove_service("_matter", "_tcp", op_node, self.hostname_wifi)
end end
except .. as e, m except .. as e, m
@ -1021,7 +1005,6 @@ class Matter_Device
# Applies only if there are no plugins already configured # Applies only if there are no plugins already configured
## TODO generate map instead ## TODO generate map instead
def autoconf_device() def autoconf_device()
import string
import json import json
if size(self.plugins) > 0 return end # already configured if size(self.plugins) > 0 return end # already configured
@ -1044,7 +1027,6 @@ class Matter_Device
# #
# Applies only if there are no plugins already configured # Applies only if there are no plugins already configured
def autoconf_device_map() def autoconf_device_map()
import string
import json import json
var m = {} var m = {}
@ -1082,14 +1064,14 @@ class Matter_Device
var k = 'SHT' + str(idx) # SHT is zero based var k = 'SHT' + str(idx) # SHT is zero based
if !r_st13.contains(k) break end # no more SHTxxx if !r_st13.contains(k) break end # no more SHTxxx
var d = r_st13[k] var d = r_st13[k]
tasmota.log(string.format("MTR: '%s' = %s", k, str(d)), 3) tasmota.log(format("MTR: '%s' = %s", k, str(d)), 3)
var relay1 = d.find('Relay1', 0) - 1 # relay base 0 or -1 if none var relay1 = d.find('Relay1', 0) - 1 # relay base 0 or -1 if none
var relay2 = d.find('Relay2', 0) - 1 # relay base 0 or -1 if none var relay2 = d.find('Relay2', 0) - 1 # relay base 0 or -1 if none
if relay1 >= 0 relays_reserved.push(relay1) end # mark relay1/2 as non-relays if relay1 >= 0 relays_reserved.push(relay1) end # mark relay1/2 as non-relays
if relay2 >= 0 relays_reserved.push(relay2) end if relay2 >= 0 relays_reserved.push(relay2) end
tasmota.log(string.format("MTR: relay1 = %s, relay2 = %s", relay1, relay2), 3) tasmota.log(format("MTR: relay1 = %s, relay2 = %s", relay1, relay2), 3)
# is there tilt support # is there tilt support
var tilt_array = d.find('TiltConfig') var tilt_array = d.find('TiltConfig')
var tilt_config = tilt_array && (tilt_array[2] > 0) var tilt_config = tilt_array && (tilt_array[2] > 0)
@ -1241,7 +1223,6 @@ class Matter_Device
# `plugin_conf`: map of configuration as native Berry map # `plugin_conf`: map of configuration as native Berry map
# returns endpoint number newly allocated, or `nil` if failed # returns endpoint number newly allocated, or `nil` if failed
def bridge_add_endpoint(pi_class_name, plugin_conf) def bridge_add_endpoint(pi_class_name, plugin_conf)
import string
var pi_class = self.plugins_classes.find(pi_class_name) var pi_class = self.plugins_classes.find(pi_class_name)
if pi_class == nil tasmota.log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 3) return end if pi_class == nil tasmota.log("MTR: unknown class name '"+str(pi_class_name)+"' skipping", 3) return end
@ -1260,7 +1241,7 @@ class Matter_Device
pi_conf[k] = plugin_conf[k] pi_conf[k] = plugin_conf[k]
end end
# add to main # add to main
tasmota.log(string.format("MTR: adding endpoint = %i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2) tasmota.log(format("MTR: adding endpoint = %i type:%s%s", ep, pi_class_name, self.conf_to_log(plugin_conf)), 2)
self.plugins_config[ep_str] = pi_conf self.plugins_config[ep_str] = pi_conf
self.plugins_persist = true self.plugins_persist = true
self.next_ep += 1 # increment next allocated endpoint before saving self.next_ep += 1 # increment next allocated endpoint before saving
@ -1276,7 +1257,6 @@ class Matter_Device
# Remove an existing endpoint # Remove an existing endpoint
# #
def bridge_remove_endpoint(ep) def bridge_remove_endpoint(ep)
import string
import json import json
var ep_str = str(ep) var ep_str = str(ep)
@ -1287,7 +1267,7 @@ class Matter_Device
tasmota.log("MTR: Cannot remove an enpoint not configured: " + ep_str, 3) tasmota.log("MTR: Cannot remove an enpoint not configured: " + ep_str, 3)
return return
end end
tasmota.log(string.format("MTR: deleting endpoint = %i", ep), 2) tasmota.log(format("MTR: deleting endpoint = %i", ep), 2)
self.plugins_config.remove(ep_str) self.plugins_config.remove(ep_str)
self.plugins_persist = true self.plugins_persist = true
@ -1387,7 +1367,6 @@ class Matter_Device
# Remove HTTP remotes that are no longer referenced # Remove HTTP remotes that are no longer referenced
def clean_remotes() def clean_remotes()
import introspect import introspect
import string
# init all remotes with count 0 # init all remotes with count 0
if self.http_remotes if self.http_remotes

View File

@ -102,8 +102,7 @@ class Matter_Fabric : Matter_Expirable
if name != nil if name != nil
return name return name
else else
import string return f"0x{vnd:04X}"
return string.format("0x%04X", vnd)
end end
end end
@ -184,9 +183,8 @@ class Matter_Fabric : Matter_Expirable
# Provide the next counter value, and update the last know persisted if needed # Provide the next counter value, and update the last know persisted if needed
# #
def counter_group_data_snd_next() def counter_group_data_snd_next()
import string
var next = self._counter_group_data_snd_impl.next() var next = self._counter_group_data_snd_impl.next()
tasmota.log(string.format("MTR: . Counter_group_data_snd=%i", next), 3) tasmota.log(f"MTR: . Counter_group_data_snd={next:i}", 3)
if matter.Counter.is_greater(next, self.counter_group_data_snd) if matter.Counter.is_greater(next, self.counter_group_data_snd)
self.counter_group_data_snd = next + self._GROUP_SND_INCR self.counter_group_data_snd = next + self._GROUP_SND_INCR
if self.does_persist() if self.does_persist()
@ -200,9 +198,8 @@ class Matter_Fabric : Matter_Expirable
# Provide the next counter value, and update the last know persisted if needed # Provide the next counter value, and update the last know persisted if needed
# #
def counter_group_ctrl_snd_next() def counter_group_ctrl_snd_next()
import string
var next = self._counter_group_ctrl_snd_impl.next() var next = self._counter_group_ctrl_snd_impl.next()
tasmota.log(string.format("MTR: . Counter_group_ctrl_snd=%i", next), 3) tasmota.log(f"MTR: . Counter_group_ctrl_snd={next:i}", 3)
if matter.Counter.is_greater(next, self.counter_group_ctrl_snd) if matter.Counter.is_greater(next, self.counter_group_ctrl_snd)
self.counter_group_ctrl_snd = next + self._GROUP_SND_INCR self.counter_group_ctrl_snd = next + self._GROUP_SND_INCR
if self.does_persist() if self.does_persist()
@ -216,15 +213,13 @@ class Matter_Fabric : Matter_Expirable
############################################################# #############################################################
# Called before removal # Called before removal
def log_new_fabric() def log_new_fabric()
import string tasmota.log(format("MTR: +Fabric fab='%s' vendorid=%s", self.get_fabric_id().copy().reverse().tohex(), self.get_admin_vendor_name()), 3)
tasmota.log(string.format("MTR: +Fabric fab='%s' vendorid=%s", self.get_fabric_id().copy().reverse().tohex(), self.get_admin_vendor_name()), 3)
end end
############################################################# #############################################################
# Called before removal # Called before removal
def before_remove() def before_remove()
import string tasmota.log(format("MTR: -Fabric fab='%s' (removed)", self.get_fabric_id().copy().reverse().tohex()), 3)
tasmota.log(string.format("MTR: -Fabric fab='%s' (removed)", self.get_fabric_id().copy().reverse().tohex()), 3)
end end
############################################################# #############################################################
@ -287,7 +282,6 @@ class Matter_Fabric : Matter_Expirable
############################################################# #############################################################
def tojson() def tojson()
import json import json
import string
import introspect import introspect
self.persist_pre() self.persist_pre()
@ -303,7 +297,7 @@ class Matter_Fabric : Matter_Expirable
var v = introspect.get(self, k) var v = introspect.get(self, k)
if v == nil continue end if v == nil continue end
if isinstance(v, bytes) v = "$$" + v.tob64() end # bytes if isinstance(v, bytes) v = "$$" + v.tob64() end # bytes
r.push(string.format("%s:%s", json.dump(str(k)), json.dump(v))) r.push(format("%s:%s", json.dump(str(k)), json.dump(v)))
end end
# add sessions # add sessions

View File

@ -251,7 +251,7 @@ class Matter_HTTP_async : Matter_TCP_async
addr = "[" + addr + "]" # IPv6 must be enclosed in brakets addr = "[" + addr + "]" # IPv6 must be enclosed in brakets
end end
var req = string.format(self.HTTP_GET, self.cmd, addr, self.port) var req = format(self.HTTP_GET, self.cmd, addr, self.port)
var ret = self.write(req) var ret = self.write(req)
if ret != size(req) if ret != size(req)
# print("Could not send","size=",size(req),"ret=",ret) # print("Could not send","size=",size(req),"ret=",ret)

View File

@ -123,7 +123,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = cmd self.current_cmd = cmd
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+') var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
tasmota.log(string.format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3) tasmota.log(format("MTR: HTTP async request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3)
var ret = self.begin(cmd_url) var ret = self.begin(cmd_url)
end end
@ -142,20 +142,19 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.current_cmd = nil self.current_cmd = nil
var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+') var cmd_url = "/cm?cmnd=" + string.tr(cmd, ' ', '+')
tasmota.log(string.format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3) tasmota.log(format("MTR: HTTP sync request 'http://%s:%i%s'", self.addr, self.port, cmd_url), 3)
var ret = super(self).begin_sync(cmd_url, timeout) var ret = super(self).begin_sync(cmd_url, timeout)
var payload_short = (ret) ? ret : 'nil' var payload_short = (ret) ? ret : 'nil'
if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end
tasmota.log(string.format("MTR: HTTP sync-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3) tasmota.log(format("MTR: HTTP sync-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
return ret return ret
end end
def event_http_finished() def event_http_finished()
if self.current_cmd == nil return end # do nothing if sync request if self.current_cmd == nil return end # do nothing if sync request
import string
var payload_short = (self.payload != nil) ? self.payload : 'nil' var payload_short = (self.payload != nil) ? self.payload : 'nil'
if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end if size(payload_short) > 30 payload_short = payload_short[0..29] + '...' end
tasmota.log(string.format("MTR: HTTP async-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3) tasmota.log(format("MTR: HTTP async-resp in %i ms from %s: [%i] '%s'", tasmota.millis() - self.time_start, self.addr, size(self.payload), payload_short), 3)
self.dispatch_cb(self.http_status, self.payload) self.dispatch_cb(self.http_status, self.payload)
end end
def event_http_failed() def event_http_failed()
@ -164,9 +163,8 @@ class Matter_HTTP_remote : Matter_HTTP_async
self.dispatch_cb(self.http_status, nil) self.dispatch_cb(self.http_status, nil)
end end
def event_http_timeout() def event_http_timeout()
import string
if self.current_cmd == nil return end # do nothing if sync request if self.current_cmd == nil return end # do nothing if sync request
tasmota.log(string.format("MTR: HTTP timeout http_status=%i phase=%i tcp_status=%i size_payload=%i", self.http_status, self.phase, self.status, size(self.payload)), 3) tasmota.log(format("MTR: HTTP timeout http_status=%i phase=%i tcp_status=%i size_payload=%i", self.http_status, self.phase, self.status, size(self.payload)), 3)
self.dispatch_cb(self.http_status, nil) self.dispatch_cb(self.http_status, nil)
end end
@ -212,7 +210,6 @@ class Matter_HTTP_remote : Matter_HTTP_async
# Show when the device was last seen # Show when the device was last seen
def web_last_seen() def web_last_seen()
import webserver import webserver
import string
var seconds = -1 # default if no known value var seconds = -1 # default if no known value
if self.reachable_utc != nil if self.reachable_utc != nil

View File

@ -83,10 +83,9 @@ class Matter_IM
# #
# return `true` if handled # return `true` if handled
def process_incoming_ack(msg) def process_incoming_ack(msg)
import string
# check if there is an exchange_id interested in receiving this # check if there is an exchange_id interested in receiving this
var message = self.find_sendqueue_by_exchangeid(msg.exchange_id) var message = self.find_sendqueue_by_exchangeid(msg.exchange_id)
# tasmota.log(string.format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 4) # tasmota.log(format("MTR: process_incoming_ack exch=%i message=%i", msg.exchange_id, message != nil ? 1 : 0), 4)
if message if message
return message.ack_received(msg) # dispatch to IM_Message return message.ack_received(msg) # dispatch to IM_Message
end end
@ -179,18 +178,17 @@ class Matter_IM
# or raises an exception # or raises an exception
# return true if we handled the response and ack, false instead # return true if we handled the response and ack, false instead
def process_status_response(msg, val) def process_status_response(msg, val)
import string
var status = val.findsubval(0, 0xFF) var status = val.findsubval(0, 0xFF)
var message = self.find_sendqueue_by_exchangeid(msg.exchange_id) var message = self.find_sendqueue_by_exchangeid(msg.exchange_id)
if status == matter.SUCCESS if status == matter.SUCCESS
if message if message
return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange
else else
tasmota.log(string.format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 3) # don't show 'SUCCESS' to not overflow logs with non-information tasmota.log(format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 3) # don't show 'SUCCESS' to not overflow logs with non-information
end end
else else
# error # error
tasmota.log(string.format("MTR: >Status ERROR = 0x%02X", status), 3) tasmota.log(format("MTR: >Status ERROR = 0x%02X", status), 3)
if message if message
message.status_error_received(msg) message.status_error_received(msg)
self.remove_sendqueue_by_exchangeid(msg.exchange_id) self.remove_sendqueue_by_exchangeid(msg.exchange_id)
@ -204,7 +202,6 @@ class Matter_IM
# #
# query: `ReadRequestMessage` or `SubscribeRequestMessage` # query: `ReadRequestMessage` or `SubscribeRequestMessage`
def _inner_process_read_request(session, query, no_log) def _inner_process_read_request(session, query, no_log)
import string
### Inner function to be iterated upon ### Inner function to be iterated upon
# ret is the ReportDataMessage list to send back # ret is the ReportDataMessage list to send back
@ -215,7 +212,6 @@ class Matter_IM
# #
# should return true if answered, false if passing to next handler # should return true if answered, false if passing to next handler
def read_single_attribute(ret, pi, ctx, direct) def read_single_attribute(ret, pi, ctx, direct)
import string
var TLV = matter.TLV var TLV = matter.TLV
var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute) var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
attr_name = attr_name ? " (" + attr_name + ")" : "" attr_name = attr_name ? " (" + attr_name + ")" : ""
@ -239,10 +235,10 @@ class Matter_IM
var a1_len = a1_tlv.encode_len() var a1_len = a1_tlv.encode_len()
var a1_bytes = bytes(a1_len) # pre-size bytes() to the actual size var a1_bytes = bytes(a1_len) # pre-size bytes() to the actual size
a1_raw = a1_tlv.tlv2raw(a1_bytes) a1_raw = a1_tlv.tlv2raw(a1_bytes)
# tasmota.log(string.format("MTR: guessed len=%i actual=%i '%s'", a1_len, size(a1_raw), a1_raw.tohex()), 2) # tasmota.log(format("MTR: guessed len=%i actual=%i '%s'", a1_len, size(a1_raw), a1_raw.tohex()), 2)
if !no_log if !no_log
tasmota.log(string.format("MTR: >Read_Attr (%6i) %s%s - %s", session.local_session_id, str(ctx), attr_name, res_str), 3) tasmota.log(format("MTR: >Read_Attr (%6i) %s%s - %s", session.local_session_id, str(ctx), attr_name, res_str), 3)
end end
elif ctx.status != nil elif ctx.status != nil
if direct # we report an error only if a concrete direct read, not with wildcards if direct # we report an error only if a concrete direct read, not with wildcards
@ -260,10 +256,10 @@ class Matter_IM
var a1_bytes = bytes(a1_len) # pre-size bytes() to the actual size var a1_bytes = bytes(a1_len) # pre-size bytes() to the actual size
a1_raw = a1_tlv.tlv2raw(a1_bytes) a1_raw = a1_tlv.tlv2raw(a1_bytes)
tasmota.log(string.format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3) tasmota.log(format("MTR: >Read_Attr (%6i) %s%s - STATUS: 0x%02X %s", session.local_session_id, str(ctx), attr_name, ctx.status, ctx.status == matter.UNSUPPORTED_ATTRIBUTE ? "UNSUPPORTED_ATTRIBUTE" : ""), 3)
end end
else else
tasmota.log(string.format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3) tasmota.log(format("MTR: >Read_Attr (%6i) %s%s - IGNORED", session.local_session_id, str(ctx), attr_name), 3)
# ignore if content is nil and status is undefined # ignore if content is nil and status is undefined
found = false found = false
end end
@ -307,9 +303,9 @@ class Matter_IM
# we need expansion, log first # we need expansion, log first
if ctx.cluster != nil && ctx.attribute != nil if ctx.cluster != nil && ctx.attribute != nil
var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute) var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
tasmota.log(string.format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3) tasmota.log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx) + (attr_name ? " (" + attr_name + ")" : "")), 3)
else else
tasmota.log(string.format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3) tasmota.log(format("MTR: >Read_Attr (%6i) %s", session.local_session_id, str(ctx)), 3)
end end
end end
@ -346,7 +342,6 @@ class Matter_IM
# process IM 0x03 Subscribe Request # process IM 0x03 Subscribe Request
# #
def subscribe_request(msg, val) def subscribe_request(msg, val)
import string
var query = matter.SubscribeRequestMessage().from_TLV(val) var query = matter.SubscribeRequestMessage().from_TLV(val)
if !query.keep_subscriptions if !query.keep_subscriptions
@ -366,7 +361,7 @@ class Matter_IM
ctx.attribute = q.attribute ctx.attribute = q.attribute
attr_req.push(str(ctx)) attr_req.push(str(ctx))
end end
tasmota.log(string.format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i", tasmota.log(format("MTR: >Subscribe (%6i) %s (min=%i, max=%i, keep=%i) sub=%i",
msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0, sub.subscription_id), 3) msg.session.local_session_id, attr_req.concat(" "), sub.min_interval, sub.max_interval, query.keep_subscriptions ? 1 : 0, sub.subscription_id), 3)
var ret = self._inner_process_read_request(msg.session, query, true #-no_log-#) var ret = self._inner_process_read_request(msg.session, query, true #-no_log-#)
@ -383,7 +378,6 @@ class Matter_IM
# returns `true` if processed, `false` if silently ignored, # returns `true` if processed, `false` if silently ignored,
# or raises an exception # or raises an exception
def process_invoke_request(msg, val) def process_invoke_request(msg, val)
import string
# structure is `ReadRequestMessage` 10.6.2 p.558 # structure is `ReadRequestMessage` 10.6.2 p.558
# tasmota.log("MTR: IM:invoke_request processing start", 4) # tasmota.log("MTR: IM:invoke_request processing start", 4)
var ctx = matter.Path() var ctx = matter.Path()
@ -405,7 +399,7 @@ class Matter_IM
var ctx_str = str(ctx) # keep string before invoking, it is modified by response var ctx_str = str(ctx) # keep string before invoking, it is modified by response
var res = self.device.invoke_request(msg.session, q.command_fields, ctx) var res = self.device.invoke_request(msg.session, q.command_fields, ctx)
var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : "" var params_log = (ctx.log != nil) ? "(" + str(ctx.log) + ") " : ""
tasmota.log(string.format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), ctx.endpoint != 0 ? 2 : 3 #- don't log for endpoint 0 -# ) tasmota.log(format("MTR: >Command (%6i) %s %s %s", msg.session.local_session_id, ctx_str, cmd_name ? cmd_name : "", params_log), ctx.endpoint != 0 ? 2 : 3 #- don't log for endpoint 0 -# )
ctx.log = nil ctx.log = nil
var a1 = matter.InvokeResponseIB() var a1 = matter.InvokeResponseIB()
if res == true || ctx.status == matter.SUCCESS # special case, just respond ok if res == true || ctx.status == matter.SUCCESS # special case, just respond ok
@ -417,7 +411,7 @@ class Matter_IM
a1.status.status = matter.StatusIB() a1.status.status = matter.StatusIB()
a1.status.status.status = matter.SUCCESS a1.status.status.status = matter.SUCCESS
ret.invoke_responses.push(a1) ret.invoke_responses.push(a1)
tasmota.log(string.format("MTR: <Replied (%6i) OK exch=%i", msg.session.local_session_id, msg.exchange_id), 3) tasmota.log(format("MTR: <Replied (%6i) OK exch=%i", msg.session.local_session_id, msg.exchange_id), 3)
elif res != nil elif res != nil
a1.command = matter.CommandDataIB() a1.command = matter.CommandDataIB()
a1.command.command_path = matter.CommandPathIB() a1.command.command_path = matter.CommandPathIB()
@ -428,7 +422,7 @@ class Matter_IM
ret.invoke_responses.push(a1) ret.invoke_responses.push(a1)
cmd_name = matter.get_command_name(ctx.cluster, ctx.command) cmd_name = matter.get_command_name(ctx.cluster, ctx.command)
tasmota.log(string.format("MTR: <Replied (%6i) %s %s", msg.session.local_session_id, str(ctx), cmd_name ? cmd_name : ""), 3) tasmota.log(format("MTR: <Replied (%6i) %s %s", msg.session.local_session_id, str(ctx), cmd_name ? cmd_name : ""), 3)
elif ctx.status != nil elif ctx.status != nil
a1.status = matter.CommandStatusIB() a1.status = matter.CommandStatusIB()
a1.status.command_path = matter.CommandPathIB() a1.status.command_path = matter.CommandPathIB()
@ -438,9 +432,9 @@ class Matter_IM
a1.status.status = matter.StatusIB() a1.status.status = matter.StatusIB()
a1.status.status.status = ctx.status a1.status.status.status = ctx.status
ret.invoke_responses.push(a1) ret.invoke_responses.push(a1)
tasmota.log(string.format("MTR: <Replied (%6i) Status=0x%02X exch=%i", msg.session.local_session_id, ctx.status, msg.exchange_id), 3) tasmota.log(format("MTR: <Replied (%6i) Status=0x%02X exch=%i", msg.session.local_session_id, ctx.status, msg.exchange_id), 3)
else else
tasmota.log(string.format("MTR: _Ignore (%6i) exch=%i", msg.session.local_session_id, msg.exchange_id), 3) tasmota.log(format("MTR: _Ignore (%6i) exch=%i", msg.session.local_session_id, msg.exchange_id), 3)
# ignore if content is nil and status is undefined # ignore if content is nil and status is undefined
end end
end end
@ -462,7 +456,6 @@ class Matter_IM
# process IM 0x04 Subscribe Response # process IM 0x04 Subscribe Response
# #
def subscribe_response(msg, val) def subscribe_response(msg, val)
import string
var query = matter.SubscribeResponseMessage().from_TLV(val) var query = matter.SubscribeResponseMessage().from_TLV(val)
# tasmota.log("MTR: received SubscribeResponsetMessage=" + str(query), 4) # tasmota.log("MTR: received SubscribeResponsetMessage=" + str(query), 4)
return false return false
@ -472,7 +465,6 @@ class Matter_IM
# process IM 0x05 ReportData # process IM 0x05 ReportData
# #
def report_data(msg, val) def report_data(msg, val)
import string
var query = matter.ReportDataMessage().from_TLV(val) var query = matter.ReportDataMessage().from_TLV(val)
# tasmota.log("MTR: received ReportDataMessage=" + str(query), 4) # tasmota.log("MTR: received ReportDataMessage=" + str(query), 4)
return false return false
@ -482,7 +474,6 @@ class Matter_IM
# process IM 0x06 Write Request # process IM 0x06 Write Request
# #
def process_write_request(msg, val) def process_write_request(msg, val)
import string
var query = matter.WriteRequestMessage().from_TLV(val) var query = matter.WriteRequestMessage().from_TLV(val)
# tasmota.log("MTR: received WriteRequestMessage=" + str(query), 3) # tasmota.log("MTR: received WriteRequestMessage=" + str(query), 3)
@ -502,10 +493,9 @@ class Matter_IM
# #
# should return true if answered, false if failed # should return true if answered, false if failed
def write_single_attribute(ret, pi, ctx, write_data, direct) def write_single_attribute(ret, pi, ctx, write_data, direct)
import string
var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute) var attr_name = matter.get_attribute_name(ctx.cluster, ctx.attribute)
attr_name = attr_name ? " (" + attr_name + ")" : "" attr_name = attr_name ? " (" + attr_name + ")" : ""
# tasmota.log(string.format("MTR: Read Attribute " + str(ctx) + (attr_name ? " (" + attr_name + ")" : ""), 2) # tasmota.log(format("MTR: Read Attribute " + str(ctx) + (attr_name ? " (" + attr_name + ")" : ""), 2)
# Special case to report unsupported item, if pi==nil # Special case to report unsupported item, if pi==nil
ctx.status = matter.UNSUPPORTED_WRITE ctx.status = matter.UNSUPPORTED_WRITE
var res = (pi != nil) ? pi.write_attribute(msg.session, ctx, write_data) : nil var res = (pi != nil) ? pi.write_attribute(msg.session, ctx, write_data) : nil
@ -521,11 +511,11 @@ class Matter_IM
a1.status.status = ctx.status a1.status.status = ctx.status
ret.write_responses.push(a1) ret.write_responses.push(a1)
tasmota.log(string.format("MTR: Write_Attr %s%s - STATUS: 0x%02X %s", str(ctx), attr_name, ctx.status, ctx.status == matter.SUCCESS ? "SUCCESS" : ""), (ctx.endpoint != 0) ? 2 : 3) tasmota.log(format("MTR: Write_Attr %s%s - STATUS: 0x%02X %s", str(ctx), attr_name, ctx.status, ctx.status == matter.SUCCESS ? "SUCCESS" : ""), (ctx.endpoint != 0) ? 2 : 3)
return true return true
end end
else else
tasmota.log(string.format("MTR: Write_Attr %s%s - IGNORED", str(ctx), attr_name), 3) tasmota.log(format("MTR: Write_Attr %s%s - IGNORED", str(ctx), attr_name), 3)
# ignore if content is nil and status is undefined # ignore if content is nil and status is undefined
end end
end end
@ -585,7 +575,6 @@ class Matter_IM
# process IM 0x07 Write Response # process IM 0x07 Write Response
# #
def process_write_response(msg, val) def process_write_response(msg, val)
import string
var query = matter.WriteResponseMessage().from_TLV(val) var query = matter.WriteResponseMessage().from_TLV(val)
# tasmota.log("MTR: received WriteResponseMessage=" + str(query), 4) # tasmota.log("MTR: received WriteResponseMessage=" + str(query), 4)
return false return false
@ -595,7 +584,6 @@ class Matter_IM
# process IM 0x09 Invoke Response # process IM 0x09 Invoke Response
# #
def process_invoke_response(msg, val) def process_invoke_response(msg, val)
import string
var query = matter.InvokeResponseMessage().from_TLV(val) var query = matter.InvokeResponseMessage().from_TLV(val)
# tasmota.log("MTR: received InvokeResponseMessage=" + str(query), 4) # tasmota.log("MTR: received InvokeResponseMessage=" + str(query), 4)
return false return false
@ -605,11 +593,10 @@ class Matter_IM
# process IM 0x0A Timed Request # process IM 0x0A Timed Request
# #
def process_timed_request(msg, val) def process_timed_request(msg, val)
import string
var query = matter.TimedRequestMessage().from_TLV(val) var query = matter.TimedRequestMessage().from_TLV(val)
# tasmota.log("MTR: received TimedRequestMessage=" + str(query), 3) # tasmota.log("MTR: received TimedRequestMessage=" + str(query), 3)
tasmota.log(string.format("MTR: >Command (%6i) TimedRequest=%i", msg.session.local_session_id, query.timeout), 3) tasmota.log(format("MTR: >Command (%6i) TimedRequest=%i", msg.session.local_session_id, query.timeout), 3)
# Send success status report # Send success status report
self.send_status(msg, matter.SUCCESS) self.send_status(msg, matter.SUCCESS)
@ -621,7 +608,6 @@ class Matter_IM
# send regular update for data subscribed # send regular update for data subscribed
# #
def send_subscribe_update(sub) def send_subscribe_update(sub)
import string
var session = sub.session var session = sub.session
# create a fake read request to feed to the ReportData # create a fake read request to feed to the ReportData
@ -637,7 +623,7 @@ class Matter_IM
fake_read.attributes_requests.push(p1) fake_read.attributes_requests.push(p1)
end end
tasmota.log(string.format("MTR: <Sub_Data (%6i) sub=%i", session.local_session_id, sub.subscription_id), 3) tasmota.log(format("MTR: <Sub_Data (%6i) sub=%i", session.local_session_id, sub.subscription_id), 3)
sub.is_keep_alive = false # sending an actual data update sub.is_keep_alive = false # sending an actual data update
var ret = self._inner_process_read_request(session, fake_read) var ret = self._inner_process_read_request(session, fake_read)
@ -653,10 +639,9 @@ class Matter_IM
# send regular update for data subscribed # send regular update for data subscribed
# #
def send_subscribe_heartbeat(sub) def send_subscribe_heartbeat(sub)
import string
var session = sub.session var session = sub.session
tasmota.log(string.format("MTR: <Sub_Alive (%6i) sub=%i", session.local_session_id, sub.subscription_id), 3) tasmota.log(format("MTR: <Sub_Alive (%6i) sub=%i", session.local_session_id, sub.subscription_id), 3)
sub.is_keep_alive = true # sending keep-alive sub.is_keep_alive = true # sending keep-alive
# prepare the response # prepare the response

View File

@ -96,12 +96,11 @@ class Matter_AttributePathIB : Matter_IM_base
def tostring() def tostring()
try try
import string
var s = "" var s = ""
if self.node s += string.format("node=%s ", self.node) end if self.node s += format("node=%s ", self.node) end
s += (self.endpoint != nil ? string.format("[%02X]", self.endpoint) : "[**]") s += (self.endpoint != nil ? format("[%02X]", self.endpoint) : "[**]")
s += (self.cluster != nil ? string.format("%04X/", self.cluster) : "****/") s += (self.cluster != nil ? format("%04X/", self.cluster) : "****/")
s += (self.attribute != nil ? string.format("%04X", self.attribute) : "****") s += (self.attribute != nil ? format("%04X", self.attribute) : "****")
return s return s
except .. as e, m except .. as e, m
return "Exception> " + str(e) + ", " + str(m) return "Exception> " + str(e) + ", " + str(m)

View File

@ -66,8 +66,7 @@ class Matter_IM_Message
# Status Report OK received for previous message, proceed to next (if any) # Status Report OK received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper # return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg) def status_ok_received(msg)
import string # tasmota.log(format("MTR: IM_Message status_ok_received exch=%i", self.resp.exchange_id), 3)
# tasmota.log(string.format("MTR: IM_Message status_ok_received exch=%i", self.resp.exchange_id), 3)
self.expiration = tasmota.millis() + self.MSG_TIMEOUT # give more time self.expiration = tasmota.millis() + self.MSG_TIMEOUT # give more time
if msg if msg
self.resp = msg.build_response(self.resp.opcode, self.resp.x_flag_r, self.resp) # update packet self.resp = msg.build_response(self.resp.opcode, self.resp.x_flag_r, self.resp) # update packet
@ -87,13 +86,12 @@ class Matter_IM_Message
# default responder for data # default responder for data
def send_im(responder) def send_im(responder)
import string # tasmota.log(format("MTR: IM_Message send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
# tasmota.log(string.format("MTR: IM_Message send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
if !self.ready return false end if !self.ready return false end
var resp = self.resp var resp = self.resp
resp.encode_frame(self.data.to_TLV().tlv2raw()) # payload in cleartext resp.encode_frame(self.data.to_TLV().tlv2raw()) # payload in cleartext
resp.encrypt() resp.encrypt()
tasmota.log(string.format("MTR: <snd (%6i) id=%i exch=%i rack=%s", resp.session.local_session_id, resp.message_counter, resp.exchange_id, resp.ack_message_counter), 4) tasmota.log(format("MTR: <snd (%6i) id=%i exch=%i rack=%s", resp.session.local_session_id, resp.message_counter, resp.exchange_id, resp.ack_message_counter), 4)
responder.send_response_frame(resp) responder.send_response_frame(resp)
self.last_counter = resp.message_counter self.last_counter = resp.message_counter
self.finish = true # by default we remove the packet after it is sent self.finish = true # by default we remove the packet after it is sent
@ -164,8 +162,7 @@ class Matter_IM_ReportData : Matter_IM_Message
# default responder for data # default responder for data
def send_im(responder) def send_im(responder)
import string # tasmota.log(format("MTR: IM_ReportData send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
# tasmota.log(string.format("MTR: IM_ReportData send_im exch=%i ready=%i", self.resp.exchange_id, self.ready ? 1 : 0), 3)
if !self.ready return false end if !self.ready return false end
var resp = self.resp # response frame object var resp = self.resp # response frame object
var data = self.data # TLV data of the response (if any) var data = self.data # TLV data of the response (if any)
@ -174,7 +171,7 @@ class Matter_IM_ReportData : Matter_IM_Message
# the message were grouped by right-sized binaries upfront, we just need to send one block at time # the message were grouped by right-sized binaries upfront, we just need to send one block at time
var elements = 1 # number of elements added var elements = 1 # number of elements added
# tasmota.log(string.format("MTR: exch=%i elements=%i msg_sz=%i total=%i", self.get_exchangeid(), elements, msg_sz, sz_attribute_reports), 3) # tasmota.log(format("MTR: exch=%i elements=%i msg_sz=%i total=%i", self.get_exchangeid(), elements, msg_sz, sz_attribute_reports), 3)
var next_elemnts var next_elemnts
if data.attribute_reports != nil if data.attribute_reports != nil
next_elemnts = data.attribute_reports[elements .. ] next_elemnts = data.attribute_reports[elements .. ]
@ -185,11 +182,11 @@ class Matter_IM_ReportData : Matter_IM_Message
end end
if was_chunked if was_chunked
# tasmota.log(string.format("MTR: .Read_Attr next_chunk exch=%i", self.get_exchangeid()), 4) # tasmota.log(format("MTR: .Read_Attr next_chunk exch=%i", self.get_exchangeid()), 4)
end end
if data.more_chunked_messages if data.more_chunked_messages
if !was_chunked if !was_chunked
# tasmota.log(string.format("MTR: .Read_Attr first_chunk exch=%i", self.get_exchangeid()), 4) # tasmota.log(format("MTR: .Read_Attr first_chunk exch=%i", self.get_exchangeid()), 4)
end end
# tasmota.log("MTR: sending TLV" + str(data), 4) # tasmota.log("MTR: sending TLV" + str(data), 4)
end end
@ -203,13 +200,13 @@ class Matter_IM_ReportData : Matter_IM_Message
# print(">>>>> send elements after encode") # print(">>>>> send elements after encode")
resp.encrypt() resp.encrypt()
# print(">>>>> send elements after encrypt") # print(">>>>> send elements after encrypt")
# tasmota.log(string.format("MTR: <snd (%6i) id=%i exch=%i rack=%s", resp.session.local_session_id, resp.message_counter, resp.exchange_id, resp.ack_message_counter), 4) # tasmota.log(format("MTR: <snd (%6i) id=%i exch=%i rack=%s", resp.session.local_session_id, resp.message_counter, resp.exchange_id, resp.ack_message_counter), 4)
responder.send_response_frame(resp) responder.send_response_frame(resp)
self.last_counter = resp.message_counter self.last_counter = resp.message_counter
if next_elemnts != nil && size(next_elemnts) > 0 if next_elemnts != nil && size(next_elemnts) > 0
data.attribute_reports = next_elemnts data.attribute_reports = next_elemnts
# tasmota.log(string.format("MTR: to_be_sent_later size=%i exch=%i", size(data.attribute_reports), resp.exchange_id), 4) # tasmota.log(format("MTR: to_be_sent_later size=%i exch=%i", size(data.attribute_reports), resp.exchange_id), 4)
self.ready = false # wait for Status Report before continuing sending self.ready = false # wait for Status Report before continuing sending
# keep alive # keep alive
else else
@ -246,8 +243,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# ack received, confirm the heartbeat # ack received, confirm the heartbeat
def ack_received(msg) def ack_received(msg)
# import string # tasmota.log(format("MTR: IM_ReportDataSubscribed ack_received sub=%i", self.sub.subscription_id), 3)
# tasmota.log(string.format("MTR: IM_ReportDataSubscribed ack_received sub=%i", self.sub.subscription_id), 3)
super(self).ack_received(msg) super(self).ack_received(msg)
if !self.report_data_phase if !self.report_data_phase
# if ack is received while all data is sent, means that it finished without error # if ack is received while all data is sent, means that it finished without error
@ -262,16 +258,14 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# we received an ACK error, remove subscription # we received an ACK error, remove subscription
def status_error_received(msg) def status_error_received(msg)
# import string # tasmota.log(format("MTR: IM_ReportDataSubscribed status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
# tasmota.log(string.format("MTR: IM_ReportDataSubscribed status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
self.sub.remove_self() self.sub.remove_self()
end end
# ack received for previous message, proceed to next (if any) # ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper # return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg) def status_ok_received(msg)
# import string # tasmota.log(format("MTR: IM_ReportDataSubscribed status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
# tasmota.log(string.format("MTR: IM_ReportDataSubscribed status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
if self.report_data_phase if self.report_data_phase
return super(self).status_ok_received(msg) return super(self).status_ok_received(msg)
else else
@ -284,14 +278,13 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
# returns true if transaction is complete (remove object from queue) # returns true if transaction is complete (remove object from queue)
# default responder for data # default responder for data
def send_im(responder) def send_im(responder)
import string # tasmota.log(format("MTR: IM_ReportDataSubscribed send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
# tasmota.log(string.format("MTR: IM_ReportDataSubscribed send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3) # tasmota.log(format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
# tasmota.log(string.format("MTR: ReportDataSubscribed::send_im size(self.data.attribute_reports)=%i ready=%s report_data_phase=%s", size(self.data.attribute_reports), str(self.ready), str(self.report_data_phase)), 3)
if !self.ready return false end if !self.ready return false end
if size(self.data.attribute_reports) > 0 # do we have still attributes to send if size(self.data.attribute_reports) > 0 # do we have still attributes to send
if self.report_data_phase if self.report_data_phase
super(self).send_im(responder) super(self).send_im(responder)
# tasmota.log(string.format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3) # tasmota.log(format("MTR: ReportDataSubscribed::send_im called super finish=%i", self.finish), 3)
if !self.finish return end # ReportData needs to continue if !self.finish return end # ReportData needs to continue
# ReportData is finished # ReportData is finished
self.report_data_phase = false self.report_data_phase = false
@ -302,7 +295,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
var resp = self.resp.build_standalone_ack(false) var resp = self.resp.build_standalone_ack(false)
resp.encode_frame() resp.encode_frame()
resp.encrypt() resp.encrypt()
tasmota.log(string.format("MTR: <Ack (%6i) ack=%i id=%i", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter), 4) tasmota.log(format("MTR: <Ack (%6i) ack=%i id=%i", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter), 4)
responder.send_response_frame(resp) responder.send_response_frame(resp)
self.last_counter = resp.message_counter self.last_counter = resp.message_counter
self.finish = true self.finish = true
@ -346,8 +339,7 @@ class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData
# ack received, confirm the heartbeat # ack received, confirm the heartbeat
def ack_received(msg) def ack_received(msg)
# import string # tasmota.log(format("MTR: Matter_IM_SubscribedHeartbeat ack_received sub=%i", self.sub.subscription_id), 3)
# tasmota.log(string.format("MTR: Matter_IM_SubscribedHeartbeat ack_received sub=%i", self.sub.subscription_id), 3)
super(self).ack_received(msg) super(self).ack_received(msg)
self.finish = true self.finish = true
return true # proceed to calling send() which removes the message return true # proceed to calling send() which removes the message
@ -355,8 +347,7 @@ class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData
# we received an ACK error, remove subscription # we received an ACK error, remove subscription
def status_error_received(msg) def status_error_received(msg)
# import string # tasmota.log(format("MTR: Matter_IM_SubscribedHeartbeat status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
# tasmota.log(string.format("MTR: Matter_IM_SubscribedHeartbeat status_error_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
self.sub.remove_self() self.sub.remove_self()
return false # let the caller to the ack return false # let the caller to the ack
end end
@ -364,15 +355,13 @@ class Matter_IM_SubscribedHeartbeat : Matter_IM_ReportData
# ack received for previous message, proceed to next (if any) # ack received for previous message, proceed to next (if any)
# return true if we manage the ack ourselves, false if it needs to be done upper # return true if we manage the ack ourselves, false if it needs to be done upper
def status_ok_received(msg) def status_ok_received(msg)
# import string # tasmota.log(format("MTR: Matter_IM_SubscribedHeartbeat status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
# tasmota.log(string.format("MTR: Matter_IM_SubscribedHeartbeat status_ok_received sub=%i exch=%i", self.sub.subscription_id, self.resp.exchange_id), 3)
return false # let the caller to the ack return false # let the caller to the ack
end end
# default responder for data # default responder for data
def send_im(responder) def send_im(responder)
# import string # tasmota.log(format("MTR: Matter_IM_SubscribedHeartbeat send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
# tasmota.log(string.format("MTR: Matter_IM_SubscribedHeartbeat send sub=%i exch=%i ready=%i", self.sub.subscription_id, self.resp.exchange_id, self.ready ? 1 : 0), 3)
if !self.ready return false end if !self.ready return false end
super(self).send_im(responder) super(self).send_im(responder)
@ -398,8 +387,7 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
# default responder for data # default responder for data
def send_im(responder) def send_im(responder)
# import string # tasmota.log(format("MTR: Matter_IM_SubscribeResponse send sub=%i ready=%i", self.sub.subscription_id, self.ready ? 1 : 0), 3)
# tasmota.log(string.format("MTR: Matter_IM_SubscribeResponse send sub=%i ready=%i", self.sub.subscription_id, self.ready ? 1 : 0), 3)
if !self.ready return false end if !self.ready return false end
if self.report_data_phase if self.report_data_phase
super(self).send_im(responder) super(self).send_im(responder)
@ -422,7 +410,7 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
resp.encrypt() resp.encrypt()
responder.send_response_frame(resp) responder.send_response_frame(resp)
self.last_counter = resp.message_counter self.last_counter = resp.message_counter
# tasmota.log(string.format("MTR: Send SubscribeResponseMessage sub=%i id=%i", self.sub.subscription_id, resp.message_counter), 3) # tasmota.log(format("MTR: Send SubscribeResponseMessage sub=%i id=%i", self.sub.subscription_id, resp.message_counter), 3)
self.sub.re_arm() self.sub.re_arm()
self.finish = true # remove exchange self.finish = true # remove exchange
end end
@ -430,10 +418,9 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
# Status ok received # Status ok received
def status_ok_received(msg) def status_ok_received(msg)
import string # tasmota.log(format("MTR: IM_SubscribeResponse status_ok_received sub=%i exch=%i ack=%i last_counter=%i", self.sub.subscription_id, self.resp.exchange_id, msg.ack_message_counter ? msg.ack_message_counter : 0 , self.last_counter), 3)
# tasmota.log(string.format("MTR: IM_SubscribeResponse status_ok_received sub=%i exch=%i ack=%i last_counter=%i", self.sub.subscription_id, self.resp.exchange_id, msg.ack_message_counter ? msg.ack_message_counter : 0 , self.last_counter), 3)
# once we receive ack, open flow for subscriptions # once we receive ack, open flow for subscriptions
tasmota.log(string.format("MTR: >Sub_OK (%6i) sub=%i", msg.session.local_session_id, self.sub.subscription_id), 3) tasmota.log(format("MTR: >Sub_OK (%6i) sub=%i", msg.session.local_session_id, self.sub.subscription_id), 3)
return super(self).status_ok_received(msg) return super(self).status_ok_received(msg)
end end

View File

@ -98,13 +98,12 @@ class Matter_IM_Subscription
# we received a complete ack for previous message, rearm # we received a complete ack for previous message, rearm
def re_arm() def re_arm()
import string
self.wait_status = false self.wait_status = false
var now = tasmota.millis() var now = tasmota.millis()
self.expiration = now + (self.max_interval - self.MAX_INTERVAL_MARGIN) * 1000 self.expiration = now + (self.max_interval - self.MAX_INTERVAL_MARGIN) * 1000
self.not_before = now + self.min_interval * 1000 - 1 self.not_before = now + self.min_interval * 1000 - 1
if !self.is_keep_alive if !self.is_keep_alive
tasmota.log(string.format("MTR: .Sub_Done ( ) sub=%i", self.subscription_id), 3) tasmota.log(format("MTR: .Sub_Done ( ) sub=%i", self.subscription_id), 3)
end end
end end

View File

@ -229,7 +229,6 @@ class Matter_Frame
# Generate a Standalone Acknowledgment # Generate a Standalone Acknowledgment
# Uses `PROTOCOL_ID_SECURE_CHANNEL` no ecnryption required # Uses `PROTOCOL_ID_SECURE_CHANNEL` no ecnryption required
def build_standalone_ack(reliable) def build_standalone_ack(reliable)
import string
# send back response # send back response
var resp = classof(self)(self.message_handler) var resp = classof(self)(self.message_handler)
@ -263,7 +262,6 @@ class Matter_Frame
# #
# if 'resp' is not nil, update frame # if 'resp' is not nil, update frame
def build_response(opcode, reliable, resp) def build_response(opcode, reliable, resp)
import string
# send back response # send back response
if resp == nil if resp == nil
resp = classof(self)(self.message_handler) resp = classof(self)(self.message_handler)
@ -301,8 +299,8 @@ class Matter_Frame
if resp.local_session_id == 0 if resp.local_session_id == 0
var op_name = matter.get_opcode_name(resp.opcode) var op_name = matter.get_opcode_name(resp.opcode)
if !op_name op_name = string.format("0x%02X", resp.opcode) end if !op_name op_name = format("0x%02X", resp.opcode) end
tasmota.log(string.format("MTR: <Replied (%6i) %s", resp.session.local_session_id, op_name), 3) tasmota.log(format("MTR: <Replied (%6i) %s", resp.session.local_session_id, op_name), 3)
end end
return resp return resp
end end
@ -312,7 +310,6 @@ class Matter_Frame
# #
# if 'resp' is not nil, update frame # if 'resp' is not nil, update frame
static def initiate_response(message_handler, session, opcode, reliable, resp) static def initiate_response(message_handler, session, opcode, reliable, resp)
import string
# send back response # send back response
if resp == nil if resp == nil
resp = matter.Frame(message_handler) resp = matter.Frame(message_handler)

View File

@ -44,11 +44,10 @@ class Matter_MessageHandler
# reliable: do we send as reliable message # reliable: do we send as reliable message
# #
def send_simple_ack(frame, reliable) def send_simple_ack(frame, reliable)
import string
if frame.x_flag_r # nothing to respond, check if we need a standalone ack if frame.x_flag_r # nothing to respond, check if we need a standalone ack
var resp = frame.build_standalone_ack(reliable) var resp = frame.build_standalone_ack(reliable)
resp.encode_frame() resp.encode_frame()
tasmota.log(string.format("MTR: <Ack (%6i) ack=%i id=%i %s", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter, reliable ? '{reliable}' : ''), 4) tasmota.log(format("MTR: <Ack (%6i) ack=%i id=%i %s", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter, reliable ? '{reliable}' : ''), 4)
self.send_response_frame(resp) self.send_response_frame(resp)
end end
end end
@ -59,12 +58,11 @@ class Matter_MessageHandler
# reliable: do we send as reliable message # reliable: do we send as reliable message
# #
def send_encrypted_ack(frame, reliable) def send_encrypted_ack(frame, reliable)
import string
if frame.x_flag_r # nothing to respond, check if we need a standalone ack if frame.x_flag_r # nothing to respond, check if we need a standalone ack
var resp = frame.build_standalone_ack(reliable) var resp = frame.build_standalone_ack(reliable)
resp.encode_frame() resp.encode_frame()
resp.encrypt() resp.encrypt()
tasmota.log(string.format("MTR: <Ack* (%6i) ack=%i id=%i %s", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter, reliable ? '{reliable}' : ''), 4) tasmota.log(format("MTR: <Ack* (%6i) ack=%i id=%i %s", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter, reliable ? '{reliable}' : ''), 4)
self.send_response_frame(resp) self.send_response_frame(resp)
end end
end end
@ -76,7 +74,6 @@ class Matter_MessageHandler
# and dispacth to appropriate handler # and dispacth to appropriate handler
# #
def msg_received(raw, addr, port) def msg_received(raw, addr, port)
import string
var ret = false var ret = false
try try
@ -105,7 +102,7 @@ class Matter_MessageHandler
# check if it's a duplicate # check if it's a duplicate
if !session._counter_insecure_rcv.validate(frame.message_counter, false) if !session._counter_insecure_rcv.validate(frame.message_counter, false)
tasmota.log(string.format("MTR: . Duplicate unencrypted message = %i ref = %i", frame.message_counter, session._counter_insecure_rcv.val()), 4) tasmota.log(format("MTR: . Duplicate unencrypted message = %i ref = %i", frame.message_counter, session._counter_insecure_rcv.val()), 4)
self.send_simple_ack(frame, false #-not reliable-#) self.send_simple_ack(frame, false #-not reliable-#)
return false return false
end end
@ -114,10 +111,10 @@ class Matter_MessageHandler
self.device.received_ack(frame) # remove acknowledge packet from sending list self.device.received_ack(frame) # remove acknowledge packet from sending list
if frame.opcode != 0x10 # don't show `MRP_Standalone_Acknowledgement` if frame.opcode != 0x10 # don't show `MRP_Standalone_Acknowledgement`
var op_name = matter.get_opcode_name(frame.opcode) var op_name = matter.get_opcode_name(frame.opcode)
if !op_name op_name = string.format("0x%02X", frame.opcode) end if !op_name op_name = format("0x%02X", frame.opcode) end
tasmota.log(string.format("MTR: >Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3) tasmota.log(format("MTR: >Received (%6i) %s rid=%i exch=%i from [%s]:%i", session.local_session_id, op_name, frame.message_counter, frame.exchange_id, addr, port), 3)
else else
tasmota.log(string.format("MTR: >rcv Ack (%6i) rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.message_counter, frame.x_flag_r ? "{reliable} " : "", frame.exchange_id, str(frame.ack_message_counter), addr, port), 4) tasmota.log(format("MTR: >rcv Ack (%6i) rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.message_counter, frame.x_flag_r ? "{reliable} " : "", frame.exchange_id, str(frame.ack_message_counter), addr, port), 4)
end end
ret = self.commissioning.process_incoming(frame) ret = self.commissioning.process_incoming(frame)
# if ret is false, the implicit Ack was not sent # if ret is false, the implicit Ack was not sent
@ -126,7 +123,7 @@ class Matter_MessageHandler
else else
############################################################# #############################################################
# encrypted message # encrypted message
tasmota.log(string.format("MTR: decode header: local_session_id=%i message_counter=%i", frame.local_session_id, frame.message_counter), 4) tasmota.log(format("MTR: decode header: local_session_id=%i message_counter=%i", frame.local_session_id, frame.message_counter), 4)
var session = self.device.sessions.get_session_by_local_session_id(frame.local_session_id) var session = self.device.sessions.get_session_by_local_session_id(frame.local_session_id)
if session == nil if session == nil
@ -154,11 +151,11 @@ class Matter_MessageHandler
frame.raw .. cleartext # add cleartext frame.raw .. cleartext # add cleartext
# continue decoding # continue decoding
# tasmota.log(string.format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 4) # tasmota.log(format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 4)
frame.decode_payload() frame.decode_payload()
tasmota.log("MTR: > Decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 4) tasmota.log("MTR: > Decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 4)
# tasmota.log(string.format("MTR: >rcv (%6i) [%02X/%02X] rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.protocol_id, frame.opcode, frame.message_counter, frame.exchange_id, str(frame.ack_message_counter), frame.x_flag_r ? "{reliable} " : "", addr, port), 3) # tasmota.log(format("MTR: >rcv (%6i) [%02X/%02X] rid=%i exch=%i ack=%s %sfrom [%s]:%i", session.local_session_id, frame.protocol_id, frame.opcode, frame.message_counter, frame.exchange_id, str(frame.ack_message_counter), frame.x_flag_r ? "{reliable} " : "", addr, port), 3)
self.device.received_ack(frame) # remove acknowledge packet from sending list self.device.received_ack(frame) # remove acknowledge packet from sending list

View File

@ -36,12 +36,11 @@ class Matter_Path
def tostring() def tostring()
try try
import string
var s = "" var s = ""
s += (self.endpoint != nil ? string.format("[%02X]", self.endpoint) : "[**]") s += (self.endpoint != nil ? format("[%02X]", self.endpoint) : "[**]")
s += (self.cluster != nil ? string.format("%04X/", self.cluster) : "****/") s += (self.cluster != nil ? format("%04X/", self.cluster) : "****/")
s += (self.attribute != nil ? string.format("%04X", self.attribute) : "") s += (self.attribute != nil ? format("%04X", self.attribute) : "")
s += (self.command != nil ? string.format("%04X", self.command) : "") s += (self.command != nil ? format("%04X", self.command) : "")
if self.attribute == nil && self.command == nil s += "****" end if self.attribute == nil && self.command == nil s += "****" end
return s return s
except .. as e, m except .. as e, m

View File

@ -38,7 +38,6 @@ class Matter_Plugin_Aggregator : Matter_Plugin
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -53,7 +53,6 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
############################################################# #############################################################
# Constructor # Constructor
def init(device, endpoint, arguments) def init(device, endpoint, arguments)
import string
super(self).init(device, endpoint, arguments) super(self).init(device, endpoint, arguments)
var addr = arguments.find(self.ARG_HTTP) var addr = arguments.find(self.ARG_HTTP)
@ -107,7 +106,6 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
# arg can be nil, in this case `cmd` has it all # arg can be nil, in this case `cmd` has it all
def call_remote_sync(cmd, arg) def call_remote_sync(cmd, arg)
# if !self.http_remote return nil end # if !self.http_remote return nil end
import string
import json import json
var retry = 2 # try 2 times if first failed var retry = 2 # try 2 times if first failed
@ -213,7 +211,6 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
static var PREFIX = "| <i>%s</i> " static var PREFIX = "| <i>%s</i> "
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() self.web_values_prefix()
webserver.content_send("&lt;-- (" + self.NAME + ") --&gt;") webserver.content_send("&lt;-- (" + self.NAME + ") --&gt;")
end end
@ -221,9 +218,8 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
# Show prefix before web value # Show prefix before web value
def web_values_prefix() def web_values_prefix()
import webserver import webserver
import string
var name = self.get_name() var name = self.get_name()
webserver.content_send(string.format(self.PREFIX, name ? webserver.html_escape(name) : "")) webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end end
# Show on/off value as html # Show on/off value as html

View File

@ -90,7 +90,6 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -144,20 +143,18 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("%s", self.web_value_onoff(self.shadow_onoff))) webserver.content_send(format("%s", self.web_value_onoff(self.shadow_onoff)))
end end
# Show prefix before web value # Show prefix before web value
def web_values_prefix() def web_values_prefix()
import webserver import webserver
import string
var name = self.get_name() var name = self.get_name()
if !name if !name
name = "Power" + str(self.tasmota_relay_index) name = "Power" + str(self.tasmota_relay_index)
end end
webserver.content_send(string.format(self.PREFIX, name ? webserver.html_escape(name) : "")) webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end end
end end

View File

@ -79,7 +79,6 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -172,18 +171,16 @@ class Matter_Plugin_Bridge_Light1 : Matter_Plugin_Bridge_Light0
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("%s %s", self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer())) webserver.content_send(format("%s %s", self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer()))
end end
# Show on/off value as html # Show on/off value as html
def web_value_dimmer() def web_value_dimmer()
import string
var bri_html = "" var bri_html = ""
if self.shadow_bri != nil if self.shadow_bri != nil
var bri = tasmota.scale_uint(self.shadow_bri, 0, 254, 0, 100) var bri = tasmota.scale_uint(self.shadow_bri, 0, 254, 0, 100)
bri_html = string.format("%i%%", bri) bri_html = format("%i%%", bri)
end end
return "&#128261; " + bri_html; return "&#128261; " + bri_html;
end end

View File

@ -96,7 +96,6 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -174,20 +173,18 @@ class Matter_Plugin_Bridge_Light2 : Matter_Plugin_Bridge_Light1
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("%s %s %s", webserver.content_send(format("%s %s %s",
self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(), self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
self.web_value_ct())) self.web_value_ct()))
end end
# Show on/off value as html # Show on/off value as html
def web_value_ct() def web_value_ct()
import string
var ct_html = "" var ct_html = ""
if self.shadow_ct != nil if self.shadow_ct != nil
var ct_k = (((1000000 / self.shadow_ct) + 25) / 50) * 50 # convert in Kelvin var ct_k = (((1000000 / self.shadow_ct) + 25) / 50) * 50 # convert in Kelvin
ct_html = string.format("%iK", ct_k) ct_html = format("%iK", ct_k)
end end
return "&#9898; " + ct_html; return "&#9898; " + ct_html;
end end

View File

@ -96,7 +96,6 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -200,22 +199,20 @@ class Matter_Plugin_Bridge_Light3 : Matter_Plugin_Bridge_Light1
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("%s %s %s", webserver.content_send(format("%s %s %s",
self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(), self.web_value_onoff(self.shadow_onoff), self.web_value_dimmer(),
self.web_value_RGB())) self.web_value_RGB()))
end end
# Show on/off value as html # Show on/off value as html
def web_value_RGB() def web_value_RGB()
import string
if self.shadow_hue != nil && self.shadow_sat != nil if self.shadow_hue != nil && self.shadow_sat != nil
var l = light_state(3) # RGB virtual light state object var l = light_state(3) # RGB virtual light state object
l.set_bri(255) # set full brightness to get full range RGB l.set_bri(255) # set full brightness to get full range RGB
l.set_huesat(tasmota.scale_uint(self.shadow_hue, 0, 254, 0, 360), tasmota.scale_uint(self.shadow_sat, 0, 254, 0, 255)) l.set_huesat(tasmota.scale_uint(self.shadow_hue, 0, 254, 0, 360), tasmota.scale_uint(self.shadow_sat, 0, 254, 0, 255))
var rgb_hex = string.format("#%02X%02X%02X", l.r, l.g, l.b) var rgb_hex = format("#%02X%02X%02X", l.r, l.g, l.b)
var rgb_html = string.format('<i class="bxm" style="--cl:%s"></i>%s', rgb_hex, rgb_hex) var rgb_html = format('<i class="bxm" style="--cl:%s"></i>%s', rgb_hex, rgb_hex)
return rgb_html return rgb_html
end end
return "" return ""

View File

@ -38,9 +38,8 @@ class Matter_Plugin_Bridge_OnOff : Matter_Plugin_Bridge_Light0
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("Relay %i %s", self.tasmota_relay_index, self.web_value_onoff(self.shadow_onoff))) webserver.content_send(format("Relay %i %s", self.tasmota_relay_index, self.web_value_onoff(self.shadow_onoff)))
end end
end end

View File

@ -101,10 +101,9 @@ class Matter_Plugin_Bridge_Sensor : Matter_Plugin_Bridge_HTTP
# Show prefix before web value # Show prefix before web value
def web_values_prefix() def web_values_prefix()
import webserver import webserver
import string
var name = self.get_name() var name = self.get_name()
if (!name) name = self.filter_name_html() end if (!name) name = self.filter_name_html() end
webserver.content_send(string.format(self.PREFIX, name ? webserver.html_escape(name) : "")) webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end end
end end

View File

@ -72,7 +72,6 @@ class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -102,20 +101,18 @@ class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_contact))) webserver.content_send(format("Contact%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_contact)))
end end
# Show prefix before web value # Show prefix before web value
def web_values_prefix() def web_values_prefix()
import webserver import webserver
import string
var name = self.get_name() var name = self.get_name()
if !name if !name
name = "Switch" + str(self.tasmota_switch_index) name = "Switch" + str(self.tasmota_switch_index)
end end
webserver.content_send(string.format(self.PREFIX, name ? webserver.html_escape(name) : "")) webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end end
end end
matter.Plugin_Bridge_Sensor_Contact = Matter_Plugin_Bridge_Sensor_Contact matter.Plugin_Bridge_Sensor_Contact = Matter_Plugin_Bridge_Sensor_Contact

View File

@ -57,7 +57,6 @@ class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -91,9 +90,8 @@ class Matter_Plugin_Bridge_Sensor_Humidity : Matter_Plugin_Bridge_Sensor
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("&#x1F4A7; %2.0f%%", webserver.content_send(format("&#x1F4A7; %2.0f%%",
self.shadow_value != nil ? real(self.shadow_value) / 100 : nil)) self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
end end

View File

@ -64,7 +64,6 @@ class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -98,9 +97,8 @@ class Matter_Plugin_Bridge_Sensor_Illuminance : Matter_Plugin_Bridge_Sensor
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("&#128261; %ilux", webserver.content_send(format("&#128261; %ilux",
int(self.shadow_value))) int(self.shadow_value)))
end end

View File

@ -72,7 +72,6 @@ class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -106,20 +105,18 @@ class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("Occupancy%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_occupancy))) webserver.content_send(format("Occupancy%i %s", self.tasmota_switch_index, self.web_value_onoff(self.shadow_occupancy)))
end end
# Show prefix before web value # Show prefix before web value
def web_values_prefix() def web_values_prefix()
import webserver import webserver
import string
var name = self.get_name() var name = self.get_name()
if !name if !name
name = "Switch" + str(self.tasmota_switch_index) name = "Switch" + str(self.tasmota_switch_index)
end end
webserver.content_send(string.format(self.PREFIX, name ? webserver.html_escape(name) : "")) webserver.content_send(format(self.PREFIX, name ? webserver.html_escape(name) : ""))
end end
end end
matter.Plugin_Bridge_Sensor_Occupancy = Matter_Plugin_Bridge_Sensor_Occupancy matter.Plugin_Bridge_Sensor_Occupancy = Matter_Plugin_Bridge_Sensor_Occupancy

View File

@ -57,7 +57,6 @@ class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -91,9 +90,8 @@ class Matter_Plugin_Bridge_Sensor_Pressure : Matter_Plugin_Bridge_Sensor
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("&#x26C5; %i hPa", webserver.content_send(format("&#x26C5; %i hPa",
int(self.shadow_value))) int(self.shadow_value)))
end end

View File

@ -57,7 +57,6 @@ class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -91,9 +90,8 @@ class Matter_Plugin_Bridge_Sensor_Temp : Matter_Plugin_Bridge_Sensor
# Show values of the remote device as HTML # Show values of the remote device as HTML
def web_values() def web_values()
import webserver import webserver
import string
self.web_values_prefix() # display '| ' and name if present self.web_values_prefix() # display '| ' and name if present
webserver.content_send(string.format("&#x2600;&#xFE0F; %.1f °C", webserver.content_send(format("&#x2600;&#xFE0F; %.1f °C",
self.shadow_value != nil ? real(self.shadow_value) / 100 : nil)) self.shadow_value != nil ? real(self.shadow_value) / 100 : nil))
end end

View File

@ -56,7 +56,6 @@ class Matter_Plugin_Device : Matter_Plugin
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -65,7 +65,6 @@ class Matter_Plugin_Light0 : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -72,7 +72,6 @@ class Matter_Plugin_Light1 : Matter_Plugin_Light0
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -79,7 +79,6 @@ class Matter_Plugin_Light2 : Matter_Plugin_Light1
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -71,7 +71,6 @@ class Matter_Plugin_Light3 : Matter_Plugin_Light1
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -87,7 +87,6 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -326,7 +326,6 @@ class Matter_Plugin_Root : Matter_Plugin
# or an `int` to indicate a status # or an `int` to indicate a status
def invoke_request(session, val, ctx) def invoke_request(session, val, ctx)
import crypto import crypto
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var command = ctx.command var command = ctx.command
@ -433,7 +432,7 @@ class Matter_Plugin_Root : Matter_Plugin
var CSRNonce = val.findsubval(0) # octstr 32 var CSRNonce = val.findsubval(0) # octstr 32
if size(CSRNonce) != 32 return nil end # check size on nonce if size(CSRNonce) != 32 return nil end # check size on nonce
var IsForUpdateNOC = val.findsubval(1, false) # bool var IsForUpdateNOC = val.findsubval(1, false) # bool
# tasmota.log(string.format("MTR: CSRRequest CSRNonce=%s IsForUpdateNOC=%s", str(CSRNonce), str(IsForUpdateNOC)), 4) # tasmota.log(format("MTR: CSRRequest CSRNonce=%s IsForUpdateNOC=%s", str(CSRNonce), str(IsForUpdateNOC)), 4)
var csr = session.gen_CSR() var csr = session.gen_CSR()
@ -550,7 +549,7 @@ class Matter_Plugin_Root : Matter_Plugin
elif command == 0x0009 # ---------- UpdateFabricLabel ---------- elif command == 0x0009 # ---------- UpdateFabricLabel ----------
var label = val.findsubval(0) # Label string max 32 var label = val.findsubval(0) # Label string max 32
session.set_fabric_label(label) session.set_fabric_label(label)
tasmota.log(string.format("MTR: . Update fabric '%s' label='%s'", session._fabric.get_fabric_id().copy().reverse().tohex(), str(label)), 3) tasmota.log(format("MTR: . Update fabric '%s' label='%s'", session._fabric.get_fabric_id().copy().reverse().tohex(), str(label)), 3)
ctx.status = matter.SUCCESS # OK ctx.status = matter.SUCCESS # OK
return nil # trigger a standalone ack return nil # trigger a standalone ack
@ -582,7 +581,7 @@ class Matter_Plugin_Root : Matter_Plugin
var iterations = val.findsubval(3) # Iterations u4 var iterations = val.findsubval(3) # Iterations u4
var salt = val.findsubval(4) # Salt octstr var salt = val.findsubval(4) # Salt octstr
tasmota.log(string.format("MTR: OpenCommissioningWindow(timeout=%i, passcode=%s, discriminator=%i, iterations=%i, salt=%s)", tasmota.log(format("MTR: OpenCommissioningWindow(timeout=%i, passcode=%s, discriminator=%i, iterations=%i, salt=%s)",
timeout, passcode_verifier.tohex(), discriminator, iterations, salt.tohex()), 4) timeout, passcode_verifier.tohex(), discriminator, iterations, salt.tohex()), 4)
# check values # check values
@ -630,7 +629,6 @@ class Matter_Plugin_Root : Matter_Plugin
# write an attribute # write an attribute
# #
def write_attribute(session, ctx, write_data) def write_attribute(session, ctx, write_data)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -76,7 +76,6 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -56,7 +56,6 @@ class Matter_Plugin_Sensor_Humidity : Matter_Plugin_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -63,7 +63,6 @@ class Matter_Plugin_Sensor_Illuminance : Matter_Plugin_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -73,7 +73,6 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -71,7 +71,6 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -56,7 +56,6 @@ class Matter_Plugin_Sensor_Pressure : Matter_Plugin_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -56,7 +56,6 @@ class Matter_Plugin_Sensor_Temp : Matter_Plugin_Sensor
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -94,7 +94,6 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute
@ -197,11 +196,10 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
# parse the output from `ShutterPosition` # parse the output from `ShutterPosition`
# Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}` # Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}`
def parse_sensors(payload) def parse_sensors(payload)
import string
var k = "Shutter" + str(self.tasmota_shutter_index + 1) var k = "Shutter" + str(self.tasmota_shutter_index + 1)
if payload.contains(k) if payload.contains(k)
var v = payload[k] var v = payload[k]
# tasmota.log(string.format("MTR: getting shutter values(%i): %s", self.endpoint, str(v)), 2) # tasmota.log(format("MTR: getting shutter values(%i): %s", self.endpoint, str(v)), 2)
# Position # Position
var val_pos = v.find("Position") var val_pos = v.find("Position")
if val_pos != nil if val_pos != nil

View File

@ -60,7 +60,6 @@ class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter
# parse the output from `ShutterPosition` # parse the output from `ShutterPosition`
# Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}` # Ex: `{"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":30}}`
def parse_sensors(payload) def parse_sensors(payload)
import string
var k = "Shutter" + str(self.tasmota_shutter_index + 1) var k = "Shutter" + str(self.tasmota_shutter_index + 1)
if payload.contains(k) if payload.contains(k)
var v = payload[k] var v = payload[k]
@ -98,7 +97,6 @@ class Matter_Plugin_ShutterTilt : Matter_Plugin_Shutter
# read an attribute # read an attribute
# #
def read_attribute(session, ctx) def read_attribute(session, ctx)
import string
var TLV = matter.TLV var TLV = matter.TLV
var cluster = ctx.cluster var cluster = ctx.cluster
var attribute = ctx.attribute var attribute = ctx.attribute

View File

@ -118,8 +118,7 @@ class Matter_Session : Matter_Expirable
############################################################# #############################################################
# Called before removal # Called before removal
def before_remove() def before_remove()
import string tasmota.log(format("MTR: -Session (%6i) (removed)", self.local_session_id), 3)
tasmota.log(string.format("MTR: -Session (%6i) (removed)", self.local_session_id), 3)
end end
############################################################# #############################################################
@ -128,9 +127,8 @@ class Matter_Session : Matter_Expirable
# Provide the next counter value, and update the last know persisted if needed # Provide the next counter value, and update the last know persisted if needed
# #
def counter_snd_next() def counter_snd_next()
import string
var next = self._counter_snd_impl.next() var next = self._counter_snd_impl.next()
# tasmota.log(string.format("MTR: . Counter_snd=%i", next), 4) # tasmota.log(format("MTR: . Counter_snd=%i", next), 4)
if matter.Counter.is_greater(next, self.counter_snd) if matter.Counter.is_greater(next, self.counter_snd)
self.counter_snd = next + self._COUNTER_SND_INCR self.counter_snd = next + self._COUNTER_SND_INCR
if self.does_persist() if self.does_persist()
@ -294,7 +292,6 @@ class Matter_Session : Matter_Expirable
############################################################# #############################################################
def tojson() def tojson()
import json import json
import string
import introspect import introspect
self.persist_pre() self.persist_pre()
@ -314,7 +311,7 @@ class Matter_Session : Matter_Expirable
elif type(v) == 'instance' continue # skip any other instance elif type(v) == 'instance' continue # skip any other instance
end end
r.push(string.format("%s:%s", json.dump(str(k)), json.dump(v))) r.push(format("%s:%s", json.dump(str(k)), json.dump(v)))
end end
self.persist_post() self.persist_post()
return "{" + r.concat(",") + "}" return "{" + r.concat(",") + "}"

View File

@ -275,15 +275,14 @@ class Matter_Session_Store
############################################################# #############################################################
# find session by resumption id # find session by resumption id
def find_session_by_resumption_id(resumption_id) def find_session_by_resumption_id(resumption_id)
import string
if !resumption_id return nil end if !resumption_id return nil end
var i = 0 var i = 0
var sessions = self.sessions var sessions = self.sessions
while i < size(sessions) while i < size(sessions)
var session = sessions[i] var session = sessions[i]
tasmota.log(string.format("MTR: session.resumption_id=%s vs %s", str(session.resumption_id), str(resumption_id)), 4) tasmota.log(format("MTR: session.resumption_id=%s vs %s", str(session.resumption_id), str(resumption_id)), 4)
if session.resumption_id == resumption_id && session.shared_secret != nil if session.resumption_id == resumption_id && session.shared_secret != nil
# tasmota.log(string.format("MTR: session.shared_secret=%s", str(session.shared_secret)), 4) # tasmota.log(format("MTR: session.shared_secret=%s", str(session.shared_secret)), 4)
session.update() session.update()
return session return session
end end
@ -323,12 +322,10 @@ class Matter_Session_Store
fabs = "[" + fabs.concat(",") + "]" fabs = "[" + fabs.concat(",") + "]"
try try
import string
var f = open(self._FABRICS, "w") var f = open(self._FABRICS, "w")
f.write(fabs) f.write(fabs)
f.close() f.close()
tasmota.log(string.format("MTR: =Saved %i fabric(s) and %i session(s)", fabs_size, sessions_saved), 3) tasmota.log(format("MTR: =Saved %i fabric(s) and %i session(s)", fabs_size, sessions_saved), 3)
self.device.event_fabrics_saved() # signal event self.device.event_fabrics_saved() # signal event
except .. as e, m except .. as e, m
tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2) tasmota.log("MTR: Session_Store::save Exception:" + str(e) + "|" + str(m), 2)
@ -338,7 +335,6 @@ class Matter_Session_Store
############################################################# #############################################################
# load fabrics and associated sessions # load fabrics and associated sessions
def load_fabrics() def load_fabrics()
import string
try try
self.sessions = matter.Expirable_list() # remove any left-over self.sessions = matter.Expirable_list() # remove any left-over
self.fabrics = matter.Expirable_list() # remove any left-over self.fabrics = matter.Expirable_list() # remove any left-over
@ -373,7 +369,7 @@ class Matter_Session_Store
self.fabrics.push(fabric) self.fabrics.push(fabric)
end end
tasmota.log(string.format("MTR: Loaded %i fabric(s)", size(self.fabrics)), 2) tasmota.log(format("MTR: Loaded %i fabric(s)", size(self.fabrics)), 2)
except .. as e, m except .. as e, m
if e != "io_error" if e != "io_error"
tasmota.log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2) tasmota.log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2)

View File

@ -81,8 +81,7 @@ class Matter_TCP_async
end end
return true return true
else else
import string tasmota.log(format("BRY: failed to resolve [%s]:%i", self.addr, self.port), 3)
tasmota.log(string.format("BRY: failed to resolve [%s]:%i", self.addr, self.port), 3)
self.close() self.close()
self.status = -1 self.status = -1
self.tcp_connected = false self.tcp_connected = false

View File

@ -136,34 +136,33 @@ class Matter_TLV
# We are trying to follow the official Matter way of printing TLV # We are trying to follow the official Matter way of printing TLV
# Ex: '42U' or '1 = 42U' or '0xFFF1::0xDEED:0xAA55FEED = 42U' # Ex: '42U' or '1 = 42U' or '0xFFF1::0xDEED:0xAA55FEED = 42U'
def tostring() def tostring()
import string
# var s = "<instance: Matter_TLV_item(" # var s = "<instance: Matter_TLV_item("
var s = "" var s = ""
try # any exception raised in `tostring()` causes a crash, so better catch it here try # any exception raised in `tostring()` causes a crash, so better catch it here
if self.tag_profile == -1 if self.tag_profile == -1
s += "Matter::" s += "Matter::"
if self.tag_number != nil s += string.format("0x%08X ", self.tag_number) end if self.tag_number != nil s += format("0x%08X ", self.tag_number) end
else else
if self.tag_vendor != nil s += string.format("0x%04X::", self.tag_vendor) end if self.tag_vendor != nil s += format("0x%04X::", self.tag_vendor) end
if self.tag_profile != nil s += string.format("0x%04X:", self.tag_profile) end if self.tag_profile != nil s += format("0x%04X:", self.tag_profile) end
if self.tag_number != nil s += string.format("0x%08X ", self.tag_number) end if self.tag_number != nil s += format("0x%08X ", self.tag_number) end
if self.tag_sub != nil s += string.format("%i ", self.tag_sub) end if self.tag_sub != nil s += format("%i ", self.tag_sub) end
end end
if size(s) > 0 s += "= " end if size(s) > 0 s += "= " end
# print value # print value
if type(self.val) == 'int' s += string.format("%i", self.val) if type(self.val) == 'int' s += format("%i", self.val)
if self.typ >= self.TLV.U1 && self.typ <= self.TLV.U8 s += "U" end if self.typ >= self.TLV.U1 && self.typ <= self.TLV.U8 s += "U" end
elif type(self.val) == 'bool' s += self.val ? "true" : "false" elif type(self.val) == 'bool' s += self.val ? "true" : "false"
elif self.val == nil s += "null" elif self.val == nil s += "null"
elif type(self.val) == 'real' s += string.format("%g", self.val) elif type(self.val) == 'real' s += format("%g", self.val)
elif type(self.val) == 'string' s += string.format('"%s"', self.val) elif type(self.val) == 'string' s += format('"%s"', self.val)
elif isinstance(self.val, int64) s += self.val.tostring() elif isinstance(self.val, int64) s += self.val.tostring()
if self.typ >= self.TLV.U1 && self.typ <= self.TLV.U8 s += "U" end if self.typ >= self.TLV.U1 && self.typ <= self.TLV.U8 s += "U" end
elif type(self.val) == 'instance' elif type(self.val) == 'instance'
s += string.format("%s", self.val.tohex()) s += format("%s", self.val.tohex())
end end
except .. as e, m except .. as e, m
@ -572,18 +571,17 @@ class Matter_TLV
end end
def tostring_inner(sorted, pre, post) def tostring_inner(sorted, pre, post)
import string
var s = "" var s = ""
try try
if self.tag_profile == -1 if self.tag_profile == -1
s += "Matter::" s += "Matter::"
if self.tag_number != nil s += string.format("0x%08X ", self.tag_number) end if self.tag_number != nil s += format("0x%08X ", self.tag_number) end
else else
if self.tag_vendor != nil s += string.format("0x%04X::", self.tag_vendor) end if self.tag_vendor != nil s += format("0x%04X::", self.tag_vendor) end
if self.tag_profile != nil s += string.format("0x%04X:", self.tag_profile) end if self.tag_profile != nil s += format("0x%04X:", self.tag_profile) end
if self.tag_number != nil s += string.format("0x%08X ", self.tag_number) end if self.tag_number != nil s += format("0x%08X ", self.tag_number) end
if self.tag_sub != nil s += string.format("%i ", self.tag_sub) end if self.tag_sub != nil s += format("%i ", self.tag_sub) end
end end
if size(s) > 0 s += "= " end if size(s) > 0 s += "= " end

View File

@ -116,7 +116,6 @@ class Matter_UDPServer
# avoid any starvation. # avoid any starvation.
# Then resend queued outgoing packets. # Then resend queued outgoing packets.
def every_50ms() def every_50ms()
import string
var packet_read = 0 var packet_read = 0
if self.udp_socket == nil return end if self.udp_socket == nil return end
var packet = self.udp_socket.read() var packet = self.udp_socket.read()
@ -125,7 +124,7 @@ class Matter_UDPServer
packet_read += 1 packet_read += 1
var from_addr = self.udp_socket.remote_ip var from_addr = self.udp_socket.remote_ip
var from_port = self.udp_socket.remote_port var from_port = self.udp_socket.remote_port
tasmota.log(string.format("MTR: UDP received from [%s]:%i", from_addr, from_port), 4) tasmota.log(format("MTR: UDP received from [%s]:%i", from_addr, from_port), 4)
if self.dispatch_cb if self.dispatch_cb
self.dispatch_cb(packet, from_addr, from_port) self.dispatch_cb(packet, from_addr, from_port)
end end
@ -144,12 +143,11 @@ class Matter_UDPServer
# #
# Returns `true` if packet was successfully sent. # Returns `true` if packet was successfully sent.
def send(packet) def send(packet)
import string
var ok = self.udp_socket.send(packet.addr ? packet.addr : self.udp_socket.remote_ip, packet.port ? packet.port : self.udp_socket.remote_port, packet.raw) var ok = self.udp_socket.send(packet.addr ? packet.addr : self.udp_socket.remote_ip, packet.port ? packet.port : self.udp_socket.remote_port, packet.raw)
if ok if ok
tasmota.log(string.format("MTR: sending packet to '[%s]:%i'", packet.addr, packet.port), 4) tasmota.log(format("MTR: sending packet to '[%s]:%i'", packet.addr, packet.port), 4)
else else
tasmota.log(string.format("MTR: error sending packet to '[%s]:%i'", packet.addr, packet.port), 3) tasmota.log(format("MTR: error sending packet to '[%s]:%i'", packet.addr, packet.port), 3)
end end
return ok return ok
end end
@ -175,9 +173,8 @@ class Matter_UDPServer
packet.retries += 1 packet.retries += 1
idx += 1 idx += 1
else else
import string
self.packets_sent.remove(idx) self.packets_sent.remove(idx)
tasmota.log(string.format("MTR: . (%6i) Unacked packet '[%s]:%i' msg_id=%i", packet.session_id, packet.addr, packet.port, packet.msg_id), 3) tasmota.log(format("MTR: . (%6i) Unacked packet '[%s]:%i' msg_id=%i", packet.session_id, packet.addr, packet.port, packet.msg_id), 3)
end end
else else
idx += 1 idx += 1

View File

@ -207,7 +207,6 @@ class Matter_UI
#- ---------------------------------------------------------------------- -# #- ---------------------------------------------------------------------- -#
def show_fabric_info() def show_fabric_info()
import webserver import webserver
import string
webserver.content_send("<fieldset><legend><b>&nbsp;Fabrics&nbsp;</b></legend><p></p>" webserver.content_send("<fieldset><legend><b>&nbsp;Fabrics&nbsp;</b></legend><p></p>"
"<p>Associated fabrics:</p>") "<p>Associated fabrics:</p>")
@ -498,7 +497,7 @@ class Matter_UI
webserver.content_send("<option value='' disabled>--- Tasmota Remote ---</option>") webserver.content_send("<option value='' disabled>--- Tasmota Remote ---</option>")
else else
var nam = self.device.get_plugin_class_displayname(typ) var nam = self.device.get_plugin_class_displayname(typ)
webserver.content_send(string.format("<option value='%s'%s>%s</option>", typ, (typ == cur) ? " selected" : "", nam)) webserver.content_send(format("<option value='%s'%s>%s</option>", typ, (typ == cur) ? " selected" : "", nam))
end end
i += 1 i += 1
end end
@ -510,7 +509,6 @@ class Matter_UI
####################################################################### #######################################################################
def page_part_mgr_adv() def page_part_mgr_adv()
import webserver import webserver
import string
if !webserver.check_privileged_access() return nil end if !webserver.check_privileged_access() return nil end
@ -531,7 +529,6 @@ class Matter_UI
####################################################################### #######################################################################
def page_part_mgr() def page_part_mgr()
import webserver import webserver
import string
if !webserver.check_privileged_access() return nil end if !webserver.check_privileged_access() return nil end
@ -616,7 +613,6 @@ class Matter_UI
#- ---------------------------------------------------------------------- -# #- ---------------------------------------------------------------------- -#
def show_remote_autoconf(url) def show_remote_autoconf(url)
import webserver import webserver
import string
import json import json
if url == '' return end if url == '' return end
@ -635,7 +631,7 @@ class Matter_UI
end end
if status8 != nil && status11 != nil if status8 != nil && status11 != nil
tasmota.log(string.format("MTR: probed '%s' status8=%s satus11=%s", url, str(status8), str(status11)), 3) tasmota.log(format("MTR: probed '%s' status8=%s satus11=%s", url, str(status8), str(status11)), 3)
var config_list = self.generate_config_from_status(status8, status11) var config_list = self.generate_config_from_status(status8, status11)
@ -644,7 +640,7 @@ class Matter_UI
webserver.content_send("<fieldset><legend><b>&nbsp;Matter Remote Device&nbsp;</b></legend><p></p>" webserver.content_send("<fieldset><legend><b>&nbsp;Matter Remote Device&nbsp;</b></legend><p></p>"
"<p><b>Add Remote sensor or device</b></p>") "<p><b>Add Remote sensor or device</b></p>")
webserver.content_send(string.format("<p>&#x1F517; <a target='_blank' href=\"http://%s/?\">%s</a></p>", webserver.html_escape(url), webserver.html_escape(url))) webserver.content_send(format("<p>&#x1F517; <a target='_blank' href=\"http://%s/?\">%s</a></p>", webserver.html_escape(url), webserver.html_escape(url)))
# Add new endpoint section # Add new endpoint section
webserver.content_send("<form action='/matterc' method='post'>" webserver.content_send("<form action='/matterc' method='post'>"
@ -655,7 +651,7 @@ class Matter_UI
"<td style='font-size:smaller;'>Parameter</td>" "<td style='font-size:smaller;'>Parameter</td>"
"</tr>") "</tr>")
webserver.content_send(string.format("<input name='url' type='hidden' value='%s'>", webserver.html_escape(url))) webserver.content_send(format("<input name='url' type='hidden' value='%s'>", webserver.html_escape(url)))
var i = 0 var i = 0
while i < size(config_list) while i < size(config_list)
@ -669,23 +665,23 @@ class Matter_UI
arg = cl.ui_conf_to_string(cl, config) arg = cl.ui_conf_to_string(cl, config)
end end
webserver.content_send(string.format("<tr><td style='font-size:smaller;'><input type='text' name='nam%i' size='1' value='' placeholder='(optional)'></td>", i)) webserver.content_send(format("<tr><td style='font-size:smaller;'><input type='text' name='nam%i' size='1' value='' placeholder='(optional)'></td>", i))
webserver.content_send(string.format("<td style='font-size:smaller;'><select name='pi%i' onchange='otm(\"arg%i\",this.value)'>", i, i)) webserver.content_send(format("<td style='font-size:smaller;'><select name='pi%i' onchange='otm(\"arg%i\",this.value)'>", i, i))
self.plugin_option(typ, self._CLASSES_TYPES2) self.plugin_option(typ, self._CLASSES_TYPES2)
webserver.content_send("</select></td>" webserver.content_send("</select></td>"
"<td style='font-size:smaller;'>") "<td style='font-size:smaller;'>")
webserver.content_send(string.format("<input type='text' id='arg%i' name='arg%i' size='1' value='%s' placeholder='%s'>", webserver.content_send(format("<input type='text' id='arg%i' name='arg%i' size='1' value='%s' placeholder='%s'>",
i, i, webserver.html_escape(arg), cl ? webserver.html_escape(cl.ARG_HINT) : '')) i, i, webserver.html_escape(arg), cl ? webserver.html_escape(cl.ARG_HINT) : ''))
webserver.content_send("</td></tr>") webserver.content_send("</td></tr>")
i += 1 i += 1
end end
# empty line for new endpoint # empty line for new endpoint
webserver.content_send(string.format("<tr><td style='font-size:smaller;'><input type='text' name='nam%i' size='1' value='' placeholder='(optional)'></td>", i)) webserver.content_send(format("<tr><td style='font-size:smaller;'><input type='text' name='nam%i' size='1' value='' placeholder='(optional)'></td>", i))
webserver.content_send(string.format("<td style='font-size:smaller;'><select name='pi%i' onchange='otm(\"arg%i\",this.value)'>", i, i)) webserver.content_send(format("<td style='font-size:smaller;'><select name='pi%i' onchange='otm(\"arg%i\",this.value)'>", i, i))
self.plugin_option('', self._CLASSES_TYPES2) self.plugin_option('', self._CLASSES_TYPES2)
webserver.content_send("</select></td>" webserver.content_send("</select></td>"
"<td style='font-size:smaller;'>") "<td style='font-size:smaller;'>")
webserver.content_send(string.format("<input type='text' id='arg%i' name='arg%i' size='1' value='%s'>", webserver.content_send(format("<input type='text' id='arg%i' name='arg%i' size='1' value='%s'>",
i, i, '')) i, i, ''))
webserver.content_send("</td></tr>") webserver.content_send("</td></tr>")
@ -699,7 +695,7 @@ class Matter_UI
webserver.content_send("</form></fieldset>") webserver.content_send("</form></fieldset>")
else else
webserver.content_send(string.format("<p><b>Unable to connect to '%s'</b></p>", webserver.html_escape(url))) webserver.content_send(format("<p><b>Unable to connect to '%s'</b></p>", webserver.html_escape(url)))
end end
@ -710,7 +706,6 @@ class Matter_UI
####################################################################### #######################################################################
def page_part_mgr_add() def page_part_mgr_add()
import webserver import webserver
import string
if !webserver.check_privileged_access() return nil end if !webserver.check_privileged_access() return nil end
@ -743,14 +738,14 @@ class Matter_UI
# debug information about parameters # debug information about parameters
for i:0..webserver.arg_size()-1 for i:0..webserver.arg_size()-1
tasmota.log(string.format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i))) tasmota.log(format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i)))
end end
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
# Change Passcode and/or Passcode # Change Passcode and/or Passcode
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
if webserver.has_arg("passcode") || webserver.has_arg("discriminator") if webserver.has_arg("passcode") || webserver.has_arg("discriminator")
tasmota.log(string.format("MTR: /matterc received '%s' command", 'passcode'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'passcode'), 3)
if webserver.has_arg("passcode") if webserver.has_arg("passcode")
self.device.root_passcode = int(webserver.arg("passcode")) self.device.root_passcode = int(webserver.arg("passcode"))
end end
@ -769,10 +764,10 @@ class Matter_UI
if matter_enabled_requested != self.matter_enabled() if matter_enabled_requested != self.matter_enabled()
if matter_enabled_requested if matter_enabled_requested
tasmota.log(string.format("MTR: /matterc received '%s' command", 'enable'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'enable'), 3)
tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 1") tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 1")
else else
tasmota.log(string.format("MTR: /matterc received '%s' command", 'disable'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'disable'), 3)
tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 0") tasmota.cmd("SetOption" + str(matter.MATTER_OPTION) + " 0")
end end
#- and force restart -# #- and force restart -#
@ -794,7 +789,7 @@ class Matter_UI
# Delete Fabric # Delete Fabric
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
elif webserver.has_arg("del_fabric") elif webserver.has_arg("del_fabric")
tasmota.log(string.format("MTR: /matterc received '%s' command", 'del_fabric'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'del_fabric'), 3)
var del_fabric = int(webserver.arg("del_fabric")) var del_fabric = int(webserver.arg("del_fabric"))
var idx = 0 var idx = 0
var fabrics = self.device.sessions.fabrics var fabrics = self.device.sessions.fabrics
@ -813,7 +808,7 @@ class Matter_UI
# Reset to default auto-configuration # Reset to default auto-configuration
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
elif webserver.has_arg("auto") elif webserver.has_arg("auto")
tasmota.log(string.format("MTR: /matterc received '%s' command", 'auto'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'auto'), 3)
self.device.plugins_persist = false self.device.plugins_persist = false
self.device.save_param() self.device.save_param()
#- and force restart -# #- and force restart -#
@ -823,7 +818,7 @@ class Matter_UI
# Apply new configuration template # Apply new configuration template
#---------------------------------------------------------------------# #---------------------------------------------------------------------#
elif webserver.has_arg("config") elif webserver.has_arg("config")
tasmota.log(string.format("MTR: /matterc received '%s' command", 'config'), 3) tasmota.log(format("MTR: /matterc received '%s' command", 'config'), 3)
var needs_saving = false var needs_saving = false
# iterate by endpoint number # iterate by endpoint number
for i:0..webserver.arg_size()-1 for i:0..webserver.arg_size()-1
@ -837,25 +832,25 @@ class Matter_UI
if conf_ep != nil # found if conf_ep != nil # found
var typ_class = self.device.plugins_classes.find(conf_ep.find('type', '')) var typ_class = self.device.plugins_classes.find(conf_ep.find('type', ''))
if typ_class != nil if typ_class != nil
tasmota.log(string.format("MTR: ep=%i arg=%s", arg_ep, arg), 3) tasmota.log(format("MTR: ep=%i arg=%s", arg_ep, arg), 3)
# compute the actual value # compute the actual value
var prev_arg = typ_class.ui_conf_to_string(typ_class, conf_ep) var prev_arg = typ_class.ui_conf_to_string(typ_class, conf_ep)
var changed = (prev_arg != arg) var changed = (prev_arg != arg)
tasmota.log(string.format("MTR: ep=%i prev_arg='%s' arg='%s' %s", arg_ep, prev_arg, arg, prev_arg != arg ? "changed" : ""), 3) tasmota.log(format("MTR: ep=%i prev_arg='%s' arg='%s' %s", arg_ep, prev_arg, arg, prev_arg != arg ? "changed" : ""), 3)
if changed if changed
needs_saving = true needs_saving = true
typ_class.ui_string_to_conf(typ_class, conf_ep, arg) typ_class.ui_string_to_conf(typ_class, conf_ep, arg)
var pl = self.device.find_plugin_by_endpoint(arg_ep) var pl = self.device.find_plugin_by_endpoint(arg_ep)
if pl if pl
tasmota.log(string.format("MTR: apply conf '%s' (%i) to %s", conf_ep, arg_ep, pl), 3) tasmota.log(format("MTR: apply conf '%s' (%i) to %s", conf_ep, arg_ep, pl), 3)
pl.parse_configuration(conf_ep) pl.parse_configuration(conf_ep)
end end
end end
end end
else else
tasmota.log(string.format("MTR: ep=%i not found", arg_ep), 3) tasmota.log(format("MTR: ep=%i not found", arg_ep), 3)
end end
elif string.find(arg_name, "nam") == 0 # 'nam<i>' with i being the endpoint elif string.find(arg_name, "nam") == 0 # 'nam<i>' with i being the endpoint
var nam_ep = int(arg_name[3..]) # target endpoint as int var nam_ep = int(arg_name[3..]) # target endpoint as int
@ -877,7 +872,7 @@ class Matter_UI
else else
conf_ep.remove('name') conf_ep.remove('name')
end end
tasmota.log(string.format("MTR: apply name '%s' (%i) to %s", conf_ep, nam_ep, pl), 3) tasmota.log(format("MTR: apply name '%s' (%i) to %s", conf_ep, nam_ep, pl), 3)
pl.parse_configuration(conf_ep) pl.parse_configuration(conf_ep)
end end
end end
@ -885,10 +880,10 @@ class Matter_UI
end end
end end
tasmota.log(string.format("MTR: config = %s", str(self.device.plugins_config)), 3) tasmota.log(format("MTR: config = %s", str(self.device.plugins_config)), 3)
if error if error
tasmota.log(string.format("MTR: config error = %s", error), 3) tasmota.log(format("MTR: config error = %s", error), 3)
else else
if needs_saving || !self.device.plugins_persist if needs_saving || !self.device.plugins_persist
self.device.plugins_persist = true self.device.plugins_persist = true
@ -904,7 +899,7 @@ class Matter_UI
var typ = webserver.arg('pi') var typ = webserver.arg('pi')
var arg = webserver.arg('arg') var arg = webserver.arg('arg')
var nam = webserver.arg('nam') var nam = webserver.arg('nam')
tasmota.log(string.format("MTR: add endpoint typ='%s' arg='%s'", typ, arg), 3) tasmota.log(format("MTR: add endpoint typ='%s' arg='%s'", typ, arg), 3)
# check if type exists # check if type exists
var typ_class = self.device.plugins_classes.find(typ) var typ_class = self.device.plugins_classes.find(typ)
@ -944,12 +939,12 @@ class Matter_UI
# check if configuration is already present # check if configuration is already present
var duplicate = false var duplicate = false
for c: self.device.plugins_config # iterate on values, not on keys() for c: self.device.plugins_config # iterate on values, not on keys()
# tasmota.log(string.format("MTR: map_compare '%s' ?= '%s' -> %s", str(c), str(config), str(self.equal_map(c,config))), 3) # tasmota.log(format("MTR: map_compare '%s' ?= '%s' -> %s", str(c), str(config), str(self.equal_map(c,config))), 3)
if self.equal_map(c,config) duplicate = true break end if self.equal_map(c,config) duplicate = true break end
end end
# not a duplicate, add it # not a duplicate, add it
if !duplicate if !duplicate
tasmota.log(string.format("MTR: remote add url='%s' type='%s' arg='%s'", url, typ, arg), 3) tasmota.log(format("MTR: remote add url='%s' type='%s' arg='%s'", url, typ, arg), 3)
self.device.bridge_add_endpoint(typ, config) self.device.bridge_add_endpoint(typ, config)
end end
end end
@ -984,18 +979,18 @@ class Matter_UI
if error if error
webserver.content_start("Parameter error") #- title of the web page -# webserver.content_start("Parameter error") #- title of the web page -#
webserver.content_send_style() #- send standard Tasmota styles -# webserver.content_send_style() #- send standard Tasmota styles -#
webserver.content_send(string.format("<p style='width:340px;'><b>Error:</b>%s</p>", webserver.html_escape(error))) webserver.content_send(format("<p style='width:340px;'><b>Error:</b>%s</p>", webserver.html_escape(error)))
webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to configuration page -# webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to configuration page -#
webserver.content_stop() #- end of web page -# webserver.content_stop() #- end of web page -#
end end
except .. as e, m except .. as e, m
tasmota.log(string.format("BRY: Exception> '%s' - %s", e, m), 2) tasmota.log(format("BRY: Exception> '%s' - %s", e, m), 2)
#- display error page -# #- display error page -#
webserver.content_start("Parameter error") #- title of the web page -# webserver.content_start("Parameter error") #- title of the web page -#
webserver.content_send_style() #- send standard Tasmota styles -# webserver.content_send_style() #- send standard Tasmota styles -#
webserver.content_send(string.format("<p style='width:340px;'><b>Exception:</b><br>'%s'<br>%s</p>", e, m)) webserver.content_send(format("<p style='width:340px;'><b>Exception:</b><br>'%s'<br>%s</p>", e, m))
webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to configuration page -# webserver.content_button(webserver.BUTTON_CONFIGURATION) #- button back to configuration page -#
webserver.content_stop() #- end of web page -# webserver.content_stop() #- end of web page -#
@ -1007,7 +1002,6 @@ class Matter_UI
####################################################################### #######################################################################
def show_bridge_status() def show_bridge_status()
import webserver import webserver
import string
var bridge_plugin_by_host var bridge_plugin_by_host
var idx = 0 var idx = 0
@ -1034,7 +1028,7 @@ class Matter_UI
for host: self.device.k2l(bridge_plugin_by_host) for host: self.device.k2l(bridge_plugin_by_host)
var host_html = webserver.html_escape(host) var host_html = webserver.html_escape(host)
webserver.content_send(string.format("<tr class='ztdm htrm'><td>&#x1F517; <a target='_blank' title='http://%s/' href=\"http://%s/?\"'>%s</a></td>", host_html, host_html, host_html)) webserver.content_send(format("<tr class='ztdm htrm'><td>&#x1F517; <a target='_blank' title='http://%s/' href=\"http://%s/?\"'>%s</a></td>", host_html, host_html, host_html))
var http_remote = bridge_plugin_by_host[host][0].http_remote # get the http_remote object from the first in list var http_remote = bridge_plugin_by_host[host][0].http_remote # get the http_remote object from the first in list
webserver.content_send(http_remote.web_last_seen()) webserver.content_send(http_remote.web_last_seen())
@ -1053,17 +1047,16 @@ class Matter_UI
#- display sensor value in the web UI -# #- display sensor value in the web UI -#
def web_sensor() def web_sensor()
import webserver import webserver
import string
if self.matter_enabled() if self.matter_enabled()
# mtc0 = close, mtc1 = open commissioning # mtc0 = close, mtc1 = open commissioning
var fabrics_count = self.device.sessions.count_active_fabrics() var fabrics_count = self.device.sessions.count_active_fabrics()
if fabrics_count == 0 if fabrics_count == 0
webserver.content_send(string.format("<div style='text-align:right;font-size:11px;color:#aaa;padding:0px;'>%s</div>", "Matter: No active association")) webserver.content_send(format("<div style='text-align:right;font-size:11px;color:#aaa;padding:0px;'>%s</div>", "Matter: No active association"))
else else
var plural = fabrics_count > 1 var plural = fabrics_count > 1
webserver.content_send(string.format("<div style='text-align:right;font-size:11px;color:#aaa;padding:0px;'>%s</div>", "Matter: " + str(fabrics_count) + " active association" + (plural ? "s" : ""))) webserver.content_send(format("<div style='text-align:right;font-size:11px;color:#aaa;padding:0px;'>%s</div>", "Matter: " + str(fabrics_count) + " active association" + (plural ? "s" : "")))
end end
self.show_bridge_status() self.show_bridge_status()

View File

@ -52,7 +52,6 @@ matter.jitter = jitter
# debug function # debug function
def inspect(p) def inspect(p)
try try
import string
import introspect import introspect
var keys = [] var keys = []
@ -66,7 +65,7 @@ def inspect(p)
for k : keys for k : keys
var v = introspect.get(p, k) var v = introspect.get(p, k)
# if type(v) == 'string' v = string.escape(v, true) end # if type(v) == 'string' v = string.escape(v, true) end
r.push(string.format("'%s': %s", str(k), str(v))) r.push(format("'%s': %s", str(k), str(v)))
end end
return "{" + r.concat(", ") + "}" return "{" + r.concat(", ") + "}"

View File

@ -19,7 +19,7 @@ be_local_closure(Matter_Base38_encode, /* name */
1, /* has sup protos */ 1, /* has sup protos */
( &(const struct bproto*[ 1]) { ( &(const struct bproto*[ 1]) {
be_nested_proto( be_nested_proto(
7, /* nstack */ 6, /* nstack */
2, /* argc */ 2, /* argc */
0, /* varg */ 0, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -27,31 +27,29 @@ be_local_closure(Matter_Base38_encode, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 5]) { /* constants */ ( &(const bvalue[ 4]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_X2D_X2E),
/* K1 */ be_nested_str_weak(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_X2D_X2E), /* K1 */ be_const_int(0),
/* K2 */ be_const_int(0), /* K2 */ be_nested_str_weak(),
/* K3 */ be_nested_str_weak(), /* K3 */ be_const_int(1),
/* K4 */ be_const_int(1),
}), }),
be_str_weak(b38_enc), be_str_weak(b38_enc),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[15]) { /* code */ ( &(const binstruction[14]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x58080000, // 0000 LDCONST R2 K0
0x580C0001, // 0001 LDCONST R3 K1 0x580C0001, // 0001 LDCONST R3 K1
0x58100002, // 0002 LDCONST R4 K2 0x58100002, // 0002 LDCONST R4 K2
0x58140003, // 0003 LDCONST R5 K3 0x14140601, // 0003 LT R5 R3 R1
0x14180801, // 0004 LT R6 R4 R1 0x78160007, // 0004 JMPF R5 #000D
0x781A0007, // 0005 JMPF R6 #000E 0x54160025, // 0005 LDINT R5 38
0x541A0025, // 0006 LDINT R6 38 0x10140005, // 0006 MOD R5 R0 R5
0x10180006, // 0007 MOD R6 R0 R6 0x94140405, // 0007 GETIDX R5 R2 R5
0x94180606, // 0008 GETIDX R6 R3 R6 0x00100805, // 0008 ADD R4 R4 R5
0x00140A06, // 0009 ADD R5 R5 R6 0x54160025, // 0009 LDINT R5 38
0x541A0025, // 000A LDINT R6 38 0x0C000005, // 000A DIV R0 R0 R5
0x0C000006, // 000B DIV R0 R0 R6 0x000C0703, // 000B ADD R3 R3 K3
0x00100904, // 000C ADD R4 R4 K4 0x7001FFF5, // 000C JMP #0003
0x7001FFF5, // 000D JMP #0004 0x80040800, // 000D RET 1 R4
0x80040A00, // 000E RET 1 R5
}) })
), ),
}), }),

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Control_Message;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */ be_local_closure(Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 9, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,39 +19,36 @@ be_local_closure(Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[11]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(session),
/* K1 */ be_nested_str_weak(session), /* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(log),
/* K3 */ be_nested_str_weak(log), /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncRsp_X20_X2A_X20Not_X20implemented_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(raw),
/* K5 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncRsp_X20_X2A_X20Not_X20implemented_X20_X25s), /* K5 */ be_nested_str_weak(app_payload_idx),
/* K6 */ be_nested_str_weak(raw), /* K6 */ be_const_int(2147483647),
/* K7 */ be_nested_str_weak(app_payload_idx), /* K7 */ be_nested_str_weak(tohex),
/* K8 */ be_const_int(2147483647), /* K8 */ be_const_int(2),
/* K9 */ be_nested_str_weak(tohex),
/* K10 */ be_const_int(2),
}), }),
be_str_weak(parse_MsgCounterSyncRsp), be_str_weak(parse_MsgCounterSyncRsp),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[17]) { /* code */ ( &(const binstruction[16]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x88080300, // 0000 GETMBR R2 R1 K0
0x880C0301, // 0001 GETMBR R3 R1 K1 0xB80E0200, // 0001 GETNGBL R3 K1
0xB8120400, // 0002 GETNGBL R4 K2 0x8C0C0702, // 0002 GETMET R3 R3 K2
0x8C100903, // 0003 GETMET R4 R4 K3 0x60140018, // 0003 GETGBL R5 G24
0x8C180504, // 0004 GETMET R6 R2 K4 0x58180003, // 0004 LDCONST R6 K3
0x58200005, // 0005 LDCONST R8 K5 0x881C0305, // 0005 GETMBR R7 R1 K5
0x88240307, // 0006 GETMBR R9 R1 K7 0x401C0F06, // 0006 CONNECT R7 R7 K6
0x40241308, // 0007 CONNECT R9 R9 K8 0x88200304, // 0007 GETMBR R8 R1 K4
0x88280306, // 0008 GETMBR R10 R1 K6 0x941C1007, // 0008 GETIDX R7 R8 R7
0x94241409, // 0009 GETIDX R9 R10 R9 0x8C1C0F07, // 0009 GETMET R7 R7 K7
0x8C241309, // 000A GETMET R9 R9 K9 0x7C1C0200, // 000A CALL R7 1
0x7C240200, // 000B CALL R9 1 0x7C140400, // 000B CALL R5 2
0x7C180600, // 000C CALL R6 3 0x58180008, // 000C LDCONST R6 K8
0x581C000A, // 000D LDCONST R7 K10 0x7C0C0600, // 000D CALL R3 3
0x7C100600, // 000E CALL R4 3 0x500C0000, // 000E LDBOOL R3 0 0
0x50100000, // 000F LDBOOL R4 0 0 0x80040600, // 000F RET 1 R3
0x80040800, // 0010 RET 1 R4
}) })
) )
); );
@ -63,7 +60,7 @@ be_local_closure(Matter_Control_Message_parse_MsgCounterSyncRsp, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Control_Message_parse_MsgCounterSyncReq, /* name */ be_local_closure(Matter_Control_Message_parse_MsgCounterSyncReq, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 9, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -71,39 +68,36 @@ be_local_closure(Matter_Control_Message_parse_MsgCounterSyncReq, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[11]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(session),
/* K1 */ be_nested_str_weak(session), /* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(log),
/* K3 */ be_nested_str_weak(log), /* K3 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncReq_X20_X2A_X20Not_X20implemented_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(raw),
/* K5 */ be_nested_str_weak(MTR_X3A_X20_X3EMCSyncReq_X20_X2A_X20Not_X20implemented_X20_X25s), /* K5 */ be_nested_str_weak(app_payload_idx),
/* K6 */ be_nested_str_weak(raw), /* K6 */ be_const_int(2147483647),
/* K7 */ be_nested_str_weak(app_payload_idx), /* K7 */ be_nested_str_weak(tohex),
/* K8 */ be_const_int(2147483647), /* K8 */ be_const_int(2),
/* K9 */ be_nested_str_weak(tohex),
/* K10 */ be_const_int(2),
}), }),
be_str_weak(parse_MsgCounterSyncReq), be_str_weak(parse_MsgCounterSyncReq),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[17]) { /* code */ ( &(const binstruction[16]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x88080300, // 0000 GETMBR R2 R1 K0
0x880C0301, // 0001 GETMBR R3 R1 K1 0xB80E0200, // 0001 GETNGBL R3 K1
0xB8120400, // 0002 GETNGBL R4 K2 0x8C0C0702, // 0002 GETMET R3 R3 K2
0x8C100903, // 0003 GETMET R4 R4 K3 0x60140018, // 0003 GETGBL R5 G24
0x8C180504, // 0004 GETMET R6 R2 K4 0x58180003, // 0004 LDCONST R6 K3
0x58200005, // 0005 LDCONST R8 K5 0x881C0305, // 0005 GETMBR R7 R1 K5
0x88240307, // 0006 GETMBR R9 R1 K7 0x401C0F06, // 0006 CONNECT R7 R7 K6
0x40241308, // 0007 CONNECT R9 R9 K8 0x88200304, // 0007 GETMBR R8 R1 K4
0x88280306, // 0008 GETMBR R10 R1 K6 0x941C1007, // 0008 GETIDX R7 R8 R7
0x94241409, // 0009 GETIDX R9 R10 R9 0x8C1C0F07, // 0009 GETMET R7 R7 K7
0x8C241309, // 000A GETMET R9 R9 K9 0x7C1C0200, // 000A CALL R7 1
0x7C240200, // 000B CALL R9 1 0x7C140400, // 000B CALL R5 2
0x7C180600, // 000C CALL R6 3 0x58180008, // 000C LDCONST R6 K8
0x581C000A, // 000D LDCONST R7 K10 0x7C0C0600, // 000D CALL R3 3
0x7C100600, // 000E CALL R4 3 0x500C0000, // 000E LDBOOL R3 0 0
0x50100000, // 000F LDBOOL R4 0 0 0x80040600, // 000F RET 1 R3
0x80040800, // 0010 RET 1 R4
}) })
) )
); );
@ -147,7 +141,7 @@ be_local_closure(Matter_Control_Message_init, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Control_Message_process_incoming_control_message, /* name */ be_local_closure(Matter_Control_Message_process_incoming_control_message, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 7, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -155,7 +149,7 @@ be_local_closure(Matter_Control_Message_process_incoming_control_message, /* n
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(tasmota), /* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(log), /* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(MTR_X3A_X20received_X20control_X20message_X20), /* K2 */ be_nested_str_weak(MTR_X3A_X20received_X20control_X20message_X20),
@ -167,14 +161,12 @@ be_local_closure(Matter_Control_Message_process_incoming_control_message, /* n
/* K8 */ be_nested_str_weak(parse_MsgCounterSyncReq), /* K8 */ be_nested_str_weak(parse_MsgCounterSyncReq),
/* K9 */ be_const_int(1), /* K9 */ be_const_int(1),
/* K10 */ be_nested_str_weak(parse_MsgCounterSyncRsp), /* K10 */ be_nested_str_weak(parse_MsgCounterSyncRsp),
/* K11 */ be_nested_str_weak(string), /* K11 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28control_X20message_X29_X20_X2502X),
/* K12 */ be_nested_str_weak(format), /* K12 */ be_const_int(2),
/* K13 */ be_nested_str_weak(MTR_X3A_X20_X3E_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X3F_X20Unknown_X20OpCode_X20_X28control_X20message_X29_X20_X2502X),
/* K14 */ be_const_int(2),
}), }),
be_str_weak(process_incoming_control_message), be_str_weak(process_incoming_control_message),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[38]) { /* code */ ( &(const binstruction[37]) { /* code */
0xB80A0000, // 0000 GETNGBL R2 K0 0xB80A0000, // 0000 GETNGBL R2 K0
0x8C080501, // 0001 GETMET R2 R2 K1 0x8C080501, // 0001 GETMET R2 R2 K1
0xB8120600, // 0002 GETNGBL R4 K3 0xB8120600, // 0002 GETNGBL R4 K3
@ -191,7 +183,7 @@ be_local_closure(Matter_Control_Message_process_incoming_control_message, /* n
0x5C100200, // 000D MOVE R4 R1 0x5C100200, // 000D MOVE R4 R1
0x7C080400, // 000E CALL R2 2 0x7C080400, // 000E CALL R2 2
0x80040400, // 000F RET 1 R2 0x80040400, // 000F RET 1 R2
0x70020012, // 0010 JMP #0024 0x70020011, // 0010 JMP #0023
0x88080306, // 0011 GETMBR R2 R1 K6 0x88080306, // 0011 GETMBR R2 R1 K6
0x1C080509, // 0012 EQ R2 R2 K9 0x1C080509, // 0012 EQ R2 R2 K9
0x780A0004, // 0013 JMPF R2 #0019 0x780A0004, // 0013 JMPF R2 #0019
@ -199,20 +191,19 @@ be_local_closure(Matter_Control_Message_process_incoming_control_message, /* n
0x5C100200, // 0015 MOVE R4 R1 0x5C100200, // 0015 MOVE R4 R1
0x7C080400, // 0016 CALL R2 2 0x7C080400, // 0016 CALL R2 2
0x80040400, // 0017 RET 1 R2 0x80040400, // 0017 RET 1 R2
0x7002000A, // 0018 JMP #0024 0x70020009, // 0018 JMP #0023
0xA40A1600, // 0019 IMPORT R2 K11 0xB80A0000, // 0019 GETNGBL R2 K0
0xB80E0000, // 001A GETNGBL R3 K0 0x8C080501, // 001A GETMET R2 R2 K1
0x8C0C0701, // 001B GETMET R3 R3 K1 0x60100018, // 001B GETGBL R4 G24
0x8C14050C, // 001C GETMET R5 R2 K12 0x5814000B, // 001C LDCONST R5 K11
0x581C000D, // 001D LDCONST R7 K13 0x88180306, // 001D GETMBR R6 R1 K6
0x88200306, // 001E GETMBR R8 R1 K6 0x7C100400, // 001E CALL R4 2
0x7C140600, // 001F CALL R5 3 0x5814000C, // 001F LDCONST R5 K12
0x5818000E, // 0020 LDCONST R6 K14 0x7C080600, // 0020 CALL R2 3
0x7C0C0600, // 0021 CALL R3 3 0x50080000, // 0021 LDBOOL R2 0 0
0x500C0000, // 0022 LDBOOL R3 0 0 0x80040400, // 0022 RET 1 R2
0x80040600, // 0023 RET 1 R3 0x50080000, // 0023 LDBOOL R2 0 0
0x50080000, // 0024 LDBOOL R2 0 0 0x80040400, // 0024 RET 1 R2
0x80040400, // 0025 RET 1 R2
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Fabric;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_counter_group_data_snd_next, /* name */ be_local_closure(Matter_Fabric_counter_group_data_snd_next, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 7, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,54 +19,51 @@ be_local_closure(Matter_Fabric_counter_group_data_snd_next, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(_counter_group_data_snd_impl),
/* K1 */ be_nested_str_weak(_counter_group_data_snd_impl), /* K1 */ be_nested_str_weak(next),
/* K2 */ be_nested_str_weak(next), /* K2 */ be_nested_str_weak(tasmota),
/* K3 */ be_nested_str_weak(tasmota), /* K3 */ be_nested_str_weak(log),
/* K4 */ be_nested_str_weak(log), /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_data_snd_X3D_X25i),
/* K5 */ be_nested_str_weak(format), /* K5 */ be_const_int(3),
/* K6 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_data_snd_X3D_X25i), /* K6 */ be_nested_str_weak(matter),
/* K7 */ be_const_int(3), /* K7 */ be_nested_str_weak(Counter),
/* K8 */ be_nested_str_weak(matter), /* K8 */ be_nested_str_weak(is_greater),
/* K9 */ be_nested_str_weak(Counter), /* K9 */ be_nested_str_weak(counter_group_data_snd),
/* K10 */ be_nested_str_weak(is_greater), /* K10 */ be_nested_str_weak(_GROUP_SND_INCR),
/* K11 */ be_nested_str_weak(counter_group_data_snd), /* K11 */ be_nested_str_weak(does_persist),
/* K12 */ be_nested_str_weak(_GROUP_SND_INCR), /* K12 */ be_nested_str_weak(save),
/* K13 */ be_nested_str_weak(does_persist),
/* K14 */ be_nested_str_weak(save),
}), }),
be_str_weak(counter_group_data_snd_next), be_str_weak(counter_group_data_snd_next),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[28]) { /* code */ ( &(const binstruction[27]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x88080101, // 0001 GETMBR R2 R0 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x7C040200, // 0002 CALL R1 1
0x7C080200, // 0003 CALL R2 1 0xB80A0400, // 0003 GETNGBL R2 K2
0xB80E0600, // 0004 GETNGBL R3 K3 0x8C080503, // 0004 GETMET R2 R2 K3
0x8C0C0704, // 0005 GETMET R3 R3 K4 0x60100018, // 0005 GETGBL R4 G24
0x8C140305, // 0006 GETMET R5 R1 K5 0x58140004, // 0006 LDCONST R5 K4
0x581C0006, // 0007 LDCONST R7 K6 0x5C180200, // 0007 MOVE R6 R1
0x5C200400, // 0008 MOVE R8 R2 0x7C100400, // 0008 CALL R4 2
0x7C140600, // 0009 CALL R5 3 0x58140005, // 0009 LDCONST R5 K5
0x58180007, // 000A LDCONST R6 K7 0x7C080600, // 000A CALL R2 3
0x7C0C0600, // 000B CALL R3 3 0xB80A0C00, // 000B GETNGBL R2 K6
0xB80E1000, // 000C GETNGBL R3 K8 0x88080507, // 000C GETMBR R2 R2 K7
0x880C0709, // 000D GETMBR R3 R3 K9 0x8C080508, // 000D GETMET R2 R2 K8
0x8C0C070A, // 000E GETMET R3 R3 K10 0x5C100200, // 000E MOVE R4 R1
0x5C140400, // 000F MOVE R5 R2 0x88140109, // 000F GETMBR R5 R0 K9
0x8818010B, // 0010 GETMBR R6 R0 K11 0x7C080600, // 0010 CALL R2 3
0x7C0C0600, // 0011 CALL R3 3 0x780A0007, // 0011 JMPF R2 #001A
0x780E0007, // 0012 JMPF R3 #001B 0x8808010A, // 0012 GETMBR R2 R0 K10
0x880C010C, // 0013 GETMBR R3 R0 K12 0x00080202, // 0013 ADD R2 R1 R2
0x000C0403, // 0014 ADD R3 R2 R3 0x90021202, // 0014 SETMBR R0 K9 R2
0x90021603, // 0015 SETMBR R0 K11 R3 0x8C08010B, // 0015 GETMET R2 R0 K11
0x8C0C010D, // 0016 GETMET R3 R0 K13 0x7C080200, // 0016 CALL R2 1
0x7C0C0200, // 0017 CALL R3 1 0x780A0001, // 0017 JMPF R2 #001A
0x780E0001, // 0018 JMPF R3 #001B 0x8C08010C, // 0018 GETMET R2 R0 K12
0x8C0C010E, // 0019 GETMET R3 R0 K14 0x7C080200, // 0019 CALL R2 1
0x7C0C0200, // 001A CALL R3 1 0x80040200, // 001A RET 1 R1
0x80040400, // 001B RET 1 R2
}) })
) )
); );
@ -493,7 +490,7 @@ be_local_closure(Matter_Fabric_fabric_completed, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_counter_group_ctrl_snd_next, /* name */ be_local_closure(Matter_Fabric_counter_group_ctrl_snd_next, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 7, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -501,54 +498,51 @@ be_local_closure(Matter_Fabric_counter_group_ctrl_snd_next, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(_counter_group_ctrl_snd_impl),
/* K1 */ be_nested_str_weak(_counter_group_ctrl_snd_impl), /* K1 */ be_nested_str_weak(next),
/* K2 */ be_nested_str_weak(next), /* K2 */ be_nested_str_weak(tasmota),
/* K3 */ be_nested_str_weak(tasmota), /* K3 */ be_nested_str_weak(log),
/* K4 */ be_nested_str_weak(log), /* K4 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_ctrl_snd_X3D_X25i),
/* K5 */ be_nested_str_weak(format), /* K5 */ be_const_int(3),
/* K6 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Counter_group_ctrl_snd_X3D_X25i), /* K6 */ be_nested_str_weak(matter),
/* K7 */ be_const_int(3), /* K7 */ be_nested_str_weak(Counter),
/* K8 */ be_nested_str_weak(matter), /* K8 */ be_nested_str_weak(is_greater),
/* K9 */ be_nested_str_weak(Counter), /* K9 */ be_nested_str_weak(counter_group_ctrl_snd),
/* K10 */ be_nested_str_weak(is_greater), /* K10 */ be_nested_str_weak(_GROUP_SND_INCR),
/* K11 */ be_nested_str_weak(counter_group_ctrl_snd), /* K11 */ be_nested_str_weak(does_persist),
/* K12 */ be_nested_str_weak(_GROUP_SND_INCR), /* K12 */ be_nested_str_weak(save),
/* K13 */ be_nested_str_weak(does_persist),
/* K14 */ be_nested_str_weak(save),
}), }),
be_str_weak(counter_group_ctrl_snd_next), be_str_weak(counter_group_ctrl_snd_next),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[28]) { /* code */ ( &(const binstruction[27]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x88080101, // 0001 GETMBR R2 R0 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x7C040200, // 0002 CALL R1 1
0x7C080200, // 0003 CALL R2 1 0xB80A0400, // 0003 GETNGBL R2 K2
0xB80E0600, // 0004 GETNGBL R3 K3 0x8C080503, // 0004 GETMET R2 R2 K3
0x8C0C0704, // 0005 GETMET R3 R3 K4 0x60100018, // 0005 GETGBL R4 G24
0x8C140305, // 0006 GETMET R5 R1 K5 0x58140004, // 0006 LDCONST R5 K4
0x581C0006, // 0007 LDCONST R7 K6 0x5C180200, // 0007 MOVE R6 R1
0x5C200400, // 0008 MOVE R8 R2 0x7C100400, // 0008 CALL R4 2
0x7C140600, // 0009 CALL R5 3 0x58140005, // 0009 LDCONST R5 K5
0x58180007, // 000A LDCONST R6 K7 0x7C080600, // 000A CALL R2 3
0x7C0C0600, // 000B CALL R3 3 0xB80A0C00, // 000B GETNGBL R2 K6
0xB80E1000, // 000C GETNGBL R3 K8 0x88080507, // 000C GETMBR R2 R2 K7
0x880C0709, // 000D GETMBR R3 R3 K9 0x8C080508, // 000D GETMET R2 R2 K8
0x8C0C070A, // 000E GETMET R3 R3 K10 0x5C100200, // 000E MOVE R4 R1
0x5C140400, // 000F MOVE R5 R2 0x88140109, // 000F GETMBR R5 R0 K9
0x8818010B, // 0010 GETMBR R6 R0 K11 0x7C080600, // 0010 CALL R2 3
0x7C0C0600, // 0011 CALL R3 3 0x780A0007, // 0011 JMPF R2 #001A
0x780E0007, // 0012 JMPF R3 #001B 0x8808010A, // 0012 GETMBR R2 R0 K10
0x880C010C, // 0013 GETMBR R3 R0 K12 0x00080202, // 0013 ADD R2 R1 R2
0x000C0403, // 0014 ADD R3 R2 R3 0x90021202, // 0014 SETMBR R0 K9 R2
0x90021603, // 0015 SETMBR R0 K11 R3 0x8C08010B, // 0015 GETMET R2 R0 K11
0x8C0C010D, // 0016 GETMET R3 R0 K13 0x7C080200, // 0016 CALL R2 1
0x7C0C0200, // 0017 CALL R3 1 0x780A0001, // 0017 JMPF R2 #001A
0x780E0001, // 0018 JMPF R3 #001B 0x8C08010C, // 0018 GETMET R2 R0 K12
0x8C0C010E, // 0019 GETMET R3 R0 K14 0x7C080200, // 0019 CALL R2 1
0x7C0C0200, // 001A CALL R3 1 0x80040200, // 001A RET 1 R1
0x80040400, // 001B RET 1 R2
}) })
) )
); );
@ -587,7 +581,7 @@ be_local_closure(Matter_Fabric_get_ipk_epoch_key, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_tojson, /* name */ be_local_closure(Matter_Fabric_tojson, /* name */
be_nested_proto( be_nested_proto(
18, /* nstack */ 16, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -595,160 +589,157 @@ be_local_closure(Matter_Fabric_tojson, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[29]) { /* constants */ ( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_str_weak(json), /* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(introspect),
/* K2 */ be_nested_str_weak(introspect), /* K2 */ be_nested_str_weak(persist_pre),
/* K3 */ be_nested_str_weak(persist_pre), /* K3 */ be_nested_str_weak(members),
/* K4 */ be_nested_str_weak(members), /* K4 */ be_nested_str_weak(get),
/* K5 */ be_nested_str_weak(get), /* K5 */ be_nested_str_weak(function),
/* K6 */ be_nested_str_weak(function), /* K6 */ be_const_int(0),
/* K7 */ be_const_int(0), /* K7 */ be_nested_str_weak(_),
/* K8 */ be_nested_str_weak(_), /* K8 */ be_nested_str_weak(push),
/* K9 */ be_nested_str_weak(push), /* K9 */ be_nested_str_weak(stop_iteration),
/* K10 */ be_nested_str_weak(stop_iteration), /* K10 */ be_nested_str_weak(matter),
/* K11 */ be_nested_str_weak(matter), /* K11 */ be_nested_str_weak(sort),
/* K12 */ be_nested_str_weak(sort), /* K12 */ be_nested_str_weak(_X24_X24),
/* K13 */ be_nested_str_weak(_X24_X24), /* K13 */ be_nested_str_weak(tob64),
/* K14 */ be_nested_str_weak(tob64), /* K14 */ be_nested_str_weak(_X25s_X3A_X25s),
/* K15 */ be_nested_str_weak(format), /* K15 */ be_nested_str_weak(dump),
/* K16 */ be_nested_str_weak(_X25s_X3A_X25s), /* K16 */ be_nested_str_weak(_sessions),
/* K17 */ be_nested_str_weak(dump), /* K17 */ be_nested_str_weak(persistables),
/* K18 */ be_nested_str_weak(_sessions), /* K18 */ be_nested_str_weak(tojson),
/* K19 */ be_nested_str_weak(persistables), /* K19 */ be_nested_str_weak(_X5B),
/* K20 */ be_nested_str_weak(tojson), /* K20 */ be_nested_str_weak(concat),
/* K21 */ be_nested_str_weak(_X5B), /* K21 */ be_nested_str_weak(_X2C),
/* K22 */ be_nested_str_weak(concat), /* K22 */ be_nested_str_weak(_X5D),
/* K23 */ be_nested_str_weak(_X2C), /* K23 */ be_nested_str_weak(_X22_sessions_X22_X3A),
/* K24 */ be_nested_str_weak(_X5D), /* K24 */ be_nested_str_weak(persist_post),
/* K25 */ be_nested_str_weak(_X22_sessions_X22_X3A), /* K25 */ be_nested_str_weak(_X7B),
/* K26 */ be_nested_str_weak(persist_post), /* K26 */ be_nested_str_weak(_X7D),
/* K27 */ be_nested_str_weak(_X7B),
/* K28 */ be_nested_str_weak(_X7D),
}), }),
be_str_weak(tojson), be_str_weak(tojson),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[120]) { /* code */ ( &(const binstruction[119]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0xA40A0200, // 0001 IMPORT R2 K1
0xA40E0400, // 0002 IMPORT R3 K2 0x8C0C0102, // 0002 GETMET R3 R0 K2
0x8C100103, // 0003 GETMET R4 R0 K3 0x7C0C0200, // 0003 CALL R3 1
0x7C100200, // 0004 CALL R4 1 0x600C0012, // 0004 GETGBL R3 G18
0x60100012, // 0005 GETGBL R4 G18 0x7C0C0000, // 0005 CALL R3 0
0x7C100000, // 0006 CALL R4 0 0x60100010, // 0006 GETGBL R4 G16
0x60140010, // 0007 GETGBL R5 G16 0x8C140503, // 0007 GETMET R5 R2 K3
0x8C180704, // 0008 GETMET R6 R3 K4 0x5C1C0000, // 0008 MOVE R7 R0
0x5C200000, // 0009 MOVE R8 R0 0x7C140400, // 0009 CALL R5 2
0x7C180400, // 000A CALL R6 2 0x7C100200, // 000A CALL R4 1
0x7C140200, // 000B CALL R5 1 0xA8020011, // 000B EXBLK 0 #001E
0xA8020011, // 000C EXBLK 0 #001F 0x5C140800, // 000C MOVE R5 R4
0x5C180A00, // 000D MOVE R6 R5 0x7C140000, // 000D CALL R5 0
0x7C180000, // 000E CALL R6 0 0x8C180504, // 000E GETMET R6 R2 K4
0x8C1C0705, // 000F GETMET R7 R3 K5 0x5C200000, // 000F MOVE R8 R0
0x5C240000, // 0010 MOVE R9 R0 0x5C240A00, // 0010 MOVE R9 R5
0x5C280C00, // 0011 MOVE R10 R6 0x7C180600, // 0011 CALL R6 3
0x7C1C0600, // 0012 CALL R7 3 0x601C0004, // 0012 GETGBL R7 G4
0x60200004, // 0013 GETGBL R8 G4 0x5C200C00, // 0013 MOVE R8 R6
0x5C240E00, // 0014 MOVE R9 R7 0x7C1C0200, // 0014 CALL R7 1
0x7C200200, // 0015 CALL R8 1 0x201C0F05, // 0015 NE R7 R7 K5
0x20201106, // 0016 NE R8 R8 K6 0x781E0005, // 0016 JMPF R7 #001D
0x78220005, // 0017 JMPF R8 #001E 0x941C0B06, // 0017 GETIDX R7 R5 K6
0x94200D07, // 0018 GETIDX R8 R6 K7 0x201C0F07, // 0018 NE R7 R7 K7
0x20201108, // 0019 NE R8 R8 K8 0x781E0002, // 0019 JMPF R7 #001D
0x78220002, // 001A JMPF R8 #001E 0x8C1C0708, // 001A GETMET R7 R3 K8
0x8C200909, // 001B GETMET R8 R4 K9 0x5C240A00, // 001B MOVE R9 R5
0x5C280C00, // 001C MOVE R10 R6 0x7C1C0400, // 001C CALL R7 2
0x7C200400, // 001D CALL R8 2 0x7001FFED, // 001D JMP #000C
0x7001FFED, // 001E JMP #000D 0x58100009, // 001E LDCONST R4 K9
0x5814000A, // 001F LDCONST R5 K10 0xAC100200, // 001F CATCH R4 1 0
0xAC140200, // 0020 CATCH R5 1 0 0xB0080000, // 0020 RAISE 2 R0 R0
0xB0080000, // 0021 RAISE 2 R0 R0 0xB8121400, // 0021 GETNGBL R4 K10
0xB8161600, // 0022 GETNGBL R5 K11 0x8C10090B, // 0022 GETMET R4 R4 K11
0x8C140B0C, // 0023 GETMET R5 R5 K12 0x5C180600, // 0023 MOVE R6 R3
0x5C1C0800, // 0024 MOVE R7 R4 0x7C100400, // 0024 CALL R4 2
0x7C140400, // 0025 CALL R5 2 0x5C0C0800, // 0025 MOVE R3 R4
0x5C100A00, // 0026 MOVE R4 R5 0x60100012, // 0026 GETGBL R4 G18
0x60140012, // 0027 GETGBL R5 G18 0x7C100000, // 0027 CALL R4 0
0x7C140000, // 0028 CALL R5 0 0x60140010, // 0028 GETGBL R5 G16
0x60180010, // 0029 GETGBL R6 G16 0x5C180600, // 0029 MOVE R6 R3
0x5C1C0800, // 002A MOVE R7 R4 0x7C140200, // 002A CALL R5 1
0x7C180200, // 002B CALL R6 1 0xA8020020, // 002B EXBLK 0 #004D
0xA8020020, // 002C EXBLK 0 #004E 0x5C180A00, // 002C MOVE R6 R5
0x5C1C0C00, // 002D MOVE R7 R6 0x7C180000, // 002D CALL R6 0
0x7C1C0000, // 002E CALL R7 0 0x8C1C0504, // 002E GETMET R7 R2 K4
0x8C200705, // 002F GETMET R8 R3 K5 0x5C240000, // 002F MOVE R9 R0
0x5C280000, // 0030 MOVE R10 R0 0x5C280C00, // 0030 MOVE R10 R6
0x5C2C0E00, // 0031 MOVE R11 R7 0x7C1C0600, // 0031 CALL R7 3
0x7C200600, // 0032 CALL R8 3 0x4C200000, // 0032 LDNIL R8
0x4C240000, // 0033 LDNIL R9 0x1C200E08, // 0033 EQ R8 R7 R8
0x1C241009, // 0034 EQ R9 R8 R9 0x78220000, // 0034 JMPF R8 #0036
0x78260000, // 0035 JMPF R9 #0037 0x7001FFF5, // 0035 JMP #002C
0x7001FFF5, // 0036 JMP #002D 0x6020000F, // 0036 GETGBL R8 G15
0x6024000F, // 0037 GETGBL R9 G15 0x5C240E00, // 0037 MOVE R9 R7
0x5C281000, // 0038 MOVE R10 R8 0x60280015, // 0038 GETGBL R10 G21
0x602C0015, // 0039 GETGBL R11 G21 0x7C200400, // 0039 CALL R8 2
0x7C240400, // 003A CALL R9 2 0x78220003, // 003A JMPF R8 #003F
0x78260003, // 003B JMPF R9 #0040 0x8C200F0D, // 003B GETMET R8 R7 K13
0x8C24110E, // 003C GETMET R9 R8 K14 0x7C200200, // 003C CALL R8 1
0x7C240200, // 003D CALL R9 1 0x00221808, // 003D ADD R8 K12 R8
0x00261A09, // 003E ADD R9 K13 R9 0x5C1C1000, // 003E MOVE R7 R8
0x5C201200, // 003F MOVE R8 R9 0x8C200908, // 003F GETMET R8 R4 K8
0x8C240B09, // 0040 GETMET R9 R5 K9 0x60280018, // 0040 GETGBL R10 G24
0x8C2C050F, // 0041 GETMET R11 R2 K15 0x582C000E, // 0041 LDCONST R11 K14
0x58340010, // 0042 LDCONST R13 K16 0x8C30030F, // 0042 GETMET R12 R1 K15
0x8C380311, // 0043 GETMET R14 R1 K17 0x60380008, // 0043 GETGBL R14 G8
0x60400008, // 0044 GETGBL R16 G8 0x5C3C0C00, // 0044 MOVE R15 R6
0x5C440E00, // 0045 MOVE R17 R7 0x7C380200, // 0045 CALL R14 1
0x7C400200, // 0046 CALL R16 1 0x7C300400, // 0046 CALL R12 2
0x7C380400, // 0047 CALL R14 2 0x8C34030F, // 0047 GETMET R13 R1 K15
0x8C3C0311, // 0048 GETMET R15 R1 K17 0x5C3C0E00, // 0048 MOVE R15 R7
0x5C441000, // 0049 MOVE R17 R8 0x7C340400, // 0049 CALL R13 2
0x7C3C0400, // 004A CALL R15 2 0x7C280600, // 004A CALL R10 3
0x7C2C0800, // 004B CALL R11 4 0x7C200400, // 004B CALL R8 2
0x7C240400, // 004C CALL R9 2 0x7001FFDE, // 004C JMP #002C
0x7001FFDE, // 004D JMP #002D 0x58140009, // 004D LDCONST R5 K9
0x5818000A, // 004E LDCONST R6 K10 0xAC140200, // 004E CATCH R5 1 0
0xAC180200, // 004F CATCH R6 1 0 0xB0080000, // 004F RAISE 2 R0 R0
0xB0080000, // 0050 RAISE 2 R0 R0 0x60140012, // 0050 GETGBL R5 G18
0x60180012, // 0051 GETGBL R6 G18 0x7C140000, // 0051 CALL R5 0
0x7C180000, // 0052 CALL R6 0 0x60180010, // 0052 GETGBL R6 G16
0x601C0010, // 0053 GETGBL R7 G16 0x881C0110, // 0053 GETMBR R7 R0 K16
0x88200112, // 0054 GETMBR R8 R0 K18 0x8C1C0F11, // 0054 GETMET R7 R7 K17
0x8C201113, // 0055 GETMET R8 R8 K19 0x7C1C0200, // 0055 CALL R7 1
0x7C200200, // 0056 CALL R8 1 0x7C180200, // 0056 CALL R6 1
0x7C1C0200, // 0057 CALL R7 1 0xA8020006, // 0057 EXBLK 0 #005F
0xA8020006, // 0058 EXBLK 0 #0060 0x5C1C0C00, // 0058 MOVE R7 R6
0x5C200E00, // 0059 MOVE R8 R7 0x7C1C0000, // 0059 CALL R7 0
0x7C200000, // 005A CALL R8 0 0x8C200B08, // 005A GETMET R8 R5 K8
0x8C240D09, // 005B GETMET R9 R6 K9 0x8C280F12, // 005B GETMET R10 R7 K18
0x8C2C1114, // 005C GETMET R11 R8 K20 0x7C280200, // 005C CALL R10 1
0x7C2C0200, // 005D CALL R11 1 0x7C200400, // 005D CALL R8 2
0x7C240400, // 005E CALL R9 2 0x7001FFF8, // 005E JMP #0058
0x7001FFF8, // 005F JMP #0059 0x58180009, // 005F LDCONST R6 K9
0x581C000A, // 0060 LDCONST R7 K10 0xAC180200, // 0060 CATCH R6 1 0
0xAC1C0200, // 0061 CATCH R7 1 0 0xB0080000, // 0061 RAISE 2 R0 R0
0xB0080000, // 0062 RAISE 2 R0 R0 0x6018000C, // 0062 GETGBL R6 G12
0x601C000C, // 0063 GETGBL R7 G12 0x5C1C0A00, // 0063 MOVE R7 R5
0x5C200C00, // 0064 MOVE R8 R6 0x7C180200, // 0064 CALL R6 1
0x7C1C0200, // 0065 CALL R7 1 0x24180D06, // 0065 GT R6 R6 K6
0x241C0F07, // 0066 GT R7 R7 K7 0x781A0007, // 0066 JMPF R6 #006F
0x781E0007, // 0067 JMPF R7 #0070 0x8C180B14, // 0067 GETMET R6 R5 K20
0x8C1C0D16, // 0068 GETMET R7 R6 K22 0x58200015, // 0068 LDCONST R8 K21
0x58240017, // 0069 LDCONST R9 K23 0x7C180400, // 0069 CALL R6 2
0x7C1C0400, // 006A CALL R7 2 0x001A2606, // 006A ADD R6 K19 R6
0x001E2A07, // 006B ADD R7 K21 R7 0x00180D16, // 006B ADD R6 R6 K22
0x001C0F18, // 006C ADD R7 R7 K24 0x8C1C0908, // 006C GETMET R7 R4 K8
0x8C200B09, // 006D GETMET R8 R5 K9 0x00262E06, // 006D ADD R9 K23 R6
0x002A3207, // 006E ADD R10 K25 R7 0x7C1C0400, // 006E CALL R7 2
0x7C200400, // 006F CALL R8 2 0x8C180118, // 006F GETMET R6 R0 K24
0x8C1C011A, // 0070 GETMET R7 R0 K26 0x7C180200, // 0070 CALL R6 1
0x7C1C0200, // 0071 CALL R7 1 0x8C180914, // 0071 GETMET R6 R4 K20
0x8C1C0B16, // 0072 GETMET R7 R5 K22 0x58200015, // 0072 LDCONST R8 K21
0x58240017, // 0073 LDCONST R9 K23 0x7C180400, // 0073 CALL R6 2
0x7C1C0400, // 0074 CALL R7 2 0x001A3206, // 0074 ADD R6 K25 R6
0x001E3607, // 0075 ADD R7 K27 R7 0x00180D1A, // 0075 ADD R6 R6 K26
0x001C0F1C, // 0076 ADD R7 R7 K28 0x80040C00, // 0076 RET 1 R6
0x80040E00, // 0077 RET 1 R7
}) })
) )
); );
@ -976,7 +967,7 @@ be_local_closure(Matter_Fabric_get_newest_session, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_before_remove, /* name */ be_local_closure(Matter_Fabric_before_remove, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 7, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -984,38 +975,35 @@ be_local_closure(Matter_Fabric_before_remove, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(tasmota), /* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(log), /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(get_fabric_id),
/* K4 */ be_nested_str_weak(MTR_X3A_X20_X2DFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20_X28removed_X29), /* K4 */ be_nested_str_weak(copy),
/* K5 */ be_nested_str_weak(get_fabric_id), /* K5 */ be_nested_str_weak(reverse),
/* K6 */ be_nested_str_weak(copy), /* K6 */ be_nested_str_weak(tohex),
/* K7 */ be_nested_str_weak(reverse), /* K7 */ be_const_int(3),
/* K8 */ be_nested_str_weak(tohex),
/* K9 */ be_const_int(3),
}), }),
be_str_weak(before_remove), be_str_weak(before_remove),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[17]) { /* code */ ( &(const binstruction[16]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xB8060000, // 0000 GETNGBL R1 K0
0xB80A0200, // 0001 GETNGBL R2 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x600C0018, // 0002 GETGBL R3 G24
0x8C100303, // 0003 GETMET R4 R1 K3 0x58100002, // 0003 LDCONST R4 K2
0x58180004, // 0004 LDCONST R6 K4 0x8C140103, // 0004 GETMET R5 R0 K3
0x8C1C0105, // 0005 GETMET R7 R0 K5 0x7C140200, // 0005 CALL R5 1
0x7C1C0200, // 0006 CALL R7 1 0x8C140B04, // 0006 GETMET R5 R5 K4
0x8C1C0F06, // 0007 GETMET R7 R7 K6 0x7C140200, // 0007 CALL R5 1
0x7C1C0200, // 0008 CALL R7 1 0x8C140B05, // 0008 GETMET R5 R5 K5
0x8C1C0F07, // 0009 GETMET R7 R7 K7 0x7C140200, // 0009 CALL R5 1
0x7C1C0200, // 000A CALL R7 1 0x8C140B06, // 000A GETMET R5 R5 K6
0x8C1C0F08, // 000B GETMET R7 R7 K8 0x7C140200, // 000B CALL R5 1
0x7C1C0200, // 000C CALL R7 1 0x7C0C0400, // 000C CALL R3 2
0x7C100600, // 000D CALL R4 3 0x58100007, // 000D LDCONST R4 K7
0x58140009, // 000E LDCONST R5 K9 0x7C040600, // 000E CALL R1 3
0x7C080600, // 000F CALL R2 3 0x80000000, // 000F RET 0
0x80000000, // 0010 RET 0
}) })
) )
); );
@ -1198,7 +1186,7 @@ be_local_closure(Matter_Fabric_hydrate_post, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_get_admin_vendor_name, /* name */ be_local_closure(Matter_Fabric_get_admin_vendor_name, /* name */
be_nested_proto( be_nested_proto(
8, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1206,18 +1194,16 @@ be_local_closure(Matter_Fabric_get_admin_vendor_name, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(admin_vendor), /* K0 */ be_nested_str_weak(admin_vendor),
/* K1 */ be_nested_str_weak(), /* K1 */ be_nested_str_weak(),
/* K2 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(matter),
/* K3 */ be_nested_str_weak(get_vendor_name), /* K3 */ be_nested_str_weak(get_vendor_name),
/* K4 */ be_nested_str_weak(string), /* K4 */ be_nested_str_weak(0x_X2504X),
/* K5 */ be_nested_str_weak(format),
/* K6 */ be_nested_str_weak(0x_X2504X),
}), }),
be_str_weak(get_admin_vendor_name), be_str_weak(get_admin_vendor_name),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2 0x4C080000, // 0001 LDNIL R2
0x1C080202, // 0002 EQ R2 R1 R2 0x1C080202, // 0002 EQ R2 R1 R2
@ -1231,14 +1217,13 @@ be_local_closure(Matter_Fabric_get_admin_vendor_name, /* name */
0x200C0403, // 000A NE R3 R2 R3 0x200C0403, // 000A NE R3 R2 R3
0x780E0001, // 000B JMPF R3 #000E 0x780E0001, // 000B JMPF R3 #000E
0x80040400, // 000C RET 1 R2 0x80040400, // 000C RET 1 R2
0x70020005, // 000D JMP #0014 0x70020004, // 000D JMP #0013
0xA40E0800, // 000E IMPORT R3 K4 0x600C0018, // 000E GETGBL R3 G24
0x8C100705, // 000F GETMET R4 R3 K5 0x58100004, // 000F LDCONST R4 K4
0x58180006, // 0010 LDCONST R6 K6 0x5C140200, // 0010 MOVE R5 R1
0x5C1C0200, // 0011 MOVE R7 R1 0x7C0C0400, // 0011 CALL R3 2
0x7C100600, // 0012 CALL R4 3 0x80040600, // 0012 RET 1 R3
0x80040800, // 0013 RET 1 R4 0x80000000, // 0013 RET 0
0x80000000, // 0014 RET 0
}) })
) )
); );
@ -1333,7 +1318,7 @@ be_local_closure(Matter_Fabric_set_admin_subject_vendor, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Fabric_log_new_fabric, /* name */ be_local_closure(Matter_Fabric_log_new_fabric, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1341,41 +1326,38 @@ be_local_closure(Matter_Fabric_log_new_fabric, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[11]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(tasmota), /* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(log), /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2BFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20vendorid_X3D_X25s),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(get_fabric_id),
/* K4 */ be_nested_str_weak(MTR_X3A_X20_X2BFabric_X20_X20_X20_X20fab_X3D_X27_X25s_X27_X20vendorid_X3D_X25s), /* K4 */ be_nested_str_weak(copy),
/* K5 */ be_nested_str_weak(get_fabric_id), /* K5 */ be_nested_str_weak(reverse),
/* K6 */ be_nested_str_weak(copy), /* K6 */ be_nested_str_weak(tohex),
/* K7 */ be_nested_str_weak(reverse), /* K7 */ be_nested_str_weak(get_admin_vendor_name),
/* K8 */ be_nested_str_weak(tohex), /* K8 */ be_const_int(3),
/* K9 */ be_nested_str_weak(get_admin_vendor_name),
/* K10 */ be_const_int(3),
}), }),
be_str_weak(log_new_fabric), be_str_weak(log_new_fabric),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[19]) { /* code */ ( &(const binstruction[18]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xB8060000, // 0000 GETNGBL R1 K0
0xB80A0200, // 0001 GETNGBL R2 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x600C0018, // 0002 GETGBL R3 G24
0x8C100303, // 0003 GETMET R4 R1 K3 0x58100002, // 0003 LDCONST R4 K2
0x58180004, // 0004 LDCONST R6 K4 0x8C140103, // 0004 GETMET R5 R0 K3
0x8C1C0105, // 0005 GETMET R7 R0 K5 0x7C140200, // 0005 CALL R5 1
0x7C1C0200, // 0006 CALL R7 1 0x8C140B04, // 0006 GETMET R5 R5 K4
0x8C1C0F06, // 0007 GETMET R7 R7 K6 0x7C140200, // 0007 CALL R5 1
0x7C1C0200, // 0008 CALL R7 1 0x8C140B05, // 0008 GETMET R5 R5 K5
0x8C1C0F07, // 0009 GETMET R7 R7 K7 0x7C140200, // 0009 CALL R5 1
0x7C1C0200, // 000A CALL R7 1 0x8C140B06, // 000A GETMET R5 R5 K6
0x8C1C0F08, // 000B GETMET R7 R7 K8 0x7C140200, // 000B CALL R5 1
0x7C1C0200, // 000C CALL R7 1 0x8C180107, // 000C GETMET R6 R0 K7
0x8C200109, // 000D GETMET R8 R0 K9 0x7C180200, // 000D CALL R6 1
0x7C200200, // 000E CALL R8 1 0x7C0C0600, // 000E CALL R3 3
0x7C100800, // 000F CALL R4 4 0x58100008, // 000F LDCONST R4 K8
0x5814000A, // 0010 LDCONST R5 K10 0x7C040600, // 0010 CALL R1 3
0x7C080600, // 0011 CALL R2 3 0x80000000, // 0011 RET 0
0x80000000, // 0012 RET 0
}) })
) )
); );

View File

@ -507,7 +507,7 @@ be_local_closure(Matter_HTTP_async_parse_http_payload, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_async_send_http, /* name */ be_local_closure(Matter_HTTP_async_send_http, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -515,7 +515,7 @@ be_local_closure(Matter_HTTP_async_send_http, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[18]) { /* constants */ ( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(response), /* K1 */ be_nested_str_weak(response),
/* K2 */ be_nested_str_weak(), /* K2 */ be_nested_str_weak(),
@ -525,15 +525,14 @@ be_local_closure(Matter_HTTP_async_send_http, /* name */
/* K6 */ be_const_int(0), /* K6 */ be_const_int(0),
/* K7 */ be_nested_str_weak(_X5B), /* K7 */ be_nested_str_weak(_X5B),
/* K8 */ be_nested_str_weak(_X5D), /* K8 */ be_nested_str_weak(_X5D),
/* K9 */ be_nested_str_weak(format), /* K9 */ be_nested_str_weak(HTTP_GET),
/* K10 */ be_nested_str_weak(HTTP_GET), /* K10 */ be_nested_str_weak(cmd),
/* K11 */ be_nested_str_weak(cmd), /* K11 */ be_nested_str_weak(port),
/* K12 */ be_nested_str_weak(port), /* K12 */ be_nested_str_weak(write),
/* K13 */ be_nested_str_weak(write), /* K13 */ be_nested_str_weak(close),
/* K14 */ be_nested_str_weak(close), /* K14 */ be_nested_str_weak(status),
/* K15 */ be_nested_str_weak(status), /* K15 */ be_nested_str_weak(http_status),
/* K16 */ be_nested_str_weak(http_status), /* K16 */ be_nested_str_weak(event_http_failed),
/* K17 */ be_nested_str_weak(event_http_failed),
}), }),
be_str_weak(send_http), be_str_weak(send_http),
&be_const_str_solidified, &be_const_str_solidified,
@ -550,13 +549,13 @@ be_local_closure(Matter_HTTP_async_send_http, /* name */
0x000E0E02, // 0009 ADD R3 K7 R2 0x000E0E02, // 0009 ADD R3 K7 R2
0x000C0708, // 000A ADD R3 R3 K8 0x000C0708, // 000A ADD R3 R3 K8
0x5C080600, // 000B MOVE R2 R3 0x5C080600, // 000B MOVE R2 R3
0x8C0C0309, // 000C GETMET R3 R1 K9 0x600C0018, // 000C GETGBL R3 G24
0x8814010A, // 000D GETMBR R5 R0 K10 0x88100109, // 000D GETMBR R4 R0 K9
0x8818010B, // 000E GETMBR R6 R0 K11 0x8814010A, // 000E GETMBR R5 R0 K10
0x5C1C0400, // 000F MOVE R7 R2 0x5C180400, // 000F MOVE R6 R2
0x8820010C, // 0010 GETMBR R8 R0 K12 0x881C010B, // 0010 GETMBR R7 R0 K11
0x7C0C0A00, // 0011 CALL R3 5 0x7C0C0800, // 0011 CALL R3 4
0x8C10010D, // 0012 GETMET R4 R0 K13 0x8C10010C, // 0012 GETMET R4 R0 K12
0x5C180600, // 0013 MOVE R6 R3 0x5C180600, // 0013 MOVE R6 R3
0x7C100400, // 0014 CALL R4 2 0x7C100400, // 0014 CALL R4 2
0x6014000C, // 0015 GETGBL R5 G12 0x6014000C, // 0015 GETGBL R5 G12
@ -564,13 +563,13 @@ be_local_closure(Matter_HTTP_async_send_http, /* name */
0x7C140200, // 0017 CALL R5 1 0x7C140200, // 0017 CALL R5 1
0x20140805, // 0018 NE R5 R4 R5 0x20140805, // 0018 NE R5 R4 R5
0x78160007, // 0019 JMPF R5 #0022 0x78160007, // 0019 JMPF R5 #0022
0x8C14010E, // 001A GETMET R5 R0 K14 0x8C14010D, // 001A GETMET R5 R0 K13
0x7C140200, // 001B CALL R5 1 0x7C140200, // 001B CALL R5 1
0x5415FFFB, // 001C LDINT R5 -4 0x5415FFFB, // 001C LDINT R5 -4
0x90021E05, // 001D SETMBR R0 K15 R5 0x90021C05, // 001D SETMBR R0 K14 R5
0x5415FFFE, // 001E LDINT R5 -1 0x5415FFFE, // 001E LDINT R5 -1
0x90022005, // 001F SETMBR R0 K16 R5 0x90021E05, // 001F SETMBR R0 K15 R5
0x8C140111, // 0020 GETMET R5 R0 K17 0x8C140110, // 0020 GETMET R5 R0 K16
0x7C140200, // 0021 CALL R5 1 0x7C140200, // 0021 CALL R5 1
0x80000000, // 0022 RET 0 0x80000000, // 0022 RET 0
}) })

View File

@ -52,7 +52,7 @@ be_local_closure(Matter_HTTP_remote_device_is_alive, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_remote_call_sync, /* name */ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
be_nested_proto( be_nested_proto(
17, /* nstack */ 16, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -60,7 +60,7 @@ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[25]) { /* constants */ ( &(const bvalue[24]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(webserver), /* K1 */ be_nested_str_weak(webserver),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(tasmota),
@ -73,19 +73,18 @@ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
/* K9 */ be_nested_str_weak(_X20), /* K9 */ be_nested_str_weak(_X20),
/* K10 */ be_nested_str_weak(_X2B), /* K10 */ be_nested_str_weak(_X2B),
/* K11 */ be_nested_str_weak(log), /* K11 */ be_nested_str_weak(log),
/* K12 */ be_nested_str_weak(format), /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
/* K13 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27), /* K13 */ be_nested_str_weak(addr),
/* K14 */ be_nested_str_weak(addr), /* K14 */ be_nested_str_weak(port),
/* K15 */ be_nested_str_weak(port), /* K15 */ be_const_int(3),
/* K16 */ be_const_int(3), /* K16 */ be_nested_str_weak(begin_sync),
/* K17 */ be_nested_str_weak(begin_sync), /* K17 */ be_nested_str_weak(nil),
/* K18 */ be_nested_str_weak(nil), /* K18 */ be_const_int(0),
/* K19 */ be_const_int(0), /* K19 */ be_nested_str_weak(_X2E_X2E_X2E),
/* K20 */ be_nested_str_weak(_X2E_X2E_X2E), /* K20 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X2Dresp_X20_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
/* K21 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20sync_X2Dresp_X20_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27), /* K21 */ be_nested_str_weak(millis),
/* K22 */ be_nested_str_weak(millis), /* K22 */ be_nested_str_weak(time_start),
/* K23 */ be_nested_str_weak(time_start), /* K23 */ be_nested_str_weak(payload),
/* K24 */ be_nested_str_weak(payload),
}), }),
be_str_weak(call_sync), be_str_weak(call_sync),
&be_const_str_solidified, &be_const_str_solidified,
@ -114,25 +113,25 @@ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
0x00160E05, // 0015 ADD R5 K7 R5 0x00160E05, // 0015 ADD R5 K7 R5
0xB81A0400, // 0016 GETNGBL R6 K2 0xB81A0400, // 0016 GETNGBL R6 K2
0x8C180D0B, // 0017 GETMET R6 R6 K11 0x8C180D0B, // 0017 GETMET R6 R6 K11
0x8C20070C, // 0018 GETMET R8 R3 K12 0x60200018, // 0018 GETGBL R8 G24
0x5828000D, // 0019 LDCONST R10 K13 0x5824000C, // 0019 LDCONST R9 K12
0x882C010E, // 001A GETMBR R11 R0 K14 0x8828010D, // 001A GETMBR R10 R0 K13
0x8830010F, // 001B GETMBR R12 R0 K15 0x882C010E, // 001B GETMBR R11 R0 K14
0x5C340A00, // 001C MOVE R13 R5 0x5C300A00, // 001C MOVE R12 R5
0x7C200A00, // 001D CALL R8 5 0x7C200800, // 001D CALL R8 4
0x58240010, // 001E LDCONST R9 K16 0x5824000F, // 001E LDCONST R9 K15
0x7C180600, // 001F CALL R6 3 0x7C180600, // 001F CALL R6 3
0x60180003, // 0020 GETGBL R6 G3 0x60180003, // 0020 GETGBL R6 G3
0x5C1C0000, // 0021 MOVE R7 R0 0x5C1C0000, // 0021 MOVE R7 R0
0x7C180200, // 0022 CALL R6 1 0x7C180200, // 0022 CALL R6 1
0x8C180D11, // 0023 GETMET R6 R6 K17 0x8C180D10, // 0023 GETMET R6 R6 K16
0x5C200A00, // 0024 MOVE R8 R5 0x5C200A00, // 0024 MOVE R8 R5
0x5C240400, // 0025 MOVE R9 R2 0x5C240400, // 0025 MOVE R9 R2
0x7C180600, // 0026 CALL R6 3 0x7C180600, // 0026 CALL R6 3
0x781A0001, // 0027 JMPF R6 #002A 0x781A0001, // 0027 JMPF R6 #002A
0x5C1C0C00, // 0028 MOVE R7 R6 0x5C1C0C00, // 0028 MOVE R7 R6
0x70020000, // 0029 JMP #002B 0x70020000, // 0029 JMP #002B
0x581C0012, // 002A LDCONST R7 K18 0x581C0011, // 002A LDCONST R7 K17
0x6020000C, // 002B GETGBL R8 G12 0x6020000C, // 002B GETGBL R8 G12
0x5C240E00, // 002C MOVE R9 R7 0x5C240E00, // 002C MOVE R9 R7
0x7C200200, // 002D CALL R8 1 0x7C200200, // 002D CALL R8 1
@ -140,26 +139,26 @@ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
0x24201009, // 002F GT R8 R8 R9 0x24201009, // 002F GT R8 R8 R9
0x78220004, // 0030 JMPF R8 #0036 0x78220004, // 0030 JMPF R8 #0036
0x5422001C, // 0031 LDINT R8 29 0x5422001C, // 0031 LDINT R8 29
0x40222608, // 0032 CONNECT R8 K19 R8 0x40222408, // 0032 CONNECT R8 K18 R8
0x94200E08, // 0033 GETIDX R8 R7 R8 0x94200E08, // 0033 GETIDX R8 R7 R8
0x00201114, // 0034 ADD R8 R8 K20 0x00201113, // 0034 ADD R8 R8 K19
0x5C1C1000, // 0035 MOVE R7 R8 0x5C1C1000, // 0035 MOVE R7 R8
0xB8220400, // 0036 GETNGBL R8 K2 0xB8220400, // 0036 GETNGBL R8 K2
0x8C20110B, // 0037 GETMET R8 R8 K11 0x8C20110B, // 0037 GETMET R8 R8 K11
0x8C28070C, // 0038 GETMET R10 R3 K12 0x60280018, // 0038 GETGBL R10 G24
0x58300015, // 0039 LDCONST R12 K21 0x582C0014, // 0039 LDCONST R11 K20
0xB8360400, // 003A GETNGBL R13 K2 0xB8320400, // 003A GETNGBL R12 K2
0x8C341B16, // 003B GETMET R13 R13 K22 0x8C301915, // 003B GETMET R12 R12 K21
0x7C340200, // 003C CALL R13 1 0x7C300200, // 003C CALL R12 1
0x88380117, // 003D GETMBR R14 R0 K23 0x88340116, // 003D GETMBR R13 R0 K22
0x04341A0E, // 003E SUB R13 R13 R14 0x0430180D, // 003E SUB R12 R12 R13
0x8838010E, // 003F GETMBR R14 R0 K14 0x8834010D, // 003F GETMBR R13 R0 K13
0x603C000C, // 0040 GETGBL R15 G12 0x6038000C, // 0040 GETGBL R14 G12
0x88400118, // 0041 GETMBR R16 R0 K24 0x883C0117, // 0041 GETMBR R15 R0 K23
0x7C3C0200, // 0042 CALL R15 1 0x7C380200, // 0042 CALL R14 1
0x5C400E00, // 0043 MOVE R16 R7 0x5C3C0E00, // 0043 MOVE R15 R7
0x7C280C00, // 0044 CALL R10 6 0x7C280A00, // 0044 CALL R10 5
0x582C0010, // 0045 LDCONST R11 K16 0x582C000F, // 0045 LDCONST R11 K15
0x7C200600, // 0046 CALL R8 3 0x7C200600, // 0046 CALL R8 3
0x80040C00, // 0047 RET 1 R6 0x80040C00, // 0047 RET 1 R6
}) })
@ -173,7 +172,7 @@ be_local_closure(Matter_HTTP_remote_call_sync, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_remote_web_last_seen, /* name */ be_local_closure(Matter_HTTP_remote_web_last_seen, /* name */
be_nested_proto( be_nested_proto(
7, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -181,38 +180,36 @@ be_local_closure(Matter_HTTP_remote_web_last_seen, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 8]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(reachable_utc),
/* K2 */ be_nested_str_weak(reachable_utc), /* K2 */ be_nested_str_weak(tasmota),
/* K3 */ be_nested_str_weak(tasmota), /* K3 */ be_nested_str_weak(rtc),
/* K4 */ be_nested_str_weak(rtc), /* K4 */ be_nested_str_weak(utc),
/* K5 */ be_nested_str_weak(utc), /* K5 */ be_nested_str_weak(matter),
/* K6 */ be_nested_str_weak(matter), /* K6 */ be_nested_str_weak(seconds_to_dhm),
/* K7 */ be_nested_str_weak(seconds_to_dhm),
}), }),
be_str_weak(web_last_seen), be_str_weak(web_last_seen),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[19]) { /* code */ ( &(const binstruction[18]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x5409FFFE, // 0001 LDINT R2 -1
0x540DFFFE, // 0002 LDINT R3 -1 0x880C0101, // 0002 GETMBR R3 R0 K1
0x88100102, // 0003 GETMBR R4 R0 K2 0x4C100000, // 0003 LDNIL R4
0x4C140000, // 0004 LDNIL R5 0x200C0604, // 0004 NE R3 R3 R4
0x20100805, // 0005 NE R4 R4 R5 0x780E0006, // 0005 JMPF R3 #000D
0x78120006, // 0006 JMPF R4 #000E 0xB80E0400, // 0006 GETNGBL R3 K2
0xB8120600, // 0007 GETNGBL R4 K3 0x8C0C0703, // 0007 GETMET R3 R3 K3
0x8C100904, // 0008 GETMET R4 R4 K4 0x7C0C0200, // 0008 CALL R3 1
0x7C100200, // 0009 CALL R4 1 0x940C0704, // 0009 GETIDX R3 R3 K4
0x94100905, // 000A GETIDX R4 R4 K5 0x88100101, // 000A GETMBR R4 R0 K1
0x88140102, // 000B GETMBR R5 R0 K2 0x040C0604, // 000B SUB R3 R3 R4
0x04100805, // 000C SUB R4 R4 R5 0x5C080600, // 000C MOVE R2 R3
0x5C0C0800, // 000D MOVE R3 R4 0xB80E0A00, // 000D GETNGBL R3 K5
0xB8120C00, // 000E GETNGBL R4 K6 0x8C0C0706, // 000E GETMET R3 R3 K6
0x8C100907, // 000F GETMET R4 R4 K7 0x5C140400, // 000F MOVE R5 R2
0x5C180600, // 0010 MOVE R6 R3 0x7C0C0400, // 0010 CALL R3 2
0x7C100400, // 0011 CALL R4 2 0x80040600, // 0011 RET 1 R3
0x80040800, // 0012 RET 1 R4
}) })
) )
); );
@ -380,7 +377,7 @@ be_local_closure(Matter_HTTP_remote_scheduler, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_remote_event_http_finished, /* name */ be_local_closure(Matter_HTTP_remote_event_http_finished, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -388,73 +385,70 @@ be_local_closure(Matter_HTTP_remote_event_http_finished, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[16]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(current_cmd), /* K0 */ be_nested_str_weak(current_cmd),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(payload),
/* K2 */ be_nested_str_weak(payload), /* K2 */ be_nested_str_weak(nil),
/* K3 */ be_nested_str_weak(nil), /* K3 */ be_const_int(0),
/* K4 */ be_const_int(0), /* K4 */ be_nested_str_weak(_X2E_X2E_X2E),
/* K5 */ be_nested_str_weak(_X2E_X2E_X2E), /* K5 */ be_nested_str_weak(tasmota),
/* K6 */ be_nested_str_weak(tasmota), /* K6 */ be_nested_str_weak(log),
/* K7 */ be_nested_str_weak(log), /* K7 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X2Dresp_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27),
/* K8 */ be_nested_str_weak(format), /* K8 */ be_nested_str_weak(millis),
/* K9 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X2Dresp_X20in_X20_X25i_X20ms_X20from_X20_X25s_X3A_X20_X5B_X25i_X5D_X20_X27_X25s_X27), /* K9 */ be_nested_str_weak(time_start),
/* K10 */ be_nested_str_weak(millis), /* K10 */ be_nested_str_weak(addr),
/* K11 */ be_nested_str_weak(time_start), /* K11 */ be_const_int(3),
/* K12 */ be_nested_str_weak(addr), /* K12 */ be_nested_str_weak(dispatch_cb),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(http_status),
/* K14 */ be_nested_str_weak(dispatch_cb),
/* K15 */ be_nested_str_weak(http_status),
}), }),
be_str_weak(event_http_finished), be_str_weak(event_http_finished),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[46]) { /* code */ ( &(const binstruction[45]) { /* code */
0x88040100, // 0000 GETMBR R1 R0 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x4C080000, // 0001 LDNIL R2 0x4C080000, // 0001 LDNIL R2
0x1C040202, // 0002 EQ R1 R1 R2 0x1C040202, // 0002 EQ R1 R1 R2
0x78060000, // 0003 JMPF R1 #0005 0x78060000, // 0003 JMPF R1 #0005
0x80000200, // 0004 RET 0 0x80000200, // 0004 RET 0
0xA4060200, // 0005 IMPORT R1 K1 0x88040101, // 0005 GETMBR R1 R0 K1
0x88080102, // 0006 GETMBR R2 R0 K2 0x4C080000, // 0006 LDNIL R2
0x4C0C0000, // 0007 LDNIL R3 0x20040202, // 0007 NE R1 R1 R2
0x20080403, // 0008 NE R2 R2 R3 0x78060001, // 0008 JMPF R1 #000B
0x780A0001, // 0009 JMPF R2 #000C 0x88040101, // 0009 GETMBR R1 R0 K1
0x88080102, // 000A GETMBR R2 R0 K2 0x70020000, // 000A JMP #000C
0x70020000, // 000B JMP #000D 0x58040002, // 000B LDCONST R1 K2
0x58080003, // 000C LDCONST R2 K3 0x6008000C, // 000C GETGBL R2 G12
0x600C000C, // 000D GETGBL R3 G12 0x5C0C0200, // 000D MOVE R3 R1
0x5C100400, // 000E MOVE R4 R2 0x7C080200, // 000E CALL R2 1
0x7C0C0200, // 000F CALL R3 1 0x540E001D, // 000F LDINT R3 30
0x5412001D, // 0010 LDINT R4 30 0x24080403, // 0010 GT R2 R2 R3
0x240C0604, // 0011 GT R3 R3 R4 0x780A0004, // 0011 JMPF R2 #0017
0x780E0004, // 0012 JMPF R3 #0018 0x540A001C, // 0012 LDINT R2 29
0x540E001C, // 0013 LDINT R3 29 0x400A0602, // 0013 CONNECT R2 K3 R2
0x400E0803, // 0014 CONNECT R3 K4 R3 0x94080202, // 0014 GETIDX R2 R1 R2
0x940C0403, // 0015 GETIDX R3 R2 R3 0x00080504, // 0015 ADD R2 R2 K4
0x000C0705, // 0016 ADD R3 R3 K5 0x5C040400, // 0016 MOVE R1 R2
0x5C080600, // 0017 MOVE R2 R3 0xB80A0A00, // 0017 GETNGBL R2 K5
0xB80E0C00, // 0018 GETNGBL R3 K6 0x8C080506, // 0018 GETMET R2 R2 K6
0x8C0C0707, // 0019 GETMET R3 R3 K7 0x60100018, // 0019 GETGBL R4 G24
0x8C140308, // 001A GETMET R5 R1 K8 0x58140007, // 001A LDCONST R5 K7
0x581C0009, // 001B LDCONST R7 K9 0xB81A0A00, // 001B GETNGBL R6 K5
0xB8220C00, // 001C GETNGBL R8 K6 0x8C180D08, // 001C GETMET R6 R6 K8
0x8C20110A, // 001D GETMET R8 R8 K10 0x7C180200, // 001D CALL R6 1
0x7C200200, // 001E CALL R8 1 0x881C0109, // 001E GETMBR R7 R0 K9
0x8824010B, // 001F GETMBR R9 R0 K11 0x04180C07, // 001F SUB R6 R6 R7
0x04201009, // 0020 SUB R8 R8 R9 0x881C010A, // 0020 GETMBR R7 R0 K10
0x8824010C, // 0021 GETMBR R9 R0 K12 0x6020000C, // 0021 GETGBL R8 G12
0x6028000C, // 0022 GETGBL R10 G12 0x88240101, // 0022 GETMBR R9 R0 K1
0x882C0102, // 0023 GETMBR R11 R0 K2 0x7C200200, // 0023 CALL R8 1
0x7C280200, // 0024 CALL R10 1 0x5C240200, // 0024 MOVE R9 R1
0x5C2C0400, // 0025 MOVE R11 R2 0x7C100A00, // 0025 CALL R4 5
0x7C140C00, // 0026 CALL R5 6 0x5814000B, // 0026 LDCONST R5 K11
0x5818000D, // 0027 LDCONST R6 K13 0x7C080600, // 0027 CALL R2 3
0x7C0C0600, // 0028 CALL R3 3 0x8C08010C, // 0028 GETMET R2 R0 K12
0x8C0C010E, // 0029 GETMET R3 R0 K14 0x8810010D, // 0029 GETMBR R4 R0 K13
0x8814010F, // 002A GETMBR R5 R0 K15 0x88140101, // 002A GETMBR R5 R0 K1
0x88180102, // 002B GETMBR R6 R0 K2 0x7C080600, // 002B CALL R2 3
0x7C0C0600, // 002C CALL R3 3 0x80000000, // 002C RET 0
0x80000000, // 002D RET 0
}) })
) )
); );
@ -466,7 +460,7 @@ be_local_closure(Matter_HTTP_remote_event_http_finished, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_remote_probe_async, /* name */ be_local_closure(Matter_HTTP_remote_probe_async, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 12, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -474,7 +468,7 @@ be_local_closure(Matter_HTTP_remote_probe_async, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[18]) { /* constants */ ( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(webserver), /* K1 */ be_nested_str_weak(webserver),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(tasmota),
@ -487,12 +481,11 @@ be_local_closure(Matter_HTTP_remote_probe_async, /* name */
/* K9 */ be_nested_str_weak(_X20), /* K9 */ be_nested_str_weak(_X20),
/* K10 */ be_nested_str_weak(_X2B), /* K10 */ be_nested_str_weak(_X2B),
/* K11 */ be_nested_str_weak(log), /* K11 */ be_nested_str_weak(log),
/* K12 */ be_nested_str_weak(format), /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27),
/* K13 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20async_X20request_X20_X27http_X3A_X2F_X2F_X25s_X3A_X25i_X25s_X27), /* K13 */ be_nested_str_weak(addr),
/* K14 */ be_nested_str_weak(addr), /* K14 */ be_nested_str_weak(port),
/* K15 */ be_nested_str_weak(port), /* K15 */ be_const_int(3),
/* K16 */ be_const_int(3), /* K16 */ be_nested_str_weak(begin),
/* K17 */ be_nested_str_weak(begin),
}), }),
be_str_weak(probe_async), be_str_weak(probe_async),
&be_const_str_solidified, &be_const_str_solidified,
@ -520,15 +513,15 @@ be_local_closure(Matter_HTTP_remote_probe_async, /* name */
0x00120E04, // 0014 ADD R4 K7 R4 0x00120E04, // 0014 ADD R4 K7 R4
0xB8160400, // 0015 GETNGBL R5 K2 0xB8160400, // 0015 GETNGBL R5 K2
0x8C140B0B, // 0016 GETMET R5 R5 K11 0x8C140B0B, // 0016 GETMET R5 R5 K11
0x8C1C050C, // 0017 GETMET R7 R2 K12 0x601C0018, // 0017 GETGBL R7 G24
0x5824000D, // 0018 LDCONST R9 K13 0x5820000C, // 0018 LDCONST R8 K12
0x8828010E, // 0019 GETMBR R10 R0 K14 0x8824010D, // 0019 GETMBR R9 R0 K13
0x882C010F, // 001A GETMBR R11 R0 K15 0x8828010E, // 001A GETMBR R10 R0 K14
0x5C300800, // 001B MOVE R12 R4 0x5C2C0800, // 001B MOVE R11 R4
0x7C1C0A00, // 001C CALL R7 5 0x7C1C0800, // 001C CALL R7 4
0x58200010, // 001D LDCONST R8 K16 0x5820000F, // 001D LDCONST R8 K15
0x7C140600, // 001E CALL R5 3 0x7C140600, // 001E CALL R5 3
0x8C140111, // 001F GETMET R5 R0 K17 0x8C140110, // 001F GETMET R5 R0 K16
0x5C1C0800, // 0020 MOVE R7 R4 0x5C1C0800, // 0020 MOVE R7 R4
0x7C140400, // 0021 CALL R5 2 0x7C140400, // 0021 CALL R5 2
0x80000000, // 0022 RET 0 0x80000000, // 0022 RET 0
@ -642,7 +635,7 @@ be_local_closure(Matter_HTTP_remote_event_http_failed, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_HTTP_remote_event_http_timeout, /* name */ be_local_closure(Matter_HTTP_remote_event_http_timeout, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -650,47 +643,44 @@ be_local_closure(Matter_HTTP_remote_event_http_timeout, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[12]) { /* constants */ ( &(const bvalue[10]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(current_cmd),
/* K1 */ be_nested_str_weak(current_cmd), /* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(log),
/* K3 */ be_nested_str_weak(log), /* K3 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(http_status),
/* K5 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20timeout_X20http_status_X3D_X25i_X20phase_X3D_X25i_X20tcp_status_X3D_X25i_X20size_payload_X3D_X25i), /* K5 */ be_nested_str_weak(phase),
/* K6 */ be_nested_str_weak(http_status), /* K6 */ be_nested_str_weak(status),
/* K7 */ be_nested_str_weak(phase), /* K7 */ be_nested_str_weak(payload),
/* K8 */ be_nested_str_weak(status), /* K8 */ be_const_int(3),
/* K9 */ be_nested_str_weak(payload), /* K9 */ be_nested_str_weak(dispatch_cb),
/* K10 */ be_const_int(3),
/* K11 */ be_nested_str_weak(dispatch_cb),
}), }),
be_str_weak(event_http_timeout), be_str_weak(event_http_timeout),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[24]) { /* code */ ( &(const binstruction[23]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x88080101, // 0001 GETMBR R2 R0 K1 0x4C080000, // 0001 LDNIL R2
0x4C0C0000, // 0002 LDNIL R3 0x1C040202, // 0002 EQ R1 R1 R2
0x1C080403, // 0003 EQ R2 R2 R3 0x78060000, // 0003 JMPF R1 #0005
0x780A0000, // 0004 JMPF R2 #0006 0x80000200, // 0004 RET 0
0x80000400, // 0005 RET 0 0xB8060200, // 0005 GETNGBL R1 K1
0xB80A0400, // 0006 GETNGBL R2 K2 0x8C040302, // 0006 GETMET R1 R1 K2
0x8C080503, // 0007 GETMET R2 R2 K3 0x600C0018, // 0007 GETGBL R3 G24
0x8C100304, // 0008 GETMET R4 R1 K4 0x58100003, // 0008 LDCONST R4 K3
0x58180005, // 0009 LDCONST R6 K5 0x88140104, // 0009 GETMBR R5 R0 K4
0x881C0106, // 000A GETMBR R7 R0 K6 0x88180105, // 000A GETMBR R6 R0 K5
0x88200107, // 000B GETMBR R8 R0 K7 0x881C0106, // 000B GETMBR R7 R0 K6
0x88240108, // 000C GETMBR R9 R0 K8 0x6020000C, // 000C GETGBL R8 G12
0x6028000C, // 000D GETGBL R10 G12 0x88240107, // 000D GETMBR R9 R0 K7
0x882C0109, // 000E GETMBR R11 R0 K9 0x7C200200, // 000E CALL R8 1
0x7C280200, // 000F CALL R10 1 0x7C0C0A00, // 000F CALL R3 5
0x7C100C00, // 0010 CALL R4 6 0x58100008, // 0010 LDCONST R4 K8
0x5814000A, // 0011 LDCONST R5 K10 0x7C040600, // 0011 CALL R1 3
0x7C080600, // 0012 CALL R2 3 0x8C040109, // 0012 GETMET R1 R0 K9
0x8C08010B, // 0013 GETMET R2 R0 K11 0x880C0104, // 0013 GETMBR R3 R0 K4
0x88100106, // 0014 GETMBR R4 R0 K6 0x4C100000, // 0014 LDNIL R4
0x4C140000, // 0015 LDNIL R5 0x7C040600, // 0015 CALL R1 3
0x7C080600, // 0016 CALL R2 3 0x80000000, // 0016 RET 0
0x80000000, // 0017 RET 0
}) })
) )
); );

File diff suppressed because it is too large Load Diff

View File

@ -307,7 +307,7 @@ be_local_closure(Matter_AttributePathIB_to_TLV, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_AttributePathIB_tostring, /* name */ be_local_closure(Matter_AttributePathIB_tostring, /* name */
be_nested_proto( be_nested_proto(
7, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -315,89 +315,86 @@ be_local_closure(Matter_AttributePathIB_tostring, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[16]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(),
/* K1 */ be_nested_str_weak(), /* K1 */ be_nested_str_weak(node),
/* K2 */ be_nested_str_weak(node), /* K2 */ be_nested_str_weak(node_X3D_X25s_X20),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(endpoint),
/* K4 */ be_nested_str_weak(node_X3D_X25s_X20), /* K4 */ be_nested_str_weak(_X5B_X2502X_X5D),
/* K5 */ be_nested_str_weak(endpoint), /* K5 */ be_nested_str_weak(_X5B_X2A_X2A_X5D),
/* K6 */ be_nested_str_weak(_X5B_X2502X_X5D), /* K6 */ be_nested_str_weak(cluster),
/* K7 */ be_nested_str_weak(_X5B_X2A_X2A_X5D), /* K7 */ be_nested_str_weak(_X2504X_X2F),
/* K8 */ be_nested_str_weak(cluster), /* K8 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2F),
/* K9 */ be_nested_str_weak(_X2504X_X2F), /* K9 */ be_nested_str_weak(attribute),
/* K10 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2F), /* K10 */ be_nested_str_weak(_X2504X),
/* K11 */ be_nested_str_weak(attribute), /* K11 */ be_nested_str_weak(_X2A_X2A_X2A_X2A),
/* K12 */ be_nested_str_weak(_X2504X), /* K12 */ be_nested_str_weak(Exception_X3E_X20),
/* K13 */ be_nested_str_weak(_X2A_X2A_X2A_X2A), /* K13 */ be_nested_str_weak(_X2C_X20),
/* K14 */ be_nested_str_weak(Exception_X3E_X20),
/* K15 */ be_nested_str_weak(_X2C_X20),
}), }),
be_str_weak(tostring), be_str_weak(tostring),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[62]) { /* code */ ( &(const binstruction[61]) { /* code */
0xA802002D, // 0000 EXBLK 0 #002F 0xA802002C, // 0000 EXBLK 0 #002E
0xA4060000, // 0001 IMPORT R1 K0 0x58040000, // 0001 LDCONST R1 K0
0x58080001, // 0002 LDCONST R2 K1 0x88080101, // 0002 GETMBR R2 R0 K1
0x880C0102, // 0003 GETMBR R3 R0 K2 0x780A0004, // 0003 JMPF R2 #0009
0x780E0004, // 0004 JMPF R3 #000A 0x60080018, // 0004 GETGBL R2 G24
0x8C0C0303, // 0005 GETMET R3 R1 K3 0x580C0002, // 0005 LDCONST R3 K2
0x58140004, // 0006 LDCONST R5 K4 0x88100101, // 0006 GETMBR R4 R0 K1
0x88180102, // 0007 GETMBR R6 R0 K2 0x7C080400, // 0007 CALL R2 2
0x7C0C0600, // 0008 CALL R3 3 0x00040202, // 0008 ADD R1 R1 R2
0x00080403, // 0009 ADD R2 R2 R3 0x88080103, // 0009 GETMBR R2 R0 K3
0x880C0105, // 000A GETMBR R3 R0 K5 0x4C0C0000, // 000A LDNIL R3
0x4C100000, // 000B LDNIL R4 0x20080403, // 000B NE R2 R2 R3
0x200C0604, // 000C NE R3 R3 R4 0x780A0004, // 000C JMPF R2 #0012
0x780E0004, // 000D JMPF R3 #0013 0x60080018, // 000D GETGBL R2 G24
0x8C0C0303, // 000E GETMET R3 R1 K3 0x580C0004, // 000E LDCONST R3 K4
0x58140006, // 000F LDCONST R5 K6 0x88100103, // 000F GETMBR R4 R0 K3
0x88180105, // 0010 GETMBR R6 R0 K5 0x7C080400, // 0010 CALL R2 2
0x7C0C0600, // 0011 CALL R3 3 0x70020000, // 0011 JMP #0013
0x70020000, // 0012 JMP #0014 0x58080005, // 0012 LDCONST R2 K5
0x580C0007, // 0013 LDCONST R3 K7 0x00040202, // 0013 ADD R1 R1 R2
0x00080403, // 0014 ADD R2 R2 R3 0x88080106, // 0014 GETMBR R2 R0 K6
0x880C0108, // 0015 GETMBR R3 R0 K8 0x4C0C0000, // 0015 LDNIL R3
0x4C100000, // 0016 LDNIL R4 0x20080403, // 0016 NE R2 R2 R3
0x200C0604, // 0017 NE R3 R3 R4 0x780A0004, // 0017 JMPF R2 #001D
0x780E0004, // 0018 JMPF R3 #001E 0x60080018, // 0018 GETGBL R2 G24
0x8C0C0303, // 0019 GETMET R3 R1 K3 0x580C0007, // 0019 LDCONST R3 K7
0x58140009, // 001A LDCONST R5 K9 0x88100106, // 001A GETMBR R4 R0 K6
0x88180108, // 001B GETMBR R6 R0 K8 0x7C080400, // 001B CALL R2 2
0x7C0C0600, // 001C CALL R3 3 0x70020000, // 001C JMP #001E
0x70020000, // 001D JMP #001F 0x58080008, // 001D LDCONST R2 K8
0x580C000A, // 001E LDCONST R3 K10 0x00040202, // 001E ADD R1 R1 R2
0x00080403, // 001F ADD R2 R2 R3 0x88080109, // 001F GETMBR R2 R0 K9
0x880C010B, // 0020 GETMBR R3 R0 K11 0x4C0C0000, // 0020 LDNIL R3
0x4C100000, // 0021 LDNIL R4 0x20080403, // 0021 NE R2 R2 R3
0x200C0604, // 0022 NE R3 R3 R4 0x780A0004, // 0022 JMPF R2 #0028
0x780E0004, // 0023 JMPF R3 #0029 0x60080018, // 0023 GETGBL R2 G24
0x8C0C0303, // 0024 GETMET R3 R1 K3 0x580C000A, // 0024 LDCONST R3 K10
0x5814000C, // 0025 LDCONST R5 K12 0x88100109, // 0025 GETMBR R4 R0 K9
0x8818010B, // 0026 GETMBR R6 R0 K11 0x7C080400, // 0026 CALL R2 2
0x7C0C0600, // 0027 CALL R3 3 0x70020000, // 0027 JMP #0029
0x70020000, // 0028 JMP #002A 0x5808000B, // 0028 LDCONST R2 K11
0x580C000D, // 0029 LDCONST R3 K13 0x00040202, // 0029 ADD R1 R1 R2
0x00080403, // 002A ADD R2 R2 R3 0xA8040001, // 002A EXBLK 1 1
0xA8040001, // 002B EXBLK 1 1 0x80040200, // 002B RET 1 R1
0x80040400, // 002C RET 1 R2 0xA8040001, // 002C EXBLK 1 1
0xA8040001, // 002D EXBLK 1 1 0x7002000D, // 002D JMP #003C
0x7002000D, // 002E JMP #003D 0xAC040002, // 002E CATCH R1 0 2
0xAC040002, // 002F CATCH R1 0 2 0x7002000A, // 002F JMP #003B
0x7002000A, // 0030 JMP #003C 0x600C0008, // 0030 GETGBL R3 G8
0x600C0008, // 0031 GETGBL R3 G8 0x5C100200, // 0031 MOVE R4 R1
0x5C100200, // 0032 MOVE R4 R1 0x7C0C0200, // 0032 CALL R3 1
0x7C0C0200, // 0033 CALL R3 1 0x000E1803, // 0033 ADD R3 K12 R3
0x000E1C03, // 0034 ADD R3 K14 R3 0x000C070D, // 0034 ADD R3 R3 K13
0x000C070F, // 0035 ADD R3 R3 K15 0x60100008, // 0035 GETGBL R4 G8
0x60100008, // 0036 GETGBL R4 G8 0x5C140400, // 0036 MOVE R5 R2
0x5C140400, // 0037 MOVE R5 R2 0x7C100200, // 0037 CALL R4 1
0x7C100200, // 0038 CALL R4 1 0x000C0604, // 0038 ADD R3 R3 R4
0x000C0604, // 0039 ADD R3 R3 R4 0x80040600, // 0039 RET 1 R3
0x80040600, // 003A RET 1 R3 0x70020000, // 003A JMP #003C
0x70020000, // 003B JMP #003D 0xB0080000, // 003B RAISE 2 R0 R0
0xB0080000, // 003C RAISE 2 R0 R0 0x80000000, // 003C RET 0
0x80000000, // 003D RET 0
}) })
) )
); );

View File

@ -35,7 +35,7 @@ be_local_closure(Matter_IM_Message_status_error_received, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_Message_send_im, /* name */ be_local_closure(Matter_IM_Message_send_im, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 11, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -43,66 +43,63 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[20]) { /* constants */ ( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(ready), /* K1 */ be_nested_str_weak(resp),
/* K2 */ be_nested_str_weak(resp), /* K2 */ be_nested_str_weak(encode_frame),
/* K3 */ be_nested_str_weak(encode_frame), /* K3 */ be_nested_str_weak(data),
/* K4 */ be_nested_str_weak(data), /* K4 */ be_nested_str_weak(to_TLV),
/* K5 */ be_nested_str_weak(to_TLV), /* K5 */ be_nested_str_weak(tlv2raw),
/* K6 */ be_nested_str_weak(tlv2raw), /* K6 */ be_nested_str_weak(encrypt),
/* K7 */ be_nested_str_weak(encrypt), /* K7 */ be_nested_str_weak(tasmota),
/* K8 */ be_nested_str_weak(tasmota), /* K8 */ be_nested_str_weak(log),
/* K9 */ be_nested_str_weak(log), /* K9 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s),
/* K10 */ be_nested_str_weak(format), /* K10 */ be_nested_str_weak(session),
/* K11 */ be_nested_str_weak(MTR_X3A_X20_X3Csnd_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20id_X3D_X25i_X20exch_X3D_X25i_X20rack_X3D_X25s), /* K11 */ be_nested_str_weak(local_session_id),
/* K12 */ be_nested_str_weak(session), /* K12 */ be_nested_str_weak(message_counter),
/* K13 */ be_nested_str_weak(local_session_id), /* K13 */ be_nested_str_weak(exchange_id),
/* K14 */ be_nested_str_weak(message_counter), /* K14 */ be_nested_str_weak(ack_message_counter),
/* K15 */ be_nested_str_weak(exchange_id), /* K15 */ be_nested_str_weak(send_response_frame),
/* K16 */ be_nested_str_weak(ack_message_counter), /* K16 */ be_nested_str_weak(last_counter),
/* K17 */ be_nested_str_weak(send_response_frame), /* K17 */ be_nested_str_weak(finish),
/* K18 */ be_nested_str_weak(last_counter),
/* K19 */ be_nested_str_weak(finish),
}), }),
be_str_weak(send_im), be_str_weak(send_im),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[35]) { /* code */ ( &(const binstruction[34]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x88080100, // 0000 GETMBR R2 R0 K0
0x880C0101, // 0001 GETMBR R3 R0 K1 0x740A0001, // 0001 JMPT R2 #0004
0x740E0001, // 0002 JMPT R3 #0005 0x50080000, // 0002 LDBOOL R2 0 0
0x500C0000, // 0003 LDBOOL R3 0 0 0x80040400, // 0003 RET 1 R2
0x80040600, // 0004 RET 1 R3 0x88080101, // 0004 GETMBR R2 R0 K1
0x880C0102, // 0005 GETMBR R3 R0 K2 0x8C0C0502, // 0005 GETMET R3 R2 K2
0x8C100703, // 0006 GETMET R4 R3 K3 0x88140103, // 0006 GETMBR R5 R0 K3
0x88180104, // 0007 GETMBR R6 R0 K4 0x8C140B04, // 0007 GETMET R5 R5 K4
0x8C180D05, // 0008 GETMET R6 R6 K5 0x7C140200, // 0008 CALL R5 1
0x7C180200, // 0009 CALL R6 1 0x8C140B05, // 0009 GETMET R5 R5 K5
0x8C180D06, // 000A GETMET R6 R6 K6 0x7C140200, // 000A CALL R5 1
0x7C180200, // 000B CALL R6 1 0x7C0C0400, // 000B CALL R3 2
0x7C100400, // 000C CALL R4 2 0x8C0C0506, // 000C GETMET R3 R2 K6
0x8C100707, // 000D GETMET R4 R3 K7 0x7C0C0200, // 000D CALL R3 1
0x7C100200, // 000E CALL R4 1 0xB80E0E00, // 000E GETNGBL R3 K7
0xB8121000, // 000F GETNGBL R4 K8 0x8C0C0708, // 000F GETMET R3 R3 K8
0x8C100909, // 0010 GETMET R4 R4 K9 0x60140018, // 0010 GETGBL R5 G24
0x8C18050A, // 0011 GETMET R6 R2 K10 0x58180009, // 0011 LDCONST R6 K9
0x5820000B, // 0012 LDCONST R8 K11 0x881C050A, // 0012 GETMBR R7 R2 K10
0x8824070C, // 0013 GETMBR R9 R3 K12 0x881C0F0B, // 0013 GETMBR R7 R7 K11
0x8824130D, // 0014 GETMBR R9 R9 K13 0x8820050C, // 0014 GETMBR R8 R2 K12
0x8828070E, // 0015 GETMBR R10 R3 K14 0x8824050D, // 0015 GETMBR R9 R2 K13
0x882C070F, // 0016 GETMBR R11 R3 K15 0x8828050E, // 0016 GETMBR R10 R2 K14
0x88300710, // 0017 GETMBR R12 R3 K16 0x7C140A00, // 0017 CALL R5 5
0x7C180C00, // 0018 CALL R6 6 0x541A0003, // 0018 LDINT R6 4
0x541E0003, // 0019 LDINT R7 4 0x7C0C0600, // 0019 CALL R3 3
0x7C100600, // 001A CALL R4 3 0x8C0C030F, // 001A GETMET R3 R1 K15
0x8C100311, // 001B GETMET R4 R1 K17 0x5C140400, // 001B MOVE R5 R2
0x5C180600, // 001C MOVE R6 R3 0x7C0C0400, // 001C CALL R3 2
0x7C100400, // 001D CALL R4 2 0x880C050C, // 001D GETMBR R3 R2 K12
0x8810070E, // 001E GETMBR R4 R3 K14 0x90022003, // 001E SETMBR R0 K16 R3
0x90022404, // 001F SETMBR R0 K18 R4 0x500C0200, // 001F LDBOOL R3 1 0
0x50100200, // 0020 LDBOOL R4 1 0 0x90022203, // 0020 SETMBR R0 K17 R3
0x90022604, // 0021 SETMBR R0 K19 R4 0x80000000, // 0021 RET 0
0x80000000, // 0022 RET 0
}) })
) )
); );
@ -254,7 +251,7 @@ be_local_closure(Matter_IM_Message_reached_timeout, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_Message_status_ok_received, /* name */ be_local_closure(Matter_IM_Message_status_ok_received, /* name */
be_nested_proto( be_nested_proto(
8, /* nstack */ 7, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -262,41 +259,39 @@ be_local_closure(Matter_IM_Message_status_ok_received, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(expiration),
/* K1 */ be_nested_str_weak(expiration), /* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(millis),
/* K3 */ be_nested_str_weak(millis), /* K3 */ be_nested_str_weak(MSG_TIMEOUT),
/* K4 */ be_nested_str_weak(MSG_TIMEOUT), /* K4 */ be_nested_str_weak(resp),
/* K5 */ be_nested_str_weak(resp), /* K5 */ be_nested_str_weak(build_response),
/* K6 */ be_nested_str_weak(build_response), /* K6 */ be_nested_str_weak(opcode),
/* K7 */ be_nested_str_weak(opcode), /* K7 */ be_nested_str_weak(x_flag_r),
/* K8 */ be_nested_str_weak(x_flag_r), /* K8 */ be_nested_str_weak(ready),
/* K9 */ be_nested_str_weak(ready),
}), }),
be_str_weak(status_ok_received), be_str_weak(status_ok_received),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[20]) { /* code */ ( &(const binstruction[19]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0xB80A0200, // 0000 GETNGBL R2 K1
0xB80E0400, // 0001 GETNGBL R3 K2 0x8C080502, // 0001 GETMET R2 R2 K2
0x8C0C0703, // 0002 GETMET R3 R3 K3 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x880C0103, // 0003 GETMBR R3 R0 K3
0x88100104, // 0004 GETMBR R4 R0 K4 0x00080403, // 0004 ADD R2 R2 R3
0x000C0604, // 0005 ADD R3 R3 R4 0x90020002, // 0005 SETMBR R0 K0 R2
0x90020203, // 0006 SETMBR R0 K1 R3 0x78060007, // 0006 JMPF R1 #000F
0x78060007, // 0007 JMPF R1 #0010 0x8C080305, // 0007 GETMET R2 R1 K5
0x8C0C0306, // 0008 GETMET R3 R1 K6 0x88100104, // 0008 GETMBR R4 R0 K4
0x88140105, // 0009 GETMBR R5 R0 K5 0x88100906, // 0009 GETMBR R4 R4 K6
0x88140B07, // 000A GETMBR R5 R5 K7 0x88140104, // 000A GETMBR R5 R0 K4
0x88180105, // 000B GETMBR R6 R0 K5 0x88140B07, // 000B GETMBR R5 R5 K7
0x88180D08, // 000C GETMBR R6 R6 K8 0x88180104, // 000C GETMBR R6 R0 K4
0x881C0105, // 000D GETMBR R7 R0 K5 0x7C080800, // 000D CALL R2 4
0x7C0C0800, // 000E CALL R3 4 0x90020802, // 000E SETMBR R0 K4 R2
0x90020A03, // 000F SETMBR R0 K5 R3 0x50080200, // 000F LDBOOL R2 1 0
0x500C0200, // 0010 LDBOOL R3 1 0 0x90021002, // 0010 SETMBR R0 K8 R2
0x90021203, // 0011 SETMBR R0 K9 R3 0x50080200, // 0011 LDBOOL R2 1 0
0x500C0200, // 0012 LDBOOL R3 1 0 0x80040400, // 0012 RET 1 R2
0x80040600, // 0013 RET 1 R3
}) })
) )
); );
@ -528,7 +523,7 @@ extern const bclass be_class_Matter_IM_ReportData;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_ReportData_send_im, /* name */ be_local_closure(Matter_IM_ReportData_send_im, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 12, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -536,97 +531,95 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[18]) { /* constants */ ( &(const bvalue[17]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(ready), /* K1 */ be_nested_str_weak(resp),
/* K2 */ be_nested_str_weak(resp), /* K2 */ be_nested_str_weak(data),
/* K3 */ be_nested_str_weak(data), /* K3 */ be_nested_str_weak(more_chunked_messages),
/* K4 */ be_nested_str_weak(more_chunked_messages), /* K4 */ be_const_int(1),
/* K5 */ be_const_int(1), /* K5 */ be_nested_str_weak(attribute_reports),
/* K6 */ be_nested_str_weak(attribute_reports), /* K6 */ be_const_int(2147483647),
/* K7 */ be_const_int(2147483647), /* K7 */ be_const_int(0),
/* K8 */ be_const_int(0), /* K8 */ be_nested_str_weak(to_TLV),
/* K9 */ be_nested_str_weak(to_TLV), /* K9 */ be_nested_str_weak(tlv2raw),
/* K10 */ be_nested_str_weak(tlv2raw), /* K10 */ be_nested_str_weak(MAX_MESSAGE),
/* K11 */ be_nested_str_weak(MAX_MESSAGE), /* K11 */ be_nested_str_weak(encode_frame),
/* K12 */ be_nested_str_weak(encode_frame), /* K12 */ be_nested_str_weak(encrypt),
/* K13 */ be_nested_str_weak(encrypt), /* K13 */ be_nested_str_weak(send_response_frame),
/* K14 */ be_nested_str_weak(send_response_frame), /* K14 */ be_nested_str_weak(last_counter),
/* K15 */ be_nested_str_weak(last_counter), /* K15 */ be_nested_str_weak(message_counter),
/* K16 */ be_nested_str_weak(message_counter), /* K16 */ be_nested_str_weak(finish),
/* K17 */ be_nested_str_weak(finish),
}), }),
be_str_weak(send_im), be_str_weak(send_im),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[68]) { /* code */ ( &(const binstruction[67]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x88080100, // 0000 GETMBR R2 R0 K0
0x880C0101, // 0001 GETMBR R3 R0 K1 0x740A0001, // 0001 JMPT R2 #0004
0x740E0001, // 0002 JMPT R3 #0005 0x50080000, // 0002 LDBOOL R2 0 0
0x500C0000, // 0003 LDBOOL R3 0 0 0x80040400, // 0003 RET 1 R2
0x80040600, // 0004 RET 1 R3 0x88080101, // 0004 GETMBR R2 R0 K1
0x880C0102, // 0005 GETMBR R3 R0 K2 0x880C0102, // 0005 GETMBR R3 R0 K2
0x88100103, // 0006 GETMBR R4 R0 K3 0x88100703, // 0006 GETMBR R4 R3 K3
0x88140904, // 0007 GETMBR R5 R4 K4 0x58140004, // 0007 LDCONST R5 K4
0x58180005, // 0008 LDCONST R6 K5 0x4C180000, // 0008 LDNIL R6
0x4C1C0000, // 0009 LDNIL R7 0x881C0705, // 0009 GETMBR R7 R3 K5
0x88200906, // 000A GETMBR R8 R4 K6 0x4C200000, // 000A LDNIL R8
0x4C240000, // 000B LDNIL R9 0x201C0E08, // 000B NE R7 R7 R8
0x20201009, // 000C NE R8 R8 R9 0x781E000D, // 000C JMPF R7 #001B
0x7822000D, // 000D JMPF R8 #001C 0x401C0B06, // 000D CONNECT R7 R5 K6
0x40200D07, // 000E CONNECT R8 R6 K7 0x88200705, // 000E GETMBR R8 R3 K5
0x88240906, // 000F GETMBR R9 R4 K6 0x94181007, // 000F GETIDX R6 R8 R7
0x941C1208, // 0010 GETIDX R7 R9 R8 0x04240B04, // 0010 SUB R9 R5 K4
0x04280D05, // 0011 SUB R10 R6 K5 0x40260E09, // 0011 CONNECT R9 K7 R9
0x402A100A, // 0012 CONNECT R10 K8 R10 0x88280705, // 0012 GETMBR R10 R3 K5
0x882C0906, // 0013 GETMBR R11 R4 K6 0x94241409, // 0013 GETIDX R9 R10 R9
0x9428160A, // 0014 GETIDX R10 R11 R10 0x900E0A09, // 0014 SETMBR R3 K5 R9
0x90120C0A, // 0015 SETMBR R4 K6 R10 0x6024000C, // 0015 GETGBL R9 G12
0x6028000C, // 0016 GETGBL R10 G12 0x5C280C00, // 0016 MOVE R10 R6
0x5C2C0E00, // 0017 MOVE R11 R7 0x7C240200, // 0017 CALL R9 1
0x7C280200, // 0018 CALL R10 1 0x24241307, // 0018 GT R9 R9 K7
0x24281508, // 0019 GT R10 R10 K8 0x900E0609, // 0019 SETMBR R3 K3 R9
0x9012080A, // 001A SETMBR R4 K4 R10 0x70020001, // 001A JMP #001D
0x70020001, // 001B JMP #001E 0x501C0000, // 001B LDBOOL R7 0 0
0x50200000, // 001C LDBOOL R8 0 0 0x900E0607, // 001C SETMBR R3 K3 R7
0x90120808, // 001D SETMBR R4 K4 R8 0x7811FFFF, // 001D JMPF R4 #001E
0x7815FFFF, // 001E JMPF R5 #001F 0x881C0703, // 001E GETMBR R7 R3 K3
0x88200904, // 001F GETMBR R8 R4 K4 0x781E0001, // 001F JMPF R7 #0022
0x78220001, // 0020 JMPF R8 #0023 0x5C1C0800, // 0020 MOVE R7 R4
0x5C200A00, // 0021 MOVE R8 R5 0x741DFFFF, // 0021 JMPT R7 #0022
0x7421FFFF, // 0022 JMPT R8 #0023 0x881C0102, // 0022 GETMBR R7 R0 K2
0x88200103, // 0023 GETMBR R8 R0 K3 0x8C1C0F08, // 0023 GETMET R7 R7 K8
0x8C201109, // 0024 GETMET R8 R8 K9 0x7C1C0200, // 0024 CALL R7 1
0x7C200200, // 0025 CALL R8 1 0x8C200F09, // 0025 GETMET R8 R7 K9
0x8C24110A, // 0026 GETMET R9 R8 K10 0x60280015, // 0026 GETGBL R10 G21
0x602C0015, // 0027 GETGBL R11 G21 0x882C010A, // 0027 GETMBR R11 R0 K10
0x8830010B, // 0028 GETMBR R12 R0 K11 0x7C280200, // 0028 CALL R10 1
0x7C2C0200, // 0029 CALL R11 1 0x7C200400, // 0029 CALL R8 2
0x7C240400, // 002A CALL R9 2 0x8C24050B, // 002A GETMET R9 R2 K11
0x8C28070C, // 002B GETMET R10 R3 K12 0x5C2C1000, // 002B MOVE R11 R8
0x5C301200, // 002C MOVE R12 R9 0x7C240400, // 002C CALL R9 2
0x7C280400, // 002D CALL R10 2 0x8C24050C, // 002D GETMET R9 R2 K12
0x8C28070D, // 002E GETMET R10 R3 K13 0x7C240200, // 002E CALL R9 1
0x7C280200, // 002F CALL R10 1 0x8C24030D, // 002F GETMET R9 R1 K13
0x8C28030E, // 0030 GETMET R10 R1 K14 0x5C2C0400, // 0030 MOVE R11 R2
0x5C300600, // 0031 MOVE R12 R3 0x7C240400, // 0031 CALL R9 2
0x7C280400, // 0032 CALL R10 2 0x8824050F, // 0032 GETMBR R9 R2 K15
0x88280710, // 0033 GETMBR R10 R3 K16 0x90021C09, // 0033 SETMBR R0 K14 R9
0x90021E0A, // 0034 SETMBR R0 K15 R10 0x4C240000, // 0034 LDNIL R9
0x4C280000, // 0035 LDNIL R10 0x20240C09, // 0035 NE R9 R6 R9
0x20280E0A, // 0036 NE R10 R7 R10 0x78260008, // 0036 JMPF R9 #0040
0x782A0008, // 0037 JMPF R10 #0041 0x6024000C, // 0037 GETGBL R9 G12
0x6028000C, // 0038 GETGBL R10 G12 0x5C280C00, // 0038 MOVE R10 R6
0x5C2C0E00, // 0039 MOVE R11 R7 0x7C240200, // 0039 CALL R9 1
0x7C280200, // 003A CALL R10 1 0x24241307, // 003A GT R9 R9 K7
0x24281508, // 003B GT R10 R10 K8 0x78260003, // 003B JMPF R9 #0040
0x782A0003, // 003C JMPF R10 #0041 0x900E0A06, // 003C SETMBR R3 K5 R6
0x90120C07, // 003D SETMBR R4 K6 R7 0x50240000, // 003D LDBOOL R9 0 0
0x50280000, // 003E LDBOOL R10 0 0 0x90020009, // 003E SETMBR R0 K0 R9
0x9002020A, // 003F SETMBR R0 K1 R10 0x70020001, // 003F JMP #0042
0x70020001, // 0040 JMP #0043 0x50240200, // 0040 LDBOOL R9 1 0
0x50280200, // 0041 LDBOOL R10 1 0 0x90022009, // 0041 SETMBR R0 K16 R9
0x9002220A, // 0042 SETMBR R0 K17 R10 0x80000000, // 0042 RET 0
0x80000000, // 0043 RET 0
}) })
) )
); );
@ -748,7 +741,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_ack_received, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -756,103 +749,100 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[22]) { /* constants */ ( &(const bvalue[20]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(ready),
/* K1 */ be_nested_str_weak(ready), /* K1 */ be_nested_str_weak(data),
/* K2 */ be_nested_str_weak(data), /* K2 */ be_nested_str_weak(attribute_reports),
/* K3 */ be_nested_str_weak(attribute_reports), /* K3 */ be_const_int(0),
/* K4 */ be_const_int(0), /* K4 */ be_nested_str_weak(report_data_phase),
/* K5 */ be_nested_str_weak(report_data_phase), /* K5 */ be_nested_str_weak(send_im),
/* K6 */ be_nested_str_weak(send_im), /* K6 */ be_nested_str_weak(finish),
/* K7 */ be_nested_str_weak(finish), /* K7 */ be_nested_str_weak(resp),
/* K8 */ be_nested_str_weak(resp), /* K8 */ be_nested_str_weak(build_standalone_ack),
/* K9 */ be_nested_str_weak(build_standalone_ack), /* K9 */ be_nested_str_weak(encode_frame),
/* K10 */ be_nested_str_weak(encode_frame), /* K10 */ be_nested_str_weak(encrypt),
/* K11 */ be_nested_str_weak(encrypt), /* K11 */ be_nested_str_weak(tasmota),
/* K12 */ be_nested_str_weak(tasmota), /* K12 */ be_nested_str_weak(log),
/* K13 */ be_nested_str_weak(log), /* K13 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i),
/* K14 */ be_nested_str_weak(format), /* K14 */ be_nested_str_weak(session),
/* K15 */ be_nested_str_weak(MTR_X3A_X20_X3CAck_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20ack_X3D_X25i_X20id_X3D_X25i), /* K15 */ be_nested_str_weak(local_session_id),
/* K16 */ be_nested_str_weak(session), /* K16 */ be_nested_str_weak(ack_message_counter),
/* K17 */ be_nested_str_weak(local_session_id), /* K17 */ be_nested_str_weak(message_counter),
/* K18 */ be_nested_str_weak(ack_message_counter), /* K18 */ be_nested_str_weak(send_response_frame),
/* K19 */ be_nested_str_weak(message_counter), /* K19 */ be_nested_str_weak(last_counter),
/* K20 */ be_nested_str_weak(send_response_frame),
/* K21 */ be_nested_str_weak(last_counter),
}), }),
be_str_weak(send_im), be_str_weak(send_im),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[70]) { /* code */ ( &(const binstruction[69]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x88080100, // 0000 GETMBR R2 R0 K0
0x880C0101, // 0001 GETMBR R3 R0 K1 0x740A0001, // 0001 JMPT R2 #0004
0x740E0001, // 0002 JMPT R3 #0005 0x50080000, // 0002 LDBOOL R2 0 0
0x500C0000, // 0003 LDBOOL R3 0 0 0x80040400, // 0003 RET 1 R2
0x80040600, // 0004 RET 1 R3 0x6008000C, // 0004 GETGBL R2 G12
0x600C000C, // 0005 GETGBL R3 G12 0x880C0101, // 0005 GETMBR R3 R0 K1
0x88100102, // 0006 GETMBR R4 R0 K2 0x880C0702, // 0006 GETMBR R3 R3 K2
0x88100903, // 0007 GETMBR R4 R4 K3 0x7C080200, // 0007 CALL R2 1
0x7C0C0200, // 0008 CALL R3 1 0x24080503, // 0008 GT R2 R2 K3
0x240C0704, // 0009 GT R3 R3 K4 0x780A002C, // 0009 JMPF R2 #0037
0x780E002C, // 000A JMPF R3 #0038 0x88080104, // 000A GETMBR R2 R0 K4
0x880C0105, // 000B GETMBR R3 R0 K5 0x780A000F, // 000B JMPF R2 #001C
0x780E000F, // 000C JMPF R3 #001D 0x60080003, // 000C GETGBL R2 G3
0x600C0003, // 000D GETGBL R3 G3 0x5C0C0000, // 000D MOVE R3 R0
0x5C100000, // 000E MOVE R4 R0 0x7C080200, // 000E CALL R2 1
0x7C0C0200, // 000F CALL R3 1 0x8C080505, // 000F GETMET R2 R2 K5
0x8C0C0706, // 0010 GETMET R3 R3 K6 0x5C100200, // 0010 MOVE R4 R1
0x5C140200, // 0011 MOVE R5 R1 0x7C080400, // 0011 CALL R2 2
0x7C0C0400, // 0012 CALL R3 2 0x88080106, // 0012 GETMBR R2 R0 K6
0x880C0107, // 0013 GETMBR R3 R0 K7 0x740A0000, // 0013 JMPT R2 #0015
0x740E0000, // 0014 JMPT R3 #0016 0x80000400, // 0014 RET 0
0x80000600, // 0015 RET 0 0x50080000, // 0015 LDBOOL R2 0 0
0x500C0000, // 0016 LDBOOL R3 0 0 0x90020802, // 0016 SETMBR R0 K4 R2
0x90020A03, // 0017 SETMBR R0 K5 R3 0x50080000, // 0017 LDBOOL R2 0 0
0x500C0000, // 0018 LDBOOL R3 0 0 0x90020002, // 0018 SETMBR R0 K0 R2
0x90020203, // 0019 SETMBR R0 K1 R3 0x50080000, // 0019 LDBOOL R2 0 0
0x500C0000, // 001A LDBOOL R3 0 0 0x90020C02, // 001A SETMBR R0 K6 R2
0x90020E03, // 001B SETMBR R0 K7 R3 0x70020019, // 001B JMP #0036
0x70020019, // 001C JMP #0037 0x88080107, // 001C GETMBR R2 R0 K7
0x880C0108, // 001D GETMBR R3 R0 K8 0x8C080508, // 001D GETMET R2 R2 K8
0x8C0C0709, // 001E GETMET R3 R3 K9 0x50100000, // 001E LDBOOL R4 0 0
0x50140000, // 001F LDBOOL R5 0 0 0x7C080400, // 001F CALL R2 2
0x7C0C0400, // 0020 CALL R3 2 0x8C0C0509, // 0020 GETMET R3 R2 K9
0x8C10070A, // 0021 GETMET R4 R3 K10 0x7C0C0200, // 0021 CALL R3 1
0x7C100200, // 0022 CALL R4 1 0x8C0C050A, // 0022 GETMET R3 R2 K10
0x8C10070B, // 0023 GETMET R4 R3 K11 0x7C0C0200, // 0023 CALL R3 1
0x7C100200, // 0024 CALL R4 1 0xB80E1600, // 0024 GETNGBL R3 K11
0xB8121800, // 0025 GETNGBL R4 K12 0x8C0C070C, // 0025 GETMET R3 R3 K12
0x8C10090D, // 0026 GETMET R4 R4 K13 0x60140018, // 0026 GETGBL R5 G24
0x8C18050E, // 0027 GETMET R6 R2 K14 0x5818000D, // 0027 LDCONST R6 K13
0x5820000F, // 0028 LDCONST R8 K15 0x881C050E, // 0028 GETMBR R7 R2 K14
0x88240710, // 0029 GETMBR R9 R3 K16 0x881C0F0F, // 0029 GETMBR R7 R7 K15
0x88241311, // 002A GETMBR R9 R9 K17 0x88200510, // 002A GETMBR R8 R2 K16
0x88280712, // 002B GETMBR R10 R3 K18 0x88240511, // 002B GETMBR R9 R2 K17
0x882C0713, // 002C GETMBR R11 R3 K19 0x7C140800, // 002C CALL R5 4
0x7C180A00, // 002D CALL R6 5 0x541A0003, // 002D LDINT R6 4
0x541E0003, // 002E LDINT R7 4 0x7C0C0600, // 002E CALL R3 3
0x7C100600, // 002F CALL R4 3 0x8C0C0312, // 002F GETMET R3 R1 K18
0x8C100314, // 0030 GETMET R4 R1 K20 0x5C140400, // 0030 MOVE R5 R2
0x5C180600, // 0031 MOVE R6 R3 0x7C0C0400, // 0031 CALL R3 2
0x7C100400, // 0032 CALL R4 2 0x880C0511, // 0032 GETMBR R3 R2 K17
0x88100713, // 0033 GETMBR R4 R3 K19 0x90022603, // 0033 SETMBR R0 K19 R3
0x90022A04, // 0034 SETMBR R0 K21 R4 0x500C0200, // 0034 LDBOOL R3 1 0
0x50100200, // 0035 LDBOOL R4 1 0 0x90020C03, // 0035 SETMBR R0 K6 R3
0x90020E04, // 0036 SETMBR R0 K7 R4 0x7002000C, // 0036 JMP #0044
0x7002000C, // 0037 JMP #0045 0x88080104, // 0037 GETMBR R2 R0 K4
0x880C0105, // 0038 GETMBR R3 R0 K5 0x780A0008, // 0038 JMPF R2 #0042
0x780E0008, // 0039 JMPF R3 #0043 0x60080003, // 0039 GETGBL R2 G3
0x600C0003, // 003A GETGBL R3 G3 0x5C0C0000, // 003A MOVE R3 R0
0x5C100000, // 003B MOVE R4 R0 0x7C080200, // 003B CALL R2 1
0x7C0C0200, // 003C CALL R3 1 0x8C080505, // 003C GETMET R2 R2 K5
0x8C0C0706, // 003D GETMET R3 R3 K6 0x5C100200, // 003D MOVE R4 R1
0x5C140200, // 003E MOVE R5 R1 0x7C080400, // 003E CALL R2 2
0x7C0C0400, // 003F CALL R3 2 0x50080000, // 003F LDBOOL R2 0 0
0x500C0000, // 0040 LDBOOL R3 0 0 0x90020802, // 0040 SETMBR R0 K4 R2
0x90020A03, // 0041 SETMBR R0 K5 R3 0x70020001, // 0041 JMP #0044
0x70020001, // 0042 JMP #0045 0x50080200, // 0042 LDBOOL R2 1 0
0x500C0200, // 0043 LDBOOL R3 1 0 0x90020C02, // 0043 SETMBR R0 K6 R2
0x90020E03, // 0044 SETMBR R0 K7 R3 0x80000000, // 0044 RET 0
0x80000000, // 0045 RET 0
}) })
) )
); );
@ -1345,7 +1335,7 @@ be_local_closure(Matter_IM_SubscribeResponse_init, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_SubscribeResponse_status_ok_received, /* name */ be_local_closure(Matter_IM_SubscribeResponse_status_ok_received, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1353,41 +1343,38 @@ be_local_closure(Matter_IM_SubscribeResponse_status_ok_received, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[11]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(tasmota), /* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(log), /* K2 */ be_nested_str_weak(MTR_X3A_X20_X3ESub_OK_X20_X20_X20_X20_X28_X256i_X29_X20sub_X3D_X25i),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(session),
/* K4 */ be_nested_str_weak(MTR_X3A_X20_X3ESub_OK_X20_X20_X20_X20_X28_X256i_X29_X20sub_X3D_X25i), /* K4 */ be_nested_str_weak(local_session_id),
/* K5 */ be_nested_str_weak(session), /* K5 */ be_nested_str_weak(sub),
/* K6 */ be_nested_str_weak(local_session_id), /* K6 */ be_nested_str_weak(subscription_id),
/* K7 */ be_nested_str_weak(sub), /* K7 */ be_const_int(3),
/* K8 */ be_nested_str_weak(subscription_id), /* K8 */ be_nested_str_weak(status_ok_received),
/* K9 */ be_const_int(3),
/* K10 */ be_nested_str_weak(status_ok_received),
}), }),
be_str_weak(status_ok_received), be_str_weak(status_ok_received),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[19]) { /* code */ ( &(const binstruction[18]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0xB80A0000, // 0000 GETNGBL R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1 0x8C080501, // 0001 GETMET R2 R2 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2 0x60100018, // 0002 GETGBL R4 G24
0x8C140503, // 0003 GETMET R5 R2 K3 0x58140002, // 0003 LDCONST R5 K2
0x581C0004, // 0004 LDCONST R7 K4 0x88180303, // 0004 GETMBR R6 R1 K3
0x88200305, // 0005 GETMBR R8 R1 K5 0x88180D04, // 0005 GETMBR R6 R6 K4
0x88201106, // 0006 GETMBR R8 R8 K6 0x881C0105, // 0006 GETMBR R7 R0 K5
0x88240107, // 0007 GETMBR R9 R0 K7 0x881C0F06, // 0007 GETMBR R7 R7 K6
0x88241308, // 0008 GETMBR R9 R9 K8 0x7C100600, // 0008 CALL R4 3
0x7C140800, // 0009 CALL R5 4 0x58140007, // 0009 LDCONST R5 K7
0x58180009, // 000A LDCONST R6 K9 0x7C080600, // 000A CALL R2 3
0x7C0C0600, // 000B CALL R3 3 0x60080003, // 000B GETGBL R2 G3
0x600C0003, // 000C GETGBL R3 G3 0x5C0C0000, // 000C MOVE R3 R0
0x5C100000, // 000D MOVE R4 R0 0x7C080200, // 000D CALL R2 1
0x7C0C0200, // 000E CALL R3 1 0x8C080508, // 000E GETMET R2 R2 K8
0x8C0C070A, // 000F GETMET R3 R3 K10 0x5C100200, // 000F MOVE R4 R1
0x5C140200, // 0010 MOVE R5 R1 0x7C080400, // 0010 CALL R2 2
0x7C0C0400, // 0011 CALL R3 2 0x80040400, // 0011 RET 1 R2
0x80040600, // 0012 RET 1 R3
}) })
) )
); );

View File

@ -323,7 +323,7 @@ be_local_closure(Matter_IM_Subscription_attribute_updated_ctx, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_IM_Subscription_re_arm, /* name */ be_local_closure(Matter_IM_Subscription_re_arm, /* name */
be_nested_proto( be_nested_proto(
9, /* nstack */ 7, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -331,57 +331,54 @@ be_local_closure(Matter_IM_Subscription_re_arm, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[16]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(wait_status),
/* K1 */ be_nested_str_weak(wait_status), /* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(tasmota), /* K2 */ be_nested_str_weak(millis),
/* K3 */ be_nested_str_weak(millis), /* K3 */ be_nested_str_weak(expiration),
/* K4 */ be_nested_str_weak(expiration), /* K4 */ be_nested_str_weak(max_interval),
/* K5 */ be_nested_str_weak(max_interval), /* K5 */ be_nested_str_weak(MAX_INTERVAL_MARGIN),
/* K6 */ be_nested_str_weak(MAX_INTERVAL_MARGIN), /* K6 */ be_nested_str_weak(not_before),
/* K7 */ be_nested_str_weak(not_before), /* K7 */ be_nested_str_weak(min_interval),
/* K8 */ be_nested_str_weak(min_interval), /* K8 */ be_const_int(1),
/* K9 */ be_const_int(1), /* K9 */ be_nested_str_weak(is_keep_alive),
/* K10 */ be_nested_str_weak(is_keep_alive), /* K10 */ be_nested_str_weak(log),
/* K11 */ be_nested_str_weak(log), /* K11 */ be_nested_str_weak(MTR_X3A_X20_X2ESub_Done_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D_X25i),
/* K12 */ be_nested_str_weak(format), /* K12 */ be_nested_str_weak(subscription_id),
/* K13 */ be_nested_str_weak(MTR_X3A_X20_X2ESub_Done_X20_X20_X28_X20_X20_X20_X20_X20_X20_X29_X20sub_X3D_X25i), /* K13 */ be_const_int(3),
/* K14 */ be_nested_str_weak(subscription_id),
/* K15 */ be_const_int(3),
}), }),
be_str_weak(re_arm), be_str_weak(re_arm),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[30]) { /* code */ ( &(const binstruction[29]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x50040000, // 0000 LDBOOL R1 0 0
0x50080000, // 0001 LDBOOL R2 0 0 0x90020001, // 0001 SETMBR R0 K0 R1
0x90020202, // 0002 SETMBR R0 K1 R2 0xB8060200, // 0002 GETNGBL R1 K1
0xB80A0400, // 0003 GETNGBL R2 K2 0x8C040302, // 0003 GETMET R1 R1 K2
0x8C080503, // 0004 GETMET R2 R2 K3 0x7C040200, // 0004 CALL R1 1
0x7C080200, // 0005 CALL R2 1 0x88080104, // 0005 GETMBR R2 R0 K4
0x880C0105, // 0006 GETMBR R3 R0 K5 0x880C0105, // 0006 GETMBR R3 R0 K5
0x88100106, // 0007 GETMBR R4 R0 K6 0x04080403, // 0007 SUB R2 R2 R3
0x040C0604, // 0008 SUB R3 R3 R4 0x540E03E7, // 0008 LDINT R3 1000
0x541203E7, // 0009 LDINT R4 1000 0x08080403, // 0009 MUL R2 R2 R3
0x080C0604, // 000A MUL R3 R3 R4 0x00080202, // 000A ADD R2 R1 R2
0x000C0403, // 000B ADD R3 R2 R3 0x90020602, // 000B SETMBR R0 K3 R2
0x90020803, // 000C SETMBR R0 K4 R3 0x88080107, // 000C GETMBR R2 R0 K7
0x880C0108, // 000D GETMBR R3 R0 K8 0x540E03E7, // 000D LDINT R3 1000
0x541203E7, // 000E LDINT R4 1000 0x08080403, // 000E MUL R2 R2 R3
0x080C0604, // 000F MUL R3 R3 R4 0x00080202, // 000F ADD R2 R1 R2
0x000C0403, // 0010 ADD R3 R2 R3 0x04080508, // 0010 SUB R2 R2 K8
0x040C0709, // 0011 SUB R3 R3 K9 0x90020C02, // 0011 SETMBR R0 K6 R2
0x90020E03, // 0012 SETMBR R0 K7 R3 0x88080109, // 0012 GETMBR R2 R0 K9
0x880C010A, // 0013 GETMBR R3 R0 K10 0x740A0007, // 0013 JMPT R2 #001C
0x740E0007, // 0014 JMPT R3 #001D 0xB80A0200, // 0014 GETNGBL R2 K1
0xB80E0400, // 0015 GETNGBL R3 K2 0x8C08050A, // 0015 GETMET R2 R2 K10
0x8C0C070B, // 0016 GETMET R3 R3 K11 0x60100018, // 0016 GETGBL R4 G24
0x8C14030C, // 0017 GETMET R5 R1 K12 0x5814000B, // 0017 LDCONST R5 K11
0x581C000D, // 0018 LDCONST R7 K13 0x8818010C, // 0018 GETMBR R6 R0 K12
0x8820010E, // 0019 GETMBR R8 R0 K14 0x7C100400, // 0019 CALL R4 2
0x7C140600, // 001A CALL R5 3 0x5814000D, // 001A LDCONST R5 K13
0x5818000F, // 001B LDCONST R6 K15 0x7C080600, // 001B CALL R2 3
0x7C0C0600, // 001C CALL R3 3 0x80000000, // 001C RET 0
0x80000000, // 001D RET 0
}) })
) )
); );

View File

@ -348,7 +348,7 @@ be_local_closure(Matter_Frame_debug, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Frame_build_standalone_ack, /* name */ be_local_closure(Matter_Frame_build_standalone_ack, /* name */
be_nested_proto( be_nested_proto(
6, /* nstack */ 5, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -356,79 +356,77 @@ be_local_closure(Matter_Frame_build_standalone_ack, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[22]) { /* constants */ ( &(const bvalue[21]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(message_handler),
/* K1 */ be_nested_str_weak(message_handler), /* K1 */ be_nested_str_weak(remote_ip),
/* K2 */ be_nested_str_weak(remote_ip), /* K2 */ be_nested_str_weak(remote_port),
/* K3 */ be_nested_str_weak(remote_port), /* K3 */ be_nested_str_weak(flag_s),
/* K4 */ be_nested_str_weak(flag_s), /* K4 */ be_nested_str_weak(flag_dsiz),
/* K5 */ be_nested_str_weak(flag_dsiz), /* K5 */ be_const_int(1),
/* K6 */ be_const_int(1), /* K6 */ be_nested_str_weak(dest_node_id_8),
/* K7 */ be_nested_str_weak(dest_node_id_8), /* K7 */ be_nested_str_weak(source_node_id),
/* K8 */ be_nested_str_weak(source_node_id), /* K8 */ be_const_int(0),
/* K9 */ be_const_int(0), /* K9 */ be_nested_str_weak(session),
/* K10 */ be_nested_str_weak(session), /* K10 */ be_nested_str_weak(message_counter),
/* K11 */ be_nested_str_weak(message_counter), /* K11 */ be_nested_str_weak(counter_snd_next),
/* K12 */ be_nested_str_weak(counter_snd_next), /* K12 */ be_nested_str_weak(local_session_id),
/* K13 */ be_nested_str_weak(local_session_id), /* K13 */ be_nested_str_weak(initiator_session_id),
/* K14 */ be_nested_str_weak(initiator_session_id), /* K14 */ be_nested_str_weak(x_flag_i),
/* K15 */ be_nested_str_weak(x_flag_i), /* K15 */ be_nested_str_weak(opcode),
/* K16 */ be_nested_str_weak(opcode), /* K16 */ be_nested_str_weak(exchange_id),
/* K17 */ be_nested_str_weak(exchange_id), /* K17 */ be_nested_str_weak(protocol_id),
/* K18 */ be_nested_str_weak(protocol_id), /* K18 */ be_nested_str_weak(x_flag_a),
/* K19 */ be_nested_str_weak(x_flag_a), /* K19 */ be_nested_str_weak(ack_message_counter),
/* K20 */ be_nested_str_weak(ack_message_counter), /* K20 */ be_nested_str_weak(x_flag_r),
/* K21 */ be_nested_str_weak(x_flag_r),
}), }),
be_str_weak(build_standalone_ack), be_str_weak(build_standalone_ack),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[46]) { /* code */ ( &(const binstruction[45]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x60080006, // 0000 GETGBL R2 G6
0x600C0006, // 0001 GETGBL R3 G6 0x5C0C0000, // 0001 MOVE R3 R0
0x5C100000, // 0002 MOVE R4 R0 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x880C0100, // 0003 GETMBR R3 R0 K0
0x88100101, // 0004 GETMBR R4 R0 K1 0x7C080200, // 0004 CALL R2 1
0x7C0C0200, // 0005 CALL R3 1 0x880C0101, // 0005 GETMBR R3 R0 K1
0x88100102, // 0006 GETMBR R4 R0 K2 0x900A0203, // 0006 SETMBR R2 K1 R3
0x900E0404, // 0007 SETMBR R3 K2 R4 0x880C0102, // 0007 GETMBR R3 R0 K2
0x88100103, // 0008 GETMBR R4 R0 K3 0x900A0403, // 0008 SETMBR R2 K2 R3
0x900E0604, // 0009 SETMBR R3 K3 R4 0x880C0103, // 0009 GETMBR R3 R0 K3
0x88100104, // 000A GETMBR R4 R0 K4 0x780E0003, // 000A JMPF R3 #000F
0x78120003, // 000B JMPF R4 #0010 0x900A0905, // 000B SETMBR R2 K4 K5
0x900E0B06, // 000C SETMBR R3 K5 K6 0x880C0107, // 000C GETMBR R3 R0 K7
0x88100108, // 000D GETMBR R4 R0 K8 0x900A0C03, // 000D SETMBR R2 K6 R3
0x900E0E04, // 000E SETMBR R3 K7 R4 0x70020000, // 000E JMP #0010
0x70020000, // 000F JMP #0011 0x900A0908, // 000F SETMBR R2 K4 K8
0x900E0B09, // 0010 SETMBR R3 K5 K9 0x880C0109, // 0010 GETMBR R3 R0 K9
0x8810010A, // 0011 GETMBR R4 R0 K10 0x900A1203, // 0011 SETMBR R2 K9 R3
0x900E1404, // 0012 SETMBR R3 K10 R4 0x880C0109, // 0012 GETMBR R3 R0 K9
0x8810010A, // 0013 GETMBR R4 R0 K10 0x8C0C070B, // 0013 GETMET R3 R3 K11
0x8C10090C, // 0014 GETMET R4 R4 K12 0x7C0C0200, // 0014 CALL R3 1
0x7C100200, // 0015 CALL R4 1 0x900A1403, // 0015 SETMBR R2 K10 R3
0x900E1604, // 0016 SETMBR R3 K11 R4 0x880C0109, // 0016 GETMBR R3 R0 K9
0x8810010A, // 0017 GETMBR R4 R0 K10 0x880C070D, // 0017 GETMBR R3 R3 K13
0x8810090E, // 0018 GETMBR R4 R4 K14 0x900A1803, // 0018 SETMBR R2 K12 R3
0x900E1A04, // 0019 SETMBR R3 K13 R4 0x880C010E, // 0019 GETMBR R3 R0 K14
0x8810010F, // 001A GETMBR R4 R0 K15 0x780E0001, // 001A JMPF R3 #001D
0x78120001, // 001B JMPF R4 #001E 0x580C0008, // 001B LDCONST R3 K8
0x58100009, // 001C LDCONST R4 K9 0x70020000, // 001C JMP #001E
0x70020000, // 001D JMP #001F 0x580C0005, // 001D LDCONST R3 K5
0x58100006, // 001E LDCONST R4 K6 0x900A1C03, // 001E SETMBR R2 K14 R3
0x900E1E04, // 001F SETMBR R3 K15 R4 0x540E000F, // 001F LDINT R3 16
0x5412000F, // 0020 LDINT R4 16 0x900A1E03, // 0020 SETMBR R2 K15 R3
0x900E2004, // 0021 SETMBR R3 K16 R4 0x880C0110, // 0021 GETMBR R3 R0 K16
0x88100111, // 0022 GETMBR R4 R0 K17 0x900A2003, // 0022 SETMBR R2 K16 R3
0x900E2204, // 0023 SETMBR R3 K17 R4 0x900A2308, // 0023 SETMBR R2 K17 K8
0x900E2509, // 0024 SETMBR R3 K18 K9 0x900A2505, // 0024 SETMBR R2 K18 K5
0x900E2706, // 0025 SETMBR R3 K19 K6 0x880C010A, // 0025 GETMBR R3 R0 K10
0x8810010B, // 0026 GETMBR R4 R0 K11 0x900A2603, // 0026 SETMBR R2 K19 R3
0x900E2804, // 0027 SETMBR R3 K20 R4 0x78060001, // 0027 JMPF R1 #002A
0x78060001, // 0028 JMPF R1 #002B 0x580C0005, // 0028 LDCONST R3 K5
0x58100006, // 0029 LDCONST R4 K6 0x70020000, // 0029 JMP #002B
0x70020000, // 002A JMP #002C 0x580C0008, // 002A LDCONST R3 K8
0x58100009, // 002B LDCONST R4 K9 0x900A2803, // 002B SETMBR R2 K20 R3
0x900E2A04, // 002C SETMBR R3 K21 R4 0x80040400, // 002C RET 1 R2
0x80040600, // 002D RET 1 R3
}) })
) )
); );
@ -440,7 +438,7 @@ be_local_closure(Matter_Frame_build_standalone_ack, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Frame_build_response, /* name */ be_local_closure(Matter_Frame_build_response, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 11, /* nstack */
4, /* argc */ 4, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -448,135 +446,132 @@ be_local_closure(Matter_Frame_build_response, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[32]) { /* constants */ ( &(const bvalue[30]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(message_handler),
/* K1 */ be_nested_str_weak(message_handler), /* K1 */ be_nested_str_weak(remote_ip),
/* K2 */ be_nested_str_weak(remote_ip), /* K2 */ be_nested_str_weak(remote_port),
/* K3 */ be_nested_str_weak(remote_port), /* K3 */ be_nested_str_weak(flag_s),
/* K4 */ be_nested_str_weak(flag_s), /* K4 */ be_nested_str_weak(flag_dsiz),
/* K5 */ be_nested_str_weak(flag_dsiz), /* K5 */ be_const_int(1),
/* K6 */ be_const_int(1), /* K6 */ be_nested_str_weak(dest_node_id_8),
/* K7 */ be_nested_str_weak(dest_node_id_8), /* K7 */ be_nested_str_weak(source_node_id),
/* K8 */ be_nested_str_weak(source_node_id), /* K8 */ be_const_int(0),
/* K9 */ be_const_int(0), /* K9 */ be_nested_str_weak(session),
/* K10 */ be_nested_str_weak(session), /* K10 */ be_nested_str_weak(local_session_id),
/* K11 */ be_nested_str_weak(local_session_id), /* K11 */ be_nested_str_weak(initiator_session_id),
/* K12 */ be_nested_str_weak(initiator_session_id), /* K12 */ be_nested_str_weak(message_counter),
/* K13 */ be_nested_str_weak(message_counter), /* K13 */ be_nested_str_weak(counter_snd_next),
/* K14 */ be_nested_str_weak(counter_snd_next), /* K14 */ be_nested_str_weak(_counter_insecure_snd),
/* K15 */ be_nested_str_weak(_counter_insecure_snd), /* K15 */ be_nested_str_weak(next),
/* K16 */ be_nested_str_weak(next), /* K16 */ be_nested_str_weak(x_flag_i),
/* K17 */ be_nested_str_weak(x_flag_i), /* K17 */ be_nested_str_weak(opcode),
/* K18 */ be_nested_str_weak(opcode), /* K18 */ be_nested_str_weak(exchange_id),
/* K19 */ be_nested_str_weak(exchange_id), /* K19 */ be_nested_str_weak(protocol_id),
/* K20 */ be_nested_str_weak(protocol_id), /* K20 */ be_nested_str_weak(x_flag_r),
/* K21 */ be_nested_str_weak(x_flag_r), /* K21 */ be_nested_str_weak(x_flag_a),
/* K22 */ be_nested_str_weak(x_flag_a), /* K22 */ be_nested_str_weak(ack_message_counter),
/* K23 */ be_nested_str_weak(ack_message_counter), /* K23 */ be_nested_str_weak(matter),
/* K24 */ be_nested_str_weak(matter), /* K24 */ be_nested_str_weak(get_opcode_name),
/* K25 */ be_nested_str_weak(get_opcode_name), /* K25 */ be_nested_str_weak(0x_X2502X),
/* K26 */ be_nested_str_weak(format), /* K26 */ be_nested_str_weak(tasmota),
/* K27 */ be_nested_str_weak(0x_X2502X), /* K27 */ be_nested_str_weak(log),
/* K28 */ be_nested_str_weak(tasmota), /* K28 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
/* K29 */ be_nested_str_weak(log), /* K29 */ be_const_int(3),
/* K30 */ be_nested_str_weak(MTR_X3A_X20_X3CReplied_X20_X20_X20_X28_X256i_X29_X20_X25s),
/* K31 */ be_const_int(3),
}), }),
be_str_weak(build_response), be_str_weak(build_response),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[92]) { /* code */ ( &(const binstruction[91]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0 0x4C100000, // 0000 LDNIL R4
0x4C140000, // 0001 LDNIL R5 0x1C100604, // 0001 EQ R4 R3 R4
0x1C140605, // 0002 EQ R5 R3 R5 0x78120005, // 0002 JMPF R4 #0009
0x78160005, // 0003 JMPF R5 #000A 0x60100006, // 0003 GETGBL R4 G6
0x60140006, // 0004 GETGBL R5 G6 0x5C140000, // 0004 MOVE R5 R0
0x5C180000, // 0005 MOVE R6 R0 0x7C100200, // 0005 CALL R4 1
0x7C140200, // 0006 CALL R5 1 0x88140100, // 0006 GETMBR R5 R0 K0
0x88180101, // 0007 GETMBR R6 R0 K1 0x7C100200, // 0007 CALL R4 1
0x7C140200, // 0008 CALL R5 1 0x5C0C0800, // 0008 MOVE R3 R4
0x5C0C0A00, // 0009 MOVE R3 R5 0x88100101, // 0009 GETMBR R4 R0 K1
0x88140102, // 000A GETMBR R5 R0 K2 0x900E0204, // 000A SETMBR R3 K1 R4
0x900E0405, // 000B SETMBR R3 K2 R5 0x88100102, // 000B GETMBR R4 R0 K2
0x88140103, // 000C GETMBR R5 R0 K3 0x900E0404, // 000C SETMBR R3 K2 R4
0x900E0605, // 000D SETMBR R3 K3 R5 0x88100103, // 000D GETMBR R4 R0 K3
0x88140104, // 000E GETMBR R5 R0 K4 0x78120003, // 000E JMPF R4 #0013
0x78160003, // 000F JMPF R5 #0014 0x900E0905, // 000F SETMBR R3 K4 K5
0x900E0B06, // 0010 SETMBR R3 K5 K6 0x88100107, // 0010 GETMBR R4 R0 K7
0x88140108, // 0011 GETMBR R5 R0 K8 0x900E0C04, // 0011 SETMBR R3 K6 R4
0x900E0E05, // 0012 SETMBR R3 K7 R5 0x70020000, // 0012 JMP #0014
0x70020000, // 0013 JMP #0015 0x900E0908, // 0013 SETMBR R3 K4 K8
0x900E0B09, // 0014 SETMBR R3 K5 K9 0x88100109, // 0014 GETMBR R4 R0 K9
0x8814010A, // 0015 GETMBR R5 R0 K10 0x900E1204, // 0015 SETMBR R3 K9 R4
0x900E1405, // 0016 SETMBR R3 K10 R5 0x8810010A, // 0016 GETMBR R4 R0 K10
0x8814010B, // 0017 GETMBR R5 R0 K11 0x20100908, // 0017 NE R4 R4 K8
0x20140B09, // 0018 NE R5 R5 K9 0x7812000D, // 0018 JMPF R4 #0027
0x7816000D, // 0019 JMPF R5 #0028 0x88100109, // 0019 GETMBR R4 R0 K9
0x8814010A, // 001A GETMBR R5 R0 K10 0x7812000B, // 001A JMPF R4 #0027
0x7816000B, // 001B JMPF R5 #0028 0x88100109, // 001B GETMBR R4 R0 K9
0x8814010A, // 001C GETMBR R5 R0 K10 0x8810090B, // 001C GETMBR R4 R4 K11
0x88140B0C, // 001D GETMBR R5 R5 K12 0x20100908, // 001D NE R4 R4 K8
0x20140B09, // 001E NE R5 R5 K9 0x78120007, // 001E JMPF R4 #0027
0x78160007, // 001F JMPF R5 #0028 0x88100109, // 001F GETMBR R4 R0 K9
0x8814010A, // 0020 GETMBR R5 R0 K10 0x8C10090D, // 0020 GETMET R4 R4 K13
0x8C140B0E, // 0021 GETMET R5 R5 K14 0x7C100200, // 0021 CALL R4 1
0x7C140200, // 0022 CALL R5 1 0x900E1804, // 0022 SETMBR R3 K12 R4
0x900E1A05, // 0023 SETMBR R3 K13 R5 0x88100109, // 0023 GETMBR R4 R0 K9
0x8814010A, // 0024 GETMBR R5 R0 K10 0x8810090B, // 0024 GETMBR R4 R4 K11
0x88140B0C, // 0025 GETMBR R5 R5 K12 0x900E1404, // 0025 SETMBR R3 K10 R4
0x900E1605, // 0026 SETMBR R3 K11 R5 0x70020005, // 0026 JMP #002D
0x70020005, // 0027 JMP #002E 0x88100109, // 0027 GETMBR R4 R0 K9
0x8814010A, // 0028 GETMBR R5 R0 K10 0x8810090E, // 0028 GETMBR R4 R4 K14
0x88140B0F, // 0029 GETMBR R5 R5 K15 0x8C10090F, // 0029 GETMET R4 R4 K15
0x8C140B10, // 002A GETMET R5 R5 K16 0x7C100200, // 002A CALL R4 1
0x7C140200, // 002B CALL R5 1 0x900E1804, // 002B SETMBR R3 K12 R4
0x900E1A05, // 002C SETMBR R3 K13 R5 0x900E1508, // 002C SETMBR R3 K10 K8
0x900E1709, // 002D SETMBR R3 K11 K9 0x88100110, // 002D GETMBR R4 R0 K16
0x88140111, // 002E GETMBR R5 R0 K17 0x78120001, // 002E JMPF R4 #0031
0x78160001, // 002F JMPF R5 #0032 0x58100008, // 002F LDCONST R4 K8
0x58140009, // 0030 LDCONST R5 K9 0x70020000, // 0030 JMP #0032
0x70020000, // 0031 JMP #0033 0x58100005, // 0031 LDCONST R4 K5
0x58140006, // 0032 LDCONST R5 K6 0x900E2004, // 0032 SETMBR R3 K16 R4
0x900E2205, // 0033 SETMBR R3 K17 R5 0x900E2201, // 0033 SETMBR R3 K17 R1
0x900E2401, // 0034 SETMBR R3 K18 R1 0x88100112, // 0034 GETMBR R4 R0 K18
0x88140113, // 0035 GETMBR R5 R0 K19 0x900E2404, // 0035 SETMBR R3 K18 R4
0x900E2605, // 0036 SETMBR R3 K19 R5 0x88100113, // 0036 GETMBR R4 R0 K19
0x88140114, // 0037 GETMBR R5 R0 K20 0x900E2604, // 0037 SETMBR R3 K19 R4
0x900E2805, // 0038 SETMBR R3 K20 R5 0x88100114, // 0038 GETMBR R4 R0 K20
0x88140115, // 0039 GETMBR R5 R0 K21 0x78120002, // 0039 JMPF R4 #003D
0x78160002, // 003A JMPF R5 #003E 0x900E2B05, // 003A SETMBR R3 K21 K5
0x900E2D06, // 003B SETMBR R3 K22 K6 0x8810010C, // 003B GETMBR R4 R0 K12
0x8814010D, // 003C GETMBR R5 R0 K13 0x900E2C04, // 003C SETMBR R3 K22 R4
0x900E2E05, // 003D SETMBR R3 K23 R5 0x780A0001, // 003D JMPF R2 #0040
0x780A0001, // 003E JMPF R2 #0041 0x58100005, // 003E LDCONST R4 K5
0x58140006, // 003F LDCONST R5 K6 0x70020000, // 003F JMP #0041
0x70020000, // 0040 JMP #0042 0x58100008, // 0040 LDCONST R4 K8
0x58140009, // 0041 LDCONST R5 K9 0x900E2804, // 0041 SETMBR R3 K20 R4
0x900E2A05, // 0042 SETMBR R3 K21 R5 0x8810070A, // 0042 GETMBR R4 R3 K10
0x8814070B, // 0043 GETMBR R5 R3 K11 0x1C100908, // 0043 EQ R4 R4 K8
0x1C140B09, // 0044 EQ R5 R5 K9 0x78120014, // 0044 JMPF R4 #005A
0x78160014, // 0045 JMPF R5 #005B 0xB8122E00, // 0045 GETNGBL R4 K23
0xB8163000, // 0046 GETNGBL R5 K24 0x8C100918, // 0046 GETMET R4 R4 K24
0x8C140B19, // 0047 GETMET R5 R5 K25 0x88180711, // 0047 GETMBR R6 R3 K17
0x881C0712, // 0048 GETMBR R7 R3 K18 0x7C100400, // 0048 CALL R4 2
0x7C140400, // 0049 CALL R5 2 0x5C140800, // 0049 MOVE R5 R4
0x5C180A00, // 004A MOVE R6 R5 0x74160004, // 004A JMPT R5 #0050
0x741A0004, // 004B JMPT R6 #0051 0x60140018, // 004B GETGBL R5 G24
0x8C18091A, // 004C GETMET R6 R4 K26 0x58180019, // 004C LDCONST R6 K25
0x5820001B, // 004D LDCONST R8 K27 0x881C0711, // 004D GETMBR R7 R3 K17
0x88240712, // 004E GETMBR R9 R3 K18 0x7C140400, // 004E CALL R5 2
0x7C180600, // 004F CALL R6 3 0x5C100A00, // 004F MOVE R4 R5
0x5C140C00, // 0050 MOVE R5 R6 0xB8163400, // 0050 GETNGBL R5 K26
0xB81A3800, // 0051 GETNGBL R6 K28 0x8C140B1B, // 0051 GETMET R5 R5 K27
0x8C180D1D, // 0052 GETMET R6 R6 K29 0x601C0018, // 0052 GETGBL R7 G24
0x8C20091A, // 0053 GETMET R8 R4 K26 0x5820001C, // 0053 LDCONST R8 K28
0x5828001E, // 0054 LDCONST R10 K30 0x88240709, // 0054 GETMBR R9 R3 K9
0x882C070A, // 0055 GETMBR R11 R3 K10 0x8824130A, // 0055 GETMBR R9 R9 K10
0x882C170B, // 0056 GETMBR R11 R11 K11 0x5C280800, // 0056 MOVE R10 R4
0x5C300A00, // 0057 MOVE R12 R5 0x7C1C0600, // 0057 CALL R7 3
0x7C200800, // 0058 CALL R8 4 0x5820001D, // 0058 LDCONST R8 K29
0x5824001F, // 0059 LDCONST R9 K31 0x7C140600, // 0059 CALL R5 3
0x7C180600, // 005A CALL R6 3 0x80040600, // 005A RET 1 R3
0x80040600, // 005B RET 1 R3
}) })
) )
); );
@ -588,7 +583,7 @@ be_local_closure(Matter_Frame_build_response, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Frame_initiate_response, /* name */ be_local_closure(Matter_Frame_initiate_response, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 9, /* nstack */
5, /* argc */ 5, /* argc */
4, /* varg */ 4, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -596,82 +591,80 @@ be_local_closure(Matter_Frame_initiate_response, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[24]) { /* constants */ ( &(const bvalue[23]) { /* constants */
/* K0 */ be_const_class(be_class_Matter_Frame), /* K0 */ be_const_class(be_class_Matter_Frame),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(Frame),
/* K3 */ be_nested_str_weak(Frame), /* K3 */ be_nested_str_weak(remote_ip),
/* K4 */ be_nested_str_weak(remote_ip), /* K4 */ be_nested_str_weak(_ip),
/* K5 */ be_nested_str_weak(_ip), /* K5 */ be_nested_str_weak(remote_port),
/* K6 */ be_nested_str_weak(remote_port), /* K6 */ be_nested_str_weak(_port),
/* K7 */ be_nested_str_weak(_port), /* K7 */ be_nested_str_weak(flag_dsiz),
/* K8 */ be_nested_str_weak(flag_dsiz), /* K8 */ be_const_int(0),
/* K9 */ be_const_int(0), /* K9 */ be_nested_str_weak(session),
/* K10 */ be_nested_str_weak(session), /* K10 */ be_nested_str_weak(initiator_session_id),
/* K11 */ be_nested_str_weak(initiator_session_id), /* K11 */ be_nested_str_weak(message_counter),
/* K12 */ be_nested_str_weak(message_counter), /* K12 */ be_nested_str_weak(counter_snd_next),
/* K13 */ be_nested_str_weak(counter_snd_next), /* K13 */ be_nested_str_weak(local_session_id),
/* K14 */ be_nested_str_weak(local_session_id), /* K14 */ be_nested_str_weak(_counter_insecure_snd),
/* K15 */ be_nested_str_weak(_counter_insecure_snd), /* K15 */ be_nested_str_weak(next),
/* K16 */ be_nested_str_weak(next), /* K16 */ be_nested_str_weak(x_flag_i),
/* K17 */ be_nested_str_weak(x_flag_i), /* K17 */ be_const_int(1),
/* K18 */ be_const_int(1), /* K18 */ be_nested_str_weak(opcode),
/* K19 */ be_nested_str_weak(opcode), /* K19 */ be_nested_str_weak(_exchange_id),
/* K20 */ be_nested_str_weak(_exchange_id), /* K20 */ be_nested_str_weak(exchange_id),
/* K21 */ be_nested_str_weak(exchange_id), /* K21 */ be_nested_str_weak(protocol_id),
/* K22 */ be_nested_str_weak(protocol_id), /* K22 */ be_nested_str_weak(x_flag_r),
/* K23 */ be_nested_str_weak(x_flag_r),
}), }),
be_str_weak(initiate_response), be_str_weak(initiate_response),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[47]) { /* code */ ( &(const binstruction[46]) { /* code */
0x58140000, // 0000 LDCONST R5 K0 0x58140000, // 0000 LDCONST R5 K0
0xA41A0200, // 0001 IMPORT R6 K1 0x4C180000, // 0001 LDNIL R6
0x4C1C0000, // 0002 LDNIL R7 0x1C180806, // 0002 EQ R6 R4 R6
0x1C1C0807, // 0003 EQ R7 R4 R7 0x781A0004, // 0003 JMPF R6 #0009
0x781E0004, // 0004 JMPF R7 #000A 0xB81A0200, // 0004 GETNGBL R6 K1
0xB81E0400, // 0005 GETNGBL R7 K2 0x8C180D02, // 0005 GETMET R6 R6 K2
0x8C1C0F03, // 0006 GETMET R7 R7 K3 0x5C200000, // 0006 MOVE R8 R0
0x5C240000, // 0007 MOVE R9 R0 0x7C180400, // 0007 CALL R6 2
0x7C1C0400, // 0008 CALL R7 2 0x5C100C00, // 0008 MOVE R4 R6
0x5C100E00, // 0009 MOVE R4 R7 0x88180304, // 0009 GETMBR R6 R1 K4
0x881C0305, // 000A GETMBR R7 R1 K5 0x90120606, // 000A SETMBR R4 K3 R6
0x90120807, // 000B SETMBR R4 K4 R7 0x88180306, // 000B GETMBR R6 R1 K6
0x881C0307, // 000C GETMBR R7 R1 K7 0x90120A06, // 000C SETMBR R4 K5 R6
0x90120C07, // 000D SETMBR R4 K6 R7 0x90120F08, // 000D SETMBR R4 K7 K8
0x90121109, // 000E SETMBR R4 K8 K9 0x90121201, // 000E SETMBR R4 K9 R1
0x90121401, // 000F SETMBR R4 K10 R1 0x78060008, // 000F JMPF R1 #0019
0x78060008, // 0010 JMPF R1 #001A 0x8818030A, // 0010 GETMBR R6 R1 K10
0x881C030B, // 0011 GETMBR R7 R1 K11 0x20180D08, // 0011 NE R6 R6 K8
0x201C0F09, // 0012 NE R7 R7 K9 0x781A0005, // 0012 JMPF R6 #0019
0x781E0005, // 0013 JMPF R7 #001A 0x8C18030C, // 0013 GETMET R6 R1 K12
0x8C1C030D, // 0014 GETMET R7 R1 K13 0x7C180200, // 0014 CALL R6 1
0x7C1C0200, // 0015 CALL R7 1 0x90121606, // 0015 SETMBR R4 K11 R6
0x90121807, // 0016 SETMBR R4 K12 R7 0x8818030A, // 0016 GETMBR R6 R1 K10
0x881C030B, // 0017 GETMBR R7 R1 K11 0x90121A06, // 0017 SETMBR R4 K13 R6
0x90121C07, // 0018 SETMBR R4 K14 R7 0x70020004, // 0018 JMP #001E
0x70020004, // 0019 JMP #001F 0x8818030E, // 0019 GETMBR R6 R1 K14
0x881C030F, // 001A GETMBR R7 R1 K15 0x8C180D0F, // 001A GETMET R6 R6 K15
0x8C1C0F10, // 001B GETMET R7 R7 K16 0x7C180200, // 001B CALL R6 1
0x7C1C0200, // 001C CALL R7 1 0x90121606, // 001C SETMBR R4 K11 R6
0x90121807, // 001D SETMBR R4 K12 R7 0x90121B08, // 001D SETMBR R4 K13 K8
0x90121D09, // 001E SETMBR R4 K14 K9 0x90122111, // 001E SETMBR R4 K16 K17
0x90122312, // 001F SETMBR R4 K17 K18 0x90122402, // 001F SETMBR R4 K18 R2
0x90122602, // 0020 SETMBR R4 K19 R2 0x88180313, // 0020 GETMBR R6 R1 K19
0x881C0314, // 0021 GETMBR R7 R1 K20 0x00180D11, // 0021 ADD R6 R6 K17
0x001C0F12, // 0022 ADD R7 R7 K18 0x90062606, // 0022 SETMBR R1 K19 R6
0x90062807, // 0023 SETMBR R1 K20 R7 0x88180313, // 0023 GETMBR R6 R1 K19
0x881C0314, // 0024 GETMBR R7 R1 K20 0x541EFFFF, // 0024 LDINT R7 65536
0x5422FFFF, // 0025 LDINT R8 65536 0x30180C07, // 0025 OR R6 R6 R7
0x301C0E08, // 0026 OR R7 R7 R8 0x90122806, // 0026 SETMBR R4 K20 R6
0x90122A07, // 0027 SETMBR R4 K21 R7 0x90122B11, // 0027 SETMBR R4 K21 K17
0x90122D12, // 0028 SETMBR R4 K22 K18 0x780E0001, // 0028 JMPF R3 #002B
0x780E0001, // 0029 JMPF R3 #002C 0x58180011, // 0029 LDCONST R6 K17
0x581C0012, // 002A LDCONST R7 K18 0x70020000, // 002A JMP #002C
0x70020000, // 002B JMP #002D 0x58180008, // 002B LDCONST R6 K8
0x581C0009, // 002C LDCONST R7 K9 0x90122C06, // 002C SETMBR R4 K22 R6
0x90122E07, // 002D SETMBR R4 K23 R7 0x80040800, // 002D RET 1 R4
0x80040800, // 002E RET 1 R4
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Path;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Path_tostring, /* name */ be_local_closure(Matter_Path_tostring, /* name */
be_nested_proto( be_nested_proto(
7, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,101 +19,98 @@ be_local_closure(Matter_Path_tostring, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(),
/* K1 */ be_nested_str_weak(), /* K1 */ be_nested_str_weak(endpoint),
/* K2 */ be_nested_str_weak(endpoint), /* K2 */ be_nested_str_weak(_X5B_X2502X_X5D),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(_X5B_X2A_X2A_X5D),
/* K4 */ be_nested_str_weak(_X5B_X2502X_X5D), /* K4 */ be_nested_str_weak(cluster),
/* K5 */ be_nested_str_weak(_X5B_X2A_X2A_X5D), /* K5 */ be_nested_str_weak(_X2504X_X2F),
/* K6 */ be_nested_str_weak(cluster), /* K6 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2F),
/* K7 */ be_nested_str_weak(_X2504X_X2F), /* K7 */ be_nested_str_weak(attribute),
/* K8 */ be_nested_str_weak(_X2A_X2A_X2A_X2A_X2F), /* K8 */ be_nested_str_weak(_X2504X),
/* K9 */ be_nested_str_weak(attribute), /* K9 */ be_nested_str_weak(command),
/* K10 */ be_nested_str_weak(_X2504X), /* K10 */ be_nested_str_weak(_X2A_X2A_X2A_X2A),
/* K11 */ be_nested_str_weak(command), /* K11 */ be_nested_str_weak(Exception_X3E_X20),
/* K12 */ be_nested_str_weak(_X2A_X2A_X2A_X2A), /* K12 */ be_nested_str_weak(_X2C_X20),
/* K13 */ be_nested_str_weak(Exception_X3E_X20),
/* K14 */ be_nested_str_weak(_X2C_X20),
}), }),
be_str_weak(tostring), be_str_weak(tostring),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[75]) { /* code */ ( &(const binstruction[74]) { /* code */
0xA802003A, // 0000 EXBLK 0 #003C 0xA8020039, // 0000 EXBLK 0 #003B
0xA4060000, // 0001 IMPORT R1 K0 0x58040000, // 0001 LDCONST R1 K0
0x58080001, // 0002 LDCONST R2 K1 0x88080101, // 0002 GETMBR R2 R0 K1
0x880C0102, // 0003 GETMBR R3 R0 K2 0x4C0C0000, // 0003 LDNIL R3
0x4C100000, // 0004 LDNIL R4 0x20080403, // 0004 NE R2 R2 R3
0x200C0604, // 0005 NE R3 R3 R4 0x780A0004, // 0005 JMPF R2 #000B
0x780E0004, // 0006 JMPF R3 #000C 0x60080018, // 0006 GETGBL R2 G24
0x8C0C0303, // 0007 GETMET R3 R1 K3 0x580C0002, // 0007 LDCONST R3 K2
0x58140004, // 0008 LDCONST R5 K4 0x88100101, // 0008 GETMBR R4 R0 K1
0x88180102, // 0009 GETMBR R6 R0 K2 0x7C080400, // 0009 CALL R2 2
0x7C0C0600, // 000A CALL R3 3 0x70020000, // 000A JMP #000C
0x70020000, // 000B JMP #000D 0x58080003, // 000B LDCONST R2 K3
0x580C0005, // 000C LDCONST R3 K5 0x00040202, // 000C ADD R1 R1 R2
0x00080403, // 000D ADD R2 R2 R3 0x88080104, // 000D GETMBR R2 R0 K4
0x880C0106, // 000E GETMBR R3 R0 K6 0x4C0C0000, // 000E LDNIL R3
0x4C100000, // 000F LDNIL R4 0x20080403, // 000F NE R2 R2 R3
0x200C0604, // 0010 NE R3 R3 R4 0x780A0004, // 0010 JMPF R2 #0016
0x780E0004, // 0011 JMPF R3 #0017 0x60080018, // 0011 GETGBL R2 G24
0x8C0C0303, // 0012 GETMET R3 R1 K3 0x580C0005, // 0012 LDCONST R3 K5
0x58140007, // 0013 LDCONST R5 K7 0x88100104, // 0013 GETMBR R4 R0 K4
0x88180106, // 0014 GETMBR R6 R0 K6 0x7C080400, // 0014 CALL R2 2
0x7C0C0600, // 0015 CALL R3 3 0x70020000, // 0015 JMP #0017
0x70020000, // 0016 JMP #0018 0x58080006, // 0016 LDCONST R2 K6
0x580C0008, // 0017 LDCONST R3 K8 0x00040202, // 0017 ADD R1 R1 R2
0x00080403, // 0018 ADD R2 R2 R3 0x88080107, // 0018 GETMBR R2 R0 K7
0x880C0109, // 0019 GETMBR R3 R0 K9 0x4C0C0000, // 0019 LDNIL R3
0x4C100000, // 001A LDNIL R4 0x20080403, // 001A NE R2 R2 R3
0x200C0604, // 001B NE R3 R3 R4 0x780A0004, // 001B JMPF R2 #0021
0x780E0004, // 001C JMPF R3 #0022 0x60080018, // 001C GETGBL R2 G24
0x8C0C0303, // 001D GETMET R3 R1 K3 0x580C0008, // 001D LDCONST R3 K8
0x5814000A, // 001E LDCONST R5 K10 0x88100107, // 001E GETMBR R4 R0 K7
0x88180109, // 001F GETMBR R6 R0 K9 0x7C080400, // 001F CALL R2 2
0x7C0C0600, // 0020 CALL R3 3 0x70020000, // 0020 JMP #0022
0x70020000, // 0021 JMP #0023 0x58080000, // 0021 LDCONST R2 K0
0x580C0001, // 0022 LDCONST R3 K1 0x00040202, // 0022 ADD R1 R1 R2
0x00080403, // 0023 ADD R2 R2 R3 0x88080109, // 0023 GETMBR R2 R0 K9
0x880C010B, // 0024 GETMBR R3 R0 K11 0x4C0C0000, // 0024 LDNIL R3
0x4C100000, // 0025 LDNIL R4 0x20080403, // 0025 NE R2 R2 R3
0x200C0604, // 0026 NE R3 R3 R4 0x780A0004, // 0026 JMPF R2 #002C
0x780E0004, // 0027 JMPF R3 #002D 0x60080018, // 0027 GETGBL R2 G24
0x8C0C0303, // 0028 GETMET R3 R1 K3 0x580C0008, // 0028 LDCONST R3 K8
0x5814000A, // 0029 LDCONST R5 K10 0x88100109, // 0029 GETMBR R4 R0 K9
0x8818010B, // 002A GETMBR R6 R0 K11 0x7C080400, // 002A CALL R2 2
0x7C0C0600, // 002B CALL R3 3 0x70020000, // 002B JMP #002D
0x70020000, // 002C JMP #002E 0x58080000, // 002C LDCONST R2 K0
0x580C0001, // 002D LDCONST R3 K1 0x00040202, // 002D ADD R1 R1 R2
0x00080403, // 002E ADD R2 R2 R3 0x88080107, // 002E GETMBR R2 R0 K7
0x880C0109, // 002F GETMBR R3 R0 K9 0x4C0C0000, // 002F LDNIL R3
0x4C100000, // 0030 LDNIL R4 0x1C080403, // 0030 EQ R2 R2 R3
0x1C0C0604, // 0031 EQ R3 R3 R4 0x780A0004, // 0031 JMPF R2 #0037
0x780E0004, // 0032 JMPF R3 #0038 0x88080109, // 0032 GETMBR R2 R0 K9
0x880C010B, // 0033 GETMBR R3 R0 K11 0x4C0C0000, // 0033 LDNIL R3
0x4C100000, // 0034 LDNIL R4 0x1C080403, // 0034 EQ R2 R2 R3
0x1C0C0604, // 0035 EQ R3 R3 R4 0x780A0000, // 0035 JMPF R2 #0037
0x780E0000, // 0036 JMPF R3 #0038 0x0004030A, // 0036 ADD R1 R1 K10
0x0008050C, // 0037 ADD R2 R2 K12 0xA8040001, // 0037 EXBLK 1 1
0xA8040001, // 0038 EXBLK 1 1 0x80040200, // 0038 RET 1 R1
0x80040400, // 0039 RET 1 R2 0xA8040001, // 0039 EXBLK 1 1
0xA8040001, // 003A EXBLK 1 1 0x7002000D, // 003A JMP #0049
0x7002000D, // 003B JMP #004A 0xAC040002, // 003B CATCH R1 0 2
0xAC040002, // 003C CATCH R1 0 2 0x7002000A, // 003C JMP #0048
0x7002000A, // 003D JMP #0049 0x600C0008, // 003D GETGBL R3 G8
0x600C0008, // 003E GETGBL R3 G8 0x5C100200, // 003E MOVE R4 R1
0x5C100200, // 003F MOVE R4 R1 0x7C0C0200, // 003F CALL R3 1
0x7C0C0200, // 0040 CALL R3 1 0x000E1603, // 0040 ADD R3 K11 R3
0x000E1A03, // 0041 ADD R3 K13 R3 0x000C070C, // 0041 ADD R3 R3 K12
0x000C070E, // 0042 ADD R3 R3 K14 0x60100008, // 0042 GETGBL R4 G8
0x60100008, // 0043 GETGBL R4 G8 0x5C140400, // 0043 MOVE R5 R2
0x5C140400, // 0044 MOVE R5 R2 0x7C100200, // 0044 CALL R4 1
0x7C100200, // 0045 CALL R4 1 0x000C0604, // 0045 ADD R3 R3 R4
0x000C0604, // 0046 ADD R3 R3 R4 0x80040600, // 0046 RET 1 R3
0x80040600, // 0047 RET 1 R3 0x70020000, // 0047 JMP #0049
0x70020000, // 0048 JMP #004A 0xB0080000, // 0048 RAISE 2 R0 R0
0xB0080000, // 0049 RAISE 2 R0 R0 0x80000000, // 0049 RET 0
0x80000000, // 004A RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Aggregator;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Aggregator_read_attribute, /* name */ be_local_closure(Matter_Plugin_Aggregator_read_attribute, /* name */
be_nested_proto( be_nested_proto(
16, /* nstack */ 15, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,78 +19,76 @@ be_local_closure(Matter_Plugin_Aggregator_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[13]) { /* constants */ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(3),
/* K5 */ be_const_int(3), /* K5 */ be_nested_str_weak(Matter_TLV_array),
/* K6 */ be_nested_str_weak(Matter_TLV_array), /* K6 */ be_nested_str_weak(device),
/* K7 */ be_nested_str_weak(device), /* K7 */ be_nested_str_weak(get_active_endpoints),
/* K8 */ be_nested_str_weak(get_active_endpoints), /* K8 */ be_nested_str_weak(add_TLV),
/* K9 */ be_nested_str_weak(add_TLV), /* K9 */ be_nested_str_weak(U2),
/* K10 */ be_nested_str_weak(U2), /* K10 */ be_nested_str_weak(stop_iteration),
/* K11 */ be_nested_str_weak(stop_iteration), /* K11 */ be_nested_str_weak(read_attribute),
/* K12 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[54]) { /* code */ ( &(const binstruction[53]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A001C, // 0004 LDINT R6 29
0x541E001C, // 0005 LDINT R7 29 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0024, // 0006 JMPF R6 #002C
0x781E0024, // 0007 JMPF R7 #002D 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0019, // 0008 JMPF R6 #0023
0x781E0019, // 0009 JMPF R7 #0024 0x8C180705, // 0009 GETMET R6 R3 K5
0x8C1C0906, // 000A GETMET R7 R4 K6 0x7C180200, // 000A CALL R6 1
0x7C1C0200, // 000B CALL R7 1 0x881C0106, // 000B GETMBR R7 R0 K6
0x88200107, // 000C GETMBR R8 R0 K7 0x8C1C0F07, // 000C GETMET R7 R7 K7
0x8C201108, // 000D GETMET R8 R8 K8 0x50240200, // 000D LDBOOL R9 1 0
0x50280200, // 000E LDBOOL R10 1 0 0x7C1C0400, // 000E CALL R7 2
0x7C200400, // 000F CALL R8 2 0x60200010, // 000F GETGBL R8 G16
0x60240010, // 0010 GETGBL R9 G16 0x5C240E00, // 0010 MOVE R9 R7
0x5C281000, // 0011 MOVE R10 R8 0x7C200200, // 0011 CALL R8 1
0x7C240200, // 0012 CALL R9 1 0xA802000A, // 0012 EXBLK 0 #001E
0xA802000A, // 0013 EXBLK 0 #001F 0x5C241000, // 0013 MOVE R9 R8
0x5C281200, // 0014 MOVE R10 R9 0x7C240000, // 0014 CALL R9 0
0x7C280000, // 0015 CALL R10 0 0x542AFEFF, // 0015 LDINT R10 65280
0x542EFEFF, // 0016 LDINT R11 65280 0x1428120A, // 0016 LT R10 R9 R10
0x142C140B, // 0017 LT R11 R10 R11 0x782A0004, // 0017 JMPF R10 #001D
0x782E0004, // 0018 JMPF R11 #001E 0x8C280D08, // 0018 GETMET R10 R6 K8
0x8C2C0F09, // 0019 GETMET R11 R7 K9 0x4C300000, // 0019 LDNIL R12
0x4C340000, // 001A LDNIL R13 0x88340709, // 001A GETMBR R13 R3 K9
0x8838090A, // 001B GETMBR R14 R4 K10 0x5C381200, // 001B MOVE R14 R9
0x5C3C1400, // 001C MOVE R15 R10 0x7C280800, // 001C CALL R10 4
0x7C2C0800, // 001D CALL R11 4 0x7001FFF4, // 001D JMP #0013
0x7001FFF4, // 001E JMP #0014 0x5820000A, // 001E LDCONST R8 K10
0x5824000B, // 001F LDCONST R9 K11 0xAC200200, // 001F CATCH R8 1 0
0xAC240200, // 0020 CATCH R9 1 0 0xB0080000, // 0020 RAISE 2 R0 R0
0xB0080000, // 0021 RAISE 2 R0 R0 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020007, // 0022 JMP #002B
0x70020007, // 0023 JMP #002C 0x60180003, // 0023 GETGBL R6 G3
0x601C0003, // 0024 GETGBL R7 G3 0x5C1C0000, // 0024 MOVE R7 R0
0x5C200000, // 0025 MOVE R8 R0 0x7C180200, // 0025 CALL R6 1
0x7C1C0200, // 0026 CALL R7 1 0x8C180D0B, // 0026 GETMET R6 R6 K11
0x8C1C0F0C, // 0027 GETMET R7 R7 K12 0x5C200200, // 0027 MOVE R8 R1
0x5C240200, // 0028 MOVE R9 R1 0x5C240400, // 0028 MOVE R9 R2
0x5C280400, // 0029 MOVE R10 R2 0x7C180600, // 0029 CALL R6 3
0x7C1C0600, // 002A CALL R7 3 0x80040C00, // 002A RET 1 R6
0x80040E00, // 002B RET 1 R7 0x70020007, // 002B JMP #0034
0x70020007, // 002C JMP #0035 0x60180003, // 002C GETGBL R6 G3
0x601C0003, // 002D GETGBL R7 G3 0x5C1C0000, // 002D MOVE R7 R0
0x5C200000, // 002E MOVE R8 R0 0x7C180200, // 002E CALL R6 1
0x7C1C0200, // 002F CALL R7 1 0x8C180D0B, // 002F GETMET R6 R6 K11
0x8C1C0F0C, // 0030 GETMET R7 R7 K12 0x5C200200, // 0030 MOVE R8 R1
0x5C240200, // 0031 MOVE R9 R1 0x5C240400, // 0031 MOVE R9 R2
0x5C280400, // 0032 MOVE R10 R2 0x7C180600, // 0032 CALL R6 3
0x7C1C0600, // 0033 CALL R7 3 0x80040C00, // 0033 RET 1 R6
0x80040E00, // 0034 RET 1 R7 0x80000000, // 0034 RET 0
0x80000000, // 0035 RET 0
}) })
) )
); );

View File

@ -231,7 +231,7 @@ extern const bclass be_class_Matter_Plugin_Bridge_HTTP;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_init, /* name */ be_local_closure(Matter_Plugin_Bridge_HTTP_init, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 9, /* nstack */
4, /* argc */ 4, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -239,41 +239,39 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_init, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(init),
/* K1 */ be_nested_str_weak(init), /* K1 */ be_nested_str_weak(find),
/* K2 */ be_nested_str_weak(find), /* K2 */ be_nested_str_weak(ARG_HTTP),
/* K3 */ be_nested_str_weak(ARG_HTTP), /* K3 */ be_nested_str_weak(http_remote),
/* K4 */ be_nested_str_weak(http_remote), /* K4 */ be_nested_str_weak(device),
/* K5 */ be_nested_str_weak(device), /* K5 */ be_nested_str_weak(register_http_remote),
/* K6 */ be_nested_str_weak(register_http_remote), /* K6 */ be_nested_str_weak(PROBE_TIMEOUT),
/* K7 */ be_nested_str_weak(PROBE_TIMEOUT), /* K7 */ be_nested_str_weak(register_cmd_cb),
/* K8 */ be_nested_str_weak(register_cmd_cb),
}), }),
be_str_weak(init), be_str_weak(init),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0 0x60100003, // 0000 GETGBL R4 G3
0x60140003, // 0001 GETGBL R5 G3 0x5C140000, // 0001 MOVE R5 R0
0x5C180000, // 0002 MOVE R6 R0 0x7C100200, // 0002 CALL R4 1
0x7C140200, // 0003 CALL R5 1 0x8C100900, // 0003 GETMET R4 R4 K0
0x8C140B01, // 0004 GETMET R5 R5 K1 0x5C180200, // 0004 MOVE R6 R1
0x5C1C0200, // 0005 MOVE R7 R1 0x5C1C0400, // 0005 MOVE R7 R2
0x5C200400, // 0006 MOVE R8 R2 0x5C200600, // 0006 MOVE R8 R3
0x5C240600, // 0007 MOVE R9 R3 0x7C100800, // 0007 CALL R4 4
0x7C140800, // 0008 CALL R5 4 0x8C100701, // 0008 GETMET R4 R3 K1
0x8C140702, // 0009 GETMET R5 R3 K2 0x88180102, // 0009 GETMBR R6 R0 K2
0x881C0103, // 000A GETMBR R7 R0 K3 0x7C100400, // 000A CALL R4 2
0x7C140400, // 000B CALL R5 2 0x88140104, // 000B GETMBR R5 R0 K4
0x88180105, // 000C GETMBR R6 R0 K5 0x8C140B05, // 000C GETMET R5 R5 K5
0x8C180D06, // 000D GETMET R6 R6 K6 0x5C1C0800, // 000D MOVE R7 R4
0x5C200A00, // 000E MOVE R8 R5 0x88200106, // 000E GETMBR R8 R0 K6
0x88240107, // 000F GETMBR R9 R0 K7 0x7C140600, // 000F CALL R5 3
0x7C180600, // 0010 CALL R6 3 0x90020605, // 0010 SETMBR R0 K3 R5
0x90020806, // 0011 SETMBR R0 K4 R6 0x8C140107, // 0011 GETMET R5 R0 K7
0x8C180108, // 0012 GETMET R6 R0 K8 0x7C140200, // 0012 CALL R5 1
0x7C180200, // 0013 CALL R6 1 0x80000000, // 0013 RET 0
0x80000000, // 0014 RET 0
}) })
) )
); );
@ -352,7 +350,7 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_value_onoff, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync, /* name */ be_local_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -360,69 +358,67 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_call_remote_sync, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(json), /* K1 */ be_const_int(2),
/* K2 */ be_const_int(2), /* K2 */ be_nested_str_weak(_X20),
/* K3 */ be_nested_str_weak(_X20), /* K3 */ be_const_int(0),
/* K4 */ be_const_int(0), /* K4 */ be_nested_str_weak(http_remote),
/* K5 */ be_nested_str_weak(http_remote), /* K5 */ be_nested_str_weak(call_sync),
/* K6 */ be_nested_str_weak(call_sync), /* K6 */ be_nested_str_weak(SYNC_TIMEOUT),
/* K7 */ be_nested_str_weak(SYNC_TIMEOUT), /* K7 */ be_nested_str_weak(device_is_alive),
/* K8 */ be_nested_str_weak(device_is_alive), /* K8 */ be_nested_str_weak(load),
/* K9 */ be_nested_str_weak(load), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_nested_str_weak(tasmota),
/* K11 */ be_nested_str_weak(tasmota), /* K11 */ be_nested_str_weak(log),
/* K12 */ be_nested_str_weak(log), /* K12 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying),
/* K13 */ be_nested_str_weak(MTR_X3A_X20HTTP_X20GET_X20retrying), /* K13 */ be_const_int(3),
/* K14 */ be_const_int(3),
}), }),
be_str_weak(call_remote_sync), be_str_weak(call_remote_sync),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[43]) { /* code */ ( &(const binstruction[42]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xA40E0000, // 0000 IMPORT R3 K0
0xA4120200, // 0001 IMPORT R4 K1 0x58100001, // 0001 LDCONST R4 K1
0x58140002, // 0002 LDCONST R5 K2 0x4C140000, // 0002 LDNIL R5
0x4C180000, // 0003 LDNIL R6 0x20140405, // 0003 NE R5 R2 R5
0x20180406, // 0004 NE R6 R2 R6 0x78160005, // 0004 JMPF R5 #000B
0x781A0005, // 0005 JMPF R6 #000C 0x00140302, // 0005 ADD R5 R1 K2
0x00180303, // 0006 ADD R6 R1 K3 0x60180008, // 0006 GETGBL R6 G8
0x601C0008, // 0007 GETGBL R7 G8 0x5C1C0400, // 0007 MOVE R7 R2
0x5C200400, // 0008 MOVE R8 R2 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x00140A06, // 0009 ADD R5 R5 R6
0x00180C07, // 000A ADD R6 R6 R7 0x5C040A00, // 000A MOVE R1 R5
0x5C040C00, // 000B MOVE R1 R6 0x24140903, // 000B GT R5 R4 K3
0x24180B04, // 000C GT R6 R5 K4 0x78160016, // 000C JMPF R5 #0024
0x781A0016, // 000D JMPF R6 #0025 0x88140104, // 000D GETMBR R5 R0 K4
0x88180105, // 000E GETMBR R6 R0 K5 0x8C140B05, // 000E GETMET R5 R5 K5
0x8C180D06, // 000F GETMET R6 R6 K6 0x5C1C0200, // 000F MOVE R7 R1
0x5C200200, // 0010 MOVE R8 R1 0x88200106, // 0010 GETMBR R8 R0 K6
0x88240107, // 0011 GETMBR R9 R0 K7 0x7C140600, // 0011 CALL R5 3
0x7C180600, // 0012 CALL R6 3 0x4C180000, // 0012 LDNIL R6
0x4C1C0000, // 0013 LDNIL R7 0x20180A06, // 0013 NE R6 R5 R6
0x201C0C07, // 0014 NE R7 R6 R7 0x781A0007, // 0014 JMPF R6 #001D
0x781E0007, // 0015 JMPF R7 #001E 0x88180104, // 0015 GETMBR R6 R0 K4
0x881C0105, // 0016 GETMBR R7 R0 K5 0x8C180D07, // 0016 GETMET R6 R6 K7
0x8C1C0F08, // 0017 GETMET R7 R7 K8 0x50200200, // 0017 LDBOOL R8 1 0
0x50240200, // 0018 LDBOOL R9 1 0 0x7C180400, // 0018 CALL R6 2
0x7C1C0400, // 0019 CALL R7 2 0x8C180708, // 0019 GETMET R6 R3 K8
0x8C1C0909, // 001A GETMET R7 R4 K9 0x5C200A00, // 001A MOVE R8 R5
0x5C240C00, // 001B MOVE R9 R6 0x7C180400, // 001B CALL R6 2
0x7C1C0400, // 001C CALL R7 2 0x80040C00, // 001C RET 1 R6
0x80040E00, // 001D RET 1 R7 0x04100909, // 001D SUB R4 R4 K9
0x04140B0A, // 001E SUB R5 R5 K10 0xB81A1400, // 001E GETNGBL R6 K10
0xB81E1600, // 001F GETNGBL R7 K11 0x8C180D0B, // 001F GETMET R6 R6 K11
0x8C1C0F0C, // 0020 GETMET R7 R7 K12 0x5820000C, // 0020 LDCONST R8 K12
0x5824000D, // 0021 LDCONST R9 K13 0x5824000D, // 0021 LDCONST R9 K13
0x5828000E, // 0022 LDCONST R10 K14 0x7C180600, // 0022 CALL R6 3
0x7C1C0600, // 0023 CALL R7 3 0x7001FFE6, // 0023 JMP #000B
0x7001FFE6, // 0024 JMP #000C 0x88140104, // 0024 GETMBR R5 R0 K4
0x88180105, // 0025 GETMBR R6 R0 K5 0x8C140B07, // 0025 GETMET R5 R5 K7
0x8C180D08, // 0026 GETMET R6 R6 K8 0x501C0000, // 0026 LDBOOL R7 0 0
0x50200000, // 0027 LDBOOL R8 0 0 0x7C140400, // 0027 CALL R5 2
0x7C180400, // 0028 CALL R6 2 0x4C140000, // 0028 LDNIL R5
0x4C180000, // 0029 LDNIL R6 0x80040A00, // 0029 RET 1 R5
0x80040C00, // 002A RET 1 R6
}) })
) )
); );
@ -526,7 +522,7 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_parse_update, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -534,35 +530,32 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 8]) { /* constants */ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(get_name), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(PREFIX),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(html_escape),
/* K5 */ be_nested_str_weak(PREFIX), /* K5 */ be_nested_str_weak(),
/* K6 */ be_nested_str_weak(html_escape),
/* K7 */ be_nested_str_weak(),
}), }),
be_str_weak(web_values_prefix), be_str_weak(web_values_prefix),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[16]) { /* code */ ( &(const binstruction[15]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C0C0302, // 0003 GETMET R3 R1 K2
0x8C100303, // 0004 GETMET R4 R1 K3 0x60140018, // 0004 GETGBL R5 G24
0x8C180504, // 0005 GETMET R6 R2 K4 0x88180103, // 0005 GETMBR R6 R0 K3
0x88200105, // 0006 GETMBR R8 R0 K5 0x780A0003, // 0006 JMPF R2 #000B
0x780E0003, // 0007 JMPF R3 #000C 0x8C1C0304, // 0007 GETMET R7 R1 K4
0x8C240306, // 0008 GETMET R9 R1 K6 0x5C240400, // 0008 MOVE R9 R2
0x5C2C0600, // 0009 MOVE R11 R3 0x7C1C0400, // 0009 CALL R7 2
0x7C240400, // 000A CALL R9 2 0x70020000, // 000A JMP #000C
0x70020000, // 000B JMP #000D 0x581C0005, // 000B LDCONST R7 K5
0x58240007, // 000C LDCONST R9 K7 0x7C140400, // 000C CALL R5 2
0x7C180600, // 000D CALL R6 3 0x7C0C0400, // 000D CALL R3 2
0x7C100400, // 000E CALL R4 2 0x80000000, // 000E RET 0
0x80000000, // 000F RET 0
}) })
) )
); );
@ -642,7 +635,7 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
be_nested_proto( be_nested_proto(
6, /* nstack */ 5, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -650,28 +643,26 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28),
/* K4 */ be_nested_str_weak(_X26lt_X3B_X2D_X2D_X20_X28), /* K4 */ be_nested_str_weak(NAME),
/* K5 */ be_nested_str_weak(NAME), /* K5 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
/* K6 */ be_nested_str_weak(_X29_X20_X2D_X2D_X26gt_X3B),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[10]) { /* code */ ( &(const binstruction[ 9]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x88100104, // 0004 GETMBR R4 R0 K4
0x88140105, // 0005 GETMBR R5 R0 K5 0x00120604, // 0005 ADD R4 K3 R4
0x00160805, // 0006 ADD R5 K4 R5 0x00100905, // 0006 ADD R4 R4 K5
0x00140B06, // 0007 ADD R5 R5 K6 0x7C080400, // 0007 CALL R2 2
0x7C0C0400, // 0008 CALL R3 2 0x80000000, // 0008 RET 0
0x80000000, // 0009 RET 0
}) })
) )
); );

View File

@ -139,7 +139,7 @@ be_local_closure(Matter_Plugin_Bridge_Light0_init, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light0_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Light0_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -147,68 +147,66 @@ be_local_closure(Matter_Plugin_Bridge_Light0_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[12]) { /* constants */ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(shadow_onoff), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_nested_str_weak(read_attribute),
/* K11 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[45]) { /* code */ ( &(const binstruction[44]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0005, // 0004 LDINT R6 6
0x541E0005, // 0005 LDINT R7 6 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A001B, // 0006 JMPF R6 #0023
0x781E001B, // 0007 JMPF R7 #0024 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x70020010, // 0010 JMP #0022
0x70020010, // 0011 JMP #0023 0x541AFFFB, // 0011 LDINT R6 65532
0x541EFFFB, // 0012 LDINT R7 65532 0x1C180A06, // 0012 EQ R6 R5 R6
0x1C1C0C07, // 0013 EQ R7 R6 R7 0x781A0005, // 0013 JMPF R6 #001A
0x781E0005, // 0014 JMPF R7 #001B 0x8C180706, // 0014 GETMET R6 R3 K6
0x8C1C0907, // 0015 GETMET R7 R4 K7 0x88200709, // 0015 GETMBR R8 R3 K9
0x8824090A, // 0016 GETMBR R9 R4 K10 0x58240005, // 0016 LDCONST R9 K5
0x58280006, // 0017 LDCONST R10 K6 0x7C180600, // 0017 CALL R6 3
0x7C1C0600, // 0018 CALL R7 3 0x80040C00, // 0018 RET 1 R6
0x80040E00, // 0019 RET 1 R7 0x70020007, // 0019 JMP #0022
0x70020007, // 001A JMP #0023 0x541AFFFC, // 001A LDINT R6 65533
0x541EFFFC, // 001B LDINT R7 65533 0x1C180A06, // 001B EQ R6 R5 R6
0x1C1C0C07, // 001C EQ R7 R6 R7 0x781A0004, // 001C JMPF R6 #0022
0x781E0004, // 001D JMPF R7 #0023 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200709, // 001E GETMBR R8 R3 K9
0x8824090A, // 001F GETMBR R9 R4 K10 0x54260003, // 001F LDINT R9 4
0x542A0003, // 0020 LDINT R10 4 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020007, // 0022 JMP #002B
0x70020007, // 0023 JMP #002C 0x60180003, // 0023 GETGBL R6 G3
0x601C0003, // 0024 GETGBL R7 G3 0x5C1C0000, // 0024 MOVE R7 R0
0x5C200000, // 0025 MOVE R8 R0 0x7C180200, // 0025 CALL R6 1
0x7C1C0200, // 0026 CALL R7 1 0x8C180D0A, // 0026 GETMET R6 R6 K10
0x8C1C0F0B, // 0027 GETMET R7 R7 K11 0x5C200200, // 0027 MOVE R8 R1
0x5C240200, // 0028 MOVE R9 R1 0x5C240400, // 0028 MOVE R9 R2
0x5C280400, // 0029 MOVE R10 R2 0x7C180600, // 0029 CALL R6 3
0x7C1C0600, // 002A CALL R7 3 0x80040C00, // 002A RET 1 R6
0x80040E00, // 002B RET 1 R7 0x80000000, // 002B RET 0
0x80000000, // 002C RET 0
}) })
) )
); );
@ -364,7 +362,7 @@ be_local_closure(Matter_Plugin_Bridge_Light0_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light0_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Light0_web_values, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 9, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -372,32 +370,29 @@ be_local_closure(Matter_Plugin_Bridge_Light0_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 8]) { /* constants */ ( &(const bvalue[ 6]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(web_value_onoff),
/* K5 */ be_nested_str_weak(_X25s), /* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(web_value_onoff),
/* K7 */ be_nested_str_weak(shadow_onoff),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[13]) { /* code */ ( &(const binstruction[12]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x8C180104, // 0006 GETMET R6 R0 K4
0x8C200106, // 0007 GETMET R8 R0 K6 0x88200105, // 0007 GETMBR R8 R0 K5
0x88280107, // 0008 GETMBR R10 R0 K7 0x7C180400, // 0008 CALL R6 2
0x7C200400, // 0009 CALL R8 2 0x7C100400, // 0009 CALL R4 2
0x7C140600, // 000A CALL R5 3 0x7C080400, // 000A CALL R2 2
0x7C0C0400, // 000B CALL R3 2 0x80000000, // 000B RET 0
0x80000000, // 000C RET 0
}) })
) )
); );
@ -409,7 +404,7 @@ be_local_closure(Matter_Plugin_Bridge_Light0_web_values, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light0_web_values_prefix, /* name */ be_local_closure(Matter_Plugin_Bridge_Light0_web_values_prefix, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -417,44 +412,41 @@ be_local_closure(Matter_Plugin_Bridge_Light0_web_values_prefix, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(get_name), /* K2 */ be_nested_str_weak(Power),
/* K3 */ be_nested_str_weak(Power), /* K3 */ be_nested_str_weak(tasmota_relay_index),
/* K4 */ be_nested_str_weak(tasmota_relay_index), /* K4 */ be_nested_str_weak(content_send),
/* K5 */ be_nested_str_weak(content_send), /* K5 */ be_nested_str_weak(PREFIX),
/* K6 */ be_nested_str_weak(format), /* K6 */ be_nested_str_weak(html_escape),
/* K7 */ be_nested_str_weak(PREFIX), /* K7 */ be_nested_str_weak(),
/* K8 */ be_nested_str_weak(html_escape),
/* K9 */ be_nested_str_weak(),
}), }),
be_str_weak(web_values_prefix), be_str_weak(web_values_prefix),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[23]) { /* code */ ( &(const binstruction[22]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x5C0C0400, // 0003 MOVE R3 R2
0x5C100600, // 0004 MOVE R4 R3 0x740E0004, // 0004 JMPT R3 #000A
0x74120004, // 0005 JMPT R4 #000B 0x600C0008, // 0005 GETGBL R3 G8
0x60100008, // 0006 GETGBL R4 G8 0x88100103, // 0006 GETMBR R4 R0 K3
0x88140104, // 0007 GETMBR R5 R0 K4 0x7C0C0200, // 0007 CALL R3 1
0x7C100200, // 0008 CALL R4 1 0x000E0403, // 0008 ADD R3 K2 R3
0x00120604, // 0009 ADD R4 K3 R4 0x5C080600, // 0009 MOVE R2 R3
0x5C0C0800, // 000A MOVE R3 R4 0x8C0C0304, // 000A GETMET R3 R1 K4
0x8C100305, // 000B GETMET R4 R1 K5 0x60140018, // 000B GETGBL R5 G24
0x8C180506, // 000C GETMET R6 R2 K6 0x88180105, // 000C GETMBR R6 R0 K5
0x88200107, // 000D GETMBR R8 R0 K7 0x780A0003, // 000D JMPF R2 #0012
0x780E0003, // 000E JMPF R3 #0013 0x8C1C0306, // 000E GETMET R7 R1 K6
0x8C240308, // 000F GETMET R9 R1 K8 0x5C240400, // 000F MOVE R9 R2
0x5C2C0600, // 0010 MOVE R11 R3 0x7C1C0400, // 0010 CALL R7 2
0x7C240400, // 0011 CALL R9 2 0x70020000, // 0011 JMP #0013
0x70020000, // 0012 JMP #0014 0x581C0007, // 0012 LDCONST R7 K7
0x58240009, // 0013 LDCONST R9 K9 0x7C140400, // 0013 CALL R5 2
0x7C180600, // 0014 CALL R6 3 0x7C0C0400, // 0014 CALL R3 2
0x7C100400, // 0015 CALL R4 2 0x80000000, // 0015 RET 0
0x80000000, // 0016 RET 0
}) })
) )
); );

View File

@ -139,7 +139,7 @@ be_local_closure(Matter_Plugin_Bridge_Light1_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light1_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Light1_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -147,126 +147,124 @@ be_local_closure(Matter_Plugin_Bridge_Light1_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[16]) { /* constants */ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(shadow_bri),
/* K7 */ be_nested_str_weak(shadow_bri), /* K7 */ be_nested_str_weak(create_TLV),
/* K8 */ be_nested_str_weak(create_TLV), /* K8 */ be_nested_str_weak(U1),
/* K9 */ be_nested_str_weak(U1), /* K9 */ be_nested_str_weak(NULL),
/* K10 */ be_nested_str_weak(NULL), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_const_int(3),
/* K12 */ be_const_int(3), /* K12 */ be_nested_str_weak(U4),
/* K13 */ be_nested_str_weak(U4), /* K13 */ be_const_int(1),
/* K14 */ be_const_int(1), /* K14 */ be_nested_str_weak(read_attribute),
/* K15 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[99]) { /* code */ ( &(const binstruction[98]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0007, // 0004 LDINT R6 8
0x541E0007, // 0005 LDINT R7 8 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0051, // 0006 JMPF R6 #0059
0x781E0051, // 0007 JMPF R7 #005A 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A000F, // 000A JMPF R6 #001B
0x781E000F, // 000B JMPF R7 #001C 0x88180106, // 000B GETMBR R6 R0 K6
0x881C0107, // 000C GETMBR R7 R0 K7 0x4C1C0000, // 000C LDNIL R7
0x4C200000, // 000D LDNIL R8 0x20180C07, // 000D NE R6 R6 R7
0x201C0E08, // 000E NE R7 R7 R8 0x781A0005, // 000E JMPF R6 #0015
0x781E0005, // 000F JMPF R7 #0016 0x8C180707, // 000F GETMET R6 R3 K7
0x8C1C0908, // 0010 GETMET R7 R4 K8 0x88200708, // 0010 GETMBR R8 R3 K8
0x88240909, // 0011 GETMBR R9 R4 K9 0x88240106, // 0011 GETMBR R9 R0 K6
0x88280107, // 0012 GETMBR R10 R0 K7 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180707, // 0015 GETMET R6 R3 K7
0x8C1C0908, // 0016 GETMET R7 R4 K8 0x88200709, // 0016 GETMBR R8 R3 K9
0x8824090A, // 0017 GETMBR R9 R4 K10 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x7002003C, // 001A JMP #0058
0x7002003C, // 001B JMP #0059 0x1C180B0A, // 001B EQ R6 R5 K10
0x1C1C0D0B, // 001C EQ R7 R6 K11 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180707, // 001D GETMET R6 R3 K7
0x8C1C0908, // 001E GETMET R7 R4 K8 0x88200708, // 001E GETMBR R8 R3 K8
0x88240909, // 001F GETMBR R9 R4 K9 0x58240005, // 001F LDCONST R9 K5
0x58280006, // 0020 LDCONST R10 K6 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020034, // 0022 JMP #0058
0x70020034, // 0023 JMP #0059 0x1C180B0B, // 0023 EQ R6 R5 K11
0x1C1C0D0C, // 0024 EQ R7 R6 K12 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180707, // 0025 GETMET R6 R3 K7
0x8C1C0908, // 0026 GETMET R7 R4 K8 0x88200708, // 0026 GETMBR R8 R3 K8
0x88240909, // 0027 GETMBR R9 R4 K9 0x542600FD, // 0027 LDINT R9 254
0x542A00FD, // 0028 LDINT R10 254 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x7002002C, // 002A JMP #0058
0x7002002C, // 002B JMP #0059 0x541A000E, // 002B LDINT R6 15
0x541E000E, // 002C LDINT R7 15 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180707, // 002E GETMET R6 R3 K7
0x8C1C0908, // 002F GETMET R7 R4 K8 0x88200708, // 002F GETMBR R8 R3 K8
0x88240909, // 0030 GETMBR R9 R4 K9 0x58240005, // 0030 LDCONST R9 K5
0x58280006, // 0031 LDCONST R10 K6 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020023, // 0033 JMP #0058
0x70020023, // 0034 JMP #0059 0x541A0010, // 0034 LDINT R6 17
0x541E0010, // 0035 LDINT R7 17 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A000F, // 0036 JMPF R6 #0047
0x781E000F, // 0037 JMPF R7 #0048 0x88180106, // 0037 GETMBR R6 R0 K6
0x881C0107, // 0038 GETMBR R7 R0 K7 0x4C1C0000, // 0038 LDNIL R7
0x4C200000, // 0039 LDNIL R8 0x20180C07, // 0039 NE R6 R6 R7
0x201C0E08, // 003A NE R7 R7 R8 0x781A0005, // 003A JMPF R6 #0041
0x781E0005, // 003B JMPF R7 #0042 0x8C180707, // 003B GETMET R6 R3 K7
0x8C1C0908, // 003C GETMET R7 R4 K8 0x88200708, // 003C GETMBR R8 R3 K8
0x88240909, // 003D GETMBR R9 R4 K9 0x88240106, // 003D GETMBR R9 R0 K6
0x88280107, // 003E GETMBR R10 R0 K7 0x7C180600, // 003E CALL R6 3
0x7C1C0600, // 003F CALL R7 3 0x80040C00, // 003F RET 1 R6
0x80040E00, // 0040 RET 1 R7 0x70020004, // 0040 JMP #0046
0x70020004, // 0041 JMP #0047 0x8C180707, // 0041 GETMET R6 R3 K7
0x8C1C0908, // 0042 GETMET R7 R4 K8 0x88200709, // 0042 GETMBR R8 R3 K9
0x8824090A, // 0043 GETMBR R9 R4 K10 0x4C240000, // 0043 LDNIL R9
0x4C280000, // 0044 LDNIL R10 0x7C180600, // 0044 CALL R6 3
0x7C1C0600, // 0045 CALL R7 3 0x80040C00, // 0045 RET 1 R6
0x80040E00, // 0046 RET 1 R7 0x70020010, // 0046 JMP #0058
0x70020010, // 0047 JMP #0059 0x541AFFFB, // 0047 LDINT R6 65532
0x541EFFFB, // 0048 LDINT R7 65532 0x1C180A06, // 0048 EQ R6 R5 R6
0x1C1C0C07, // 0049 EQ R7 R6 R7 0x781A0005, // 0049 JMPF R6 #0050
0x781E0005, // 004A JMPF R7 #0051 0x8C180707, // 004A GETMET R6 R3 K7
0x8C1C0908, // 004B GETMET R7 R4 K8 0x8820070C, // 004B GETMBR R8 R3 K12
0x8824090D, // 004C GETMBR R9 R4 K13 0x5824000D, // 004C LDCONST R9 K13
0x5828000E, // 004D LDCONST R10 K14 0x7C180600, // 004D CALL R6 3
0x7C1C0600, // 004E CALL R7 3 0x80040C00, // 004E RET 1 R6
0x80040E00, // 004F RET 1 R7 0x70020007, // 004F JMP #0058
0x70020007, // 0050 JMP #0059 0x541AFFFC, // 0050 LDINT R6 65533
0x541EFFFC, // 0051 LDINT R7 65533 0x1C180A06, // 0051 EQ R6 R5 R6
0x1C1C0C07, // 0052 EQ R7 R6 R7 0x781A0004, // 0052 JMPF R6 #0058
0x781E0004, // 0053 JMPF R7 #0059 0x8C180707, // 0053 GETMET R6 R3 K7
0x8C1C0908, // 0054 GETMET R7 R4 K8 0x8820070C, // 0054 GETMBR R8 R3 K12
0x8824090D, // 0055 GETMBR R9 R4 K13 0x54260004, // 0055 LDINT R9 5
0x542A0004, // 0056 LDINT R10 5 0x7C180600, // 0056 CALL R6 3
0x7C1C0600, // 0057 CALL R7 3 0x80040C00, // 0057 RET 1 R6
0x80040E00, // 0058 RET 1 R7 0x70020007, // 0058 JMP #0061
0x70020007, // 0059 JMP #0062 0x60180003, // 0059 GETGBL R6 G3
0x601C0003, // 005A GETGBL R7 G3 0x5C1C0000, // 005A MOVE R7 R0
0x5C200000, // 005B MOVE R8 R0 0x7C180200, // 005B CALL R6 1
0x7C1C0200, // 005C CALL R7 1 0x8C180D0E, // 005C GETMET R6 R6 K14
0x8C1C0F0F, // 005D GETMET R7 R7 K15 0x5C200200, // 005D MOVE R8 R1
0x5C240200, // 005E MOVE R9 R1 0x5C240400, // 005E MOVE R9 R2
0x5C280400, // 005F MOVE R10 R2 0x7C180600, // 005F CALL R6 3
0x7C1C0600, // 0060 CALL R7 3 0x80040C00, // 0060 RET 1 R6
0x80040E00, // 0061 RET 1 R7 0x80000000, // 0061 RET 0
0x80000000, // 0062 RET 0
}) })
) )
); );
@ -278,7 +276,7 @@ be_local_closure(Matter_Plugin_Bridge_Light1_read_attribute, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light1_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Light1_web_values, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 9, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -286,35 +284,32 @@ be_local_closure(Matter_Plugin_Bridge_Light1_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X25s_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(web_value_onoff),
/* K5 */ be_nested_str_weak(_X25s_X20_X25s), /* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(web_value_onoff), /* K6 */ be_nested_str_weak(web_value_dimmer),
/* K7 */ be_nested_str_weak(shadow_onoff),
/* K8 */ be_nested_str_weak(web_value_dimmer),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[15]) { /* code */ ( &(const binstruction[14]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x8C180104, // 0006 GETMET R6 R0 K4
0x8C200106, // 0007 GETMET R8 R0 K6 0x88200105, // 0007 GETMBR R8 R0 K5
0x88280107, // 0008 GETMBR R10 R0 K7 0x7C180400, // 0008 CALL R6 2
0x7C200400, // 0009 CALL R8 2 0x8C1C0106, // 0009 GETMET R7 R0 K6
0x8C240108, // 000A GETMET R9 R0 K8 0x7C1C0200, // 000A CALL R7 1
0x7C240200, // 000B CALL R9 1 0x7C100600, // 000B CALL R4 3
0x7C140800, // 000C CALL R5 4 0x7C080400, // 000C CALL R2 2
0x7C0C0400, // 000D CALL R3 2 0x80000000, // 000D RET 0
0x80000000, // 000E RET 0
}) })
) )
); );
@ -445,7 +440,7 @@ be_local_closure(Matter_Plugin_Bridge_Light1_parse_update, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light1_web_value_dimmer, /* name */ be_local_closure(Matter_Plugin_Bridge_Light1_web_value_dimmer, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 9, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -453,41 +448,38 @@ be_local_closure(Matter_Plugin_Bridge_Light1_web_value_dimmer, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(),
/* K1 */ be_nested_str_weak(), /* K1 */ be_nested_str_weak(shadow_bri),
/* K2 */ be_nested_str_weak(shadow_bri), /* K2 */ be_nested_str_weak(tasmota),
/* K3 */ be_nested_str_weak(tasmota), /* K3 */ be_nested_str_weak(scale_uint),
/* K4 */ be_nested_str_weak(scale_uint), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(_X25i_X25_X25),
/* K6 */ be_nested_str_weak(format), /* K6 */ be_nested_str_weak(_X26_X23128261_X3B_X20),
/* K7 */ be_nested_str_weak(_X25i_X25_X25),
/* K8 */ be_nested_str_weak(_X26_X23128261_X3B_X20),
}), }),
be_str_weak(web_value_dimmer), be_str_weak(web_value_dimmer),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x58040000, // 0000 LDCONST R1 K0
0x58080001, // 0001 LDCONST R2 K1 0x88080101, // 0001 GETMBR R2 R0 K1
0x880C0102, // 0002 GETMBR R3 R0 K2 0x4C0C0000, // 0002 LDNIL R3
0x4C100000, // 0003 LDNIL R4 0x20080403, // 0003 NE R2 R2 R3
0x200C0604, // 0004 NE R3 R3 R4 0x780A000C, // 0004 JMPF R2 #0012
0x780E000C, // 0005 JMPF R3 #0013 0xB80A0400, // 0005 GETNGBL R2 K2
0xB80E0600, // 0006 GETNGBL R3 K3 0x8C080503, // 0006 GETMET R2 R2 K3
0x8C0C0704, // 0007 GETMET R3 R3 K4 0x88100101, // 0007 GETMBR R4 R0 K1
0x88140102, // 0008 GETMBR R5 R0 K2 0x58140004, // 0008 LDCONST R5 K4
0x58180005, // 0009 LDCONST R6 K5 0x541A00FD, // 0009 LDINT R6 254
0x541E00FD, // 000A LDINT R7 254 0x581C0004, // 000A LDCONST R7 K4
0x58200005, // 000B LDCONST R8 K5 0x54220063, // 000B LDINT R8 100
0x54260063, // 000C LDINT R9 100 0x7C080C00, // 000C CALL R2 6
0x7C0C0C00, // 000D CALL R3 6 0x600C0018, // 000D GETGBL R3 G24
0x8C100306, // 000E GETMET R4 R1 K6 0x58100005, // 000E LDCONST R4 K5
0x58180007, // 000F LDCONST R6 K7 0x5C140400, // 000F MOVE R5 R2
0x5C1C0600, // 0010 MOVE R7 R3 0x7C0C0400, // 0010 CALL R3 2
0x7C100600, // 0011 CALL R4 3 0x5C040600, // 0011 MOVE R1 R3
0x5C080800, // 0012 MOVE R2 R4 0x000A0C01, // 0012 ADD R2 K6 R1
0x000E1002, // 0013 ADD R3 K8 R2 0x80040400, // 0013 RET 1 R2
0x80040600, // 0014 RET 1 R3
}) })
) )
); );

View File

@ -114,7 +114,7 @@ be_local_closure(Matter_Plugin_Bridge_Light2_parse_update, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light2_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Light2_web_values, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -122,38 +122,35 @@ be_local_closure(Matter_Plugin_Bridge_Light2_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(web_value_onoff),
/* K5 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), /* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(web_value_onoff), /* K6 */ be_nested_str_weak(web_value_dimmer),
/* K7 */ be_nested_str_weak(shadow_onoff), /* K7 */ be_nested_str_weak(web_value_ct),
/* K8 */ be_nested_str_weak(web_value_dimmer),
/* K9 */ be_nested_str_weak(web_value_ct),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[17]) { /* code */ ( &(const binstruction[16]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x8C180104, // 0006 GETMET R6 R0 K4
0x8C200106, // 0007 GETMET R8 R0 K6 0x88200105, // 0007 GETMBR R8 R0 K5
0x88280107, // 0008 GETMBR R10 R0 K7 0x7C180400, // 0008 CALL R6 2
0x7C200400, // 0009 CALL R8 2 0x8C1C0106, // 0009 GETMET R7 R0 K6
0x8C240108, // 000A GETMET R9 R0 K8 0x7C1C0200, // 000A CALL R7 1
0x7C240200, // 000B CALL R9 1 0x8C200107, // 000B GETMET R8 R0 K7
0x8C280109, // 000C GETMET R10 R0 K9 0x7C200200, // 000C CALL R8 1
0x7C280200, // 000D CALL R10 1 0x7C100800, // 000D CALL R4 4
0x7C140A00, // 000E CALL R5 5 0x7C080400, // 000E CALL R2 2
0x7C0C0400, // 000F CALL R3 2 0x80000000, // 000F RET 0
0x80000000, // 0010 RET 0
}) })
) )
); );
@ -165,7 +162,7 @@ be_local_closure(Matter_Plugin_Bridge_Light2_web_values, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light2_web_value_ct, /* name */ be_local_closure(Matter_Plugin_Bridge_Light2_web_value_ct, /* name */
be_nested_proto( be_nested_proto(
8, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -173,39 +170,36 @@ be_local_closure(Matter_Plugin_Bridge_Light2_web_value_ct, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(),
/* K1 */ be_nested_str_weak(), /* K1 */ be_nested_str_weak(shadow_ct),
/* K2 */ be_nested_str_weak(shadow_ct), /* K2 */ be_const_int(1000000),
/* K3 */ be_const_int(1000000), /* K3 */ be_nested_str_weak(_X25iK),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(_X26_X239898_X3B_X20),
/* K5 */ be_nested_str_weak(_X25iK),
/* K6 */ be_nested_str_weak(_X26_X239898_X3B_X20),
}), }),
be_str_weak(web_value_ct), be_str_weak(web_value_ct),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x58040000, // 0000 LDCONST R1 K0
0x58080001, // 0001 LDCONST R2 K1 0x88080101, // 0001 GETMBR R2 R0 K1
0x880C0102, // 0002 GETMBR R3 R0 K2 0x4C0C0000, // 0002 LDNIL R3
0x4C100000, // 0003 LDNIL R4 0x20080403, // 0003 NE R2 R2 R3
0x200C0604, // 0004 NE R3 R3 R4 0x780A000C, // 0004 JMPF R2 #0012
0x780E000C, // 0005 JMPF R3 #0013 0x88080101, // 0005 GETMBR R2 R0 K1
0x880C0102, // 0006 GETMBR R3 R0 K2 0x0C0A0402, // 0006 DIV R2 K2 R2
0x0C0E0603, // 0007 DIV R3 K3 R3 0x540E0018, // 0007 LDINT R3 25
0x54120018, // 0008 LDINT R4 25 0x00080403, // 0008 ADD R2 R2 R3
0x000C0604, // 0009 ADD R3 R3 R4 0x540E0031, // 0009 LDINT R3 50
0x54120031, // 000A LDINT R4 50 0x0C080403, // 000A DIV R2 R2 R3
0x0C0C0604, // 000B DIV R3 R3 R4 0x540E0031, // 000B LDINT R3 50
0x54120031, // 000C LDINT R4 50 0x08080403, // 000C MUL R2 R2 R3
0x080C0604, // 000D MUL R3 R3 R4 0x600C0018, // 000D GETGBL R3 G24
0x8C100304, // 000E GETMET R4 R1 K4 0x58100003, // 000E LDCONST R4 K3
0x58180005, // 000F LDCONST R6 K5 0x5C140400, // 000F MOVE R5 R2
0x5C1C0600, // 0010 MOVE R7 R3 0x7C0C0400, // 0010 CALL R3 2
0x7C100600, // 0011 CALL R4 3 0x5C040600, // 0011 MOVE R1 R3
0x5C080800, // 0012 MOVE R2 R4 0x000A0801, // 0012 ADD R2 K4 R1
0x000E0C02, // 0013 ADD R3 K6 R2 0x80040400, // 0013 RET 1 R2
0x80040600, // 0014 RET 1 R3
}) })
) )
); );
@ -400,7 +394,7 @@ be_local_closure(Matter_Plugin_Bridge_Light2_update_ct_minmax, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light2_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Light2_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -408,128 +402,126 @@ be_local_closure(Matter_Plugin_Bridge_Light2_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[16]) { /* constants */ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_nested_str_weak(shadow_ct),
/* K6 */ be_nested_str_weak(shadow_ct), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(U1), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(2),
/* K10 */ be_const_int(2), /* K10 */ be_const_int(0),
/* K11 */ be_const_int(0), /* K11 */ be_nested_str_weak(ct_min),
/* K12 */ be_nested_str_weak(ct_min), /* K12 */ be_nested_str_weak(ct_max),
/* K13 */ be_nested_str_weak(ct_max), /* K13 */ be_nested_str_weak(U4),
/* K14 */ be_nested_str_weak(U4), /* K14 */ be_nested_str_weak(read_attribute),
/* K15 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[101]) { /* code */ ( &(const binstruction[100]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A02FF, // 0004 LDINT R6 768
0x541E02FF, // 0005 LDINT R7 768 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0053, // 0006 JMPF R6 #005B
0x781E0053, // 0007 JMPF R7 #005C 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x541A0006, // 0009 LDINT R6 7
0x541E0006, // 000A LDINT R7 7 0x1C180A06, // 000A EQ R6 R5 R6
0x1C1C0C07, // 000B EQ R7 R6 R7 0x781A000F, // 000B JMPF R6 #001C
0x781E000F, // 000C JMPF R7 #001D 0x88180105, // 000C GETMBR R6 R0 K5
0x881C0106, // 000D GETMBR R7 R0 K6 0x4C1C0000, // 000D LDNIL R7
0x4C200000, // 000E LDNIL R8 0x20180C07, // 000E NE R6 R6 R7
0x201C0E08, // 000F NE R7 R7 R8 0x781A0005, // 000F JMPF R6 #0016
0x781E0005, // 0010 JMPF R7 #0017 0x8C180706, // 0010 GETMET R6 R3 K6
0x8C1C0907, // 0011 GETMET R7 R4 K7 0x88200707, // 0011 GETMBR R8 R3 K7
0x88240908, // 0012 GETMBR R9 R4 K8 0x88240105, // 0012 GETMBR R9 R0 K5
0x88280106, // 0013 GETMBR R10 R0 K6 0x7C180600, // 0013 CALL R6 3
0x7C1C0600, // 0014 CALL R7 3 0x80040C00, // 0014 RET 1 R6
0x80040E00, // 0015 RET 1 R7 0x70020004, // 0015 JMP #001B
0x70020004, // 0016 JMP #001C 0x8C180706, // 0016 GETMET R6 R3 K6
0x8C1C0907, // 0017 GETMET R7 R4 K7 0x88200708, // 0017 GETMBR R8 R3 K8
0x88240909, // 0018 GETMBR R9 R4 K9 0x4C240000, // 0018 LDNIL R9
0x4C280000, // 0019 LDNIL R10 0x7C180600, // 0019 CALL R6 3
0x7C1C0600, // 001A CALL R7 3 0x80040C00, // 001A RET 1 R6
0x80040E00, // 001B RET 1 R7 0x7002003D, // 001B JMP #005A
0x7002003D, // 001C JMP #005B 0x541A0007, // 001C LDINT R6 8
0x541E0007, // 001D LDINT R7 8 0x1C180A06, // 001D EQ R6 R5 R6
0x1C1C0C07, // 001E EQ R7 R6 R7 0x781A0005, // 001E JMPF R6 #0025
0x781E0005, // 001F JMPF R7 #0026 0x8C180706, // 001F GETMET R6 R3 K6
0x8C1C0907, // 0020 GETMET R7 R4 K7 0x88200707, // 0020 GETMBR R8 R3 K7
0x88240908, // 0021 GETMBR R9 R4 K8 0x58240009, // 0021 LDCONST R9 K9
0x5828000A, // 0022 LDCONST R10 K10 0x7C180600, // 0022 CALL R6 3
0x7C1C0600, // 0023 CALL R7 3 0x80040C00, // 0023 RET 1 R6
0x80040E00, // 0024 RET 1 R7 0x70020034, // 0024 JMP #005A
0x70020034, // 0025 JMP #005B 0x541A000E, // 0025 LDINT R6 15
0x541E000E, // 0026 LDINT R7 15 0x1C180A06, // 0026 EQ R6 R5 R6
0x1C1C0C07, // 0027 EQ R7 R6 R7 0x781A0005, // 0027 JMPF R6 #002E
0x781E0005, // 0028 JMPF R7 #002F 0x8C180706, // 0028 GETMET R6 R3 K6
0x8C1C0907, // 0029 GETMET R7 R4 K7 0x88200707, // 0029 GETMBR R8 R3 K7
0x88240908, // 002A GETMBR R9 R4 K8 0x5824000A, // 002A LDCONST R9 K10
0x5828000B, // 002B LDCONST R10 K11 0x7C180600, // 002B CALL R6 3
0x7C1C0600, // 002C CALL R7 3 0x80040C00, // 002C RET 1 R6
0x80040E00, // 002D RET 1 R7 0x7002002B, // 002D JMP #005A
0x7002002B, // 002E JMP #005B 0x541A400A, // 002E LDINT R6 16395
0x541E400A, // 002F LDINT R7 16395 0x1C180A06, // 002F EQ R6 R5 R6
0x1C1C0C07, // 0030 EQ R7 R6 R7 0x781A0005, // 0030 JMPF R6 #0037
0x781E0005, // 0031 JMPF R7 #0038 0x8C180706, // 0031 GETMET R6 R3 K6
0x8C1C0907, // 0032 GETMET R7 R4 K7 0x88200707, // 0032 GETMBR R8 R3 K7
0x88240908, // 0033 GETMBR R9 R4 K8 0x8824010B, // 0033 GETMBR R9 R0 K11
0x8828010C, // 0034 GETMBR R10 R0 K12 0x7C180600, // 0034 CALL R6 3
0x7C1C0600, // 0035 CALL R7 3 0x80040C00, // 0035 RET 1 R6
0x80040E00, // 0036 RET 1 R7 0x70020022, // 0036 JMP #005A
0x70020022, // 0037 JMP #005B 0x541A400B, // 0037 LDINT R6 16396
0x541E400B, // 0038 LDINT R7 16396 0x1C180A06, // 0038 EQ R6 R5 R6
0x1C1C0C07, // 0039 EQ R7 R6 R7 0x781A0005, // 0039 JMPF R6 #0040
0x781E0005, // 003A JMPF R7 #0041 0x8C180706, // 003A GETMET R6 R3 K6
0x8C1C0907, // 003B GETMET R7 R4 K7 0x88200707, // 003B GETMBR R8 R3 K7
0x88240908, // 003C GETMBR R9 R4 K8 0x8824010C, // 003C GETMBR R9 R0 K12
0x8828010D, // 003D GETMBR R10 R0 K13 0x7C180600, // 003D CALL R6 3
0x7C1C0600, // 003E CALL R7 3 0x80040C00, // 003E RET 1 R6
0x80040E00, // 003F RET 1 R7 0x70020019, // 003F JMP #005A
0x70020019, // 0040 JMP #005B 0x541A4009, // 0040 LDINT R6 16394
0x541E4009, // 0041 LDINT R7 16394 0x1C180A06, // 0041 EQ R6 R5 R6
0x1C1C0C07, // 0042 EQ R7 R6 R7 0x781A0005, // 0042 JMPF R6 #0049
0x781E0005, // 0043 JMPF R7 #004A 0x8C180706, // 0043 GETMET R6 R3 K6
0x8C1C0907, // 0044 GETMET R7 R4 K7 0x8820070D, // 0044 GETMBR R8 R3 K13
0x8824090E, // 0045 GETMBR R9 R4 K14 0x5426000F, // 0045 LDINT R9 16
0x542A000F, // 0046 LDINT R10 16 0x7C180600, // 0046 CALL R6 3
0x7C1C0600, // 0047 CALL R7 3 0x80040C00, // 0047 RET 1 R6
0x80040E00, // 0048 RET 1 R7 0x70020010, // 0048 JMP #005A
0x70020010, // 0049 JMP #005B 0x541AFFFB, // 0049 LDINT R6 65532
0x541EFFFB, // 004A LDINT R7 65532 0x1C180A06, // 004A EQ R6 R5 R6
0x1C1C0C07, // 004B EQ R7 R6 R7 0x781A0005, // 004B JMPF R6 #0052
0x781E0005, // 004C JMPF R7 #0053 0x8C180706, // 004C GETMET R6 R3 K6
0x8C1C0907, // 004D GETMET R7 R4 K7 0x8820070D, // 004D GETMBR R8 R3 K13
0x8824090E, // 004E GETMBR R9 R4 K14 0x5426000F, // 004E LDINT R9 16
0x542A000F, // 004F LDINT R10 16 0x7C180600, // 004F CALL R6 3
0x7C1C0600, // 0050 CALL R7 3 0x80040C00, // 0050 RET 1 R6
0x80040E00, // 0051 RET 1 R7 0x70020007, // 0051 JMP #005A
0x70020007, // 0052 JMP #005B 0x541AFFFC, // 0052 LDINT R6 65533
0x541EFFFC, // 0053 LDINT R7 65533 0x1C180A06, // 0053 EQ R6 R5 R6
0x1C1C0C07, // 0054 EQ R7 R6 R7 0x781A0004, // 0054 JMPF R6 #005A
0x781E0004, // 0055 JMPF R7 #005B 0x8C180706, // 0055 GETMET R6 R3 K6
0x8C1C0907, // 0056 GETMET R7 R4 K7 0x8820070D, // 0056 GETMBR R8 R3 K13
0x8824090E, // 0057 GETMBR R9 R4 K14 0x54260004, // 0057 LDINT R9 5
0x542A0004, // 0058 LDINT R10 5 0x7C180600, // 0058 CALL R6 3
0x7C1C0600, // 0059 CALL R7 3 0x80040C00, // 0059 RET 1 R6
0x80040E00, // 005A RET 1 R7 0x70020007, // 005A JMP #0063
0x70020007, // 005B JMP #0064 0x60180003, // 005B GETGBL R6 G3
0x601C0003, // 005C GETGBL R7 G3 0x5C1C0000, // 005C MOVE R7 R0
0x5C200000, // 005D MOVE R8 R0 0x7C180200, // 005D CALL R6 1
0x7C1C0200, // 005E CALL R7 1 0x8C180D0E, // 005E GETMET R6 R6 K14
0x8C1C0F0F, // 005F GETMET R7 R7 K15 0x5C200200, // 005F MOVE R8 R1
0x5C240200, // 0060 MOVE R9 R1 0x5C240400, // 0060 MOVE R9 R2
0x5C280400, // 0061 MOVE R10 R2 0x7C180600, // 0061 CALL R6 3
0x7C1C0600, // 0062 CALL R7 3 0x80040C00, // 0062 RET 1 R6
0x80040E00, // 0063 RET 1 R7 0x80000000, // 0063 RET 0
0x80000000, // 0064 RET 0
}) })
) )
); );

View File

@ -168,7 +168,7 @@ be_local_closure(Matter_Plugin_Bridge_Light3_parse_update, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light3_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Light3_web_values, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -176,38 +176,35 @@ be_local_closure(Matter_Plugin_Bridge_Light3_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(web_value_onoff),
/* K5 */ be_nested_str_weak(_X25s_X20_X25s_X20_X25s), /* K5 */ be_nested_str_weak(shadow_onoff),
/* K6 */ be_nested_str_weak(web_value_onoff), /* K6 */ be_nested_str_weak(web_value_dimmer),
/* K7 */ be_nested_str_weak(shadow_onoff), /* K7 */ be_nested_str_weak(web_value_RGB),
/* K8 */ be_nested_str_weak(web_value_dimmer),
/* K9 */ be_nested_str_weak(web_value_RGB),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[17]) { /* code */ ( &(const binstruction[16]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x8C180104, // 0006 GETMET R6 R0 K4
0x8C200106, // 0007 GETMET R8 R0 K6 0x88200105, // 0007 GETMBR R8 R0 K5
0x88280107, // 0008 GETMBR R10 R0 K7 0x7C180400, // 0008 CALL R6 2
0x7C200400, // 0009 CALL R8 2 0x8C1C0106, // 0009 GETMET R7 R0 K6
0x8C240108, // 000A GETMET R9 R0 K8 0x7C1C0200, // 000A CALL R7 1
0x7C240200, // 000B CALL R9 1 0x8C200107, // 000B GETMET R8 R0 K7
0x8C280109, // 000C GETMET R10 R0 K9 0x7C200200, // 000C CALL R8 1
0x7C280200, // 000D CALL R10 1 0x7C100800, // 000D CALL R4 4
0x7C140A00, // 000E CALL R5 5 0x7C080400, // 000E CALL R2 2
0x7C0C0400, // 000F CALL R3 2 0x80000000, // 000F RET 0
0x80000000, // 0010 RET 0
}) })
) )
); );
@ -219,7 +216,7 @@ be_local_closure(Matter_Plugin_Bridge_Light3_web_values, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */ be_local_closure(Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 12, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -227,74 +224,71 @@ be_local_closure(Matter_Plugin_Bridge_Light3_web_value_RGB, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[17]) { /* constants */ ( &(const bvalue[15]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(shadow_hue),
/* K1 */ be_nested_str_weak(shadow_hue), /* K1 */ be_nested_str_weak(shadow_sat),
/* K2 */ be_nested_str_weak(shadow_sat), /* K2 */ be_nested_str_weak(light_state),
/* K3 */ be_nested_str_weak(light_state), /* K3 */ be_const_int(3),
/* K4 */ be_const_int(3), /* K4 */ be_nested_str_weak(set_bri),
/* K5 */ be_nested_str_weak(set_bri), /* K5 */ be_nested_str_weak(set_huesat),
/* K6 */ be_nested_str_weak(set_huesat), /* K6 */ be_nested_str_weak(tasmota),
/* K7 */ be_nested_str_weak(tasmota), /* K7 */ be_nested_str_weak(scale_uint),
/* K8 */ be_nested_str_weak(scale_uint), /* K8 */ be_const_int(0),
/* K9 */ be_const_int(0), /* K9 */ be_nested_str_weak(_X23_X2502X_X2502X_X2502X),
/* K10 */ be_nested_str_weak(format), /* K10 */ be_nested_str_weak(r),
/* K11 */ be_nested_str_weak(_X23_X2502X_X2502X_X2502X), /* K11 */ be_nested_str_weak(g),
/* K12 */ be_nested_str_weak(r), /* K12 */ be_nested_str_weak(b),
/* K13 */ be_nested_str_weak(g), /* K13 */ be_nested_str_weak(_X3Ci_X20class_X3D_X22bxm_X22_X20style_X3D_X22_X2D_X2Dcl_X3A_X25s_X22_X3E_X3C_X2Fi_X3E_X25s),
/* K14 */ be_nested_str_weak(b), /* K14 */ be_nested_str_weak(),
/* K15 */ be_nested_str_weak(_X3Ci_X20class_X3D_X22bxm_X22_X20style_X3D_X22_X2D_X2Dcl_X3A_X25s_X22_X3E_X3C_X2Fi_X3E_X25s),
/* K16 */ be_nested_str_weak(),
}), }),
be_str_weak(web_value_RGB), be_str_weak(web_value_RGB),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[46]) { /* code */ ( &(const binstruction[45]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x88080101, // 0001 GETMBR R2 R0 K1 0x4C080000, // 0001 LDNIL R2
0x4C0C0000, // 0002 LDNIL R3 0x20040202, // 0002 NE R1 R1 R2
0x20080403, // 0003 NE R2 R2 R3 0x78060027, // 0003 JMPF R1 #002C
0x780A0027, // 0004 JMPF R2 #002D 0x88040101, // 0004 GETMBR R1 R0 K1
0x88080102, // 0005 GETMBR R2 R0 K2 0x4C080000, // 0005 LDNIL R2
0x4C0C0000, // 0006 LDNIL R3 0x20040202, // 0006 NE R1 R1 R2
0x20080403, // 0007 NE R2 R2 R3 0x78060023, // 0007 JMPF R1 #002C
0x780A0023, // 0008 JMPF R2 #002D 0xB8060400, // 0008 GETNGBL R1 K2
0xB80A0600, // 0009 GETNGBL R2 K3 0x58080003, // 0009 LDCONST R2 K3
0x580C0004, // 000A LDCONST R3 K4 0x7C040200, // 000A CALL R1 1
0x7C080200, // 000B CALL R2 1 0x8C080304, // 000B GETMET R2 R1 K4
0x8C0C0505, // 000C GETMET R3 R2 K5 0x541200FE, // 000C LDINT R4 255
0x541600FE, // 000D LDINT R5 255 0x7C080400, // 000D CALL R2 2
0x7C0C0400, // 000E CALL R3 2 0x8C080305, // 000E GETMET R2 R1 K5
0x8C0C0506, // 000F GETMET R3 R2 K6 0xB8120C00, // 000F GETNGBL R4 K6
0xB8160E00, // 0010 GETNGBL R5 K7 0x8C100907, // 0010 GETMET R4 R4 K7
0x8C140B08, // 0011 GETMET R5 R5 K8 0x88180100, // 0011 GETMBR R6 R0 K0
0x881C0101, // 0012 GETMBR R7 R0 K1 0x581C0008, // 0012 LDCONST R7 K8
0x58200009, // 0013 LDCONST R8 K9 0x542200FD, // 0013 LDINT R8 254
0x542600FD, // 0014 LDINT R9 254 0x58240008, // 0014 LDCONST R9 K8
0x58280009, // 0015 LDCONST R10 K9 0x542A0167, // 0015 LDINT R10 360
0x542E0167, // 0016 LDINT R11 360 0x7C100C00, // 0016 CALL R4 6
0x7C140C00, // 0017 CALL R5 6 0xB8160C00, // 0017 GETNGBL R5 K6
0xB81A0E00, // 0018 GETNGBL R6 K7 0x8C140B07, // 0018 GETMET R5 R5 K7
0x8C180D08, // 0019 GETMET R6 R6 K8 0x881C0101, // 0019 GETMBR R7 R0 K1
0x88200102, // 001A GETMBR R8 R0 K2 0x58200008, // 001A LDCONST R8 K8
0x58240009, // 001B LDCONST R9 K9 0x542600FD, // 001B LDINT R9 254
0x542A00FD, // 001C LDINT R10 254 0x58280008, // 001C LDCONST R10 K8
0x582C0009, // 001D LDCONST R11 K9 0x542E00FE, // 001D LDINT R11 255
0x543200FE, // 001E LDINT R12 255 0x7C140C00, // 001E CALL R5 6
0x7C180C00, // 001F CALL R6 6 0x7C080600, // 001F CALL R2 3
0x7C0C0600, // 0020 CALL R3 3 0x60080018, // 0020 GETGBL R2 G24
0x8C0C030A, // 0021 GETMET R3 R1 K10 0x580C0009, // 0021 LDCONST R3 K9
0x5814000B, // 0022 LDCONST R5 K11 0x8810030A, // 0022 GETMBR R4 R1 K10
0x8818050C, // 0023 GETMBR R6 R2 K12 0x8814030B, // 0023 GETMBR R5 R1 K11
0x881C050D, // 0024 GETMBR R7 R2 K13 0x8818030C, // 0024 GETMBR R6 R1 K12
0x8820050E, // 0025 GETMBR R8 R2 K14 0x7C080800, // 0025 CALL R2 4
0x7C0C0A00, // 0026 CALL R3 5 0x600C0018, // 0026 GETGBL R3 G24
0x8C10030A, // 0027 GETMET R4 R1 K10 0x5810000D, // 0027 LDCONST R4 K13
0x5818000F, // 0028 LDCONST R6 K15 0x5C140400, // 0028 MOVE R5 R2
0x5C1C0600, // 0029 MOVE R7 R3 0x5C180400, // 0029 MOVE R6 R2
0x5C200600, // 002A MOVE R8 R3 0x7C0C0600, // 002A CALL R3 3
0x7C100800, // 002B CALL R4 4 0x80040600, // 002B RET 1 R3
0x80040800, // 002C RET 1 R4 0x80061C00, // 002C RET 1 K14
0x80062000, // 002D RET 1 K16
}) })
) )
); );
@ -454,7 +448,7 @@ be_local_closure(Matter_Plugin_Bridge_Light3_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Light3_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Light3_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -462,153 +456,151 @@ be_local_closure(Matter_Plugin_Bridge_Light3_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(shadow_hue),
/* K7 */ be_nested_str_weak(shadow_hue), /* K7 */ be_nested_str_weak(create_TLV),
/* K8 */ be_nested_str_weak(create_TLV), /* K8 */ be_nested_str_weak(U1),
/* K9 */ be_nested_str_weak(U1), /* K9 */ be_nested_str_weak(NULL),
/* K10 */ be_nested_str_weak(NULL), /* K10 */ be_const_int(1),
/* K11 */ be_const_int(1), /* K11 */ be_nested_str_weak(shadow_sat),
/* K12 */ be_nested_str_weak(shadow_sat), /* K12 */ be_nested_str_weak(U4),
/* K13 */ be_nested_str_weak(U4), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[127]) { /* code */ ( &(const binstruction[126]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A02FF, // 0004 LDINT R6 768
0x541E02FF, // 0005 LDINT R7 768 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A006D, // 0006 JMPF R6 #0075
0x781E006D, // 0007 JMPF R7 #0076 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A000F, // 000A JMPF R6 #001B
0x781E000F, // 000B JMPF R7 #001C 0x88180106, // 000B GETMBR R6 R0 K6
0x881C0107, // 000C GETMBR R7 R0 K7 0x4C1C0000, // 000C LDNIL R7
0x4C200000, // 000D LDNIL R8 0x20180C07, // 000D NE R6 R6 R7
0x201C0E08, // 000E NE R7 R7 R8 0x781A0005, // 000E JMPF R6 #0015
0x781E0005, // 000F JMPF R7 #0016 0x8C180707, // 000F GETMET R6 R3 K7
0x8C1C0908, // 0010 GETMET R7 R4 K8 0x88200708, // 0010 GETMBR R8 R3 K8
0x88240909, // 0011 GETMBR R9 R4 K9 0x88240106, // 0011 GETMBR R9 R0 K6
0x88280107, // 0012 GETMBR R10 R0 K7 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180707, // 0015 GETMET R6 R3 K7
0x8C1C0908, // 0016 GETMET R7 R4 K8 0x88200709, // 0016 GETMBR R8 R3 K9
0x8824090A, // 0017 GETMBR R9 R4 K10 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020058, // 001A JMP #0074
0x70020058, // 001B JMP #0075 0x1C180B0A, // 001B EQ R6 R5 K10
0x1C1C0D0B, // 001C EQ R7 R6 K11 0x781A000F, // 001C JMPF R6 #002D
0x781E000F, // 001D JMPF R7 #002E 0x8818010B, // 001D GETMBR R6 R0 K11
0x881C010C, // 001E GETMBR R7 R0 K12 0x4C1C0000, // 001E LDNIL R7
0x4C200000, // 001F LDNIL R8 0x20180C07, // 001F NE R6 R6 R7
0x201C0E08, // 0020 NE R7 R7 R8 0x781A0005, // 0020 JMPF R6 #0027
0x781E0005, // 0021 JMPF R7 #0028 0x8C180707, // 0021 GETMET R6 R3 K7
0x8C1C0908, // 0022 GETMET R7 R4 K8 0x88200708, // 0022 GETMBR R8 R3 K8
0x88240909, // 0023 GETMBR R9 R4 K9 0x8824010B, // 0023 GETMBR R9 R0 K11
0x8828010C, // 0024 GETMBR R10 R0 K12 0x7C180600, // 0024 CALL R6 3
0x7C1C0600, // 0025 CALL R7 3 0x80040C00, // 0025 RET 1 R6
0x80040E00, // 0026 RET 1 R7 0x70020004, // 0026 JMP #002C
0x70020004, // 0027 JMP #002D 0x8C180707, // 0027 GETMET R6 R3 K7
0x8C1C0908, // 0028 GETMET R7 R4 K8 0x88200709, // 0028 GETMBR R8 R3 K9
0x8824090A, // 0029 GETMBR R9 R4 K10 0x4C240000, // 0029 LDNIL R9
0x4C280000, // 002A LDNIL R10 0x7C180600, // 002A CALL R6 3
0x7C1C0600, // 002B CALL R7 3 0x80040C00, // 002B RET 1 R6
0x80040E00, // 002C RET 1 R7 0x70020046, // 002C JMP #0074
0x70020046, // 002D JMP #0075 0x541A0006, // 002D LDINT R6 7
0x541E0006, // 002E LDINT R7 7 0x1C180A06, // 002E EQ R6 R5 R6
0x1C1C0C07, // 002F EQ R7 R6 R7 0x781A0005, // 002F JMPF R6 #0036
0x781E0005, // 0030 JMPF R7 #0037 0x8C180707, // 0030 GETMET R6 R3 K7
0x8C1C0908, // 0031 GETMET R7 R4 K8 0x88200708, // 0031 GETMBR R8 R3 K8
0x88240909, // 0032 GETMBR R9 R4 K9 0x58240005, // 0032 LDCONST R9 K5
0x58280006, // 0033 LDCONST R10 K6 0x7C180600, // 0033 CALL R6 3
0x7C1C0600, // 0034 CALL R7 3 0x80040C00, // 0034 RET 1 R6
0x80040E00, // 0035 RET 1 R7 0x7002003D, // 0035 JMP #0074
0x7002003D, // 0036 JMP #0075 0x541A0007, // 0036 LDINT R6 8
0x541E0007, // 0037 LDINT R7 8 0x1C180A06, // 0037 EQ R6 R5 R6
0x1C1C0C07, // 0038 EQ R7 R6 R7 0x781A0005, // 0038 JMPF R6 #003F
0x781E0005, // 0039 JMPF R7 #0040 0x8C180707, // 0039 GETMET R6 R3 K7
0x8C1C0908, // 003A GETMET R7 R4 K8 0x88200708, // 003A GETMBR R8 R3 K8
0x88240909, // 003B GETMBR R9 R4 K9 0x58240005, // 003B LDCONST R9 K5
0x58280006, // 003C LDCONST R10 K6 0x7C180600, // 003C CALL R6 3
0x7C1C0600, // 003D CALL R7 3 0x80040C00, // 003D RET 1 R6
0x80040E00, // 003E RET 1 R7 0x70020034, // 003E JMP #0074
0x70020034, // 003F JMP #0075 0x541A000E, // 003F LDINT R6 15
0x541E000E, // 0040 LDINT R7 15 0x1C180A06, // 0040 EQ R6 R5 R6
0x1C1C0C07, // 0041 EQ R7 R6 R7 0x781A0005, // 0041 JMPF R6 #0048
0x781E0005, // 0042 JMPF R7 #0049 0x8C180707, // 0042 GETMET R6 R3 K7
0x8C1C0908, // 0043 GETMET R7 R4 K8 0x88200708, // 0043 GETMBR R8 R3 K8
0x88240909, // 0044 GETMBR R9 R4 K9 0x58240005, // 0044 LDCONST R9 K5
0x58280006, // 0045 LDCONST R10 K6 0x7C180600, // 0045 CALL R6 3
0x7C1C0600, // 0046 CALL R7 3 0x80040C00, // 0046 RET 1 R6
0x80040E00, // 0047 RET 1 R7 0x7002002B, // 0047 JMP #0074
0x7002002B, // 0048 JMP #0075 0x541A4000, // 0048 LDINT R6 16385
0x541E4000, // 0049 LDINT R7 16385 0x1C180A06, // 0049 EQ R6 R5 R6
0x1C1C0C07, // 004A EQ R7 R6 R7 0x781A0005, // 004A JMPF R6 #0051
0x781E0005, // 004B JMPF R7 #0052 0x8C180707, // 004B GETMET R6 R3 K7
0x8C1C0908, // 004C GETMET R7 R4 K8 0x88200708, // 004C GETMBR R8 R3 K8
0x88240909, // 004D GETMBR R9 R4 K9 0x58240005, // 004D LDCONST R9 K5
0x58280006, // 004E LDCONST R10 K6 0x7C180600, // 004E CALL R6 3
0x7C1C0600, // 004F CALL R7 3 0x80040C00, // 004F RET 1 R6
0x80040E00, // 0050 RET 1 R7 0x70020022, // 0050 JMP #0074
0x70020022, // 0051 JMP #0075 0x541A4009, // 0051 LDINT R6 16394
0x541E4009, // 0052 LDINT R7 16394 0x1C180A06, // 0052 EQ R6 R5 R6
0x1C1C0C07, // 0053 EQ R7 R6 R7 0x781A0005, // 0053 JMPF R6 #005A
0x781E0005, // 0054 JMPF R7 #005B 0x8C180707, // 0054 GETMET R6 R3 K7
0x8C1C0908, // 0055 GETMET R7 R4 K8 0x8820070C, // 0055 GETMBR R8 R3 K12
0x8824090D, // 0056 GETMBR R9 R4 K13 0x5824000A, // 0056 LDCONST R9 K10
0x5828000B, // 0057 LDCONST R10 K11 0x7C180600, // 0057 CALL R6 3
0x7C1C0600, // 0058 CALL R7 3 0x80040C00, // 0058 RET 1 R6
0x80040E00, // 0059 RET 1 R7 0x70020019, // 0059 JMP #0074
0x70020019, // 005A JMP #0075 0x541A000F, // 005A LDINT R6 16
0x541E000F, // 005B LDINT R7 16 0x1C180A06, // 005B EQ R6 R5 R6
0x1C1C0C07, // 005C EQ R7 R6 R7 0x781A0005, // 005C JMPF R6 #0063
0x781E0005, // 005D JMPF R7 #0064 0x8C180707, // 005D GETMET R6 R3 K7
0x8C1C0908, // 005E GETMET R7 R4 K8 0x88200708, // 005E GETMBR R8 R3 K8
0x88240909, // 005F GETMBR R9 R4 K9 0x58240005, // 005F LDCONST R9 K5
0x58280006, // 0060 LDCONST R10 K6 0x7C180600, // 0060 CALL R6 3
0x7C1C0600, // 0061 CALL R7 3 0x80040C00, // 0061 RET 1 R6
0x80040E00, // 0062 RET 1 R7 0x70020010, // 0062 JMP #0074
0x70020010, // 0063 JMP #0075 0x541AFFFB, // 0063 LDINT R6 65532
0x541EFFFB, // 0064 LDINT R7 65532 0x1C180A06, // 0064 EQ R6 R5 R6
0x1C1C0C07, // 0065 EQ R7 R6 R7 0x781A0005, // 0065 JMPF R6 #006C
0x781E0005, // 0066 JMPF R7 #006D 0x8C180707, // 0066 GETMET R6 R3 K7
0x8C1C0908, // 0067 GETMET R7 R4 K8 0x8820070C, // 0067 GETMBR R8 R3 K12
0x8824090D, // 0068 GETMBR R9 R4 K13 0x5824000A, // 0068 LDCONST R9 K10
0x5828000B, // 0069 LDCONST R10 K11 0x7C180600, // 0069 CALL R6 3
0x7C1C0600, // 006A CALL R7 3 0x80040C00, // 006A RET 1 R6
0x80040E00, // 006B RET 1 R7 0x70020007, // 006B JMP #0074
0x70020007, // 006C JMP #0075 0x541AFFFC, // 006C LDINT R6 65533
0x541EFFFC, // 006D LDINT R7 65533 0x1C180A06, // 006D EQ R6 R5 R6
0x1C1C0C07, // 006E EQ R7 R6 R7 0x781A0004, // 006E JMPF R6 #0074
0x781E0004, // 006F JMPF R7 #0075 0x8C180707, // 006F GETMET R6 R3 K7
0x8C1C0908, // 0070 GETMET R7 R4 K8 0x8820070C, // 0070 GETMBR R8 R3 K12
0x8824090D, // 0071 GETMBR R9 R4 K13 0x54260004, // 0071 LDINT R9 5
0x542A0004, // 0072 LDINT R10 5 0x7C180600, // 0072 CALL R6 3
0x7C1C0600, // 0073 CALL R7 3 0x80040C00, // 0073 RET 1 R6
0x80040E00, // 0074 RET 1 R7 0x70020007, // 0074 JMP #007D
0x70020007, // 0075 JMP #007E 0x60180003, // 0075 GETGBL R6 G3
0x601C0003, // 0076 GETGBL R7 G3 0x5C1C0000, // 0076 MOVE R7 R0
0x5C200000, // 0077 MOVE R8 R0 0x7C180200, // 0077 CALL R6 1
0x7C1C0200, // 0078 CALL R7 1 0x8C180D0D, // 0078 GETMET R6 R6 K13
0x8C1C0F0E, // 0079 GETMET R7 R7 K14 0x5C200200, // 0079 MOVE R8 R1
0x5C240200, // 007A MOVE R9 R1 0x5C240400, // 007A MOVE R9 R2
0x5C280400, // 007B MOVE R10 R2 0x7C180600, // 007B CALL R6 3
0x7C1C0600, // 007C CALL R7 3 0x80040C00, // 007C RET 1 R6
0x80040E00, // 007D RET 1 R7 0x80000000, // 007D RET 0
0x80000000, // 007E RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Bridge_OnOff;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_OnOff_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_OnOff_web_values, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,34 +19,31 @@ be_local_closure(Matter_Plugin_Bridge_OnOff_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(Relay_X20_X25i_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(tasmota_relay_index),
/* K5 */ be_nested_str_weak(Relay_X20_X25i_X20_X25s), /* K5 */ be_nested_str_weak(web_value_onoff),
/* K6 */ be_nested_str_weak(tasmota_relay_index), /* K6 */ be_nested_str_weak(shadow_onoff),
/* K7 */ be_nested_str_weak(web_value_onoff),
/* K8 */ be_nested_str_weak(shadow_onoff),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[14]) { /* code */ ( &(const binstruction[13]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x88180104, // 0006 GETMBR R6 R0 K4
0x88200106, // 0007 GETMBR R8 R0 K6 0x8C1C0105, // 0007 GETMET R7 R0 K5
0x8C240107, // 0008 GETMET R9 R0 K7 0x88240106, // 0008 GETMBR R9 R0 K6
0x882C0108, // 0009 GETMBR R11 R0 K8 0x7C1C0400, // 0009 CALL R7 2
0x7C240400, // 000A CALL R9 2 0x7C100600, // 000A CALL R4 3
0x7C140800, // 000B CALL R5 4 0x7C080400, // 000B CALL R2 2
0x7C0C0400, // 000C CALL R3 2 0x80000000, // 000C RET 0
0x80000000, // 000D RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Bridge_Sensor;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_web_values_prefix, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_web_values_prefix, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,41 +19,38 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_web_values_prefix, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(get_name), /* K2 */ be_nested_str_weak(filter_name_html),
/* K3 */ be_nested_str_weak(filter_name_html), /* K3 */ be_nested_str_weak(content_send),
/* K4 */ be_nested_str_weak(content_send), /* K4 */ be_nested_str_weak(PREFIX),
/* K5 */ be_nested_str_weak(format), /* K5 */ be_nested_str_weak(html_escape),
/* K6 */ be_nested_str_weak(PREFIX), /* K6 */ be_nested_str_weak(),
/* K7 */ be_nested_str_weak(html_escape),
/* K8 */ be_nested_str_weak(),
}), }),
be_str_weak(web_values_prefix), be_str_weak(web_values_prefix),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x5C0C0400, // 0003 MOVE R3 R2
0x5C100600, // 0004 MOVE R4 R3 0x740E0002, // 0004 JMPT R3 #0008
0x74120002, // 0005 JMPT R4 #0009 0x8C0C0102, // 0005 GETMET R3 R0 K2
0x8C100103, // 0006 GETMET R4 R0 K3 0x7C0C0200, // 0006 CALL R3 1
0x7C100200, // 0007 CALL R4 1 0x5C080600, // 0007 MOVE R2 R3
0x5C0C0800, // 0008 MOVE R3 R4 0x8C0C0303, // 0008 GETMET R3 R1 K3
0x8C100304, // 0009 GETMET R4 R1 K4 0x60140018, // 0009 GETGBL R5 G24
0x8C180505, // 000A GETMET R6 R2 K5 0x88180104, // 000A GETMBR R6 R0 K4
0x88200106, // 000B GETMBR R8 R0 K6 0x780A0003, // 000B JMPF R2 #0010
0x780E0003, // 000C JMPF R3 #0011 0x8C1C0305, // 000C GETMET R7 R1 K5
0x8C240307, // 000D GETMET R9 R1 K7 0x5C240400, // 000D MOVE R9 R2
0x5C2C0600, // 000E MOVE R11 R3 0x7C1C0400, // 000E CALL R7 2
0x7C240400, // 000F CALL R9 2 0x70020000, // 000F JMP #0011
0x70020000, // 0010 JMP #0012 0x581C0006, // 0010 LDCONST R7 K6
0x58240008, // 0011 LDCONST R9 K8 0x7C140400, // 0011 CALL R5 2
0x7C180600, // 0012 CALL R6 3 0x7C0C0400, // 0012 CALL R3 2
0x7C100400, // 0013 CALL R4 2 0x80000000, // 0013 RET 0
0x80000000, // 0014 RET 0
}) })
) )
); );

View File

@ -88,7 +88,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_init, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -96,44 +96,41 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix, /* nam
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(get_name), /* K2 */ be_nested_str_weak(Switch),
/* K3 */ be_nested_str_weak(Switch), /* K3 */ be_nested_str_weak(tasmota_switch_index),
/* K4 */ be_nested_str_weak(tasmota_switch_index), /* K4 */ be_nested_str_weak(content_send),
/* K5 */ be_nested_str_weak(content_send), /* K5 */ be_nested_str_weak(PREFIX),
/* K6 */ be_nested_str_weak(format), /* K6 */ be_nested_str_weak(html_escape),
/* K7 */ be_nested_str_weak(PREFIX), /* K7 */ be_nested_str_weak(),
/* K8 */ be_nested_str_weak(html_escape),
/* K9 */ be_nested_str_weak(),
}), }),
be_str_weak(web_values_prefix), be_str_weak(web_values_prefix),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[23]) { /* code */ ( &(const binstruction[22]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x5C0C0400, // 0003 MOVE R3 R2
0x5C100600, // 0004 MOVE R4 R3 0x740E0004, // 0004 JMPT R3 #000A
0x74120004, // 0005 JMPT R4 #000B 0x600C0008, // 0005 GETGBL R3 G8
0x60100008, // 0006 GETGBL R4 G8 0x88100103, // 0006 GETMBR R4 R0 K3
0x88140104, // 0007 GETMBR R5 R0 K4 0x7C0C0200, // 0007 CALL R3 1
0x7C100200, // 0008 CALL R4 1 0x000E0403, // 0008 ADD R3 K2 R3
0x00120604, // 0009 ADD R4 K3 R4 0x5C080600, // 0009 MOVE R2 R3
0x5C0C0800, // 000A MOVE R3 R4 0x8C0C0304, // 000A GETMET R3 R1 K4
0x8C100305, // 000B GETMET R4 R1 K5 0x60140018, // 000B GETGBL R5 G24
0x8C180506, // 000C GETMET R6 R2 K6 0x88180105, // 000C GETMBR R6 R0 K5
0x88200107, // 000D GETMBR R8 R0 K7 0x780A0003, // 000D JMPF R2 #0012
0x780E0003, // 000E JMPF R3 #0013 0x8C1C0306, // 000E GETMET R7 R1 K6
0x8C240308, // 000F GETMET R9 R1 K8 0x5C240400, // 000F MOVE R9 R2
0x5C2C0600, // 0010 MOVE R11 R3 0x7C1C0400, // 0010 CALL R7 2
0x7C240400, // 0011 CALL R9 2 0x70020000, // 0011 JMP #0013
0x70020000, // 0012 JMP #0014 0x581C0007, // 0012 LDCONST R7 K7
0x58240009, // 0013 LDCONST R9 K9 0x7C140400, // 0013 CALL R5 2
0x7C180600, // 0014 CALL R6 3 0x7C0C0400, // 0014 CALL R3 2
0x7C100400, // 0015 CALL R4 2 0x80000000, // 0015 RET 0
0x80000000, // 0016 RET 0
}) })
) )
); );
@ -204,7 +201,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_parse_update, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -212,77 +209,75 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_read_attribute, /* name *
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[13]) { /* constants */ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_contact),
/* K6 */ be_nested_str_weak(shadow_contact), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_const_int(1),
/* K11 */ be_const_int(1), /* K11 */ be_nested_str_weak(read_attribute),
/* K12 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[53]) { /* code */ ( &(const binstruction[52]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0044, // 0004 LDINT R6 69
0x541E0044, // 0005 LDINT R7 69 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0023, // 0006 JMPF R6 #002B
0x781E0023, // 0007 JMPF R7 #002C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020010, // 0018 JMP #002A
0x70020010, // 0019 JMP #002B 0x541AFFFB, // 0019 LDINT R6 65532
0x541EFFFB, // 001A LDINT R7 65532 0x1C180A06, // 001A EQ R6 R5 R6
0x1C1C0C07, // 001B EQ R7 R6 R7 0x781A0005, // 001B JMPF R6 #0022
0x781E0005, // 001C JMPF R7 #0023 0x8C180706, // 001C GETMET R6 R3 K6
0x8C1C0907, // 001D GETMET R7 R4 K7 0x88200709, // 001D GETMBR R8 R3 K9
0x8824090A, // 001E GETMBR R9 R4 K10 0x58240004, // 001E LDCONST R9 K4
0x58280005, // 001F LDCONST R10 K5 0x7C180600, // 001F CALL R6 3
0x7C1C0600, // 0020 CALL R7 3 0x80040C00, // 0020 RET 1 R6
0x80040E00, // 0021 RET 1 R7 0x70020007, // 0021 JMP #002A
0x70020007, // 0022 JMP #002B 0x541AFFFC, // 0022 LDINT R6 65533
0x541EFFFC, // 0023 LDINT R7 65533 0x1C180A06, // 0023 EQ R6 R5 R6
0x1C1C0C07, // 0024 EQ R7 R6 R7 0x781A0004, // 0024 JMPF R6 #002A
0x781E0004, // 0025 JMPF R7 #002B 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200709, // 0026 GETMBR R8 R3 K9
0x8824090A, // 0027 GETMBR R9 R4 K10 0x5824000A, // 0027 LDCONST R9 K10
0x5828000B, // 0028 LDCONST R10 K11 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020007, // 002A JMP #0033
0x70020007, // 002B JMP #0034 0x60180003, // 002B GETGBL R6 G3
0x601C0003, // 002C GETGBL R7 G3 0x5C1C0000, // 002C MOVE R7 R0
0x5C200000, // 002D MOVE R8 R0 0x7C180200, // 002D CALL R6 1
0x7C1C0200, // 002E CALL R7 1 0x8C180D0B, // 002E GETMET R6 R6 K11
0x8C1C0F0C, // 002F GETMET R7 R7 K12 0x5C200200, // 002F MOVE R8 R1
0x5C240200, // 0030 MOVE R9 R1 0x5C240400, // 0030 MOVE R9 R2
0x5C280400, // 0031 MOVE R10 R2 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x80000000, // 0033 RET 0
0x80000000, // 0034 RET 0
}) })
) )
); );
@ -294,7 +289,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_read_attribute, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -302,34 +297,31 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(Contact_X25i_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(tasmota_switch_index),
/* K5 */ be_nested_str_weak(Contact_X25i_X20_X25s), /* K5 */ be_nested_str_weak(web_value_onoff),
/* K6 */ be_nested_str_weak(tasmota_switch_index), /* K6 */ be_nested_str_weak(shadow_contact),
/* K7 */ be_nested_str_weak(web_value_onoff),
/* K8 */ be_nested_str_weak(shadow_contact),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[14]) { /* code */ ( &(const binstruction[13]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x88180104, // 0006 GETMBR R6 R0 K4
0x88200106, // 0007 GETMBR R8 R0 K6 0x8C1C0105, // 0007 GETMET R7 R0 K5
0x8C240107, // 0008 GETMET R9 R0 K7 0x88240106, // 0008 GETMBR R9 R0 K6
0x882C0108, // 0009 GETMBR R11 R0 K8 0x7C1C0400, // 0009 CALL R7 2
0x7C240400, // 000A CALL R9 2 0x7C100600, // 000A CALL R4 3
0x7C140800, // 000B CALL R5 4 0x7C080400, // 000B CALL R2 2
0x7C0C0400, // 000C CALL R3 2 0x80000000, // 000C RET 0
0x80000000, // 000D RET 0
}) })
) )
); );

View File

@ -44,7 +44,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_pre_value, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -52,97 +52,95 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_read_attribute, /* name
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U2),
/* K8 */ be_nested_str_weak(U2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0404, // 0004 LDINT R6 1029
0x541E0404, // 0005 LDINT R7 1029 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x542601F3, // 001F LDINT R9 500
0x542A01F3, // 0020 LDINT R10 500 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x5426270F, // 0027 LDINT R9 10000
0x542A270F, // 0028 LDINT R10 10000 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );
@ -185,7 +183,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_value_changed, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_web_values, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -193,39 +191,36 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Humidity_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X26_X23x1F4A7_X3B_X20_X252_X2E0f_X25_X25),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(shadow_value),
/* K5 */ be_nested_str_weak(_X26_X23x1F4A7_X3B_X20_X252_X2E0f_X25_X25),
/* K6 */ be_nested_str_weak(shadow_value),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x88180104, // 0006 GETMBR R6 R0 K4
0x88200106, // 0007 GETMBR R8 R0 K6 0x4C1C0000, // 0007 LDNIL R7
0x4C240000, // 0008 LDNIL R9 0x20180C07, // 0008 NE R6 R6 R7
0x20201009, // 0009 NE R8 R8 R9 0x781A0005, // 0009 JMPF R6 #0010
0x78220005, // 000A JMPF R8 #0011 0x6018000A, // 000A GETGBL R6 G10
0x6020000A, // 000B GETGBL R8 G10 0x881C0104, // 000B GETMBR R7 R0 K4
0x88240106, // 000C GETMBR R9 R0 K6 0x7C180200, // 000C CALL R6 1
0x7C200200, // 000D CALL R8 1 0x541E0063, // 000D LDINT R7 100
0x54260063, // 000E LDINT R9 100 0x0C180C07, // 000E DIV R6 R6 R7
0x0C201009, // 000F DIV R8 R8 R9 0x70020000, // 000F JMP #0011
0x70020000, // 0010 JMP #0012 0x4C180000, // 0010 LDNIL R6
0x4C200000, // 0011 LDNIL R8 0x7C100400, // 0011 CALL R4 2
0x7C140600, // 0012 CALL R5 3 0x7C080400, // 0012 CALL R2 2
0x7C0C0400, // 0013 CALL R3 2 0x80000000, // 0013 RET 0
0x80000000, // 0014 RET 0
}) })
) )
); );

View File

@ -56,7 +56,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_pre_value, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -64,97 +64,95 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_read_attribute, /* na
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U2),
/* K8 */ be_nested_str_weak(U2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A03FF, // 0004 LDINT R6 1024
0x541E03FF, // 0005 LDINT R7 1024 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x58240009, // 001F LDCONST R9 K9
0x5828000A, // 0020 LDCONST R10 K10 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x5426FFFD, // 0027 LDINT R9 65534
0x542AFFFD, // 0028 LDINT R10 65534 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );
@ -197,7 +195,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_value_changed, /* nam
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_web_values, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -205,31 +203,28 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Illuminance_web_values, /* name *
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X26_X23128261_X3B_X20_X25ilux),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(shadow_value),
/* K5 */ be_nested_str_weak(_X26_X23128261_X3B_X20_X25ilux),
/* K6 */ be_nested_str_weak(shadow_value),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[13]) { /* code */ ( &(const binstruction[12]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x60180009, // 0006 GETGBL R6 G9
0x60200009, // 0007 GETGBL R8 G9 0x881C0104, // 0007 GETMBR R7 R0 K4
0x88240106, // 0008 GETMBR R9 R0 K6 0x7C180200, // 0008 CALL R6 1
0x7C200200, // 0009 CALL R8 1 0x7C100400, // 0009 CALL R4 2
0x7C140600, // 000A CALL R5 3 0x7C080400, // 000A CALL R2 2
0x7C0C0400, // 000B CALL R3 2 0x80000000, // 000B RET 0
0x80000000, // 000C RET 0
}) })
) )
); );

View File

@ -147,7 +147,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_parse_update, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -155,44 +155,41 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix, /* n
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 8]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(get_name),
/* K2 */ be_nested_str_weak(get_name), /* K2 */ be_nested_str_weak(Switch),
/* K3 */ be_nested_str_weak(Switch), /* K3 */ be_nested_str_weak(tasmota_switch_index),
/* K4 */ be_nested_str_weak(tasmota_switch_index), /* K4 */ be_nested_str_weak(content_send),
/* K5 */ be_nested_str_weak(content_send), /* K5 */ be_nested_str_weak(PREFIX),
/* K6 */ be_nested_str_weak(format), /* K6 */ be_nested_str_weak(html_escape),
/* K7 */ be_nested_str_weak(PREFIX), /* K7 */ be_nested_str_weak(),
/* K8 */ be_nested_str_weak(html_escape),
/* K9 */ be_nested_str_weak(),
}), }),
be_str_weak(web_values_prefix), be_str_weak(web_values_prefix),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[23]) { /* code */ ( &(const binstruction[22]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x5C0C0400, // 0003 MOVE R3 R2
0x5C100600, // 0004 MOVE R4 R3 0x740E0004, // 0004 JMPT R3 #000A
0x74120004, // 0005 JMPT R4 #000B 0x600C0008, // 0005 GETGBL R3 G8
0x60100008, // 0006 GETGBL R4 G8 0x88100103, // 0006 GETMBR R4 R0 K3
0x88140104, // 0007 GETMBR R5 R0 K4 0x7C0C0200, // 0007 CALL R3 1
0x7C100200, // 0008 CALL R4 1 0x000E0403, // 0008 ADD R3 K2 R3
0x00120604, // 0009 ADD R4 K3 R4 0x5C080600, // 0009 MOVE R2 R3
0x5C0C0800, // 000A MOVE R3 R4 0x8C0C0304, // 000A GETMET R3 R1 K4
0x8C100305, // 000B GETMET R4 R1 K5 0x60140018, // 000B GETGBL R5 G24
0x8C180506, // 000C GETMET R6 R2 K6 0x88180105, // 000C GETMBR R6 R0 K5
0x88200107, // 000D GETMBR R8 R0 K7 0x780A0003, // 000D JMPF R2 #0012
0x780E0003, // 000E JMPF R3 #0013 0x8C1C0306, // 000E GETMET R7 R1 K6
0x8C240308, // 000F GETMET R9 R1 K8 0x5C240400, // 000F MOVE R9 R2
0x5C2C0600, // 0010 MOVE R11 R3 0x7C1C0400, // 0010 CALL R7 2
0x7C240400, // 0011 CALL R9 2 0x70020000, // 0011 JMP #0013
0x70020000, // 0012 JMP #0014 0x581C0007, // 0012 LDCONST R7 K7
0x58240009, // 0013 LDCONST R9 K9 0x7C140400, // 0013 CALL R5 2
0x7C180600, // 0014 CALL R6 3 0x7C0C0400, // 0014 CALL R3 2
0x7C100400, // 0015 CALL R4 2 0x80000000, // 0015 RET 0
0x80000000, // 0016 RET 0
}) })
) )
); );
@ -204,7 +201,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values_prefix, /* n
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -212,95 +209,93 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute, /* name
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_occupancy),
/* K6 */ be_nested_str_weak(shadow_occupancy), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(U1), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(3),
/* K11 */ be_const_int(3), /* K11 */ be_const_int(2),
/* K12 */ be_const_int(2), /* K12 */ be_nested_str_weak(U4),
/* K13 */ be_nested_str_weak(U4), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[69]) { /* code */ ( &(const binstruction[68]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0405, // 0004 LDINT R6 1030
0x541E0405, // 0005 LDINT R7 1030 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0033, // 0006 JMPF R6 #003B
0x781E0033, // 0007 JMPF R7 #003C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020020, // 0018 JMP #003A
0x70020020, // 0019 JMP #003B 0x1C180B09, // 0019 EQ R6 R5 K9
0x1C1C0D0A, // 001A EQ R7 R6 K10 0x781A0005, // 001A JMPF R6 #0021
0x781E0005, // 001B JMPF R7 #0022 0x8C180706, // 001B GETMET R6 R3 K6
0x8C1C0907, // 001C GETMET R7 R4 K7 0x88200707, // 001C GETMBR R8 R3 K7
0x88240908, // 001D GETMBR R9 R4 K8 0x5824000A, // 001D LDCONST R9 K10
0x5828000B, // 001E LDCONST R10 K11 0x7C180600, // 001E CALL R6 3
0x7C1C0600, // 001F CALL R7 3 0x80040C00, // 001F RET 1 R6
0x80040E00, // 0020 RET 1 R7 0x70020018, // 0020 JMP #003A
0x70020018, // 0021 JMP #003B 0x1C180B0B, // 0021 EQ R6 R5 K11
0x1C1C0D0C, // 0022 EQ R7 R6 K12 0x781A0005, // 0022 JMPF R6 #0029
0x781E0005, // 0023 JMPF R7 #002A 0x8C180706, // 0023 GETMET R6 R3 K6
0x8C1C0907, // 0024 GETMET R7 R4 K7 0x88200707, // 0024 GETMBR R8 R3 K7
0x88240908, // 0025 GETMBR R9 R4 K8 0x58240004, // 0025 LDCONST R9 K4
0x58280005, // 0026 LDCONST R10 K5 0x7C180600, // 0026 CALL R6 3
0x7C1C0600, // 0027 CALL R7 3 0x80040C00, // 0027 RET 1 R6
0x80040E00, // 0028 RET 1 R7 0x70020010, // 0028 JMP #003A
0x70020010, // 0029 JMP #003B 0x541AFFFB, // 0029 LDINT R6 65532
0x541EFFFB, // 002A LDINT R7 65532 0x1C180A06, // 002A EQ R6 R5 R6
0x1C1C0C07, // 002B EQ R7 R6 R7 0x781A0005, // 002B JMPF R6 #0032
0x781E0005, // 002C JMPF R7 #0033 0x8C180706, // 002C GETMET R6 R3 K6
0x8C1C0907, // 002D GETMET R7 R4 K7 0x8820070C, // 002D GETMBR R8 R3 K12
0x8824090D, // 002E GETMBR R9 R4 K13 0x58240004, // 002E LDCONST R9 K4
0x58280005, // 002F LDCONST R10 K5 0x7C180600, // 002F CALL R6 3
0x7C1C0600, // 0030 CALL R7 3 0x80040C00, // 0030 RET 1 R6
0x80040E00, // 0031 RET 1 R7 0x70020007, // 0031 JMP #003A
0x70020007, // 0032 JMP #003B 0x541AFFFC, // 0032 LDINT R6 65533
0x541EFFFC, // 0033 LDINT R7 65533 0x1C180A06, // 0033 EQ R6 R5 R6
0x1C1C0C07, // 0034 EQ R7 R6 R7 0x781A0004, // 0034 JMPF R6 #003A
0x781E0004, // 0035 JMPF R7 #003B 0x8C180706, // 0035 GETMET R6 R3 K6
0x8C1C0907, // 0036 GETMET R7 R4 K7 0x8820070C, // 0036 GETMBR R8 R3 K12
0x8824090D, // 0037 GETMBR R9 R4 K13 0x5824000A, // 0037 LDCONST R9 K10
0x5828000B, // 0038 LDCONST R10 K11 0x7C180600, // 0038 CALL R6 3
0x7C1C0600, // 0039 CALL R7 3 0x80040C00, // 0039 RET 1 R6
0x80040E00, // 003A RET 1 R7 0x70020007, // 003A JMP #0043
0x70020007, // 003B JMP #0044 0x60180003, // 003B GETGBL R6 G3
0x601C0003, // 003C GETGBL R7 G3 0x5C1C0000, // 003C MOVE R7 R0
0x5C200000, // 003D MOVE R8 R0 0x7C180200, // 003D CALL R6 1
0x7C1C0200, // 003E CALL R7 1 0x8C180D0D, // 003E GETMET R6 R6 K13
0x8C1C0F0E, // 003F GETMET R7 R7 K14 0x5C200200, // 003F MOVE R8 R1
0x5C240200, // 0040 MOVE R9 R1 0x5C240400, // 0040 MOVE R9 R2
0x5C280400, // 0041 MOVE R10 R2 0x7C180600, // 0041 CALL R6 3
0x7C1C0600, // 0042 CALL R7 3 0x80040C00, // 0042 RET 1 R6
0x80040E00, // 0043 RET 1 R7 0x80000000, // 0043 RET 0
0x80000000, // 0044 RET 0
}) })
) )
); );
@ -312,7 +307,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_read_attribute, /* name
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 10, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -320,34 +315,31 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 9]) { /* constants */ ( &(const bvalue[ 7]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(Occupancy_X25i_X20_X25s),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(tasmota_switch_index),
/* K5 */ be_nested_str_weak(Occupancy_X25i_X20_X25s), /* K5 */ be_nested_str_weak(web_value_onoff),
/* K6 */ be_nested_str_weak(tasmota_switch_index), /* K6 */ be_nested_str_weak(shadow_occupancy),
/* K7 */ be_nested_str_weak(web_value_onoff),
/* K8 */ be_nested_str_weak(shadow_occupancy),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[14]) { /* code */ ( &(const binstruction[13]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x88180104, // 0006 GETMBR R6 R0 K4
0x88200106, // 0007 GETMBR R8 R0 K6 0x8C1C0105, // 0007 GETMET R7 R0 K5
0x8C240107, // 0008 GETMET R9 R0 K7 0x88240106, // 0008 GETMBR R9 R0 K6
0x882C0108, // 0009 GETMBR R11 R0 K8 0x7C1C0400, // 0009 CALL R7 2
0x7C240400, // 000A CALL R9 2 0x7C100600, // 000A CALL R4 3
0x7C140800, // 000B CALL R5 4 0x7C080400, // 000B CALL R2 2
0x7C0C0400, // 000C CALL R3 2 0x80000000, // 000C RET 0
0x80000000, // 000D RET 0
}) })
) )
); );

View File

@ -43,7 +43,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_pre_value, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -51,97 +51,95 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_read_attribute, /* name
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(I2),
/* K8 */ be_nested_str_weak(I2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0402, // 0004 LDINT R6 1027
0x541E0402, // 0005 LDINT R7 1027 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x542601F3, // 001F LDINT R9 500
0x542A01F3, // 0020 LDINT R10 500 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x542605DB, // 0027 LDINT R9 1500
0x542A05DB, // 0028 LDINT R10 1500 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );
@ -184,7 +182,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_value_changed, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_web_values, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -192,31 +190,28 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Pressure_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20hPa),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(shadow_value),
/* K5 */ be_nested_str_weak(_X26_X23x26C5_X3B_X20_X25i_X20hPa),
/* K6 */ be_nested_str_weak(shadow_value),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[13]) { /* code */ ( &(const binstruction[12]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x60180009, // 0006 GETGBL R6 G9
0x60200009, // 0007 GETGBL R8 G9 0x881C0104, // 0007 GETMBR R7 R0 K4
0x88240106, // 0008 GETMBR R9 R0 K6 0x7C180200, // 0008 CALL R6 1
0x7C200200, // 0009 CALL R8 1 0x7C100400, // 0009 CALL R4 2
0x7C140600, // 000A CALL R5 3 0x7C080400, // 000A CALL R2 2
0x7C0C0400, // 000B CALL R3 2 0x80000000, // 000B RET 0
0x80000000, // 000C RET 0
}) })
) )
); );

View File

@ -44,7 +44,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_pre_value, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_read_attribute, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -52,94 +52,92 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[14]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(I2),
/* K8 */ be_nested_str_weak(I2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_nested_str_weak(read_attribute),
/* K13 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[69]) { /* code */ ( &(const binstruction[68]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0401, // 0004 LDINT R6 1026
0x541E0401, // 0005 LDINT R7 1026 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0033, // 0006 JMPF R6 #003B
0x781E0033, // 0007 JMPF R7 #003C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020020, // 0018 JMP #003A
0x70020020, // 0019 JMP #003B 0x1C180B09, // 0019 EQ R6 R5 K9
0x1C1C0D0A, // 001A EQ R7 R6 K10 0x781A0005, // 001A JMPF R6 #0021
0x781E0005, // 001B JMPF R7 #0022 0x8C180706, // 001B GETMET R6 R3 K6
0x8C1C0907, // 001C GETMET R7 R4 K7 0x88200707, // 001C GETMBR R8 R3 K7
0x88240908, // 001D GETMBR R9 R4 K8 0x5425EC77, // 001D LDINT R9 -5000
0x5429EC77, // 001E LDINT R10 -5000 0x7C180600, // 001E CALL R6 3
0x7C1C0600, // 001F CALL R7 3 0x80040C00, // 001F RET 1 R6
0x80040E00, // 0020 RET 1 R7 0x70020018, // 0020 JMP #003A
0x70020018, // 0021 JMP #003B 0x1C180B0A, // 0021 EQ R6 R5 K10
0x1C1C0D0B, // 0022 EQ R7 R6 K11 0x781A0005, // 0022 JMPF R6 #0029
0x781E0005, // 0023 JMPF R7 #002A 0x8C180706, // 0023 GETMET R6 R3 K6
0x8C1C0907, // 0024 GETMET R7 R4 K7 0x88200707, // 0024 GETMBR R8 R3 K7
0x88240908, // 0025 GETMBR R9 R4 K8 0x54263A97, // 0025 LDINT R9 15000
0x542A3A97, // 0026 LDINT R10 15000 0x7C180600, // 0026 CALL R6 3
0x7C1C0600, // 0027 CALL R7 3 0x80040C00, // 0027 RET 1 R6
0x80040E00, // 0028 RET 1 R7 0x70020010, // 0028 JMP #003A
0x70020010, // 0029 JMP #003B 0x541AFFFB, // 0029 LDINT R6 65532
0x541EFFFB, // 002A LDINT R7 65532 0x1C180A06, // 002A EQ R6 R5 R6
0x1C1C0C07, // 002B EQ R7 R6 R7 0x781A0005, // 002B JMPF R6 #0032
0x781E0005, // 002C JMPF R7 #0033 0x8C180706, // 002C GETMET R6 R3 K6
0x8C1C0907, // 002D GETMET R7 R4 K7 0x8820070B, // 002D GETMBR R8 R3 K11
0x8824090C, // 002E GETMBR R9 R4 K12 0x58240004, // 002E LDCONST R9 K4
0x58280005, // 002F LDCONST R10 K5 0x7C180600, // 002F CALL R6 3
0x7C1C0600, // 0030 CALL R7 3 0x80040C00, // 0030 RET 1 R6
0x80040E00, // 0031 RET 1 R7 0x70020007, // 0031 JMP #003A
0x70020007, // 0032 JMP #003B 0x541AFFFC, // 0032 LDINT R6 65533
0x541EFFFC, // 0033 LDINT R7 65533 0x1C180A06, // 0033 EQ R6 R5 R6
0x1C1C0C07, // 0034 EQ R7 R6 R7 0x781A0004, // 0034 JMPF R6 #003A
0x781E0004, // 0035 JMPF R7 #003B 0x8C180706, // 0035 GETMET R6 R3 K6
0x8C1C0907, // 0036 GETMET R7 R4 K7 0x8820070B, // 0036 GETMBR R8 R3 K11
0x8824090C, // 0037 GETMBR R9 R4 K12 0x54260003, // 0037 LDINT R9 4
0x542A0003, // 0038 LDINT R10 4 0x7C180600, // 0038 CALL R6 3
0x7C1C0600, // 0039 CALL R7 3 0x80040C00, // 0039 RET 1 R6
0x80040E00, // 003A RET 1 R7 0x70020007, // 003A JMP #0043
0x70020007, // 003B JMP #0044 0x60180003, // 003B GETGBL R6 G3
0x601C0003, // 003C GETGBL R7 G3 0x5C1C0000, // 003C MOVE R7 R0
0x5C200000, // 003D MOVE R8 R0 0x7C180200, // 003D CALL R6 1
0x7C1C0200, // 003E CALL R7 1 0x8C180D0C, // 003E GETMET R6 R6 K12
0x8C1C0F0D, // 003F GETMET R7 R7 K13 0x5C200200, // 003F MOVE R8 R1
0x5C240200, // 0040 MOVE R9 R1 0x5C240400, // 0040 MOVE R9 R2
0x5C280400, // 0041 MOVE R10 R2 0x7C180600, // 0041 CALL R6 3
0x7C1C0600, // 0042 CALL R7 3 0x80040C00, // 0042 RET 1 R6
0x80040E00, // 0043 RET 1 R7 0x80000000, // 0043 RET 0
0x80000000, // 0044 RET 0
}) })
) )
); );
@ -182,7 +180,7 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_value_changed, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_web_values, /* name */ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_web_values, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 8, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -190,39 +188,36 @@ be_local_closure(Matter_Plugin_Bridge_Sensor_Temp_web_values, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(webserver), /* K0 */ be_nested_str_weak(webserver),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(web_values_prefix),
/* K2 */ be_nested_str_weak(web_values_prefix), /* K2 */ be_nested_str_weak(content_send),
/* K3 */ be_nested_str_weak(content_send), /* K3 */ be_nested_str_weak(_X26_X23x2600_X3B_X26_X23xFE0F_X3B_X20_X25_X2E1f_X20_XC2_XB0C),
/* K4 */ be_nested_str_weak(format), /* K4 */ be_nested_str_weak(shadow_value),
/* K5 */ be_nested_str_weak(_X26_X23x2600_X3B_X26_X23xFE0F_X3B_X20_X25_X2E1f_X20_XC2_XB0C),
/* K6 */ be_nested_str_weak(shadow_value),
}), }),
be_str_weak(web_values), be_str_weak(web_values),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[21]) { /* code */ ( &(const binstruction[20]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x8C0C0102, // 0002 GETMET R3 R0 K2 0x7C080200, // 0002 CALL R2 1
0x7C0C0200, // 0003 CALL R3 1 0x8C080302, // 0003 GETMET R2 R1 K2
0x8C0C0303, // 0004 GETMET R3 R1 K3 0x60100018, // 0004 GETGBL R4 G24
0x8C140504, // 0005 GETMET R5 R2 K4 0x58140003, // 0005 LDCONST R5 K3
0x581C0005, // 0006 LDCONST R7 K5 0x88180104, // 0006 GETMBR R6 R0 K4
0x88200106, // 0007 GETMBR R8 R0 K6 0x4C1C0000, // 0007 LDNIL R7
0x4C240000, // 0008 LDNIL R9 0x20180C07, // 0008 NE R6 R6 R7
0x20201009, // 0009 NE R8 R8 R9 0x781A0005, // 0009 JMPF R6 #0010
0x78220005, // 000A JMPF R8 #0011 0x6018000A, // 000A GETGBL R6 G10
0x6020000A, // 000B GETGBL R8 G10 0x881C0104, // 000B GETMBR R7 R0 K4
0x88240106, // 000C GETMBR R9 R0 K6 0x7C180200, // 000C CALL R6 1
0x7C200200, // 000D CALL R8 1 0x541E0063, // 000D LDINT R7 100
0x54260063, // 000E LDINT R9 100 0x0C180C07, // 000E DIV R6 R6 R7
0x0C201009, // 000F DIV R8 R8 R9 0x70020000, // 000F JMP #0011
0x70020000, // 0010 JMP #0012 0x4C180000, // 0010 LDNIL R6
0x4C200000, // 0011 LDNIL R8 0x7C100400, // 0011 CALL R4 2
0x7C140600, // 0012 CALL R5 3 0x7C080400, // 0012 CALL R2 2
0x7C0C0400, // 0013 CALL R3 2 0x80000000, // 0013 RET 0
0x80000000, // 0014 RET 0
}) })
) )
); );

View File

@ -202,7 +202,7 @@ be_local_closure(Matter_Plugin_Device_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Device_read_attribute, /* name */ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
be_nested_proto( be_nested_proto(
17, /* nstack */ 16, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -210,216 +210,214 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[24]) { /* constants */ ( &(const bvalue[23]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(3),
/* K5 */ be_const_int(3), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U2),
/* K8 */ be_nested_str_weak(U2), /* K8 */ be_const_int(1),
/* K9 */ be_const_int(1), /* K9 */ be_nested_str_weak(U1),
/* K10 */ be_nested_str_weak(U1), /* K10 */ be_nested_str_weak(U4),
/* K11 */ be_nested_str_weak(U4), /* K11 */ be_nested_str_weak(Matter_TLV_array),
/* K12 */ be_nested_str_weak(Matter_TLV_array), /* K12 */ be_nested_str_weak(TYPES),
/* K13 */ be_nested_str_weak(TYPES), /* K13 */ be_nested_str_weak(keys),
/* K14 */ be_nested_str_weak(keys), /* K14 */ be_nested_str_weak(add_struct),
/* K15 */ be_nested_str_weak(add_struct), /* K15 */ be_nested_str_weak(add_TLV),
/* K16 */ be_nested_str_weak(add_TLV), /* K16 */ be_nested_str_weak(stop_iteration),
/* K17 */ be_nested_str_weak(stop_iteration), /* K17 */ be_nested_str_weak(NON_BRIDGE_VENDOR),
/* K18 */ be_nested_str_weak(NON_BRIDGE_VENDOR), /* K18 */ be_nested_str_weak(find),
/* K19 */ be_nested_str_weak(find), /* K19 */ be_nested_str_weak(get_admin_vendor),
/* K20 */ be_nested_str_weak(get_admin_vendor), /* K20 */ be_nested_str_weak(read_attribute),
/* K21 */ be_nested_str_weak(read_attribute), /* K21 */ be_nested_str_weak(UTF1),
/* K22 */ be_nested_str_weak(UTF1), /* K22 */ be_nested_str_weak(get_name),
/* K23 */ be_nested_str_weak(get_name),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[181]) { /* code */ ( &(const binstruction[180]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x1C180904, // 0004 EQ R6 R4 K4
0x1C1C0B05, // 0005 EQ R7 R5 K5 0x781A0021, // 0005 JMPF R6 #0028
0x781E0021, // 0006 JMPF R7 #0029 0x1C180B05, // 0006 EQ R6 R5 K5
0x1C1C0D06, // 0007 EQ R7 R6 K6 0x781A0005, // 0007 JMPF R6 #000E
0x781E0005, // 0008 JMPF R7 #000F 0x8C180706, // 0008 GETMET R6 R3 K6
0x8C1C0907, // 0009 GETMET R7 R4 K7 0x88200707, // 0009 GETMBR R8 R3 K7
0x88240908, // 000A GETMBR R9 R4 K8 0x58240005, // 000A LDCONST R9 K5
0x58280006, // 000B LDCONST R10 K6 0x7C180600, // 000B CALL R6 3
0x7C1C0600, // 000C CALL R7 3 0x80040C00, // 000C RET 1 R6
0x80040E00, // 000D RET 1 R7 0x70020018, // 000D JMP #0027
0x70020018, // 000E JMP #0028 0x1C180B08, // 000E EQ R6 R5 K8
0x1C1C0D09, // 000F EQ R7 R6 K9 0x781A0005, // 000F JMPF R6 #0016
0x781E0005, // 0010 JMPF R7 #0017 0x8C180706, // 0010 GETMET R6 R3 K6
0x8C1C0907, // 0011 GETMET R7 R4 K7 0x88200709, // 0011 GETMBR R8 R3 K9
0x8824090A, // 0012 GETMBR R9 R4 K10 0x58240005, // 0012 LDCONST R9 K5
0x58280006, // 0013 LDCONST R10 K6 0x7C180600, // 0013 CALL R6 3
0x7C1C0600, // 0014 CALL R7 3 0x80040C00, // 0014 RET 1 R6
0x80040E00, // 0015 RET 1 R7 0x70020010, // 0015 JMP #0027
0x70020010, // 0016 JMP #0028 0x541AFFFB, // 0016 LDINT R6 65532
0x541EFFFB, // 0017 LDINT R7 65532 0x1C180A06, // 0017 EQ R6 R5 R6
0x1C1C0C07, // 0018 EQ R7 R6 R7 0x781A0005, // 0018 JMPF R6 #001F
0x781E0005, // 0019 JMPF R7 #0020 0x8C180706, // 0019 GETMET R6 R3 K6
0x8C1C0907, // 001A GETMET R7 R4 K7 0x8820070A, // 001A GETMBR R8 R3 K10
0x8824090B, // 001B GETMBR R9 R4 K11 0x58240005, // 001B LDCONST R9 K5
0x58280006, // 001C LDCONST R10 K6 0x7C180600, // 001C CALL R6 3
0x7C1C0600, // 001D CALL R7 3 0x80040C00, // 001D RET 1 R6
0x80040E00, // 001E RET 1 R7 0x70020007, // 001E JMP #0027
0x70020007, // 001F JMP #0028 0x541AFFFC, // 001F LDINT R6 65533
0x541EFFFC, // 0020 LDINT R7 65533 0x1C180A06, // 0020 EQ R6 R5 R6
0x1C1C0C07, // 0021 EQ R7 R6 R7 0x781A0004, // 0021 JMPF R6 #0027
0x781E0004, // 0022 JMPF R7 #0028 0x8C180706, // 0022 GETMET R6 R3 K6
0x8C1C0907, // 0023 GETMET R7 R4 K7 0x8820070A, // 0023 GETMBR R8 R3 K10
0x8824090B, // 0024 GETMBR R9 R4 K11 0x54260003, // 0024 LDINT R9 4
0x542A0003, // 0025 LDINT R10 4 0x7C180600, // 0025 CALL R6 3
0x7C1C0600, // 0026 CALL R7 3 0x80040C00, // 0026 RET 1 R6
0x80040E00, // 0027 RET 1 R7 0x7002008A, // 0027 JMP #00B3
0x7002008A, // 0028 JMP #00B4 0x541A0003, // 0028 LDINT R6 4
0x541E0003, // 0029 LDINT R7 4 0x1C180806, // 0029 EQ R6 R4 R6
0x1C1C0A07, // 002A EQ R7 R5 R7 0x781A0016, // 002A JMPF R6 #0042
0x781E0016, // 002B JMPF R7 #0043 0x1C180B05, // 002B EQ R6 R5 K5
0x1C1C0D06, // 002C EQ R7 R6 K6 0x781A0002, // 002C JMPF R6 #0030
0x781E0002, // 002D JMPF R7 #0031 0x4C180000, // 002D LDNIL R6
0x4C1C0000, // 002E LDNIL R7 0x80040C00, // 002E RET 1 R6
0x80040E00, // 002F RET 1 R7 0x70020010, // 002F JMP #0041
0x70020010, // 0030 JMP #0042 0x541AFFFB, // 0030 LDINT R6 65532
0x541EFFFB, // 0031 LDINT R7 65532 0x1C180A06, // 0031 EQ R6 R5 R6
0x1C1C0C07, // 0032 EQ R7 R6 R7 0x781A0005, // 0032 JMPF R6 #0039
0x781E0005, // 0033 JMPF R7 #003A 0x8C180706, // 0033 GETMET R6 R3 K6
0x8C1C0907, // 0034 GETMET R7 R4 K7 0x8820070A, // 0034 GETMBR R8 R3 K10
0x8824090B, // 0035 GETMBR R9 R4 K11 0x58240005, // 0035 LDCONST R9 K5
0x58280006, // 0036 LDCONST R10 K6 0x7C180600, // 0036 CALL R6 3
0x7C1C0600, // 0037 CALL R7 3 0x80040C00, // 0037 RET 1 R6
0x80040E00, // 0038 RET 1 R7 0x70020007, // 0038 JMP #0041
0x70020007, // 0039 JMP #0042 0x541AFFFC, // 0039 LDINT R6 65533
0x541EFFFC, // 003A LDINT R7 65533 0x1C180A06, // 003A EQ R6 R5 R6
0x1C1C0C07, // 003B EQ R7 R6 R7 0x781A0004, // 003B JMPF R6 #0041
0x781E0004, // 003C JMPF R7 #0042 0x8C180706, // 003C GETMET R6 R3 K6
0x8C1C0907, // 003D GETMET R7 R4 K7 0x8820070A, // 003D GETMBR R8 R3 K10
0x8824090B, // 003E GETMBR R9 R4 K11 0x54260003, // 003E LDINT R9 4
0x542A0003, // 003F LDINT R10 4 0x7C180600, // 003F CALL R6 3
0x7C1C0600, // 0040 CALL R7 3 0x80040C00, // 0040 RET 1 R6
0x80040E00, // 0041 RET 1 R7 0x70020070, // 0041 JMP #00B3
0x70020070, // 0042 JMP #00B4 0x541A0004, // 0042 LDINT R6 5
0x541E0004, // 0043 LDINT R7 5 0x1C180806, // 0043 EQ R6 R4 R6
0x1C1C0A07, // 0044 EQ R7 R5 R7 0x781A0011, // 0044 JMPF R6 #0057
0x781E0011, // 0045 JMPF R7 #0058 0x541AFFFB, // 0045 LDINT R6 65532
0x541EFFFB, // 0046 LDINT R7 65532 0x1C180A06, // 0046 EQ R6 R5 R6
0x1C1C0C07, // 0047 EQ R7 R6 R7 0x781A0005, // 0047 JMPF R6 #004E
0x781E0005, // 0048 JMPF R7 #004F 0x8C180706, // 0048 GETMET R6 R3 K6
0x8C1C0907, // 0049 GETMET R7 R4 K7 0x8820070A, // 0049 GETMBR R8 R3 K10
0x8824090B, // 004A GETMBR R9 R4 K11 0x58240005, // 004A LDCONST R9 K5
0x58280006, // 004B LDCONST R10 K6 0x7C180600, // 004B CALL R6 3
0x7C1C0600, // 004C CALL R7 3 0x80040C00, // 004C RET 1 R6
0x80040E00, // 004D RET 1 R7 0x70020007, // 004D JMP #0056
0x70020007, // 004E JMP #0057 0x541AFFFC, // 004E LDINT R6 65533
0x541EFFFC, // 004F LDINT R7 65533 0x1C180A06, // 004F EQ R6 R5 R6
0x1C1C0C07, // 0050 EQ R7 R6 R7 0x781A0004, // 0050 JMPF R6 #0056
0x781E0004, // 0051 JMPF R7 #0057 0x8C180706, // 0051 GETMET R6 R3 K6
0x8C1C0907, // 0052 GETMET R7 R4 K7 0x8820070A, // 0052 GETMBR R8 R3 K10
0x8824090B, // 0053 GETMBR R9 R4 K11 0x54260003, // 0053 LDINT R9 4
0x542A0003, // 0054 LDINT R10 4 0x7C180600, // 0054 CALL R6 3
0x7C1C0600, // 0055 CALL R7 3 0x80040C00, // 0055 RET 1 R6
0x80040E00, // 0056 RET 1 R7 0x7002005B, // 0056 JMP #00B3
0x7002005B, // 0057 JMP #00B4 0x541A001C, // 0057 LDINT R6 29
0x541E001C, // 0058 LDINT R7 29 0x1C180806, // 0058 EQ R6 R4 R6
0x1C1C0A07, // 0059 EQ R7 R5 R7 0x781A003A, // 0059 JMPF R6 #0095
0x781E003A, // 005A JMPF R7 #0096 0x1C180B05, // 005A EQ R6 R5 K5
0x1C1C0D06, // 005B EQ R7 R6 K6 0x781A002F, // 005B JMPF R6 #008C
0x781E002F, // 005C JMPF R7 #008D 0x8C18070B, // 005C GETMET R6 R3 K11
0x8C1C090C, // 005D GETMET R7 R4 K12 0x7C180200, // 005D CALL R6 1
0x7C1C0200, // 005E CALL R7 1 0x881C010C, // 005E GETMBR R7 R0 K12
0x8820010D, // 005F GETMBR R8 R0 K13 0x60200010, // 005F GETGBL R8 G16
0x60240010, // 0060 GETGBL R9 G16 0x8C240F0D, // 0060 GETMET R9 R7 K13
0x8C28110E, // 0061 GETMET R10 R8 K14 0x7C240200, // 0061 CALL R9 1
0x7C280200, // 0062 CALL R10 1 0x7C200200, // 0062 CALL R8 1
0x7C240200, // 0063 CALL R9 1 0xA802000E, // 0063 EXBLK 0 #0073
0xA802000E, // 0064 EXBLK 0 #0074 0x5C241000, // 0064 MOVE R9 R8
0x5C281200, // 0065 MOVE R10 R9 0x7C240000, // 0065 CALL R9 0
0x7C280000, // 0066 CALL R10 0 0x8C280D0E, // 0066 GETMET R10 R6 K14
0x8C2C0F0F, // 0067 GETMET R11 R7 K15 0x7C280200, // 0067 CALL R10 1
0x7C2C0200, // 0068 CALL R11 1 0x8C2C150F, // 0068 GETMET R11 R10 K15
0x8C301710, // 0069 GETMET R12 R11 K16 0x58340005, // 0069 LDCONST R13 K5
0x58380006, // 006A LDCONST R14 K6 0x88380707, // 006A GETMBR R14 R3 K7
0x883C0908, // 006B GETMBR R15 R4 K8 0x5C3C1200, // 006B MOVE R15 R9
0x5C401400, // 006C MOVE R16 R10 0x7C2C0800, // 006C CALL R11 4
0x7C300800, // 006D CALL R12 4 0x8C2C150F, // 006D GETMET R11 R10 K15
0x8C301710, // 006E GETMET R12 R11 K16 0x58340008, // 006E LDCONST R13 K8
0x58380009, // 006F LDCONST R14 K9 0x88380707, // 006F GETMBR R14 R3 K7
0x883C0908, // 0070 GETMBR R15 R4 K8 0x943C0E09, // 0070 GETIDX R15 R7 R9
0x9440100A, // 0071 GETIDX R16 R8 R10 0x7C2C0800, // 0071 CALL R11 4
0x7C300800, // 0072 CALL R12 4 0x7001FFF0, // 0072 JMP #0064
0x7001FFF0, // 0073 JMP #0065 0x58200010, // 0073 LDCONST R8 K16
0x58240011, // 0074 LDCONST R9 K17 0xAC200200, // 0074 CATCH R8 1 0
0xAC240200, // 0075 CATCH R9 1 0 0xB0080000, // 0075 RAISE 2 R0 R0
0xB0080000, // 0076 RAISE 2 R0 R0 0x88200111, // 0076 GETMBR R8 R0 K17
0x88240112, // 0077 GETMBR R9 R0 K18 0x8C201112, // 0077 GETMET R8 R8 K18
0x8C241313, // 0078 GETMET R9 R9 K19 0x8C280313, // 0078 GETMET R10 R1 K19
0x8C2C0314, // 0079 GETMET R11 R1 K20 0x7C280200, // 0079 CALL R10 1
0x7C2C0200, // 007A CALL R11 1 0x7C200400, // 007A CALL R8 2
0x7C240400, // 007B CALL R9 2 0x4C240000, // 007B LDNIL R9
0x4C280000, // 007C LDNIL R10 0x1C201009, // 007C EQ R8 R8 R9
0x1C24120A, // 007D EQ R9 R9 R10 0x7822000B, // 007D JMPF R8 #008A
0x7826000B, // 007E JMPF R9 #008B 0x8C200D0E, // 007E GETMET R8 R6 K14
0x8C240F0F, // 007F GETMET R9 R7 K15 0x7C200200, // 007F CALL R8 1
0x7C240200, // 0080 CALL R9 1 0x8C24110F, // 0080 GETMET R9 R8 K15
0x8C281310, // 0081 GETMET R10 R9 K16 0x582C0005, // 0081 LDCONST R11 K5
0x58300006, // 0082 LDCONST R12 K6 0x88300707, // 0082 GETMBR R12 R3 K7
0x88340908, // 0083 GETMBR R13 R4 K8 0x54360012, // 0083 LDINT R13 19
0x543A0012, // 0084 LDINT R14 19 0x7C240800, // 0084 CALL R9 4
0x7C280800, // 0085 CALL R10 4 0x8C24110F, // 0085 GETMET R9 R8 K15
0x8C281310, // 0086 GETMET R10 R9 K16 0x582C0008, // 0086 LDCONST R11 K8
0x58300009, // 0087 LDCONST R12 K9 0x88300707, // 0087 GETMBR R12 R3 K7
0x88340908, // 0088 GETMBR R13 R4 K8 0x58340008, // 0088 LDCONST R13 K8
0x58380009, // 0089 LDCONST R14 K9 0x7C240800, // 0089 CALL R9 4
0x7C280800, // 008A CALL R10 4 0x80040C00, // 008A RET 1 R6
0x80040E00, // 008B RET 1 R7 0x70020007, // 008B JMP #0094
0x70020007, // 008C JMP #0095 0x60180003, // 008C GETGBL R6 G3
0x601C0003, // 008D GETGBL R7 G3 0x5C1C0000, // 008D MOVE R7 R0
0x5C200000, // 008E MOVE R8 R0 0x7C180200, // 008E CALL R6 1
0x7C1C0200, // 008F CALL R7 1 0x8C180D14, // 008F GETMET R6 R6 K20
0x8C1C0F15, // 0090 GETMET R7 R7 K21 0x5C200200, // 0090 MOVE R8 R1
0x5C240200, // 0091 MOVE R9 R1 0x5C240400, // 0091 MOVE R9 R2
0x5C280400, // 0092 MOVE R10 R2 0x7C180600, // 0092 CALL R6 3
0x7C1C0600, // 0093 CALL R7 3 0x80040C00, // 0093 RET 1 R6
0x80040E00, // 0094 RET 1 R7 0x7002001D, // 0094 JMP #00B3
0x7002001D, // 0095 JMP #00B4 0x541A0038, // 0095 LDINT R6 57
0x541E0038, // 0096 LDINT R7 57 0x1C180806, // 0096 EQ R6 R4 R6
0x1C1C0A07, // 0097 EQ R7 R5 R7 0x781A0012, // 0097 JMPF R6 #00AB
0x781E0012, // 0098 JMPF R7 #00AC 0x541A0004, // 0098 LDINT R6 5
0x541E0004, // 0099 LDINT R7 5 0x1C180A06, // 0099 EQ R6 R5 R6
0x1C1C0C07, // 009A EQ R7 R6 R7 0x781A0006, // 009A JMPF R6 #00A2
0x781E0006, // 009B JMPF R7 #00A3 0x8C180706, // 009B GETMET R6 R3 K6
0x8C1C0907, // 009C GETMET R7 R4 K7 0x88200715, // 009C GETMBR R8 R3 K21
0x88240916, // 009D GETMBR R9 R4 K22 0x8C240116, // 009D GETMET R9 R0 K22
0x8C280117, // 009E GETMET R10 R0 K23 0x7C240200, // 009E CALL R9 1
0x7C280200, // 009F CALL R10 1 0x7C180600, // 009F CALL R6 3
0x7C1C0600, // 00A0 CALL R7 3 0x80040C00, // 00A0 RET 1 R6
0x80040E00, // 00A1 RET 1 R7 0x70020007, // 00A1 JMP #00AA
0x70020007, // 00A2 JMP #00AB 0x60180003, // 00A2 GETGBL R6 G3
0x601C0003, // 00A3 GETGBL R7 G3 0x5C1C0000, // 00A3 MOVE R7 R0
0x5C200000, // 00A4 MOVE R8 R0 0x7C180200, // 00A4 CALL R6 1
0x7C1C0200, // 00A5 CALL R7 1 0x8C180D14, // 00A5 GETMET R6 R6 K20
0x8C1C0F15, // 00A6 GETMET R7 R7 K21 0x5C200200, // 00A6 MOVE R8 R1
0x5C240200, // 00A7 MOVE R9 R1 0x5C240400, // 00A7 MOVE R9 R2
0x5C280400, // 00A8 MOVE R10 R2 0x7C180600, // 00A8 CALL R6 3
0x7C1C0600, // 00A9 CALL R7 3 0x80040C00, // 00A9 RET 1 R6
0x80040E00, // 00AA RET 1 R7 0x70020007, // 00AA JMP #00B3
0x70020007, // 00AB JMP #00B4 0x60180003, // 00AB GETGBL R6 G3
0x601C0003, // 00AC GETGBL R7 G3 0x5C1C0000, // 00AC MOVE R7 R0
0x5C200000, // 00AD MOVE R8 R0 0x7C180200, // 00AD CALL R6 1
0x7C1C0200, // 00AE CALL R7 1 0x8C180D14, // 00AE GETMET R6 R6 K20
0x8C1C0F15, // 00AF GETMET R7 R7 K21 0x5C200200, // 00AF MOVE R8 R1
0x5C240200, // 00B0 MOVE R9 R1 0x5C240400, // 00B0 MOVE R9 R2
0x5C280400, // 00B1 MOVE R10 R2 0x7C180600, // 00B1 CALL R6 3
0x7C1C0600, // 00B2 CALL R7 3 0x80040C00, // 00B2 RET 1 R6
0x80040E00, // 00B3 RET 1 R7 0x80000000, // 00B3 RET 0
0x80000000, // 00B4 RET 0
}) })
) )
); );

View File

@ -67,7 +67,7 @@ be_local_closure(Matter_Plugin_Light0_update_shadow, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */ be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -75,68 +75,66 @@ be_local_closure(Matter_Plugin_Light0_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[12]) { /* constants */ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(shadow_onoff), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_nested_str_weak(read_attribute),
/* K11 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[45]) { /* code */ ( &(const binstruction[44]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0005, // 0004 LDINT R6 6
0x541E0005, // 0005 LDINT R7 6 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A001B, // 0006 JMPF R6 #0023
0x781E001B, // 0007 JMPF R7 #0024 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x70020010, // 0010 JMP #0022
0x70020010, // 0011 JMP #0023 0x541AFFFB, // 0011 LDINT R6 65532
0x541EFFFB, // 0012 LDINT R7 65532 0x1C180A06, // 0012 EQ R6 R5 R6
0x1C1C0C07, // 0013 EQ R7 R6 R7 0x781A0005, // 0013 JMPF R6 #001A
0x781E0005, // 0014 JMPF R7 #001B 0x8C180706, // 0014 GETMET R6 R3 K6
0x8C1C0907, // 0015 GETMET R7 R4 K7 0x88200709, // 0015 GETMBR R8 R3 K9
0x8824090A, // 0016 GETMBR R9 R4 K10 0x58240005, // 0016 LDCONST R9 K5
0x58280006, // 0017 LDCONST R10 K6 0x7C180600, // 0017 CALL R6 3
0x7C1C0600, // 0018 CALL R7 3 0x80040C00, // 0018 RET 1 R6
0x80040E00, // 0019 RET 1 R7 0x70020007, // 0019 JMP #0022
0x70020007, // 001A JMP #0023 0x541AFFFC, // 001A LDINT R6 65533
0x541EFFFC, // 001B LDINT R7 65533 0x1C180A06, // 001B EQ R6 R5 R6
0x1C1C0C07, // 001C EQ R7 R6 R7 0x781A0004, // 001C JMPF R6 #0022
0x781E0004, // 001D JMPF R7 #0023 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200709, // 001E GETMBR R8 R3 K9
0x8824090A, // 001F GETMBR R9 R4 K10 0x54260003, // 001F LDINT R9 4
0x542A0003, // 0020 LDINT R10 4 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020007, // 0022 JMP #002B
0x70020007, // 0023 JMP #002C 0x60180003, // 0023 GETGBL R6 G3
0x601C0003, // 0024 GETGBL R7 G3 0x5C1C0000, // 0024 MOVE R7 R0
0x5C200000, // 0025 MOVE R8 R0 0x7C180200, // 0025 CALL R6 1
0x7C1C0200, // 0026 CALL R7 1 0x8C180D0A, // 0026 GETMET R6 R6 K10
0x8C1C0F0B, // 0027 GETMET R7 R7 K11 0x5C200200, // 0027 MOVE R8 R1
0x5C240200, // 0028 MOVE R9 R1 0x5C240400, // 0028 MOVE R9 R2
0x5C280400, // 0029 MOVE R10 R2 0x7C180600, // 0029 CALL R6 3
0x7C1C0600, // 002A CALL R7 3 0x80040C00, // 002A RET 1 R6
0x80040E00, // 002B RET 1 R7 0x80000000, // 002B RET 0
0x80000000, // 002C RET 0
}) })
) )
); );

View File

@ -237,7 +237,7 @@ be_local_closure(Matter_Plugin_Light1_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Light1_read_attribute, /* name */ be_local_closure(Matter_Plugin_Light1_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -245,105 +245,103 @@ be_local_closure(Matter_Plugin_Light1_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(U1), /* K8 */ be_nested_str_weak(shadow_bri),
/* K9 */ be_nested_str_weak(shadow_bri), /* K9 */ be_const_int(2),
/* K10 */ be_const_int(2), /* K10 */ be_const_int(3),
/* K11 */ be_const_int(3), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(1),
/* K13 */ be_const_int(1), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[79]) { /* code */ ( &(const binstruction[78]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0007, // 0004 LDINT R6 8
0x541E0007, // 0005 LDINT R7 8 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A003D, // 0006 JMPF R6 #0045
0x781E003D, // 0007 JMPF R7 #0046 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x70020032, // 0010 JMP #0044
0x70020032, // 0011 JMP #0045 0x1C180B09, // 0011 EQ R6 R5 K9
0x1C1C0D0A, // 0012 EQ R7 R6 K10 0x781A0005, // 0012 JMPF R6 #0019
0x781E0005, // 0013 JMPF R7 #001A 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200707, // 0014 GETMBR R8 R3 K7
0x88240908, // 0015 GETMBR R9 R4 K8 0x58240005, // 0015 LDCONST R9 K5
0x58280006, // 0016 LDCONST R10 K6 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x7002002A, // 0018 JMP #0044
0x7002002A, // 0019 JMP #0045 0x1C180B0A, // 0019 EQ R6 R5 K10
0x1C1C0D0B, // 001A EQ R7 R6 K11 0x781A0005, // 001A JMPF R6 #0021
0x781E0005, // 001B JMPF R7 #0022 0x8C180706, // 001B GETMET R6 R3 K6
0x8C1C0907, // 001C GETMET R7 R4 K7 0x88200707, // 001C GETMBR R8 R3 K7
0x88240908, // 001D GETMBR R9 R4 K8 0x542600FD, // 001D LDINT R9 254
0x542A00FD, // 001E LDINT R10 254 0x7C180600, // 001E CALL R6 3
0x7C1C0600, // 001F CALL R7 3 0x80040C00, // 001F RET 1 R6
0x80040E00, // 0020 RET 1 R7 0x70020022, // 0020 JMP #0044
0x70020022, // 0021 JMP #0045 0x541A000E, // 0021 LDINT R6 15
0x541E000E, // 0022 LDINT R7 15 0x1C180A06, // 0022 EQ R6 R5 R6
0x1C1C0C07, // 0023 EQ R7 R6 R7 0x781A0005, // 0023 JMPF R6 #002A
0x781E0005, // 0024 JMPF R7 #002B 0x8C180706, // 0024 GETMET R6 R3 K6
0x8C1C0907, // 0025 GETMET R7 R4 K7 0x88200707, // 0025 GETMBR R8 R3 K7
0x88240908, // 0026 GETMBR R9 R4 K8 0x58240005, // 0026 LDCONST R9 K5
0x58280006, // 0027 LDCONST R10 K6 0x7C180600, // 0027 CALL R6 3
0x7C1C0600, // 0028 CALL R7 3 0x80040C00, // 0028 RET 1 R6
0x80040E00, // 0029 RET 1 R7 0x70020019, // 0029 JMP #0044
0x70020019, // 002A JMP #0045 0x541A0010, // 002A LDINT R6 17
0x541E0010, // 002B LDINT R7 17 0x1C180A06, // 002B EQ R6 R5 R6
0x1C1C0C07, // 002C EQ R7 R6 R7 0x781A0005, // 002C JMPF R6 #0033
0x781E0005, // 002D JMPF R7 #0034 0x8C180706, // 002D GETMET R6 R3 K6
0x8C1C0907, // 002E GETMET R7 R4 K7 0x88200707, // 002E GETMBR R8 R3 K7
0x88240908, // 002F GETMBR R9 R4 K8 0x88240108, // 002F GETMBR R9 R0 K8
0x88280109, // 0030 GETMBR R10 R0 K9 0x7C180600, // 0030 CALL R6 3
0x7C1C0600, // 0031 CALL R7 3 0x80040C00, // 0031 RET 1 R6
0x80040E00, // 0032 RET 1 R7 0x70020010, // 0032 JMP #0044
0x70020010, // 0033 JMP #0045 0x541AFFFB, // 0033 LDINT R6 65532
0x541EFFFB, // 0034 LDINT R7 65532 0x1C180A06, // 0034 EQ R6 R5 R6
0x1C1C0C07, // 0035 EQ R7 R6 R7 0x781A0005, // 0035 JMPF R6 #003C
0x781E0005, // 0036 JMPF R7 #003D 0x8C180706, // 0036 GETMET R6 R3 K6
0x8C1C0907, // 0037 GETMET R7 R4 K7 0x8820070B, // 0037 GETMBR R8 R3 K11
0x8824090C, // 0038 GETMBR R9 R4 K12 0x5824000C, // 0038 LDCONST R9 K12
0x5828000D, // 0039 LDCONST R10 K13 0x7C180600, // 0039 CALL R6 3
0x7C1C0600, // 003A CALL R7 3 0x80040C00, // 003A RET 1 R6
0x80040E00, // 003B RET 1 R7 0x70020007, // 003B JMP #0044
0x70020007, // 003C JMP #0045 0x541AFFFC, // 003C LDINT R6 65533
0x541EFFFC, // 003D LDINT R7 65533 0x1C180A06, // 003D EQ R6 R5 R6
0x1C1C0C07, // 003E EQ R7 R6 R7 0x781A0004, // 003E JMPF R6 #0044
0x781E0004, // 003F JMPF R7 #0045 0x8C180706, // 003F GETMET R6 R3 K6
0x8C1C0907, // 0040 GETMET R7 R4 K7 0x8820070B, // 0040 GETMBR R8 R3 K11
0x8824090C, // 0041 GETMBR R9 R4 K12 0x54260004, // 0041 LDINT R9 5
0x542A0004, // 0042 LDINT R10 5 0x7C180600, // 0042 CALL R6 3
0x7C1C0600, // 0043 CALL R7 3 0x80040C00, // 0043 RET 1 R6
0x80040E00, // 0044 RET 1 R7 0x70020007, // 0044 JMP #004D
0x70020007, // 0045 JMP #004E 0x60180003, // 0045 GETGBL R6 G3
0x601C0003, // 0046 GETGBL R7 G3 0x5C1C0000, // 0046 MOVE R7 R0
0x5C200000, // 0047 MOVE R8 R0 0x7C180200, // 0047 CALL R6 1
0x7C1C0200, // 0048 CALL R7 1 0x8C180D0D, // 0048 GETMET R6 R6 K13
0x8C1C0F0E, // 0049 GETMET R7 R7 K14 0x5C200200, // 0049 MOVE R8 R1
0x5C240200, // 004A MOVE R9 R1 0x5C240400, // 004A MOVE R9 R2
0x5C280400, // 004B MOVE R10 R2 0x7C180600, // 004B CALL R6 3
0x7C1C0600, // 004C CALL R7 3 0x80040C00, // 004C RET 1 R6
0x80040E00, // 004D RET 1 R7 0x80000000, // 004D RET 0
0x80000000, // 004E RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Light2;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Light2_read_attribute, /* name */ be_local_closure(Matter_Plugin_Light2_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,108 +19,106 @@ be_local_closure(Matter_Plugin_Light2_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_nested_str_weak(create_TLV),
/* K6 */ be_nested_str_weak(create_TLV), /* K6 */ be_nested_str_weak(U1),
/* K7 */ be_nested_str_weak(U1), /* K7 */ be_nested_str_weak(shadow_ct),
/* K8 */ be_nested_str_weak(shadow_ct), /* K8 */ be_const_int(2),
/* K9 */ be_const_int(2), /* K9 */ be_const_int(0),
/* K10 */ be_const_int(0), /* K10 */ be_nested_str_weak(ct_min),
/* K11 */ be_nested_str_weak(ct_min), /* K11 */ be_nested_str_weak(ct_max),
/* K12 */ be_nested_str_weak(ct_max), /* K12 */ be_nested_str_weak(U4),
/* K13 */ be_nested_str_weak(U4), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[82]) { /* code */ ( &(const binstruction[81]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A02FF, // 0004 LDINT R6 768
0x541E02FF, // 0005 LDINT R7 768 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0040, // 0006 JMPF R6 #0048
0x781E0040, // 0007 JMPF R7 #0049 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x541A0006, // 0009 LDINT R6 7
0x541E0006, // 000A LDINT R7 7 0x1C180A06, // 000A EQ R6 R5 R6
0x1C1C0C07, // 000B EQ R7 R6 R7 0x781A0005, // 000B JMPF R6 #0012
0x781E0005, // 000C JMPF R7 #0013 0x8C180705, // 000C GETMET R6 R3 K5
0x8C1C0906, // 000D GETMET R7 R4 K6 0x88200706, // 000D GETMBR R8 R3 K6
0x88240907, // 000E GETMBR R9 R4 K7 0x88240107, // 000E GETMBR R9 R0 K7
0x88280108, // 000F GETMBR R10 R0 K8 0x7C180600, // 000F CALL R6 3
0x7C1C0600, // 0010 CALL R7 3 0x80040C00, // 0010 RET 1 R6
0x80040E00, // 0011 RET 1 R7 0x70020034, // 0011 JMP #0047
0x70020034, // 0012 JMP #0048 0x541A0007, // 0012 LDINT R6 8
0x541E0007, // 0013 LDINT R7 8 0x1C180A06, // 0013 EQ R6 R5 R6
0x1C1C0C07, // 0014 EQ R7 R6 R7 0x781A0005, // 0014 JMPF R6 #001B
0x781E0005, // 0015 JMPF R7 #001C 0x8C180705, // 0015 GETMET R6 R3 K5
0x8C1C0906, // 0016 GETMET R7 R4 K6 0x88200706, // 0016 GETMBR R8 R3 K6
0x88240907, // 0017 GETMBR R9 R4 K7 0x58240008, // 0017 LDCONST R9 K8
0x58280009, // 0018 LDCONST R10 K9 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x7002002B, // 001A JMP #0047
0x7002002B, // 001B JMP #0048 0x541A000E, // 001B LDINT R6 15
0x541E000E, // 001C LDINT R7 15 0x1C180A06, // 001C EQ R6 R5 R6
0x1C1C0C07, // 001D EQ R7 R6 R7 0x781A0005, // 001D JMPF R6 #0024
0x781E0005, // 001E JMPF R7 #0025 0x8C180705, // 001E GETMET R6 R3 K5
0x8C1C0906, // 001F GETMET R7 R4 K6 0x88200706, // 001F GETMBR R8 R3 K6
0x88240907, // 0020 GETMBR R9 R4 K7 0x58240009, // 0020 LDCONST R9 K9
0x5828000A, // 0021 LDCONST R10 K10 0x7C180600, // 0021 CALL R6 3
0x7C1C0600, // 0022 CALL R7 3 0x80040C00, // 0022 RET 1 R6
0x80040E00, // 0023 RET 1 R7 0x70020022, // 0023 JMP #0047
0x70020022, // 0024 JMP #0048 0x541A400A, // 0024 LDINT R6 16395
0x541E400A, // 0025 LDINT R7 16395 0x1C180A06, // 0025 EQ R6 R5 R6
0x1C1C0C07, // 0026 EQ R7 R6 R7 0x781A0005, // 0026 JMPF R6 #002D
0x781E0005, // 0027 JMPF R7 #002E 0x8C180705, // 0027 GETMET R6 R3 K5
0x8C1C0906, // 0028 GETMET R7 R4 K6 0x88200706, // 0028 GETMBR R8 R3 K6
0x88240907, // 0029 GETMBR R9 R4 K7 0x8824010A, // 0029 GETMBR R9 R0 K10
0x8828010B, // 002A GETMBR R10 R0 K11 0x7C180600, // 002A CALL R6 3
0x7C1C0600, // 002B CALL R7 3 0x80040C00, // 002B RET 1 R6
0x80040E00, // 002C RET 1 R7 0x70020019, // 002C JMP #0047
0x70020019, // 002D JMP #0048 0x541A400B, // 002D LDINT R6 16396
0x541E400B, // 002E LDINT R7 16396 0x1C180A06, // 002E EQ R6 R5 R6
0x1C1C0C07, // 002F EQ R7 R6 R7 0x781A0005, // 002F JMPF R6 #0036
0x781E0005, // 0030 JMPF R7 #0037 0x8C180705, // 0030 GETMET R6 R3 K5
0x8C1C0906, // 0031 GETMET R7 R4 K6 0x88200706, // 0031 GETMBR R8 R3 K6
0x88240907, // 0032 GETMBR R9 R4 K7 0x8824010B, // 0032 GETMBR R9 R0 K11
0x8828010C, // 0033 GETMBR R10 R0 K12 0x7C180600, // 0033 CALL R6 3
0x7C1C0600, // 0034 CALL R7 3 0x80040C00, // 0034 RET 1 R6
0x80040E00, // 0035 RET 1 R7 0x70020010, // 0035 JMP #0047
0x70020010, // 0036 JMP #0048 0x541AFFFB, // 0036 LDINT R6 65532
0x541EFFFB, // 0037 LDINT R7 65532 0x1C180A06, // 0037 EQ R6 R5 R6
0x1C1C0C07, // 0038 EQ R7 R6 R7 0x781A0005, // 0038 JMPF R6 #003F
0x781E0005, // 0039 JMPF R7 #0040 0x8C180705, // 0039 GETMET R6 R3 K5
0x8C1C0906, // 003A GETMET R7 R4 K6 0x8820070C, // 003A GETMBR R8 R3 K12
0x8824090D, // 003B GETMBR R9 R4 K13 0x5426000F, // 003B LDINT R9 16
0x542A000F, // 003C LDINT R10 16 0x7C180600, // 003C CALL R6 3
0x7C1C0600, // 003D CALL R7 3 0x80040C00, // 003D RET 1 R6
0x80040E00, // 003E RET 1 R7 0x70020007, // 003E JMP #0047
0x70020007, // 003F JMP #0048 0x541AFFFC, // 003F LDINT R6 65533
0x541EFFFC, // 0040 LDINT R7 65533 0x1C180A06, // 0040 EQ R6 R5 R6
0x1C1C0C07, // 0041 EQ R7 R6 R7 0x781A0004, // 0041 JMPF R6 #0047
0x781E0004, // 0042 JMPF R7 #0048 0x8C180705, // 0042 GETMET R6 R3 K5
0x8C1C0906, // 0043 GETMET R7 R4 K6 0x8820070C, // 0043 GETMBR R8 R3 K12
0x8824090D, // 0044 GETMBR R9 R4 K13 0x54260004, // 0044 LDINT R9 5
0x542A0004, // 0045 LDINT R10 5 0x7C180600, // 0045 CALL R6 3
0x7C1C0600, // 0046 CALL R7 3 0x80040C00, // 0046 RET 1 R6
0x80040E00, // 0047 RET 1 R7 0x70020007, // 0047 JMP #0050
0x70020007, // 0048 JMP #0051 0x60180003, // 0048 GETGBL R6 G3
0x601C0003, // 0049 GETGBL R7 G3 0x5C1C0000, // 0049 MOVE R7 R0
0x5C200000, // 004A MOVE R8 R0 0x7C180200, // 004A CALL R6 1
0x7C1C0200, // 004B CALL R7 1 0x8C180D0D, // 004B GETMET R6 R6 K13
0x8C1C0F0E, // 004C GETMET R7 R7 K14 0x5C200200, // 004C MOVE R8 R1
0x5C240200, // 004D MOVE R9 R1 0x5C240400, // 004D MOVE R9 R2
0x5C280400, // 004E MOVE R10 R2 0x7C180600, // 004E CALL R6 3
0x7C1C0600, // 004F CALL R7 3 0x80040C00, // 004F RET 1 R6
0x80040E00, // 0050 RET 1 R7 0x80000000, // 0050 RET 0
0x80000000, // 0051 RET 0
}) })
) )
); );

View File

@ -112,7 +112,7 @@ be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -120,132 +120,130 @@ be_local_closure(Matter_Plugin_Light3_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[14]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(U1), /* K8 */ be_nested_str_weak(shadow_hue),
/* K9 */ be_nested_str_weak(shadow_hue), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_nested_str_weak(shadow_sat),
/* K11 */ be_nested_str_weak(shadow_sat), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_nested_str_weak(read_attribute),
/* K13 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[107]) { /* code */ ( &(const binstruction[106]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A02FF, // 0004 LDINT R6 768
0x541E02FF, // 0005 LDINT R7 768 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0059, // 0006 JMPF R6 #0061
0x781E0059, // 0007 JMPF R7 #0062 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x7002004E, // 0010 JMP #0060
0x7002004E, // 0011 JMP #0061 0x1C180B09, // 0011 EQ R6 R5 K9
0x1C1C0D0A, // 0012 EQ R7 R6 K10 0x781A0005, // 0012 JMPF R6 #0019
0x781E0005, // 0013 JMPF R7 #001A 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200707, // 0014 GETMBR R8 R3 K7
0x88240908, // 0015 GETMBR R9 R4 K8 0x8824010A, // 0015 GETMBR R9 R0 K10
0x8828010B, // 0016 GETMBR R10 R0 K11 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020046, // 0018 JMP #0060
0x70020046, // 0019 JMP #0061 0x541A0006, // 0019 LDINT R6 7
0x541E0006, // 001A LDINT R7 7 0x1C180A06, // 001A EQ R6 R5 R6
0x1C1C0C07, // 001B EQ R7 R6 R7 0x781A0005, // 001B JMPF R6 #0022
0x781E0005, // 001C JMPF R7 #0023 0x8C180706, // 001C GETMET R6 R3 K6
0x8C1C0907, // 001D GETMET R7 R4 K7 0x88200707, // 001D GETMBR R8 R3 K7
0x88240908, // 001E GETMBR R9 R4 K8 0x58240005, // 001E LDCONST R9 K5
0x58280006, // 001F LDCONST R10 K6 0x7C180600, // 001F CALL R6 3
0x7C1C0600, // 0020 CALL R7 3 0x80040C00, // 0020 RET 1 R6
0x80040E00, // 0021 RET 1 R7 0x7002003D, // 0021 JMP #0060
0x7002003D, // 0022 JMP #0061 0x541A0007, // 0022 LDINT R6 8
0x541E0007, // 0023 LDINT R7 8 0x1C180A06, // 0023 EQ R6 R5 R6
0x1C1C0C07, // 0024 EQ R7 R6 R7 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x58240005, // 0027 LDCONST R9 K5
0x58280006, // 0028 LDCONST R10 K6 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020034, // 002A JMP #0060
0x70020034, // 002B JMP #0061 0x541A000E, // 002B LDINT R6 15
0x541E000E, // 002C LDINT R7 15 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x88200707, // 002F GETMBR R8 R3 K7
0x88240908, // 0030 GETMBR R9 R4 K8 0x58240005, // 0030 LDCONST R9 K5
0x58280006, // 0031 LDCONST R10 K6 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x7002002B, // 0033 JMP #0060
0x7002002B, // 0034 JMP #0061 0x541A4000, // 0034 LDINT R6 16385
0x541E4000, // 0035 LDINT R7 16385 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0005, // 0036 JMPF R6 #003D
0x781E0005, // 0037 JMPF R7 #003E 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x88200707, // 0038 GETMBR R8 R3 K7
0x88240908, // 0039 GETMBR R9 R4 K8 0x58240005, // 0039 LDCONST R9 K5
0x58280006, // 003A LDCONST R10 K6 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020022, // 003C JMP #0060
0x70020022, // 003D JMP #0061 0x541A4009, // 003D LDINT R6 16394
0x541E4009, // 003E LDINT R7 16394 0x1C180A06, // 003E EQ R6 R5 R6
0x1C1C0C07, // 003F EQ R7 R6 R7 0x781A0005, // 003F JMPF R6 #0046
0x781E0005, // 0040 JMPF R7 #0047 0x8C180706, // 0040 GETMET R6 R3 K6
0x8C1C0907, // 0041 GETMET R7 R4 K7 0x88200707, // 0041 GETMBR R8 R3 K7
0x88240908, // 0042 GETMBR R9 R4 K8 0x58240009, // 0042 LDCONST R9 K9
0x5828000A, // 0043 LDCONST R10 K10 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x70020019, // 0045 JMP #0060
0x70020019, // 0046 JMP #0061 0x541A000F, // 0046 LDINT R6 16
0x541E000F, // 0047 LDINT R7 16 0x1C180A06, // 0047 EQ R6 R5 R6
0x1C1C0C07, // 0048 EQ R7 R6 R7 0x781A0005, // 0048 JMPF R6 #004F
0x781E0005, // 0049 JMPF R7 #0050 0x8C180706, // 0049 GETMET R6 R3 K6
0x8C1C0907, // 004A GETMET R7 R4 K7 0x88200707, // 004A GETMBR R8 R3 K7
0x88240908, // 004B GETMBR R9 R4 K8 0x58240005, // 004B LDCONST R9 K5
0x58280006, // 004C LDCONST R10 K6 0x7C180600, // 004C CALL R6 3
0x7C1C0600, // 004D CALL R7 3 0x80040C00, // 004D RET 1 R6
0x80040E00, // 004E RET 1 R7 0x70020010, // 004E JMP #0060
0x70020010, // 004F JMP #0061 0x541AFFFB, // 004F LDINT R6 65532
0x541EFFFB, // 0050 LDINT R7 65532 0x1C180A06, // 0050 EQ R6 R5 R6
0x1C1C0C07, // 0051 EQ R7 R6 R7 0x781A0005, // 0051 JMPF R6 #0058
0x781E0005, // 0052 JMPF R7 #0059 0x8C180706, // 0052 GETMET R6 R3 K6
0x8C1C0907, // 0053 GETMET R7 R4 K7 0x8820070B, // 0053 GETMBR R8 R3 K11
0x8824090C, // 0054 GETMBR R9 R4 K12 0x58240009, // 0054 LDCONST R9 K9
0x5828000A, // 0055 LDCONST R10 K10 0x7C180600, // 0055 CALL R6 3
0x7C1C0600, // 0056 CALL R7 3 0x80040C00, // 0056 RET 1 R6
0x80040E00, // 0057 RET 1 R7 0x70020007, // 0057 JMP #0060
0x70020007, // 0058 JMP #0061 0x541AFFFC, // 0058 LDINT R6 65533
0x541EFFFC, // 0059 LDINT R7 65533 0x1C180A06, // 0059 EQ R6 R5 R6
0x1C1C0C07, // 005A EQ R7 R6 R7 0x781A0004, // 005A JMPF R6 #0060
0x781E0004, // 005B JMPF R7 #0061 0x8C180706, // 005B GETMET R6 R3 K6
0x8C1C0907, // 005C GETMET R7 R4 K7 0x8820070B, // 005C GETMBR R8 R3 K11
0x8824090C, // 005D GETMBR R9 R4 K12 0x54260004, // 005D LDINT R9 5
0x542A0004, // 005E LDINT R10 5 0x7C180600, // 005E CALL R6 3
0x7C1C0600, // 005F CALL R7 3 0x80040C00, // 005F RET 1 R6
0x80040E00, // 0060 RET 1 R7 0x70020007, // 0060 JMP #0069
0x70020007, // 0061 JMP #006A 0x60180003, // 0061 GETGBL R6 G3
0x601C0003, // 0062 GETGBL R7 G3 0x5C1C0000, // 0062 MOVE R7 R0
0x5C200000, // 0063 MOVE R8 R0 0x7C180200, // 0063 CALL R6 1
0x7C1C0200, // 0064 CALL R7 1 0x8C180D0C, // 0064 GETMET R6 R6 K12
0x8C1C0F0D, // 0065 GETMET R7 R7 K13 0x5C200200, // 0065 MOVE R8 R1
0x5C240200, // 0066 MOVE R9 R1 0x5C240400, // 0066 MOVE R9 R2
0x5C280400, // 0067 MOVE R10 R2 0x7C180600, // 0067 CALL R6 3
0x7C1C0600, // 0068 CALL R7 3 0x80040C00, // 0068 RET 1 R6
0x80040E00, // 0069 RET 1 R7 0x80000000, // 0069 RET 0
0x80000000, // 006A RET 0
}) })
) )
); );

View File

@ -190,7 +190,7 @@ be_local_closure(Matter_Plugin_OnOff_parse_configuration, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -198,68 +198,66 @@ be_local_closure(Matter_Plugin_OnOff_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[12]) { /* constants */ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(shadow_onoff), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_nested_str_weak(read_attribute),
/* K11 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[45]) { /* code */ ( &(const binstruction[44]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0005, // 0004 LDINT R6 6
0x541E0005, // 0005 LDINT R7 6 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A001B, // 0006 JMPF R6 #0023
0x781E001B, // 0007 JMPF R7 #0024 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x70020010, // 0010 JMP #0022
0x70020010, // 0011 JMP #0023 0x541AFFFB, // 0011 LDINT R6 65532
0x541EFFFB, // 0012 LDINT R7 65532 0x1C180A06, // 0012 EQ R6 R5 R6
0x1C1C0C07, // 0013 EQ R7 R6 R7 0x781A0005, // 0013 JMPF R6 #001A
0x781E0005, // 0014 JMPF R7 #001B 0x8C180706, // 0014 GETMET R6 R3 K6
0x8C1C0907, // 0015 GETMET R7 R4 K7 0x88200709, // 0015 GETMBR R8 R3 K9
0x8824090A, // 0016 GETMBR R9 R4 K10 0x58240005, // 0016 LDCONST R9 K5
0x58280006, // 0017 LDCONST R10 K6 0x7C180600, // 0017 CALL R6 3
0x7C1C0600, // 0018 CALL R7 3 0x80040C00, // 0018 RET 1 R6
0x80040E00, // 0019 RET 1 R7 0x70020007, // 0019 JMP #0022
0x70020007, // 001A JMP #0023 0x541AFFFC, // 001A LDINT R6 65533
0x541EFFFC, // 001B LDINT R7 65533 0x1C180A06, // 001B EQ R6 R5 R6
0x1C1C0C07, // 001C EQ R7 R6 R7 0x781A0004, // 001C JMPF R6 #0022
0x781E0004, // 001D JMPF R7 #0023 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200709, // 001E GETMBR R8 R3 K9
0x8824090A, // 001F GETMBR R9 R4 K10 0x54260003, // 001F LDINT R9 4
0x542A0003, // 0020 LDINT R10 4 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020007, // 0022 JMP #002B
0x70020007, // 0023 JMP #002C 0x60180003, // 0023 GETGBL R6 G3
0x601C0003, // 0024 GETGBL R7 G3 0x5C1C0000, // 0024 MOVE R7 R0
0x5C200000, // 0025 MOVE R8 R0 0x7C180200, // 0025 CALL R6 1
0x7C1C0200, // 0026 CALL R7 1 0x8C180D0A, // 0026 GETMET R6 R6 K10
0x8C1C0F0B, // 0027 GETMET R7 R7 K11 0x5C200200, // 0027 MOVE R8 R1
0x5C240200, // 0028 MOVE R9 R1 0x5C240400, // 0028 MOVE R9 R2
0x5C280400, // 0029 MOVE R10 R2 0x7C180600, // 0029 CALL R6 3
0x7C1C0600, // 002A CALL R7 3 0x80040C00, // 002A RET 1 R6
0x80040E00, // 002B RET 1 R7 0x80000000, // 002B RET 0
0x80000000, // 002C RET 0
}) })
) )
); );

View File

@ -79,7 +79,7 @@ be_local_closure(Matter_Plugin_Sensor_Contact_parse_configuration, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Contact_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Contact_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -87,77 +87,75 @@ be_local_closure(Matter_Plugin_Sensor_Contact_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[13]) { /* constants */ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_contact),
/* K6 */ be_nested_str_weak(shadow_contact), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_const_int(1),
/* K11 */ be_const_int(1), /* K11 */ be_nested_str_weak(read_attribute),
/* K12 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[53]) { /* code */ ( &(const binstruction[52]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0044, // 0004 LDINT R6 69
0x541E0044, // 0005 LDINT R7 69 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0023, // 0006 JMPF R6 #002B
0x781E0023, // 0007 JMPF R7 #002C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020010, // 0018 JMP #002A
0x70020010, // 0019 JMP #002B 0x541AFFFB, // 0019 LDINT R6 65532
0x541EFFFB, // 001A LDINT R7 65532 0x1C180A06, // 001A EQ R6 R5 R6
0x1C1C0C07, // 001B EQ R7 R6 R7 0x781A0005, // 001B JMPF R6 #0022
0x781E0005, // 001C JMPF R7 #0023 0x8C180706, // 001C GETMET R6 R3 K6
0x8C1C0907, // 001D GETMET R7 R4 K7 0x88200709, // 001D GETMBR R8 R3 K9
0x8824090A, // 001E GETMBR R9 R4 K10 0x58240004, // 001E LDCONST R9 K4
0x58280005, // 001F LDCONST R10 K5 0x7C180600, // 001F CALL R6 3
0x7C1C0600, // 0020 CALL R7 3 0x80040C00, // 0020 RET 1 R6
0x80040E00, // 0021 RET 1 R7 0x70020007, // 0021 JMP #002A
0x70020007, // 0022 JMP #002B 0x541AFFFC, // 0022 LDINT R6 65533
0x541EFFFC, // 0023 LDINT R7 65533 0x1C180A06, // 0023 EQ R6 R5 R6
0x1C1C0C07, // 0024 EQ R7 R6 R7 0x781A0004, // 0024 JMPF R6 #002A
0x781E0004, // 0025 JMPF R7 #002B 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200709, // 0026 GETMBR R8 R3 K9
0x8824090A, // 0027 GETMBR R9 R4 K10 0x5824000A, // 0027 LDCONST R9 K10
0x5828000B, // 0028 LDCONST R10 K11 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020007, // 002A JMP #0033
0x70020007, // 002B JMP #0034 0x60180003, // 002B GETGBL R6 G3
0x601C0003, // 002C GETGBL R7 G3 0x5C1C0000, // 002C MOVE R7 R0
0x5C200000, // 002D MOVE R8 R0 0x7C180200, // 002D CALL R6 1
0x7C1C0200, // 002E CALL R7 1 0x8C180D0B, // 002E GETMET R6 R6 K11
0x8C1C0F0C, // 002F GETMET R7 R7 K12 0x5C200200, // 002F MOVE R8 R1
0x5C240200, // 0030 MOVE R9 R1 0x5C240400, // 0030 MOVE R9 R2
0x5C280400, // 0031 MOVE R10 R2 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x80000000, // 0033 RET 0
0x80000000, // 0034 RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Sensor_Humidity;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Humidity_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Humidity_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,97 +19,95 @@ be_local_closure(Matter_Plugin_Sensor_Humidity_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U2),
/* K8 */ be_nested_str_weak(U2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0404, // 0004 LDINT R6 1029
0x541E0404, // 0005 LDINT R7 1029 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x542601F3, // 001F LDINT R9 500
0x542A01F3, // 0020 LDINT R10 500 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x5426270F, // 0027 LDINT R9 10000
0x542A270F, // 0028 LDINT R10 10000 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Sensor_Illuminance;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Illuminance_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Illuminance_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,97 +19,95 @@ be_local_closure(Matter_Plugin_Sensor_Illuminance_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U2),
/* K8 */ be_nested_str_weak(U2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A03FF, // 0004 LDINT R6 1024
0x541E03FF, // 0005 LDINT R7 1024 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x58240009, // 001F LDCONST R9 K9
0x5828000A, // 0020 LDCONST R10 K10 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x5426FFFD, // 0027 LDINT R9 65534
0x542AFFFD, // 0028 LDINT R10 65534 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );

View File

@ -79,7 +79,7 @@ be_local_closure(Matter_Plugin_Sensor_Occupancy_parse_configuration, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Occupancy_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Occupancy_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -87,95 +87,93 @@ be_local_closure(Matter_Plugin_Sensor_Occupancy_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_occupancy),
/* K6 */ be_nested_str_weak(shadow_occupancy), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(U1),
/* K8 */ be_nested_str_weak(U1), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(3),
/* K11 */ be_const_int(3), /* K11 */ be_const_int(2),
/* K12 */ be_const_int(2), /* K12 */ be_nested_str_weak(U4),
/* K13 */ be_nested_str_weak(U4), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[69]) { /* code */ ( &(const binstruction[68]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0405, // 0004 LDINT R6 1030
0x541E0405, // 0005 LDINT R7 1030 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0033, // 0006 JMPF R6 #003B
0x781E0033, // 0007 JMPF R7 #003C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020020, // 0018 JMP #003A
0x70020020, // 0019 JMP #003B 0x1C180B09, // 0019 EQ R6 R5 K9
0x1C1C0D0A, // 001A EQ R7 R6 K10 0x781A0005, // 001A JMPF R6 #0021
0x781E0005, // 001B JMPF R7 #0022 0x8C180706, // 001B GETMET R6 R3 K6
0x8C1C0907, // 001C GETMET R7 R4 K7 0x88200707, // 001C GETMBR R8 R3 K7
0x88240908, // 001D GETMBR R9 R4 K8 0x5824000A, // 001D LDCONST R9 K10
0x5828000B, // 001E LDCONST R10 K11 0x7C180600, // 001E CALL R6 3
0x7C1C0600, // 001F CALL R7 3 0x80040C00, // 001F RET 1 R6
0x80040E00, // 0020 RET 1 R7 0x70020018, // 0020 JMP #003A
0x70020018, // 0021 JMP #003B 0x1C180B0B, // 0021 EQ R6 R5 K11
0x1C1C0D0C, // 0022 EQ R7 R6 K12 0x781A0005, // 0022 JMPF R6 #0029
0x781E0005, // 0023 JMPF R7 #002A 0x8C180706, // 0023 GETMET R6 R3 K6
0x8C1C0907, // 0024 GETMET R7 R4 K7 0x88200707, // 0024 GETMBR R8 R3 K7
0x88240908, // 0025 GETMBR R9 R4 K8 0x58240004, // 0025 LDCONST R9 K4
0x58280005, // 0026 LDCONST R10 K5 0x7C180600, // 0026 CALL R6 3
0x7C1C0600, // 0027 CALL R7 3 0x80040C00, // 0027 RET 1 R6
0x80040E00, // 0028 RET 1 R7 0x70020010, // 0028 JMP #003A
0x70020010, // 0029 JMP #003B 0x541AFFFB, // 0029 LDINT R6 65532
0x541EFFFB, // 002A LDINT R7 65532 0x1C180A06, // 002A EQ R6 R5 R6
0x1C1C0C07, // 002B EQ R7 R6 R7 0x781A0005, // 002B JMPF R6 #0032
0x781E0005, // 002C JMPF R7 #0033 0x8C180706, // 002C GETMET R6 R3 K6
0x8C1C0907, // 002D GETMET R7 R4 K7 0x8820070C, // 002D GETMBR R8 R3 K12
0x8824090D, // 002E GETMBR R9 R4 K13 0x58240004, // 002E LDCONST R9 K4
0x58280005, // 002F LDCONST R10 K5 0x7C180600, // 002F CALL R6 3
0x7C1C0600, // 0030 CALL R7 3 0x80040C00, // 0030 RET 1 R6
0x80040E00, // 0031 RET 1 R7 0x70020007, // 0031 JMP #003A
0x70020007, // 0032 JMP #003B 0x541AFFFC, // 0032 LDINT R6 65533
0x541EFFFC, // 0033 LDINT R7 65533 0x1C180A06, // 0033 EQ R6 R5 R6
0x1C1C0C07, // 0034 EQ R7 R6 R7 0x781A0004, // 0034 JMPF R6 #003A
0x781E0004, // 0035 JMPF R7 #003B 0x8C180706, // 0035 GETMET R6 R3 K6
0x8C1C0907, // 0036 GETMET R7 R4 K7 0x8820070C, // 0036 GETMBR R8 R3 K12
0x8824090D, // 0037 GETMBR R9 R4 K13 0x5824000A, // 0037 LDCONST R9 K10
0x5828000B, // 0038 LDCONST R10 K11 0x7C180600, // 0038 CALL R6 3
0x7C1C0600, // 0039 CALL R7 3 0x80040C00, // 0039 RET 1 R6
0x80040E00, // 003A RET 1 R7 0x70020007, // 003A JMP #0043
0x70020007, // 003B JMP #0044 0x60180003, // 003B GETGBL R6 G3
0x601C0003, // 003C GETGBL R7 G3 0x5C1C0000, // 003C MOVE R7 R0
0x5C200000, // 003D MOVE R8 R0 0x7C180200, // 003D CALL R6 1
0x7C1C0200, // 003E CALL R7 1 0x8C180D0D, // 003E GETMET R6 R6 K13
0x8C1C0F0E, // 003F GETMET R7 R7 K14 0x5C200200, // 003F MOVE R8 R1
0x5C240200, // 0040 MOVE R9 R1 0x5C240400, // 0040 MOVE R9 R2
0x5C280400, // 0041 MOVE R10 R2 0x7C180600, // 0041 CALL R6 3
0x7C1C0600, // 0042 CALL R7 3 0x80040C00, // 0042 RET 1 R6
0x80040E00, // 0043 RET 1 R7 0x80000000, // 0043 RET 0
0x80000000, // 0044 RET 0
}) })
) )
); );

View File

@ -79,7 +79,7 @@ be_local_closure(Matter_Plugin_Sensor_OnOff_parse_configuration, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_OnOff_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_OnOff_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -87,68 +87,66 @@ be_local_closure(Matter_Plugin_Sensor_OnOff_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[12]) { /* constants */ ( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_const_int(0),
/* K6 */ be_const_int(0), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(BOOL),
/* K8 */ be_nested_str_weak(BOOL), /* K8 */ be_nested_str_weak(shadow_onoff),
/* K9 */ be_nested_str_weak(shadow_onoff), /* K9 */ be_nested_str_weak(U4),
/* K10 */ be_nested_str_weak(U4), /* K10 */ be_nested_str_weak(read_attribute),
/* K11 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[45]) { /* code */ ( &(const binstruction[44]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0005, // 0004 LDINT R6 6
0x541E0005, // 0005 LDINT R7 6 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A001B, // 0006 JMPF R6 #0023
0x781E001B, // 0007 JMPF R7 #0024 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x1C180B05, // 0009 EQ R6 R5 K5
0x1C1C0D06, // 000A EQ R7 R6 K6 0x781A0005, // 000A JMPF R6 #0011
0x781E0005, // 000B JMPF R7 #0012 0x8C180706, // 000B GETMET R6 R3 K6
0x8C1C0907, // 000C GETMET R7 R4 K7 0x88200707, // 000C GETMBR R8 R3 K7
0x88240908, // 000D GETMBR R9 R4 K8 0x88240108, // 000D GETMBR R9 R0 K8
0x88280109, // 000E GETMBR R10 R0 K9 0x7C180600, // 000E CALL R6 3
0x7C1C0600, // 000F CALL R7 3 0x80040C00, // 000F RET 1 R6
0x80040E00, // 0010 RET 1 R7 0x70020010, // 0010 JMP #0022
0x70020010, // 0011 JMP #0023 0x541AFFFB, // 0011 LDINT R6 65532
0x541EFFFB, // 0012 LDINT R7 65532 0x1C180A06, // 0012 EQ R6 R5 R6
0x1C1C0C07, // 0013 EQ R7 R6 R7 0x781A0005, // 0013 JMPF R6 #001A
0x781E0005, // 0014 JMPF R7 #001B 0x8C180706, // 0014 GETMET R6 R3 K6
0x8C1C0907, // 0015 GETMET R7 R4 K7 0x88200709, // 0015 GETMBR R8 R3 K9
0x8824090A, // 0016 GETMBR R9 R4 K10 0x58240005, // 0016 LDCONST R9 K5
0x58280006, // 0017 LDCONST R10 K6 0x7C180600, // 0017 CALL R6 3
0x7C1C0600, // 0018 CALL R7 3 0x80040C00, // 0018 RET 1 R6
0x80040E00, // 0019 RET 1 R7 0x70020007, // 0019 JMP #0022
0x70020007, // 001A JMP #0023 0x541AFFFC, // 001A LDINT R6 65533
0x541EFFFC, // 001B LDINT R7 65533 0x1C180A06, // 001B EQ R6 R5 R6
0x1C1C0C07, // 001C EQ R7 R6 R7 0x781A0004, // 001C JMPF R6 #0022
0x781E0004, // 001D JMPF R7 #0023 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200709, // 001E GETMBR R8 R3 K9
0x8824090A, // 001F GETMBR R9 R4 K10 0x54260003, // 001F LDINT R9 4
0x542A0003, // 0020 LDINT R10 4 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020007, // 0022 JMP #002B
0x70020007, // 0023 JMP #002C 0x60180003, // 0023 GETGBL R6 G3
0x601C0003, // 0024 GETGBL R7 G3 0x5C1C0000, // 0024 MOVE R7 R0
0x5C200000, // 0025 MOVE R8 R0 0x7C180200, // 0025 CALL R6 1
0x7C1C0200, // 0026 CALL R7 1 0x8C180D0A, // 0026 GETMET R6 R6 K10
0x8C1C0F0B, // 0027 GETMET R7 R7 K11 0x5C200200, // 0027 MOVE R8 R1
0x5C240200, // 0028 MOVE R9 R1 0x5C240400, // 0028 MOVE R9 R2
0x5C280400, // 0029 MOVE R10 R2 0x7C180600, // 0029 CALL R6 3
0x7C1C0600, // 002A CALL R7 3 0x80040C00, // 002A RET 1 R6
0x80040E00, // 002B RET 1 R7 0x80000000, // 002B RET 0
0x80000000, // 002C RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Sensor_Pressure;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Pressure_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Pressure_read_attribute, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,97 +19,95 @@ be_local_closure(Matter_Plugin_Sensor_Pressure_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[15]) { /* constants */ ( &(const bvalue[14]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(I2),
/* K8 */ be_nested_str_weak(I2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_const_int(3),
/* K13 */ be_const_int(3), /* K13 */ be_nested_str_weak(read_attribute),
/* K14 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[71]) { /* code */ ( &(const binstruction[70]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0402, // 0004 LDINT R6 1027
0x541E0402, // 0005 LDINT R7 1027 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0035, // 0006 JMPF R6 #003D
0x781E0035, // 0007 JMPF R7 #003E 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A0011, // 0008 JMPF R6 #001B
0x781E0011, // 0009 JMPF R7 #001C 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0007, // 000C JMPF R6 #0015
0x781E0007, // 000D JMPF R7 #0016 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x60240009, // 000F GETGBL R9 G9
0x60280009, // 0010 GETGBL R10 G9 0x88280105, // 0010 GETMBR R10 R0 K5
0x882C0106, // 0011 GETMBR R11 R0 K6 0x7C240200, // 0011 CALL R9 1
0x7C280200, // 0012 CALL R10 1 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020004, // 0014 JMP #001A
0x70020004, // 0015 JMP #001B 0x8C180706, // 0015 GETMET R6 R3 K6
0x8C1C0907, // 0016 GETMET R7 R4 K7 0x88200708, // 0016 GETMBR R8 R3 K8
0x88240909, // 0017 GETMBR R9 R4 K9 0x4C240000, // 0017 LDNIL R9
0x4C280000, // 0018 LDNIL R10 0x7C180600, // 0018 CALL R6 3
0x7C1C0600, // 0019 CALL R7 3 0x80040C00, // 0019 RET 1 R6
0x80040E00, // 001A RET 1 R7 0x70020020, // 001A JMP #003C
0x70020020, // 001B JMP #003D 0x1C180B09, // 001B EQ R6 R5 K9
0x1C1C0D0A, // 001C EQ R7 R6 K10 0x781A0005, // 001C JMPF R6 #0023
0x781E0005, // 001D JMPF R7 #0024 0x8C180706, // 001D GETMET R6 R3 K6
0x8C1C0907, // 001E GETMET R7 R4 K7 0x88200707, // 001E GETMBR R8 R3 K7
0x88240908, // 001F GETMBR R9 R4 K8 0x542601F3, // 001F LDINT R9 500
0x542A01F3, // 0020 LDINT R10 500 0x7C180600, // 0020 CALL R6 3
0x7C1C0600, // 0021 CALL R7 3 0x80040C00, // 0021 RET 1 R6
0x80040E00, // 0022 RET 1 R7 0x70020018, // 0022 JMP #003C
0x70020018, // 0023 JMP #003D 0x1C180B0A, // 0023 EQ R6 R5 K10
0x1C1C0D0B, // 0024 EQ R7 R6 K11 0x781A0005, // 0024 JMPF R6 #002B
0x781E0005, // 0025 JMPF R7 #002C 0x8C180706, // 0025 GETMET R6 R3 K6
0x8C1C0907, // 0026 GETMET R7 R4 K7 0x88200707, // 0026 GETMBR R8 R3 K7
0x88240908, // 0027 GETMBR R9 R4 K8 0x542605DB, // 0027 LDINT R9 1500
0x542A05DB, // 0028 LDINT R10 1500 0x7C180600, // 0028 CALL R6 3
0x7C1C0600, // 0029 CALL R7 3 0x80040C00, // 0029 RET 1 R6
0x80040E00, // 002A RET 1 R7 0x70020010, // 002A JMP #003C
0x70020010, // 002B JMP #003D 0x541AFFFB, // 002B LDINT R6 65532
0x541EFFFB, // 002C LDINT R7 65532 0x1C180A06, // 002C EQ R6 R5 R6
0x1C1C0C07, // 002D EQ R7 R6 R7 0x781A0005, // 002D JMPF R6 #0034
0x781E0005, // 002E JMPF R7 #0035 0x8C180706, // 002E GETMET R6 R3 K6
0x8C1C0907, // 002F GETMET R7 R4 K7 0x8820070B, // 002F GETMBR R8 R3 K11
0x8824090C, // 0030 GETMBR R9 R4 K12 0x58240004, // 0030 LDCONST R9 K4
0x58280005, // 0031 LDCONST R10 K5 0x7C180600, // 0031 CALL R6 3
0x7C1C0600, // 0032 CALL R7 3 0x80040C00, // 0032 RET 1 R6
0x80040E00, // 0033 RET 1 R7 0x70020007, // 0033 JMP #003C
0x70020007, // 0034 JMP #003D 0x541AFFFC, // 0034 LDINT R6 65533
0x541EFFFC, // 0035 LDINT R7 65533 0x1C180A06, // 0035 EQ R6 R5 R6
0x1C1C0C07, // 0036 EQ R7 R6 R7 0x781A0004, // 0036 JMPF R6 #003C
0x781E0004, // 0037 JMPF R7 #003D 0x8C180706, // 0037 GETMET R6 R3 K6
0x8C1C0907, // 0038 GETMET R7 R4 K7 0x8820070B, // 0038 GETMBR R8 R3 K11
0x8824090C, // 0039 GETMBR R9 R4 K12 0x5824000C, // 0039 LDCONST R9 K12
0x5828000D, // 003A LDCONST R10 K13 0x7C180600, // 003A CALL R6 3
0x7C1C0600, // 003B CALL R7 3 0x80040C00, // 003B RET 1 R6
0x80040E00, // 003C RET 1 R7 0x70020007, // 003C JMP #0045
0x70020007, // 003D JMP #0046 0x60180003, // 003D GETGBL R6 G3
0x601C0003, // 003E GETGBL R7 G3 0x5C1C0000, // 003E MOVE R7 R0
0x5C200000, // 003F MOVE R8 R0 0x7C180200, // 003F CALL R6 1
0x7C1C0200, // 0040 CALL R7 1 0x8C180D0D, // 0040 GETMET R6 R6 K13
0x8C1C0F0E, // 0041 GETMET R7 R7 K14 0x5C200200, // 0041 MOVE R8 R1
0x5C240200, // 0042 MOVE R9 R1 0x5C240400, // 0042 MOVE R9 R2
0x5C280400, // 0043 MOVE R10 R2 0x7C180600, // 0043 CALL R6 3
0x7C1C0600, // 0044 CALL R7 3 0x80040C00, // 0044 RET 1 R6
0x80040E00, // 0045 RET 1 R7 0x80000000, // 0045 RET 0
0x80000000, // 0046 RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Sensor_Temp;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Sensor_Temp_read_attribute, /* name */ be_local_closure(Matter_Plugin_Sensor_Temp_read_attribute, /* name */
be_nested_proto( be_nested_proto(
11, /* nstack */ 10, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,94 +19,92 @@ be_local_closure(Matter_Plugin_Sensor_Temp_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[14]) { /* constants */ ( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_const_int(0),
/* K5 */ be_const_int(0), /* K5 */ be_nested_str_weak(shadow_value),
/* K6 */ be_nested_str_weak(shadow_value), /* K6 */ be_nested_str_weak(create_TLV),
/* K7 */ be_nested_str_weak(create_TLV), /* K7 */ be_nested_str_weak(I2),
/* K8 */ be_nested_str_weak(I2), /* K8 */ be_nested_str_weak(NULL),
/* K9 */ be_nested_str_weak(NULL), /* K9 */ be_const_int(1),
/* K10 */ be_const_int(1), /* K10 */ be_const_int(2),
/* K11 */ be_const_int(2), /* K11 */ be_nested_str_weak(U4),
/* K12 */ be_nested_str_weak(U4), /* K12 */ be_nested_str_weak(read_attribute),
/* K13 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[69]) { /* code */ ( &(const binstruction[68]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0401, // 0004 LDINT R6 1026
0x541E0401, // 0005 LDINT R7 1026 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0033, // 0006 JMPF R6 #003B
0x781E0033, // 0007 JMPF R7 #003C 0x1C180B04, // 0007 EQ R6 R5 K4
0x1C1C0D05, // 0008 EQ R7 R6 K5 0x781A000F, // 0008 JMPF R6 #0019
0x781E000F, // 0009 JMPF R7 #001A 0x88180105, // 0009 GETMBR R6 R0 K5
0x881C0106, // 000A GETMBR R7 R0 K6 0x4C1C0000, // 000A LDNIL R7
0x4C200000, // 000B LDNIL R8 0x20180C07, // 000B NE R6 R6 R7
0x201C0E08, // 000C NE R7 R7 R8 0x781A0005, // 000C JMPF R6 #0013
0x781E0005, // 000D JMPF R7 #0014 0x8C180706, // 000D GETMET R6 R3 K6
0x8C1C0907, // 000E GETMET R7 R4 K7 0x88200707, // 000E GETMBR R8 R3 K7
0x88240908, // 000F GETMBR R9 R4 K8 0x88240105, // 000F GETMBR R9 R0 K5
0x88280106, // 0010 GETMBR R10 R0 K6 0x7C180600, // 0010 CALL R6 3
0x7C1C0600, // 0011 CALL R7 3 0x80040C00, // 0011 RET 1 R6
0x80040E00, // 0012 RET 1 R7 0x70020004, // 0012 JMP #0018
0x70020004, // 0013 JMP #0019 0x8C180706, // 0013 GETMET R6 R3 K6
0x8C1C0907, // 0014 GETMET R7 R4 K7 0x88200708, // 0014 GETMBR R8 R3 K8
0x88240909, // 0015 GETMBR R9 R4 K9 0x4C240000, // 0015 LDNIL R9
0x4C280000, // 0016 LDNIL R10 0x7C180600, // 0016 CALL R6 3
0x7C1C0600, // 0017 CALL R7 3 0x80040C00, // 0017 RET 1 R6
0x80040E00, // 0018 RET 1 R7 0x70020020, // 0018 JMP #003A
0x70020020, // 0019 JMP #003B 0x1C180B09, // 0019 EQ R6 R5 K9
0x1C1C0D0A, // 001A EQ R7 R6 K10 0x781A0005, // 001A JMPF R6 #0021
0x781E0005, // 001B JMPF R7 #0022 0x8C180706, // 001B GETMET R6 R3 K6
0x8C1C0907, // 001C GETMET R7 R4 K7 0x88200707, // 001C GETMBR R8 R3 K7
0x88240908, // 001D GETMBR R9 R4 K8 0x5425EC77, // 001D LDINT R9 -5000
0x5429EC77, // 001E LDINT R10 -5000 0x7C180600, // 001E CALL R6 3
0x7C1C0600, // 001F CALL R7 3 0x80040C00, // 001F RET 1 R6
0x80040E00, // 0020 RET 1 R7 0x70020018, // 0020 JMP #003A
0x70020018, // 0021 JMP #003B 0x1C180B0A, // 0021 EQ R6 R5 K10
0x1C1C0D0B, // 0022 EQ R7 R6 K11 0x781A0005, // 0022 JMPF R6 #0029
0x781E0005, // 0023 JMPF R7 #002A 0x8C180706, // 0023 GETMET R6 R3 K6
0x8C1C0907, // 0024 GETMET R7 R4 K7 0x88200707, // 0024 GETMBR R8 R3 K7
0x88240908, // 0025 GETMBR R9 R4 K8 0x54263A97, // 0025 LDINT R9 15000
0x542A3A97, // 0026 LDINT R10 15000 0x7C180600, // 0026 CALL R6 3
0x7C1C0600, // 0027 CALL R7 3 0x80040C00, // 0027 RET 1 R6
0x80040E00, // 0028 RET 1 R7 0x70020010, // 0028 JMP #003A
0x70020010, // 0029 JMP #003B 0x541AFFFB, // 0029 LDINT R6 65532
0x541EFFFB, // 002A LDINT R7 65532 0x1C180A06, // 002A EQ R6 R5 R6
0x1C1C0C07, // 002B EQ R7 R6 R7 0x781A0005, // 002B JMPF R6 #0032
0x781E0005, // 002C JMPF R7 #0033 0x8C180706, // 002C GETMET R6 R3 K6
0x8C1C0907, // 002D GETMET R7 R4 K7 0x8820070B, // 002D GETMBR R8 R3 K11
0x8824090C, // 002E GETMBR R9 R4 K12 0x58240004, // 002E LDCONST R9 K4
0x58280005, // 002F LDCONST R10 K5 0x7C180600, // 002F CALL R6 3
0x7C1C0600, // 0030 CALL R7 3 0x80040C00, // 0030 RET 1 R6
0x80040E00, // 0031 RET 1 R7 0x70020007, // 0031 JMP #003A
0x70020007, // 0032 JMP #003B 0x541AFFFC, // 0032 LDINT R6 65533
0x541EFFFC, // 0033 LDINT R7 65533 0x1C180A06, // 0033 EQ R6 R5 R6
0x1C1C0C07, // 0034 EQ R7 R6 R7 0x781A0004, // 0034 JMPF R6 #003A
0x781E0004, // 0035 JMPF R7 #003B 0x8C180706, // 0035 GETMET R6 R3 K6
0x8C1C0907, // 0036 GETMET R7 R4 K7 0x8820070B, // 0036 GETMBR R8 R3 K11
0x8824090C, // 0037 GETMBR R9 R4 K12 0x54260003, // 0037 LDINT R9 4
0x542A0003, // 0038 LDINT R10 4 0x7C180600, // 0038 CALL R6 3
0x7C1C0600, // 0039 CALL R7 3 0x80040C00, // 0039 RET 1 R6
0x80040E00, // 003A RET 1 R7 0x70020007, // 003A JMP #0043
0x70020007, // 003B JMP #0044 0x60180003, // 003B GETGBL R6 G3
0x601C0003, // 003C GETGBL R7 G3 0x5C1C0000, // 003C MOVE R7 R0
0x5C200000, // 003D MOVE R8 R0 0x7C180200, // 003D CALL R6 1
0x7C1C0200, // 003E CALL R7 1 0x8C180D0C, // 003E GETMET R6 R6 K12
0x8C1C0F0D, // 003F GETMET R7 R7 K13 0x5C200200, // 003F MOVE R8 R1
0x5C240200, // 0040 MOVE R9 R1 0x5C240400, // 0040 MOVE R9 R2
0x5C280400, // 0041 MOVE R10 R2 0x7C180600, // 0041 CALL R6 3
0x7C1C0600, // 0042 CALL R7 3 0x80040C00, // 0042 RET 1 R6
0x80040E00, // 0043 RET 1 R7 0x80000000, // 0043 RET 0
0x80000000, // 0044 RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Plugin_Shutter;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
be_nested_proto( be_nested_proto(
13, /* nstack */ 12, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,182 +19,180 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[19]) { /* constants */ ( &(const bvalue[18]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_nested_str_weak(update_inverted),
/* K6 */ be_nested_str_weak(update_inverted), /* K6 */ be_const_int(0),
/* K7 */ be_const_int(0), /* K7 */ be_nested_str_weak(create_TLV),
/* K8 */ be_nested_str_weak(create_TLV), /* K8 */ be_nested_str_weak(U1),
/* K9 */ be_nested_str_weak(U1), /* K9 */ be_nested_str_weak(U2),
/* K10 */ be_nested_str_weak(U2), /* K10 */ be_const_int(1),
/* K11 */ be_const_int(1), /* K11 */ be_nested_str_weak(shadow_shutter_inverted),
/* K12 */ be_nested_str_weak(shadow_shutter_inverted), /* K12 */ be_nested_str_weak(shadow_shutter_pos),
/* K13 */ be_nested_str_weak(shadow_shutter_pos), /* K13 */ be_nested_str_weak(shadow_shutter_direction),
/* K14 */ be_nested_str_weak(shadow_shutter_direction), /* K14 */ be_const_int(2),
/* K15 */ be_const_int(2), /* K15 */ be_nested_str_weak(shadow_shutter_target),
/* K16 */ be_nested_str_weak(shadow_shutter_target), /* K16 */ be_nested_str_weak(U4),
/* K17 */ be_nested_str_weak(U4), /* K17 */ be_nested_str_weak(read_attribute),
/* K18 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[152]) { /* code */ ( &(const binstruction[151]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x4C180000, // 0004 LDNIL R6
0x4C1C0000, // 0005 LDNIL R7 0x541E0101, // 0005 LDINT R7 258
0x54220101, // 0006 LDINT R8 258 0x1C1C0807, // 0006 EQ R7 R4 R7
0x1C200A08, // 0007 EQ R8 R5 R8 0x781E0085, // 0007 JMPF R7 #008E
0x78220085, // 0008 JMPF R8 #008F 0x8C1C0104, // 0008 GETMET R7 R0 K4
0x8C200105, // 0009 GETMET R8 R0 K5 0x7C1C0200, // 0009 CALL R7 1
0x7C200200, // 000A CALL R8 1 0x8C1C0105, // 000A GETMET R7 R0 K5
0x8C200106, // 000B GETMET R8 R0 K6 0x7C1C0200, // 000B CALL R7 1
0x7C200200, // 000C CALL R8 1 0x1C1C0B06, // 000C EQ R7 R5 K6
0x1C200D07, // 000D EQ R8 R6 K7 0x781E0005, // 000D JMPF R7 #0014
0x78220005, // 000E JMPF R8 #0015 0x8C1C0707, // 000E GETMET R7 R3 K7
0x8C200908, // 000F GETMET R8 R4 K8 0x88240708, // 000F GETMBR R9 R3 K8
0x88280909, // 0010 GETMBR R10 R4 K9 0x542A00FE, // 0010 LDINT R10 255
0x542E00FE, // 0011 LDINT R11 255 0x7C1C0600, // 0011 CALL R7 3
0x7C200600, // 0012 CALL R8 3 0x80040E00, // 0012 RET 1 R7
0x80041000, // 0013 RET 1 R8 0x70020078, // 0013 JMP #008D
0x70020078, // 0014 JMP #008E 0x541E0004, // 0014 LDINT R7 5
0x54220004, // 0015 LDINT R8 5 0x1C1C0A07, // 0015 EQ R7 R5 R7
0x1C200C08, // 0016 EQ R8 R6 R8 0x781E0005, // 0016 JMPF R7 #001D
0x78220005, // 0017 JMPF R8 #001E 0x8C1C0707, // 0017 GETMET R7 R3 K7
0x8C200908, // 0018 GETMET R8 R4 K8 0x88240709, // 0018 GETMBR R9 R3 K9
0x8828090A, // 0019 GETMBR R10 R4 K10 0x58280006, // 0019 LDCONST R10 K6
0x582C0007, // 001A LDCONST R11 K7 0x7C1C0600, // 001A CALL R7 3
0x7C200600, // 001B CALL R8 3 0x80040E00, // 001B RET 1 R7
0x80041000, // 001C RET 1 R8 0x7002006F, // 001C JMP #008D
0x7002006F, // 001D JMP #008E 0x541E0006, // 001D LDINT R7 7
0x54220006, // 001E LDINT R8 7 0x1C1C0A07, // 001E EQ R7 R5 R7
0x1C200C08, // 001F EQ R8 R6 R8 0x781E0006, // 001F JMPF R7 #0027
0x78220006, // 0020 JMPF R8 #0028 0x8C1C0707, // 0020 GETMET R7 R3 K7
0x8C200908, // 0021 GETMET R8 R4 K8 0x88240708, // 0021 GETMBR R9 R3 K8
0x88280909, // 0022 GETMBR R10 R4 K9 0x542A0007, // 0022 LDINT R10 8
0x542E0007, // 0023 LDINT R11 8 0x002A140A, // 0023 ADD R10 K10 R10
0x002E160B, // 0024 ADD R11 K11 R11 0x7C1C0600, // 0024 CALL R7 3
0x7C200600, // 0025 CALL R8 3 0x80040E00, // 0025 RET 1 R7
0x80041000, // 0026 RET 1 R8 0x70020065, // 0026 JMP #008D
0x70020065, // 0027 JMP #008E 0x541E000C, // 0027 LDINT R7 13
0x5422000C, // 0028 LDINT R8 13 0x1C1C0A07, // 0028 EQ R7 R5 R7
0x1C200C08, // 0029 EQ R8 R6 R8 0x781E0005, // 0029 JMPF R7 #0030
0x78220005, // 002A JMPF R8 #0031 0x8C1C0707, // 002A GETMET R7 R3 K7
0x8C200908, // 002B GETMET R8 R4 K8 0x88240708, // 002B GETMBR R9 R3 K8
0x88280909, // 002C GETMBR R10 R4 K9 0x542A00FE, // 002C LDINT R10 255
0x542E00FE, // 002D LDINT R11 255 0x7C1C0600, // 002D CALL R7 3
0x7C200600, // 002E CALL R8 3 0x80040E00, // 002E RET 1 R7
0x80041000, // 002F RET 1 R8 0x7002005C, // 002F JMP #008D
0x7002005C, // 0030 JMP #008E 0x541E000D, // 0030 LDINT R7 14
0x5422000D, // 0031 LDINT R8 14 0x1C1C0A07, // 0031 EQ R7 R5 R7
0x1C200C08, // 0032 EQ R8 R6 R8 0x781E0013, // 0032 JMPF R7 #0047
0x78220013, // 0033 JMPF R8 #0048 0x881C010B, // 0033 GETMBR R7 R0 K11
0x8820010C, // 0034 GETMBR R8 R0 K12 0x1C1C0F06, // 0034 EQ R7 R7 K6
0x1C201107, // 0035 EQ R8 R8 K7 0x781E0006, // 0035 JMPF R7 #003D
0x78220006, // 0036 JMPF R8 #003E 0x541E0063, // 0036 LDINT R7 100
0x54220063, // 0037 LDINT R8 100 0x8820010C, // 0037 GETMBR R8 R0 K12
0x8824010D, // 0038 GETMBR R9 R0 K13 0x041C0E08, // 0038 SUB R7 R7 R8
0x04201009, // 0039 SUB R8 R8 R9 0x54220063, // 0039 LDINT R8 100
0x54260063, // 003A LDINT R9 100 0x081C0E08, // 003A MUL R7 R7 R8
0x08201009, // 003B MUL R8 R8 R9 0x5C180E00, // 003B MOVE R6 R7
0x5C1C1000, // 003C MOVE R7 R8 0x70020003, // 003C JMP #0041
0x70020003, // 003D JMP #0042 0x881C010C, // 003D GETMBR R7 R0 K12
0x8820010D, // 003E GETMBR R8 R0 K13 0x54220063, // 003E LDINT R8 100
0x54260063, // 003F LDINT R9 100 0x081C0E08, // 003F MUL R7 R7 R8
0x08201009, // 0040 MUL R8 R8 R9 0x5C180E00, // 0040 MOVE R6 R7
0x5C1C1000, // 0041 MOVE R7 R8 0x8C1C0707, // 0041 GETMET R7 R3 K7
0x8C200908, // 0042 GETMET R8 R4 K8 0x88240709, // 0042 GETMBR R9 R3 K9
0x8828090A, // 0043 GETMBR R10 R4 K10 0x5C280C00, // 0043 MOVE R10 R6
0x5C2C0E00, // 0044 MOVE R11 R7 0x7C1C0600, // 0044 CALL R7 3
0x7C200600, // 0045 CALL R8 3 0x80040E00, // 0045 RET 1 R7
0x80041000, // 0046 RET 1 R8 0x70020045, // 0046 JMP #008D
0x70020045, // 0047 JMP #008E 0x541E0009, // 0047 LDINT R7 10
0x54220009, // 0048 LDINT R8 10 0x1C1C0A07, // 0048 EQ R7 R5 R7
0x1C200C08, // 0049 EQ R8 R6 R8 0x781E0010, // 0049 JMPF R7 #005B
0x78220010, // 004A JMPF R8 #005C 0x881C010D, // 004A GETMBR R7 R0 K13
0x8820010E, // 004B GETMBR R8 R0 K14 0x1C1C0F06, // 004B EQ R7 R7 K6
0x1C201107, // 004C EQ R8 R8 K7 0x781E0001, // 004C JMPF R7 #004F
0x78220001, // 004D JMPF R8 #0050 0x581C0006, // 004D LDCONST R7 K6
0x58200007, // 004E LDCONST R8 K7 0x70020005, // 004E JMP #0055
0x70020005, // 004F JMP #0056 0x881C010D, // 004F GETMBR R7 R0 K13
0x8820010E, // 0050 GETMBR R8 R0 K14 0x241C0F06, // 0050 GT R7 R7 K6
0x24201107, // 0051 GT R8 R8 K7 0x781E0001, // 0051 JMPF R7 #0054
0x78220001, // 0052 JMPF R8 #0055 0x581C000A, // 0052 LDCONST R7 K10
0x5820000B, // 0053 LDCONST R8 K11 0x70020000, // 0053 JMP #0055
0x70020000, // 0054 JMP #0056 0x581C000E, // 0054 LDCONST R7 K14
0x5820000F, // 0055 LDCONST R8 K15 0x8C200707, // 0055 GETMET R8 R3 K7
0x8C240908, // 0056 GETMET R9 R4 K8 0x88280708, // 0056 GETMBR R10 R3 K8
0x882C0909, // 0057 GETMBR R11 R4 K9 0x5C2C0E00, // 0057 MOVE R11 R7
0x5C301000, // 0058 MOVE R12 R8 0x7C200600, // 0058 CALL R8 3
0x7C240600, // 0059 CALL R9 3 0x80041000, // 0059 RET 1 R8
0x80041200, // 005A RET 1 R9 0x70020031, // 005A JMP #008D
0x70020031, // 005B JMP #008E 0x541E000A, // 005B LDINT R7 11
0x5422000A, // 005C LDINT R8 11 0x1C1C0A07, // 005C EQ R7 R5 R7
0x1C200C08, // 005D EQ R8 R6 R8 0x781E0013, // 005D JMPF R7 #0072
0x78220013, // 005E JMPF R8 #0073 0x881C010B, // 005E GETMBR R7 R0 K11
0x8820010C, // 005F GETMBR R8 R0 K12 0x1C1C0F06, // 005F EQ R7 R7 K6
0x1C201107, // 0060 EQ R8 R8 K7 0x781E0006, // 0060 JMPF R7 #0068
0x78220006, // 0061 JMPF R8 #0069 0x541E0063, // 0061 LDINT R7 100
0x54220063, // 0062 LDINT R8 100 0x8820010F, // 0062 GETMBR R8 R0 K15
0x88240110, // 0063 GETMBR R9 R0 K16 0x041C0E08, // 0063 SUB R7 R7 R8
0x04201009, // 0064 SUB R8 R8 R9 0x54220063, // 0064 LDINT R8 100
0x54260063, // 0065 LDINT R9 100 0x081C0E08, // 0065 MUL R7 R7 R8
0x08201009, // 0066 MUL R8 R8 R9 0x5C180E00, // 0066 MOVE R6 R7
0x5C1C1000, // 0067 MOVE R7 R8 0x70020003, // 0067 JMP #006C
0x70020003, // 0068 JMP #006D 0x881C010F, // 0068 GETMBR R7 R0 K15
0x88200110, // 0069 GETMBR R8 R0 K16 0x54220063, // 0069 LDINT R8 100
0x54260063, // 006A LDINT R9 100 0x081C0E08, // 006A MUL R7 R7 R8
0x08201009, // 006B MUL R8 R8 R9 0x5C180E00, // 006B MOVE R6 R7
0x5C1C1000, // 006C MOVE R7 R8 0x8C1C0707, // 006C GETMET R7 R3 K7
0x8C200908, // 006D GETMET R8 R4 K8 0x88240709, // 006D GETMBR R9 R3 K9
0x8828090A, // 006E GETMBR R10 R4 K10 0x5C280C00, // 006E MOVE R10 R6
0x5C2C0E00, // 006F MOVE R11 R7 0x7C1C0600, // 006F CALL R7 3
0x7C200600, // 0070 CALL R8 3 0x80040E00, // 0070 RET 1 R7
0x80041000, // 0071 RET 1 R8 0x7002001A, // 0071 JMP #008D
0x7002001A, // 0072 JMP #008E 0x541E0016, // 0072 LDINT R7 23
0x54220016, // 0073 LDINT R8 23 0x1C1C0A07, // 0073 EQ R7 R5 R7
0x1C200C08, // 0074 EQ R8 R6 R8 0x781E0005, // 0074 JMPF R7 #007B
0x78220005, // 0075 JMPF R8 #007C 0x8C1C0707, // 0075 GETMET R7 R3 K7
0x8C200908, // 0076 GETMET R8 R4 K8 0x88240708, // 0076 GETMBR R9 R3 K8
0x88280909, // 0077 GETMBR R10 R4 K9 0x58280006, // 0077 LDCONST R10 K6
0x582C0007, // 0078 LDCONST R11 K7 0x7C1C0600, // 0078 CALL R7 3
0x7C200600, // 0079 CALL R8 3 0x80040E00, // 0079 RET 1 R7
0x80041000, // 007A RET 1 R8 0x70020011, // 007A JMP #008D
0x70020011, // 007B JMP #008E 0x541EFFFB, // 007B LDINT R7 65532
0x5422FFFB, // 007C LDINT R8 65532 0x1C1C0A07, // 007C EQ R7 R5 R7
0x1C200C08, // 007D EQ R8 R6 R8 0x781E0006, // 007D JMPF R7 #0085
0x78220006, // 007E JMPF R8 #0086 0x8C1C0707, // 007E GETMET R7 R3 K7
0x8C200908, // 007F GETMET R8 R4 K8 0x88240710, // 007F GETMBR R9 R3 K16
0x88280911, // 0080 GETMBR R10 R4 K17 0x542A0003, // 0080 LDINT R10 4
0x542E0003, // 0081 LDINT R11 4 0x002A140A, // 0081 ADD R10 K10 R10
0x002E160B, // 0082 ADD R11 K11 R11 0x7C1C0600, // 0082 CALL R7 3
0x7C200600, // 0083 CALL R8 3 0x80040E00, // 0083 RET 1 R7
0x80041000, // 0084 RET 1 R8 0x70020007, // 0084 JMP #008D
0x70020007, // 0085 JMP #008E 0x541EFFFC, // 0085 LDINT R7 65533
0x5422FFFC, // 0086 LDINT R8 65533 0x1C1C0A07, // 0086 EQ R7 R5 R7
0x1C200C08, // 0087 EQ R8 R6 R8 0x781E0004, // 0087 JMPF R7 #008D
0x78220004, // 0088 JMPF R8 #008E 0x8C1C0707, // 0088 GETMET R7 R3 K7
0x8C200908, // 0089 GETMET R8 R4 K8 0x88240710, // 0089 GETMBR R9 R3 K16
0x88280911, // 008A GETMBR R10 R4 K17 0x542A0004, // 008A LDINT R10 5
0x542E0004, // 008B LDINT R11 5 0x7C1C0600, // 008B CALL R7 3
0x7C200600, // 008C CALL R8 3 0x80040E00, // 008C RET 1 R7
0x80041000, // 008D RET 1 R8 0x70020007, // 008D JMP #0096
0x70020007, // 008E JMP #0097 0x601C0003, // 008E GETGBL R7 G3
0x60200003, // 008F GETGBL R8 G3 0x5C200000, // 008F MOVE R8 R0
0x5C240000, // 0090 MOVE R9 R0 0x7C1C0200, // 0090 CALL R7 1
0x7C200200, // 0091 CALL R8 1 0x8C1C0F11, // 0091 GETMET R7 R7 K17
0x8C201112, // 0092 GETMET R8 R8 K18 0x5C240200, // 0092 MOVE R9 R1
0x5C280200, // 0093 MOVE R10 R1 0x5C280400, // 0093 MOVE R10 R2
0x5C2C0400, // 0094 MOVE R11 R2 0x7C1C0600, // 0094 CALL R7 3
0x7C200600, // 0095 CALL R8 3 0x80040E00, // 0095 RET 1 R7
0x80041000, // 0096 RET 1 R8 0x80000000, // 0096 RET 0
0x80000000, // 0097 RET 0
}) })
) )
); );
@ -206,7 +204,7 @@ be_local_closure(Matter_Plugin_Shutter_read_attribute, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_Shutter_parse_sensors, /* name */ be_local_closure(Matter_Plugin_Shutter_parse_sensors, /* name */
be_nested_proto( be_nested_proto(
12, /* nstack */ 11, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -214,78 +212,76 @@ be_local_closure(Matter_Plugin_Shutter_parse_sensors, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[13]) { /* constants */ ( &(const bvalue[12]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(Shutter),
/* K1 */ be_nested_str_weak(Shutter), /* K1 */ be_nested_str_weak(tasmota_shutter_index),
/* K2 */ be_nested_str_weak(tasmota_shutter_index), /* K2 */ be_const_int(1),
/* K3 */ be_const_int(1), /* K3 */ be_nested_str_weak(contains),
/* K4 */ be_nested_str_weak(contains), /* K4 */ be_nested_str_weak(find),
/* K5 */ be_nested_str_weak(find), /* K5 */ be_nested_str_weak(Position),
/* K6 */ be_nested_str_weak(Position), /* K6 */ be_nested_str_weak(shadow_shutter_pos),
/* K7 */ be_nested_str_weak(shadow_shutter_pos), /* K7 */ be_nested_str_weak(attribute_updated),
/* K8 */ be_nested_str_weak(attribute_updated), /* K8 */ be_nested_str_weak(Direction),
/* K9 */ be_nested_str_weak(Direction), /* K9 */ be_nested_str_weak(shadow_shutter_direction),
/* K10 */ be_nested_str_weak(shadow_shutter_direction), /* K10 */ be_nested_str_weak(Target),
/* K11 */ be_nested_str_weak(Target), /* K11 */ be_nested_str_weak(shadow_shutter_target),
/* K12 */ be_nested_str_weak(shadow_shutter_target),
}), }),
be_str_weak(parse_sensors), be_str_weak(parse_sensors),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[54]) { /* code */ ( &(const binstruction[53]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x60080008, // 0000 GETGBL R2 G8
0x600C0008, // 0001 GETGBL R3 G8 0x880C0101, // 0001 GETMBR R3 R0 K1
0x88100102, // 0002 GETMBR R4 R0 K2 0x000C0702, // 0002 ADD R3 R3 K2
0x00100903, // 0003 ADD R4 R4 K3 0x7C080200, // 0003 CALL R2 1
0x7C0C0200, // 0004 CALL R3 1 0x000A0002, // 0004 ADD R2 K0 R2
0x000E0203, // 0005 ADD R3 K1 R3 0x8C0C0303, // 0005 GETMET R3 R1 K3
0x8C100304, // 0006 GETMET R4 R1 K4 0x5C140400, // 0006 MOVE R5 R2
0x5C180600, // 0007 MOVE R6 R3 0x7C0C0400, // 0007 CALL R3 2
0x7C100400, // 0008 CALL R4 2 0x780E002A, // 0008 JMPF R3 #0034
0x7812002A, // 0009 JMPF R4 #0035 0x940C0202, // 0009 GETIDX R3 R1 R2
0x94100203, // 000A GETIDX R4 R1 R3 0x8C100704, // 000A GETMET R4 R3 K4
0x8C140905, // 000B GETMET R5 R4 K5 0x58180005, // 000B LDCONST R6 K5
0x581C0006, // 000C LDCONST R7 K6 0x7C100400, // 000C CALL R4 2
0x7C140400, // 000D CALL R5 2 0x4C140000, // 000D LDNIL R5
0x4C180000, // 000E LDNIL R6 0x20140805, // 000E NE R5 R4 R5
0x20180A06, // 000F NE R6 R5 R6 0x78160007, // 000F JMPF R5 #0018
0x781A0007, // 0010 JMPF R6 #0019 0x88140106, // 0010 GETMBR R5 R0 K6
0x88180107, // 0011 GETMBR R6 R0 K7 0x20140805, // 0011 NE R5 R4 R5
0x20180A06, // 0012 NE R6 R5 R6 0x78160003, // 0012 JMPF R5 #0017
0x781A0003, // 0013 JMPF R6 #0018 0x8C140107, // 0013 GETMET R5 R0 K7
0x8C180108, // 0014 GETMET R6 R0 K8 0x541E0101, // 0014 LDINT R7 258
0x54220101, // 0015 LDINT R8 258 0x5422000D, // 0015 LDINT R8 14
0x5426000D, // 0016 LDINT R9 14 0x7C140600, // 0016 CALL R5 3
0x7C180600, // 0017 CALL R6 3 0x90020C04, // 0017 SETMBR R0 K6 R4
0x90020E05, // 0018 SETMBR R0 K7 R5 0x8C140704, // 0018 GETMET R5 R3 K4
0x8C180905, // 0019 GETMET R6 R4 K5 0x581C0008, // 0019 LDCONST R7 K8
0x58200009, // 001A LDCONST R8 K9 0x7C140400, // 001A CALL R5 2
0x7C180400, // 001B CALL R6 2 0x4C180000, // 001B LDNIL R6
0x4C1C0000, // 001C LDNIL R7 0x20180A06, // 001C NE R6 R5 R6
0x201C0C07, // 001D NE R7 R6 R7 0x781A0007, // 001D JMPF R6 #0026
0x781E0007, // 001E JMPF R7 #0027 0x88180109, // 001E GETMBR R6 R0 K9
0x881C010A, // 001F GETMBR R7 R0 K10 0x20180A06, // 001F NE R6 R5 R6
0x201C0C07, // 0020 NE R7 R6 R7 0x781A0003, // 0020 JMPF R6 #0025
0x781E0003, // 0021 JMPF R7 #0026 0x8C180107, // 0021 GETMET R6 R0 K7
0x8C1C0108, // 0022 GETMET R7 R0 K8 0x54220101, // 0022 LDINT R8 258
0x54260101, // 0023 LDINT R9 258 0x54260009, // 0023 LDINT R9 10
0x542A0009, // 0024 LDINT R10 10 0x7C180600, // 0024 CALL R6 3
0x7C1C0600, // 0025 CALL R7 3 0x90021205, // 0025 SETMBR R0 K9 R5
0x90021406, // 0026 SETMBR R0 K10 R6 0x8C180704, // 0026 GETMET R6 R3 K4
0x8C1C0905, // 0027 GETMET R7 R4 K5 0x5820000A, // 0027 LDCONST R8 K10
0x5824000B, // 0028 LDCONST R9 K11 0x7C180400, // 0028 CALL R6 2
0x7C1C0400, // 0029 CALL R7 2 0x4C1C0000, // 0029 LDNIL R7
0x4C200000, // 002A LDNIL R8 0x201C0C07, // 002A NE R7 R6 R7
0x20200E08, // 002B NE R8 R7 R8 0x781E0007, // 002B JMPF R7 #0034
0x78220007, // 002C JMPF R8 #0035 0x881C010B, // 002C GETMBR R7 R0 K11
0x8820010C, // 002D GETMBR R8 R0 K12 0x201C0C07, // 002D NE R7 R6 R7
0x20200E08, // 002E NE R8 R7 R8 0x781E0003, // 002E JMPF R7 #0033
0x78220003, // 002F JMPF R8 #0034 0x8C1C0107, // 002F GETMET R7 R0 K7
0x8C200108, // 0030 GETMET R8 R0 K8 0x54260101, // 0030 LDINT R9 258
0x542A0101, // 0031 LDINT R10 258 0x542A000A, // 0031 LDINT R10 11
0x542E000A, // 0032 LDINT R11 11 0x7C1C0600, // 0032 CALL R7 3
0x7C200600, // 0033 CALL R8 3 0x90021606, // 0033 SETMBR R0 K11 R6
0x90021807, // 0034 SETMBR R0 K12 R7 0x80000000, // 0034 RET 0
0x80000000, // 0035 RET 0
}) })
) )
); );

View File

@ -207,7 +207,7 @@ be_local_closure(Matter_Plugin_ShutterTilt_invoke_request, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */ be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */
be_nested_proto( be_nested_proto(
14, /* nstack */ 13, /* nstack */
3, /* argc */ 3, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -215,145 +215,143 @@ be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[21]) { /* constants */ ( &(const bvalue[20]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(matter),
/* K1 */ be_nested_str_weak(matter), /* K1 */ be_nested_str_weak(TLV),
/* K2 */ be_nested_str_weak(TLV), /* K2 */ be_nested_str_weak(cluster),
/* K3 */ be_nested_str_weak(cluster), /* K3 */ be_nested_str_weak(attribute),
/* K4 */ be_nested_str_weak(attribute), /* K4 */ be_nested_str_weak(update_shadow_lazy),
/* K5 */ be_nested_str_weak(update_shadow_lazy), /* K5 */ be_nested_str_weak(create_TLV),
/* K6 */ be_nested_str_weak(create_TLV), /* K6 */ be_nested_str_weak(U1),
/* K7 */ be_nested_str_weak(U1), /* K7 */ be_const_int(1),
/* K8 */ be_const_int(1), /* K8 */ be_nested_str_weak(update_tilt_min_max),
/* K9 */ be_nested_str_weak(update_tilt_min_max), /* K9 */ be_nested_str_weak(tilt_min),
/* K10 */ be_nested_str_weak(tilt_min), /* K10 */ be_nested_str_weak(tilt_max),
/* K11 */ be_nested_str_weak(tilt_max), /* K11 */ be_nested_str_weak(tasmota),
/* K12 */ be_nested_str_weak(tasmota), /* K12 */ be_nested_str_weak(scale_uint),
/* K13 */ be_nested_str_weak(scale_uint), /* K13 */ be_nested_str_weak(shadow_shutter_tilt),
/* K14 */ be_nested_str_weak(shadow_shutter_tilt), /* K14 */ be_const_int(0),
/* K15 */ be_const_int(0), /* K15 */ be_nested_str_weak(U2),
/* K16 */ be_nested_str_weak(U2), /* K16 */ be_nested_str_weak(NULL),
/* K17 */ be_nested_str_weak(NULL), /* K17 */ be_nested_str_weak(U4),
/* K18 */ be_nested_str_weak(U4), /* K18 */ be_const_int(3),
/* K19 */ be_const_int(3), /* K19 */ be_nested_str_weak(read_attribute),
/* K20 */ be_nested_str_weak(read_attribute),
}), }),
be_str_weak(read_attribute), be_str_weak(read_attribute),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[113]) { /* code */ ( &(const binstruction[112]) { /* code */
0xA40E0000, // 0000 IMPORT R3 K0 0xB80E0000, // 0000 GETNGBL R3 K0
0xB8120200, // 0001 GETNGBL R4 K1 0x880C0701, // 0001 GETMBR R3 R3 K1
0x88100902, // 0002 GETMBR R4 R4 K2 0x88100502, // 0002 GETMBR R4 R2 K2
0x88140503, // 0003 GETMBR R5 R2 K3 0x88140503, // 0003 GETMBR R5 R2 K3
0x88180504, // 0004 GETMBR R6 R2 K4 0x541A0101, // 0004 LDINT R6 258
0x541E0101, // 0005 LDINT R7 258 0x1C180806, // 0005 EQ R6 R4 R6
0x1C1C0A07, // 0006 EQ R7 R5 R7 0x781A0060, // 0006 JMPF R6 #0068
0x781E0060, // 0007 JMPF R7 #0069 0x8C180104, // 0007 GETMET R6 R0 K4
0x8C1C0105, // 0008 GETMET R7 R0 K5 0x7C180200, // 0008 CALL R6 1
0x7C1C0200, // 0009 CALL R7 1 0x541A0006, // 0009 LDINT R6 7
0x541E0006, // 000A LDINT R7 7 0x1C180A06, // 000A EQ R6 R5 R6
0x1C1C0C07, // 000B EQ R7 R6 R7 0x781A0008, // 000B JMPF R6 #0015
0x781E0008, // 000C JMPF R7 #0016 0x8C180705, // 000C GETMET R6 R3 K5
0x8C1C0906, // 000D GETMET R7 R4 K6 0x88200706, // 000D GETMBR R8 R3 K6
0x88240907, // 000E GETMBR R9 R4 K7 0x54260007, // 000E LDINT R9 8
0x542A0007, // 000F LDINT R10 8 0x00260E09, // 000F ADD R9 K7 R9
0x002A100A, // 0010 ADD R10 K8 R10 0x542A000F, // 0010 LDINT R10 16
0x542E000F, // 0011 LDINT R11 16 0x0024120A, // 0011 ADD R9 R9 R10
0x0028140B, // 0012 ADD R10 R10 R11 0x7C180600, // 0012 CALL R6 3
0x7C1C0600, // 0013 CALL R7 3 0x80040C00, // 0013 RET 1 R6
0x80040E00, // 0014 RET 1 R7 0x70020052, // 0014 JMP #0068
0x70020052, // 0015 JMP #0069 0x541A000E, // 0015 LDINT R6 15
0x541E000E, // 0016 LDINT R7 15 0x1C180A06, // 0016 EQ R6 R5 R6
0x1C1C0C07, // 0017 EQ R7 R6 R7 0x781A0021, // 0017 JMPF R6 #003A
0x781E0021, // 0018 JMPF R7 #003B 0x8C180108, // 0018 GETMET R6 R0 K8
0x8C1C0109, // 0019 GETMET R7 R0 K9 0x7C180200, // 0019 CALL R6 1
0x7C1C0200, // 001A CALL R7 1 0x88180109, // 001A GETMBR R6 R0 K9
0x881C010A, // 001B GETMBR R7 R0 K10 0x4C1C0000, // 001B LDNIL R7
0x4C200000, // 001C LDNIL R8 0x20180C07, // 001C NE R6 R6 R7
0x201C0E08, // 001D NE R7 R7 R8 0x781A0015, // 001D JMPF R6 #0034
0x781E0015, // 001E JMPF R7 #0035 0x8818010A, // 001E GETMBR R6 R0 K10
0x881C010B, // 001F GETMBR R7 R0 K11 0x4C1C0000, // 001F LDNIL R7
0x4C200000, // 0020 LDNIL R8 0x20180C07, // 0020 NE R6 R6 R7
0x201C0E08, // 0021 NE R7 R7 R8 0x781A0011, // 0021 JMPF R6 #0034
0x781E0011, // 0022 JMPF R7 #0035 0xB81A1600, // 0022 GETNGBL R6 K11
0xB81E1800, // 0023 GETNGBL R7 K12 0x8C180D0C, // 0023 GETMET R6 R6 K12
0x8C1C0F0D, // 0024 GETMET R7 R7 K13 0x8820010D, // 0024 GETMBR R8 R0 K13
0x8824010E, // 0025 GETMBR R9 R0 K14 0x88240109, // 0025 GETMBR R9 R0 K9
0x8828010A, // 0026 GETMBR R10 R0 K10 0x04201009, // 0026 SUB R8 R8 R9
0x0424120A, // 0027 SUB R9 R9 R10 0x5824000E, // 0027 LDCONST R9 K14
0x5828000F, // 0028 LDCONST R10 K15 0x8828010A, // 0028 GETMBR R10 R0 K10
0x882C010B, // 0029 GETMBR R11 R0 K11 0x882C0109, // 0029 GETMBR R11 R0 K9
0x8830010A, // 002A GETMBR R12 R0 K10 0x0428140B, // 002A SUB R10 R10 R11
0x042C160C, // 002B SUB R11 R11 R12 0x582C000E, // 002B LDCONST R11 K14
0x5830000F, // 002C LDCONST R12 K15 0x5432270F, // 002C LDINT R12 10000
0x5436270F, // 002D LDINT R13 10000 0x7C180C00, // 002D CALL R6 6
0x7C1C0C00, // 002E CALL R7 6 0x8C1C0705, // 002E GETMET R7 R3 K5
0x8C200906, // 002F GETMET R8 R4 K6 0x8824070F, // 002F GETMBR R9 R3 K15
0x88280910, // 0030 GETMBR R10 R4 K16 0x5C280C00, // 0030 MOVE R10 R6
0x5C2C0E00, // 0031 MOVE R11 R7 0x7C1C0600, // 0031 CALL R7 3
0x7C200600, // 0032 CALL R8 3 0x80040E00, // 0032 RET 1 R7
0x80041000, // 0033 RET 1 R8 0x70020004, // 0033 JMP #0039
0x70020004, // 0034 JMP #003A 0x8C180705, // 0034 GETMET R6 R3 K5
0x8C1C0906, // 0035 GETMET R7 R4 K6 0x88200710, // 0035 GETMBR R8 R3 K16
0x88240911, // 0036 GETMBR R9 R4 K17 0x4C240000, // 0036 LDNIL R9
0x4C280000, // 0037 LDNIL R10 0x7C180600, // 0037 CALL R6 3
0x7C1C0600, // 0038 CALL R7 3 0x80040C00, // 0038 RET 1 R6
0x80040E00, // 0039 RET 1 R7 0x7002002D, // 0039 JMP #0068
0x7002002D, // 003A JMP #0069 0x541A000B, // 003A LDINT R6 12
0x541E000B, // 003B LDINT R7 12 0x1C180A06, // 003B EQ R6 R5 R6
0x1C1C0C07, // 003C EQ R7 R6 R7 0x781A001F, // 003C JMPF R6 #005D
0x781E001F, // 003D JMPF R7 #005E 0x88180109, // 003D GETMBR R6 R0 K9
0x881C010A, // 003E GETMBR R7 R0 K10 0x4C1C0000, // 003E LDNIL R7
0x4C200000, // 003F LDNIL R8 0x20180C07, // 003F NE R6 R6 R7
0x201C0E08, // 0040 NE R7 R7 R8 0x781A0015, // 0040 JMPF R6 #0057
0x781E0015, // 0041 JMPF R7 #0058 0x8818010A, // 0041 GETMBR R6 R0 K10
0x881C010B, // 0042 GETMBR R7 R0 K11 0x4C1C0000, // 0042 LDNIL R7
0x4C200000, // 0043 LDNIL R8 0x20180C07, // 0043 NE R6 R6 R7
0x201C0E08, // 0044 NE R7 R7 R8 0x781A0011, // 0044 JMPF R6 #0057
0x781E0011, // 0045 JMPF R7 #0058 0xB81A1600, // 0045 GETNGBL R6 K11
0xB81E1800, // 0046 GETNGBL R7 K12 0x8C180D0C, // 0046 GETMET R6 R6 K12
0x8C1C0F0D, // 0047 GETMET R7 R7 K13 0x8820010D, // 0047 GETMBR R8 R0 K13
0x8824010E, // 0048 GETMBR R9 R0 K14 0x88240109, // 0048 GETMBR R9 R0 K9
0x8828010A, // 0049 GETMBR R10 R0 K10 0x04201009, // 0049 SUB R8 R8 R9
0x0424120A, // 004A SUB R9 R9 R10 0x5824000E, // 004A LDCONST R9 K14
0x5828000F, // 004B LDCONST R10 K15 0x8828010A, // 004B GETMBR R10 R0 K10
0x882C010B, // 004C GETMBR R11 R0 K11 0x882C0109, // 004C GETMBR R11 R0 K9
0x8830010A, // 004D GETMBR R12 R0 K10 0x0428140B, // 004D SUB R10 R10 R11
0x042C160C, // 004E SUB R11 R11 R12 0x582C000E, // 004E LDCONST R11 K14
0x5830000F, // 004F LDCONST R12 K15 0x5432270F, // 004F LDINT R12 10000
0x5436270F, // 0050 LDINT R13 10000 0x7C180C00, // 0050 CALL R6 6
0x7C1C0C00, // 0051 CALL R7 6 0x8C1C0705, // 0051 GETMET R7 R3 K5
0x8C200906, // 0052 GETMET R8 R4 K6 0x8824070F, // 0052 GETMBR R9 R3 K15
0x88280910, // 0053 GETMBR R10 R4 K16 0x5C280C00, // 0053 MOVE R10 R6
0x5C2C0E00, // 0054 MOVE R11 R7 0x7C1C0600, // 0054 CALL R7 3
0x7C200600, // 0055 CALL R8 3 0x80040E00, // 0055 RET 1 R7
0x80041000, // 0056 RET 1 R8 0x70020004, // 0056 JMP #005C
0x70020004, // 0057 JMP #005D 0x8C180705, // 0057 GETMET R6 R3 K5
0x8C1C0906, // 0058 GETMET R7 R4 K6 0x88200710, // 0058 GETMBR R8 R3 K16
0x88240911, // 0059 GETMBR R9 R4 K17 0x4C240000, // 0059 LDNIL R9
0x4C280000, // 005A LDNIL R10 0x7C180600, // 005A CALL R6 3
0x7C1C0600, // 005B CALL R7 3 0x80040C00, // 005B RET 1 R6
0x80040E00, // 005C RET 1 R7 0x7002000A, // 005C JMP #0068
0x7002000A, // 005D JMP #0069 0x541AFFFB, // 005D LDINT R6 65532
0x541EFFFB, // 005E LDINT R7 65532 0x1C180A06, // 005E EQ R6 R5 R6
0x1C1C0C07, // 005F EQ R7 R6 R7 0x781A0007, // 005F JMPF R6 #0068
0x781E0007, // 0060 JMPF R7 #0069 0x8C180705, // 0060 GETMET R6 R3 K5
0x8C1C0906, // 0061 GETMET R7 R4 K6 0x88200711, // 0061 GETMBR R8 R3 K17
0x88240912, // 0062 GETMBR R9 R4 K18 0x54260003, // 0062 LDINT R9 4
0x542A0003, // 0063 LDINT R10 4 0x00262409, // 0063 ADD R9 K18 R9
0x002A260A, // 0064 ADD R10 K19 R10 0x542A000F, // 0064 LDINT R10 16
0x542E000F, // 0065 LDINT R11 16 0x0024120A, // 0065 ADD R9 R9 R10
0x0028140B, // 0066 ADD R10 R10 R11 0x7C180600, // 0066 CALL R6 3
0x7C1C0600, // 0067 CALL R7 3 0x80040C00, // 0067 RET 1 R6
0x80040E00, // 0068 RET 1 R7 0x60180003, // 0068 GETGBL R6 G3
0x601C0003, // 0069 GETGBL R7 G3 0x5C1C0000, // 0069 MOVE R7 R0
0x5C200000, // 006A MOVE R8 R0 0x7C180200, // 006A CALL R6 1
0x7C1C0200, // 006B CALL R7 1 0x8C180D13, // 006B GETMET R6 R6 K19
0x8C1C0F14, // 006C GETMET R7 R7 K20 0x5C200200, // 006C MOVE R8 R1
0x5C240200, // 006D MOVE R9 R1 0x5C240400, // 006D MOVE R9 R2
0x5C280400, // 006E MOVE R10 R2 0x7C180600, // 006E CALL R6 3
0x7C1C0600, // 006F CALL R7 3 0x80040C00, // 006F RET 1 R6
0x80040E00, // 0070 RET 1 R7
}) })
) )
); );
@ -365,7 +363,7 @@ be_local_closure(Matter_Plugin_ShutterTilt_read_attribute, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Plugin_ShutterTilt_parse_sensors, /* name */ be_local_closure(Matter_Plugin_ShutterTilt_parse_sensors, /* name */
be_nested_proto( be_nested_proto(
10, /* nstack */ 9, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -373,53 +371,51 @@ be_local_closure(Matter_Plugin_ShutterTilt_parse_sensors, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(Shutter),
/* K1 */ be_nested_str_weak(Shutter), /* K1 */ be_nested_str_weak(tasmota_shutter_index),
/* K2 */ be_nested_str_weak(tasmota_shutter_index), /* K2 */ be_const_int(1),
/* K3 */ be_const_int(1), /* K3 */ be_nested_str_weak(contains),
/* K4 */ be_nested_str_weak(contains), /* K4 */ be_nested_str_weak(find),
/* K5 */ be_nested_str_weak(find), /* K5 */ be_nested_str_weak(Tilt),
/* K6 */ be_nested_str_weak(Tilt), /* K6 */ be_nested_str_weak(shadow_shutter_tilt),
/* K7 */ be_nested_str_weak(shadow_shutter_tilt), /* K7 */ be_nested_str_weak(attribute_updated),
/* K8 */ be_nested_str_weak(attribute_updated), /* K8 */ be_nested_str_weak(parse_sensors),
/* K9 */ be_nested_str_weak(parse_sensors),
}), }),
be_str_weak(parse_sensors), be_str_weak(parse_sensors),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[32]) { /* code */ ( &(const binstruction[31]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x60080008, // 0000 GETGBL R2 G8
0x600C0008, // 0001 GETGBL R3 G8 0x880C0101, // 0001 GETMBR R3 R0 K1
0x88100102, // 0002 GETMBR R4 R0 K2 0x000C0702, // 0002 ADD R3 R3 K2
0x00100903, // 0003 ADD R4 R4 K3 0x7C080200, // 0003 CALL R2 1
0x7C0C0200, // 0004 CALL R3 1 0x000A0002, // 0004 ADD R2 K0 R2
0x000E0203, // 0005 ADD R3 K1 R3 0x8C0C0303, // 0005 GETMET R3 R1 K3
0x8C100304, // 0006 GETMET R4 R1 K4 0x5C140400, // 0006 MOVE R5 R2
0x5C180600, // 0007 MOVE R6 R3 0x7C0C0400, // 0007 CALL R3 2
0x7C100400, // 0008 CALL R4 2 0x780E000E, // 0008 JMPF R3 #0018
0x7812000E, // 0009 JMPF R4 #0019 0x940C0202, // 0009 GETIDX R3 R1 R2
0x94100203, // 000A GETIDX R4 R1 R3 0x8C100704, // 000A GETMET R4 R3 K4
0x8C140905, // 000B GETMET R5 R4 K5 0x58180005, // 000B LDCONST R6 K5
0x581C0006, // 000C LDCONST R7 K6 0x7C100400, // 000C CALL R4 2
0x7C140400, // 000D CALL R5 2 0x4C140000, // 000D LDNIL R5
0x4C180000, // 000E LDNIL R6 0x20140805, // 000E NE R5 R4 R5
0x20180A06, // 000F NE R6 R5 R6 0x78160007, // 000F JMPF R5 #0018
0x781A0007, // 0010 JMPF R6 #0019 0x88140106, // 0010 GETMBR R5 R0 K6
0x88180107, // 0011 GETMBR R6 R0 K7 0x20140805, // 0011 NE R5 R4 R5
0x20180A06, // 0012 NE R6 R5 R6 0x78160003, // 0012 JMPF R5 #0017
0x781A0003, // 0013 JMPF R6 #0018 0x8C140107, // 0013 GETMET R5 R0 K7
0x8C180108, // 0014 GETMET R6 R0 K8 0x541E0101, // 0014 LDINT R7 258
0x54220101, // 0015 LDINT R8 258 0x5422000E, // 0015 LDINT R8 15
0x5426000E, // 0016 LDINT R9 15 0x7C140600, // 0016 CALL R5 3
0x7C180600, // 0017 CALL R6 3 0x90020C04, // 0017 SETMBR R0 K6 R4
0x90020E05, // 0018 SETMBR R0 K7 R5 0x600C0003, // 0018 GETGBL R3 G3
0x60100003, // 0019 GETGBL R4 G3 0x5C100000, // 0019 MOVE R4 R0
0x5C140000, // 001A MOVE R5 R0 0x7C0C0200, // 001A CALL R3 1
0x7C100200, // 001B CALL R4 1 0x8C0C0708, // 001B GETMET R3 R3 K8
0x8C100909, // 001C GETMET R4 R4 K9 0x5C140200, // 001C MOVE R5 R1
0x5C180200, // 001D MOVE R6 R1 0x7C0C0400, // 001D CALL R3 2
0x7C100400, // 001E CALL R4 2 0x80000000, // 001E RET 0
0x80000000, // 001F RET 0
}) })
) )
); );

View File

@ -11,7 +11,7 @@ extern const bclass be_class_Matter_Session;
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_before_remove, /* name */ be_local_closure(Matter_Session_before_remove, /* name */
be_nested_proto( be_nested_proto(
8, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -19,28 +19,25 @@ be_local_closure(Matter_Session_before_remove, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[ 7]) { /* constants */ ( &(const bvalue[ 5]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(tasmota),
/* K1 */ be_nested_str_weak(tasmota), /* K1 */ be_nested_str_weak(log),
/* K2 */ be_nested_str_weak(log), /* K2 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29),
/* K3 */ be_nested_str_weak(format), /* K3 */ be_nested_str_weak(local_session_id),
/* K4 */ be_nested_str_weak(MTR_X3A_X20_X2DSession_X20_X20_X20_X28_X256i_X29_X20_X28removed_X29), /* K4 */ be_const_int(3),
/* K5 */ be_nested_str_weak(local_session_id),
/* K6 */ be_const_int(3),
}), }),
be_str_weak(before_remove), be_str_weak(before_remove),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[10]) { /* code */ ( &(const binstruction[ 9]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xB8060000, // 0000 GETNGBL R1 K0
0xB80A0200, // 0001 GETNGBL R2 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x600C0018, // 0002 GETGBL R3 G24
0x8C100303, // 0003 GETMET R4 R1 K3 0x58100002, // 0003 LDCONST R4 K2
0x58180004, // 0004 LDCONST R6 K4 0x88140103, // 0004 GETMBR R5 R0 K3
0x881C0105, // 0005 GETMBR R7 R0 K5 0x7C0C0400, // 0005 CALL R3 2
0x7C100600, // 0006 CALL R4 3 0x58100004, // 0006 LDCONST R4 K4
0x58140006, // 0007 LDCONST R5 K6 0x7C040600, // 0007 CALL R1 3
0x7C080600, // 0008 CALL R2 3 0x80000000, // 0008 RET 0
0x80000000, // 0009 RET 0
}) })
) )
); );
@ -406,7 +403,7 @@ be_local_closure(Matter_Session_get_r2i, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_tojson, /* name */ be_local_closure(Matter_Session_tojson, /* name */
be_nested_proto( be_nested_proto(
18, /* nstack */ 16, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -414,131 +411,128 @@ be_local_closure(Matter_Session_tojson, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[24]) { /* constants */ ( &(const bvalue[22]) { /* constants */
/* K0 */ be_nested_str_weak(json), /* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(string), /* K1 */ be_nested_str_weak(introspect),
/* K2 */ be_nested_str_weak(introspect), /* K2 */ be_nested_str_weak(persist_pre),
/* K3 */ be_nested_str_weak(persist_pre), /* K3 */ be_nested_str_weak(members),
/* K4 */ be_nested_str_weak(members), /* K4 */ be_nested_str_weak(get),
/* K5 */ be_nested_str_weak(get), /* K5 */ be_nested_str_weak(function),
/* K6 */ be_nested_str_weak(function), /* K6 */ be_const_int(0),
/* K7 */ be_const_int(0), /* K7 */ be_nested_str_weak(_),
/* K8 */ be_nested_str_weak(_), /* K8 */ be_nested_str_weak(push),
/* K9 */ be_nested_str_weak(push), /* K9 */ be_nested_str_weak(stop_iteration),
/* K10 */ be_nested_str_weak(stop_iteration), /* K10 */ be_nested_str_weak(matter),
/* K11 */ be_nested_str_weak(matter), /* K11 */ be_nested_str_weak(sort),
/* K12 */ be_nested_str_weak(sort), /* K12 */ be_nested_str_weak(_X24_X24),
/* K13 */ be_nested_str_weak(_X24_X24), /* K13 */ be_nested_str_weak(tob64),
/* K14 */ be_nested_str_weak(tob64), /* K14 */ be_nested_str_weak(instance),
/* K15 */ be_nested_str_weak(instance), /* K15 */ be_nested_str_weak(_X25s_X3A_X25s),
/* K16 */ be_nested_str_weak(format), /* K16 */ be_nested_str_weak(dump),
/* K17 */ be_nested_str_weak(_X25s_X3A_X25s), /* K17 */ be_nested_str_weak(persist_post),
/* K18 */ be_nested_str_weak(dump), /* K18 */ be_nested_str_weak(_X7B),
/* K19 */ be_nested_str_weak(persist_post), /* K19 */ be_nested_str_weak(concat),
/* K20 */ be_nested_str_weak(_X7B), /* K20 */ be_nested_str_weak(_X2C),
/* K21 */ be_nested_str_weak(concat), /* K21 */ be_nested_str_weak(_X7D),
/* K22 */ be_nested_str_weak(_X2C),
/* K23 */ be_nested_str_weak(_X7D),
}), }),
be_str_weak(tojson), be_str_weak(tojson),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[96]) { /* code */ ( &(const binstruction[95]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0xA40A0200, // 0001 IMPORT R2 K1 0xA40A0200, // 0001 IMPORT R2 K1
0xA40E0400, // 0002 IMPORT R3 K2 0x8C0C0102, // 0002 GETMET R3 R0 K2
0x8C100103, // 0003 GETMET R4 R0 K3 0x7C0C0200, // 0003 CALL R3 1
0x7C100200, // 0004 CALL R4 1 0x600C0012, // 0004 GETGBL R3 G18
0x60100012, // 0005 GETGBL R4 G18 0x7C0C0000, // 0005 CALL R3 0
0x7C100000, // 0006 CALL R4 0 0x60100010, // 0006 GETGBL R4 G16
0x60140010, // 0007 GETGBL R5 G16 0x8C140503, // 0007 GETMET R5 R2 K3
0x8C180704, // 0008 GETMET R6 R3 K4 0x5C1C0000, // 0008 MOVE R7 R0
0x5C200000, // 0009 MOVE R8 R0 0x7C140400, // 0009 CALL R5 2
0x7C180400, // 000A CALL R6 2 0x7C100200, // 000A CALL R4 1
0x7C140200, // 000B CALL R5 1 0xA8020011, // 000B EXBLK 0 #001E
0xA8020011, // 000C EXBLK 0 #001F 0x5C140800, // 000C MOVE R5 R4
0x5C180A00, // 000D MOVE R6 R5 0x7C140000, // 000D CALL R5 0
0x7C180000, // 000E CALL R6 0 0x8C180504, // 000E GETMET R6 R2 K4
0x8C1C0705, // 000F GETMET R7 R3 K5 0x5C200000, // 000F MOVE R8 R0
0x5C240000, // 0010 MOVE R9 R0 0x5C240A00, // 0010 MOVE R9 R5
0x5C280C00, // 0011 MOVE R10 R6 0x7C180600, // 0011 CALL R6 3
0x7C1C0600, // 0012 CALL R7 3 0x601C0004, // 0012 GETGBL R7 G4
0x60200004, // 0013 GETGBL R8 G4 0x5C200C00, // 0013 MOVE R8 R6
0x5C240E00, // 0014 MOVE R9 R7 0x7C1C0200, // 0014 CALL R7 1
0x7C200200, // 0015 CALL R8 1 0x201C0F05, // 0015 NE R7 R7 K5
0x20201106, // 0016 NE R8 R8 K6 0x781E0005, // 0016 JMPF R7 #001D
0x78220005, // 0017 JMPF R8 #001E 0x941C0B06, // 0017 GETIDX R7 R5 K6
0x94200D07, // 0018 GETIDX R8 R6 K7 0x201C0F07, // 0018 NE R7 R7 K7
0x20201108, // 0019 NE R8 R8 K8 0x781E0002, // 0019 JMPF R7 #001D
0x78220002, // 001A JMPF R8 #001E 0x8C1C0708, // 001A GETMET R7 R3 K8
0x8C200909, // 001B GETMET R8 R4 K9 0x5C240A00, // 001B MOVE R9 R5
0x5C280C00, // 001C MOVE R10 R6 0x7C1C0400, // 001C CALL R7 2
0x7C200400, // 001D CALL R8 2 0x7001FFED, // 001D JMP #000C
0x7001FFED, // 001E JMP #000D 0x58100009, // 001E LDCONST R4 K9
0x5814000A, // 001F LDCONST R5 K10 0xAC100200, // 001F CATCH R4 1 0
0xAC140200, // 0020 CATCH R5 1 0 0xB0080000, // 0020 RAISE 2 R0 R0
0xB0080000, // 0021 RAISE 2 R0 R0 0xB8121400, // 0021 GETNGBL R4 K10
0xB8161600, // 0022 GETNGBL R5 K11 0x8C10090B, // 0022 GETMET R4 R4 K11
0x8C140B0C, // 0023 GETMET R5 R5 K12 0x5C180600, // 0023 MOVE R6 R3
0x5C1C0800, // 0024 MOVE R7 R4 0x7C100400, // 0024 CALL R4 2
0x7C140400, // 0025 CALL R5 2 0x5C0C0800, // 0025 MOVE R3 R4
0x5C100A00, // 0026 MOVE R4 R5 0x60100012, // 0026 GETGBL R4 G18
0x60140012, // 0027 GETGBL R5 G18 0x7C100000, // 0027 CALL R4 0
0x7C140000, // 0028 CALL R5 0 0x60140010, // 0028 GETGBL R5 G16
0x60180010, // 0029 GETGBL R6 G16 0x5C180600, // 0029 MOVE R6 R3
0x5C1C0800, // 002A MOVE R7 R4 0x7C140200, // 002A CALL R5 1
0x7C180200, // 002B CALL R6 1 0xA8020027, // 002B EXBLK 0 #0054
0xA8020027, // 002C EXBLK 0 #0055 0x5C180A00, // 002C MOVE R6 R5
0x5C1C0C00, // 002D MOVE R7 R6 0x7C180000, // 002D CALL R6 0
0x7C1C0000, // 002E CALL R7 0 0x8C1C0504, // 002E GETMET R7 R2 K4
0x8C200705, // 002F GETMET R8 R3 K5 0x5C240000, // 002F MOVE R9 R0
0x5C280000, // 0030 MOVE R10 R0 0x5C280C00, // 0030 MOVE R10 R6
0x5C2C0E00, // 0031 MOVE R11 R7 0x7C1C0600, // 0031 CALL R7 3
0x7C200600, // 0032 CALL R8 3 0x4C200000, // 0032 LDNIL R8
0x4C240000, // 0033 LDNIL R9 0x1C200E08, // 0033 EQ R8 R7 R8
0x1C241009, // 0034 EQ R9 R8 R9 0x78220000, // 0034 JMPF R8 #0036
0x78260000, // 0035 JMPF R9 #0037 0x7001FFF5, // 0035 JMP #002C
0x7001FFF5, // 0036 JMP #002D 0x6020000F, // 0036 GETGBL R8 G15
0x6024000F, // 0037 GETGBL R9 G15 0x5C240E00, // 0037 MOVE R9 R7
0x5C281000, // 0038 MOVE R10 R8 0x60280015, // 0038 GETGBL R10 G21
0x602C0015, // 0039 GETGBL R11 G21 0x7C200400, // 0039 CALL R8 2
0x7C240400, // 003A CALL R9 2 0x78220004, // 003A JMPF R8 #0040
0x78260004, // 003B JMPF R9 #0041 0x8C200F0D, // 003B GETMET R8 R7 K13
0x8C24110E, // 003C GETMET R9 R8 K14 0x7C200200, // 003C CALL R8 1
0x7C240200, // 003D CALL R9 1 0x00221808, // 003D ADD R8 K12 R8
0x00261A09, // 003E ADD R9 K13 R9 0x5C1C1000, // 003E MOVE R7 R8
0x5C201200, // 003F MOVE R8 R9 0x70020005, // 003F JMP #0046
0x70020005, // 0040 JMP #0047 0x60200004, // 0040 GETGBL R8 G4
0x60240004, // 0041 GETGBL R9 G4 0x5C240E00, // 0041 MOVE R9 R7
0x5C281000, // 0042 MOVE R10 R8 0x7C200200, // 0042 CALL R8 1
0x7C240200, // 0043 CALL R9 1 0x1C20110E, // 0043 EQ R8 R8 K14
0x1C24130F, // 0044 EQ R9 R9 K15 0x78220000, // 0044 JMPF R8 #0046
0x78260000, // 0045 JMPF R9 #0047 0x7001FFE5, // 0045 JMP #002C
0x7001FFE5, // 0046 JMP #002D 0x8C200908, // 0046 GETMET R8 R4 K8
0x8C240B09, // 0047 GETMET R9 R5 K9 0x60280018, // 0047 GETGBL R10 G24
0x8C2C0510, // 0048 GETMET R11 R2 K16 0x582C000F, // 0048 LDCONST R11 K15
0x58340011, // 0049 LDCONST R13 K17 0x8C300310, // 0049 GETMET R12 R1 K16
0x8C380312, // 004A GETMET R14 R1 K18 0x60380008, // 004A GETGBL R14 G8
0x60400008, // 004B GETGBL R16 G8 0x5C3C0C00, // 004B MOVE R15 R6
0x5C440E00, // 004C MOVE R17 R7 0x7C380200, // 004C CALL R14 1
0x7C400200, // 004D CALL R16 1 0x7C300400, // 004D CALL R12 2
0x7C380400, // 004E CALL R14 2 0x8C340310, // 004E GETMET R13 R1 K16
0x8C3C0312, // 004F GETMET R15 R1 K18 0x5C3C0E00, // 004F MOVE R15 R7
0x5C441000, // 0050 MOVE R17 R8 0x7C340400, // 0050 CALL R13 2
0x7C3C0400, // 0051 CALL R15 2 0x7C280600, // 0051 CALL R10 3
0x7C2C0800, // 0052 CALL R11 4 0x7C200400, // 0052 CALL R8 2
0x7C240400, // 0053 CALL R9 2 0x7001FFD7, // 0053 JMP #002C
0x7001FFD7, // 0054 JMP #002D 0x58140009, // 0054 LDCONST R5 K9
0x5818000A, // 0055 LDCONST R6 K10 0xAC140200, // 0055 CATCH R5 1 0
0xAC180200, // 0056 CATCH R6 1 0 0xB0080000, // 0056 RAISE 2 R0 R0
0xB0080000, // 0057 RAISE 2 R0 R0 0x8C140111, // 0057 GETMET R5 R0 K17
0x8C180113, // 0058 GETMET R6 R0 K19 0x7C140200, // 0058 CALL R5 1
0x7C180200, // 0059 CALL R6 1 0x8C140913, // 0059 GETMET R5 R4 K19
0x8C180B15, // 005A GETMET R6 R5 K21 0x581C0014, // 005A LDCONST R7 K20
0x58200016, // 005B LDCONST R8 K22 0x7C140400, // 005B CALL R5 2
0x7C180400, // 005C CALL R6 2 0x00162405, // 005C ADD R5 K18 R5
0x001A2806, // 005D ADD R6 K20 R6 0x00140B15, // 005D ADD R5 R5 K21
0x00180D17, // 005E ADD R6 R6 K23 0x80040A00, // 005E RET 1 R5
0x80040C00, // 005F RET 1 R6
}) })
) )
); );
@ -1535,7 +1529,7 @@ be_local_closure(Matter_Session_get_ac, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_counter_snd_next, /* name */ be_local_closure(Matter_Session_counter_snd_next, /* name */
be_nested_proto( be_nested_proto(
7, /* nstack */ 6, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1543,41 +1537,39 @@ be_local_closure(Matter_Session_counter_snd_next, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[10]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(_counter_snd_impl),
/* K1 */ be_nested_str_weak(_counter_snd_impl), /* K1 */ be_nested_str_weak(next),
/* K2 */ be_nested_str_weak(next), /* K2 */ be_nested_str_weak(matter),
/* K3 */ be_nested_str_weak(matter), /* K3 */ be_nested_str_weak(Counter),
/* K4 */ be_nested_str_weak(Counter), /* K4 */ be_nested_str_weak(is_greater),
/* K5 */ be_nested_str_weak(is_greater), /* K5 */ be_nested_str_weak(counter_snd),
/* K6 */ be_nested_str_weak(counter_snd), /* K6 */ be_nested_str_weak(_COUNTER_SND_INCR),
/* K7 */ be_nested_str_weak(_COUNTER_SND_INCR), /* K7 */ be_nested_str_weak(does_persist),
/* K8 */ be_nested_str_weak(does_persist), /* K8 */ be_nested_str_weak(save),
/* K9 */ be_nested_str_weak(save),
}), }),
be_str_weak(counter_snd_next), be_str_weak(counter_snd_next),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[20]) { /* code */ ( &(const binstruction[19]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0x88040100, // 0000 GETMBR R1 R0 K0
0x88080101, // 0001 GETMBR R2 R0 K1 0x8C040301, // 0001 GETMET R1 R1 K1
0x8C080502, // 0002 GETMET R2 R2 K2 0x7C040200, // 0002 CALL R1 1
0x7C080200, // 0003 CALL R2 1 0xB80A0400, // 0003 GETNGBL R2 K2
0xB80E0600, // 0004 GETNGBL R3 K3 0x88080503, // 0004 GETMBR R2 R2 K3
0x880C0704, // 0005 GETMBR R3 R3 K4 0x8C080504, // 0005 GETMET R2 R2 K4
0x8C0C0705, // 0006 GETMET R3 R3 K5 0x5C100200, // 0006 MOVE R4 R1
0x5C140400, // 0007 MOVE R5 R2 0x88140105, // 0007 GETMBR R5 R0 K5
0x88180106, // 0008 GETMBR R6 R0 K6 0x7C080600, // 0008 CALL R2 3
0x7C0C0600, // 0009 CALL R3 3 0x780A0007, // 0009 JMPF R2 #0012
0x780E0007, // 000A JMPF R3 #0013 0x88080106, // 000A GETMBR R2 R0 K6
0x880C0107, // 000B GETMBR R3 R0 K7 0x00080202, // 000B ADD R2 R1 R2
0x000C0403, // 000C ADD R3 R2 R3 0x90020A02, // 000C SETMBR R0 K5 R2
0x90020C03, // 000D SETMBR R0 K6 R3 0x8C080107, // 000D GETMET R2 R0 K7
0x8C0C0108, // 000E GETMET R3 R0 K8 0x7C080200, // 000E CALL R2 1
0x7C0C0200, // 000F CALL R3 1 0x780A0001, // 000F JMPF R2 #0012
0x780E0001, // 0010 JMPF R3 #0013 0x8C080108, // 0010 GETMET R2 R0 K8
0x8C0C0109, // 0011 GETMET R3 R0 K9 0x7C080200, // 0011 CALL R2 1
0x7C0C0200, // 0012 CALL R3 1 0x80040200, // 0012 RET 1 R1
0x80040400, // 0013 RET 1 R2
}) })
) )
); );

View File

@ -332,7 +332,7 @@ be_local_closure(Matter_Session_Store_next_fabric_idx, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_Store_load_fabrics, /* name */ be_local_closure(Matter_Session_Store_load_fabrics, /* name */
be_nested_proto( be_nested_proto(
17, /* nstack */ 16, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -340,158 +340,155 @@ be_local_closure(Matter_Session_Store_load_fabrics, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[29]) { /* constants */ ( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_nested_str_weak(sessions),
/* K1 */ be_nested_str_weak(sessions), /* K1 */ be_nested_str_weak(matter),
/* K2 */ be_nested_str_weak(matter), /* K2 */ be_nested_str_weak(Expirable_list),
/* K3 */ be_nested_str_weak(Expirable_list), /* K3 */ be_nested_str_weak(fabrics),
/* K4 */ be_nested_str_weak(fabrics), /* K4 */ be_nested_str_weak(_FABRICS),
/* K5 */ be_nested_str_weak(_FABRICS), /* K5 */ be_nested_str_weak(read),
/* K6 */ be_nested_str_weak(read), /* K6 */ be_nested_str_weak(close),
/* K7 */ be_nested_str_weak(close), /* K7 */ be_nested_str_weak(json),
/* K8 */ be_nested_str_weak(json), /* K8 */ be_nested_str_weak(load),
/* K9 */ be_nested_str_weak(load), /* K9 */ be_nested_str_weak(tasmota),
/* K10 */ be_nested_str_weak(tasmota), /* K10 */ be_nested_str_weak(gc),
/* K11 */ be_nested_str_weak(gc), /* K11 */ be_nested_str_weak(Fabric),
/* K12 */ be_nested_str_weak(Fabric), /* K12 */ be_nested_str_weak(fromjson),
/* K13 */ be_nested_str_weak(fromjson), /* K13 */ be_nested_str_weak(set_no_expiration),
/* K14 */ be_nested_str_weak(set_no_expiration), /* K14 */ be_nested_str_weak(set_persist),
/* K15 */ be_nested_str_weak(set_persist), /* K15 */ be_nested_str_weak(find),
/* K16 */ be_nested_str_weak(find), /* K16 */ be_nested_str_weak(_sessions),
/* K17 */ be_nested_str_weak(_sessions), /* K17 */ be_nested_str_weak(Session),
/* K18 */ be_nested_str_weak(Session), /* K18 */ be_nested_str_weak(add_session),
/* K19 */ be_nested_str_weak(add_session), /* K19 */ be_nested_str_weak(stop_iteration),
/* K20 */ be_nested_str_weak(stop_iteration), /* K20 */ be_nested_str_weak(push),
/* K21 */ be_nested_str_weak(push), /* K21 */ be_nested_str_weak(log),
/* K22 */ be_nested_str_weak(log), /* K22 */ be_nested_str_weak(MTR_X3A_X20Loaded_X20_X25i_X20fabric_X28s_X29),
/* K23 */ be_nested_str_weak(format), /* K23 */ be_const_int(2),
/* K24 */ be_nested_str_weak(MTR_X3A_X20Loaded_X20_X25i_X20fabric_X28s_X29), /* K24 */ be_nested_str_weak(io_error),
/* K25 */ be_const_int(2), /* K25 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Aload_X20Exception_X3A),
/* K26 */ be_nested_str_weak(io_error), /* K26 */ be_nested_str_weak(_X7C),
/* K27 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Aload_X20Exception_X3A),
/* K28 */ be_nested_str_weak(_X7C),
}), }),
be_str_weak(load_fabrics), be_str_weak(load_fabrics),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[118]) { /* code */ ( &(const binstruction[117]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA802005F, // 0000 EXBLK 0 #0061
0xA802005F, // 0001 EXBLK 0 #0062 0xB8060200, // 0001 GETNGBL R1 K1
0xB80A0400, // 0002 GETNGBL R2 K2 0x8C040302, // 0002 GETMET R1 R1 K2
0x8C080503, // 0003 GETMET R2 R2 K3 0x7C040200, // 0003 CALL R1 1
0x7C080200, // 0004 CALL R2 1 0x90020001, // 0004 SETMBR R0 K0 R1
0x90020202, // 0005 SETMBR R0 K1 R2 0xB8060200, // 0005 GETNGBL R1 K1
0xB80A0400, // 0006 GETNGBL R2 K2 0x8C040302, // 0006 GETMET R1 R1 K2
0x8C080503, // 0007 GETMET R2 R2 K3 0x7C040200, // 0007 CALL R1 1
0x7C080200, // 0008 CALL R2 1 0x90020601, // 0008 SETMBR R0 K3 R1
0x90020802, // 0009 SETMBR R0 K4 R2 0x60040011, // 0009 GETGBL R1 G17
0x60080011, // 000A GETGBL R2 G17 0x88080104, // 000A GETMBR R2 R0 K4
0x880C0105, // 000B GETMBR R3 R0 K5 0x7C040200, // 000B CALL R1 1
0x7C080200, // 000C CALL R2 1 0x8C080305, // 000C GETMET R2 R1 K5
0x8C0C0506, // 000D GETMET R3 R2 K6 0x7C080200, // 000D CALL R2 1
0x7C0C0200, // 000E CALL R3 1 0x8C0C0306, // 000E GETMET R3 R1 K6
0x8C100507, // 000F GETMET R4 R2 K7 0x7C0C0200, // 000F CALL R3 1
0x7C100200, // 0010 CALL R4 1 0xA40E0E00, // 0010 IMPORT R3 K7
0xA4121000, // 0011 IMPORT R4 K8 0x8C100708, // 0011 GETMET R4 R3 K8
0x8C140909, // 0012 GETMET R5 R4 K9 0x5C180400, // 0012 MOVE R6 R2
0x5C1C0600, // 0013 MOVE R7 R3 0x7C100400, // 0013 CALL R4 2
0x7C140400, // 0014 CALL R5 2 0x4C080000, // 0014 LDNIL R2
0x4C0C0000, // 0015 LDNIL R3 0xB8161200, // 0015 GETNGBL R5 K9
0xB81A1400, // 0016 GETNGBL R6 K10 0x8C140B0A, // 0016 GETMET R5 R5 K10
0x8C180D0B, // 0017 GETMET R6 R6 K11 0x7C140200, // 0017 CALL R5 1
0x7C180200, // 0018 CALL R6 1 0x60140010, // 0018 GETGBL R5 G16
0x60180010, // 0019 GETGBL R6 G16 0x5C180800, // 0019 MOVE R6 R4
0x5C1C0A00, // 001A MOVE R7 R5 0x7C140200, // 001A CALL R5 1
0x7C180200, // 001B CALL R6 1 0xA8020035, // 001B EXBLK 0 #0052
0xA8020035, // 001C EXBLK 0 #0053 0x5C180A00, // 001C MOVE R6 R5
0x5C1C0C00, // 001D MOVE R7 R6 0x7C180000, // 001D CALL R6 0
0x7C1C0000, // 001E CALL R7 0 0xB81E0200, // 001E GETNGBL R7 K1
0xB8220400, // 001F GETNGBL R8 K2 0x881C0F0B, // 001F GETMBR R7 R7 K11
0x8820110C, // 0020 GETMBR R8 R8 K12 0x8C1C0F0C, // 0020 GETMET R7 R7 K12
0x8C20110D, // 0021 GETMET R8 R8 K13 0x5C240000, // 0021 MOVE R9 R0
0x5C280000, // 0022 MOVE R10 R0 0x5C280C00, // 0022 MOVE R10 R6
0x5C2C0E00, // 0023 MOVE R11 R7 0x7C1C0600, // 0023 CALL R7 3
0x7C200600, // 0024 CALL R8 3 0x8C200F0D, // 0024 GETMET R8 R7 K13
0x8C24110E, // 0025 GETMET R9 R8 K14 0x7C200200, // 0025 CALL R8 1
0x7C240200, // 0026 CALL R9 1 0x8C200F0E, // 0026 GETMET R8 R7 K14
0x8C24110F, // 0027 GETMET R9 R8 K15 0x50280200, // 0027 LDBOOL R10 1 0
0x502C0200, // 0028 LDBOOL R11 1 0 0x7C200400, // 0028 CALL R8 2
0x7C240400, // 0029 CALL R9 2 0x8C200D0F, // 0029 GETMET R8 R6 K15
0x8C240F10, // 002A GETMET R9 R7 K16 0x58280010, // 002A LDCONST R10 K16
0x582C0011, // 002B LDCONST R11 K17 0x602C0012, // 002B GETGBL R11 G18
0x60300012, // 002C GETGBL R12 G18 0x7C2C0000, // 002C CALL R11 0
0x7C300000, // 002D CALL R12 0 0x7C200600, // 002D CALL R8 3
0x7C240600, // 002E CALL R9 3 0x60240010, // 002E GETGBL R9 G16
0x60280010, // 002F GETGBL R10 G16 0x5C281000, // 002F MOVE R10 R8
0x5C2C1200, // 0030 MOVE R11 R9 0x7C240200, // 0030 CALL R9 1
0x7C280200, // 0031 CALL R10 1 0xA8020017, // 0031 EXBLK 0 #004A
0xA8020017, // 0032 EXBLK 0 #004B 0x5C281200, // 0032 MOVE R10 R9
0x5C2C1400, // 0033 MOVE R11 R10 0x7C280000, // 0033 CALL R10 0
0x7C2C0000, // 0034 CALL R11 0 0xB82E0200, // 0034 GETNGBL R11 K1
0xB8320400, // 0035 GETNGBL R12 K2 0x882C1711, // 0035 GETMBR R11 R11 K17
0x88301912, // 0036 GETMBR R12 R12 K18 0x8C2C170C, // 0036 GETMET R11 R11 K12
0x8C30190D, // 0037 GETMET R12 R12 K13 0x5C340000, // 0037 MOVE R13 R0
0x5C380000, // 0038 MOVE R14 R0 0x5C381400, // 0038 MOVE R14 R10
0x5C3C1600, // 0039 MOVE R15 R11 0x5C3C0E00, // 0039 MOVE R15 R7
0x5C401000, // 003A MOVE R16 R8 0x7C2C0800, // 003A CALL R11 4
0x7C300800, // 003B CALL R12 4 0x4C300000, // 003B LDNIL R12
0x4C340000, // 003C LDNIL R13 0x2030160C, // 003C NE R12 R11 R12
0x2034180D, // 003D NE R13 R12 R13 0x7832000A, // 003D JMPF R12 #0049
0x7836000A, // 003E JMPF R13 #004A 0x8C30170D, // 003E GETMET R12 R11 K13
0x8C34190E, // 003F GETMET R13 R12 K14 0x7C300200, // 003F CALL R12 1
0x7C340200, // 0040 CALL R13 1 0x8C30170E, // 0040 GETMET R12 R11 K14
0x8C34190F, // 0041 GETMET R13 R12 K15 0x50380200, // 0041 LDBOOL R14 1 0
0x503C0200, // 0042 LDBOOL R15 1 0 0x7C300400, // 0042 CALL R12 2
0x7C340400, // 0043 CALL R13 2 0x8C300112, // 0043 GETMET R12 R0 K18
0x8C340113, // 0044 GETMET R13 R0 K19 0x5C381600, // 0044 MOVE R14 R11
0x5C3C1800, // 0045 MOVE R15 R12 0x7C300400, // 0045 CALL R12 2
0x7C340400, // 0046 CALL R13 2 0x8C300F12, // 0046 GETMET R12 R7 K18
0x8C341113, // 0047 GETMET R13 R8 K19 0x5C381600, // 0047 MOVE R14 R11
0x5C3C1800, // 0048 MOVE R15 R12 0x7C300400, // 0048 CALL R12 2
0x7C340400, // 0049 CALL R13 2 0x7001FFE7, // 0049 JMP #0032
0x7001FFE7, // 004A JMP #0033 0x58240013, // 004A LDCONST R9 K19
0x58280014, // 004B LDCONST R10 K20 0xAC240200, // 004B CATCH R9 1 0
0xAC280200, // 004C CATCH R10 1 0 0xB0080000, // 004C RAISE 2 R0 R0
0xB0080000, // 004D RAISE 2 R0 R0 0x88240103, // 004D GETMBR R9 R0 K3
0x88280104, // 004E GETMBR R10 R0 K4 0x8C241314, // 004E GETMET R9 R9 K20
0x8C281515, // 004F GETMET R10 R10 K21 0x5C2C0E00, // 004F MOVE R11 R7
0x5C301000, // 0050 MOVE R12 R8 0x7C240400, // 0050 CALL R9 2
0x7C280400, // 0051 CALL R10 2 0x7001FFC9, // 0051 JMP #001C
0x7001FFC9, // 0052 JMP #001D 0x58140013, // 0052 LDCONST R5 K19
0x58180014, // 0053 LDCONST R6 K20 0xAC140200, // 0053 CATCH R5 1 0
0xAC180200, // 0054 CATCH R6 1 0 0xB0080000, // 0054 RAISE 2 R0 R0
0xB0080000, // 0055 RAISE 2 R0 R0 0xB8161200, // 0055 GETNGBL R5 K9
0xB81A1400, // 0056 GETNGBL R6 K10 0x8C140B15, // 0056 GETMET R5 R5 K21
0x8C180D16, // 0057 GETMET R6 R6 K22 0x601C0018, // 0057 GETGBL R7 G24
0x8C200317, // 0058 GETMET R8 R1 K23 0x58200016, // 0058 LDCONST R8 K22
0x58280018, // 0059 LDCONST R10 K24 0x6024000C, // 0059 GETGBL R9 G12
0x602C000C, // 005A GETGBL R11 G12 0x88280103, // 005A GETMBR R10 R0 K3
0x88300104, // 005B GETMBR R12 R0 K4 0x7C240200, // 005B CALL R9 1
0x7C2C0200, // 005C CALL R11 1 0x7C1C0400, // 005C CALL R7 2
0x7C200600, // 005D CALL R8 3 0x58200017, // 005D LDCONST R8 K23
0x58240019, // 005E LDCONST R9 K25 0x7C140600, // 005E CALL R5 3
0x7C180600, // 005F CALL R6 3 0xA8040001, // 005F EXBLK 1 1
0xA8040001, // 0060 EXBLK 1 1 0x70020012, // 0060 JMP #0074
0x70020012, // 0061 JMP #0075 0xAC040002, // 0061 CATCH R1 0 2
0xAC080002, // 0062 CATCH R2 0 2 0x7002000F, // 0062 JMP #0073
0x7002000F, // 0063 JMP #0074 0x200C0318, // 0063 NE R3 R1 K24
0x2010051A, // 0064 NE R4 R2 K26 0x780E000C, // 0064 JMPF R3 #0072
0x7812000C, // 0065 JMPF R4 #0073 0xB80E1200, // 0065 GETNGBL R3 K9
0xB8121400, // 0066 GETNGBL R4 K10 0x8C0C0715, // 0066 GETMET R3 R3 K21
0x8C100916, // 0067 GETMET R4 R4 K22 0x60140008, // 0067 GETGBL R5 G8
0x60180008, // 0068 GETGBL R6 G8 0x5C180200, // 0068 MOVE R6 R1
0x5C1C0400, // 0069 MOVE R7 R2 0x7C140200, // 0069 CALL R5 1
0x7C180200, // 006A CALL R6 1 0x00163205, // 006A ADD R5 K25 R5
0x001A3606, // 006B ADD R6 K27 R6 0x00140B1A, // 006B ADD R5 R5 K26
0x00180D1C, // 006C ADD R6 R6 K28 0x60180008, // 006C GETGBL R6 G8
0x601C0008, // 006D GETGBL R7 G8 0x5C1C0400, // 006D MOVE R7 R2
0x5C200600, // 006E MOVE R8 R3 0x7C180200, // 006E CALL R6 1
0x7C1C0200, // 006F CALL R7 1 0x00140A06, // 006F ADD R5 R5 R6
0x00180C07, // 0070 ADD R6 R6 R7 0x58180017, // 0070 LDCONST R6 K23
0x581C0019, // 0071 LDCONST R7 K25 0x7C0C0600, // 0071 CALL R3 3
0x7C100600, // 0072 CALL R4 3 0x70020000, // 0072 JMP #0074
0x70020000, // 0073 JMP #0075 0xB0080000, // 0073 RAISE 2 R0 R0
0xB0080000, // 0074 RAISE 2 R0 R0 0x80000000, // 0074 RET 0
0x80000000, // 0075 RET 0
}) })
) )
); );
@ -1088,7 +1085,7 @@ be_local_closure(Matter_Session_Store_sessions_active, /* name */
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name */ be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name */
be_nested_proto( be_nested_proto(
14, /* nstack */ 12, /* nstack */
2, /* argc */ 2, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1096,61 +1093,58 @@ be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name *
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[11]) { /* constants */ ( &(const bvalue[ 9]) { /* constants */
/* K0 */ be_nested_str_weak(string), /* K0 */ be_const_int(0),
/* K1 */ be_const_int(0), /* K1 */ be_nested_str_weak(sessions),
/* K2 */ be_nested_str_weak(sessions), /* K2 */ be_nested_str_weak(tasmota),
/* K3 */ be_nested_str_weak(tasmota), /* K3 */ be_nested_str_weak(log),
/* K4 */ be_nested_str_weak(log), /* K4 */ be_nested_str_weak(MTR_X3A_X20session_X2Eresumption_id_X3D_X25s_X20vs_X20_X25s),
/* K5 */ be_nested_str_weak(format), /* K5 */ be_nested_str_weak(resumption_id),
/* K6 */ be_nested_str_weak(MTR_X3A_X20session_X2Eresumption_id_X3D_X25s_X20vs_X20_X25s), /* K6 */ be_nested_str_weak(shared_secret),
/* K7 */ be_nested_str_weak(resumption_id), /* K7 */ be_nested_str_weak(update),
/* K8 */ be_nested_str_weak(shared_secret), /* K8 */ be_const_int(1),
/* K9 */ be_nested_str_weak(update),
/* K10 */ be_const_int(1),
}), }),
be_str_weak(find_session_by_resumption_id), be_str_weak(find_session_by_resumption_id),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[39]) { /* code */ ( &(const binstruction[38]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0 0x5C080200, // 0000 MOVE R2 R1
0x5C0C0200, // 0001 MOVE R3 R1 0x740A0001, // 0001 JMPT R2 #0004
0x740E0001, // 0002 JMPT R3 #0005 0x4C080000, // 0002 LDNIL R2
0x4C0C0000, // 0003 LDNIL R3 0x80040400, // 0003 RET 1 R2
0x80040600, // 0004 RET 1 R3 0x58080000, // 0004 LDCONST R2 K0
0x580C0001, // 0005 LDCONST R3 K1 0x880C0101, // 0005 GETMBR R3 R0 K1
0x88100102, // 0006 GETMBR R4 R0 K2 0x6010000C, // 0006 GETGBL R4 G12
0x6014000C, // 0007 GETGBL R5 G12 0x5C140600, // 0007 MOVE R5 R3
0x5C180800, // 0008 MOVE R6 R4 0x7C100200, // 0008 CALL R4 1
0x7C140200, // 0009 CALL R5 1 0x14100404, // 0009 LT R4 R2 R4
0x14140605, // 000A LT R5 R3 R5 0x78120019, // 000A JMPF R4 #0025
0x78160019, // 000B JMPF R5 #0026 0x94100602, // 000B GETIDX R4 R3 R2
0x94140803, // 000C GETIDX R5 R4 R3 0xB8160400, // 000C GETNGBL R5 K2
0xB81A0600, // 000D GETNGBL R6 K3 0x8C140B03, // 000D GETMET R5 R5 K3
0x8C180D04, // 000E GETMET R6 R6 K4 0x601C0018, // 000E GETGBL R7 G24
0x8C200505, // 000F GETMET R8 R2 K5 0x58200004, // 000F LDCONST R8 K4
0x58280006, // 0010 LDCONST R10 K6 0x60240008, // 0010 GETGBL R9 G8
0x602C0008, // 0011 GETGBL R11 G8 0x88280905, // 0011 GETMBR R10 R4 K5
0x88300B07, // 0012 GETMBR R12 R5 K7 0x7C240200, // 0012 CALL R9 1
0x7C2C0200, // 0013 CALL R11 1 0x60280008, // 0013 GETGBL R10 G8
0x60300008, // 0014 GETGBL R12 G8 0x5C2C0200, // 0014 MOVE R11 R1
0x5C340200, // 0015 MOVE R13 R1 0x7C280200, // 0015 CALL R10 1
0x7C300200, // 0016 CALL R12 1 0x7C1C0600, // 0016 CALL R7 3
0x7C200800, // 0017 CALL R8 4 0x54220003, // 0017 LDINT R8 4
0x54260003, // 0018 LDINT R9 4 0x7C140600, // 0018 CALL R5 3
0x7C180600, // 0019 CALL R6 3 0x88140905, // 0019 GETMBR R5 R4 K5
0x88180B07, // 001A GETMBR R6 R5 K7 0x1C140A01, // 001A EQ R5 R5 R1
0x1C180C01, // 001B EQ R6 R6 R1 0x78160006, // 001B JMPF R5 #0023
0x781A0006, // 001C JMPF R6 #0024 0x88140906, // 001C GETMBR R5 R4 K6
0x88180B08, // 001D GETMBR R6 R5 K8 0x4C180000, // 001D LDNIL R6
0x4C1C0000, // 001E LDNIL R7 0x20140A06, // 001E NE R5 R5 R6
0x20180C07, // 001F NE R6 R6 R7 0x78160002, // 001F JMPF R5 #0023
0x781A0002, // 0020 JMPF R6 #0024 0x8C140907, // 0020 GETMET R5 R4 K7
0x8C180B09, // 0021 GETMET R6 R5 K9 0x7C140200, // 0021 CALL R5 1
0x7C180200, // 0022 CALL R6 1 0x80040800, // 0022 RET 1 R4
0x80040A00, // 0023 RET 1 R5 0x00080508, // 0023 ADD R2 R2 K8
0x000C070A, // 0024 ADD R3 R3 K10 0x7001FFE0, // 0024 JMP #0006
0x7001FFE0, // 0025 JMP #0007 0x80000000, // 0025 RET 0
0x80000000, // 0026 RET 0
}) })
) )
); );
@ -1162,7 +1156,7 @@ be_local_closure(Matter_Session_Store_find_session_by_resumption_id, /* name *
********************************************************************/ ********************************************************************/
be_local_closure(Matter_Session_Store_save_fabrics, /* name */ be_local_closure(Matter_Session_Store_save_fabrics, /* name */
be_nested_proto( be_nested_proto(
14, /* nstack */ 12, /* nstack */
1, /* argc */ 1, /* argc */
2, /* varg */ 2, /* varg */
0, /* has upvals */ 0, /* has upvals */
@ -1170,7 +1164,7 @@ be_local_closure(Matter_Session_Store_save_fabrics, /* name */
0, /* has sup protos */ 0, /* has sup protos */
NULL, /* no sub protos */ NULL, /* no sub protos */
1, /* has constants */ 1, /* has constants */
( &(const bvalue[29]) { /* constants */ ( &(const bvalue[27]) { /* constants */
/* K0 */ be_nested_str_weak(json), /* K0 */ be_nested_str_weak(json),
/* K1 */ be_nested_str_weak(remove_expired), /* K1 */ be_nested_str_weak(remove_expired),
/* K2 */ be_const_int(0), /* K2 */ be_const_int(0),
@ -1185,25 +1179,23 @@ be_local_closure(Matter_Session_Store_save_fabrics, /* name */
/* K11 */ be_nested_str_weak(concat), /* K11 */ be_nested_str_weak(concat),
/* K12 */ be_nested_str_weak(_X2C), /* K12 */ be_nested_str_weak(_X2C),
/* K13 */ be_nested_str_weak(_X5D), /* K13 */ be_nested_str_weak(_X5D),
/* K14 */ be_nested_str_weak(string), /* K14 */ be_nested_str_weak(_FABRICS),
/* K15 */ be_nested_str_weak(_FABRICS), /* K15 */ be_nested_str_weak(w),
/* K16 */ be_nested_str_weak(w), /* K16 */ be_nested_str_weak(write),
/* K17 */ be_nested_str_weak(write), /* K17 */ be_nested_str_weak(close),
/* K18 */ be_nested_str_weak(close), /* K18 */ be_nested_str_weak(tasmota),
/* K19 */ be_nested_str_weak(tasmota), /* K19 */ be_nested_str_weak(log),
/* K20 */ be_nested_str_weak(log), /* K20 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20_X25i_X20fabric_X28s_X29_X20and_X20_X25i_X20session_X28s_X29),
/* K21 */ be_nested_str_weak(format), /* K21 */ be_const_int(3),
/* K22 */ be_nested_str_weak(MTR_X3A_X20_X3DSaved_X20_X20_X20_X20_X20_X25i_X20fabric_X28s_X29_X20and_X20_X25i_X20session_X28s_X29), /* K22 */ be_nested_str_weak(device),
/* K23 */ be_const_int(3), /* K23 */ be_nested_str_weak(event_fabrics_saved),
/* K24 */ be_nested_str_weak(device), /* K24 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A),
/* K25 */ be_nested_str_weak(event_fabrics_saved), /* K25 */ be_nested_str_weak(_X7C),
/* K26 */ be_nested_str_weak(MTR_X3A_X20Session_Store_X3A_X3Asave_X20Exception_X3A), /* K26 */ be_const_int(2),
/* K27 */ be_nested_str_weak(_X7C),
/* K28 */ be_const_int(2),
}), }),
be_str_weak(save_fabrics), be_str_weak(save_fabrics),
&be_const_str_solidified, &be_const_str_solidified,
( &(const binstruction[87]) { /* code */ ( &(const binstruction[86]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0 0xA4060000, // 0000 IMPORT R1 K0
0x8C080101, // 0001 GETMET R2 R0 K1 0x8C080101, // 0001 GETMET R2 R0 K1
0x7C080200, // 0002 CALL R2 1 0x7C080200, // 0002 CALL R2 1
@ -1248,49 +1240,48 @@ be_local_closure(Matter_Session_Store_save_fabrics, /* name */
0x00161405, // 0029 ADD R5 K10 R5 0x00161405, // 0029 ADD R5 K10 R5
0x00140B0D, // 002A ADD R5 R5 K13 0x00140B0D, // 002A ADD R5 R5 K13
0x5C0C0A00, // 002B MOVE R3 R5 0x5C0C0A00, // 002B MOVE R3 R5
0xA8020017, // 002C EXBLK 0 #0045 0xA8020016, // 002C EXBLK 0 #0044
0xA4161C00, // 002D IMPORT R5 K14 0x60140011, // 002D GETGBL R5 G17
0x60180011, // 002E GETGBL R6 G17 0x8818010E, // 002E GETMBR R6 R0 K14
0x881C010F, // 002F GETMBR R7 R0 K15 0x581C000F, // 002F LDCONST R7 K15
0x58200010, // 0030 LDCONST R8 K16 0x7C140400, // 0030 CALL R5 2
0x7C180400, // 0031 CALL R6 2 0x8C180B10, // 0031 GETMET R6 R5 K16
0x8C1C0D11, // 0032 GETMET R7 R6 K17 0x5C200600, // 0032 MOVE R8 R3
0x5C240600, // 0033 MOVE R9 R3 0x7C180400, // 0033 CALL R6 2
0x7C1C0400, // 0034 CALL R7 2 0x8C180B11, // 0034 GETMET R6 R5 K17
0x8C1C0D12, // 0035 GETMET R7 R6 K18 0x7C180200, // 0035 CALL R6 1
0x7C1C0200, // 0036 CALL R7 1 0xB81A2400, // 0036 GETNGBL R6 K18
0xB81E2600, // 0037 GETNGBL R7 K19 0x8C180D13, // 0037 GETMET R6 R6 K19
0x8C1C0F14, // 0038 GETMET R7 R7 K20 0x60200018, // 0038 GETGBL R8 G24
0x8C240B15, // 0039 GETMET R9 R5 K21 0x58240014, // 0039 LDCONST R9 K20
0x582C0016, // 003A LDCONST R11 K22 0x5C280800, // 003A MOVE R10 R4
0x5C300800, // 003B MOVE R12 R4 0x5C2C0400, // 003B MOVE R11 R2
0x5C340400, // 003C MOVE R13 R2 0x7C200600, // 003C CALL R8 3
0x7C240800, // 003D CALL R9 4 0x58240015, // 003D LDCONST R9 K21
0x58280017, // 003E LDCONST R10 K23 0x7C180600, // 003E CALL R6 3
0x7C1C0600, // 003F CALL R7 3 0x88180116, // 003F GETMBR R6 R0 K22
0x881C0118, // 0040 GETMBR R7 R0 K24 0x8C180D17, // 0040 GETMET R6 R6 K23
0x8C1C0F19, // 0041 GETMET R7 R7 K25 0x7C180200, // 0041 CALL R6 1
0x7C1C0200, // 0042 CALL R7 1 0xA8040001, // 0042 EXBLK 1 1
0xA8040001, // 0043 EXBLK 1 1 0x70020010, // 0043 JMP #0055
0x70020010, // 0044 JMP #0056 0xAC140002, // 0044 CATCH R5 0 2
0xAC140002, // 0045 CATCH R5 0 2 0x7002000D, // 0045 JMP #0054
0x7002000D, // 0046 JMP #0055 0xB81E2400, // 0046 GETNGBL R7 K18
0xB81E2600, // 0047 GETNGBL R7 K19 0x8C1C0F13, // 0047 GETMET R7 R7 K19
0x8C1C0F14, // 0048 GETMET R7 R7 K20 0x60240008, // 0048 GETGBL R9 G8
0x60240008, // 0049 GETGBL R9 G8 0x5C280A00, // 0049 MOVE R10 R5
0x5C280A00, // 004A MOVE R10 R5 0x7C240200, // 004A CALL R9 1
0x7C240200, // 004B CALL R9 1 0x00263009, // 004B ADD R9 K24 R9
0x00263409, // 004C ADD R9 K26 R9 0x00241319, // 004C ADD R9 R9 K25
0x0024131B, // 004D ADD R9 R9 K27 0x60280008, // 004D GETGBL R10 G8
0x60280008, // 004E GETGBL R10 G8 0x5C2C0C00, // 004E MOVE R11 R6
0x5C2C0C00, // 004F MOVE R11 R6 0x7C280200, // 004F CALL R10 1
0x7C280200, // 0050 CALL R10 1 0x0024120A, // 0050 ADD R9 R9 R10
0x0024120A, // 0051 ADD R9 R9 R10 0x5828001A, // 0051 LDCONST R10 K26
0x5828001C, // 0052 LDCONST R10 K28 0x7C1C0600, // 0052 CALL R7 3
0x7C1C0600, // 0053 CALL R7 3 0x70020000, // 0053 JMP #0055
0x70020000, // 0054 JMP #0056 0xB0080000, // 0054 RAISE 2 R0 R0
0xB0080000, // 0055 RAISE 2 R0 R0 0x80000000, // 0055 RET 0
0x80000000, // 0056 RET 0
}) })
) )
); );

Some files were not shown because too many files have changed in this diff Show More