mirror of https://github.com/arendst/Tasmota.git
Matter refactoring of UDP sending (#18398)
This commit is contained in:
parent
6d9beb5d79
commit
b8483dfb6f
|
@ -120,7 +120,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, msg.session.local_session_id)
|
||||
self.responder.send_response_frame(resp)
|
||||
end
|
||||
|
||||
def parse_PBKDFParamRequest(msg)
|
||||
|
@ -169,7 +169,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, msg.session.local_session_id)
|
||||
self.responder.send_response_frame(resp)
|
||||
return true
|
||||
end
|
||||
|
||||
|
@ -250,7 +250,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, msg.session.local_session_id)
|
||||
self.responder.send_response_frame(resp)
|
||||
return true
|
||||
end
|
||||
|
||||
|
@ -432,7 +432,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, msg.session.local_session_id)
|
||||
self.responder.send_response_frame(resp)
|
||||
|
||||
session.close()
|
||||
session.set_keys(i2r, r2i, ac, created)
|
||||
|
@ -542,7 +542,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, msg.session.local_session_id)
|
||||
self.responder.send_response_frame(resp)
|
||||
return true
|
||||
end
|
||||
|
||||
|
|
|
@ -336,15 +336,15 @@ class Matter_Device
|
|||
#############################################################
|
||||
# Global entry point for sending a message.
|
||||
# Delegates to `udp_server`
|
||||
def msg_send(raw, addr, port, id, session_id)
|
||||
return self.udp_server.send_response(raw, addr, port, id, session_id)
|
||||
def msg_send(msg)
|
||||
return self.udp_server.send_UDP(msg)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Signals that a ack was received.
|
||||
# Delegates to `udp_server` to remove from resending list.
|
||||
def received_ack(id)
|
||||
return self.udp_server.received_ack(id)
|
||||
def received_ack(msg)
|
||||
return self.udp_server.received_ack(msg)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
|
|
|
@ -123,7 +123,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, resp.session.local_session_id)
|
||||
responder.send_response_frame(resp)
|
||||
self.last_counter = resp.message_counter
|
||||
return true
|
||||
end
|
||||
|
@ -244,7 +244,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, resp.session.local_session_id)
|
||||
responder.send_response_frame(resp)
|
||||
self.last_counter = resp.message_counter
|
||||
|
||||
if size(next_elemnts) > 0
|
||||
|
@ -340,7 +340,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-#, resp.session.local_session_id)
|
||||
responder.send_response_frame(resp)
|
||||
self.last_counter = resp.message_counter
|
||||
return true # we received a ack(), just finish
|
||||
end
|
||||
|
@ -399,7 +399,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, resp.session.local_session_id)
|
||||
responder.send_response_frame(resp)
|
||||
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()
|
||||
|
|
|
@ -49,7 +49,7 @@ class Matter_MessageHandler
|
|||
var resp = frame.build_standalone_ack(reliable)
|
||||
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}' : ''), 3)
|
||||
self.send_response(resp.raw, resp.remote_ip, resp.remote_port, reliable ? resp.message_counter : nil, resp.session.local_session_id)
|
||||
self.send_response_frame(resp)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -65,7 +65,7 @@ class Matter_MessageHandler
|
|||
resp.encode_frame()
|
||||
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}' : ''), 3)
|
||||
self.send_response(resp.raw, resp.remote_ip, resp.remote_port, reliable ? resp.message_counter : nil, resp.session.local_session_id)
|
||||
self.send_response_frame(resp)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -111,7 +111,7 @@ class Matter_MessageHandler
|
|||
end
|
||||
|
||||
if !frame.decode_payload() return false end
|
||||
self.device.received_ack(frame.ack_message_counter) # 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`
|
||||
var op_name = matter.get_opcode_name(frame.opcode)
|
||||
if !op_name op_name = string.format("0x%02X", frame.opcode) end
|
||||
|
@ -160,7 +160,7 @@ class Matter_MessageHandler
|
|||
|
||||
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)
|
||||
|
||||
self.device.received_ack(frame.ack_message_counter) # remove acknowledge packet from sending list
|
||||
self.device.received_ack(frame) # remove acknowledge packet from sending list
|
||||
|
||||
# dispatch according to protocol_id
|
||||
var protocol_id = frame.protocol_id
|
||||
|
@ -210,8 +210,18 @@ class Matter_MessageHandler
|
|||
end
|
||||
|
||||
#############################################################
|
||||
def send_response(raw, addr, port, id, session_id)
|
||||
self.device.msg_send(raw, addr, port, id, session_id)
|
||||
# send a frame to target, usually a response
|
||||
#
|
||||
# We need the following:
|
||||
# msg.raw: raw bytes to send (bytes)
|
||||
# msg.remote_ip: ip address of target (string)
|
||||
# msg.remote_port: port of target (int)
|
||||
# msg.x_flag_r: is the frame expecting a Ack back (int)
|
||||
# msg.message_counter: counter for this message (int)
|
||||
# msg.exchange_id: exchange id (int)
|
||||
# msg.local_session_id: local session (for logging)
|
||||
def send_response_frame(msg)
|
||||
self.device.msg_send(msg)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
|
|
|
@ -37,35 +37,24 @@ 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 exchange_id # (int) exchange id, to match ack
|
||||
var session_id # (int) session 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, session_id)
|
||||
self.raw = raw
|
||||
self.addr = addr
|
||||
self.port = port
|
||||
self.msg_id = id
|
||||
def init(msg)
|
||||
# extract information from msg
|
||||
self.raw = msg.raw
|
||||
self.addr = msg.remote_ip
|
||||
self.port = msg.remote_port
|
||||
self.msg_id = msg.x_flag_r ? msg.message_counter : nil
|
||||
self.exchange_id = (msg.exchange_id != nil) ? msg.exchange_id : 0
|
||||
self.session_id = (msg.local_session_id != nil) ? msg.local_session_id : 0
|
||||
# other information
|
||||
self.retries = 0
|
||||
self.session_id = (session_id != nil) ? session_id : 0
|
||||
self.next_try = tasmota.millis() + matter.UDPServer._backoff_time(self.retries)
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Send packet now.
|
||||
#
|
||||
# Returns `true` if packet was successfully sent.
|
||||
def send(udp_socket)
|
||||
import string
|
||||
var ok = udp_socket.send(self.addr ? self.addr : udp_socket.remote_ip, self.port ? self.port : udp_socket.remote_port, self.raw)
|
||||
if ok
|
||||
tasmota.log(string.format("MTR: sending packet to '[%s]:%i'", self.addr, self.port), 4)
|
||||
else
|
||||
tasmota.log(string.format("MTR: error sending packet to '[%s]:%i'", self.addr, self.port), 3)
|
||||
end
|
||||
return ok
|
||||
end
|
||||
|
||||
end
|
||||
matter.UDPPacket_sent = Matter_UDPPacket_sent
|
||||
|
||||
|
@ -74,7 +63,7 @@ matter.UDPPacket_sent = Matter_UDPPacket_sent
|
|||
#
|
||||
#################################################################################
|
||||
class Matter_UDPServer
|
||||
static var RETRIES = 6 # 7 transmissions max (6 retries) - 2 more than spec `MRP_MAX_TRANSMISSIONS` 4.11.8 p.146
|
||||
static var RETRIES = 5 # 6 transmissions max (5 retries) - 1 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
|
||||
|
@ -150,6 +139,21 @@ class Matter_UDPServer
|
|||
self._resend_packets() # resend any packet
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Send packet now.
|
||||
#
|
||||
# Returns `true` if packet was successfully sent.
|
||||
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)
|
||||
if ok
|
||||
tasmota.log(string.format("MTR: sending packet to '[%s]:%i'", packet.addr, packet.port), 4)
|
||||
else
|
||||
tasmota.log(string.format("MTR: error sending packet to '[%s]:%i'", packet.addr, packet.port), 2)
|
||||
end
|
||||
return ok
|
||||
end
|
||||
|
||||
#############################################################
|
||||
# Resend packets if they have not been acknowledged by receiver
|
||||
# either with direct Ack packet or ack embedded in another packet.
|
||||
|
@ -166,7 +170,7 @@ class Matter_UDPServer
|
|||
if tasmota.time_reached(packet.next_try)
|
||||
if packet.retries <= self.RETRIES
|
||||
tasmota.log("MTR: . Resending packet id=" + str(packet.msg_id), 3)
|
||||
packet.send(self.udp_socket) # resend
|
||||
self.send(packet)
|
||||
packet.next_try = tasmota.millis() + self._backoff_time(packet.retries)
|
||||
packet.retries += 1
|
||||
idx += 1
|
||||
|
@ -183,12 +187,15 @@ class Matter_UDPServer
|
|||
|
||||
#############################################################
|
||||
# Just received acknowledgment, remove packet from sender
|
||||
def received_ack(id)
|
||||
def received_ack(msg)
|
||||
var id = msg.ack_message_counter
|
||||
var exch = msg.exchange_id
|
||||
if id == nil return end
|
||||
tasmota.log("MTR: receveived ACK id="+str(id), 3)
|
||||
var idx = 0
|
||||
while idx < size(self.packets_sent)
|
||||
if self.packets_sent[idx].msg_id == id
|
||||
var packet = self.packets_sent[idx]
|
||||
if packet.msg_id == id && packet.exchange_id == exch
|
||||
self.packets_sent.remove(idx)
|
||||
tasmota.log("MTR: . Removed packet from sending list id=" + str(id), 3)
|
||||
else
|
||||
|
@ -199,11 +206,10 @@ class Matter_UDPServer
|
|||
|
||||
#############################################################
|
||||
# Send a packet, enqueue it if `id` is not `nil`
|
||||
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))
|
||||
def send_UDP(msg)
|
||||
var packet = matter.UDPPacket_sent(msg)
|
||||
self.send(packet)
|
||||
if packet.msg_id
|
||||
self.packets_sent.push(packet)
|
||||
end
|
||||
end
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3456,8 +3456,8 @@ be_local_closure(Matter_Device_autoconf_device, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(Matter_Device_msg_send, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
6, /* argc */
|
||||
5, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
|
@ -3466,20 +3466,16 @@ be_local_closure(Matter_Device_msg_send, /* name */
|
|||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(udp_server),
|
||||
/* K1 */ be_nested_str_weak(send_response),
|
||||
/* K1 */ be_nested_str_weak(send_UDP),
|
||||
}),
|
||||
be_str_weak(msg_send),
|
||||
&be_const_str_solidified,
|
||||
( &(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
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
0x5C100200, // 0002 MOVE R4 R1
|
||||
0x7C080400, // 0003 CALL R2 2
|
||||
0x80040400, // 0004 RET 1 R2
|
||||
})
|
||||
)
|
||||
);
|
||||
|
|
|
@ -274,7 +274,7 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[26]) { /* constants */
|
||||
( &(const bvalue[23]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(tasmota),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
|
@ -296,15 +296,12 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
|
|||
/* K18 */ be_nested_str_weak(local_session_id),
|
||||
/* K19 */ be_nested_str_weak(message_counter),
|
||||
/* K20 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K21 */ be_nested_str_weak(send_response),
|
||||
/* K22 */ be_nested_str_weak(raw),
|
||||
/* K23 */ be_nested_str_weak(remote_ip),
|
||||
/* K24 */ be_nested_str_weak(remote_port),
|
||||
/* K25 */ be_nested_str_weak(last_counter),
|
||||
/* K21 */ be_nested_str_weak(send_response_frame),
|
||||
/* K22 */ be_nested_str_weak(last_counter),
|
||||
}),
|
||||
be_str_weak(send_im),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[53]) { /* code */
|
||||
( &(const binstruction[48]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xB80E0200, // 0001 GETNGBL R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
|
@ -347,17 +344,12 @@ be_local_closure(Matter_IM_Message_send_im, /* name */
|
|||
0x581C000A, // 0027 LDCONST R7 K10
|
||||
0x7C100600, // 0028 CALL R4 3
|
||||
0x8C100315, // 0029 GETMET R4 R1 K21
|
||||
0x88180716, // 002A GETMBR R6 R3 K22
|
||||
0x881C0717, // 002B GETMBR R7 R3 K23
|
||||
0x88200718, // 002C GETMBR R8 R3 K24
|
||||
0x88240713, // 002D GETMBR R9 R3 K19
|
||||
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
|
||||
0x5C180600, // 002A MOVE R6 R3
|
||||
0x7C100400, // 002B CALL R4 2
|
||||
0x88100713, // 002C GETMBR R4 R3 K19
|
||||
0x90022C04, // 002D SETMBR R0 K22 R4
|
||||
0x50100200, // 002E LDBOOL R4 1 0
|
||||
0x80040800, // 002F RET 1 R4
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -712,7 +704,7 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[36]) { /* constants */
|
||||
( &(const bvalue[33]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(tasmota),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
|
@ -743,16 +735,13 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
|
|||
/* K27 */ be_nested_str_weak(local_session_id),
|
||||
/* K28 */ be_nested_str_weak(message_counter),
|
||||
/* K29 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K30 */ be_nested_str_weak(send_response),
|
||||
/* K31 */ be_nested_str_weak(raw),
|
||||
/* K32 */ be_nested_str_weak(remote_ip),
|
||||
/* K33 */ be_nested_str_weak(remote_port),
|
||||
/* K34 */ be_nested_str_weak(last_counter),
|
||||
/* K35 */ be_nested_str_weak(MTR_X3A_X20to_be_sent_later_X20size_X3D_X25i_X20exch_X3D_X25i),
|
||||
/* K30 */ be_nested_str_weak(send_response_frame),
|
||||
/* K31 */ be_nested_str_weak(last_counter),
|
||||
/* K32 */ be_nested_str_weak(MTR_X3A_X20to_be_sent_later_X20size_X3D_X25i_X20exch_X3D_X25i),
|
||||
}),
|
||||
be_str_weak(send_im),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[170]) { /* code */
|
||||
( &(const binstruction[165]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xB80E0200, // 0001 GETNGBL R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
|
@ -889,40 +878,35 @@ be_local_closure(Matter_IM_ReportData_send_im, /* name */
|
|||
0x5838000A, // 0085 LDCONST R14 K10
|
||||
0x7C2C0600, // 0086 CALL R11 3
|
||||
0x8C2C031E, // 0087 GETMET R11 R1 K30
|
||||
0x8834071F, // 0088 GETMBR R13 R3 K31
|
||||
0x88380720, // 0089 GETMBR R14 R3 K32
|
||||
0x883C0721, // 008A GETMBR R15 R3 K33
|
||||
0x8840071C, // 008B GETMBR R16 R3 K28
|
||||
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
|
||||
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
|
||||
0x5C340600, // 0088 MOVE R13 R3
|
||||
0x7C2C0400, // 0089 CALL R11 2
|
||||
0x882C071C, // 008A GETMBR R11 R3 K28
|
||||
0x90023E0B, // 008B SETMBR R0 K31 R11
|
||||
0x602C000C, // 008C GETGBL R11 G12
|
||||
0x5C301000, // 008D MOVE R12 R8
|
||||
0x7C2C0200, // 008E CALL R11 1
|
||||
0x242C1709, // 008F GT R11 R11 K9
|
||||
0x782E0010, // 0090 JMPF R11 #00A2
|
||||
0x90121A08, // 0091 SETMBR R4 K13 R8
|
||||
0xB82E0200, // 0092 GETNGBL R11 K1
|
||||
0x8C2C1702, // 0093 GETMET R11 R11 K2
|
||||
0x8C340503, // 0094 GETMET R13 R2 K3
|
||||
0x583C0020, // 0095 LDCONST R15 K32
|
||||
0x6040000C, // 0096 GETGBL R16 G12
|
||||
0x8844090D, // 0097 GETMBR R17 R4 K13
|
||||
0x7C400200, // 0098 CALL R16 1
|
||||
0x88440706, // 0099 GETMBR R17 R3 K6
|
||||
0x7C340800, // 009A CALL R13 4
|
||||
0x5838000A, // 009B LDCONST R14 K10
|
||||
0x7C2C0600, // 009C CALL R11 3
|
||||
0x502C0000, // 009D LDBOOL R11 0 0
|
||||
0x90020E0B, // 009E SETMBR R0 K7 R11
|
||||
0x502C0000, // 009F LDBOOL R11 0 0
|
||||
0x80041600, // 00A0 RET 1 R11
|
||||
0x70020001, // 00A1 JMP #00A4
|
||||
0x502C0200, // 00A2 LDBOOL R11 1 0
|
||||
0x80041600, // 00A3 RET 1 R11
|
||||
0x80000000, // 00A4 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -1069,7 +1053,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[30]) { /* constants */
|
||||
( &(const bvalue[27]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(tasmota),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
|
@ -1095,15 +1079,12 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
|
|||
/* K22 */ be_nested_str_weak(local_session_id),
|
||||
/* K23 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K24 */ be_nested_str_weak(message_counter),
|
||||
/* K25 */ be_nested_str_weak(send_response),
|
||||
/* K26 */ be_nested_str_weak(raw),
|
||||
/* K27 */ be_nested_str_weak(remote_ip),
|
||||
/* K28 */ be_nested_str_weak(remote_port),
|
||||
/* K29 */ be_nested_str_weak(last_counter),
|
||||
/* K25 */ be_nested_str_weak(send_response_frame),
|
||||
/* K26 */ be_nested_str_weak(last_counter),
|
||||
}),
|
||||
be_str_weak(send_im),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[92]) { /* code */
|
||||
( &(const binstruction[87]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xB80E0200, // 0001 GETNGBL R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
|
@ -1130,7 +1111,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
|
||||
0x780E0030, // 001A JMPF R3 #004C
|
||||
0x780E002B, // 001A JMPF R3 #0047
|
||||
0x880C010F, // 001B GETMBR R3 R0 K15
|
||||
0x780E000E, // 001C JMPF R3 #002C
|
||||
0x600C0003, // 001D GETGBL R3 G3
|
||||
|
@ -1147,7 +1128,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
|
||||
0x7002001E, // 002B JMP #004B
|
||||
0x70020019, // 002B JMP #0046
|
||||
0x880C0107, // 002C GETMBR R3 R0 K7
|
||||
0x8C0C0711, // 002D GETMET R3 R3 K17
|
||||
0x50140000, // 002E LDBOOL R5 0 0
|
||||
|
@ -1168,34 +1149,29 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send_im, /* name */
|
|||
0x581C000C, // 003D LDCONST R7 K12
|
||||
0x7C100600, // 003E CALL R4 3
|
||||
0x8C100319, // 003F GETMET R4 R1 K25
|
||||
0x8818071A, // 0040 GETMBR R6 R3 K26
|
||||
0x881C071B, // 0041 GETMBR R7 R3 K27
|
||||
0x8820071C, // 0042 GETMBR R8 R3 K28
|
||||
0x4C240000, // 0043 LDNIL R9
|
||||
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
|
||||
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
|
||||
0x5C180600, // 0040 MOVE R6 R3
|
||||
0x7C100400, // 0041 CALL R4 2
|
||||
0x88100718, // 0042 GETMBR R4 R3 K24
|
||||
0x90023404, // 0043 SETMBR R0 K26 R4
|
||||
0x50100200, // 0044 LDBOOL R4 1 0
|
||||
0x80040800, // 0045 RET 1 R4
|
||||
0x7002000E, // 0046 JMP #0056
|
||||
0x880C010F, // 0047 GETMBR R3 R0 K15
|
||||
0x780E000A, // 0048 JMPF R3 #0054
|
||||
0x600C0003, // 0049 GETGBL R3 G3
|
||||
0x5C100000, // 004A MOVE R4 R0
|
||||
0x7C0C0200, // 004B CALL R3 1
|
||||
0x8C0C0710, // 004C GETMET R3 R3 K16
|
||||
0x5C140200, // 004D MOVE R5 R1
|
||||
0x7C0C0400, // 004E CALL R3 2
|
||||
0x500C0000, // 004F LDBOOL R3 0 0
|
||||
0x90021E03, // 0050 SETMBR R0 K15 R3
|
||||
0x500C0000, // 0051 LDBOOL R3 0 0
|
||||
0x80040600, // 0052 RET 1 R3
|
||||
0x70020001, // 0053 JMP #0056
|
||||
0x500C0200, // 0054 LDBOOL R3 1 0
|
||||
0x80040600, // 0055 RET 1 R3
|
||||
0x80000000, // 0056 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -1571,7 +1547,7 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[32]) { /* constants */
|
||||
( &(const bvalue[27]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(tasmota),
|
||||
/* K2 */ be_nested_str_weak(log),
|
||||
|
@ -1594,20 +1570,15 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
|
|||
/* K19 */ be_nested_str_weak(to_TLV),
|
||||
/* K20 */ be_nested_str_weak(tlv2raw),
|
||||
/* K21 */ be_nested_str_weak(encrypt),
|
||||
/* K22 */ be_nested_str_weak(send_response),
|
||||
/* K23 */ be_nested_str_weak(raw),
|
||||
/* 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(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),
|
||||
/* K22 */ be_nested_str_weak(send_response_frame),
|
||||
/* K23 */ be_nested_str_weak(last_counter),
|
||||
/* K24 */ be_nested_str_weak(message_counter),
|
||||
/* K25 */ be_nested_str_weak(MTR_X3A_X20Send_X20SubscribeResponseMessage_X20sub_X3D_X25i_X20id_X3D_X25i),
|
||||
/* K26 */ be_nested_str_weak(re_arm),
|
||||
}),
|
||||
be_str_weak(send_im),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[82]) { /* code */
|
||||
( &(const binstruction[77]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0xB80E0200, // 0001 GETNGBL R3 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
|
@ -1642,7 +1613,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
|
||||
0x7002002D, // 0022 JMP #0051
|
||||
0x70020028, // 0022 JMP #004C
|
||||
0x880C010D, // 0023 GETMBR R3 R0 K13
|
||||
0xB8121C00, // 0024 GETNGBL R4 K14
|
||||
0x8C10090F, // 0025 GETMET R4 R4 K15
|
||||
|
@ -1665,31 +1636,26 @@ be_local_closure(Matter_IM_SubscribeResponse_send_im, /* name */
|
|||
0x8C140715, // 0036 GETMET R5 R3 K21
|
||||
0x7C140200, // 0037 CALL R5 1
|
||||
0x8C140316, // 0038 GETMET R5 R1 K22
|
||||
0x881C0717, // 0039 GETMBR R7 R3 K23
|
||||
0x88200718, // 003A GETMBR R8 R3 K24
|
||||
0x88240719, // 003B GETMBR R9 R3 K25
|
||||
0x8828071A, // 003C GETMBR R10 R3 K26
|
||||
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
|
||||
0x5C1C0600, // 0039 MOVE R7 R3
|
||||
0x7C140400, // 003A CALL R5 2
|
||||
0x88140718, // 003B GETMBR R5 R3 K24
|
||||
0x90022E05, // 003C SETMBR R0 K23 R5
|
||||
0xB8160200, // 003D GETNGBL R5 K1
|
||||
0x8C140B02, // 003E GETMET R5 R5 K2
|
||||
0x8C1C0503, // 003F GETMET R7 R2 K3
|
||||
0x58240019, // 0040 LDCONST R9 K25
|
||||
0x88280105, // 0041 GETMBR R10 R0 K5
|
||||
0x88281506, // 0042 GETMBR R10 R10 K6
|
||||
0x882C0718, // 0043 GETMBR R11 R3 K24
|
||||
0x7C1C0800, // 0044 CALL R7 4
|
||||
0x5820000A, // 0045 LDCONST R8 K10
|
||||
0x7C140600, // 0046 CALL R5 3
|
||||
0x88140105, // 0047 GETMBR R5 R0 K5
|
||||
0x8C140B1A, // 0048 GETMET R5 R5 K26
|
||||
0x7C140200, // 0049 CALL R5 1
|
||||
0x50140200, // 004A LDBOOL R5 1 0
|
||||
0x80040A00, // 004B RET 1 R5
|
||||
0x80000000, // 004C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
extern const bclass be_class_Matter_MessageHandler;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: send_response
|
||||
** Solidified function: send_response_frame
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_MessageHandler_send_response, /* name */
|
||||
be_local_closure(Matter_MessageHandler_send_response_frame, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
6, /* argc */
|
||||
5, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
|
@ -23,18 +23,14 @@ be_local_closure(Matter_MessageHandler_send_response, /* name */
|
|||
/* K0 */ be_nested_str_weak(device),
|
||||
/* K1 */ be_nested_str_weak(msg_send),
|
||||
}),
|
||||
be_str_weak(send_response),
|
||||
be_str_weak(send_response_frame),
|
||||
&be_const_str_solidified,
|
||||
( &(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
|
||||
( &(const binstruction[ 5]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
0x5C100200, // 0002 MOVE R4 R1
|
||||
0x7C080400, // 0003 CALL R2 2
|
||||
0x80000000, // 0004 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -54,7 +50,7 @@ be_local_closure(Matter_MessageHandler_send_encrypted_ack, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[20]) { /* constants */
|
||||
( &(const bvalue[17]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(x_flag_r),
|
||||
/* K2 */ be_nested_str_weak(build_standalone_ack),
|
||||
|
@ -71,17 +67,14 @@ be_local_closure(Matter_MessageHandler_send_encrypted_ack, /* name */
|
|||
/* K13 */ be_nested_str_weak(_X7Breliable_X7D),
|
||||
/* K14 */ be_nested_str_weak(),
|
||||
/* K15 */ be_const_int(3),
|
||||
/* K16 */ be_nested_str_weak(send_response),
|
||||
/* K17 */ be_nested_str_weak(raw),
|
||||
/* K18 */ be_nested_str_weak(remote_ip),
|
||||
/* K19 */ be_nested_str_weak(remote_port),
|
||||
/* K16 */ be_nested_str_weak(send_response_frame),
|
||||
}),
|
||||
be_str_weak(send_encrypted_ack),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[37]) { /* code */
|
||||
( &(const binstruction[29]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0x88100301, // 0001 GETMBR R4 R1 K1
|
||||
0x78120020, // 0002 JMPF R4 #0024
|
||||
0x78120018, // 0002 JMPF R4 #001C
|
||||
0x8C100302, // 0003 GETMET R4 R1 K2
|
||||
0x5C180400, // 0004 MOVE R6 R2
|
||||
0x7C100400, // 0005 CALL R4 2
|
||||
|
@ -105,17 +98,9 @@ be_local_closure(Matter_MessageHandler_send_encrypted_ack, /* name */
|
|||
0x5820000F, // 0017 LDCONST R8 K15
|
||||
0x7C140600, // 0018 CALL R5 3
|
||||
0x8C140110, // 0019 GETMET R5 R0 K16
|
||||
0x881C0911, // 001A GETMBR R7 R4 K17
|
||||
0x88200912, // 001B GETMBR R8 R4 K18
|
||||
0x88240913, // 001C GETMBR R9 R4 K19
|
||||
0x780A0001, // 001D JMPF R2 #0020
|
||||
0x8828090C, // 001E GETMBR R10 R4 K12
|
||||
0x70020000, // 001F JMP #0021
|
||||
0x4C280000, // 0020 LDNIL R10
|
||||
0x882C0909, // 0021 GETMBR R11 R4 K9
|
||||
0x882C170A, // 0022 GETMBR R11 R11 K10
|
||||
0x7C140C00, // 0023 CALL R5 6
|
||||
0x80000000, // 0024 RET 0
|
||||
0x5C1C0800, // 001A MOVE R7 R4
|
||||
0x7C140400, // 001B CALL R5 2
|
||||
0x80000000, // 001C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -169,7 +154,7 @@ be_local_closure(Matter_MessageHandler_send_simple_ack, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[19]) { /* constants */
|
||||
( &(const bvalue[16]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(x_flag_r),
|
||||
/* K2 */ be_nested_str_weak(build_standalone_ack),
|
||||
|
@ -185,17 +170,14 @@ be_local_closure(Matter_MessageHandler_send_simple_ack, /* name */
|
|||
/* K12 */ be_nested_str_weak(_X7Breliable_X7D),
|
||||
/* K13 */ be_nested_str_weak(),
|
||||
/* K14 */ be_const_int(3),
|
||||
/* K15 */ be_nested_str_weak(send_response),
|
||||
/* K16 */ be_nested_str_weak(raw),
|
||||
/* K17 */ be_nested_str_weak(remote_ip),
|
||||
/* K18 */ be_nested_str_weak(remote_port),
|
||||
/* K15 */ be_nested_str_weak(send_response_frame),
|
||||
}),
|
||||
be_str_weak(send_simple_ack),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[35]) { /* code */
|
||||
( &(const binstruction[27]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0x88100301, // 0001 GETMBR R4 R1 K1
|
||||
0x7812001E, // 0002 JMPF R4 #0022
|
||||
0x78120016, // 0002 JMPF R4 #001A
|
||||
0x8C100302, // 0003 GETMET R4 R1 K2
|
||||
0x5C180400, // 0004 MOVE R6 R2
|
||||
0x7C100400, // 0005 CALL R4 2
|
||||
|
@ -217,17 +199,9 @@ be_local_closure(Matter_MessageHandler_send_simple_ack, /* name */
|
|||
0x5820000E, // 0015 LDCONST R8 K14
|
||||
0x7C140600, // 0016 CALL R5 3
|
||||
0x8C14010F, // 0017 GETMET R5 R0 K15
|
||||
0x881C0910, // 0018 GETMBR R7 R4 K16
|
||||
0x88200911, // 0019 GETMBR R8 R4 K17
|
||||
0x88240912, // 001A GETMBR R9 R4 K18
|
||||
0x780A0001, // 001B JMPF R2 #001E
|
||||
0x8828090B, // 001C GETMBR R10 R4 K11
|
||||
0x70020000, // 001D JMP #001F
|
||||
0x4C280000, // 001E LDNIL R10
|
||||
0x882C0908, // 001F GETMBR R11 R4 K8
|
||||
0x882C1709, // 0020 GETMBR R11 R11 K9
|
||||
0x7C140C00, // 0021 CALL R5 6
|
||||
0x80000000, // 0022 RET 0
|
||||
0x5C1C0800, // 0018 MOVE R7 R4
|
||||
0x7C140400, // 0019 CALL R5 2
|
||||
0x80000000, // 001A RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -285,16 +259,16 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
/* K34 */ be_nested_str_weak(send_simple_ack),
|
||||
/* K35 */ be_nested_str_weak(decode_payload),
|
||||
/* K36 */ be_nested_str_weak(received_ack),
|
||||
/* K37 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K38 */ be_nested_str_weak(opcode),
|
||||
/* K39 */ be_nested_str_weak(get_opcode_name),
|
||||
/* K40 */ be_nested_str_weak(0x_X2502X),
|
||||
/* K41 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20rid_X3D_X25i_X20exch_X3D_X25i_X20from_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K42 */ be_nested_str_weak(exchange_id),
|
||||
/* K43 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K44 */ be_nested_str_weak(x_flag_r),
|
||||
/* K45 */ be_nested_str_weak(_X7Breliable_X7D_X20),
|
||||
/* K46 */ be_nested_str_weak(),
|
||||
/* K37 */ be_nested_str_weak(opcode),
|
||||
/* K38 */ be_nested_str_weak(get_opcode_name),
|
||||
/* K39 */ be_nested_str_weak(0x_X2502X),
|
||||
/* K40 */ be_nested_str_weak(MTR_X3A_X20_X3EReceived_X20_X20_X28_X256i_X29_X20_X25s_X20rid_X3D_X25i_X20exch_X3D_X25i_X20from_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K41 */ be_nested_str_weak(exchange_id),
|
||||
/* K42 */ be_nested_str_weak(MTR_X3A_X20_X3Ercv_X20Ack_X20_X20_X20_X28_X256i_X29_X20rid_X3D_X25i_X20exch_X3D_X25i_X20ack_X3D_X25s_X20_X25sfrom_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K43 */ be_nested_str_weak(x_flag_r),
|
||||
/* K44 */ be_nested_str_weak(_X7Breliable_X7D_X20),
|
||||
/* K45 */ be_nested_str_weak(),
|
||||
/* K46 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K47 */ be_nested_str_weak(commissioning),
|
||||
/* K48 */ be_nested_str_weak(process_incoming),
|
||||
/* K49 */ be_nested_str_weak(MTR_X3A_X20decode_X20header_X3A_X20local_session_id_X3D_X25i_X20message_counter_X3D_X25i),
|
||||
|
@ -451,31 +425,31 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0x80041200, // 0078 RET 1 R9
|
||||
0x8824010B, // 0079 GETMBR R9 R0 K11
|
||||
0x8C241324, // 007A GETMET R9 R9 K36
|
||||
0x882C0D25, // 007B GETMBR R11 R6 K37
|
||||
0x5C2C0C00, // 007B MOVE R11 R6
|
||||
0x7C240400, // 007C CALL R9 2
|
||||
0x88240D26, // 007D GETMBR R9 R6 K38
|
||||
0x88240D25, // 007D GETMBR R9 R6 K37
|
||||
0x542A000F, // 007E LDINT R10 16
|
||||
0x2024120A, // 007F NE R9 R9 R10
|
||||
0x78260018, // 0080 JMPF R9 #009A
|
||||
0xB8260A00, // 0081 GETNGBL R9 K5
|
||||
0x8C241327, // 0082 GETMET R9 R9 K39
|
||||
0x882C0D26, // 0083 GETMBR R11 R6 K38
|
||||
0x8C241326, // 0082 GETMET R9 R9 K38
|
||||
0x882C0D25, // 0083 GETMBR R11 R6 K37
|
||||
0x7C240400, // 0084 CALL R9 2
|
||||
0x5C281200, // 0085 MOVE R10 R9
|
||||
0x742A0004, // 0086 JMPT R10 #008C
|
||||
0x8C28091F, // 0087 GETMET R10 R4 K31
|
||||
0x58300028, // 0088 LDCONST R12 K40
|
||||
0x88340D26, // 0089 GETMBR R13 R6 K38
|
||||
0x58300027, // 0088 LDCONST R12 K39
|
||||
0x88340D25, // 0089 GETMBR R13 R6 K37
|
||||
0x7C280600, // 008A CALL R10 3
|
||||
0x5C241400, // 008B MOVE R9 R10
|
||||
0xB82A0200, // 008C GETNGBL R10 K1
|
||||
0x8C281502, // 008D GETMET R10 R10 K2
|
||||
0x8C30091F, // 008E GETMET R12 R4 K31
|
||||
0x58380029, // 008F LDCONST R14 K41
|
||||
0x58380028, // 008F LDCONST R14 K40
|
||||
0x883C1111, // 0090 GETMBR R15 R8 K17
|
||||
0x5C401200, // 0091 MOVE R16 R9
|
||||
0x88440D1E, // 0092 GETMBR R17 R6 K30
|
||||
0x88480D2A, // 0093 GETMBR R18 R6 K42
|
||||
0x88480D29, // 0093 GETMBR R18 R6 K41
|
||||
0x5C4C0400, // 0094 MOVE R19 R2
|
||||
0x5C500600, // 0095 MOVE R20 R3
|
||||
0x7C301000, // 0096 CALL R12 8
|
||||
|
@ -485,17 +459,17 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0xB8260200, // 009A GETNGBL R9 K1
|
||||
0x8C241302, // 009B GETMET R9 R9 K2
|
||||
0x8C2C091F, // 009C GETMET R11 R4 K31
|
||||
0x5834002B, // 009D LDCONST R13 K43
|
||||
0x5834002A, // 009D LDCONST R13 K42
|
||||
0x88381111, // 009E GETMBR R14 R8 K17
|
||||
0x883C0D1E, // 009F GETMBR R15 R6 K30
|
||||
0x88400D2C, // 00A0 GETMBR R16 R6 K44
|
||||
0x88400D2B, // 00A0 GETMBR R16 R6 K43
|
||||
0x78420001, // 00A1 JMPF R16 #00A4
|
||||
0x5840002D, // 00A2 LDCONST R16 K45
|
||||
0x5840002C, // 00A2 LDCONST R16 K44
|
||||
0x70020000, // 00A3 JMP #00A5
|
||||
0x5840002E, // 00A4 LDCONST R16 K46
|
||||
0x88440D2A, // 00A5 GETMBR R17 R6 K42
|
||||
0x5840002D, // 00A4 LDCONST R16 K45
|
||||
0x88440D29, // 00A5 GETMBR R17 R6 K41
|
||||
0x60480008, // 00A6 GETGBL R18 G8
|
||||
0x884C0D25, // 00A7 GETMBR R19 R6 K37
|
||||
0x884C0D2E, // 00A7 GETMBR R19 R6 K46
|
||||
0x7C480200, // 00A8 CALL R18 1
|
||||
0x5C4C0400, // 00A9 MOVE R19 R2
|
||||
0x5C500600, // 00AA MOVE R20 R3
|
||||
|
@ -612,12 +586,12 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0x00327C0C, // 0119 ADD R12 K62 R12
|
||||
0x00301940, // 011A ADD R12 R12 K64
|
||||
0x60340008, // 011B GETGBL R13 G8
|
||||
0x88380D26, // 011C GETMBR R14 R6 K38
|
||||
0x88380D25, // 011C GETMBR R14 R6 K37
|
||||
0x7C340200, // 011D CALL R13 1
|
||||
0x0030180D, // 011E ADD R12 R12 R13
|
||||
0x00301941, // 011F ADD R12 R12 K65
|
||||
0x60340008, // 0120 GETGBL R13 G8
|
||||
0x88380D2A, // 0121 GETMBR R14 R6 K42
|
||||
0x88380D29, // 0121 GETMBR R14 R6 K41
|
||||
0x543EFFFE, // 0122 LDINT R15 65535
|
||||
0x2C381C0F, // 0123 AND R14 R14 R15
|
||||
0x7C340200, // 0124 CALL R13 1
|
||||
|
@ -630,17 +604,17 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0x58380042, // 012B LDCONST R14 K66
|
||||
0x883C1111, // 012C GETMBR R15 R8 K17
|
||||
0x88400D3F, // 012D GETMBR R16 R6 K63
|
||||
0x88440D26, // 012E GETMBR R17 R6 K38
|
||||
0x88440D25, // 012E GETMBR R17 R6 K37
|
||||
0x88480D1E, // 012F GETMBR R18 R6 K30
|
||||
0x884C0D2A, // 0130 GETMBR R19 R6 K42
|
||||
0x884C0D29, // 0130 GETMBR R19 R6 K41
|
||||
0x60500008, // 0131 GETGBL R20 G8
|
||||
0x88540D25, // 0132 GETMBR R21 R6 K37
|
||||
0x88540D2E, // 0132 GETMBR R21 R6 K46
|
||||
0x7C500200, // 0133 CALL R20 1
|
||||
0x88540D2C, // 0134 GETMBR R21 R6 K44
|
||||
0x88540D2B, // 0134 GETMBR R21 R6 K43
|
||||
0x78560001, // 0135 JMPF R21 #0138
|
||||
0x5854002D, // 0136 LDCONST R21 K45
|
||||
0x5854002C, // 0136 LDCONST R21 K44
|
||||
0x70020000, // 0137 JMP #0139
|
||||
0x5854002E, // 0138 LDCONST R21 K46
|
||||
0x5854002D, // 0138 LDCONST R21 K45
|
||||
0x5C580400, // 0139 MOVE R22 R2
|
||||
0x5C5C0600, // 013A MOVE R23 R3
|
||||
0x7C301600, // 013B CALL R12 11
|
||||
|
@ -648,7 +622,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0x7C280600, // 013D CALL R10 3
|
||||
0x8828010B, // 013E GETMBR R10 R0 K11
|
||||
0x8C281524, // 013F GETMET R10 R10 K36
|
||||
0x88300D25, // 0140 GETMBR R12 R6 K37
|
||||
0x5C300C00, // 0140 MOVE R12 R6
|
||||
0x7C280400, // 0141 CALL R10 2
|
||||
0x88280D3F, // 0142 GETMBR R10 R6 K63
|
||||
0x1C2C1515, // 0143 EQ R11 R10 K21
|
||||
|
@ -662,7 +636,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
|||
0x0036860D, // 014B ADD R13 K67 R13
|
||||
0x58380017, // 014C LDCONST R14 K23
|
||||
0x7C2C0600, // 014D CALL R11 3
|
||||
0x882C0D26, // 014E GETMBR R11 R6 K38
|
||||
0x882C0D25, // 014E GETMBR R11 R6 K37
|
||||
0x5432000F, // 014F LDINT R12 16
|
||||
0x1C2C160C, // 0150 EQ R11 R11 R12
|
||||
0x782E0009, // 0151 JMPF R11 #015C
|
||||
|
@ -824,17 +798,17 @@ be_local_class(Matter_MessageHandler,
|
|||
NULL,
|
||||
be_nested_map(11,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(im, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(im, 3), be_const_var(2) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_MessageHandler_init_closure) },
|
||||
{ be_const_key_weak(send_encrypted_ack, -1), be_const_closure(Matter_MessageHandler_send_encrypted_ack_closure) },
|
||||
{ be_const_key_weak(control_message, -1), be_const_var(3) },
|
||||
{ be_const_key_weak(every_250ms, 3), be_const_closure(Matter_MessageHandler_every_250ms_closure) },
|
||||
{ be_const_key_weak(every_second, -1), be_const_closure(Matter_MessageHandler_every_second_closure) },
|
||||
{ be_const_key_weak(every_250ms, -1), be_const_closure(Matter_MessageHandler_every_250ms_closure) },
|
||||
{ be_const_key_weak(device, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(msg_received, -1), be_const_closure(Matter_MessageHandler_msg_received_closure) },
|
||||
{ be_const_key_weak(send_response, 4), be_const_closure(Matter_MessageHandler_send_response_closure) },
|
||||
{ be_const_key_weak(control_message, 4), be_const_var(3) },
|
||||
{ be_const_key_weak(commissioning, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(send_simple_ack, 1), be_const_closure(Matter_MessageHandler_send_simple_ack_closure) },
|
||||
{ be_const_key_weak(every_second, 0), be_const_closure(Matter_MessageHandler_every_second_closure) },
|
||||
{ be_const_key_weak(send_response_frame, 0), be_const_closure(Matter_MessageHandler_send_response_frame_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_MessageHandler)
|
||||
);
|
||||
|
|
|
@ -11,67 +11,7 @@ extern const bclass be_class_Matter_UDPPacket_sent;
|
|||
********************************************************************/
|
||||
be_local_closure(Matter_UDPPacket_sent_init, /* name */
|
||||
be_nested_proto(
|
||||
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[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(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[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
|
||||
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
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: send
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPPacket_sent_send, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
6, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -79,59 +19,70 @@ be_local_closure(Matter_UDPPacket_sent_send, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[13]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(send),
|
||||
/* K2 */ be_nested_str_weak(addr),
|
||||
/* K3 */ be_nested_str_weak(remote_ip),
|
||||
/* K4 */ be_nested_str_weak(port),
|
||||
/* K5 */ be_nested_str_weak(remote_port),
|
||||
/* K6 */ be_nested_str_weak(raw),
|
||||
/* K7 */ be_nested_str_weak(tasmota),
|
||||
/* K8 */ be_nested_str_weak(log),
|
||||
/* K9 */ be_nested_str_weak(format),
|
||||
/* K10 */ be_nested_str_weak(MTR_X3A_X20sending_X20packet_X20to_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
|
||||
/* K11 */ be_nested_str_weak(MTR_X3A_X20error_X20sending_X20packet_X20to_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
|
||||
/* K12 */ be_const_int(3),
|
||||
( &(const bvalue[19]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(raw),
|
||||
/* K1 */ be_nested_str_weak(addr),
|
||||
/* K2 */ be_nested_str_weak(remote_ip),
|
||||
/* K3 */ be_nested_str_weak(port),
|
||||
/* K4 */ be_nested_str_weak(remote_port),
|
||||
/* K5 */ be_nested_str_weak(msg_id),
|
||||
/* K6 */ be_nested_str_weak(x_flag_r),
|
||||
/* K7 */ be_nested_str_weak(message_counter),
|
||||
/* K8 */ be_nested_str_weak(exchange_id),
|
||||
/* K9 */ be_const_int(0),
|
||||
/* K10 */ be_nested_str_weak(session_id),
|
||||
/* K11 */ be_nested_str_weak(local_session_id),
|
||||
/* K12 */ be_nested_str_weak(retries),
|
||||
/* K13 */ be_nested_str_weak(next_try),
|
||||
/* K14 */ be_nested_str_weak(tasmota),
|
||||
/* K15 */ be_nested_str_weak(millis),
|
||||
/* K16 */ be_nested_str_weak(matter),
|
||||
/* K17 */ be_nested_str_weak(UDPServer),
|
||||
/* K18 */ be_nested_str_weak(_backoff_time),
|
||||
}),
|
||||
be_str_weak(send),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[35]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0x8C0C0301, // 0001 GETMET R3 R1 K1
|
||||
0x88140102, // 0002 GETMBR R5 R0 K2
|
||||
0x78160001, // 0003 JMPF R5 #0006
|
||||
0x88140102, // 0004 GETMBR R5 R0 K2
|
||||
0x70020000, // 0005 JMP #0007
|
||||
0x88140303, // 0006 GETMBR R5 R1 K3
|
||||
0x88180104, // 0007 GETMBR R6 R0 K4
|
||||
0x781A0001, // 0008 JMPF R6 #000B
|
||||
0x88180104, // 0009 GETMBR R6 R0 K4
|
||||
0x70020000, // 000A JMP #000C
|
||||
0x88180305, // 000B GETMBR R6 R1 K5
|
||||
0x881C0106, // 000C GETMBR R7 R0 K6
|
||||
0x7C0C0800, // 000D CALL R3 4
|
||||
0x780E0009, // 000E JMPF R3 #0019
|
||||
0xB8120E00, // 000F GETNGBL R4 K7
|
||||
0x8C100908, // 0010 GETMET R4 R4 K8
|
||||
0x8C180509, // 0011 GETMET R6 R2 K9
|
||||
0x5820000A, // 0012 LDCONST R8 K10
|
||||
0x88240102, // 0013 GETMBR R9 R0 K2
|
||||
0x88280104, // 0014 GETMBR R10 R0 K4
|
||||
0x7C180800, // 0015 CALL R6 4
|
||||
0x541E0003, // 0016 LDINT R7 4
|
||||
0x7C100600, // 0017 CALL R4 3
|
||||
0x70020008, // 0018 JMP #0022
|
||||
0xB8120E00, // 0019 GETNGBL R4 K7
|
||||
0x8C100908, // 001A GETMET R4 R4 K8
|
||||
0x8C180509, // 001B GETMET R6 R2 K9
|
||||
0x5820000B, // 001C LDCONST R8 K11
|
||||
0x88240102, // 001D GETMBR R9 R0 K2
|
||||
0x88280104, // 001E GETMBR R10 R0 K4
|
||||
0x7C180800, // 001F CALL R6 4
|
||||
0x581C000C, // 0020 LDCONST R7 K12
|
||||
0x7C100600, // 0021 CALL R4 3
|
||||
0x80040600, // 0022 RET 1 R3
|
||||
( &(const binstruction[40]) { /* code */
|
||||
0x88080300, // 0000 GETMBR R2 R1 K0
|
||||
0x90020002, // 0001 SETMBR R0 K0 R2
|
||||
0x88080302, // 0002 GETMBR R2 R1 K2
|
||||
0x90020202, // 0003 SETMBR R0 K1 R2
|
||||
0x88080304, // 0004 GETMBR R2 R1 K4
|
||||
0x90020602, // 0005 SETMBR R0 K3 R2
|
||||
0x88080306, // 0006 GETMBR R2 R1 K6
|
||||
0x780A0001, // 0007 JMPF R2 #000A
|
||||
0x88080307, // 0008 GETMBR R2 R1 K7
|
||||
0x70020000, // 0009 JMP #000B
|
||||
0x4C080000, // 000A LDNIL R2
|
||||
0x90020A02, // 000B SETMBR R0 K5 R2
|
||||
0x88080308, // 000C GETMBR R2 R1 K8
|
||||
0x4C0C0000, // 000D LDNIL R3
|
||||
0x20080403, // 000E NE R2 R2 R3
|
||||
0x780A0001, // 000F JMPF R2 #0012
|
||||
0x88080308, // 0010 GETMBR R2 R1 K8
|
||||
0x70020000, // 0011 JMP #0013
|
||||
0x58080009, // 0012 LDCONST R2 K9
|
||||
0x90021002, // 0013 SETMBR R0 K8 R2
|
||||
0x8808030B, // 0014 GETMBR R2 R1 K11
|
||||
0x4C0C0000, // 0015 LDNIL R3
|
||||
0x20080403, // 0016 NE R2 R2 R3
|
||||
0x780A0001, // 0017 JMPF R2 #001A
|
||||
0x8808030B, // 0018 GETMBR R2 R1 K11
|
||||
0x70020000, // 0019 JMP #001B
|
||||
0x58080009, // 001A LDCONST R2 K9
|
||||
0x90021402, // 001B SETMBR R0 K10 R2
|
||||
0x90021909, // 001C SETMBR R0 K12 K9
|
||||
0xB80A1C00, // 001D GETNGBL R2 K14
|
||||
0x8C08050F, // 001E GETMET R2 R2 K15
|
||||
0x7C080200, // 001F CALL R2 1
|
||||
0xB80E2000, // 0020 GETNGBL R3 K16
|
||||
0x880C0711, // 0021 GETMBR R3 R3 K17
|
||||
0x8C0C0712, // 0022 GETMET R3 R3 K18
|
||||
0x8814010C, // 0023 GETMBR R5 R0 K12
|
||||
0x7C0C0400, // 0024 CALL R3 2
|
||||
0x00080403, // 0025 ADD R2 R2 R3
|
||||
0x90021A02, // 0026 SETMBR R0 K13 R2
|
||||
0x80000000, // 0027 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -142,19 +93,19 @@ be_local_closure(Matter_UDPPacket_sent_send, /* name */
|
|||
** Solidified class: Matter_UDPPacket_sent
|
||||
********************************************************************/
|
||||
be_local_class(Matter_UDPPacket_sent,
|
||||
7,
|
||||
8,
|
||||
NULL,
|
||||
be_nested_map(9,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ 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(next_try, -1), be_const_var(7) },
|
||||
{ be_const_key_weak(session_id, 8), be_const_var(5) },
|
||||
{ be_const_key_weak(retries, 3), be_const_var(6) },
|
||||
{ be_const_key_weak(addr, -1), be_const_var(1) },
|
||||
{ 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_const_key_weak(exchange_id, -1), be_const_var(4) },
|
||||
{ be_const_key_weak(msg_id, -1), be_const_var(3) },
|
||||
})),
|
||||
be_str_weak(Matter_UDPPacket_sent)
|
||||
);
|
||||
|
@ -256,12 +207,144 @@ be_local_closure(Matter_UDPServer__backoff_time, /* name */
|
|||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: send_response
|
||||
** Solidified function: _resend_packets
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_send_response, /* name */
|
||||
be_local_closure(Matter_UDPServer__resend_packets, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
6, /* argc */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[23]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(packets_sent),
|
||||
/* K2 */ be_nested_str_weak(tasmota),
|
||||
/* K3 */ be_nested_str_weak(time_reached),
|
||||
/* K4 */ be_nested_str_weak(next_try),
|
||||
/* K5 */ be_nested_str_weak(retries),
|
||||
/* K6 */ be_nested_str_weak(RETRIES),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Resending_X20packet_X20id_X3D),
|
||||
/* K9 */ be_nested_str_weak(msg_id),
|
||||
/* K10 */ be_const_int(3),
|
||||
/* K11 */ be_nested_str_weak(send),
|
||||
/* K12 */ be_nested_str_weak(millis),
|
||||
/* K13 */ be_nested_str_weak(_backoff_time),
|
||||
/* K14 */ be_const_int(1),
|
||||
/* K15 */ be_nested_str_weak(string),
|
||||
/* K16 */ be_nested_str_weak(remove),
|
||||
/* K17 */ be_nested_str_weak(format),
|
||||
/* K18 */ 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),
|
||||
/* K19 */ be_nested_str_weak(session_id),
|
||||
/* K20 */ be_nested_str_weak(addr),
|
||||
/* K21 */ be_nested_str_weak(port),
|
||||
/* K22 */ be_const_int(2),
|
||||
}),
|
||||
be_str_weak(_resend_packets),
|
||||
&be_const_str_solidified,
|
||||
( &(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
|
||||
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
|
||||
0x780E002C, // 000C JMPF R3 #003A
|
||||
0x880C0505, // 000D GETMBR R3 R2 K5
|
||||
0x88100106, // 000E GETMBR R4 R0 K6
|
||||
0x180C0604, // 000F LE R3 R3 R4
|
||||
0x780E0017, // 0010 JMPF R3 #0029
|
||||
0xB80E0400, // 0011 GETNGBL R3 K2
|
||||
0x8C0C0707, // 0012 GETMET R3 R3 K7
|
||||
0x60140008, // 0013 GETGBL R5 G8
|
||||
0x88180509, // 0014 GETMBR R6 R2 K9
|
||||
0x7C140200, // 0015 CALL R5 1
|
||||
0x00161005, // 0016 ADD R5 K8 R5
|
||||
0x5818000A, // 0017 LDCONST R6 K10
|
||||
0x7C0C0600, // 0018 CALL R3 3
|
||||
0x8C0C010B, // 0019 GETMET R3 R0 K11
|
||||
0x5C140400, // 001A MOVE R5 R2
|
||||
0x7C0C0400, // 001B CALL R3 2
|
||||
0xB80E0400, // 001C GETNGBL R3 K2
|
||||
0x8C0C070C, // 001D GETMET R3 R3 K12
|
||||
0x7C0C0200, // 001E CALL R3 1
|
||||
0x8C10010D, // 001F GETMET R4 R0 K13
|
||||
0x88180505, // 0020 GETMBR R6 R2 K5
|
||||
0x7C100400, // 0021 CALL R4 2
|
||||
0x000C0604, // 0022 ADD R3 R3 R4
|
||||
0x900A0803, // 0023 SETMBR R2 K4 R3
|
||||
0x880C0505, // 0024 GETMBR R3 R2 K5
|
||||
0x000C070E, // 0025 ADD R3 R3 K14
|
||||
0x900A0A03, // 0026 SETMBR R2 K5 R3
|
||||
0x0004030E, // 0027 ADD R1 R1 K14
|
||||
0x7002000F, // 0028 JMP #0039
|
||||
0xA40E1E00, // 0029 IMPORT R3 K15
|
||||
0x88100101, // 002A GETMBR R4 R0 K1
|
||||
0x8C100910, // 002B GETMET R4 R4 K16
|
||||
0x5C180200, // 002C MOVE R6 R1
|
||||
0x7C100400, // 002D CALL R4 2
|
||||
0xB8120400, // 002E GETNGBL R4 K2
|
||||
0x8C100907, // 002F GETMET R4 R4 K7
|
||||
0x8C180711, // 0030 GETMET R6 R3 K17
|
||||
0x58200012, // 0031 LDCONST R8 K18
|
||||
0x88240513, // 0032 GETMBR R9 R2 K19
|
||||
0x88280514, // 0033 GETMBR R10 R2 K20
|
||||
0x882C0515, // 0034 GETMBR R11 R2 K21
|
||||
0x88300509, // 0035 GETMBR R12 R2 K9
|
||||
0x7C180C00, // 0036 CALL R6 6
|
||||
0x581C0016, // 0037 LDCONST R7 K22
|
||||
0x7C100600, // 0038 CALL R4 3
|
||||
0x70020000, // 0039 JMP #003B
|
||||
0x0004030E, // 003A ADD R1 R1 K14
|
||||
0x7001FFC4, // 003B JMP #0001
|
||||
0x80000000, // 003C RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: every_second
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_every_second, /* name */
|
||||
be_nested_proto(
|
||||
1, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
be_str_weak(every_second),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 1]) { /* code */
|
||||
0x80000000, // 0000 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: send_UDP
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_send_UDP, /* name */
|
||||
be_nested_proto(
|
||||
6, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
|
@ -272,30 +355,27 @@ be_local_closure(Matter_UDPServer_send_response, /* name */
|
|||
/* K0 */ be_nested_str_weak(matter),
|
||||
/* K1 */ be_nested_str_weak(UDPPacket_sent),
|
||||
/* K2 */ be_nested_str_weak(send),
|
||||
/* K3 */ be_nested_str_weak(udp_socket),
|
||||
/* K3 */ be_nested_str_weak(msg_id),
|
||||
/* K4 */ be_nested_str_weak(packets_sent),
|
||||
/* K5 */ be_nested_str_weak(push),
|
||||
}),
|
||||
be_str_weak(send_response),
|
||||
be_str_weak(send_UDP),
|
||||
&be_const_str_solidified,
|
||||
( &(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
|
||||
( &(const binstruction[14]) { /* code */
|
||||
0xB80A0000, // 0000 GETNGBL R2 K0
|
||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||
0x5C100200, // 0002 MOVE R4 R1
|
||||
0x7C080400, // 0003 CALL R2 2
|
||||
0x8C0C0102, // 0004 GETMET R3 R0 K2
|
||||
0x5C140400, // 0005 MOVE R5 R2
|
||||
0x7C0C0400, // 0006 CALL R3 2
|
||||
0x880C0503, // 0007 GETMBR R3 R2 K3
|
||||
0x780E0003, // 0008 JMPF R3 #000D
|
||||
0x880C0104, // 0009 GETMBR R3 R0 K4
|
||||
0x8C0C0705, // 000A GETMET R3 R3 K5
|
||||
0x5C140400, // 000B MOVE R5 R2
|
||||
0x7C0C0400, // 000C CALL R3 2
|
||||
0x80000000, // 000D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -388,30 +468,6 @@ be_local_closure(Matter_UDPServer_every_50ms, /* name */
|
|||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: every_second
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_every_second, /* name */
|
||||
be_nested_proto(
|
||||
1, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
0, /* has constants */
|
||||
NULL, /* no const */
|
||||
be_str_weak(every_second),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 1]) { /* code */
|
||||
0x80000000, // 0000 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: stop
|
||||
********************************************************************/
|
||||
|
@ -453,160 +509,6 @@ be_local_closure(Matter_UDPServer_stop, /* name */
|
|||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_init, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(addr),
|
||||
/* K1 */ be_nested_str_weak(),
|
||||
/* K2 */ be_nested_str_weak(port),
|
||||
/* K3 */ be_nested_str_weak(listening),
|
||||
/* K4 */ be_nested_str_weak(packets_sent),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x78060001, // 0000 JMPF R1 #0003
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x70020000, // 0002 JMP #0004
|
||||
0x580C0001, // 0003 LDCONST R3 K1
|
||||
0x90020003, // 0004 SETMBR R0 K0 R3
|
||||
0x780A0001, // 0005 JMPF R2 #0008
|
||||
0x5C0C0400, // 0006 MOVE R3 R2
|
||||
0x70020000, // 0007 JMP #0009
|
||||
0x540E15A3, // 0008 LDINT R3 5540
|
||||
0x90020403, // 0009 SETMBR R0 K2 R3
|
||||
0x500C0000, // 000A LDBOOL R3 0 0
|
||||
0x90020603, // 000B SETMBR R0 K3 R3
|
||||
0x600C0012, // 000C GETGBL R3 G18
|
||||
0x7C0C0000, // 000D CALL R3 0
|
||||
0x90020803, // 000E SETMBR R0 K4 R3
|
||||
0x80000000, // 000F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: _resend_packets
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer__resend_packets, /* name */
|
||||
be_nested_proto(
|
||||
13, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[24]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(packets_sent),
|
||||
/* K2 */ be_nested_str_weak(tasmota),
|
||||
/* K3 */ be_nested_str_weak(time_reached),
|
||||
/* K4 */ be_nested_str_weak(next_try),
|
||||
/* K5 */ be_nested_str_weak(retries),
|
||||
/* K6 */ be_nested_str_weak(RETRIES),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Resending_X20packet_X20id_X3D),
|
||||
/* K9 */ be_nested_str_weak(msg_id),
|
||||
/* K10 */ be_const_int(3),
|
||||
/* K11 */ be_nested_str_weak(send),
|
||||
/* K12 */ be_nested_str_weak(udp_socket),
|
||||
/* K13 */ be_nested_str_weak(millis),
|
||||
/* K14 */ be_nested_str_weak(_backoff_time),
|
||||
/* K15 */ be_const_int(1),
|
||||
/* 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_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[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
|
||||
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
|
||||
0x780E002C, // 000C JMPF R3 #003A
|
||||
0x880C0505, // 000D GETMBR R3 R2 K5
|
||||
0x88100106, // 000E GETMBR R4 R0 K6
|
||||
0x180C0604, // 000F LE R3 R3 R4
|
||||
0x780E0017, // 0010 JMPF R3 #0029
|
||||
0xB80E0400, // 0011 GETNGBL R3 K2
|
||||
0x8C0C0707, // 0012 GETMET R3 R3 K7
|
||||
0x60140008, // 0013 GETGBL R5 G8
|
||||
0x88180509, // 0014 GETMBR R6 R2 K9
|
||||
0x7C140200, // 0015 CALL R5 1
|
||||
0x00161005, // 0016 ADD R5 K8 R5
|
||||
0x5818000A, // 0017 LDCONST R6 K10
|
||||
0x7C0C0600, // 0018 CALL R3 3
|
||||
0x8C0C050B, // 0019 GETMET R3 R2 K11
|
||||
0x8814010C, // 001A GETMBR R5 R0 K12
|
||||
0x7C0C0400, // 001B CALL R3 2
|
||||
0xB80E0400, // 001C GETNGBL R3 K2
|
||||
0x8C0C070D, // 001D GETMET R3 R3 K13
|
||||
0x7C0C0200, // 001E CALL R3 1
|
||||
0x8C10010E, // 001F GETMET R4 R0 K14
|
||||
0x88180505, // 0020 GETMBR R6 R2 K5
|
||||
0x7C100400, // 0021 CALL R4 2
|
||||
0x000C0604, // 0022 ADD R3 R3 R4
|
||||
0x900A0803, // 0023 SETMBR R2 K4 R3
|
||||
0x880C0505, // 0024 GETMBR R3 R2 K5
|
||||
0x000C070F, // 0025 ADD R3 R3 K15
|
||||
0x900A0A03, // 0026 SETMBR R2 K5 R3
|
||||
0x0004030F, // 0027 ADD R1 R1 K15
|
||||
0x7002000F, // 0028 JMP #0039
|
||||
0xA40E2000, // 0029 IMPORT R3 K16
|
||||
0x88100101, // 002A GETMBR R4 R0 K1
|
||||
0x8C100911, // 002B GETMET R4 R4 K17
|
||||
0x5C180200, // 002C MOVE R6 R1
|
||||
0x7C100400, // 002D CALL R4 2
|
||||
0xB8120400, // 002E GETNGBL R4 K2
|
||||
0x8C100907, // 002F GETMET R4 R4 K7
|
||||
0x8C180712, // 0030 GETMET R6 R3 K18
|
||||
0x58200013, // 0031 LDCONST R8 K19
|
||||
0x88240514, // 0032 GETMBR R9 R2 K20
|
||||
0x88280515, // 0033 GETMBR R10 R2 K21
|
||||
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
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: start
|
||||
********************************************************************/
|
||||
|
@ -668,7 +570,7 @@ be_local_closure(Matter_UDPServer_start, /* name */
|
|||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_received_ack, /* name */
|
||||
be_nested_proto(
|
||||
7, /* nstack */
|
||||
10, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
|
@ -676,60 +578,188 @@ be_local_closure(Matter_UDPServer_received_ack, /* name */
|
|||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[10]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(tasmota),
|
||||
/* K1 */ be_nested_str_weak(log),
|
||||
/* K2 */ be_nested_str_weak(MTR_X3A_X20receveived_X20ACK_X20id_X3D),
|
||||
/* K3 */ be_const_int(3),
|
||||
/* K4 */ be_const_int(0),
|
||||
/* K5 */ be_nested_str_weak(packets_sent),
|
||||
/* K6 */ be_nested_str_weak(msg_id),
|
||||
/* K7 */ be_nested_str_weak(remove),
|
||||
/* K8 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Removed_X20packet_X20from_X20sending_X20list_X20id_X3D),
|
||||
/* K9 */ be_const_int(1),
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K1 */ be_nested_str_weak(exchange_id),
|
||||
/* K2 */ be_nested_str_weak(tasmota),
|
||||
/* K3 */ be_nested_str_weak(log),
|
||||
/* K4 */ be_nested_str_weak(MTR_X3A_X20receveived_X20ACK_X20id_X3D),
|
||||
/* K5 */ be_const_int(3),
|
||||
/* K6 */ be_const_int(0),
|
||||
/* K7 */ be_nested_str_weak(packets_sent),
|
||||
/* K8 */ be_nested_str_weak(msg_id),
|
||||
/* K9 */ be_nested_str_weak(remove),
|
||||
/* K10 */ be_nested_str_weak(MTR_X3A_X20_X2E_X20_X20_X20_X20_X20_X20_X20_X20_X20_X20Removed_X20packet_X20from_X20sending_X20list_X20id_X3D),
|
||||
/* K11 */ be_const_int(1),
|
||||
}),
|
||||
be_str_weak(received_ack),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[39]) { /* code */
|
||||
0x4C080000, // 0000 LDNIL R2
|
||||
0x1C080202, // 0001 EQ R2 R1 R2
|
||||
0x780A0000, // 0002 JMPF R2 #0004
|
||||
0x80000400, // 0003 RET 0
|
||||
0xB80A0000, // 0004 GETNGBL R2 K0
|
||||
0x8C080501, // 0005 GETMET R2 R2 K1
|
||||
0x60100008, // 0006 GETGBL R4 G8
|
||||
0x5C140200, // 0007 MOVE R5 R1
|
||||
0x7C100200, // 0008 CALL R4 1
|
||||
0x00120404, // 0009 ADD R4 K2 R4
|
||||
0x58140003, // 000A LDCONST R5 K3
|
||||
0x7C080600, // 000B CALL R2 3
|
||||
0x58080004, // 000C LDCONST R2 K4
|
||||
0x600C000C, // 000D GETGBL R3 G12
|
||||
0x88100105, // 000E GETMBR R4 R0 K5
|
||||
0x7C0C0200, // 000F CALL R3 1
|
||||
0x140C0403, // 0010 LT R3 R2 R3
|
||||
0x780E0013, // 0011 JMPF R3 #0026
|
||||
0x880C0105, // 0012 GETMBR R3 R0 K5
|
||||
0x940C0602, // 0013 GETIDX R3 R3 R2
|
||||
0x880C0706, // 0014 GETMBR R3 R3 K6
|
||||
0x1C0C0601, // 0015 EQ R3 R3 R1
|
||||
0x780E000C, // 0016 JMPF R3 #0024
|
||||
0x880C0105, // 0017 GETMBR R3 R0 K5
|
||||
0x8C0C0707, // 0018 GETMET R3 R3 K7
|
||||
0x5C140400, // 0019 MOVE R5 R2
|
||||
0x7C0C0400, // 001A CALL R3 2
|
||||
0xB80E0000, // 001B GETNGBL R3 K0
|
||||
0x8C0C0701, // 001C GETMET R3 R3 K1
|
||||
0x60140008, // 001D GETGBL R5 G8
|
||||
0x5C180200, // 001E MOVE R6 R1
|
||||
0x7C140200, // 001F CALL R5 1
|
||||
0x00161005, // 0020 ADD R5 K8 R5
|
||||
0x58180003, // 0021 LDCONST R6 K3
|
||||
0x7C0C0600, // 0022 CALL R3 3
|
||||
0x70020000, // 0023 JMP #0025
|
||||
0x00080509, // 0024 ADD R2 R2 K9
|
||||
0x7001FFE6, // 0025 JMP #000D
|
||||
0x80000000, // 0026 RET 0
|
||||
( &(const binstruction[44]) { /* code */
|
||||
0x88080300, // 0000 GETMBR R2 R1 K0
|
||||
0x880C0301, // 0001 GETMBR R3 R1 K1
|
||||
0x4C100000, // 0002 LDNIL R4
|
||||
0x1C100404, // 0003 EQ R4 R2 R4
|
||||
0x78120000, // 0004 JMPF R4 #0006
|
||||
0x80000800, // 0005 RET 0
|
||||
0xB8120400, // 0006 GETNGBL R4 K2
|
||||
0x8C100903, // 0007 GETMET R4 R4 K3
|
||||
0x60180008, // 0008 GETGBL R6 G8
|
||||
0x5C1C0400, // 0009 MOVE R7 R2
|
||||
0x7C180200, // 000A CALL R6 1
|
||||
0x001A0806, // 000B ADD R6 K4 R6
|
||||
0x581C0005, // 000C LDCONST R7 K5
|
||||
0x7C100600, // 000D CALL R4 3
|
||||
0x58100006, // 000E LDCONST R4 K6
|
||||
0x6014000C, // 000F GETGBL R5 G12
|
||||
0x88180107, // 0010 GETMBR R6 R0 K7
|
||||
0x7C140200, // 0011 CALL R5 1
|
||||
0x14140805, // 0012 LT R5 R4 R5
|
||||
0x78160016, // 0013 JMPF R5 #002B
|
||||
0x88140107, // 0014 GETMBR R5 R0 K7
|
||||
0x94140A04, // 0015 GETIDX R5 R5 R4
|
||||
0x88180B08, // 0016 GETMBR R6 R5 K8
|
||||
0x1C180C02, // 0017 EQ R6 R6 R2
|
||||
0x781A000F, // 0018 JMPF R6 #0029
|
||||
0x88180B01, // 0019 GETMBR R6 R5 K1
|
||||
0x1C180C03, // 001A EQ R6 R6 R3
|
||||
0x781A000C, // 001B JMPF R6 #0029
|
||||
0x88180107, // 001C GETMBR R6 R0 K7
|
||||
0x8C180D09, // 001D GETMET R6 R6 K9
|
||||
0x5C200800, // 001E MOVE R8 R4
|
||||
0x7C180400, // 001F CALL R6 2
|
||||
0xB81A0400, // 0020 GETNGBL R6 K2
|
||||
0x8C180D03, // 0021 GETMET R6 R6 K3
|
||||
0x60200008, // 0022 GETGBL R8 G8
|
||||
0x5C240400, // 0023 MOVE R9 R2
|
||||
0x7C200200, // 0024 CALL R8 1
|
||||
0x00221408, // 0025 ADD R8 K10 R8
|
||||
0x58240005, // 0026 LDCONST R9 K5
|
||||
0x7C180600, // 0027 CALL R6 3
|
||||
0x70020000, // 0028 JMP #002A
|
||||
0x0010090B, // 0029 ADD R4 R4 K11
|
||||
0x7001FFE3, // 002A JMP #000F
|
||||
0x80000000, // 002B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: init
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_init, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
3, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 5]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(addr),
|
||||
/* K1 */ be_nested_str_weak(),
|
||||
/* K2 */ be_nested_str_weak(port),
|
||||
/* K3 */ be_nested_str_weak(listening),
|
||||
/* K4 */ be_nested_str_weak(packets_sent),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[16]) { /* code */
|
||||
0x78060001, // 0000 JMPF R1 #0003
|
||||
0x5C0C0200, // 0001 MOVE R3 R1
|
||||
0x70020000, // 0002 JMP #0004
|
||||
0x580C0001, // 0003 LDCONST R3 K1
|
||||
0x90020003, // 0004 SETMBR R0 K0 R3
|
||||
0x780A0001, // 0005 JMPF R2 #0008
|
||||
0x5C0C0400, // 0006 MOVE R3 R2
|
||||
0x70020000, // 0007 JMP #0009
|
||||
0x540E15A3, // 0008 LDINT R3 5540
|
||||
0x90020403, // 0009 SETMBR R0 K2 R3
|
||||
0x500C0000, // 000A LDBOOL R3 0 0
|
||||
0x90020603, // 000B SETMBR R0 K3 R3
|
||||
0x600C0012, // 000C GETGBL R3 G18
|
||||
0x7C0C0000, // 000D CALL R3 0
|
||||
0x90020803, // 000E SETMBR R0 K4 R3
|
||||
0x80000000, // 000F RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: send
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_send, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[14]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(send),
|
||||
/* K3 */ be_nested_str_weak(addr),
|
||||
/* K4 */ be_nested_str_weak(remote_ip),
|
||||
/* K5 */ be_nested_str_weak(port),
|
||||
/* K6 */ be_nested_str_weak(remote_port),
|
||||
/* K7 */ be_nested_str_weak(raw),
|
||||
/* K8 */ be_nested_str_weak(tasmota),
|
||||
/* K9 */ be_nested_str_weak(log),
|
||||
/* K10 */ be_nested_str_weak(format),
|
||||
/* K11 */ be_nested_str_weak(MTR_X3A_X20sending_X20packet_X20to_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
|
||||
/* K12 */ be_nested_str_weak(MTR_X3A_X20error_X20sending_X20packet_X20to_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
|
||||
/* K13 */ be_const_int(2),
|
||||
}),
|
||||
be_str_weak(send),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[38]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0x880C0101, // 0001 GETMBR R3 R0 K1
|
||||
0x8C0C0702, // 0002 GETMET R3 R3 K2
|
||||
0x88140303, // 0003 GETMBR R5 R1 K3
|
||||
0x78160001, // 0004 JMPF R5 #0007
|
||||
0x88140303, // 0005 GETMBR R5 R1 K3
|
||||
0x70020001, // 0006 JMP #0009
|
||||
0x88140101, // 0007 GETMBR R5 R0 K1
|
||||
0x88140B04, // 0008 GETMBR R5 R5 K4
|
||||
0x88180305, // 0009 GETMBR R6 R1 K5
|
||||
0x781A0001, // 000A JMPF R6 #000D
|
||||
0x88180305, // 000B GETMBR R6 R1 K5
|
||||
0x70020001, // 000C JMP #000F
|
||||
0x88180101, // 000D GETMBR R6 R0 K1
|
||||
0x88180D06, // 000E GETMBR R6 R6 K6
|
||||
0x881C0307, // 000F GETMBR R7 R1 K7
|
||||
0x7C0C0800, // 0010 CALL R3 4
|
||||
0x780E0009, // 0011 JMPF R3 #001C
|
||||
0xB8121000, // 0012 GETNGBL R4 K8
|
||||
0x8C100909, // 0013 GETMET R4 R4 K9
|
||||
0x8C18050A, // 0014 GETMET R6 R2 K10
|
||||
0x5820000B, // 0015 LDCONST R8 K11
|
||||
0x88240303, // 0016 GETMBR R9 R1 K3
|
||||
0x88280305, // 0017 GETMBR R10 R1 K5
|
||||
0x7C180800, // 0018 CALL R6 4
|
||||
0x541E0003, // 0019 LDINT R7 4
|
||||
0x7C100600, // 001A CALL R4 3
|
||||
0x70020008, // 001B JMP #0025
|
||||
0xB8121000, // 001C GETNGBL R4 K8
|
||||
0x8C100909, // 001D GETMET R4 R4 K9
|
||||
0x8C18050A, // 001E GETMET R6 R2 K10
|
||||
0x5820000C, // 001F LDCONST R8 K12
|
||||
0x88240303, // 0020 GETMBR R9 R1 K3
|
||||
0x88280305, // 0021 GETMBR R10 R1 K5
|
||||
0x7C180800, // 0022 CALL R6 4
|
||||
0x581C000D, // 0023 LDCONST R7 K13
|
||||
0x7C100600, // 0024 CALL R4 3
|
||||
0x80040600, // 0025 RET 1 R3
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -742,25 +772,26 @@ be_local_closure(Matter_UDPServer_received_ack, /* name */
|
|||
be_local_class(Matter_UDPServer,
|
||||
6,
|
||||
NULL,
|
||||
be_nested_map(17,
|
||||
be_nested_map(18,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ 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) },
|
||||
{ be_const_key_weak(received_ack, -1), be_const_closure(Matter_UDPServer_received_ack_closure) },
|
||||
{ be_const_key_weak(every_second, -1), be_const_closure(Matter_UDPServer_every_second_closure) },
|
||||
{ be_const_key_weak(every_50ms, -1), be_const_closure(Matter_UDPServer_every_50ms_closure) },
|
||||
{ be_const_key_weak(_backoff_time, 17), be_const_static_closure(Matter_UDPServer__backoff_time_closure) },
|
||||
{ be_const_key_weak(packets_sent, -1), be_const_var(5) },
|
||||
{ be_const_key_weak(port, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(udp_socket, -1), be_const_var(3) },
|
||||
{ be_const_key_weak(_resend_packets, 11), be_const_closure(Matter_UDPServer__resend_packets_closure) },
|
||||
{ be_const_key_weak(stop, -1), be_const_closure(Matter_UDPServer_stop_closure) },
|
||||
{ be_const_key_weak(addr, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(MAX_PACKETS_READ, 10), be_const_int(4) },
|
||||
{ be_const_key_weak(every_second, -1), be_const_closure(Matter_UDPServer_every_second_closure) },
|
||||
{ be_const_key_weak(port, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(dispatch_cb, 1), be_const_var(4) },
|
||||
{ be_const_key_weak(udp_socket, -1), be_const_var(3) },
|
||||
{ be_const_key_weak(send_UDP, -1), be_const_closure(Matter_UDPServer_send_UDP_closure) },
|
||||
{ be_const_key_weak(every_50ms, -1), be_const_closure(Matter_UDPServer_every_50ms_closure) },
|
||||
{ be_const_key_weak(send, 10), be_const_closure(Matter_UDPServer_send_closure) },
|
||||
{ be_const_key_weak(RETRIES, -1), be_const_int(5) },
|
||||
{ be_const_key_weak(stop, 16), be_const_closure(Matter_UDPServer_stop_closure) },
|
||||
{ be_const_key_weak(received_ack, -1), be_const_closure(Matter_UDPServer_received_ack_closure) },
|
||||
{ be_const_key_weak(_resend_packets, 9), be_const_closure(Matter_UDPServer__resend_packets_closure) },
|
||||
{ be_const_key_weak(MAX_PACKETS_READ, -1), be_const_int(4) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_UDPServer_init_closure) },
|
||||
{ be_const_key_weak(start, -1), be_const_closure(Matter_UDPServer_start_closure) },
|
||||
{ be_const_key_weak(init, 4), be_const_closure(Matter_UDPServer_init_closure) },
|
||||
{ be_const_key_weak(dispatch_cb, 0), be_const_var(4) },
|
||||
{ be_const_key_weak(listening, -1), be_const_var(2) },
|
||||
})),
|
||||
be_str_weak(Matter_UDPServer)
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue