mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 03:06:33 +00:00
Matter improve responsiveness (#19002)
This commit is contained in:
parent
ff865d8005
commit
52392a2b48
@ -15,6 +15,7 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
### Changed
|
||||
- Matter support for temperature in Fahrenheit (`SetOption8 1`) (#18987)
|
||||
- Matter improve responsiveness
|
||||
|
||||
### Fixed
|
||||
- Berry various fixes for Walrus Operator (#18982)
|
||||
|
@ -1315,23 +1315,23 @@ class Matter_Device
|
||||
self.plugins_config.remove(ep_str)
|
||||
self.plugins_persist = true
|
||||
|
||||
# try saving parameters
|
||||
self.save_param()
|
||||
self.signal_endpoints_changed()
|
||||
|
||||
# now remove from in-memory configuration
|
||||
var idx = 0
|
||||
while idx < size(self.plugins)
|
||||
if ep == self.plugins[idx].get_endpoint()
|
||||
self.plugins.remove(idx)
|
||||
self.signal_endpoints_changed()
|
||||
break
|
||||
else
|
||||
idx += 1
|
||||
end
|
||||
end
|
||||
|
||||
# clean any orphan remote
|
||||
self.clean_remotes()
|
||||
|
||||
# try saving parameters
|
||||
self.save_param()
|
||||
self.signal_endpoints_changed()
|
||||
end
|
||||
|
||||
#############################################################
|
||||
@ -1415,13 +1415,15 @@ class Matter_Device
|
||||
def clean_remotes()
|
||||
import introspect
|
||||
|
||||
# print("clean_remotes", self.http_remotes)
|
||||
# init all remotes with count 0
|
||||
if self.http_remotes
|
||||
if self.http_remotes # tests if `self.http_remotes` is not `nil` and not empty
|
||||
var remotes_map = {} # key: remote object, value: count of references
|
||||
|
||||
for http_remote: self.http_remotes
|
||||
remotes_map[http_remote] = 0
|
||||
end
|
||||
# print("remotes_map", remotes_map)
|
||||
|
||||
# scan all endpoints
|
||||
for pi: self.plugins
|
||||
@ -1431,16 +1433,23 @@ class Matter_Device
|
||||
end
|
||||
end
|
||||
|
||||
# print("remotes_map2", remotes_map)
|
||||
|
||||
# tasmota.log("MTR: remotes references: " + str(remotes_map), 3)
|
||||
|
||||
var remote_to_remove = [] # we first get the list of remotes to remove, to not interfere with map iterator
|
||||
for remote:remotes_map.keys()
|
||||
if remotes_map[remote] == 0
|
||||
# remove
|
||||
tasmota.log("MTR: remove unused remote: " + remote.addr, 3)
|
||||
remote.close()
|
||||
self.http_remotes.remove(remote)
|
||||
remote_to_remove.push(remote)
|
||||
end
|
||||
end
|
||||
|
||||
for remote: remote_to_remove
|
||||
tasmota.log("MTR: remove unused remote: " + remote.addr, 3)
|
||||
remote.close()
|
||||
self.http_remotes.remove(remote.addr)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -177,7 +177,7 @@ class Matter_HTTP_remote : Matter_HTTP_async
|
||||
end
|
||||
|
||||
# reduce the update time after a read is succesful
|
||||
self.change_schedule(self.UPDATE_CMD0, self.UPDATE_TIME2)
|
||||
self.change_schedule(self.UPDATE_CMD5, self.UPDATE_TIME2)
|
||||
end
|
||||
|
||||
if changed self.info_changed() end
|
||||
|
@ -30,7 +30,7 @@ class Matter_Plugin_Bridge_Light0 : Matter_Plugin_Bridge_HTTP
|
||||
static var TYPE = "http_light0" # name of the plug-in in json
|
||||
static var NAME = "Light 0 On" # display name of the plug-in
|
||||
static var ARG = "relay" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Power<x> number"
|
||||
static var ARG_HINT = "Power<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
# static var UPDATE_TIME = 3000 # update every 3s
|
||||
# static var UPDATE_CMD = "Status 11" # command to send for updates
|
||||
|
@ -29,7 +29,7 @@ class Matter_Plugin_Bridge_Light0 end
|
||||
class Matter_Plugin_Bridge_OnOff : Matter_Plugin_Bridge_Light0
|
||||
static var TYPE = "http_relay" # name of the plug-in in json
|
||||
static var NAME = "Relay" # display name of the plug-in
|
||||
static var ARG_HINT = "Enter Relay<x> number"
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var TYPES = { 0x010A: 2 } # On/Off Plug-in Unit
|
||||
|
||||
#############################################################
|
||||
|
@ -31,7 +31,7 @@ class Matter_Plugin_Bridge_Sensor : Matter_Plugin_Bridge_HTTP
|
||||
# static var NAME = "" # display name of the plug-in
|
||||
static var ARG = "filter" # additional argument name (or empty if none)
|
||||
static var ARG_HTTP = "url" # domain name
|
||||
static var ARG_HINT = "Enter Filter pattern"
|
||||
static var ARG_HINT = "Filter pattern"
|
||||
static var UPDATE_TIME = 5000 # update every 5s
|
||||
static var UPDATE_CMD = "Status 8" # command to send for updates
|
||||
static var PROBE_TIMEOUT = 1700 # timeout of 1700 ms for probing, which gives at least 1s for TCP recovery
|
||||
|
@ -30,7 +30,7 @@ class Matter_Plugin_Bridge_Sensor_Contact : Matter_Plugin_Bridge_HTTP
|
||||
static var TYPE = "http_contact" # name of the plug-in in json
|
||||
static var NAME = "Contact" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Switch<x> number"
|
||||
static var ARG_HINT = "Switch<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 5s
|
||||
static var UPDATE_CMD = "Status 8" # command to send for updates
|
||||
|
@ -30,7 +30,7 @@ class Matter_Plugin_Bridge_Sensor_Occupancy : Matter_Plugin_Bridge_HTTP
|
||||
static var TYPE = "http_occupancy" # name of the plug-in in json
|
||||
static var NAME = "Occupancy" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Switch<x> number"
|
||||
static var ARG_HINT = "Switch<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 5s
|
||||
static var UPDATE_CMD = "Status 8" # command to send for updates
|
||||
|
@ -31,7 +31,7 @@ class Matter_Plugin_OnOff : Matter_Plugin_Device
|
||||
static var NAME = "Relay" # display name of the plug-in
|
||||
static var ARG = "relay" # additional argument name (or empty if none)
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var ARG_HINT = "Enter Relay<x> number"
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var UPDATE_TIME = 250 # update every 250ms
|
||||
static var CLUSTERS = {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
|
@ -306,8 +306,12 @@ class Matter_Plugin_Root : Matter_Plugin
|
||||
if attribute == 0x0003 # ---------- PartsList / list[endpoint-no]----------
|
||||
var pl = TLV.Matter_TLV_array()
|
||||
var eps = self.device.get_active_endpoints(true)
|
||||
var disable_bridge_mode = self.device.disable_bridge_mode
|
||||
for ep: eps
|
||||
pl.add_TLV(nil, TLV.U2, ep) # add each endpoint
|
||||
# if bridge mode is disabled, don't announce Aggregatore (above 0xFF00)
|
||||
if !disable_bridge_mode || ep < 0xFF00
|
||||
pl.add_TLV(nil, TLV.U2, ep) # add each endpoint
|
||||
end
|
||||
end
|
||||
return pl
|
||||
else
|
||||
|
@ -28,7 +28,7 @@ class Matter_Plugin_Device end
|
||||
|
||||
class Matter_Plugin_Sensor : Matter_Plugin_Device
|
||||
static var ARG = "filter" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Filter pattern"
|
||||
static var ARG_HINT = "Filter pattern"
|
||||
static var UPDATE_TIME = 5000 # update sensor every 5s
|
||||
var tasmota_sensor_filter # Rule-type filter to the value, like "ESP32#Temperature"
|
||||
var tasmota_sensor_matcher # Actual matcher object
|
||||
|
@ -30,7 +30,7 @@ class Matter_Plugin_Sensor_Contact : Matter_Plugin_Device
|
||||
static var TYPE = "contact" # name of the plug-in in json
|
||||
static var NAME = "Contact" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Switch<x> number"
|
||||
static var ARG_HINT = "Switch<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 250ms
|
||||
static var CLUSTERS = {
|
||||
|
@ -30,7 +30,7 @@ class Matter_Plugin_Sensor_Occupancy : Matter_Plugin_Device
|
||||
static var TYPE = "occupancy" # name of the plug-in in json
|
||||
static var NAME = "Occupancy" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Switch<x> number"
|
||||
static var ARG_HINT = "Switch<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 250ms
|
||||
static var CLUSTERS = {
|
||||
|
@ -28,7 +28,7 @@ class Matter_Plugin_Sensor_OnOff : Matter_Plugin_Device
|
||||
static var TYPE = "onoff" # name of the plug-in in json
|
||||
static var NAME = "OnOff Sensor" # display name of the plug-in
|
||||
static var ARG = "switch" # additional argument name (or empty if none)
|
||||
static var ARG_HINT = "Enter Switch<x> number"
|
||||
static var ARG_HINT = "Switch<x> number"
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var UPDATE_TIME = 5000 # update every 250ms
|
||||
static var CLUSTERS = {
|
||||
|
@ -31,7 +31,7 @@ class Matter_Plugin_Shutter : Matter_Plugin_Device
|
||||
static var NAME = "Shutter" # display name of the plug-in
|
||||
static var ARG = "shutter" # additional argument name (or empty if none)
|
||||
static var ARG_TYPE = / x -> int(x) # function to convert argument to the right type
|
||||
static var ARG_HINT = "Enter Relay<x> number"
|
||||
static var ARG_HINT = "Relay<x> number"
|
||||
static var CLUSTERS = {
|
||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||
# 0x0003: inherited # Identify 1.2 p.16
|
||||
|
@ -70,6 +70,7 @@ class Matter_UDPServer
|
||||
var udp_socket
|
||||
var dispatch_cb # callback to call when a message is received
|
||||
var packets_sent # list map of packets sent to be acknowledged
|
||||
var loop_cb # closure to pass to fast_loop
|
||||
|
||||
#############################################################
|
||||
# Init UDP Server listening to `addr` and `port` (opt).
|
||||
@ -80,6 +81,7 @@ class Matter_UDPServer
|
||||
self.port = port ? port : 5540
|
||||
self.listening = false
|
||||
self.packets_sent = []
|
||||
self.loop_cb = def () self.loop() end
|
||||
end
|
||||
|
||||
#############################################################
|
||||
@ -95,7 +97,8 @@ class Matter_UDPServer
|
||||
if !ok raise "network_error", "could not open UDP server" end
|
||||
self.listening = true
|
||||
self.dispatch_cb = cb
|
||||
tasmota.add_driver(self)
|
||||
# tasmota.add_driver(self)
|
||||
tasmota.add_fast_loop(self.loop_cb)
|
||||
end
|
||||
end
|
||||
|
||||
@ -105,7 +108,8 @@ class Matter_UDPServer
|
||||
if self.listening
|
||||
self.udp_socket.stop()
|
||||
self.listening = false
|
||||
tasmota.remove_driver(self)
|
||||
# tasmota.remove_driver(self)
|
||||
tasmota.remove_fast_loop(self.loop_cb)
|
||||
end
|
||||
end
|
||||
|
||||
@ -115,7 +119,7 @@ class Matter_UDPServer
|
||||
# Read at most `MAX_PACKETS_READ (4) packets at each tick to
|
||||
# avoid any starvation.
|
||||
# Then resend queued outgoing packets.
|
||||
def every_50ms()
|
||||
def loop()
|
||||
var packet_read = 0
|
||||
if self.udp_socket == nil return end
|
||||
var packet = self.udp_socket.read()
|
||||
@ -138,6 +142,9 @@ class Matter_UDPServer
|
||||
self._resend_packets() # resend any packet
|
||||
end
|
||||
|
||||
def every_50ms()
|
||||
self.loop()
|
||||
end
|
||||
#############################################################
|
||||
# Send packet now.
|
||||
#
|
||||
|
@ -105,6 +105,8 @@ class Matter_UI
|
||||
var commissioning_open_checked = self.device.commissioning_open != nil ? "checked" : ""
|
||||
webserver.content_send(f"<p><input id='comm' type='checkbox' name='comm' {commissioning_open_checked}>")
|
||||
webserver.content_send("<label for='comm'><b>Commissioning open</b></label></p>")
|
||||
var disable_bridge_mode_checked = self.device.disable_bridge_mode ? " checked" : ""
|
||||
webserver.content_send(f"<p><input type='checkbox' name='nobridge'{disable_bridge_mode_checked}><b>Force Static endpoints</b> (non-bridge)</p>")
|
||||
end
|
||||
|
||||
webserver.content_send("<p></p><button name='save' class='button bgrn'>Save</button></form></p>"
|
||||
@ -197,8 +199,6 @@ class Matter_UI
|
||||
webserver.content_send(f"<input type='number' min='0' max='4095' name='discriminator' value='{self.device.root_discriminator:i}'>")
|
||||
var ipv4only_checked = self.device.ipv4only ? " checked" : ""
|
||||
webserver.content_send(f"<p><input type='checkbox' name='ipv4'{ipv4only_checked}>IPv4 only</p>")
|
||||
var disable_bridge_mode_checked = self.device.disable_bridge_mode ? " checked" : ""
|
||||
webserver.content_send(f"<p><input type='checkbox' name='nobridge'{disable_bridge_mode_checked}>Disable bridge mode (not recommended)</p>")
|
||||
webserver.content_send("<p></p><button name='passcode' class='button bgrn'>Change</button></form></p>"
|
||||
"<p></p></fieldset><p></p>")
|
||||
|
||||
@ -741,9 +741,9 @@ class Matter_UI
|
||||
try
|
||||
|
||||
# debug information about parameters
|
||||
for i:0..webserver.arg_size()-1
|
||||
tasmota.log(format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i)))
|
||||
end
|
||||
# for i:0..webserver.arg_size()-1
|
||||
# tasmota.log(format("MTR: Arg%i '%s' = '%s'", i, webserver.arg_name(i), webserver.arg(i)))
|
||||
# end
|
||||
|
||||
#---------------------------------------------------------------------#
|
||||
# Change Passcode and/or Passcode
|
||||
@ -757,7 +757,6 @@ class Matter_UI
|
||||
self.device.root_discriminator = int(webserver.arg("discriminator"))
|
||||
end
|
||||
self.device.ipv4only = webserver.arg("ipv4") == 'on'
|
||||
self.device.disable_bridge_mode = webserver.arg("nobridge") == 'on'
|
||||
self.device.save_param()
|
||||
|
||||
#- and force restart -#
|
||||
@ -766,6 +765,7 @@ class Matter_UI
|
||||
elif webserver.has_arg("save")
|
||||
var matter_enabled_requested = webserver.has_arg("menable")
|
||||
var matter_commissioning_requested = webserver.has_arg("comm")
|
||||
self.device.disable_bridge_mode = webserver.arg("nobridge") == 'on'
|
||||
|
||||
if matter_enabled_requested != self.matter_enabled()
|
||||
if matter_enabled_requested
|
||||
|
@ -2597,17 +2597,17 @@ be_local_closure(Matter_Device_bridge_remove_endpoint, /* name */
|
||||
/* K8 */ be_const_int(2),
|
||||
/* K9 */ be_nested_str_weak(remove),
|
||||
/* K10 */ be_nested_str_weak(plugins_persist),
|
||||
/* K11 */ be_nested_str_weak(save_param),
|
||||
/* K12 */ be_nested_str_weak(signal_endpoints_changed),
|
||||
/* K13 */ be_const_int(0),
|
||||
/* K14 */ be_nested_str_weak(plugins),
|
||||
/* K15 */ be_nested_str_weak(get_endpoint),
|
||||
/* K16 */ be_const_int(1),
|
||||
/* K17 */ be_nested_str_weak(clean_remotes),
|
||||
/* K11 */ be_const_int(0),
|
||||
/* K12 */ be_nested_str_weak(plugins),
|
||||
/* K13 */ be_nested_str_weak(get_endpoint),
|
||||
/* K14 */ be_const_int(1),
|
||||
/* K15 */ be_nested_str_weak(clean_remotes),
|
||||
/* K16 */ be_nested_str_weak(save_param),
|
||||
/* K17 */ be_nested_str_weak(signal_endpoints_changed),
|
||||
}),
|
||||
be_str_weak(bridge_remove_endpoint),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[60]) { /* code */
|
||||
( &(const binstruction[58]) { /* code */
|
||||
0xA40A0000, // 0000 IMPORT R2 K0
|
||||
0x600C0008, // 0001 GETGBL R3 G8
|
||||
0x5C100200, // 0002 MOVE R4 R1
|
||||
@ -2639,35 +2639,33 @@ be_local_closure(Matter_Device_bridge_remove_endpoint, /* name */
|
||||
0x7C180400, // 001C CALL R6 2
|
||||
0x50180200, // 001D LDBOOL R6 1 0
|
||||
0x90021406, // 001E SETMBR R0 K10 R6
|
||||
0x8C18010B, // 001F GETMET R6 R0 K11
|
||||
0x7C180200, // 0020 CALL R6 1
|
||||
0x8C18010C, // 0021 GETMET R6 R0 K12
|
||||
0x7C180200, // 0022 CALL R6 1
|
||||
0x5818000D, // 0023 LDCONST R6 K13
|
||||
0x601C000C, // 0024 GETGBL R7 G12
|
||||
0x8820010E, // 0025 GETMBR R8 R0 K14
|
||||
0x7C1C0200, // 0026 CALL R7 1
|
||||
0x141C0C07, // 0027 LT R7 R6 R7
|
||||
0x781E000F, // 0028 JMPF R7 #0039
|
||||
0x881C010E, // 0029 GETMBR R7 R0 K14
|
||||
0x941C0E06, // 002A GETIDX R7 R7 R6
|
||||
0x8C1C0F0F, // 002B GETMET R7 R7 K15
|
||||
0x7C1C0200, // 002C CALL R7 1
|
||||
0x1C1C0207, // 002D EQ R7 R1 R7
|
||||
0x781E0007, // 002E JMPF R7 #0037
|
||||
0x881C010E, // 002F GETMBR R7 R0 K14
|
||||
0x8C1C0F09, // 0030 GETMET R7 R7 K9
|
||||
0x5C240C00, // 0031 MOVE R9 R6
|
||||
0x7C1C0400, // 0032 CALL R7 2
|
||||
0x8C1C010C, // 0033 GETMET R7 R0 K12
|
||||
0x5818000B, // 001F LDCONST R6 K11
|
||||
0x601C000C, // 0020 GETGBL R7 G12
|
||||
0x8820010C, // 0021 GETMBR R8 R0 K12
|
||||
0x7C1C0200, // 0022 CALL R7 1
|
||||
0x141C0C07, // 0023 LT R7 R6 R7
|
||||
0x781E000D, // 0024 JMPF R7 #0033
|
||||
0x881C010C, // 0025 GETMBR R7 R0 K12
|
||||
0x941C0E06, // 0026 GETIDX R7 R7 R6
|
||||
0x8C1C0F0D, // 0027 GETMET R7 R7 K13
|
||||
0x7C1C0200, // 0028 CALL R7 1
|
||||
0x1C1C0207, // 0029 EQ R7 R1 R7
|
||||
0x781E0005, // 002A JMPF R7 #0031
|
||||
0x881C010C, // 002B GETMBR R7 R0 K12
|
||||
0x8C1C0F09, // 002C GETMET R7 R7 K9
|
||||
0x5C240C00, // 002D MOVE R9 R6
|
||||
0x7C1C0400, // 002E CALL R7 2
|
||||
0x70020002, // 002F JMP #0033
|
||||
0x70020000, // 0030 JMP #0032
|
||||
0x00180D0E, // 0031 ADD R6 R6 K14
|
||||
0x7001FFEC, // 0032 JMP #0020
|
||||
0x8C1C010F, // 0033 GETMET R7 R0 K15
|
||||
0x7C1C0200, // 0034 CALL R7 1
|
||||
0x70020002, // 0035 JMP #0039
|
||||
0x70020000, // 0036 JMP #0038
|
||||
0x00180D10, // 0037 ADD R6 R6 K16
|
||||
0x7001FFEA, // 0038 JMP #0024
|
||||
0x8C1C0111, // 0039 GETMET R7 R0 K17
|
||||
0x7C1C0200, // 003A CALL R7 1
|
||||
0x80000000, // 003B RET 0
|
||||
0x8C1C0110, // 0035 GETMET R7 R0 K16
|
||||
0x7C1C0200, // 0036 CALL R7 1
|
||||
0x8C1C0111, // 0037 GETMET R7 R0 K17
|
||||
0x7C1C0200, // 0038 CALL R7 1
|
||||
0x80000000, // 0039 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -3388,7 +3386,7 @@ be_local_closure(Matter_Device_clean_remotes, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[17]) { /* constants */
|
||||
( &(const bvalue[18]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(introspect),
|
||||
/* K1 */ be_nested_str_weak(http_remotes),
|
||||
/* K2 */ be_const_int(0),
|
||||
@ -3399,20 +3397,21 @@ be_local_closure(Matter_Device_clean_remotes, /* name */
|
||||
/* K7 */ be_nested_str_weak(find),
|
||||
/* K8 */ be_const_int(1),
|
||||
/* K9 */ be_nested_str_weak(keys),
|
||||
/* K10 */ be_nested_str_weak(tasmota),
|
||||
/* K11 */ be_nested_str_weak(log),
|
||||
/* K12 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
|
||||
/* K13 */ be_nested_str_weak(addr),
|
||||
/* K14 */ be_const_int(3),
|
||||
/* K15 */ be_nested_str_weak(close),
|
||||
/* K16 */ be_nested_str_weak(remove),
|
||||
/* K10 */ be_nested_str_weak(push),
|
||||
/* K11 */ be_nested_str_weak(tasmota),
|
||||
/* K12 */ be_nested_str_weak(log),
|
||||
/* K13 */ be_nested_str_weak(MTR_X3A_X20remove_X20unused_X20remote_X3A_X20),
|
||||
/* K14 */ be_nested_str_weak(addr),
|
||||
/* K15 */ be_const_int(3),
|
||||
/* K16 */ be_nested_str_weak(close),
|
||||
/* K17 */ be_nested_str_weak(remove),
|
||||
}),
|
||||
be_str_weak(clean_remotes),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[66]) { /* code */
|
||||
( &(const binstruction[81]) { /* code */
|
||||
0xA4060000, // 0000 IMPORT R1 K0
|
||||
0x88080101, // 0001 GETMBR R2 R0 K1
|
||||
0x780A003D, // 0002 JMPF R2 #0041
|
||||
0x780A004C, // 0002 JMPF R2 #0050
|
||||
0x60080013, // 0003 GETGBL R2 G19
|
||||
0x7C080000, // 0004 CALL R2 0
|
||||
0x600C0010, // 0005 GETGBL R3 G16
|
||||
@ -3449,33 +3448,48 @@ be_local_closure(Matter_Device_clean_remotes, /* name */
|
||||
0x580C0003, // 0024 LDCONST R3 K3
|
||||
0xAC0C0200, // 0025 CATCH R3 1 0
|
||||
0xB0080000, // 0026 RAISE 2 R0 R0
|
||||
0x600C0010, // 0027 GETGBL R3 G16
|
||||
0x8C100509, // 0028 GETMET R4 R2 K9
|
||||
0x7C100200, // 0029 CALL R4 1
|
||||
0x7C0C0200, // 002A CALL R3 1
|
||||
0xA8020011, // 002B EXBLK 0 #003E
|
||||
0x5C100600, // 002C MOVE R4 R3
|
||||
0x7C100000, // 002D CALL R4 0
|
||||
0x94140404, // 002E GETIDX R5 R2 R4
|
||||
0x1C140B02, // 002F EQ R5 R5 K2
|
||||
0x7816000B, // 0030 JMPF R5 #003D
|
||||
0xB8161400, // 0031 GETNGBL R5 K10
|
||||
0x8C140B0B, // 0032 GETMET R5 R5 K11
|
||||
0x881C090D, // 0033 GETMBR R7 R4 K13
|
||||
0x001E1807, // 0034 ADD R7 K12 R7
|
||||
0x5820000E, // 0035 LDCONST R8 K14
|
||||
0x7C140600, // 0036 CALL R5 3
|
||||
0x8C14090F, // 0037 GETMET R5 R4 K15
|
||||
0x7C140200, // 0038 CALL R5 1
|
||||
0x88140101, // 0039 GETMBR R5 R0 K1
|
||||
0x8C140B10, // 003A GETMET R5 R5 K16
|
||||
0x5C1C0800, // 003B MOVE R7 R4
|
||||
0x7C140400, // 003C CALL R5 2
|
||||
0x7001FFED, // 003D JMP #002C
|
||||
0x580C0003, // 003E LDCONST R3 K3
|
||||
0xAC0C0200, // 003F CATCH R3 1 0
|
||||
0xB0080000, // 0040 RAISE 2 R0 R0
|
||||
0x80000000, // 0041 RET 0
|
||||
0x600C0012, // 0027 GETGBL R3 G18
|
||||
0x7C0C0000, // 0028 CALL R3 0
|
||||
0x60100010, // 0029 GETGBL R4 G16
|
||||
0x8C140509, // 002A GETMET R5 R2 K9
|
||||
0x7C140200, // 002B CALL R5 1
|
||||
0x7C100200, // 002C CALL R4 1
|
||||
0xA8020008, // 002D EXBLK 0 #0037
|
||||
0x5C140800, // 002E MOVE R5 R4
|
||||
0x7C140000, // 002F CALL R5 0
|
||||
0x94180405, // 0030 GETIDX R6 R2 R5
|
||||
0x1C180D02, // 0031 EQ R6 R6 K2
|
||||
0x781A0002, // 0032 JMPF R6 #0036
|
||||
0x8C18070A, // 0033 GETMET R6 R3 K10
|
||||
0x5C200A00, // 0034 MOVE R8 R5
|
||||
0x7C180400, // 0035 CALL R6 2
|
||||
0x7001FFF6, // 0036 JMP #002E
|
||||
0x58100003, // 0037 LDCONST R4 K3
|
||||
0xAC100200, // 0038 CATCH R4 1 0
|
||||
0xB0080000, // 0039 RAISE 2 R0 R0
|
||||
0x60100010, // 003A GETGBL R4 G16
|
||||
0x5C140600, // 003B MOVE R5 R3
|
||||
0x7C100200, // 003C CALL R4 1
|
||||
0xA802000E, // 003D EXBLK 0 #004D
|
||||
0x5C140800, // 003E MOVE R5 R4
|
||||
0x7C140000, // 003F CALL R5 0
|
||||
0xB81A1600, // 0040 GETNGBL R6 K11
|
||||
0x8C180D0C, // 0041 GETMET R6 R6 K12
|
||||
0x88200B0E, // 0042 GETMBR R8 R5 K14
|
||||
0x00221A08, // 0043 ADD R8 K13 R8
|
||||
0x5824000F, // 0044 LDCONST R9 K15
|
||||
0x7C180600, // 0045 CALL R6 3
|
||||
0x8C180B10, // 0046 GETMET R6 R5 K16
|
||||
0x7C180200, // 0047 CALL R6 1
|
||||
0x88180101, // 0048 GETMBR R6 R0 K1
|
||||
0x8C180D11, // 0049 GETMET R6 R6 K17
|
||||
0x88200B0E, // 004A GETMBR R8 R5 K14
|
||||
0x7C180400, // 004B CALL R6 2
|
||||
0x7001FFF0, // 004C JMP #003E
|
||||
0x58100003, // 004D LDCONST R4 K3
|
||||
0xAC100200, // 004E CATCH R4 1 0
|
||||
0xB0080000, // 004F RAISE 2 R0 R0
|
||||
0x80000000, // 0050 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -60,7 +60,7 @@ be_local_closure(Matter_HTTP_remote_parse_update, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[27]) { /* constants */
|
||||
( &(const bvalue[28]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(find),
|
||||
/* K2 */ be_nested_str_weak(DeviceName),
|
||||
@ -87,7 +87,8 @@ be_local_closure(Matter_HTTP_remote_parse_update, /* name */
|
||||
/* K23 */ be_nested_str_weak(Mac),
|
||||
/* K24 */ be_nested_str_weak(mac),
|
||||
/* K25 */ be_nested_str_weak(MTR_X3A_X20update_X20_X27_X25s_X27_X20mac_X3D_X27_X25s_X27),
|
||||
/* K26 */ be_nested_str_weak(info_changed),
|
||||
/* K26 */ be_nested_str_weak(UPDATE_CMD5),
|
||||
/* K27 */ be_nested_str_weak(info_changed),
|
||||
}),
|
||||
be_str_weak(parse_update),
|
||||
&be_const_str_solidified,
|
||||
@ -230,11 +231,11 @@ be_local_closure(Matter_HTTP_remote_parse_update, /* name */
|
||||
0x7C140600, // 0087 CALL R5 3
|
||||
0x500C0200, // 0088 LDBOOL R3 1 0
|
||||
0x8C14010C, // 0089 GETMET R5 R0 K12
|
||||
0x881C010D, // 008A GETMBR R7 R0 K13
|
||||
0x881C011A, // 008A GETMBR R7 R0 K26
|
||||
0x8820010E, // 008B GETMBR R8 R0 K14
|
||||
0x7C140600, // 008C CALL R5 3
|
||||
0x780E0001, // 008D JMPF R3 #0090
|
||||
0x8C10011A, // 008E GETMET R4 R0 K26
|
||||
0x8C10011B, // 008E GETMET R4 R0 K27
|
||||
0x7C100200, // 008F CALL R4 1
|
||||
0x80000000, // 0090 RET 0
|
||||
})
|
||||
|
@ -484,7 +484,7 @@ be_local_class(Matter_Plugin_Bridge_Light0,
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(read_attribute, 9), be_const_closure(Matter_Plugin_Bridge_Light0_read_attribute_closure) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Bridge_Light0_invoke_request_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Power_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Power_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(http_light0) },
|
||||
{ be_const_key_weak(shadow_onoff, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(TYPES, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
|
@ -66,7 +66,7 @@ be_local_class(Matter_Plugin_Bridge_OnOff,
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Relay) },
|
||||
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_OnOff_web_values_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(TYPE, 1), be_nested_str_weak(http_relay) },
|
||||
})),
|
||||
be_str_weak(Matter_Plugin_Bridge_OnOff)
|
||||
|
@ -282,7 +282,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor,
|
||||
be_nested_map(22,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(tasmota_sensor_filter, -1), be_const_var(0) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Filter_X20pattern) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Filter_X20pattern) },
|
||||
{ be_const_key_weak(shadow_value, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(pre_value, 10), be_const_closure(Matter_Plugin_Bridge_Sensor_pre_value_closure) },
|
||||
{ be_const_key_weak(ARG_HTTP, -1), be_nested_str_weak(url) },
|
||||
|
@ -338,7 +338,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Contact,
|
||||
be_nested_map(16,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(ARG_TYPE, 5), be_const_static_closure(Matter_Plugin_Bridge_Sensor_Contact__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, 4), be_nested_str_weak(Enter_X20Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, 4), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(shadow_contact, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Contact_init_closure) },
|
||||
{ be_const_key_weak(web_values_prefix, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Contact_web_values_prefix_closure) },
|
||||
|
@ -356,7 +356,7 @@ be_local_class(Matter_Plugin_Bridge_Sensor_Occupancy,
|
||||
be_nested_map(16,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(ARG_TYPE, 4), be_const_static_closure(Matter_Plugin_Bridge_Sensor_Occupancy__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, 14), be_nested_str_weak(Enter_X20Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, 14), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(shadow_occupancy, -1), be_const_var(1) },
|
||||
{ be_const_key_weak(init, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Occupancy_init_closure) },
|
||||
{ be_const_key_weak(web_values, -1), be_const_closure(Matter_Plugin_Bridge_Sensor_Occupancy_web_values_closure) },
|
||||
|
@ -403,7 +403,7 @@ be_local_class(Matter_Plugin_OnOff,
|
||||
{ be_const_key_int(266, -1), be_const_int(2) },
|
||||
})) ) } )) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_OnOff_invoke_request_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(relay) },
|
||||
{ be_const_key_weak(read_attribute, -1), be_const_closure(Matter_Plugin_OnOff_read_attribute_closure) },
|
||||
{ be_const_key_weak(parse_configuration, -1), be_const_closure(Matter_Plugin_OnOff_parse_configuration_closure) },
|
||||
|
@ -879,7 +879,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[87]) { /* constants */
|
||||
( &(const bvalue[88]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(string),
|
||||
/* K1 */ be_nested_str_weak(matter),
|
||||
/* K2 */ be_nested_str_weak(TLV),
|
||||
@ -966,11 +966,12 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
/* K83 */ be_nested_str_weak(_X28),
|
||||
/* K84 */ be_nested_str_weak(locale),
|
||||
/* K85 */ be_nested_str_weak(get_active_endpoints),
|
||||
/* K86 */ be_nested_str_weak(read_attribute),
|
||||
/* K86 */ be_nested_str_weak(disable_bridge_mode),
|
||||
/* K87 */ be_nested_str_weak(read_attribute),
|
||||
}),
|
||||
be_str_weak(read_attribute),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[897]) { /* code */
|
||||
( &(const binstruction[904]) { /* code */
|
||||
0xA40E0000, // 0000 IMPORT R3 K0
|
||||
0xB8120200, // 0001 GETNGBL R4 K1
|
||||
0x88100902, // 0002 GETMBR R4 R4 K2
|
||||
@ -1027,11 +1028,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x50280000, // 0035 LDBOOL R10 0 0
|
||||
0x7C1C0600, // 0036 CALL R7 3
|
||||
0x80040E00, // 0037 RET 1 R7
|
||||
0x70020346, // 0038 JMP #0380
|
||||
0x7002034D, // 0038 JMP #0387
|
||||
0x541E0031, // 0039 LDINT R7 50
|
||||
0x1C1C0A07, // 003A EQ R7 R5 R7
|
||||
0x781E0000, // 003B JMPF R7 #003D
|
||||
0x70020342, // 003C JMP #0380
|
||||
0x70020349, // 003C JMP #0387
|
||||
0x541E0032, // 003D LDINT R7 51
|
||||
0x1C1C0A07, // 003E EQ R7 R5 R7
|
||||
0x781E00DC, // 003F JMPF R7 #011D
|
||||
@ -1255,11 +1256,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x50280000, // 0119 LDBOOL R10 0 0
|
||||
0x7C1C0600, // 011A CALL R7 3
|
||||
0x80040E00, // 011B RET 1 R7
|
||||
0x70020262, // 011C JMP #0380
|
||||
0x70020269, // 011C JMP #0387
|
||||
0x541E0033, // 011D LDINT R7 52
|
||||
0x1C1C0A07, // 011E EQ R7 R5 R7
|
||||
0x781E0000, // 011F JMPF R7 #0121
|
||||
0x7002025E, // 0120 JMP #0380
|
||||
0x70020265, // 0120 JMP #0387
|
||||
0x541E0037, // 0121 LDINT R7 56
|
||||
0x1C1C0A07, // 0122 EQ R7 R5 R7
|
||||
0x781E002C, // 0123 JMPF R7 #0151
|
||||
@ -1307,7 +1308,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x5C2C0E00, // 014D MOVE R11 R7
|
||||
0x7C200600, // 014E CALL R8 3
|
||||
0x80041000, // 014F RET 1 R8
|
||||
0x7002022E, // 0150 JMP #0380
|
||||
0x70020235, // 0150 JMP #0387
|
||||
0x541E003D, // 0151 LDINT R7 62
|
||||
0x1C1C0A07, // 0152 EQ R7 R5 R7
|
||||
0x781E0090, // 0153 JMPF R7 #01E5
|
||||
@ -1455,7 +1456,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x5C2C0E00, // 01E1 MOVE R11 R7
|
||||
0x7C200600, // 01E2 CALL R8 3
|
||||
0x80041000, // 01E3 RET 1 R8
|
||||
0x7002019A, // 01E4 JMP #0380
|
||||
0x700201A1, // 01E4 JMP #0387
|
||||
0x541E003B, // 01E5 LDINT R7 60
|
||||
0x1C1C0A07, // 01E6 EQ R7 R5 R7
|
||||
0x781E003C, // 01E7 JMPF R7 #0225
|
||||
@ -1519,7 +1520,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x4C2C0000, // 0221 LDNIL R11
|
||||
0x7C200600, // 0222 CALL R8 3
|
||||
0x80041000, // 0223 RET 1 R8
|
||||
0x7002015A, // 0224 JMP #0380
|
||||
0x70020161, // 0224 JMP #0387
|
||||
0x541E0027, // 0225 LDINT R7 40
|
||||
0x1C1C0A07, // 0226 EQ R7 R5 R7
|
||||
0x781E00B7, // 0227 JMPF R7 #02E0
|
||||
@ -1706,11 +1707,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x5830000F, // 02DC LDCONST R12 K15
|
||||
0x7C200800, // 02DD CALL R8 4
|
||||
0x80040E00, // 02DE RET 1 R7
|
||||
0x7002009F, // 02DF JMP #0380
|
||||
0x700200A6, // 02DF JMP #0387
|
||||
0x541E003E, // 02E0 LDINT R7 63
|
||||
0x1C1C0A07, // 02E1 EQ R7 R5 R7
|
||||
0x781E0000, // 02E2 JMPF R7 #02E4
|
||||
0x7002009B, // 02E3 JMP #0380
|
||||
0x700200A2, // 02E3 JMP #0387
|
||||
0x541E0029, // 02E4 LDINT R7 42
|
||||
0x1C1C0A07, // 02E5 EQ R7 R5 R7
|
||||
0x781E001D, // 02E6 JMPF R7 #0305
|
||||
@ -1743,7 +1744,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x4C280000, // 0301 LDNIL R10
|
||||
0x7C1C0600, // 0302 CALL R7 3
|
||||
0x80040E00, // 0303 RET 1 R7
|
||||
0x7002007A, // 0304 JMP #0380
|
||||
0x70020081, // 0304 JMP #0387
|
||||
0x541E002A, // 0305 LDINT R7 43
|
||||
0x1C1C0A07, // 0306 EQ R7 R5 R7
|
||||
0x781E0016, // 0307 JMPF R7 #031F
|
||||
@ -1769,7 +1770,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x7C300200, // 031B CALL R12 1
|
||||
0x7C200800, // 031C CALL R8 4
|
||||
0x80040E00, // 031D RET 1 R7
|
||||
0x70020060, // 031E JMP #0380
|
||||
0x70020067, // 031E JMP #0387
|
||||
0x541E002B, // 031F LDINT R7 44
|
||||
0x1C1C0A07, // 0320 EQ R7 R5 R7
|
||||
0x781E001C, // 0321 JMPF R7 #033F
|
||||
@ -1801,7 +1802,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x7C2C0600, // 033B CALL R11 3
|
||||
0x7C200600, // 033C CALL R8 3
|
||||
0x80040E00, // 033D RET 1 R7
|
||||
0x70020040, // 033E JMP #0380
|
||||
0x70020047, // 033E JMP #0387
|
||||
0x541E0030, // 033F LDINT R7 49
|
||||
0x1C1C0A07, // 0340 EQ R7 R5 R7
|
||||
0x781E0010, // 0341 JMPF R7 #0353
|
||||
@ -1821,53 +1822,60 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||
0x542A0003, // 034F LDINT R10 4
|
||||
0x7C1C0600, // 0350 CALL R7 3
|
||||
0x80040E00, // 0351 RET 1 R7
|
||||
0x7002002C, // 0352 JMP #0380
|
||||
0x70020033, // 0352 JMP #0387
|
||||
0x541E001C, // 0353 LDINT R7 29
|
||||
0x1C1C0A07, // 0354 EQ R7 R5 R7
|
||||
0x781E0021, // 0355 JMPF R7 #0378
|
||||
0x781E0028, // 0355 JMPF R7 #037F
|
||||
0x1C1C0D0F, // 0356 EQ R7 R6 K15
|
||||
0x781E0016, // 0357 JMPF R7 #036F
|
||||
0x781E001D, // 0357 JMPF R7 #0376
|
||||
0x8C1C0911, // 0358 GETMET R7 R4 K17
|
||||
0x7C1C0200, // 0359 CALL R7 1
|
||||
0x88200133, // 035A GETMBR R8 R0 K51
|
||||
0x8C201155, // 035B GETMET R8 R8 K85
|
||||
0x50280200, // 035C LDBOOL R10 1 0
|
||||
0x7C200400, // 035D CALL R8 2
|
||||
0x60240010, // 035E GETGBL R9 G16
|
||||
0x5C281000, // 035F MOVE R10 R8
|
||||
0x7C240200, // 0360 CALL R9 1
|
||||
0xA8020007, // 0361 EXBLK 0 #036A
|
||||
0x5C281200, // 0362 MOVE R10 R9
|
||||
0x7C280000, // 0363 CALL R10 0
|
||||
0x8C2C0F0B, // 0364 GETMET R11 R7 K11
|
||||
0x4C340000, // 0365 LDNIL R13
|
||||
0x8838090C, // 0366 GETMBR R14 R4 K12
|
||||
0x5C3C1400, // 0367 MOVE R15 R10
|
||||
0x7C2C0800, // 0368 CALL R11 4
|
||||
0x7001FFF7, // 0369 JMP #0362
|
||||
0x5824003A, // 036A LDCONST R9 K58
|
||||
0xAC240200, // 036B CATCH R9 1 0
|
||||
0xB0080000, // 036C RAISE 2 R0 R0
|
||||
0x80040E00, // 036D RET 1 R7
|
||||
0x70020007, // 036E JMP #0377
|
||||
0x601C0003, // 036F GETGBL R7 G3
|
||||
0x5C200000, // 0370 MOVE R8 R0
|
||||
0x7C1C0200, // 0371 CALL R7 1
|
||||
0x8C1C0F56, // 0372 GETMET R7 R7 K86
|
||||
0x5C240200, // 0373 MOVE R9 R1
|
||||
0x5C280400, // 0374 MOVE R10 R2
|
||||
0x7C1C0600, // 0375 CALL R7 3
|
||||
0x80040E00, // 0376 RET 1 R7
|
||||
0x70020007, // 0377 JMP #0380
|
||||
0x601C0003, // 0378 GETGBL R7 G3
|
||||
0x5C200000, // 0379 MOVE R8 R0
|
||||
0x7C1C0200, // 037A CALL R7 1
|
||||
0x8C1C0F56, // 037B GETMET R7 R7 K86
|
||||
0x5C240200, // 037C MOVE R9 R1
|
||||
0x5C280400, // 037D MOVE R10 R2
|
||||
0x7C1C0600, // 037E CALL R7 3
|
||||
0x80040E00, // 037F RET 1 R7
|
||||
0x80000000, // 0380 RET 0
|
||||
0x88240133, // 035E GETMBR R9 R0 K51
|
||||
0x88241356, // 035F GETMBR R9 R9 K86
|
||||
0x60280010, // 0360 GETGBL R10 G16
|
||||
0x5C2C1000, // 0361 MOVE R11 R8
|
||||
0x7C280200, // 0362 CALL R10 1
|
||||
0xA802000C, // 0363 EXBLK 0 #0371
|
||||
0x5C2C1400, // 0364 MOVE R11 R10
|
||||
0x7C2C0000, // 0365 CALL R11 0
|
||||
0x5C301200, // 0366 MOVE R12 R9
|
||||
0x78320002, // 0367 JMPF R12 #036B
|
||||
0x5432FEFF, // 0368 LDINT R12 65280
|
||||
0x1430160C, // 0369 LT R12 R11 R12
|
||||
0x78320004, // 036A JMPF R12 #0370
|
||||
0x8C300F0B, // 036B GETMET R12 R7 K11
|
||||
0x4C380000, // 036C LDNIL R14
|
||||
0x883C090C, // 036D GETMBR R15 R4 K12
|
||||
0x5C401600, // 036E MOVE R16 R11
|
||||
0x7C300800, // 036F CALL R12 4
|
||||
0x7001FFF2, // 0370 JMP #0364
|
||||
0x5828003A, // 0371 LDCONST R10 K58
|
||||
0xAC280200, // 0372 CATCH R10 1 0
|
||||
0xB0080000, // 0373 RAISE 2 R0 R0
|
||||
0x80040E00, // 0374 RET 1 R7
|
||||
0x70020007, // 0375 JMP #037E
|
||||
0x601C0003, // 0376 GETGBL R7 G3
|
||||
0x5C200000, // 0377 MOVE R8 R0
|
||||
0x7C1C0200, // 0378 CALL R7 1
|
||||
0x8C1C0F57, // 0379 GETMET R7 R7 K87
|
||||
0x5C240200, // 037A MOVE R9 R1
|
||||
0x5C280400, // 037B MOVE R10 R2
|
||||
0x7C1C0600, // 037C CALL R7 3
|
||||
0x80040E00, // 037D RET 1 R7
|
||||
0x70020007, // 037E JMP #0387
|
||||
0x601C0003, // 037F GETGBL R7 G3
|
||||
0x5C200000, // 0380 MOVE R8 R0
|
||||
0x7C1C0200, // 0381 CALL R7 1
|
||||
0x8C1C0F57, // 0382 GETMET R7 R7 K87
|
||||
0x5C240200, // 0383 MOVE R9 R1
|
||||
0x5C280400, // 0384 MOVE R10 R2
|
||||
0x7C1C0600, // 0385 CALL R7 3
|
||||
0x80040E00, // 0386 RET 1 R7
|
||||
0x80000000, // 0387 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
|
@ -162,7 +162,7 @@ be_local_class(Matter_Plugin_Sensor,
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(filter) },
|
||||
{ be_const_key_weak(shadow_value, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(UPDATE_TIME, 7), be_const_int(5000) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Filter_X20pattern) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Filter_X20pattern) },
|
||||
{ be_const_key_weak(parse_sensors, 4), be_const_closure(Matter_Plugin_Sensor_parse_sensors_closure) },
|
||||
{ be_const_key_weak(tasmota_sensor_filter, 8), be_const_var(0) },
|
||||
{ be_const_key_weak(pre_value, -1), be_const_closure(Matter_Plugin_Sensor_pre_value_closure) },
|
||||
|
@ -258,7 +258,7 @@ be_local_class(Matter_Plugin_Sensor_Contact,
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(contact) },
|
||||
{ be_const_key_weak(ARG_TYPE, 5), be_const_static_closure(Matter_Plugin_Sensor_Contact__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
|
||||
{ be_const_key_weak(ARG_HINT, 1), be_nested_str_weak(Enter_X20Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, 1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(NAME, -1), be_nested_str_weak(Contact) },
|
||||
{ be_const_key_weak(parse_configuration, 8), be_const_closure(Matter_Plugin_Sensor_Contact_parse_configuration_closure) },
|
||||
{ be_const_key_weak(update_shadow, -1), be_const_closure(Matter_Plugin_Sensor_Contact_update_shadow_closure) },
|
||||
|
@ -270,7 +270,7 @@ be_local_class(Matter_Plugin_Sensor_Occupancy,
|
||||
{ be_const_key_weak(ARG, -1), be_nested_str_weak(switch) },
|
||||
{ be_const_key_weak(ARG_TYPE, -1), be_const_static_closure(Matter_Plugin_Sensor_Occupancy__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(occupancy) },
|
||||
{ be_const_key_weak(ARG_HINT, 1), be_nested_str_weak(Enter_X20Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, 1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
|
||||
{ be_const_key_weak(parse_configuration, -1), be_const_closure(Matter_Plugin_Sensor_Occupancy_parse_configuration_closure) },
|
||||
{ be_const_key_weak(tasmota_switch_index, -1), be_const_var(0) },
|
||||
|
@ -241,7 +241,7 @@ be_local_class(Matter_Plugin_Sensor_OnOff,
|
||||
be_nested_map(13,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ be_const_key_weak(ARG, 8), be_nested_str_weak(switch) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Switch_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(TYPE, -1), be_nested_str_weak(onoff) },
|
||||
{ be_const_key_weak(ARG_TYPE, 1), be_const_static_closure(Matter_Plugin_Sensor_OnOff__X3Clambda_X3E_closure) },
|
||||
{ be_const_key_weak(UPDATE_TIME, -1), be_const_int(5000) },
|
||||
|
@ -661,7 +661,7 @@ be_local_class(Matter_Plugin_Shutter,
|
||||
{ be_const_key_weak(shadow_shutter_direction, -1), be_const_var(4) },
|
||||
{ be_const_key_weak(shadow_shutter_target, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(invoke_request, -1), be_const_closure(Matter_Plugin_Shutter_invoke_request_closure) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Enter_X20Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(ARG_HINT, -1), be_nested_str_weak(Relay_X3Cx_X3E_X20number) },
|
||||
{ be_const_key_weak(CLUSTERS, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_map, {
|
||||
be_const_map( * be_nested_map(1,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
|
@ -120,86 +120,121 @@ void be_load_Matter_UDPPacket_sent_class(bvm *vm) {
|
||||
extern const bclass be_class_Matter_UDPServer;
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: _backoff_time
|
||||
** Solidified function: received_ack
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer__backoff_time, /* name */
|
||||
be_local_closure(Matter_UDPServer_received_ack, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
4, /* varg */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
1, /* has sup protos */
|
||||
( &(const struct bproto*[ 1]) {
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
2, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
/* K0 */ be_const_int(1),
|
||||
/* K1 */ be_const_int(0),
|
||||
}),
|
||||
be_str_weak(power_int),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x58080000, // 0000 LDCONST R2 K0
|
||||
0x240C0301, // 0001 GT R3 R1 K1
|
||||
0x780E0002, // 0002 JMPF R3 #0006
|
||||
0x08080400, // 0003 MUL R2 R2 R0
|
||||
0x04040300, // 0004 SUB R1 R1 K0
|
||||
0x7001FFFA, // 0005 JMP #0001
|
||||
0x80040400, // 0006 RET 1 R2
|
||||
})
|
||||
),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_const_class(be_class_Matter_UDPServer),
|
||||
/* K1 */ be_nested_str_weak(math),
|
||||
/* K2 */ be_nested_str_weak(rand),
|
||||
/* K3 */ be_const_int(0),
|
||||
/* K4 */ be_const_int(1),
|
||||
/* K5 */ be_const_real_hex(0x3FCCCCCD),
|
||||
/* K6 */ be_const_real_hex(0x3F800000),
|
||||
/* K7 */ be_const_real_hex(0x3E800000),
|
||||
( &(const bvalue[10]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K1 */ be_nested_str_weak(exchange_id),
|
||||
/* K2 */ be_const_int(0),
|
||||
/* K3 */ be_nested_str_weak(packets_sent),
|
||||
/* K4 */ be_nested_str_weak(msg_id),
|
||||
/* K5 */ be_nested_str_weak(remove),
|
||||
/* K6 */ be_nested_str_weak(tasmota),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* 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),
|
||||
}),
|
||||
be_str_weak(_backoff_time),
|
||||
be_str_weak(received_ack),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[29]) { /* code */
|
||||
0x58040000, // 0000 LDCONST R1 K0
|
||||
0x84080000, // 0001 CLOSURE R2 P0
|
||||
0xA40E0200, // 0002 IMPORT R3 K1
|
||||
0x5412012B, // 0003 LDINT R4 300
|
||||
0x6014000A, // 0004 GETGBL R5 G10
|
||||
0x8C180702, // 0005 GETMET R6 R3 K2
|
||||
0x7C180200, // 0006 CALL R6 1
|
||||
0x541E00FE, // 0007 LDINT R7 255
|
||||
0x2C180C07, // 0008 AND R6 R6 R7
|
||||
( &(const binstruction[36]) { /* 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
|
||||
0x58100002, // 0006 LDCONST R4 K2
|
||||
0x6014000C, // 0007 GETGBL R5 G12
|
||||
0x88180103, // 0008 GETMBR R6 R0 K3
|
||||
0x7C140200, // 0009 CALL R5 1
|
||||
0x541A00FE, // 000A LDINT R6 255
|
||||
0x0C140A06, // 000B DIV R5 R5 R6
|
||||
0x24180103, // 000C GT R6 R0 K3
|
||||
0x781A0001, // 000D JMPF R6 #0010
|
||||
0x04180104, // 000E SUB R6 R0 K4
|
||||
0x70020000, // 000F JMP #0011
|
||||
0x58180003, // 0010 LDCONST R6 K3
|
||||
0x5C1C0400, // 0011 MOVE R7 R2
|
||||
0x58200005, // 0012 LDCONST R8 K5
|
||||
0x5C240C00, // 0013 MOVE R9 R6
|
||||
0x7C1C0400, // 0014 CALL R7 2
|
||||
0x081C0807, // 0015 MUL R7 R4 R7
|
||||
0x08200B07, // 0016 MUL R8 R5 K7
|
||||
0x00220C08, // 0017 ADD R8 K6 R8
|
||||
0x081C0E08, // 0018 MUL R7 R7 R8
|
||||
0x60200009, // 0019 GETGBL R8 G9
|
||||
0x5C240E00, // 001A MOVE R9 R7
|
||||
0x7C200200, // 001B CALL R8 1
|
||||
0x80041000, // 001C RET 1 R8
|
||||
0x14140805, // 000A LT R5 R4 R5
|
||||
0x78160016, // 000B JMPF R5 #0023
|
||||
0x88140103, // 000C GETMBR R5 R0 K3
|
||||
0x94140A04, // 000D GETIDX R5 R5 R4
|
||||
0x88180B04, // 000E GETMBR R6 R5 K4
|
||||
0x1C180C02, // 000F EQ R6 R6 R2
|
||||
0x781A000F, // 0010 JMPF R6 #0021
|
||||
0x88180B01, // 0011 GETMBR R6 R5 K1
|
||||
0x1C180C03, // 0012 EQ R6 R6 R3
|
||||
0x781A000C, // 0013 JMPF R6 #0021
|
||||
0x88180103, // 0014 GETMBR R6 R0 K3
|
||||
0x8C180D05, // 0015 GETMET R6 R6 K5
|
||||
0x5C200800, // 0016 MOVE R8 R4
|
||||
0x7C180400, // 0017 CALL R6 2
|
||||
0xB81A0C00, // 0018 GETNGBL R6 K6
|
||||
0x8C180D07, // 0019 GETMET R6 R6 K7
|
||||
0x60200008, // 001A GETGBL R8 G8
|
||||
0x5C240400, // 001B MOVE R9 R2
|
||||
0x7C200200, // 001C CALL R8 1
|
||||
0x00221008, // 001D ADD R8 K8 R8
|
||||
0x54260003, // 001E LDINT R9 4
|
||||
0x7C180600, // 001F CALL R6 3
|
||||
0x70020000, // 0020 JMP #0022
|
||||
0x00100909, // 0021 ADD R4 R4 K9
|
||||
0x7001FFE3, // 0022 JMP #0007
|
||||
0x80000000, // 0023 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: every_50ms
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_every_50ms, /* name */
|
||||
be_nested_proto(
|
||||
3, /* nstack */
|
||||
1, /* 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(loop),
|
||||
}),
|
||||
be_str_weak(every_50ms),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 3]) { /* code */
|
||||
0x8C040100, // 0000 GETMET R1 R0 K0
|
||||
0x7C040200, // 0001 CALL R1 1
|
||||
0x80000000, // 0002 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -311,23 +346,216 @@ be_local_closure(Matter_UDPServer__resend_packets, /* name */
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: every_second
|
||||
** Solidified function: _backoff_time
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_every_second, /* name */
|
||||
be_local_closure(Matter_UDPServer__backoff_time, /* name */
|
||||
be_nested_proto(
|
||||
1, /* nstack */
|
||||
10, /* nstack */
|
||||
1, /* argc */
|
||||
4, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
1, /* has sup protos */
|
||||
( &(const struct bproto*[ 1]) {
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
2, /* argc */
|
||||
0, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 2]) { /* constants */
|
||||
/* K0 */ be_const_int(1),
|
||||
/* K1 */ be_const_int(0),
|
||||
}),
|
||||
be_str_weak(power_int),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 7]) { /* code */
|
||||
0x58080000, // 0000 LDCONST R2 K0
|
||||
0x240C0301, // 0001 GT R3 R1 K1
|
||||
0x780E0002, // 0002 JMPF R3 #0006
|
||||
0x08080400, // 0003 MUL R2 R2 R0
|
||||
0x04040300, // 0004 SUB R1 R1 K0
|
||||
0x7001FFFA, // 0005 JMP #0001
|
||||
0x80040400, // 0006 RET 1 R2
|
||||
})
|
||||
),
|
||||
}),
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 8]) { /* constants */
|
||||
/* K0 */ be_const_class(be_class_Matter_UDPServer),
|
||||
/* K1 */ be_nested_str_weak(math),
|
||||
/* K2 */ be_nested_str_weak(rand),
|
||||
/* K3 */ be_const_int(0),
|
||||
/* K4 */ be_const_int(1),
|
||||
/* K5 */ be_const_real_hex(0x3FCCCCCD),
|
||||
/* K6 */ be_const_real_hex(0x3F800000),
|
||||
/* K7 */ be_const_real_hex(0x3E800000),
|
||||
}),
|
||||
be_str_weak(_backoff_time),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[29]) { /* code */
|
||||
0x58040000, // 0000 LDCONST R1 K0
|
||||
0x84080000, // 0001 CLOSURE R2 P0
|
||||
0xA40E0200, // 0002 IMPORT R3 K1
|
||||
0x5412012B, // 0003 LDINT R4 300
|
||||
0x6014000A, // 0004 GETGBL R5 G10
|
||||
0x8C180702, // 0005 GETMET R6 R3 K2
|
||||
0x7C180200, // 0006 CALL R6 1
|
||||
0x541E00FE, // 0007 LDINT R7 255
|
||||
0x2C180C07, // 0008 AND R6 R6 R7
|
||||
0x7C140200, // 0009 CALL R5 1
|
||||
0x541A00FE, // 000A LDINT R6 255
|
||||
0x0C140A06, // 000B DIV R5 R5 R6
|
||||
0x24180103, // 000C GT R6 R0 K3
|
||||
0x781A0001, // 000D JMPF R6 #0010
|
||||
0x04180104, // 000E SUB R6 R0 K4
|
||||
0x70020000, // 000F JMP #0011
|
||||
0x58180003, // 0010 LDCONST R6 K3
|
||||
0x5C1C0400, // 0011 MOVE R7 R2
|
||||
0x58200005, // 0012 LDCONST R8 K5
|
||||
0x5C240C00, // 0013 MOVE R9 R6
|
||||
0x7C1C0400, // 0014 CALL R7 2
|
||||
0x081C0807, // 0015 MUL R7 R4 R7
|
||||
0x08200B07, // 0016 MUL R8 R5 K7
|
||||
0x00220C08, // 0017 ADD R8 K6 R8
|
||||
0x081C0E08, // 0018 MUL R7 R7 R8
|
||||
0x60200009, // 0019 GETGBL R8 G9
|
||||
0x5C240E00, // 001A MOVE R9 R7
|
||||
0x7C200200, // 001B CALL R8 1
|
||||
0x80041000, // 001C RET 1 R8
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: start
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_start, /* name */
|
||||
be_nested_proto(
|
||||
6, /* 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(every_second),
|
||||
1, /* has constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(listening),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(udp),
|
||||
/* K3 */ be_nested_str_weak(begin),
|
||||
/* K4 */ be_nested_str_weak(addr),
|
||||
/* K5 */ be_nested_str_weak(port),
|
||||
/* K6 */ be_nested_str_weak(network_error),
|
||||
/* K7 */ be_nested_str_weak(could_X20not_X20open_X20UDP_X20server),
|
||||
/* K8 */ be_nested_str_weak(dispatch_cb),
|
||||
/* K9 */ be_nested_str_weak(tasmota),
|
||||
/* K10 */ be_nested_str_weak(add_fast_loop),
|
||||
/* K11 */ be_nested_str_weak(loop_cb),
|
||||
}),
|
||||
be_str_weak(start),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 1]) { /* code */
|
||||
0x80000000, // 0000 RET 0
|
||||
( &(const binstruction[21]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x740A0011, // 0001 JMPT R2 #0014
|
||||
0xB80A0400, // 0002 GETNGBL R2 K2
|
||||
0x7C080000, // 0003 CALL R2 0
|
||||
0x90020202, // 0004 SETMBR R0 K1 R2
|
||||
0x88080101, // 0005 GETMBR R2 R0 K1
|
||||
0x8C080503, // 0006 GETMET R2 R2 K3
|
||||
0x88100104, // 0007 GETMBR R4 R0 K4
|
||||
0x88140105, // 0008 GETMBR R5 R0 K5
|
||||
0x7C080600, // 0009 CALL R2 3
|
||||
0x5C0C0400, // 000A MOVE R3 R2
|
||||
0x740E0000, // 000B JMPT R3 #000D
|
||||
0xB0060D07, // 000C RAISE 1 K6 K7
|
||||
0x500C0200, // 000D LDBOOL R3 1 0
|
||||
0x90020003, // 000E SETMBR R0 K0 R3
|
||||
0x90021001, // 000F SETMBR R0 K8 R1
|
||||
0xB80E1200, // 0010 GETNGBL R3 K9
|
||||
0x8C0C070A, // 0011 GETMET R3 R3 K10
|
||||
0x8814010B, // 0012 GETMBR R5 R0 K11
|
||||
0x7C0C0400, // 0013 CALL R3 2
|
||||
0x80000000, // 0014 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 */
|
||||
1, /* has sup protos */
|
||||
( &(const struct bproto*[ 1]) {
|
||||
be_nested_proto(
|
||||
2, /* nstack */
|
||||
0, /* argc */
|
||||
0, /* varg */
|
||||
1, /* has upvals */
|
||||
( &(const bupvaldesc[ 1]) { /* upvals */
|
||||
be_local_const_upval(1, 0),
|
||||
}),
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 1]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(loop),
|
||||
}),
|
||||
be_str_weak(_anonymous_),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[ 4]) { /* code */
|
||||
0x68000000, // 0000 GETUPV R0 U0
|
||||
0x8C000100, // 0001 GETMET R0 R0 K0
|
||||
0x7C000200, // 0002 CALL R0 1
|
||||
0x80000000, // 0003 RET 0
|
||||
})
|
||||
),
|
||||
}),
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 6]) { /* 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),
|
||||
/* K5 */ be_nested_str_weak(loop_cb),
|
||||
}),
|
||||
be_str_weak(init),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[19]) { /* 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
|
||||
0x840C0000, // 000F CLOSURE R3 P0
|
||||
0x90020A03, // 0010 SETMBR R0 K5 R3
|
||||
0xA0000000, // 0011 CLOSE R0
|
||||
0x80000000, // 0012 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
@ -378,300 +606,6 @@ be_local_closure(Matter_UDPServer_send_UDP, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: every_50ms
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_every_50ms, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(read),
|
||||
/* K3 */ be_const_int(1),
|
||||
/* K4 */ be_nested_str_weak(remote_ip),
|
||||
/* K5 */ be_nested_str_weak(remote_port),
|
||||
/* K6 */ be_nested_str_weak(tasmota),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(MTR_X3A_X20UDP_X20received_X20from_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K9 */ be_nested_str_weak(dispatch_cb),
|
||||
/* K10 */ be_nested_str_weak(MAX_PACKETS_READ),
|
||||
/* K11 */ be_nested_str_weak(_resend_packets),
|
||||
}),
|
||||
be_str_weak(every_50ms),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[46]) { /* code */
|
||||
0x58040000, // 0000 LDCONST R1 K0
|
||||
0x88080101, // 0001 GETMBR R2 R0 K1
|
||||
0x4C0C0000, // 0002 LDNIL R3
|
||||
0x1C080403, // 0003 EQ R2 R2 R3
|
||||
0x780A0000, // 0004 JMPF R2 #0006
|
||||
0x80000400, // 0005 RET 0
|
||||
0x88080101, // 0006 GETMBR R2 R0 K1
|
||||
0x8C080502, // 0007 GETMET R2 R2 K2
|
||||
0x7C080200, // 0008 CALL R2 1
|
||||
0x4C0C0000, // 0009 LDNIL R3
|
||||
0x200C0403, // 000A NE R3 R2 R3
|
||||
0x780E001E, // 000B JMPF R3 #002B
|
||||
0x00040303, // 000C ADD R1 R1 K3
|
||||
0x880C0101, // 000D GETMBR R3 R0 K1
|
||||
0x880C0704, // 000E GETMBR R3 R3 K4
|
||||
0x88100101, // 000F GETMBR R4 R0 K1
|
||||
0x88100905, // 0010 GETMBR R4 R4 K5
|
||||
0xB8160C00, // 0011 GETNGBL R5 K6
|
||||
0x8C140B07, // 0012 GETMET R5 R5 K7
|
||||
0x601C0018, // 0013 GETGBL R7 G24
|
||||
0x58200008, // 0014 LDCONST R8 K8
|
||||
0x5C240600, // 0015 MOVE R9 R3
|
||||
0x5C280800, // 0016 MOVE R10 R4
|
||||
0x7C1C0600, // 0017 CALL R7 3
|
||||
0x54220003, // 0018 LDINT R8 4
|
||||
0x7C140600, // 0019 CALL R5 3
|
||||
0x88140109, // 001A GETMBR R5 R0 K9
|
||||
0x78160004, // 001B JMPF R5 #0021
|
||||
0x8C140109, // 001C GETMET R5 R0 K9
|
||||
0x5C1C0400, // 001D MOVE R7 R2
|
||||
0x5C200600, // 001E MOVE R8 R3
|
||||
0x5C240800, // 001F MOVE R9 R4
|
||||
0x7C140800, // 0020 CALL R5 4
|
||||
0x8814010A, // 0021 GETMBR R5 R0 K10
|
||||
0x14140205, // 0022 LT R5 R1 R5
|
||||
0x78160004, // 0023 JMPF R5 #0029
|
||||
0x88140101, // 0024 GETMBR R5 R0 K1
|
||||
0x8C140B02, // 0025 GETMET R5 R5 K2
|
||||
0x7C140200, // 0026 CALL R5 1
|
||||
0x5C080A00, // 0027 MOVE R2 R5
|
||||
0x70020000, // 0028 JMP #002A
|
||||
0x4C080000, // 0029 LDNIL R2
|
||||
0x7001FFDD, // 002A JMP #0009
|
||||
0x8C0C010B, // 002B GETMET R3 R0 K11
|
||||
0x7C0C0200, // 002C CALL R3 1
|
||||
0x80000000, // 002D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: stop
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_stop, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
1, /* 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(listening),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(stop),
|
||||
/* K3 */ be_nested_str_weak(tasmota),
|
||||
/* K4 */ be_nested_str_weak(remove_driver),
|
||||
}),
|
||||
be_str_weak(stop),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x78060008, // 0001 JMPF R1 #000B
|
||||
0x88040101, // 0002 GETMBR R1 R0 K1
|
||||
0x8C040302, // 0003 GETMET R1 R1 K2
|
||||
0x7C040200, // 0004 CALL R1 1
|
||||
0x50040000, // 0005 LDBOOL R1 0 0
|
||||
0x90020001, // 0006 SETMBR R0 K0 R1
|
||||
0xB8060600, // 0007 GETNGBL R1 K3
|
||||
0x8C040304, // 0008 GETMET R1 R1 K4
|
||||
0x5C0C0000, // 0009 MOVE R3 R0
|
||||
0x7C040400, // 000A CALL R1 2
|
||||
0x80000000, // 000B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: start
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_start, /* name */
|
||||
be_nested_proto(
|
||||
6, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[11]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(listening),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(udp),
|
||||
/* K3 */ be_nested_str_weak(begin),
|
||||
/* K4 */ be_nested_str_weak(addr),
|
||||
/* K5 */ be_nested_str_weak(port),
|
||||
/* K6 */ be_nested_str_weak(network_error),
|
||||
/* K7 */ be_nested_str_weak(could_X20not_X20open_X20UDP_X20server),
|
||||
/* K8 */ be_nested_str_weak(dispatch_cb),
|
||||
/* K9 */ be_nested_str_weak(tasmota),
|
||||
/* K10 */ be_nested_str_weak(add_driver),
|
||||
}),
|
||||
be_str_weak(start),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[21]) { /* code */
|
||||
0x88080100, // 0000 GETMBR R2 R0 K0
|
||||
0x740A0011, // 0001 JMPT R2 #0014
|
||||
0xB80A0400, // 0002 GETNGBL R2 K2
|
||||
0x7C080000, // 0003 CALL R2 0
|
||||
0x90020202, // 0004 SETMBR R0 K1 R2
|
||||
0x88080101, // 0005 GETMBR R2 R0 K1
|
||||
0x8C080503, // 0006 GETMET R2 R2 K3
|
||||
0x88100104, // 0007 GETMBR R4 R0 K4
|
||||
0x88140105, // 0008 GETMBR R5 R0 K5
|
||||
0x7C080600, // 0009 CALL R2 3
|
||||
0x5C0C0400, // 000A MOVE R3 R2
|
||||
0x740E0000, // 000B JMPT R3 #000D
|
||||
0xB0060D07, // 000C RAISE 1 K6 K7
|
||||
0x500C0200, // 000D LDBOOL R3 1 0
|
||||
0x90020003, // 000E SETMBR R0 K0 R3
|
||||
0x90021001, // 000F SETMBR R0 K8 R1
|
||||
0xB80E1200, // 0010 GETNGBL R3 K9
|
||||
0x8C0C070A, // 0011 GETMET R3 R3 K10
|
||||
0x5C140000, // 0012 MOVE R5 R0
|
||||
0x7C0C0400, // 0013 CALL R3 2
|
||||
0x80000000, // 0014 RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: received_ack
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_received_ack, /* name */
|
||||
be_nested_proto(
|
||||
10, /* nstack */
|
||||
2, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[10]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(ack_message_counter),
|
||||
/* K1 */ be_nested_str_weak(exchange_id),
|
||||
/* K2 */ be_const_int(0),
|
||||
/* K3 */ be_nested_str_weak(packets_sent),
|
||||
/* K4 */ be_nested_str_weak(msg_id),
|
||||
/* K5 */ be_nested_str_weak(remove),
|
||||
/* K6 */ be_nested_str_weak(tasmota),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* 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),
|
||||
}),
|
||||
be_str_weak(received_ack),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[36]) { /* 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
|
||||
0x58100002, // 0006 LDCONST R4 K2
|
||||
0x6014000C, // 0007 GETGBL R5 G12
|
||||
0x88180103, // 0008 GETMBR R6 R0 K3
|
||||
0x7C140200, // 0009 CALL R5 1
|
||||
0x14140805, // 000A LT R5 R4 R5
|
||||
0x78160016, // 000B JMPF R5 #0023
|
||||
0x88140103, // 000C GETMBR R5 R0 K3
|
||||
0x94140A04, // 000D GETIDX R5 R5 R4
|
||||
0x88180B04, // 000E GETMBR R6 R5 K4
|
||||
0x1C180C02, // 000F EQ R6 R6 R2
|
||||
0x781A000F, // 0010 JMPF R6 #0021
|
||||
0x88180B01, // 0011 GETMBR R6 R5 K1
|
||||
0x1C180C03, // 0012 EQ R6 R6 R3
|
||||
0x781A000C, // 0013 JMPF R6 #0021
|
||||
0x88180103, // 0014 GETMBR R6 R0 K3
|
||||
0x8C180D05, // 0015 GETMET R6 R6 K5
|
||||
0x5C200800, // 0016 MOVE R8 R4
|
||||
0x7C180400, // 0017 CALL R6 2
|
||||
0xB81A0C00, // 0018 GETNGBL R6 K6
|
||||
0x8C180D07, // 0019 GETMET R6 R6 K7
|
||||
0x60200008, // 001A GETGBL R8 G8
|
||||
0x5C240400, // 001B MOVE R9 R2
|
||||
0x7C200200, // 001C CALL R8 1
|
||||
0x00221008, // 001D ADD R8 K8 R8
|
||||
0x54260003, // 001E LDINT R9 4
|
||||
0x7C180600, // 001F CALL R6 3
|
||||
0x70020000, // 0020 JMP #0022
|
||||
0x00100909, // 0021 ADD R4 R4 K9
|
||||
0x7001FFE3, // 0022 JMP #0007
|
||||
0x80000000, // 0023 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
|
||||
********************************************************************/
|
||||
@ -745,32 +679,158 @@ be_local_closure(Matter_UDPServer_send, /* name */
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: stop
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_stop, /* name */
|
||||
be_nested_proto(
|
||||
4, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[ 6]) { /* constants */
|
||||
/* K0 */ be_nested_str_weak(listening),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(stop),
|
||||
/* K3 */ be_nested_str_weak(tasmota),
|
||||
/* K4 */ be_nested_str_weak(remove_fast_loop),
|
||||
/* K5 */ be_nested_str_weak(loop_cb),
|
||||
}),
|
||||
be_str_weak(stop),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[12]) { /* code */
|
||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||
0x78060008, // 0001 JMPF R1 #000B
|
||||
0x88040101, // 0002 GETMBR R1 R0 K1
|
||||
0x8C040302, // 0003 GETMET R1 R1 K2
|
||||
0x7C040200, // 0004 CALL R1 1
|
||||
0x50040000, // 0005 LDBOOL R1 0 0
|
||||
0x90020001, // 0006 SETMBR R0 K0 R1
|
||||
0xB8060600, // 0007 GETNGBL R1 K3
|
||||
0x8C040304, // 0008 GETMET R1 R1 K4
|
||||
0x880C0105, // 0009 GETMBR R3 R0 K5
|
||||
0x7C040400, // 000A CALL R1 2
|
||||
0x80000000, // 000B RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified function: loop
|
||||
********************************************************************/
|
||||
be_local_closure(Matter_UDPServer_loop, /* name */
|
||||
be_nested_proto(
|
||||
11, /* nstack */
|
||||
1, /* argc */
|
||||
2, /* varg */
|
||||
0, /* has upvals */
|
||||
NULL, /* no upvals */
|
||||
0, /* has sup protos */
|
||||
NULL, /* no sub protos */
|
||||
1, /* has constants */
|
||||
( &(const bvalue[12]) { /* constants */
|
||||
/* K0 */ be_const_int(0),
|
||||
/* K1 */ be_nested_str_weak(udp_socket),
|
||||
/* K2 */ be_nested_str_weak(read),
|
||||
/* K3 */ be_const_int(1),
|
||||
/* K4 */ be_nested_str_weak(remote_ip),
|
||||
/* K5 */ be_nested_str_weak(remote_port),
|
||||
/* K6 */ be_nested_str_weak(tasmota),
|
||||
/* K7 */ be_nested_str_weak(log),
|
||||
/* K8 */ be_nested_str_weak(MTR_X3A_X20UDP_X20received_X20from_X20_X5B_X25s_X5D_X3A_X25i),
|
||||
/* K9 */ be_nested_str_weak(dispatch_cb),
|
||||
/* K10 */ be_nested_str_weak(MAX_PACKETS_READ),
|
||||
/* K11 */ be_nested_str_weak(_resend_packets),
|
||||
}),
|
||||
be_str_weak(loop),
|
||||
&be_const_str_solidified,
|
||||
( &(const binstruction[46]) { /* code */
|
||||
0x58040000, // 0000 LDCONST R1 K0
|
||||
0x88080101, // 0001 GETMBR R2 R0 K1
|
||||
0x4C0C0000, // 0002 LDNIL R3
|
||||
0x1C080403, // 0003 EQ R2 R2 R3
|
||||
0x780A0000, // 0004 JMPF R2 #0006
|
||||
0x80000400, // 0005 RET 0
|
||||
0x88080101, // 0006 GETMBR R2 R0 K1
|
||||
0x8C080502, // 0007 GETMET R2 R2 K2
|
||||
0x7C080200, // 0008 CALL R2 1
|
||||
0x4C0C0000, // 0009 LDNIL R3
|
||||
0x200C0403, // 000A NE R3 R2 R3
|
||||
0x780E001E, // 000B JMPF R3 #002B
|
||||
0x00040303, // 000C ADD R1 R1 K3
|
||||
0x880C0101, // 000D GETMBR R3 R0 K1
|
||||
0x880C0704, // 000E GETMBR R3 R3 K4
|
||||
0x88100101, // 000F GETMBR R4 R0 K1
|
||||
0x88100905, // 0010 GETMBR R4 R4 K5
|
||||
0xB8160C00, // 0011 GETNGBL R5 K6
|
||||
0x8C140B07, // 0012 GETMET R5 R5 K7
|
||||
0x601C0018, // 0013 GETGBL R7 G24
|
||||
0x58200008, // 0014 LDCONST R8 K8
|
||||
0x5C240600, // 0015 MOVE R9 R3
|
||||
0x5C280800, // 0016 MOVE R10 R4
|
||||
0x7C1C0600, // 0017 CALL R7 3
|
||||
0x54220003, // 0018 LDINT R8 4
|
||||
0x7C140600, // 0019 CALL R5 3
|
||||
0x88140109, // 001A GETMBR R5 R0 K9
|
||||
0x78160004, // 001B JMPF R5 #0021
|
||||
0x8C140109, // 001C GETMET R5 R0 K9
|
||||
0x5C1C0400, // 001D MOVE R7 R2
|
||||
0x5C200600, // 001E MOVE R8 R3
|
||||
0x5C240800, // 001F MOVE R9 R4
|
||||
0x7C140800, // 0020 CALL R5 4
|
||||
0x8814010A, // 0021 GETMBR R5 R0 K10
|
||||
0x14140205, // 0022 LT R5 R1 R5
|
||||
0x78160004, // 0023 JMPF R5 #0029
|
||||
0x88140101, // 0024 GETMBR R5 R0 K1
|
||||
0x8C140B02, // 0025 GETMET R5 R5 K2
|
||||
0x7C140200, // 0026 CALL R5 1
|
||||
0x5C080A00, // 0027 MOVE R2 R5
|
||||
0x70020000, // 0028 JMP #002A
|
||||
0x4C080000, // 0029 LDNIL R2
|
||||
0x7001FFDD, // 002A JMP #0009
|
||||
0x8C0C010B, // 002B GETMET R3 R0 K11
|
||||
0x7C0C0200, // 002C CALL R3 1
|
||||
0x80000000, // 002D RET 0
|
||||
})
|
||||
)
|
||||
);
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
/********************************************************************
|
||||
** Solidified class: Matter_UDPServer
|
||||
********************************************************************/
|
||||
be_local_class(Matter_UDPServer,
|
||||
6,
|
||||
7,
|
||||
NULL,
|
||||
be_nested_map(18,
|
||||
be_nested_map(20,
|
||||
( (struct bmapnode*) &(const bmapnode[]) {
|
||||
{ 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(addr, -1), be_const_var(0) },
|
||||
{ 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(udp_socket, -1), be_const_var(3) },
|
||||
{ be_const_key_weak(packets_sent, -1), be_const_var(5) },
|
||||
{ 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(dispatch_cb, 0), be_const_var(4) },
|
||||
{ be_const_key_weak(send, -1), be_const_closure(Matter_UDPServer_send_closure) },
|
||||
{ be_const_key_weak(send_UDP, 13), be_const_closure(Matter_UDPServer_send_UDP_closure) },
|
||||
{ be_const_key_weak(every_50ms, 12), be_const_closure(Matter_UDPServer_every_50ms_closure) },
|
||||
{ be_const_key_weak(loop_cb, 3), be_const_var(6) },
|
||||
{ be_const_key_weak(port, 16), be_const_var(1) },
|
||||
{ be_const_key_weak(start, 6), be_const_closure(Matter_UDPServer_start_closure) },
|
||||
{ be_const_key_weak(MAX_PACKETS_READ, 2), 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(listening, -1), be_const_var(2) },
|
||||
{ be_const_key_weak(_resend_packets, 7), be_const_closure(Matter_UDPServer__resend_packets_closure) },
|
||||
{ be_const_key_weak(_backoff_time, -1), be_const_static_closure(Matter_UDPServer__backoff_time_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(loop, -1), be_const_closure(Matter_UDPServer_loop_closure) },
|
||||
})),
|
||||
be_str_weak(Matter_UDPServer)
|
||||
);
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user