Matter increase retries (#18317)

This commit is contained in:
s-hadinger 2023-04-02 16:50:13 +02:00 committed by GitHub
parent 326c605122
commit 6499ec7142
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 586 additions and 537 deletions

View File

@ -104,7 +104,7 @@ class Matter_Commisioning_Context
var raw = resp.encode_frame(status_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, reliable ? resp.message_counter : nil)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, reliable ? resp.message_counter : nil, msg.session.local_session_id)
end
def parse_PBKDFParamRequest(msg)
@ -153,7 +153,7 @@ class Matter_Commisioning_Context
var resp = msg.build_response(0x21 #-PBKDR Response-#, true)
var raw = resp.encode_frame(pbkdfparamresp_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter, msg.session.local_session_id)
end
def parse_Pake1(msg)
@ -233,7 +233,7 @@ class Matter_Commisioning_Context
var resp = msg.build_response(0x23 #-pake-2-#, true) # no reliable flag
var raw = resp.encode_frame(pake2_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter, msg.session.local_session_id)
end
def parse_Pake3(msg)
@ -406,7 +406,7 @@ class Matter_Commisioning_Context
var resp = msg.build_response(0x33 #-sigma-2-resume-#, true)
var raw = resp.encode_frame(sigma2resume_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter, msg.session.local_session_id)
# session.close()
session.set_keys(i2r, r2i, ac, created)
@ -485,7 +485,7 @@ class Matter_Commisioning_Context
var resp = msg.build_response(0x31 #-sigma-2-#, true) # no reliable flag
var raw = resp.encode_frame(sigma2_raw)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter)
self.responder.send_response(raw, msg.remote_ip, msg.remote_port, resp.message_counter, msg.session.local_session_id)
return true
end

View File

@ -321,8 +321,8 @@ class Matter_Device
#############################################################
# Global entry point for sending a message.
# Delegates to `udp_server`
def msg_send(raw, addr, port, id)
return self.udp_server.send_response(raw, addr, port, id)
def msg_send(raw, addr, port, id, session_id)
return self.udp_server.send_response(raw, addr, port, id, session_id)
end
#############################################################

View File

@ -102,8 +102,8 @@ class Matter_IM
resp.encrypt()
import string
tasmota.log(string.format("MTR: <Ack_now (%6i) rack=%i id=%i [%s]:%i", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter, resp.remote_ip, resp.remote_port), 3)
msg.session._message_handler.send_response(resp.raw, resp.remote_ip, resp.remote_port, nil)
# self.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter)
msg.session._message_handler.send_response(resp.raw, resp.remote_ip, resp.remote_port, nil, resp.session.local_session_id)
# self.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter, resp.session.local_session_id)
# return msg.send_im(msg.session._message_handler) # send message now
else
return true

View File

@ -122,7 +122,7 @@ class Matter_IM_Message
resp.encode_frame(self.data.to_TLV().tlv2raw()) # payload in cleartext
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),3)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter, resp.session.local_session_id)
self.last_counter = resp.message_counter
return true
end
@ -241,7 +241,7 @@ class Matter_IM_ReportData : Matter_IM_Message
resp.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),3)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter, resp.session.local_session_id)
self.last_counter = resp.message_counter
if size(next_elemnts) > 0
@ -337,7 +337,7 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
resp.encode_frame()
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), 3)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, nil #-not reliable-#)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, nil #-not reliable-#, resp.session.local_session_id)
self.last_counter = resp.message_counter
return true # we received a ack(), just finish
end
@ -396,7 +396,7 @@ class Matter_IM_SubscribeResponse : Matter_IM_ReportData
self.resp.opcode = 0x04 #- Subscribe Response -#
resp.encode_frame(sr.to_TLV().tlv2raw()) # payload in cleartext
resp.encrypt()
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter)
responder.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter, resp.session.local_session_id)
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)
self.sub.re_arm()

View File

@ -143,7 +143,7 @@ class Matter_MessageHandler
resp.encode_frame()
resp.encrypt()
tasmota.log(string.format("MTR: <Ack (%6i) ack=%i id=%i {reliable}", resp.session.local_session_id, resp.ack_message_counter, resp.message_counter), 3)
self.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter)
self.send_response(resp.raw, resp.remote_ip, resp.remote_port, resp.message_counter, resp.session.local_session_id)
end
ret = true
@ -171,8 +171,8 @@ class Matter_MessageHandler
end
#############################################################
def send_response(raw, addr, port, id)
self.device.msg_send(raw, addr, port, id)
def send_response(raw, addr, port, id, session_id)
self.device.msg_send(raw, addr, port, id, session_id)
end
#############################################################

View File

@ -59,9 +59,9 @@ class Matter_Plugin_Light3 : Matter_Plugin
var hue = light_status.find('hue', nil)
var sat = light_status.find('sat', nil)
var pow = light_status.find('power', nil)
if bri != nil self.shadow_bri = tasmota.scale_uint(bri, 0, 255, 0, 254) end
if hue != nil self.shadow_hue = tasmota.scale_uint(hue, 0, 360, 0, 254) end
if sat != nil self.shadow_sat = tasmota.scale_uint(sat, 0, 255, 0, 254) end
if bri != nil bri = tasmota.scale_uint(bri, 0, 255, 0, 254) else bri = self.shadow_bri end
if hue != nil hue = tasmota.scale_uint(hue, 0, 360, 0, 254) else bri = self.shadow_hue end
if sat != nil sat = tasmota.scale_uint(sat, 0, 255, 0, 254) else bri = self.shadow_sat end
if pow != self.shadow_onoff self.attribute_updated(nil, 0x0006, 0x0000) self.shadow_onoff = pow end
if bri != self.shadow_bri self.attribute_updated(nil, 0x0008, 0x0000) self.shadow_bri = bri end
if hue != self.shadow_hue self.attribute_updated(nil, 0x0300, 0x0000) self.shadow_hue = hue end

View File

@ -37,15 +37,17 @@ class Matter_UDPPacket_sent
var addr # ip_address (string)
var port # port (int)
var msg_id # (int) message identifier that needs to be acknowledged, or `nil` if no ack needed
var session_id # (int) exchange id, for logging only
var retries # 0 in first attempts, goes up to RETRIES
var next_try # timestamp (millis) when to try again
def init(raw, addr, port, id)
def init(raw, addr, port, id, session_id)
self.raw = raw
self.addr = addr
self.port = port
self.msg_id = id
self.retries = 0
self.session_id = (session_id != nil) ? session_id : 0
self.next_try = tasmota.millis() + matter.UDPServer._backoff_time(self.retries)
end
@ -72,7 +74,7 @@ matter.UDPPacket_sent = Matter_UDPPacket_sent
#
#################################################################################
class Matter_UDPServer
static var RETRIES = 4 # 5 transmissions max (4 retries) `MRP_MAX_TRANSMISSIONS` 4.11.8 p.146
static var RETRIES = 6 # 7 transmissions max (6 retries) - 2 more than spec `MRP_MAX_TRANSMISSIONS` 4.11.8 p.146
static var MAX_PACKETS_READ = 4 # read at most 4 packets per tick
var addr, port # local addr and port
var listening # true if active
@ -171,7 +173,7 @@ class Matter_UDPServer
else
import string
self.packets_sent.remove(idx)
tasmota.log(string.format("MTR: . Unacked packet '[%s]:%i' msg_id=%i", packet.addr, packet.port, packet.msg_id), 2)
tasmota.log(string.format("MTR: . (%6i) Unacked packet '[%s]:%i' msg_id=%i", packet.session_id, packet.addr, packet.port, packet.msg_id), 2)
end
else
idx += 1
@ -197,8 +199,8 @@ class Matter_UDPServer
#############################################################
# Send a packet, enqueue it if `id` is not `nil`
def send_response(raw, addr, port, id)
var packet = matter.UDPPacket_sent(raw, addr, port, id)
def send_response(raw, addr, port, id, session_id)
var packet = matter.UDPPacket_sent(raw, addr, port, id, session_id)
packet.send(self.udp_socket) # send
if id
# tasmota.log("MTR: <<< enqueue id="+str(id))

View File

@ -846,7 +846,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake3, /* name */
********************************************************************/
be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name */
be_nested_proto(
15, /* nstack */
16, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@ -910,7 +910,7 @@ be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name
}),
be_str_weak(parse_PBKDFParamRequest),
&be_const_str_solidified,
( &(const binstruction[138]) { /* code */
( &(const binstruction[140]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@ -1047,8 +1047,10 @@ be_local_closure(Matter_Commisioning_Context_parse_PBKDFParamRequest, /* name
0x8830031F, // 0085 GETMBR R12 R1 K31
0x88340320, // 0086 GETMBR R13 R1 K32
0x88380F33, // 0087 GETMBR R14 R7 K51
0x7C240A00, // 0088 CALL R9 5
0x80000000, // 0089 RET 0
0x883C0312, // 0088 GETMBR R15 R1 K18
0x883C1F03, // 0089 GETMBR R15 R15 K3
0x7C240C00, // 008A CALL R9 6
0x80000000, // 008B RET 0
})
)
);
@ -1084,7 +1086,7 @@ be_local_closure(Matter_Commisioning_Context_every_second, /* name */
********************************************************************/
be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
be_nested_proto(
36, /* nstack */
37, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@ -1196,7 +1198,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
}),
be_str_weak(parse_Sigma1),
&be_const_str_solidified,
( &(const binstruction[456]) { /* code */
( &(const binstruction[460]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xA40E0200, // 0001 IMPORT R3 K1
0x88100302, // 0002 GETMBR R4 R1 K2
@ -1314,7 +1316,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
0x7C240A00, // 0072 CALL R9 5
0x58280009, // 0073 LDCONST R10 K9
0x7C1C0600, // 0074 CALL R7 3
0x78160095, // 0075 JMPF R5 #010C
0x78160097, // 0075 JMPF R5 #010E
0x881C091C, // 0076 GETMBR R7 R4 K28
0x88200914, // 0077 GETMBR R8 R4 K20
0x001C0E08, // 0078 ADD R7 R7 R8
@ -1362,7 +1364,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
0x8C3C1B35, // 00A2 GETMET R15 R13 K53
0x7C3C0200, // 00A3 CALL R15 1
0x1C40180F, // 00A4 EQ R16 R12 R15
0x78420063, // 00A5 JMPF R16 #010A
0x78420065, // 00A5 JMPF R16 #010C
0x8C400537, // 00A6 GETMET R16 R2 K55
0x544A000F, // 00A7 LDINT R18 16
0x7C400400, // 00A8 CALL R16 2
@ -1453,206 +1455,210 @@ be_local_closure(Matter_Commisioning_Context_parse_Sigma1, /* name */
0x8884032A, // 00FD GETMBR R33 R1 K42
0x8888032B, // 00FE GETMBR R34 R1 K43
0x888C3946, // 00FF GETMBR R35 R28 K70
0x7C780A00, // 0100 CALL R30 5
0x8C780D47, // 0101 GETMET R30 R6 K71
0x5C802E00, // 0102 MOVE R32 R23
0x5C843000, // 0103 MOVE R33 R24
0x5C883200, // 0104 MOVE R34 R25
0x5C8C3400, // 0105 MOVE R35 R26
0x7C780A00, // 0106 CALL R30 5
0x50780200, // 0107 LDBOOL R30 1 0
0x80043C00, // 0108 RET 1 R30
0x70020001, // 0109 JMP #010C
0x4C400000, // 010A LDNIL R16
0x90122810, // 010B SETMBR R4 K20 R16
0x881C0914, // 010C GETMBR R7 R4 K20
0x4C200000, // 010D LDNIL R8
0x1C1C0E08, // 010E EQ R7 R7 R8
0x741E0003, // 010F JMPT R7 #0114
0x881C0915, // 0110 GETMBR R7 R4 K21
0x4C200000, // 0111 LDNIL R8
0x1C1C0E08, // 0112 EQ R7 R7 R8
0x781E00B1, // 0113 JMPF R7 #01C6
0x8C1C0537, // 0114 GETMET R7 R2 K55
0x5426000F, // 0115 LDINT R9 16
0x7C1C0400, // 0116 CALL R7 2
0x901A6C07, // 0117 SETMBR R6 K54 R7
0x8C1C0537, // 0118 GETMET R7 R2 K55
0x5426001F, // 0119 LDINT R9 32
0x7C1C0400, // 011A CALL R7 2
0x90029007, // 011B SETMBR R0 K72 R7
0x8C1C054A, // 011C GETMET R7 R2 K74
0x7C1C0200, // 011D CALL R7 1
0x8C1C0F4B, // 011E GETMET R7 R7 K75
0x88240148, // 011F GETMBR R9 R0 K72
0x7C1C0400, // 0120 CALL R7 2
0x90029207, // 0121 SETMBR R0 K73 R7
0x8C1C0537, // 0122 GETMET R7 R2 K55
0x5426001F, // 0123 LDINT R9 32
0x7C1C0400, // 0124 CALL R7 2
0x8C20054A, // 0125 GETMET R8 R2 K74
0x7C200200, // 0126 CALL R8 1
0x8C20114C, // 0127 GETMET R8 R8 K76
0x88280148, // 0128 GETMBR R10 R0 K72
0x882C0913, // 0129 GETMBR R11 R4 K19
0x7C200600, // 012A CALL R8 3
0x901A6008, // 012B SETMBR R6 K48 R8
0xB8221A00, // 012C GETNGBL R8 K13
0x8820114D, // 012D GETMBR R8 R8 K77
0x8C20114E, // 012E GETMET R8 R8 K78
0x7C200200, // 012F CALL R8 1
0x8C24114F, // 0130 GETMET R9 R8 K79
0x582C000C, // 0131 LDCONST R11 K12
0xB8321A00, // 0132 GETNGBL R12 K13
0x8830194D, // 0133 GETMBR R12 R12 K77
0x88301950, // 0134 GETMBR R12 R12 K80
0x8C340D51, // 0135 GETMET R13 R6 K81
0x7C340200, // 0136 CALL R13 1
0x7C240800, // 0137 CALL R9 4
0x8C24114F, // 0138 GETMET R9 R8 K79
0x582C0009, // 0139 LDCONST R11 K9
0xB8321A00, // 013A GETNGBL R12 K13
0x8830194D, // 013B GETMBR R12 R12 K77
0x88301950, // 013C GETMBR R12 R12 K80
0x8C340D52, // 013D GETMET R13 R6 K82
0x7C340200, // 013E CALL R13 1
0x7C240800, // 013F CALL R9 4
0x8C24114F, // 0140 GETMET R9 R8 K79
0x582C0053, // 0141 LDCONST R11 K83
0xB8321A00, // 0142 GETNGBL R12 K13
0x8830194D, // 0143 GETMBR R12 R12 K77
0x88301950, // 0144 GETMBR R12 R12 K80
0x88340149, // 0145 GETMBR R13 R0 K73
0x7C240800, // 0146 CALL R9 4
0x8C24114F, // 0147 GETMET R9 R8 K79
0x542E0003, // 0148 LDINT R11 4
0xB8321A00, // 0149 GETNGBL R12 K13
0x8830194D, // 014A GETMBR R12 R12 K77
0x88301950, // 014B GETMBR R12 R12 K80
0x88340913, // 014C GETMBR R13 R4 K19
0x7C240800, // 014D CALL R9 4
0x8C24054A, // 014E GETMET R9 R2 K74
0x7C240200, // 014F CALL R9 1
0x8C241354, // 0150 GETMET R9 R9 K84
0x8C2C0D55, // 0151 GETMET R11 R6 K85
0x7C2C0200, // 0152 CALL R11 1
0x8C301140, // 0153 GETMET R12 R8 K64
0x7C300200, // 0154 CALL R12 1
0x7C240600, // 0155 CALL R9 3
0xB82A1A00, // 0156 GETNGBL R10 K13
0x8828154D, // 0157 GETMBR R10 R10 K77
0x8C28154E, // 0158 GETMET R10 R10 K78
0x7C280200, // 0159 CALL R10 1
0x8C2C154F, // 015A GETMET R11 R10 K79
0x5834000C, // 015B LDCONST R13 K12
0xB83A1A00, // 015C GETNGBL R14 K13
0x88381D4D, // 015D GETMBR R14 R14 K77
0x88381D50, // 015E GETMBR R14 R14 K80
0x8C3C0D51, // 015F GETMET R15 R6 K81
0x7C3C0200, // 0160 CALL R15 1
0x7C2C0800, // 0161 CALL R11 4
0x8C2C154F, // 0162 GETMET R11 R10 K79
0x58340009, // 0163 LDCONST R13 K9
0xB83A1A00, // 0164 GETNGBL R14 K13
0x88381D4D, // 0165 GETMBR R14 R14 K77
0x88381D50, // 0166 GETMBR R14 R14 K80
0x8C3C0D52, // 0167 GETMET R15 R6 K82
0x7C3C0200, // 0168 CALL R15 1
0x7C2C0800, // 0169 CALL R11 4
0x8C2C154F, // 016A GETMET R11 R10 K79
0x58340053, // 016B LDCONST R13 K83
0xB83A1A00, // 016C GETNGBL R14 K13
0x88381D4D, // 016D GETMBR R14 R14 K77
0x88381D50, // 016E GETMBR R14 R14 K80
0x5C3C1200, // 016F MOVE R15 R9
0x7C2C0800, // 0170 CALL R11 4
0x8C2C154F, // 0171 GETMET R11 R10 K79
0x54360003, // 0172 LDINT R13 4
0xB83A1A00, // 0173 GETNGBL R14 K13
0x88381D4D, // 0174 GETMBR R14 R14 K77
0x88381D50, // 0175 GETMBR R14 R14 K80
0x883C0D36, // 0176 GETMBR R15 R6 K54
0x7C2C0800, // 0177 CALL R11 4
0x882C0956, // 0178 GETMBR R11 R4 K86
0x901A820B, // 0179 SETMBR R6 K65 R11
0x8C2C0557, // 017A GETMET R11 R2 K87
0x7C2C0200, // 017B CALL R11 1
0x8C2C1758, // 017C GETMET R11 R11 K88
0x88340D41, // 017D GETMBR R13 R6 K65
0x7C2C0400, // 017E CALL R11 2
0x8C2C1759, // 017F GETMET R11 R11 K89
0x7C2C0200, // 0180 CALL R11 1
0x60300015, // 0181 GETGBL R12 G21
0x7C300000, // 0182 CALL R12 0
0x8C30192C, // 0183 GETMET R12 R12 K44
0x8838015A, // 0184 GETMBR R14 R0 K90
0x7C300400, // 0185 CALL R12 2
0x8C340D5B, // 0186 GETMET R13 R6 K91
0x7C340200, // 0187 CALL R13 1
0x00341A07, // 0188 ADD R13 R13 R7
0x88380149, // 0189 GETMBR R14 R0 K73
0x00341A0E, // 018A ADD R13 R13 R14
0x00341A0B, // 018B ADD R13 R13 R11
0x8C38052E, // 018C GETMET R14 R2 K46
0x7C380200, // 018D CALL R14 1
0x8C381D2F, // 018E GETMET R14 R14 K47
0x88400D30, // 018F GETMBR R16 R6 K48
0x5C441A00, // 0190 MOVE R17 R13
0x5C481800, // 0191 MOVE R18 R12
0x544E000F, // 0192 LDINT R19 16
0x7C380A00, // 0193 CALL R14 5
0x8C3C1540, // 0194 GETMET R15 R10 K64
0x7C3C0200, // 0195 CALL R15 1
0x8C400533, // 0196 GETMET R16 R2 K51
0x5C481C00, // 0197 MOVE R18 R14
0x604C0015, // 0198 GETGBL R19 G21
0x7C4C0000, // 0199 CALL R19 0
0x8C4C272C, // 019A GETMET R19 R19 K44
0x8854015C, // 019B GETMBR R21 R0 K92
0x7C4C0400, // 019C CALL R19 2
0x60500015, // 019D GETGBL R20 G21
0x7C500000, // 019E CALL R20 0
0x6054000C, // 019F GETGBL R21 G12
0x5C581E00, // 01A0 MOVE R22 R15
0x7C540200, // 01A1 CALL R21 1
0x545A000F, // 01A2 LDINT R22 16
0x7C400C00, // 01A3 CALL R16 6
0x8C44215D, // 01A4 GETMET R17 R16 K93
0x5C4C1E00, // 01A5 MOVE R19 R15
0x7C440400, // 01A6 CALL R17 2
0x8C482135, // 01A7 GETMET R18 R16 K53
0x7C480200, // 01A8 CALL R18 1
0x00442212, // 01A9 ADD R17 R17 R18
0xB84A1A00, // 01AA GETNGBL R18 K13
0x8C48255E, // 01AB GETMET R18 R18 K94
0x7C480200, // 01AC CALL R18 1
0x904ABE07, // 01AD SETMBR R18 K95 R7
0x884C0127, // 01AE GETMBR R19 R0 K39
0x904AC013, // 01AF SETMBR R18 K96 R19
0x884C0149, // 01B0 GETMBR R19 R0 K73
0x904AC213, // 01B1 SETMBR R18 K97 R19
0x904AC411, // 01B2 SETMBR R18 K98 R17
0x8C4C2540, // 01B3 GETMET R19 R18 K64
0x7C4C0200, // 01B4 CALL R19 1
0x901AC613, // 01B5 SETMBR R6 K99 R19
0x8C500342, // 01B6 GETMET R20 R1 K66
0x545A0030, // 01B7 LDINT R22 49
0x505C0200, // 01B8 LDBOOL R23 1 0
0x7C500600, // 01B9 CALL R20 3
0x8C542943, // 01BA GETMET R21 R20 K67
0x5C5C2600, // 01BB MOVE R23 R19
0x7C540400, // 01BC CALL R21 2
0x88580144, // 01BD GETMBR R22 R0 K68
0x8C582D45, // 01BE GETMET R22 R22 K69
0x5C602A00, // 01BF MOVE R24 R21
0x8864032A, // 01C0 GETMBR R25 R1 K42
0x8868032B, // 01C1 GETMBR R26 R1 K43
0x886C2946, // 01C2 GETMBR R27 R20 K70
0x7C580A00, // 01C3 CALL R22 5
0x50580200, // 01C4 LDBOOL R22 1 0
0x80042C00, // 01C5 RET 1 R22
0x501C0200, // 01C6 LDBOOL R7 1 0
0x80040E00, // 01C7 RET 1 R7
0x88900316, // 0100 GETMBR R36 R1 K22
0x88904903, // 0101 GETMBR R36 R36 K3
0x7C780C00, // 0102 CALL R30 6
0x8C780D47, // 0103 GETMET R30 R6 K71
0x5C802E00, // 0104 MOVE R32 R23
0x5C843000, // 0105 MOVE R33 R24
0x5C883200, // 0106 MOVE R34 R25
0x5C8C3400, // 0107 MOVE R35 R26
0x7C780A00, // 0108 CALL R30 5
0x50780200, // 0109 LDBOOL R30 1 0
0x80043C00, // 010A RET 1 R30
0x70020001, // 010B JMP #010E
0x4C400000, // 010C LDNIL R16
0x90122810, // 010D SETMBR R4 K20 R16
0x881C0914, // 010E GETMBR R7 R4 K20
0x4C200000, // 010F LDNIL R8
0x1C1C0E08, // 0110 EQ R7 R7 R8
0x741E0003, // 0111 JMPT R7 #0116
0x881C0915, // 0112 GETMBR R7 R4 K21
0x4C200000, // 0113 LDNIL R8
0x1C1C0E08, // 0114 EQ R7 R7 R8
0x781E00B3, // 0115 JMPF R7 #01CA
0x8C1C0537, // 0116 GETMET R7 R2 K55
0x5426000F, // 0117 LDINT R9 16
0x7C1C0400, // 0118 CALL R7 2
0x901A6C07, // 0119 SETMBR R6 K54 R7
0x8C1C0537, // 011A GETMET R7 R2 K55
0x5426001F, // 011B LDINT R9 32
0x7C1C0400, // 011C CALL R7 2
0x90029007, // 011D SETMBR R0 K72 R7
0x8C1C054A, // 011E GETMET R7 R2 K74
0x7C1C0200, // 011F CALL R7 1
0x8C1C0F4B, // 0120 GETMET R7 R7 K75
0x88240148, // 0121 GETMBR R9 R0 K72
0x7C1C0400, // 0122 CALL R7 2
0x90029207, // 0123 SETMBR R0 K73 R7
0x8C1C0537, // 0124 GETMET R7 R2 K55
0x5426001F, // 0125 LDINT R9 32
0x7C1C0400, // 0126 CALL R7 2
0x8C20054A, // 0127 GETMET R8 R2 K74
0x7C200200, // 0128 CALL R8 1
0x8C20114C, // 0129 GETMET R8 R8 K76
0x88280148, // 012A GETMBR R10 R0 K72
0x882C0913, // 012B GETMBR R11 R4 K19
0x7C200600, // 012C CALL R8 3
0x901A6008, // 012D SETMBR R6 K48 R8
0xB8221A00, // 012E GETNGBL R8 K13
0x8820114D, // 012F GETMBR R8 R8 K77
0x8C20114E, // 0130 GETMET R8 R8 K78
0x7C200200, // 0131 CALL R8 1
0x8C24114F, // 0132 GETMET R9 R8 K79
0x582C000C, // 0133 LDCONST R11 K12
0xB8321A00, // 0134 GETNGBL R12 K13
0x8830194D, // 0135 GETMBR R12 R12 K77
0x88301950, // 0136 GETMBR R12 R12 K80
0x8C340D51, // 0137 GETMET R13 R6 K81
0x7C340200, // 0138 CALL R13 1
0x7C240800, // 0139 CALL R9 4
0x8C24114F, // 013A GETMET R9 R8 K79
0x582C0009, // 013B LDCONST R11 K9
0xB8321A00, // 013C GETNGBL R12 K13
0x8830194D, // 013D GETMBR R12 R12 K77
0x88301950, // 013E GETMBR R12 R12 K80
0x8C340D52, // 013F GETMET R13 R6 K82
0x7C340200, // 0140 CALL R13 1
0x7C240800, // 0141 CALL R9 4
0x8C24114F, // 0142 GETMET R9 R8 K79
0x582C0053, // 0143 LDCONST R11 K83
0xB8321A00, // 0144 GETNGBL R12 K13
0x8830194D, // 0145 GETMBR R12 R12 K77
0x88301950, // 0146 GETMBR R12 R12 K80
0x88340149, // 0147 GETMBR R13 R0 K73
0x7C240800, // 0148 CALL R9 4
0x8C24114F, // 0149 GETMET R9 R8 K79
0x542E0003, // 014A LDINT R11 4
0xB8321A00, // 014B GETNGBL R12 K13
0x8830194D, // 014C GETMBR R12 R12 K77
0x88301950, // 014D GETMBR R12 R12 K80
0x88340913, // 014E GETMBR R13 R4 K19
0x7C240800, // 014F CALL R9 4
0x8C24054A, // 0150 GETMET R9 R2 K74
0x7C240200, // 0151 CALL R9 1
0x8C241354, // 0152 GETMET R9 R9 K84
0x8C2C0D55, // 0153 GETMET R11 R6 K85
0x7C2C0200, // 0154 CALL R11 1
0x8C301140, // 0155 GETMET R12 R8 K64
0x7C300200, // 0156 CALL R12 1
0x7C240600, // 0157 CALL R9 3
0xB82A1A00, // 0158 GETNGBL R10 K13
0x8828154D, // 0159 GETMBR R10 R10 K77
0x8C28154E, // 015A GETMET R10 R10 K78
0x7C280200, // 015B CALL R10 1
0x8C2C154F, // 015C GETMET R11 R10 K79
0x5834000C, // 015D LDCONST R13 K12
0xB83A1A00, // 015E GETNGBL R14 K13
0x88381D4D, // 015F GETMBR R14 R14 K77
0x88381D50, // 0160 GETMBR R14 R14 K80
0x8C3C0D51, // 0161 GETMET R15 R6 K81
0x7C3C0200, // 0162 CALL R15 1
0x7C2C0800, // 0163 CALL R11 4
0x8C2C154F, // 0164 GETMET R11 R10 K79
0x58340009, // 0165 LDCONST R13 K9
0xB83A1A00, // 0166 GETNGBL R14 K13
0x88381D4D, // 0167 GETMBR R14 R14 K77
0x88381D50, // 0168 GETMBR R14 R14 K80
0x8C3C0D52, // 0169 GETMET R15 R6 K82
0x7C3C0200, // 016A CALL R15 1
0x7C2C0800, // 016B CALL R11 4
0x8C2C154F, // 016C GETMET R11 R10 K79
0x58340053, // 016D LDCONST R13 K83
0xB83A1A00, // 016E GETNGBL R14 K13
0x88381D4D, // 016F GETMBR R14 R14 K77
0x88381D50, // 0170 GETMBR R14 R14 K80
0x5C3C1200, // 0171 MOVE R15 R9
0x7C2C0800, // 0172 CALL R11 4
0x8C2C154F, // 0173 GETMET R11 R10 K79
0x54360003, // 0174 LDINT R13 4
0xB83A1A00, // 0175 GETNGBL R14 K13
0x88381D4D, // 0176 GETMBR R14 R14 K77
0x88381D50, // 0177 GETMBR R14 R14 K80
0x883C0D36, // 0178 GETMBR R15 R6 K54
0x7C2C0800, // 0179 CALL R11 4
0x882C0956, // 017A GETMBR R11 R4 K86
0x901A820B, // 017B SETMBR R6 K65 R11
0x8C2C0557, // 017C GETMET R11 R2 K87
0x7C2C0200, // 017D CALL R11 1
0x8C2C1758, // 017E GETMET R11 R11 K88
0x88340D41, // 017F GETMBR R13 R6 K65
0x7C2C0400, // 0180 CALL R11 2
0x8C2C1759, // 0181 GETMET R11 R11 K89
0x7C2C0200, // 0182 CALL R11 1
0x60300015, // 0183 GETGBL R12 G21
0x7C300000, // 0184 CALL R12 0
0x8C30192C, // 0185 GETMET R12 R12 K44
0x8838015A, // 0186 GETMBR R14 R0 K90
0x7C300400, // 0187 CALL R12 2
0x8C340D5B, // 0188 GETMET R13 R6 K91
0x7C340200, // 0189 CALL R13 1
0x00341A07, // 018A ADD R13 R13 R7
0x88380149, // 018B GETMBR R14 R0 K73
0x00341A0E, // 018C ADD R13 R13 R14
0x00341A0B, // 018D ADD R13 R13 R11
0x8C38052E, // 018E GETMET R14 R2 K46
0x7C380200, // 018F CALL R14 1
0x8C381D2F, // 0190 GETMET R14 R14 K47
0x88400D30, // 0191 GETMBR R16 R6 K48
0x5C441A00, // 0192 MOVE R17 R13
0x5C481800, // 0193 MOVE R18 R12
0x544E000F, // 0194 LDINT R19 16
0x7C380A00, // 0195 CALL R14 5
0x8C3C1540, // 0196 GETMET R15 R10 K64
0x7C3C0200, // 0197 CALL R15 1
0x8C400533, // 0198 GETMET R16 R2 K51
0x5C481C00, // 0199 MOVE R18 R14
0x604C0015, // 019A GETGBL R19 G21
0x7C4C0000, // 019B CALL R19 0
0x8C4C272C, // 019C GETMET R19 R19 K44
0x8854015C, // 019D GETMBR R21 R0 K92
0x7C4C0400, // 019E CALL R19 2
0x60500015, // 019F GETGBL R20 G21
0x7C500000, // 01A0 CALL R20 0
0x6054000C, // 01A1 GETGBL R21 G12
0x5C581E00, // 01A2 MOVE R22 R15
0x7C540200, // 01A3 CALL R21 1
0x545A000F, // 01A4 LDINT R22 16
0x7C400C00, // 01A5 CALL R16 6
0x8C44215D, // 01A6 GETMET R17 R16 K93
0x5C4C1E00, // 01A7 MOVE R19 R15
0x7C440400, // 01A8 CALL R17 2
0x8C482135, // 01A9 GETMET R18 R16 K53
0x7C480200, // 01AA CALL R18 1
0x00442212, // 01AB ADD R17 R17 R18
0xB84A1A00, // 01AC GETNGBL R18 K13
0x8C48255E, // 01AD GETMET R18 R18 K94
0x7C480200, // 01AE CALL R18 1
0x904ABE07, // 01AF SETMBR R18 K95 R7
0x884C0127, // 01B0 GETMBR R19 R0 K39
0x904AC013, // 01B1 SETMBR R18 K96 R19
0x884C0149, // 01B2 GETMBR R19 R0 K73
0x904AC213, // 01B3 SETMBR R18 K97 R19
0x904AC411, // 01B4 SETMBR R18 K98 R17
0x8C4C2540, // 01B5 GETMET R19 R18 K64
0x7C4C0200, // 01B6 CALL R19 1
0x901AC613, // 01B7 SETMBR R6 K99 R19
0x8C500342, // 01B8 GETMET R20 R1 K66
0x545A0030, // 01B9 LDINT R22 49
0x505C0200, // 01BA LDBOOL R23 1 0
0x7C500600, // 01BB CALL R20 3
0x8C542943, // 01BC GETMET R21 R20 K67
0x5C5C2600, // 01BD MOVE R23 R19
0x7C540400, // 01BE CALL R21 2
0x88580144, // 01BF GETMBR R22 R0 K68
0x8C582D45, // 01C0 GETMET R22 R22 K69
0x5C602A00, // 01C1 MOVE R24 R21
0x8864032A, // 01C2 GETMBR R25 R1 K42
0x8868032B, // 01C3 GETMBR R26 R1 K43
0x886C2946, // 01C4 GETMBR R27 R20 K70
0x88700316, // 01C5 GETMBR R28 R1 K22
0x88703903, // 01C6 GETMBR R28 R28 K3
0x7C580C00, // 01C7 CALL R22 6
0x50580200, // 01C8 LDBOOL R22 1 0
0x80042C00, // 01C9 RET 1 R22
0x501C0200, // 01CA LDBOOL R7 1 0
0x80040E00, // 01CB RET 1 R7
})
)
);
@ -1711,7 +1717,7 @@ be_local_closure(Matter_Commisioning_Context_parse_StatusReport, /* name */
********************************************************************/
be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
be_nested_proto(
16, /* nstack */
17, /* nstack */
2, /* argc */
2, /* varg */
0, /* has upvals */
@ -1719,7 +1725,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[47]) { /* constants */
( &(const bvalue[48]) { /* constants */
/* K0 */ be_nested_str_weak(crypto),
/* K1 */ be_nested_str_weak(opcode),
/* K2 */ be_nested_str_weak(local_session_id),
@ -1767,10 +1773,11 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
/* K44 */ be_nested_str_weak(remote_ip),
/* K45 */ be_nested_str_weak(remote_port),
/* K46 */ be_nested_str_weak(message_counter),
/* K47 */ be_nested_str_weak(session),
}),
be_str_weak(parse_Pake1),
&be_const_str_solidified,
( &(const binstruction[116]) { /* code */
( &(const binstruction[118]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0x880C0301, // 0001 GETMBR R3 R1 K1
0x54120021, // 0002 LDINT R4 34
@ -1885,8 +1892,10 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
0x8834032C, // 006F GETMBR R13 R1 K44
0x8838032D, // 0070 GETMBR R14 R1 K45
0x883C112E, // 0071 GETMBR R15 R8 K46
0x7C280A00, // 0072 CALL R10 5
0x80000000, // 0073 RET 0
0x8840032F, // 0072 GETMBR R16 R1 K47
0x88402102, // 0073 GETMBR R16 R16 K2
0x7C280C00, // 0074 CALL R10 6
0x80000000, // 0075 RET 0
})
)
);
@ -1898,7 +1907,7 @@ be_local_closure(Matter_Commisioning_Context_parse_Pake1, /* name */
********************************************************************/
be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
be_nested_proto(
15, /* nstack */
16, /* nstack */
6, /* argc */
2, /* varg */
0, /* has upvals */
@ -1906,7 +1915,7 @@ be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[ 9]) { /* constants */
( &(const bvalue[11]) { /* constants */
/* K0 */ be_nested_str_weak(build_response),
/* K1 */ be_nested_str_weak(add),
/* K2 */ be_const_int(2),
@ -1916,10 +1925,12 @@ be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
/* K6 */ be_nested_str_weak(remote_ip),
/* K7 */ be_nested_str_weak(remote_port),
/* K8 */ be_nested_str_weak(message_counter),
/* K9 */ be_nested_str_weak(session),
/* K10 */ be_nested_str_weak(local_session_id),
}),
be_str_weak(send_status_report),
&be_const_str_solidified,
( &(const binstruction[32]) { /* code */
( &(const binstruction[34]) { /* code */
0x8C180300, // 0000 GETMET R6 R1 K0
0x5422003F, // 0001 LDINT R8 64
0x5C240A00, // 0002 MOVE R9 R5
@ -1950,8 +1961,10 @@ be_local_closure(Matter_Commisioning_Context_send_status_report, /* name */
0x88380D08, // 001B GETMBR R14 R6 K8
0x70020000, // 001C JMP #001E
0x4C380000, // 001D LDNIL R14
0x7C240A00, // 001E CALL R9 5
0x80000000, // 001F RET 0
0x883C0309, // 001E GETMBR R15 R1 K9
0x883C1F0A, // 001F GETMBR R15 R15 K10
0x7C240C00, // 0020 CALL R9 6
0x80000000, // 0021 RET 0
})
)
);

View File

@ -1869,8 +1869,8 @@ be_local_closure(Matter_Device_save_param, /* name */
********************************************************************/
be_local_closure(Matter_Device_msg_send, /* name */
be_nested_proto(
11, /* nstack */
5, /* argc */
13, /* nstack */
6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@ -1883,15 +1883,16 @@ be_local_closure(Matter_Device_msg_send, /* name */
}),
be_str_weak(msg_send),
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x88140100, // 0000 GETMBR R5 R0 K0
0x8C140B01, // 0001 GETMET R5 R5 K1
0x5C1C0200, // 0002 MOVE R7 R1
0x5C200400, // 0003 MOVE R8 R2
0x5C240600, // 0004 MOVE R9 R3
0x5C280800, // 0005 MOVE R10 R4
0x7C140A00, // 0006 CALL R5 5
0x80040A00, // 0007 RET 1 R5
( &(const binstruction[ 9]) { /* code */
0x88180100, // 0000 GETMBR R6 R0 K0
0x8C180D01, // 0001 GETMET R6 R6 K1
0x5C200200, // 0002 MOVE R8 R1
0x5C240400, // 0003 MOVE R9 R2
0x5C280600, // 0004 MOVE R10 R3
0x5C2C0800, // 0005 MOVE R11 R4
0x5C300A00, // 0006 MOVE R12 R5
0x7C180C00, // 0007 CALL R6 6
0x80040C00, // 0008 RET 1 R6
})
)
);

View File

@ -2081,9 +2081,9 @@ be_local_closure(Matter_IM_send_ack_now, /* name */
}),
be_str_weak(send_ack_now),
&be_const_str_solidified,
( &(const binstruction[35]) { /* code */
( &(const binstruction[37]) { /* code */
0x88080300, // 0000 GETMBR R2 R1 K0
0x780A001D, // 0001 JMPF R2 #0020
0x780A001F, // 0001 JMPF R2 #0022
0x8C080301, // 0002 GETMET R2 R1 K1
0x50100000, // 0003 LDBOOL R4 0 0
0x7C080400, // 0004 CALL R2 2
@ -2112,11 +2112,13 @@ be_local_closure(Matter_IM_send_ack_now, /* name */
0x881C050D, // 001B GETMBR R7 R2 K13
0x8820050E, // 001C GETMBR R8 R2 K14
0x4C240000, // 001D LDNIL R9
0x7C100A00, // 001E CALL R4 5
0x70020001, // 001F JMP #0022
0x50080200, // 0020 LDBOOL R2 1 0
0x80040400, // 0021 RET 1 R2
0x80000000, // 0022 RET 0
0x88280509, // 001E GETMBR R10 R2 K9
0x8828150A, // 001F GETMBR R10 R10 K10
0x7C100C00, // 0020 CALL R4 6
0x70020001, // 0021 JMP #0024
0x50080200, // 0022 LDBOOL R2 1 0
0x80040400, // 0023 RET 1 R2
0x80000000, // 0024 RET 0
})
)
);

View File

@ -303,7 +303,7 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
( &(const binstruction[51]) { /* code */
( &(const binstruction[53]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@ -350,11 +350,13 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
0x881C0717, // 002B GETMBR R7 R3 K23
0x88200718, // 002C GETMBR R8 R3 K24
0x88240713, // 002D GETMBR R9 R3 K19
0x7C100A00, // 002E CALL R4 5
0x88100713, // 002F GETMBR R4 R3 K19
0x90023204, // 0030 SETMBR R0 K25 R4
0x50100200, // 0031 LDBOOL R4 1 0
0x80040800, // 0032 RET 1 R4
0x88280711, // 002E GETMBR R10 R3 K17
0x88281512, // 002F GETMBR R10 R10 K18
0x7C100C00, // 0030 CALL R4 6
0x88100713, // 0031 GETMBR R4 R3 K19
0x90023204, // 0032 SETMBR R0 K25 R4
0x50100200, // 0033 LDBOOL R4 1 0
0x80040800, // 0034 RET 1 R4
})
)
);
@ -749,7 +751,7 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
( &(const binstruction[168]) { /* code */
( &(const binstruction[170]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@ -890,34 +892,36 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
0x88380720, // 0089 GETMBR R14 R3 K32
0x883C0721, // 008A GETMBR R15 R3 K33
0x8840071C, // 008B GETMBR R16 R3 K28
0x7C2C0A00, // 008C CALL R11 5
0x882C071C, // 008D GETMBR R11 R3 K28
0x9002440B, // 008E SETMBR R0 K34 R11
0x602C000C, // 008F GETGBL R11 G12
0x5C301000, // 0090 MOVE R12 R8
0x7C2C0200, // 0091 CALL R11 1
0x242C1709, // 0092 GT R11 R11 K9
0x782E0010, // 0093 JMPF R11 #00A5
0x90121A08, // 0094 SETMBR R4 K13 R8
0xB82E0200, // 0095 GETNGBL R11 K1
0x8C2C1702, // 0096 GETMET R11 R11 K2
0x8C340503, // 0097 GETMET R13 R2 K3
0x583C0023, // 0098 LDCONST R15 K35
0x6040000C, // 0099 GETGBL R16 G12
0x8844090D, // 009A GETMBR R17 R4 K13
0x7C400200, // 009B CALL R16 1
0x88440706, // 009C GETMBR R17 R3 K6
0x7C340800, // 009D CALL R13 4
0x5838000A, // 009E LDCONST R14 K10
0x7C2C0600, // 009F CALL R11 3
0x502C0000, // 00A0 LDBOOL R11 0 0
0x90020E0B, // 00A1 SETMBR R0 K7 R11
0x8844071A, // 008C GETMBR R17 R3 K26
0x8844231B, // 008D GETMBR R17 R17 K27
0x7C2C0C00, // 008E CALL R11 6
0x882C071C, // 008F GETMBR R11 R3 K28
0x9002440B, // 0090 SETMBR R0 K34 R11
0x602C000C, // 0091 GETGBL R11 G12
0x5C301000, // 0092 MOVE R12 R8
0x7C2C0200, // 0093 CALL R11 1
0x242C1709, // 0094 GT R11 R11 K9
0x782E0010, // 0095 JMPF R11 #00A7
0x90121A08, // 0096 SETMBR R4 K13 R8
0xB82E0200, // 0097 GETNGBL R11 K1
0x8C2C1702, // 0098 GETMET R11 R11 K2
0x8C340503, // 0099 GETMET R13 R2 K3
0x583C0023, // 009A LDCONST R15 K35
0x6040000C, // 009B GETGBL R16 G12
0x8844090D, // 009C GETMBR R17 R4 K13
0x7C400200, // 009D CALL R16 1
0x88440706, // 009E GETMBR R17 R3 K6
0x7C340800, // 009F CALL R13 4
0x5838000A, // 00A0 LDCONST R14 K10
0x7C2C0600, // 00A1 CALL R11 3
0x502C0000, // 00A2 LDBOOL R11 0 0
0x80041600, // 00A3 RET 1 R11
0x70020001, // 00A4 JMP #00A7
0x502C0200, // 00A5 LDBOOL R11 1 0
0x80041600, // 00A6 RET 1 R11
0x80000000, // 00A7 RET 0
0x90020E0B, // 00A3 SETMBR R0 K7 R11
0x502C0000, // 00A4 LDBOOL R11 0 0
0x80041600, // 00A5 RET 1 R11
0x70020001, // 00A6 JMP #00A9
0x502C0200, // 00A7 LDBOOL R11 1 0
0x80041600, // 00A8 RET 1 R11
0x80000000, // 00A9 RET 0
})
)
);
@ -1098,7 +1102,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
}),
be_str_weak(send_im),
&be_const_str_solidified,
( &(const binstruction[90]) { /* code */
( &(const binstruction[92]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@ -1125,7 +1129,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
0x8810090E, // 0017 GETMBR R4 R4 K14
0x7C0C0200, // 0018 CALL R3 1
0x240C070B, // 0019 GT R3 R3 K11
0x780E002E, // 001A JMPF R3 #004A
0x780E0030, // 001A JMPF R3 #004C
0x880C010F, // 001B GETMBR R3 R0 K15
0x780E000E, // 001C JMPF R3 #002C
0x600C0003, // 001D GETGBL R3 G3
@ -1142,7 +1146,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
0x90021E04, // 0028 SETMBR R0 K15 R4
0x50100000, // 0029 LDBOOL R4 0 0
0x80040800, // 002A RET 1 R4
0x7002001C, // 002B JMP #0049
0x7002001E, // 002B JMP #004B
0x880C0107, // 002C GETMBR R3 R0 K7
0x8C0C0711, // 002D GETMET R3 R3 K17
0x50140000, // 002E LDBOOL R5 0 0
@ -1167,28 +1171,30 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
0x881C071B, // 0041 GETMBR R7 R3 K27
0x8820071C, // 0042 GETMBR R8 R3 K28
0x4C240000, // 0043 LDNIL R9
0x7C100A00, // 0044 CALL R4 5
0x88100718, // 0045 GETMBR R4 R3 K24
0x90023A04, // 0046 SETMBR R0 K29 R4
0x50100200, // 0047 LDBOOL R4 1 0
0x80040800, // 0048 RET 1 R4
0x7002000E, // 0049 JMP #0059
0x880C010F, // 004A GETMBR R3 R0 K15
0x780E000A, // 004B JMPF R3 #0057
0x600C0003, // 004C GETGBL R3 G3
0x5C100000, // 004D MOVE R4 R0
0x7C0C0200, // 004E CALL R3 1
0x8C0C0710, // 004F GETMET R3 R3 K16
0x5C140200, // 0050 MOVE R5 R1
0x7C0C0400, // 0051 CALL R3 2
0x500C0000, // 0052 LDBOOL R3 0 0
0x90021E03, // 0053 SETMBR R0 K15 R3
0x88280715, // 0044 GETMBR R10 R3 K21
0x88281516, // 0045 GETMBR R10 R10 K22
0x7C100C00, // 0046 CALL R4 6
0x88100718, // 0047 GETMBR R4 R3 K24
0x90023A04, // 0048 SETMBR R0 K29 R4
0x50100200, // 0049 LDBOOL R4 1 0
0x80040800, // 004A RET 1 R4
0x7002000E, // 004B JMP #005B
0x880C010F, // 004C GETMBR R3 R0 K15
0x780E000A, // 004D JMPF R3 #0059
0x600C0003, // 004E GETGBL R3 G3
0x5C100000, // 004F MOVE R4 R0
0x7C0C0200, // 0050 CALL R3 1
0x8C0C0710, // 0051 GETMET R3 R3 K16
0x5C140200, // 0052 MOVE R5 R1
0x7C0C0400, // 0053 CALL R3 2
0x500C0000, // 0054 LDBOOL R3 0 0
0x80040600, // 0055 RET 1 R3
0x70020001, // 0056 JMP #0059
0x500C0200, // 0057 LDBOOL R3 1 0
0x80040600, // 0058 RET 1 R3
0x80000000, // 0059 RET 0
0x90021E03, // 0055 SETMBR R0 K15 R3
0x500C0000, // 0056 LDBOOL R3 0 0
0x80040600, // 0057 RET 1 R3
0x70020001, // 0058 JMP #005B
0x500C0200, // 0059 LDBOOL R3 1 0
0x80040600, // 005A RET 1 R3
0x80000000, // 005B RET 0
})
)
);
@ -1564,7 +1570,7 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[30]) { /* constants */
( &(const bvalue[32]) { /* constants */
/* K0 */ be_nested_str_weak(string),
/* K1 */ be_nested_str_weak(tasmota),
/* K2 */ be_nested_str_weak(log),
@ -1592,13 +1598,15 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
/* K24 */ be_nested_str_weak(remote_ip),
/* K25 */ be_nested_str_weak(remote_port),
/* K26 */ be_nested_str_weak(message_counter),
/* K27 */ be_nested_str_weak(last_counter),
/* K28 */ be_nested_str_weak(MTR_X3A_X20Send_X20SubscribeResponseMessage_X20sub_X3D_X25i_X20id_X3D_X25i),
/* K29 */ be_nested_str_weak(re_arm),
/* K27 */ be_nested_str_weak(session),
/* K28 */ be_nested_str_weak(local_session_id),
/* K29 */ be_nested_str_weak(last_counter),
/* K30 */ be_nested_str_weak(MTR_X3A_X20Send_X20SubscribeResponseMessage_X20sub_X3D_X25i_X20id_X3D_X25i),
/* K31 */ be_nested_str_weak(re_arm),
}),
be_str_weak(send_im),
&be_const_str_solidified,
( &(const binstruction[80]) { /* code */
( &(const binstruction[82]) { /* code */
0xA40A0000, // 0000 IMPORT R2 K0
0xB80E0200, // 0001 GETNGBL R3 K1
0x8C0C0702, // 0002 GETMET R3 R3 K2
@ -1633,7 +1641,7 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
0x90020E04, // 001F SETMBR R0 K7 R4
0x50100000, // 0020 LDBOOL R4 0 0
0x80040800, // 0021 RET 1 R4
0x7002002B, // 0022 JMP #004F
0x7002002D, // 0022 JMP #0051
0x880C010D, // 0023 GETMBR R3 R0 K13
0xB8121C00, // 0024 GETNGBL R4 K14
0x8C10090F, // 0025 GETMET R4 R4 K15
@ -1660,25 +1668,27 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
0x88200718, // 003A GETMBR R8 R3 K24
0x88240719, // 003B GETMBR R9 R3 K25
0x8828071A, // 003C GETMBR R10 R3 K26
0x7C140A00, // 003D CALL R5 5
0x8814071A, // 003E GETMBR R5 R3 K26
0x90023605, // 003F SETMBR R0 K27 R5
0xB8160200, // 0040 GETNGBL R5 K1
0x8C140B02, // 0041 GETMET R5 R5 K2
0x8C1C0503, // 0042 GETMET R7 R2 K3
0x5824001C, // 0043 LDCONST R9 K28
0x88280105, // 0044 GETMBR R10 R0 K5
0x88281506, // 0045 GETMBR R10 R10 K6
0x882C071A, // 0046 GETMBR R11 R3 K26
0x7C1C0800, // 0047 CALL R7 4
0x5820000A, // 0048 LDCONST R8 K10
0x7C140600, // 0049 CALL R5 3
0x88140105, // 004A GETMBR R5 R0 K5
0x8C140B1D, // 004B GETMET R5 R5 K29
0x7C140200, // 004C CALL R5 1
0x50140200, // 004D LDBOOL R5 1 0
0x80040A00, // 004E RET 1 R5
0x80000000, // 004F RET 0
0x882C071B, // 003D GETMBR R11 R3 K27
0x882C171C, // 003E GETMBR R11 R11 K28
0x7C140C00, // 003F CALL R5 6
0x8814071A, // 0040 GETMBR R5 R3 K26
0x90023A05, // 0041 SETMBR R0 K29 R5
0xB8160200, // 0042 GETNGBL R5 K1
0x8C140B02, // 0043 GETMET R5 R5 K2
0x8C1C0503, // 0044 GETMET R7 R2 K3
0x5824001E, // 0045 LDCONST R9 K30
0x88280105, // 0046 GETMBR R10 R0 K5
0x88281506, // 0047 GETMBR R10 R10 K6
0x882C071A, // 0048 GETMBR R11 R3 K26
0x7C1C0800, // 0049 CALL R7 4
0x5820000A, // 004A LDCONST R8 K10
0x7C140600, // 004B CALL R5 3
0x88140105, // 004C GETMBR R5 R0 K5
0x8C140B1F, // 004D GETMET R5 R5 K31
0x7C140200, // 004E CALL R5 1
0x50140200, // 004F LDBOOL R5 1 0
0x80040A00, // 0050 RET 1 R5
0x80000000, // 0051 RET 0
})
)
);

View File

@ -100,10 +100,10 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
}),
be_str_weak(msg_received),
&be_const_str_solidified,
( &(const binstruction[374]) { /* code */
( &(const binstruction[376]) { /* code */
0xA4120000, // 0000 IMPORT R4 K0
0x50140000, // 0001 LDBOOL R5 0 0
0xA802015C, // 0002 EXBLK 0 #0160
0xA802015E, // 0002 EXBLK 0 #0162
0xB81A0200, // 0003 GETNGBL R6 K1
0x8C180D02, // 0004 GETMET R6 R6 K2
0x8C200304, // 0005 GETMET R8 R1 K4
@ -242,7 +242,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
0x50240200, // 008A LDBOOL R9 1 0
0xA8040001, // 008B EXBLK 1 1
0x80041200, // 008C RET 1 R9
0x700200CD, // 008D JMP #015C
0x700200CF, // 008D JMP #015E
0xB8220200, // 008E GETNGBL R8 K1
0x8C201102, // 008F GETMET R8 R8 K2
0x8C280919, // 0090 GETMET R10 R4 K25
@ -399,9 +399,9 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
0x5C340000, // 0127 MOVE R13 R0
0x7C2C0400, // 0128 CALL R11 2
0x50140200, // 0129 LDBOOL R5 1 0
0x70020030, // 012A JMP #015C
0x70020032, // 012A JMP #015E
0x1C2C1535, // 012B EQ R11 R10 K53
0x782E0026, // 012C JMPF R11 #0154
0x782E0028, // 012C JMPF R11 #0156
0x882C013E, // 012D GETMBR R11 R0 K62
0x8C2C172A, // 012E GETMET R11 R11 K42
0x5C340C00, // 012F MOVE R13 R6
@ -412,9 +412,9 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
0x8C2C1740, // 0134 GETMET R11 R11 K64
0x5C340000, // 0135 MOVE R13 R0
0x7C2C0400, // 0136 CALL R11 2
0x70020019, // 0137 JMP #0152
0x7002001B, // 0137 JMP #0154
0x882C0D26, // 0138 GETMBR R11 R6 K38
0x782E0017, // 0139 JMPF R11 #0152
0x782E0019, // 0139 JMPF R11 #0154
0x8C2C0D41, // 013A GETMET R11 R6 K65
0x50340200, // 013B LDBOOL R13 1 0
0x7C2C0400, // 013C CALL R11 2
@ -438,43 +438,45 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
0x883C1746, // 014E GETMBR R15 R11 K70
0x88401747, // 014F GETMBR R16 R11 K71
0x88441718, // 0150 GETMBR R17 R11 K24
0x7C300A00, // 0151 CALL R12 5
0x50140200, // 0152 LDBOOL R5 1 0
0x70020007, // 0153 JMP #015C
0xB82E0200, // 0154 GETNGBL R11 K1
0x8C2C1702, // 0155 GETMET R11 R11 K2
0x60340008, // 0156 GETGBL R13 G8
0x5C381400, // 0157 MOVE R14 R10
0x7C340200, // 0158 CALL R13 1
0x0036900D, // 0159 ADD R13 K72 R13
0x58380011, // 015A LDCONST R14 K17
0x7C2C0600, // 015B CALL R11 3
0xA8040001, // 015C EXBLK 1 1
0x80040A00, // 015D RET 1 R5
0x88481715, // 0151 GETMBR R18 R11 K21
0x88482508, // 0152 GETMBR R18 R18 K8
0x7C300C00, // 0153 CALL R12 6
0x50140200, // 0154 LDBOOL R5 1 0
0x70020007, // 0155 JMP #015E
0xB82E0200, // 0156 GETNGBL R11 K1
0x8C2C1702, // 0157 GETMET R11 R11 K2
0x60340008, // 0158 GETGBL R13 G8
0x5C381400, // 0159 MOVE R14 R10
0x7C340200, // 015A CALL R13 1
0x0036900D, // 015B ADD R13 K72 R13
0x58380011, // 015C LDCONST R14 K17
0x7C2C0600, // 015D CALL R11 3
0xA8040001, // 015E EXBLK 1 1
0x70020014, // 015F JMP #0175
0xAC180002, // 0160 CATCH R6 0 2
0x70020011, // 0161 JMP #0174
0xB8220200, // 0162 GETNGBL R8 K1
0x8C201102, // 0163 GETMET R8 R8 K2
0x60280008, // 0164 GETGBL R10 G8
0x5C2C0C00, // 0165 MOVE R11 R6
0x7C280200, // 0166 CALL R10 1
0x002A920A, // 0167 ADD R10 K73 R10
0x0028154A, // 0168 ADD R10 R10 K74
0x602C0008, // 0169 GETGBL R11 G8
0x5C300E00, // 016A MOVE R12 R7
0x7C2C0200, // 016B CALL R11 1
0x0028140B, // 016C ADD R10 R10 R11
0x7C200400, // 016D CALL R8 2
0xA4229600, // 016E IMPORT R8 K75
0x8C24114C, // 016F GETMET R9 R8 K76
0x7C240200, // 0170 CALL R9 1
0x50240000, // 0171 LDBOOL R9 0 0
0x80041200, // 0172 RET 1 R9
0x70020000, // 0173 JMP #0175
0xB0080000, // 0174 RAISE 2 R0 R0
0x80000000, // 0175 RET 0
0x80040A00, // 015F RET 1 R5
0xA8040001, // 0160 EXBLK 1 1
0x70020014, // 0161 JMP #0177
0xAC180002, // 0162 CATCH R6 0 2
0x70020011, // 0163 JMP #0176
0xB8220200, // 0164 GETNGBL R8 K1
0x8C201102, // 0165 GETMET R8 R8 K2
0x60280008, // 0166 GETGBL R10 G8
0x5C2C0C00, // 0167 MOVE R11 R6
0x7C280200, // 0168 CALL R10 1
0x002A920A, // 0169 ADD R10 K73 R10
0x0028154A, // 016A ADD R10 R10 K74
0x602C0008, // 016B GETGBL R11 G8
0x5C300E00, // 016C MOVE R12 R7
0x7C2C0200, // 016D CALL R11 1
0x0028140B, // 016E ADD R10 R10 R11
0x7C200400, // 016F CALL R8 2
0xA4229600, // 0170 IMPORT R8 K75
0x8C24114C, // 0171 GETMET R9 R8 K76
0x7C240200, // 0172 CALL R9 1
0x50240000, // 0173 LDBOOL R9 0 0
0x80041200, // 0174 RET 1 R9
0x70020000, // 0175 JMP #0177
0xB0080000, // 0176 RAISE 2 R0 R0
0x80000000, // 0177 RET 0
})
)
);
@ -649,8 +651,8 @@ be_local_closure(Matter_MessageHandler_add_session, /* name */
********************************************************************/
be_local_closure(Matter_MessageHandler_send_response, /* name */
be_nested_proto(
11, /* nstack */
5, /* argc */
13, /* nstack */
6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@ -663,15 +665,16 @@ be_local_closure(Matter_MessageHandler_send_response, /* name */
}),
be_str_weak(send_response),
&be_const_str_solidified,
( &(const binstruction[ 8]) { /* code */
0x88140100, // 0000 GETMBR R5 R0 K0
0x8C140B01, // 0001 GETMET R5 R5 K1
0x5C1C0200, // 0002 MOVE R7 R1
0x5C200400, // 0003 MOVE R8 R2
0x5C240600, // 0004 MOVE R9 R3
0x5C280800, // 0005 MOVE R10 R4
0x7C140A00, // 0006 CALL R5 5
0x80000000, // 0007 RET 0
( &(const binstruction[ 9]) { /* code */
0x88180100, // 0000 GETMBR R6 R0 K0
0x8C180D01, // 0001 GETMET R6 R6 K1
0x5C200200, // 0002 MOVE R8 R1
0x5C240400, // 0003 MOVE R9 R2
0x5C280600, // 0004 MOVE R10 R3
0x5C2C0800, // 0005 MOVE R11 R4
0x5C300A00, // 0006 MOVE R12 R5
0x7C180C00, // 0007 CALL R6 6
0x80000000, // 0008 RET 0
})
)
);

View File

@ -425,10 +425,10 @@ be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
/* K4 */ be_nested_str_weak(hue),
/* K5 */ be_nested_str_weak(sat),
/* K6 */ be_nested_str_weak(power),
/* K7 */ be_nested_str_weak(shadow_bri),
/* K8 */ be_nested_str_weak(tasmota),
/* K9 */ be_nested_str_weak(scale_uint),
/* K10 */ be_const_int(0),
/* K7 */ be_nested_str_weak(tasmota),
/* K8 */ be_nested_str_weak(scale_uint),
/* K9 */ be_const_int(0),
/* K10 */ be_nested_str_weak(shadow_bri),
/* K11 */ be_nested_str_weak(shadow_hue),
/* K12 */ be_nested_str_weak(shadow_sat),
/* K13 */ be_nested_str_weak(shadow_onoff),
@ -437,7 +437,7 @@ be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
}),
be_str_weak(update_shadow),
&be_const_str_solidified,
( &(const binstruction[92]) { /* code */
( &(const binstruction[98]) { /* code */
0xA4060000, // 0000 IMPORT R1 K0
0x8C080301, // 0001 GETMET R2 R1 K1
0x7C080200, // 0002 CALL R2 1
@ -459,77 +459,83 @@ be_local_closure(Matter_Plugin_Light3_update_shadow, /* name */
0x7C180600, // 0012 CALL R6 3
0x4C1C0000, // 0013 LDNIL R7
0x201C0607, // 0014 NE R7 R3 R7
0x781E0008, // 0015 JMPF R7 #001F
0xB81E1000, // 0016 GETNGBL R7 K8
0x8C1C0F09, // 0017 GETMET R7 R7 K9
0x781E0009, // 0015 JMPF R7 #0020
0xB81E0E00, // 0016 GETNGBL R7 K7
0x8C1C0F08, // 0017 GETMET R7 R7 K8
0x5C240600, // 0018 MOVE R9 R3
0x5828000A, // 0019 LDCONST R10 K10
0x58280009, // 0019 LDCONST R10 K9
0x542E00FE, // 001A LDINT R11 255
0x5830000A, // 001B LDCONST R12 K10
0x58300009, // 001B LDCONST R12 K9
0x543600FD, // 001C LDINT R13 254
0x7C1C0C00, // 001D CALL R7 6
0x90020E07, // 001E SETMBR R0 K7 R7
0x4C1C0000, // 001F LDNIL R7
0x201C0807, // 0020 NE R7 R4 R7
0x781E0008, // 0021 JMPF R7 #002B
0xB81E1000, // 0022 GETNGBL R7 K8
0x8C1C0F09, // 0023 GETMET R7 R7 K9
0x5C240800, // 0024 MOVE R9 R4
0x5828000A, // 0025 LDCONST R10 K10
0x542E0167, // 0026 LDINT R11 360
0x5830000A, // 0027 LDCONST R12 K10
0x543600FD, // 0028 LDINT R13 254
0x7C1C0C00, // 0029 CALL R7 6
0x90021607, // 002A SETMBR R0 K11 R7
0x4C1C0000, // 002B LDNIL R7
0x201C0A07, // 002C NE R7 R5 R7
0x781E0008, // 002D JMPF R7 #0037
0xB81E1000, // 002E GETNGBL R7 K8
0x8C1C0F09, // 002F GETMET R7 R7 K9
0x5C240A00, // 0030 MOVE R9 R5
0x5828000A, // 0031 LDCONST R10 K10
0x542E00FE, // 0032 LDINT R11 255
0x5830000A, // 0033 LDCONST R12 K10
0x543600FD, // 0034 LDINT R13 254
0x7C1C0C00, // 0035 CALL R7 6
0x90021807, // 0036 SETMBR R0 K12 R7
0x881C010D, // 0037 GETMBR R7 R0 K13
0x201C0C07, // 0038 NE R7 R6 R7
0x781E0005, // 0039 JMPF R7 #0040
0x8C1C010E, // 003A GETMET R7 R0 K14
0x4C240000, // 003B LDNIL R9
0x542A0005, // 003C LDINT R10 6
0x582C000A, // 003D LDCONST R11 K10
0x7C1C0800, // 003E CALL R7 4
0x90021A06, // 003F SETMBR R0 K13 R6
0x881C0107, // 0040 GETMBR R7 R0 K7
0x201C0607, // 0041 NE R7 R3 R7
0x781E0005, // 0042 JMPF R7 #0049
0x8C1C010E, // 0043 GETMET R7 R0 K14
0x4C240000, // 0044 LDNIL R9
0x542A0007, // 0045 LDINT R10 8
0x582C000A, // 0046 LDCONST R11 K10
0x7C1C0800, // 0047 CALL R7 4
0x90020E03, // 0048 SETMBR R0 K7 R3
0x881C010B, // 0049 GETMBR R7 R0 K11
0x201C0807, // 004A NE R7 R4 R7
0x781E0005, // 004B JMPF R7 #0052
0x8C1C010E, // 004C GETMET R7 R0 K14
0x4C240000, // 004D LDNIL R9
0x542A02FF, // 004E LDINT R10 768
0x582C000A, // 004F LDCONST R11 K10
0x7C1C0800, // 0050 CALL R7 4
0x90021604, // 0051 SETMBR R0 K11 R4
0x881C010C, // 0052 GETMBR R7 R0 K12
0x201C0A07, // 0053 NE R7 R5 R7
0x781E0005, // 0054 JMPF R7 #005B
0x8C1C010E, // 0055 GETMET R7 R0 K14
0x4C240000, // 0056 LDNIL R9
0x542A02FF, // 0057 LDINT R10 768
0x582C000F, // 0058 LDCONST R11 K15
0x7C1C0800, // 0059 CALL R7 4
0x90021805, // 005A SETMBR R0 K12 R5
0x80000000, // 005B RET 0
0x5C0C0E00, // 001E MOVE R3 R7
0x70020000, // 001F JMP #0021
0x880C010A, // 0020 GETMBR R3 R0 K10
0x4C1C0000, // 0021 LDNIL R7
0x201C0807, // 0022 NE R7 R4 R7
0x781E0009, // 0023 JMPF R7 #002E
0xB81E0E00, // 0024 GETNGBL R7 K7
0x8C1C0F08, // 0025 GETMET R7 R7 K8
0x5C240800, // 0026 MOVE R9 R4
0x58280009, // 0027 LDCONST R10 K9
0x542E0167, // 0028 LDINT R11 360
0x58300009, // 0029 LDCONST R12 K9
0x543600FD, // 002A LDINT R13 254
0x7C1C0C00, // 002B CALL R7 6
0x5C100E00, // 002C MOVE R4 R7
0x70020000, // 002D JMP #002F
0x880C010B, // 002E GETMBR R3 R0 K11
0x4C1C0000, // 002F LDNIL R7
0x201C0A07, // 0030 NE R7 R5 R7
0x781E0009, // 0031 JMPF R7 #003C
0xB81E0E00, // 0032 GETNGBL R7 K7
0x8C1C0F08, // 0033 GETMET R7 R7 K8
0x5C240A00, // 0034 MOVE R9 R5
0x58280009, // 0035 LDCONST R10 K9
0x542E00FE, // 0036 LDINT R11 255
0x58300009, // 0037 LDCONST R12 K9
0x543600FD, // 0038 LDINT R13 254
0x7C1C0C00, // 0039 CALL R7 6
0x5C140E00, // 003A MOVE R5 R7
0x70020000, // 003B JMP #003D
0x880C010C, // 003C GETMBR R3 R0 K12
0x881C010D, // 003D GETMBR R7 R0 K13
0x201C0C07, // 003E NE R7 R6 R7
0x781E0005, // 003F JMPF R7 #0046
0x8C1C010E, // 0040 GETMET R7 R0 K14
0x4C240000, // 0041 LDNIL R9
0x542A0005, // 0042 LDINT R10 6
0x582C0009, // 0043 LDCONST R11 K9
0x7C1C0800, // 0044 CALL R7 4
0x90021A06, // 0045 SETMBR R0 K13 R6
0x881C010A, // 0046 GETMBR R7 R0 K10
0x201C0607, // 0047 NE R7 R3 R7
0x781E0005, // 0048 JMPF R7 #004F
0x8C1C010E, // 0049 GETMET R7 R0 K14
0x4C240000, // 004A LDNIL R9
0x542A0007, // 004B LDINT R10 8
0x582C0009, // 004C LDCONST R11 K9
0x7C1C0800, // 004D CALL R7 4
0x90021403, // 004E SETMBR R0 K10 R3
0x881C010B, // 004F GETMBR R7 R0 K11
0x201C0807, // 0050 NE R7 R4 R7
0x781E0005, // 0051 JMPF R7 #0058
0x8C1C010E, // 0052 GETMET R7 R0 K14
0x4C240000, // 0053 LDNIL R9
0x542A02FF, // 0054 LDINT R10 768
0x582C0009, // 0055 LDCONST R11 K9
0x7C1C0800, // 0056 CALL R7 4
0x90021604, // 0057 SETMBR R0 K11 R4
0x881C010C, // 0058 GETMBR R7 R0 K12
0x201C0A07, // 0059 NE R7 R5 R7
0x781E0005, // 005A JMPF R7 #0061
0x8C1C010E, // 005B GETMET R7 R0 K14
0x4C240000, // 005C LDNIL R9
0x542A02FF, // 005D LDINT R10 768
0x582C000F, // 005E LDCONST R11 K15
0x7C1C0800, // 005F CALL R7 4
0x90021805, // 0060 SETMBR R0 K12 R5
0x80000000, // 0061 RET 0
})
)
);

View File

@ -11,47 +11,55 @@ extern const bclass be_class_Matter_UDPPacket_sent;
********************************************************************/
be_local_closure(Matter_UDPPacket_sent_init, /* name */
be_nested_proto(
9, /* nstack */
5, /* argc */
10, /* nstack */
6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[12]) { /* constants */
( &(const bvalue[13]) { /* constants */
/* K0 */ be_nested_str_weak(raw),
/* K1 */ be_nested_str_weak(addr),
/* K2 */ be_nested_str_weak(port),
/* K3 */ be_nested_str_weak(msg_id),
/* K4 */ be_nested_str_weak(retries),
/* K5 */ be_const_int(0),
/* K6 */ be_nested_str_weak(next_try),
/* K7 */ be_nested_str_weak(tasmota),
/* K8 */ be_nested_str_weak(millis),
/* K9 */ be_nested_str_weak(matter),
/* K10 */ be_nested_str_weak(UDPServer),
/* K11 */ be_nested_str_weak(_backoff_time),
/* K6 */ be_nested_str_weak(session_id),
/* K7 */ be_nested_str_weak(next_try),
/* K8 */ be_nested_str_weak(tasmota),
/* K9 */ be_nested_str_weak(millis),
/* K10 */ be_nested_str_weak(matter),
/* K11 */ be_nested_str_weak(UDPServer),
/* K12 */ be_nested_str_weak(_backoff_time),
}),
be_str_weak(init),
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
( &(const binstruction[23]) { /* code */
0x90020001, // 0000 SETMBR R0 K0 R1
0x90020202, // 0001 SETMBR R0 K1 R2
0x90020403, // 0002 SETMBR R0 K2 R3
0x90020604, // 0003 SETMBR R0 K3 R4
0x90020905, // 0004 SETMBR R0 K4 K5
0xB8160E00, // 0005 GETNGBL R5 K7
0x8C140B08, // 0006 GETMET R5 R5 K8
0x7C140200, // 0007 CALL R5 1
0xB81A1200, // 0008 GETNGBL R6 K9
0x88180D0A, // 0009 GETMBR R6 R6 K10
0x8C180D0B, // 000A GETMET R6 R6 K11
0x88200104, // 000B GETMBR R8 R0 K4
0x7C180400, // 000C CALL R6 2
0x00140A06, // 000D ADD R5 R5 R6
0x90020C05, // 000E SETMBR R0 K6 R5
0x80000000, // 000F RET 0
0x4C180000, // 0005 LDNIL R6
0x20180A06, // 0006 NE R6 R5 R6
0x781A0001, // 0007 JMPF R6 #000A
0x5C180A00, // 0008 MOVE R6 R5
0x70020000, // 0009 JMP #000B
0x58180005, // 000A LDCONST R6 K5
0x90020C06, // 000B SETMBR R0 K6 R6
0xB81A1000, // 000C GETNGBL R6 K8
0x8C180D09, // 000D GETMET R6 R6 K9
0x7C180200, // 000E CALL R6 1
0xB81E1400, // 000F GETNGBL R7 K10
0x881C0F0B, // 0010 GETMBR R7 R7 K11
0x8C1C0F0C, // 0011 GETMET R7 R7 K12
0x88240104, // 0012 GETMBR R9 R0 K4
0x7C1C0400, // 0013 CALL R7 2
0x00180C07, // 0014 ADD R6 R6 R7
0x90020E06, // 0015 SETMBR R0 K7 R6
0x80000000, // 0016 RET 0
})
)
);
@ -134,18 +142,19 @@ be_local_closure(Matter_UDPPacket_sent_send, /* name */
** Solidified class: Matter_UDPPacket_sent
********************************************************************/
be_local_class(Matter_UDPPacket_sent,
6,
7,
NULL,
be_nested_map(8,
be_nested_map(9,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(addr, -1), be_const_var(1) },
{ be_const_key_weak(raw, -1), be_const_var(0) },
{ be_const_key_weak(msg_id, 0), be_const_var(3) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_UDPPacket_sent_init_closure) },
{ be_const_key_weak(port, -1), be_const_var(2) },
{ be_const_key_weak(retries, -1), be_const_var(4) },
{ be_const_key_weak(next_try, 4), be_const_var(5) },
{ be_const_key_weak(next_try, 3), be_const_var(6) },
{ be_const_key_weak(msg_id, 8), be_const_var(3) },
{ be_const_key_weak(retries, 7), be_const_var(5) },
{ be_const_key_weak(send, -1), be_const_closure(Matter_UDPPacket_sent_send_closure) },
{ be_const_key_weak(port, 0), be_const_var(2) },
{ be_const_key_weak(raw, -1), be_const_var(0) },
{ be_const_key_weak(init, -1), be_const_closure(Matter_UDPPacket_sent_init_closure) },
{ be_const_key_weak(addr, -1), be_const_var(1) },
{ be_const_key_weak(session_id, -1), be_const_var(4) },
})),
be_str_weak(Matter_UDPPacket_sent)
);
@ -251,8 +260,8 @@ be_local_closure(Matter_UDPServer__backoff_time, /* name */
********************************************************************/
be_local_closure(Matter_UDPServer_send_response, /* name */
be_nested_proto(
11, /* nstack */
5, /* argc */
13, /* nstack */
6, /* argc */
2, /* varg */
0, /* has upvals */
NULL, /* no upvals */
@ -269,23 +278,24 @@ be_local_closure(Matter_UDPServer_send_response, /* name */
}),
be_str_weak(send_response),
&be_const_str_solidified,
( &(const binstruction[16]) { /* code */
0xB8160000, // 0000 GETNGBL R5 K0
0x8C140B01, // 0001 GETMET R5 R5 K1
0x5C1C0200, // 0002 MOVE R7 R1
0x5C200400, // 0003 MOVE R8 R2
0x5C240600, // 0004 MOVE R9 R3
0x5C280800, // 0005 MOVE R10 R4
0x7C140A00, // 0006 CALL R5 5
0x8C180B02, // 0007 GETMET R6 R5 K2
0x88200103, // 0008 GETMBR R8 R0 K3
0x7C180400, // 0009 CALL R6 2
0x78120003, // 000A JMPF R4 #000F
0x88180104, // 000B GETMBR R6 R0 K4
0x8C180D05, // 000C GETMET R6 R6 K5
0x5C200A00, // 000D MOVE R8 R5
0x7C180400, // 000E CALL R6 2
0x80000000, // 000F RET 0
( &(const binstruction[17]) { /* code */
0xB81A0000, // 0000 GETNGBL R6 K0
0x8C180D01, // 0001 GETMET R6 R6 K1
0x5C200200, // 0002 MOVE R8 R1
0x5C240400, // 0003 MOVE R9 R2
0x5C280600, // 0004 MOVE R10 R3
0x5C2C0800, // 0005 MOVE R11 R4
0x5C300A00, // 0006 MOVE R12 R5
0x7C180C00, // 0007 CALL R6 6
0x8C1C0D02, // 0008 GETMET R7 R6 K2
0x88240103, // 0009 GETMBR R9 R0 K3
0x7C1C0400, // 000A CALL R7 2
0x78120003, // 000B JMPF R4 #0010
0x881C0104, // 000C GETMBR R7 R0 K4
0x8C1C0F05, // 000D GETMET R7 R7 K5
0x5C240C00, // 000E MOVE R9 R6
0x7C1C0400, // 000F CALL R7 2
0x80000000, // 0010 RET 0
})
)
);
@ -493,7 +503,7 @@ be_local_closure(Matter_UDPServer_init, /* name */
********************************************************************/
be_local_closure(Matter_UDPServer__resend_packets, /* name */
be_nested_proto(
12, /* nstack */
13, /* nstack */
1, /* argc */
2, /* varg */
0, /* has upvals */
@ -501,7 +511,7 @@ be_local_closure(Matter_UDPServer__resend_packets, /* name */
0, /* has sup protos */
NULL, /* no sub protos */
1, /* has constants */
( &(const bvalue[23]) { /* constants */
( &(const bvalue[24]) { /* constants */
/* K0 */ be_const_int(0),
/* K1 */ be_nested_str_weak(packets_sent),
/* K2 */ be_nested_str_weak(tasmota),
@ -521,27 +531,28 @@ be_local_closure(Matter_UDPServer__resend_packets, /* name */
/* K16 */ be_nested_str_weak(string),
/* K17 */ be_nested_str_weak(remove),
/* K18 */ be_nested_str_weak(format),
/* K19 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Unacked_X20packet_X20_X27_X5B_X25s_X5D_X3A_X25i_X27_X20msg_id_X3D_X25i),
/* K20 */ be_nested_str_weak(addr),
/* K21 */ be_nested_str_weak(port),
/* K22 */ be_const_int(2),
/* K19 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20Unacked_X20packet_X20_X27_X5B_X25s_X5D_X3A_X25i_X27_X20msg_id_X3D_X25i),
/* K20 */ be_nested_str_weak(session_id),
/* K21 */ be_nested_str_weak(addr),
/* K22 */ be_nested_str_weak(port),
/* K23 */ be_const_int(2),
}),
be_str_weak(_resend_packets),
&be_const_str_solidified,
( &(const binstruction[60]) { /* code */
( &(const binstruction[61]) { /* code */
0x58040000, // 0000 LDCONST R1 K0
0x6008000C, // 0001 GETGBL R2 G12
0x880C0101, // 0002 GETMBR R3 R0 K1
0x7C080200, // 0003 CALL R2 1
0x14080202, // 0004 LT R2 R1 R2
0x780A0034, // 0005 JMPF R2 #003B
0x780A0035, // 0005 JMPF R2 #003C
0x88080101, // 0006 GETMBR R2 R0 K1
0x94080401, // 0007 GETIDX R2 R2 R1
0xB80E0400, // 0008 GETNGBL R3 K2
0x8C0C0703, // 0009 GETMET R3 R3 K3
0x88140504, // 000A GETMBR R5 R2 K4
0x7C0C0400, // 000B CALL R3 2
0x780E002B, // 000C JMPF R3 #0039
0x780E002C, // 000C JMPF R3 #003A
0x880C0505, // 000D GETMBR R3 R2 K5
0x88100106, // 000E GETMBR R4 R0 K6
0x180C0604, // 000F LE R3 R3 R4
@ -569,7 +580,7 @@ be_local_closure(Matter_UDPServer__resend_packets, /* name */
0x000C070F, // 0025 ADD R3 R3 K15
0x900A0A03, // 0026 SETMBR R2 K5 R3
0x0004030F, // 0027 ADD R1 R1 K15
0x7002000E, // 0028 JMP #0038
0x7002000F, // 0028 JMP #0039
0xA40E2000, // 0029 IMPORT R3 K16
0x88100101, // 002A GETMBR R4 R0 K1
0x8C100911, // 002B GETMET R4 R4 K17
@ -581,14 +592,15 @@ be_local_closure(Matter_UDPServer__resend_packets, /* name */
0x58200013, // 0031 LDCONST R8 K19
0x88240514, // 0032 GETMBR R9 R2 K20
0x88280515, // 0033 GETMBR R10 R2 K21
0x882C0509, // 0034 GETMBR R11 R2 K9
0x7C180A00, // 0035 CALL R6 5
0x581C0016, // 0036 LDCONST R7 K22
0x7C100600, // 0037 CALL R4 3
0x70020000, // 0038 JMP #003A
0x0004030F, // 0039 ADD R1 R1 K15
0x7001FFC5, // 003A JMP #0001
0x80000000, // 003B RET 0
0x882C0516, // 0034 GETMBR R11 R2 K22
0x88300509, // 0035 GETMBR R12 R2 K9
0x7C180C00, // 0036 CALL R6 6
0x581C0017, // 0037 LDCONST R7 K23
0x7C100600, // 0038 CALL R4 3
0x70020000, // 0039 JMP #003B
0x0004030F, // 003A ADD R1 R1 K15
0x7001FFC4, // 003B JMP #0001
0x80000000, // 003C RET 0
})
)
);
@ -732,7 +744,7 @@ be_local_class(Matter_UDPServer,
NULL,
be_nested_map(17,
( (struct bmapnode*) &(const bmapnode[]) {
{ be_const_key_weak(RETRIES, -1), be_const_int(4) },
{ be_const_key_weak(RETRIES, -1), be_const_int(6) },
{ be_const_key_weak(_backoff_time, 6), be_const_static_closure(Matter_UDPServer__backoff_time_closure) },
{ be_const_key_weak(listening, -1), be_const_var(2) },
{ be_const_key_weak(send_response, -1), be_const_closure(Matter_UDPServer_send_response_closure) },