mirror of https://github.com/arendst/Tasmota.git
Matter support subscription removal (#18018)
This commit is contained in:
parent
103041cd1a
commit
8a15f0426f
|
@ -73,6 +73,20 @@ class Matter_IM
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# check whether the ack received is of interest to any
|
||||||
|
# current exchange
|
||||||
|
#
|
||||||
|
# return `true` if handled
|
||||||
|
def process_incoming_ack(msg)
|
||||||
|
# check if there is an exchange_id interested in receiving this
|
||||||
|
var message = self.find_sendqueue_by_exchangeid(msg.exchange_id)
|
||||||
|
if message
|
||||||
|
return message.ack_received(msg) # dispatch to IM_Message
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
# send enqueued responses
|
# send enqueued responses
|
||||||
#
|
#
|
||||||
|
@ -139,13 +153,13 @@ class Matter_IM
|
||||||
if status == matter.SUCCESS
|
if status == matter.SUCCESS
|
||||||
tasmota.log("MTR: >Status_OK", 2) # don't show 'SUCCESS' to not overflow logs with non-information
|
tasmota.log("MTR: >Status_OK", 2) # don't show 'SUCCESS' to not overflow logs with non-information
|
||||||
if message
|
if message
|
||||||
return message.ack_received(msg) # re-arm the sending of next packets for the same exchange
|
return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# error
|
# error
|
||||||
tasmota.log(string.format("MTR: >Status ERROR = 0x%02X", status), 2)
|
tasmota.log(string.format("MTR: >Status ERROR = 0x%02X", status), 2)
|
||||||
if message
|
if message
|
||||||
message.ack_error(msg)
|
message.status_error_received(msg)
|
||||||
self.remove_sendqueue_by_exchangeid(msg.exchange_id)
|
self.remove_sendqueue_by_exchangeid(msg.exchange_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -242,7 +256,7 @@ class Matter_IM
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
tasmota.log("MTR: ReportDataMessage=" + str(ret), 4)
|
tasmota.log("MTR: ReportDataMessage=" + str(ret), 3)
|
||||||
tasmota.log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
|
tasmota.log("MTR: ReportDataMessageTLV=" + str(ret.to_TLV()), 3)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
@ -540,7 +554,11 @@ class Matter_IM
|
||||||
fake_read.attributes_requests.push(p1)
|
fake_read.attributes_requests.push(p1)
|
||||||
end
|
end
|
||||||
|
|
||||||
tasmota.log("MTR: <Sub_ack sub_id=" + str(sub.subscription_id), 2)
|
if size(fake_read.attributes_requests) > 0
|
||||||
|
tasmota.log("MTR: <Sub_data sub_id=" + str(sub.subscription_id), 2)
|
||||||
|
else
|
||||||
|
tasmota.log("MTR: <Sub_alive sub_id=" + str(sub.subscription_id), 2)
|
||||||
|
end
|
||||||
var ret = self._inner_process_read_request(session, fake_read)
|
var ret = self._inner_process_read_request(session, fake_read)
|
||||||
ret.suppress_response = (size(fake_read.attributes_requests) == 0) # ret is of class `ReportDataMessage`
|
ret.suppress_response = (size(fake_read.attributes_requests) == 0) # ret is of class `ReportDataMessage`
|
||||||
ret.subscription_id = sub.subscription_id
|
ret.subscription_id = sub.subscription_id
|
||||||
|
|
|
@ -77,6 +77,12 @@ class Matter_IM_Message
|
||||||
# ack received for previous message, proceed to next (if any)
|
# ack received for previous message, proceed to next (if any)
|
||||||
# return true if we manage the ack ourselves, false if it needs to be done upper
|
# return true if we manage the ack ourselves, false if it needs to be done upper
|
||||||
def ack_received(msg)
|
def ack_received(msg)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
# Status Report OK received for previous message, proceed to next (if any)
|
||||||
|
# return true if we manage the ack ourselves, false if it needs to be done upper
|
||||||
|
def status_ok_received(msg)
|
||||||
if msg
|
if msg
|
||||||
self.resp = msg.build_response(self.resp.opcode, self.resp.x_flag_r, self.resp) # update packet
|
self.resp = msg.build_response(self.resp.opcode, self.resp.x_flag_r, self.resp) # update packet
|
||||||
end
|
end
|
||||||
|
@ -85,7 +91,7 @@ class Matter_IM_Message
|
||||||
end
|
end
|
||||||
|
|
||||||
# we received an ACK error, do any necessary cleaning
|
# we received an ACK error, do any necessary cleaning
|
||||||
def ack_error(msg)
|
def status_error_received(msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
# get the exchange-id for this message
|
# get the exchange-id for this message
|
||||||
|
@ -196,7 +202,7 @@ class Matter_IM_ReportData : Matter_IM_Message
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
tasmota.log(string.format("MTR: elements=%i msg_sz=%i total=%i", elements, msg_sz, size(ret.attribute_reports)), 3)
|
tasmota.log(string.format("MTR: elements=%i msg_sz=%i total=%i", elements, msg_sz, size(ret.attribute_reports)), 4)
|
||||||
var next_elemnts = ret.attribute_reports[elements .. ]
|
var next_elemnts = ret.attribute_reports[elements .. ]
|
||||||
ret.attribute_reports = ret.attribute_reports[0 .. elements - 1]
|
ret.attribute_reports = ret.attribute_reports[0 .. elements - 1]
|
||||||
ret.more_chunked_messages = (size(next_elemnts) > 0)
|
ret.more_chunked_messages = (size(next_elemnts) > 0)
|
||||||
|
@ -248,18 +254,28 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
|
||||||
self.report_data_phase = true
|
self.report_data_phase = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# ack received, confirm the heartbeat
|
||||||
|
def ack_received(msg)
|
||||||
|
if !self.report_data_phase
|
||||||
|
# if ack is received while all data is sent, means that it finished without error
|
||||||
|
return true # proceed to calling send()
|
||||||
|
else
|
||||||
|
return false # do nothing
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# we received an ACK error, remove subscription
|
# we received an ACK error, remove subscription
|
||||||
def ack_error(msg)
|
def status_error_received(msg)
|
||||||
self.sub.remove_self()
|
self.sub.remove_self()
|
||||||
end
|
end
|
||||||
|
|
||||||
# ack received for previous message, proceed to next (if any)
|
# ack received for previous message, proceed to next (if any)
|
||||||
# return true if we manage the ack ourselves, false if it needs to be done upper
|
# return true if we manage the ack ourselves, false if it needs to be done upper
|
||||||
def ack_received(msg)
|
def status_ok_received(msg)
|
||||||
if self.report_data_phase
|
if self.report_data_phase
|
||||||
return super(self).ack_received(msg)
|
return super(self).status_ok_received(msg)
|
||||||
else
|
else
|
||||||
super(self).ack_received(nil)
|
super(self).status_ok_received(nil)
|
||||||
return false # let the caller to the ack
|
return false # let the caller to the ack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -285,8 +301,13 @@ class Matter_IM_ReportDataSubscribed : Matter_IM_ReportData
|
||||||
|
|
||||||
else
|
else
|
||||||
# simple heartbeat ReportData
|
# simple heartbeat ReportData
|
||||||
super(self).send(responder)
|
if self.report_data_phase
|
||||||
return true # don't expect any response
|
super(self).send(responder)
|
||||||
|
self.report_data_phase = false
|
||||||
|
return false # don't expect any response
|
||||||
|
else
|
||||||
|
return true # we're done, remove message
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -81,6 +81,7 @@ class Matter_IM_Subscription
|
||||||
|
|
||||||
# remove self from subs list
|
# remove self from subs list
|
||||||
def remove_self()
|
def remove_self()
|
||||||
|
tasmota.log("MTR: Remove_Sub sub_id=" + str(self.subscription_id))
|
||||||
self.subs.remove_sub(self)
|
self.subs.remove_sub(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -465,7 +465,7 @@ class Matter_Frame
|
||||||
var r = matter.Frame(self.message_handler, raw)
|
var r = matter.Frame(self.message_handler, raw)
|
||||||
r.decode_header()
|
r.decode_header()
|
||||||
r.decode_payload()
|
r.decode_payload()
|
||||||
tasmota.log("MTR: sending decode: " + matter.inspect(r), 4)
|
tasmota.log("MTR: sending decode: " + matter.inspect(r), 3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
matter.Frame = Matter_Frame
|
matter.Frame = Matter_Frame
|
||||||
|
|
|
@ -80,7 +80,7 @@ class Matter_MessageHandler
|
||||||
if !op_name op_name = string.format("0x%02X", frame.opcode) end
|
if !op_name op_name = string.format("0x%02X", frame.opcode) end
|
||||||
tasmota.log(string.format("MTR: >Received %s from [%s]:%i", op_name, addr, port), 2)
|
tasmota.log(string.format("MTR: >Received %s from [%s]:%i", op_name, addr, port), 2)
|
||||||
end
|
end
|
||||||
self.commissioning.process_incoming(frame, addr, port)
|
self.commissioning.process_incoming(frame)
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
#############################################################
|
#############################################################
|
||||||
|
@ -112,7 +112,7 @@ class Matter_MessageHandler
|
||||||
frame.raw .. cleartext # add cleartext
|
frame.raw .. cleartext # add cleartext
|
||||||
|
|
||||||
# continue decoding
|
# continue decoding
|
||||||
tasmota.log(string.format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 3)
|
tasmota.log(string.format("MTR: idx=%i clear=%s", frame.payload_idx, frame.raw.tohex()), 4)
|
||||||
frame.decode_payload()
|
frame.decode_payload()
|
||||||
tasmota.log("MTR: decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 3)
|
tasmota.log("MTR: decrypted message: protocol_id:"+str(frame.protocol_id)+" opcode="+str(frame.opcode)+" exchange_id="+str(frame.exchange_id & 0xFFFF), 3)
|
||||||
|
|
||||||
|
@ -123,12 +123,16 @@ class Matter_MessageHandler
|
||||||
if protocol_id == 0x0000 # PROTOCOL_ID_SECURE_CHANNEL
|
if protocol_id == 0x0000 # PROTOCOL_ID_SECURE_CHANNEL
|
||||||
# it should not be encrypted
|
# it should not be encrypted
|
||||||
tasmota.log("MTR: PROTOCOL_ID_SECURE_CHANNEL " + matter.inspect(frame), 3)
|
tasmota.log("MTR: PROTOCOL_ID_SECURE_CHANNEL " + matter.inspect(frame), 3)
|
||||||
# if frame.opcode == 0x10
|
if frame.opcode == 0x10 # MRPStandaloneAcknowledgement
|
||||||
# end
|
ret = self.im.process_incoming_ack(frame)
|
||||||
|
if ret
|
||||||
|
self.im.send_enqueued(self)
|
||||||
|
end
|
||||||
|
end
|
||||||
ret = true
|
ret = true
|
||||||
elif protocol_id == 0x0001 # PROTOCOL_ID_INTERACTION_MODEL
|
elif protocol_id == 0x0001 # PROTOCOL_ID_INTERACTION_MODEL
|
||||||
# dispatch to IM Protocol Messages
|
# dispatch to IM Protocol Messages
|
||||||
ret = self.im.process_incoming(frame, addr, port)
|
ret = self.im.process_incoming(frame)
|
||||||
# if `ret` is true, we have something to send
|
# if `ret` is true, we have something to send
|
||||||
if ret
|
if ret
|
||||||
self.im.send_enqueued(self)
|
self.im.send_enqueued(self)
|
||||||
|
@ -139,6 +143,7 @@ class Matter_MessageHandler
|
||||||
resp.encrypt()
|
resp.encrypt()
|
||||||
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)
|
||||||
end
|
end
|
||||||
|
ret = true
|
||||||
|
|
||||||
# -- PROTOCOL_ID_BDX is used for file transfer between devices, not used in Tasmota
|
# -- PROTOCOL_ID_BDX is used for file transfer between devices, not used in Tasmota
|
||||||
# elif protocol_id == 0x0002 # PROTOCOL_ID_BDX -- BDX not handled at all in Tasmota
|
# elif protocol_id == 0x0002 # PROTOCOL_ID_BDX -- BDX not handled at all in Tasmota
|
||||||
|
|
|
@ -167,7 +167,7 @@ class Matter_UDPServer
|
||||||
else
|
else
|
||||||
import string
|
import string
|
||||||
self.packets_sent.remove(packet.msg_id)
|
self.packets_sent.remove(packet.msg_id)
|
||||||
tasmota.log(string.format("MTR: target unreachable '[%s]:%i'", packet.addr, packet.port), 2)
|
tasmota.log(string.format("MTR: target unreachable '[%s]:%i' msg_id=%i", packet.addr, packet.port, packet.msg_id), 2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -148,9 +148,9 @@ void be_load_Matter_Path_class(bvm *vm) {
|
||||||
extern const bclass be_class_Matter_IM_Message;
|
extern const bclass be_class_Matter_IM_Message;
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
** Solidified function: ack_received
|
** Solidified function: status_ok_received
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(Matter_IM_Message_ack_received, /* name */
|
be_local_closure(Matter_IM_Message_status_ok_received, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
7, /* nstack */
|
7, /* nstack */
|
||||||
2, /* argc */
|
2, /* argc */
|
||||||
|
@ -167,7 +167,7 @@ be_local_closure(Matter_IM_Message_ack_received, /* name */
|
||||||
/* K3 */ be_nested_str_weak(x_flag_r),
|
/* K3 */ be_nested_str_weak(x_flag_r),
|
||||||
/* K4 */ be_nested_str_weak(ready),
|
/* K4 */ be_nested_str_weak(ready),
|
||||||
}),
|
}),
|
||||||
be_str_weak(ack_received),
|
be_str_weak(status_ok_received),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[13]) { /* code */
|
( &(const binstruction[13]) { /* code */
|
||||||
0x78060007, // 0000 JMPF R1 #0009
|
0x78060007, // 0000 JMPF R1 #0009
|
||||||
|
@ -189,65 +189,6 @@ be_local_closure(Matter_IM_Message_ack_received, /* name */
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************
|
|
||||||
** Solidified function: ack_error
|
|
||||||
********************************************************************/
|
|
||||||
be_local_closure(Matter_IM_Message_ack_error, /* name */
|
|
||||||
be_nested_proto(
|
|
||||||
2, /* nstack */
|
|
||||||
2, /* 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(ack_error),
|
|
||||||
&be_const_str_solidified,
|
|
||||||
( &(const binstruction[ 1]) { /* code */
|
|
||||||
0x80000000, // 0000 RET 0
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
/*******************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************
|
|
||||||
** Solidified function: init
|
|
||||||
********************************************************************/
|
|
||||||
be_local_closure(Matter_IM_Message_init, /* name */
|
|
||||||
be_nested_proto(
|
|
||||||
8, /* nstack */
|
|
||||||
4, /* argc */
|
|
||||||
2, /* varg */
|
|
||||||
0, /* has upvals */
|
|
||||||
NULL, /* no upvals */
|
|
||||||
0, /* has sup protos */
|
|
||||||
NULL, /* no sub protos */
|
|
||||||
1, /* has constants */
|
|
||||||
( &(const bvalue[ 3]) { /* constants */
|
|
||||||
/* K0 */ be_nested_str_weak(resp),
|
|
||||||
/* K1 */ be_nested_str_weak(build_response),
|
|
||||||
/* K2 */ be_nested_str_weak(ready),
|
|
||||||
}),
|
|
||||||
be_str_weak(init),
|
|
||||||
&be_const_str_solidified,
|
|
||||||
( &(const binstruction[ 8]) { /* code */
|
|
||||||
0x8C100301, // 0000 GETMET R4 R1 K1
|
|
||||||
0x5C180400, // 0001 MOVE R6 R2
|
|
||||||
0x5C1C0600, // 0002 MOVE R7 R3
|
|
||||||
0x7C100600, // 0003 CALL R4 3
|
|
||||||
0x90020004, // 0004 SETMBR R0 K0 R4
|
|
||||||
0x50100200, // 0005 LDBOOL R4 1 0
|
|
||||||
0x90020404, // 0006 SETMBR R0 K2 R4
|
|
||||||
0x80000000, // 0007 RET 0
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
/*******************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
** Solidified function: get_exchangeid
|
** Solidified function: get_exchangeid
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
@ -329,22 +270,107 @@ be_local_closure(Matter_IM_Message_send, /* name */
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
** Solidified function: init
|
||||||
|
********************************************************************/
|
||||||
|
be_local_closure(Matter_IM_Message_init, /* name */
|
||||||
|
be_nested_proto(
|
||||||
|
8, /* nstack */
|
||||||
|
4, /* argc */
|
||||||
|
2, /* varg */
|
||||||
|
0, /* has upvals */
|
||||||
|
NULL, /* no upvals */
|
||||||
|
0, /* has sup protos */
|
||||||
|
NULL, /* no sub protos */
|
||||||
|
1, /* has constants */
|
||||||
|
( &(const bvalue[ 3]) { /* constants */
|
||||||
|
/* K0 */ be_nested_str_weak(resp),
|
||||||
|
/* K1 */ be_nested_str_weak(build_response),
|
||||||
|
/* K2 */ be_nested_str_weak(ready),
|
||||||
|
}),
|
||||||
|
be_str_weak(init),
|
||||||
|
&be_const_str_solidified,
|
||||||
|
( &(const binstruction[ 8]) { /* code */
|
||||||
|
0x8C100301, // 0000 GETMET R4 R1 K1
|
||||||
|
0x5C180400, // 0001 MOVE R6 R2
|
||||||
|
0x5C1C0600, // 0002 MOVE R7 R3
|
||||||
|
0x7C100600, // 0003 CALL R4 3
|
||||||
|
0x90020004, // 0004 SETMBR R0 K0 R4
|
||||||
|
0x50100200, // 0005 LDBOOL R4 1 0
|
||||||
|
0x90020404, // 0006 SETMBR R0 K2 R4
|
||||||
|
0x80000000, // 0007 RET 0
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
** Solidified function: status_error_received
|
||||||
|
********************************************************************/
|
||||||
|
be_local_closure(Matter_IM_Message_status_error_received, /* name */
|
||||||
|
be_nested_proto(
|
||||||
|
2, /* nstack */
|
||||||
|
2, /* 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(status_error_received),
|
||||||
|
&be_const_str_solidified,
|
||||||
|
( &(const binstruction[ 1]) { /* code */
|
||||||
|
0x80000000, // 0000 RET 0
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
** Solidified function: ack_received
|
||||||
|
********************************************************************/
|
||||||
|
be_local_closure(Matter_IM_Message_ack_received, /* name */
|
||||||
|
be_nested_proto(
|
||||||
|
3, /* nstack */
|
||||||
|
2, /* 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(ack_received),
|
||||||
|
&be_const_str_solidified,
|
||||||
|
( &(const binstruction[ 2]) { /* code */
|
||||||
|
0x50080000, // 0000 LDBOOL R2 0 0
|
||||||
|
0x80040400, // 0001 RET 1 R2
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
** Solidified class: Matter_IM_Message
|
** Solidified class: Matter_IM_Message
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_class(Matter_IM_Message,
|
be_local_class(Matter_IM_Message,
|
||||||
3,
|
3,
|
||||||
NULL,
|
NULL,
|
||||||
be_nested_map(8,
|
be_nested_map(9,
|
||||||
( (struct bmapnode*) &(const bmapnode[]) {
|
( (struct bmapnode*) &(const bmapnode[]) {
|
||||||
{ be_const_key_weak(ack_received, 2), be_const_closure(Matter_IM_Message_ack_received_closure) },
|
|
||||||
{ be_const_key_weak(send, -1), be_const_closure(Matter_IM_Message_send_closure) },
|
|
||||||
{ be_const_key_weak(get_exchangeid, -1), be_const_closure(Matter_IM_Message_get_exchangeid_closure) },
|
|
||||||
{ be_const_key_weak(resp, 6), be_const_var(0) },
|
|
||||||
{ be_const_key_weak(ready, -1), be_const_var(1) },
|
|
||||||
{ be_const_key_weak(data, -1), be_const_var(2) },
|
{ be_const_key_weak(data, -1), be_const_var(2) },
|
||||||
|
{ be_const_key_weak(get_exchangeid, -1), be_const_closure(Matter_IM_Message_get_exchangeid_closure) },
|
||||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_IM_Message_init_closure) },
|
{ be_const_key_weak(init, -1), be_const_closure(Matter_IM_Message_init_closure) },
|
||||||
{ be_const_key_weak(ack_error, 1), be_const_closure(Matter_IM_Message_ack_error_closure) },
|
{ be_const_key_weak(resp, -1), be_const_var(0) },
|
||||||
|
{ be_const_key_weak(send, 0), be_const_closure(Matter_IM_Message_send_closure) },
|
||||||
|
{ be_const_key_weak(ready, 2), be_const_var(1) },
|
||||||
|
{ be_const_key_weak(status_ok_received, 5), be_const_closure(Matter_IM_Message_status_ok_received_closure) },
|
||||||
|
{ be_const_key_weak(status_error_received, -1), be_const_closure(Matter_IM_Message_status_error_received_closure) },
|
||||||
|
{ be_const_key_weak(ack_received, -1), be_const_closure(Matter_IM_Message_ack_received_closure) },
|
||||||
})),
|
})),
|
||||||
be_str_weak(Matter_IM_Message)
|
be_str_weak(Matter_IM_Message)
|
||||||
);
|
);
|
||||||
|
@ -580,10 +606,10 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
/* K11 */ be_nested_str_weak(log),
|
/* K11 */ be_nested_str_weak(log),
|
||||||
/* K12 */ be_nested_str_weak(format),
|
/* K12 */ be_nested_str_weak(format),
|
||||||
/* K13 */ be_nested_str_weak(MTR_X3A_X20elements_X3D_X25i_X20msg_sz_X3D_X25i_X20total_X3D_X25i),
|
/* K13 */ be_nested_str_weak(MTR_X3A_X20elements_X3D_X25i_X20msg_sz_X3D_X25i_X20total_X3D_X25i),
|
||||||
/* K14 */ be_const_int(3),
|
/* K14 */ be_const_int(2147483647),
|
||||||
/* K15 */ be_const_int(2147483647),
|
/* K15 */ be_nested_str_weak(MTR_X3A_X20Read_Attr_X20_X20next_chunk_X20exch_X3D_X25i),
|
||||||
/* K16 */ be_nested_str_weak(MTR_X3A_X20Read_Attr_X20_X20next_chunk_X20exch_X3D_X25i),
|
/* K16 */ be_nested_str_weak(get_exchangeid),
|
||||||
/* K17 */ be_nested_str_weak(get_exchangeid),
|
/* K17 */ be_const_int(3),
|
||||||
/* K18 */ be_nested_str_weak(MTR_X3A_X20Read_Attr_X20_X20first_chunk_X20exch_X3D_X25i),
|
/* K18 */ be_nested_str_weak(MTR_X3A_X20Read_Attr_X20_X20first_chunk_X20exch_X3D_X25i),
|
||||||
/* K19 */ be_nested_str_weak(MTR_X3A_X20sending_X20TLV),
|
/* K19 */ be_nested_str_weak(MTR_X3A_X20sending_X20TLV),
|
||||||
/* K20 */ be_nested_str_weak(encode),
|
/* K20 */ be_nested_str_weak(encode),
|
||||||
|
@ -653,9 +679,9 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
0x88400905, // 0031 GETMBR R16 R4 K5
|
0x88400905, // 0031 GETMBR R16 R4 K5
|
||||||
0x7C3C0200, // 0032 CALL R15 1
|
0x7C3C0200, // 0032 CALL R15 1
|
||||||
0x7C280A00, // 0033 CALL R10 5
|
0x7C280A00, // 0033 CALL R10 5
|
||||||
0x582C000E, // 0034 LDCONST R11 K14
|
0x542E0003, // 0034 LDINT R11 4
|
||||||
0x7C200600, // 0035 CALL R8 3
|
0x7C200600, // 0035 CALL R8 3
|
||||||
0x40200F0F, // 0036 CONNECT R8 R7 K15
|
0x40200F0E, // 0036 CONNECT R8 R7 K14
|
||||||
0x88240905, // 0037 GETMBR R9 R4 K5
|
0x88240905, // 0037 GETMBR R9 R4 K5
|
||||||
0x94201208, // 0038 GETIDX R8 R9 R8
|
0x94201208, // 0038 GETIDX R8 R9 R8
|
||||||
0x04280F08, // 0039 SUB R10 R7 K8
|
0x04280F08, // 0039 SUB R10 R7 K8
|
||||||
|
@ -672,11 +698,11 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
0xB82A1400, // 0044 GETNGBL R10 K10
|
0xB82A1400, // 0044 GETNGBL R10 K10
|
||||||
0x8C28150B, // 0045 GETMET R10 R10 K11
|
0x8C28150B, // 0045 GETMET R10 R10 K11
|
||||||
0x8C30050C, // 0046 GETMET R12 R2 K12
|
0x8C30050C, // 0046 GETMET R12 R2 K12
|
||||||
0x58380010, // 0047 LDCONST R14 K16
|
0x5838000F, // 0047 LDCONST R14 K15
|
||||||
0x8C3C0111, // 0048 GETMET R15 R0 K17
|
0x8C3C0110, // 0048 GETMET R15 R0 K16
|
||||||
0x7C3C0200, // 0049 CALL R15 1
|
0x7C3C0200, // 0049 CALL R15 1
|
||||||
0x7C300600, // 004A CALL R12 3
|
0x7C300600, // 004A CALL R12 3
|
||||||
0x5834000E, // 004B LDCONST R13 K14
|
0x58340011, // 004B LDCONST R13 K17
|
||||||
0x7C280600, // 004C CALL R10 3
|
0x7C280600, // 004C CALL R10 3
|
||||||
0x88240903, // 004D GETMBR R9 R4 K3
|
0x88240903, // 004D GETMBR R9 R4 K3
|
||||||
0x78260012, // 004E JMPF R9 #0062
|
0x78260012, // 004E JMPF R9 #0062
|
||||||
|
@ -686,10 +712,10 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
0x8C24130B, // 0052 GETMET R9 R9 K11
|
0x8C24130B, // 0052 GETMET R9 R9 K11
|
||||||
0x8C2C050C, // 0053 GETMET R11 R2 K12
|
0x8C2C050C, // 0053 GETMET R11 R2 K12
|
||||||
0x58340012, // 0054 LDCONST R13 K18
|
0x58340012, // 0054 LDCONST R13 K18
|
||||||
0x8C380111, // 0055 GETMET R14 R0 K17
|
0x8C380110, // 0055 GETMET R14 R0 K16
|
||||||
0x7C380200, // 0056 CALL R14 1
|
0x7C380200, // 0056 CALL R14 1
|
||||||
0x7C2C0600, // 0057 CALL R11 3
|
0x7C2C0600, // 0057 CALL R11 3
|
||||||
0x5830000E, // 0058 LDCONST R12 K14
|
0x58300011, // 0058 LDCONST R12 K17
|
||||||
0x7C240600, // 0059 CALL R9 3
|
0x7C240600, // 0059 CALL R9 3
|
||||||
0xB8261400, // 005A GETNGBL R9 K10
|
0xB8261400, // 005A GETNGBL R9 K10
|
||||||
0x8C24130B, // 005B GETMET R9 R9 K11
|
0x8C24130B, // 005B GETMET R9 R9 K11
|
||||||
|
@ -697,7 +723,7 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
0x5C300800, // 005D MOVE R12 R4
|
0x5C300800, // 005D MOVE R12 R4
|
||||||
0x7C2C0200, // 005E CALL R11 1
|
0x7C2C0200, // 005E CALL R11 1
|
||||||
0x002E260B, // 005F ADD R11 K19 R11
|
0x002E260B, // 005F ADD R11 K19 R11
|
||||||
0x5830000E, // 0060 LDCONST R12 K14
|
0x58300011, // 0060 LDCONST R12 K17
|
||||||
0x7C240600, // 0061 CALL R9 3
|
0x7C240600, // 0061 CALL R9 3
|
||||||
0x8C240714, // 0062 GETMET R9 R3 K20
|
0x8C240714, // 0062 GETMET R9 R3 K20
|
||||||
0x882C0102, // 0063 GETMBR R11 R0 K2
|
0x882C0102, // 0063 GETMBR R11 R0 K2
|
||||||
|
@ -726,7 +752,7 @@ be_local_closure(Matter_IM_ReportData_send, /* name */
|
||||||
0x5C300800, // 007A MOVE R12 R4
|
0x5C300800, // 007A MOVE R12 R4
|
||||||
0x7C2C0200, // 007B CALL R11 1
|
0x7C2C0200, // 007B CALL R11 1
|
||||||
0x002E360B, // 007C ADD R11 K27 R11
|
0x002E360B, // 007C ADD R11 K27 R11
|
||||||
0x5830000E, // 007D LDCONST R12 K14
|
0x58300011, // 007D LDCONST R12 K17
|
||||||
0x7C240600, // 007E CALL R9 3
|
0x7C240600, // 007E CALL R9 3
|
||||||
0xB8261400, // 007F GETNGBL R9 K10
|
0xB8261400, // 007F GETNGBL R9 K10
|
||||||
0x8C24131D, // 0080 GETMET R9 R9 K29
|
0x8C24131D, // 0080 GETMET R9 R9 K29
|
||||||
|
@ -822,36 +848,6 @@ void be_load_Matter_IM_ReportData_class(bvm *vm) {
|
||||||
|
|
||||||
extern const bclass be_class_Matter_IM_ReportDataSubscribed;
|
extern const bclass be_class_Matter_IM_ReportDataSubscribed;
|
||||||
|
|
||||||
/********************************************************************
|
|
||||||
** Solidified function: ack_error
|
|
||||||
********************************************************************/
|
|
||||||
be_local_closure(Matter_IM_ReportDataSubscribed_ack_error, /* name */
|
|
||||||
be_nested_proto(
|
|
||||||
4, /* nstack */
|
|
||||||
2, /* argc */
|
|
||||||
2, /* varg */
|
|
||||||
0, /* has upvals */
|
|
||||||
NULL, /* no upvals */
|
|
||||||
0, /* has sup protos */
|
|
||||||
NULL, /* no sub protos */
|
|
||||||
1, /* has constants */
|
|
||||||
( &(const bvalue[ 2]) { /* constants */
|
|
||||||
/* K0 */ be_nested_str_weak(sub),
|
|
||||||
/* K1 */ be_nested_str_weak(remove_self),
|
|
||||||
}),
|
|
||||||
be_str_weak(ack_error),
|
|
||||||
&be_const_str_solidified,
|
|
||||||
( &(const binstruction[ 4]) { /* code */
|
|
||||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
|
||||||
0x8C080501, // 0001 GETMET R2 R2 K1
|
|
||||||
0x7C080200, // 0002 CALL R2 1
|
|
||||||
0x80000000, // 0003 RET 0
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
/*******************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
** Solidified function: send
|
** Solidified function: send
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
|
@ -883,7 +879,7 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send, /* name */
|
||||||
}),
|
}),
|
||||||
be_str_weak(send),
|
be_str_weak(send),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[48]) { /* code */
|
( &(const binstruction[55]) { /* code */
|
||||||
0x6008000C, // 0000 GETGBL R2 G12
|
0x6008000C, // 0000 GETGBL R2 G12
|
||||||
0x880C0100, // 0001 GETMBR R3 R0 K0
|
0x880C0100, // 0001 GETMBR R3 R0 K0
|
||||||
0x880C0701, // 0002 GETMBR R3 R3 K1
|
0x880C0701, // 0002 GETMBR R3 R3 K1
|
||||||
|
@ -922,16 +918,53 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send, /* name */
|
||||||
0x7C0C0A00, // 0023 CALL R3 5
|
0x7C0C0A00, // 0023 CALL R3 5
|
||||||
0x500C0200, // 0024 LDBOOL R3 1 0
|
0x500C0200, // 0024 LDBOOL R3 1 0
|
||||||
0x80040600, // 0025 RET 1 R3
|
0x80040600, // 0025 RET 1 R3
|
||||||
0x70020007, // 0026 JMP #002F
|
0x7002000E, // 0026 JMP #0036
|
||||||
0x60080003, // 0027 GETGBL R2 G3
|
0x88080103, // 0027 GETMBR R2 R0 K3
|
||||||
0x5C0C0000, // 0028 MOVE R3 R0
|
0x780A000A, // 0028 JMPF R2 #0034
|
||||||
0x7C080200, // 0029 CALL R2 1
|
0x60080003, // 0029 GETGBL R2 G3
|
||||||
0x8C080504, // 002A GETMET R2 R2 K4
|
0x5C0C0000, // 002A MOVE R3 R0
|
||||||
0x5C100200, // 002B MOVE R4 R1
|
0x7C080200, // 002B CALL R2 1
|
||||||
0x7C080400, // 002C CALL R2 2
|
0x8C080504, // 002C GETMET R2 R2 K4
|
||||||
0x50080200, // 002D LDBOOL R2 1 0
|
0x5C100200, // 002D MOVE R4 R1
|
||||||
0x80040400, // 002E RET 1 R2
|
0x7C080400, // 002E CALL R2 2
|
||||||
0x80000000, // 002F RET 0
|
0x50080000, // 002F LDBOOL R2 0 0
|
||||||
|
0x90020602, // 0030 SETMBR R0 K3 R2
|
||||||
|
0x50080000, // 0031 LDBOOL R2 0 0
|
||||||
|
0x80040400, // 0032 RET 1 R2
|
||||||
|
0x70020001, // 0033 JMP #0036
|
||||||
|
0x50080200, // 0034 LDBOOL R2 1 0
|
||||||
|
0x80040400, // 0035 RET 1 R2
|
||||||
|
0x80000000, // 0036 RET 0
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
** Solidified function: status_error_received
|
||||||
|
********************************************************************/
|
||||||
|
be_local_closure(Matter_IM_ReportDataSubscribed_status_error_received, /* name */
|
||||||
|
be_nested_proto(
|
||||||
|
4, /* nstack */
|
||||||
|
2, /* argc */
|
||||||
|
2, /* varg */
|
||||||
|
0, /* has upvals */
|
||||||
|
NULL, /* no upvals */
|
||||||
|
0, /* has sup protos */
|
||||||
|
NULL, /* no sub protos */
|
||||||
|
1, /* has constants */
|
||||||
|
( &(const bvalue[ 2]) { /* constants */
|
||||||
|
/* K0 */ be_nested_str_weak(sub),
|
||||||
|
/* K1 */ be_nested_str_weak(remove_self),
|
||||||
|
}),
|
||||||
|
be_str_weak(status_error_received),
|
||||||
|
&be_const_str_solidified,
|
||||||
|
( &(const binstruction[ 4]) { /* code */
|
||||||
|
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||||
|
0x8C080501, // 0001 GETMET R2 R2 K1
|
||||||
|
0x7C080200, // 0002 CALL R2 1
|
||||||
|
0x80000000, // 0003 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -942,6 +975,39 @@ be_local_closure(Matter_IM_ReportDataSubscribed_send, /* name */
|
||||||
** Solidified function: ack_received
|
** Solidified function: ack_received
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(Matter_IM_ReportDataSubscribed_ack_received, /* name */
|
be_local_closure(Matter_IM_ReportDataSubscribed_ack_received, /* name */
|
||||||
|
be_nested_proto(
|
||||||
|
3, /* nstack */
|
||||||
|
2, /* argc */
|
||||||
|
2, /* varg */
|
||||||
|
0, /* has upvals */
|
||||||
|
NULL, /* no upvals */
|
||||||
|
0, /* has sup protos */
|
||||||
|
NULL, /* no sub protos */
|
||||||
|
1, /* has constants */
|
||||||
|
( &(const bvalue[ 1]) { /* constants */
|
||||||
|
/* K0 */ be_nested_str_weak(report_data_phase),
|
||||||
|
}),
|
||||||
|
be_str_weak(ack_received),
|
||||||
|
&be_const_str_solidified,
|
||||||
|
( &(const binstruction[ 8]) { /* code */
|
||||||
|
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||||
|
0x740A0002, // 0001 JMPT R2 #0005
|
||||||
|
0x50080200, // 0002 LDBOOL R2 1 0
|
||||||
|
0x80040400, // 0003 RET 1 R2
|
||||||
|
0x70020001, // 0004 JMP #0007
|
||||||
|
0x50080000, // 0005 LDBOOL R2 0 0
|
||||||
|
0x80040400, // 0006 RET 1 R2
|
||||||
|
0x80000000, // 0007 RET 0
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
** Solidified function: status_ok_received
|
||||||
|
********************************************************************/
|
||||||
|
be_local_closure(Matter_IM_ReportDataSubscribed_status_ok_received, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
5, /* nstack */
|
5, /* nstack */
|
||||||
2, /* argc */
|
2, /* argc */
|
||||||
|
@ -953,9 +1019,9 @@ be_local_closure(Matter_IM_ReportDataSubscribed_ack_received, /* name */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[ 2]) { /* constants */
|
( &(const bvalue[ 2]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(report_data_phase),
|
/* K0 */ be_nested_str_weak(report_data_phase),
|
||||||
/* K1 */ be_nested_str_weak(ack_received),
|
/* K1 */ be_nested_str_weak(status_ok_received),
|
||||||
}),
|
}),
|
||||||
be_str_weak(ack_received),
|
be_str_weak(status_ok_received),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[19]) { /* code */
|
( &(const binstruction[19]) { /* code */
|
||||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||||
|
@ -1048,14 +1114,15 @@ extern const bclass be_class_Matter_IM_ReportData;
|
||||||
be_local_class(Matter_IM_ReportDataSubscribed,
|
be_local_class(Matter_IM_ReportDataSubscribed,
|
||||||
2,
|
2,
|
||||||
&be_class_Matter_IM_ReportData,
|
&be_class_Matter_IM_ReportData,
|
||||||
be_nested_map(6,
|
be_nested_map(7,
|
||||||
( (struct bmapnode*) &(const bmapnode[]) {
|
( (struct bmapnode*) &(const bmapnode[]) {
|
||||||
{ be_const_key_weak(sub, 5), be_const_var(0) },
|
{ be_const_key_weak(init, 1), be_const_closure(Matter_IM_ReportDataSubscribed_init_closure) },
|
||||||
{ be_const_key_weak(ack_error, 0), be_const_closure(Matter_IM_ReportDataSubscribed_ack_error_closure) },
|
{ be_const_key_weak(status_ok_received, -1), be_const_closure(Matter_IM_ReportDataSubscribed_status_ok_received_closure) },
|
||||||
|
{ be_const_key_weak(send, 4), be_const_closure(Matter_IM_ReportDataSubscribed_send_closure) },
|
||||||
{ be_const_key_weak(ack_received, -1), be_const_closure(Matter_IM_ReportDataSubscribed_ack_received_closure) },
|
{ be_const_key_weak(ack_received, -1), be_const_closure(Matter_IM_ReportDataSubscribed_ack_received_closure) },
|
||||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_IM_ReportDataSubscribed_init_closure) },
|
{ be_const_key_weak(sub, 6), be_const_var(0) },
|
||||||
|
{ be_const_key_weak(status_error_received, 0), be_const_closure(Matter_IM_ReportDataSubscribed_status_error_received_closure) },
|
||||||
{ be_const_key_weak(report_data_phase, -1), be_const_var(1) },
|
{ be_const_key_weak(report_data_phase, -1), be_const_var(1) },
|
||||||
{ be_const_key_weak(send, -1), be_const_closure(Matter_IM_ReportDataSubscribed_send_closure) },
|
|
||||||
})),
|
})),
|
||||||
be_str_weak(Matter_IM_ReportDataSubscribed)
|
be_str_weak(Matter_IM_ReportDataSubscribed)
|
||||||
);
|
);
|
||||||
|
|
|
@ -11,7 +11,7 @@ extern const bclass be_class_Matter_IM_Subscription;
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(Matter_IM_Subscription_remove_self, /* name */
|
be_local_closure(Matter_IM_Subscription_remove_self, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
4, /* nstack */
|
5, /* nstack */
|
||||||
1, /* argc */
|
1, /* argc */
|
||||||
2, /* varg */
|
2, /* varg */
|
||||||
0, /* has upvals */
|
0, /* has upvals */
|
||||||
|
@ -19,18 +19,29 @@ be_local_closure(Matter_IM_Subscription_remove_self, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[ 2]) { /* constants */
|
( &(const bvalue[ 6]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(subs),
|
/* K0 */ be_nested_str_weak(tasmota),
|
||||||
/* K1 */ be_nested_str_weak(remove_sub),
|
/* K1 */ be_nested_str_weak(log),
|
||||||
|
/* K2 */ be_nested_str_weak(MTR_X3A_X20Remove_Sub_X20sub_id_X3D),
|
||||||
|
/* K3 */ be_nested_str_weak(subscription_id),
|
||||||
|
/* K4 */ be_nested_str_weak(subs),
|
||||||
|
/* K5 */ be_nested_str_weak(remove_sub),
|
||||||
}),
|
}),
|
||||||
be_str_weak(remove_self),
|
be_str_weak(remove_self),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[ 5]) { /* code */
|
( &(const binstruction[12]) { /* code */
|
||||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
0xB8060000, // 0000 GETNGBL R1 K0
|
||||||
0x8C040301, // 0001 GETMET R1 R1 K1
|
0x8C040301, // 0001 GETMET R1 R1 K1
|
||||||
0x5C0C0000, // 0002 MOVE R3 R0
|
0x600C0008, // 0002 GETGBL R3 G8
|
||||||
0x7C040400, // 0003 CALL R1 2
|
0x88100103, // 0003 GETMBR R4 R0 K3
|
||||||
0x80000000, // 0004 RET 0
|
0x7C0C0200, // 0004 CALL R3 1
|
||||||
|
0x000E0403, // 0005 ADD R3 K2 R3
|
||||||
|
0x7C040400, // 0006 CALL R1 2
|
||||||
|
0x88040104, // 0007 GETMBR R1 R0 K4
|
||||||
|
0x8C040305, // 0008 GETMET R1 R1 K5
|
||||||
|
0x5C0C0000, // 0009 MOVE R3 R0
|
||||||
|
0x7C040400, // 000A CALL R1 2
|
||||||
|
0x80000000, // 000B RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -227,7 +227,7 @@ be_local_closure(Matter_Frame_debug, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[ 9]) { /* constants */
|
( &(const bvalue[10]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(matter),
|
/* K0 */ be_nested_str_weak(matter),
|
||||||
/* K1 */ be_nested_str_weak(Frame),
|
/* K1 */ be_nested_str_weak(Frame),
|
||||||
/* K2 */ be_nested_str_weak(message_handler),
|
/* K2 */ be_nested_str_weak(message_handler),
|
||||||
|
@ -237,6 +237,7 @@ be_local_closure(Matter_Frame_debug, /* name */
|
||||||
/* K6 */ be_nested_str_weak(log),
|
/* K6 */ be_nested_str_weak(log),
|
||||||
/* K7 */ be_nested_str_weak(MTR_X3A_X20sending_X20decode_X3A_X20),
|
/* K7 */ be_nested_str_weak(MTR_X3A_X20sending_X20decode_X3A_X20),
|
||||||
/* K8 */ be_nested_str_weak(inspect),
|
/* K8 */ be_nested_str_weak(inspect),
|
||||||
|
/* K9 */ be_const_int(3),
|
||||||
}),
|
}),
|
||||||
be_str_weak(debug),
|
be_str_weak(debug),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
|
@ -257,7 +258,7 @@ be_local_closure(Matter_Frame_debug, /* name */
|
||||||
0x5C1C0400, // 000D MOVE R7 R2
|
0x5C1C0400, // 000D MOVE R7 R2
|
||||||
0x7C140400, // 000E CALL R5 2
|
0x7C140400, // 000E CALL R5 2
|
||||||
0x00160E05, // 000F ADD R5 K7 R5
|
0x00160E05, // 000F ADD R5 K7 R5
|
||||||
0x541A0003, // 0010 LDINT R6 4
|
0x58180009, // 0010 LDCONST R6 K9
|
||||||
0x7C0C0600, // 0011 CALL R3 3
|
0x7C0C0600, // 0011 CALL R3 3
|
||||||
0x80000000, // 0012 RET 0
|
0x80000000, // 0012 RET 0
|
||||||
})
|
})
|
||||||
|
|
|
@ -192,7 +192,7 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[70]) { /* constants */
|
( &(const bvalue[71]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(string),
|
/* K0 */ be_nested_str_weak(string),
|
||||||
/* K1 */ be_nested_str_weak(tasmota),
|
/* K1 */ be_nested_str_weak(tasmota),
|
||||||
/* K2 */ be_nested_str_weak(log),
|
/* K2 */ be_nested_str_weak(log),
|
||||||
|
@ -250,26 +250,27 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
||||||
/* K54 */ be_nested_str_weak(exchange_id),
|
/* K54 */ be_nested_str_weak(exchange_id),
|
||||||
/* K55 */ be_nested_str_weak(MTR_X3A_X20PROTOCOL_ID_SECURE_CHANNEL_X20),
|
/* K55 */ be_nested_str_weak(MTR_X3A_X20PROTOCOL_ID_SECURE_CHANNEL_X20),
|
||||||
/* K56 */ be_nested_str_weak(im),
|
/* K56 */ be_nested_str_weak(im),
|
||||||
/* K57 */ be_nested_str_weak(send_enqueued),
|
/* K57 */ be_nested_str_weak(process_incoming_ack),
|
||||||
/* K58 */ be_nested_str_weak(x_flag_r),
|
/* K58 */ be_nested_str_weak(send_enqueued),
|
||||||
/* K59 */ be_nested_str_weak(build_standalone_ack),
|
/* K59 */ be_nested_str_weak(x_flag_r),
|
||||||
/* K60 */ be_nested_str_weak(encode),
|
/* K60 */ be_nested_str_weak(build_standalone_ack),
|
||||||
/* K61 */ be_nested_str_weak(encrypt),
|
/* K61 */ be_nested_str_weak(encode),
|
||||||
/* K62 */ be_nested_str_weak(send_response),
|
/* K62 */ be_nested_str_weak(encrypt),
|
||||||
/* K63 */ be_nested_str_weak(remote_ip),
|
/* K63 */ be_nested_str_weak(send_response),
|
||||||
/* K64 */ be_nested_str_weak(remote_port),
|
/* K64 */ be_nested_str_weak(remote_ip),
|
||||||
/* K65 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
|
/* K65 */ be_nested_str_weak(remote_port),
|
||||||
/* K66 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
|
/* K66 */ be_nested_str_weak(MTR_X3A_X20ignoring_X20unhandled_X20protocol_id_X3A),
|
||||||
/* K67 */ be_nested_str_weak(_X3B),
|
/* K67 */ be_nested_str_weak(MTR_X3A_X20MessageHandler_X3A_X3Amsg_received_X20exception_X3A_X20),
|
||||||
/* K68 */ be_nested_str_weak(debug),
|
/* K68 */ be_nested_str_weak(_X3B),
|
||||||
/* K69 */ be_nested_str_weak(traceback),
|
/* K69 */ be_nested_str_weak(debug),
|
||||||
|
/* K70 */ be_nested_str_weak(traceback),
|
||||||
}),
|
}),
|
||||||
be_str_weak(msg_received),
|
be_str_weak(msg_received),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[317]) { /* code */
|
( &(const binstruction[328]) { /* code */
|
||||||
0xA4120000, // 0000 IMPORT R4 K0
|
0xA4120000, // 0000 IMPORT R4 K0
|
||||||
0x50140000, // 0001 LDBOOL R5 0 0
|
0x50140000, // 0001 LDBOOL R5 0 0
|
||||||
0xA8020123, // 0002 EXBLK 0 #0127
|
0xA802012E, // 0002 EXBLK 0 #0132
|
||||||
0xB81A0200, // 0003 GETNGBL R6 K1
|
0xB81A0200, // 0003 GETNGBL R6 K1
|
||||||
0x8C180D02, // 0004 GETMET R6 R6 K2
|
0x8C180D02, // 0004 GETMET R6 R6 K2
|
||||||
0x8C200304, // 0005 GETMET R8 R1 K4
|
0x8C200304, // 0005 GETMET R8 R1 K4
|
||||||
|
@ -293,10 +294,10 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
||||||
0x80041000, // 0017 RET 1 R8
|
0x80041000, // 0017 RET 1 R8
|
||||||
0x88200D08, // 0018 GETMBR R8 R6 K8
|
0x88200D08, // 0018 GETMBR R8 R6 K8
|
||||||
0x1C201109, // 0019 EQ R8 R8 K9
|
0x1C201109, // 0019 EQ R8 R8 K9
|
||||||
0x7822005C, // 001A JMPF R8 #0078
|
0x7822005A, // 001A JMPF R8 #0076
|
||||||
0x88200D0A, // 001B GETMBR R8 R6 K10
|
0x88200D0A, // 001B GETMBR R8 R6 K10
|
||||||
0x1C201109, // 001C EQ R8 R8 K9
|
0x1C201109, // 001C EQ R8 R8 K9
|
||||||
0x78220059, // 001D JMPF R8 #0078
|
0x78220057, // 001D JMPF R8 #0076
|
||||||
0x8820010B, // 001E GETMBR R8 R0 K11
|
0x8820010B, // 001E GETMBR R8 R0 K11
|
||||||
0x8820110C, // 001F GETMBR R8 R8 K12
|
0x8820110C, // 001F GETMBR R8 R8 K12
|
||||||
0x8C20110D, // 0020 GETMET R8 R8 K13
|
0x8C20110D, // 0020 GETMET R8 R8 K13
|
||||||
|
@ -380,210 +381,221 @@ be_local_closure(Matter_MessageHandler_msg_received, /* name */
|
||||||
0x88240124, // 006E GETMBR R9 R0 K36
|
0x88240124, // 006E GETMBR R9 R0 K36
|
||||||
0x8C241325, // 006F GETMET R9 R9 K37
|
0x8C241325, // 006F GETMET R9 R9 K37
|
||||||
0x5C2C0C00, // 0070 MOVE R11 R6
|
0x5C2C0C00, // 0070 MOVE R11 R6
|
||||||
0x5C300400, // 0071 MOVE R12 R2
|
0x7C240400, // 0071 CALL R9 2
|
||||||
0x5C340600, // 0072 MOVE R13 R3
|
0x50240200, // 0072 LDBOOL R9 1 0
|
||||||
0x7C240800, // 0073 CALL R9 4
|
0xA8040001, // 0073 EXBLK 1 1
|
||||||
0x50240200, // 0074 LDBOOL R9 1 0
|
0x80041200, // 0074 RET 1 R9
|
||||||
0xA8040001, // 0075 EXBLK 1 1
|
0x700200B7, // 0075 JMP #012E
|
||||||
0x80041200, // 0076 RET 1 R9
|
0xB8220200, // 0076 GETNGBL R8 K1
|
||||||
0x700200AA, // 0077 JMP #0123
|
0x8C201102, // 0077 GETMET R8 R8 K2
|
||||||
0xB8220200, // 0078 GETNGBL R8 K1
|
0x8C280919, // 0078 GETMET R10 R4 K25
|
||||||
0x8C201102, // 0079 GETMET R8 R8 K2
|
0x58300026, // 0079 LDCONST R12 K38
|
||||||
0x8C280919, // 007A GETMET R10 R4 K25
|
0x88340D08, // 007A GETMBR R13 R6 K8
|
||||||
0x58300026, // 007B LDCONST R12 K38
|
0x88380D18, // 007B GETMBR R14 R6 K24
|
||||||
0x88340D08, // 007C GETMBR R13 R6 K8
|
0x7C280800, // 007C CALL R10 4
|
||||||
0x88380D18, // 007D GETMBR R14 R6 K24
|
0x582C0011, // 007D LDCONST R11 K17
|
||||||
0x7C280800, // 007E CALL R10 4
|
0x7C200600, // 007E CALL R8 3
|
||||||
0x582C0011, // 007F LDCONST R11 K17
|
0x8820010B, // 007F GETMBR R8 R0 K11
|
||||||
0x7C200600, // 0080 CALL R8 3
|
0x8820110C, // 0080 GETMBR R8 R8 K12
|
||||||
0x8820010B, // 0081 GETMBR R8 R0 K11
|
0x8C201127, // 0081 GETMET R8 R8 K39
|
||||||
0x8820110C, // 0082 GETMBR R8 R8 K12
|
0x88280D08, // 0082 GETMBR R10 R6 K8
|
||||||
0x8C201127, // 0083 GETMET R8 R8 K39
|
0x7C200400, // 0083 CALL R8 2
|
||||||
0x88280D08, // 0084 GETMBR R10 R6 K8
|
0x4C240000, // 0084 LDNIL R9
|
||||||
0x7C200400, // 0085 CALL R8 2
|
0x1C241009, // 0085 EQ R9 R8 R9
|
||||||
0x4C240000, // 0086 LDNIL R9
|
0x78260013, // 0086 JMPF R9 #009B
|
||||||
0x1C241009, // 0087 EQ R9 R8 R9
|
0xB8260200, // 0087 GETNGBL R9 K1
|
||||||
0x78260013, // 0088 JMPF R9 #009D
|
0x8C241302, // 0088 GETMET R9 R9 K2
|
||||||
0xB8260200, // 0089 GETNGBL R9 K1
|
0x602C0008, // 0089 GETGBL R11 G8
|
||||||
0x8C241302, // 008A GETMET R9 R9 K2
|
0x88300D08, // 008A GETMBR R12 R6 K8
|
||||||
0x602C0008, // 008B GETGBL R11 G8
|
0x7C2C0200, // 008B CALL R11 1
|
||||||
0x88300D08, // 008C GETMBR R12 R6 K8
|
0x002E500B, // 008C ADD R11 K40 R11
|
||||||
0x7C2C0200, // 008D CALL R11 1
|
0x58300011, // 008D LDCONST R12 K17
|
||||||
0x002E500B, // 008E ADD R11 K40 R11
|
0x7C240600, // 008E CALL R9 3
|
||||||
0x58300011, // 008F LDCONST R12 K17
|
0xB8260200, // 008F GETNGBL R9 K1
|
||||||
0x7C240600, // 0090 CALL R9 3
|
0x8C241302, // 0090 GETMET R9 R9 K2
|
||||||
0xB8260200, // 0091 GETNGBL R9 K1
|
0xB82E0A00, // 0091 GETNGBL R11 K5
|
||||||
0x8C241302, // 0092 GETMET R9 R9 K2
|
0x8C2C172A, // 0092 GETMET R11 R11 K42
|
||||||
0xB82E0A00, // 0093 GETNGBL R11 K5
|
0x5C340C00, // 0093 MOVE R13 R6
|
||||||
0x8C2C172A, // 0094 GETMET R11 R11 K42
|
0x7C2C0400, // 0094 CALL R11 2
|
||||||
0x5C340C00, // 0095 MOVE R13 R6
|
0x002E520B, // 0095 ADD R11 K41 R11
|
||||||
0x7C2C0400, // 0096 CALL R11 2
|
0x58300011, // 0096 LDCONST R12 K17
|
||||||
0x002E520B, // 0097 ADD R11 K41 R11
|
0x7C240600, // 0097 CALL R9 3
|
||||||
0x58300011, // 0098 LDCONST R12 K17
|
0x50240000, // 0098 LDBOOL R9 0 0
|
||||||
0x7C240600, // 0099 CALL R9 3
|
0xA8040001, // 0099 EXBLK 1 1
|
||||||
0x50240000, // 009A LDBOOL R9 0 0
|
0x80041200, // 009A RET 1 R9
|
||||||
0xA8040001, // 009B EXBLK 1 1
|
0x780A0000, // 009B JMPF R2 #009D
|
||||||
0x80041200, // 009C RET 1 R9
|
0x90222402, // 009C SETMBR R8 K18 R2
|
||||||
0x780A0000, // 009D JMPF R2 #009F
|
0x780E0000, // 009D JMPF R3 #009F
|
||||||
0x90222402, // 009E SETMBR R8 K18 R2
|
0x90222603, // 009E SETMBR R8 K19 R3
|
||||||
0x780E0000, // 009F JMPF R3 #00A1
|
0x90222800, // 009F SETMBR R8 K20 R0
|
||||||
0x90222603, // 00A0 SETMBR R8 K19 R3
|
0x901A2A08, // 00A0 SETMBR R6 K21 R8
|
||||||
0x90222800, // 00A1 SETMBR R8 K20 R0
|
0x88241116, // 00A1 GETMBR R9 R8 K22
|
||||||
0x901A2A08, // 00A2 SETMBR R6 K21 R8
|
0x8C241317, // 00A2 GETMET R9 R9 K23
|
||||||
0x88241116, // 00A3 GETMBR R9 R8 K22
|
0x882C0D18, // 00A3 GETMBR R11 R6 K24
|
||||||
0x8C241317, // 00A4 GETMET R9 R9 K23
|
0x50300200, // 00A4 LDBOOL R12 1 0
|
||||||
0x882C0D18, // 00A5 GETMBR R11 R6 K24
|
0x7C240600, // 00A5 CALL R9 3
|
||||||
0x50300200, // 00A6 LDBOOL R12 1 0
|
0x74260011, // 00A6 JMPT R9 #00B9
|
||||||
0x7C240600, // 00A7 CALL R9 3
|
0xB8260200, // 00A7 GETNGBL R9 K1
|
||||||
0x74260011, // 00A8 JMPT R9 #00BB
|
0x8C241302, // 00A8 GETMET R9 R9 K2
|
||||||
0xB8260200, // 00A9 GETNGBL R9 K1
|
0x602C0008, // 00A9 GETGBL R11 G8
|
||||||
0x8C241302, // 00AA GETMET R9 R9 K2
|
0x88300D18, // 00AA GETMBR R12 R6 K24
|
||||||
0x602C0008, // 00AB GETGBL R11 G8
|
0x7C2C0200, // 00AB CALL R11 1
|
||||||
0x88300D18, // 00AC GETMBR R12 R6 K24
|
0x002E560B, // 00AC ADD R11 K43 R11
|
||||||
0x7C2C0200, // 00AD CALL R11 1
|
0x002C172C, // 00AD ADD R11 R11 K44
|
||||||
0x002E560B, // 00AE ADD R11 K43 R11
|
0x60300008, // 00AE GETGBL R12 G8
|
||||||
0x002C172C, // 00AF ADD R11 R11 K44
|
0x88341116, // 00AF GETMBR R13 R8 K22
|
||||||
0x60300008, // 00B0 GETGBL R12 G8
|
0x8C341B1B, // 00B0 GETMET R13 R13 K27
|
||||||
0x88341116, // 00B1 GETMBR R13 R8 K22
|
0x7C340200, // 00B1 CALL R13 1
|
||||||
0x8C341B1B, // 00B2 GETMET R13 R13 K27
|
0x7C300200, // 00B2 CALL R12 1
|
||||||
0x7C340200, // 00B3 CALL R13 1
|
0x002C160C, // 00B3 ADD R11 R11 R12
|
||||||
0x7C300200, // 00B4 CALL R12 1
|
0x58300011, // 00B4 LDCONST R12 K17
|
||||||
0x002C160C, // 00B5 ADD R11 R11 R12
|
0x7C240600, // 00B5 CALL R9 3
|
||||||
0x58300011, // 00B6 LDCONST R12 K17
|
0x50240000, // 00B6 LDBOOL R9 0 0
|
||||||
0x7C240600, // 00B7 CALL R9 3
|
0xA8040001, // 00B7 EXBLK 1 1
|
||||||
0x50240000, // 00B8 LDBOOL R9 0 0
|
0x80041200, // 00B8 RET 1 R9
|
||||||
0xA8040001, // 00B9 EXBLK 1 1
|
0x8C240D2D, // 00B9 GETMET R9 R6 K45
|
||||||
0x80041200, // 00BA RET 1 R9
|
0x7C240200, // 00BA CALL R9 1
|
||||||
0x8C240D2D, // 00BB GETMET R9 R6 K45
|
0x5C281200, // 00BB MOVE R10 R9
|
||||||
0x7C240200, // 00BC CALL R9 1
|
0x742A0002, // 00BC JMPT R10 #00C0
|
||||||
0x5C281200, // 00BD MOVE R10 R9
|
0x50280000, // 00BD LDBOOL R10 0 0
|
||||||
0x742A0002, // 00BE JMPT R10 #00C2
|
0xA8040001, // 00BE EXBLK 1 1
|
||||||
0x50280000, // 00BF LDBOOL R10 0 0
|
0x80041400, // 00BF RET 1 R10
|
||||||
0xA8040001, // 00C0 EXBLK 1 1
|
0x88280D2F, // 00C0 GETMBR R10 R6 K47
|
||||||
0x80041400, // 00C1 RET 1 R10
|
0x04281530, // 00C1 SUB R10 R10 K48
|
||||||
0x88280D2F, // 00C2 GETMBR R10 R6 K47
|
0x402A120A, // 00C2 CONNECT R10 K9 R10
|
||||||
0x04281530, // 00C3 SUB R10 R10 K48
|
0x882C0D2E, // 00C3 GETMBR R11 R6 K46
|
||||||
0x402A120A, // 00C4 CONNECT R10 K9 R10
|
0x9428160A, // 00C4 GETIDX R10 R11 R10
|
||||||
0x882C0D2E, // 00C5 GETMBR R11 R6 K46
|
0x901A5C0A, // 00C5 SETMBR R6 K46 R10
|
||||||
0x9428160A, // 00C6 GETIDX R10 R11 R10
|
0x88280D2E, // 00C6 GETMBR R10 R6 K46
|
||||||
0x901A5C0A, // 00C7 SETMBR R6 K46 R10
|
0x40281409, // 00C7 CONNECT R10 R10 R9
|
||||||
0x88280D2E, // 00C8 GETMBR R10 R6 K46
|
0xB82A0200, // 00C8 GETNGBL R10 K1
|
||||||
0x40281409, // 00C9 CONNECT R10 R10 R9
|
0x8C281502, // 00C9 GETMET R10 R10 K2
|
||||||
0xB82A0200, // 00CA GETNGBL R10 K1
|
0x8C300919, // 00CA GETMET R12 R4 K25
|
||||||
0x8C281502, // 00CB GETMET R10 R10 K2
|
0x58380031, // 00CB LDCONST R14 K49
|
||||||
0x8C300919, // 00CC GETMET R12 R4 K25
|
0x883C0D2F, // 00CC GETMBR R15 R6 K47
|
||||||
0x58380031, // 00CD LDCONST R14 K49
|
0x88400D2E, // 00CD GETMBR R16 R6 K46
|
||||||
0x883C0D2F, // 00CE GETMBR R15 R6 K47
|
0x8C402104, // 00CE GETMET R16 R16 K4
|
||||||
0x88400D2E, // 00CF GETMBR R16 R6 K46
|
0x7C400200, // 00CF CALL R16 1
|
||||||
0x8C402104, // 00D0 GETMET R16 R16 K4
|
0x7C300800, // 00D0 CALL R12 4
|
||||||
0x7C400200, // 00D1 CALL R16 1
|
0x54360003, // 00D1 LDINT R13 4
|
||||||
0x7C300800, // 00D2 CALL R12 4
|
0x7C280600, // 00D2 CALL R10 3
|
||||||
0x58340011, // 00D3 LDCONST R13 K17
|
0x8C280D1C, // 00D3 GETMET R10 R6 K28
|
||||||
0x7C280600, // 00D4 CALL R10 3
|
0x7C280200, // 00D4 CALL R10 1
|
||||||
0x8C280D1C, // 00D5 GETMET R10 R6 K28
|
0xB82A0200, // 00D5 GETNGBL R10 K1
|
||||||
0x7C280200, // 00D6 CALL R10 1
|
0x8C281502, // 00D6 GETMET R10 R10 K2
|
||||||
0xB82A0200, // 00D7 GETNGBL R10 K1
|
0x60300008, // 00D7 GETGBL R12 G8
|
||||||
0x8C281502, // 00D8 GETMET R10 R10 K2
|
0x88340D33, // 00D8 GETMBR R13 R6 K51
|
||||||
0x60300008, // 00D9 GETGBL R12 G8
|
0x7C300200, // 00D9 CALL R12 1
|
||||||
0x88340D33, // 00DA GETMBR R13 R6 K51
|
0x0032640C, // 00DA ADD R12 K50 R12
|
||||||
0x7C300200, // 00DB CALL R12 1
|
0x00301934, // 00DB ADD R12 R12 K52
|
||||||
0x0032640C, // 00DC ADD R12 K50 R12
|
0x60340008, // 00DC GETGBL R13 G8
|
||||||
0x00301934, // 00DD ADD R12 R12 K52
|
0x88380D1F, // 00DD GETMBR R14 R6 K31
|
||||||
0x60340008, // 00DE GETGBL R13 G8
|
0x7C340200, // 00DE CALL R13 1
|
||||||
0x88380D1F, // 00DF GETMBR R14 R6 K31
|
0x0030180D, // 00DF ADD R12 R12 R13
|
||||||
0x7C340200, // 00E0 CALL R13 1
|
0x00301935, // 00E0 ADD R12 R12 K53
|
||||||
0x0030180D, // 00E1 ADD R12 R12 R13
|
0x60340008, // 00E1 GETGBL R13 G8
|
||||||
0x00301935, // 00E2 ADD R12 R12 K53
|
0x88380D36, // 00E2 GETMBR R14 R6 K54
|
||||||
0x60340008, // 00E3 GETGBL R13 G8
|
0x543EFFFE, // 00E3 LDINT R15 65535
|
||||||
0x88380D36, // 00E4 GETMBR R14 R6 K54
|
0x2C381C0F, // 00E4 AND R14 R14 R15
|
||||||
0x543EFFFE, // 00E5 LDINT R15 65535
|
0x7C340200, // 00E5 CALL R13 1
|
||||||
0x2C381C0F, // 00E6 AND R14 R14 R15
|
0x0030180D, // 00E6 ADD R12 R12 R13
|
||||||
0x7C340200, // 00E7 CALL R13 1
|
0x58340011, // 00E7 LDCONST R13 K17
|
||||||
0x0030180D, // 00E8 ADD R12 R12 R13
|
0x7C280600, // 00E8 CALL R10 3
|
||||||
0x58340011, // 00E9 LDCONST R13 K17
|
0x8828010B, // 00E9 GETMBR R10 R0 K11
|
||||||
0x7C280600, // 00EA CALL R10 3
|
0x8C28151D, // 00EA GETMET R10 R10 K29
|
||||||
0x8828010B, // 00EB GETMBR R10 R0 K11
|
0x88300D1E, // 00EB GETMBR R12 R6 K30
|
||||||
0x8C28151D, // 00EC GETMET R10 R10 K29
|
0x7C280400, // 00EC CALL R10 2
|
||||||
0x88300D1E, // 00ED GETMBR R12 R6 K30
|
0x88280D33, // 00ED GETMBR R10 R6 K51
|
||||||
0x7C280400, // 00EE CALL R10 2
|
0x1C2C1509, // 00EE EQ R11 R10 K9
|
||||||
0x88280D33, // 00EF GETMBR R10 R6 K51
|
0x782E0018, // 00EF JMPF R11 #0109
|
||||||
0x1C2C1509, // 00F0 EQ R11 R10 K9
|
0xB82E0200, // 00F0 GETNGBL R11 K1
|
||||||
0x782E000A, // 00F1 JMPF R11 #00FD
|
0x8C2C1702, // 00F1 GETMET R11 R11 K2
|
||||||
0xB82E0200, // 00F2 GETNGBL R11 K1
|
0xB8360A00, // 00F2 GETNGBL R13 K5
|
||||||
0x8C2C1702, // 00F3 GETMET R11 R11 K2
|
0x8C341B2A, // 00F3 GETMET R13 R13 K42
|
||||||
0xB8360A00, // 00F4 GETNGBL R13 K5
|
0x5C3C0C00, // 00F4 MOVE R15 R6
|
||||||
0x8C341B2A, // 00F5 GETMET R13 R13 K42
|
0x7C340400, // 00F5 CALL R13 2
|
||||||
0x5C3C0C00, // 00F6 MOVE R15 R6
|
0x00366E0D, // 00F6 ADD R13 K55 R13
|
||||||
0x7C340400, // 00F7 CALL R13 2
|
0x58380011, // 00F7 LDCONST R14 K17
|
||||||
0x00366E0D, // 00F8 ADD R13 K55 R13
|
0x7C2C0600, // 00F8 CALL R11 3
|
||||||
0x58380011, // 00F9 LDCONST R14 K17
|
0x882C0D1F, // 00F9 GETMBR R11 R6 K31
|
||||||
0x7C2C0600, // 00FA CALL R11 3
|
0x5432000F, // 00FA LDINT R12 16
|
||||||
0x50140200, // 00FB LDBOOL R5 1 0
|
0x1C2C160C, // 00FB EQ R11 R11 R12
|
||||||
0x70020025, // 00FC JMP #0123
|
0x782E0009, // 00FC JMPF R11 #0107
|
||||||
0x1C2C1530, // 00FD EQ R11 R10 K48
|
0x882C0138, // 00FD GETMBR R11 R0 K56
|
||||||
0x782E001B, // 00FE JMPF R11 #011B
|
0x8C2C1739, // 00FE GETMET R11 R11 K57
|
||||||
0x882C0138, // 00FF GETMBR R11 R0 K56
|
0x5C340C00, // 00FF MOVE R13 R6
|
||||||
0x8C2C1725, // 0100 GETMET R11 R11 K37
|
0x7C2C0400, // 0100 CALL R11 2
|
||||||
0x5C340C00, // 0101 MOVE R13 R6
|
0x5C141600, // 0101 MOVE R5 R11
|
||||||
0x5C380400, // 0102 MOVE R14 R2
|
0x78160003, // 0102 JMPF R5 #0107
|
||||||
0x5C3C0600, // 0103 MOVE R15 R3
|
0x882C0138, // 0103 GETMBR R11 R0 K56
|
||||||
0x7C2C0800, // 0104 CALL R11 4
|
0x8C2C173A, // 0104 GETMET R11 R11 K58
|
||||||
0x5C141600, // 0105 MOVE R5 R11
|
0x5C340000, // 0105 MOVE R13 R0
|
||||||
0x78160004, // 0106 JMPF R5 #010C
|
0x7C2C0400, // 0106 CALL R11 2
|
||||||
0x882C0138, // 0107 GETMBR R11 R0 K56
|
0x50140200, // 0107 LDBOOL R5 1 0
|
||||||
0x8C2C1739, // 0108 GETMET R11 R11 K57
|
0x70020024, // 0108 JMP #012E
|
||||||
0x5C340000, // 0109 MOVE R13 R0
|
0x1C2C1530, // 0109 EQ R11 R10 K48
|
||||||
0x7C2C0400, // 010A CALL R11 2
|
0x782E001A, // 010A JMPF R11 #0126
|
||||||
0x7002000D, // 010B JMP #011A
|
0x882C0138, // 010B GETMBR R11 R0 K56
|
||||||
0x882C0D3A, // 010C GETMBR R11 R6 K58
|
0x8C2C1725, // 010C GETMET R11 R11 K37
|
||||||
0x782E000B, // 010D JMPF R11 #011A
|
0x5C340C00, // 010D MOVE R13 R6
|
||||||
0x8C2C0D3B, // 010E GETMET R11 R6 K59
|
0x7C2C0400, // 010E CALL R11 2
|
||||||
0x7C2C0200, // 010F CALL R11 1
|
0x5C141600, // 010F MOVE R5 R11
|
||||||
0x8C30173C, // 0110 GETMET R12 R11 K60
|
0x78160004, // 0110 JMPF R5 #0116
|
||||||
0x7C300200, // 0111 CALL R12 1
|
0x882C0138, // 0111 GETMBR R11 R0 K56
|
||||||
0x8C30173D, // 0112 GETMET R12 R11 K61
|
0x8C2C173A, // 0112 GETMET R11 R11 K58
|
||||||
0x7C300200, // 0113 CALL R12 1
|
0x5C340000, // 0113 MOVE R13 R0
|
||||||
0x8C30013E, // 0114 GETMET R12 R0 K62
|
0x7C2C0400, // 0114 CALL R11 2
|
||||||
0x8838172E, // 0115 GETMBR R14 R11 K46
|
0x7002000D, // 0115 JMP #0124
|
||||||
0x883C173F, // 0116 GETMBR R15 R11 K63
|
0x882C0D3B, // 0116 GETMBR R11 R6 K59
|
||||||
0x88401740, // 0117 GETMBR R16 R11 K64
|
0x782E000B, // 0117 JMPF R11 #0124
|
||||||
0x88441718, // 0118 GETMBR R17 R11 K24
|
0x8C2C0D3C, // 0118 GETMET R11 R6 K60
|
||||||
0x7C300A00, // 0119 CALL R12 5
|
0x7C2C0200, // 0119 CALL R11 1
|
||||||
0x70020007, // 011A JMP #0123
|
0x8C30173D, // 011A GETMET R12 R11 K61
|
||||||
0xB82E0200, // 011B GETNGBL R11 K1
|
0x7C300200, // 011B CALL R12 1
|
||||||
0x8C2C1702, // 011C GETMET R11 R11 K2
|
0x8C30173E, // 011C GETMET R12 R11 K62
|
||||||
0x60340008, // 011D GETGBL R13 G8
|
0x7C300200, // 011D CALL R12 1
|
||||||
0x5C381400, // 011E MOVE R14 R10
|
0x8C30013F, // 011E GETMET R12 R0 K63
|
||||||
0x7C340200, // 011F CALL R13 1
|
0x8838172E, // 011F GETMBR R14 R11 K46
|
||||||
0x0036820D, // 0120 ADD R13 K65 R13
|
0x883C1740, // 0120 GETMBR R15 R11 K64
|
||||||
0x58380011, // 0121 LDCONST R14 K17
|
0x88401741, // 0121 GETMBR R16 R11 K65
|
||||||
0x7C2C0600, // 0122 CALL R11 3
|
0x88441718, // 0122 GETMBR R17 R11 K24
|
||||||
0xA8040001, // 0123 EXBLK 1 1
|
0x7C300A00, // 0123 CALL R12 5
|
||||||
0x80040A00, // 0124 RET 1 R5
|
0x50140200, // 0124 LDBOOL R5 1 0
|
||||||
0xA8040001, // 0125 EXBLK 1 1
|
0x70020007, // 0125 JMP #012E
|
||||||
0x70020014, // 0126 JMP #013C
|
0xB82E0200, // 0126 GETNGBL R11 K1
|
||||||
0xAC180002, // 0127 CATCH R6 0 2
|
0x8C2C1702, // 0127 GETMET R11 R11 K2
|
||||||
0x70020011, // 0128 JMP #013B
|
0x60340008, // 0128 GETGBL R13 G8
|
||||||
0xB8220200, // 0129 GETNGBL R8 K1
|
0x5C381400, // 0129 MOVE R14 R10
|
||||||
0x8C201102, // 012A GETMET R8 R8 K2
|
0x7C340200, // 012A CALL R13 1
|
||||||
0x60280008, // 012B GETGBL R10 G8
|
0x0036840D, // 012B ADD R13 K66 R13
|
||||||
0x5C2C0C00, // 012C MOVE R11 R6
|
0x58380011, // 012C LDCONST R14 K17
|
||||||
0x7C280200, // 012D CALL R10 1
|
0x7C2C0600, // 012D CALL R11 3
|
||||||
0x002A840A, // 012E ADD R10 K66 R10
|
0xA8040001, // 012E EXBLK 1 1
|
||||||
0x00281543, // 012F ADD R10 R10 K67
|
0x80040A00, // 012F RET 1 R5
|
||||||
0x602C0008, // 0130 GETGBL R11 G8
|
0xA8040001, // 0130 EXBLK 1 1
|
||||||
0x5C300E00, // 0131 MOVE R12 R7
|
0x70020014, // 0131 JMP #0147
|
||||||
0x7C2C0200, // 0132 CALL R11 1
|
0xAC180002, // 0132 CATCH R6 0 2
|
||||||
0x0028140B, // 0133 ADD R10 R10 R11
|
0x70020011, // 0133 JMP #0146
|
||||||
0x7C200400, // 0134 CALL R8 2
|
0xB8220200, // 0134 GETNGBL R8 K1
|
||||||
0xA4228800, // 0135 IMPORT R8 K68
|
0x8C201102, // 0135 GETMET R8 R8 K2
|
||||||
0x8C241145, // 0136 GETMET R9 R8 K69
|
0x60280008, // 0136 GETGBL R10 G8
|
||||||
0x7C240200, // 0137 CALL R9 1
|
0x5C2C0C00, // 0137 MOVE R11 R6
|
||||||
0x50240000, // 0138 LDBOOL R9 0 0
|
0x7C280200, // 0138 CALL R10 1
|
||||||
0x80041200, // 0139 RET 1 R9
|
0x002A860A, // 0139 ADD R10 K67 R10
|
||||||
0x70020000, // 013A JMP #013C
|
0x00281544, // 013A ADD R10 R10 K68
|
||||||
0xB0080000, // 013B RAISE 2 R0 R0
|
0x602C0008, // 013B GETGBL R11 G8
|
||||||
0x80000000, // 013C RET 0
|
0x5C300E00, // 013C MOVE R12 R7
|
||||||
|
0x7C2C0200, // 013D CALL R11 1
|
||||||
|
0x0028140B, // 013E ADD R10 R10 R11
|
||||||
|
0x7C200400, // 013F CALL R8 2
|
||||||
|
0xA4228A00, // 0140 IMPORT R8 K69
|
||||||
|
0x8C241146, // 0141 GETMET R9 R8 K70
|
||||||
|
0x7C240200, // 0142 CALL R9 1
|
||||||
|
0x50240000, // 0143 LDBOOL R9 0 0
|
||||||
|
0x80041200, // 0144 RET 1 R9
|
||||||
|
0x70020000, // 0145 JMP #0147
|
||||||
|
0xB0080000, // 0146 RAISE 2 R0 R0
|
||||||
|
0x80000000, // 0147 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -347,7 +347,7 @@ be_local_closure(Matter_UDPServer_init, /* name */
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
11, /* nstack */
|
12, /* nstack */
|
||||||
1, /* argc */
|
1, /* argc */
|
||||||
2, /* varg */
|
2, /* varg */
|
||||||
0, /* has upvals */
|
0, /* has upvals */
|
||||||
|
@ -374,7 +374,7 @@ be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
||||||
/* K15 */ be_nested_str_weak(string),
|
/* K15 */ be_nested_str_weak(string),
|
||||||
/* K16 */ be_nested_str_weak(remove),
|
/* K16 */ be_nested_str_weak(remove),
|
||||||
/* K17 */ be_nested_str_weak(format),
|
/* K17 */ be_nested_str_weak(format),
|
||||||
/* K18 */ be_nested_str_weak(MTR_X3A_X20target_X20unreachable_X20_X27_X5B_X25s_X5D_X3A_X25i_X27),
|
/* K18 */ be_nested_str_weak(MTR_X3A_X20target_X20unreachable_X20_X27_X5B_X25s_X5D_X3A_X25i_X27_X20msg_id_X3D_X25i),
|
||||||
/* K19 */ be_nested_str_weak(addr),
|
/* K19 */ be_nested_str_weak(addr),
|
||||||
/* K20 */ be_nested_str_weak(port),
|
/* K20 */ be_nested_str_weak(port),
|
||||||
/* K21 */ be_const_int(2),
|
/* K21 */ be_const_int(2),
|
||||||
|
@ -382,18 +382,18 @@ be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
||||||
}),
|
}),
|
||||||
be_str_weak(resend_packets),
|
be_str_weak(resend_packets),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[57]) { /* code */
|
( &(const binstruction[58]) { /* code */
|
||||||
0x60040010, // 0000 GETGBL R1 G16
|
0x60040010, // 0000 GETGBL R1 G16
|
||||||
0x88080100, // 0001 GETMBR R2 R0 K0
|
0x88080100, // 0001 GETMBR R2 R0 K0
|
||||||
0x7C040200, // 0002 CALL R1 1
|
0x7C040200, // 0002 CALL R1 1
|
||||||
0xA8020030, // 0003 EXBLK 0 #0035
|
0xA8020031, // 0003 EXBLK 0 #0036
|
||||||
0x5C080200, // 0004 MOVE R2 R1
|
0x5C080200, // 0004 MOVE R2 R1
|
||||||
0x7C080000, // 0005 CALL R2 0
|
0x7C080000, // 0005 CALL R2 0
|
||||||
0xB80E0200, // 0006 GETNGBL R3 K1
|
0xB80E0200, // 0006 GETNGBL R3 K1
|
||||||
0x8C0C0702, // 0007 GETMET R3 R3 K2
|
0x8C0C0702, // 0007 GETMET R3 R3 K2
|
||||||
0x88140503, // 0008 GETMBR R5 R2 K3
|
0x88140503, // 0008 GETMBR R5 R2 K3
|
||||||
0x7C0C0400, // 0009 CALL R3 2
|
0x7C0C0400, // 0009 CALL R3 2
|
||||||
0x780E0028, // 000A JMPF R3 #0034
|
0x780E0029, // 000A JMPF R3 #0035
|
||||||
0x880C0504, // 000B GETMBR R3 R2 K4
|
0x880C0504, // 000B GETMBR R3 R2 K4
|
||||||
0x88100105, // 000C GETMBR R4 R0 K5
|
0x88100105, // 000C GETMBR R4 R0 K5
|
||||||
0x180C0604, // 000D LE R3 R3 R4
|
0x180C0604, // 000D LE R3 R3 R4
|
||||||
|
@ -420,7 +420,7 @@ be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
||||||
0x880C0504, // 0022 GETMBR R3 R2 K4
|
0x880C0504, // 0022 GETMBR R3 R2 K4
|
||||||
0x000C070E, // 0023 ADD R3 R3 K14
|
0x000C070E, // 0023 ADD R3 R3 K14
|
||||||
0x900A0803, // 0024 SETMBR R2 K4 R3
|
0x900A0803, // 0024 SETMBR R2 K4 R3
|
||||||
0x7002000D, // 0025 JMP #0034
|
0x7002000E, // 0025 JMP #0035
|
||||||
0xA40E1E00, // 0026 IMPORT R3 K15
|
0xA40E1E00, // 0026 IMPORT R3 K15
|
||||||
0x88100100, // 0027 GETMBR R4 R0 K0
|
0x88100100, // 0027 GETMBR R4 R0 K0
|
||||||
0x8C100910, // 0028 GETMET R4 R4 K16
|
0x8C100910, // 0028 GETMET R4 R4 K16
|
||||||
|
@ -432,14 +432,15 @@ be_local_closure(Matter_UDPServer_resend_packets, /* name */
|
||||||
0x58200012, // 002E LDCONST R8 K18
|
0x58200012, // 002E LDCONST R8 K18
|
||||||
0x88240513, // 002F GETMBR R9 R2 K19
|
0x88240513, // 002F GETMBR R9 R2 K19
|
||||||
0x88280514, // 0030 GETMBR R10 R2 K20
|
0x88280514, // 0030 GETMBR R10 R2 K20
|
||||||
0x7C180800, // 0031 CALL R6 4
|
0x882C0508, // 0031 GETMBR R11 R2 K8
|
||||||
0x581C0015, // 0032 LDCONST R7 K21
|
0x7C180A00, // 0032 CALL R6 5
|
||||||
0x7C100600, // 0033 CALL R4 3
|
0x581C0015, // 0033 LDCONST R7 K21
|
||||||
0x7001FFCE, // 0034 JMP #0004
|
0x7C100600, // 0034 CALL R4 3
|
||||||
0x58040016, // 0035 LDCONST R1 K22
|
0x7001FFCD, // 0035 JMP #0004
|
||||||
0xAC040200, // 0036 CATCH R1 1 0
|
0x58040016, // 0036 LDCONST R1 K22
|
||||||
0xB0080000, // 0037 RAISE 2 R0 R0
|
0xAC040200, // 0037 CATCH R1 1 0
|
||||||
0x80000000, // 0038 RET 0
|
0xB0080000, // 0038 RAISE 2 R0 R0
|
||||||
|
0x80000000, // 0039 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue