mirror of https://github.com/arendst/Tasmota.git
Matter display the remote Device Name instead of IP address (#18960)
This commit is contained in:
parent
81ded35a2c
commit
89a815f196
|
@ -14,6 +14,7 @@ All notable changes to this project will be documented in this file.
|
||||||
- Matter add friendly-name (NodeLabel) to each endpoint
|
- Matter add friendly-name (NodeLabel) to each endpoint
|
||||||
- Berry add global function `format` as a simpler syntax to `string.format`
|
- Berry add global function `format` as a simpler syntax to `string.format`
|
||||||
- Berry added f-strings as an alternative to string formatting
|
- Berry added f-strings as an alternative to string formatting
|
||||||
|
- Matter display the remote Device Name instead of IP address
|
||||||
|
|
||||||
### Breaking Changed
|
### Breaking Changed
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ class Matter_Device
|
||||||
var plugins_persist # true if plugins configuration needs to be saved
|
var plugins_persist # true if plugins configuration needs to be saved
|
||||||
var plugins_classes # map of registered classes by type name
|
var plugins_classes # map of registered classes by type name
|
||||||
var plugins_config # map of JSON configuration for plugins
|
var plugins_config # map of JSON configuration for plugins
|
||||||
|
var plugins_config_remotes # map of information on each remote under "remotes" key, '{}' when empty
|
||||||
var udp_server # `matter.UDPServer()` object
|
var udp_server # `matter.UDPServer()` object
|
||||||
var message_handler # `matter.MessageHandler()` object
|
var message_handler # `matter.MessageHandler()` object
|
||||||
var sessions # `matter.Session_Store()` objet
|
var sessions # `matter.Session_Store()` objet
|
||||||
|
@ -57,7 +58,7 @@ class Matter_Device
|
||||||
var mdns_pase_eth # do we have an active PASE mDNS announce for eth
|
var mdns_pase_eth # do we have an active PASE mDNS announce for eth
|
||||||
var mdns_pase_wifi # do we have an active PASE mDNS announce for wifi
|
var mdns_pase_wifi # do we have an active PASE mDNS announce for wifi
|
||||||
# for brige mode, list of HTTP_remote objects (only one instance per remote object)
|
# for brige mode, list of HTTP_remote objects (only one instance per remote object)
|
||||||
var http_remotes # map of 'domain:port' or `nil` if no bridge
|
var http_remotes # map of 'domain:port' to `Matter_HTTP_remote` instance or `nil` if no bridges
|
||||||
# saved in parameters
|
# saved in parameters
|
||||||
var root_discriminator # as `int`
|
var root_discriminator # as `int`
|
||||||
var root_passcode # as `int`
|
var root_passcode # as `int`
|
||||||
|
@ -83,6 +84,7 @@ class Matter_Device
|
||||||
self.plugins = []
|
self.plugins = []
|
||||||
self.plugins_persist = false # plugins need to saved only when the first fabric is associated
|
self.plugins_persist = false # plugins need to saved only when the first fabric is associated
|
||||||
self.plugins_classes = {}
|
self.plugins_classes = {}
|
||||||
|
self.plugins_config_remotes = {}
|
||||||
self.register_native_classes() # register all native classes
|
self.register_native_classes() # register all native classes
|
||||||
self.vendorid = self.VENDOR_ID
|
self.vendorid = self.VENDOR_ID
|
||||||
self.productid = self.PRODUCT_ID
|
self.productid = self.PRODUCT_ID
|
||||||
|
@ -624,10 +626,16 @@ class Matter_Device
|
||||||
#
|
#
|
||||||
def save_param()
|
def save_param()
|
||||||
import json
|
import json
|
||||||
|
self.update_remotes_info() # update self.plugins_config_remotes
|
||||||
|
|
||||||
var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.next_ep)
|
var j = format('{"distinguish":%i,"passcode":%i,"ipv4only":%s,"nextep":%i', self.root_discriminator, self.root_passcode, self.ipv4only ? 'true':'false', self.next_ep)
|
||||||
if self.plugins_persist
|
if self.plugins_persist
|
||||||
j += ',"config":'
|
j += ',"config":'
|
||||||
j += json.dump(self.plugins_config)
|
j += json.dump(self.plugins_config)
|
||||||
|
if size(self.plugins_config_remotes) > 0
|
||||||
|
j += ',"remotes":'
|
||||||
|
j += json.dump(self.plugins_config_remotes)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
j += '}'
|
j += '}'
|
||||||
try
|
try
|
||||||
|
@ -642,6 +650,34 @@ class Matter_Device
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Get remote info by url
|
||||||
|
#
|
||||||
|
# Return a map, potentially empty
|
||||||
|
def get_plugin_remote_info(url)
|
||||||
|
return self.plugins_config_remotes.find(url, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# update back all remote information from actual remotes
|
||||||
|
#
|
||||||
|
# returns a map or `nil` if no information
|
||||||
|
# also stores in `self.plugins_config_remotes`
|
||||||
|
def update_remotes_info()
|
||||||
|
var ret = {}
|
||||||
|
if self.http_remotes != nil
|
||||||
|
for url:self.http_remotes.keys()
|
||||||
|
var info = self.http_remotes[url].get_info()
|
||||||
|
if info != nil && size(info) > 0
|
||||||
|
ret[url] = info
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
self.plugins_config_remotes = ret
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
# Load Matter Device parameters
|
# Load Matter Device parameters
|
||||||
def load_param()
|
def load_param()
|
||||||
|
@ -664,6 +700,10 @@ class Matter_Device
|
||||||
self.adjust_next_ep()
|
self.adjust_next_ep()
|
||||||
self.plugins_persist = true
|
self.plugins_persist = true
|
||||||
end
|
end
|
||||||
|
self.plugins_config_remotes = j.find("remotes", {})
|
||||||
|
if self.plugins_config_remotes
|
||||||
|
tasmota.log("MTR: load_remotes = " + str(self.plugins_config_remotes), 3)
|
||||||
|
end
|
||||||
except .. as e, m
|
except .. as e, m
|
||||||
if e != "io_error"
|
if e != "io_error"
|
||||||
tasmota.log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2)
|
tasmota.log("MTR: Session_Store::load Exception:" + str(e) + "|" + str(m), 2)
|
||||||
|
@ -1011,6 +1051,7 @@ class Matter_Device
|
||||||
|
|
||||||
if !self.plugins_persist
|
if !self.plugins_persist
|
||||||
self.plugins_config = self.autoconf_device_map()
|
self.plugins_config = self.autoconf_device_map()
|
||||||
|
self.plugins_config_remotes = {}
|
||||||
self.adjust_next_ep()
|
self.adjust_next_ep()
|
||||||
tasmota.log("MTR: autoconfig = " + str(self.plugins_config), 3)
|
tasmota.log("MTR: autoconfig = " + str(self.plugins_config), 3)
|
||||||
end
|
end
|
||||||
|
@ -1210,7 +1251,7 @@ class Matter_Device
|
||||||
self.register_plugin_class(v)
|
self.register_plugin_class(v)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
tasmota.log("MTR: registered classes "+str(self.k2l(self.plugins_classes)), 3)
|
# tasmota.log("MTR: registered classes "+str(self.k2l(self.plugins_classes)), 3)
|
||||||
end
|
end
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
|
@ -1357,7 +1398,10 @@ class Matter_Device
|
||||||
http_remote.set_timeout(timeout) # reduce timeout if new value is shorter
|
http_remote.set_timeout(timeout) # reduce timeout if new value is shorter
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
http_remote = matter.HTTP_remote(addr, timeout)
|
http_remote = matter.HTTP_remote(self, addr, timeout)
|
||||||
|
if self.plugins_config_remotes.contains(addr)
|
||||||
|
http_remote.set_info(self.plugins_config_remotes[addr])
|
||||||
|
end
|
||||||
self.http_remotes[addr] = http_remote
|
self.http_remotes[addr] = http_remote
|
||||||
end
|
end
|
||||||
return http_remote
|
return http_remote
|
||||||
|
|
|
@ -201,12 +201,14 @@ class Matter_HTTP_async : Matter_TCP_async
|
||||||
self.chunk_size = int('0x'+m[1])
|
self.chunk_size = int('0x'+m[1])
|
||||||
# if chunk size is zero, finished
|
# if chunk size is zero, finished
|
||||||
if self.chunk_size == 0
|
if self.chunk_size == 0
|
||||||
self.close()
|
|
||||||
self.status = 2 # finished
|
self.status = 2 # finished
|
||||||
self.response = '' # free space
|
self.response = '' # free space
|
||||||
self.response_offset = 0
|
self.response_offset = 0
|
||||||
self.http_status = 1 # ok
|
self.close()
|
||||||
self.event_http_finished()
|
# if self.http_status == 0 # this is now handled by the close event
|
||||||
|
# self.http_status = 1
|
||||||
|
# self.event_http_finished()
|
||||||
|
# end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,6 +38,7 @@ class Matter_HTTP_async end
|
||||||
# we only send every 2 seconds and dispatch results to all plugins.
|
# we only send every 2 seconds and dispatch results to all plugins.
|
||||||
|
|
||||||
class Matter_HTTP_remote : Matter_HTTP_async
|
class Matter_HTTP_remote : Matter_HTTP_async
|
||||||
|
var device # reference to matter_device
|
||||||
var probe_update_time_map # number of milliseconds to wait for each async command (map)
|
var probe_update_time_map # number of milliseconds to wait for each async command (map)
|
||||||
var probe_next_timestamp_map # timestamp for last probe (in millis()) for each `Status <x>`
|
var probe_next_timestamp_map # timestamp for last probe (in millis()) for each `Status <x>`
|
||||||
# if timestamp is `0`, this should be scheduled in priority
|
# if timestamp is `0`, this should be scheduled in priority
|
||||||
|
@ -49,16 +50,137 @@ class Matter_HTTP_remote : Matter_HTTP_async
|
||||||
var reachable # is the device reachable
|
var reachable # is the device reachable
|
||||||
var reachable_utc # last tick when the reachability was seen (avoids sending superfluous ping commands)
|
var reachable_utc # last tick when the reachability was seen (avoids sending superfluous ping commands)
|
||||||
|
|
||||||
|
# information gathered about the remote device (name, version...)
|
||||||
|
static var UPDATE_TIME = 5000 # update every 5s until first response
|
||||||
|
static var UPDATE_TIME2 = 300000 # then update every 5 minutes
|
||||||
|
static var UPDATE_CMD0 = "Status" # command to send for updates
|
||||||
|
static var UPDATE_CMD2 = "Status 2" # command to send for updates
|
||||||
|
static var UPDATE_CMD5 = "Status 5" # command to send for updates
|
||||||
|
var info # as a map
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
# init
|
# init
|
||||||
def init(addr, timeout, fastloop)
|
def init(device, addr, timeout, fastloop)
|
||||||
|
self.device = device # if device is null, it's a temporary object not linked to a device
|
||||||
self.probe_update_time_map = {}
|
self.probe_update_time_map = {}
|
||||||
self.probe_next_timestamp_map = {}
|
self.probe_next_timestamp_map = {}
|
||||||
self.async_cb_map = {}
|
self.async_cb_map = {}
|
||||||
self.current_cmd = nil
|
self.current_cmd = nil
|
||||||
self.reachable = false # force a valid bool value
|
self.reachable = false # force a valid bool value
|
||||||
super(self).init(addr, 80, timeout, fastloop)
|
super(self).init(addr, 80, timeout, fastloop)
|
||||||
|
|
||||||
|
# set up some reading information about the device
|
||||||
|
self.info = {}
|
||||||
|
if self.device
|
||||||
|
# we need different callbacks per command (don't create a single one for both calls)
|
||||||
|
self.add_schedule(self.UPDATE_CMD0, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
|
||||||
|
self.add_schedule(self.UPDATE_CMD2, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
|
||||||
|
self.add_schedule(self.UPDATE_CMD5, self.UPDATE_TIME, / status,payload,cmd -> self.parse_status_response(status,payload,cmd))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# get/set remote_info map
|
||||||
|
def get_info() return self.info end
|
||||||
|
def set_info(v) self.info = v end
|
||||||
|
def info_changed() self.device.save_param() end # send a signal to global device that remote information changed
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# parse response for `Status` and `Status 2`
|
||||||
|
def parse_status_response(status, payload, cmd)
|
||||||
|
if status != nil && status > 0
|
||||||
|
# device is known to be reachable
|
||||||
|
self.device_is_alive(true)
|
||||||
|
|
||||||
|
import json
|
||||||
|
var j = json.load(payload)
|
||||||
|
var code = nil # index of Status
|
||||||
|
if j
|
||||||
|
# filter
|
||||||
|
if j.contains("Status") # Status 0 (actually `Status` wihtout any number)
|
||||||
|
j = j["Status"]
|
||||||
|
code = 0
|
||||||
|
elif j.contains("StatusFWR") # Status 2
|
||||||
|
j = j["StatusFWR"]
|
||||||
|
code = 2
|
||||||
|
elif j.contains("StatusNET") # Status 5
|
||||||
|
j = j["StatusNET"]
|
||||||
|
code = 5
|
||||||
|
end
|
||||||
|
# convert to shadow values
|
||||||
|
self.parse_update(j, code) # call parser
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Stub for updating shadow values (local copies of what we published to the Matter gateway)
|
||||||
|
#
|
||||||
|
# This call is synnchronous and blocking.
|
||||||
|
def parse_update(data, index)
|
||||||
|
var changed = false
|
||||||
|
if index == 0 # Status
|
||||||
|
var device_name = data.find("DeviceName") # we consider 'Tasmota' as the non-information default
|
||||||
|
if device_name == "Tasmota" device_name = nil end
|
||||||
|
|
||||||
|
# did the value changed?
|
||||||
|
if self.info.find('name') != device_name
|
||||||
|
if device_name != nil
|
||||||
|
self.info['name'] = device_name
|
||||||
|
else
|
||||||
|
self.info.remove("name")
|
||||||
|
end
|
||||||
|
tasmota.log(f"MTR: update '{self.addr}' name='{device_name}'", 3)
|
||||||
|
changed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
# reduce the update time after a read is succesful
|
||||||
|
self.change_schedule(self.UPDATE_CMD0, self.UPDATE_TIME2)
|
||||||
|
elif index == 2 # Status 2
|
||||||
|
var version = data.find("Version")
|
||||||
|
var hardware = data.find("Hardware")
|
||||||
|
|
||||||
|
if self.info.find('version') != version
|
||||||
|
if version != nil
|
||||||
|
self.info['version'] = version
|
||||||
|
else
|
||||||
|
self.info.remove('version')
|
||||||
|
end
|
||||||
|
tasmota.log(f"MTR: update '{self.addr}' version='{version}'", 3)
|
||||||
|
changed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.info.find('hardware') != hardware
|
||||||
|
if hardware != nil
|
||||||
|
self.info['hardware'] = hardware
|
||||||
|
else
|
||||||
|
self.info.remove('hardware')
|
||||||
|
end
|
||||||
|
tasmota.log(f"MTR: update '{self.addr}' hardware='{hardware}'", 3)
|
||||||
|
changed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
# reduce the update time after a read is succesful
|
||||||
|
self.change_schedule(self.UPDATE_CMD2, self.UPDATE_TIME2)
|
||||||
|
elif index == 5
|
||||||
|
var mac = data.find("Mac")
|
||||||
|
|
||||||
|
# did the value changed?
|
||||||
|
if self.info.find('mac') != mac
|
||||||
|
if mac != nil
|
||||||
|
self.info['mac'] = mac
|
||||||
|
else
|
||||||
|
self.info.remove("mac")
|
||||||
|
end
|
||||||
|
tasmota.log(f"MTR: update '{self.addr}' mac='{mac}'", 3)
|
||||||
|
changed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
# reduce the update time after a read is succesful
|
||||||
|
self.change_schedule(self.UPDATE_CMD0, self.UPDATE_TIME2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if changed self.info_changed() end
|
||||||
end
|
end
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
|
@ -92,6 +214,15 @@ class Matter_HTTP_remote : Matter_HTTP_async
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Change schedule of current cmd
|
||||||
|
def change_schedule(cmd, update_time)
|
||||||
|
if self.probe_update_time_map.contains(cmd)
|
||||||
|
self.probe_update_time_map[cmd] = update_time
|
||||||
|
self.probe_next_timestamp_map[cmd] = matter.jitter(update_time)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
# Add a callback to be called for a specific `cmd` or `nil` for all commands
|
# Add a callback to be called for a specific `cmd` or `nil` for all commands
|
||||||
def add_async_cb(cb, cmd)
|
def add_async_cb(cb, cmd)
|
||||||
|
|
|
@ -184,7 +184,7 @@ class Matter_IM
|
||||||
if message
|
if message
|
||||||
return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange
|
return message.status_ok_received(msg) # re-arm the sending of next packets for the same exchange
|
||||||
else
|
else
|
||||||
tasmota.log(format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 3) # don't show 'SUCCESS' to not overflow logs with non-information
|
tasmota.log(format("MTR: >OK (%6i) exch=%i not found", msg.session.local_session_id, msg.exchange_id), 4) # don't show 'SUCCESS' to not overflow logs with non-information
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
# error
|
# error
|
||||||
|
|
|
@ -205,6 +205,8 @@ class Matter_Plugin
|
||||||
|
|
||||||
if attribute == 0x0011 # ---------- Reachable / bool ----------
|
if attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||||
return TLV.create_TLV(TLV.BOOL, 1) # by default we are reachable
|
return TLV.create_TLV(TLV.BOOL, 1) # by default we are reachable
|
||||||
|
else
|
||||||
|
return super(self).read_attribute(session, ctx) # rest is handled by 0x0028
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -182,8 +182,32 @@ class Matter_Plugin_Bridge_HTTP : Matter_Plugin_Device
|
||||||
|
|
||||||
# ====================================================================================================
|
# ====================================================================================================
|
||||||
if cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
|
if cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
|
||||||
|
import string
|
||||||
|
|
||||||
if attribute == 0x0011 # ---------- Reachable / bool ----------
|
if attribute == 0x0003 # ---------- ProductName / string ----------
|
||||||
|
var name = self.http_remote.get_info().find("name")
|
||||||
|
if name
|
||||||
|
return TLV.create_TLV(TLV.UTF1, name)
|
||||||
|
else
|
||||||
|
return TLV.create_TLV(TLV.NULL, nil)
|
||||||
|
end
|
||||||
|
elif attribute == 0x000A # ---------- SoftwareVersionString / string ----------
|
||||||
|
var version_full = self.http_remote.get_info().find("version")
|
||||||
|
if version_full
|
||||||
|
var version_end = string.find(version_full, '(')
|
||||||
|
if version_end > 0 version_full = version_full[0..version_end - 1] end
|
||||||
|
return TLV.create_TLV(TLV.UTF1, version_full)
|
||||||
|
else
|
||||||
|
return TLV.create_TLV(TLV.NULL, nil)
|
||||||
|
end
|
||||||
|
elif attribute == 0x000F || attribute == 0x0012 # ---------- SerialNumber || UniqueID / string ----------
|
||||||
|
var mac = self.http_remote.get_info().find("mac")
|
||||||
|
if mac
|
||||||
|
return TLV.create_TLV(TLV.UTF1, mac)
|
||||||
|
else
|
||||||
|
return TLV.create_TLV(TLV.NULL, nil)
|
||||||
|
end
|
||||||
|
elif attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||||
# self.is_reachable_lazy_sync() # Not needed anymore
|
# self.is_reachable_lazy_sync() # Not needed anymore
|
||||||
return TLV.create_TLV(TLV.BOOL, self.http_remote.reachable) # TODO find a way to do a ping
|
return TLV.create_TLV(TLV.BOOL, self.http_remote.reachable) # TODO find a way to do a ping
|
||||||
else
|
else
|
||||||
|
|
|
@ -27,7 +27,7 @@ class Matter_Plugin end
|
||||||
class Matter_Plugin_Device : Matter_Plugin
|
class Matter_Plugin_Device : Matter_Plugin
|
||||||
static var CLUSTERS = {
|
static var CLUSTERS = {
|
||||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||||
0x0039: [5], # Bridged Device Basic Information 9.13 p.485
|
0x0039: [3,5,0x0A,0x0F,0x11,0x12], # Bridged Device Basic Information 9.13 p.485
|
||||||
0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16
|
0x0003: [0,1,0xFFFC,0xFFFD], # Identify 1.2 p.16
|
||||||
0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21
|
0x0004: [0,0xFFFC,0xFFFD], # Groups 1.3 p.21
|
||||||
0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable
|
0x0005: [0,1,2,3,4,5,0xFFFC,0xFFFD], # Scenes 1.4 p.30 - no writable
|
||||||
|
@ -116,9 +116,23 @@ class Matter_Plugin_Device : Matter_Plugin
|
||||||
|
|
||||||
# ====================================================================================================
|
# ====================================================================================================
|
||||||
elif cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
|
elif cluster == 0x0039 # ========== Bridged Device Basic Information 9.13 p.485 ==========
|
||||||
|
import string
|
||||||
|
|
||||||
if attribute == 0x0005 # ---------- NodeLabel / string ----------
|
if attribute == 0x0003 # ---------- ProductName / string ----------
|
||||||
|
return TLV.create_TLV(TLV.UTF1, tasmota.cmd("DeviceName", true)['DeviceName'])
|
||||||
|
elif attribute == 0x0005 # ---------- NodeLabel / string ----------
|
||||||
return TLV.create_TLV(TLV.UTF1, self.get_name())
|
return TLV.create_TLV(TLV.UTF1, self.get_name())
|
||||||
|
elif attribute == 0x000A # ---------- SoftwareVersionString / string ----------
|
||||||
|
var version_full = tasmota.cmd("Status 2", true)['StatusFWR']['Version']
|
||||||
|
var version_end = string.find(version_full, '(')
|
||||||
|
if version_end > 0 version_full = version_full[0..version_end - 1] end
|
||||||
|
return TLV.create_TLV(TLV.UTF1, version_full)
|
||||||
|
elif attribute == 0x000F # ---------- SerialNumber / string ----------
|
||||||
|
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
||||||
|
elif attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||||
|
return TLV.create_TLV(TLV.BOOL, 1) # by default we are reachable
|
||||||
|
elif attribute == 0x0012 # ---------- UniqueID / string 32 max ----------
|
||||||
|
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
||||||
else
|
else
|
||||||
return super(self).read_attribute(session, ctx)
|
return super(self).read_attribute(session, ctx)
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,7 +32,7 @@ class Matter_Plugin_Root : Matter_Plugin
|
||||||
static var CLUSTERS = {
|
static var CLUSTERS = {
|
||||||
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
# 0x001D: inherited # Descriptor Cluster 9.5 p.453
|
||||||
0x001F: [0,2,3,4], # Access Control Cluster, p.461
|
0x001F: [0,2,3,4], # Access Control Cluster, p.461
|
||||||
0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
|
0x0028: [0,1,2,3,4,5,6,7,8,9,0x0A,0x0F,0x11,0x12,0x13],# Basic Information Cluster cluster 11.1 p.565
|
||||||
# 0x002A: [0,1,2,3], # OTA Software Update Requestor Cluster Definition 11.19.7 p.762
|
# 0x002A: [0,1,2,3], # OTA Software Update Requestor Cluster Definition 11.19.7 p.762
|
||||||
0x002B: [0,1], # Localization Configuration Cluster 11.3 p.580
|
0x002B: [0,1], # Localization Configuration Cluster 11.3 p.580
|
||||||
0x002C: [0,1,2], # Time Format Localization Cluster 11.4 p.581
|
0x002C: [0,1,2], # Time Format Localization Cluster 11.4 p.581
|
||||||
|
@ -240,6 +240,8 @@ class Matter_Plugin_Root : Matter_Plugin
|
||||||
return TLV.create_TLV(TLV.UTF1, version_full)
|
return TLV.create_TLV(TLV.UTF1, version_full)
|
||||||
elif attribute == 0x000F # ---------- SerialNumber / string ----------
|
elif attribute == 0x000F # ---------- SerialNumber / string ----------
|
||||||
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
||||||
|
elif attribute == 0x0011 # ---------- Reachable / bool ----------
|
||||||
|
return TLV.create_TLV(TLV.BOOL, 1) # by default we are reachable
|
||||||
elif attribute == 0x0012 # ---------- UniqueID / string 32 max ----------
|
elif attribute == 0x0012 # ---------- UniqueID / string 32 max ----------
|
||||||
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
return TLV.create_TLV(TLV.UTF1, tasmota.wifi().find("mac", ""))
|
||||||
elif attribute == 0x0013 # ---------- CapabilityMinima / CapabilityMinimaStruct ----------
|
elif attribute == 0x0013 # ---------- CapabilityMinima / CapabilityMinimaStruct ----------
|
||||||
|
|
|
@ -366,7 +366,8 @@ class Matter_UI
|
||||||
for remote: remotes
|
for remote: remotes
|
||||||
|
|
||||||
var remote_html = webserver.html_escape(remote)
|
var remote_html = webserver.html_escape(remote)
|
||||||
webserver.content_send(f"🔗 <a target='_blank' href=\"http://{remote_html}/?\">{remote_html}</a>")
|
var host_device_name = webserver.html_escape( self.device.get_plugin_remote_info(remote).find('name', remote) )
|
||||||
|
webserver.content_send(f"🔗 <a target='_blank' title='http://{remote_html}/' href=\"http://{remote_html}/?\">{host_device_name}</a>")
|
||||||
webserver.content_send("<table style='width:100%'>")
|
webserver.content_send("<table style='width:100%'>")
|
||||||
webserver.content_send("<tr>"
|
webserver.content_send("<tr>"
|
||||||
"<td width='25'></td>"
|
"<td width='25'></td>"
|
||||||
|
@ -617,7 +618,7 @@ class Matter_UI
|
||||||
|
|
||||||
if url == '' return end
|
if url == '' return end
|
||||||
var timeout = matter.Plugin_Bridge_HTTP.PROBE_TIMEOUT
|
var timeout = matter.Plugin_Bridge_HTTP.PROBE_TIMEOUT
|
||||||
var http_remote = matter.HTTP_remote(url, timeout)
|
var http_remote = matter.HTTP_remote(nil, url, timeout)
|
||||||
# Status 8
|
# Status 8
|
||||||
var status8 = http_remote.call_sync('Status 8', timeout)
|
var status8 = http_remote.call_sync('Status 8', timeout)
|
||||||
if status8 != nil status8 = json.load(status8) end
|
if status8 != nil status8 = json.load(status8) end
|
||||||
|
@ -640,7 +641,8 @@ class Matter_UI
|
||||||
webserver.content_send("<fieldset><legend><b> Matter Remote Device </b></legend><p></p>"
|
webserver.content_send("<fieldset><legend><b> Matter Remote Device </b></legend><p></p>"
|
||||||
"<p><b>Add Remote sensor or device</b></p>")
|
"<p><b>Add Remote sensor or device</b></p>")
|
||||||
|
|
||||||
webserver.content_send(format("<p>🔗 <a target='_blank' href=\"http://%s/?\">%s</a></p>", webserver.html_escape(url), webserver.html_escape(url)))
|
var remote_html = webserver.html_escape(url)
|
||||||
|
webserver.content_send(f"<p>🔗 <a target='_blank' href=\"http://{remote_html}/?\">{remote_html}</a></p>")
|
||||||
|
|
||||||
# Add new endpoint section
|
# Add new endpoint section
|
||||||
webserver.content_send("<form action='/matterc' method='post'>"
|
webserver.content_send("<form action='/matterc' method='post'>"
|
||||||
|
@ -1028,7 +1030,8 @@ class Matter_UI
|
||||||
|
|
||||||
for host: self.device.k2l(bridge_plugin_by_host)
|
for host: self.device.k2l(bridge_plugin_by_host)
|
||||||
var host_html = webserver.html_escape(host)
|
var host_html = webserver.html_escape(host)
|
||||||
webserver.content_send(format("<tr class='ztdm htrm'><td>🔗 <a target='_blank' title='http://%s/' href=\"http://%s/?\"'>%s</a></td>", host_html, host_html, host_html))
|
var host_device_name = webserver.html_escape( self.device.get_plugin_remote_info(host).find('name', host) )
|
||||||
|
webserver.content_send(f"<tr class='ztdm htrm'><td>🔗 <a target='_blank' title='http://{host_html}/' href=\"http://{host_html}/?\"'>{host_device_name}</a></td>")
|
||||||
var http_remote = bridge_plugin_by_host[host][0].http_remote # get the http_remote object from the first in list
|
var http_remote = bridge_plugin_by_host[host][0].http_remote # get the http_remote object from the first in list
|
||||||
webserver.content_send(http_remote.web_last_seen())
|
webserver.content_send(http_remote.web_last_seen())
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -388,7 +388,7 @@ be_local_closure(Matter_HTTP_async_parse_http_payload, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[18]) { /* constants */
|
( &(const bvalue[16]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(is_chunked),
|
/* K0 */ be_nested_str_weak(is_chunked),
|
||||||
/* K1 */ be_nested_str_weak(chunk_size),
|
/* K1 */ be_nested_str_weak(chunk_size),
|
||||||
/* K2 */ be_nested_str_weak(global),
|
/* K2 */ be_nested_str_weak(global),
|
||||||
|
@ -399,33 +399,31 @@ be_local_closure(Matter_HTTP_async_parse_http_payload, /* name */
|
||||||
/* K7 */ be_const_int(0),
|
/* K7 */ be_const_int(0),
|
||||||
/* K8 */ be_nested_str_weak(0x),
|
/* K8 */ be_nested_str_weak(0x),
|
||||||
/* K9 */ be_const_int(1),
|
/* K9 */ be_const_int(1),
|
||||||
/* K10 */ be_nested_str_weak(close),
|
/* K10 */ be_nested_str_weak(status),
|
||||||
/* K11 */ be_nested_str_weak(status),
|
/* K11 */ be_const_int(2),
|
||||||
/* K12 */ be_const_int(2),
|
/* K12 */ be_nested_str_weak(),
|
||||||
/* K13 */ be_nested_str_weak(),
|
/* K13 */ be_nested_str_weak(close),
|
||||||
/* K14 */ be_nested_str_weak(http_status),
|
/* K14 */ be_nested_str_weak(payload),
|
||||||
/* K15 */ be_nested_str_weak(event_http_finished),
|
/* K15 */ be_const_int(2147483647),
|
||||||
/* K16 */ be_nested_str_weak(payload),
|
|
||||||
/* K17 */ be_const_int(2147483647),
|
|
||||||
}),
|
}),
|
||||||
be_str_weak(parse_http_payload),
|
be_str_weak(parse_http_payload),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[85]) { /* code */
|
( &(const binstruction[82]) { /* code */
|
||||||
0x88040100, // 0000 GETMBR R1 R0 K0
|
0x88040100, // 0000 GETMBR R1 R0 K0
|
||||||
0x78060048, // 0001 JMPF R1 #004B
|
0x78060045, // 0001 JMPF R1 #0048
|
||||||
0x50040200, // 0002 LDBOOL R1 1 0
|
0x50040200, // 0002 LDBOOL R1 1 0
|
||||||
0x78060045, // 0003 JMPF R1 #004A
|
0x78060042, // 0003 JMPF R1 #0047
|
||||||
0x88040101, // 0004 GETMBR R1 R0 K1
|
0x88040101, // 0004 GETMBR R1 R0 K1
|
||||||
0x4C080000, // 0005 LDNIL R2
|
0x4C080000, // 0005 LDNIL R2
|
||||||
0x1C040202, // 0006 EQ R1 R1 R2
|
0x1C040202, // 0006 EQ R1 R1 R2
|
||||||
0x7806001B, // 0007 JMPF R1 #0024
|
0x78060018, // 0007 JMPF R1 #0021
|
||||||
0xB8060400, // 0008 GETNGBL R1 K2
|
0xB8060400, // 0008 GETNGBL R1 K2
|
||||||
0x88040303, // 0009 GETMBR R1 R1 K3
|
0x88040303, // 0009 GETMBR R1 R1 K3
|
||||||
0x8C040304, // 000A GETMET R1 R1 K4
|
0x8C040304, // 000A GETMET R1 R1 K4
|
||||||
0x880C0105, // 000B GETMBR R3 R0 K5
|
0x880C0105, // 000B GETMBR R3 R0 K5
|
||||||
0x88100106, // 000C GETMBR R4 R0 K6
|
0x88100106, // 000C GETMBR R4 R0 K6
|
||||||
0x7C040600, // 000D CALL R1 3
|
0x7C040600, // 000D CALL R1 3
|
||||||
0x78060014, // 000E JMPF R1 #0024
|
0x78060011, // 000E JMPF R1 #0021
|
||||||
0x88080106, // 000F GETMBR R2 R0 K6
|
0x88080106, // 000F GETMBR R2 R0 K6
|
||||||
0x940C0307, // 0010 GETIDX R3 R1 K7
|
0x940C0307, // 0010 GETIDX R3 R1 K7
|
||||||
0x00080403, // 0011 ADD R2 R2 R3
|
0x00080403, // 0011 ADD R2 R2 R3
|
||||||
|
@ -437,65 +435,62 @@ be_local_closure(Matter_HTTP_async_parse_http_payload, /* name */
|
||||||
0x90020202, // 0017 SETMBR R0 K1 R2
|
0x90020202, // 0017 SETMBR R0 K1 R2
|
||||||
0x88080101, // 0018 GETMBR R2 R0 K1
|
0x88080101, // 0018 GETMBR R2 R0 K1
|
||||||
0x1C080507, // 0019 EQ R2 R2 K7
|
0x1C080507, // 0019 EQ R2 R2 K7
|
||||||
0x780A0008, // 001A JMPF R2 #0024
|
0x780A0005, // 001A JMPF R2 #0021
|
||||||
0x8C08010A, // 001B GETMET R2 R0 K10
|
0x9002150B, // 001B SETMBR R0 K10 K11
|
||||||
0x7C080200, // 001C CALL R2 1
|
0x90020B0C, // 001C SETMBR R0 K5 K12
|
||||||
0x9002170C, // 001D SETMBR R0 K11 K12
|
0x90020D07, // 001D SETMBR R0 K6 K7
|
||||||
0x90020B0D, // 001E SETMBR R0 K5 K13
|
0x8C08010D, // 001E GETMET R2 R0 K13
|
||||||
0x90020D07, // 001F SETMBR R0 K6 K7
|
0x7C080200, // 001F CALL R2 1
|
||||||
0x90021D09, // 0020 SETMBR R0 K14 K9
|
0x80000400, // 0020 RET 0
|
||||||
0x8C08010F, // 0021 GETMET R2 R0 K15
|
0x88040101, // 0021 GETMBR R1 R0 K1
|
||||||
0x7C080200, // 0022 CALL R2 1
|
0x4C080000, // 0022 LDNIL R2
|
||||||
0x80000400, // 0023 RET 0
|
0x20040202, // 0023 NE R1 R1 R2
|
||||||
0x88040101, // 0024 GETMBR R1 R0 K1
|
0x7806001F, // 0024 JMPF R1 #0045
|
||||||
0x4C080000, // 0025 LDNIL R2
|
0x88040101, // 0025 GETMBR R1 R0 K1
|
||||||
0x20040202, // 0026 NE R1 R1 R2
|
0x6008000C, // 0026 GETGBL R2 G12
|
||||||
0x7806001F, // 0027 JMPF R1 #0048
|
0x880C0105, // 0027 GETMBR R3 R0 K5
|
||||||
0x88040101, // 0028 GETMBR R1 R0 K1
|
0x7C080200, // 0028 CALL R2 1
|
||||||
0x6008000C, // 0029 GETGBL R2 G12
|
0x880C0106, // 0029 GETMBR R3 R0 K6
|
||||||
0x880C0105, // 002A GETMBR R3 R0 K5
|
0x04080403, // 002A SUB R2 R2 R3
|
||||||
0x7C080200, // 002B CALL R2 1
|
0x18040202, // 002B LE R1 R1 R2
|
||||||
0x880C0106, // 002C GETMBR R3 R0 K6
|
0x78060015, // 002C JMPF R1 #0043
|
||||||
0x04080403, // 002D SUB R2 R2 R3
|
0x88080106, // 002D GETMBR R2 R0 K6
|
||||||
0x18040202, // 002E LE R1 R1 R2
|
0x880C0106, // 002E GETMBR R3 R0 K6
|
||||||
0x78060015, // 002F JMPF R1 #0046
|
0x88100101, // 002F GETMBR R4 R0 K1
|
||||||
0x88080106, // 0030 GETMBR R2 R0 K6
|
0x000C0604, // 0030 ADD R3 R3 R4
|
||||||
0x880C0106, // 0031 GETMBR R3 R0 K6
|
0x040C0709, // 0031 SUB R3 R3 K9
|
||||||
0x88100101, // 0032 GETMBR R4 R0 K1
|
0x40080403, // 0032 CONNECT R2 R2 R3
|
||||||
0x000C0604, // 0033 ADD R3 R3 R4
|
0x880C0105, // 0033 GETMBR R3 R0 K5
|
||||||
0x040C0709, // 0034 SUB R3 R3 K9
|
0x8804010E, // 0034 GETMBR R1 R0 K14
|
||||||
0x40080403, // 0035 CONNECT R2 R2 R3
|
0x94080602, // 0035 GETIDX R2 R3 R2
|
||||||
0x880C0105, // 0036 GETMBR R3 R0 K5
|
0x00040202, // 0036 ADD R1 R1 R2
|
||||||
0x88040110, // 0037 GETMBR R1 R0 K16
|
0x90021C01, // 0037 SETMBR R0 K14 R1
|
||||||
0x94080602, // 0038 GETIDX R2 R3 R2
|
0x88040106, // 0038 GETMBR R1 R0 K6
|
||||||
0x00040202, // 0039 ADD R1 R1 R2
|
0x88080101, // 0039 GETMBR R2 R0 K1
|
||||||
0x90022001, // 003A SETMBR R0 K16 R1
|
0x00040202, // 003A ADD R1 R1 R2
|
||||||
0x88040106, // 003B GETMBR R1 R0 K6
|
0x4004030F, // 003B CONNECT R1 R1 K15
|
||||||
0x88080101, // 003C GETMBR R2 R0 K1
|
0x88080105, // 003C GETMBR R2 R0 K5
|
||||||
0x00040202, // 003D ADD R1 R1 R2
|
0x94040401, // 003D GETIDX R1 R2 R1
|
||||||
0x40040311, // 003E CONNECT R1 R1 K17
|
0x90020A01, // 003E SETMBR R0 K5 R1
|
||||||
0x88080105, // 003F GETMBR R2 R0 K5
|
0x90020D07, // 003F SETMBR R0 K6 K7
|
||||||
0x94040401, // 0040 GETIDX R1 R2 R1
|
0x4C040000, // 0040 LDNIL R1
|
||||||
0x90020A01, // 0041 SETMBR R0 K5 R1
|
0x90020201, // 0041 SETMBR R0 K1 R1
|
||||||
0x90020D07, // 0042 SETMBR R0 K6 K7
|
0x70020000, // 0042 JMP #0044
|
||||||
0x4C040000, // 0043 LDNIL R1
|
0x80000200, // 0043 RET 0
|
||||||
0x90020201, // 0044 SETMBR R0 K1 R1
|
0x70020000, // 0044 JMP #0046
|
||||||
0x70020000, // 0045 JMP #0047
|
0x80000200, // 0045 RET 0
|
||||||
0x80000200, // 0046 RET 0
|
0x7001FFBA, // 0046 JMP #0002
|
||||||
0x70020000, // 0047 JMP #0049
|
0x70020008, // 0047 JMP #0051
|
||||||
0x80000200, // 0048 RET 0
|
0x88080106, // 0048 GETMBR R2 R0 K6
|
||||||
0x7001FFB7, // 0049 JMP #0002
|
0x4008050F, // 0049 CONNECT R2 R2 K15
|
||||||
0x70020008, // 004A JMP #0054
|
0x880C0105, // 004A GETMBR R3 R0 K5
|
||||||
0x88080106, // 004B GETMBR R2 R0 K6
|
0x8804010E, // 004B GETMBR R1 R0 K14
|
||||||
0x40080511, // 004C CONNECT R2 R2 K17
|
0x94080602, // 004C GETIDX R2 R3 R2
|
||||||
0x880C0105, // 004D GETMBR R3 R0 K5
|
0x00040202, // 004D ADD R1 R1 R2
|
||||||
0x88040110, // 004E GETMBR R1 R0 K16
|
0x90021C01, // 004E SETMBR R0 K14 R1
|
||||||
0x94080602, // 004F GETIDX R2 R3 R2
|
0x90020B0C, // 004F SETMBR R0 K5 K12
|
||||||
0x00040202, // 0050 ADD R1 R1 R2
|
0x90020D07, // 0050 SETMBR R0 K6 K7
|
||||||
0x90022001, // 0051 SETMBR R0 K16 R1
|
0x80000000, // 0051 RET 0
|
||||||
0x90020B0D, // 0052 SETMBR R0 K5 K13
|
|
||||||
0x90020D07, // 0053 SETMBR R0 K6 K7
|
|
||||||
0x80000000, // 0054 RET 0
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1976,8 +1976,8 @@ be_local_closure(Matter_IM_process_status_response, /* name */
|
||||||
/* K9 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
|
/* K9 */ be_nested_str_weak(MTR_X3A_X20_X3EOK_X20_X20_X20_X20_X20_X20_X20_X20_X28_X256i_X29_X20exch_X3D_X25i_X20not_X20found),
|
||||||
/* K10 */ be_nested_str_weak(session),
|
/* K10 */ be_nested_str_weak(session),
|
||||||
/* K11 */ be_nested_str_weak(local_session_id),
|
/* K11 */ be_nested_str_weak(local_session_id),
|
||||||
/* K12 */ be_const_int(3),
|
/* K12 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
|
||||||
/* K13 */ be_nested_str_weak(MTR_X3A_X20_X3EStatus_X20_X20_X20_X20ERROR_X20_X3D_X200x_X2502X),
|
/* K13 */ be_const_int(3),
|
||||||
/* K14 */ be_nested_str_weak(status_error_received),
|
/* K14 */ be_nested_str_weak(status_error_received),
|
||||||
/* K15 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
|
/* K15 */ be_nested_str_weak(remove_sendqueue_by_exchangeid),
|
||||||
}),
|
}),
|
||||||
|
@ -2009,16 +2009,16 @@ be_local_closure(Matter_IM_process_status_response, /* name */
|
||||||
0x8824130B, // 0016 GETMBR R9 R9 K11
|
0x8824130B, // 0016 GETMBR R9 R9 K11
|
||||||
0x88280303, // 0017 GETMBR R10 R1 K3
|
0x88280303, // 0017 GETMBR R10 R1 K3
|
||||||
0x7C1C0600, // 0018 CALL R7 3
|
0x7C1C0600, // 0018 CALL R7 3
|
||||||
0x5820000C, // 0019 LDCONST R8 K12
|
0x54220003, // 0019 LDINT R8 4
|
||||||
0x7C140600, // 001A CALL R5 3
|
0x7C140600, // 001A CALL R5 3
|
||||||
0x7002000E, // 001B JMP #002B
|
0x7002000E, // 001B JMP #002B
|
||||||
0xB8160E00, // 001C GETNGBL R5 K7
|
0xB8160E00, // 001C GETNGBL R5 K7
|
||||||
0x8C140B08, // 001D GETMET R5 R5 K8
|
0x8C140B08, // 001D GETMET R5 R5 K8
|
||||||
0x601C0018, // 001E GETGBL R7 G24
|
0x601C0018, // 001E GETGBL R7 G24
|
||||||
0x5820000D, // 001F LDCONST R8 K13
|
0x5820000C, // 001F LDCONST R8 K12
|
||||||
0x5C240600, // 0020 MOVE R9 R3
|
0x5C240600, // 0020 MOVE R9 R3
|
||||||
0x7C1C0400, // 0021 CALL R7 2
|
0x7C1C0400, // 0021 CALL R7 2
|
||||||
0x5820000C, // 0022 LDCONST R8 K12
|
0x5820000D, // 0022 LDCONST R8 K13
|
||||||
0x7C140600, // 0023 CALL R5 3
|
0x7C140600, // 0023 CALL R5 3
|
||||||
0x78120005, // 0024 JMPF R4 #002B
|
0x78120005, // 0024 JMPF R4 #002B
|
||||||
0x8C14090E, // 0025 GETMET R5 R4 K14
|
0x8C14090E, // 0025 GETMET R5 R4 K14
|
||||||
|
|
|
@ -724,7 +724,7 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[19]) { /* constants */
|
( &(const bvalue[20]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(matter),
|
/* K0 */ be_nested_str_weak(matter),
|
||||||
/* K1 */ be_nested_str_weak(TLV),
|
/* K1 */ be_nested_str_weak(TLV),
|
||||||
/* K2 */ be_nested_str_weak(cluster),
|
/* K2 */ be_nested_str_weak(cluster),
|
||||||
|
@ -744,10 +744,11 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
||||||
/* K16 */ be_const_int(3),
|
/* K16 */ be_const_int(3),
|
||||||
/* K17 */ be_nested_str_weak(create_TLV),
|
/* K17 */ be_nested_str_weak(create_TLV),
|
||||||
/* K18 */ be_nested_str_weak(BOOL),
|
/* K18 */ be_nested_str_weak(BOOL),
|
||||||
|
/* K19 */ be_nested_str_weak(read_attribute),
|
||||||
}),
|
}),
|
||||||
be_str_weak(read_attribute),
|
be_str_weak(read_attribute),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[104]) { /* code */
|
( &(const binstruction[113]) { /* code */
|
||||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||||
0x88100502, // 0002 GETMBR R4 R2 K2
|
0x88100502, // 0002 GETMBR R4 R2 K2
|
||||||
|
@ -836,22 +837,31 @@ be_local_closure(Matter_Plugin_read_attribute, /* name */
|
||||||
0x5824000B, // 0055 LDCONST R9 K11
|
0x5824000B, // 0055 LDCONST R9 K11
|
||||||
0x7C180600, // 0056 CALL R6 3
|
0x7C180600, // 0056 CALL R6 3
|
||||||
0x80040C00, // 0057 RET 1 R6
|
0x80040C00, // 0057 RET 1 R6
|
||||||
0x7002000D, // 0058 JMP #0067
|
0x70020016, // 0058 JMP #0070
|
||||||
0x541A0038, // 0059 LDINT R6 57
|
0x541A0038, // 0059 LDINT R6 57
|
||||||
0x1C180806, // 005A EQ R6 R4 R6
|
0x1C180806, // 005A EQ R6 R4 R6
|
||||||
0x781A0008, // 005B JMPF R6 #0065
|
0x781A0011, // 005B JMPF R6 #006E
|
||||||
0x541A0010, // 005C LDINT R6 17
|
0x541A0010, // 005C LDINT R6 17
|
||||||
0x1C180A06, // 005D EQ R6 R5 R6
|
0x1C180A06, // 005D EQ R6 R5 R6
|
||||||
0x781A0004, // 005E JMPF R6 #0064
|
0x781A0005, // 005E JMPF R6 #0065
|
||||||
0x8C180711, // 005F GETMET R6 R3 K17
|
0x8C180711, // 005F GETMET R6 R3 K17
|
||||||
0x88200712, // 0060 GETMBR R8 R3 K18
|
0x88200712, // 0060 GETMBR R8 R3 K18
|
||||||
0x5824000B, // 0061 LDCONST R9 K11
|
0x5824000B, // 0061 LDCONST R9 K11
|
||||||
0x7C180600, // 0062 CALL R6 3
|
0x7C180600, // 0062 CALL R6 3
|
||||||
0x80040C00, // 0063 RET 1 R6
|
0x80040C00, // 0063 RET 1 R6
|
||||||
0x70020001, // 0064 JMP #0067
|
0x70020007, // 0064 JMP #006D
|
||||||
0x4C180000, // 0065 LDNIL R6
|
0x60180003, // 0065 GETGBL R6 G3
|
||||||
0x80040C00, // 0066 RET 1 R6
|
0x5C1C0000, // 0066 MOVE R7 R0
|
||||||
0x80000000, // 0067 RET 0
|
0x7C180200, // 0067 CALL R6 1
|
||||||
|
0x8C180D13, // 0068 GETMET R6 R6 K19
|
||||||
|
0x5C200200, // 0069 MOVE R8 R1
|
||||||
|
0x5C240400, // 006A MOVE R9 R2
|
||||||
|
0x7C180600, // 006B CALL R6 3
|
||||||
|
0x80040C00, // 006C RET 1 R6
|
||||||
|
0x70020001, // 006D JMP #0070
|
||||||
|
0x4C180000, // 006E LDNIL R6
|
||||||
|
0x80040C00, // 006F RET 1 R6
|
||||||
|
0x80000000, // 0070 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -567,7 +567,7 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_web_values_prefix, /* name */
|
||||||
********************************************************************/
|
********************************************************************/
|
||||||
be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
|
be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
|
||||||
be_nested_proto(
|
be_nested_proto(
|
||||||
10, /* nstack */
|
13, /* nstack */
|
||||||
3, /* argc */
|
3, /* argc */
|
||||||
2, /* varg */
|
2, /* varg */
|
||||||
0, /* has upvals */
|
0, /* has upvals */
|
||||||
|
@ -575,55 +575,145 @@ be_local_closure(Matter_Plugin_Bridge_HTTP_read_attribute, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[ 9]) { /* constants */
|
( &(const bvalue[21]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(matter),
|
/* K0 */ be_nested_str_weak(matter),
|
||||||
/* K1 */ be_nested_str_weak(TLV),
|
/* K1 */ be_nested_str_weak(TLV),
|
||||||
/* K2 */ be_nested_str_weak(cluster),
|
/* K2 */ be_nested_str_weak(cluster),
|
||||||
/* K3 */ be_nested_str_weak(attribute),
|
/* K3 */ be_nested_str_weak(attribute),
|
||||||
/* K4 */ be_nested_str_weak(create_TLV),
|
/* K4 */ be_nested_str_weak(string),
|
||||||
/* K5 */ be_nested_str_weak(BOOL),
|
/* K5 */ be_const_int(3),
|
||||||
/* K6 */ be_nested_str_weak(http_remote),
|
/* K6 */ be_nested_str_weak(http_remote),
|
||||||
/* K7 */ be_nested_str_weak(reachable),
|
/* K7 */ be_nested_str_weak(get_info),
|
||||||
/* K8 */ be_nested_str_weak(read_attribute),
|
/* K8 */ be_nested_str_weak(find),
|
||||||
|
/* K9 */ be_nested_str_weak(name),
|
||||||
|
/* K10 */ be_nested_str_weak(create_TLV),
|
||||||
|
/* K11 */ be_nested_str_weak(UTF1),
|
||||||
|
/* K12 */ be_nested_str_weak(NULL),
|
||||||
|
/* K13 */ be_nested_str_weak(version),
|
||||||
|
/* K14 */ be_nested_str_weak(_X28),
|
||||||
|
/* K15 */ be_const_int(0),
|
||||||
|
/* K16 */ be_const_int(1),
|
||||||
|
/* K17 */ be_nested_str_weak(mac),
|
||||||
|
/* K18 */ be_nested_str_weak(BOOL),
|
||||||
|
/* K19 */ be_nested_str_weak(reachable),
|
||||||
|
/* K20 */ be_nested_str_weak(read_attribute),
|
||||||
}),
|
}),
|
||||||
be_str_weak(read_attribute),
|
be_str_weak(read_attribute),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[35]) { /* code */
|
( &(const binstruction[113]) { /* code */
|
||||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||||
0x88100502, // 0002 GETMBR R4 R2 K2
|
0x88100502, // 0002 GETMBR R4 R2 K2
|
||||||
0x88140503, // 0003 GETMBR R5 R2 K3
|
0x88140503, // 0003 GETMBR R5 R2 K3
|
||||||
0x541A0038, // 0004 LDINT R6 57
|
0x541A0038, // 0004 LDINT R6 57
|
||||||
0x1C180806, // 0005 EQ R6 R4 R6
|
0x1C180806, // 0005 EQ R6 R4 R6
|
||||||
0x781A0012, // 0006 JMPF R6 #001A
|
0x781A0060, // 0006 JMPF R6 #0068
|
||||||
0x541A0010, // 0007 LDINT R6 17
|
0xA41A0800, // 0007 IMPORT R6 K4
|
||||||
0x1C180A06, // 0008 EQ R6 R5 R6
|
0x1C1C0B05, // 0008 EQ R7 R5 K5
|
||||||
0x781A0006, // 0009 JMPF R6 #0011
|
0x781E0012, // 0009 JMPF R7 #001D
|
||||||
0x8C180704, // 000A GETMET R6 R3 K4
|
0x881C0106, // 000A GETMBR R7 R0 K6
|
||||||
0x88200705, // 000B GETMBR R8 R3 K5
|
0x8C1C0F07, // 000B GETMET R7 R7 K7
|
||||||
0x88240106, // 000C GETMBR R9 R0 K6
|
0x7C1C0200, // 000C CALL R7 1
|
||||||
0x88241307, // 000D GETMBR R9 R9 K7
|
0x8C1C0F08, // 000D GETMET R7 R7 K8
|
||||||
0x7C180600, // 000E CALL R6 3
|
0x58240009, // 000E LDCONST R9 K9
|
||||||
0x80040C00, // 000F RET 1 R6
|
0x7C1C0400, // 000F CALL R7 2
|
||||||
0x70020007, // 0010 JMP #0019
|
0x781E0005, // 0010 JMPF R7 #0017
|
||||||
0x60180003, // 0011 GETGBL R6 G3
|
0x8C20070A, // 0011 GETMET R8 R3 K10
|
||||||
0x5C1C0000, // 0012 MOVE R7 R0
|
0x8828070B, // 0012 GETMBR R10 R3 K11
|
||||||
0x7C180200, // 0013 CALL R6 1
|
0x5C2C0E00, // 0013 MOVE R11 R7
|
||||||
0x8C180D08, // 0014 GETMET R6 R6 K8
|
0x7C200600, // 0014 CALL R8 3
|
||||||
0x5C200200, // 0015 MOVE R8 R1
|
0x80041000, // 0015 RET 1 R8
|
||||||
0x5C240400, // 0016 MOVE R9 R2
|
0x70020004, // 0016 JMP #001C
|
||||||
0x7C180600, // 0017 CALL R6 3
|
0x8C20070A, // 0017 GETMET R8 R3 K10
|
||||||
0x80040C00, // 0018 RET 1 R6
|
0x8828070C, // 0018 GETMBR R10 R3 K12
|
||||||
0x70020007, // 0019 JMP #0022
|
0x4C2C0000, // 0019 LDNIL R11
|
||||||
0x60180003, // 001A GETGBL R6 G3
|
0x7C200600, // 001A CALL R8 3
|
||||||
0x5C1C0000, // 001B MOVE R7 R0
|
0x80041000, // 001B RET 1 R8
|
||||||
0x7C180200, // 001C CALL R6 1
|
0x70020049, // 001C JMP #0067
|
||||||
0x8C180D08, // 001D GETMET R6 R6 K8
|
0x541E0009, // 001D LDINT R7 10
|
||||||
0x5C200200, // 001E MOVE R8 R1
|
0x1C1C0A07, // 001E EQ R7 R5 R7
|
||||||
0x5C240400, // 001F MOVE R9 R2
|
0x781E001B, // 001F JMPF R7 #003C
|
||||||
0x7C180600, // 0020 CALL R6 3
|
0x881C0106, // 0020 GETMBR R7 R0 K6
|
||||||
0x80040C00, // 0021 RET 1 R6
|
0x8C1C0F07, // 0021 GETMET R7 R7 K7
|
||||||
0x80000000, // 0022 RET 0
|
0x7C1C0200, // 0022 CALL R7 1
|
||||||
|
0x8C1C0F08, // 0023 GETMET R7 R7 K8
|
||||||
|
0x5824000D, // 0024 LDCONST R9 K13
|
||||||
|
0x7C1C0400, // 0025 CALL R7 2
|
||||||
|
0x781E000E, // 0026 JMPF R7 #0036
|
||||||
|
0x8C200D08, // 0027 GETMET R8 R6 K8
|
||||||
|
0x5C280E00, // 0028 MOVE R10 R7
|
||||||
|
0x582C000E, // 0029 LDCONST R11 K14
|
||||||
|
0x7C200600, // 002A CALL R8 3
|
||||||
|
0x2424110F, // 002B GT R9 R8 K15
|
||||||
|
0x78260002, // 002C JMPF R9 #0030
|
||||||
|
0x04241110, // 002D SUB R9 R8 K16
|
||||||
|
0x40261E09, // 002E CONNECT R9 K15 R9
|
||||||
|
0x941C0E09, // 002F GETIDX R7 R7 R9
|
||||||
|
0x8C24070A, // 0030 GETMET R9 R3 K10
|
||||||
|
0x882C070B, // 0031 GETMBR R11 R3 K11
|
||||||
|
0x5C300E00, // 0032 MOVE R12 R7
|
||||||
|
0x7C240600, // 0033 CALL R9 3
|
||||||
|
0x80041200, // 0034 RET 1 R9
|
||||||
|
0x70020004, // 0035 JMP #003B
|
||||||
|
0x8C20070A, // 0036 GETMET R8 R3 K10
|
||||||
|
0x8828070C, // 0037 GETMBR R10 R3 K12
|
||||||
|
0x4C2C0000, // 0038 LDNIL R11
|
||||||
|
0x7C200600, // 0039 CALL R8 3
|
||||||
|
0x80041000, // 003A RET 1 R8
|
||||||
|
0x7002002A, // 003B JMP #0067
|
||||||
|
0x541E000E, // 003C LDINT R7 15
|
||||||
|
0x1C1C0A07, // 003D EQ R7 R5 R7
|
||||||
|
0x741E0002, // 003E JMPT R7 #0042
|
||||||
|
0x541E0011, // 003F LDINT R7 18
|
||||||
|
0x1C1C0A07, // 0040 EQ R7 R5 R7
|
||||||
|
0x781E0012, // 0041 JMPF R7 #0055
|
||||||
|
0x881C0106, // 0042 GETMBR R7 R0 K6
|
||||||
|
0x8C1C0F07, // 0043 GETMET R7 R7 K7
|
||||||
|
0x7C1C0200, // 0044 CALL R7 1
|
||||||
|
0x8C1C0F08, // 0045 GETMET R7 R7 K8
|
||||||
|
0x58240011, // 0046 LDCONST R9 K17
|
||||||
|
0x7C1C0400, // 0047 CALL R7 2
|
||||||
|
0x781E0005, // 0048 JMPF R7 #004F
|
||||||
|
0x8C20070A, // 0049 GETMET R8 R3 K10
|
||||||
|
0x8828070B, // 004A GETMBR R10 R3 K11
|
||||||
|
0x5C2C0E00, // 004B MOVE R11 R7
|
||||||
|
0x7C200600, // 004C CALL R8 3
|
||||||
|
0x80041000, // 004D RET 1 R8
|
||||||
|
0x70020004, // 004E JMP #0054
|
||||||
|
0x8C20070A, // 004F GETMET R8 R3 K10
|
||||||
|
0x8828070C, // 0050 GETMBR R10 R3 K12
|
||||||
|
0x4C2C0000, // 0051 LDNIL R11
|
||||||
|
0x7C200600, // 0052 CALL R8 3
|
||||||
|
0x80041000, // 0053 RET 1 R8
|
||||||
|
0x70020011, // 0054 JMP #0067
|
||||||
|
0x541E0010, // 0055 LDINT R7 17
|
||||||
|
0x1C1C0A07, // 0056 EQ R7 R5 R7
|
||||||
|
0x781E0006, // 0057 JMPF R7 #005F
|
||||||
|
0x8C1C070A, // 0058 GETMET R7 R3 K10
|
||||||
|
0x88240712, // 0059 GETMBR R9 R3 K18
|
||||||
|
0x88280106, // 005A GETMBR R10 R0 K6
|
||||||
|
0x88281513, // 005B GETMBR R10 R10 K19
|
||||||
|
0x7C1C0600, // 005C CALL R7 3
|
||||||
|
0x80040E00, // 005D RET 1 R7
|
||||||
|
0x70020007, // 005E JMP #0067
|
||||||
|
0x601C0003, // 005F GETGBL R7 G3
|
||||||
|
0x5C200000, // 0060 MOVE R8 R0
|
||||||
|
0x7C1C0200, // 0061 CALL R7 1
|
||||||
|
0x8C1C0F14, // 0062 GETMET R7 R7 K20
|
||||||
|
0x5C240200, // 0063 MOVE R9 R1
|
||||||
|
0x5C280400, // 0064 MOVE R10 R2
|
||||||
|
0x7C1C0600, // 0065 CALL R7 3
|
||||||
|
0x80040E00, // 0066 RET 1 R7
|
||||||
|
0x70020007, // 0067 JMP #0070
|
||||||
|
0x60180003, // 0068 GETGBL R6 G3
|
||||||
|
0x5C1C0000, // 0069 MOVE R7 R0
|
||||||
|
0x7C180200, // 006A CALL R6 1
|
||||||
|
0x8C180D14, // 006B GETMET R6 R6 K20
|
||||||
|
0x5C200200, // 006C MOVE R8 R1
|
||||||
|
0x5C240400, // 006D MOVE R9 R2
|
||||||
|
0x7C180600, // 006E CALL R6 3
|
||||||
|
0x80040C00, // 006F RET 1 R6
|
||||||
|
0x80000000, // 0070 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -210,7 +210,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
0, /* has sup protos */
|
0, /* has sup protos */
|
||||||
NULL, /* no sub protos */
|
NULL, /* no sub protos */
|
||||||
1, /* has constants */
|
1, /* has constants */
|
||||||
( &(const bvalue[23]) { /* constants */
|
( &(const bvalue[35]) { /* constants */
|
||||||
/* K0 */ be_nested_str_weak(matter),
|
/* K0 */ be_nested_str_weak(matter),
|
||||||
/* K1 */ be_nested_str_weak(TLV),
|
/* K1 */ be_nested_str_weak(TLV),
|
||||||
/* K2 */ be_nested_str_weak(cluster),
|
/* K2 */ be_nested_str_weak(cluster),
|
||||||
|
@ -232,12 +232,24 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
/* K18 */ be_nested_str_weak(find),
|
/* K18 */ be_nested_str_weak(find),
|
||||||
/* K19 */ be_nested_str_weak(get_admin_vendor),
|
/* K19 */ be_nested_str_weak(get_admin_vendor),
|
||||||
/* K20 */ be_nested_str_weak(read_attribute),
|
/* K20 */ be_nested_str_weak(read_attribute),
|
||||||
/* K21 */ be_nested_str_weak(UTF1),
|
/* K21 */ be_nested_str_weak(string),
|
||||||
/* K22 */ be_nested_str_weak(get_name),
|
/* K22 */ be_nested_str_weak(UTF1),
|
||||||
|
/* K23 */ be_nested_str_weak(tasmota),
|
||||||
|
/* K24 */ be_nested_str_weak(cmd),
|
||||||
|
/* K25 */ be_nested_str_weak(DeviceName),
|
||||||
|
/* K26 */ be_nested_str_weak(get_name),
|
||||||
|
/* K27 */ be_nested_str_weak(Status_X202),
|
||||||
|
/* K28 */ be_nested_str_weak(StatusFWR),
|
||||||
|
/* K29 */ be_nested_str_weak(Version),
|
||||||
|
/* K30 */ be_nested_str_weak(_X28),
|
||||||
|
/* K31 */ be_nested_str_weak(wifi),
|
||||||
|
/* K32 */ be_nested_str_weak(mac),
|
||||||
|
/* K33 */ be_nested_str_weak(),
|
||||||
|
/* K34 */ be_nested_str_weak(BOOL),
|
||||||
}),
|
}),
|
||||||
be_str_weak(read_attribute),
|
be_str_weak(read_attribute),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[180]) { /* code */
|
( &(const binstruction[258]) { /* code */
|
||||||
0xB80E0000, // 0000 GETNGBL R3 K0
|
0xB80E0000, // 0000 GETNGBL R3 K0
|
||||||
0x880C0701, // 0001 GETMBR R3 R3 K1
|
0x880C0701, // 0001 GETMBR R3 R3 K1
|
||||||
0x88100502, // 0002 GETMBR R4 R2 K2
|
0x88100502, // 0002 GETMBR R4 R2 K2
|
||||||
|
@ -277,7 +289,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
0x54260003, // 0024 LDINT R9 4
|
0x54260003, // 0024 LDINT R9 4
|
||||||
0x7C180600, // 0025 CALL R6 3
|
0x7C180600, // 0025 CALL R6 3
|
||||||
0x80040C00, // 0026 RET 1 R6
|
0x80040C00, // 0026 RET 1 R6
|
||||||
0x7002008A, // 0027 JMP #00B3
|
0x700200D8, // 0027 JMP #0101
|
||||||
0x541A0003, // 0028 LDINT R6 4
|
0x541A0003, // 0028 LDINT R6 4
|
||||||
0x1C180806, // 0029 EQ R6 R4 R6
|
0x1C180806, // 0029 EQ R6 R4 R6
|
||||||
0x781A0016, // 002A JMPF R6 #0042
|
0x781A0016, // 002A JMPF R6 #0042
|
||||||
|
@ -303,7 +315,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
0x54260003, // 003E LDINT R9 4
|
0x54260003, // 003E LDINT R9 4
|
||||||
0x7C180600, // 003F CALL R6 3
|
0x7C180600, // 003F CALL R6 3
|
||||||
0x80040C00, // 0040 RET 1 R6
|
0x80040C00, // 0040 RET 1 R6
|
||||||
0x70020070, // 0041 JMP #00B3
|
0x700200BE, // 0041 JMP #0101
|
||||||
0x541A0004, // 0042 LDINT R6 5
|
0x541A0004, // 0042 LDINT R6 5
|
||||||
0x1C180806, // 0043 EQ R6 R4 R6
|
0x1C180806, // 0043 EQ R6 R4 R6
|
||||||
0x781A0011, // 0044 JMPF R6 #0057
|
0x781A0011, // 0044 JMPF R6 #0057
|
||||||
|
@ -324,7 +336,7 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
0x54260003, // 0053 LDINT R9 4
|
0x54260003, // 0053 LDINT R9 4
|
||||||
0x7C180600, // 0054 CALL R6 3
|
0x7C180600, // 0054 CALL R6 3
|
||||||
0x80040C00, // 0055 RET 1 R6
|
0x80040C00, // 0055 RET 1 R6
|
||||||
0x7002005B, // 0056 JMP #00B3
|
0x700200A9, // 0056 JMP #0101
|
||||||
0x541A001C, // 0057 LDINT R6 29
|
0x541A001C, // 0057 LDINT R6 29
|
||||||
0x1C180806, // 0058 EQ R6 R4 R6
|
0x1C180806, // 0058 EQ R6 R4 R6
|
||||||
0x781A003A, // 0059 JMPF R6 #0095
|
0x781A003A, // 0059 JMPF R6 #0095
|
||||||
|
@ -386,38 +398,116 @@ be_local_closure(Matter_Plugin_Device_read_attribute, /* name */
|
||||||
0x5C240400, // 0091 MOVE R9 R2
|
0x5C240400, // 0091 MOVE R9 R2
|
||||||
0x7C180600, // 0092 CALL R6 3
|
0x7C180600, // 0092 CALL R6 3
|
||||||
0x80040C00, // 0093 RET 1 R6
|
0x80040C00, // 0093 RET 1 R6
|
||||||
0x7002001D, // 0094 JMP #00B3
|
0x7002006B, // 0094 JMP #0101
|
||||||
0x541A0038, // 0095 LDINT R6 57
|
0x541A0038, // 0095 LDINT R6 57
|
||||||
0x1C180806, // 0096 EQ R6 R4 R6
|
0x1C180806, // 0096 EQ R6 R4 R6
|
||||||
0x781A0012, // 0097 JMPF R6 #00AB
|
0x781A0060, // 0097 JMPF R6 #00F9
|
||||||
0x541A0004, // 0098 LDINT R6 5
|
0xA41A2A00, // 0098 IMPORT R6 K21
|
||||||
0x1C180A06, // 0099 EQ R6 R5 R6
|
0x1C1C0B04, // 0099 EQ R7 R5 K4
|
||||||
0x781A0006, // 009A JMPF R6 #00A2
|
0x781E000A, // 009A JMPF R7 #00A6
|
||||||
0x8C180706, // 009B GETMET R6 R3 K6
|
0x8C1C0706, // 009B GETMET R7 R3 K6
|
||||||
0x88200715, // 009C GETMBR R8 R3 K21
|
0x88240716, // 009C GETMBR R9 R3 K22
|
||||||
0x8C240116, // 009D GETMET R9 R0 K22
|
0xB82A2E00, // 009D GETNGBL R10 K23
|
||||||
0x7C240200, // 009E CALL R9 1
|
0x8C281518, // 009E GETMET R10 R10 K24
|
||||||
0x7C180600, // 009F CALL R6 3
|
0x58300019, // 009F LDCONST R12 K25
|
||||||
0x80040C00, // 00A0 RET 1 R6
|
0x50340200, // 00A0 LDBOOL R13 1 0
|
||||||
0x70020007, // 00A1 JMP #00AA
|
0x7C280600, // 00A1 CALL R10 3
|
||||||
0x60180003, // 00A2 GETGBL R6 G3
|
0x94281519, // 00A2 GETIDX R10 R10 K25
|
||||||
0x5C1C0000, // 00A3 MOVE R7 R0
|
0x7C1C0600, // 00A3 CALL R7 3
|
||||||
0x7C180200, // 00A4 CALL R6 1
|
0x80040E00, // 00A4 RET 1 R7
|
||||||
0x8C180D14, // 00A5 GETMET R6 R6 K20
|
0x70020051, // 00A5 JMP #00F8
|
||||||
0x5C200200, // 00A6 MOVE R8 R1
|
0x541E0004, // 00A6 LDINT R7 5
|
||||||
0x5C240400, // 00A7 MOVE R9 R2
|
0x1C1C0A07, // 00A7 EQ R7 R5 R7
|
||||||
0x7C180600, // 00A8 CALL R6 3
|
0x781E0006, // 00A8 JMPF R7 #00B0
|
||||||
0x80040C00, // 00A9 RET 1 R6
|
0x8C1C0706, // 00A9 GETMET R7 R3 K6
|
||||||
0x70020007, // 00AA JMP #00B3
|
0x88240716, // 00AA GETMBR R9 R3 K22
|
||||||
0x60180003, // 00AB GETGBL R6 G3
|
0x8C28011A, // 00AB GETMET R10 R0 K26
|
||||||
0x5C1C0000, // 00AC MOVE R7 R0
|
0x7C280200, // 00AC CALL R10 1
|
||||||
0x7C180200, // 00AD CALL R6 1
|
0x7C1C0600, // 00AD CALL R7 3
|
||||||
0x8C180D14, // 00AE GETMET R6 R6 K20
|
0x80040E00, // 00AE RET 1 R7
|
||||||
0x5C200200, // 00AF MOVE R8 R1
|
0x70020047, // 00AF JMP #00F8
|
||||||
0x5C240400, // 00B0 MOVE R9 R2
|
0x541E0009, // 00B0 LDINT R7 10
|
||||||
0x7C180600, // 00B1 CALL R6 3
|
0x1C1C0A07, // 00B1 EQ R7 R5 R7
|
||||||
0x80040C00, // 00B2 RET 1 R6
|
0x781E0015, // 00B2 JMPF R7 #00C9
|
||||||
0x80000000, // 00B3 RET 0
|
0xB81E2E00, // 00B3 GETNGBL R7 K23
|
||||||
|
0x8C1C0F18, // 00B4 GETMET R7 R7 K24
|
||||||
|
0x5824001B, // 00B5 LDCONST R9 K27
|
||||||
|
0x50280200, // 00B6 LDBOOL R10 1 0
|
||||||
|
0x7C1C0600, // 00B7 CALL R7 3
|
||||||
|
0x941C0F1C, // 00B8 GETIDX R7 R7 K28
|
||||||
|
0x941C0F1D, // 00B9 GETIDX R7 R7 K29
|
||||||
|
0x8C200D12, // 00BA GETMET R8 R6 K18
|
||||||
|
0x5C280E00, // 00BB MOVE R10 R7
|
||||||
|
0x582C001E, // 00BC LDCONST R11 K30
|
||||||
|
0x7C200600, // 00BD CALL R8 3
|
||||||
|
0x24241105, // 00BE GT R9 R8 K5
|
||||||
|
0x78260002, // 00BF JMPF R9 #00C3
|
||||||
|
0x04241108, // 00C0 SUB R9 R8 K8
|
||||||
|
0x40260A09, // 00C1 CONNECT R9 K5 R9
|
||||||
|
0x941C0E09, // 00C2 GETIDX R7 R7 R9
|
||||||
|
0x8C240706, // 00C3 GETMET R9 R3 K6
|
||||||
|
0x882C0716, // 00C4 GETMBR R11 R3 K22
|
||||||
|
0x5C300E00, // 00C5 MOVE R12 R7
|
||||||
|
0x7C240600, // 00C6 CALL R9 3
|
||||||
|
0x80041200, // 00C7 RET 1 R9
|
||||||
|
0x7002002E, // 00C8 JMP #00F8
|
||||||
|
0x541E000E, // 00C9 LDINT R7 15
|
||||||
|
0x1C1C0A07, // 00CA EQ R7 R5 R7
|
||||||
|
0x781E000B, // 00CB JMPF R7 #00D8
|
||||||
|
0x8C1C0706, // 00CC GETMET R7 R3 K6
|
||||||
|
0x88240716, // 00CD GETMBR R9 R3 K22
|
||||||
|
0xB82A2E00, // 00CE GETNGBL R10 K23
|
||||||
|
0x8C28151F, // 00CF GETMET R10 R10 K31
|
||||||
|
0x7C280200, // 00D0 CALL R10 1
|
||||||
|
0x8C281512, // 00D1 GETMET R10 R10 K18
|
||||||
|
0x58300020, // 00D2 LDCONST R12 K32
|
||||||
|
0x58340021, // 00D3 LDCONST R13 K33
|
||||||
|
0x7C280600, // 00D4 CALL R10 3
|
||||||
|
0x7C1C0600, // 00D5 CALL R7 3
|
||||||
|
0x80040E00, // 00D6 RET 1 R7
|
||||||
|
0x7002001F, // 00D7 JMP #00F8
|
||||||
|
0x541E0010, // 00D8 LDINT R7 17
|
||||||
|
0x1C1C0A07, // 00D9 EQ R7 R5 R7
|
||||||
|
0x781E0005, // 00DA JMPF R7 #00E1
|
||||||
|
0x8C1C0706, // 00DB GETMET R7 R3 K6
|
||||||
|
0x88240722, // 00DC GETMBR R9 R3 K34
|
||||||
|
0x58280008, // 00DD LDCONST R10 K8
|
||||||
|
0x7C1C0600, // 00DE CALL R7 3
|
||||||
|
0x80040E00, // 00DF RET 1 R7
|
||||||
|
0x70020016, // 00E0 JMP #00F8
|
||||||
|
0x541E0011, // 00E1 LDINT R7 18
|
||||||
|
0x1C1C0A07, // 00E2 EQ R7 R5 R7
|
||||||
|
0x781E000B, // 00E3 JMPF R7 #00F0
|
||||||
|
0x8C1C0706, // 00E4 GETMET R7 R3 K6
|
||||||
|
0x88240716, // 00E5 GETMBR R9 R3 K22
|
||||||
|
0xB82A2E00, // 00E6 GETNGBL R10 K23
|
||||||
|
0x8C28151F, // 00E7 GETMET R10 R10 K31
|
||||||
|
0x7C280200, // 00E8 CALL R10 1
|
||||||
|
0x8C281512, // 00E9 GETMET R10 R10 K18
|
||||||
|
0x58300020, // 00EA LDCONST R12 K32
|
||||||
|
0x58340021, // 00EB LDCONST R13 K33
|
||||||
|
0x7C280600, // 00EC CALL R10 3
|
||||||
|
0x7C1C0600, // 00ED CALL R7 3
|
||||||
|
0x80040E00, // 00EE RET 1 R7
|
||||||
|
0x70020007, // 00EF JMP #00F8
|
||||||
|
0x601C0003, // 00F0 GETGBL R7 G3
|
||||||
|
0x5C200000, // 00F1 MOVE R8 R0
|
||||||
|
0x7C1C0200, // 00F2 CALL R7 1
|
||||||
|
0x8C1C0F14, // 00F3 GETMET R7 R7 K20
|
||||||
|
0x5C240200, // 00F4 MOVE R9 R1
|
||||||
|
0x5C280400, // 00F5 MOVE R10 R2
|
||||||
|
0x7C1C0600, // 00F6 CALL R7 3
|
||||||
|
0x80040E00, // 00F7 RET 1 R7
|
||||||
|
0x70020007, // 00F8 JMP #0101
|
||||||
|
0x60180003, // 00F9 GETGBL R6 G3
|
||||||
|
0x5C1C0000, // 00FA MOVE R7 R0
|
||||||
|
0x7C180200, // 00FB CALL R6 1
|
||||||
|
0x8C180D14, // 00FC GETMET R6 R6 K20
|
||||||
|
0x5C200200, // 00FD MOVE R8 R1
|
||||||
|
0x5C240400, // 00FE MOVE R9 R2
|
||||||
|
0x7C180600, // 00FF CALL R6 3
|
||||||
|
0x80040C00, // 0100 RET 1 R6
|
||||||
|
0x80000000, // 0101 RET 0
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -461,9 +551,14 @@ be_local_class(Matter_Plugin_Device,
|
||||||
be_const_int(65533),
|
be_const_int(65533),
|
||||||
})) ) } )) },
|
})) ) } )) },
|
||||||
{ be_const_key_int(57, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
{ be_const_key_int(57, 2), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||||
be_const_list( * be_nested_list(1,
|
be_const_list( * be_nested_list(6,
|
||||||
( (struct bvalue*) &(const bvalue[]) {
|
( (struct bvalue*) &(const bvalue[]) {
|
||||||
|
be_const_int(3),
|
||||||
be_const_int(5),
|
be_const_int(5),
|
||||||
|
be_const_int(10),
|
||||||
|
be_const_int(15),
|
||||||
|
be_const_int(17),
|
||||||
|
be_const_int(18),
|
||||||
})) ) } )) },
|
})) ) } )) },
|
||||||
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
{ be_const_key_int(5, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||||
be_const_list( * be_nested_list(8,
|
be_const_list( * be_nested_list(8,
|
||||||
|
|
|
@ -970,7 +970,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
}),
|
}),
|
||||||
be_str_weak(read_attribute),
|
be_str_weak(read_attribute),
|
||||||
&be_const_str_solidified,
|
&be_const_str_solidified,
|
||||||
( &(const binstruction[888]) { /* code */
|
( &(const binstruction[897]) { /* code */
|
||||||
0xA40E0000, // 0000 IMPORT R3 K0
|
0xA40E0000, // 0000 IMPORT R3 K0
|
||||||
0xB8120200, // 0001 GETNGBL R4 K1
|
0xB8120200, // 0001 GETNGBL R4 K1
|
||||||
0x88100902, // 0002 GETMBR R4 R4 K2
|
0x88100902, // 0002 GETMBR R4 R4 K2
|
||||||
|
@ -1027,11 +1027,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x50280000, // 0035 LDBOOL R10 0 0
|
0x50280000, // 0035 LDBOOL R10 0 0
|
||||||
0x7C1C0600, // 0036 CALL R7 3
|
0x7C1C0600, // 0036 CALL R7 3
|
||||||
0x80040E00, // 0037 RET 1 R7
|
0x80040E00, // 0037 RET 1 R7
|
||||||
0x7002033D, // 0038 JMP #0377
|
0x70020346, // 0038 JMP #0380
|
||||||
0x541E0031, // 0039 LDINT R7 50
|
0x541E0031, // 0039 LDINT R7 50
|
||||||
0x1C1C0A07, // 003A EQ R7 R5 R7
|
0x1C1C0A07, // 003A EQ R7 R5 R7
|
||||||
0x781E0000, // 003B JMPF R7 #003D
|
0x781E0000, // 003B JMPF R7 #003D
|
||||||
0x70020339, // 003C JMP #0377
|
0x70020342, // 003C JMP #0380
|
||||||
0x541E0032, // 003D LDINT R7 51
|
0x541E0032, // 003D LDINT R7 51
|
||||||
0x1C1C0A07, // 003E EQ R7 R5 R7
|
0x1C1C0A07, // 003E EQ R7 R5 R7
|
||||||
0x781E00DC, // 003F JMPF R7 #011D
|
0x781E00DC, // 003F JMPF R7 #011D
|
||||||
|
@ -1255,11 +1255,11 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x50280000, // 0119 LDBOOL R10 0 0
|
0x50280000, // 0119 LDBOOL R10 0 0
|
||||||
0x7C1C0600, // 011A CALL R7 3
|
0x7C1C0600, // 011A CALL R7 3
|
||||||
0x80040E00, // 011B RET 1 R7
|
0x80040E00, // 011B RET 1 R7
|
||||||
0x70020259, // 011C JMP #0377
|
0x70020262, // 011C JMP #0380
|
||||||
0x541E0033, // 011D LDINT R7 52
|
0x541E0033, // 011D LDINT R7 52
|
||||||
0x1C1C0A07, // 011E EQ R7 R5 R7
|
0x1C1C0A07, // 011E EQ R7 R5 R7
|
||||||
0x781E0000, // 011F JMPF R7 #0121
|
0x781E0000, // 011F JMPF R7 #0121
|
||||||
0x70020255, // 0120 JMP #0377
|
0x7002025E, // 0120 JMP #0380
|
||||||
0x541E0037, // 0121 LDINT R7 56
|
0x541E0037, // 0121 LDINT R7 56
|
||||||
0x1C1C0A07, // 0122 EQ R7 R5 R7
|
0x1C1C0A07, // 0122 EQ R7 R5 R7
|
||||||
0x781E002C, // 0123 JMPF R7 #0151
|
0x781E002C, // 0123 JMPF R7 #0151
|
||||||
|
@ -1307,7 +1307,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x5C2C0E00, // 014D MOVE R11 R7
|
0x5C2C0E00, // 014D MOVE R11 R7
|
||||||
0x7C200600, // 014E CALL R8 3
|
0x7C200600, // 014E CALL R8 3
|
||||||
0x80041000, // 014F RET 1 R8
|
0x80041000, // 014F RET 1 R8
|
||||||
0x70020225, // 0150 JMP #0377
|
0x7002022E, // 0150 JMP #0380
|
||||||
0x541E003D, // 0151 LDINT R7 62
|
0x541E003D, // 0151 LDINT R7 62
|
||||||
0x1C1C0A07, // 0152 EQ R7 R5 R7
|
0x1C1C0A07, // 0152 EQ R7 R5 R7
|
||||||
0x781E0090, // 0153 JMPF R7 #01E5
|
0x781E0090, // 0153 JMPF R7 #01E5
|
||||||
|
@ -1455,7 +1455,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x5C2C0E00, // 01E1 MOVE R11 R7
|
0x5C2C0E00, // 01E1 MOVE R11 R7
|
||||||
0x7C200600, // 01E2 CALL R8 3
|
0x7C200600, // 01E2 CALL R8 3
|
||||||
0x80041000, // 01E3 RET 1 R8
|
0x80041000, // 01E3 RET 1 R8
|
||||||
0x70020191, // 01E4 JMP #0377
|
0x7002019A, // 01E4 JMP #0380
|
||||||
0x541E003B, // 01E5 LDINT R7 60
|
0x541E003B, // 01E5 LDINT R7 60
|
||||||
0x1C1C0A07, // 01E6 EQ R7 R5 R7
|
0x1C1C0A07, // 01E6 EQ R7 R5 R7
|
||||||
0x781E003C, // 01E7 JMPF R7 #0225
|
0x781E003C, // 01E7 JMPF R7 #0225
|
||||||
|
@ -1519,10 +1519,10 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x4C2C0000, // 0221 LDNIL R11
|
0x4C2C0000, // 0221 LDNIL R11
|
||||||
0x7C200600, // 0222 CALL R8 3
|
0x7C200600, // 0222 CALL R8 3
|
||||||
0x80041000, // 0223 RET 1 R8
|
0x80041000, // 0223 RET 1 R8
|
||||||
0x70020151, // 0224 JMP #0377
|
0x7002015A, // 0224 JMP #0380
|
||||||
0x541E0027, // 0225 LDINT R7 40
|
0x541E0027, // 0225 LDINT R7 40
|
||||||
0x1C1C0A07, // 0226 EQ R7 R5 R7
|
0x1C1C0A07, // 0226 EQ R7 R5 R7
|
||||||
0x781E00AE, // 0227 JMPF R7 #02D7
|
0x781E00B7, // 0227 JMPF R7 #02E0
|
||||||
0x1C1C0D05, // 0228 EQ R7 R6 K5
|
0x1C1C0D05, // 0228 EQ R7 R6 K5
|
||||||
0x781E0005, // 0229 JMPF R7 #0230
|
0x781E0005, // 0229 JMPF R7 #0230
|
||||||
0x8C1C0906, // 022A GETMET R7 R4 K6
|
0x8C1C0906, // 022A GETMET R7 R4 K6
|
||||||
|
@ -1530,7 +1530,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x58280009, // 022C LDCONST R10 K9
|
0x58280009, // 022C LDCONST R10 K9
|
||||||
0x7C1C0600, // 022D CALL R7 3
|
0x7C1C0600, // 022D CALL R7 3
|
||||||
0x80040E00, // 022E RET 1 R7
|
0x80040E00, // 022E RET 1 R7
|
||||||
0x700200A5, // 022F JMP #02D6
|
0x700200AE, // 022F JMP #02DF
|
||||||
0x1C1C0D09, // 0230 EQ R7 R6 K9
|
0x1C1C0D09, // 0230 EQ R7 R6 K9
|
||||||
0x781E0005, // 0231 JMPF R7 #0238
|
0x781E0005, // 0231 JMPF R7 #0238
|
||||||
0x8C1C0906, // 0232 GETMET R7 R4 K6
|
0x8C1C0906, // 0232 GETMET R7 R4 K6
|
||||||
|
@ -1538,7 +1538,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x58280049, // 0234 LDCONST R10 K73
|
0x58280049, // 0234 LDCONST R10 K73
|
||||||
0x7C1C0600, // 0235 CALL R7 3
|
0x7C1C0600, // 0235 CALL R7 3
|
||||||
0x80040E00, // 0236 RET 1 R7
|
0x80040E00, // 0236 RET 1 R7
|
||||||
0x7002009D, // 0237 JMP #02D6
|
0x700200A6, // 0237 JMP #02DF
|
||||||
0x1C1C0D0D, // 0238 EQ R7 R6 K13
|
0x1C1C0D0D, // 0238 EQ R7 R6 K13
|
||||||
0x781E0006, // 0239 JMPF R7 #0241
|
0x781E0006, // 0239 JMPF R7 #0241
|
||||||
0x8C1C0906, // 023A GETMET R7 R4 K6
|
0x8C1C0906, // 023A GETMET R7 R4 K6
|
||||||
|
@ -1547,7 +1547,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x8828154A, // 023D GETMBR R10 R10 K74
|
0x8828154A, // 023D GETMBR R10 R10 K74
|
||||||
0x7C1C0600, // 023E CALL R7 3
|
0x7C1C0600, // 023E CALL R7 3
|
||||||
0x80040E00, // 023F RET 1 R7
|
0x80040E00, // 023F RET 1 R7
|
||||||
0x70020094, // 0240 JMP #02D6
|
0x7002009D, // 0240 JMP #02DF
|
||||||
0x1C1C0D0F, // 0241 EQ R7 R6 K15
|
0x1C1C0D0F, // 0241 EQ R7 R6 K15
|
||||||
0x781E000A, // 0242 JMPF R7 #024E
|
0x781E000A, // 0242 JMPF R7 #024E
|
||||||
0x8C1C0906, // 0243 GETMET R7 R4 K6
|
0x8C1C0906, // 0243 GETMET R7 R4 K6
|
||||||
|
@ -1560,7 +1560,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x9428154B, // 024A GETIDX R10 R10 K75
|
0x9428154B, // 024A GETIDX R10 R10 K75
|
||||||
0x7C1C0600, // 024B CALL R7 3
|
0x7C1C0600, // 024B CALL R7 3
|
||||||
0x80040E00, // 024C RET 1 R7
|
0x80040E00, // 024C RET 1 R7
|
||||||
0x70020087, // 024D JMP #02D6
|
0x70020090, // 024D JMP #02DF
|
||||||
0x541E0003, // 024E LDINT R7 4
|
0x541E0003, // 024E LDINT R7 4
|
||||||
0x1C1C0C07, // 024F EQ R7 R6 R7
|
0x1C1C0C07, // 024F EQ R7 R6 R7
|
||||||
0x781E0005, // 0250 JMPF R7 #0257
|
0x781E0005, // 0250 JMPF R7 #0257
|
||||||
|
@ -1569,7 +1569,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x542A7FFF, // 0253 LDINT R10 32768
|
0x542A7FFF, // 0253 LDINT R10 32768
|
||||||
0x7C1C0600, // 0254 CALL R7 3
|
0x7C1C0600, // 0254 CALL R7 3
|
||||||
0x80040E00, // 0255 RET 1 R7
|
0x80040E00, // 0255 RET 1 R7
|
||||||
0x7002007E, // 0256 JMP #02D6
|
0x70020087, // 0256 JMP #02DF
|
||||||
0x541E0004, // 0257 LDINT R7 5
|
0x541E0004, // 0257 LDINT R7 5
|
||||||
0x1C1C0C07, // 0258 EQ R7 R6 R7
|
0x1C1C0C07, // 0258 EQ R7 R6 R7
|
||||||
0x781E000A, // 0259 JMPF R7 #0265
|
0x781E000A, // 0259 JMPF R7 #0265
|
||||||
|
@ -1583,7 +1583,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x9428154D, // 0261 GETIDX R10 R10 K77
|
0x9428154D, // 0261 GETIDX R10 R10 K77
|
||||||
0x7C1C0600, // 0262 CALL R7 3
|
0x7C1C0600, // 0262 CALL R7 3
|
||||||
0x80040E00, // 0263 RET 1 R7
|
0x80040E00, // 0263 RET 1 R7
|
||||||
0x70020070, // 0264 JMP #02D6
|
0x70020079, // 0264 JMP #02DF
|
||||||
0x541E0005, // 0265 LDINT R7 6
|
0x541E0005, // 0265 LDINT R7 6
|
||||||
0x1C1C0C07, // 0266 EQ R7 R6 R7
|
0x1C1C0C07, // 0266 EQ R7 R6 R7
|
||||||
0x781E0005, // 0267 JMPF R7 #026E
|
0x781E0005, // 0267 JMPF R7 #026E
|
||||||
|
@ -1592,7 +1592,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x5828004E, // 026A LDCONST R10 K78
|
0x5828004E, // 026A LDCONST R10 K78
|
||||||
0x7C1C0600, // 026B CALL R7 3
|
0x7C1C0600, // 026B CALL R7 3
|
||||||
0x80040E00, // 026C RET 1 R7
|
0x80040E00, // 026C RET 1 R7
|
||||||
0x70020067, // 026D JMP #02D6
|
0x70020070, // 026D JMP #02DF
|
||||||
0x541E0006, // 026E LDINT R7 7
|
0x541E0006, // 026E LDINT R7 7
|
||||||
0x1C1C0C07, // 026F EQ R7 R6 R7
|
0x1C1C0C07, // 026F EQ R7 R6 R7
|
||||||
0x781E0005, // 0270 JMPF R7 #0277
|
0x781E0005, // 0270 JMPF R7 #0277
|
||||||
|
@ -1601,7 +1601,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x58280005, // 0273 LDCONST R10 K5
|
0x58280005, // 0273 LDCONST R10 K5
|
||||||
0x7C1C0600, // 0274 CALL R7 3
|
0x7C1C0600, // 0274 CALL R7 3
|
||||||
0x80040E00, // 0275 RET 1 R7
|
0x80040E00, // 0275 RET 1 R7
|
||||||
0x7002005E, // 0276 JMP #02D6
|
0x70020067, // 0276 JMP #02DF
|
||||||
0x541E0007, // 0277 LDINT R7 8
|
0x541E0007, // 0277 LDINT R7 8
|
||||||
0x1C1C0C07, // 0278 EQ R7 R6 R7
|
0x1C1C0C07, // 0278 EQ R7 R6 R7
|
||||||
0x781E000B, // 0279 JMPF R7 #0286
|
0x781E000B, // 0279 JMPF R7 #0286
|
||||||
|
@ -1616,7 +1616,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x94281551, // 0282 GETIDX R10 R10 K81
|
0x94281551, // 0282 GETIDX R10 R10 K81
|
||||||
0x7C1C0600, // 0283 CALL R7 3
|
0x7C1C0600, // 0283 CALL R7 3
|
||||||
0x80040E00, // 0284 RET 1 R7
|
0x80040E00, // 0284 RET 1 R7
|
||||||
0x7002004F, // 0285 JMP #02D6
|
0x70020058, // 0285 JMP #02DF
|
||||||
0x541E0008, // 0286 LDINT R7 9
|
0x541E0008, // 0286 LDINT R7 9
|
||||||
0x1C1C0C07, // 0287 EQ R7 R6 R7
|
0x1C1C0C07, // 0287 EQ R7 R6 R7
|
||||||
0x781E0005, // 0288 JMPF R7 #028F
|
0x781E0005, // 0288 JMPF R7 #028F
|
||||||
|
@ -1625,7 +1625,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x58280009, // 028B LDCONST R10 K9
|
0x58280009, // 028B LDCONST R10 K9
|
||||||
0x7C1C0600, // 028C CALL R7 3
|
0x7C1C0600, // 028C CALL R7 3
|
||||||
0x80040E00, // 028D RET 1 R7
|
0x80040E00, // 028D RET 1 R7
|
||||||
0x70020046, // 028E JMP #02D6
|
0x7002004F, // 028E JMP #02DF
|
||||||
0x541E0009, // 028F LDINT R7 10
|
0x541E0009, // 028F LDINT R7 10
|
||||||
0x1C1C0C07, // 0290 EQ R7 R6 R7
|
0x1C1C0C07, // 0290 EQ R7 R6 R7
|
||||||
0x781E0015, // 0291 JMPF R7 #02A8
|
0x781E0015, // 0291 JMPF R7 #02A8
|
||||||
|
@ -1650,7 +1650,7 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x5C300E00, // 02A4 MOVE R12 R7
|
0x5C300E00, // 02A4 MOVE R12 R7
|
||||||
0x7C240600, // 02A5 CALL R9 3
|
0x7C240600, // 02A5 CALL R9 3
|
||||||
0x80041200, // 02A6 RET 1 R9
|
0x80041200, // 02A6 RET 1 R9
|
||||||
0x7002002D, // 02A7 JMP #02D6
|
0x70020036, // 02A7 JMP #02DF
|
||||||
0x541E000E, // 02A8 LDINT R7 15
|
0x541E000E, // 02A8 LDINT R7 15
|
||||||
0x1C1C0C07, // 02A9 EQ R7 R6 R7
|
0x1C1C0C07, // 02A9 EQ R7 R6 R7
|
||||||
0x781E000B, // 02AA JMPF R7 #02B7
|
0x781E000B, // 02AA JMPF R7 #02B7
|
||||||
|
@ -1665,189 +1665,189 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x7C280600, // 02B3 CALL R10 3
|
0x7C280600, // 02B3 CALL R10 3
|
||||||
0x7C1C0600, // 02B4 CALL R7 3
|
0x7C1C0600, // 02B4 CALL R7 3
|
||||||
0x80040E00, // 02B5 RET 1 R7
|
0x80040E00, // 02B5 RET 1 R7
|
||||||
0x7002001E, // 02B6 JMP #02D6
|
0x70020027, // 02B6 JMP #02DF
|
||||||
0x541E0011, // 02B7 LDINT R7 18
|
0x541E0010, // 02B7 LDINT R7 17
|
||||||
0x1C1C0C07, // 02B8 EQ R7 R6 R7
|
0x1C1C0C07, // 02B8 EQ R7 R6 R7
|
||||||
0x781E000B, // 02B9 JMPF R7 #02C6
|
0x781E0005, // 02B9 JMPF R7 #02C0
|
||||||
0x8C1C0906, // 02BA GETMET R7 R4 K6
|
0x8C1C0906, // 02BA GETMET R7 R4 K6
|
||||||
0x88240916, // 02BB GETMBR R9 R4 K22
|
0x88240910, // 02BB GETMBR R9 R4 K16
|
||||||
0xB82A2400, // 02BC GETNGBL R10 K18
|
0x58280009, // 02BC LDCONST R10 K9
|
||||||
0x8C281525, // 02BD GETMET R10 R10 K37
|
0x7C1C0600, // 02BD CALL R7 3
|
||||||
0x7C280200, // 02BE CALL R10 1
|
0x80040E00, // 02BE RET 1 R7
|
||||||
0x8C28151B, // 02BF GETMET R10 R10 K27
|
0x7002001E, // 02BF JMP #02DF
|
||||||
0x5830001C, // 02C0 LDCONST R12 K28
|
0x541E0011, // 02C0 LDINT R7 18
|
||||||
0x5834001D, // 02C1 LDCONST R13 K29
|
0x1C1C0C07, // 02C1 EQ R7 R6 R7
|
||||||
0x7C280600, // 02C2 CALL R10 3
|
0x781E000B, // 02C2 JMPF R7 #02CF
|
||||||
0x7C1C0600, // 02C3 CALL R7 3
|
0x8C1C0906, // 02C3 GETMET R7 R4 K6
|
||||||
0x80040E00, // 02C4 RET 1 R7
|
0x88240916, // 02C4 GETMBR R9 R4 K22
|
||||||
0x7002000F, // 02C5 JMP #02D6
|
0xB82A2400, // 02C5 GETNGBL R10 K18
|
||||||
0x541E0012, // 02C6 LDINT R7 19
|
0x8C281525, // 02C6 GETMET R10 R10 K37
|
||||||
0x1C1C0C07, // 02C7 EQ R7 R6 R7
|
0x7C280200, // 02C7 CALL R10 1
|
||||||
0x781E000C, // 02C8 JMPF R7 #02D6
|
0x8C28151B, // 02C8 GETMET R10 R10 K27
|
||||||
0x8C1C090A, // 02C9 GETMET R7 R4 K10
|
0x5830001C, // 02C9 LDCONST R12 K28
|
||||||
0x7C1C0200, // 02CA CALL R7 1
|
0x5834001D, // 02CA LDCONST R13 K29
|
||||||
0x8C200F0B, // 02CB GETMET R8 R7 K11
|
0x7C280600, // 02CB CALL R10 3
|
||||||
0x58280005, // 02CC LDCONST R10 K5
|
0x7C1C0600, // 02CC CALL R7 3
|
||||||
0x882C090C, // 02CD GETMBR R11 R4 K12
|
0x80040E00, // 02CD RET 1 R7
|
||||||
0x5830000F, // 02CE LDCONST R12 K15
|
0x7002000F, // 02CE JMP #02DF
|
||||||
0x7C200800, // 02CF CALL R8 4
|
0x541E0012, // 02CF LDINT R7 19
|
||||||
0x8C200F0B, // 02D0 GETMET R8 R7 K11
|
0x1C1C0C07, // 02D0 EQ R7 R6 R7
|
||||||
0x58280009, // 02D1 LDCONST R10 K9
|
0x781E000C, // 02D1 JMPF R7 #02DF
|
||||||
0x882C090C, // 02D2 GETMBR R11 R4 K12
|
0x8C1C090A, // 02D2 GETMET R7 R4 K10
|
||||||
0x5830000F, // 02D3 LDCONST R12 K15
|
0x7C1C0200, // 02D3 CALL R7 1
|
||||||
0x7C200800, // 02D4 CALL R8 4
|
0x8C200F0B, // 02D4 GETMET R8 R7 K11
|
||||||
0x80040E00, // 02D5 RET 1 R7
|
0x58280005, // 02D5 LDCONST R10 K5
|
||||||
0x7002009F, // 02D6 JMP #0377
|
0x882C090C, // 02D6 GETMBR R11 R4 K12
|
||||||
0x541E003E, // 02D7 LDINT R7 63
|
0x5830000F, // 02D7 LDCONST R12 K15
|
||||||
0x1C1C0A07, // 02D8 EQ R7 R5 R7
|
0x7C200800, // 02D8 CALL R8 4
|
||||||
0x781E0000, // 02D9 JMPF R7 #02DB
|
0x8C200F0B, // 02D9 GETMET R8 R7 K11
|
||||||
0x7002009B, // 02DA JMP #0377
|
0x58280009, // 02DA LDCONST R10 K9
|
||||||
0x541E0029, // 02DB LDINT R7 42
|
0x882C090C, // 02DB GETMBR R11 R4 K12
|
||||||
0x1C1C0A07, // 02DC EQ R7 R5 R7
|
0x5830000F, // 02DC LDCONST R12 K15
|
||||||
0x781E001D, // 02DD JMPF R7 #02FC
|
0x7C200800, // 02DD CALL R8 4
|
||||||
0x1C1C0D05, // 02DE EQ R7 R6 K5
|
0x80040E00, // 02DE RET 1 R7
|
||||||
0x781E0003, // 02DF JMPF R7 #02E4
|
0x7002009F, // 02DF JMP #0380
|
||||||
0x8C1C0911, // 02E0 GETMET R7 R4 K17
|
0x541E003E, // 02E0 LDINT R7 63
|
||||||
0x7C1C0200, // 02E1 CALL R7 1
|
0x1C1C0A07, // 02E1 EQ R7 R5 R7
|
||||||
0x80040E00, // 02E2 RET 1 R7
|
0x781E0000, // 02E2 JMPF R7 #02E4
|
||||||
0x70020016, // 02E3 JMP #02FB
|
0x7002009B, // 02E3 JMP #0380
|
||||||
0x1C1C0D09, // 02E4 EQ R7 R6 K9
|
0x541E0029, // 02E4 LDINT R7 42
|
||||||
0x781E0005, // 02E5 JMPF R7 #02EC
|
0x1C1C0A07, // 02E5 EQ R7 R5 R7
|
||||||
0x8C1C0906, // 02E6 GETMET R7 R4 K6
|
0x781E001D, // 02E6 JMPF R7 #0305
|
||||||
0x88240910, // 02E7 GETMBR R9 R4 K16
|
0x1C1C0D05, // 02E7 EQ R7 R6 K5
|
||||||
0x58280005, // 02E8 LDCONST R10 K5
|
0x781E0003, // 02E8 JMPF R7 #02ED
|
||||||
0x7C1C0600, // 02E9 CALL R7 3
|
0x8C1C0911, // 02E9 GETMET R7 R4 K17
|
||||||
0x80040E00, // 02EA RET 1 R7
|
0x7C1C0200, // 02EA CALL R7 1
|
||||||
0x7002000E, // 02EB JMP #02FB
|
0x80040E00, // 02EB RET 1 R7
|
||||||
0x1C1C0D0D, // 02EC EQ R7 R6 K13
|
0x70020016, // 02EC JMP #0304
|
||||||
0x781E0005, // 02ED JMPF R7 #02F4
|
0x1C1C0D09, // 02ED EQ R7 R6 K9
|
||||||
0x8C1C0906, // 02EE GETMET R7 R4 K6
|
0x781E0005, // 02EE JMPF R7 #02F5
|
||||||
0x8824090E, // 02EF GETMBR R9 R4 K14
|
0x8C1C0906, // 02EF GETMET R7 R4 K6
|
||||||
0x58280009, // 02F0 LDCONST R10 K9
|
0x88240910, // 02F0 GETMBR R9 R4 K16
|
||||||
0x7C1C0600, // 02F1 CALL R7 3
|
0x58280005, // 02F1 LDCONST R10 K5
|
||||||
0x80040E00, // 02F2 RET 1 R7
|
0x7C1C0600, // 02F2 CALL R7 3
|
||||||
0x70020006, // 02F3 JMP #02FB
|
0x80040E00, // 02F3 RET 1 R7
|
||||||
0x1C1C0D0F, // 02F4 EQ R7 R6 K15
|
0x7002000E, // 02F4 JMP #0304
|
||||||
0x781E0004, // 02F5 JMPF R7 #02FB
|
0x1C1C0D0D, // 02F5 EQ R7 R6 K13
|
||||||
0x8C1C0906, // 02F6 GETMET R7 R4 K6
|
0x781E0005, // 02F6 JMPF R7 #02FD
|
||||||
0x88240918, // 02F7 GETMBR R9 R4 K24
|
0x8C1C0906, // 02F7 GETMET R7 R4 K6
|
||||||
0x4C280000, // 02F8 LDNIL R10
|
0x8824090E, // 02F8 GETMBR R9 R4 K14
|
||||||
0x7C1C0600, // 02F9 CALL R7 3
|
0x58280009, // 02F9 LDCONST R10 K9
|
||||||
0x80040E00, // 02FA RET 1 R7
|
0x7C1C0600, // 02FA CALL R7 3
|
||||||
0x7002007A, // 02FB JMP #0377
|
0x80040E00, // 02FB RET 1 R7
|
||||||
0x541E002A, // 02FC LDINT R7 43
|
0x70020006, // 02FC JMP #0304
|
||||||
0x1C1C0A07, // 02FD EQ R7 R5 R7
|
0x1C1C0D0F, // 02FD EQ R7 R6 K15
|
||||||
0x781E0016, // 02FE JMPF R7 #0316
|
0x781E0004, // 02FE JMPF R7 #0304
|
||||||
0x1C1C0D05, // 02FF EQ R7 R6 K5
|
0x8C1C0906, // 02FF GETMET R7 R4 K6
|
||||||
0x781E0007, // 0300 JMPF R7 #0309
|
0x88240918, // 0300 GETMBR R9 R4 K24
|
||||||
0x8C1C0906, // 0301 GETMET R7 R4 K6
|
0x4C280000, // 0301 LDNIL R10
|
||||||
0x88240916, // 0302 GETMBR R9 R4 K22
|
0x7C1C0600, // 0302 CALL R7 3
|
||||||
0xB82A2400, // 0303 GETNGBL R10 K18
|
0x80040E00, // 0303 RET 1 R7
|
||||||
0x8C281554, // 0304 GETMET R10 R10 K84
|
0x7002007A, // 0304 JMP #0380
|
||||||
0x7C280200, // 0305 CALL R10 1
|
0x541E002A, // 0305 LDINT R7 43
|
||||||
0x7C1C0600, // 0306 CALL R7 3
|
0x1C1C0A07, // 0306 EQ R7 R5 R7
|
||||||
0x80040E00, // 0307 RET 1 R7
|
0x781E0016, // 0307 JMPF R7 #031F
|
||||||
0x7002000B, // 0308 JMP #0315
|
0x1C1C0D05, // 0308 EQ R7 R6 K5
|
||||||
0x1C1C0D09, // 0309 EQ R7 R6 K9
|
0x781E0007, // 0309 JMPF R7 #0312
|
||||||
0x781E0009, // 030A JMPF R7 #0315
|
0x8C1C0906, // 030A GETMET R7 R4 K6
|
||||||
0x8C1C0911, // 030B GETMET R7 R4 K17
|
0x88240916, // 030B GETMBR R9 R4 K22
|
||||||
0x7C1C0200, // 030C CALL R7 1
|
0xB82A2400, // 030C GETNGBL R10 K18
|
||||||
0x8C200F0B, // 030D GETMET R8 R7 K11
|
0x8C281554, // 030D GETMET R10 R10 K84
|
||||||
0x4C280000, // 030E LDNIL R10
|
0x7C280200, // 030E CALL R10 1
|
||||||
0x882C0916, // 030F GETMBR R11 R4 K22
|
0x7C1C0600, // 030F CALL R7 3
|
||||||
0xB8322400, // 0310 GETNGBL R12 K18
|
0x80040E00, // 0310 RET 1 R7
|
||||||
0x8C301954, // 0311 GETMET R12 R12 K84
|
0x7002000B, // 0311 JMP #031E
|
||||||
0x7C300200, // 0312 CALL R12 1
|
0x1C1C0D09, // 0312 EQ R7 R6 K9
|
||||||
0x7C200800, // 0313 CALL R8 4
|
0x781E0009, // 0313 JMPF R7 #031E
|
||||||
0x80040E00, // 0314 RET 1 R7
|
0x8C1C0911, // 0314 GETMET R7 R4 K17
|
||||||
0x70020060, // 0315 JMP #0377
|
0x7C1C0200, // 0315 CALL R7 1
|
||||||
0x541E002B, // 0316 LDINT R7 44
|
0x8C200F0B, // 0316 GETMET R8 R7 K11
|
||||||
0x1C1C0A07, // 0317 EQ R7 R5 R7
|
0x4C280000, // 0317 LDNIL R10
|
||||||
0x781E001C, // 0318 JMPF R7 #0336
|
0x882C0916, // 0318 GETMBR R11 R4 K22
|
||||||
0x1C1C0D05, // 0319 EQ R7 R6 K5
|
0xB8322400, // 0319 GETNGBL R12 K18
|
||||||
0x781E0005, // 031A JMPF R7 #0321
|
0x8C301954, // 031A GETMET R12 R12 K84
|
||||||
0x8C1C0906, // 031B GETMET R7 R4 K6
|
0x7C300200, // 031B CALL R12 1
|
||||||
0x8824090E, // 031C GETMBR R9 R4 K14
|
0x7C200800, // 031C CALL R8 4
|
||||||
0x58280009, // 031D LDCONST R10 K9
|
0x80040E00, // 031D RET 1 R7
|
||||||
0x7C1C0600, // 031E CALL R7 3
|
0x70020060, // 031E JMP #0380
|
||||||
0x80040E00, // 031F RET 1 R7
|
0x541E002B, // 031F LDINT R7 44
|
||||||
0x70020013, // 0320 JMP #0335
|
0x1C1C0A07, // 0320 EQ R7 R5 R7
|
||||||
0x1C1C0D09, // 0321 EQ R7 R6 K9
|
0x781E001C, // 0321 JMPF R7 #033F
|
||||||
0x781E0005, // 0322 JMPF R7 #0329
|
0x1C1C0D05, // 0322 EQ R7 R6 K5
|
||||||
0x8C1C0906, // 0323 GETMET R7 R4 K6
|
0x781E0005, // 0323 JMPF R7 #032A
|
||||||
0x8824090E, // 0324 GETMBR R9 R4 K14
|
0x8C1C0906, // 0324 GETMET R7 R4 K6
|
||||||
0x542A0003, // 0325 LDINT R10 4
|
0x8824090E, // 0325 GETMBR R9 R4 K14
|
||||||
0x7C1C0600, // 0326 CALL R7 3
|
0x58280009, // 0326 LDCONST R10 K9
|
||||||
0x80040E00, // 0327 RET 1 R7
|
0x7C1C0600, // 0327 CALL R7 3
|
||||||
0x7002000B, // 0328 JMP #0335
|
0x80040E00, // 0328 RET 1 R7
|
||||||
0x1C1C0D0D, // 0329 EQ R7 R6 K13
|
0x70020013, // 0329 JMP #033E
|
||||||
0x781E0009, // 032A JMPF R7 #0335
|
0x1C1C0D09, // 032A EQ R7 R6 K9
|
||||||
0x8C1C0911, // 032B GETMET R7 R4 K17
|
0x781E0005, // 032B JMPF R7 #0332
|
||||||
0x7C1C0200, // 032C CALL R7 1
|
0x8C1C0906, // 032C GETMET R7 R4 K6
|
||||||
0x8C200F0B, // 032D GETMET R8 R7 K11
|
0x8824090E, // 032D GETMBR R9 R4 K14
|
||||||
0x4C280000, // 032E LDNIL R10
|
0x542A0003, // 032E LDINT R10 4
|
||||||
0x8C2C0906, // 032F GETMET R11 R4 K6
|
0x7C1C0600, // 032F CALL R7 3
|
||||||
0x8834090E, // 0330 GETMBR R13 R4 K14
|
0x80040E00, // 0330 RET 1 R7
|
||||||
0x543A0003, // 0331 LDINT R14 4
|
0x7002000B, // 0331 JMP #033E
|
||||||
0x7C2C0600, // 0332 CALL R11 3
|
0x1C1C0D0D, // 0332 EQ R7 R6 K13
|
||||||
0x7C200600, // 0333 CALL R8 3
|
0x781E0009, // 0333 JMPF R7 #033E
|
||||||
0x80040E00, // 0334 RET 1 R7
|
0x8C1C0911, // 0334 GETMET R7 R4 K17
|
||||||
0x70020040, // 0335 JMP #0377
|
0x7C1C0200, // 0335 CALL R7 1
|
||||||
0x541E0030, // 0336 LDINT R7 49
|
0x8C200F0B, // 0336 GETMET R8 R7 K11
|
||||||
0x1C1C0A07, // 0337 EQ R7 R5 R7
|
0x4C280000, // 0337 LDNIL R10
|
||||||
0x781E0010, // 0338 JMPF R7 #034A
|
0x8C2C0906, // 0338 GETMET R11 R4 K6
|
||||||
0x1C1C0D0F, // 0339 EQ R7 R6 K15
|
0x8834090E, // 0339 GETMBR R13 R4 K14
|
||||||
0x781E0005, // 033A JMPF R7 #0341
|
0x543A0003, // 033A LDINT R14 4
|
||||||
0x8C1C0906, // 033B GETMET R7 R4 K6
|
0x7C2C0600, // 033B CALL R11 3
|
||||||
0x8824090E, // 033C GETMBR R9 R4 K14
|
0x7C200600, // 033C CALL R8 3
|
||||||
0x542A001D, // 033D LDINT R10 30
|
0x80040E00, // 033D RET 1 R7
|
||||||
0x7C1C0600, // 033E CALL R7 3
|
0x70020040, // 033E JMP #0380
|
||||||
0x80040E00, // 033F RET 1 R7
|
0x541E0030, // 033F LDINT R7 49
|
||||||
0x70020007, // 0340 JMP #0349
|
0x1C1C0A07, // 0340 EQ R7 R5 R7
|
||||||
0x541EFFFB, // 0341 LDINT R7 65532
|
0x781E0010, // 0341 JMPF R7 #0353
|
||||||
0x1C1C0C07, // 0342 EQ R7 R6 R7
|
0x1C1C0D0F, // 0342 EQ R7 R6 K15
|
||||||
0x781E0004, // 0343 JMPF R7 #0349
|
0x781E0005, // 0343 JMPF R7 #034A
|
||||||
0x8C1C0906, // 0344 GETMET R7 R4 K6
|
0x8C1C0906, // 0344 GETMET R7 R4 K6
|
||||||
0x8824092A, // 0345 GETMBR R9 R4 K42
|
0x8824090E, // 0345 GETMBR R9 R4 K14
|
||||||
0x542A0003, // 0346 LDINT R10 4
|
0x542A001D, // 0346 LDINT R10 30
|
||||||
0x7C1C0600, // 0347 CALL R7 3
|
0x7C1C0600, // 0347 CALL R7 3
|
||||||
0x80040E00, // 0348 RET 1 R7
|
0x80040E00, // 0348 RET 1 R7
|
||||||
0x7002002C, // 0349 JMP #0377
|
0x70020007, // 0349 JMP #0352
|
||||||
0x541E001C, // 034A LDINT R7 29
|
0x541EFFFB, // 034A LDINT R7 65532
|
||||||
0x1C1C0A07, // 034B EQ R7 R5 R7
|
0x1C1C0C07, // 034B EQ R7 R6 R7
|
||||||
0x781E0021, // 034C JMPF R7 #036F
|
0x781E0004, // 034C JMPF R7 #0352
|
||||||
0x1C1C0D0F, // 034D EQ R7 R6 K15
|
0x8C1C0906, // 034D GETMET R7 R4 K6
|
||||||
0x781E0016, // 034E JMPF R7 #0366
|
0x8824092A, // 034E GETMBR R9 R4 K42
|
||||||
0x8C1C0911, // 034F GETMET R7 R4 K17
|
0x542A0003, // 034F LDINT R10 4
|
||||||
0x7C1C0200, // 0350 CALL R7 1
|
0x7C1C0600, // 0350 CALL R7 3
|
||||||
0x88200133, // 0351 GETMBR R8 R0 K51
|
0x80040E00, // 0351 RET 1 R7
|
||||||
0x8C201155, // 0352 GETMET R8 R8 K85
|
0x7002002C, // 0352 JMP #0380
|
||||||
0x50280200, // 0353 LDBOOL R10 1 0
|
0x541E001C, // 0353 LDINT R7 29
|
||||||
0x7C200400, // 0354 CALL R8 2
|
0x1C1C0A07, // 0354 EQ R7 R5 R7
|
||||||
0x60240010, // 0355 GETGBL R9 G16
|
0x781E0021, // 0355 JMPF R7 #0378
|
||||||
0x5C281000, // 0356 MOVE R10 R8
|
0x1C1C0D0F, // 0356 EQ R7 R6 K15
|
||||||
0x7C240200, // 0357 CALL R9 1
|
0x781E0016, // 0357 JMPF R7 #036F
|
||||||
0xA8020007, // 0358 EXBLK 0 #0361
|
0x8C1C0911, // 0358 GETMET R7 R4 K17
|
||||||
0x5C281200, // 0359 MOVE R10 R9
|
0x7C1C0200, // 0359 CALL R7 1
|
||||||
0x7C280000, // 035A CALL R10 0
|
0x88200133, // 035A GETMBR R8 R0 K51
|
||||||
0x8C2C0F0B, // 035B GETMET R11 R7 K11
|
0x8C201155, // 035B GETMET R8 R8 K85
|
||||||
0x4C340000, // 035C LDNIL R13
|
0x50280200, // 035C LDBOOL R10 1 0
|
||||||
0x8838090C, // 035D GETMBR R14 R4 K12
|
0x7C200400, // 035D CALL R8 2
|
||||||
0x5C3C1400, // 035E MOVE R15 R10
|
0x60240010, // 035E GETGBL R9 G16
|
||||||
0x7C2C0800, // 035F CALL R11 4
|
0x5C281000, // 035F MOVE R10 R8
|
||||||
0x7001FFF7, // 0360 JMP #0359
|
0x7C240200, // 0360 CALL R9 1
|
||||||
0x5824003A, // 0361 LDCONST R9 K58
|
0xA8020007, // 0361 EXBLK 0 #036A
|
||||||
0xAC240200, // 0362 CATCH R9 1 0
|
0x5C281200, // 0362 MOVE R10 R9
|
||||||
0xB0080000, // 0363 RAISE 2 R0 R0
|
0x7C280000, // 0363 CALL R10 0
|
||||||
0x80040E00, // 0364 RET 1 R7
|
0x8C2C0F0B, // 0364 GETMET R11 R7 K11
|
||||||
0x70020007, // 0365 JMP #036E
|
0x4C340000, // 0365 LDNIL R13
|
||||||
0x601C0003, // 0366 GETGBL R7 G3
|
0x8838090C, // 0366 GETMBR R14 R4 K12
|
||||||
0x5C200000, // 0367 MOVE R8 R0
|
0x5C3C1400, // 0367 MOVE R15 R10
|
||||||
0x7C1C0200, // 0368 CALL R7 1
|
0x7C2C0800, // 0368 CALL R11 4
|
||||||
0x8C1C0F56, // 0369 GETMET R7 R7 K86
|
0x7001FFF7, // 0369 JMP #0362
|
||||||
0x5C240200, // 036A MOVE R9 R1
|
0x5824003A, // 036A LDCONST R9 K58
|
||||||
0x5C280400, // 036B MOVE R10 R2
|
0xAC240200, // 036B CATCH R9 1 0
|
||||||
0x7C1C0600, // 036C CALL R7 3
|
0xB0080000, // 036C RAISE 2 R0 R0
|
||||||
0x80040E00, // 036D RET 1 R7
|
0x80040E00, // 036D RET 1 R7
|
||||||
0x70020007, // 036E JMP #0377
|
0x70020007, // 036E JMP #0377
|
||||||
0x601C0003, // 036F GETGBL R7 G3
|
0x601C0003, // 036F GETGBL R7 G3
|
||||||
|
@ -1858,7 +1858,16 @@ be_local_closure(Matter_Plugin_Root_read_attribute, /* name */
|
||||||
0x5C280400, // 0374 MOVE R10 R2
|
0x5C280400, // 0374 MOVE R10 R2
|
||||||
0x7C1C0600, // 0375 CALL R7 3
|
0x7C1C0600, // 0375 CALL R7 3
|
||||||
0x80040E00, // 0376 RET 1 R7
|
0x80040E00, // 0376 RET 1 R7
|
||||||
0x80000000, // 0377 RET 0
|
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
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -2021,7 +2030,7 @@ be_local_class(Matter_Plugin_Root,
|
||||||
( (struct bvalue*) &(const bvalue[]) {
|
( (struct bvalue*) &(const bvalue[]) {
|
||||||
})) ) } )) },
|
})) ) } )) },
|
||||||
{ be_const_key_int(40, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
{ be_const_key_int(40, -1), be_const_simple_instance(be_nested_simple_instance(&be_class_list, {
|
||||||
be_const_list( * be_nested_list(14,
|
be_const_list( * be_nested_list(15,
|
||||||
( (struct bvalue*) &(const bvalue[]) {
|
( (struct bvalue*) &(const bvalue[]) {
|
||||||
be_const_int(0),
|
be_const_int(0),
|
||||||
be_const_int(1),
|
be_const_int(1),
|
||||||
|
@ -2035,6 +2044,7 @@ be_local_class(Matter_Plugin_Root,
|
||||||
be_const_int(9),
|
be_const_int(9),
|
||||||
be_const_int(10),
|
be_const_int(10),
|
||||||
be_const_int(15),
|
be_const_int(15),
|
||||||
|
be_const_int(17),
|
||||||
be_const_int(18),
|
be_const_int(18),
|
||||||
be_const_int(19),
|
be_const_int(19),
|
||||||
})) ) } )) },
|
})) ) } )) },
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue